{"version":3,"file":"main.js","mappings":"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A;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sources":["./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/app/atoms/button-globot/button-globot.component.ts","./src/app/atoms/button-globot/button-globot.component.html","./src/app/atoms/spinner-check/spinner-check.component.ts","./src/app/guards/bot.guard.ts","./src/app/layout/app.footer.component.ts","./src/app/layout/app.footer.component.html","./src/app/layout/app.layout.component.ts","./src/app/layout/app.layout.component.html","./src/app/layout/app.layout.module.ts","./src/app/layout/app.menu.component.html","./src/app/layout/app.menu.component.ts","./src/app/layout/app.menu.service.ts","./src/app/layout/app.menuitem.component.ts","./src/app/layout/app.sidebar.component.ts","./src/app/layout/app.sidebar.component.html","./src/app/layout/app.topbar.component.ts","./src/app/layout/app.topbar.component.html","./src/app/layout/config/app.config.component.html","./src/app/layout/config/app.config.component.ts","./src/app/layout/config/config.module.ts","./src/app/layout/service/app.layout.service.ts","./src/app/models/user.interface.ts","./src/app/molecules/buttonsSteps/button-globot-steps.component.ts","./src/app/molecules/buttonsSteps/button-globot-steps.component.html","./src/app/pipes/custom-date.pipe.ts","./src/app/pipes/max-text.pipe.ts","./src/app/pipes/safe.pipe.ts","./src/app/pipes/search-filter.pipe.ts","./src/app/services/bot.service.ts","./src/app/services/chatbot_live.service.ts","./src/app/services/clients.service.ts","./src/app/services/dashboard.service.ts","./src/app/services/data-source.service.ts","./src/app/services/discord-bot.service.ts","./src/app/services/domain.service.ts","./src/app/services/global-observable.service.ts","./src/app/services/instagram-bot.service.ts","./src/app/services/messenger-bot.service.ts","./src/app/services/nav.service.ts","./src/app/services/notification.service.ts","./src/app/services/payment.service.ts","./src/app/services/session.interceptor.ts","./src/app/services/slack-bot.service.ts","./src/app/services/socket-web.service.ts","./src/app/services/spinner.service.ts","./src/app/services/user.service.ts","./src/app/services/whatsapp-bot.service.ts","./src/app/survey/survey.component.ts","./src/app/web/chat/chat.component.html","./src/app/web/chat/chat.component.ts","./src/app/web/components/chat-messages-list/chat-messages-list.component.ts","./src/app/web/components/email-password/email-password.component.ts","./src/app/web/components/email-password/email-password.component.html","./src/app/web/components/profile-picture/profile-picture.component.ts","./src/app/web/components/ready-account/ready-account.component.ts","./src/app/web/components/ready-account/ready-account.component.html","./src/app/web/dashboard/components/banner/banner.component.ts","./src/app/web/dashboard/components/card-data-source/card-data-source.component.ts","./src/app/web/dashboard/components/card-data-source/card-data-source.component.html","./src/app/web/dashboard/components/components-dashboard.module.ts","./src/app/web/dashboard/components/discord-bot/discord-bot.component.ts","./src/app/web/dashboard/components/discord-bot/discord-bot.component.html","./src/app/web/dashboard/components/embed-html/embed-html.component.ts","./src/app/web/dashboard/components/embed-wordpress/embed-wordpress.component.ts","./src/app/web/dashboard/components/expired-plan/expired-plan.component.html","./src/app/web/dashboard/components/expired-plan/expired-plan.component.ts","./src/app/web/dashboard/components/instagram-bot/instagram-bot.component.ts","./src/app/web/dashboard/components/instagram-bot/instagram-bot.component.html","./src/app/web/dashboard/components/messenger-bot/messenger-bot.component.ts","./src/app/web/dashboard/components/messenger-bot/messenger-bot.component.html","./src/app/web/dashboard/components/no-info/no-info.component.ts","./src/app/web/dashboard/components/not-available/not-available.component.ts","./src/app/web/dashboard/components/not-available/not-available.component.html","./src/app/web/dashboard/components/pay-notification/pay-notification.component.html","./src/app/web/dashboard/components/pay-notification/pay-notification.component.ts","./src/app/web/dashboard/components/select-personallity/select-personallity.component.ts","./src/app/web/dashboard/components/slack-bot/slack-bot.component.ts","./src/app/web/dashboard/components/slack-bot/slack-bot.component.html","./src/app/web/dashboard/components/steps/list-steps-on-boarding.component.ts","./src/app/web/dashboard/components/steps/list-steps-on-boarding.component.html","./src/app/web/dashboard/components/steps/name-bot-step.component.ts","./src/app/web/dashboard/components/steps/process-chatbot.component.ts","./src/app/web/dashboard/components/steps/process-chatbot.component.html","./src/app/web/dashboard/components/steps/ready-step.component.ts","./src/app/web/dashboard/components/steps/select-data-source.component.ts","./src/app/web/dashboard/components/steps/select-data-source.component.html","./src/app/web/dashboard/components/steps/upload-file.component.ts","./src/app/web/dashboard/components/steps/upload-file.component.html","./src/app/web/dashboard/components/steps/web-data-source.component.ts","./src/app/web/dashboard/components/steps/web-data-source.component.html","./src/app/web/dashboard/components/type-subscription-plans/type-subscription-plans.component.html","./src/app/web/dashboard/components/type-subscription-plans/type-subscription-plans.component.ts","./src/app/web/dashboard/components/whatsapp-bot/whatsapp-bot/whatsapp-bot.component.ts","./src/app/web/dashboard/components/whatsapp-bot/whatsapp-bot/whatsapp-bot.component.html","./src/app/web/dashboard/dashboard/dashboard.component.ts","./src/app/web/dashboard/dashboard/dashboard.component.html","./src/app/web/dashboard/dashboard/leads/leads.component.ts","./src/app/web/dashboard/dashboard/leads/leads.component.html","./src/app/web/dashboard/dashboard/statistics/statistics.component.ts","./src/app/web/dashboard/dashboard/statistics/statistics.component.html","./src/app/web/dashboard/data-service.service.ts","./src/app/web/dashboard/edit-bot/clients/clients.component.ts","./src/app/web/dashboard/edit-bot/clients/clients.component.html","./src/app/web/dashboard/edit-bot/config/cards-records/cards-records.component.ts","./src/app/web/dashboard/edit-bot/config/cards-records/cards-records.component.html","./src/app/web/dashboard/edit-bot/config/channel-selector/channel-selector.component.ts","./src/app/web/dashboard/edit-bot/config/channel-selector/channel-selector.component.html","./src/app/web/dashboard/edit-bot/config/tabs/domain-config/domain-config.component.ts","./src/app/web/dashboard/edit-bot/config/tabs/domain-config/domain-config.component.html","./src/app/web/dashboard/edit-user/delete-account/delete-account.component.ts","./src/app/web/dashboard/edit-user/delete-account/delete-account.component.html","./src/app/web/dashboard/edit-user/profile/profile.component.ts","./src/app/web/dashboard/edit-user/profile/profile.component.html","./src/app/web/dashboard/edit-user/subscription-plan/subscription-plan.component.ts","./src/app/web/dashboard/edit-user/subscription-plan/subscription-plan.component.html","./src/app/web/dashboard/edit-user/user-billing/user-billing.component.ts","./src/app/web/dashboard/edit-user/user-billing/user-billing.component.html","./src/app/web/dashboard/globot-live/conversation-cards/conversation-cards.component.ts","./src/app/web/dashboard/globot-live/conversation-cards/conversation-cards.component.html","./src/app/web/dashboard/globot-live/customer-form/customer-form.component.ts","./src/app/web/dashboard/globot-live/customer-form/customer-form.component.html","./src/app/web/dashboard/globot-live/globot-live.component.ts","./src/app/web/dashboard/globot-live/globot-live.component.html","./src/app/web/dashboard/globot-live/information-section/information-section.component.ts","./src/app/web/dashboard/globot-live/preferences-box/preferences-box.component.ts","./src/app/web/dashboard/globot-live/preferences-box/preferences-box.component.html","./src/app/web/subscriptions/subscriptions.component.ts","./src/app/web/subscriptions/subscriptions.component.html","./src/app/web/widget-config/widget-config.component.ts","./src/app/web/widget-config/widget-config.component.html","./src/environments/environment.dev.ts","./src/main.ts","./node_modules/moment/locale/ sync ^\\.\\/.*$"],"sourcesContent":["import {RouterModule} from '@angular/router';\nimport {NgModule} from '@angular/core';\nimport {AppLayoutComponent} from \"./layout/app.layout.component\";\nimport {ChatComponent} from \"./web/chat/chat.component\";\nimport {BotGuard} from './guards/bot.guard';\nimport { SubscriptionsComponent } from './web/subscriptions/subscriptions.component';\nimport { WidgetConfigComponent } from './web/widget-config/widget-config.component';\nimport { GlobotDashboardComponent } from './web/dashboard/dashboard/dashboard.component';\nimport { GlobotLiveComponent } from './web/dashboard/globot-live/globot-live.component';\nimport { ClientsComponent } from './web/dashboard/edit-bot/clients/clients.component';\n\n@NgModule({\n imports: [\n RouterModule.forRoot([\n {path: '', redirectTo: 'dashboard/login', pathMatch: \"full\"},\n {\n path: 'dashboard', component: AppLayoutComponent,\n children: [\n /*{ path: '', loadChildren: () => import('./demo/components/dashboard/dashboard.module').then(m => m.DashboardModule) },*/\n {\n path:'action/:action',\n loadComponent: () => import('./web/dashboard/bot/bot.component').then(c => c.BotComponent),\n canActivate: [BotGuard]\n },\n {\n path: '',\n loadComponent: () => import('./web/dashboard/bot/bot.component').then(c => c.BotComponent),\n canActivate: [BotGuard]\n },\n {path: 'login', loadComponent: () => import('./web/auth/auth.component').then(c => c.AuthComponent)},\n {path: 'register', loadComponent: () => import('./web/register/register.component').then(c => c.RegisterComponent)},\n {path: 'recover-password', loadComponent: () => import('./web/recover-password/recover-password.component').then(c => c.RecoverPasswordComponent)},\n {path: 'user-password', loadComponent: () => import('./web/user-password/user-password.component').then(c => c.UserPasswordComponent)},\n {\n path: 'new-bot',\n loadComponent: () => import('./web/dashboard/new-bot/new-bot.component').then(c => c.NewBotComponent)\n },\n {\n path: 'edit-user',\n loadComponent: () => import('./web/dashboard/edit-user/edit-user.component').then(c => c.EditUserComponent),\n canActivate: [BotGuard]\n },\n {\n path: 'edit-bot/:id',\n loadComponent: () => import('./web/dashboard/edit-bot/edit-bot.component').then(c => c.EditBotComponent),\n canActivate: [BotGuard],\n children: [\n {path: '', redirectTo: 'widget-config', pathMatch: 'full'},\n {path: 'chat', component: ChatComponent},\n {path: 'widget-config', component: WidgetConfigComponent},\n {path: 'dashboard', component: GlobotDashboardComponent},\n {path: 'live', component: GlobotLiveComponent},\n {path: 'clients', component: ClientsComponent},\n {\n path: 'datasource',\n loadComponent: () => import('./web/dashboard/edit-bot/datasource/datasource.component').then(c => c.DatasourceComponent)\n },\n {\n path: 'embed',\n loadComponent: () => import('./web/dashboard/edit-bot/embed/embed.component').then(c => c.EmbedComponent)\n },\n {\n path: 'config',\n loadComponent: () => import('./web/dashboard/edit-bot/config/config.component').then(c => c.ConfigComponent)\n },\n {\n path: 'channels',\n loadComponent: () => import('./web/dashboard/edit-bot/channels/channels/channels.component').then(c => c.ChannelsComponent)\n },\n {\n path: 'records',\n loadComponent: () => import('./web/dashboard/edit-bot/records/records.component').then(c => c.RecordsComponent)\n }\n ]\n },\n \n ]\n },\n {path: 'chat/:token', component: ChatComponent},\n {\n path: 'subscription',\n component: SubscriptionsComponent,\n canActivate: [BotGuard]\n },\n {path: 'subscription/login', loadComponent: () => import('./web/auth/auth.component').then(c => c.AuthComponent)},\n {path: '**', redirectTo: '/dashboard'},\n ], {scrollPositionRestoration: 'enabled', anchorScrolling: 'enabled', onSameUrlNavigation: 'reload'})\n ],\n exports: [RouterModule]\n})\nexport class AppRoutingModule {\n}\n","\nimport { Component, OnInit } from '@angular/core';\nimport {MessageService, PrimeNGConfig} from 'primeng/api';\nimport {SpinnerService} from \"./services/spinner.service\";\nimport {HttpClient} from \"@angular/common/http\";\nimport {NotificationService} from \"./services/notification.service\";\nimport { GlobalObservableService } from './services/global-observable.service';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { UserService } from './services/user.service';\nimport { Subscription } from 'rxjs';\nimport * as moment from 'moment';\nimport { PaymentService } from './services/payment.service';\n\n\ndeclare let gtag: Function;\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html'\n})\nexport class AppComponent implements OnInit {\n\n spinner: boolean = false;\n private subscription!: Subscription;\n\n constructor(private primengConfig: PrimeNGConfig,\n http: HttpClient,\n private spinnerService: SpinnerService,\n private notificationService:NotificationService,\n private readonly ms: MessageService,\n private globalObservableService: GlobalObservableService,\n private router: Router,\n private userService: UserService,\n private paymentService: PaymentService\n ) {\n \n\n http.get(`assets/es.json`).subscribe(rs => {\n this.primengConfig.setTranslation(rs?.es);\n });\n this.spinnerService.httpProgress().subscribe((status: boolean) => {\n this.spinner = status;\n });\n this.eventSubscription();\n }\n ngOnInit() {\n // Configuración de Google Analytics para seguimiento de páginas \n this.router.events.subscribe((event) => { \n if (event instanceof NavigationEnd) { \n const sanitizedUrl = this.sanitizeUrl(event.urlAfterRedirects); console.log(`Sanitized URL: ${sanitizedUrl}`); // Verificación en consola \n gtag('config', 'G-5VTH0KYJNX', { 'page_path': sanitizedUrl }); } });\n this.primengConfig.ripple = true;\n this.notificationService.alert$.subscribe(rs => {\n if (rs === 'COMPLETE'){\n this.ms.add({\n key: 'tst',\n severity: 'success',\n summary: 'Acción exitosa',\n detail: '¡Fuente de datos conectada con exito!'\n });\n }else{\n this.ms.add({\n key: 'tst',\n severity: 'error',\n summary: 'Acción fallida',\n detail: 'La fuente de datos no pudo añadirse'\n });\n }\n })\n }\n sanitizeUrl(url: string): string {\n // Expresión regular más específica para reemplazar UUIDs\n return url.replace(/\\/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}/gi, '/ID');\n } \n eventSubscription() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n } \n this.subscription = this.globalObservableService.getObservable().subscribe((data) => {\n if (data.type !== 'some_event') return;\n \n const user = this.getUserFromLocalStorage();\n if (!user) return;\n \n this.checkAndUpdateUserSubscription(user);\n });\n }\n \n private getUserFromLocalStorage(): any {\n const userString = localStorage.getItem('user');\n return userString ? JSON.parse(userString) : null;\n }\n\n /**\n * esta función debe detectar cuando un usuario cambia de plan para poder actualizar su información\n * @param parsedUser \n * @returns void\n */\n private checkAndUpdateUserSubscription(parsedUser: any) {\n //? PASO 1: si no llega la suscripción activa quiere decir que es pla free\n if(!parsedUser.latest_active_subscription)return;\n\n //? PASO 2: si llega la ultima suscripción activa entonces hay que tomar la fecha fin de esa suscripción \n const current_date = moment();\n const { is_active, end_date } = parsedUser.latest_active_subscription;\n const subscription_end_date = end_date ? moment(end_date) : null;\n \n //? PASO 3: si fecha actual no es mayor a la fecha fin entonces todavia está vigente \n if (!subscription_end_date || !current_date.isAfter(subscription_end_date) || !is_active) {\n console.log('current subscription');\n return;\n }\n //? PASO 4: si no, entonces se debe actualizar la información del usuario\n console.log('AHORA');\n this.userService.getUser().subscribe(user => {\n localStorage.setItem('user', JSON.stringify(user));\n //PASO 4.1: Luego de actualizar se llama al servicio \n this.paymentService.getLastSubscription().subscribe({\n next: (subscription) => {\n // Si la suscripción no está activa, aparece el boton de pagar ahora \n if (!subscription.is_active) {\n localStorage.setItem('showExpiredPlan', 'true');\n this.globalObservableService.publish('subscription_inactive', { foo: 'bar' });\n }\n },\n error: (err) => { \n if (err.status === 404 && err.error.code === 53) { \n console.error(err.error.message); \n } else { \n console.error('Error:', err); } \n } \n }); \n }); \n }\n \nngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n}\n}\n","
\n
\n
\n\n\n\n","import {NgModule} from '@angular/core';\nimport { CommonModule, NgClass, NgForOf, NgIf} from '@angular/common';\nimport {AppComponent} from './app.component';\nimport {AppRoutingModule} from './app-routing.module';\nimport {AppLayoutModule} from './layout/app.layout.module';\nimport {ChatComponent} from './web/chat/chat.component';\nimport {InputTextModule} from \"primeng/inputtext\";\nimport {ButtonModule} from \"primeng/button\";\nimport {RippleModule} from \"primeng/ripple\";\nimport {FormsModule, ReactiveFormsModule} from \"@angular/forms\";\nimport {HTTP_INTERCEPTORS} from '@angular/common/http';\nimport {SessionInterceptor} from './services/session.interceptor';\nimport {ProgressSpinnerModule} from \"primeng/progressspinner\";\nimport {VirtualScrollerModule} from \"primeng/virtualscroller\";\nimport {ToastModule} from \"primeng/toast\";\nimport {MessageService} from \"primeng/api\";\nimport { MultiSelectModule } from 'primeng/multiselect';\nimport { SubscriptionsComponent } from './web/subscriptions/subscriptions.component';\nimport { KeyFilterModule } from 'primeng/keyfilter';\nimport { ButtonGlobotComponent } from './atoms/button-globot/button-globot.component';\nimport {provideLottieOptions} from \"ngx-lottie\";\nimport player from 'lottie-web';\nimport { WidgetConfigComponent } from './web/widget-config/widget-config.component';\nimport { CardModule } from 'primeng/card';\nimport { SafePipe } from './pipes/safe.pipe';\nimport { ChartModule } from 'primeng/chart';\n\n\nimport { CheckboxModule } from 'primeng/checkbox';\n\n\n\n@NgModule({\n declarations: [\n AppComponent,\n ChatComponent,\n SubscriptionsComponent,\n WidgetConfigComponent,\n SafePipe\n \n ],\n imports: [\n AppRoutingModule,\n AppLayoutModule,\n InputTextModule,\n ButtonModule,\n RippleModule,\n NgForOf,\n FormsModule,\n ReactiveFormsModule,\n NgIf,\n ProgressSpinnerModule,\n VirtualScrollerModule,\n NgClass,\n ToastModule,\n MultiSelectModule,\n KeyFilterModule,\n ButtonGlobotComponent,\n CardModule,\n CheckboxModule,\n CommonModule,\n ChartModule\n ],\n providers: [\n {provide: HTTP_INTERCEPTORS, useClass: SessionInterceptor, multi: true},\n MessageService,provideLottieOptions({ player: () => player })],\n bootstrap: [AppComponent]\n})\nexport class AppModule {\n}\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\nimport {NgClass, NgIf} from \"@angular/common\";\n\n@Component({\n selector: 'globot-button',\n standalone: true,\n templateUrl: './button-globot.component.html',\n imports: [\n NgClass,\n NgIf\n ],\n styleUrls: ['./button-globot.component.scss']\n})\nexport class ButtonGlobotComponent implements OnInit{\n\n @Input() text: string = '';\n\n @Input() icon: string = '';\n @Input() iconPosition: 'right' | 'left' = 'left';\n @Input() styleClass: 'raised' | 'outline' | 'text' | 'facebook' | 'primary' |'secondary' = 'raised';\n @Input() disabled: boolean = false;\n @Input() loading: boolean = false;\n @Input() type: 'button' | 'submit' | 'reset' = 'button';\n @Input() width:'w-100' | 'w-90' | 'w-80' | 'w-75' | 'w-66' | 'w-50' | 'w-33' | 'w-25' | 'w-auto' | '' = '';\n\n //Emiter\n @Output() onClick: EventEmitter = new EventEmitter();\n\n style: string = '';\n\n \n\n onClickEvent(event:any): void {\n this.onClick.emit(event);\n }\n\n ngOnInit(): void {\n this.style = `${this.styleClass} ${this.width}`;\n }\n\n}\n","\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\n\n@Component({\n selector: 'globot-spinner-check',\n template: `\n \n
\n \n \n
\n\n \n
\n \n \n \n\n \n \n \n\n \n \n \n \n \n \n \n
\n `,\n styles: [`\n :host {\n display: flex;\n align-items: center;\n }\n\n .edit-actions {\n display: flex;\n align-items: center;\n gap: 8px;\n }\n\n .pi {\n cursor: pointer;\n font-size: 1.25rem;\n transition: all 0.3s ease;\n\n &:hover {\n opacity: 0.8;\n }\n }\n\n .pi-spinner {\n animation: spin 1s linear infinite;\n }\n\n .pi-check {\n animation: bounceIn 0.5s ease;\n \n }\n .save-icon {\n border-radius: 4.8px;\n border: 2px solid var(--Green-Primary, #3CC13B);\n padding: 3.429px;\n }\n .cancel-icon{\n border-radius: 4.8px;\n border: 2px solid #EF4444;\n padding: 3.429px;\n }\n\n @keyframes spin {\n 100% { transform: rotate(360deg); }\n }\n\n @keyframes bounceIn {\n 0% { transform: scale(0); }\n 50% { transform: scale(1.2); }\n 100% { transform: scale(1); }\n }\n @media (max-width: 768px) {\n .pi {\n font-size: 2rem;\n }\n\n }\n `]\n})\nexport class SpinnerCheckComponent {\n @Input() isLoading = false;\n @Input() isSuccess = false;\n @Input() isEditing = false;\n @Input() successColor = '#3CC13B';\n @Input() errorColor = '#EF4444';\n @Input() editTooltip = 'Editar';\n @Input() saveTooltip = 'Guardar';\n @Input() cancelTooltip = 'Cancelar';\n\n @Output() onEdit = new EventEmitter();\n @Output() onSave = new EventEmitter();\n @Output() onCancel = new EventEmitter();\n\n onEditClick() {\n this.onEdit.emit();\n }\n}\n\n","import { Injectable } from '@angular/core';\nimport {\n ActivatedRouteSnapshot,\n CanActivate,\n createUrlTreeFromSnapshot,\n Router,\n RouterStateSnapshot,\n UrlTree\n} from '@angular/router';\nimport { Observable, of } from 'rxjs';\nimport {BotService} from '../services/bot.service';\nimport {map, catchError} from 'rxjs/operators';\nimport {UserService} from \"../services/user.service\";\nimport { UserInterface} from \"../models/user.interface\";\nimport { GlobalObservableService } from '../services/global-observable.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BotGuard implements CanActivate {\n constructor(private router: Router, private botService: BotService, private userService: UserService, private globalObservable: GlobalObservableService) {\n }\n canActivate(\n next: ActivatedRouteSnapshot,\n state: RouterStateSnapshot): Observable | Promise | boolean | UrlTree {\n const action = next.paramMap.get('action');\n if (action) {\n const decodedAction = atob(action);\n \n if (decodedAction === 'REFRESH_USER') {\n localStorage.removeItem('user');\n }\n this.router.navigate(['dashboard']);\n return false; \n }\n const user = this.userService.getUserLocalStorage();\n if(!user){\n \n this.userService.getUser().subscribe({\n next: value => {\n // Si la respuesta es correcta guardar el user en el localstorage\n localStorage.setItem('user', JSON.stringify(value));\n },\n error: err => {\n \n this.router.navigate(['dashboard//login']);\n }\n });\n }\n\n // return this.botService.getBots().pipe(map((data: any) => {\n // const user: UserInterface = JSON.parse(localStorage.getItem('user') ?? '{}');\n // data.length > 0 ? this.botService.setHaveBots(true) : this.botService.setHaveBots(false);\n // return data.length > 0 || !user.on_boarding ? true : createUrlTreeFromSnapshot(next, ['/dashboard', 'new-bot'])\n // }));\n // this.router.navigate(['dashboard//login']);\n // return false\n\n return this.botService.getBots().pipe(\n map((data: any) => {\n const user: UserInterface = JSON.parse(localStorage.getItem('user') ?? '{}');\n data.length > 0 ? this.botService.setHaveBots(true) : this.botService.setHaveBots(false);\n return data.length > 0 || !user.on_boarding ? true : createUrlTreeFromSnapshot(next, ['/dashboard', 'new-bot']);\n }),\n catchError((error) => {\n if (error.status === 401) {\n // Manejar error 401 (Unauthorized)\n localStorage.removeItem('user');\n console.error('Error 401: No autorizado. Redirigiendo al login...');\n this.globalObservable.publish('logOut', {})\n this.router.navigate(['dashboard//login']);\n // Aquí puedes redirigir al usuario a la página de login o mostrar un mensaje de error\n return of(false) // Redirige a la página de login\n }\n // Para cualquier otro error, puedes lanzar una excepción o manejarlo de otra manera\n return of(false); // O devolver algún valor por defecto\n })\n );\n \n \n }\n\n}\n","import { Component } from '@angular/core';\nimport { LayoutService } from \"./service/app.layout.service\";\n\n@Component({\n selector: 'globot-footer',\n templateUrl: './app.footer.component.html'\n})\nexport class AppFooterComponent {\n constructor(public layoutService: LayoutService) { }\n}\n","
\n \"Logo\"\n by\n PrimeNG\n
\n","import { Component, OnDestroy, OnInit, Renderer2, ViewChild } from '@angular/core';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { filter, Subscription } from 'rxjs';\nimport { LayoutService } from \"./service/app.layout.service\";\nimport { AppSidebarComponent } from \"./app.sidebar.component\";\nimport { AppTopBarComponent } from './app.topbar.component';\nimport { OneSignal } from 'onesignal-ngx';\nimport { environment } from 'src/environments/environment';\n\n@Component({\n selector: 'globot-layout',\n templateUrl: './app.layout.component.html'\n})\nexport class AppLayoutComponent implements OnDestroy, OnInit {\n\n overlayMenuOpenSubscription: Subscription;\n\n menuOutsideClickListener: any;\n\n profileMenuOutsideClickListener: any;\n\n @ViewChild(AppSidebarComponent) appSidebar!: AppSidebarComponent;\n\n @ViewChild(AppTopBarComponent) appTopbar!: AppTopBarComponent;\n\n oneSignalAppId = environment.onesignalAppId;\n\n isLocalEnv = !environment.production;\n\n constructor(public layoutService: LayoutService, public renderer: Renderer2, public router: Router, private oneSignal: OneSignal) {\n this.overlayMenuOpenSubscription = this.layoutService.overlayOpen$.subscribe(() => {\n if (!this.menuOutsideClickListener) {\n this.menuOutsideClickListener = this.renderer.listen('document', 'click', event => {\n const isOutsideClicked = !(this.appSidebar.el.nativeElement.isSameNode(event.target) || this.appSidebar.el.nativeElement.contains(event.target) \n || this.appTopbar.menuButton.nativeElement.isSameNode(event.target) || this.appTopbar.menuButton.nativeElement.contains(event.target));\n \n if (isOutsideClicked) {\n this.hideMenu();\n }\n });\n }\n\n if (!this.profileMenuOutsideClickListener) {\n this.profileMenuOutsideClickListener = this.renderer.listen('document', 'click', event => {\n const isOutsideClicked = !(this.appTopbar.menu.nativeElement.isSameNode(event.target) || this.appTopbar.menu.nativeElement.contains(event.target)\n || this.appTopbar.topbarMenuButton.nativeElement.isSameNode(event.target) || this.appTopbar.topbarMenuButton.nativeElement.contains(event.target));\n\n if (isOutsideClicked) {\n this.hideProfileMenu();\n }\n });\n }\n\n if (this.layoutService.state.staticMenuMobileActive) {\n this.blockBodyScroll();\n }\n });\n\n this.router.events.pipe(filter(event => event instanceof NavigationEnd))\n .subscribe(() => {\n this.hideMenu();\n this.hideProfileMenu();\n });\n }\n\n hideMenu() {\n this.layoutService.state.overlayMenuActive = false;\n this.layoutService.state.staticMenuMobileActive = false;\n this.layoutService.state.menuHoverActive = false;\n if (this.menuOutsideClickListener) {\n this.menuOutsideClickListener();\n this.menuOutsideClickListener = null;\n }\n this.unblockBodyScroll();\n }\n\n hideProfileMenu() {\n this.layoutService.state.profileSidebarVisible = false;\n if (this.profileMenuOutsideClickListener) {\n this.profileMenuOutsideClickListener();\n this.profileMenuOutsideClickListener = null;\n }\n }\n\n blockBodyScroll(): void {\n if (document.body.classList) {\n document.body.classList.add('blocked-scroll');\n }\n else {\n document.body.className += ' blocked-scroll';\n }\n }\n\n unblockBodyScroll(): void {\n if (document.body.classList) {\n document.body.classList.remove('blocked-scroll');\n }\n else {\n document.body.className = document.body.className.replace(new RegExp('(^|\\\\b)' +\n 'blocked-scroll'.split(' ').join('|') + '(\\\\b|$)', 'gi'), ' ');\n }\n }\n\n get containerClass() {\n return {\n 'layout-theme-light': this.layoutService.config.colorScheme === 'light',\n 'layout-theme-dark': this.layoutService.config.colorScheme === 'dark',\n 'layout-overlay': this.layoutService.config.menuMode === 'overlay',\n 'layout-static': this.layoutService.config.menuMode === 'static',\n 'layout-static-inactive': this.layoutService.state.staticMenuDesktopInactive && this.layoutService.config.menuMode === 'static',\n 'layout-overlay-active': this.layoutService.state.overlayMenuActive,\n 'layout-mobile-active': this.layoutService.state.staticMenuMobileActive,\n 'p-input-filled': this.layoutService.config.inputStyle === 'filled',\n 'p-ripple-disabled': !this.layoutService.config.ripple\n }\n }\n\n ngOnInit(): void {\n let userStr = localStorage.getItem('user');\n if (!userStr) return;\n const user = JSON.parse(userStr)\n console.log('USER PARSE', user)\n console.log('USER ID', user.id)\n console.log('USER EMAIL', user.email)\n console.log('LOCAL ENV', this.isLocalEnv)\n if(!user.id) return;\n if(user){\n this.oneSignal.init(\n { \n appId: this.oneSignalAppId,\n autoResubscribe:true,\n allowLocalhostAsSecureOrigin:this.isLocalEnv,\n\n }\n ).then(() => {\n console.log('USER ONE',this.oneSignal.User)\n this.oneSignal.login(user.id);\n this.oneSignal.User.addEmail(user.email)\n this.oneSignal.Notifications.addEventListener('permissionChange', (event) => {\n console.log(\"The permissionChange was clicked!\", event);\n const permissions = this.oneSignal.Notifications.permission;\n console.log('Permissions', permissions);\n \n });\n console.log(\"CONECTADO A ONESIGNAL\")\n }).catch((err)=>{\n console.log('ERROR', err)\n });\n } \n }\n\n ngOnDestroy() {\n if (this.overlayMenuOpenSubscription) {\n this.overlayMenuOpenSubscription.unsubscribe();\n }\n\n if (this.menuOutsideClickListener) {\n this.menuOutsideClickListener();\n }\n }\n}\n","
\n \n
\n
\n \n
\n
\n
\n","import { NgModule } from '@angular/core';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { FormsModule } from '@angular/forms';\nimport { HttpClientModule } from '@angular/common/http';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { SidebarModule } from 'primeng/sidebar';\nimport { BadgeModule } from 'primeng/badge';\nimport { RadioButtonModule } from 'primeng/radiobutton';\nimport { InputSwitchModule } from 'primeng/inputswitch';\nimport { RippleModule } from 'primeng/ripple';\nimport { AppMenuComponent } from './app.menu.component';\nimport { AppMenuitemComponent } from './app.menuitem.component';\nimport { RouterModule } from '@angular/router';\nimport { AppTopBarComponent } from './app.topbar.component';\nimport { AppFooterComponent } from './app.footer.component';\nimport { AppConfigModule } from './config/config.module';\nimport { AppSidebarComponent } from \"./app.sidebar.component\";\nimport { AppLayoutComponent } from \"./app.layout.component\";\nimport {ContextMenuModule} from \"primeng/contextmenu\";\nimport {MenubarModule} from \"primeng/menubar\";\nimport {TieredMenuModule} from \"primeng/tieredmenu\";\nimport {MenuModule} from \"primeng/menu\";\nimport { ComponentsDashboardModule } from '../web/dashboard/components/components-dashboard.module';\nimport { ConfirmDialogModule } from 'primeng/confirmdialog';\n\n@NgModule({\n declarations: [\n AppMenuitemComponent,\n AppTopBarComponent,\n AppFooterComponent,\n AppMenuComponent,\n AppSidebarComponent,\n AppLayoutComponent,\n ],\n imports: [\n BrowserModule,\n FormsModule,\n HttpClientModule,\n BrowserAnimationsModule,\n InputTextModule,\n SidebarModule,\n BadgeModule,\n RadioButtonModule,\n InputSwitchModule,\n RippleModule,\n RouterModule,\n AppConfigModule,\n ContextMenuModule,\n MenubarModule,\n TieredMenuModule,\n MenuModule,\n ComponentsDashboardModule,\n ConfirmDialogModule\n ],\n exports: [AppLayoutComponent]\n})\nexport class AppLayoutModule { }\n","
    \n \n
  • \n
  • \n
    \n
\n","import { OnInit, Component } from '@angular/core';\nimport { LayoutService } from './service/app.layout.service';\n\n@Component({\n selector: 'globot-menu',\n templateUrl: './app.menu.component.html'\n})\nexport class AppMenuComponent implements OnInit {\n\n model: any[] = [];\n model2: any[] = [];\n\n constructor(public layoutService: LayoutService) { }\n\n ngOnInit() {\n this.model = [\n {\n label: 'Bots',\n items: [\n { label: 'Dashboard', icon: 'pi pi-fw pi-user', routerLink: ['/dashboard/bot'] }\n ]\n },\n ];\n this.model2 = [\n ...this.model,\n {\n label: 'Home',\n items: [\n { label: 'Dashboard', icon: 'pi pi-fw pi-home', routerLink: ['/'] }\n ]\n },\n {\n label: 'UI Components',\n items: [\n { label: 'Form Layout', icon: 'pi pi-fw pi-id-card', routerLink: ['/dashboard/uikit/formlayout'] },\n { label: 'Input', icon: 'pi pi-fw pi-check-square', routerLink: ['/dashboard/uikit/input'] },\n { label: 'Float Label', icon: 'pi pi-fw pi-bookmark', routerLink: ['/dashboard/uikit/floatlabel'] },\n { label: 'Invalid State', icon: 'pi pi-fw pi-exclamation-circle', routerLink: ['/dashboard/uikit/invalidstate'] },\n { label: 'Button', icon: 'pi pi-fw pi-box', routerLink: ['/dashboard/uikit/button'] },\n { label: 'Table', icon: 'pi pi-fw pi-table', routerLink: ['/dashboard/uikit/table'] },\n { label: 'List', icon: 'pi pi-fw pi-list', routerLink: ['/dashboard/uikit/list'] },\n { label: 'Tree', icon: 'pi pi-fw pi-share-alt', routerLink: ['/dashboard/uikit/tree'] },\n { label: 'Panel', icon: 'pi pi-fw pi-tablet', routerLink: ['/dashboard/uikit/panel'] },\n { label: 'Overlay', icon: 'pi pi-fw pi-clone', routerLink: ['/dashboard/uikit/overlay'] },\n { label: 'Media', icon: 'pi pi-fw pi-image', routerLink: ['/dashboard/uikit/media'] },\n { label: 'Menu', icon: 'pi pi-fw pi-bars', routerLink: ['/dashboard/uikit/menu'], routerLinkActiveOptions: { paths: 'subset', queryParams: 'ignored', matrixParams: 'ignored', fragment: 'ignored' } },\n { label: 'Message', icon: 'pi pi-fw pi-comment', routerLink: ['/dashboard/uikit/message'] },\n { label: 'File', icon: 'pi pi-fw pi-file', routerLink: ['/dashboard/uikit/file'] },\n { label: 'Chart', icon: 'pi pi-fw pi-chart-bar', routerLink: ['/dashboard/uikit/charts'] },\n { label: 'Misc', icon: 'pi pi-fw pi-circle', routerLink: ['/dashboard/uikit/misc'] }\n ]\n },\n {\n label: 'Prime Blocks',\n items: [\n { label: 'Free Blocks', icon: 'pi pi-fw pi-eye', routerLink: ['/dashboard/blocks'], badge: 'NEW' },\n { label: 'All Blocks', icon: 'pi pi-fw pi-globe', url: ['https://www.primefaces.org/primeblocks-ng'], target: '_blank' },\n ]\n },\n {\n label: 'Utilities',\n items: [\n { label: 'PrimeIcons', icon: 'pi pi-fw pi-prime', routerLink: ['/dashboard/utilities/icons'] },\n { label: 'PrimeFlex', icon: 'pi pi-fw pi-desktop', url: ['https://www.primefaces.org/primeflex/'], target: '_blank' },\n ]\n },\n {\n label: 'Pages',\n icon: 'pi pi-fw pi-briefcase',\n items: [\n {\n label: 'Landing',\n icon: 'pi pi-fw pi-globe',\n routerLink: ['/landing']\n },\n {\n label: 'Auth',\n icon: 'pi pi-fw pi-user',\n items: [\n {\n label: 'Login',\n icon: 'pi pi-fw pi-sign-in',\n routerLink: ['/auth/login']\n },\n {\n label: 'Error',\n icon: 'pi pi-fw pi-times-circle',\n routerLink: ['/auth/error']\n },\n {\n label: 'Access Denied',\n icon: 'pi pi-fw pi-lock',\n routerLink: ['/auth/access']\n }\n ]\n },\n {\n label: 'Crud',\n icon: 'pi pi-fw pi-pencil',\n routerLink: ['/dashboard/pages/crud']\n },\n {\n label: 'Timeline',\n icon: 'pi pi-fw pi-calendar',\n routerLink: ['/dashboard/pages/timeline']\n },\n {\n label: 'Not Found',\n icon: 'pi pi-fw pi-exclamation-circle',\n routerLink: ['/notfound']\n },\n {\n label: 'Empty',\n icon: 'pi pi-fw pi-circle-off',\n routerLink: ['/dashboard/pages/empty']\n },\n ]\n },\n {\n label: 'Hierarchy',\n items: [\n {\n label: 'Submenu 1', icon: 'pi pi-fw pi-bookmark',\n items: [\n {\n label: 'Submenu 1.1', icon: 'pi pi-fw pi-bookmark',\n items: [\n { label: 'Submenu 1.1.1', icon: 'pi pi-fw pi-bookmark' },\n { label: 'Submenu 1.1.2', icon: 'pi pi-fw pi-bookmark' },\n { label: 'Submenu 1.1.3', icon: 'pi pi-fw pi-bookmark' },\n ]\n },\n {\n label: 'Submenu 1.2', icon: 'pi pi-fw pi-bookmark',\n items: [\n { label: 'Submenu 1.2.1', icon: 'pi pi-fw pi-bookmark' }\n ]\n },\n ]\n },\n {\n label: 'Submenu 2', icon: 'pi pi-fw pi-bookmark',\n items: [\n {\n label: 'Submenu 2.1', icon: 'pi pi-fw pi-bookmark',\n items: [\n { label: 'Submenu 2.1.1', icon: 'pi pi-fw pi-bookmark' },\n { label: 'Submenu 2.1.2', icon: 'pi pi-fw pi-bookmark' },\n ]\n },\n {\n label: 'Submenu 2.2', icon: 'pi pi-fw pi-bookmark',\n items: [\n { label: 'Submenu 2.2.1', icon: 'pi pi-fw pi-bookmark' },\n ]\n },\n ]\n }\n ]\n },\n {\n label: 'Get Started',\n items: [\n {\n label: 'Documentation', icon: 'pi pi-fw pi-question', routerLink: ['/documentation']\n },\n {\n label: 'View Source', icon: 'pi pi-fw pi-search', url: ['https://github.com/primefaces/sakai-ng'], target: '_blank'\n }\n ]\n }\n ];\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { MenuChangeEvent } from './api/menuchangeevent';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MenuService {\n\n private menuSource = new Subject();\n private resetSource = new Subject();\n\n menuSource$ = this.menuSource.asObservable();\n resetSource$ = this.resetSource.asObservable();\n\n onMenuStateChange(event: MenuChangeEvent) {\n this.menuSource.next(event);\n }\n\n reset() {\n this.resetSource.next(true);\n }\n}\n","import { ChangeDetectorRef, Component, HostBinding, Input, OnDestroy, OnInit } from '@angular/core';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { Subscription } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport { MenuService } from './app.menu.service';\nimport { LayoutService } from './service/app.layout.service';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[globot-menuitem]',\n template: `\n\t\t\n
{{item.label}}
\n\t\t\t\n\t\t\t\t\n\t\t\t\t{{item.label}}\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t{{item.label}}\n\t\t\t\t\n\t\t\t\n\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t
  • \n\t\t\t\t
    \n\t\t\t
\n\t\t
\n `,\n animations: [\n trigger('children', [\n state('collapsed', style({\n height: '0'\n })),\n state('expanded', style({\n height: '*'\n })),\n transition('collapsed <=> expanded', animate('400ms cubic-bezier(0.86, 0, 0.07, 1)'))\n ])\n ]\n})\nexport class AppMenuitemComponent implements OnInit, OnDestroy {\n\n @Input() item: any;\n\n @Input() index!: number;\n\n @Input() @HostBinding('class.layout-root-menuitem') root!: boolean;\n\n @Input() parentKey!: string;\n\n active = false;\n\n menuSourceSubscription: Subscription;\n\n menuResetSubscription: Subscription;\n\n key: string = \"\";\n\n constructor(public layoutService: LayoutService, private cd: ChangeDetectorRef, public router: Router, private menuService: MenuService) {\n this.menuSourceSubscription = this.menuService.menuSource$.subscribe(value => {\n Promise.resolve(null).then(() => {\n if (value.routeEvent) {\n this.active = (value.key === this.key || value.key.startsWith(this.key + '-'));\n } \n else {\n this.active = !(value.key === this.key || value.key.startsWith(this.key + '-'));\n }\n });\n });\n\n this.menuResetSubscription = this.menuService.resetSource$.subscribe(() => {\n this.active = false;\n });\n\n this.router.events.pipe(filter(event => event instanceof NavigationEnd))\n .subscribe(params => {\n if (this.item.routerLink) {\n this.updateActiveStateFromRoute();\n }\n });\n }\n\n ngOnInit() {\n this.key = this.parentKey ? this.parentKey + '-' + this.index : String(this.index);\n\n if (this.item.routerLink) {\n this.updateActiveStateFromRoute();\n }\n }\n\n updateActiveStateFromRoute() {\n let activeRoute = this.router.isActive(this.item.routerLink[0], { paths: 'exact', queryParams: 'ignored', matrixParams: 'ignored', fragment: 'ignored' });\n\n if (activeRoute) {\n this.menuService.onMenuStateChange({ key: this.key, routeEvent: true });\n }\n }\n\n itemClick(event: Event) {\n // avoid processing disabled items\n if (this.item.disabled) {\n event.preventDefault();\n return;\n }\n\n // execute command\n if (this.item.command) {\n this.item.command({ originalEvent: event, item: this.item });\n }\n\n // toggle active state\n if (this.item.items) {\n this.active = !this.active;\n }\n\n this.menuService.onMenuStateChange({ key: this.key });\n }\n\n get submenuAnimation() {\n return this.root ? 'expanded' : (this.active ? 'expanded' : 'collapsed');\n }\n\n @HostBinding('class.active-menuitem') \n get activeClass() {\n return this.active && !this.root;\n }\n\n ngOnDestroy() {\n if (this.menuSourceSubscription) {\n this.menuSourceSubscription.unsubscribe();\n }\n\n if (this.menuResetSubscription) {\n this.menuResetSubscription.unsubscribe();\n }\n }\n}\n","import { Component, ElementRef } from '@angular/core';\nimport { LayoutService } from \"./service/app.layout.service\";\n\n@Component({\n selector: 'globot-sidebar',\n templateUrl: './app.sidebar.component.html'\n})\nexport class AppSidebarComponent {\n constructor(public layoutService: LayoutService, public el: ElementRef) { }\n}\n\n"," \n","import {ChangeDetectorRef,Component, ElementRef, HostListener, OnInit, ViewChild} from '@angular/core';\nimport {ConfirmationService, MenuItem, MessageService} from 'primeng/api';\nimport { UserInterface} from \"../models/user.interface\";\nimport {UserService} from \"../services/user.service\";\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {BotService} from \"../services/bot.service\";\nimport { GlobalObservableService } from '../services/global-observable.service';\nimport { Subscription } from 'rxjs';\nimport { TieredMenu } from 'primeng/tieredmenu';\nimport { environment } from 'src/environments/environment';\n\n@Component({\n selector: 'globot-topbar',\n providers: [ConfirmationService, MessageService],\n templateUrl: './app.topbar.component.html',\n styleUrls: ['./app.topbar.component.scss']\n})\nexport class AppTopBarComponent implements OnInit {\n\n items!: MenuItem[];\n\n viewMenuConfig: boolean = false;\n sidebarVisible: boolean = false;\n botId: string = '';\n currentOption: number = 0;\n menuConfig: any[] = [];\n isMobile: boolean = false;\n helpItems!: MenuItem[];\n urlProfile: string = '';\n termsUrl = environment.termsUrl;\n privacyUrl = environment.privacyUrl;\n\n\n private subscription: Subscription = new Subscription();\n\n @ViewChild('menubutton') menuButton!: ElementRef;\n\n @ViewChild('topbarmenubutton') topbarMenuButton!: ElementRef;\n\n @ViewChild('topbarmenu') menu!: ElementRef;\n\n @ViewChild('tieredMenu') tieredMenu!: TieredMenu;\n \n @ViewChild('menu', { read: TieredMenu }) menuTieredMenu!: TieredMenu;\n\n @ViewChild('helpMenu', { read: TieredMenu }) helpMenu!: TieredMenu;\n \n @HostListener('window:scroll', ['$event'])\n onWindowScroll() {\n if (this.menuTieredMenu) {\n this.menuTieredMenu.hide();\n }\n if (this.helpMenu) {\n this.helpMenu.hide();\n }\n }\n\n user: UserInterface | undefined = undefined\n protected readonly undefined = undefined;\n\n constructor(private readonly userService: UserService, private readonly router: Router, private activatedRoute: ActivatedRoute,\n private messageService: MessageService,\n private botService: BotService, private confirmationService: ConfirmationService, private globalService: GlobalObservableService, private cd: ChangeDetectorRef,\n ) {\n }\n\n ngOnInit(): void {\n\n this.subscription.add(\n this.userService.url$.subscribe(newUrl => {\n this.urlProfile = newUrl;\n this.updateUserPicture(newUrl);\n })\n );\n this.userService.name$.subscribe(newName => {\n if (this.user) {\n this.user.name = newName;\n }\n this.cd.detectChanges();\n });\n\n this.user = this.userService.getUserLocalStorage();\n\n\n this.items = [\n {\n label: 'Plan ' + this.user?.subscription_type.alias,\n style: {\n 'font-weight': '600'\n }\n },\n {\n separator: true\n },\n {\n label: 'Mis chatbots',\n icon: 'pi pi-home',\n routerLink: '/dashboard',\n command: () => {\n this.router.navigate(['/dashboard']);\n this.sidebarVisible = false;\n if (this.isMobile) {\n this.sidebarVisible = false;\n } else {\n this.menu?.nativeElement.hide();\n }\n }\n },\n {\n label: 'Mi cuenta',\n icon: 'pi pi-user',\n routerLink: '/dashboard/edit-user',\n command: () => {\n this.router.navigate(['/dashboard/edit-user']);\n if (this.isMobile) {\n this.sidebarVisible = false;\n } else {\n this.menu?.nativeElement.hide();\n }\n }\n },\n {\n label: 'Cerrar sesión',\n icon: 'pi pi-sign-out',\n style: {\n color: '#7B5CF5',\n },\n command: () => this.logout()\n }\n ]\n\n this.helpItems = [\n {\n label: 'Términos y condiciones',\n icon: 'pi pi-arrow-up-right',\n command: () => {\n window.open(this.termsUrl, '_blank');\n if (this.isMobile) {\n this.sidebarVisible = false;\n } else {\n this.menu?.nativeElement.hide();\n }\n }\n },\n {\n label: 'Política de privacidad',\n icon: 'pi pi-arrow-up-right',\n command: () => {\n window.open(this.privacyUrl, '_blank');\n if (this.isMobile) {\n this.sidebarVisible = false;\n } else {\n this.menu?.nativeElement.hide();\n }\n }\n },\n {\n label: 'Tutoriales',\n icon: 'pi pi-book',\n command: () => {\n window.open('https://globot.ai/tutoriales/', '_blank')\n if (this.isMobile){\n this.sidebarVisible = false;\n } else {\n this.menu?.nativeElement.hide();\n }\n }\n }\n ]\n\n\n this.router.events.pipe(\n //Cambio de ruta o inicializacion de pagina\n ).subscribe(() => {\n // Obtener la ruta actual\n this.checkCurrentRoute();\n\n });\n this.subscription.add(\n this.globalService.getObservable().subscribe(\n (message) => {\n if (message.type === 'accountDeleted') {\n this.logout();\n }\n if (message.type === 'logOut' ){\n this.user = undefined;\n }\n }\n )\n );\n\n\n }\n private updateUserPicture(newUrl: string): void {\n if (this.user) {\n this.user.picture = newUrl;\n }\n this.cd.detectChanges();\n }\n\n selectOption(i: number) {\n this.currentOption = i;\n }\n\n checkCurrentRoute(): void {\n const currentRoute = this.router.routerState.snapshot.url;\n this.isMobile = window.innerWidth < 768;\n if (currentRoute && currentRoute.includes('edit-bot')) {\n //get id of http://127.0.0.1:4200/dashboard/edit-bot/bf88355c-be5d-4e18-ac45-75bf119bd44a/chat -> bf88355c-be5d-4e18-ac45-75bf119bd44a\n this.botId = currentRoute.split('/').slice(-2)[0];\n this.viewMenuConfig = true;\n } else {\n this.viewMenuConfig = false;\n }\n }\n\n logout() {\n this.user = undefined;\n this.userService.logout();\n }\n\n navigateTo(url: string | null) {\n if (url) {\n this.sidebarVisible = false;\n //get route current\n const currentRoute = this.router.routerState.snapshot.url;\n //delete last part of route\n const route = currentRoute.split('/').slice(0, -1).join('/');\n //concat route with new route\n url = `${route}/${url}`;\n this.router.navigate([url]);\n }\n }\n\n navigateToDashboard(event: Event): void {\n event.preventDefault();\n\n this.router.navigateByUrl('/dashboard').then(() => {\n window.location.reload();\n });\n }\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n\n}\n","
\n \n \n \n\n\n
\n
\n \n \n
\n
\n
\n \n \n
\n\n
\n {{user.name}}\n \n \n
\n
\n \n
\n \n
\n {{ items[0].label }}\n
\n\n
\n \n {{ items[2].label }}\n
\n
\n \n {{ items[3].label }}\n
\n
\n Documentación\n
\n \n \n
\n \n {{ item.label }}\n
\n
\n \n
\n
\n \n {{ items[4].label }}\n
\n
\n
\n
\n \n \n \n
\n
\n
\n\n\n","\n\n\n
Scale
\n
\n \n
\n \n
\n \n
\n\n \n
Menu Type
\n
\n \n \n
\n
\n \n \n
\n
\n\n \n
Input Style
\n
\n
\n \n \n
\n
\n \n \n
\n
\n\n
Ripple Effect
\n \n
\n\n\n
Bootstrap
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n\n
Material Design
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n\n
Material Design Compact
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n\n
Tailwind
\n
\n
\n \n
\n
\n\n
Fluent UI
\n
\n
\n \n
\n
\n\n
PrimeOne Design - 2022
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n\n
PrimeOne Design - 2021
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n","import { Component, Input } from '@angular/core';\nimport { LayoutService } from \"../service/app.layout.service\";\nimport { MenuService } from \"../app.menu.service\";\n\n@Component({\n selector: 'globot-config',\n templateUrl: './app.config.component.html'\n})\nexport class AppConfigComponent {\n\n @Input() minimal: boolean = false;\n\n scales: number[] = [12, 13, 14, 15, 16];\n\n constructor(public layoutService: LayoutService, public menuService: MenuService) { }\n\n get visible(): boolean {\n return this.layoutService.state.configSidebarVisible;\n }\n\n set visible(_val: boolean) {\n this.layoutService.state.configSidebarVisible = _val;\n }\n\n get scale(): number {\n return this.layoutService.config.scale;\n }\n\n set scale(_val: number) {\n this.layoutService.config.scale = _val;\n }\n\n get menuMode(): string {\n return this.layoutService.config.menuMode;\n }\n\n set menuMode(_val: string) {\n this.layoutService.config.menuMode = _val;\n }\n\n get inputStyle(): string {\n return this.layoutService.config.inputStyle;\n }\n\n set inputStyle(_val: string) {\n this.layoutService.config.inputStyle = _val;\n }\n\n get ripple(): boolean {\n return this.layoutService.config.ripple;\n }\n\n set ripple(_val: boolean) {\n this.layoutService.config.ripple = _val;\n }\n\n onConfigButtonClick() {\n this.layoutService.showConfigSidebar();\n }\n\n changeTheme(theme: string, colorScheme: string) {\n const themeLink = document.getElementById('theme-css');\n const newHref = themeLink.getAttribute('href')!.replace(this.layoutService.config.theme, theme);\n this.layoutService.config.colorScheme\n this.replaceThemeLink(newHref, () => {\n this.layoutService.config.theme = theme;\n this.layoutService.config.colorScheme = colorScheme;\n this.layoutService.onConfigUpdate();\n });\n }\n\n replaceThemeLink(href: string, onComplete: Function) {\n const id = 'theme-css';\n const themeLink = document.getElementById('theme-css');\n const cloneLinkElement = themeLink.cloneNode(true);\n\n cloneLinkElement.setAttribute('href', href);\n cloneLinkElement.setAttribute('id', id + '-clone');\n\n themeLink.parentNode!.insertBefore(cloneLinkElement, themeLink.nextSibling);\n\n cloneLinkElement.addEventListener('load', () => {\n themeLink.remove();\n cloneLinkElement.setAttribute('id', id);\n onComplete();\n });\n }\n\n decrementScale() {\n this.scale--;\n this.applyScale();\n }\n\n incrementScale() {\n this.scale++;\n this.applyScale();\n }\n\n applyScale() {\n document.documentElement.style.fontSize = this.scale + 'px';\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { SidebarModule } from 'primeng/sidebar';\nimport { RadioButtonModule } from 'primeng/radiobutton';\nimport { ButtonModule } from 'primeng/button';\nimport { InputSwitchModule } from 'primeng/inputswitch';\nimport { AppConfigComponent } from './app.config.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n SidebarModule,\n RadioButtonModule,\n ButtonModule,\n InputSwitchModule\n ],\n declarations: [\n AppConfigComponent\n ],\n exports: [\n AppConfigComponent\n ]\n})\nexport class AppConfigModule { }\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\n\nexport interface AppConfig {\n inputStyle: string;\n colorScheme: string;\n theme: string;\n ripple: boolean;\n menuMode: string;\n scale: number;\n}\n\ninterface LayoutState {\n staticMenuDesktopInactive: boolean;\n overlayMenuActive: boolean;\n profileSidebarVisible: boolean;\n configSidebarVisible: boolean;\n staticMenuMobileActive: boolean;\n menuHoverActive: boolean;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LayoutService {\n\n config: AppConfig = {\n ripple: false,\n inputStyle: 'outlined',\n menuMode: 'static',\n colorScheme: 'light',\n theme: 'lara-light-indigo',\n scale: 14,\n };\n\n state: LayoutState = {\n staticMenuDesktopInactive: false,\n overlayMenuActive: false,\n profileSidebarVisible: false,\n configSidebarVisible: false,\n staticMenuMobileActive: false,\n menuHoverActive: false\n };\n\n private configUpdate = new Subject();\n\n private overlayOpen = new Subject();\n\n configUpdate$ = this.configUpdate.asObservable();\n\n overlayOpen$ = this.overlayOpen.asObservable();\n\n onMenuToggle() {\n if (this.isOverlay()) {\n this.state.overlayMenuActive = !this.state.overlayMenuActive;\n if (this.state.overlayMenuActive) {\n this.overlayOpen.next(null);\n }\n }\n\n if (this.isDesktop()) {\n this.state.staticMenuDesktopInactive = !this.state.staticMenuDesktopInactive;\n }\n else {\n this.state.staticMenuMobileActive = !this.state.staticMenuMobileActive;\n\n if (this.state.staticMenuMobileActive) {\n this.overlayOpen.next(null);\n }\n }\n }\n\n showProfileSidebar() {\n this.state.profileSidebarVisible = !this.state.profileSidebarVisible;\n if (this.state.profileSidebarVisible) {\n this.overlayOpen.next(null);\n }\n }\n\n showConfigSidebar() {\n this.state.configSidebarVisible = true;\n }\n\n isOverlay() {\n return this.config.menuMode === 'overlay';\n }\n\n isDesktop() {\n return window.innerWidth > 991;\n }\n\n isMobile() {\n return !this.isDesktop();\n }\n\n onConfigUpdate() {\n this.configUpdate.next(this.config);\n }\n\n}\n","\nexport interface UserInterface{\n id: string;\n name: string;\n email: string;\n picture: string;\n is_active: boolean;\n subscription_enabled:boolean;\n on_boarding: boolean;\n phone_number: string;\n document_value: string;\n name_on_invoice: string;\n latest_active_subscription: {\n created_at: string;\n end_date: string;\n is_active: boolean;\n is_cancelled: boolean;\n};\n subscription_type:SubscriptionType;\n type_document: string; \n show_renewal_banner: boolean;\n}\n\nexport interface SubscriptionType {\n chat_limit: number;\n chatbots: number;\n name: string;\n price: number;\n sources: number;\n type_data_sources:[string];\n menu_options:[string];\n alias: string;\n show_upgrade_banner: boolean;\n}\n\nexport interface MenuOption {\n chat : Option;\n webIntegration : Option;\n settings : Option;\n datasources : Option;\n channels : Option;\n records : Option;\n statistics : Option;\n live : Option;\n clients : Option\n}\n\nexport interface Option {\n label:string;\n key_validation:string;\n}\n\nexport const MENU_OPTIONS:MenuOption = {\n chat:{label:'Probar chatbot',key_validation:'CHAT'},\n webIntegration:{label:'Agregar a sitio web',key_validation:'INTEGRACION_WEB'},\n settings:{label:'Configuraciones',key_validation:'CONFIGURACIONES'},\n datasources:{label:'Cargar información',key_validation:'FUENTES_DE_DATOS'},\n channels:{label:'Agregar a redes',key_validation:'CANALES'},\n records:{label:'Historial',key_validation:'HISTORIAL'},\n statistics: {label:'Estadísticas', key_validation:'ESTADISTICAS'},\n live: {label:'Globot LIVE', key_validation:'LIVE'},\n clients: {label: 'Clientes', key_validation:'CLIENTES' }\n}\n ","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\nimport {NgClass, NgIf} from \"@angular/common\";\nimport {ButtonGlobotComponent} from \"../../atoms/button-globot/button-globot.component\";\n\n\n@Component({\n selector: 'globot-button-steps',\n standalone: true,\n templateUrl: './button-globot-steps.component.html',\n imports: [\n NgClass,\n NgIf,\n ButtonGlobotComponent\n ],\n styleUrls: ['./button-globot-steps.component.scss']\n})\nexport class ButtonGlobotStepsComponent implements OnInit{\n\n @Input() visibleBack: boolean = false;\n @Input() visibleNext: boolean = false;\n @Input() visibleCenter: boolean = false;\n\n @Input() textBack: string = '';\n @Input() textNext: string = '';\n\n\n isMobile = window.innerWidth < 768;\n\n //Emiter\n @Output() onClickBack: EventEmitter = new EventEmitter();\n @Output() onClickNext: EventEmitter = new EventEmitter();\n\n style: string = '';\n\n constructor() {\n }\n\n onClickBackEvent(event:any): void {\n this.onClickBack.emit(event);\n }\n\n onClickNextEvent(event:any): void {\n this.onClickNext.emit(event);\n }\n\n ngOnInit(): void {\n\n }\n\n}\n","\n
\n \n
\n\n
\n \n
\n\n
\n \n \n
\n\n\n\n\n
\n
\n \n \n
\n
\n \n \n
\n
\n\n
\n\n\n\n \n
\n \n \n
\n
\n \n
\n \n \n
\n
\n \n
\n \n \n
\n
\n
\n\n\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'customDate'\n})\nexport class CustomDatePipe implements PipeTransform {\n transform(value?: string | null): string {\n if (!value) return '--';\n \n const date = new Date(value);\n const year = date.getFullYear();\n const month = (date.getMonth() + 1).toString().padStart(2, '0');\n const day = date.getDate().toString().padStart(2, '0');\n \n const hours = date.getHours();\n const minutes = date.getMinutes().toString().padStart(2, '0');\n const ampm = hours >= 12 ? 'pm' : 'am';\n \n const formattedHours = this.formatHours(hours);\n \n return `${year}/${month}/${day} ${formattedHours}:${minutes} ${ampm}`;\n }\n\n private formatHours(hours: number): string {\n const formattedHour = hours % 12 || 12;\n return formattedHour.toString().padStart(2, '0');\n }\n}","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'maxText'\n})\nexport class MaxTextPipe implements PipeTransform {\n\n\n\n transform(n: string, limit = 36): string {\n return n.length > limit ? n.substring(0, limit) + '...': n;\n \n }\n\n\n}","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Pipe({ name: 'safe' })\nexport class SafePipe implements PipeTransform {\n constructor(private domSanitizer: DomSanitizer) { }\n transform(url: string) {\n return this.domSanitizer.bypassSecurityTrustResourceUrl(url);\n }\n} ","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'searchFilter',\n \n})\nexport class SearchFilterPipe implements PipeTransform {\n transform(records: any[], searchTerm: string): any[] {\n if (!records) return [];\n if (!searchTerm) return records;\n\n searchTerm = searchTerm.toLowerCase();\n\n return records.filter(record => \n record.channel?.toLowerCase().includes(searchTerm) ||\n record.last_message?.toLowerCase().includes(searchTerm) ||\n record.email?.toLowerCase().includes(searchTerm) ||\n record.phone?.toLowerCase().includes(searchTerm) ||\n record.name?.toLowerCase().includes(searchTerm) ||\n record.sender_requirement?.toLowerCase().includes(searchTerm)\n );\n }\n}","import {Injectable} from '@angular/core';\nimport {environment} from '../../environments/environment';\nimport {HttpClient, HttpHeaders} from '@angular/common/http';\nimport {\n chatbotScannedUrlResponse,\n ChatbotWidgetConfiguration,\n GetBotResponse,\n PostRegistryBotResponse,\n PostRequestBot,\n PutUpdateBotRequest,\n ResponseGetBotInterface\n} from \"../models/bot.interface\";\nimport { ChatHistory } from '../models/history.interface';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BotService {\n private apiAddress: string = environment.apiAddress;\n private haveBot: boolean = false;\n\n constructor(private http: HttpClient) {\n }\n\n getBots() {\n return this.http.get(`${this.apiAddress}/bot`);\n }\n\n getBot(id: string) {\n return this.http.get(`${this.apiAddress}/bot/${id}`);\n }\n\n deleteBot(id: string) {\n return this.http.delete(`${this.apiAddress}/bot/${id}`);\n }\n\n postBot(data: PostRequestBot) {\n return this.http.post(`${this.apiAddress}/bot`, data);\n }\n\n uploadSource(data: string, id: string) {\n return this.http.post(`${this.apiAddress}/bot/${id}/source_upload/url`, data);\n }\n\n scanUrl(data: any, id: string) {\n return this.http.post(`${this.apiAddress}/bot/${id}/source_upload/url_scan`, data);\n }\n\n getScannedUrls(jobId:string, botId:string) {\n return this.http.get(`${this.apiAddress}/bot/${botId}/source_upload/url_scan/${jobId}/results`);\n }\n\n deleteScannedUrl(jobId:string, url_id:string) {\n return this.http.delete(`${this.apiAddress}/bot-job/${jobId}/scanned_url/${url_id}`);\n }\n\n deleteJobId(jobId:string) {\n return this.http.delete(`${this.apiAddress}/bot-job/${jobId}/delete`);\n }\n\n uploadUrlsByJob(botId:string, jobId:string) {\n return this.http.post(`${this.apiAddress}/bot/${botId}/upload/job/${jobId}`, null);\n }\n\n uploadSourceFile(file: File, id: string) {\n const formData: FormData = new FormData();\n formData.append('file', file);\n return this.http.post(`${this.apiAddress}/bot/${id}/source_upload`, formData);\n }\n\n sendMessage(data: any, id: string, origin?: string, channel?: string) {\n\n let httpHeaders = undefined;\n if (channel || origin) {\n httpHeaders = new HttpHeaders(); \n }\n\n if (channel) {\n httpHeaders = httpHeaders!.append('GLOBOTCHANNEL', channel);\n }\n \n if (origin) {\n httpHeaders = httpHeaders!.append('GLOBOTORIGIN', origin);\n }\n \n return this.http.post(`${this.apiAddress}/bot/${id}/prompt`, data, { headers: httpHeaders});\n }\n\n updateBot(data: PutUpdateBotRequest, id: string) {\n return this.http.put(`${this.apiAddress}/bot/${id}`, data);\n }\n\n getRecords(id: string, rangeDate: any) {\n return this.http.get(`${this.apiAddress}/bot/${id}/history`, {params: {\n init: rangeDate[0], term: rangeDate[1]\n }});\n }\n getChatHistory(botId: string, senderId: string, chatsFrom: number = 0, to: number = 9, group: boolean = true) {\n return this.http.get(`${this.apiAddress}/bot/${botId}/history/chat/${senderId}?chatsFrom=${chatsFrom}&to=${to}&group=${group}`);\n }\n \n haveBots(): boolean {\n return this.haveBot;\n }\n\n setHaveBots(value: boolean): void {\n this.haveBot = value;\n }\n\n getRecordsSummary(id: string) {\n return this.http.get(`${this.apiAddress}/bot/${id}/history/summary`);\n }\n\n getWelcomeMessage(id:string){\n return this.http.get(`${this.apiAddress}/bot/${id}/welcome-message`)\n }\n\n updateWelcomeMessage(id:string,welcomeMessage:any){\n return this.http.put(`${this.apiAddress}/bot/${id}/welcome-message`,welcomeMessage)\n }\n\n saveWidgetConfig(id: string, chatbotWidgetConfiguration: ChatbotWidgetConfiguration) {\n return this.http.put(`${this.apiAddress}/bot/${id}/widget_config`, chatbotWidgetConfiguration)\n }\n getWidget(id: string) {\n return this.http.get(`${this.apiAddress}/bot/${id}/widget_config`)\n }\n\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { environment } from 'src/environments/environment';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ChatbotliveService {\n apiAddress: string = environment.apiAddress;\n\n private selectedCustomerData = new BehaviorSubject(null);\n customerData$ = this.selectedCustomerData.asObservable();\n\n constructor(private http: HttpClient) { }\n\n takeControl(botId: string, payload: { correlation_id: string, take_manual_control: boolean }) {\n return this.http.post<{ response: string }>(`${this.apiAddress}/bot/${botId}/chat/take-control`, payload);\n } \n\n updateChatHeader(botId: string, correlation_id:string){\n return this.http.put(`${this.apiAddress}/bot/${botId}/chat/update`, {new_message:false, correlation_id});\n }\n\n sendAnswer(botId: string, correlation_id:string, answer:string){\n return this.http.post(`${this.apiAddress}/bot/${botId}/chat/answer`, {correlation_id, answer});\n }\n\n // Nuevo método para actualizar los datos del cliente\n updateCustomerData(data: any) {\n this.selectedCustomerData.next({\n created_at: data.created_at,\n channel: data.channel,\n name: data.name,\n phone: data.phone,\n email: data.email,\n sender_requirement: data.sender_requirement,\n correlation_id: data.correlation_id\n });\n }\n updateCustomerField(botId: string, correlation_id: string, field: string, value: string) {\n const payload = { \n correlation_id,\n [field]: value,\n new_message: false \n };\n return this.http.put(`${this.apiAddress}/bot/${botId}/chat/update`, payload);\n }\n setAiResponseDelay(botId: string, timeInMinutes: number) {\n return this.http.put(\n `${this.apiAddress}/bot/${botId}/ai_response_delay`,\n { time_in_minutes: timeInMinutes }\n );\n }\n \n}","import { Injectable } from '@angular/core';\nimport { environment } from '../../environments/environment';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable } from 'rxjs';\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ClientsService {\n private apiAddress: string = environment.apiAddress;\n\n constructor(private http: HttpClient) {}\n\n\n getClients(botId: string, page: number = 1, pageSize: number = 10, type: string = 'json'): Observable {\n const body = {\n page: page,\n page_size: pageSize,\n type: type\n };\n\n const options: any = {};\n if (type === 'xlsx') {\n options.responseType = 'blob';\n }\n\n return this.http.post(`${this.apiAddress}/bot/${botId}/conversation_clients`, body, options);\n }\n\n}\n","import {Injectable} from '@angular/core';\nimport {environment} from '../../environments/environment';\nimport {HttpClient} from '@angular/common/http';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DashboardService {\n private apiAddress: string = environment.apiAddress;\n\n constructor(private http: HttpClient) {\n }\n\n getConversationStats(id: string, init: string, term: string) {\n return this.http.get(`${this.apiAddress}/bot/${id}/conversation_stats?init=${init}&term=${term}`);\n }\n\n getConversationDistributionStats(id: string, init: string, term: string) {\n return this.http.get(`${this.apiAddress}/bot/${id}/conversation_time_distribution_stats?init=${init}&term=${term}`);\n }\n\n getConversationLeads(id: string, init: string, term: string) {\n return this.http.get(`${this.apiAddress}/bot/${id}/conversation_leads?init=${init}&term=${term}`);\n }\n\n getConversationNonDocumentResponse(id: string, init: string, term: string) {\n return this.http.get(`${this.apiAddress}/bot/${id}/conversation_non_document_based_responses?init=${init}&term=${term}`);\n }\n updateLeadsConfig(id: string, config: {leads_enabled: boolean, user_data_gathering_enabled: boolean}) {\n return this.http.put(`${this.apiAddress}/bot/${id}/leads_config`, config);\n }\n\n}","import {Injectable} from \"@angular/core\";\nimport {environment} from \"../../environments/environment\";\nimport {HttpClient} from \"@angular/common/http\";\nimport {GetDataSourceResponse} from \"../models/data-source.interface\";\nimport {interval, Observable, switchMap} from \"rxjs\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DataSourceService {\n\n apiAddress: string = environment.apiAddress;\n\n constructor(private http: HttpClient) {\n }\n\n getDataSources(id: string): Observable {\n return this.http.get(`${this.apiAddress}/bot/${id}/sources`);\n }\n\n deleteDataSource(botId: string, id: string): Observable {\n return this.http.delete(`${this.apiAddress}/bot/${botId}/source/${id}`);\n }\n\n downloadFileFromGDrive(botId: string, fileId: string, mimeType: string, fileName: string, accessToken: string): Observable {\n return this.http.post(`${this.apiAddress}/bot/${botId}/source_upload/gdrive`, {\n file_id: fileId,\n mime_type: mimeType,\n file_name: fileName,\n access_token: accessToken\n });\n }\n\n asyncGetDataSource(botId: string, id: string): Observable {\n return interval(environment.datasourceRetryIntervalTime).pipe(\n switchMap(() => this.http.get(`${this.apiAddress}/bot/${botId}/sources/${id}`))\n )\n }\n\n\n}\n","import { Injectable } from '@angular/core';\nimport { environment } from 'src/environments/environment';\nimport { HttpClient } from '@angular/common/http';\nimport { GetResponseDiscordBot } from '../models/discord-bot.interface';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DiscordBotService {\n apiAddress: string = environment.apiAddress;\n\n constructor(private http: HttpClient ) {}\n\n postBotDiscord(botId: string, server_id: number, is_enabled: boolean, server_name?: string) {\n return this.http.post(`${this.apiAddress}/bot/${botId}/discord_bot`, {server_id, is_enabled, server_name});\n }\n \n getBotDiscord(botId: string){\n return this.http.get(`${this.apiAddress}/bot/${botId}/discord_bot`)\n }\n\n updateBotDiscord(botId: string, is_enabled: boolean, server_id?: number, channel_name?: string, server_name?:string) {\n const body = {\n is_enabled: is_enabled,\n server_id: server_id,\n channel_name: channel_name,\n server_name: server_name\n };\n return this.http.put(`${this.apiAddress}/bot/${botId}/discord_bot`, body);\n } \n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { environment } from 'src/environments/environment';\nimport {GetResponseDomains} from \"../models/domain.interface\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DomainService {\n apiAddress: string = environment.apiAddress;\n\n constructor(private http: HttpClient) { }\n\n addDomain(botId: string, domain: string) {\n return this.http.post(`${this.apiAddress}/bot/${botId}/add_domain`, { domain });\n }\n\n deleteDomain(botId: string, domainId: string) {\n return this.http.request('delete', `${this.apiAddress}/bot/${botId}/delete_domain`, { body: { domain_id: domainId } });\n}\n \n getDomains(botId: string){\n return this.http.get(`${this.apiAddress}/bot/${botId}/get_domains`)\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\n\nexport class GlobalObservableService {\n\n private subject = new Subject();\n\n publish(type: string, data?: any) {\n this.subject.next({ type, data });\n }\n\n getObservable(): Subject {\n return this.subject;\n }\n\n}","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { environment } from 'src/environments/environment';\nimport { GetResponseInstagramBot, InstagramAccount } from '../models/messenger-bot.interface';\n\n@Injectable({\n providedIn: 'root'\n })\n export class InstagramBotService {\n apiAddress: string = environment.apiAddress;\n\n constructor(private http: HttpClient) { }\n\n postAccountSubscription(botId: string, instagramAccount:InstagramAccount, linked_page_id:string, page_access_token:string) {\n // console.log('se va:', {...instagramAccount,linked_page_id, page_access_token})\n return this.http.post(`${this.apiAddress}/bot/${botId}/instagram_bot`, {...instagramAccount,linked_page_id, page_access_token});\n }\n\n getBotInstagram(botId: string){\n return this.http.get(`${this.apiAddress}/bot/${botId}/instagram_bot`)\n }\n\n updateAccountSubscription(botId: string,is_enabled: boolean) {\n return this.http.put(`${this.apiAddress}/bot/${botId}/instagram_bot`, {is_enabled});\n }\n\n deleteBotInstagram(botId: string){\n return this.http.delete(`${this.apiAddress}/bot/${botId}/instagram_bot`)\n }\n} ","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { environment } from 'src/environments/environment';\nimport { GetResponseMessengerBot } from '../models/messenger-bot.interface';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MessengerBotService {\n apiAddress: string = environment.apiAddress;\n\n constructor(private http: HttpClient) { }\n\n postPageSubscription(botId: string, page_id: number, is_enabled: boolean, page_name: string, categories:[string], page_access_token:string) {\n return this.http.post(`${this.apiAddress}/bot/${botId}/messenger_bot`, {page_id, is_enabled, page_name, categories, page_access_token});\n }\n\n updatePageSubscription(botId: string,is_enabled: boolean) {\n return this.http.put(`${this.apiAddress}/bot/${botId}/messenger_bot`, {is_enabled});\n }\n\n getBotMessenger(botId: string){\n return this.http.get(`${this.apiAddress}/bot/${botId}/messenger_bot`)\n }\n\n deleteBotMessenger(botId: string){\n return this.http.delete(`${this.apiAddress}/bot/${botId}/messenger_bot`)\n }\n}\n","import { Injectable } from \"@angular/core\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NavService {\n\n private data: any = undefined;\n\n\n public setData(data: any) {\n this.data = data;\n }\n\n public getData() {\n return this.data;\n }\n\n public clearData() {\n this.data = undefined;\n }\n\n}","import {Injectable} from '@angular/core';\nimport {Subject} from \"rxjs\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NotificationService {\n\n private alertSource = new Subject();\n alert$ = this.alertSource.asObservable();\n\n\n\n showAlert(alert:string){\n this.alertSource.next(alert);\n }\n\n\n\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { environment } from 'src/environments/environment';\nimport { Observable } from 'rxjs';\nimport { PaymentUrlResponse, Subscription } from '../models/payment.interface';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PaymentService {\n apiAddress: string = environment.apiAddress;\n\n constructor(private http: HttpClient) { }\n\n getPaymentUrl(): Observable {\n return this.http.get(`${this.apiAddress}/subscription/payment/url`);\n }\n getLastSubscription(): Observable {\n console.log('Calling getLastSubscription service');\n return this.http.get(`${this.apiAddress}/subscription/check/last`);\n }\n \n}\n","import { Injectable } from '@angular/core';\nimport {\n HttpRequest,\n HttpHandler,\n HttpEvent,\n HttpInterceptor, HttpResponse\n} from '@angular/common/http';\nimport { Observable, map } from 'rxjs';\n\n@Injectable()\nexport class SessionInterceptor implements HttpInterceptor {\n\n\n\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\n const token = sessionStorage.getItem('token');\n\n if (sessionStorage.getItem('correlation-id') !== null) {\n request = request.clone({\n setHeaders: {\n 'correlation-id': sessionStorage.getItem('correlation-id')!\n }\n })\n }\n\n if (request.url.includes('prompt')) {\n \n return next.handle(request).pipe(\n map((event: HttpEvent) => {\n if (event instanceof HttpResponse) {\n if (event.headers.get('correlation-id') !== null) {\n sessionStorage.setItem('correlation-id', event.headers.get('correlation-id')!);\n }\n }\n return event;\n })\n )\n }\n\n request = request.clone({\n withCredentials: true\n });\n\n // return next.handle(request);\n return next.handle(request).pipe(\n map((event: HttpEvent) => {\n if (event instanceof HttpResponse) {\n if (event.headers.get('correlation-id') !== null) {\n sessionStorage.setItem('correlation-id', event.headers.get('correlation-id')!);\n }\n }\n return event;\n })\n )\n\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { environment } from 'src/environments/environment';\nimport { GetResponseSlackBot } from '../models/slack-bot.interface';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SlackBotService {\n apiAddress: string = environment.apiAddress;\n\n constructor(private http: HttpClient) { }\n\n postBotSlack(botId: string, team_id: string, is_enabled: boolean) {\n return this.http.post(`${this.apiAddress}/bot/${botId}/slack`, {team_id, is_enabled});\n }\n getBotSlack(botId: string){\n return this.http.get(`${this.apiAddress}/bot/${botId}/slack`)\n }\n updateBotSlack(botId: string, is_enabled: boolean, team_id?: string) {\n const body = {\n is_enabled: is_enabled,\n team_id: team_id,\n\n };\n return this.http.put(`${this.apiAddress}/bot/${botId}/slack`, body);\n } \n }","import { Injectable } from \"@angular/core\";\nimport { environment } from \"src/environments/environment\";\nimport { Socket } from 'ngx-socket-io';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SocketWebService extends Socket {\n // private socket: Socket\n\n constructor() {\n super({\n url:environment.apiAddressSockets,\n options:{\n path:'/ws/socket.io',\n autoConnect:false,\n reconnection:true, \n }\n });\n }\n\n\n connectToRoom(botId: string, refreshFunction:() => void) {\n \n try {\n console.log('UNIENDO A ROOM:', botId)\n this.ioSocket.connect(); \n this.ioSocket.emit('join',{room:botId});\n console.log('ROOM LISTA')\n console.log('ESCUCHANDO eventos de room!')\n this.ioSocket.on('new_message', (msg:any)=>{\n console.log('new message:', msg)\n if(msg.toUpperCase()==='refresh'.toUpperCase()){\n refreshFunction();\n }\n })\n } catch (error) {\n console.error('Error al conectar a la sala:', error);\n }\n }\n\n disconnectRoom(botId: string){\n try {\n this.ioSocket.emit('leave', { room: botId });\n console.log('DESCONECTANDO LISTA');\n \n this.ioSocket.disconnect();\n console.log('DESCONECTADO');\n } catch (error) {\n console.error('Error al desconectar de la sala:', error);\n }\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport {Observable, ReplaySubject} from \"rxjs\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SpinnerService {\n private httpLoading$ = new ReplaySubject(1);\n constructor() { }\n\n httpProgress(): Observable {\n return this.httpLoading$.asObservable();\n }\n\n setHttpProgressStatus(inProgress: boolean) {\n this.httpLoading$.next(inProgress);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { environment } from \"../../environments/environment\";\nimport { HttpClient } from \"@angular/common/http\";\nimport { Router } from \"@angular/router\";\n\nimport { CookieService } from 'ngx-cookie-service';\nimport { UserInterface } from \"../models/user.interface\";\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { OneSignal } from 'onesignal-ngx';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UserService {\n apiAddress: string = environment.apiAddress;\n\n private urlSubject: BehaviorSubject = new BehaviorSubject(''); // URL inicial vacía\n public url$: Observable = this.urlSubject.asObservable();\n\n private nameSubject: BehaviorSubject = new BehaviorSubject('');\n public name$: Observable = this.nameSubject.asObservable();\n constructor(private http: HttpClient, private readonly router: Router, private readonly cookieService: CookieService, private oneSignal: OneSignal) {\n }\n changeUrl(newUrl: string): void {\n this.urlSubject.next(newUrl);\n console.log('URL cambiada en el servicio:', newUrl);\n const user = this.getUserLocalStorage();\n if (user) {\n user.picture = newUrl;\n localStorage.setItem('user', JSON.stringify(user));\n }\n }\n changeName(newName: string): void {\n this.nameSubject.next(newName);\n const user = this.getUserLocalStorage();\n if (user) {\n user.name = newName;\n localStorage.setItem('user', JSON.stringify(user))\n }\n\n }\n getUser() {\n return this.http.get(`${this.apiAddress}/user`);\n }\n updateUser(user: UserInterface) {\n return this.http.put(`${this.apiAddress}/user`, user);\n }\n\n\n logOutService() {\n return this.http.get(`${this.apiAddress}/logout`);\n }\n\n getUserLocalStorage(): UserInterface | undefined {\n const userStr = localStorage.getItem('user');\n if (!userStr) return undefined;\n const user: UserInterface = JSON.parse(userStr);\n return user;\n }\n createSubscription(subType: string, formData: any) {\n return this.http.post(`${this.apiAddress}/subscription/${subType}`, formData);\n }\n updatePassword(token: string, password: string, create: boolean) {\n const url = `${this.apiAddress}/user/password`;\n const body = { token, password: password, create };\n\n return this.http.post(url, body);\n }\n registerUser(name: string, email: string) {\n return this.http.post(`${this.apiAddress}/user`, { name, email })\n }\n loginUser(email: string, password: string) {\n return this.http.post(`${this.apiAddress}/login/manual`, { email, password })\n }\n forgotPassword(email: string) {\n return this.http.post(`${this.apiAddress}/user/forgot-password`, { email });\n }\n uploadImage(picture: FormData): Observable {\n return this.http.post(`${this.apiAddress}/user/upload/picture`, picture);\n }\n deleteUser() {\n return this.http.delete(`${this.apiAddress}/user/account/delete`);\n }\n getMessageCount() {\n return this.http.get(`${this.apiAddress}/user/account/messages/count`);\n }\n cancelSubscription() {\n return this.http.post(`${this.apiAddress}/subscription/cancel`, {});\n }\n deletePictureUser() {\n return this.http.delete(`${this.apiAddress}/user/delete/picture`);\n }\n\n logout() {\n this.logOutService().subscribe({\n next: value => {\n localStorage.removeItem('user');\n this.oneSignal.logout();\n this.router.navigate(['dashboard/login']);\n },\n error: err => {\n console.log('NO SE PUDO CERRAR SESIÓN')\n }\n })\n\n }\n}\n","import { Injectable } from '@angular/core';\nimport { environment } from 'src/environments/environment';\nimport { HttpClient } from '@angular/common/http';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class WhatsappBotService {\n apiAddress: string = environment.apiAddress;\n\n constructor(private http: HttpClient ) {}\n\n postBotWhatsapp(botId: string, phoneNumber: string, whatsapp_token: string, graphUrl: string, isEnabled: boolean) {\n return this.http.post(`${this.apiAddress}/bot/${botId}/whatsapp_bot`, {phone_number: phoneNumber,\n whatsapp_token: whatsapp_token,\n whatsapp_endpoint: graphUrl,\n is_enabled: isEnabled});\n }\n getBotWhatsapp(botId: string) {\n return this.http.get(`${this.apiAddress}/bot/${botId}/whatsapp_bot`);\n }\n updateBotWhatsapp(botId: string, phoneNumber: string, whatsapp_token: string, graphUrl: string, isEnabled: boolean) {\n const body = {\n phone_number: phoneNumber,\n whatsapp_token: whatsapp_token,\n whatsapp_endpoint: graphUrl,\n is_enabled: isEnabled\n };\n return this.http.put(`${this.apiAddress}/bot/${botId}/whatsapp_bot`, body);\n }\n}\n","import { Component, AfterViewInit, Renderer2, Inject } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\n\n@Component({\n selector: 'globot-survey',\n template:\n `\n
\n \n `,\n\n})\nexport class SurveyComponent implements AfterViewInit {\n constructor(private renderer: Renderer2, @Inject(DOCUMENT) private document: Document) {}\n\n ngAfterViewInit(): void {\n \n const script = this.renderer.createElement('script');\n script.src = \"https://embedsocial.com/cdn/ef.js\";\n script.id = \"EmbedSocialFormsScript\";\n this.renderer.appendChild(this.document.head, script);\n }\n}","
\n
\n
\n

{{bot.name}}

\n \n
\n
\n
\n
\n
\n
\n \n \"load\"\n \n \n
\n
\n
\n
\n \n \n \n \n \n \n \n \n \n Tengo problemas al procesar tu pregunta. Por favor, intenta de nuevo.\n
\n
\n \n \n \n \n \n \n \n \n \n Superaste el límite de 20 mensajes mensuales de tu plan actual. Suscríbete para realizar más consultas.\n
\n
\n \n \n
\n\n\n
\n \n \n
\n
Generado por Globot
\n
","import {\n AfterViewChecked,\n ChangeDetectorRef,\n Component,\n ElementRef,\n OnInit,\n ViewChild\n} from '@angular/core';\nimport { ChatInterface } from \"./chat.interface\";\nimport { BotService } from \"../../services/bot.service\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\nimport { ResponseGetBotInterface } from \"../../models/bot.interface\";\nimport { HttpErrorResponse, HttpResponse } from '@angular/common/http';\nimport { GlobalObservableService } from 'src/app/services/global-observable.service';\n\n@Component({\n selector: 'widget-conf',\n templateUrl: './chat.component.html',\n styleUrls: ['./chat.component.scss']\n})\nexport class ChatComponent implements OnInit, AfterViewChecked {\n\n @ViewChild('scrollMe') myScrollContainer!: ElementRef;\n @ViewChild('chatContainer') chatContainer!: ElementRef;\n\n haveError: boolean = false;\n subscriptionLimitReached: boolean = false;\n\n currentQuestion: string = '';\n previousQuestion: ChatInterface | null = null;\n botId: string = '';\n chatHistory: ChatInterface[] = [];\n onTransaction: boolean = false;\n\n bot: ResponseGetBotInterface | undefined;\n origin: string | undefined;\n\n constructor(private readonly router: Router,\n private readonly cd: ChangeDetectorRef,\n private readonly botService: BotService,\n private readonly aRoute: ActivatedRoute,\n private globalService: GlobalObservableService) {\n\n this.botId = this.aRoute.snapshot.paramMap.get('token') ?? '';\n this.origin = this.aRoute.snapshot.queryParamMap.get('o') ?? window.location.origin;\n\n if (this.botId.length === 0) {\n const sections = this.router.routerState.snapshot.url.split('/');\n this.botId = sections[3];\n }\n this.getBotInfo();\n\n this.chatHistory.pop();\n\n }\n\n ngAfterViewChecked(): void {\n this.scrollToBottom(0);\n }\n\n ngOnInit(): void {\n this.globalService.getObservable().subscribe(\n (message) => {\n if (message.type === 'botName') {\n this.bot!.name = message.data.name;\n }\n }\n );\n\n const storageKey = 'chatHistory_' + this.botId;\n\n // Carga el historial del chat desde el almacenamiento local\n const storedChatHistory = localStorage.getItem(storageKey);\n if (storedChatHistory) {\n this.chatHistory = JSON.parse(storedChatHistory);\n }\n this.scrollToBottom(0);\n }\n\n scrollToBottom(h: number): void {\n try {\n this.myScrollContainer.nativeElement.scrollTop = this.chatContainer.nativeElement.scrollHeight;\n } catch (err) { }\n this.cd.detectChanges();\n }\n\n sendQuestion() {\n const storageKey = 'chatHistory_' + this.botId;\n if (this.currentQuestion.length === 0) return;\n if (this.onTransaction) return;\n\n if (!this.haveError) {\n // Guardar la pregunta actual antes de enviarla\n this.previousQuestion = { message: this.currentQuestion, type: \"human\", date: new Date() };\n }\n\n this.haveError = false;\n const q: ChatInterface = { message: this.currentQuestion, type: \"human\", date: new Date() };\n this.chatHistory.push(q);\n this.currentQuestion = '';\n\n const loading: ChatInterface = { message: '...', type: \"loading\", date: new Date() };\n this.chatHistory.push(loading);\n this.onTransaction = true;\n this.botService.sendMessage({ prompt: q.message }, this.bot?.token!, this.origin, undefined).subscribe({\n next: (value: { response: string }) => {\n const q: ChatInterface = { message: value?.response, type: \"bot\", date: new Date() };\n this.chatHistory.pop();\n this.chatHistory.push(q);\n localStorage.setItem(storageKey, JSON.stringify(this.chatHistory));\n },\n complete: () => {\n this.onTransaction = false;\n this.cd.detectChanges();\n },\n error: (err: HttpErrorResponse) => {\n this.onTransaction = false;\n this.cd.detectChanges();\n if (err.error && err.error.code === 4) {\n this.subscriptionLimitReached = true;\n } else {\n this.haveError = true;\n }\n this.chatHistory.pop();\n }\n \n });\n }\n\n getBotInfo() {\n this.botService.getBot(this.botId).subscribe({\n next: value => {\n this.bot = value;\n localStorage.setItem('bot', JSON.stringify(value));\n this.verifyWelcomeMessage();\n }\n });\n }\n\n reset() {\n if (this.previousQuestion) {\n this.sendPreviousQuestion();\n return;\n }\n\n this.onTransaction = false;\n this.cd.detectChanges();\n this.previousQuestion = null;\n }\n\n sendPreviousQuestion() {\n this.haveError = false;\n const prevQuestion: ChatInterface = this.previousQuestion!;\n const loading: ChatInterface = { message: '...', type: \"loading\", date: new Date() };\n this.chatHistory.push(loading);\n\n this.botService.sendMessage({ prompt: prevQuestion.message }, this.bot?.token!, this.origin, undefined).subscribe({\n next: (response: HttpResponse) => {\n\n const q: ChatInterface = { message: response.body?.response, type: \"bot\", date: new Date() };\n this.chatHistory.pop(); // Eliminar el mensaje de carga\n this.chatHistory.push(q); // Agregar la respuesta del bot\n },\n complete: () => {\n this.haveError = false;\n this.onTransaction = false;\n this.cd.detectChanges();\n },\n error: err => {\n this.onTransaction = false;\n this.cd.detectChanges();\n this.haveError = true;\n this.chatHistory.pop();\n }\n });\n }\n\n\n formatMessage(message: string): string {\n // Reemplazar \\n con
para saltos de línea\n\n if (message === undefined)\n return '';\n \n const formattedMessage = message!.replace(/\\n/g, '
');\n\n // Procesar las listas con
    y
  • \n const listRegex = /(?:\\d+\\.\\s)(.*)(?=\\n|$)/g; // Regex para listas numeradas\n const listItems = formattedMessage.match(listRegex);\n if (listItems) {\n let listHtml = '
      ';\n listItems.forEach(item => {\n listHtml += `
    • ${item}
    • `;\n });\n listHtml += '
    ';\n return formattedMessage.replace(listRegex, listHtml);\n }\n return formattedMessage;\n }\n\n\n private verifyWelcomeMessage() {\n if (!this.bot?.enabled_welcome_message || this.bot!.welcome_message.length == 0) return;\n const messageWelcome: ChatInterface = { message: this.bot!.welcome_message, type: \"bot\", date: new Date() }\n this.chatHistory.push(messageWelcome);\n }\n clearChat() {\n\n this.chatHistory = [];\n\n const storageKey = 'chatHistory_' + this.botId;\n localStorage.removeItem(storageKey);\n\n this.haveError = false;\n this.onTransaction = false;\n this.previousQuestion = null;\n this.cd.detectChanges();\n }\n\n}\n","import { Component, Input, SecurityContext } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { ChatHistoryGroup } from 'src/app/models/history.interface';\n\n@Component({\n selector: 'globot-chat-messages-list',\n template: `\n
    \n
    \n
    \n {{ group.date }}\n
    \n \n
    \n \n
    \n

    {{ message.user_prompt }}

    \n

    \n {{ message.name || 'Anónimo' }} | {{ message.created_at | date:'HH:mm' }}\n

    \n
    \n\n \n
    \n
    \n
    \n
    \n
    \n \n

    \n {{ message.user_in_control?.name }} | {{ message.created_at | date:'HH:mm' }}\n

    \n

    \n Chatbot | {{ message.created_at | date:'HH:mm' }}\n

    \n
    \n
    \n
    \n
    \n
    \n `,\n styles: [\n `\n .message {\n display: flex;\n flex-direction: column-reverse;\n flex-grow: 1;\n height: 100%;\n padding-bottom: 10px;\n overflow: hidden;\n }\n \n .message .user {\n font-size: 14px;\n border-radius: 14px;\n background: #7B5CF5;\n border-color: #CCCCCC;\n color: #FFFFFF;\n width: fit-content;\n padding: 16px;\n margin: 15px 0 0 70px;\n }\n .user{\n white-space: pre-wrap;\n }\n \n .message .bot {\n color: #1E293B;\n width: fit-content;\n border-radius: 12px;\n background: rgba(203, 213, 225, 0.35);\n font-size: 14px;\n font-style: normal;\n font-weight: 400;\n line-height: 24px;\n padding: 16px;\n margin-right: 70px;\n margin-left: 10px;\n margin-bottom: 0;\n }\n \n .scrollable {\n flex-grow: 1;\n overflow-y: auto;\n max-height: 480px;\n \n }\n \n .response-message {\n color: #64748B;\n font-size: 12px;\n font-style: normal;\n font-weight: 400;\n line-height: 24px;\n }\n\n .date-header {\n text-align: center;\n position: relative;\n margin: 10px;\n }\n \n .date-header::before {\n content: \"\";\n position: absolute;\n top: 50%;\n left: 0;\n right: 0;\n border-top: 1px solid #ccc;\n z-index: 1;\n }\n \n .date-text {\n position: relative;\n display: inline-block;\n padding: 0 15px;\n background: #FFF;\n z-index: 2;\n color: #666;\n font-size: 0.9em;\n }\n @media (max-width: 1024px) {\n \n .message {\n width: 100%;\n }\n .message .user {\n \n padding: 16px;\n margin: 15px 0 0 auto;\n }\n \n }\n `\n ]\n})\nexport class ChatMessagesListComponent {\n @Input() chatGroups: ChatHistoryGroup[] = [];\n\n constructor(private sanitizer: DomSanitizer) {}\n\n formatMessage(text: string) {\n let formattedText = text\n .replace(/\\*\\*(.*?)\\*\\*/g, '$1')\n .replace(/ - /g, '
    - ')\n .replace(/(\\d{4}-\\d{2}-\\d{2})/g, '$1')\n .replace(/(\\d{1,3}(?:\\.\\d{3})*(?:,\\d+)?)/g, '$1');\n \n return this.sanitizer.sanitize(SecurityContext.HTML, formattedText);\n }\n\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'globot-email-password',\n templateUrl: './email-password.component.html',\n styleUrls: ['./email-password.component.scss']\n})\nexport class EmailPasswordComponent {\n @Input() content: string = '';\n}\n","
    \n
    \n \"send\"\n
    \n

    ¡Te acabamos de enviar un email!

    \n {{content}}\n
    \n\n
    \n\n
    ","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'globot-profile-picture',\n template: \n `\n
    \n {{ initial }}\n
    \n \"Profile`,\n styles: [\n `\n .profile-picture {\n border-radius: 50%;\n display: flex;\n justify-content: center;\n align-items: center;\n color: white;\n font-weight: bold;\n }\n `\n ]\n})\nexport class ProfilePictureComponent implements OnInit{\n @Input() name: string = '';\n @Input() imageUrl: string | null = null;\n @Input() size: number = 32;\n\n initial: string = '';\n backgroundColor: string = '#B869DE'; // Color fijo\n fontSize = 16;\n\n ngOnInit() {\n this.initial = this.name ? this.name.charAt(0).toUpperCase() : ''; // Maneja caso de string vacío\n this.fontSize = this.size / 2;\n }\n //Método comentado para generar colores aleatorios\n // Este método está desactivado y se usa un color fijo por ahora\n /* getRandomColor(): string {\n // NOSONAR\n const letters = '0123456789ABCDEF';\n let color = '#';\n for (let i = 0; i < 6; i++) {\n color += letters[Math.floor(Math.random() * 16)];\n }\n return color;\n }*/\n}","import { Component } from '@angular/core';\n\n\n\n\n@Component({\n selector: 'globot-ready-account',\n templateUrl: './ready-account.component.html',\n styleUrls: ['./ready-account.component.scss']\n})\nexport class ReadyAccountComponent {\n\n options= {\n path: '/assets/lotties/check.json',\n };\n}","
    \n \n
    \n

    ¡Listo!

    \n Ya puedes iniciar sesión en Globot.\n
    \n Ir a inicio de sesión\n
    ","import { Component } from '@angular/core';\n\n@Component({\n selector: 'globot-banner',\n template: `\n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n
    \n

    ¡Desbloquea todo el potencial de tu chatbot!

    \n

    Suscríbete ahora y no te pierdas la oportunidad de mejorar tu servicio al cliente.

    \n \n
    \n \n
    \n \n \n \n `,\n styles: [\n `\n .container{\n display:flex;\n padding: 20px 32px;\n gap: 28px;\n align-items: center;\n border-radius: 12px;\n border: 1px solid var(--Secondary-1, #B869DE);\n background: #FBF1FF; \n width:400px;\n min-height: 206px;\n position: fixed; \n right: 3rem;\n bottom: 3.563rem;\n }\n\n h4{\n color: var(--Primary-1, #603FDF);\n font-size: 16px;\n font-style: normal;\n font-weight: 700 !important;\n line-height: 22px; /* 137.5% */\n }\n p{\n font-size: 13px;\n font-weight: 500;\n }\n\n .content{\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n \n }\n\n .btn{\n display: flex;\n padding: 11px 13px;\n justify-content: center;\n font-size: 14.667px;\n align-items: center;\n gap: 8px;\n border-radius: 3.667px;\n background: var(--Primary-2, #7B5CF5);\n color: var(--Light-Text-Inverse-Text, #FFF);\n border:none;\n cursor:pointer;\n }\n\n @media screen and (max-width: 768px) {\n .container{ \n padding: 11.7px;\n position: relative;\n gap: 16px;\n width: 100%;\n right: 1px;\n bottom: 1rem;\n left: 1px;\n margin-top: 3rem;\n }\n }\n `\n ]\n})\nexport class BannerComponent {\n showPlansDialog: boolean = false;\n\n\n}\n","import { Component, Input, OnInit } from \"@angular/core\";\nimport { GetDataSourceResponse } from \"../../../../models/data-source.interface\";\nimport { SpinnerService } from \"../../../../services/spinner.service\";\nimport { DataSourceService } from \"../../../../services/data-source.service\";\nimport { ConfirmationService, ConfirmEventType, MessageService } from \"primeng/api\";\n\n@Component({\n selector: 'globot-card-data-source',\n templateUrl: `card-data-source.component.html`,\n styleUrls: [`card-data-source.component.scss`]\n})\nexport class CardDataSourceComponent implements OnInit {\n\n @Input() dataSources: GetDataSourceResponse[] = [];\n @Input() botId: string = '';\n\n classChip: string | undefined = undefined\n\n constructor(private readonly dataSource: DataSourceService,\n private readonly ss: SpinnerService,\n private confirmationService: ConfirmationService,\n private messageService: MessageService) {\n\n }\n\n ngOnInit(): void {\n\n }\n\n deleteDataSource(id: string) {\n this.confirmationService.confirm({\n message: '¿Deseas eliminar esta fuente de datos? Esta acción no se puede revertir.',\n icon: 'pi pi-exclamation-triangle',\n accept: () => {\n this.ss.setHttpProgressStatus(true);\n this.dataSource.deleteDataSource(this.botId, id).subscribe(\n () => {\n this.ss.setHttpProgressStatus(false);\n this.messageService.add({\n severity: 'success',\n summary: 'Acción exitosa',\n detail: '¡Fuente de datos eliminada!'\n });\n \n /*this.dataSources = this.dataSources.filter((dataSource) => dataSource.id !== id);*/\n this.dataSources = this.dataSources.map((dataSource) => {\n dataSource.children = dataSource.children.filter((child) => child.id !== id);\n return dataSource;\n }).filter((dataSource) => dataSource.id !== id);\n\n },\n () => {\n this.ss.setHttpProgressStatus(false);\n this.messageService.add({\n severity: 'error',\n summary: 'Acción fallida',\n detail: 'La fuente de datos no pudo eliminarse'\n });\n }\n );\n this.confirmationService.close();\n },\n reject: (type: any) => {\n switch (type) {\n case ConfirmEventType.REJECT:\n this.messageService.add({\n severity: 'warn',\n summary: 'Acción cancelada',\n detail: 'Eliminar fuente de datos cancelado'\n });\n break;\n case ConfirmEventType.CANCEL:\n this.messageService.add({\n severity: 'warn',\n summary: 'Acción cancelada',\n detail: 'Eliminar fuente de datos cancelado'\n });\n break;\n }\n this.confirmationService.close();\n }\n });\n }\n\n getType(type: string) {\n switch (type) {\n case 'url':\n return 'Sitio web'\n case 'pdf':\n case 'csv':\n case 'txt':\n case 'xls':\n case 'xlsx':\n case 'doc':\n case 'docx':\n return 'Archivo';\n default:\n return 'Desconocido'\n }\n }\n\n getStatus(status: string) {\n let chipClass: string;\n let statusText: string;\n\n switch (status) {\n case 'COMPLETE':\n chipClass = 'chip chip-online';\n statusText = 'Conectado';\n break;\n case 'PENDING':\n chipClass = 'chip chip-pending';\n statusText = 'En espera';\n break;\n case 'FAILED':\n chipClass = 'chip chip-failed';\n statusText = 'Fallido';\n break;\n default:\n chipClass = 'chip';\n statusText = 'Desconocido';\n }\n\n return { chipClass, statusText }; // Devuelve ambos valores como un objeto\n }\n\n getIcon(type: string) {\n switch (type) {\n case 'url':\n return 'pi pi-globe'\n case 'pdf':\n case 'csv':\n case 'txt':\n case 'xls':\n case 'xlsx':\n case 'doc':\n case 'docx':\n return 'pi pi-file' \n default:\n return 'pi pi-file'\n }\n }\n}\n","\n\n \n \n
    \n
    \n
    \n
    \n \n \n \n
    \n

    {{ getType(dataSource.type)+\" (\"+dataSource.children.length+\")\" }}:

    \n
    \n
    \n

    {{ dataSource.path }}

    \n
    \n
    \n\n
    \n
    \n {{ getStatus(dataSource.status).statusText }}\n
    \n \n
    \n
    \n
    \n \n \n
    \n \n \n
    \n
    \n {{ getStatus(childSource.status).statusText }}\n
    \n \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n \n \n \n
    \n

    {{ getType(dataSource.type) }}:

    \n
    \n \n
    \n

    {{ dataSource.path }}

    \n
    \n
    \n \n \n
    \n
    \n\n\n\n\n\n \n

    Eliminar Fuente de datos

    \n
    \n \n \n \n \n
    ","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {ListStepsOnBoardingComponent} from \"./steps/list-steps-on-boarding.component\";\nimport {ButtonModule} from \"primeng/button\";\nimport {NameBotStepComponent} from \"./steps/name-bot-step.component\";\nimport {ChipsModule} from \"primeng/chips\";\nimport {FormsModule, ReactiveFormsModule} from \"@angular/forms\";\nimport {SelectDataSourceComponent} from \"./steps/select-data-source.component\";\nimport {WebDataSourceComponent} from \"./steps/web-data-source.component\";\nimport {UploadFileComponent} from \"./steps/upload-file.component\";\nimport {ProcessChatbotComponent} from \"./steps/process-chatbot.component\";\nimport {ReadyStepComponent} from \"./steps/ready-step.component\";\nimport {RouterLink} from \"@angular/router\";\nimport {SelectPersonalityComponent} from \"./select-personallity/select-personallity.component\";\nimport {CardDataSourceComponent} from \"./card-data-source/card-data-source.component\";\nimport {ConfirmDialogModule} from \"primeng/confirmdialog\";\nimport {RippleModule} from \"primeng/ripple\";\nimport { NoInfoComponent } from './no-info/no-info.component';\nimport { DomainConfigComponent } from '../edit-bot/config/tabs/domain-config/domain-config.component';\nimport { TooltipModule } from 'primeng/tooltip';\nimport {ButtonGlobotComponent} from \"../../../atoms/button-globot/button-globot.component\";\nimport {ButtonGlobotStepsComponent} from \"../../../molecules/buttonsSteps/button-globot-steps.component\";\nimport { SurveyComponent } from 'src/app/survey/survey.component';\nimport { EmbedHtmlComponent } from './embed-html/embed-html.component';\nimport { EmbedWordpressComponent } from './embed-wordpress/embed-wordpress.component';\nimport {MessagesModule} from \"primeng/messages\";\nimport { DiscordBotComponent } from './discord-bot/discord-bot.component';\nimport { InputSwitchModule } from 'primeng/inputswitch';\nimport { MessengerBotComponent } from './messenger-bot/messenger-bot.component';\nimport { SlackBotComponent } from './slack-bot/slack-bot.component';\nimport { InstagramBotComponent } from './instagram-bot/instagram-bot.component';\nimport { WhatsappBotComponent } from './whatsapp-bot/whatsapp-bot/whatsapp-bot.component';\nimport { KeyFilterModule } from 'primeng/keyfilter';\nimport { CardsRecordsComponent } from '../edit-bot/config/cards-records/cards-records.component';\nimport { ChannelSelectorComponent } from '../edit-bot/config/channel-selector/channel-selector.component';\nimport { MultiSelectModule } from 'primeng/multiselect';\nimport { MaxTextPipe } from 'src/app/pipes/max-text.pipe';\nimport { NotAvailableComponent } from './not-available/not-available.component';\nimport { BannerComponent } from './banner/banner.component';\nimport { DialogModule } from 'primeng/dialog';\nimport { ProfileComponent } from '../edit-user/profile/profile.component';\nimport { SubscriptionPlanComponent } from '../edit-user/subscription-plan/subscription-plan.component';\nimport { UserBillingComponent } from '../edit-user/user-billing/user-billing.component';\nimport { DeleteAccountComponent } from '../edit-user/delete-account/delete-account.component';\nimport { EmailPasswordComponent } from '../../components/email-password/email-password.component';\nimport { ReadyAccountComponent } from '../../components/ready-account/ready-account.component';\nimport { LottieComponent } from \"ngx-lottie\";\nimport { ImageCropperModule } from 'ngx-image-cropper';\nimport { ProgressSpinnerModule } from 'primeng/progressspinner';\nimport { ProfilePictureComponent } from '../../components/profile-picture/profile-picture.component';\nimport {ProgressBarModule} from 'primeng/progressbar';\nimport { AccordionModule } from 'primeng/accordion';\nimport { StatisticsComponent } from '../dashboard/statistics/statistics.component';\nimport { LeadsComponent } from '../dashboard/leads/leads.component';\nimport { CalendarModule } from 'primeng/calendar';\nimport { ChartModule } from 'primeng/chart';\nimport { NgChartsModule } from 'ng2-charts'\nimport { TableModule } from 'primeng/table';\nimport { CustomDatePipe } from 'src/app/pipes/custom-date.pipe';\nimport { TypeSubscriptionPlansComponent } from './type-subscription-plans/type-subscription-plans.component';\nimport { PayNotificationComponent } from './pay-notification/pay-notification.component';\nimport { ExpiredPlanComponent } from './expired-plan/expired-plan.component';\nimport { ConversationCardsComponent } from '../globot-live/conversation-cards/conversation-cards.component';\nimport { AutoCompleteModule } from 'primeng/autocomplete';\nimport { SearchFilterPipe } from 'src/app/pipes/search-filter.pipe';\nimport { InformationSectionComponent } from '../globot-live/information-section/information-section.component';\nimport { CustomerFormComponent } from '../globot-live/customer-form/customer-form.component';\nimport { SpinnerCheckComponent } from 'src/app/atoms/spinner-check/spinner-check.component';\nimport { ClientsComponent } from '../edit-bot/clients/clients.component';\nimport { ChatMessagesListComponent } from '../../components/chat-messages-list/chat-messages-list.component';\nimport { PreferencesBoxComponent } from '../globot-live/preferences-box/preferences-box.component';\nimport { RadioButtonModule } from 'primeng/radiobutton';\n\n\n\n@NgModule({\n declarations: [\n ListStepsOnBoardingComponent,\n NameBotStepComponent,\n SelectDataSourceComponent,\n WebDataSourceComponent,\n UploadFileComponent,\n ProcessChatbotComponent,\n ReadyStepComponent,\n SelectPersonalityComponent,\n CardDataSourceComponent,\n NoInfoComponent,\n DomainConfigComponent,\n SurveyComponent,\n EmbedHtmlComponent,\n EmbedWordpressComponent,\n DiscordBotComponent,\n MessengerBotComponent,\n SlackBotComponent,\n InstagramBotComponent,\n WhatsappBotComponent,\n CardsRecordsComponent,\n ChannelSelectorComponent,\n MaxTextPipe,\n NotAvailableComponent,\n BannerComponent,\n ProfileComponent,\n SubscriptionPlanComponent,\n UserBillingComponent,\n DeleteAccountComponent,\n EmailPasswordComponent,\n ReadyAccountComponent,\n ProfilePictureComponent,\n StatisticsComponent,\n LeadsComponent,\n CustomDatePipe,\n TypeSubscriptionPlansComponent,\n PayNotificationComponent,\n ExpiredPlanComponent,\n ConversationCardsComponent,\n SearchFilterPipe,\n InformationSectionComponent,\n CustomerFormComponent,\n SpinnerCheckComponent,\n ClientsComponent,\n ChatMessagesListComponent,\n PreferencesBoxComponent\n ],\n imports: [\n CommonModule,\n ButtonModule,\n ChipsModule,\n FormsModule,\n RouterLink,\n DialogModule,\n ConfirmDialogModule,\n RippleModule,\n ReactiveFormsModule,\n TooltipModule,\n ButtonGlobotComponent,\n ButtonGlobotStepsComponent,\n MessagesModule,\n InputSwitchModule,\n KeyFilterModule,\n MultiSelectModule,\n LottieComponent,\n ImageCropperModule,\n ProgressSpinnerModule,\n ProgressBarModule,\n AccordionModule,\n CalendarModule,\n ChartModule,\n NgChartsModule,\n TableModule,\n AutoCompleteModule,\n RadioButtonModule\n\n ],\n exports: [\n ListStepsOnBoardingComponent,\n NameBotStepComponent,\n SelectDataSourceComponent,\n WebDataSourceComponent,\n UploadFileComponent,\n ProcessChatbotComponent,\n ReadyStepComponent,\n SelectPersonalityComponent,\n CardDataSourceComponent,\n NoInfoComponent,\n DomainConfigComponent,\n SurveyComponent,\n EmbedHtmlComponent,\n EmbedWordpressComponent,\n DiscordBotComponent,\n MessengerBotComponent,\n SlackBotComponent,\n InstagramBotComponent,\n WhatsappBotComponent,\n CardsRecordsComponent,\n ChannelSelectorComponent,\n NotAvailableComponent,\n BannerComponent,\n ProfileComponent,\n SubscriptionPlanComponent,\n UserBillingComponent,\n DeleteAccountComponent,\n EmailPasswordComponent,\n ReadyAccountComponent,\n ProfilePictureComponent,\n StatisticsComponent,\n LeadsComponent,\n TypeSubscriptionPlansComponent,\n PayNotificationComponent,\n ExpiredPlanComponent,\n ConversationCardsComponent,\n SearchFilterPipe,\n InformationSectionComponent,\n CustomerFormComponent,\n SpinnerCheckComponent,\n ChatMessagesListComponent,\n PreferencesBoxComponent\n ]\n})\nexport class ComponentsDashboardModule {\n}","import { ChangeDetectorRef, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { DiscordBotService } from 'src/app/services/discord-bot.service';\nimport { DiscordBot } from 'src/app/models/discord-bot.interface';\nimport { GetBotResponse } from 'src/app/models/bot.interface';\nimport { MessageService } from 'primeng/api';\nimport { InputSwitchOnChangeEvent } from 'primeng/inputswitch';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\n\n\n@Component({\n selector: 'globot-discord-bot',\n templateUrl: './discord-bot.component.html',\n styleUrls: ['./discord-bot.component.scss']\n})\nexport class DiscordBotComponent {\n \n @Input() bot?: GetBotResponse;\n @Output() statusChange = new EventEmitter<{status: string, style: { [key: string]: string }}>();\n\n serverId!: number;\n discordBot: FormGroup;\n channelNames: string[] = [];\n is_enabled: boolean = false;\n checked: boolean = false;\n serverName!: string;\n \n constructor(private fb: FormBuilder,private discordBotService: DiscordBotService, private ms: MessageService, private changeDetectorRef: ChangeDetectorRef) { \n this.discordBot = this.fb.group({\n serverId: [{value: '', disabled: false}, Validators.required],\n channelNames: [''],\n checked: [false],\n serverName: ['']\n });\n }\n \n ngOnInit(): void {\n this.discordBotService.getBotDiscord(this.bot!.id).subscribe({\n next: response => {\n this.serverId = response.data.server_id;\n this.is_enabled = response.data.is_enabled;\n this.checked = this.is_enabled; \n this.serverName = response.data.server_name;\n this.setStatus();\n\n if (response.data.channel_name) {\n this.channelNames = response.data.channel_name.split(','); \n } else {\n \n this.channelNames = [];\n }\n this.discordBot.patchValue({\n serverId: this.serverId,\n channelNames: this.channelNames,\n checked: this.is_enabled,\n serverName: this.serverName\n \n }); \n },\n error: err => {\n console.error('Hubo un error al obtener el server_id:', err);\n this.setStatus();\n }\n });\n } \n \n \n\n onSubmitServerId() {\n let server_id = this.discordBot.get('serverId')!.value;\n let server_name = this.discordBot.get('serverName')!.value;\n if (!server_id) {\n this.showMessage('error', 'Acción fallida', 'Este campo es requerido para conectar tu chatbot al servidor.');\n return;\n }\n \n this.discordBot.patchValue({serverId: server_id, serverName: server_name});\n \n if (this.bot && this.bot.id) {\n if (this.serverId) {\n this.updateDiscord(server_id, server_name);\n } else {\n this.postDiscord(server_id, server_name);\n }\n } else {\n this.showMessage('error', 'Acción fallida', 'El ID del servidor no es válido');\n }\n this.serverId = server_id;\n this.setStatus();\n this.changeDetectorRef.detectChanges();\n\n }\n \n updateDiscord(server_id: number, server_name: string) {\n this.discordBotService.updateBotDiscord(this.bot!.id, undefined!, server_id, undefined, server_name).subscribe({\n next: response => {\n this.showMessage('success', 'Acción exitosa', '¡ID del servidor actualizado!');\n },\n error: err => {\n this.showMessage('error', 'Acción fallida', 'ID ya asociado a otro chatbot. Ingrese un ID único y vuelva a intentarlo');\n }\n });\n }\n \n postDiscord(server_id: number, server_name: string) {\n this.discordBotService.postBotDiscord(this.bot!.id, server_id, this.is_enabled || false, server_name).subscribe({\n next: response => {\n this.showMessage('success', 'Acción exitosa', '¡Bot de Discord agregado con éxito!');\n },\n error: err => {\n this.showMessage('error', 'Acción fallida', 'ID ya asociado a otro chatbot. Ingrese un ID único y vuelva a intentarlo.');\n }\n });\n }\n \n \n showMessage(severity :string, summary: string, detail: string){\n this.ms.add({ key: 'tst', severity: severity, summary: summary, detail: detail });\n }\n\n \n\n\n linkBot(){\n window.open('https://discord.com/api/oauth2/authorize?client_id=1179412347153043527&permissions=8&scope=bot');\n }\n onSubmitChannels(){\n this.channelNames = this.discordBot.get('channelNames')!.value;\n let channel_name = this.channelNames.join(',');\n \n \n this.discordBot.patchValue({channelNames: [...this.channelNames]});\n \n this.discordBotService.updateBotDiscord(this.bot!.id, this.is_enabled || false, undefined, channel_name).subscribe({\n next: response => {\n \n this.ms.add({ key: 'tst', severity: 'success', summary: 'Acción exitosa', detail: '¡Canales de Discord agregados con éxito!' });\n \n },\n error: err => {\n \n this.ms.add({ key: 'tst', severity: 'error', summary: 'Acción fallida', detail: 'Hubo un problema al actualizar los canales.' });\n }\n });\n }\n switchChanged(event: InputSwitchOnChangeEvent) {\n this.checked = event.checked;\n this.discordBotService.updateBotDiscord(this.bot!.id, this.checked).subscribe({\n next: response => {\n this.is_enabled = event.checked;\n this.setStatus();\n if (this.checked) {\n this.ms.add({ key: 'tst', severity: 'success', summary: 'Acción exitosa', detail: '¡Discord Bot habilitado!' });\n } else {\n this.ms.add({ key: 'tst', severity: 'success', summary: 'Acción exitosa', detail: '¡Discord Bot deshabilitado!' });\n }\n },\n error: err => {\n this.ms.add({ key: 'tst', severity: 'error', summary: 'Acción fallida', detail: 'Hubo un problema con el habilitado de tu Discord Bot.' });\n\n }\n });\n \n }\n enableInputs() {\n this.discordBot.get('serverId')?.enable();\n \n }\n setStatus() {\n let status;\n if (!this.serverId) {\n status = {status:'Sin configurar',\n style:{\n 'padding-left': '10px',\n 'padding-right': '10px',\n 'background': '#EDEDED',\n 'color': '#6B6B6B'\n }};\n } else if (this.is_enabled) {\n status = {status:'Activo',\n style:{\n 'padding-left': '10px',\n 'padding-right': '10px',\n 'background': '#BBF7D0',\n 'color': '#16A34A'\n }};\n } else {\n status = {status:'Inactivo',\n style:{\n 'padding-left': '10px',\n 'padding-right': '10px',\n 'background': '#FFF9CE',\n 'color': '#E0A53E'\n }};\n }\n this.statusChange.emit(status);\n }\n}\n \n \n\n \n \n ","
    \n \n \n \n
    \n

    Asegúrate de tener acceso como administrador. Si no eres tú quién administra el sitio, contáctate con la\n persona que tenga acceso.

    \n
    \n
    \n
    \n
    \n
    \n

    1. Ingresa el ID de tu servidor de discord. Lo encuentras si vas a Configuraciones / Avanzado /\n Activar modo desarrollador.\n Luego de activar este modo, haz clic derecho al icono del servidor y luego a “copiar ID del servidor”.

    \n
    \n \n \n \n \n \n \n
    \n
    \n
    \n

    2. Ingresa el nombre de los canales donde quieres que esté disponible Globot. Si no ingresas ninguno\n quedará por defecto en todos los canales.

    \n
    \n \n \n
    \n
    \n
    \n

    3. Descarga e instala Globot desde la siguiente dirección:\n\n \n

    \n\n

    4. ¡Listo! Activa tu chatbot en este canal y para llamarlo, solo menciona \n \"@globot\"como lo harías con cualquier otro usuario.

    \n
    \n \n Activar chatbot en este canal\n
    \n
    \n
    \n
    ","import {Component, Input, OnInit, ViewChild} from '@angular/core';\nimport {ResponseGetBotInterface} from \"../../../../models/bot.interface\";\nimport {ActivatedRoute, Router} from \"@angular/router\";\nimport {SpinnerService} from \"../../../../services/spinner.service\";\nimport {BotService} from \"../../../../services/bot.service\";\nimport {DomainService} from \"../../../../services/domain.service\";\nimport {Clipboard} from \"@angular/cdk/clipboard\";\nimport { Tooltip } from 'primeng/tooltip';\nimport { GlobalObservableService } from 'src/app/services/global-observable.service';\n\n\n@Component({\n selector: 'globot-embed-html',\n template: `\n \n
    \n

    1. Copia el siguiente código:

    \n
    \n            <script src=\"{{ route }}\" type=\"text/javascript\" defer=\"\"></script>\n                <script defer=\"\">{{ codeJS }}</script>\n            \n            \n        
    \n

    2. Pega el código en tu index.html antes del <body>, haz esto en la página que desees que se muestre el chatbot.

    \n\n

    3. ¡Listo! tu chatbot se encuentra listo para interactuar.

    \n
    \n
    \n \n
    \n
    \n

    1. Copia el siguiente codigo:

    \n
    \n
    \n
    \n \n <script src=\"{{ route }}\" type=\"text/javascript\" defer=\"\"></script>\n <script defer=\"\">{{ codeJS }}\n </script>\n \n
    \n
    \n \n \n
    \n
    \n
    \n

    2. Pega el código en tu index.html antes de </body>, haz esto en la página que desees que se muestre el chatbot.

    \n
    \n
    \n

    3. ¡Listo!Tu chatbot se encontrará disponible para interactuar en la esquina inferior derecha de tu sitio.

    \n
    \n
    \n
    \n \n `,\n styles: [\n `\n p{\n color: #27283B;\n font-family: Inter,serif;\n font-size: 16px;\n font-style: normal;\n font-weight: 500;\n line-height: 24px; /* 150% */\n }\n .pi-copy {\n position: absolute;\n right: 21.5px;\n bottom: 70px;\n color: #B869DE;\n cursor: pointer;\n transition: transform 0.3s ease-in-out;\n font-size: 22px;\n\n }\n\n .embed {\n code {\n padding: 8px 16px;\n border-radius: 4px;\n border: 1px solid #CBD5E1;\n background: var(--neutral-1, #FFF);\n display: block;\n text-wrap: wrap;\n }\n }\n \n // Mobile\n @media (max-width: 768px) {\n .embed{\n code{\n padding: 0;\n }\n }\n .pi-copy {\n position: relative;\n top: 10px;\n }\n p{\n font-size: 16px;\n font-weight: 400;\n line-height: 24px\n }\n .copy{\n display: flex;\n justify-content: space-between;\n\n }\n .icon{\n display:flex;\n align-items: end;\n padding: 2.625px 4.958px;\n \n }\n .cod{\n padding: 8px 16px;\n max-width: 290px;\n overflow: auto;\n }\n \n .grid{\n display:flex;\n flex-direction:column;\n flex-wrap: wrap; \n gap:16px\n }\n }\n \n `\n ]\n})\nexport class EmbedHtmlComponent implements OnInit{\n @Input() bot: ResponseGetBotInterface | undefined;\n @ViewChild(Tooltip) tooltip!: Tooltip;\n\n\n codeJS: string = 'document.addEventListener(\\'DOMContentLoaded\\', function () {\\n' +\n ' var host = window.location.host; \\n'+\n ' var chatConfig = {\\n' +\n ' \\thost: host,\\n' +\n ' };\\n' +\n ' initializeChatWidget(chatConfig);\\n' +\n '});';\n\n isMobile = false;\n domains!: string[];\n route:string =\"https://backoffice.globot.ai/assets/chat.js\";\n \n\n constructor(\n private aRoute: ActivatedRoute,\n private router: Router,\n private ss: SpinnerService,\n private botService: BotService,\n private readonly domainService: DomainService,\n private clipboard: Clipboard,\n private globalObservable:GlobalObservableService\n \n ){}\n\n ngOnInit(): void {\n\n this.isMobile = window.innerWidth < 768;\n\n if(window.location.href.includes('localhost') || window.location.href.includes('127.0.0.1') || window.location.href.includes('backoffice-dev')){\n this.route = 'https://backoffice-dev.globot.ai/assets/chat-dev.js'\n }\n\n if(window.location.href.includes('backoffice-qa')){\n this.route = 'https://backoffice-qa.globot.ai/assets/chat-qa.js'\n }\n console.log(\"ESTOY EN EMBED\")\n this.getDomainsByBotId();\n this.getCodeJs();\n }\n\n getDomainsByBotId(){\n this.domainService.getDomains(this.bot?.id!).subscribe({\n next: value => {\n this.domains = value.data.map(domainData => domainData.domain);\n },\n error: (err) => {\n if (err.status === 401) {\n this.globalObservable.publish('logOut');\n this.router.navigate(['dashboard//login']);\n } \n }\n })\n }\n\n getCodeJs() {\n this.codeJS = '\\ndocument.addEventListener(\\'DOMContentLoaded\\', function () {\\n';\n this.codeJS += '\\tvar chatConfig = {\\n';\n this.codeJS += '\\t\\ttoken: \"'+ this.bot?.token +'\",\\n';\n this.codeJS += '\\t\\tbotId: \"'+ this.bot?.id +'\",\\n';\n this.codeJS += '\\t\\tdomains: '+ JSON.stringify(this.domains) +',\\n';\n this.codeJS += '\\t};\\n';\n this.codeJS += '\\tinitializeChatWidget(chatConfig);\\n';\n this.codeJS += '});\\n';\n }\n\n copyCodeToClipboard() {\n const code = `\n `;\n this.clipboard.copy(code);\n this.tooltip.activate();\n } \n}\n","import {Component, Input} from '@angular/core';\nimport {ResponseGetBotInterface} from \"../../../../models/bot.interface\";\nimport {Clipboard} from \"@angular/cdk/clipboard\";\nimport {DomSanitizer} from \"@angular/platform-browser\";\n\n@Component({\n selector: 'globot-embed-wordpress',\n template: `\n
    \n \n \n \n

    Asegúrate de tener acceso como administrador. Si no eres tú quién\n administra el sitio, contáctate con la persona que tenga acceso.

    \n
    \n
    \n
    \n

    1. En Wordpress anda a Plugins / Añadir nuevo / Subir plugin

    \n

    2. Carga el siguiente archivo:\n \n

    \n

    3. Dale click a “Instalar ahora” y activa el plugin.

    \n

    4. Anda al plugin de Globot e ingresa los siguientes datos:

    \n
    \n
    \n

    Token:

    \n

    Bot ID:

    \n
    \n
    \n \n \n \n \n \n \n \n \n
    \n
    \n

    5. ¡Listo! Tu chatbot se encontrará disponible para interactuar en la esquina inferior derecha de tu sitio.

    \n
    \n \n
    \n \n `,\n styles: [\n `\n input {\n width: 350px;\n }\n\n p {\n color: var(--Contrast-1, #27283B);\n font-family: Inter, serif;\n font-size: 16px;\n font-style: normal;\n font-weight: 500;\n line-height: 24px; /* 150% */\n padding: 8px;\n }\n\n .text-message {\n color: #27283B;\n font-family: Inter, serif;\n font-size: 16px;\n font-style: normal;\n font-weight: 600;\n line-height: 24px; /* 150% */\n }\n\n .btn-download {\n padding: 8px 12px;\n justify-content: center;\n align-items: center;\n gap: 8px;\n\n border: none;\n\n cursor: pointer;\n\n border-radius: 4px;\n background: var(--Grey-2, #EEF2FF);\n\n color: var(--Primary-2, #7B5CF5);\n font-family: Inter, serif;\n font-size: 14px;\n font-style: normal;\n font-weight: 500;\n line-height: 20px; /* 142.857% */\n }\n\n .pi-copy {\n margin-left: 8px;\n cursor: pointer;\n transition: transform 0.3s ease-in-out;\n }\n \n //Mobile\n @media screen and (max-width: 768px) {\n input{\n width: 100%;\n }\n p{\n font-size: 14px;\n }\n .text-message{\n font-size: 14px;\n }\n .flex{\n padding-right: 10px;\n }\n .flex p{\n white-space: nowrap;\n }\n\n }\n `\n ]\n})\nexport class EmbedWordpressComponent {\n @Input() bot!: ResponseGetBotInterface | undefined;\n zipFileName = 'globot.zip';\n constructor(private clipboard: Clipboard,private sanitizer: DomSanitizer) {\n origin = window.location.origin;\n if(origin.includes('backoffice-dev')){this.zipFileName = 'globot-dev.zip';}\n if(origin.includes('backoffice-qa')){this.zipFileName = 'globot-qa.zip';}\n }\n copyCodeToClipboard(input:string) {\n this.clipboard.copy(input);\n }\n\n getDownloadLink() {\n const path = `assets/pluggins/${this.zipFileName}`;\n // @SonarIgnore\n return this.sanitizer.bypassSecurityTrustResourceUrl(path);\n }\n\n download(): void {\n console.log('download');\n const link = document.getElementById('downloadLink') as HTMLAnchorElement;\n link.click();\n }\n}\n","
    \n\n
    \n \n \n

    Tu plan venció

    \n

    Tu cuenta ahora es gratuita. Suscríbete a un plan y recupera todos tus beneficios.

    \n
    \n \n
    \n \n
    \n \n \n
    \n \n
    \n \n \n ","import { Component } from '@angular/core';\n\n@Component({\n selector: 'globot-expired-plan',\n templateUrl: './expired-plan.component.html',\n styleUrls: ['./expired-plan.component.scss']\n})\nexport class ExpiredPlanComponent {\n options= {\n path: '/assets/lotties/bell.json',\n };\n visible: boolean = true;\n showPlansDialog: boolean = false;\n\n\n closeNotification(): void {\n this.visible = false;\n localStorage.setItem('showExpiredPlan', 'false');\n }\n}\n","import { ChangeDetectorRef, Component, Input } from '@angular/core';\nimport { MessageService } from 'primeng/api';\nimport { GetBotResponse } from 'src/app/models/bot.interface';\nimport { InstagramAccount, InstagramBot, MessengerBot, PageResponse } from 'src/app/models/messenger-bot.interface';\nimport { MessengerBotService } from 'src/app/services/messenger-bot.service';\nimport { DataService } from '../../data-service.service';\nimport { environment } from 'src/environments/environment';\nimport { InstagramBotService } from 'src/app/services/instagram-bot.service';\nimport { Subscription } from 'rxjs';\n\ndeclare const FB: any;\n@Component({\n selector: 'globot-instagram-bot',\n templateUrl: './instagram-bot.component.html',\n styleUrls: ['./instagram-bot.component.scss']\n})\nexport class InstagramBotComponent {\n @Input() bot?: GetBotResponse;\n private subscriptionMessenger!: Subscription;\n pageSubscribed?: MessengerBot;\n instagramBot?: InstagramBot;\n botEnabled:boolean = true;\n loading:boolean = false;\n facebookApiVersion= environment.facebookApiVersion;\n facebookAppId= environment.facebookAppId;\n instagramConfigId= environment.instagramConfigId;\n dialogVisible = false;\n deleteDialogVisible = false;\n notFoundedAccountDialog = false;\n instagramDetected?:InstagramAccount\n constructor(\n private messengerBotService: MessengerBotService, \n private instagramBotService: InstagramBotService, \n private ms: MessageService, \n private dataService: DataService,\n private changeDetectorRef: ChangeDetectorRef\n ) {\n \n }\n\n async ngOnInit(): Promise {\n FB.init({\n appId: this.facebookAppId,\n cookie : true,\n xfbml : true,\n version: this.facebookApiVersion // Use this Graph API version for this call.\n }, {\n config_id: this.instagramConfigId\n });\n this.subscriptionMessenger = this.dataService.getMessengerStatus().subscribe(value => {\n this.pageSubscribed = value.messengerBot;\n this.getInstagramBot();\n this.changeDetectorRef.detectChanges();\n });\n const response = await this.getMessengerBot();\n if(response.length>0){\n this.pageSubscribed = response[0];\n }\n\n this.getInstagramBot();\n }\n ngOnDestroy() {\n this.subscriptionMessenger.unsubscribe();\n }\n\n showMessage(severity :string, summary: string, detail: string){\n this.ms.add({ key: 'tst', severity: severity, summary: summary, detail: detail });\n }\n\n showDialog(value:boolean){\n this.dialogVisible = value;\n } \n\n showDialogDelete(value:boolean){\n this.deleteDialogVisible = value;\n }\n\n showDialogNotFoundedAccount(value:boolean){\n this.notFoundedAccountDialog = value;\n } \n\n closeDialog(event:any){\n this.loading = false;\n this.showDialog(false);\n }\n\n closeDialogDelete(event:any){\n this.loading = false;\n this.showDialogDelete(false);\n }\n\n closeDialogNotFoundedAccount(event:any){\n this.loading = false;\n this.showDialogNotFoundedAccount(false);\n }\n\n async detectInstagramAccount(){\n this.loading = true;\n const response = await this.getMessengerBot();\n if(response.length<1){\n this.loading = false;\n this.linkFacebookAccount();\n return;\n }\n const messengerBot = response[0];\n let page = await this.getPage(messengerBot.page_id,messengerBot.page_access_token);\n \n if(!page){\n this.loading = false;\n this.showMessage('error', 'Acción fallida', 'No se encontraron datos de facebook');\n return;\n }\n if(!page.instagram_business_account){\n this.loading = false;\n this.showDialogNotFoundedAccount(true);\n return;\n }\n this.pageSubscribed = messengerBot;\n this.instagramDetected = page.instagram_business_account;\n this.showDialog(true);\n \n }\n\n async subscribeIgAccount( ){\n this.showDialog(false);\n \n return new Promise((resolve,reject)=>{\n this.instagramBotService.postAccountSubscription(this.bot!.id, this.instagramDetected!, this.pageSubscribed!.id, this.pageSubscribed!.page_access_token).subscribe({\n next: response => {\n console.log(response);\n this.loading = false;\n this.showMessage('success', 'Acción exitosa', 'Tu chatbot se conectó con Instagram');\n resolve(this.getInstagramBot())\n //get instagram account active\n },\n error: err => {\n this.loading = false;\n this.showMessage('error', 'Acción fallida', 'No se pudo suscribir la cuenta de instagram');\n reject()\n }\n });\n });\n }\n\n async getInstagramBot () {\n this.instagramBotService.getBotInstagram(this.bot!.id).subscribe({\n next: response => {\n this.setStatus(response.status!, response.data);\n },\n error: err => {\n this.setStatus('NOT_FOUNDED', undefined);\n \n }\n });\n }\n\n setStatus (status:String, data:InstagramBot|undefined) {\n switch (status) {\n case 'ENABLED':\n this.dataService.setInstagramStatus({status:'Activo',\n style:{\n 'padding-left': '10px',\n 'padding-right': '10px',\n 'background': '#BBF7D0',\n 'color': '#16A34A'\n }});\n this.botEnabled = true;\n this.changeDetectorRef.detectChanges();\n this.instagramBot = data;\n this.changeDetectorRef.detectChanges();\n break;\n case 'DISABLED':\n this.dataService.setInstagramStatus({status:'Inactivo',\n style:{\n 'padding-left': '10px',\n 'padding-right': '10px',\n 'background': '#FFF9CE',\n 'color': '#E0A53E'\n }});\n this.botEnabled = false;\n this.instagramBot = data;\n this.changeDetectorRef.detectChanges();\n break;\n default:\n this.dataService.setInstagramStatus({status:'Sin configurar',\n style:{\n 'padding-left': '10px',\n 'padding-right': '10px',\n 'background': '#EDEDED',\n 'color': '#6B6B6B'\n }});\n this.botEnabled = false;\n this.instagramBot = undefined;\n this.changeDetectorRef.detectChanges();\n break;\n }\n \n }\n\n async getMessengerBot () {\n return new Promise((resolve, reject) => {\n this.messengerBotService.getBotMessenger(this.bot!.id).subscribe({\n next: response => {\n resolve(response.data);\n },\n error: err => {\n resolve([]);\n }\n });\n });\n \n }\n\n // async instagramLogin(configuration?:number) :Promise{\n // let configuration_id = (configuration!=null)?configuration:785936156204154;\n // let type_resp = (configuration!=null)?'token':'code';\n // return new Promise((resolve, reject) => {\n // FB.login(async(response: any) => {\n \n // if(response){\n // resolve(response);\n // }else{\n // reject(response);\n // }\n \n // },\n // {\n // config_id: configuration_id, //781973270459738 id\n // scope:\"instagram_basic\",\n // extras:{\"setup\":{\"channel\":\"IG_API_ONBOARDING\"}},\n // response_type: type_resp,\n // override_default_response_type: true\n // }\n // );\n // });\n // }\n\n unlinkInstagramAccount(){\n this.loading = true;\n this.showDialogDelete(true);\n }\n\n async deleteAccountSubscription(){\n this.showDialogDelete(false);\n \n return new Promise((resolve,reject)=>{\n this.instagramBotService.deleteBotInstagram(this.bot!.id).subscribe({\n next: response => {\n console.log(response);\n this.loading = false;\n this.showMessage('success', 'Acción exitosa', 'Tu chatbot se desconectó de Instagram');\n resolve(this.getInstagramBot())\n //get instagram account active\n },\n error: err => {\n this.loading = false;\n this.showMessage('error', 'Acción fallida', 'No se pudo desconectar la cuenta de instagram');\n reject()\n }\n });\n });\n }\n \n async linkFacebookAccount(){\n this.loading = true;\n const response = await this.facebookLogin();\n if(!response.authResponse){\n this.loading = false;\n return;\n }\n let userAccessToken;\n const access_token = await this.generateAccessToken(response.authResponse.code);\n if(access_token){\n const accessTokenUser = access_token;\n if(!accessTokenUser){\n this.ms.add({ key: 'tst', severity: 'error', summary: 'Acción fallida', detail: 'No se pudo establecer el inicio de sesión con Facebook.' });\n this.loading = false;\n return;\n } \n userAccessToken = accessTokenUser; \n \n const pages = await this.getPages(userAccessToken);\n if(!pages){\n this.ms.add({ key: 'tst', severity: 'error', summary: 'Acción fallida', detail: 'No se pudo obtener la página permitida por el usuario.' });\n this.loading = false;\n return;\n }\n const userData = await this.getUserData(userAccessToken);\n const userId = userData.id;\n if(pages.length!=1){\n this.ms.add({ key: 'tst', severity: 'error', summary: 'Acción fallida', detail: 'Porfavor, selecciona solo una página para vincular.' });\n this.changeDetectorRef.detectChanges();\n //! REVOCAR PERMISOS\n await this.revokePermissions(userId,userAccessToken);\n this.facebookLogout();\n this.loading = false;\n return;\n }\n //* GUARDAR ID_PAGE, NOMBRE DE PAGINA asociadas al bot\n for await(const page of pages) {\n if(!page.instagram_business_account){\n await this.revokePermissions(userId,userAccessToken);\n this.facebookLogout();\n this.showDialogNotFoundedAccount(true);\n return;\n }\n const success = await this.subscribePage(page.id, page.access_token);\n if(success==true){\n const categories = page?.category_list?.map((c:any)=>c.name)||[];\n this.messengerBotService.postPageSubscription(this.bot!.id, page.id, false, page.name,categories,page.access_token).subscribe({\n next: response => {\n console.log(' msg ig',response)\n this.dataService.setRefreshMessenger(true);\n this.loading = false;\n this.showMessage('success', 'Acción exitosa', page.name+' vinculada con éxito!');\n this.detectInstagramAccount();\n },\n error: err => {\n console.log(err);\n this.loading = false;\n }\n });\n \n }else{\n this.showMessage('error', 'Acción fallida', 'No se pudo suscribir la página '+ page.name +' porfavor vuelva a intentarlo.');\n } \n this.loading = false;\n }\n }\n \n \n }\n facebookLogout(){\n FB.getLoginStatus(function(response:any) {\n if (response.status === 'connected') {\n FB.logout(function(response:any) {\n });\n }\n });\n}\n\n async getPages (accessToken:String) :Promise<[any] | undefined> {\n return new Promise((resolve, reject) => {\n FB.api(\n '/me/accounts?fields=id%2Cname%2Ccategory_list%2Cinstagram_business_account{id,name,username,profile_picture_url,follows_count,followers_count,media_count}%2Caccess_token',\n 'GET',\n {access_token:accessToken},\n function(accountsResponse:any) {\n if(accountsResponse && accountsResponse.data.length>0){\n resolve(accountsResponse.data);\n }else{\n reject(null);\n }\n }\n );\n });\n }\n\n async facebookLogin(configuration?:number) :Promise{\n let configuration_id = (configuration!=null)?configuration:this.instagramConfigId;\n let type_resp = (configuration!=null)?'token':'code';\n return new Promise((resolve, reject) => {\n FB.login(async(response: any) => {\n \n if(response){\n resolve(response);\n }else{\n reject(response);\n }\n \n },\n {\n config_id: configuration_id, //781973270459738 id\n // config_id: 379742928129101,\n response_type: type_resp,\n override_default_response_type: true\n }\n );\n });\n }\n\n async subscribePage(pageId:String, pageAccessToken:String):Promise{\n return new Promise((resolve, reject) => {\n FB.api(\n `/${pageId}/subscribed_apps`,\n 'POST',\n {\n 'object': 'instagram',\n \"subscribed_fields\":\"messages\",\n \"access_token\":pageAccessToken\n },\n function(response:any) {\n if(response.success==true){\n resolve(response.success);\n }else{\n console.log('response false',response)\n reject(false);\n }\n }\n );\n });\n }\n\n async getLoginStatus():Promise{\n return new Promise((resolve, reject)=>{\n FB.getLoginStatus((authResponse: any) => {\n if (authResponse.authResponse!=null) {\n resolve(authResponse)\n \n } else{\n resolve(false)\n } \n });\n });\n }\n\n async getPage (page_id:String,accessToken:String) :Promise {\n return new Promise((resolve, reject) => {\n FB.api(\n `/${page_id}`,\n 'GET',\n {\n \"fields\":\"id,name,instagram_business_account{id,name,username,profile_picture_url,follows_count,followers_count,media_count}\",\n \"access_token\": accessToken\n },\n function(response:any) {\n if(response){\n console.log(\"pagee\",response)\n resolve(response);\n }else{\n resolve(undefined);\n }\n }\n );\n });\n }\n\n async getUserData (accessToken:String) :Promise {\n return new Promise((resolve, reject) => {\n FB.api(\n '/me',\n 'GET',\n {access_token:accessToken},\n function(userDataResponse:any) {\n console.log('USER DATA', userDataResponse);\n if(userDataResponse){\n resolve(userDataResponse);\n }else{\n reject(null);\n }\n }\n );\n });\n }\n\n async revokePermissions (userId:String,accessToken:String) :Promise {\n return new Promise((resolve, reject) => {\n FB.api(\n `/${userId}/permissions`,\n 'DELETE',\n {access_token:accessToken},\n function(revokeResponse:any) {\n console.log('REVOKE RESPONSE', revokeResponse);\n if(revokeResponse){\n resolve(revokeResponse);\n }else{\n reject(null);\n }\n }\n );\n });\n }\n\n async generateAccessToken(code: string): Promise {\n return new Promise((resolve, reject) => {\n FB.api(\n '/oauth/access_token',\n 'GET',\n {\n client_id: '6703563753026473',\n client_secret: '0cd23cfaaba01f18052c620f06cede4a',\n code: code\n },\n function(authResponse: any) {\n if (authResponse.access_token) {\n resolve(authResponse.access_token);\n } else {\n console.log('authResponse',authResponse)\n reject(null);\n }\n }\n );\n });\n}\n\n async switchChanged(event:any){\n this.instagramBotService.updateAccountSubscription(this.bot!.id, event.checked).subscribe({\n next:response=>{\n // this.getMessengerBot();\n this.ms.add({ key: 'tst', severity: 'success', summary: 'Acción exitosa', detail: `Instagram Bot ${(event.checked)?'habilitado':'deshabilitado'}!` });\n },\n error: err => {}\n });\n}\n}\n","
    \n\n\n
      \n
    1. \n Antes de integrar tu chatbot en Instagram, asegúrate que tu cuenta esté vinculada a una página de Facebook. Si aún\n no la has asociado, consulta el paso a paso en\n ¿Cómo integrar mi chatbot en Instagram?\n
    2. \n
    3. \n
      \n

      \n Instala Globot en Instagram desde Facebook:\n

      \n
      \n \n \n \n
      \n
      \n
    4. \n
    5. \n

      \n ¡Listo! Al completar los pasos,\n tu chatbot quedará activo automáticamente para responder preguntas en este canal.\n Desactívalo si no quieres que responda.\n

      \n
    6. \n
    \n
    \n

    Cuenta conectada:

    \n
    \n
    \n \n \n \n \n
    \n
    \n

    {{(botEnabled)?'Desactivar':'Activar'}} chatbot en este\n canal

    \n\n\n \n \n
    \n

    Cuenta detectada

    \n
    \n \"Imagen\n
    \n
    \n

    {{instagramDetected?.name}}

    \n

    {{'@'+instagramDetected?.username}}

    \n
    \n
    \n

    posts

    {{instagramDetected?.media_count}}
    \n

    followers

    {{instagramDetected?.followers_count}}
    \n

    follows

    {{instagramDetected?.follows_count}}
    \n
    \n \n
    \n
    \n \n \n
    \n
    \n \n \n \n
    \n

    Desconectar de Instagram

    \n
    \n
    \n \n
    \n

    ¿Deseas desconectar tu chatbot de este canal? Tus datos se
    perderán y tendrás que realizar todo el proceso nuevamente.

    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n\n \n \n
    \n

    Detectar cuenta vinculada

    \n
    \n
    \n \n
    \n

    No se encontró una cuenta de Instagram asociada a la página de
    \n Facebook de este chatbot. Por favor, consulta el paso a paso en
    \n ¿Cómo integrar mi chatbot en Instagram? para que tu chatbot
    \n responda consultas por este canal.

    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n","import { ChangeDetectorRef, Component, Input } from '@angular/core';\nimport { FormBuilder } from '@angular/forms';\nimport { MessageService } from 'primeng/api';\nimport { Subscription, lastValueFrom } from 'rxjs';\nimport { GetBotResponse } from 'src/app/models/bot.interface';\nimport { MessengerBot } from 'src/app/models/messenger-bot.interface';\nimport { MessengerBotService } from 'src/app/services/messenger-bot.service';\nimport { DataService } from '../../data-service.service';\nimport { environment } from 'src/environments/environment';\ndeclare const FB: any;\n@Component({\n selector: 'globot-messenger-bot',\n templateUrl: './messenger-bot.component.html',\n styleUrls: ['./messenger-bot.component.scss']\n})\nexport class MessengerBotComponent {\n @Input() bot?: GetBotResponse;\n pageSubscription: MessengerBot[] = [];\n private refresh!: Subscription;\n botEnabled:boolean = true;\n loading:boolean = false;\n deleteDialogVisible:boolean = false;\n facebookApiVersion= environment.facebookApiVersion;\n facebookAppId= environment.facebookAppId;\n messengerConfigId= environment.messengerConfigId;\n instagramConfigId= environment.instagramConfigId;\n showIgAccountDetected = false;\n constructor(\n private fb: FormBuilder, \n private messengerBotService: MessengerBotService, \n private ms: MessageService, \n private dataService: DataService,\n private changeDetectorRef: ChangeDetectorRef\n ) {\n \n }\n\n showMessage(severity :string, summary: string, detail: string){\n this.ms.add({ key: 'tst', severity: severity, summary: summary, detail: detail });\n }\n\n async linkFacebookAccount(){\n this.loading = true;\n const response = await this.facebookLogin();\n if(!response.authResponse){\n this.loading = false;\n return;\n }\n let userAccessToken;\n const access_token = await this.generateAccessToken(response.authResponse.code);\n if(access_token){\n const accessTokenUser = access_token;\n if(!accessTokenUser){\n this.ms.add({ key: 'tst', severity: 'error', summary: 'Acción fallida', detail: 'No se pudo establecer el inicio de sesión con Facebook.' });\n this.loading = false;\n return;\n } \n userAccessToken = accessTokenUser; \n \n const pages = await this.getPages(userAccessToken);\n if(!pages){\n this.ms.add({ key: 'tst', severity: 'error', summary: 'Acción fallida', detail: 'No se pudo obtener la página permitida por el usuario.' });\n this.loading = false;\n return;\n }\n const userData = await this.getUserData(userAccessToken);\n const userId = userData.id;\n if(pages.length!=1){\n this.ms.add({ key: 'tst', severity: 'error', summary: 'Acción fallida', detail: 'Porfavor, selecciona solo una página para vincular.' });\n this.changeDetectorRef.detectChanges();\n //! REVOCAR PERMISOS\n await this.revokePermissions(userId,userAccessToken);\n this.facebookLogout();\n this.loading = false;\n return;\n }\n //* GUARDAR ID_PAGE, NOMBRE DE PAGINA asociadas al bot\n for await(const page of pages) {\n const success = await this.subscribePage(page.id, page.access_token);\n if(success==true){\n \n const categories = page.category_list.map((c:any)=>c.name)||[];\n this.messengerBotService.postPageSubscription(this.bot!.id, page.id, true, page.name,categories,page.access_token).subscribe({\n next: response => {\n this.getMessengerBot();\n this.loading = false;\n this.showMessage('success', 'Acción exitosa', page.name+' vinculada con éxito!');\n },\n error: err => {\n console.log(err);\n this.loading = false;\n }\n });\n \n }else{\n this.showMessage('error', 'Acción fallida', 'No se pudo suscribir la página '+ page.name +' porfavor vuelva a intentarlo.');\n } \n this.loading = false;\n }\n }\n \n \n }\n\n async facebookLogin(configuration?:number) :Promise{\n let configuration_id = (configuration!=null)?configuration:this.messengerConfigId;\n let type_resp = (configuration!=null)?'token':'code';\n return new Promise((resolve, reject) => {\n FB.login(async(response: any) => {\n \n if(response){\n resolve(response);\n }else{\n reject(response);\n }\n \n },\n {\n config_id: configuration_id, //781973270459738 id\n // config_id: 379742928129101,\n response_type: type_resp,\n override_default_response_type: true\n }\n );\n });\n }\n\n async unlinkFacebookAccount(){\n this.showDeleteDialog(false);\n this.loading = true;\n if (this.pageSubscription.length<1) {\n this.showMessage('error', 'Acción fallida', 'No se pudo desvincular la página');\n this.loading = false;\n return;\n }\n const page = this.pageSubscription[0];\n const unSuscribed = await this.unSubscribePage(page.page_id, page.page_access_token);\n if(!unSuscribed){\n this.showMessage('error', 'Acción fallida', 'No se pudo desvincular la página');\n this.loading = false;\n return;\n }\n this.messengerBotService.deleteBotMessenger(this.bot!.id).subscribe({\n next: response => {\n this.getMessengerBot();\n this.ms.add({ key: 'tst', severity: 'success', summary: 'Acción exitosa', detail: 'Messenger Bot desvinculado!' });\n this.loading = false;\n },\n error: err => {\n console.log(err);\n this.loading = false;\n }\n });\n \n }\n\n facebookLogout(){\n FB.getLoginStatus(function(response:any) {\n if (response.status === 'connected') {\n FB.logout(function(response:any) {\n });\n }\n });\n }\n \n async subscribePage(pageId:String, pageAccessToken:String):Promise{\n return new Promise((resolve, reject) => {\n FB.api(\n `/${pageId}/subscribed_apps`,\n 'POST',\n {\n \"subscribed_fields\":\"messages\",\n \"access_token\":pageAccessToken\n },\n function(response:any) {\n if(response.success==true){\n resolve(response.success);\n }else{\n reject(false);\n }\n }\n );\n });\n }\n\n async unSubscribePage(pageId:String, pageAccessToken:String):Promise{\n return new Promise((resolve, reject) => {\n FB.api(\n `/${pageId}/subscribed_apps`,\n 'DELETE',\n {\n \"subscribed_fields\":\"messages\",\n \"access_token\":pageAccessToken\n },\n function(response:any) {\n if(response.success==true){\n resolve(response.success);\n }else{\n reject(false);\n }\n }\n );\n });\n }\n\n async getLoginStatus():Promise{\n return new Promise((resolve, reject)=>{\n FB.getLoginStatus((authResponse: any) => {\n if (authResponse.authResponse!=null) {\n resolve(authResponse)\n \n } else{\n resolve(false)\n } \n });\n });\n }\n\n async getPages (accessToken:String) :Promise<[any] | undefined> {\n return new Promise((resolve, reject) => {\n FB.api(\n '/me/accounts',\n 'GET',\n {access_token:accessToken},\n function(accountsResponse:any) {\n if(accountsResponse && accountsResponse.data.length>0){\n resolve(accountsResponse.data);\n }else{\n reject(null);\n }\n }\n );\n });\n }\n\n async getUserData (accessToken:String) :Promise {\n return new Promise((resolve, reject) => {\n FB.api(\n '/me',\n 'GET',\n {access_token:accessToken},\n function(userDataResponse:any) {\n if(userDataResponse){\n resolve(userDataResponse);\n }else{\n reject(null);\n }\n }\n );\n });\n }\n\n async revokePermissions (userId:String,accessToken:String) :Promise {\n return new Promise((resolve, reject) => {\n FB.api(\n `/${userId}/permissions`,\n 'DELETE',\n {access_token:accessToken},\n function(revokeResponse:any) {\n if(revokeResponse){\n resolve(revokeResponse);\n }else{\n reject(null);\n }\n }\n );\n });\n }\n\n async generateAccessToken(code: string): Promise {\n return new Promise((resolve, reject) => {\n FB.api(\n '/oauth/access_token',\n 'GET',\n {\n client_id: '6703563753026473',\n client_secret: '0cd23cfaaba01f18052c620f06cede4a',\n code: code\n },\n function(authResponse: any) {\n if (authResponse.access_token) {\n resolve(authResponse.access_token);\n } else {\n reject(null);\n }\n }\n );\n });\n}\n\nasync switchChanged(event:any){\n this.messengerBotService.updatePageSubscription(this.bot!.id, event.checked).subscribe({\n next:response=>{\n this.getMessengerBot();\n this.ms.add({ key: 'tst', severity: 'success', summary: 'Acción exitosa', detail: `Messenger Bot ${(event.checked)?'habilitado':'deshabilitado'}!` });\n },\n error: err => {}\n });\n}\n\n ngOnInit(): void {\n FB.init({\n appId: this.facebookAppId,\n cookie : true,\n xfbml : true,\n version: this.facebookApiVersion // Use this Graph API version for this call.\n }, {\n config_id: this.instagramConfigId\n });\n this.getMessengerBot();\n this.refresh = this.dataService.refreshMessenger().subscribe(value => {\n if(value==true){\n console.log('REFRESCOOOO')\n this.getMessengerBot();\n }\n });\n \n }\n\n ngOnDestroy() {\n this.refresh.unsubscribe();\n }\n\n\n\n async getMessengerBot () {\n this.messengerBotService.getBotMessenger(this.bot!.id).subscribe({\n next: response => {\n this.setStatus(response.status!, response.data);\n },\n error: err => {\n this.setStatus('NOT_FOUND', []);\n \n }\n });\n }\n\n setStatus (status:String, data:MessengerBot[]) {\n switch (status) {\n case 'ENABLED':\n this.dataService.setMessengerStatus({status:'Activo',\n style:{\n 'padding-left': '10px',\n 'padding-right': '10px',\n 'background': '#BBF7D0',\n 'color': '#16A34A'\n },\n messengerBot: data[0]\n });\n this.botEnabled = true;\n this.changeDetectorRef.detectChanges();\n this.pageSubscription = data;\n this.changeDetectorRef.detectChanges();\n break;\n case 'DISABLED':\n this.dataService.setMessengerStatus({status:'Inactivo',\n style:{\n 'padding-left': '10px',\n 'padding-right': '10px',\n 'background': '#FFF9CE',\n 'color': '#E0A53E'\n },\n messengerBot: data[0]});\n this.botEnabled = false;\n this.pageSubscription = data;\n this.changeDetectorRef.detectChanges();\n break;\n default:\n this.dataService.setMessengerStatus({status:'Sin configurar',\n style:{\n 'padding-left': '10px',\n 'padding-right': '10px',\n 'background': '#EDEDED',\n 'color': '#6B6B6B'\n },\n messengerBot: undefined});\n this.botEnabled = false;\n this.pageSubscription = [];\n this.changeDetectorRef.detectChanges();\n break;\n }\n \n }\n\n showDeleteDialog(value:boolean){\n this.deleteDialogVisible = value;\n \n }\n\n closeDialogDelete(value:boolean){\n this.showDeleteDialog(false);\n this.loading = false; \n }\n\n deleteAccountSubscription(){\n this.unlinkFacebookAccount();\n }\n\n\n}","
    \n
    \n \n \n \n
    \n

    Asegúrate de tener acceso como administrador. Si no eres tú quién administra el sitio, contáctate con la\n persona que tenga acceso.

    \n
    \n
    \n
    \n
    \n \n

    1. Instala Globot en Facebook Messenger desde el siguiente link:

    \n \n
    \n \n \n 0\" text=\"Desconectar de Faceboook\" styleClass=\"facebook\" icon=\"pi pi-facebook\" iconPosition=\"left\" width=\"w-auto\" [loading]=\"loading\" (onClick)=\"showDeleteDialog(true)\">\n \n
    \n\n
    \n

    \n 2. ¡Listo! Al completar los pasos de Facebook tu chatbot estará listo para responder preguntas en este canal. Desactívalo si no quieres que responda.\n

    \n
    \n
    0\" >
    \n

    0\"style=\"margin-top: 3px;\">{{(botEnabled)?'Desactivar':'Activar'}} chatbot en este canal

    \n
    0\" class=\"col-12\">\n

    Página conectada:

    \n
    \n
    \n \n \n \n \n
    \n
    \n\n\n
    \n

    Desconectar de Facebook

    \n
    \n
    \n \n
    \n

    ¿Deseas desconectar tu chatbot de este canal? Tus datos se
    perderán y tendrás que realizar todo el proceso nuevamente.

    \n

    ¡Atención! Si tienes una cuenta de Instagram vinculada a esta
    página de Facebook, también se desconectará.

    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    ","import {Component, Input} from '@angular/core';\n\n@Component({\n selector: 'globot-no-info',\n template: `\n
    \n \n \n \n \n \n \n \n \n

    {{tile}}

    \n

    {{message}}

    \n
    \n `,\n styles: [\n `\n .container-center {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n height: 55vh; /* Opcional: ajusta la altura según tus necesidades */\n width: 75vw; /* Opcional: ajusta el ancho según tus necesidades */\n }\n h1 {\n color: var(--Contrast-1, #27283B);\n font-family: Inter,serif;\n font-size: 20px;\n font-style: normal;\n font-weight: 700;\n line-height: normal;\n }\n \n //Mobile\n @media screen and (max-width: 768px) {\n \n h1{\n color: var(--Contrast-1, #27283B);\n font-family: Inter;\n font-size: 20px;\n font-style: normal;\n font-weight: 700;\n line-height: normal;\n }\n p{\n text-align: center;\n color: var(--Contrast-1, #27283B);\n font-family: Inter;\n font-size: 16px;\n font-style: normal;\n font-weight: 400;\n line-height: 24px; /* 150% */\n }\n }\n `\n ]\n})\nexport class NoInfoComponent {\n\n @Input() tile: string = '';\n @Input() message: string = 'No hay información';\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'globot-not-available',\n templateUrl: './not-available.component.html',\n styleUrls: ['./not-available.component.scss']\n})\nexport class NotAvailableComponent {\n @Input() title: string = '';\n @Input() message: string = 'No hay información';\n showPlansDialog: boolean = false;\n \n\n}\n","
    \n \n \n \n \n \n \n \n \n

    {{title}}

    \n

    {{message}}

    \n \n
    \n \n \n ","
    \n \n
    \n \n \n

    ¡Es hora de renovar tu suscripción!

    \n

    Ya pasó un mes desde tu último pago.

    \n
    \n \n
    \n\n
    \n \n \n
    \n\n
    ","import { Component, Input } from '@angular/core';\nimport { UserInterface } from 'src/app/models/user.interface';\nimport { PaymentService } from 'src/app/services/payment.service';\nimport { UserService } from 'src/app/services/user.service';\n\n@Component({\n selector: 'globot-pay-notification',\n templateUrl: './pay-notification.component.html',\n styleUrls: ['./pay-notification.component.scss']\n})\nexport class PayNotificationComponent {\n@Input() showCloseButton: boolean = true;\n@Input() flexDirection: 'row' | 'column' = 'row';\n\n options= {\n path: '/assets/lotties/bell.json',\n };\n visible: boolean = false; \n\n constructor(private userService: UserService, private payment: PaymentService) {}\n\n ngOnInit(): void {\n this.userService.getUser().subscribe({\n next: (user: UserInterface) => {\n this.visible = user.show_renewal_banner;\n },\n error: (err) => {\n console.error('Error al obtener los datos del usuario:', err);\n }\n });\n }\n\n closeNotification(): void {\n this.visible = false;\n }\n\n payNow(): void {\n this.payment.getPaymentUrl().subscribe({\n next: (response: any) => {\n const paymentUrl = response.payment_url;\n if (paymentUrl) {\n window.open(paymentUrl, '_blank'); \n } else {\n console.error('No se obtuvo una URL de pago válida.');\n }\n },\n error: (err) => {\n console.error('Error al obtener la URL de pago:', err);\n }\n });\n }\n}\n","import {Component, EventEmitter, Input, Output} from \"@angular/core\";\n\ninterface cardPersonalityData {\n title: string;\n description: string;\n img: string;\n}\n\n@Component({\n selector: 'globot-select-personality',\n template:\n `\n
    \n \n \n \n
    \n
    \n
    \n \"professional\"\n
    \n
    \n

    Servicio al cliente

    \n

    Tu chatbot será cercano y amigable. Perfecto para todo tipo de negocios.

    \n
    \n
    \n
    \n
    \n
    \n
    \n \"professional\"\n
    \n
    \n

    Formal

    \n

    Tu chatbot será gentil y preciso. Perfecto para soporte técnico.

    \n
    \n
    \n
    \n
    \n
    \n
    \n \"professional\"\n
    \n
    \n

    Lúdico

    \n

    Tu chatbot será informal y divertido. Dará respuestas creativas e ingeniosas.

    \n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n \"config\"\n
    \n
    \n

    {{card.title}}

    \n

    {{card.description}}

    \n
    \n
    \n
    \n
    \n
    \n `,\n styles: [\n `\n p {\n font-size: 16px;\n line-height: 22px\n }\n\n .card {\n cursor: pointer;\n padding: .3rem;\n min-height: 18rem;\n text-align: center;\n }\n\n .card:hover {\n box-shadow: 0 0 11px rgba(33, 33, 33, .2);\n background: linear-gradient(0deg, rgba(98, 106, 233, 0.15) 0%, rgba(98, 106, 233, 0.15) 100%), #FFF;\n color: #1E293B;\n border: 2px solid #7B5CF5;\n\n & h4 {\n color: #1E293B;\n }\n\n & p {\n color: #1E293B;\n }\n }\n\n .card-active {\n border: 2px solid #7B5CF5;\n box-shadow: var(--card-shadow);\n border-radius: 8px;\n background: linear-gradient(0deg, rgba(98, 106, 233, 0.15) 0%, rgba(98, 106, 233, 0.15) 100%), #FFF;\n padding: .3rem;\n min-height: 18rem;\n text-align: center;\n color: #1E293B;\n cursor: pointer;\n\n & h4 {\n color: #1E293B;\n }\n\n & p {\n color: #1E293B;\n }\n }\n\n @media screen and (max-width: 768px) {\n .grid {\n margin-left: -2rem;\n margin-right: -2rem;\n }\n h4 {\n margin: 0;\n text-align: start;\n color: var(--Contrast-1, #27283B);\n font-family: Inter;\n font-size: 16px;\n font-style: normal;\n font-weight: 600;\n line-height: 24px; /* 150% */\n }\n p {\n text-align: start;\n color: var(--Contrast-1, #27283B);\n font-family: Inter;\n font-size: 12px;\n font-style: normal;\n font-weight: 400;\n line-height: 22px; /* 183.333% */\n }\n .card {\n min-height: 130px;\n padding: .8rem;\n margin-left:10px;\n margin-right:10px;\n }\n\n .card-active {\n min-height: 130px;\n margin-left:10px;\n margin-right:10px;\n }\n }\n `\n ]\n})\nexport class SelectPersonalityComponent {\n\n\n @Output() nextEvent = new EventEmitter();\n @Output() backEvent = new EventEmitter();\n @Output() selectCardEvent = new EventEmitter();\n\n @Input() selectedCardIndex: number = -1;\n @Input() columns: number = 4;\n\n isMobile: boolean = window.innerWidth < 768;\n\n // Resto del código...\n cards: cardPersonalityData[] =\n [\n //{\n // title: 'Por defecto',\n // description: 'Tu chatbot responderá de forma neutra.',\n // img: '/assets/img/config.png'\n //},\n {\n title: 'Servicio al cliente',\n description: 'Tu chatbot será cordial y amigable. Su principal objetivo será orientar.',\n img:'/assets/img/emoji_woman.png'\n },\n {\n title: 'Formal',\n description: 'Tu chatbot será serio y formal. Responderá de manera técnica y precisa.',\n img:'/assets/img/emoji_classical.png'\n },\n {\n title: 'Lúdico',\n description: 'Tu chatbot será relajado y divertido. Puede dar respuestas creativas e ingeniosas.',\n img:'/assets/img/emoji_party.png'\n }\n ]\n\n constructor() {\n\n }\n\n selectCard(index: number): void {\n console.log(index);\n if (this.selectedCardIndex !== index) {\n this.selectedCardIndex = index;\n this.selectCardEvent.emit(this.selectedCardIndex);\n }\n \n }\n}\n","import { Component, Input } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { GetBotResponse } from 'src/app/models/bot.interface';\nimport { InputSwitchOnChangeEvent } from 'primeng/inputswitch';\nimport { MessageService } from 'primeng/api';\nimport { SlackBotService } from 'src/app/services/slack-bot.service';\n\n\n@Component({\n selector: 'globot-slack-bot',\n templateUrl: './slack-bot.component.html',\n styleUrls: ['./slack-bot.component.scss'],\n})\nexport class SlackBotComponent {\n @Input() bot?: GetBotResponse;\n slackBot: FormGroup\n teamId!: string;\n checked: boolean = false;\n is_enabled: boolean = false;\n\n\n\n constructor(private fb: FormBuilder,private slackBotService: SlackBotService, private ms: MessageService){\n this.slackBot = this.fb.group({\n teamId: [{value: '', disabled: false}, Validators.required],\n checked: [false]\n });\n }\n\n ngOnInit(): void {\n this.slackBotService.getBotSlack(this.bot!.id).subscribe({\n next: response => {\n this.teamId = response.team_id;\n this.is_enabled = (response as any).is_enabled; \n this.slackBot.patchValue({\n teamId: this.teamId,\n checked: this.is_enabled\n }); \n },\n error: err => {\n console.error('Hubo un error al obtener el team_id:', err);\n }\n });\n } \n\nonSubmitTeamId(){\n let team_id = this.slackBot.get('teamId')!.value;\n \n this.slackBot.patchValue({teamId: team_id});\n\nif (this.bot && this.bot.id) {\n if (this.teamId) {\n\n let team_id = this.slackBot.get('teamId')!.value; \n this.slackBotService.updateBotSlack(this.bot.id, undefined!, team_id).subscribe({\n next: response => {\n this.ms.add({ key: 'tst', severity: 'success', summary: 'Acción exitosa', detail: '¡ID del team actualizado!' });\n },\n error: err => {\n this.ms.add({ key: 'tst', severity: 'error', summary: 'Acción fallida', detail: 'ID ya asociado a otro chatbot. Ingrese un ID único y vuelva a intentarlo' });\n }\n });\n } else {\n this.slackBotService.postBotSlack(this.bot.id, team_id, this.is_enabled || false).subscribe({\n next: response => {\n this.ms.add({ key: 'tst', severity: 'success', summary: 'Acción exitosa', detail: '¡Bot de Discord agregado con éxito!' });\n },\n error: err => {\n this.ms.add({ key: 'tst', severity: 'error', summary: 'Acción fallida', detail: 'ID ya asociado a otro chatbot. Ingrese un ID único y vuelva a intentarlo.' });\n }\n });\n }\n} else {\n this.ms.add({ key: 'tst', severity: 'error', summary: 'Acción fallida', detail: 'El ID del servidor no es válido' });\n }\n}\n \n\n\nswitchChanged(event: InputSwitchOnChangeEvent) {\n this.checked = event.checked;\n\n this.slackBotService.updateBotSlack(this.bot!.id, this.checked).subscribe({\n next: response => {\n this.is_enabled = this.checked;\n if (this.checked) {\n this.ms.add({ key: 'tst', severity: 'success', summary: 'Acción exitosa', detail: '¡Discord Bot habilitado!' });\n } else {\n this.ms.add({ key: 'tst', severity: 'success', summary: 'Acción exitosa', detail: '¡Discord Bot deshabilitado!' });\n }\n },\n error: err => {\n this.ms.add({ key: 'tst', severity: 'error', summary: 'Acción fallida', detail: 'Hubo un problema con el habilitado de tu Discord Bot.' });\n\n }\n });\n}\n}\n","
    \n \n \n \n

    Asegúrate de tener acceso como administrador. Si no eres tú quién administra el sitio, contáctate con la persona que tenga acceso.

    \n
    \n
    \n\n
    \n
    \n

    1.Ingresa el ID de tu espacio de trabajo de Slack. Para identificarlo, abre Slack desde tu computador en un navegador web y una vez que cargue la página, la URL aparecerá en el siguiente formato: https://app.slack.com/client/TXXXXXX/CXXXXX. El ID de tu espacio de trabajo es la cadena que empieza por T.

    \n
    \n \n \n
    \n
    \n

    2. Instala Globot en Slack desde el siguiente link:

    \n Add to Slack
    \n

    3. ¡Listo! Activa tu chatbot en este canal y para llamarlo, solo menciona \"@globot\" como lo harías con cualquier otro usuario.

    \n \n \n

    Activar chatbot en este canal

    \n
    \n
    \n
    ","import {Component, EventEmitter, OnInit, Output} from '@angular/core';\nimport {BotService} from 'src/app/services/bot.service';\n\n\n@Component({\n selector: 'globot-list-steps-on-boarding',\n templateUrl: './list-steps-on-boarding.component.html',\n styleUrls: ['./list-steps-on-boarding.component.scss'],\n \n})\nexport class ListStepsOnBoardingComponent implements OnInit {\n\n @Output() nextEvent = new EventEmitter();\n @Output() backEvent = new EventEmitter();\n\n haveBot: boolean = false;\n isMobile: boolean = false;\n\n // Define la variable 'events' aquí si es necesario\n events = [\n {\n status: 'Le pondrás un nombre a tu chatbot',\n text: 'Podrás cambiarlo después si lo deseas.',\n icon: 'pi pi-check',\n color: '#7B5CF5'\n },\n {\n status: 'Cargarás información de tu negocio',\n text: 'Puede ser tu sitio web, documentos o tu Google Drive.',\n icon: 'pi pi-check',\n color: '#7B5CF5'\n },\n {\n status: 'Escogerás una personalidad ',\n text: 'Puedes escoger entre atención al cliente, Formal o Lúdico.',\n icon: 'pi pi-check',\n color: '#7B5CF5'\n },\n {\n status: '¡Listo!',\n text: 'Ya podrás conversar con tu chatbot y agregarlo a tu sitio web.',\n icon: 'pi pi-check',\n color: '#7B5CF5'\n }\n ];\n\n constructor(\n private readonly botService: BotService,\n ) {\n this.haveBot = this.botService.haveBots()\n }\n\n ngOnInit(): void {\n //Verify mobile\n if (window.innerWidth < 768) {\n this.isMobile = true;\n }\n }\n\n next(): void {\n this.nextEvent.emit();\n }\n\n back(): void {\n this.backEvent.emit();\n }\n\n}\n","
    \n
    \n

    \n ¡Vamos a crear tu chatbot!\"shine\" \n

    \n
    \n
    \n

    Estos son los pasos que seguiremos:

    \n
    \n
      \n
    • \n
      \n \n \n \n
      \n
      \n

      {{event.status}}

      \n

      {{event.text}}

      \n
      \n
    • \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n \n\n
    \n
    \n
    \n \n
    \n \n \n\n
    \n\n
    ","import {Component, EventEmitter, OnInit, Output} from \"@angular/core\";\nimport { NavService } from \"src/app/services/nav.service\";\n\n@Component({\n selector: 'globot-name-bot-step',\n template:\n `\n
    \n
    \n

    \n Nombre del chatbot\n

    \n
    \n
    \n

    Dale a tu chatbot un nombre propio, podrás cambiarlo después si lo\n prefieres.

    \n
    \n
    \n
    \n

    Nombre

    \n \n

    El nombre es requerido

    \n
    \n
    \n\n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n\n `,\n styles: [\n `\n .grid{\n min-height: 50vh;\n position:relative;\n }\n .form-name {\n display: flex;\n flex-direction:column;\n gap:6px\n }\n .text-description {\n text-align: justify;\n line-height: 150.023%;\n }\n @media screen and (max-width: 768px) {\n .grid{\n position: static;\n }\n h1{\n color: var(--Contrast-1, #27283B);\n text-align: center;\n font-family: Inter;\n font-size: 24px;\n font-style: normal;\n font-weight: 700;\n line-height: normal;\n }\n p{\n color: var(--Contrast-1, #27283B);\n font-family: Inter;\n font-size: 16px;\n font-style: normal;\n font-weight: 400;\n line-height: 150.023%; \n }\n input{\n height: 53px;\n width: 100%;\n font-size: 16px;\n }\n .text-description {\n text-align: center;\n }\n }\n @media screen and (min-width: 820px) and (max-width: 1366px) {\n .layout {\n margin: 2rem 0 !important;\n }\n }\n `\n ]\n})\nexport class NameBotStepComponent {\n\n @Output() nextEvent = new EventEmitter();\n @Output() backEvent = new EventEmitter();\n @Output() botNameEvent = new EventEmitter();\n\n botName: string = '';\n showError: boolean = false;\n isMobile: boolean = window.innerWidth < 768;\n\n constructor(private navService: NavService) {\n //Auto generated name bot initial value bot\n let data = this.navService.getData();\n if (undefined !== data && null !== data) {\n this.botName = data.botName;\n } else {\n this.botName = `globot-${Math.floor(Math.random() * 1000)}`;\n }\n \n this.botNameEvent.emit(this.botName);\n }\n\n next(): void {\n this.nextEvent.emit();\n }\n\n saveName(){\n if(this.botName === ''){\n this.showError = true;\n return;\n }\n this.botNameEvent.emit(this.botName);\n\n this.navService.setData({ botName: this.botName });\n\n this.next();\n }\n\n back(): void {\n this.backEvent.emit();\n }\n\n}\n","import {Component, EventEmitter, Output} from \"@angular/core\";\nimport {BotService} from \"../../../../services/bot.service\";\nimport {SpinnerService} from \"../../../../services/spinner.service\";\nimport {GetBotResponse, PutUpdateBotRequest} from \"../../../../models/bot.interface\";\n\n@Component({\n selector: 'globot-process-chatbot',\n templateUrl: './process-chatbot.component.html',\n styleUrls: ['./process-chatbot.component.scss'],\n})\nexport class ProcessChatbotComponent {\n\n @Output() nextEvent = new EventEmitter();\n @Output() backEvent = new EventEmitter();\n\n bot?: GetBotResponse\n\n selectedCardIndex: number = -1;\n\n contextType?: 'DEFAULT' | 'CLIENT_SERVICE' | 'PROFESSIONAL' | 'INFORMAL';\n temperature: number = 0.1;\n\n\n constructor(private readonly botService: BotService, private readonly ss: SpinnerService) {\n if (localStorage.getItem('bot')) {\n this.bot = JSON.parse(localStorage.getItem('bot')!);\n }\n }\n\n\n next(): void {\n if (this.selectedCardIndex === -1) {\n \n return;\n }\n this.setContextType();\n this.nextEvent.emit();\n }\n back(): void {\n this.backEvent.emit();\n }\n\n\n setContextType() {\n\n switch (this.selectedCardIndex) {\n case 1:\n this.contextType = 'CLIENT_SERVICE';\n this.temperature = 0.7;\n break;\n case 2:\n this.contextType = 'PROFESSIONAL';\n this.temperature = 0.5;\n break;\n case 3:\n this.contextType = 'INFORMAL';\n this.temperature = 1.0;\n break;\n default:\n this.contextType = 'DEFAULT';\n this.temperature = 0.5;\n break;\n }\n this.ss.setHttpProgressStatus(true);\n const payload: PutUpdateBotRequest = {\n name: this.bot!.name,\n temperature: this.temperature,\n context_type: this.contextType\n }\n this.botService.updateBot(payload, this.bot!.id).subscribe({\n next: value => {\n this.botService.getBot(this.bot!.id).subscribe({\n next: value => {\n this.bot = value;\n localStorage.setItem('bot', JSON.stringify(value));\n this.ss.setHttpProgressStatus(false);\n }\n })\n }\n });\n }\n\n selectCard(index: number): void {\n if (this.selectedCardIndex === index) {\n this.selectedCardIndex = -1;\n return;\n }\n this.selectedCardIndex = index;\n }\n}\n","
    \n
    \n

    \n Mientras se crea tu chatbot, puedes configurar algunas cosas\n

    \n
    \n
    \n

    ¿Qué tipo de personalidad tendrá tu chatbot?\n (Puedes cambiar esta configuración después).\n

    \n
    \n

    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    ","import {Component, EventEmitter, Input, Output} from \"@angular/core\";\n\n@Component({\n selector: 'globot-ready-step',\n template:\n `\n
    \n
    \n \n \n \n
    \n
    \n

    \n ¡Listo!\n

    \n

    Ya puedes probar tu chatbot

    \n
    \n
    \n \n
    \n
    \n\n `,\n styles: [\n `\n :host {\n overflow: hidden;\n }\n @media screen and (max-width: 768px) {\n h1{\n font-size: 24px;\n margin-top: 25px;\n }\n p{\n font-size: 16px;\n }\n ::ng-deep .p-button-label{\n font-size: 16px;\n }\n ::ng-deep .p-element .p-button{\n width:100%\n }\n }\n @media screen and (min-width: 820px) and (max-width: 1366px) {\n .layout {\n margin: 6rem 0 !important;\n }\n }\n `\n ]\n})\nexport class ReadyStepComponent {\n\n @Output() nextEvent = new EventEmitter();\n @Output() backEvent = new EventEmitter();\n @Output() botNameEvent = new EventEmitter();\n\n @Input() id: string = '';\n\n botName: string = '';\n\n constructor() {\n //Auto generated name bot initial value bot\n this.botName = `ScapeGpt-${Math.floor(Math.random() * 1000)}`;\n this.botNameEvent.emit(this.botName);\n }\n\n next(): void {\n this.nextEvent.emit();\n }\n\n back(): void {\n this.backEvent.emit();\n }\n\n}\n","import { Component, EventEmitter, Input, Output } from \"@angular/core\";\nimport { UserInterface } from \"src/app/models/user.interface\";\nimport { UserService } from \"src/app/services/user.service\";\nimport { environment } from \"src/environments/environment\";\n\n@Component({\n selector: 'globot-select-data-source',\n templateUrl: './select-data-source.component.html',\n styleUrls: ['./select-data-source.component.scss'],\n\n})\nexport class SelectDataSourceComponent {\n\n @Output() nextEvent = new EventEmitter();\n @Output() backEvent = new EventEmitter();\n @Output() subStepEvent = new EventEmitter<'' | 'upload' | 'web' | 'drive'>();\n @Input() showBackButton: boolean = true;\n\n\n user!: UserInterface;\n subscriptionsEnabled: boolean = environment.subscriptionsEnabled;\n\n constructor(private userService: UserService) {\n }\n ngOnInit(): void {\n this.userService.getUser().subscribe(user => {\n this.user = user;\n });\n }\n\n next(): void {\n this.nextEvent.emit();\n }\n\n back(): void {\n this.backEvent.emit();\n }\n\n setSubStep(subStep: '' | 'upload' | 'web' |'drive'): void {\n this.subStepEvent.emit(subStep);\n }\n\n\n\n}\n","
    \n
    \n

    \n Información de tu negocio\n

    \n

    Cárgale a tu chatbot la información que tendrá para responder a tus\n clientes.\n Sugerencias: Información de tu negocio, stock y precios de productos, preguntas frecuentes, etc. \n

    \n
    \n
    \n
    \n
    \n
    \n
    \n

    Archivo

    \n Importa documentos tipo PDF, Word, Excel, Texto o CSV.\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    Tu sitio web

    \n Ingresa una URL y se cargarán todas las páginas incluidas.\n
    \n
    \n
    \n \n
    \n\n
    \n\n
    \n \n
    ","import {Component, ElementRef, EventEmitter, Input, Output, ViewChild} from \"@angular/core\";\nimport {MessageService} from \"primeng/api\";\n\n@Component({\n selector: 'globot-upload-file',\n templateUrl: './upload-file.component.html',\n styleUrls: ['./upload-file.component.scss'],\n\n \n})\nexport class UploadFileComponent {\n\n @Output() nextEvent = new EventEmitter();\n @Output() backEvent = new EventEmitter();\n @Output() fileUploaded = new EventEmitter();\n\n @Input() titleExtension: string = '';\n @Input() newBot: boolean = true;\n\n @ViewChild('fileInput', { static: false }) fileInput!: ElementRef;\n\n isDragOver = false;\n hasError: boolean = false\n isMobile = window.innerWidth < 768;\n fileName: string = '';\n\n constructor(\n private readonly messageService: MessageService\n ) {\n }\n\n next(): void {\n this.nextEvent.emit();\n }\n\n back(): void {\n this.backEvent.emit();\n }\n\n onFileDropped(event: any) {\n event.preventDefault();\n this.isDragOver = false;\n const files = event.dataTransfer.files;\n this.handleFileUpload(files);\n }\n\n onDragOverArea(event: any) {\n event.preventDefault();\n this.isDragOver = true;\n }\n\n onDragLeaveArea(event: any) {\n event.preventDefault();\n this.isDragOver = false;\n }\n\n openFileInput(): void {\n this.fileInput.nativeElement.click();\n }\n\n onFileSelected(event: any): void {\n const files = event.target.files;\n this.handleFileUpload(files);\n }\n\n private handleFileUpload(files:any): void {\n if (!files || files.length === 0) {\n return;\n }\n\n const file = files[0];\n this.fileName = file.name;\n const fileExtension = file.name.split('.').pop() || '';\n\n if ( fileExtension !='' && this.isExtensionAllowed(fileExtension)) {\n this.hasError = false;\n this.fileUploaded.emit(files);\n } else {\n this.hasError = true;\n console.error('El archivo seleccionado no tiene una extensión permitida.');\n this.messageService.add({ severity: 'error', summary: 'Error', detail: 'El archivo seleccionado no tiene una extensión permitida.' });\n }\n }\n\n private isExtensionAllowed(extension: string): boolean {\n if (!this.titleExtension){\n return true;\n }\n\n const allowedExtensionsArray = this.titleExtension.split(',').map(ext => ext.trim().toLowerCase());\n const fileExtension = extension.toLowerCase();\n\n return allowedExtensionsArray.includes(fileExtension);\n }\n}","
    \n
    \n

    \n Archivo \n

    \n
    \n
    \n

    Asegúrate que tu archivo contenga texto principalmente,\n las imágenes no las tomará en cuenta.

    \n
    \n
    \n \n \n \n \n \n \n

    Haz click para cargar o arrastra y suelta

    \n

    1 archivo permitido (PDF, DOC, DOCX, XLS, XLSX, TXT, CSV) 5MB máximo de peso

    \n
    \n
    \n \n \n
    \n
    \n\n\n\n
    \n
    \n \n \n \n \n \n \n \n \n

    Haz click para cargar o arrastra y suelta

    \n

    1 archivo permitido (PDF, DOC, DOCX, XLS, XLSX, TXT, CSV) 5MB máximo de peso

    \n
    \n

    \n \n {{ fileName }}

    \n
    \n

    El archivo seleccionado no tiene una extensión permitida.

    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n","import { Component, EventEmitter, Input, Output, OnInit, OnDestroy } from \"@angular/core\";\nimport { lastValueFrom, Subscription } from \"rxjs\";\nimport { UrlScanned } from \"src/app/models/bot.interface\";\nimport { BotService } from \"src/app/services/bot.service\";\nimport { GlobalObservableService } from \"src/app/services/global-observable.service\";\nimport { interval } from 'rxjs';\nimport { takeWhile, take, tap, takeUntil } from 'rxjs/operators';\nimport { environment } from \"src/environments/environment\";\n\n@Component({\n selector: 'globot-web-data-source',\n templateUrl: './web-data-source.component.html',\n styleUrls: ['./web-data-source.component.scss'],\n\n}\n)\nexport class WebDataSourceComponent {\n\n @Output() backEvent = new EventEmitter();\n @Output() urlDataSourceEvent = new EventEmitter();\n @Output() nextEvent = new EventEmitter();\n\n @Input() newBot: boolean = true;\n\n\n urlDatasource: string = '';\n showErrorMessage: boolean = false;\n errorMessage: string = '';\n\n isMobile = window.innerWidth < 768;\n loadingValue: number = 0;\n job_id: string | undefined;\n bot_id: string | undefined;\n links: UrlScanned[] = [];\n\n scanLoading: boolean = false;\n scanUrlReady: boolean = false;\n\n private subscription: Subscription = new Subscription();\n constructor(private globalService: GlobalObservableService, private readonly botService: BotService) {\n\n }\n\n ngOnInit() {\n this.scanUrlReady = environment.isScanUrlReady;\n this.subscription.add(\n this.globalService.getObservable().subscribe(\n (message) => {\n if (message.type === 'jobId') {\n this.loadingValue = 10;\n let control = 5;\n let increase_every_second = 2;\n this.job_id = message.data.jobId;\n this.bot_id = message.data.botId;\n let status = 'PENDING'\n interval(1000).pipe(\n takeWhile(() => (this.links.length === 0) && (status == 'PENDING')),\n take(120)\n ).subscribe(\n async (count) => {\n if (this.links.length == 0) {\n if(count == increase_every_second && this.loadingValue < 100){\n increase_every_second = increase_every_second + 2;\n this.loadingValue++;\n }\n }\n if (count == control) {\n control = control + 5;\n if (this.links.length == 0) {\n status = await this.getScannedUrls(this.job_id!, this.bot_id!)\n }\n }\n },\n (error) => {\n console.error('Error en el intervalo:', error);\n }\n );\n }\n if (message.type === 'jobId-error') {\n this.scanLoading = false;\n this.loadingValue = 0;\n }\n }\n )\n );\n }\n\n ngOnDestroy() {\n this.subscription.unsubscribe();\n if (this.job_id != null) {\n this.delete_job(this.job_id);\n }\n }\n\n next(): void {\n this.nextEvent.emit();\n }\n\n back(): void {\n this.backEvent.emit();\n }\n\n backAndDeleteJob(): void {\n if (this.job_id != null) {\n this.delete_job(this.job_id);\n }\n this.backEvent.emit();\n }\n\n uploadUrls() {\n if (this.links.length == 0) {\n this.showErrorMessage = true;\n this.errorMessage = 'Debes cargar al menos una Url';\n return;\n }\n this.botService.uploadUrlsByJob(this.bot_id!, this.job_id!).subscribe({\n next: value => {\n this.job_id = undefined;\n this.next();\n },\n error: err => {\n this.showErrorMessage = true;\n this.errorMessage = 'No se pudo cargar la fuennte de datos';\n }\n })\n\n }\n\n setUrlDataSource(): void {\n const urlRegex = /^(https:\\/\\/)?([a-z\\d][a-z\\d-]*[a-z\\d]\\.)+[a-z]{2,}(:\\d+)?(\\/[-a-z\\d%_.~+]*)*(\\?[;&a-z\\d%_.~+=\\-*]*)?(\\#[-a-z\\d_]*)?$/i;\n if (this.urlDatasource.trim() === '') {\n this.showErrorMessage = true;\n this.errorMessage = 'El campo es requerido';\n } else if (!urlRegex.test(this.urlDatasource)) {\n this.showErrorMessage = true;\n this.errorMessage = 'Por favor, introduce una URL válida';\n } else {\n this.showErrorMessage = false;\n\n let normalizedUrl = this.normalizeUrl(this.urlDatasource);\n this.urlDataSourceEvent.emit(normalizedUrl);\n // this.next();\n }\n }\n\n normalizeUrl(url: string): string {\n let normalizedUrl = url.endsWith('/') ? url : url + '/';\n return normalizedUrl.toLowerCase();\n }\n\n async getScannedUrls(jobId: string, botId: string): Promise {\n try {\n const value = await lastValueFrom(this.botService.getScannedUrls(jobId, botId));\n this.links = value.chatbot_scanned_url;\n const status = value.status;\n\n if (status.toUpperCase() === 'FAILED') {\n this.scanLoading = false;\n this.loadingValue = 100;\n this.showErrorMessage = true;\n this.errorMessage = 'No se pudo encontrar sitio web';\n\n }\n\n if (this.links.length > 0) {\n this.scanLoading = false;\n this.loadingValue = 100;\n }\n return status;\n } catch (error) {\n this.loadingValue = 0;\n this.errorMessage = 'No se pudo encontrar links asociados';\n this.showErrorMessage = true;\n this.scanLoading = false;\n return 'FAILED'\n }\n }\n\n obtainLinks() {\n this.scanLoading = true;\n const urlRegex = /^(https:\\/\\/)?([a-z\\d][a-z\\d-]*[a-z\\d]\\.)+[a-z]{2,}(:\\d+)?(\\/[-a-z\\d%_.~+]*)*(\\?[;&a-z\\d%_.~+=\\-*]*)?(\\#[-a-z\\d_]*)?$/i;\n if (this.urlDatasource.trim() === '') {\n this.showErrorMessage = true;\n this.errorMessage = 'El campo es requerido';\n this.scanLoading = false;\n return;\n }\n\n if (!urlRegex.test(this.urlDatasource)) {\n this.showErrorMessage = true;\n this.errorMessage = 'Por favor, introduce una URL válida';\n this.scanLoading = false;\n return;\n }\n\n this.showErrorMessage = false;\n let normalizedUrl = this.normalizeUrl(this.urlDatasource);\n this.loadingValue = 5;\n if (this.job_id != null) {\n this.loadingValue = 0;\n this.delete_job(this.job_id);\n this.botService.scanUrl({ url: normalizedUrl }, this.bot_id!).subscribe({\n next: value1 => {\n const jobId = value1['data']['id'];\n this.globalService.publish('jobId', { jobId: jobId, botId: this.bot_id! })\n }\n });\n return;\n }\n this.urlDataSourceEvent.emit(normalizedUrl);\n\n\n }\n\n delete_job(job_id: string) {\n this.links = [];\n this.botService.deleteJobId(job_id).subscribe();\n }\n\n removeLink(link: string) {\n this.botService.deleteScannedUrl(this.job_id!, link).subscribe({\n next: value => {\n this.links = this.links.filter(l => l.id !== link);\n }\n })\n\n }\n\n}\n\n\n","
    \n
    \n

    \n Tu sitio web\n

    \n
    \n
    \n

    Ingresa la URL del sitio

    \n
    \n \n \n
    \n
    \n {{errorMessage}}\n
    \n

    Esta acción hará que identifiquemos las páginas asociadas al sitio web

    \n 0\" [value]=\"loadingValue\" >\n
    \n
    0\" style=\"text-align: -webkit-center;\">\n
    \n \n
    \n
    \n
    \n\n\n
    \n
    \n

    \n Sitio web\n

    \n
    \n
    \n

    URL del sitio web *

    \n \n
    \n {{errorMessage}}\n
    \n
    \n
    \n
    \n
    \n \n
    \n
    0\" \n style=\"position: absolute; bottom: 10px; right: 10px; text-align: right;\"\n [ngStyle]=\"isMobile ? {'width': 'calc(50% - 20px)'} : {'width': 'auto'}\">\n \n
    \n
    \n\n
    \n
    \n \n
    \n
    0\" \n style=\"position: absolute; bottom: 10px; right: 10px; text-align: right;\"\n [ngStyle]=\"isMobile ? {'width': 'calc(50% - 20px)'} : {'width': 'auto'}\">\n \n
    \n
    \n\n\n\n
    \n
    \n

    URL del sitio web

    \n \n
    \n
    0) ? '300px' : '125px'}\">\n
    \n \n \n
    \n
    \n {{errorMessage}}\n
    \n

    Esta acción hará que identifiquemos las páginas asociadas al sitio web

    \n 0\" [value]=\"loadingValue\" >\n
    0\" style=\"text-align: -webkit-center; margin-top: 10px;\">\n
    \n \n
    \n
    \n
    \n \n
    0\">\n
    \n \n
    \n
    \n \n
    \n
    \n\n
    \n\n\n\n
    \n

    URL del sitio web *

    \n \n
    \n {{errorMessage}}\n
    \n\n
    \n \n
    \n
    \n \n
    \n
    \n","
    \n
    \n
    \n
    \n
    \n
    \n {{ plan.price }}\n {{ plan.denominator }}\n
    \n IVA incluido\n
    \n

    {{ plan.title }}

    \n {{ plan.description }}\n
    \n
    \n
      \n
    • \n \n \n \n \n \n {{ feature }}\n \n \n \n Whatsapp, Facebook, Instagram\n \n \n \n \n {{ feature }}\n \n \n
    • \n
    \n {{ plan.buttonText }}\n
    \n
    \n
    \n La conversión de divisa se aplica al pagar según el país y método de pago.\n
    \n
    \n \"webpay\"\n \"payment_logos\"\n
    \n
    \n Impulsados por\n \"hpay_modal\"\n
    \n
    \n\n
    \n
    \n ","import { Component } from '@angular/core';\n\n@Component({\n selector: 'globot-type-subscription-plans',\n templateUrl: './type-subscription-plans.component.html',\n styleUrls: ['./type-subscription-plans.component.scss']\n})\nexport class TypeSubscriptionPlansComponent {\n plans = [\n {\n class: 'tier2',\n price: 'CLP $10.000',\n denominator: '/ Mes',\n title: 'Standard',\n description: 'Perfecto para negocios que buscan mejorar la experiencia en su sitio web.',\n features: [\n '2 chatbots',\n '2.000 mensajes al mes',\n 'Integración Web y Wordpress'\n ],\n link: this.encodeSubscriptionPlan('BASE'),\n buttonText: 'Suscribirse',\n showIvaIncluded: true\n },\n {\n class: 'tier3',\n price: 'CLP $25.000',\n denominator: '/ Mes',\n title: 'Premium',\n description: 'Diseñado para negocios que necesitan gestionar múltiples canales de comunicación.',\n features: [\n '5 chatbots',\n '10.000 mensajes al mes',\n 'Integración Web y Wordpress',\n 'Integraciones Meta'\n ],\n link: this.encodeSubscriptionPlan('PREMIUM'),\n buttonText: 'Suscribirse',\n showIvaIncluded: true\n },\n {\n class: 'tier4',\n price: 'A convenir',\n title: 'Personalizado',\n description: 'Pensado para organizaciones que requieran soluciones avanzadas.',\n features: [\n 'Chatbots ilimitados',\n '50.000 mensajes al mes',\n 'Integración con Slack y Discord',\n 'Integración a opción.'\n ],\n link: 'https://globot.ai/#contacto',\n buttonText: 'Contáctanos',\n marginBottom: '1rem',\n showIvaIncluded: false\n }\n ];\n private encodeSubscriptionPlan(plan: string): string { \n return '/subscription/login?subscriptionPlan=' + btoa(plan); \n }\n showTooltip: boolean = false; \n toggleTooltip() { this.showTooltip = !this.showTooltip\n}\n}\n","import { ChangeDetectorRef, Component, EventEmitter, Input, Output, QueryList, ViewChild, ViewChildren } from '@angular/core';\nimport { GetBotResponse } from 'src/app/models/bot.interface';\nimport { AbstractControl, FormBuilder, FormGroup, ValidationErrors, Validators } from '@angular/forms';\nimport { environment } from 'src/environments/environment';\nimport { WhatsappBotService } from 'src/app/services/whatsapp-bot.service';\nimport { MessageService } from 'primeng/api';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { Tooltip } from 'primeng/tooltip';\nimport { InputSwitchOnChangeEvent } from 'primeng/inputswitch';\n\nfunction urlValidator(control: AbstractControl): ValidationErrors | null {\n const value = control.value;\n if (value.startsWith('https://graph.facebook.com/') && value.endsWith('/messages')) {\n return null; \n } else {\n return { urlInvalid: true }; \n }\n}\n\n@Component({\n selector: 'globot-whatsapp-bot',\n templateUrl: './whatsapp-bot.component.html',\n styleUrls: ['./whatsapp-bot.component.scss']\n})\nexport class WhatsappBotComponent {\n @Input() bot?: GetBotResponse;\n @ViewChildren(Tooltip) tooltips!: QueryList;\n @Output() statusChange = new EventEmitter<{status: string, style: { [key: string]: string }}>();\n\n whatsappBot: FormGroup;\n phoneNumber!: string;\n checked: boolean = false;\n is_enabled: boolean = false;\n callbackUrl = `${environment.apiAddress}/channels/whatsapp`;\n loading: boolean = false;\n\n constructor(private fb: FormBuilder, private whatsappBotService: WhatsappBotService, private ms: MessageService, private changeDetectorRef: ChangeDetectorRef){\n this.whatsappBot = this.fb.group({\n whatsapp_token: ['', Validators.required],\n phoneNumber: ['', [Validators.required, Validators.minLength(10), Validators.maxLength(12)]],\n graphUrl: ['', [Validators.required, urlValidator]],\n verify_token: [''], \n checked: [false]\n });\n \n }\n ngOnInit(): void {\n this.whatsappBotService.getBotWhatsapp(this.bot!.id).subscribe({\n next: response => {\n let displayedToken = response.data.whatsapp_token.replace('Bearer ', '');\n this.is_enabled = response.data.is_enabled; \n this.whatsappBot.patchValue({\n whatsapp_token: displayedToken,\n phoneNumber: response.data.phone_number,\n graphUrl: response.data.whatsapp_endpoint,\n verify_token: response.data.verify_token,\n checked : response.data.is_enabled\n });\n this.phoneNumber = response.data.phone_number;\n this.setStatus();\n\n },\n error: err => {\n console.error('Hubo un error al obtener los datos:', err);\n this.setStatus();\n }\n });\n }\n\n onSubmit(){\n if (!this.whatsappBot.valid) {\n this.showMessage('error', 'Acción fallida', 'El formulario no es válido.');\n return;\n }\n\n let phoneNumber = this.whatsappBot.get('phoneNumber')!.value;\n let whatsapp_token = this.whatsappBot.get('whatsapp_token')!.value;\n let graphUrl = this.whatsappBot.get('graphUrl')!.value;\n \n \n if (!phoneNumber || !whatsapp_token || !graphUrl) {\n this.showMessage('error', 'Acción fallida', 'Todos los campos son requeridos.');\n return;\n }\n \n if (this.bot && this.bot.id) {\n\n this.loading = true;\n this.whatsappBotService.getBotWhatsapp(this.bot.id).subscribe({\n next: response => {\n this.updateWhatsapp(phoneNumber, whatsapp_token, graphUrl); \n this.phoneNumber = phoneNumber;\n this.setStatus();\n this.loading = false;\n this.changeDetectorRef.detectChanges();\n },\n error: err => {\n this.postWhatsapp();\n this.loading = false;\n }\n });\n } else {\n this.showMessage('error', 'Acción fallida', 'El ID del servidor no es válido');\n }\n}\n \n updateWhatsapp(phoneNumber: string, whatsapp_token: string, graphUrl: string) {\n this.whatsappBotService.updateBotWhatsapp(this.bot!.id, phoneNumber, whatsapp_token, graphUrl, undefined! ).subscribe({\n next: response => {\n this.showMessage('success', 'Acción exitosa', 'Tus datos se guardaron');\n },\n error: err => {\n if (err.status === 409) {\n this.showMessage('error', 'Error al guardar', 'Teléfono ya asociado a otro chatbot.');\n } else {\n this.showMessage('error', 'Algo salió mal', 'Por favor, inténtalo de nuevo más tarde');\n }\n }\n });\n}\n \n\n postWhatsapp(){\n if (this.whatsappBot.valid) {\n const { whatsapp_token, phoneNumber, graphUrl } = this.whatsappBot.value;\n let is_enabled = true;\n this.whatsappBotService.postBotWhatsapp(this.bot!.id, phoneNumber, whatsapp_token, graphUrl, is_enabled)\n .subscribe({\n next: response => {\n this.showMessage('success', 'Acción exitosa', '¡Bot de WhatsApp agregado con éxito!');\n this.whatsappBot.patchValue({verify_token: response.verify_token, checked: is_enabled});\n this.is_enabled = is_enabled; // Actualiza el estado del switch\n this.setStatus(); \n },\n error: err => {\n if (err.status === 409) {\n this.showMessage('error', 'Error al guardar', 'Teléfono ya asociado a otro chatbot.');\n } else {\n this.showMessage('error', 'Algo salió mal', 'Por favor, inténtalo de nuevo más tarde');\n }\n }\n });\n }\n }\n showMessage(severity :string, summary: string, detail: string){\n this.ms.add({ key: 'tst', severity: severity, summary: summary, detail: detail });\n }\n \n\n copyToClipboard(id: string, index: number) {\n const copyText = document.getElementById(id) as HTMLInputElement;\n navigator.clipboard.writeText(copyText.value).then(() => {\n\n }).catch(err => {\n console.error('Error copying to clipboard', err);\n });\n this.tooltips.toArray()[index].activate();\n}\n\n switchChanged(event: InputSwitchOnChangeEvent) {\n this.checked = event.checked;\n this.whatsappBotService.updateBotWhatsapp(this.bot!.id, undefined!, undefined!, undefined!, this.checked).subscribe({\n next: response => {\n this.is_enabled = this.checked;\n this.setStatus();\n if (this.checked) {\n this.ms.add({ key: 'tst', severity: 'success', summary: 'Acción exitosa', detail: '¡Bot de WhatsApp habilitado!' });\n } else {\n this.ms.add({ key: 'tst', severity: 'success', summary: 'Acción exitosa', detail: '¡Bot de WhatsApp deshabilitado!' });\n }\n },\n error: err => {\n this.ms.add({ key: 'tst', severity: 'error', summary: 'Acción fallida', detail: 'Hubo un problema con el habilitado de tu bot de WhatsApp.' });\n }\n });\n}\n\nsetStatus() {\n let status;\n if (!this.phoneNumber) {\n status = {status:'Sin configurar',\n style:{\n 'padding-left': '10px',\n 'padding-right': '10px',\n 'background': '#EDEDED',\n 'color': '#6B6B6B'\n }};\n } else if (this.is_enabled) {\n status = {status:'Activo',\n style:{\n 'padding-left': '10px',\n 'padding-right': '10px',\n 'background': '#BBF7D0',\n 'color': '#16A34A'\n }};\n } else {\n status = {status:'Inactivo',\n style:{\n 'padding-left': '10px',\n 'padding-right': '10px',\n 'background': '#FFF9CE',\n 'color': '#E0A53E'\n }};\n }\n this.statusChange.emit(status);\n}\n\n\n}\n","
    \n

    1. Antes de realizar esta integración, debes seguir el paso a paso en el tutorial ¿Cómo integrar mi chatbot en Whatsapp?\n

    \n

    2. Completa los siguientes campos requeridos:

    \n
    \n
    \n \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n

    3. Copia y pega los siguientes datos requeridos:

    \n
    \n
    \n \n
    \n \n \n
    \n
    \n
    \n \n
    \n \n \n
    \n
    \n
    \n

    4. ¡Listo! Verifica el funcionamiento de tu chatbot, este quedará activo automáticamente en este canal. Desactívalo si no quieres que responda.

    \n
    \n \n Activar chatbot en este canal\n
    \n
    \n
    \n \n","import { CommonModule } from '@angular/common';\nimport { Component } from '@angular/core';\nimport { ComponentsDashboardModule } from '../components/components-dashboard.module';\nimport { TooltipModule } from 'primeng/tooltip';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { TabViewModule } from 'primeng/tabview';\nimport { MultiSelectModule } from 'primeng/multiselect';\nimport { SharedModule } from 'primeng/api';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { CalendarModule } from 'primeng/calendar';\n\n\n\n@Component({\n selector: 'app-globot-dashboard',\n standalone: true,\n imports: [CommonModule, SharedModule, FormsModule, MultiSelectModule, DropdownModule, ReactiveFormsModule, ComponentsDashboardModule, TooltipModule, TabViewModule,CalendarModule],\n templateUrl: 'dashboard.component.html',\n styleUrls: ['dashboard.component.scss'],\n})\nexport class GlobotDashboardComponent {\n\n\n\n}","
    \n

    Estadísticas

    \n \n \n \n \n \n \n \n \n \n
    \n\n","import { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\nimport { Component, ViewChild } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { MessageService } from 'primeng/api';\nimport { ChatHistory, ChatHistoryGroup } from 'src/app/models/history.interface';\nimport { BotService } from 'src/app/services/bot.service';\nimport { DashboardService } from 'src/app/services/dashboard.service';\nimport * as XLSX from 'xlsx';\n\ninterface ChatHistoryLeads {\n is_lead: string;\n sender_name: string;\n sender_phone: string;\n sender_email: string;\n sender_requirement: string;\n created_at: string;\n origin: string;\n correlation_id: string;\n}\n@Component({\n selector: 'globot-leads',\n templateUrl: './leads.component.html',\n styleUrls: ['./leads.component.scss']\n})\nexport class LeadsComponent {\n\n @ViewChild('calendar') calendar: any;\n rangeDates: any;\n records: any[] = [];\n isHandset: boolean = false;\n botId;\n hasData: boolean = true;\n chatbotHistoryLeads: ChatHistoryLeads[] = [];\n\n leadsEnabled: boolean = true;\n userDataGatheringEnabled: boolean = true;\n\n visible: boolean = false;\n selectedChatHistory: ChatHistoryGroup[] = [];\n isLoading: boolean = false;\n\n constructor(\n private dashboardService: DashboardService,\n private botService: BotService,\n private aRoute: ActivatedRoute, private router: Router,\n private breakpointObserver: BreakpointObserver,\n private ms: MessageService) {\n\n this.botId = this.aRoute.snapshot.paramMap.get('id') ?? ''; const sections = this.router.routerState.snapshot.url.split('/');\n this.botId = sections[3];\n\n //? FECHAS DEFAULT\n const currentDate = new Date();\n currentDate.setHours(0, 0, 0, 0); // Establecer la hora a 00:00:00.000\n const sevenDaysAgo = new Date(currentDate.getTime() - 7 * 24 * 60 * 60 * 1000);\n this.rangeDates = [sevenDaysAgo, currentDate];\n\n this.breakpointObserver.observe([\n Breakpoints.Handset\n ]).subscribe(result => {\n this.isHandset = result.matches;\n });\n }\n\n ngOnInit() {\n this.botService.getBots().subscribe({\n next: (bots) => {\n const bot = bots.find(b => b.id === this.botId);\n if (bot) {\n this.leadsEnabled = bot.leads_enabled || false;\n }\n },\n error: (error) => {\n console.error('Error al obtener la configuración del bot:', error);\n }\n });\n\n this.showLeads();\n }\n\n showLeads() {\n this.isLoading = true; \n this.chatbotHistoryLeads = [];\n const init = this.formatDate(this.rangeDates[0]);\n const term = this.formatDate(this.rangeDates[1]);\n if (init) {\n const endDate = term ?? init;\n this.dashboardService.getConversationLeads(this.botId, init, endDate).subscribe(res => {\n if (res && res.chatbot_conversation_leads.length > 0) {\n this.chatbotHistoryLeads = res.chatbot_conversation_leads;\n this.hasData = true;\n } else {\n console.log('No hay datos disponibles.');\n this.hasData = false;\n }\n this.isLoading = false; \n }, error => {\n console.error('Error al obtener los datos: ', error);\n this.isLoading = false; \n });\n } else {\n console.error('Las fechas no son válidas.'); \n this.hasData = false; \n this.isLoading = false; \n }\n }\n formatDate(fechaOriginal: Date): string | null {\n if (fechaOriginal === null) {\n return null;\n }\n const fechaObj = new Date(fechaOriginal);\n const anio = fechaObj.getFullYear();\n const mes = fechaObj.getMonth() + 1; // Los meses en JavaScript son 0-indexados, por lo que se suma 1 \n const dia = fechaObj.getDate();\n return `${anio}-${mes < 10 ? '0' : ''}${mes}-${dia < 10 ? '0' : ''}${dia}`;\n }\n onClean() {\n this.rangeDates = '';\n this.calendar.overlayVisible = false;\n }\n onDateSelect() {\n if (this.rangeDates && this.rangeDates.length === 2 && this.rangeDates[0]) {\n this.calendar.overlayVisible = false; // Cierra el calendario\n this.showLeads();\n }\n }\n exportToExcel() {\n // Definir las columnas personalizadas que quieres mostrar\n const columns = [\n { header: 'Origen', key: 'origin' },\n { header: 'Fecha', key: 'created_at' },\n { header: 'Nombre', key: 'sender_name' },\n { header: 'Email', key: 'sender_email' },\n { header: 'Teléfono', key: 'sender_phone' },\n { header: 'Requerimientos', key: 'sender_requirement' }\n // Agrega o quita columnas según necesites\n ];\n\n // Mapear los datos para incluir solo los campos deseados\n const data = this.chatbotHistoryLeads.map((item: ChatHistoryLeads) =>\n columns.reduce((acc:any, col) => {\n acc[col.header] = item[col.key as keyof ChatHistoryLeads];\n return acc;\n }, {})\n );\n\n // Crear la hoja de cálculo con opciones personalizadas\n const worksheet: XLSX.WorkSheet = XLSX.utils.json_to_sheet(data);\n\n // Aplicar estilo a las cabeceras\n worksheet['!cols'] = columns.map(() => ({ wch: 20 }));\n\n // Obtener la referencia de las cabeceras\n const range = XLSX.utils.decode_range(worksheet['!ref']!);\n for (let C = range.s.c; C <= range.e.c; ++C) {\n const header = XLSX.utils.encode_col(C) + '1';\n if (worksheet[header]) {\n worksheet[header].s = {\n font: { bold: true },\n border: {\n top: { style: 'thin' },\n bottom: { style: 'thin' },\n left: { style: 'thin' },\n right: { style: 'thin' }\n }\n };\n }\n }\n // Aplicar bordes a todas las celdas\n for (let R = range.s.r + 1; R <= range.e.r; ++R) {\n for (let C = range.s.c; C <= range.e.c; ++C) {\n const cell = XLSX.utils.encode_cell({ r: R, c: C });\n if (worksheet[cell]) {\n worksheet[cell].s = {\n border: {\n top: { style: 'thin' },\n bottom: { style: 'thin' },\n left: { style: 'thin' },\n right: { style: 'thin' }\n }\n };\n }\n }\n }\n\n // Crear y guardar el libro de Excel\n const workbook: XLSX.WorkBook = {\n Sheets: { 'data': worksheet },\n SheetNames: ['data']\n };\n XLSX.writeFile(workbook, 'chatbot_history_leads.xlsx');\n }\n // cambio del switch\n onLeadsToggle(event: any) {\n const newConfig = {\n leads_enabled: event.checked,\n user_data_gathering_enabled: event.checked\n };\n\n this.dashboardService.updateLeadsConfig(this.botId, newConfig).subscribe({\n next: () => {\n if (event.checked) {\n this.showMessage('success', 'Obtención de Leads activada', 'Ahora tu chatbot detectará oportunidades de venta');\n this.showLeads();\n } else {\n this.showMessage('warn', 'Leads desactivados', 'Tu chatbot no capturará nuevos leads');\n }\n this.leadsEnabled = event.checked;\n },\n error: (error) => {\n this.leadsEnabled = !event.checked;\n console.error('Error al actualizar: ', error);\n this.showMessage('error', 'Error', 'No se pudo actualizar la configuración de leads');\n }\n });\n }\n showMessage(severity :string, summary: string, detail: string){\n this.ms.add({ key: 'tst', severity: severity, summary: summary, detail: detail });\n }\n showDialog(correlationId: string) {\n this.botService.getChatHistory(this.botId, correlationId, undefined,undefined,false).subscribe({\n next: (rawGroups) => {\n // Transformar la respuesta del servicio al tipo ChatHistoryGroup\n this.selectedChatHistory = rawGroups.map((group: any) => ({\n date: this.getGroupDate(group.messages),\n messages: group.messages\n .sort((a: ChatHistory, b: ChatHistory) => \n new Date(a.created_at).getTime() - new Date(b.created_at).getTime()\n )\n .map((message: any) => ({\n ...message,\n created_at: message.created_at // Mantener formato original o ajustar si es necesario\n }))\n }));\n \n this.visible = true;\n },\n error: (error) => {\n console.error('Error al obtener el historial de chat:', error);\n }\n });\n }\n \n // función para obtener la fecha del grupo\n private getGroupDate(messages: ChatHistory[]): string {\n if (messages.length === 0) return 'Sin fecha';\n \n const firstMessageDate = new Date(messages[0].created_at);\n return this.formatGroupDate(firstMessageDate);\n }\n \n \n private formatGroupDate(date: Date): string {\n const today = new Date();\n const yesterday = new Date(today);\n yesterday.setDate(today.getDate() - 1);\n \n if (date.toDateString() === today.toDateString()) return 'Hoy';\n if (date.toDateString() === yesterday.toDateString()) return 'Ayer';\n \n return date.toLocaleDateString('es-ES', {\n weekday: 'long',\n year: 'numeric',\n month: 'long',\n day: 'numeric'\n });\n }\n}\n\n","
    \n
    \n 0, 'calendar-selector-empty': !rangeDates || rangeDates.length < 1}\">\n \n \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n {{ leadsEnabled ? 'Desactivar obtención de Leads' : 'Activar obtención de Leads' }}\n \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n \n \n \n \n Origen\n Fecha\n Nombre\n Email\n Teléfono\n Requerimientos\n \n \n \n \n \n {{ leads.origin || '--' }}\n {{ leads.created_at | customDate }}\n {{ leads.sender_name || '--' }}\n {{ leads.sender_email || '--' }}\n {{ leads.sender_phone || '--' }}\n {{ leads.sender_requirement || '--' }}\n \n \n \n \n\n \n \n \n \n \n\n
    \n
    Descargar a XLSX\n \n
    \n
    \n
    \n\n \n
    \n \n

    \n Activa la obtención de leads para que tu chatbot detecte interés y recoja datos como email y teléfono de tus\n clientes.\n

    \n

    No tienes datos para mostrar

    \n
    \n
    \n\n
    ","import { ChangeDetectorRef, Component, NgZone, OnInit, ViewChild } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport Chart, { ChartData, ChartOptions } from 'chart.js/auto/auto.mjs';\nimport { DashboardService } from 'src/app/services/dashboard.service';\nimport { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\nimport { HttpClient } from '@angular/common/http';\nimport {ChatHistory} from 'src/app/models/history.interface'\n\ninterface DistributionData {\n day_hour_distribution: {\n [key: string]: string; // Las claves son strings y los valores también son strings (ej: \"33.33%\")\n }\n}\n@Component({\n selector: 'globot-statistics',\n templateUrl: './statistics.component.html',\n styleUrls: ['./statistics.component.scss'],\n})\n\nexport class StatisticsComponent implements OnInit {\n\n @ViewChild('calendar') calendar: any;\n rangeDates: any;\n records: any[] = [];\n hasData: boolean = true; \n isHandset: boolean = false;\n pieChartLabels: string[] = [];\n public pieChartData: any[] = [];\n public barChartOptions: ChartOptions<'bar'> = {\n responsive: true,\n maintainAspectRatio: false,\n scales: {\n x: {\n stacked: true,\n grid: {\n display: false\n },\n ticks: {\n autoSkip: true, // Para dispositivos pequeños\n maxRotation: 0, // Evita rotación de etiquetas\n minRotation: 0\n }\n },\n y: {\n stacked: true,\n beginAtZero: true,\n ticks: {\n callback: function (value) {\n return value + '%'; // Mostrar porcentajes\n }\n },\n grid: {\n display: false\n }\n }\n },\n plugins: {\n legend: {\n display: false\n }\n }\n };\n\n public barChartData: ChartData<'bar'> = {\n labels: ['0h', '2h', '4h', '6h', '8h', '10h', '12h', '14h', '16h', '18h', '20h'], \n datasets: [] // Los intervalos de horas van aquí\n };\n\n botId;\n chartInstance: Chart<'pie'> | undefined;\n data: any = {};\n\n chatbotHistoryList: ChatHistory[] = [];\n isLoading: boolean = false;\n\n constructor(private dashboardService: DashboardService,\n private aRoute: ActivatedRoute, private router: Router,\n private breakpointObserver: BreakpointObserver, private http: HttpClient, private cdr: ChangeDetectorRef, private zone: NgZone) {\n\n this.botId = this.aRoute.snapshot.paramMap.get('id') ?? ''; const sections = this.router.routerState.snapshot.url.split('/');\n this.botId = sections[3];\n\n //? FECHAS DEFAULT\n const currentDate = new Date();\n currentDate.setHours(0, 0, 0, 0); // Establecer la hora a 00:00:00.000\n const sevenDaysAgo = new Date(currentDate.getTime() - 7 * 24 * 60 * 60 * 1000);\n this.rangeDates = [sevenDaysAgo, currentDate];\n\n this.breakpointObserver.observe([\n Breakpoints.Handset\n ]).subscribe(result => {\n this.isHandset = result.matches;\n });\n }\n\n ngOnInit() {\n this.updateCharts()\n }\n updateCharts() {\n this.isLoading = true;\n const init = this.formatDate(this.rangeDates[0]);\n const term = this.formatDate(this.rangeDates[1]); \n if (init) {\n const endDate = term ?? init;\n this.dashboardService.getConversationStats(this.botId, init, endDate).subscribe(res => {\n if (res) { \n this.data = res; \n this.createChart(); \n } else { \n this.data = {}; \n console.log('No hay datos disponibles.'); \n } \n });\n this.dashboardService.getConversationDistributionStats(this.botId, init, endDate).subscribe(res => {\n if (res) { \n this.updateBarChart(res); \n } else { \n this.barChartData = { labels: [], datasets: [] };\n \n } \n });\n this.dashboardService.getConversationNonDocumentResponse(this.botId, init, endDate).subscribe(res => { \n console.log(res); \n if (res && res.chatbot_history_list.length) { \n this.chatbotHistoryList = res.chatbot_history_list; \n this.hasData = true; \n } else { \n console.log('No hay datos disponibles.'); \n this.chatbotHistoryList = [];\n this.hasData = false; \n } \n this.isLoading = false; \n }); } else { \n console.error('Las fechas no son válidas.'); \n this.isLoading = false; \n } \n }\n\n createChart() {\n const platforms = ['Messenger', 'Instagram', 'WhatsApp', 'Sitio web', 'Discord', 'Otros'];\n const dataValues = [\n this.data.fb_count || 0, \n this.data.ig_count || 0, \n this.data.wsp_count || 0, \n this.data.web_count || 0, \n this.data.discord_count || 0, \n this.data.others_count || 0\n ];\n \n // Filtrar valores cero\n this.pieChartLabels = platforms.filter((_, index) => dataValues[index] > 0);\n this.pieChartData = dataValues.filter(value => value > 0);\n \n this.hasData = this.pieChartData.length > 0;\n }\n formatDate(fechaOriginal: Date): string | null {\n if (fechaOriginal === null) {\n return null;\n }\n const fechaObj = new Date(fechaOriginal);\n const anio = fechaObj.getFullYear();\n const mes = fechaObj.getMonth() + 1; // Los meses en JavaScript son 0-indexados, por lo que se suma 1 \n const dia = fechaObj.getDate();\n return `${anio}-${mes < 10 ? '0' : ''}${mes}-${dia < 10 ? '0' : ''}${dia}`;\n }\n onClean() {\n this.rangeDates = '';\n this.calendar.overlayVisible = false;\n }\n onDateSelect() {\n if (this.rangeDates && this.rangeDates.length === 2 && this.rangeDates[0]) {\n this.calendar.overlayVisible = false; // Cierra el calendario\n this.updateCharts();\n }\n }\n \n\n updateBarChart(response: DistributionData) {\n const distributionData = response.day_hour_distribution;\n this.barChartData = {\n labels: ['0h', '2h', '4h', '6h', '8h', '10h', '12h', '14h', '16h', '18h', '20h', '22h'], \n datasets: [{ \n label: 'Distribución por hora',\n data: [ \n parseFloat(distributionData[\"00:00-01:59\"].replace('%', '')), \n parseFloat(distributionData[\"02:00-03:59\"].replace('%', '')), \n parseFloat(distributionData[\"04:00-05:59\"].replace('%', '')), \n parseFloat(distributionData[\"06:00-07:59\"].replace('%', '')), \n parseFloat(distributionData[\"08:00-09:59\"].replace('%', '')), \n parseFloat(distributionData[\"10:00-11:59\"].replace('%', '')), \n parseFloat(distributionData[\"12:00-13:59\"].replace('%', '')), \n parseFloat(distributionData[\"14:00-15:59\"].replace('%', '')), \n parseFloat(distributionData[\"16:00-17:59\"].replace('%', '')), \n parseFloat(distributionData[\"18:00-19:59\"].replace('%', '')), \n parseFloat(distributionData[\"20:00-21:59\"].replace('%', '')), \n parseFloat(distributionData[\"22:00-23:59\"].replace('%', '')) \n ], \n backgroundColor: '#B869DE', \n borderRadius: 2,\n // barThickness: 25, Cambiar grosor de las barras\n }] \n };\n // Para debug\n console.log('Labels:', this.barChartData.labels);\n console.log('Data:', this.barChartData.datasets[0].data);\n }\n}\n\n","
    \n\n 0, 'calendar-selector-empty': !rangeDates || rangeDates.length < 1}\">\n \n \n
    \n \n \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n Interacciones únicas\n \n \n \n\n
    \n {{ data.conversation_count ?? 0 }}\n\n
    \n
    \n
    \n Mensajes atendidos\n \n \n \n
    \n {{ data.messages_count ?? 0\n }}\n
    \n
    \n
    \n Momentos de más actividad\n
    \n \n
    \n
    \n
    \n Conversaciones por canal\n
    \n \n \n
    \n
    \n\n \n
    \n \n Aún no tienes datos para mostrar\n
    \n
    \n \n
    \n \n Aún no tienes datos para mostrar\n
    \n
    \n\n
    \n
    \n
    \n Consultas sin resolver del chatbot\n Estos datos te permiten identificar las consultas que tu chatbot no tiene configuradas para responder. Actualiza esta información en la sección “Cargar información”.\n
    \n
    \n \n \n \n \n Pregunta\n Respuesta chatbot\n \n \n \n \n {{ history.user_prompt}}\n {{ history.response}}\n \n \n \n\n
    \n\n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n Aún no tienes datos para mostrar\n
    \n
    \n
    \n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { MessengerBot } from 'src/app/models/messenger-bot.interface';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DataService {\n defaultStatus:tagStatus = {\n status:'Sin configurar',\n style:{\n 'padding-left': '10px',\n 'padding-right': '10px',\n 'background': '#EDEDED',\n 'color': '#6B6B6B', \n } \n};\n private messengerStatus = new BehaviorSubject(this.defaultStatus);\n\n private instagramStatus = new BehaviorSubject(this.defaultStatus);\n\n private refreshMessengerBot = new BehaviorSubject(false);\n\n getMessengerStatus() {\n return this.messengerStatus.asObservable();\n }\n\n refreshMessenger(){\n return this.refreshMessengerBot.asObservable();\n }\n\n getInstagramStatus() {\n return this.instagramStatus.asObservable();\n }\n \n\n setMessengerStatus(newValue: tagStatus) {\n this.messengerStatus.next(newValue);\n }\n\n setInstagramStatus(newValue: tagStatus) {\n this.instagramStatus.next(newValue);\n }\n\n setRefreshMessenger(newValue:boolean){\n this.refreshMessengerBot.next(newValue);\n }\n}\n\nexport interface tagStatus{\n status: string;\n style: { [klass: string]: any; };\n messengerBot?:MessengerBot\n}\n","import { ChangeDetectorRef, Component } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { Subscription } from 'rxjs';\nimport { ChatHistory, ChatHistoryGroup } from 'src/app/models/history.interface';\nimport { UserInterface } from 'src/app/models/user.interface';\nimport { BotService } from 'src/app/services/bot.service';\nimport { ClientsService } from 'src/app/services/clients.service';\nimport { UserService } from 'src/app/services/user.service';\n\ninterface Clients {\n sender_name: string;\n sender_phone: string;\n sender_email: string | null;\n sender_requirement: string | null;\n origin: string;\n agent: string;\n correlation_id: string;\n created_at: string;\n identificator: string | null;\n is_lead: string;\n sender__alternative_name: string;\n sender_location: string | null;\n}\n\n@Component({\n selector: 'globot-clients',\n templateUrl: 'clients.component.html',\n styleUrls: ['clients.component.scss'],\n})\nexport class ClientsComponent {\n private subscription: Subscription = new Subscription();\n botId: string;\n clients: Clients[] = [];\n isLoading: boolean = false;\n first: number = 0; \n pageSize: number = 10;\n totalRecords: number = 0;\n currentPage: number = 1; \n selectedChatHistory: ChatHistoryGroup[] = [];\n visible: boolean = false;\n\n selectedCorrelationId: string = '';\n\n user: UserInterface | undefined = undefined\n urlProfile: string = '';\n constructor(\n private aRoute: ActivatedRoute, \n private router: Router, \n private clientsService: ClientsService,\n private readonly userService: UserService,\n private cd: ChangeDetectorRef,\n private botService: BotService,\n \n ) {\n this.botId = this.aRoute.snapshot.paramMap.get('id') ?? '';\n const sections = this.router.routerState.snapshot.url.split('/');\n this.botId = sections[3];\n }\n\n ngOnInit(): void {\n this.loadClients();\n\n this.subscription.add(\n this.userService.url$.subscribe(newUrl => {\n this.urlProfile = newUrl;\n this.updateUserPicture(newUrl);\n })\n );\n this.user = this.userService.getUserLocalStorage();\n }\n\n// Función auxiliar para manejar respuestas vacías o con código 204\nprivate handleEmptyResponse(currentPage: number) {\n this.clients = [];\n if (currentPage === 1) {\n this.totalRecords = 0;\n }\n this.isLoading = false;\n}\n\n\nprivate processClientResponse(response: any) {\n this.clients = response.chatbot_conversation_clients || [];\n this.isLoading = false;\n this.totalRecords = response.total_records || 0;\n}\n\nloadClients(event?: any) {\n this.isLoading = true;\n \n \n if (event) {\n this.first = event.first;\n this.currentPage = (event.first / event.rows) + 1;\n }\n \n this.clientsService.getClients(this.botId, this.currentPage, this.pageSize, 'json').subscribe(\n (response) => {\n if (!response || (response.status && response.status === 204)) {\n this.handleEmptyResponse(this.currentPage);\n return;\n }\n \n this.processClientResponse(response);\n },\n (error) => {\n if (error && error.status === 204) {\n this.handleEmptyResponse(this.currentPage);\n } else {\n console.error('Error loading clients:', error);\n this.isLoading = false;\n }\n }\n );\n }\n\n exportExcel() {\n this.isLoading = true;\n \n // Usamos currentPage y pageSize para exportar la página actual\n const pageToExport = this.currentPage;\n const pageSizeToExport = this.pageSize;\n \n this.clientsService.getClients(this.botId, pageToExport, pageSizeToExport, 'xlsx').subscribe(\n (response) => {\n const blob = new Blob([response], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });\n const url = window.URL.createObjectURL(blob);\n const link = document.createElement('a');\n link.href = url;\n link.download = `clientes_pagina_${pageToExport}.xlsx`;\n link.click();\n window.URL.revokeObjectURL(url);\n this.isLoading = false;\n },\n (error) => {\n console.error('Error al exportar los clientes:', error);\n this.isLoading = false;\n }\n );\n }\n private updateUserPicture(newUrl: string): void {\n if (this.user) {\n this.user.picture = newUrl;\n }\n this.cd.detectChanges();\n}\nshowDialog(correlationId: string, event?: MouseEvent) {\n if (event) {\n event.preventDefault();\n event.stopPropagation();\n }\n // Evitar múltiples clics mientras se carga\n if (this.isLoading) {\n return;\n }\n\n // Almacenar el ID de correlación seleccionado\n this.selectedCorrelationId = correlationId;\n this.isLoading = true;\n\n this.selectedChatHistory = [];\n this.cd.detectChanges();\n\n this.botService.getChatHistory(this.botId, correlationId, undefined, undefined, false).subscribe({\n next: (rawGroups) => {\n if (rawGroups && Array.isArray(rawGroups)) {\n this.selectedChatHistory = rawGroups.map((group: any) => ({\n date: this.getGroupDate(group.messages),\n messages: group.messages\n .sort((a: ChatHistory, b: ChatHistory) => \n new Date(a.created_at).getTime() - new Date(b.created_at).getTime()\n )\n .map((message: any) => ({\n ...message,\n created_at: message.created_at \n }))\n }));\n \n this.cd.detectChanges();\n \n this.visible = true;\n } else {\n console.error('Formato de respuesta inválido para el historial de chat');\n }\n this.isLoading = false;\n },\n error: (error) => {\n console.error('Error al obtener el historial de chat:', error);\n this.isLoading = false;\n }\n });\n}\n\n// Función para obtener la fecha del grupo\nprivate getGroupDate(messages: ChatHistory[]): string {\n if (!messages || messages.length === 0) return 'Sin fecha';\n \n const firstMessageDate = new Date(messages[0].created_at);\n return this.formatGroupDate(firstMessageDate);\n}\n\nprivate formatGroupDate(date: Date): string {\n const today = new Date();\n const yesterday = new Date(today);\n yesterday.setDate(today.getDate() - 1);\n\n if (date.toDateString() === today.toDateString()) return 'Hoy';\n if (date.toDateString() === yesterday.toDateString()) return 'Ayer';\n \n return date.toLocaleDateString('es-ES', {\n weekday: 'long',\n year: 'numeric',\n month: 'long',\n day: 'numeric'\n });\n}\n\nngOnDestroy(): void {\n this.subscription.unsubscribe();\n}\n}","
    \n
    \n

    Clientes

    \n
    0\">\n Exportar a Excel\n \n
    \n
    \n\n 0 || isLoading\" [value]=\"clients\" [lazy]=\"true\" [paginator]=\"true\" [rows]=\"pageSize\"\n [totalRecords]=\"totalRecords\" (onLazyLoad)=\"loadClients($event)\"\n [showCurrentPageReport]=\"true\" responsiveLayout=\"scroll\" [loading]=\"isLoading\"\n currentPageReportTemplate=\"Mostrando {first} a {last} de {totalRecords} registros\">\n\n \n \n Nombre cliente\n Nombre alternativo\n Teléfono\n Email\n Canal de contacto\n Motivo de contacto\n Agente en contacto\n \n \n \n\n \n \n {{client.sender_name || '--' }}\n {{client.sender__alternative_name || '--'}}\n {{client.sender_phone || '--' }}\n {{client.sender_email || '--' }}\n {{client.origin}}\n {{ (client.sender_requirement || '--') | slice:0:50 }}\n 50\">...\n \n \n \n --\n \n \n
    \n \n \n {{ client.agent }}\n
    \n
    \n \n \n
    \n \n
    \n \n\n \n
    \n
    \n\n \n \n
    \n\n\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { BotService } from 'src/app/services/bot.service';\nimport { SpinnerService } from 'src/app/services/spinner.service';\nimport * as dayjs from 'dayjs';\nimport utc from 'dayjs/plugin/utc';\nimport timezone from 'dayjs/plugin/timezone';\n@Component({\n selector: 'globot-cards-records',\n templateUrl: './cards-records.component.html',\n styleUrls: ['./cards-records.component.scss']\n})\nexport class CardsRecordsComponent {\n @Input() records: any[] = [];\n @Output() chatHistorySelected = new EventEmitter();\n botId = '';\n selectedCard!: string;\n constructor(private botService: BotService, private aRoute: ActivatedRoute, private router: Router, private ss: SpinnerService) {\n dayjs.extend(utc);\n dayjs.extend(timezone);\n // const utcDate = dayjs.utc(dateFromServer);\n this.botId = this.aRoute.snapshot.paramMap.get('id') ?? ''; const sections = this.router.routerState.snapshot.url.split('/');\n this.botId = sections[3];\n \n}\n\ngetDateUtc(date:any){\n\n // Convertir la fecha UTC recibida a un objeto dayjs\n const dayjsUtc = dayjs.utc(date);\n\n // Convertir la fecha a la zona horaria local del sistema\n const localDate = dayjsUtc.local(); // Convierte a la hora local del sistema\n\n // Retornar la fecha formateada en la hora local del sistema\n return localDate.format('HH:mm DD/MM/YY');\n}\n\n getFirstPart(sender_id: string): string {\n return sender_id.split(';')[0];\n }\n\n getChatHistory = (record: any) => {\n this.selectedCard = record.correlation_id;\n this.botService.getChatHistory(this.botId, record.correlation_id).subscribe(chatHistory => {\n this.chatHistorySelected.emit({record,chatHistory});\n });\n }\n \n\n}\n","
    \n \n \n
    \n
    \n \n \n

    {{' '+ record.channel }}

    \n
    \n
    \n

    {{ getDateUtc(record.created_at) }}

    \n
    \n
    \n \n
    \n

    {{record.last_message | maxText }}

    \n
    \n\n
    \n","import { Component, EventEmitter, Output } from '@angular/core';\nimport { Channel } from 'src/app/models/channels.inteface';\n\n\n@Component({\n selector: 'globot-channel-selector',\n templateUrl:'./channel-selector.component.html',\n styles: [\n `\n .p-multiselect-panel .p-multiselect-items {\n max-height: none;\n }\n \n `\n \n ]\n})\nexport class ChannelSelectorComponent {\n @Output() onChange = new EventEmitter();\n\n\n channels!: Channel[];\n\n selectedChannels!: Channel[];\n\n ngOnInit() {\n this.channels = [\n { name: 'Página Web', code: 'WEB' },\n { name: 'Discord', code: 'DISCORD' },\n { name: 'Messenger', code: 'MESSENGER' },\n { name: 'Instagram', code: 'INSTAGRAM' },\n { name: 'Whatsapp', code: 'WHATSAPP' }\n ];\n this.selectedChannels = [...this.channels];\n }\n onChannelsSelect() {\n this.onChange.emit(this.selectedChannels);\n console.log('MIRA', this.selectedChannels)\n }\n \n\n}\n","
    \n \n
    \n ","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormArray, FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { GetBotResponse } from 'src/app/models/bot.interface';\nimport { DomainService } from 'src/app/services/domain.service';\nimport { Domain} from \"../../../../../../models/domain.interface\";\nimport { MessageService} from \"primeng/api\";\n\n\n@Component({\n selector: 'globot-domain-config',\n templateUrl: './domain-config.component.html',\n styleUrls: ['domain-config.component.scss']\n})\nexport class DomainConfigComponent implements OnInit {\n domainsForm: FormGroup;\n // TODO: Esto debe estar en environment\n maxDomains = 3;\n domainList: Domain[] = [];\n isSubmitting = true;\n\n @Input() bot?: GetBotResponse;\n\n\n @Output() domainsFormSubmit = new EventEmitter();\n\n constructor(private fb: FormBuilder, private domainService: DomainService, private ms: MessageService) {\n this.domainsForm = this.fb.group({\n domains: this.fb.array([])\n });\n\n this.domainsForm.valueChanges.subscribe(\n {\n next: (res => {\n if (res.domains.length > 0) {\n this.isSubmitting = false;\n }\n })\n }\n )\n }\n\n ngOnInit(): void {\n this.getDomains();\n }\n\n getDomains() {\n this.domainService.getDomains(this.bot!.id).subscribe({\n next: (response) => {\n const domainsFormArray = this.domainsForm.get('domains') as FormArray;\n domainsFormArray.clear();\n this.domainList = [];\n response.data.forEach(domain => {\n this.domainList.push(domain);\n domainsFormArray.push(this.fb.control(domain.domain));\n domainsFormArray.controls[domainsFormArray.length-1].disable();\n });\n },\n error: err => {\n console.error(err);\n }\n });\n }\n\n getDomainsFormArray() {\n const domainsFormArray = this.domainsForm.get('domains') as FormArray;\n console.log('domainsFormArray', domainsFormArray.length);\n return domainsFormArray;\n }\n\n addDomain(): void {\n const domainsFormArray = this.domainsForm.get('domains') as FormArray;\n if (domainsFormArray.length < this.maxDomains) {\n const domainsFormArray = this.domainsForm.get('domains') as FormArray;\n const urlPattern = '^https://([\\\\da-z.-]+)\\\\.([a-z.]{2,6})([/\\\\w .-]*)*/?$';\n const newDomain = this.fb.control('', [Validators.required, Validators.pattern(urlPattern)]);\n domainsFormArray.push(newDomain);\n this.isSubmitting = false;\n } else {\n this.ms.add({ key: 'tst', severity: 'error', summary: 'Acción fallida', detail: 'Máximo de dominios permitidos' });\n }\n }\n\n removeDomain(index: number): void {\n const domain = this.domainList[index];\n if (domain && domain.id) {\n this.domainService.deleteDomain(this.bot!.id, domain.id).subscribe({\n next: response => {\n this.domainList.splice(index, 1);\n const domainsFormArray = this.domainsForm.get('domains') as FormArray;\n domainsFormArray.removeAt(index);\n this.ms.add({ key: 'tst', severity: 'success', summary: 'Acción exitosa', detail: '¡Dominio eliminado con éxito!' });\n },\n error: err => {\n console.error(err);\n this.ms.add({ key: 'tst', severity: 'error', summary: 'Acción fallida', detail: 'Hubo un problema al eliminar el dominio' });\n }\n });\n } else {\n // Si el dominio no tiene un id, simplemente lo elimina del array de dominios y del FormArray\n this.domainList.splice(index, 1);\n const domainsFormArray = this.domainsForm.get('domains') as FormArray;\n domainsFormArray.removeAt(index);\n // this.ms.add({ key: 'tst', severity: 'success', summary: 'Acción exitosa', detail: '¡Dominio eliminado con éxito!' });\n }\n }\n\n\n @Output() formSubmit = new EventEmitter();\n\n onSubmit() {\n this.isSubmitting = true;\n const formDomainsArray = this.domainsForm.get('domains') as FormArray;\n\n if (this.domainList.length >= 3) {\n this.ms.add({ key: 'tst', severity: 'error', summary: 'Acción fallida', detail: 'Máximo de dominios permitido' });\n this.isSubmitting = false;\n return;\n }\n\n for (let control of formDomainsArray.controls) {\n if (control.dirty) {\n this.submitDomain(control.value)\n }\n }\n\n this.domainsFormSubmit.emit(this.domainsForm.value);\n }\n\n submitDomain(newDomain: string) {\n\n if (newDomain.trim() === '') {\n this.ms.add({ key: 'tst', severity: 'error', summary: 'Acción fallida', detail: 'El dominio no puede estar en blanco' });\n return;\n }\n\n for (let domainEntry of this.domainList) {\n if (domainEntry.domain === newDomain) {\n this.ms.add({ key: 'tst', severity: 'error', summary: 'Acción fallida', detail: 'No puedes agregar un mismo dominio' });\n return;\n }\n }\n\n this.domainService.addDomain(this.bot!.id, newDomain).subscribe({\n next: response => {\n this.ms.add({ key: 'tst', severity: 'success', summary: 'Acción exitosa', detail: '¡Dominio agregado con éxito!' });\n },\n error: err => {\n console.error(err);\n this.ms.add({ key: 'tst', severity: 'error', summary: 'Acción fallida', detail: 'Hubo un problema al agregar el dominio' });\n },\n complete: () => {\n this.getDomains();\n this.isSubmitting = false;\n }\n });\n\n }\n\n}\n","
    \n
    \n

    Dominios asociados

    \n

    Los dominios que ingreses serán donde podrás usar tu chatbot, puedes agregar un máximo de 3 dominios.

    \n
    \n
    \n \n \n \n \n
    \n 0\" (click)=\"removeDomain(i)\">\n
    \n
    \n \n \n
    ","import { Component } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { ConfirmEventType, ConfirmationService, MessageService } from 'primeng/api';\nimport { UserService } from 'src/app/services/user.service';\nimport { GlobalObservableService } from 'src/app/services/global-observable.service';\n\n@Component({\n selector: 'globot-delete-account',\n templateUrl: './delete-account.component.html',\n styleUrls: ['./delete-account.component.scss']\n})\nexport class DeleteAccountComponent {\n constructor(\n private userService: UserService,\n private router: Router,\n private confirmationService: ConfirmationService,\n private messageService: MessageService,\n private globalService: GlobalObservableService\n ) {}\n\n deleteAccount() {\n this.confirmationService.confirm({\n message: '¿En serio quieres eliminar tu cuenta para siempre? No habrá manera de restaurar tu cuenta.',\n icon: 'pi pi-exclamation-triangle',\n accept: () => {\n this.userService.deleteUser().subscribe({\n next: () => {\n this.userService.logout();\n this.confirmationService.close();\n this.globalService.publish('accountDeleted');\n },\n error: (err) => {\n console.log('Error al eliminar el usuario:', err);\n this.messageService.add({\n severity: 'error',\n summary: 'Acción fallida',\n detail: 'La cuenta no pudo eliminarse'\n });\n this.confirmationService.close();\n }\n });\n },\n reject: (type: ConfirmEventType) => {\n switch (type) {\n case ConfirmEventType.REJECT:\n case ConfirmEventType.CANCEL:\n console.log('Confirmación rechazada o cancelada');\n\n this.messageService.add({\n key: 'tst',\n severity: 'warn',\n summary: 'Acción cancelada',\n detail: 'Eliminar cuenta cancelado'\n });\n break;\n }\n this.confirmationService.close();\n }\n });\n }\n \n}","
    \n Eliminar cuenta\n \n Una vez que elimines tu cuenta todos tus chatbots serán borrados. Esta acción es irreversible, por favor asegúrate.\n \n \n
    \n \n \n

    Lamentamos que tengas que irte :’(

    \n
    \n \n \n \n \n
    \n","import { HttpClient } from '@angular/common/http';\nimport { ChangeDetectorRef, Component } from '@angular/core';\nimport { AbstractControl, FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { UserInterface } from 'src/app/models/user.interface';\nimport { UserService } from 'src/app/services/user.service';\nimport { ImageCroppedEvent } from 'ngx-image-cropper';\nimport { ConfirmEventType, ConfirmationService, MessageService } from 'primeng/api';\n\n\n@Component({\n selector: 'globot-profile',\n templateUrl: './profile.component.html',\n styleUrls: ['./profile.component.scss']\n})\nexport class ProfileComponent {\n user: UserInterface | undefined = undefined\n userForm: FormGroup;\n\n imageChangedEvent: any = '';\n croppedImage: any = ''\n imageUploaded = false;\n isLoading: boolean = false;\n urlProfile: string = '' ;\n dialogVisible: boolean = false;\n hasPicture: boolean = false;\n isUpdating: boolean = false;\n\n constructor(\n private readonly userService: UserService, \n private fb: FormBuilder,\n private http: HttpClient, \n private cd: ChangeDetectorRef, \n private readonly ms: MessageService,\n private confirmationService: ConfirmationService\n ){\n this.userForm = this.fb.group({\n email: [''],\n name: ['', [\n Validators.required,\n Validators.minLength(2),\n Validators.maxLength(32),\n this.validarFormatoNombre]],\n type_document: ['DNI'],\n\n })\n this.user = this.userService.getUserLocalStorage();\n this.updateHasPicture();\n }\n\n ngOnInit(): void {\n if (this.user) {\n \n this.userForm.controls['email'].setValue(this.user.email || '');\n this.userForm.controls['name'].setValue(this.user.name || '');\n }\n this.userService.url$.subscribe(newUrl =>{\n this.urlProfile = newUrl;\n this.updateHasPicture();\n this.cd.detectChanges();\n });\n\n this.userService.name$.subscribe(newName => {\n if (this.user) {\n this.user.name = newName;\n }\n this.cd.detectChanges();\n });\n this.updateHasPicture();\n }\n \n\n validarFormatoNombre(control: AbstractControl) {\n const nombre = control.value.trim();\n const regexNombre = /^[A-Za-zÑñÁÉÍÓÚáéíóúÜü0-9.,]+(?:\\s[A-Za-zÑñÁÉÍÓÚáéíóúÜü0-9.,]+)*$/;\n if (!regexNombre.test(nombre)) {\n return { formatoInvalido: 'Ingresa un nombre y apellido válido' };\n }\n return null;\n }\n getInputClass(controlName: string) {\n return { 'invalid-input': this.userForm.controls[controlName].invalid && this.userForm.controls[controlName].touched };\n }\n showDialog() {\n this.dialogVisible = true;\n }\n \n hideDialog() {\n this.dialogVisible = false;\n }\n\n\n fileChangeEvent(event: Event): void {\n const inputElement = event.target as HTMLInputElement;\n if (inputElement.files && inputElement.files.length > 0) {\n const file = inputElement.files[0];\n\n const validTypes = ['image/jpeg', 'image/png'];\n if (!validTypes.includes(file.type)) {\n alert('Por favor, seleccione un archivo JPG o PNG.');\n inputElement.value = '';\n return;\n }\n \n if (file.size > 1048576) {\n alert('El tamaño de la imagen no debe superar 1MB');\n \n inputElement.value = '';\n return;\n }\n\n this.imageChangedEvent = event;\n this.dialogVisible = true;\n\n }\n \n }\n\n imageCropped(event: ImageCroppedEvent): void {\n this.croppedImage = event.base64;\n }\n\n imageLoaded(): void {\n // show cropper\n }\n\n cropperReady(): void {\n // cropper ready\n }\n\n loadImageFailed(): void {\n // show message\n }\n\n uploadCroppedImage(): void {\n if (this.croppedImage) {\n this.isLoading = true;\n const blob = this.dataURItoBlob(this.croppedImage);\n const formData = new FormData();\n const inputElement = this.imageChangedEvent.target as HTMLInputElement; // Convertimos el evento de cambio de imagen en un elemento de entrada HTML \n const fileName = inputElement.files ? inputElement.files[0].name : 'profile.png';// Obtenemos el nombre del archivo seleccionado. Si no hay archivos, usamos 'profile.png' \n formData.append('picture', blob, fileName);\n \n this.userService.uploadImage(formData).subscribe(\n response => {\n if (response?.url) {\n this.userService.changeUrl(response?.url)\n this.imageChangedEvent = ''; \n this.croppedImage = '';\n this.dialogVisible = false;\n this.updateHasPicture();\n this.cd.detectChanges(); \n }\n this.isLoading = false;\n },\n error => {\n console.error('Error de carga:', error);\n this.isLoading = false;\n }\n );\n }\n }\n\n cancelImageUpload(): void {\n this.imageChangedEvent = '';\n this.croppedImage = '';\n this.imageUploaded = false;\n \n const fileInput = document.getElementById('avatar-upload') as HTMLInputElement | null;\n if (fileInput) {\n fileInput.value = '';\n }\n this.dialogVisible = false;\n\n }\n\n\n dataURItoBlob(dataURI: string): Blob {\n const byteString = window.atob(dataURI.split(',')[1]);\n const arrayBuffer = new ArrayBuffer(byteString.length);\n const intArray = new Uint8Array(arrayBuffer);\n for (let i = 0; i < byteString.length; i++) {\n intArray[i] = byteString.charCodeAt(i);\n }\n return new Blob([intArray], { type: 'image/png' });\n }\n updateHasPicture(): void {\n this.hasPicture = !!this.urlProfile || !!(this.user?.picture);\n console.log('hasPicture actualizado:', this.hasPicture);\n }\n\n deletePicture() {\n this.confirmationService.confirm({\n message: 'Si eliminas no podrás recuperar los datos.',\n icon: 'pi pi-exclamation-triangle',\n key: 'deletePictureDialog',\n accept: () => {\n this.userService.deletePictureUser().subscribe({\n next: () => {\n this.showMessage('success', 'Acción exitosa', 'Foto de perfil eliminada con éxito');\n this.urlProfile = '';\n if (this.user) {\n this.user.picture = '';\n }\n this.userService.changeUrl('');\n \n // Actualizar el estado de hasPicture\n this.updateHasPicture();\n this.cd.detectChanges();\n this.confirmationService.close();\n },\n error: (error) => {\n console.error('Error al eliminar la imagen:', error);\n this.showMessage('error', 'Error al eliminar la imagen', 'Por favor, intenta más tarde');\n this.confirmationService.close();\n }\n });\n },\n reject: (type: ConfirmEventType) => {\n switch (type) {\n case ConfirmEventType.REJECT:\n case ConfirmEventType.CANCEL:\n console.log('Eliminación de imagen cancelada');\n this.showMessage('warn', 'Acción cancelada', 'Eliminación de imagen cancelada');\n break;\n }\n this.confirmationService.close();\n }\n });\n }\n showMessage(severity: string, summary: string, detail: string) {\n this.ms.add({ key: 'tst', severity, summary, detail });\n }\n updateUser(){\n if (!this.userForm.valid) {\n this.showMessage('error', 'No se realizaron cambios', 'Es necesario un nombre');\n return;\n }\n \n if (!this.userForm.dirty) {\n this.showMessage('info', 'Sin cambios', 'No hay cambios para guardar.');\n return;\n }\n \n if (this.user) {\n this.isUpdating = true;\n const updatedUser: UserInterface = {\n ...this.user,\n name: this.userForm.get('name')?.value.trim() ,\n type_document: this.userForm.get('type_document')?.value\n };\n \n this.userService.updateUser(updatedUser).subscribe({\n next: (response) => {\n this.user = response;\n this.userService.changeName(response.name);\n this.userForm.markAsPristine();\n this.cd.detectChanges();\n this.showMessage('success', 'Acción exitosa', '¡Cambios guardados!');\n this.isUpdating = false;\n },\n error: (error) => {\n this.isUpdating = false;\n console.error('Error al actualizar el perfil:', error);\n this.showMessage('error', 'Error', 'No se pudo actualizar el perfil. Por favor, intenta de nuevo.');\n }\n });\n } else {\n this.showMessage('warn', 'Formulario inválido', 'Por favor, verifica los campos del formulario.');\n }\n }\n selectImage(): string{\n if(this.urlProfile !== undefined && this.urlProfile !== ''){\n return this.urlProfile\n }else if(this.user?.picture !== undefined && this.user.picture !== '') {\n return this.user.picture\n }else {\n return ''\n }\n\n }\n}\n\n","
    \n Perfil\n
    \n
    \n \n \n
    \n
    \n \n JPG o PNG. Tamaño máximo 1 MB.\n
    \n
    \n\n \n \n
    \n \n \n
    \n
    \n\n
    \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n\n \n

    Eliminar foto de perfil

    \n
    \n \n \n \n \n
    ","import { Component, OnInit } from '@angular/core';\nimport { ConfirmEventType, ConfirmationService, MessageService } from 'primeng/api';\nimport { GetBotResponse } from 'src/app/models/bot.interface';\nimport { UserInterface, SubscriptionType } from 'src/app/models/user.interface';\nimport { BotService } from 'src/app/services/bot.service';\nimport { UserService } from 'src/app/services/user.service';\n\n@Component({\n selector: 'globot-subscription-plan',\n templateUrl: './subscription-plan.component.html',\n styleUrls: ['./subscription-plan.component.scss'],\n})\nexport class SubscriptionPlanComponent implements OnInit {\n bots: GetBotResponse[] = [];\n user: UserInterface | undefined = undefined;\n subscriptionType: SubscriptionType | undefined = undefined;\n consumedMessages: number | undefined;\n limitMessages: number | undefined;\n showCancelButton: boolean = false;\n showPlansDialog: boolean = false;\n\n constructor(private userService: UserService, private botService: BotService, private confirmationService: ConfirmationService,private readonly ms: MessageService ){}\n\n\n ngOnInit() {\n this.user = this.userService.getUserLocalStorage();\n this.subscriptionType = this.user?.subscription_type;\n this.getMessageCount();\n this.botService.getBots().subscribe(bots => { \n this.bots = bots;\n });\n\n }\n\n\n \n getMessageCount() {\n this.userService.getMessageCount().subscribe((response: any) => {\n this.consumedMessages = response.consumed_messages;\n this.limitMessages = response.limit_messages;\n });\n }\n\n getFeatures() {\n if (!this.user?.subscription_type) {\n return [];\n }\n\n switch (this.user.subscription_type.name) {\n case 'FREE':\n return ['Fuentes de información limitadas'];\n case 'BASE':\n return ['Integración Web y Wordpress', 'Todas las fuentes de información', 'Historial de conversaciones'];\n case 'PREMIUM':\n return ['Integración Web y Wordpress', 'Todas las fuentes de información', 'Historial de conversaciones', 'Integraciones Meta'];\n default:\n return [];\n }\n }\n\n cancelSubscription() {\n this.confirmationService.confirm({\n message: '¿En serio quieres finalizar tu suscripción? No podrás utilizar las funcionalidades que tienes acceso actualmente.


    Tu plan se mantendrá activo hasta la fecha límite',\n icon: 'pi pi-exclamation-triangle',\n accept: () => {\n this.userService.cancelSubscription().subscribe({\n next: () => {\n this.showMessage('success', 'Plan finalizado exitosamente', 'Tu suscripción se mantendrá activa hasta la fecha límite');\n console.log('Suscripción cancelada con éxito');\n this.userService.getUser().subscribe(user => {\n localStorage.setItem('user', JSON.stringify(user));\n this.user = user\n });\n this.confirmationService.close();\n },\n error: (err) => {\n this.showMessage('error', 'Error al finalizar suscripción', 'Ha ocurrido un error. Por favor, inténtelo de nuevo más tarde.');\n console.log('Error al cancelar suscripcion:', err);\n this.confirmationService.close();\n }\n });\n },\n reject: (type: ConfirmEventType) => {\n switch (type) {\n case ConfirmEventType.REJECT:\n case ConfirmEventType.CANCEL:\n console.log('Confirmación rechazada o cancelada');\n\n this.confirmationService.close();\n }\n }\n });\n }\n showMessage(severity: string, summary: string, detail: string) {\n this.ms.add({ key: 'tst', severity, summary, detail });\n }\n\n}\n","
    \n
    \n Tipo de plan\n \n \n\n \n \n
    \n
    \n Actualmente estás suscrito en Plan {{ subscriptionType?.alias }}. \n \n Empezaste tu suscripción el día {{ user?.latest_active_subscription?.created_at | date: 'dd/MM/yyyy' }} y la fecha de renovación será el {{ user?.latest_active_subscription?.end_date | date: 'dd/MM/yyyy' }}.\n \n
    \n \n
    \n
    \n \n {{subscriptionType.chatbots}} chatbots\n
    \n
    \n \n {{subscriptionType.chat_limit}} mensajes al mes\n
    \n
    \n \n \n Integraciones Meta\n \n \n \n Whatsapp
    \n Facebook
    \n Instagram\n
    \n
    \n {{feature}}\n
    \n
    \n
    \n
    \n Plan {{ subscriptionType?.alias }} (IVA incluido)\n ${{ subscriptionType?.price}} CLP\n
    \n
    \n Uso\n
    \n
    \n Cantidad de chatbot: {{ bots.length }}/{{subscriptionType.chatbots}}\n
    \n
    \n Mensajes consumidos: {{ consumedMessages }}/{{ limitMessages }}\n
    \n
    \n \n \n \n \n\n
    \n\n \n

    Finalizar suscripción

    \n
    \n \n \n \n \n
    \n\n \n","import { Component, Input } from '@angular/core';\nimport { AbstractControl, FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { ActivatedRoute } from '@angular/router';\nimport { UserInterface } from 'src/app/models/user.interface';\nimport { UserService } from 'src/app/services/user.service';\nimport { formatRut, validateRut } from 'rutlib';\n\n\nfunction validarRUT(control: AbstractControl) {\n const rut = control.value;\n if (rut) {\n\n if (!validateRut(rut)) {\n return { rutInvalido: 'Ingresa un RUT válido' };\n }\n }\n return null;\n}\n\n@Component({\n selector: 'globot-user-billing',\n templateUrl: './user-billing.component.html',\n styleUrls: ['./user-billing.component.scss']\n})\nexport class UserBillingComponent {\n @Input() user?: UserInterface;\n hasBillingInfo: boolean = false;\n subscriptionForm: FormGroup;\n planType: string = '';\n planPrice: string = '';\n countries = [\n {name: 'Chile', flag: '🇨🇱', dial_code: '56'},\n {name: 'Argentina', flag: '🇦🇷', dial_code: '54'},\n {name: 'Perú', flag: '🇵🇪', dial_code: '51'},\n {name: 'Venezuela', flag: '🇻🇪', dial_code: '58'},\n \n ];\n \n selectedCountry: string = '';\n isLoading: boolean = true;\n\n\n constructor(private fb: FormBuilder, private userService: UserService, private route: ActivatedRoute) {\n this.subscriptionForm = this.fb.group({\n email: [''],\n name: ['', [\n Validators.required,]],\n document_value: ['', [Validators.required, validarRUT ]],\n phone: ['', [Validators.required]],\n type_document: ['DNI'],\n country: ['56'],\n\n })\n this.selectedCountry = this.subscriptionForm.controls['country'].value;\n }\n\n ngOnInit() {\n const user = this.userService.getUserLocalStorage();\n if (user) {\n this.subscriptionForm.controls['email'].setValue(user.email || '');\n this.subscriptionForm.controls['name'].setValue(user.name_on_invoice|| '');\n this.subscriptionForm.controls['document_value'].setValue(user.document_value || ''); \n let phoneNumber = user.phone_number || '';\n let countryDialCode = '56'; // default to Chile\n\n for (let country of this.countries) {\n if (phoneNumber.startsWith(country.dial_code)) {\n countryDialCode = country.dial_code;\n phoneNumber = phoneNumber.substring(country.dial_code.length);\n break;\n }\n }\n\n this.subscriptionForm.controls['phone'].setValue(phoneNumber);\n this.subscriptionForm.controls['country'].setValue(countryDialCode);\n this.hasBillingInfo = user.subscription_type.name == 'FREE';\n }\n this.isLoading = false;\n }\n \n\n onblur(){\n const rut = this.subscriptionForm.get('document_value')?.value\n this.subscriptionForm.controls['document_value'].setValue(formatRut(rut))\n }\n getCodeNumber():string{\n const code = this.subscriptionForm.get('country')?.value;\n\n return '+(' + code + ')'\n }\n\n onCountryChange(event: Event) {\n const selectElement = event.target as HTMLSelectElement;\n this.selectedCountry = selectElement.value;\n\n }\n \n}\n\n\n\n\n","
    \n Datos de facturación\n \n
    \n \n
    \n
    \n \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n \n
    \n
    \n \n \n \n
    \n
    \n \n
    \n \n {{getCodeNumber()}}\n \n
    \n \n
    \n\n
    \n
    \n
    \n\n\n

    Actualmente, no tienes datos de facturación registrados.

    \n
    \n
    ","import { ChangeDetectorRef, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { BotService } from 'src/app/services/bot.service';\nimport { SpinnerService } from 'src/app/services/spinner.service';\nimport * as dayjs from 'dayjs';\nimport utc from 'dayjs/plugin/utc';\nimport timezone from 'dayjs/plugin/timezone';\nimport { UserService } from 'src/app/services/user.service';\nimport { UserInterface } from 'src/app/models/user.interface';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'globot-conversation-cards',\n templateUrl: './conversation-cards.component.html',\n styleUrls: ['./conversation-cards.component.scss'],\n})\nexport class ConversationCardsComponent {\n @Input() records: any[] = [];\n @Output() chatHistorySelected = new EventEmitter();\n private subscription: Subscription = new Subscription();\n botId = '';\n selectedCard!: string;\n user: UserInterface | undefined = undefined\n urlProfile: string = '';\n constructor(\n private botService: BotService,\n private aRoute: ActivatedRoute,\n private router: Router,\n private ss: SpinnerService,\n private readonly userService: UserService,\n private cd: ChangeDetectorRef\n ) {\n dayjs.extend(utc);\n dayjs.extend(timezone);\n this.botId = this.aRoute.snapshot.paramMap.get('id') ?? '';\n const sections = this.router.routerState.snapshot.url.split('/');\n this.botId = sections[3];\n }\n ngOnInit(): void {\n\n this.subscription.add(\n this.userService.url$.subscribe(newUrl => {\n this.urlProfile = newUrl;\n this.updateUserPicture(newUrl);\n })\n );\n }\n\n getDateUtc(date: any) {\n const dayjsUtc = dayjs.utc(date);\n const localDate = dayjsUtc.local();\n const now = dayjs();\n const diffMinutes = now.diff(localDate, 'minute');\n const diffDays = now.diff(localDate, 'day');\n \n if (diffMinutes < 2) {\n return 'Ahora';\n } else if (diffDays === 0) {\n return `Hoy ${localDate.format('HH:mm')}`;\n } else if (diffDays === 1) {\n return `Ayer ${localDate.format('HH:mm')}`;\n } else {\n return `${localDate.format('DD/MM/YY')} ${localDate.format('HH:mm')}`;\n }\n }\n\n getFirstPart(sender_id: string): string {\n return sender_id.split(';')[0];\n }\n\n getChatHistory = (record: any) => {\n this.selectedCard = record.correlation_id;\n this.botService.getChatHistory(this.botId, record.correlation_id).subscribe(chatHistory => {\n this.chatHistorySelected.emit({record, chatHistory});\n this.updateNewMessageStatus(record.correlation_id);\n });\n }\n getDisplayName(name: string | null): string { \n return name === null || name === 'N/A' ? 'Anónimo' : name; \n }\n\n getChannelIcon(channel: string): string {\n switch (channel) {\n case 'WHATSAPP':\n return '/assets/img/whatsapp.png';\n case 'MESSENGER':\n return '/assets/img/messenger.png';\n case 'INSTAGRAM':\n return '/assets/img/instagram.png';\n case 'WEB':\n return '/assets/img/web-source.svg';\n default:\n return '';\n }\n }\n\n isChannelIconVisible(channel: string): boolean {\n return ['WHATSAPP', 'MESSENGER', 'INSTAGRAM', 'WEB'].includes(channel);\n }\n private updateUserPicture(newUrl: string): void {\n if (this.user) {\n this.user.picture = newUrl;\n }\n this.cd.detectChanges();\n}\nupdateNewMessageStatus(correlation_id: string) {\n const record = this.records.find(r => r.correlation_id === correlation_id);\n if (record) {\n record.new_message = false; \n }\n}\n}\n","
    \n\n\n
    \n
    \n
    {{getDisplayName(record.name)}}
    \n
    \n \n
    \n
    \n \n \n
    \n
    \n
    \n \n

    {{ getDateUtc(record.created_at) }}

    \n
    \n
    \n\n
    \n

    {{record.last_message | maxText }}

    \n
    \n\n
    ","import { Component, OnInit,OnDestroy} from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { ChatbotliveService } from 'src/app/services/chatbot_live.service';\nimport dayjs from 'dayjs';\nimport 'dayjs/locale/es';\nimport { Subject, takeUntil } from 'rxjs';\nimport { GetBotResponse } from 'src/app/models/bot.interface';\n\ndayjs.locale('es');\ninterface EditMode {\n [key: string]: boolean;\n}\n@Component({\n selector: 'globot-customer-form',\n templateUrl: './customer-form.component.html',\n styleUrls: ['./customer-form.component.scss'],\n})\n\n\nexport class CustomerFormComponent implements OnInit, OnDestroy {\n private destroy$ = new Subject();\n errorMessages: { [key: string]: string } = {};\n originalValues: { [key: string]: string } = {};\n tempValues: { [key: string]: string } = {};\n\n loadingFields: { [key: string]: boolean } = {};\n successFields: { [key: string]: boolean } = {};\n\n created_at: string = '';\n channel: string = '';\n name: string | null = null;\n phone: string | null = null;\n email: string | null = null;\n sender_requirement: string | null = null;\n correlation_id: string = '';\n editMode: EditMode = {\n sender_name: false,\n sender_email: false,\n sender_phone: false,\n sender_requirement: false\n };\n bot?: GetBotResponse;\n constructor(\n private chatbotliveService: ChatbotliveService,\n private route: ActivatedRoute\n ) {\n }\n\n ngOnInit() {\n if (localStorage.getItem('bot')) {\n this.bot = JSON.parse(localStorage.getItem('bot')!);\n }\n this.chatbotliveService.customerData$\n .pipe(takeUntil(this.destroy$))\n .subscribe(data => {\n if (data) {\n this.resetForm();\n this.created_at = data.created_at;\n this.channel = data.channel;\n this.name = data.name;\n this.phone = data.phone;\n this.email = data.email;\n this.sender_requirement = data.sender_requirement;\n this.correlation_id = data.correlation_id;\n }\n });\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n private resetForm() {\n\n Object.keys(this.editMode).forEach(key => {\n this.editMode[key] = false;\n });\n this.loadingFields = {};\n this.successFields = {};\n this.tempValues = {};\n }\n\n handleInput(field: string, event: Event) {\n const value = (event.target as HTMLInputElement | HTMLTextAreaElement).value;\n this.tempValues[field] = value;\n this.validateField(field, value);\n }\n\n enableEdit(field: string) {\n const value = (this as any)[this.getOriginalFieldName(field)];\n this.originalValues[field] = value || '';\n this.tempValues[field] = value || '';\n this.editMode[field] = true;\n this.errorMessages[field] = '';\n }\n\n cancelEdit(field: string, element: HTMLInputElement | HTMLTextAreaElement) {\n this.editMode[field] = false;\n const originalField = this.getOriginalFieldName(field);\n element.value = (this as any)[originalField] || ''; \n this.errorMessages[field] = '';\n }\n\nsaveField(field: string, element: HTMLInputElement | HTMLTextAreaElement) {\n const trimmedValue = element.value.trim();\n const originalField = this.getOriginalFieldName(field);\n const originalValue = this[originalField as keyof CustomerFormComponent];\n \n if (typeof originalValue === 'string' && trimmedValue === originalValue.trim()) {\n this.editMode[field] = false;\n this.errorMessages[field] = '';\n return;\n }\n \n if (trimmedValue === '') {\n this.errorMessages[field] = 'Campo vacío.';\n return;\n }\n \n if (!this.validateField(field, trimmedValue)) {\n return;\n }\n \n this.loadingFields[field] = true;\n\n this.chatbotliveService.updateCustomerField(\n this.bot?.id!,\n this.correlation_id,\n field,\n trimmedValue\n ).subscribe({\n next: (response) => {\n this.loadingFields[field] = false;\n this.successFields[field] = true;\n \n (this as any)[originalField] = trimmedValue;\n \n setTimeout(() => {\n this.successFields[field] = false;\n this.editMode[field] = false;\n }, 1500);\n },\n error: (error) => {\n console.error('Error al actualizar el campo:', error);\n this.loadingFields[field] = false;\n this.editMode[field] = false;\n element.value = this.originalValues[field] || '';\n }\n });\n}\n\n private getOriginalFieldName(field: string): string {\n const fieldMap: { [key: string]: string } = {\n 'sender_name': 'name',\n 'sender_email': 'email',\n 'sender_phone': 'phone',\n 'sender_requirement': 'sender_requirement'\n };\n return fieldMap[field] || field;\n }\n\n getFormattedDate(date: string): string {\n return date ? dayjs(date).format('DD [de] MMM YYYY / hh:mm a') : '';\n }\n\nvalidateField(field: string, value: string): boolean {\n if (value.trim() === '') {\n this.errorMessages[field] = 'Campo vacío';\n return false;\n }\n\n if (value.trim().length < 2 && field === 'sender_name') {\n this.errorMessages[field] = 'Debe tener al menos 2 caracteres';\n return false;\n }\n\n\n switch (field) {\n case 'sender_email': {\n const emailRegex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$/;\n if (!emailRegex.test(value)) {\n this.errorMessages[field] = 'Email inválido';\n return false;\n }\n break;\n }\n case 'sender_phone': {\n const phoneRegex = /^\\+?[\\d\\s-]{8,}$/;\n if (!phoneRegex.test(value)) {\n this.errorMessages[field] = 'Número de teléfono inválido';\n return false;\n }\n break;\n }\n }\n \n this.errorMessages[field] = '';\n return true;\n}\nvalidateNumberInput(event: KeyboardEvent) {\n const allowedKeys = ['Backspace', 'ArrowLeft', 'ArrowRight', 'Delete', 'Tab'];\n\n if (!/^\\d$/.test(event.key) && !allowedKeys.includes(event.key)) {\n event.preventDefault();\n }\n}\n\n}","
    \n
    \n
    \n \n
    {{getFormattedDate(created_at)}}
    \n
    \n
    \n \n
    {{channel}}
    \n
    \n
    \n \n
    \n \n \n \n
    \n
    {{ errorMessages['sender_name'] }}
    \n
    \n\n
    \n \n
    \n \n \n \n
    \n
    {{ errorMessages['sender_phone'] }}
    \n
    \n\n
    \n \n
    \n \n \n \n
    \n
    {{ errorMessages['sender_email'] }}
    \n
    \n\n
    \n \n
    \n \n \n \n \n
    \n
    {{ errorMessages['sender_requirement'] }}
    \n
    \n \n \n
    \n
    ","import { CommonModule } from '@angular/common';\nimport { ChangeDetectorRef, Component, SecurityContext } from '@angular/core';\nimport dayjs from 'dayjs';\nimport { BotService } from 'src/app/services/bot.service';\nimport { ComponentsDashboardModule } from '../components/components-dashboard.module';\nimport { AutoCompleteModule } from 'primeng/autocomplete';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { FormsModule } from '@angular/forms';\nimport { ChatHistory, ChatHistoryGroup, ChatHistoryHeader } from 'src/app/models/history.interface';\nimport { SpinnerService } from 'src/app/services/spinner.service';\nimport { ChatbotliveService } from 'src/app/services/chatbot_live.service';\nimport { ButtonGlobotComponent } from 'src/app/atoms/button-globot/button-globot.component';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { environment } from 'src/environments/environment';\nimport { ButtonModule } from 'primeng/button';\nimport { SocketWebService } from 'src/app/services/socket-web.service';\nimport { MENU_OPTIONS, UserInterface } from 'src/app/models/user.interface';\nimport { UserService } from 'src/app/services/user.service';\nimport { ConfirmDialogModule } from 'primeng/confirmdialog';\nimport { DialogModule } from 'primeng/dialog';\nimport { TooltipModule } from 'primeng/tooltip';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { MessageService } from 'primeng/api';\n\n@Component({\n selector: 'globot-globot-live',\n standalone: true,\n imports: [CommonModule, ComponentsDashboardModule, FormsModule, AutoCompleteModule, ButtonGlobotComponent, InputTextModule, ButtonModule, ConfirmDialogModule, DialogModule, TooltipModule],\n templateUrl: './globot-live.component.html',\n styleUrls: ['./globot-live.component.scss'],\n})\nexport class GlobotLiveComponent {\n searchTerm: string = '';\n isMobile: boolean = window.innerWidth < 800;\n selectedChatView: boolean = false;\n records: any[] = [];\n botId: string = '';\n originalRecords: any[] = [];\n userInControl: boolean = false;\n selectedChat?: ChatHistoryHeader;\n selectedChatHistory: ChatHistoryGroup[] = [];\n isLiveMessagingReady = false;\n currentQuestion: string = '';\n loadingButton = false;\n user?: UserInterface;\n showPlansDialog: boolean = false;\n isEnabled: boolean = false;\n showPlansDialogPreferences: boolean = false;\n keyPage = MENU_OPTIONS.records.key_validation;\n constructor(private botService: BotService,\n private aRoute: ActivatedRoute,\n private ss: SpinnerService,\n private router: Router,\n private chatbotliveService: ChatbotliveService,\n private changeDetectorRef: ChangeDetectorRef,\n private socket: SocketWebService,\n private userService: UserService,\n private sanitizer: DomSanitizer,\n private messageService: MessageService) {\n this.isLiveMessagingReady = environment.isLiveMessagingReady;\n this.botId = this.aRoute.snapshot.paramMap.get('id') ?? '';\n const sections = this.router.routerState.snapshot.url.split('/');\n this.botId = sections[3];\n }\n\n ngOnInit() {\n\n this.userService.getUser().subscribe(user => {\n this.user = user;\n this.isEnabled = user.subscription_type.menu_options.includes(this.keyPage);\n if (this.isEnabled) {\n this.loadRecordsWithDateRange(); // Cargamos los datos al iniciar el componente\n this.socket.connectToRoom(this.botId, () => this.loadRecordsWithDateRange());\n\n }\n });\n }\n\n ngOnDestroy(): void {\n if (this.isEnabled) {\n this.socket.disconnectRoom(this.botId);\n }\n }\n\n loadRecordsWithDateRange() {\n const endDate = dayjs();\n const startDate = endDate.subtract(1, 'month');\n\n this.botService.getRecords(this.botId, [\n startDate.format('YYYY-MM-DD'),\n endDate.format('YYYY-MM-DD')\n ]).subscribe({\n next: (value) => {\n this.records = value;\n this.originalRecords = [...this.records];\n\n if (this.selectedChat?.correlation_id) {\n this.records.forEach(record => {\n if (record.correlation_id === this.selectedChat?.correlation_id) {\n this.userInControl = (record.user_in_control != null);\n this.botService.getChatHistory(\n this.botId,\n this.selectedChat!.correlation_id\n ).subscribe({\n next: (chatHistory: any) => {\n this.selectedChatHistory = this.groupChatsByDate(chatHistory);\n },\n error: (error) => {\n console.error('Error al cargar historial:', error);\n }\n });\n }\n });\n }\n },\n error: (error) => {\n console.error('Error al cargar registros:', error);\n }\n });\n }\n private groupChatsByDate(chats: ChatHistoryGroup[]): ChatHistoryGroup[] {\n const sortedChats = [...chats];\n sortedChats.forEach(chat => {\n try {\n chat.messages = chat.messages.slice().reverse();\n } catch (error) {\n console.error('Fecha inválida omitida:', chat.date);\n }\n });\n return sortedChats;\n }\n\n\n onChatHistorySelected(chatHistory: any) {\n this.selectedChat = chatHistory.record;\n this.userInControl = (chatHistory.record.user_in_control != null)\n this.selectedChatHistory = this.groupChatsByDate(chatHistory.chatHistory);\n this.selectedChatView = true; // Mostrar la vista de conversación.\n this.updateChat();\n\n // Limpiar el campo de entrada cuando se cambia de conversación\n this.currentQuestion = '';\n\n\n this.chatbotliveService.updateCustomerData(chatHistory.record);\n }\n\n takeControl(take_control: boolean = true) {\n this.loadingButton = true;\n\n if (!this.selectedChat?.correlation_id || !this.user) {\n this.loadingButton = false;\n return;\n }\n\n const payload = {\n correlation_id: this.selectedChat.correlation_id,\n take_manual_control: take_control\n };\n\n this.chatbotliveService.takeControl(this.botId, payload).subscribe({\n next: value => {\n console.log('response control', value);\n this.userInControl = take_control;\n this.loadingButton = false;\n if (this.selectedChat) {\n this.updateUserControlStatus(this.selectedChat.correlation_id, take_control, this.user!);\n }\n },\n error: err => {\n console.log('error', err);\n this.loadingButton = false;\n }\n });\n }\n\n updateChat() {\n const correlation_id = this.selectedChat?.correlation_id!\n if (this.selectedChat?.new_message == false) {\n return;\n }\n this.chatbotliveService.updateChatHeader(this.botId, correlation_id).subscribe({\n next: value => {\n console.log(value)\n }\n })\n }\n\n sendAnswer() {\n if (this.currentQuestion.length === 0) return;\n const currentAnswer = this.currentQuestion\n const correlation_id = this.selectedChat?.correlation_id!\n const channel = this.selectedChat?.channel!\n this.chatbotliveService.sendAnswer(this.botId, correlation_id, currentAnswer).subscribe({\n next: () => {\n const newMessage: ChatHistory = {\n response: currentAnswer,\n channel: channel,\n created_at: new Date().toISOString(),\n correlation_id: correlation_id,\n answered_by: 'USER',\n user_in_control: this.user ? {\n email: this.user.email,\n name: this.user.name,\n picture: this.user.picture\n } : undefined\n };\n const today = new Date();\n const formattedDate = today.toLocaleDateString('es-ES', {\n day: 'numeric',\n month: 'long',\n year: 'numeric'\n });\n // Buscar o crear el grupo para hoy\n let group = this.selectedChatHistory.find(g => g.date === formattedDate);\n if (!group) {\n group = { date: formattedDate, messages: [] };\n this.selectedChatHistory.unshift(group);\n }\n\n group.messages.unshift(newMessage);\n this.currentQuestion = '';\n this.changeDetectorRef.detectChanges();\n },\n error: (err) => {\n if ([400, 404, 429, 500].includes(err.status)) {\n this.messageService.add({\n severity: 'error',\n summary: 'Ocurrió un error inesperado',\n detail: 'Por favor, inténtalo más tarde'\n });\n }\n }\n });\n }\n updateUserControlStatus(correlation_id: string, userInControl: boolean, user: UserInterface) {\n const record = this.records.find(r => r.correlation_id === correlation_id);\n if (record) {\n if (userInControl) {\n record.user_in_control = record.user_in_control || { name: user.name, picture: user.picture };\n } else {\n record.user_in_control = null;\n }\n }\n }\n getChannelIcon(channel: string): string {\n switch (channel) {\n case 'WHATSAPP':\n return '/assets/img/whatsapp.png';\n case 'MESSENGER':\n return '/assets/img/messenger.png';\n case 'INSTAGRAM':\n return '/assets/img/instagram.png';\n case 'WEB':\n return '/assets/img/web-source.svg';\n default:\n return '';\n }\n }\n\n isChannelIconVisible(channel: string): boolean {\n return ['WHATSAPP', 'MESSENGER', 'INSTAGRAM', 'WEB'].includes(channel);\n }\n formatMessage(text: string) {\n let formattedText = text\n .replace(/\\*\\*(.*?)\\*\\*/g, '$1')\n .replace(/ - /g, '
    - ')\n .replace(/(\\d{4}-\\d{2}-\\d{2})/g, '$1')\n .replace(/(\\d{1,3}(?:\\.\\d{3})*(?:,\\d+)?)/g, '$1');\n\n return this.sanitizer.sanitize(SecurityContext.HTML, formattedText);\n }\n onPreferencesSaved(selectedTime: number) {\n\n this.showPlansDialogPreferences = false;\n\n }\n\n onPreferencesCancelled() {\n\n this.showPlansDialogPreferences = false;\n }\n isMetaLimitExceeded(): boolean {\n if (!this.selectedChatHistory || this.selectedChatHistory.length === 0) {\n return false;\n }\n \n // Buscar el último mensaje con user_prompt no nulo\n let lastUserPromptMessage = null;\n for (const group of this.selectedChatHistory) {\n for (const message of group.messages) {\n if (message.user_prompt !== null) {\n if (!lastUserPromptMessage || new Date(message.created_at) > new Date(lastUserPromptMessage.created_at)) {\n lastUserPromptMessage = message;\n }\n }\n }\n }\n // Si no hay mensajes con user_prompt no nulo, retornar false\n if (!lastUserPromptMessage) {\n return false;\n }\n \n // Verificar si el canal es WHATSAPP y si han pasado 24 horas\n if (lastUserPromptMessage.channel === 'WHATSAPP') {\n // Sanitizar el formato de la fecha\n const sanitizedDate = lastUserPromptMessage.created_at\n .replace(/(\\.\\d+)(?=[+-])/, '') // Eliminar microsegundos antes de la zona horaria\n .replace(/([+-]\\d{2}):(\\d{2})$/, '$1$2'); // Convertir \"-03:00\" a \"-0300\"\n \n const messageDate = new Date(sanitizedDate);\n const currentDate = new Date();\n const hoursDiff = (currentDate.getTime() - messageDate.getTime()) / (1000 * 60 * 60);\n \n return hoursDiff >= 24;\n }\n \n return false;\n }\n\n}\n","
    \n
    \n

    Globot LIVE

    \n
    \n \n Preferencias\n
    \n
    \n
    0; else noData\">\n
    \n
    \n \n\n \n \n
    \n
    \n\n \n \n\n
    \n
    \n\n
    \n \n
    \n
    \n
    \n
    \n \n \n {{ selectedChat?.name || 'Anónimo' }}\n \n \n\n
    \n \n
    \n\n
    \n
    \n
    \n {{ group.date }}\n
    \n
    \n\n
    \n

    {{ message.user_prompt }}

    \n

    \n {{ message.name || 'Anónimo' }} | {{ message.created_at | date:'HH:mm' }}\n

    \n
    \n\n
    \n \n
    \n
    \n
    \n

    \n {{ message.user_in_control?.name }} | {{ message.created_at | date:'HH:mm' }}\n

    \n

    \n Chatbot | {{ message.created_at | date:'HH:mm' }}\n

    \n
    \n
    \n
    \n
    \n
    \n
    0 && isMetaLimitExceeded()\">\n \n
    \n
    0 && userInControl && !isMetaLimitExceeded()\">\n\n
    \n \n\n\n \n
    \n\n\n \n
    \n \n \n 0 && userInControl==false && !isMetaLimitExceeded()\"\n text=\"Intervenir\" styleClass=\"raised\" iconPosition=\"right\" width=\"w-100\" [loading]=\"loadingButton\"\n (onClick)=\"takeControl(true)\">\n\n\n
    \n\n\n
    0 && !isMobile\">\n
    \n
    \n
    \n \n {{ selectedChat?.name || 'Anónimo' }}\n \n \n
    \n \n
    \n
    \n
    \n
    \n {{ group.date }}\n
    \n\n\n
    \n\n
    \n

    {{ message.user_prompt }}

    \n

    \n {{ message.name || 'Anónimo' }} | {{ message.created_at | date:'HH:mm' }}\n

    \n
    \n\n
    \n \n
    \n
    \n
    \n

    \n {{ message.user_in_control?.name }} | {{ message.created_at | date:'HH:mm' }}\n

    \n

    \n Chatbot | {{ message.created_at | date:'HH:mm' }}\n

    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n \n \n\n \n \n
    \n \n 0 && userInControl==false && !isMetaLimitExceeded()\"\n text=\"Intervenir\" styleClass=\"raised\" width=\"w-100\" [loading]=\"loadingButton\"\n (onClick)=\"takeControl(true)\">\n
    \n
    \n \n\n\n\n\n \n\n\n \n\n \n \n \n\n\n
    \n \n
    \n Tiempo de respuesta superado\n

    Tienes hasta 24 horas para responderle a tus clientes por WhatsApp (Meta). Puedes esperar a que el cliente vuelva a escribir o contactarlo por otro canal.

    \n
    \n
    \n
    ","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'globot-information-section',\n template: `\n
    \n \"customer\n

    {{title}}

    \n

    {{message}}

    \n
    \n`,\n styles: [\n `\n .container-center {\n display: flex;\n flex-direction: column;\n justify-content: center;\n padding: 0px 84px;\n align-items: center;\n height: 60vh; /* Opcional: ajusta la altura según tus necesidades */\n }\n h1 {\n color: var(--Contrast-1, #27283B);\n text-align: center;\n font-size: 18px;\n font-style: normal;\n font-weight: 600;\n line-height: 24px; /* 133.333% */\n }\n p{\n color: var(--Contrast-1, #27283B);\n text-align: center;\n font-size: 14px;\n font-style: normal;\n font-weight: 500;\n line-height: 24px; /* 171.429% */\n }\n \n //Mobile\n @media screen and (max-width: 900px) {\n .container-center {\n width: 80vw;\n display:none;\n }\n h1{\n color: var(--Contrast-1, #27283B);\n font-family: Inter;\n font-size: 20px;\n font-style: normal;\n font-weight: 700;\n line-height: normal;\n }\n p{\n text-align: center;\n color: var(--Contrast-1, #27283B);\n font-family: Inter;\n font-size: 16px;\n font-style: normal;\n font-weight: 400;\n line-height: 24px; /* 150% */\n }\n }\n`\n ]\n})\nexport class InformationSectionComponent {\n @Input() title: string = '';\n @Input() message: string = 'No hay información';\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { MessageService } from 'primeng/api';\nimport { BotService } from 'src/app/services/bot.service';\nimport { ChatbotliveService } from 'src/app/services/chatbot_live.service';\n\n@Component({\n selector: 'globot-preferences-box',\n templateUrl: './preferences-box.component.html',\n styleUrls: ['./preferences-box.component.scss'],\n})\nexport class PreferencesBoxComponent {\n @Input() botId: string = '';\n @Output() preferencesSaved = new EventEmitter();\n @Output() preferenceCancelled = new EventEmitter();\n\n selectedTime: number = 0;\n timeOptions = [5, 15, 120];\n\n constructor (private chatbotliveService: ChatbotliveService, private messageService: MessageService,private botService: BotService\n ){}\n\n ngOnInit() {\n // Cargar el valor actual del bot al inicializar el componente\n if (this.botId) {\n this.botService.getBot(this.botId).subscribe({\n next: (botData) => {\n // Establecer el tiempo actual como seleccionado\n this.selectedTime = botData.ai_response_delay || 0;\n },\n error: (error) => {\n console.error('Error al cargar datos del bot', error);\n }\n });\n }\n }\n\n formatTimeOption(minutes: number): string {\n switch(minutes) {\n case 5:\n return '5 minutos';\n case 15:\n return '15 minutos';\n case 120:\n return '2 horas';\n default:\n return `${minutes} minutos`;\n }\n }\n\n\n savePreferences() {\n if (this.selectedTime && this.botId) {\n this.chatbotliveService.setAiResponseDelay(this.botId, this.selectedTime)\n .subscribe({\n next: (response) => {\n // Notificación de éxito\n this.messageService.add({\n severity: 'success', \n summary: 'Preferencias Guardadas', \n detail: `Tiempo de respuesta establecido a ${this.formatTimeOption(this.selectedTime)}`\n });\n\n // Emitir el tiempo seleccionado\n this.preferencesSaved.emit(this.selectedTime);\n },\n error: (error) => {\n // Notificación de error\n this.messageService.add({\n severity: 'error', \n summary: 'Error al guardar preferencias', \n detail: 'Por favor, inténtalo más tarde'\n });\n\n console.error('Error al guardar preferencias', error);\n }\n });\n }\n }\n\n cancelPreferences() {\n this.preferenceCancelled.emit();\n }\n }\n \n\n","
    \n

    Determina el tiempo que Globot volverá a responder si no identifica actividad de parte de ti:

    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n \n \n
    ","import { Component, Input } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators, AbstractControl } from '@angular/forms';\nimport { UserInterface } from 'src/app/models/user.interface';\nimport { UserService } from 'src/app/services/user.service';\nimport { ActivatedRoute } from '@angular/router';\nimport { atob } from 'abab';\nimport { formatRut, validateRut } from 'rutlib';\nimport { MessageService } from 'primeng/api';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { environment } from \"../../../environments/environment\";\n\n\n\nfunction validarRUT(control: AbstractControl) {\n const rut = control.value;\n if (rut) {\n\n if (!validateRut(rut)) {\n return { rutInvalido: 'Ingresa un RUT válido' };\n }\n }\n return null;\n}\n\n@Component({\n selector: 'globot-subscriptions',\n templateUrl: './subscriptions.component.html',\n styleUrls: ['./subscriptions.component.scss'],\n})\nexport class SubscriptionsComponent {\n @Input() user?: UserInterface;\n noRut:boolean = false;\n subscriptionForm: FormGroup;\n planType: string = '';\n planPrice: string = '';\n countries = [\n {name: 'Chile', flag: '🇨🇱', dial_code: '56'},\n {name: 'Argentina', flag: '🇦🇷', dial_code: '54'},\n {name: 'Brasil', flag: '🇧🇷', dial_code: '55'},\n {name: 'Colombia', flag: '🇨🇴', dial_code: '57'},\n {name: 'Perú', flag: '🇵🇪', dial_code: '51'},\n {name: 'Venezuela', flag: '🇻🇪', dial_code: '58'},\n \n ];\n \n selectedCountry: string = '';\n loading: boolean = false;\n termsUrl = environment.termsUrl;\n privacyUrl = environment.privacyUrl;\n\n\n constructor(private fb: FormBuilder, private userService: UserService, private route: ActivatedRoute, private readonly ms: MessageService,) {\n this.subscriptionForm = this.fb.group({\n email: [''],\n name_on_invoice: ['', [\n Validators.required,\n Validators.minLength(2),\n Validators.maxLength(50),\n this.validarFormatoNombre]],\n document_value: ['', [Validators.required, validarRUT ]],\n phone: ['', [Validators.required, Validators.minLength(9), Validators.maxLength(13), this.validarTelefono]],\n type_document: ['DNI'],\n country: ['56'],\n\n })\n this.selectedCountry = this.subscriptionForm.controls['country'].value;\n }\n\n ngOnInit() {\n this.userService.getUser().subscribe(user => {\n this.subscriptionForm.controls['email'].setValue(user['email']);\n });\n\n this.route.queryParamMap.subscribe(params => {\n let typeEncoded = params.get('subscriptionPlan');\n let type = atob(typeEncoded!); \n this.planType = type === 'BASE' ? 'Standard' : type === 'PREMIUM' ? 'Premium' : '';\n this.planPrice = type === 'BASE' ? '10.000' : type === 'PREMIUM' ? '25.000' : '';\n });\n\n }\n\n validarTelefono(control: AbstractControl) {\n const telefono = control.value;\n const regexTelefono = /^\\d{9,11}$/; \n if (!regexTelefono.test(telefono)) {\n return { telefonoInvalido: 'Ingresa un teléfono válido' };\n }\n return null;\n }\n\n checkboxRut(){\n this.noRut = !this.noRut \n if (this.noRut) {\n // Si no tiene RUT, eliminar las validaciones del campo\n this.subscriptionForm.controls['document_value'].setValue(null);\n this.subscriptionForm.get('document_value')?.clearValidators();\n this.subscriptionForm.get('document_value')?.updateValueAndValidity(); // Refrescar validaciones\n } else {\n // Si tiene RUT, agregar las validaciones de nuevo\n this.subscriptionForm.get('document_value')?.setValidators([Validators.required, validarRUT]);\n this.subscriptionForm.get('document_value')?.updateValueAndValidity(); // Refrescar validaciones\n }\n }\n \n\n onSubmit() {\n if (this.subscriptionForm.valid) {\n this.loading = true;\n\n let formValues = this.subscriptionForm.value;\n formValues.document_value = (!this.noRut)?formValues.document_value.replace(/[\\.\\-]/g, ''):null;\n formValues.phone = this.selectedCountry + formValues.phone;\n this.userService.updateUser(this.subscriptionForm.value).subscribe({\n next: (updatedUser) => {\n let subType = this.route.snapshot.queryParamMap.get('subscriptionPlan') || '';\n this.userService.createSubscription(subType, subType).subscribe({\n next: (response: any) => {\n window.location.href = response.data.payment_url;\n },\n error: (error: HttpErrorResponse) => {\n this.loading = false;\n if (error.status === 400 && error.error && error.error.code === 8) {\n this.ms.add({\n severity: 'error',\n summary: 'Acción no permitida',\n detail: 'Ya te suscribiste a este plan'\n });\n } else {\n this.ms.add({\n severity: 'error',\n summary: 'Error',\n detail: 'Ha ocurrido un error al crear la suscripción'\n });\n }\n console.error('Error creating subscription:', error);\n }\n });\n },\n error: (error: HttpErrorResponse) => {\n this.loading = false;\n this.ms.add({\n severity: 'error',\n summary: 'Error',\n detail: 'Ha ocurrido un error al actualizar el usuario'\n });\n console.error('Error updating user:', error);\n }\n });\n }\n }\n onblur(){\n const rut = this.subscriptionForm.get('document_value')?.value\n this.subscriptionForm.controls['document_value'].setValue(formatRut(rut))\n }\n getCodeNumber():string{\n const code = this.subscriptionForm.get('country')?.value;\n\n return '+(' + code + ')'\n }\n\n onCountryChange(event: Event) {\n const selectElement = event.target as HTMLSelectElement;\n this.selectedCountry = selectElement.value;\n\n }\n \n\n validarFormatoNombre(control: AbstractControl) {\n const nombre = control.value;\n const regexNombre = /^[A-Za-zÀ-ÿ]+([ '-][A-Za-zÀ-ÿ]+)*$/;\n if (!regexNombre.test(nombre)) {\n return { formatoInvalido: 'Ingresa un nombre y apellido válido' };\n }\n return null;\n }\n\n getInputClass(controlName: string) {\n return { 'invalid-input': this.subscriptionForm.controls[controlName].invalid && this.subscriptionForm.controls[controlName].touched };\n }\n getErrorMessage(field: string) {\n let control = this.subscriptionForm.get(field);\n\n if (control && control.errors) {\n if (control.hasError('required')) {\n return 'Campo requerido';\n } else if (control.hasError('rutInvalido')) {\n return control.errors['rutInvalido'];\n } else if (control.hasError('telefonoInvalido')) {\n return control.errors['telefonoInvalido'];\n }\n return '';\n }\n }\n isFormValid(): boolean {\n // Verifica si el formulario es válido\n if (!this.subscriptionForm.valid) {\n \n return false;\n }\n \n // Verifica si hay algún campo vacío\n for (const controlName in this.subscriptionForm.controls) {\n if (this.subscriptionForm.controls.hasOwnProperty(controlName)) {\n const control = this.subscriptionForm.controls[controlName];\n \n // Condición especial: Si el campo es document_value y noRut es true, no debe bloquear la validación\n if (controlName === 'document_value' && this.noRut) {\n continue; // Salta la validación de este campo si noRut es true\n }\n \n // Si hay algún campo vacío, retornar false\n if (control.value === null || control.value === '') {\n return false;\n }\n }\n }\n return true;\n }\n \n}\n\n","
    \n
    \n
    \n
    \n Volver\n \n \n \n \n \n \n
    \n
    \n Plan {{ planType }}\n
    \n ${{ planPrice }}\n /Mes\n
    \n
    IVA incluido
    \n
    \n
    \n
    \n Plan {{ planType }} (IVA incluido)\n ${{ planPrice }}\n
    \n
    \n
    \n Total\n ${{ planPrice }}\n\n
    \n
    \n
    \n
    \n Medio de pago\n \n \"halleyp\"\n \n |\n \n \"halleyp\"\n \n\n
    \n
    \n
    \n
    \n \"globot\"\n
    \n
    \n

    Ingresa tus datos de suscripción

    \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n {{ getErrorMessage('name_on_invoice') }}\n
    \n
    \n
    \n \n \n \n \n
    \n {{ getErrorMessage('document_value') }}\n
    \n
    \n
    \n \n
    \n \n {{getCodeNumber()}}\n \n
    \n
    \n {{ getErrorMessage('phone') }}\n
    \n
    \n\n \n\n\n
    \n Al confirmar tu suscripción, aceptas que\n Globot en conjunto con\n Hpay, te envíe mensualmente un link de pago de acuerdo con sus términos. Siempre puedes\n cancelar tu suscripción.\n
    \n
    \n Medio de pago\n
    \n \"halleypay\"\n \"halleypay\"\n
    \n\n
    \n \n\n
    \n\n\n
    \n\n
    \n\n
    ","import {\n Component,\n ElementRef,\n ViewChild\n} from '@angular/core';\nimport { BotService } from 'src/app/services/bot.service';\nimport { ChatbotWidgetConfiguration, ResponseGetBotInterface } from 'src/app/models/bot.interface';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { environment } from 'src/environments/environment';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { MessageService } from 'primeng/api';\nimport { GlobalObservableService } from 'src/app/services/global-observable.service';\n\ninterface WidgetStyles {\n topBarColor: string,\n userBubbleColor: string,\n botBubbleColor: string,\n buttonColor: string\n}\n\n@Component({\n selector: 'widget-config',\n templateUrl: './widget-config.component.html',\n styleUrls: ['./widget-config.component.scss']\n})\nexport class WidgetConfigComponent {\n\n @ViewChild('iframe') iframe: ElementRef | undefined;\n\n widgetUrl = environment.widgetUrl;\n demoTargetOrigin = environment.demoTargetOrigin;\n\n colors: string[] = [\n '#7B5CF5', '#27283B', '#CE4037', '#477D46', '#2173DC',\n '#B869DE'\n ];\n\n showiframe = true;\n isLoading = false;\n selectedColor: string = '#7B5CF5';\n isIframeLoading = true;\n\n selectColor(color: string) {\n this.selectedColor = color;\n this.iframe?.nativeElement.contentWindow.postMessage({ 'color': color }, this.demoTargetOrigin)\n }\n\n styles: WidgetStyles = {\n topBarColor: '#4A90E2',\n userBubbleColor: '#E3F2FD',\n botBubbleColor: '#F5F5F5',\n buttonColor: '#4A90E2'\n };\n\n tempStyles: WidgetStyles = { ...this.styles };\n\n styleKeys = Object.keys(this.styles);\n\n botId\n chatbotForm!: FormGroup;\n bot: ResponseGetBotInterface | undefined;\n botName: string = '';\n botIdentifier: string = '';\n\n constructor(private readonly botService: BotService,\n private readonly aRoute: ActivatedRoute,\n private readonly router: Router,\n private readonly fb: FormBuilder,\n private messageService: MessageService,\n private globalService: GlobalObservableService\n ) {\n let origin = window.location.origin\n this.botId = this.aRoute.snapshot.paramMap.get('token') ?? '';\n this.widgetUrl = this.widgetUrl + this.botId;\n if (this.botId.length === 0) {\n const sections = this.router.routerState.snapshot.url.split('/');\n this.botId = sections[3];\n }\n this.widgetUrl = this.widgetUrl + this.botId + `?o=${origin}`;\n }\n ngOnInit() {\n this.chatbotForm = this.fb.group({\n name: ['', [Validators.required, Validators.maxLength(20)]],\n identifier: ['', [Validators.maxLength(20)]]\n });\n this.getBotInfo();\n this.getWidgetConfig();\n }\n ngAfterViewInit() {\n if (this.iframe?.nativeElement) {\n this.iframe.nativeElement.onload = () => {\n this.isIframeLoading = false;\n };\n }\n }\n\n getLabelText(key: string): string {\n return key.replace(/([A-Z])/g, ' $1').replace(/^./, str => str.toUpperCase());\n }\n\n acceptStyle(styleName: string, style: string) {\n this.styles.botBubbleColor = this.tempStyles.botBubbleColor;\n console.log(this.styles);\n }\n\n updateBotForm(data: any, id: string) {\n return this.botService.updateBot(data, id).subscribe({\n next: value => {\n this.messageService.add({\n key: 'tst',\n severity: 'success',\n summary: 'Acción exitosa',\n detail: '¡Los cambios se aplicaron!'\n });\n },\n error: err => {\n this.messageService.add({\n key: 'tst',\n severity: 'error',\n summary: 'Cambio Fallido',\n detail: 'Cambio Fallido'\n });\n }\n });\n }\n\n\n saveConfig() {\n const nameValue = this.chatbotForm.get('name')?.value;\n const identifierValue = this.chatbotForm.get('identifier')?.value;\n\n const name = nameValue?.trim() ?? '';\n const identifier = identifierValue?.trim() ?? '';\n\n if (name.length > 20 || identifier.length > 20) {\n this.chatbotForm.markAllAsTouched();\n return;\n }\n\n if (this.chatbotForm.invalid || !name) {\n this.chatbotForm.markAllAsTouched();\n this.messageService.add({\n key: 'tst',\n severity: 'error',\n summary: 'Campo requerido',\n detail: 'El nombre no puede estar vacío'\n });\n return;\n } \n this.isLoading = true;\n this.showiframe = false;\n\n const chatbotWidgetConfig: ChatbotWidgetConfiguration = {\n name: name.replace(/[^a-zA-Z0-9À-ÿ\\s.,-]/g, ''),\n identifier: identifier,\n color: this.selectedColor\n };\n \n this.botService.updateBot(chatbotWidgetConfig, this.botId).subscribe({\n next: () => {\n this.botService.saveWidgetConfig(this.botId, chatbotWidgetConfig).subscribe({\n next: (saveRes) => {\n console.log(saveRes);\n this.globalService.publish('botName', { name });\n this.globalService.publish('botIdentifier', { identifier });\n setTimeout(() => {\n this.isLoading = false;\n this.showiframe = true;\n }, 500);\n \n this.messageService.add({\n key: 'tst',\n severity: 'success',\n summary: 'Acción exitosa',\n detail: '¡Los cambios se aplicaron!'\n });\n },\n error: this.handleError.bind(this)\n });\n },\n error: this.handleError.bind(this)\n });\n }\n private handleError(error: any) {\n this.isLoading = false;\n this.showiframe = true;\n this.messageService.add({\n key: 'tst',\n severity: 'error',\n summary: 'Cambio Fallido',\n detail: 'Ocurrió un error al guardar los cambios'\n });\n }\n\n getBotInfo() {\n this.botService.getBot(this.botId).subscribe({\n next: value => {\n this.botName = value.name;\n this.botIdentifier = value.identifier;\n this.bot = value;\n this.chatbotForm.patchValue({\n name: value.name,\n identifier: value.identifier\n\n });\n localStorage.setItem('bot', JSON.stringify(value));\n }\n });\n }\n getWidgetConfig() {\n this.botService.getWidget(this.botId).subscribe({\n next: (widgetConfig) => {\n this.selectedColor = widgetConfig.configuration.color;\n },\n error: (err) => {\n console.error('Failed to fetch widget config', err);\n }\n });\n }\n\n\n\n}\n","
    \n\n
    \n
    \n

    Probar chatbot

    \n
    \n
    \n
    \n
    \n \n \n \n El nombre es requerido\n El nombre tiene un límite de 20 caracteres\n \n
    \n
    \n \n \n \n El identificador tiene un límite de 20 caracteres\n \n Este es el nombre que te ayudará a ti a diferenciar tus chatbots\n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n","// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n production: true,\n apiAddress: 'https://api-dev.globot.ai',\n apiAddressSockets: 'https://realtime-dev.globot.ai',\n datasourceRetryAttempts: 5,\n datasourceRetryIntervalTime: 5000,\n gdriveClientId: '1201299959-mdpv3l6t92o4bt649kksadcrshv1qkbh.apps.googleusercontent.com',\n isFacebookReady:true,\n isInstagramReady:true,\n isScanUrlReady:true,\n isLiveMessagingReady:true,\n facebookApiVersion:'v19.0',\n facebookAppId: '6703563753026473',\n messengerConfigId: 1621875775234588,\n instagramConfigId: 1118405822714279,\n subscriptionsEnabled: true,\n showGlobotLive: false,\n widgetUrl: 'https://widget-dev.globot.ai/demo/',\n demoTargetOrigin: 'https://widget-dev.globot.ai/',\n termsUrl: 'https://globot.ai/terminos-y-condiciones/',\n privacyUrl: 'https://globot.ai/politica-de-privacidad/',\n googleDeveloperKey: 'AIzaSyCAIH614O24npcu5e3vwnBmJeyEptjblCM',\n googleAppId: 'llmchatbot-388900',\n onesignalAppId:'5d5002ab-12a1-4c0c-b505-ee69a775db45'\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/plugins/zone-error'; // Included with Angular CLI.\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.error(err));\n","var map = {\n\t\"./af\": 58685,\n\t\"./af.js\": 58685,\n\t\"./ar\": 254,\n\t\"./ar-dz\": 4312,\n\t\"./ar-dz.js\": 4312,\n\t\"./ar-kw\": 32614,\n\t\"./ar-kw.js\": 32614,\n\t\"./ar-ly\": 18630,\n\t\"./ar-ly.js\": 18630,\n\t\"./ar-ma\": 28674,\n\t\"./ar-ma.js\": 28674,\n\t\"./ar-ps\": 46235,\n\t\"./ar-ps.js\": 46235,\n\t\"./ar-sa\": 49032,\n\t\"./ar-sa.js\": 49032,\n\t\"./ar-tn\": 24730,\n\t\"./ar-tn.js\": 24730,\n\t\"./ar.js\": 254,\n\t\"./az\": 53052,\n\t\"./az.js\": 53052,\n\t\"./be\": 60150,\n\t\"./be.js\": 60150,\n\t\"./bg\": 63069,\n\t\"./bg.js\": 63069,\n\t\"./bm\": 13466,\n\t\"./bm.js\": 13466,\n\t\"./bn\": 18516,\n\t\"./bn-bd\": 90557,\n\t\"./bn-bd.js\": 90557,\n\t\"./bn.js\": 18516,\n\t\"./bo\": 26273,\n\t\"./bo.js\": 26273,\n\t\"./br\": 9588,\n\t\"./br.js\": 9588,\n\t\"./bs\": 19815,\n\t\"./bs.js\": 19815,\n\t\"./ca\": 83331,\n\t\"./ca.js\": 83331,\n\t\"./cs\": 21320,\n\t\"./cs.js\": 21320,\n\t\"./cv\": 72219,\n\t\"./cv.js\": 72219,\n\t\"./cy\": 68266,\n\t\"./cy.js\": 68266,\n\t\"./da\": 66427,\n\t\"./da.js\": 66427,\n\t\"./de\": 67435,\n\t\"./de-at\": 52871,\n\t\"./de-at.js\": 52871,\n\t\"./de-ch\": 12994,\n\t\"./de-ch.js\": 12994,\n\t\"./de.js\": 67435,\n\t\"./dv\": 82357,\n\t\"./dv.js\": 82357,\n\t\"./el\": 95649,\n\t\"./el.js\": 95649,\n\t\"./en-au\": 59961,\n\t\"./en-au.js\": 59961,\n\t\"./en-ca\": 19878,\n\t\"./en-ca.js\": 19878,\n\t\"./en-gb\": 3924,\n\t\"./en-gb.js\": 3924,\n\t\"./en-ie\": 70864,\n\t\"./en-ie.js\": 70864,\n\t\"./en-il\": 91579,\n\t\"./en-il.js\": 91579,\n\t\"./en-in\": 30940,\n\t\"./en-in.js\": 30940,\n\t\"./en-nz\": 16181,\n\t\"./en-nz.js\": 16181,\n\t\"./en-sg\": 44301,\n\t\"./en-sg.js\": 44301,\n\t\"./eo\": 85291,\n\t\"./eo.js\": 85291,\n\t\"./es\": 54529,\n\t\"./es-do\": 53764,\n\t\"./es-do.js\": 53764,\n\t\"./es-mx\": 12584,\n\t\"./es-mx.js\": 12584,\n\t\"./es-us\": 63425,\n\t\"./es-us.js\": 63425,\n\t\"./es.js\": 54529,\n\t\"./et\": 35203,\n\t\"./et.js\": 35203,\n\t\"./eu\": 70678,\n\t\"./eu.js\": 70678,\n\t\"./fa\": 83483,\n\t\"./fa.js\": 83483,\n\t\"./fi\": 96262,\n\t\"./fi.js\": 96262,\n\t\"./fil\": 52521,\n\t\"./fil.js\": 52521,\n\t\"./fo\": 34555,\n\t\"./fo.js\": 34555,\n\t\"./fr\": 63131,\n\t\"./fr-ca\": 88239,\n\t\"./fr-ca.js\": 88239,\n\t\"./fr-ch\": 21702,\n\t\"./fr-ch.js\": 21702,\n\t\"./fr.js\": 63131,\n\t\"./fy\": 267,\n\t\"./fy.js\": 267,\n\t\"./ga\": 23821,\n\t\"./ga.js\": 23821,\n\t\"./gd\": 71753,\n\t\"./gd.js\": 71753,\n\t\"./gl\": 4074,\n\t\"./gl.js\": 4074,\n\t\"./gom-deva\": 92762,\n\t\"./gom-deva.js\": 92762,\n\t\"./gom-latn\": 5969,\n\t\"./gom-latn.js\": 5969,\n\t\"./gu\": 82809,\n\t\"./gu.js\": 82809,\n\t\"./he\": 45402,\n\t\"./he.js\": 45402,\n\t\"./hi\": 315,\n\t\"./hi.js\": 315,\n\t\"./hr\": 10410,\n\t\"./hr.js\": 10410,\n\t\"./hu\": 38288,\n\t\"./hu.js\": 38288,\n\t\"./hy-am\": 67928,\n\t\"./hy-am.js\": 67928,\n\t\"./id\": 71334,\n\t\"./id.js\": 71334,\n\t\"./is\": 86959,\n\t\"./is.js\": 86959,\n\t\"./it\": 34864,\n\t\"./it-ch\": 51124,\n\t\"./it-ch.js\": 51124,\n\t\"./it.js\": 34864,\n\t\"./ja\": 36141,\n\t\"./ja.js\": 36141,\n\t\"./jv\": 29187,\n\t\"./jv.js\": 29187,\n\t\"./ka\": 42136,\n\t\"./ka.js\": 42136,\n\t\"./kk\": 94332,\n\t\"./kk.js\": 94332,\n\t\"./km\": 18607,\n\t\"./km.js\": 18607,\n\t\"./kn\": 84305,\n\t\"./kn.js\": 84305,\n\t\"./ko\": 70234,\n\t\"./ko.js\": 70234,\n\t\"./ku\": 16003,\n\t\"./ku-kmr\": 19619,\n\t\"./ku-kmr.js\": 19619,\n\t\"./ku.js\": 16003,\n\t\"./ky\": 75061,\n\t\"./ky.js\": 75061,\n\t\"./lb\": 32786,\n\t\"./lb.js\": 32786,\n\t\"./lo\": 66183,\n\t\"./lo.js\": 66183,\n\t\"./lt\": 50029,\n\t\"./lt.js\": 50029,\n\t\"./lv\": 24169,\n\t\"./lv.js\": 24169,\n\t\"./me\": 68577,\n\t\"./me.js\": 68577,\n\t\"./mi\": 68177,\n\t\"./mi.js\": 68177,\n\t\"./mk\": 50337,\n\t\"./mk.js\": 50337,\n\t\"./ml\": 65260,\n\t\"./ml.js\": 65260,\n\t\"./mn\": 52325,\n\t\"./mn.js\": 52325,\n\t\"./mr\": 14695,\n\t\"./mr.js\": 14695,\n\t\"./ms\": 75334,\n\t\"./ms-my\": 37151,\n\t\"./ms-my.js\": 37151,\n\t\"./ms.js\": 75334,\n\t\"./mt\": 63570,\n\t\"./mt.js\": 63570,\n\t\"./my\": 97963,\n\t\"./my.js\": 97963,\n\t\"./nb\": 88028,\n\t\"./nb.js\": 88028,\n\t\"./ne\": 86638,\n\t\"./ne.js\": 86638,\n\t\"./nl\": 50302,\n\t\"./nl-be\": 66782,\n\t\"./nl-be.js\": 66782,\n\t\"./nl.js\": 50302,\n\t\"./nn\": 33501,\n\t\"./nn.js\": 33501,\n\t\"./oc-lnc\": 50563,\n\t\"./oc-lnc.js\": 50563,\n\t\"./pa-in\": 50869,\n\t\"./pa-in.js\": 50869,\n\t\"./pl\": 65302,\n\t\"./pl.js\": 65302,\n\t\"./pt\": 49687,\n\t\"./pt-br\": 74884,\n\t\"./pt-br.js\": 74884,\n\t\"./pt.js\": 49687,\n\t\"./ro\": 79107,\n\t\"./ro.js\": 79107,\n\t\"./ru\": 33627,\n\t\"./ru.js\": 33627,\n\t\"./sd\": 30355,\n\t\"./sd.js\": 30355,\n\t\"./se\": 83427,\n\t\"./se.js\": 83427,\n\t\"./si\": 11848,\n\t\"./si.js\": 11848,\n\t\"./sk\": 54590,\n\t\"./sk.js\": 54590,\n\t\"./sl\": 20184,\n\t\"./sl.js\": 20184,\n\t\"./sq\": 56361,\n\t\"./sq.js\": 56361,\n\t\"./sr\": 78965,\n\t\"./sr-cyrl\": 81287,\n\t\"./sr-cyrl.js\": 81287,\n\t\"./sr.js\": 78965,\n\t\"./ss\": 25456,\n\t\"./ss.js\": 25456,\n\t\"./sv\": 70451,\n\t\"./sv.js\": 70451,\n\t\"./sw\": 77558,\n\t\"./sw.js\": 77558,\n\t\"./ta\": 51356,\n\t\"./ta.js\": 51356,\n\t\"./te\": 73693,\n\t\"./te.js\": 73693,\n\t\"./tet\": 21243,\n\t\"./tet.js\": 21243,\n\t\"./tg\": 42500,\n\t\"./tg.js\": 42500,\n\t\"./th\": 55768,\n\t\"./th.js\": 55768,\n\t\"./tk\": 77761,\n\t\"./tk.js\": 77761,\n\t\"./tl-ph\": 35780,\n\t\"./tl-ph.js\": 35780,\n\t\"./tlh\": 29590,\n\t\"./tlh.js\": 29590,\n\t\"./tr\": 33807,\n\t\"./tr.js\": 33807,\n\t\"./tzl\": 93857,\n\t\"./tzl.js\": 93857,\n\t\"./tzm\": 60654,\n\t\"./tzm-latn\": 8806,\n\t\"./tzm-latn.js\": 8806,\n\t\"./tzm.js\": 60654,\n\t\"./ug-cn\": 30845,\n\t\"./ug-cn.js\": 30845,\n\t\"./uk\": 19232,\n\t\"./uk.js\": 19232,\n\t\"./ur\": 47052,\n\t\"./ur.js\": 47052,\n\t\"./uz\": 77967,\n\t\"./uz-latn\": 32233,\n\t\"./uz-latn.js\": 32233,\n\t\"./uz.js\": 77967,\n\t\"./vi\": 98615,\n\t\"./vi.js\": 98615,\n\t\"./x-pseudo\": 12320,\n\t\"./x-pseudo.js\": 12320,\n\t\"./yo\": 31313,\n\t\"./yo.js\": 31313,\n\t\"./zh-cn\": 64490,\n\t\"./zh-cn.js\": 64490,\n\t\"./zh-hk\": 55910,\n\t\"./zh-hk.js\": 55910,\n\t\"./zh-mo\": 98262,\n\t\"./zh-mo.js\": 98262,\n\t\"./zh-tw\": 44223,\n\t\"./zh-tw.js\": 44223\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 46700;"],"names":["RouterModule","AppLayoutComponent","ChatComponent","BotGuard","SubscriptionsComponent","WidgetConfigComponent","GlobotDashboardComponent","GlobotLiveComponent","ClientsComponent","AppRoutingModule","forRoot","path","redirectTo","pathMatch","component","children","loadComponent","then","c","BotComponent","canActivate","AuthComponent","RegisterComponent","RecoverPasswordComponent","UserPasswordComponent","NewBotComponent","EditUserComponent","EditBotComponent","DatasourceComponent","EmbedComponent","ConfigComponent","ChannelsComponent","RecordsComponent","scrollPositionRestoration","anchorScrolling","onSameUrlNavigation","imports","exports","NavigationEnd","moment","i0","AppComponent","constructor","primengConfig","http","spinnerService","notificationService","ms","globalObservableService","router","userService","paymentService","get","subscribe","rs","setTranslation","es","httpProgress","status","spinner","eventSubscription","ngOnInit","events","event","sanitizedUrl","sanitizeUrl","urlAfterRedirects","console","log","gtag","ripple","alert$","add","key","severity","summary","detail","url","replace","subscription","unsubscribe","getObservable","data","type","user","getUserFromLocalStorage","checkAndUpdateUserSubscription","userString","localStorage","getItem","JSON","parse","parsedUser","latest_active_subscription","current_date","is_active","end_date","subscription_end_date","isAfter","getUser","setItem","stringify","getLastSubscription","next","publish","foo","error","err","code","message","ngOnDestroy","selectors","decls","vars","consts","template","CommonModule","NgClass","NgForOf","NgIf","AppLayoutModule","InputTextModule","ButtonModule","RippleModule","FormsModule","ReactiveFormsModule","HTTP_INTERCEPTORS","SessionInterceptor","ProgressSpinnerModule","VirtualScrollerModule","ToastModule","MessageService","MultiSelectModule","KeyFilterModule","ButtonGlobotComponent","provideLottieOptions","player","CardModule","SafePipe","ChartModule","CheckboxModule","AppModule","bootstrap","provide","useClass","multi","declarations","EventEmitter","onClickEvent","onClick","emit","style","styleClass","width","inputs","text","icon","iconPosition","disabled","loading","outputs","standalone","features","ctx","styles","SpinnerCheckComponent","onEditClick","onEdit","isLoading","isSuccess","isEditing","successColor","errorColor","editTooltip","saveTooltip","cancelTooltip","onSave","onCancel","createUrlTreeFromSnapshot","of","map","catchError","botService","globalObservable","state","action","paramMap","decodedAction","atob","removeItem","navigate","getUserLocalStorage","value","getBots","pipe","length","setHaveBots","on_boarding","factory","providedIn","AppFooterComponent","layoutService","filter","AppSidebarComponent","AppTopBarComponent","environment","renderer","oneSignal","onesignalAppId","production","overlayMenuOpenSubscription","overlayOpen$","menuOutsideClickListener","listen","isOutsideClicked","appSidebar","el","nativeElement","isSameNode","target","contains","appTopbar","menuButton","hideMenu","profileMenuOutsideClickListener","menu","topbarMenuButton","hideProfileMenu","staticMenuMobileActive","blockBodyScroll","overlayMenuActive","menuHoverActive","unblockBodyScroll","profileSidebarVisible","document","body","classList","className","remove","RegExp","split","join","containerClass","config","colorScheme","menuMode","staticMenuDesktopInactive","inputStyle","userStr","id","email","isLocalEnv","init","appId","oneSignalAppId","autoResubscribe","allowLocalhostAsSecureOrigin","User","login","addEmail","Notifications","addEventListener","permissions","permission","catch","viewQuery","BrowserModule","HttpClientModule","BrowserAnimationsModule","SidebarModule","BadgeModule","RadioButtonModule","InputSwitchModule","AppMenuComponent","AppMenuitemComponent","AppConfigModule","ContextMenuModule","MenubarModule","TieredMenuModule","MenuModule","ComponentsDashboardModule","ConfirmDialogModule","model","label","items","routerLink","model2","routerLinkActiveOptions","paths","queryParams","matrixParams","fragment","badge","Subject","MenuService","menuSource","asObservable","resetSource","onMenuStateChange","reset","animate","transition","trigger","cd","menuService","menuSourceSubscription","menuSource$","Promise","resolve","routeEvent","active","startsWith","menuResetSubscription","resetSource$","params","item","updateActiveStateFromRoute","parentKey","index","String","activeRoute","isActive","itemClick","preventDefault","command","originalEvent","submenuAnimation","root","activeClass","hostVars","hostBindings","encapsulation","animation","height","ConfirmationService","Subscription","TieredMenu","item_r13","ctx_r18","ctx_r19","ctx_r20","ctx_r21","activatedRoute","messageService","confirmationService","globalService","termsUrl","privacyUrl","undefined","onWindowScroll","menuTieredMenu","hide","helpMenu","url$","newUrl","urlProfile","updateUserPicture","name$","newName","name","detectChanges","subscription_type","alias","separator","sidebarVisible","isMobile","color","logout","helpItems","window","open","checkCurrentRoute","picture","selectOption","i","currentOption","currentRoute","routerState","snapshot","innerWidth","includes","botId","slice","viewMenuConfig","navigateTo","route","navigateToDashboard","navigateByUrl","location","reload","AppConfigComponent","visible","configSidebarVisible","_val","scale","onConfigButtonClick","showConfigSidebar","changeTheme","theme","themeLink","getElementById","newHref","getAttribute","replaceThemeLink","onConfigUpdate","href","onComplete","cloneLinkElement","cloneNode","setAttribute","parentNode","insertBefore","nextSibling","decrementScale","applyScale","incrementScale","documentElement","fontSize","minimal","LayoutService","configUpdate","overlayOpen","onMenuToggle","isOverlay","isDesktop","showProfileSidebar","MENU_OPTIONS","chat","key_validation","webIntegration","settings","datasources","channels","records","statistics","live","clients","ButtonGlobotStepsComponent","onClickBackEvent","onClickBack","onClickNextEvent","onClickNext","visibleBack","visibleNext","visibleCenter","textBack","textNext","CustomDatePipe","transform","date","Date","year","getFullYear","month","getMonth","toString","padStart","day","getDate","hours","getHours","minutes","getMinutes","ampm","formattedHours","formatHours","formattedHour","pure","MaxTextPipe","n","limit","substring","domSanitizer","bypassSecurityTrustResourceUrl","SearchFilterPipe","searchTerm","toLowerCase","record","channel","last_message","phone","sender_requirement","HttpHeaders","BotService","apiAddress","getBot","deleteBot","delete","postBot","post","uploadSource","scanUrl","getScannedUrls","jobId","deleteScannedUrl","url_id","deleteJobId","uploadUrlsByJob","uploadSourceFile","file","formData","FormData","append","sendMessage","origin","httpHeaders","headers","updateBot","put","getRecords","rangeDate","term","getChatHistory","senderId","chatsFrom","to","group","haveBots","haveBot","getRecordsSummary","getWelcomeMessage","updateWelcomeMessage","welcomeMessage","saveWidgetConfig","chatbotWidgetConfiguration","getWidget","BehaviorSubject","ChatbotliveService","selectedCustomerData","takeControl","payload","updateChatHeader","correlation_id","new_message","sendAnswer","answer","updateCustomerData","created_at","updateCustomerField","field","setAiResponseDelay","timeInMinutes","time_in_minutes","ClientsService","getClients","page","pageSize","page_size","options","responseType","DashboardService","getConversationStats","getConversationDistributionStats","getConversationLeads","getConversationNonDocumentResponse","updateLeadsConfig","interval","switchMap","DataSourceService","getDataSources","deleteDataSource","downloadFileFromGDrive","fileId","mimeType","fileName","accessToken","file_id","mime_type","file_name","access_token","asyncGetDataSource","datasourceRetryIntervalTime","DiscordBotService","postBotDiscord","server_id","is_enabled","server_name","getBotDiscord","updateBotDiscord","channel_name","DomainService","addDomain","domain","deleteDomain","domainId","request","domain_id","getDomains","GlobalObservableService","subject","InstagramBotService","postAccountSubscription","instagramAccount","linked_page_id","page_access_token","getBotInstagram","updateAccountSubscription","deleteBotInstagram","MessengerBotService","postPageSubscription","page_id","page_name","categories","updatePageSubscription","getBotMessenger","deleteBotMessenger","NavService","setData","getData","clearData","NotificationService","alertSource","showAlert","alert","PaymentService","getPaymentUrl","HttpResponse","intercept","token","sessionStorage","clone","setHeaders","handle","withCredentials","SlackBotService","postBotSlack","team_id","getBotSlack","updateBotSlack","Socket","SocketWebService","apiAddressSockets","autoConnect","reconnection","connectToRoom","refreshFunction","ioSocket","connect","room","on","msg","toUpperCase","disconnectRoom","disconnect","ReplaySubject","SpinnerService","httpLoading$","setHttpProgressStatus","inProgress","UserService","cookieService","urlSubject","nameSubject","changeUrl","changeName","updateUser","logOutService","createSubscription","subType","updatePassword","password","create","registerUser","loginUser","forgotPassword","uploadImage","deleteUser","getMessageCount","cancelSubscription","deletePictureUser","WhatsappBotService","postBotWhatsapp","phoneNumber","whatsapp_token","graphUrl","isEnabled","phone_number","whatsapp_endpoint","getBotWhatsapp","updateBotWhatsapp","DOCUMENT","SurveyComponent","ngAfterViewInit","script","createElement","src","appendChild","head","aRoute","queryParamMap","sections","getBotInfo","chatHistory","pop","ngAfterViewChecked","scrollToBottom","bot","storageKey","storedChatHistory","h","myScrollContainer","scrollTop","chatContainer","scrollHeight","sendQuestion","currentQuestion","onTransaction","haveError","previousQuestion","q","push","prompt","response","complete","subscriptionLimitReached","verifyWelcomeMessage","sendPreviousQuestion","prevQuestion","formatMessage","formattedMessage","listRegex","listItems","match","listHtml","forEach","enabled_welcome_message","welcome_message","messageWelcome","clearChat","SecurityContext","ChatMessagesListComponent","sanitizer","formattedText","sanitize","HTML","chatGroups","EmailPasswordComponent","content","ProfilePictureComponent","initial","charAt","size","imageUrl","ReadyAccountComponent","BannerComponent","ConfirmEventType","CardDataSourceComponent","dataSource","ss","confirm","accept","dataSources","child","close","reject","REJECT","CANCEL","getType","getStatus","chipClass","statusText","getIcon","ListStepsOnBoardingComponent","NameBotStepComponent","ChipsModule","SelectDataSourceComponent","WebDataSourceComponent","UploadFileComponent","ProcessChatbotComponent","ReadyStepComponent","RouterLink","SelectPersonalityComponent","NoInfoComponent","DomainConfigComponent","TooltipModule","EmbedHtmlComponent","EmbedWordpressComponent","MessagesModule","DiscordBotComponent","MessengerBotComponent","SlackBotComponent","InstagramBotComponent","WhatsappBotComponent","CardsRecordsComponent","ChannelSelectorComponent","NotAvailableComponent","DialogModule","ProfileComponent","SubscriptionPlanComponent","UserBillingComponent","DeleteAccountComponent","LottieComponent","ImageCropperModule","ProgressBarModule","AccordionModule","StatisticsComponent","LeadsComponent","CalendarModule","NgChartsModule","TableModule","TypeSubscriptionPlansComponent","PayNotificationComponent","ExpiredPlanComponent","ConversationCardsComponent","AutoCompleteModule","InformationSectionComponent","CustomerFormComponent","PreferencesBoxComponent","Validators","fb","discordBotService","changeDetectorRef","discordBot","serverId","required","channelNames","checked","serverName","setStatus","patchValue","onSubmitServerId","showMessage","updateDiscord","postDiscord","linkBot","onSubmitChannels","switchChanged","enableInputs","enable","statusChange","Tooltip","domainService","clipboard","getDomainsByBotId","getCodeJs","domains","domainData","codeJS","copyCodeToClipboard","copy","tooltip","activate","zipFileName","input","getDownloadLink","download","link","click","closeNotification","messengerBotService","instagramBotService","dataService","facebookApiVersion","facebookAppId","instagramConfigId","FB","cookie","xfbml","version","config_id","subscriptionMessenger","getMessengerStatus","pageSubscribed","messengerBot","getInstagramBot","getMessengerBot","showDialog","dialogVisible","showDialogDelete","deleteDialogVisible","showDialogNotFoundedAccount","notFoundedAccountDialog","closeDialog","closeDialogDelete","closeDialogNotFoundedAccount","detectInstagramAccount","linkFacebookAccount","getPage","instagram_business_account","instagramDetected","subscribeIgAccount","setInstagramStatus","botEnabled","instagramBot","unlinkInstagramAccount","deleteAccountSubscription","facebookLogin","authResponse","userAccessToken","generateAccessToken","accessTokenUser","pages","getPages","userData","getUserData","userId","revokePermissions","facebookLogout","success","subscribePage","category_list","setRefreshMessenger","getLoginStatus","api","accountsResponse","configuration","configuration_id","type_resp","response_type","override_default_response_type","pageId","pageAccessToken","userDataResponse","revokeResponse","client_id","client_secret","messengerConfigId","unlinkFacebookAccount","showDeleteDialog","pageSubscription","unSuscribed","unSubscribePage","refresh","refreshMessenger","setMessengerStatus","tile","title","payment","show_renewal_banner","payNow","paymentUrl","payment_url","showCloseButton","flexDirection","description","img","selectCard","selectedCardIndex","selectCardEvent","columns","nextEvent","backEvent","slackBotService","slackBot","teamId","onSubmitTeamId","back","navService","botName","Math","floor","random","botNameEvent","saveName","showError","setContextType","contextType","temperature","context_type","subscriptionsEnabled","setSubStep","subStep","subStepEvent","showBackButton","onFileDropped","isDragOver","files","dataTransfer","handleFileUpload","onDragOverArea","onDragLeaveArea","openFileInput","fileInput","onFileSelected","fileExtension","isExtensionAllowed","hasError","fileUploaded","extension","titleExtension","allowedExtensionsArray","ext","trim","lastValueFrom","takeWhile","take","ctx_r25","scanUrlReady","isScanUrlReady","loadingValue","control","increase_every_second","job_id","bot_id","links","count","scanLoading","delete_job","backAndDeleteJob","uploadUrls","showErrorMessage","errorMessage","setUrlDataSource","urlRegex","urlDatasource","test","normalizedUrl","normalizeUrl","urlDataSourceEvent","endsWith","chatbot_scanned_url","obtainLinks","value1","removeLink","l","newBot","class","price","denominator","encodeSubscriptionPlan","buttonText","showIvaIncluded","marginBottom","plan","btoa","toggleTooltip","showTooltip","urlValidator","urlInvalid","whatsappBotService","whatsappBot","minLength","maxLength","verify_token","displayedToken","onSubmit","valid","updateWhatsapp","postWhatsapp","copyToClipboard","copyText","navigator","writeText","tooltips","toArray","TabViewModule","SharedModule","DropdownModule","Breakpoints","XLSX","dashboardService","breakpointObserver","currentDate","setHours","sevenDaysAgo","getTime","rangeDates","observe","Handset","result","isHandset","matches","bots","find","b","leadsEnabled","leads_enabled","showLeads","chatbotHistoryLeads","formatDate","endDate","res","chatbot_conversation_leads","hasData","fechaOriginal","fechaObj","anio","mes","dia","onClean","calendar","overlayVisible","onDateSelect","exportToExcel","header","reduce","acc","col","worksheet","utils","json_to_sheet","wch","range","decode_range","C","s","e","encode_col","font","bold","border","top","bottom","left","right","R","r","cell","encode_cell","workbook","Sheets","SheetNames","writeFile","onLeadsToggle","newConfig","user_data_gathering_enabled","correlationId","rawGroups","selectedChatHistory","getGroupDate","messages","sort","a","Object","firstMessageDate","formatGroupDate","today","yesterday","setDate","toDateString","toLocaleDateString","weekday","cdr","zone","responsive","maintainAspectRatio","scales","x","stacked","grid","display","ticks","autoSkip","maxRotation","minRotation","y","beginAtZero","callback","plugins","legend","labels","datasets","updateCharts","createChart","updateBarChart","barChartData","chatbot_history_list","chatbotHistoryList","platforms","dataValues","fb_count","ig_count","wsp_count","web_count","discord_count","others_count","pieChartLabels","_","pieChartData","distributionData","day_hour_distribution","parseFloat","backgroundColor","borderRadius","DataService","defaultStatus","messengerStatus","refreshMessengerBot","getInstagramStatus","instagramStatus","newValue","clientsService","loadClients","handleEmptyResponse","currentPage","totalRecords","processClientResponse","chatbot_conversation_clients","total_records","first","rows","exportExcel","pageToExport","pageSizeToExport","blob","Blob","URL","createObjectURL","revokeObjectURL","stopPropagation","selectedCorrelationId","Array","isArray","dayjs","utc","timezone","selectedCard","chatHistorySelected","extend","getDateUtc","dayjsUtc","localDate","local","format","getFirstPart","sender_id","selectedChannels","onChannelsSelect","onChange","domainsForm","array","valueChanges","isSubmitting","domainsFormArray","clear","domainList","controls","disable","getDomainsFormArray","maxDomains","urlPattern","newDomain","pattern","removeDomain","splice","removeAt","formDomainsArray","dirty","submitDomain","domainsFormSubmit","domainEntry","formSubmit","$event","deleteAccount","userForm","validarFormatoNombre","type_document","updateHasPicture","setValue","nombre","regexNombre","formatoInvalido","getInputClass","controlName","invalid","touched","hideDialog","fileChangeEvent","inputElement","validTypes","imageChangedEvent","imageCropped","croppedImage","base64","imageLoaded","cropperReady","loadImageFailed","uploadCroppedImage","dataURItoBlob","cancelImageUpload","imageUploaded","dataURI","byteString","arrayBuffer","ArrayBuffer","intArray","Uint8Array","charCodeAt","hasPicture","deletePicture","isUpdating","updatedUser","markAsPristine","selectImage","subscriptionType","consumedMessages","consumed_messages","limitMessages","limit_messages","getFeatures","formatRut","validateRut","validarRUT","rut","rutInvalido","flag","dial_code","subscriptionForm","document_value","country","selectedCountry","name_on_invoice","countryDialCode","countries","hasBillingInfo","onblur","getCodeNumber","onCountryChange","selectElement","updateNewMessageStatus","now","diffMinutes","diff","diffDays","getDisplayName","getChannelIcon","isChannelIconVisible","takeUntil","locale","chatbotliveService","sender_name","sender_email","sender_phone","customerData$","destroy$","resetForm","keys","editMode","loadingFields","successFields","tempValues","handleInput","validateField","enableEdit","getOriginalFieldName","originalValues","errorMessages","cancelEdit","element","originalField","saveField","trimmedValue","originalValue","setTimeout","fieldMap","getFormattedDate","emailRegex","phoneRegex","validateNumberInput","allowedKeys","ctx_r39","socket","isLiveMessagingReady","menu_options","keyPage","loadRecordsWithDateRange","startDate","subtract","originalRecords","selectedChat","userInControl","user_in_control","groupChatsByDate","chats","sortedChats","reverse","onChatHistorySelected","selectedChatView","updateChat","take_control","loadingButton","take_manual_control","updateUserControlStatus","currentAnswer","newMessage","toISOString","answered_by","formattedDate","g","unshift","onPreferencesSaved","selectedTime","showPlansDialogPreferences","onPreferencesCancelled","isMetaLimitExceeded","lastUserPromptMessage","user_prompt","sanitizedDate","messageDate","hoursDiff","botData","ai_response_delay","formatTimeOption","savePreferences","preferencesSaved","cancelPreferences","preferenceCancelled","validarTelefono","typeEncoded","planType","planPrice","telefono","regexTelefono","telefonoInvalido","checkboxRut","noRut","clearValidators","updateValueAndValidity","setValidators","formValues","getErrorMessage","errors","isFormValid","hasOwnProperty","widgetUrl","demoTargetOrigin","topBarColor","userBubbleColor","botBubbleColor","buttonColor","selectColor","selectedColor","iframe","contentWindow","postMessage","chatbotForm","identifier","getWidgetConfig","onload","isIframeLoading","getLabelText","str","acceptStyle","styleName","tempStyles","updateBotForm","saveConfig","nameValue","identifierValue","markAllAsTouched","showiframe","chatbotWidgetConfig","saveRes","handleError","bind","botIdentifier","widgetConfig","datasourceRetryAttempts","gdriveClientId","isFacebookReady","isInstagramReady","showGlobotLive","googleDeveloperKey","googleAppId","enableProdMode","__NgCli_bootstrap_1","bootstrapModule"],"sourceRoot":"webpack:///","x_google_ignoreList":[136]}