{"version":3,"sources":["libs/ai-knowledge/src/lib/delete-custom-knowledge/delete-custom-knowledge.component.ts","libs/ai-knowledge/src/lib/delete-custom-knowledge/delete-custom-knowledge.component.html","libs/ai-knowledge/src/lib/knowledge-source-management/knowledge-source-management.component.ts","libs/ai-knowledge/src/lib/knowledge-source-management/knowledge-source-management.component.html","node_modules/@vendasta/google-my-business/fesm2020/vendasta-google-my-business.mjs","libs/conversation/core/src/lib/channels/conversation-google.service.ts","libs/conversation/core/src/lib/channels/conversation-facebook.service.ts","libs/conversation/core/src/lib/channels/conversation-instagram.service.ts","libs/conversation/core/src/lib/channels/conversation-platform.service.ts","libs/ai-assistant/src/assets/avatars/avatar-svg-string.ts","libs/ai-assistant/src/core/services/sms-details.service.ts","libs/ai-assistant/src/core/services/booking-config.service.ts","libs/ai-assistant/src/core/ai-assistant.module.ts","libs/ai-assistant/src/components/ai-assistant-card/ai-assistant-card.component.ts","libs/ai-assistant/src/components/ai-assistant-card/ai-assistant-card.component.html","libs/ai-assistant/src/components/ai-voice-try-it-modal/ai-voice-try-it-modal.component.ts","libs/ai-assistant/src/components/ai-voice-try-it-modal/ai-voice-try-it-modal.component.html","libs/ai-assistant/src/components/ai-assistant-page/ai-assistant-page.component.ts","libs/ai-assistant/src/components/ai-assistant-page/ai-assistant-page.component.html","libs/ai-assistant/src/components/ai-assistant-configuration/enable-lead-capture-dialog/enable-lead-capture-dialog.component.ts","libs/ai-assistant/src/components/ai-assistant-configuration/enable-lead-capture-dialog/enable-lead-capture-dialog.component.html","libs/ai-assistant/src/components/additional-instructions-dialog/additional-instructions-dialog.component.ts","libs/ai-assistant/src/components/additional-instructions-dialog/additional-instructions-dialog.component.html","libs/ai-assistant/src/components/sticky-footer/sticky-footer.component.ts","libs/ai-assistant/src/components/sticky-footer/sticky-footer.component.html","libs/ai-assistant/src/components/ai-assistant-configuration/image-upload/image-upload.service.ts","libs/ai-assistant/src/components/ai-assistant-configuration/image-upload/image-upload-modal/image-upload-modal.component.ts","libs/ai-assistant/src/components/ai-assistant-configuration/image-upload/image-upload-modal/image-upload-modal.component.html","libs/ai-assistant/src/components/ai-assistant-configuration/image-upload/image-upload.component.ts","libs/ai-assistant/src/components/ai-assistant-configuration/image-upload/image-upload.component.html","libs/ai-assistant/src/components/ai-assistant-configuration/ai-assistant-form/unsaved-changes.guard.ts","libs/ai-assistant/src/components/ai-assistant-voice-usage/ai-assistant-voice-usage.component.ts","libs/ai-assistant/src/components/ai-assistant-voice-usage/ai-assistant-voice-usage.component.html","libs/ai-assistant/src/components/ai-assistant-configuration/goals-and-instructions/goals-list.component.ts","libs/ai-assistant/src/components/ai-assistant-configuration/goals-and-instructions/goals-list.component.html","libs/ai-assistant/src/core/services/ai-goal.service.ts","libs/ai-assistant/src/components/ai-assistant-configuration/ai-assistant-form/ai-assistant-form.component.ts","libs/ai-assistant/src/components/ai-assistant-configuration/ai-assistant-form/ai-assistant-form.component.html","libs/ai-assistant/src/core/services/ai-goal-util.ts","libs/ai-assistant/src/components/ai-goal-form/ai-goal-form.component.ts","libs/ai-assistant/src/components/ai-goal-form/ai-goal-form.component.html","libs/ai-assistant/src/lib/routes.ts","libs/conversation/core/src/lib/channels/conversation-sms.service.ts","libs/conversation/core/src/lib/firebase.config.ts","libs/conversation/core/src/lib/channels/conversation-whatsapp.service.ts","libs/conversation/core/src/lib/channels/conversation-email.service.ts","libs/conversation/core/src/lib/conversation-core.module.ts","apps/partner-center-client/src/app/access-denied/access-denied.component.ts","apps/partner-center-client/src/app/access-denied/access-denied.component.html","apps/partner-center-client/src/app/accounts/account-delete.component.ts","apps/partner-center-client/src/app/activation/core/analytics/utils.ts","apps/partner-center-client/src/app/activation/core/analytics/activation-analytics.service.ts","apps/partner-center-client/src/app/activation/shared/shared-activation.module.ts","apps/partner-center-client/src/app/accounts/account-add-to-list.component.ts","apps/partner-center-client/src/app/accounts/change-plan-dialog/change-plan-dialog.module.ts","apps/partner-center-client/src/app/accounts/account.module.ts","apps/partner-center-client/src/app/ai-knowledge/providers.ts","apps/partner-center-client/src/app/pop-up-cta-check.ts","apps/partner-center-client/src/app/app-nav-item.component.ts","apps/partner-center-client/src/app/app-nav-item.component.html","libs/email-ui/email-activity/src/activity-table/activity-table.service.ts","libs/email-ui/email-activity/src/activity-table/activity-table.component.ts","libs/email-ui/email-activity/src/activity-table/activity-table.component.html","apps/partner-center-client/src/app/users/user/preview-welcome-email-dialog.component.ts","apps/partner-center-client/src/app/bulk-import/map-change-dialog.component.ts","apps/partner-center-client/src/app/bulk-import/map-change-dialog.component.html","apps/partner-center-client/src/app/bulk-import/bulk-import-mapping-row.component.ts","apps/partner-center-client/src/app/bulk-import/bulk-import-mapping-row.component.html","apps/partner-center-client/src/app/bulk-import/bulk-import-mapper.component.ts","apps/partner-center-client/src/app/bulk-import/bulk-import-mapper.component.html","apps/partner-center-client/src/app/bulk-import/bulk-import.component.ts","apps/partner-center-client/src/app/bulk-import/bulk-import.component.html","apps/partner-center-client/src/app/campaigns/account-selector/campaign-account-selector.component.ts","apps/partner-center-client/src/app/campaigns/account-selector/campaign-account-selector.component.html","apps/partner-center-client/src/app/common/variable-menu/variable-menu-item-selector/variable-menu-item-selector.component.ts","apps/partner-center-client/src/app/common/variable-menu/variable-menu-item-selector/variable-menu-item-selector.component.html","apps/partner-center-client/src/app/common/variable-menu/variable-menu.service.ts","apps/partner-center-client/src/app/common/variable-menu/variable-menu-dialog/variable-menu-dialog.component.ts","apps/partner-center-client/src/app/common/variable-menu/variable-menu-dialog/variable-menu-dialog.component.html","apps/partner-center-client/src/app/core/guards/access-partner-admin-view-guard.service.ts","apps/partner-center-client/src/app/core/guards/inbox-modal.guard.ts","apps/partner-center-client/src/app/core/guards/salespeople-guard.service.ts","apps/partner-center-client/src/app/partner/company-profile-api.service.ts","apps/partner-center-client/src/app/partner/company-profile.component.ts","apps/partner-center-client/src/app/partner/company-profile.component.html","apps/partner-center-client/src/app/partner/partner.module.ts","apps/partner-center-client/src/app/customize-design/customize-exec-report/customize-exec-report.service.ts","apps/partner-center-client/src/app/customize-design/customize-exec-report/customize-exec-report.component.ts","apps/partner-center-client/src/app/customize-design/customize-exec-report/customize-exec-report.component.html","apps/partner-center-client/src/app/customize-design/order-config/preview-email-dialog/preview-email-dialog.component.ts","apps/partner-center-client/src/app/customize-design/order-config/preview-email-dialog/preview-email-dialog.component.html","apps/partner-center-client/src/app/customize-design/order-config/automation-name-display/automation-name-display.component.ts","apps/partner-center-client/src/app/customize-design/order-config/automation-name-display/automation-name-display.component.html","apps/partner-center-client/src/app/customize-design/order-config/order-config.ts","apps/partner-center-client/src/app/customize-design/order-config/restore-warning-dialog/restore-warning-dialog.component.ts","apps/partner-center-client/src/app/customize-design/order-config/restore-warning-dialog/restore-warning-dialog.component.html","apps/partner-center-client/src/app/customize-design/order-setup/order-setup.service.ts","apps/partner-center-client/src/app/customize-design/order-setup/order-setup.component.ts","apps/partner-center-client/src/app/customize-design/order-setup/order-setup.component.html","apps/partner-center-client/src/app/customize-design/order-config/order-config.component.ts","apps/partner-center-client/src/app/customize-design/order-config/order-config.component.html","apps/partner-center-client/src/app/customize-design/sales-orders-decline-reasons/dialog/declined-reason-dialog.component.ts","apps/partner-center-client/src/app/customize-design/sales-orders-decline-reasons/dialog/declined-reason-dialog.component.html","apps/partner-center-client/src/app/customize-design/sales-orders-decline-reasons/sales-orders-decline-reasons.component.ts","apps/partner-center-client/src/app/customize-design/sales-orders-decline-reasons/sales-orders-decline-reasons.component.html","apps/partner-center-client/src/app/customize-design/sales-orders-decline-reasons/sales-orders-decline-reasons.module.ts","apps/partner-center-client/src/app/customize-design/customize-design.module.ts","apps/partner-center-client/src/app/email-builder-sandbox/email-builder-sandbox.component.ts","apps/partner-center-client/src/app/email-builder-sandbox/email-builder-sandbox.component.html","libs/email-ui/domain-authorization/src/domain-cache.service.ts","libs/email-ui/domain-authorization/src/domain-info-card/dependencies.ts","libs/email-ui/domain-authorization/src/domain-status-icon/domain-status-icon.component.ts","libs/email-ui/domain-authorization/src/domain-status-icon/domain-status-icon.component.html","libs/email-ui/domain-authorization/src/domain-records-table/domain-records-table.component.ts","libs/email-ui/domain-authorization/src/domain-records-table/domain-records-table.component.html","libs/email-ui/domain-authorization/src/domain-info-card/domain-info-card.component.ts","libs/email-ui/domain-authorization/src/domain-info-card/domain-info-card.component.html","libs/email-ui/domain-authorization/src/domains/can-add-domain.pipe.ts","libs/email-ui/domain-authorization/src/domains/domains.component.ts","libs/email-ui/domain-authorization/src/domains/domains.component.html","libs/email-ui/domain-authorization/src/new-domain-dialog/new-domain-dialog.component.ts","libs/email-ui/domain-authorization/src/new-domain-dialog/new-domain-dialog.component.html","libs/email-ui/domain-authorization/src/sender-info-card/dependencies.ts","libs/email-ui/email-form-validators/src/validators.ts","libs/email-ui/domain-authorization/src/domains-dialog/domain-status-and-name/domain-status-and-name.component.ts","libs/email-ui/domain-authorization/src/domains-dialog/domain-status-and-name/domain-status-and-name.component.html","libs/email-ui/domain-authorization/src/domains-dialog/domains-dialog.component.ts","libs/email-ui/domain-authorization/src/domains-dialog/domains-dialog.component.html","libs/email-ui/domain-authorization/src/sender-info-card/sender-info-form/email-forwarding-info/email-forwarding-info.component.ts","libs/email-ui/domain-authorization/src/sender-info-card/sender-info-form/email-forwarding-info/email-forwarding-info.component.html","libs/email-ui/email-username-input/email-username-input.component.ts","libs/email-ui/email-username-input/email-username-input.component.html","libs/email-ui/domain-authorization/src/sender-info-card/sender-info-form/sender-info-form.component.ts","libs/email-ui/domain-authorization/src/sender-info-card/sender-info-form/sender-info-form.component.html","libs/email-ui/domain-authorization/src/sender-info-card/sender-info-card.component.ts","libs/email-ui/domain-authorization/src/sender-info-card/sender-info-card.component.html","libs/email-ui/domain-authorization/src/domain-authorization.component.ts","libs/email-ui/domain-authorization/src/domain-authorization.component.html","libs/email-ui/domain-authorization/src/domain-status-icon/domain-status-icon.module.ts","libs/email-ui/domain-authorization/src/domain-records-table/domain-records-table.module.ts","libs/email-ui/domain-authorization/src/domain-info-card/domain-info-card.module.ts","libs/email-ui/domain-authorization/src/new-domain-dialog/new-domain-dialog.module.ts","libs/email-ui/domain-authorization/src/domains/domains.module.ts","libs/email-ui/email-username-input/email-username-input.module.ts","libs/email-ui/domain-authorization/src/domain-info-dialog/domain-info-dialog.module.ts","libs/email-ui/domain-authorization/src/domains-dialog/domains-dialog.module.ts","libs/email-ui/domain-authorization/src/sender-info-card/sender-info-card.module.ts","libs/email-ui/domain-authorization/src/domain-authorization.module.ts","apps/partner-center-client/src/app/email-settings/email-settings.component.ts","apps/partner-center-client/src/app/email-settings/email-settings.component.html","node_modules/@vendasta/help-center/fesm2020/vendasta-help-center.mjs","apps/partner-center-client/src/app/help-center/help-case-card/help-center-cases.ts","apps/partner-center-client/src/app/help-center/help-side-drawer/help-side-drawer-template-ref.service.ts","apps/partner-center-client/src/app/help-center/help-side-drawer/help-closing-side-drawer/help-closing-side-drawer.component.ts","apps/partner-center-client/src/app/help-center/help-side-drawer/help-closing-side-drawer/help-closing-side-drawer.component.html","apps/partner-center-client/src/app/help-center/help-case-card/help-case-card.component.ts","apps/partner-center-client/src/app/help-center/help-case-card/help-case-card.component.html","apps/partner-center-client/src/app/help-center/help-search-card/help-center-articles.ts","apps/partner-center-client/src/app/help-center/help-search-card/help-search-card.component.ts","apps/partner-center-client/src/app/help-center/help-search-card/help-search-card.component.html","apps/partner-center-client/src/app/help-center/help-center.component.ts","apps/partner-center-client/src/app/help-center/help-center.component.html","apps/partner-center-client/src/app/local-login/local-login.component.ts","apps/partner-center-client/src/app/local-login/local-login.component.html","apps/partner-center-client/src/app/local-login/local-login.module.ts","apps/partner-center-client/src/app/page-not-found/page-not-found.component.ts","apps/partner-center-client/src/app/page-not-found/page-not-found.component.html","apps/partner-center-client/src/app/pipeline/view-router.ts","apps/partner-center-client/src/app/product-order-form-proxy/product-order-form-proxy.component.ts","apps/partner-center-client/src/app/terms-of-service/terms-of-service.service.ts","apps/partner-center-client/src/app/terms-of-service/terms-of-service.component.ts","apps/partner-center-client/src/app/terms-of-service/terms-of-service.component.html","apps/partner-center-client/src/app/terms-of-service/terms-of-service.module.ts","libs/config-manager/src/lib/tokens.ts","libs/config-manager/src/lib/config-manager.service.ts","libs/config-manager/src/lib/config-manager.module.ts","libs/config-manager/src/lib/assets/i18n/en_devel.json","libs/config-manager/src/lib/assets/i18n/config-manager-i18n.module.ts","libs/config-manager/src/lib/config-editor/config-source/source.component.ts","libs/config-manager/src/lib/config-editor/config-source/source.component.html","libs/config-manager/src/lib/config-editor/config-options/options.component.ts","libs/config-manager/src/lib/config-editor/config-options/options.component.html","node_modules/@vendasta/configuration-management/fesm2020/vendasta-configuration-management.mjs","libs/config-manager/src/lib/utils.ts","libs/config-manager/src/lib/config-editor/dialog/config-editor-dialog.component.ts","libs/config-manager/src/lib/config-editor/dialog/config-editor-dialog.component.html","libs/config-manager/src/lib/config-applier/dialog/config-applier-dialog.component.ts","libs/config-manager/src/lib/config-applier/dialog/config-applier-dialog.component.html","libs/config-manager/src/lib/config-view/dialog/config-view-dialog.component.ts","libs/config-manager/src/lib/config-view/dialog/config-view-dialog.component.html","libs/config-manager/src/lib/config-list/config-card/config-card.component.ts","libs/config-manager/src/lib/config-list/config-card/config-card.component.html","libs/config-manager/src/lib/config-list/config-list.component.ts","libs/config-manager/src/lib/config-list/config-list.component.html","libs/config-manager/src/lib/config-manager/config-manager.component.ts","libs/config-manager/src/lib/config-manager/config-manager.component.html","apps/partner-center-client/src/app/app-routing.module.ts","apps/partner-center-client/src/app/app.component.ts","apps/partner-center-client/src/app/app.component.html","apps/partner-center-client/src/lib/wootric.ts","apps/partner-center-client/src/app/core/url.service.ts","apps/partner-center-client/src/app/core/user-branding.service.ts","apps/partner-center-client/src/app/omni-search/omni-search.service.ts","apps/partner-center-client/src/app/omni-search/omni-app-icon.component.ts","apps/partner-center-client/src/app/omni-search/omni-app-icon.component.html","apps/partner-center-client/src/app/omni-search/account-group-searcher.component.ts","apps/partner-center-client/src/app/omni-search/account-group-searcher.component.html","apps/partner-center-client/src/app/omni-search/omni-search.component.ts","apps/partner-center-client/src/app/omni-search/partner-overview.component.ts","apps/partner-center-client/src/app/omni-search/partner-overview.component.html","apps/partner-center-client/src/app/omni-search/partner-switcher.component.ts","apps/partner-center-client/src/app/omni-search/partner-switcher.component.html","apps/partner-center-client/src/app/omni-search/user-switcher.component.ts","apps/partner-center-client/src/app/omni-search/user-switcher.component.html","apps/partner-center-client/src/app/common/level-badge/level-badge-store.service.ts","apps/partner-center-client/src/app/common/level-badge/level-badge.component.ts","apps/partner-center-client/src/app/common/level-badge/level-badge.component.html","apps/partner-center-client/src/app/common/level-badge/trial-badge.component.ts","apps/partner-center-client/src/app/common/level-badge/trial-badge.component.html","apps/partner-center-client/src/app/whitelabel/logo/logo.component.ts","apps/partner-center-client/src/app/whitelabel/logo/logo.component.html","apps/partner-center-client/src/app/trial-banner/trial-banner/trial-banner.component.ts","apps/partner-center-client/src/app/trial-banner/trial-banner/trial-banner.component.html","apps/partner-center-client/src/app/help-center/help-side-drawer/help-side-drawer-container/help-side-drawer-container.component.ts","apps/partner-center-client/src/app/help-center/help-side-drawer/help-side-drawer-container/help-side-drawer-container.component.html","libs/partner-center-client/billing/static/src/lib/core/billing-core.module.ts","apps/partner-center-client/src/app/billing/billing-provider/billing-provider.module.ts","apps/partner-center-client/src/app/bulk-import/bulk-import.module.ts","apps/partner-center-client/src/app/common/level-badge/level-badge.module.ts","apps/partner-center-client/src/app/common/variable-menu/variable-menu-dialog/variable-menu-mat-dialog.component.ts","apps/partner-center-client/src/app/core/url-serializer.service.ts","libs/meeting-analysis/static/src/lib/assets/i18n/en_devel.json","libs/meeting-analysis/static/src/lib/assets/i18n/meeting-analysis-i18n.module.ts","apps/partner-center-client/src/app/email-settings/email-settings.module.ts","apps/partner-center-client/src/app/trial-banner/trial-banner.module.ts","apps/partner-center-client/src/app/help-center/help-side-drawer/help-side-drawer.module.ts","apps/partner-center-client/src/app/help-center/help-center.module.ts","apps/partner-center-client/src/app/inbox/conversation-partner-center.service.ts","apps/partner-center-client/src/app/inbox/external-providers.ts","apps/partner-center-client/src/app/inbox/providers.ts","apps/partner-center-client/src/app/inbox/sms-configuration/providers.ts","apps/partner-center-client/src/app/marketing/base-template-editing/app-listing.service.ts","apps/partner-center-client/src/app/marketing/base-template-editing/template-editor-page/partner-logo.ts","apps/partner-center-client/src/app/reporting/providers.ts","apps/partner-center-client/src/app/users/user-bulk-actions/bulk-notifications-change/bulk-notifications-change.component.ts","apps/partner-center-client/src/app/users/user-bulk-actions/bulk-notifications-change/bulk-notifications-change.component.html","apps/partner-center-client/src/app/users/user-bulk-actions/bulk-tab-access-change/bulk-tab-access-change.component.ts","apps/partner-center-client/src/app/users/user-bulk-actions/bulk-tab-access-change/bulk-tab-access-change.component.html","apps/partner-center-client/src/app/users/user-bulk-actions/user-bulk-actions.module.ts","apps/partner-center-client/src/app/whitelabel/whitelabel.module.ts","apps/partner-center-client/src/app/ai-assistant/ai-assistant-constants.ts","apps/partner-center-client/src/app/ai-assistant/providers.ts","apps/partner-center-client/src/app/app.routing.strategy.ts","apps/partner-center-client/src/app/config-manager/providers.ts","apps/partner-center-client/src/app/app.module.ts","apps/partner-center-client/src/main.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { Component, inject, Inject, OnInit, signal } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { MAT_DIALOG_DATA, MatDialogModule, MatDialogRef } from '@angular/material/dialog';\nimport { AiKnowledgeService } from '../ai-knowledge.service';\nimport { AiKnowledgeI18nModule } from '../assets/i18n/ai-knowledge-i18n.module';\nimport { ApplicationListComponent } from '../app-list/application-list.component';\nimport { App } from '@vendasta/embeddings';\nimport { GalaxyLoadingSpinnerModule } from '@vendasta/galaxy/loading-spinner';\nimport { GalaxySnackbarModule, SnackbarService } from '@vendasta/galaxy/snackbar-service';\n\nexport interface DeleteCustomKnowledgeData {\n knowledgeSourceId: string;\n}\n\n@Component({\n selector: 'ai-knowledge-delete-custom-knowledge-dialog',\n imports: [\n CommonModule,\n TranslateModule,\n AiKnowledgeI18nModule,\n MatButtonModule,\n MatDialogModule,\n ApplicationListComponent,\n GalaxyLoadingSpinnerModule,\n GalaxySnackbarModule,\n ],\n providers: [AiKnowledgeService],\n templateUrl: './delete-custom-knowledge.component.html',\n})\nexport class DeleteCustomKnowledgeComponent implements OnInit {\n private readonly knowledgeService = inject(AiKnowledgeService);\n private readonly snackbarService = inject(SnackbarService);\n readonly isLoading = signal(true);\n associatedApps = signal(null);\n\n constructor(\n public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: DeleteCustomKnowledgeData,\n ) {}\n\n async ngOnInit(): Promise {\n this.associatedApps.set(await this.knowledgeService.listAllAppsForKnowledgeSource(this.data.knowledgeSourceId));\n this.isLoading.set(false);\n }\n\n cancel(): void {\n this.dialogRef.close();\n }\n\n async delete(): Promise {\n await this.knowledgeService.deleteKnowledgeSource(this.data.knowledgeSourceId);\n this.snackbarService.openSuccessSnack('DELETE_KNOWLEDGE.SUCCESSFULLY_DELETED');\n this.dialogRef.close(true);\n }\n}\n","

{{ 'DELETE_KNOWLEDGE.TITLE' | translate }}

\n\n @if (isLoading()) {\n \n } @else {\n @if (associatedApps().length > 0) {\n
{{ 'APPS_WARNING' | translate }}
\n \n } @else {\n {{ 'NO_APPS' | translate }}\n }\n }\n
\n\n \n \n\n","import { CommonModule } from '@angular/common';\nimport { Component, DestroyRef, EventEmitter, inject, Input, OnInit, signal } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { KnowledgeSource, KnowledgeSourceConfigType } from '@vendasta/embeddings';\nimport { AiKnowledgeService } from '../ai-knowledge.service';\nimport { MatIconModule } from '@angular/material/icon';\nimport { ActivatedRoute, Router, RouterModule } from '@angular/router';\nimport { MatListModule } from '@angular/material/list';\nimport { MatDialog, MatDialogConfig, MatDialogModule, MatDialogRef } from '@angular/material/dialog';\nimport { firstValueFrom, map, switchMap, take } from 'rxjs';\nimport { DeleteCustomKnowledgeComponent } from '../delete-custom-knowledge/delete-custom-knowledge.component';\nimport { MatCardModule } from '@angular/material/card';\nimport { GalaxyPageModule } from '@vendasta/galaxy/page';\nimport { KnowledgeListComponent } from '../knowledge-list/knowledge-list.component';\nimport { takeUntilDestroyed, toSignal } from '@angular/core/rxjs-interop';\nimport { SHOW_BUSINESS_PROFILE_SOURCE_TOKEN } from '../tokens';\nimport { AiKnowledgeI18nModule } from '../assets/i18n/ai-knowledge-i18n.module';\nimport { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\nimport { OpenConfirmationModalService } from '@vendasta/galaxy/confirmation-modal';\nimport { STEP_OPTION } from '../knowledge-editor/website-scrape/scraped-pages/scraped-pages.component';\nimport { AddKnowledgeComponent } from '../knowledge-editor/add-knowledge/add-knowledge.component';\nimport { StepChangeEvent } from '../knowledge-editor/common/interfaces';\nimport { WebsiteScrapeComponent } from '../knowledge-editor/website-scrape/website-scrape.component';\nimport { CustomDataComponent } from '../knowledge-editor/custom-data/custom-data.component';\nimport { BusinessProfileComponent } from '../knowledge-editor/business-profile/business-profile.component';\n\n@Component({\n selector: 'ai-knowledge-knowledge-source-management',\n imports: [\n CommonModule,\n TranslateModule,\n AiKnowledgeI18nModule,\n GalaxyPageModule,\n MatButtonModule,\n MatIconModule,\n RouterModule,\n MatListModule,\n MatCardModule,\n MatDialogModule,\n KnowledgeListComponent,\n ],\n providers: [AiKnowledgeService],\n templateUrl: './knowledge-source-management.component.html',\n styleUrls: ['./knowledge-source-management.component.scss'],\n})\nexport class KnowledgeSourceManagementComponent implements OnInit {\n @Input() previousPageTitle?: string;\n @Input() previousPageUrl?: string;\n DIALOG_WIDTH = '660px';\n SCRAPED_PAGES_STEP_OPTION = STEP_OPTION;\n private readonly dialog = inject(MatDialog);\n private readonly bpObserver = inject(BreakpointObserver);\n private readonly activeRoute = inject(ActivatedRoute);\n\n readonly knowledgeSources = signal([]);\n private readonly showBusinessProfileSource = toSignal(inject(SHOW_BUSINESS_PROFILE_SOURCE_TOKEN));\n private knowledgeService = inject(AiKnowledgeService);\n confirmationModal = inject(OpenConfirmationModalService);\n router = inject(Router);\n\n readonly isLoading = signal(true);\n\n async ngOnInit(): Promise {\n await this.refreshSources();\n const editSourceParam = this.activeRoute.snapshot.queryParamMap.get('editSource');\n if (editSourceParam) {\n const [sourceId, option] = this.sourceIdAndOptionFromEditSourceParam(editSourceParam);\n const source = this.knowledgeSources().find((s) => s.id == sourceId);\n if (source) {\n await this.editKnowledgeSource(source, option);\n }\n }\n if (this.activeRoute.snapshot.queryParamMap.get('addSource')) {\n await this.addNewKnowledgeSource();\n }\n }\n\n sourceIdAndOptionFromEditSourceParam(editSourceParam: string): [string, string] {\n const colonIndex = editSourceParam.indexOf(':');\n if (colonIndex === -1) {\n return [editSourceParam, ''];\n } else {\n return [editSourceParam.substring(0, colonIndex), editSourceParam.substring(colonIndex + 1)];\n }\n }\n\n async refreshSources(): Promise {\n this.isLoading.set(true);\n const result = await this.knowledgeService.listKnowledgeSources(\n [\n KnowledgeSourceConfigType.KNOWLEDGE_SOURCE_CONFIG_TYPE_CUSTOM_DATA,\n KnowledgeSourceConfigType.KNOWLEDGE_SOURCE_CONFIG_TYPE_WEBSITE_SCRAPE,\n ],\n { pageSize: 100 },\n );\n const knowledgeSources = result.knowledgeSources || [];\n if (this.showBusinessProfileSource()) {\n // manually insert business profile source because it may not exist yet\n const businessProfileSource = this.knowledgeService.buildBusinessProfileKnowledgeSource();\n if (businessProfileSource) {\n knowledgeSources.unshift(businessProfileSource);\n }\n }\n this.knowledgeSources.set(knowledgeSources);\n this.isLoading.set(false);\n }\n\n async addNewKnowledgeSource(): Promise {\n const conf: MatDialogConfig = {\n width: this.DIALOG_WIDTH,\n };\n\n const isSmallScreen = this.bpObserver.isMatched(Breakpoints.XSmall);\n if (isSmallScreen) {\n conf.maxWidth = '100vw';\n conf.maxHeight = '100vh';\n }\n const editor = this.dialog.open(AddKnowledgeComponent, conf);\n editor.componentInstance.componentSelected\n .pipe(takeUntilDestroyed(editor.componentInstance.destroyRef), take(1))\n .subscribe((event) => {\n this.subscribeToKnowledgeCreated(event.knowledgeCreated, event.destroyRef);\n });\n await firstValueFrom(editor.afterClosed());\n }\n\n private subscribeToKnowledgeCreated(event: EventEmitter, destroyRef: DestroyRef): void {\n event\n .pipe(\n takeUntilDestroyed(destroyRef),\n take(1),\n switchMap(() => this.refreshSources()),\n )\n .subscribe();\n }\n async editKnowledgeSource(source: KnowledgeSource, option?: string): Promise {\n const conf: MatDialogConfig = {\n width: this.DIALOG_WIDTH,\n data: {\n knowledgeSourceKey: { knowledgeSourceId: source?.id, namespace: source?.namespace },\n config: source?.config,\n stepOption: option,\n },\n };\n\n const isSmallScreen = this.bpObserver.isMatched(Breakpoints.XSmall);\n if (isSmallScreen) {\n conf.maxWidth = '100vw';\n conf.maxHeight = '100vh';\n }\n\n let editor: MatDialogRef;\n if (source.config?.websiteScrapeConfig) {\n editor = this.dialog.open(WebsiteScrapeComponent, conf);\n } else if (source.config?.customDataConfig) {\n editor = this.dialog.open(CustomDataComponent, conf);\n } else {\n editor = this.dialog.open(BusinessProfileComponent, conf);\n }\n this.setEditSourceQueryParam(source?.id, option);\n editor.componentInstance.stepChange\n .pipe(\n takeUntilDestroyed(editor.componentInstance.destroyRef),\n map((stepOption) => this.setEditSourceQueryParam(source?.id, stepOption)),\n )\n .subscribe();\n\n const navigatingAway = await firstValueFrom(editor.afterClosed());\n if (!navigatingAway) {\n this.setEditSourceQueryParam(null);\n await this.refreshSources();\n }\n }\n\n async deleteKnowledgeSource(source: KnowledgeSource): Promise {\n const result = await firstValueFrom(\n this.dialog\n .open(DeleteCustomKnowledgeComponent, {\n width: this.DIALOG_WIDTH,\n data: { knowledgeSourceId: source.id },\n })\n .afterClosed(),\n );\n if (result) {\n await this.refreshSources();\n }\n }\n\n setEditSourceQueryParam(editSource: string | null, option?: string): void {\n if (option) {\n editSource = editSource + ':' + option;\n }\n const queryParams = { editSource: editSource };\n this.router.navigate([], {\n relativeTo: this.activeRoute,\n queryParams,\n queryParamsHandling: 'merge',\n });\n }\n}\n","\n \n \n \n \n {{ 'AI_KNOWLEDGE_BASE' | translate }}\n \n\n \n
\n \n \n {{ 'MANAGE_KNOWLEDGE' | translate }}\n \n \n
\n {{ 'MANAGE_KNOWLEDGE_DESCRIPTION' | translate }}\n \n \n\n
\n \n
\n
\n
\n
\n
\n
\n
\n","import * as i0 from '@angular/core';\nimport { Injectable } from '@angular/core';\nimport * as i1 from '@angular/common/http';\nimport { HttpHeaders } from '@angular/common/http';\nimport { map } from 'rxjs/operators';\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\nvar EventType = /*#__PURE__*/function (EventType) {\n EventType[EventType[\"EVENT_TYPE_UNSPECIFIED\"] = 0] = \"EVENT_TYPE_UNSPECIFIED\";\n EventType[EventType[\"EVENT_TYPE_TYPING_STARTED\"] = 1] = \"EVENT_TYPE_TYPING_STARTED\";\n EventType[EventType[\"EVENT_TYPE_TYPING_STOPPED\"] = 2] = \"EVENT_TYPE_TYPING_STOPPED\";\n EventType[EventType[\"EVENT_TYPE_REPRESENTATIVE_JOINED\"] = 3] = \"EVENT_TYPE_REPRESENTATIVE_JOINED\";\n EventType[EventType[\"EVENT_TYPE_REPRESENTATIVE_LEFT\"] = 4] = \"EVENT_TYPE_REPRESENTATIVE_LEFT\";\n return EventType;\n}(EventType || {});\nvar MessageType = /*#__PURE__*/function (MessageType) {\n MessageType[MessageType[\"MESSAGE_TYPE_UNSPECIFIED\"] = 0] = \"MESSAGE_TYPE_UNSPECIFIED\";\n MessageType[MessageType[\"MESSAGE_TYPE_TEXT\"] = 1] = \"MESSAGE_TYPE_TEXT\";\n MessageType[MessageType[\"MESSAGE_TYPE_IMAGE\"] = 2] = \"MESSAGE_TYPE_IMAGE\";\n return MessageType;\n}(MessageType || {});\nvar UserType = /*#__PURE__*/function (UserType) {\n UserType[UserType[\"USER_TYPE_UNSPECIFIED\"] = 0] = \"USER_TYPE_UNSPECIFIED\";\n UserType[UserType[\"USER_TYPE_BOT\"] = 1] = \"USER_TYPE_BOT\";\n UserType[UserType[\"USER_TYPE_HUMAN\"] = 2] = \"USER_TYPE_HUMAN\";\n return UserType;\n}(UserType || {});\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\nvar MetricType = /*#__PURE__*/function (MetricType) {\n MetricType[MetricType[\"NONE\"] = 0] = \"NONE\";\n MetricType[MetricType[\"QUERIES_DIRECT\"] = 1] = \"QUERIES_DIRECT\";\n MetricType[MetricType[\"QUERIES_INDIRECT\"] = 2] = \"QUERIES_INDIRECT\";\n MetricType[MetricType[\"VIEWS_MAPS\"] = 3] = \"VIEWS_MAPS\";\n MetricType[MetricType[\"VIEWS_SEARCH\"] = 4] = \"VIEWS_SEARCH\";\n MetricType[MetricType[\"ACTIONS_WEBSITE\"] = 5] = \"ACTIONS_WEBSITE\";\n MetricType[MetricType[\"ACTIONS_PHONE\"] = 6] = \"ACTIONS_PHONE\";\n MetricType[MetricType[\"ACTIONS_DRIVING_DIRECTIONS\"] = 7] = \"ACTIONS_DRIVING_DIRECTIONS\";\n MetricType[MetricType[\"QUERIES_CHAIN\"] = 8] = \"QUERIES_CHAIN\";\n MetricType[MetricType[\"PHOTOS_VIEWS_MERCHANT\"] = 9] = \"PHOTOS_VIEWS_MERCHANT\";\n MetricType[MetricType[\"PHOTOS_VIEWS_CUSTOMERS\"] = 10] = \"PHOTOS_VIEWS_CUSTOMERS\";\n MetricType[MetricType[\"PHOTOS_COUNT_MERCHANT\"] = 11] = \"PHOTOS_COUNT_MERCHANT\";\n MetricType[MetricType[\"PHOTOS_COUNT_CUSTOMERS\"] = 12] = \"PHOTOS_COUNT_CUSTOMERS\";\n MetricType[MetricType[\"LOCAL_POST_VIEWS_SEARCH\"] = 13] = \"LOCAL_POST_VIEWS_SEARCH\";\n MetricType[MetricType[\"LOCAL_POST_ACTIONS_CALL_TO_ACTION\"] = 14] = \"LOCAL_POST_ACTIONS_CALL_TO_ACTION\";\n return MetricType;\n}(MetricType || {});\nvar Period = /*#__PURE__*/function (Period) {\n Period[Period[\"DAY\"] = 0] = \"DAY\";\n Period[Period[\"WEEK\"] = 1] = \"WEEK\";\n Period[Period[\"MONTH\"] = 2] = \"MONTH\";\n return Period;\n}(Period || {});\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums Index.\n// *********************************\n\nfunction enumStringToValue$8(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass FieldMask {\n static fromProto(proto) {\n let m = new FieldMask();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.paths !== 'undefined') {\n toReturn['paths'] = this.paths;\n }\n return toReturn;\n }\n}\nfunction enumStringToValue$7(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass GoogleDate {\n static fromProto(proto) {\n let m = new GoogleDate();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.year !== 'undefined') {\n toReturn['year'] = this.year;\n }\n if (typeof this.month !== 'undefined') {\n toReturn['month'] = this.month;\n }\n if (typeof this.day !== 'undefined') {\n toReturn['day'] = this.day;\n }\n return toReturn;\n }\n}\nfunction enumStringToValue$6(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass PostInsightsHistory {\n static fromProto(proto) {\n let m = new PostInsightsHistory();\n m = Object.assign(m, proto);\n if (proto.views) {\n m.views = parseInt(proto.views, 10);\n }\n if (proto.callToActionClicks) {\n m.callToActionClicks = parseInt(proto.callToActionClicks, 10);\n }\n if (proto.postedDateTime) {\n m.postedDateTime = new Date(proto.postedDateTime);\n }\n if (proto.statsDateTime) {\n m.statsDateTime = new Date(proto.statsDateTime);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.socialProfileId !== 'undefined') {\n toReturn['socialProfileId'] = this.socialProfileId;\n }\n if (typeof this.internalPostId !== 'undefined') {\n toReturn['internalPostId'] = this.internalPostId;\n }\n if (typeof this.views !== 'undefined') {\n toReturn['views'] = this.views;\n }\n if (typeof this.callToActionClicks !== 'undefined') {\n toReturn['callToActionClicks'] = this.callToActionClicks;\n }\n if (typeof this.postedDateTime !== 'undefined' && this.postedDateTime !== null) {\n toReturn['postedDateTime'] = 'toApiJson' in this.postedDateTime ? this.postedDateTime.toApiJson() : this.postedDateTime;\n }\n if (typeof this.statsDateTime !== 'undefined' && this.statsDateTime !== null) {\n toReturn['statsDateTime'] = 'toApiJson' in this.statsDateTime ? this.statsDateTime.toApiJson() : this.statsDateTime;\n }\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n return toReturn;\n }\n}\nfunction enumStringToValue$5(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass Answer {\n static fromProto(proto) {\n let m = new Answer();\n m = Object.assign(m, proto);\n if (proto.upVoteCount) {\n m.upVoteCount = parseInt(proto.upVoteCount, 10);\n }\n if (proto.published) {\n m.published = new Date(proto.published);\n }\n if (proto.created) {\n m.created = new Date(proto.created);\n }\n if (proto.modified) {\n m.modified = new Date(proto.modified);\n }\n if (proto.previousVersions) {\n m.previousVersions = proto.previousVersions.map(Answer.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.locationId !== 'undefined') {\n toReturn['locationId'] = this.locationId;\n }\n if (typeof this.questionId !== 'undefined') {\n toReturn['questionId'] = this.questionId;\n }\n if (typeof this.version !== 'undefined') {\n toReturn['version'] = this.version;\n }\n if (typeof this.locationPathName !== 'undefined') {\n toReturn['locationPathName'] = this.locationPathName;\n }\n if (typeof this.text !== 'undefined') {\n toReturn['text'] = this.text;\n }\n if (typeof this.author !== 'undefined') {\n toReturn['author'] = this.author;\n }\n if (typeof this.authorPhotoUrl !== 'undefined') {\n toReturn['authorPhotoUrl'] = this.authorPhotoUrl;\n }\n if (typeof this.authorType !== 'undefined') {\n toReturn['authorType'] = this.authorType;\n }\n if (typeof this.answerId !== 'undefined') {\n toReturn['answerId'] = this.answerId;\n }\n if (typeof this.upVoteCount !== 'undefined') {\n toReturn['upVoteCount'] = this.upVoteCount;\n }\n if (typeof this.published !== 'undefined' && this.published !== null) {\n toReturn['published'] = 'toApiJson' in this.published ? this.published.toApiJson() : this.published;\n }\n if (typeof this.created !== 'undefined' && this.created !== null) {\n toReturn['created'] = 'toApiJson' in this.created ? this.created.toApiJson() : this.created;\n }\n if (typeof this.modified !== 'undefined' && this.modified !== null) {\n toReturn['modified'] = 'toApiJson' in this.modified ? this.modified.toApiJson() : this.modified;\n }\n if (typeof this.previousVersions !== 'undefined' && this.previousVersions !== null) {\n toReturn['previousVersions'] = 'toApiJson' in this.previousVersions ? this.previousVersions.toApiJson() : this.previousVersions;\n }\n return toReturn;\n }\n}\nfunction enumStringToValue$4(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass Question {\n static fromProto(proto) {\n let m = new Question();\n m = Object.assign(m, proto);\n if (proto.totalAnswerCount) {\n m.totalAnswerCount = parseInt(proto.totalAnswerCount, 10);\n }\n if (proto.upVoteCount) {\n m.upVoteCount = parseInt(proto.upVoteCount, 10);\n }\n if (proto.published) {\n m.published = new Date(proto.published);\n }\n if (proto.created) {\n m.created = new Date(proto.created);\n }\n if (proto.modified) {\n m.modified = new Date(proto.modified);\n }\n if (proto.answers) {\n m.answers = proto.answers.map(Answer.fromProto);\n }\n if (proto.previousVersions) {\n m.previousVersions = proto.previousVersions.map(Question.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.locationId !== 'undefined') {\n toReturn['locationId'] = this.locationId;\n }\n if (typeof this.questionId !== 'undefined') {\n toReturn['questionId'] = this.questionId;\n }\n if (typeof this.version !== 'undefined') {\n toReturn['version'] = this.version;\n }\n if (typeof this.locationPathName !== 'undefined') {\n toReturn['locationPathName'] = this.locationPathName;\n }\n if (typeof this.text !== 'undefined') {\n toReturn['text'] = this.text;\n }\n if (typeof this.author !== 'undefined') {\n toReturn['author'] = this.author;\n }\n if (typeof this.authorPhotoUrl !== 'undefined') {\n toReturn['authorPhotoUrl'] = this.authorPhotoUrl;\n }\n if (typeof this.authorType !== 'undefined') {\n toReturn['authorType'] = this.authorType;\n }\n if (typeof this.totalAnswerCount !== 'undefined') {\n toReturn['totalAnswerCount'] = this.totalAnswerCount;\n }\n if (typeof this.upVoteCount !== 'undefined') {\n toReturn['upVoteCount'] = this.upVoteCount;\n }\n if (typeof this.published !== 'undefined' && this.published !== null) {\n toReturn['published'] = 'toApiJson' in this.published ? this.published.toApiJson() : this.published;\n }\n if (typeof this.created !== 'undefined' && this.created !== null) {\n toReturn['created'] = 'toApiJson' in this.created ? this.created.toApiJson() : this.created;\n }\n if (typeof this.modified !== 'undefined' && this.modified !== null) {\n toReturn['modified'] = 'toApiJson' in this.modified ? this.modified.toApiJson() : this.modified;\n }\n if (typeof this.answers !== 'undefined' && this.answers !== null) {\n toReturn['answers'] = 'toApiJson' in this.answers ? this.answers.toApiJson() : this.answers;\n }\n if (typeof this.previousVersions !== 'undefined' && this.previousVersions !== null) {\n toReturn['previousVersions'] = 'toApiJson' in this.previousVersions ? this.previousVersions.toApiJson() : this.previousVersions;\n }\n return toReturn;\n }\n}\nfunction enumStringToValue$3(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass CreateEventRequest {\n static fromProto(proto) {\n let m = new CreateEventRequest();\n m = Object.assign(m, proto);\n if (proto.eventType) {\n m.eventType = enumStringToValue$3(EventType, proto.eventType);\n }\n if (proto.user) {\n m.user = User.fromProto(proto.user);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.eventType !== 'undefined') {\n toReturn['eventType'] = this.eventType;\n }\n if (typeof this.user !== 'undefined' && this.user !== null) {\n toReturn['user'] = 'toApiJson' in this.user ? this.user.toApiJson() : this.user;\n }\n if (typeof this.gmbConversationId !== 'undefined') {\n toReturn['gmbConversationId'] = this.gmbConversationId;\n }\n return toReturn;\n }\n}\nclass CreateEventResponse {\n static fromProto(proto) {\n let m = new CreateEventResponse();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.eventId !== 'undefined') {\n toReturn['eventId'] = this.eventId;\n }\n return toReturn;\n }\n}\nclass Image {\n static fromProto(proto) {\n let m = new Image();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.fileUrl !== 'undefined') {\n toReturn['fileUrl'] = this.fileUrl;\n }\n return toReturn;\n }\n}\nclass SendMessageRequest {\n static fromProto(proto) {\n let m = new SendMessageRequest();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = User.fromProto(proto.sender);\n }\n if (proto.image) {\n m.image = Image.fromProto(proto.image);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.gmbConversationId !== 'undefined') {\n toReturn['gmbConversationId'] = this.gmbConversationId;\n }\n if (typeof this.sender !== 'undefined' && this.sender !== null) {\n toReturn['sender'] = 'toApiJson' in this.sender ? this.sender.toApiJson() : this.sender;\n }\n if (typeof this.image !== 'undefined' && this.image !== null) {\n toReturn['image'] = 'toApiJson' in this.image ? this.image.toApiJson() : this.image;\n }\n if (typeof this.text !== 'undefined') {\n toReturn['text'] = this.text;\n }\n return toReturn;\n }\n}\nclass SendMessageResponse {\n static fromProto(proto) {\n let m = new SendMessageResponse();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.messageId !== 'undefined') {\n toReturn['messageId'] = this.messageId;\n }\n return toReturn;\n }\n}\nclass User {\n static fromProto(proto) {\n let m = new User();\n m = Object.assign(m, proto);\n if (proto.userType) {\n m.userType = enumStringToValue$3(UserType, proto.userType);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.userName !== 'undefined') {\n toReturn['userName'] = this.userName;\n }\n if (typeof this.userAvatarUrl !== 'undefined') {\n toReturn['userAvatarUrl'] = this.userAvatarUrl;\n }\n if (typeof this.userType !== 'undefined') {\n toReturn['userType'] = this.userType;\n }\n return toReturn;\n }\n}\nfunction enumStringToValue$2(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass CanEnableBusinessCommunicationsRequest {\n static fromProto(proto) {\n let m = new CanEnableBusinessCommunicationsRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.socialProfileId !== 'undefined') {\n toReturn['socialProfileId'] = this.socialProfileId;\n }\n return toReturn;\n }\n}\nclass CanEnableBusinessCommunicationsResponse {\n static fromProto(proto) {\n let m = new CanEnableBusinessCommunicationsResponse();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.hasRequiredAccessScopes !== 'undefined') {\n toReturn['hasRequiredAccessScopes'] = this.hasRequiredAccessScopes;\n }\n return toReturn;\n }\n}\nclass ConnectBusinessCommunicationsRequest {\n static fromProto(proto) {\n let m = new ConnectBusinessCommunicationsRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.socialProfileId !== 'undefined') {\n toReturn['socialProfileId'] = this.socialProfileId;\n }\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n return toReturn;\n }\n}\nclass GetBusinessLaunchStatusRequest {\n static fromProto(proto) {\n let m = new GetBusinessLaunchStatusRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n return toReturn;\n }\n}\nclass GetBusinessLaunchStatusResponse {\n static fromProto(proto) {\n let m = new GetBusinessLaunchStatusResponse();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.isLaunched !== 'undefined') {\n toReturn['isLaunched'] = this.isLaunched;\n }\n return toReturn;\n }\n}\nclass UnlaunchBusinessCommunicationsAgentRequest {\n static fromProto(proto) {\n let m = new UnlaunchBusinessCommunicationsAgentRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n return toReturn;\n }\n}\nfunction enumStringToValue$1(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass CalculateInsightsByTimePeriodRequest {\n static fromProto(proto) {\n let m = new CalculateInsightsByTimePeriodRequest();\n m = Object.assign(m, proto);\n if (proto.startDate) {\n m.startDate = new Date(proto.startDate);\n }\n if (proto.endDate) {\n m.endDate = new Date(proto.endDate);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.startDate !== 'undefined' && this.startDate !== null) {\n toReturn['startDate'] = 'toApiJson' in this.startDate ? this.startDate.toApiJson() : this.startDate;\n }\n if (typeof this.endDate !== 'undefined' && this.endDate !== null) {\n toReturn['endDate'] = 'toApiJson' in this.endDate ? this.endDate.toApiJson() : this.endDate;\n }\n return toReturn;\n }\n}\nclass CalculateInsightsByTimePeriodResponse {\n static fromProto(proto) {\n let m = new CalculateInsightsByTimePeriodResponse();\n m = Object.assign(m, proto);\n if (proto.stats) {\n m.stats = proto.stats.map(InsightsStat.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.stats !== 'undefined' && this.stats !== null) {\n toReturn['stats'] = 'toApiJson' in this.stats ? this.stats.toApiJson() : this.stats;\n }\n return toReturn;\n }\n}\nclass CanRespondToReviewRequest {\n static fromProto(proto) {\n let m = new CanRespondToReviewRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.reviewId !== 'undefined') {\n toReturn['reviewId'] = this.reviewId;\n }\n return toReturn;\n }\n}\nclass CanRespondToReviewResponse {\n static fromProto(proto) {\n let m = new CanRespondToReviewResponse();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.canPublish !== 'undefined') {\n toReturn['canPublish'] = this.canPublish;\n }\n if (typeof this.addLink !== 'undefined') {\n toReturn['addLink'] = this.addLink;\n }\n if (typeof this.message !== 'undefined') {\n toReturn['message'] = this.message;\n }\n return toReturn;\n }\n}\nclass ConnectRequest {\n static fromProto(proto) {\n let m = new ConnectRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.googleUserId !== 'undefined') {\n toReturn['googleUserId'] = this.googleUserId;\n }\n if (typeof this.locationPathName !== 'undefined') {\n toReturn['locationPathName'] = this.locationPathName;\n }\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n return toReturn;\n }\n}\nclass ConnectResponse {\n static fromProto(proto) {\n let m = new ConnectResponse();\n m = Object.assign(m, proto);\n if (proto.location) {\n m.location = Location.fromProto(proto.location);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.location !== 'undefined' && this.location !== null) {\n toReturn['location'] = 'toApiJson' in this.location ? this.location.toApiJson() : this.location;\n }\n return toReturn;\n }\n}\nclass DisconnectRequest {\n static fromProto(proto) {\n let m = new DisconnectRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.googleUserId !== 'undefined') {\n toReturn['googleUserId'] = this.googleUserId;\n }\n if (typeof this.locationPathName !== 'undefined') {\n toReturn['locationPathName'] = this.locationPathName;\n }\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n return toReturn;\n }\n}\nclass EnableDisableSyncRequest {\n static fromProto(proto) {\n let m = new EnableDisableSyncRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.googleUserId !== 'undefined') {\n toReturn['googleUserId'] = this.googleUserId;\n }\n if (typeof this.locationPathName !== 'undefined') {\n toReturn['locationPathName'] = this.locationPathName;\n }\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.syncSettingFlag !== 'undefined') {\n toReturn['syncSettingFlag'] = this.syncSettingFlag;\n }\n return toReturn;\n }\n}\nclass EnableDisableSyncResponse {\n static fromProto(proto) {\n let m = new EnableDisableSyncResponse();\n m = Object.assign(m, proto);\n if (proto.location) {\n m.location = Location.fromProto(proto.location);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.location !== 'undefined' && this.location !== null) {\n toReturn['location'] = 'toApiJson' in this.location ? this.location.toApiJson() : this.location;\n }\n return toReturn;\n }\n}\nclass GetAsSocialServiceRequest {\n static fromProto(proto) {\n let m = new GetAsSocialServiceRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n return toReturn;\n }\n}\nclass GetAsSocialServiceResponse {\n static fromProto(proto) {\n let m = new GetAsSocialServiceResponse();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.serviceType !== 'undefined') {\n toReturn['serviceType'] = this.serviceType;\n }\n if (typeof this.ssid !== 'undefined') {\n toReturn['ssid'] = this.ssid;\n }\n if (typeof this.googleUserId !== 'undefined') {\n toReturn['googleUserId'] = this.googleUserId;\n }\n if (typeof this.agid !== 'undefined') {\n toReturn['agid'] = this.agid;\n }\n if (typeof this.profileUrl !== 'undefined') {\n toReturn['profileUrl'] = this.profileUrl;\n }\n if (typeof this.socialSyncFlag !== 'undefined') {\n toReturn['socialSyncFlag'] = this.socialSyncFlag;\n }\n if (typeof this.spid !== 'undefined') {\n toReturn['spid'] = this.spid;\n }\n if (typeof this.isAuthenticated !== 'undefined') {\n toReturn['isAuthenticated'] = this.isAuthenticated;\n }\n if (typeof this.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n return toReturn;\n }\n}\nclass GetConnectionRequest {\n static fromProto(proto) {\n let m = new GetConnectionRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.googleUserId !== 'undefined') {\n toReturn['googleUserId'] = this.googleUserId;\n }\n if (typeof this.locationPathName !== 'undefined') {\n toReturn['locationPathName'] = this.locationPathName;\n }\n if (typeof this.refreshFromGoogleFlag !== 'undefined') {\n toReturn['refreshFromGoogleFlag'] = this.refreshFromGoogleFlag;\n }\n return toReturn;\n }\n}\nclass GetConnectionResponse {\n static fromProto(proto) {\n let m = new GetConnectionResponse();\n m = Object.assign(m, proto);\n if (proto.location) {\n m.location = Location.fromProto(proto.location);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.location !== 'undefined' && this.location !== null) {\n toReturn['location'] = 'toApiJson' in this.location ? this.location.toApiJson() : this.location;\n }\n return toReturn;\n }\n}\nclass GetConnectionsRequest {\n static fromProto(proto) {\n let m = new GetConnectionsRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.googleUserId !== 'undefined') {\n toReturn['googleUserId'] = this.googleUserId;\n }\n if (typeof this.locationPathName !== 'undefined') {\n toReturn['locationPathName'] = this.locationPathName;\n }\n if (typeof this.refreshFromGoogleFlag !== 'undefined') {\n toReturn['refreshFromGoogleFlag'] = this.refreshFromGoogleFlag;\n }\n return toReturn;\n }\n}\nclass GetConnectionsResponse {\n static fromProto(proto) {\n let m = new GetConnectionsResponse();\n m = Object.assign(m, proto);\n if (proto.locations) {\n m.locations = proto.locations.map(Location.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.locations !== 'undefined' && this.locations !== null) {\n toReturn['locations'] = 'toApiJson' in this.locations ? this.locations.toApiJson() : this.locations;\n }\n return toReturn;\n }\n}\nclass GetGoogleUserRequest {\n static fromProto(proto) {\n let m = new GetGoogleUserRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.googleUserId !== 'undefined') {\n toReturn['googleUserId'] = this.googleUserId;\n }\n return toReturn;\n }\n}\nclass GetGoogleUserResponse {\n static fromProto(proto) {\n let m = new GetGoogleUserResponse();\n m = Object.assign(m, proto);\n if (proto.user) {\n m.user = GoogleUser.fromProto(proto.user);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.user !== 'undefined' && this.user !== null) {\n toReturn['user'] = 'toApiJson' in this.user ? this.user.toApiJson() : this.user;\n }\n return toReturn;\n }\n}\nclass GoogleUser {\n static fromProto(proto) {\n let m = new GoogleUser();\n m = Object.assign(m, proto);\n if (proto.expiryDateTime) {\n m.expiryDateTime = new Date(proto.expiryDateTime);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.socialProfileId !== 'undefined') {\n toReturn['socialProfileId'] = this.socialProfileId;\n }\n if (typeof this.userId !== 'undefined') {\n toReturn['userId'] = this.userId;\n }\n if (typeof this.socialServiceId !== 'undefined') {\n toReturn['socialServiceId'] = this.socialServiceId;\n }\n if (typeof this.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n if (typeof this.accessToken !== 'undefined') {\n toReturn['accessToken'] = this.accessToken;\n }\n if (typeof this.refreshToken !== 'undefined') {\n toReturn['refreshToken'] = this.refreshToken;\n }\n if (typeof this.isTokenBroken !== 'undefined') {\n toReturn['isTokenBroken'] = this.isTokenBroken;\n }\n if (typeof this.expiryDateTime !== 'undefined' && this.expiryDateTime !== null) {\n toReturn['expiryDateTime'] = 'toApiJson' in this.expiryDateTime ? this.expiryDateTime.toApiJson() : this.expiryDateTime;\n }\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n return toReturn;\n }\n}\nclass InsightsStat {\n static fromProto(proto) {\n let m = new InsightsStat();\n m = Object.assign(m, proto);\n if (proto.currentValue) {\n m.currentValue = parseInt(proto.currentValue, 10);\n }\n if (proto.change) {\n m.change = parseInt(proto.change, 10);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.currentValue !== 'undefined') {\n toReturn['currentValue'] = this.currentValue;\n }\n if (typeof this.change !== 'undefined') {\n toReturn['change'] = this.change;\n }\n if (typeof this.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n return toReturn;\n }\n}\nclass Location {\n static fromProto(proto) {\n let m = new Location();\n m = Object.assign(m, proto);\n if (proto.locationSyncSucceededOn) {\n m.locationSyncSucceededOn = new Date(proto.locationSyncSucceededOn);\n }\n if (proto.openStatusSyncSucceededOn) {\n m.openStatusSyncSucceededOn = new Date(proto.openStatusSyncSucceededOn);\n }\n if (proto.syncLastAttemptedOn) {\n m.syncLastAttemptedOn = new Date(proto.syncLastAttemptedOn);\n }\n if (proto.created) {\n m.created = new Date(proto.created);\n }\n if (proto.modified) {\n m.modified = new Date(proto.modified);\n }\n if (proto.deleted) {\n m.deleted = new Date(proto.deleted);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.socialProfileId !== 'undefined') {\n toReturn['socialProfileId'] = this.socialProfileId;\n }\n if (typeof this.address !== 'undefined') {\n toReturn['address'] = this.address;\n }\n if (typeof this.displayName !== 'undefined') {\n toReturn['displayName'] = this.displayName;\n }\n if (typeof this.googleReverify !== 'undefined') {\n toReturn['googleReverify'] = this.googleReverify;\n }\n if (typeof this.googleVerified !== 'undefined') {\n toReturn['googleVerified'] = this.googleVerified;\n }\n if (typeof this.isLocalPostApiDisabled !== 'undefined') {\n toReturn['isLocalPostApiDisabled'] = this.isLocalPostApiDisabled;\n }\n if (typeof this.isMissing !== 'undefined') {\n toReturn['isMissing'] = this.isMissing;\n }\n if (typeof this.isTokenBroken !== 'undefined') {\n toReturn['isTokenBroken'] = this.isTokenBroken;\n }\n if (typeof this.isVerified !== 'undefined') {\n toReturn['isVerified'] = this.isVerified;\n }\n if (typeof this.locationPathName !== 'undefined') {\n toReturn['locationPathName'] = this.locationPathName;\n }\n if (typeof this.logoImageId !== 'undefined') {\n toReturn['logoImageId'] = this.logoImageId;\n }\n if (typeof this.mapsPlaceId !== 'undefined') {\n toReturn['mapsPlaceId'] = this.mapsPlaceId;\n }\n if (typeof this.primaryImageId !== 'undefined') {\n toReturn['primaryImageId'] = this.primaryImageId;\n }\n if (typeof this.syncSettingFlag !== 'undefined') {\n toReturn['syncSettingFlag'] = this.syncSettingFlag;\n }\n if (typeof this.cannotSyncReasons !== 'undefined') {\n toReturn['cannotSyncReasons'] = this.cannotSyncReasons;\n }\n if (typeof this.serviceAreaPlaceId !== 'undefined') {\n toReturn['serviceAreaPlaceId'] = this.serviceAreaPlaceId;\n }\n if (typeof this.locationSyncSucceededOn !== 'undefined' && this.locationSyncSucceededOn !== null) {\n toReturn['locationSyncSucceededOn'] = 'toApiJson' in this.locationSyncSucceededOn ? this.locationSyncSucceededOn.toApiJson() : this.locationSyncSucceededOn;\n }\n if (typeof this.openStatusSyncSucceededOn !== 'undefined' && this.openStatusSyncSucceededOn !== null) {\n toReturn['openStatusSyncSucceededOn'] = 'toApiJson' in this.openStatusSyncSucceededOn ? this.openStatusSyncSucceededOn.toApiJson() : this.openStatusSyncSucceededOn;\n }\n if (typeof this.syncLastAttemptedOn !== 'undefined' && this.syncLastAttemptedOn !== null) {\n toReturn['syncLastAttemptedOn'] = 'toApiJson' in this.syncLastAttemptedOn ? this.syncLastAttemptedOn.toApiJson() : this.syncLastAttemptedOn;\n }\n if (typeof this.created !== 'undefined' && this.created !== null) {\n toReturn['created'] = 'toApiJson' in this.created ? this.created.toApiJson() : this.created;\n }\n if (typeof this.modified !== 'undefined' && this.modified !== null) {\n toReturn['modified'] = 'toApiJson' in this.modified ? this.modified.toApiJson() : this.modified;\n }\n if (typeof this.deleted !== 'undefined' && this.deleted !== null) {\n toReturn['deleted'] = 'toApiJson' in this.deleted ? this.deleted.toApiJson() : this.deleted;\n }\n return toReturn;\n }\n}\nclass QAndAAccountData {\n static fromProto(proto) {\n let m = new QAndAAccountData();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.socialProfileId !== 'undefined') {\n toReturn['socialProfileId'] = this.socialProfileId;\n }\n return toReturn;\n }\n}\nfunction enumStringToValue(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass AccountLocation {\n static fromProto(proto) {\n let m = new AccountLocation();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.googleAccountId !== 'undefined') {\n toReturn['googleAccountId'] = this.googleAccountId;\n }\n if (typeof this.googleLocationId !== 'undefined') {\n toReturn['googleLocationId'] = this.googleLocationId;\n }\n return toReturn;\n }\n}\nclass CreateAnswerRequest {\n static fromProto(proto) {\n let m = new CreateAnswerRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.socialProfileId !== 'undefined') {\n toReturn['socialProfileId'] = this.socialProfileId;\n }\n if (typeof this.locationPathName !== 'undefined') {\n toReturn['locationPathName'] = this.locationPathName;\n }\n if (typeof this.questionId !== 'undefined') {\n toReturn['questionId'] = this.questionId;\n }\n if (typeof this.text !== 'undefined') {\n toReturn['text'] = this.text;\n }\n return toReturn;\n }\n}\nclass CreateAnswerResponse {\n static fromProto(proto) {\n let m = new CreateAnswerResponse();\n m = Object.assign(m, proto);\n if (proto.answer) {\n m.answer = Answer.fromProto(proto.answer);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.answer !== 'undefined' && this.answer !== null) {\n toReturn['answer'] = 'toApiJson' in this.answer ? this.answer.toApiJson() : this.answer;\n }\n return toReturn;\n }\n}\nclass CreateQuestionRequest {\n static fromProto(proto) {\n let m = new CreateQuestionRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.socialProfileId !== 'undefined') {\n toReturn['socialProfileId'] = this.socialProfileId;\n }\n if (typeof this.locationPathName !== 'undefined') {\n toReturn['locationPathName'] = this.locationPathName;\n }\n if (typeof this.text !== 'undefined') {\n toReturn['text'] = this.text;\n }\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n return toReturn;\n }\n}\nclass CreateQuestionResponse {\n static fromProto(proto) {\n let m = new CreateQuestionResponse();\n m = Object.assign(m, proto);\n if (proto.question) {\n m.question = Question.fromProto(proto.question);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.question !== 'undefined' && this.question !== null) {\n toReturn['question'] = 'toApiJson' in this.question ? this.question.toApiJson() : this.question;\n }\n return toReturn;\n }\n}\nclass DeleteAccountLocationRequest {\n static fromProto(proto) {\n let m = new DeleteAccountLocationRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n return toReturn;\n }\n}\nclass DeletePostRequest {\n static fromProto(proto) {\n let m = new DeletePostRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.accessToken !== 'undefined') {\n toReturn['accessToken'] = this.accessToken;\n }\n if (typeof this.postId !== 'undefined') {\n toReturn['postId'] = this.postId;\n }\n return toReturn;\n }\n}\nclass GetMultiAccountLocationRequest {\n static fromProto(proto) {\n let m = new GetMultiAccountLocationRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.accountGroupIds !== 'undefined') {\n toReturn['accountGroupIds'] = this.accountGroupIds;\n }\n return toReturn;\n }\n}\nclass GetMultiAccountLocationResponse {\n static fromProto(proto) {\n let m = new GetMultiAccountLocationResponse();\n m = Object.assign(m, proto);\n if (proto.accountLocations) {\n m.accountLocations = proto.accountLocations.map(AccountLocation.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.accountLocations !== 'undefined' && this.accountLocations !== null) {\n toReturn['accountLocations'] = 'toApiJson' in this.accountLocations ? this.accountLocations.toApiJson() : this.accountLocations;\n }\n return toReturn;\n }\n}\nclass GetMultiQuestionsRequest {\n static fromProto(proto) {\n let m = new GetMultiQuestionsRequest();\n m = Object.assign(m, proto);\n if (proto.questionIds) {\n m.questionIds = proto.questionIds.map(QuestionIdentifier.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.questionIds !== 'undefined' && this.questionIds !== null) {\n toReturn['questionIds'] = 'toApiJson' in this.questionIds ? this.questionIds.toApiJson() : this.questionIds;\n }\n if (typeof this.includeAnswers !== 'undefined') {\n toReturn['includeAnswers'] = this.includeAnswers;\n }\n return toReturn;\n }\n}\nclass GetMultiQuestionsResponse {\n static fromProto(proto) {\n let m = new GetMultiQuestionsResponse();\n m = Object.assign(m, proto);\n if (proto.questions) {\n m.questions = proto.questions.map(Question.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.questions !== 'undefined' && this.questions !== null) {\n toReturn['questions'] = 'toApiJson' in this.questions ? this.questions.toApiJson() : this.questions;\n }\n return toReturn;\n }\n}\nclass GetMultiTimeRangeRequest {\n static fromProto(proto) {\n let m = new GetMultiTimeRangeRequest();\n m = Object.assign(m, proto);\n if (proto.resourceIds) {\n m.resourceIds = proto.resourceIds.map(ResourceId.fromProto);\n }\n if (proto.startTime) {\n m.startTime = new Date(proto.startTime);\n }\n if (proto.endTime) {\n m.endTime = new Date(proto.endTime);\n }\n if (proto.metricTypes) {\n m.metricTypes = proto.metricTypes.map(v => enumStringToValue(MetricType, v));\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.resourceIds !== 'undefined' && this.resourceIds !== null) {\n toReturn['resourceIds'] = 'toApiJson' in this.resourceIds ? this.resourceIds.toApiJson() : this.resourceIds;\n }\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.startTime !== 'undefined' && this.startTime !== null) {\n toReturn['startTime'] = 'toApiJson' in this.startTime ? this.startTime.toApiJson() : this.startTime;\n }\n if (typeof this.endTime !== 'undefined' && this.endTime !== null) {\n toReturn['endTime'] = 'toApiJson' in this.endTime ? this.endTime.toApiJson() : this.endTime;\n }\n if (typeof this.metricTypes !== 'undefined') {\n toReturn['metricTypes'] = this.metricTypes;\n }\n if (typeof this.delta !== 'undefined') {\n toReturn['delta'] = this.delta;\n }\n if (typeof this.total !== 'undefined') {\n toReturn['total'] = this.total;\n }\n if (typeof this.overTime !== 'undefined') {\n toReturn['overTime'] = this.overTime;\n }\n return toReturn;\n }\n}\nclass GetMultiTimeRangeResponse {\n static fromProto(proto) {\n let m = new GetMultiTimeRangeResponse();\n m = Object.assign(m, proto);\n if (proto.resourceInsights) {\n m.resourceInsights = proto.resourceInsights.map(GetMultiTimeRangeResponseInsightsContainer.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.resourceInsights !== 'undefined' && this.resourceInsights !== null) {\n toReturn['resourceInsights'] = 'toApiJson' in this.resourceInsights ? this.resourceInsights.toApiJson() : this.resourceInsights;\n }\n return toReturn;\n }\n}\nclass GetQuestionAnswerStatsRequest {\n static fromProto(proto) {\n let m = new GetQuestionAnswerStatsRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.locationId !== 'undefined') {\n toReturn['locationId'] = this.locationId;\n }\n return toReturn;\n }\n}\nclass GetQuestionAnswerStatsResponse {\n static fromProto(proto) {\n let m = new GetQuestionAnswerStatsResponse();\n m = Object.assign(m, proto);\n if (proto.unanswered) {\n m.unanswered = parseInt(proto.unanswered, 10);\n }\n if (proto.answeredByOwner) {\n m.answeredByOwner = parseInt(proto.answeredByOwner, 10);\n }\n if (proto.totalQuestions) {\n m.totalQuestions = parseInt(proto.totalQuestions, 10);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.unanswered !== 'undefined') {\n toReturn['unanswered'] = this.unanswered;\n }\n if (typeof this.answeredByOwner !== 'undefined') {\n toReturn['answeredByOwner'] = this.answeredByOwner;\n }\n if (typeof this.totalQuestions !== 'undefined') {\n toReturn['totalQuestions'] = this.totalQuestions;\n }\n return toReturn;\n }\n}\nclass GetQuestionRequest {\n static fromProto(proto) {\n let m = new GetQuestionRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.locationId !== 'undefined') {\n toReturn['locationId'] = this.locationId;\n }\n if (typeof this.questionId !== 'undefined') {\n toReturn['questionId'] = this.questionId;\n }\n if (typeof this.includeAnswers !== 'undefined') {\n toReturn['includeAnswers'] = this.includeAnswers;\n }\n if (typeof this.onlyLatestVersion !== 'undefined') {\n toReturn['onlyLatestVersion'] = this.onlyLatestVersion;\n }\n return toReturn;\n }\n}\nclass GetQuestionResponse {\n static fromProto(proto) {\n let m = new GetQuestionResponse();\n m = Object.assign(m, proto);\n if (proto.question) {\n m.question = Question.fromProto(proto.question);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.question !== 'undefined' && this.question !== null) {\n toReturn['question'] = 'toApiJson' in this.question ? this.question.toApiJson() : this.question;\n }\n return toReturn;\n }\n}\nclass GetTimeRangeRequest {\n static fromProto(proto) {\n let m = new GetTimeRangeRequest();\n m = Object.assign(m, proto);\n if (proto.startTime) {\n m.startTime = new Date(proto.startTime);\n }\n if (proto.endTime) {\n m.endTime = new Date(proto.endTime);\n }\n if (proto.metricTypes) {\n m.metricTypes = proto.metricTypes.map(v => enumStringToValue(MetricType, v));\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.groupPathNodes !== 'undefined') {\n toReturn['groupPathNodes'] = this.groupPathNodes;\n }\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.startTime !== 'undefined' && this.startTime !== null) {\n toReturn['startTime'] = 'toApiJson' in this.startTime ? this.startTime.toApiJson() : this.startTime;\n }\n if (typeof this.endTime !== 'undefined' && this.endTime !== null) {\n toReturn['endTime'] = 'toApiJson' in this.endTime ? this.endTime.toApiJson() : this.endTime;\n }\n if (typeof this.metricTypes !== 'undefined') {\n toReturn['metricTypes'] = this.metricTypes;\n }\n return toReturn;\n }\n}\nclass Insight {\n static fromProto(proto) {\n let m = new Insight();\n m = Object.assign(m, proto);\n if (proto.metricType) {\n m.metricType = enumStringToValue(MetricType, proto.metricType);\n }\n if (proto.totalValue) {\n m.totalValue = Metric.fromProto(proto.totalValue);\n }\n if (proto.deltaValue) {\n m.deltaValue = Metric.fromProto(proto.deltaValue);\n }\n if (proto.metrics) {\n m.metrics = proto.metrics.map(Metric.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.metricType !== 'undefined') {\n toReturn['metricType'] = this.metricType;\n }\n if (typeof this.totalValue !== 'undefined' && this.totalValue !== null) {\n toReturn['totalValue'] = 'toApiJson' in this.totalValue ? this.totalValue.toApiJson() : this.totalValue;\n }\n if (typeof this.deltaValue !== 'undefined' && this.deltaValue !== null) {\n toReturn['deltaValue'] = 'toApiJson' in this.deltaValue ? this.deltaValue.toApiJson() : this.deltaValue;\n }\n if (typeof this.metrics !== 'undefined' && this.metrics !== null) {\n toReturn['metrics'] = 'toApiJson' in this.metrics ? this.metrics.toApiJson() : this.metrics;\n }\n return toReturn;\n }\n}\nclass GetMultiTimeRangeResponseInsightsContainer {\n static fromProto(proto) {\n let m = new GetMultiTimeRangeResponseInsightsContainer();\n m = Object.assign(m, proto);\n if (proto.insights) {\n m.insights = InsightsResponse.fromProto(proto.insights);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.insights !== 'undefined' && this.insights !== null) {\n toReturn['insights'] = 'toApiJson' in this.insights ? this.insights.toApiJson() : this.insights;\n }\n return toReturn;\n }\n}\nclass InsightsResponse {\n static fromProto(proto) {\n let m = new InsightsResponse();\n m = Object.assign(m, proto);\n if (proto.insights) {\n m.insights = proto.insights.map(Insight.fromProto);\n }\n if (proto.locationCount) {\n m.locationCount = parseInt(proto.locationCount, 10);\n }\n if (proto.connectedLocationCount) {\n m.connectedLocationCount = parseInt(proto.connectedLocationCount, 10);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.insights !== 'undefined' && this.insights !== null) {\n toReturn['insights'] = 'toApiJson' in this.insights ? this.insights.toApiJson() : this.insights;\n }\n if (typeof this.locationCount !== 'undefined') {\n toReturn['locationCount'] = this.locationCount;\n }\n if (typeof this.connectedLocationCount !== 'undefined') {\n toReturn['connectedLocationCount'] = this.connectedLocationCount;\n }\n return toReturn;\n }\n}\nclass ListQuestionsRequest {\n static fromProto(proto) {\n let m = new ListQuestionsRequest();\n m = Object.assign(m, proto);\n if (proto.limit) {\n m.limit = parseInt(proto.limit, 10);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.locationId !== 'undefined') {\n toReturn['locationId'] = this.locationId;\n }\n if (typeof this.includeAnswers !== 'undefined') {\n toReturn['includeAnswers'] = this.includeAnswers;\n }\n if (typeof this.onlyLatestVersion !== 'undefined') {\n toReturn['onlyLatestVersion'] = this.onlyLatestVersion;\n }\n if (typeof this.limit !== 'undefined') {\n toReturn['limit'] = this.limit;\n }\n if (typeof this.cursor !== 'undefined') {\n toReturn['cursor'] = this.cursor;\n }\n return toReturn;\n }\n}\nclass ListQuestionsResponse {\n static fromProto(proto) {\n let m = new ListQuestionsResponse();\n m = Object.assign(m, proto);\n if (proto.questions) {\n m.questions = proto.questions.map(Question.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.questions !== 'undefined' && this.questions !== null) {\n toReturn['questions'] = 'toApiJson' in this.questions ? this.questions.toApiJson() : this.questions;\n }\n if (typeof this.more !== 'undefined') {\n toReturn['more'] = this.more;\n }\n if (typeof this.cursor !== 'undefined') {\n toReturn['cursor'] = this.cursor;\n }\n return toReturn;\n }\n}\nclass Metric {\n static fromProto(proto) {\n let m = new Metric();\n m = Object.assign(m, proto);\n if (proto.value) {\n m.value = parseInt(proto.value, 10);\n }\n if (proto.timeDimension) {\n m.timeDimension = TimeDimension.fromProto(proto.timeDimension);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.value !== 'undefined') {\n toReturn['value'] = this.value;\n }\n if (typeof this.timeDimension !== 'undefined' && this.timeDimension !== null) {\n toReturn['timeDimension'] = 'toApiJson' in this.timeDimension ? this.timeDimension.toApiJson() : this.timeDimension;\n }\n return toReturn;\n }\n}\nclass PopulateGoogleBusinessProfilePerformanceMetricsRequest {\n static fromProto(proto) {\n let m = new PopulateGoogleBusinessProfilePerformanceMetricsRequest();\n m = Object.assign(m, proto);\n if (proto.startDate) {\n m.startDate = GoogleDate.fromProto(proto.startDate);\n }\n if (proto.endDate) {\n m.endDate = GoogleDate.fromProto(proto.endDate);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.startDate !== 'undefined' && this.startDate !== null) {\n toReturn['startDate'] = 'toApiJson' in this.startDate ? this.startDate.toApiJson() : this.startDate;\n }\n if (typeof this.endDate !== 'undefined' && this.endDate !== null) {\n toReturn['endDate'] = 'toApiJson' in this.endDate ? this.endDate.toApiJson() : this.endDate;\n }\n return toReturn;\n }\n}\nclass PopulateGoogleBusinessProfileSearchKeywordsRequest {\n static fromProto(proto) {\n let m = new PopulateGoogleBusinessProfileSearchKeywordsRequest();\n m = Object.assign(m, proto);\n if (proto.startDate) {\n m.startDate = GoogleDate.fromProto(proto.startDate);\n }\n if (proto.endDate) {\n m.endDate = GoogleDate.fromProto(proto.endDate);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.googleLocationId !== 'undefined') {\n toReturn['googleLocationId'] = this.googleLocationId;\n }\n if (typeof this.startDate !== 'undefined' && this.startDate !== null) {\n toReturn['startDate'] = 'toApiJson' in this.startDate ? this.startDate.toApiJson() : this.startDate;\n }\n if (typeof this.endDate !== 'undefined' && this.endDate !== null) {\n toReturn['endDate'] = 'toApiJson' in this.endDate ? this.endDate.toApiJson() : this.endDate;\n }\n return toReturn;\n }\n}\nclass QuestionIdentifier {\n static fromProto(proto) {\n let m = new QuestionIdentifier();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.locationId !== 'undefined') {\n toReturn['locationId'] = this.locationId;\n }\n if (typeof this.questionId !== 'undefined') {\n toReturn['questionId'] = this.questionId;\n }\n if (typeof this.version !== 'undefined') {\n toReturn['version'] = this.version;\n }\n return toReturn;\n }\n}\nclass ReplaceAccountLocationRequest {\n static fromProto(proto) {\n let m = new ReplaceAccountLocationRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.googleAccountId !== 'undefined') {\n toReturn['googleAccountId'] = this.googleAccountId;\n }\n if (typeof this.googleLocationId !== 'undefined') {\n toReturn['googleLocationId'] = this.googleLocationId;\n }\n return toReturn;\n }\n}\nclass ReplacePostInsightsHistoryRequest {\n static fromProto(proto) {\n let m = new ReplacePostInsightsHistoryRequest();\n m = Object.assign(m, proto);\n if (proto.postInsightsHistory) {\n m.postInsightsHistory = PostInsightsHistory.fromProto(proto.postInsightsHistory);\n }\n if (proto.fieldMask) {\n m.fieldMask = FieldMask.fromProto(proto.fieldMask);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.postInsightsHistory !== 'undefined' && this.postInsightsHistory !== null) {\n toReturn['postInsightsHistory'] = 'toApiJson' in this.postInsightsHistory ? this.postInsightsHistory.toApiJson() : this.postInsightsHistory;\n }\n if (typeof this.fieldMask !== 'undefined' && this.fieldMask !== null) {\n toReturn['fieldMask'] = 'toApiJson' in this.fieldMask ? this.fieldMask.toApiJson() : this.fieldMask;\n }\n return toReturn;\n }\n}\nclass ResourceId {\n static fromProto(proto) {\n let m = new ResourceId();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.groupPathNodes !== 'undefined') {\n toReturn['groupPathNodes'] = this.groupPathNodes;\n }\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n return toReturn;\n }\n}\nclass SyncDataRequest {\n static fromProto(proto) {\n let m = new SyncDataRequest();\n m = Object.assign(m, proto);\n if (proto.requestedAt) {\n m.requestedAt = new Date(proto.requestedAt);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.gmbInsightsJson !== 'undefined') {\n toReturn['gmbInsightsJson'] = this.gmbInsightsJson;\n }\n if (typeof this.requestedAt !== 'undefined' && this.requestedAt !== null) {\n toReturn['requestedAt'] = 'toApiJson' in this.requestedAt ? this.requestedAt.toApiJson() : this.requestedAt;\n }\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n return toReturn;\n }\n}\nclass TimeDimension {\n static fromProto(proto) {\n let m = new TimeDimension();\n m = Object.assign(m, proto);\n if (proto.timeRange) {\n m.timeRange = TimePeriod.fromProto(proto.timeRange);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.timeRange !== 'undefined' && this.timeRange !== null) {\n toReturn['timeRange'] = 'toApiJson' in this.timeRange ? this.timeRange.toApiJson() : this.timeRange;\n }\n return toReturn;\n }\n}\nclass TimePeriod {\n static fromProto(proto) {\n let m = new TimePeriod();\n m = Object.assign(m, proto);\n if (proto.startTime) {\n m.startTime = new Date(proto.startTime);\n }\n if (proto.period) {\n m.period = enumStringToValue(Period, proto.period);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.startTime !== 'undefined' && this.startTime !== null) {\n toReturn['startTime'] = 'toApiJson' in this.startTime ? this.startTime.toApiJson() : this.startTime;\n }\n if (typeof this.period !== 'undefined') {\n toReturn['period'] = this.period;\n }\n return toReturn;\n }\n}\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Objects Index.\n// *********************************\n\nconst environment = (window ? window['environment'] : 'prod') ?? 'prod';\nconst hostMap = {\n 'local': 'google-my-business-api.vendasta-local.com',\n 'test': '',\n 'demo': 'google-my-business-api-demo.apigateway.co',\n 'prod': 'google-my-business-api-prod.apigateway.co',\n 'production': 'google-my-business-api-prod.apigateway.co'\n};\nlet HostService = /*#__PURE__*/(() => {\n class HostService {\n get host() {\n return hostMap[environment.toLowerCase()];\n }\n get hostWithScheme() {\n return 'https://' + this.host;\n }\n }\n HostService.ɵfac = function HostService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || HostService)();\n };\n HostService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: HostService,\n factory: HostService.ɵfac,\n providedIn: 'root'\n });\n return HostService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nlet AccountApiService = /*#__PURE__*/(() => {\n class AccountApiService {\n constructor(http, hostService) {\n this.http = http;\n this.hostService = hostService;\n this._host = this.hostService.hostWithScheme;\n }\n apiOptions() {\n return {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n }),\n withCredentials: true\n };\n }\n getMultiAccountLocation(r) {\n const request = r.toApiJson ? r : new GetMultiAccountLocationRequest(r);\n return this.http.post(this._host + \"/gmb.v1.Account/GetMultiAccountLocation\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetMultiAccountLocationResponse.fromProto(resp)));\n }\n replaceAccountLocation(r) {\n const request = r.toApiJson ? r : new ReplaceAccountLocationRequest(r);\n return this.http.post(this._host + \"/gmb.v1.Account/ReplaceAccountLocation\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n deleteAccountLocation(r) {\n const request = r.toApiJson ? r : new DeleteAccountLocationRequest(r);\n return this.http.post(this._host + \"/gmb.v1.Account/DeleteAccountLocation\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n deletePost(r) {\n const request = r.toApiJson ? r : new DeletePostRequest(r);\n return this.http.post(this._host + \"/gmb.v1.Account/DeletePost\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n }\n AccountApiService.ɵfac = function AccountApiService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || AccountApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n AccountApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: AccountApiService,\n factory: AccountApiService.ɵfac,\n providedIn: 'root'\n });\n return AccountApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nlet BusinessCommunicationsApiService = /*#__PURE__*/(() => {\n class BusinessCommunicationsApiService {\n constructor(http, hostService) {\n this.http = http;\n this.hostService = hostService;\n this._host = this.hostService.hostWithScheme;\n }\n apiOptions() {\n return {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n }),\n withCredentials: true\n };\n }\n connectBusinessCommunications(r) {\n const request = r.toApiJson ? r : new ConnectBusinessCommunicationsRequest(r);\n return this.http.post(this._host + \"/gmb.v1.BusinessCommunications/ConnectBusinessCommunications\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n unlaunchBusinessCommunicationsAgent(r) {\n const request = r.toApiJson ? r : new UnlaunchBusinessCommunicationsAgentRequest(r);\n return this.http.post(this._host + \"/gmb.v1.BusinessCommunications/UnlaunchBusinessCommunicationsAgent\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n getBusinessLaunchStatus(r) {\n const request = r.toApiJson ? r : new GetBusinessLaunchStatusRequest(r);\n return this.http.post(this._host + \"/gmb.v1.BusinessCommunications/GetBusinessLaunchStatus\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetBusinessLaunchStatusResponse.fromProto(resp)));\n }\n canEnableBusinessCommunications(r) {\n const request = r.toApiJson ? r : new CanEnableBusinessCommunicationsRequest(r);\n return this.http.post(this._host + \"/gmb.v1.BusinessCommunications/CanEnableBusinessCommunications\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CanEnableBusinessCommunicationsResponse.fromProto(resp)));\n }\n }\n BusinessCommunicationsApiService.ɵfac = function BusinessCommunicationsApiService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || BusinessCommunicationsApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n BusinessCommunicationsApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: BusinessCommunicationsApiService,\n factory: BusinessCommunicationsApiService.ɵfac,\n providedIn: 'root'\n });\n return BusinessCommunicationsApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nlet BusinessMessagesApiService = /*#__PURE__*/(() => {\n class BusinessMessagesApiService {\n constructor(http, hostService) {\n this.http = http;\n this.hostService = hostService;\n this._host = this.hostService.hostWithScheme;\n }\n apiOptions() {\n return {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n }),\n withCredentials: true\n };\n }\n sendMessage(r) {\n const request = r.toApiJson ? r : new SendMessageRequest(r);\n return this.http.post(this._host + \"/gmb.v1.BusinessMessages/SendMessage\", request.toApiJson(), this.apiOptions()).pipe(map(resp => SendMessageResponse.fromProto(resp)));\n }\n createEvent(r) {\n const request = r.toApiJson ? r : new CreateEventRequest(r);\n return this.http.post(this._host + \"/gmb.v1.BusinessMessages/CreateEvent\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CreateEventResponse.fromProto(resp)));\n }\n }\n BusinessMessagesApiService.ɵfac = function BusinessMessagesApiService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || BusinessMessagesApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n BusinessMessagesApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: BusinessMessagesApiService,\n factory: BusinessMessagesApiService.ɵfac,\n providedIn: 'root'\n });\n return BusinessMessagesApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nlet GoogleMyBusinessClientLegacyAPIApiService = /*#__PURE__*/(() => {\n class GoogleMyBusinessClientLegacyAPIApiService {\n constructor(http, hostService) {\n this.http = http;\n this.hostService = hostService;\n this._host = this.hostService.hostWithScheme;\n }\n apiOptions() {\n return {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n }),\n withCredentials: true\n };\n }\n calculateInsightsByTimePeriod(r) {\n const request = r.toApiJson ? r : new CalculateInsightsByTimePeriodRequest(r);\n return this.http.post(this._host + \"/gmb.v1.GoogleMyBusinessClientLegacyAPI/CalculateInsightsByTimePeriod\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CalculateInsightsByTimePeriodResponse.fromProto(resp)));\n }\n canRespondToReview(r) {\n const request = r.toApiJson ? r : new CanRespondToReviewRequest(r);\n return this.http.post(this._host + \"/gmb.v1.GoogleMyBusinessClientLegacyAPI/CanRespondToReview\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CanRespondToReviewResponse.fromProto(resp)));\n }\n connect(r) {\n const request = r.toApiJson ? r : new ConnectRequest(r);\n return this.http.post(this._host + \"/gmb.v1.GoogleMyBusinessClientLegacyAPI/Connect\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ConnectResponse.fromProto(resp)));\n }\n disconnect(r) {\n const request = r.toApiJson ? r : new DisconnectRequest(r);\n return this.http.post(this._host + \"/gmb.v1.GoogleMyBusinessClientLegacyAPI/Disconnect\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n enableDisableSync(r) {\n const request = r.toApiJson ? r : new EnableDisableSyncRequest(r);\n return this.http.post(this._host + \"/gmb.v1.GoogleMyBusinessClientLegacyAPI/EnableDisableSync\", request.toApiJson(), this.apiOptions()).pipe(map(resp => EnableDisableSyncResponse.fromProto(resp)));\n }\n getAsSocialService(r) {\n const request = r.toApiJson ? r : new GetAsSocialServiceRequest(r);\n return this.http.post(this._host + \"/gmb.v1.GoogleMyBusinessClientLegacyAPI/GetAsSocialService\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetAsSocialServiceResponse.fromProto(resp)));\n }\n getConnections(r) {\n const request = r.toApiJson ? r : new GetConnectionsRequest(r);\n return this.http.post(this._host + \"/gmb.v1.GoogleMyBusinessClientLegacyAPI/GetConnections\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetConnectionsResponse.fromProto(resp)));\n }\n getConnection(r) {\n const request = r.toApiJson ? r : new GetConnectionRequest(r);\n return this.http.post(this._host + \"/gmb.v1.GoogleMyBusinessClientLegacyAPI/GetConnection\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetConnectionsResponse.fromProto(resp)));\n }\n getGoogleUser(r) {\n const request = r.toApiJson ? r : new GetGoogleUserRequest(r);\n return this.http.post(this._host + \"/gmb.v1.GoogleMyBusinessClientLegacyAPI/GetGoogleUser\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetGoogleUserResponse.fromProto(resp)));\n }\n }\n GoogleMyBusinessClientLegacyAPIApiService.ɵfac = function GoogleMyBusinessClientLegacyAPIApiService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || GoogleMyBusinessClientLegacyAPIApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n GoogleMyBusinessClientLegacyAPIApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: GoogleMyBusinessClientLegacyAPIApiService,\n factory: GoogleMyBusinessClientLegacyAPIApiService.ɵfac,\n providedIn: 'root'\n });\n return GoogleMyBusinessClientLegacyAPIApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nlet InsightsApiService = /*#__PURE__*/(() => {\n class InsightsApiService {\n constructor(http, hostService) {\n this.http = http;\n this.hostService = hostService;\n this._host = this.hostService.hostWithScheme;\n }\n apiOptions() {\n return {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n }),\n withCredentials: true\n };\n }\n getTimeRange(r) {\n const request = r.toApiJson ? r : new GetTimeRangeRequest(r);\n return this.http.post(this._host + \"/gmb.v1.Insights/GetTimeRange\", request.toApiJson(), this.apiOptions()).pipe(map(resp => InsightsResponse.fromProto(resp)));\n }\n getMultiTimeRange(r) {\n const request = r.toApiJson ? r : new GetMultiTimeRangeRequest(r);\n return this.http.post(this._host + \"/gmb.v1.Insights/GetMultiTimeRange\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetMultiTimeRangeResponse.fromProto(resp)));\n }\n replacePostInsightsHistory(r) {\n const request = r.toApiJson ? r : new ReplacePostInsightsHistoryRequest(r);\n return this.http.post(this._host + \"/gmb.v1.Insights/ReplacePostInsightsHistory\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n }\n InsightsApiService.ɵfac = function InsightsApiService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || InsightsApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n InsightsApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: InsightsApiService,\n factory: InsightsApiService.ɵfac,\n providedIn: 'root'\n });\n return InsightsApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nlet InsightsSyncApiService = /*#__PURE__*/(() => {\n class InsightsSyncApiService {\n constructor(http, hostService) {\n this.http = http;\n this.hostService = hostService;\n this._host = this.hostService.hostWithScheme;\n }\n apiOptions() {\n return {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n }),\n withCredentials: true\n };\n }\n syncData(r) {\n const request = r.toApiJson ? r : new SyncDataRequest(r);\n return this.http.post(this._host + \"/gmb.v1.InsightsSync/SyncData\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n populateGoogleBusinessProfilePerformanceMetrics(r) {\n const request = r.toApiJson ? r : new PopulateGoogleBusinessProfilePerformanceMetricsRequest(r);\n return this.http.post(this._host + \"/gmb.v1.InsightsSync/PopulateGoogleBusinessProfilePerformanceMetrics\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n populateGoogleBusinessProfileSearchKeywords(r) {\n const request = r.toApiJson ? r : new PopulateGoogleBusinessProfileSearchKeywordsRequest(r);\n return this.http.post(this._host + \"/gmb.v1.InsightsSync/PopulateGoogleBusinessProfileSearchKeywords\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n }\n InsightsSyncApiService.ɵfac = function InsightsSyncApiService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || InsightsSyncApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n InsightsSyncApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: InsightsSyncApiService,\n factory: InsightsSyncApiService.ɵfac,\n providedIn: 'root'\n });\n return InsightsSyncApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nlet QuestionAnswerApiService = /*#__PURE__*/(() => {\n class QuestionAnswerApiService {\n constructor(http, hostService) {\n this.http = http;\n this.hostService = hostService;\n this._host = this.hostService.hostWithScheme;\n }\n apiOptions() {\n return {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n }),\n withCredentials: true\n };\n }\n listQuestions(r) {\n const request = r.toApiJson ? r : new ListQuestionsRequest(r);\n return this.http.post(this._host + \"/gmb.v1.QuestionAnswer/ListQuestions\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ListQuestionsResponse.fromProto(resp)));\n }\n getQuestion(r) {\n const request = r.toApiJson ? r : new GetQuestionRequest(r);\n return this.http.post(this._host + \"/gmb.v1.QuestionAnswer/GetQuestion\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetQuestionResponse.fromProto(resp)));\n }\n getMultiQuestions(r) {\n const request = r.toApiJson ? r : new GetMultiQuestionsRequest(r);\n return this.http.post(this._host + \"/gmb.v1.QuestionAnswer/GetMultiQuestions\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetMultiQuestionsResponse.fromProto(resp)));\n }\n createAnswer(r) {\n const request = r.toApiJson ? r : new CreateAnswerRequest(r);\n return this.http.post(this._host + \"/gmb.v1.QuestionAnswer/CreateAnswer\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CreateAnswerResponse.fromProto(resp)));\n }\n createQuestion(r) {\n const request = r.toApiJson ? r : new CreateQuestionRequest(r);\n return this.http.post(this._host + \"/gmb.v1.QuestionAnswer/CreateQuestion\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CreateQuestionResponse.fromProto(resp)));\n }\n getQuestionAnswerStats(r) {\n const request = r.toApiJson ? r : new GetQuestionAnswerStatsRequest(r);\n return this.http.post(this._host + \"/gmb.v1.QuestionAnswer/GetQuestionAnswerStats\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetQuestionAnswerStatsResponse.fromProto(resp)));\n }\n }\n QuestionAnswerApiService.ɵfac = function QuestionAnswerApiService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || QuestionAnswerApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n QuestionAnswerApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: QuestionAnswerApiService,\n factory: QuestionAnswerApiService.ɵfac,\n providedIn: 'root'\n });\n return QuestionAnswerApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Index.\n// *********************************\nlet QuestionAndAnswerService = /*#__PURE__*/(() => {\n class QuestionAndAnswerService {\n constructor(_api) {\n this._api = _api;\n }\n listQuestions(accountGroupId, cursor, includeAnswers, limit, locationId, onlyLatestVersion) {\n const request = {\n accountGroupId: accountGroupId,\n cursor: cursor,\n includeAnswers: includeAnswers,\n limit: limit,\n locationId: locationId,\n onlyLatestVersion: onlyLatestVersion\n };\n return this._api.listQuestions(request);\n }\n createAnswer(accountGroupId, socialProfileId, locationPathName, questionId, text) {\n const request = {\n accountGroupId: accountGroupId,\n socialProfileId: socialProfileId,\n locationPathName: locationPathName,\n questionId: questionId,\n text: text\n };\n return this._api.createAnswer(request);\n }\n createQuestion(partnerId, accountGroupId, socialProfileId, locationPathName, text) {\n const request = {\n accountGroupId: accountGroupId,\n socialProfileId: socialProfileId,\n locationPathName: locationPathName,\n partnerId: partnerId,\n text: text\n };\n return this._api.createQuestion(request);\n }\n getMultiQuestions(questionIds, includeAnswers) {\n const request = {\n questionIds: questionIds,\n includeAnswers: includeAnswers\n };\n return this._api.getMultiQuestions(request);\n }\n getQuestion(accountGroupId, locationId, questionId, includeAnswers, onlyLatestVersion) {\n const request = {\n accountGroupId: accountGroupId,\n locationId: locationId,\n questionId: questionId,\n includeAnswers: includeAnswers,\n onlyLatestVersion: onlyLatestVersion\n };\n return this._api.getQuestion(request);\n }\n getQuestionAnswerStats(accountGroupId, locationId) {\n const request = {\n accountGroupId: accountGroupId,\n locationId: locationId\n };\n return this._api.getQuestionAnswerStats(request);\n }\n }\n QuestionAndAnswerService.ɵfac = function QuestionAndAnswerService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || QuestionAndAnswerService)(i0.ɵɵinject(QuestionAnswerApiService));\n };\n QuestionAndAnswerService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: QuestionAndAnswerService,\n factory: QuestionAndAnswerService.ɵfac,\n providedIn: 'root'\n });\n return QuestionAndAnswerService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { Answer, BusinessCommunicationsApiService, GetMultiQuestionsResponse, GetQuestionResponse, Question, QuestionAndAnswerService, QuestionAnswerApiService, QuestionIdentifier };\n","import { HttpErrorResponse, HttpStatusCode } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { BusinessCommunicationsApiService } from '@vendasta/google-my-business';\nimport { addDays, isBefore } from 'date-fns';\nimport { combineLatest, Observable, of, catchError, map, switchMap } from 'rxjs';\nimport { ConversationDetail } from '../interface/conversation.interface';\nimport {\n ACCOUNT_GROUP_ID_TOKEN,\n CONVERSATION_GOOGLE_BUSINESS_MESSAGES_AVAILABLE_TOKEN,\n PARTNER_ID_TOKEN,\n} from '../tokens';\nimport { AlertOptions, ConversationChannelService } from './conversation-channel.abstract';\n\nexport enum BusinessMessagesEnabledState {\n IS_ENABLED = 'IS_ENABLED',\n INVALID_TOKEN = 'INVALID_TOKEN',\n NOT_ENABLED = 'NOT_ENABLED',\n NOT_LAUNCHED = 'NOT_LAUNCHED',\n CONVERSATION_EXPIRED = 'CONVERSATION_EXPIRED',\n UNKNOWN_ERROR = 'UNKNOWN_ERROR',\n}\n\n@Injectable()\nexport class ConversationGoogleService extends ConversationChannelService {\n private readonly partnerId$: Observable = inject(PARTNER_ID_TOKEN);\n readonly accountGroupId$: Observable = inject(ACCOUNT_GROUP_ID_TOKEN);\n\n private router = inject(Router);\n private readonly googleMyBusinessService = inject(BusinessCommunicationsApiService);\n private readonly googleBusinessMessagesAvailable$ = inject(CONVERSATION_GOOGLE_BUSINESS_MESSAGES_AVAILABLE_TOKEN);\n\n getChatComposerAlert(\n partnerId: string,\n accountGroupId: string,\n conversationDetail: ConversationDetail,\n ): Observable {\n return this.canSendGoogleBusinessMessage(partnerId, accountGroupId, conversationDetail).pipe(\n map((canSend) => {\n if (canSend === BusinessMessagesEnabledState.IS_ENABLED) {\n return null;\n }\n\n return this.getGoogleBusinessMessagesError(canSend, accountGroupId);\n }),\n );\n }\n\n private getGoogleBusinessMessagesError(\n enabledState: BusinessMessagesEnabledState,\n accountGroup: string,\n ): AlertOptions {\n let alert: AlertOptions;\n\n switch (enabledState) {\n case BusinessMessagesEnabledState.NOT_ENABLED:\n alert = {\n title: 'INBOX.SETTINGS.GOOGLE_BUSINESS_MESSAGES.STATUS.NOT_ENABLED.TITLE',\n description: 'INBOX.SETTINGS.GOOGLE_BUSINESS_MESSAGES.STATUS.NOT_ENABLED.DESCRIPTION',\n };\n break;\n case BusinessMessagesEnabledState.INVALID_TOKEN:\n alert = {\n title: 'INBOX.SETTINGS.GOOGLE_BUSINESS_MESSAGES.GOOGLE_BUSINESS_PROFILE',\n description: 'INBOX.SETTINGS.GOOGLE_BUSINESS_MESSAGES.PROFILE_DISCONNECTED',\n action: {\n title: 'INBOX.SETTINGS.GOOGLE_BUSINESS_MESSAGES.ACTIONS.GO_TO_SETTINGS',\n callback: () => this.router.navigate([`/account/location/${accountGroup}/settings/inbox`]),\n },\n };\n break;\n case BusinessMessagesEnabledState.CONVERSATION_EXPIRED:\n alert = {\n title: 'INBOX.SETTINGS.GOOGLE_BUSINESS_MESSAGES.STATUS.EXPIRED_CONVERSATION.TITLE',\n description: 'INBOX.SETTINGS.GOOGLE_BUSINESS_MESSAGES.STATUS.EXPIRED_CONVERSATION.DESCRIPTION',\n };\n break;\n case BusinessMessagesEnabledState.NOT_LAUNCHED:\n alert = {\n title: 'INBOX.SETTINGS.GOOGLE_BUSINESS_MESSAGES.STATUS.NOT_LAUNCHED.TITLE',\n description: 'INBOX.SETTINGS.GOOGLE_BUSINESS_MESSAGES.STATUS.NOT_LAUNCHED.DESCRIPTION',\n action: {\n title: 'INBOX.SETTINGS.GOOGLE_BUSINESS_MESSAGES.ACTIONS.GO_TO_SETTINGS',\n callback: () => this.router.navigate([`/account/location/${accountGroup}/settings/inbox`]),\n },\n };\n break;\n case BusinessMessagesEnabledState.UNKNOWN_ERROR:\n default:\n alert = {\n title: 'INBOX.SETTINGS.GOOGLE_BUSINESS_MESSAGES.STATUS.UNKNOWN_ERROR.TITLE',\n description: 'INBOX.SETTINGS.GOOGLE_BUSINESS_MESSAGES.STATUS.UNKNOWN_ERROR.DESCRIPTION',\n };\n }\n\n return alert;\n }\n\n private canSendGoogleBusinessMessage(\n partnerId: string,\n accountGroupId: string,\n conversationDetail?: ConversationDetail,\n ): Observable {\n const expirationDate = addDays(conversationDetail.latestMessage?.updated, 30);\n const currentDate = new Date();\n\n const launchStatus$: Observable = this.googleMyBusinessService\n .getBusinessLaunchStatus({\n partnerId: partnerId,\n accountGroupId: accountGroupId,\n })\n .pipe(\n map((res) =>\n res.isLaunched ? BusinessMessagesEnabledState.IS_ENABLED : BusinessMessagesEnabledState.NOT_LAUNCHED,\n ),\n catchError((error) => {\n if (error instanceof HttpErrorResponse && error.status === HttpStatusCode.PreconditionFailed) {\n return of(BusinessMessagesEnabledState.INVALID_TOKEN);\n }\n return of(BusinessMessagesEnabledState.UNKNOWN_ERROR);\n }),\n );\n\n return combineLatest([this.googleBusinessMessagesAvailable$, launchStatus$]).pipe(\n map(([googleBusinessMessagesAvailable, launched]) => {\n if (isBefore(expirationDate, currentDate)) {\n return BusinessMessagesEnabledState.CONVERSATION_EXPIRED;\n }\n if (!googleBusinessMessagesAvailable) return BusinessMessagesEnabledState.NOT_ENABLED;\n return launched;\n }),\n );\n }\n\n readonly isGoogleBusinessMessagesEnabled$: Observable = combineLatest([\n this.partnerId$,\n this.accountGroupId$,\n ]).pipe(\n switchMap(([partnerId, accountGroupId]) =>\n this.googleMyBusinessService.getBusinessLaunchStatus({ partnerId, accountGroupId }),\n ),\n map((res) => res.isLaunched),\n catchError(() => of(false)),\n );\n}\n","import { inject, Injectable } from '@angular/core';\nimport { ChannelAvailability, ConversationChannel } from '@vendasta/conversation';\nimport { Observable, of } from 'rxjs';\nimport { ConversationDetail } from '../interface/conversation.interface';\nimport { AlertOptions, ConversationChannelService } from './conversation-channel.abstract';\nimport { Router } from '@angular/router';\n\n@Injectable()\nexport class ConversationFacebookService extends ConversationChannelService {\n private router = inject(Router);\n\n getChatComposerAlert(\n _partnerId: string,\n _accountGroupId: string,\n conversationDetail?: ConversationDetail,\n channels?: ConversationChannel[],\n channelAvailabilities?: ChannelAvailability[],\n ): Observable {\n if (conversationDetail?.conversation.channel !== ConversationChannel.CONVERSATION_CHANNEL_FACEBOOK) {\n return of(null);\n }\n\n const facebookAvailability = channelAvailabilities?.find(\n (channelAvailability) => channelAvailability.channel === ConversationChannel.CONVERSATION_CHANNEL_FACEBOOK,\n );\n\n if (facebookAvailability?.isAvailable === true) {\n return of(null);\n }\n\n return of({\n title: 'INBOX.SETTINGS.FACEBOOK_MESSENGER.ERRORS.CANNOT_SEND_MESSAGE',\n description:\n facebookAvailability?.statuses?.[0]?.i18nKey ||\n 'INBOX.SETTINGS.FACEBOOK_MESSENGER.ERRORS.CANNOT_SEND_MESSAGE_DESCRIPTION',\n action: {\n title: 'INBOX.SENDER.CLOSE_CONVERSATION',\n callback: () => this.router.navigate([`/account/location/${_accountGroupId}/inbox`]),\n },\n });\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { ChannelAvailability, ConversationChannel } from '@vendasta/conversation';\nimport { Observable, of } from 'rxjs';\nimport { ConversationDetail } from '../interface/conversation.interface';\nimport { AlertOptions, ConversationChannelService } from './conversation-channel.abstract';\nimport { Router } from '@angular/router';\n\n@Injectable()\nexport class ConversationInstagramService extends ConversationChannelService {\n private router = inject(Router);\n\n getChatComposerAlert(\n _partnerId: string,\n _accountGroupId: string,\n conversationDetail?: ConversationDetail,\n channels?: ConversationChannel[],\n channelAvailabilities?: ChannelAvailability[],\n ): Observable {\n if (conversationDetail?.conversation.channel !== ConversationChannel.CONVERSATION_CHANNEL_INSTAGRAM) {\n return of(null);\n }\n\n const instagramAvailability = channelAvailabilities?.find(\n (channelAvailability) => channelAvailability.channel === ConversationChannel.CONVERSATION_CHANNEL_INSTAGRAM,\n );\n\n if (instagramAvailability?.isAvailable === true) {\n return of(null);\n }\n\n return of({\n title: 'INBOX.SETTINGS.INSTAGRAM_MESSAGES.ERRORS.CANNOT_SEND_MESSAGE',\n description:\n instagramAvailability?.statuses?.[0]?.i18nKey ||\n 'INBOX.SETTINGS.INSTAGRAM_MESSAGES.ERRORS.CANNOT_SEND_MESSAGE_DESCRIPTION',\n action: {\n title: 'INBOX.SENDER.CLOSE_CONVERSATION',\n callback: () => this.router.navigate([`/account/location/${_accountGroupId}/inbox`]),\n },\n });\n }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { ConversationChannel } from '@vendasta/conversation';\nimport { Observable, map, of } from 'rxjs';\nimport { ConversationDetail } from '../interface/conversation.interface';\nimport { CONVERSATION_COUNTRY_TOKEN } from '../tokens';\nimport { AlertOptions, ConversationChannelService } from './conversation-channel.abstract';\nimport { InboxAlertService } from './inbox-alert.service';\n\n@Injectable()\nexport class ConversationPlatformService extends ConversationChannelService {\n private readonly country$ = inject(CONVERSATION_COUNTRY_TOKEN);\n private readonly inboxAlerter = inject(InboxAlertService);\n\n getChatComposerAlert(\n partnerId: string,\n accountGroupId: string,\n conversationDetail: ConversationDetail,\n ): Observable {\n if (conversationDetail.conversation.channel !== ConversationChannel.CONVERSATION_CHANNEL_INTERNAL) return of(null);\n\n //This will help to show proper errors for existing conversations with Contacts under Platform channel\n const checkContactInfo = this.inboxAlerter.getConversationCustomerErrors(conversationDetail);\n if (!checkContactInfo?.participant || checkContactInfo?.alert) return of(checkContactInfo?.alert ?? null);\n\n return this.country$.pipe(\n map((country) => {\n return this.inboxAlerter.checkNotAvailableErrorForLeads(conversationDetail, country);\n }),\n );\n }\n}\n","export const ChatReceptionistAvatar = `\n\n\n\n\n\n\n\n\n\n\n\n`;\n\nexport const VoiceReceptionistAvatar = `\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n`;\n\nexport const ContentWriterAvatar = `\n\n\n\n\n\n\n\n\n\n\n\n`;\n\nexport const ReviewManagerAvatar = `\n\n\n\n\n\n\n\n\n\n\n\n`;\n\nexport const SalesCoachAvatar = `\n\n\n\n\n\n\n`;\n\nexport const SEOAnalystAvatar = `\n\n\n\n\n\n\n\n\n\n\n\n\n\n`;\n\nexport const webchatIcon = `\n \n \n \n \n`;\n\nexport const smsIcon = `\n`;\n\nexport const voiceIcon = `\n x\n \n \n \n`;\n\nexport const whatsappIcon = `\n\n\n\n\n\n\n\n\n\n\n`;\n","import { ConfigApiService, OwnerType, ParticipantType, SmsService } from '@vendasta/smsv2';\nimport { combineLatest, map, shareReplay, switchMap } from 'rxjs';\nimport { inject, Injectable } from '@angular/core';\nimport { ACCOUNT_GROUP_ID_TOKEN, PARTNER_ID_TOKEN } from '../tokens';\n\n@Injectable()\nexport class SmsDetailsService {\n private readonly accountGroupId$ = inject(ACCOUNT_GROUP_ID_TOKEN);\n private readonly partnerId$ = inject(PARTNER_ID_TOKEN);\n private readonly smsService = inject(SmsService);\n private readonly configApiService = inject(ConfigApiService);\n\n public readonly phoneNumber$ = combineLatest([this.accountGroupId$, this.partnerId$]).pipe(\n switchMap(([accountGroupId, partnerId]) => {\n let ownerId = '',\n participantType = ParticipantType.PARTICIPANT_TYPE_UNKNOWN;\n\n if (accountGroupId) {\n ownerId = accountGroupId;\n participantType = ParticipantType.PARTICIPANT_TYPE_ACCOUNT_GROUP;\n } else if (partnerId) {\n ownerId = partnerId;\n participantType = ParticipantType.PARTICIPANT_TYPE_PARTNER;\n }\n\n return this.smsService.getAccountInfo({\n internalId: ownerId,\n type: participantType,\n });\n }),\n map((accountInfo) => accountInfo?.phoneNumber),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n public readonly isRoutingToVoiceAi$ = combineLatest([this.accountGroupId$, this.partnerId$]).pipe(\n switchMap(([accountGroupId, partnerId]) => {\n return this.configApiService.getPhoneNumberConfig({\n ownerId: accountGroupId || partnerId,\n ownerType: accountGroupId ? OwnerType.OWNER_TYPE_ACCOUNT_GROUP : OwnerType.OWNER_TYPE_PARTNER,\n });\n }),\n map((response) => !!response.phoneNumberConfig?.voiceAi?.enabled),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n}\n","import { inject, Injectable } from '@angular/core';\nimport {\n combineLatest,\n distinctUntilChanged,\n forkJoin,\n map,\n mergeMap,\n Observable,\n shareReplay,\n switchMap,\n catchError,\n of,\n filter,\n} from 'rxjs';\nimport {\n CalendarType,\n HostService,\n newBusinessCenterApplicationContextProperties,\n newPartnerCenterApplicationContextProperties,\n} from '@vendasta/meetings';\nimport { CalendarWithMeetingTypes } from '../interfaces/config.interface';\nimport { SalespersonService, SalesTeamService } from '@vendasta/sales';\n\nimport { ACCOUNT_GROUP_ID_TOKEN, CURRENT_USER_ID_TOKEN, PARTNER_ID_TOKEN } from '../tokens';\n\n@Injectable()\nexport class BookingConfigService {\n private readonly currentUserId$ = inject(CURRENT_USER_ID_TOKEN);\n private readonly partnerId$ = inject(PARTNER_ID_TOKEN);\n private readonly accountGroupId$ = inject(ACCOUNT_GROUP_ID_TOKEN);\n\n private readonly meetingService = inject(HostService);\n private readonly salespersonService = inject(SalespersonService);\n private readonly salesTeamService = inject(SalesTeamService);\n\n private readonly partnerIdAndAccountGroupId$ = combineLatest([this.partnerId$, this.accountGroupId$]).pipe(\n distinctUntilChanged((a, b) => a[0] === b[0] && a[1] === b[1]),\n );\n\n private readonly salesPersonId$ = combineLatest([this.partnerId$, this.currentUserId$]).pipe(\n switchMap(([partnerId, userId]) => this.salespersonService.getSalespersonByUserId(partnerId, userId)),\n catchError(() => of(undefined)),\n map((salesperson) => salesperson?.salespersonId || ''),\n shareReplay(1),\n );\n\n private readonly salesTeamIDs$ = this.salesPersonId$.pipe(\n switchMap((id) => (id ? this.salesTeamService.getSalesTeamsBySalesperson(id) : of([]))),\n catchError(() => of([])),\n map((teams) => teams.map((team) => team?.groupId).filter((groupId): groupId is string => groupId !== undefined)),\n );\n\n private readonly personalCalendar$ = combineLatest([this.partnerIdAndAccountGroupId$, this.currentUserId$]).pipe(\n switchMap(([[partnerId, accountGroupId], userId]) => {\n if (accountGroupId) {\n return this.meetingService.ensurePersonalCalendarExists({\n applicationContextProperties: newBusinessCenterApplicationContextProperties({ business_id: accountGroupId }),\n userId: userId,\n });\n } else {\n return this.salesPersonId$.pipe(\n filter((salespersonId) => !!salespersonId),\n switchMap(() =>\n this.meetingService.ensurePersonalCalendarExists({\n applicationContextProperties: newPartnerCenterApplicationContextProperties({ partner_id: partnerId }),\n userId: userId,\n }),\n ),\n );\n }\n }),\n switchMap((calendarId) => this.meetingService.getCalendar({ calendarId: calendarId })),\n );\n\n private readonly groupCalendars$ = this.partnerIdAndAccountGroupId$.pipe(\n switchMap(([_, accountGroupId]) => {\n if (accountGroupId) {\n return this.meetingService.ensureGroupCalendarsExist({ externalIds: [accountGroupId] });\n } else {\n return this.salesTeamIDs$.pipe(\n switchMap((salesTeamIds) =>\n salesTeamIds.length === 0\n ? of([])\n : this.meetingService.ensureGroupCalendarsExist({\n externalIds: salesTeamIds,\n }),\n ),\n );\n }\n }),\n mergeMap((calendarIds) => {\n if (calendarIds.length === 0) {\n return of([]);\n }\n return forkJoin(calendarIds.map((calendarId) => this.meetingService.getCalendar({ calendarId })));\n }),\n );\n\n private readonly allCalendars$ = combineLatest([this.personalCalendar$, this.groupCalendars$]).pipe(\n map(([personalCalendar, groupCalendars]) => [personalCalendar, ...groupCalendars]),\n shareReplay(1),\n );\n\n private readonly calendarEvents$ = this.allCalendars$.pipe(\n switchMap((calendars) => {\n const calendarIds = calendars.map((calendar) => calendar.id);\n\n return this.meetingService.getMeetingTypesForCalendars({\n calendarIds: calendarIds,\n metadata: {},\n });\n }),\n );\n\n getCalendarsWithTypes(): Observable {\n return combineLatest([this.allCalendars$, this.calendarEvents$]).pipe(\n map(([calendars, events]) =>\n calendars\n .filter((calendar) => calendar.calendarType !== CalendarType.CALENDAR_TYPE_INVALID)\n .map(\n (calendar) =>\n ({\n calendarName: calendar.displayName,\n calendarId: calendar.id,\n meetingTypes:\n events?.[calendar.id]?.map((mt) => ({\n name: mt.name,\n meetingTypeId: mt.id,\n calendarId: calendar.id,\n })) || [],\n isPersonal: calendar.calendarType === CalendarType.CALENDAR_TYPE_PERSONAL,\n }) as CalendarWithMeetingTypes,\n )\n .sort((a, _) => (a.isPersonal ? -1 : 1)),\n ),\n );\n }\n}\n","import { InjectionToken, ModuleWithProviders, NgModule } from '@angular/core';\nimport { AiAssistantService } from './services/ai-assistant.service';\nimport { AiAssistantConfig } from './interfaces/config.interface';\nimport {\n ACCOUNT_GROUP_ID_TOKEN,\n AI_ASSISTANT_CONFIG_TOKEN,\n AI_DEFAULT_CONNECTIONS_TOKEN,\n AI_DEFAULT_WORKFORCE_TOKEN,\n CURRENT_USER_ID_TOKEN,\n MARKET_ID_TOKEN,\n PARTNER_ID_TOKEN,\n} from './tokens';\nimport { isObservable, Observable, of } from 'rxjs';\nimport { MatIconRegistry } from '@angular/material/icon';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport {\n ChatReceptionistAvatar,\n ContentWriterAvatar,\n ReviewManagerAvatar,\n SalesCoachAvatar,\n SEOAnalystAvatar,\n smsIcon,\n voiceIcon,\n VoiceReceptionistAvatar,\n webchatIcon,\n whatsappIcon,\n} from '../assets/avatars/avatar-svg-string';\nimport { SmsDetailsService } from './services/sms-details.service';\nimport { BookingConfigService } from './services/booking-config.service';\nimport { AiAssistant, AiConnection } from './interfaces/ai-assistant.interface';\nimport { DEFAULT_CHAT_RECEPTIONIST_AVATAR_SVG_ICON } from './ai-assistant.constants';\n\n@NgModule()\nexport class AiAssistantModule {\n static forRoot(c: { config: InjectionToken }): ModuleWithProviders {\n return {\n ngModule: AiAssistantModule,\n providers: [\n AiAssistantService,\n BookingConfigService,\n SmsDetailsService,\n { provide: AI_ASSISTANT_CONFIG_TOKEN, useExisting: c.config },\n { provide: ACCOUNT_GROUP_ID_TOKEN, deps: [AI_ASSISTANT_CONFIG_TOKEN], useFactory: accountGroupIdFactory },\n { provide: MARKET_ID_TOKEN, deps: [AI_ASSISTANT_CONFIG_TOKEN], useFactory: marketIdFactory },\n { provide: PARTNER_ID_TOKEN, deps: [AI_ASSISTANT_CONFIG_TOKEN], useFactory: partnerIdFactory },\n {\n provide: AI_DEFAULT_WORKFORCE_TOKEN,\n deps: [AI_ASSISTANT_CONFIG_TOKEN],\n useFactory: aiDefaultWorkforceFactory,\n },\n {\n provide: AI_DEFAULT_CONNECTIONS_TOKEN,\n deps: [AI_ASSISTANT_CONFIG_TOKEN],\n useFactory: aiDefaultConnectionsFactory,\n },\n {\n provide: CURRENT_USER_ID_TOKEN,\n deps: [AI_ASSISTANT_CONFIG_TOKEN],\n useFactory: currentUserIdFactory,\n },\n ],\n };\n }\n\n constructor(iconRegistry: MatIconRegistry, sanitizer: DomSanitizer) {\n iconRegistry.addSvgIconLiteral(\n DEFAULT_CHAT_RECEPTIONIST_AVATAR_SVG_ICON,\n sanitizer.bypassSecurityTrustHtml(ChatReceptionistAvatar),\n );\n iconRegistry.addSvgIconLiteral('ai-voice-receptionist', sanitizer.bypassSecurityTrustHtml(VoiceReceptionistAvatar));\n iconRegistry.addSvgIconLiteral('ai-content-writer', sanitizer.bypassSecurityTrustHtml(ContentWriterAvatar));\n iconRegistry.addSvgIconLiteral('ai-review-manager', sanitizer.bypassSecurityTrustHtml(ReviewManagerAvatar));\n iconRegistry.addSvgIconLiteral('ai-sales-coach', sanitizer.bypassSecurityTrustHtml(SalesCoachAvatar));\n iconRegistry.addSvgIconLiteral('ai-seo-analyst', sanitizer.bypassSecurityTrustHtml(SEOAnalystAvatar));\n iconRegistry.addSvgIconLiteral('WebchatWidget', sanitizer.bypassSecurityTrustHtml(webchatIcon));\n iconRegistry.addSvgIconLiteral('SMS', sanitizer.bypassSecurityTrustHtml(smsIcon));\n iconRegistry.addSvgIconLiteral('Voice', sanitizer.bypassSecurityTrustHtml(voiceIcon));\n iconRegistry.addSvgIconLiteral('Whatsapp', sanitizer.bypassSecurityTrustHtml(whatsappIcon));\n }\n}\n\nfunction accountGroupIdFactory(config: AiAssistantConfig): Observable {\n return isObservable(config.accountGroupId$) ? config.accountGroupId$ : of(config.accountGroupId$);\n}\n\nfunction marketIdFactory(config: AiAssistantConfig): Observable {\n return isObservable(config.marketId$) ? config.marketId$ : of(config.marketId$);\n}\n\nfunction partnerIdFactory(config: AiAssistantConfig): Observable {\n return isObservable(config.partnerId$) ? config.partnerId$ : of(config.partnerId$);\n}\n\nfunction aiDefaultWorkforceFactory(config: AiAssistantConfig): Observable {\n return isObservable(config.defaultAIWorkforce$) ? config.defaultAIWorkforce$ : of(config.defaultAIWorkforce$);\n}\n\nfunction aiDefaultConnectionsFactory(config: AiAssistantConfig): Observable {\n return isObservable(config.defaultConnections$) ? config.defaultConnections$ : of(config.defaultConnections$);\n}\n\nfunction currentUserIdFactory(config: AiAssistantConfig): Observable {\n return isObservable(config.currentUserId$) ? config.currentUserId$ : of(config.currentUserId$);\n}\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n computed,\n DestroyRef,\n ElementRef,\n HostBinding,\n inject,\n input,\n OnInit,\n output,\n signal,\n viewChild,\n} from '@angular/core';\nimport { takeUntilDestroyed, toSignal } from '@angular/core/rxjs-interop';\nimport { TranslateService } from '@ngx-translate/core';\nimport { GalaxyAiIconService } from '@vendasta/galaxy/ai-icon';\nimport { GalaxyAvatarModule } from '@vendasta/galaxy/avatar';\nimport { interval, map, Subscription, takeWhile } from 'rxjs';\nimport { AiAssistantI18nModule } from '../../assets/i18n/ai-assistant-i18n.module';\nimport { AiAssistant } from '../../core/interfaces/ai-assistant.interface';\nimport { MatAnchor, MatButtonModule } from '@angular/material/button';\nimport { Router, RouterLink } from '@angular/router';\nimport { AiAssistantService } from '../../core/services/ai-assistant.service';\nimport { ASSISTANT_ID_VOICE_RECEPTIONIST, DEFAULT_AVATAR_SVG_ICON } from '../../core/ai-assistant.constants';\nimport { GalaxyBadgeModule } from '@vendasta/galaxy/badge';\nimport { SmsDetailsService } from '../../core/services/sms-details.service';\nimport { ACCOUNT_GROUP_ID_TOKEN } from '../../core/tokens';\nimport { VoiceApiService } from '@vendasta/voice';\nimport { GalaxyTooltipModule } from '@vendasta/galaxy/tooltip';\nimport { MatIcon } from '@angular/material/icon';\n\n@Component({\n selector: 'ai-assistant-card',\n imports: [\n CommonModule,\n GalaxyAvatarModule,\n AiAssistantI18nModule,\n MatAnchor,\n RouterLink,\n MatButtonModule,\n GalaxyBadgeModule,\n GalaxyTooltipModule,\n MatIcon,\n ],\n templateUrl: './ai-assistant-card.component.html',\n styleUrls: ['./ai-assistant-card.component.scss'],\n})\nexport class AiAssistantCardComponent implements OnInit {\n @HostBinding('class') class = 'ai-assistant';\n\n protected readonly translationService = inject(TranslateService);\n protected readonly aiIconService = inject(GalaxyAiIconService);\n private readonly destroyRef = inject(DestroyRef);\n private readonly aiAssistantService = inject(AiAssistantService);\n private readonly voiceApiService = inject(VoiceApiService);\n private readonly accountGroupId = toSignal(inject(ACCOUNT_GROUP_ID_TOKEN));\n private readonly router = inject(Router);\n readonly aiAssistant = input.required();\n readonly showCTAButton = input(false);\n readonly isDisabled = input(false);\n readonly isComingSoon = input(false);\n readonly ctaClicked = output();\n protected readonly currentUrl = this.router?.url;\n readonly defaultAvatarIcon = DEFAULT_AVATAR_SVG_ICON;\n\n aiAssistantConfigUrl = computed(() => {\n return this.aiAssistantService.buildAssistantConfigurationUrl(\n this.accountGroupId() ?? '',\n this.aiAssistant().assistant.id ?? '',\n );\n });\n\n private gradientBorderMask = viewChild.required('gradientBorderMask');\n\n protected readonly gradientColor = signal('');\n protected readonly gradient = signal('');\n\n private animationSubscription?: Subscription;\n\n protected readonly isVoiceReceptionistCard = computed(() => {\n return this.aiAssistant().assistant.id === ASSISTANT_ID_VOICE_RECEPTIONIST;\n });\n\n // To avoid showing the same icon multiple times in the list of connection icons when multiple connections of the same type exist\n protected readonly uniqueConnections = computed(() => {\n const assistant = this.aiAssistant();\n if (!assistant.connections?.length) {\n return [];\n }\n\n return assistant.connections\n .filter(\n (connection, index, self) =>\n self.findIndex((c) => c.connection.connectionTypeName === connection.connection.connectionTypeName) === index,\n )\n .map((aiConnection) => ({\n ...aiConnection,\n isGreyscale: !aiConnection.connection.assistantKeys?.length,\n tooltip: aiConnection.connection.assistantKeys?.length\n ? 'AI_ASSISTANT.WORKFORCE.CHANNEL.ACTIVE'\n : 'AI_ASSISTANT.WORKFORCE.CHANNEL.NOT_YET_ACTIVE',\n }))\n .sort((a, b) => Number(a.isGreyscale) - Number(b.isGreyscale));\n });\n\n protected stopReset() {\n this.animationSubscription?.unsubscribe();\n }\n\n private getMousePosition(event: MouseEvent): { x: number; y: number } {\n const rect = this.gradientBorderMask().nativeElement.getBoundingClientRect();\n const x = event.clientX - rect.left;\n const y = event.clientY - rect.top;\n return { x, y };\n }\n\n ngOnInit() {\n if (this.aiAssistant()) {\n this.initializeGradient();\n }\n }\n\n protected move(event: MouseEvent) {\n const { x, y } = this.getMousePosition(event);\n this.applyGradient(x, y);\n }\n\n protected leave(event: MouseEvent) {\n const { x: startX, y: startY } = this.getMousePosition(event);\n\n const duration = 1500;\n const frameRate = 60;\n const intervalMs = 1000 / frameRate;\n\n const startTime = performance.now();\n\n this.animationSubscription = interval(intervalMs)\n .pipe(\n map(() => {\n const elapsed = performance.now() - startTime;\n const progress = Math.min(elapsed / duration, 1);\n const easedProgress = this.easeOutCubic(progress);\n return {\n x: startX * (1 - easedProgress),\n y: startY * (1 - easedProgress),\n };\n }),\n takeWhile(({ x, y }) => Math.floor(x) > 0 || Math.floor(y) > 0),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe((coords) => {\n this.applyGradient(coords.x, coords.y);\n });\n }\n\n private easeOutCubic(t: number): number {\n return --t * t * t + 1;\n }\n\n private applyGradient(x: number, y: number) {\n this.gradient.set(\n `radial-gradient(circle at ${x}px ${y}px, ${this.aiAssistant().decoration?.gradientColor} 40%, transparent 60%)`,\n );\n }\n\n private initializeGradient() {\n if (this.aiAssistant()?.decoration) {\n this.gradientColor.set(this.aiAssistant().decoration?.gradientColor || '#fff');\n this.applyGradient(0, 0);\n }\n }\n\n protected readonly showConfigButton = computed(() => {\n return (\n (!this.aiAssistant().isDefault || this.aiAssistant().showConfigButtonOnDefault) &&\n this.aiAssistantService.$isAiAssistantEnabled() &&\n !this.aiAssistantService.$goalsDisabled()\n );\n });\n\n protected readonly phoneNumber$ = inject(SmsDetailsService).phoneNumber$;\n}\n","
\n
\n
\n
\n @if (aiAssistant().assistant.avatarUrl) {\n \n } @else {\n \n }\n
\n

{{ aiAssistant().assistant.name }}

\n @if (aiAssistant().subtitleKey) {\n

{{ aiAssistant().subtitleKey | translate }}

\n }\n
\n @if (isVoiceReceptionistCard()) {\n {{ 'AI_ASSISTANT.SHARED.BETA' | translate }}\n }\n
\n

\n {{ aiAssistant().descriptionKey | translate }}\n

\n @let aiConnections = uniqueConnections();\n @if (aiConnections?.length > 0) {\n
\n @for (aiConnection of aiConnections; track aiConnection) {\n @if (aiConnection.connection) {\n @if (aiConnection.connection.connectionType === 'WhatsApp') {\n \n } @else {\n \n \n }\n }\n }\n
\n }\n
\n @if (showCTAButton()) {\n \n }\n @if (isDisabled()) {\n {{ 'AI_ASSISTANT.SHARED.UPGRADE' | translate }}\n } @else if (isComingSoon()) {\n {{ 'AI_ASSISTANT.SHARED.COMING_SOON' | translate }}\n }\n @if (showConfigButton()) {\n \n {{ 'AI_ASSISTANT.WORKFORCE.CONFIGURE_BUTTON' | translate }}\n \n }\n
\n
\n
\n","import { Component, computed, inject } from '@angular/core';\nimport { MatDialogContent, MatDialogTitle } from '@angular/material/dialog';\nimport { CommonModule } from '@angular/common';\nimport { AiAssistantI18nModule } from '../../assets/i18n/ai-assistant-i18n.module';\nimport { AiAssistantService } from '../../core/services/ai-assistant.service';\nimport { ASSISTANT_ID_VOICE_RECEPTIONIST, ConnectionType } from '../../core';\nimport { catchError, map, of } from 'rxjs';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { SmsDetailsService } from '../../core/services/sms-details.service';\nimport { GalaxyLoadingSpinnerModule } from '@vendasta/galaxy/loading-spinner';\nimport { GalaxyAlertModule } from '@vendasta/galaxy/alert';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\n\n@Component({\n selector: 'ai-voice-try-it-modal',\n imports: [\n MatDialogTitle,\n MatDialogContent,\n AiAssistantI18nModule,\n CommonModule,\n GalaxyLoadingSpinnerModule,\n GalaxyAlertModule,\n ],\n templateUrl: './ai-voice-try-it-modal.component.html',\n styleUrl: './ai-voice-try-it-modal.component.scss',\n})\nexport class AiVoiceTryItModalComponent {\n private readonly assistantService = inject(AiAssistantService);\n private readonly smsDetailsService = inject(SmsDetailsService);\n private readonly snackbarService = inject(SnackbarService);\n\n protected readonly phoneNumber = toSignal(\n this.smsDetailsService.phoneNumber$.pipe(\n catchError((err) => {\n if (err.status !== 404) {\n this.snackbarService.openErrorSnack('Error getting phone number');\n }\n return of('');\n }),\n ),\n );\n // Is the feature flag for voice ai enabled?\n protected readonly isVoiceAiFeatureEnabled = this.assistantService.$isVoiceAiEnabled;\n // Is the phone number set to direct calls to the voice ai?\n protected readonly isRoutingCallsToVoiceAi = toSignal(\n this.smsDetailsService.isRoutingToVoiceAi$.pipe(\n catchError((err) => {\n if (err.status !== 404) {\n this.snackbarService.openErrorSnack(\n 'AI_ASSISTANT.WORKFORCE.DEFAULT_ASSISTANTS.VOICE_RECEPTIONIST.ERRORS.ASSISTANT_CONNECTIONS',\n );\n }\n return of(false);\n }),\n ),\n );\n // Is the voice ai assistant active on the phone channel?\n protected readonly isVoiceAssistantActive = toSignal(\n this.assistantService.activeConnectionsForAssistant(ASSISTANT_ID_VOICE_RECEPTIONIST).pipe(\n map((aiConnections) =>\n aiConnections.some((aiConnection) => aiConnection.connection.connectionType === ConnectionType.Voice),\n ),\n catchError((err) => {\n if (err.status !== 404) {\n this.snackbarService.openErrorSnack(\n 'AI_ASSISTANT.WORKFORCE.DEFAULT_ASSISTANTS.VOICE_RECEPTIONIST.ERRORS.PHONE_NUMBER',\n );\n }\n return of(false);\n }),\n ),\n );\n // The final determined status of the voice assistant\n protected readonly assistantStatus = computed(() => {\n if (this.isLoading()) {\n return undefined;\n }\n\n if (!this.isVoiceAiFeatureEnabled()) {\n return 'Unavailable';\n }\n\n if (!this.isVoiceAssistantActive() && !this.isRoutingCallsToVoiceAi()) {\n return 'Inactive';\n }\n\n // If there is a mismatch between the assistant being active on the phone channel, and the phone config routing to the AI, then\n // we consider it to be in a provisioning state.\n if (this.isVoiceAssistantActive() !== this.isRoutingCallsToVoiceAi()) {\n return 'Provisioning';\n }\n\n return 'Active';\n });\n\n // Whether we're still waiting for the signals to resolve\n protected readonly isLoading = computed(() =>\n [\n this.isVoiceAiFeatureEnabled(),\n this.isVoiceAssistantActive(),\n this.isRoutingCallsToVoiceAi(),\n this.phoneNumber(),\n ].includes(undefined),\n );\n\n protected readonly alertType = computed(() => {\n switch (this.assistantStatus()) {\n case 'Active':\n return 'success';\n case 'Provisioning':\n return 'warning';\n case 'Inactive':\n return 'tip';\n case 'Unavailable':\n return 'tip';\n default:\n return 'tip';\n }\n });\n\n protected readonly alertTitle = computed(() => {\n return `AI_ASSISTANT.WORKFORCE.DEFAULT_ASSISTANTS.VOICE_RECEPTIONIST.STATUS.${(this.assistantStatus() || 'Unavailable').toUpperCase()}.TITLE`;\n });\n\n protected readonly alertMessage = computed(() => {\n return `AI_ASSISTANT.WORKFORCE.DEFAULT_ASSISTANTS.VOICE_RECEPTIONIST.STATUS.${(this.assistantStatus() || 'Unavailable').toUpperCase()}.MESSAGE`;\n });\n}\n","@if (isLoading() === false) {\n @let status = assistantStatus();\n

\n {{ 'AI_ASSISTANT.WORKFORCE.DEFAULT_ASSISTANTS.VOICE_RECEPTIONIST.TRY_IT_TITLE' | translate }}\n

\n \n @if (status !== 'Active') {\n \n {{ alertMessage() | translate }}\n \n } @else {\n \n }\n \n} @else {\n \n \n \n}\n","import { Component, inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { GalaxyPageModule } from '@vendasta/galaxy/page';\nimport { TranslateService } from '@ngx-translate/core';\nimport { AiAssistant, AiAssistantService, ASSISTANT_ID_VOICE_RECEPTIONIST } from '../../core';\nimport { AiAssistantCardComponent } from '../ai-assistant-card/ai-assistant-card.component';\nimport { catchError, combineLatest, map, merge, Observable, of, switchMap } from 'rxjs';\nimport { convertAssistantTypeToDefaultID } from '../../core/services/ai-assistant-utils';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { AssistantType } from '@vendasta/ai-assistants';\nimport { SmsDetailsService } from '../../core/services/sms-details.service';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ACCOUNT_GROUP_ID_TOKEN, AI_DEFAULT_WORKFORCE_TOKEN, PARTNER_ID_TOKEN } from '../../core/tokens';\nimport { AiAssistantI18nModule } from '../../assets/i18n/ai-assistant-i18n.module';\nimport { isNotNullOrUndefined } from '@vendasta/rx-utils';\nimport { GalaxyLoadingSpinnerModule } from '@vendasta/galaxy/loading-spinner';\nimport { AiVoiceTryItModalComponent } from '../ai-voice-try-it-modal/ai-voice-try-it-modal.component';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'ai-assistant-page',\n imports: [\n CommonModule,\n GalaxyPageModule,\n AiAssistantCardComponent,\n AiAssistantI18nModule,\n GalaxyLoadingSpinnerModule,\n ],\n templateUrl: './ai-assistant-page.component.html',\n styleUrl: './ai-assistant-page.component.scss',\n})\nexport class AiAssistantPageComponent {\n protected readonly aiAssistantService = inject(AiAssistantService);\n protected readonly translateService = inject(TranslateService);\n private readonly partnerId$ = inject(PARTNER_ID_TOKEN);\n private readonly accountGroupId$ = inject(ACCOUNT_GROUP_ID_TOKEN);\n private readonly defaultWorkforce$ = inject(AI_DEFAULT_WORKFORCE_TOKEN);\n private matDialog = inject(MatDialog);\n private readonly router = inject(Router);\n smsDetailsService = inject(SmsDetailsService);\n private readonly phoneNumber$ = this.smsDetailsService.phoneNumber$;\n private readonly isVoiceAiEnabled$ = toObservable(this.aiAssistantService.$isVoiceAiEnabled);\n\n private readonly aiWorkforce$ = this.getAiWorkforce();\n\n private readonly fetching$ = merge(\n combineLatest([this.partnerId$, this.accountGroupId$]).pipe(map(() => true)),\n this.aiWorkforce$.pipe(map(() => false)),\n );\n\n protected readonly $fetching = toSignal(this.fetching$, {\n requireSync: true,\n });\n\n protected readonly aiWorkforce = toSignal(this.aiWorkforce$);\n\n private getAiWorkforce(): Observable {\n return combineLatest([this.partnerId$, this.accountGroupId$, this.isVoiceAiEnabled$, this.defaultWorkforce$]).pipe(\n switchMap(([partnerId, accountGroupId, isVoiceAiEnabled, defaultWorkforce]) => {\n return this.aiAssistantService.listAssistants(partnerId, accountGroupId).pipe(\n map((assistantRes) => {\n let assistants =\n assistantRes\n ?.map((assistant) =>\n this.aiAssistantService.hydrateAssistantWithDefaultInfo(assistant, defaultWorkforce),\n )\n ?.filter(isNotNullOrUndefined) ?? [];\n\n // Add default assistants if they are not already in the list of assistants allocated for this account\n defaultWorkforce.forEach((defaultAssistant) => {\n if (\n !assistants.find((assistant) => {\n return (\n convertAssistantTypeToDefaultID(\n assistant.assistant.type ?? AssistantType.ASSISTANT_TYPE_UNSPECIFIED,\n ) === defaultAssistant.assistant.id\n );\n })\n ) {\n // Ensure we're not updating the default assistant by cloning it before\n const defaultAssistantCopy = structuredClone(defaultAssistant);\n\n defaultAssistantCopy.assistant.name = this.translateService.instant(\n defaultAssistantCopy.assistant.name ?? '',\n );\n assistants.push(defaultAssistantCopy);\n }\n });\n\n if (!isVoiceAiEnabled) {\n assistants = assistants.filter((assistant) => {\n return assistant.assistant.id !== ASSISTANT_ID_VOICE_RECEPTIONIST;\n });\n } else {\n // Hydrate the voice assistant with the try it modal action\n const voiceAssistant = assistants.find(\n (assistant) => assistant.assistant.id === ASSISTANT_ID_VOICE_RECEPTIONIST,\n );\n if (voiceAssistant?.cta) {\n voiceAssistant.cta.action = {\n showButton: true,\n callback: this.openVoiceReceptionistTryItModal.bind(this),\n };\n }\n }\n\n return assistants;\n }),\n switchMap((assistants) => {\n const connections$ = this.aiAssistantService.listConnections(partnerId, accountGroupId, true);\n return connections$.pipe(\n map((aiConnections) => {\n return assistants.map((assistant) => {\n assistant.connections = aiConnections.filter((aiConnection) => {\n return (\n assistant.assistant.type !== undefined &&\n aiConnection.connection.supportedAssistantTypes?.includes(assistant.assistant.type)\n );\n });\n return assistant;\n });\n }),\n );\n }),\n catchError((e) => {\n console.error('error getting AI workforce', e);\n return of([]);\n }),\n );\n }),\n );\n }\n\n protected async openVoiceReceptionistTryItModal(): Promise {\n this.matDialog.open(AiVoiceTryItModalComponent);\n }\n\n protected triggerAction(aiAssistant: AiAssistant): void {\n if (aiAssistant) {\n this.buildAssistantActionCallback(aiAssistant)?.();\n }\n }\n\n protected buildAssistantActionCallback(aiAssistant: AiAssistant): (() => void) | undefined {\n if (!aiAssistant?.cta || !aiAssistant?.cta.action?.showButton) {\n return undefined;\n }\n\n const action = aiAssistant?.cta?.action;\n if (action?.url) {\n return () => window.open(action.url, '_blank');\n }\n\n if (action?.pathCommands) {\n return () => this.router.navigate(action.pathCommands);\n }\n\n if (action?.callback) {\n return action.callback;\n }\n return undefined;\n }\n}\n","\n \n {{ 'AI_ASSISTANT.WORKFORCE.TITLE' | translate }}\n \n \n @if ($fetching()) {\n
\n \n
\n } @else {\n
\n @for (aiAssistant of aiWorkforce(); track aiAssistant) {\n \n \n }\n
\n }\n
\n
\n","import { CommonModule } from '@angular/common';\nimport { Component } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@Component({\n selector: 'ai-enable-lead-capture-dialog',\n imports: [CommonModule, MatDialogModule, MatButtonModule, TranslateModule],\n templateUrl: './enable-lead-capture-dialog.component.html',\n})\nexport class EnableLeadCaptureDialogComponent {}\n","

{{ 'AI_ASSISTANT.SETTINGS.ENABLE_LEAD_CAPTURE.DESCRIPTION' | translate }}

\n\n

{{ 'AI_ASSISTANT.SETTINGS.ENABLE_LEAD_CAPTURE_DIALOG.INFORMATION' | translate }}

\n

{{ 'AI_ASSISTANT.SETTINGS.ENABLE_LEAD_CAPTURE_DIALOG.INFORMATION_2' | translate }}

\n

{{ 'AI_ASSISTANT.SETTINGS.ENABLE_LEAD_CAPTURE_DIALOG.INFORMATION_3' | translate }}

\n
\n\n \n\n","import { CommonModule } from '@angular/common';\nimport { Component } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { GalaxyBadgeModule } from '@vendasta/galaxy/badge';\nimport { AiAssistantI18nModule } from '../../assets/i18n/ai-assistant-i18n.module';\n@Component({\n selector: 'ai-additional-instructions-dialog',\n imports: [CommonModule, MatDialogModule, MatButtonModule, AiAssistantI18nModule, GalaxyBadgeModule],\n templateUrl: './additional-instructions-dialog.component.html',\n})\nexport class AdditionalInstructionsDialogComponent {}\n","

\n {{ 'AI_ASSISTANT.SETTINGS.ADDITIONAL_INSTRUCTIONS_DIALOG.TITLE' | translate }}\n \n {{ 'AI_ASSISTANT.SHARED.BETA' | translate }}\n \n

\n\n\n

\n {{ 'AI_ASSISTANT.SETTINGS.ADDITIONAL_INSTRUCTIONS_DIALOG.INFORMATION_WARNING' | translate }}\n {{ 'AI_ASSISTANT.SETTINGS.ADDITIONAL_INSTRUCTIONS_DIALOG.INFORMATION' | translate }}\n

\n

{{ 'AI_ASSISTANT.SETTINGS.ADDITIONAL_INSTRUCTIONS_DIALOG.EXAMPLE_HEADING' | translate }}

\n
    \n
  1. {{ 'AI_ASSISTANT.SETTINGS.ADDITIONAL_INSTRUCTIONS_DIALOG.EXAMPLE_1' | translate }}
  2. \n
  3. {{ 'AI_ASSISTANT.SETTINGS.ADDITIONAL_INSTRUCTIONS_DIALOG.EXAMPLE_2' | translate }}
  4. \n
  5. {{ 'AI_ASSISTANT.SETTINGS.ADDITIONAL_INSTRUCTIONS_DIALOG.EXAMPLE_3' | translate }}
  6. \n
  7. {{ 'AI_ASSISTANT.SETTINGS.ADDITIONAL_INSTRUCTIONS_DIALOG.EXAMPLE_4' | translate }}
  8. \n
  9. {{ 'AI_ASSISTANT.SETTINGS.ADDITIONAL_INSTRUCTIONS_DIALOG.EXAMPLE_5' | translate }}
  10. \n
  11. \n {{ 'AI_ASSISTANT.SETTINGS.ADDITIONAL_INSTRUCTIONS_DIALOG.EXAMPLE_6' | translate }}\n
      \n
    1. {{ 'AI_ASSISTANT.SETTINGS.ADDITIONAL_INSTRUCTIONS_DIALOG.FIELD_1' | translate }}
    2. \n
    3. {{ 'AI_ASSISTANT.SETTINGS.ADDITIONAL_INSTRUCTIONS_DIALOG.FIELD_2' | translate }}
    4. \n
    5. {{ 'AI_ASSISTANT.SETTINGS.ADDITIONAL_INSTRUCTIONS_DIALOG.FIELD_3' | translate }}
    6. \n
    7. {{ 'AI_ASSISTANT.SETTINGS.ADDITIONAL_INSTRUCTIONS_DIALOG.FIELD_4' | translate }}
    8. \n
    9. {{ 'AI_ASSISTANT.SETTINGS.ADDITIONAL_INSTRUCTIONS_DIALOG.FIELD_5' | translate }}
    10. \n
    11. {{ 'AI_ASSISTANT.SETTINGS.ADDITIONAL_INSTRUCTIONS_DIALOG.FIELD_6' | translate }}
    12. \n
    13. {{ 'AI_ASSISTANT.SETTINGS.ADDITIONAL_INSTRUCTIONS_DIALOG.FIELD_7' | translate }}
    14. \n
    15. {{ 'AI_ASSISTANT.SETTINGS.ADDITIONAL_INSTRUCTIONS_DIALOG.FIELD_8' | translate }}
    16. \n
    17. {{ 'AI_ASSISTANT.SETTINGS.ADDITIONAL_INSTRUCTIONS_DIALOG.FIELD_9' | translate }}
    18. \n
    \n
  12. \n
\n

{{ 'AI_ASSISTANT.SETTINGS.ADDITIONAL_INSTRUCTIONS_DIALOG.DO_NOT_WORK_HEADING' | translate }}

\n

{{ 'AI_ASSISTANT.SETTINGS.ADDITIONAL_INSTRUCTIONS_DIALOG.DO_NOT_WORK_DESCRIPTION' | translate }}

\n
\n\n \n\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCardModule } from '@angular/material/card';\nimport { RouterModule } from '@angular/router';\nimport { GalaxyStickyFooterModule } from '@vendasta/galaxy/sticky-footer';\nimport { AiAssistantI18nModule } from '../../assets/i18n/ai-assistant-i18n.module';\n@Component({\n selector: 'ai-sticky-footer',\n imports: [\n CommonModule,\n RouterModule,\n MatCardModule,\n MatButtonModule,\n AiAssistantI18nModule,\n GalaxyStickyFooterModule,\n ],\n templateUrl: './sticky-footer.component.html',\n})\nexport class StickyFooterComponent {\n @Output() public submitClick = new EventEmitter();\n @Output() public cancelClick = new EventEmitter();\n @Input() public cancelLink?: string;\n @Input() public disabled = false;\n @Input() public submitOverride?: string;\n @Input() public cancelOverride?: string;\n}\n","\n \n @if (cancelLink) {\n \n {{ cancelOverride || 'AI_ASSISTANT.SHARED.CANCEL' | translate }}\n \n } @else {\n \n }\n\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Environment, EnvironmentService } from '@galaxy/core';\nimport { FileInfo, GalaxyImageUploaderService, UploadResponse } from '@vendasta/galaxy/uploader';\nimport { Observable } from 'rxjs';\n\n@Injectable()\nexport class ImageUploadService extends GalaxyImageUploaderService {\n constructor(\n private httpClient: HttpClient,\n private environmentService: EnvironmentService,\n ) {\n super(httpClient);\n }\n\n public getURL(): string {\n switch (this.environmentService.getEnvironment()) {\n case Environment.DEMO: {\n return 'https://media-demo.apigateway.co/image/upload';\n }\n case Environment.PROD: {\n return 'https://media-prod.apigateway.co/image/upload';\n }\n default: {\n return 'https://media-demo.apigateway.co/image/upload';\n }\n }\n }\n\n buildRequest(fileInfo: FileInfo): Observable {\n const imageToUpload = fileInfo?.data?.croppedImage || fileInfo.file;\n const formData = new FormData();\n\n formData.append('image', imageToUpload);\n return this.httpClient.post(this.getURL(), formData, { withCredentials: true });\n }\n}\n","import { Component, Inject, inject, signal } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogModule, MatDialogRef } from '@angular/material/dialog';\nimport {\n FileInfo,\n FileUploadError,\n GALAXY_UPLOADER_SERVICE_TOKEN,\n GalaxyUploaderModule,\n} from '@vendasta/galaxy/uploader';\nimport { ImageUploadService } from '../image-upload.service';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GalaxyAvatarModule } from '@vendasta/galaxy/avatar';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { firstValueFrom } from 'rxjs';\n\n@Component({\n selector: 'ai-image-upload-modal',\n imports: [MatDialogModule, GalaxyUploaderModule, TranslateModule, GalaxyAvatarModule, MatButtonModule, MatIconModule],\n templateUrl: './image-upload-modal.component.html',\n styleUrl: './image-upload-modal.component.scss',\n providers: [{ provide: GALAXY_UPLOADER_SERVICE_TOKEN, useClass: ImageUploadService }],\n})\nexport class ImageUploadModalComponent {\n file = signal(null);\n private readonly uploadService = inject(GALAXY_UPLOADER_SERVICE_TOKEN) as ImageUploadService;\n protected readonly state = signal('change');\n\n private readonly dialogRef = inject(MatDialogRef);\n\n private readonly snack = inject(SnackbarService);\n\n constructor(@Inject(MAT_DIALOG_DATA) public data: { imageURL: string; defaultSvg: string }) {\n this.state.set(data.imageURL ? 'view' : 'change');\n }\n\n onRemove(): void {\n this.dialogRef.close({ removed: true });\n }\n\n onError(event: FileUploadError): void {\n this.snack.openErrorSnack(event.error.message);\n this.dialogRef.close();\n }\n\n onUpload(fileInfo: FileInfo | null): void {\n if (!fileInfo) return;\n this.uploadService.clear();\n this.dialogRef.close({ newImageUrl: fileInfo.url });\n }\n\n onFilesChanged(files: FileInfo[]): void {\n const fileInfo = files?.[0];\n if (fileInfo) {\n this.file.set(fileInfo);\n }\n }\n\n async endEdit(blob?: Blob | null): Promise {\n const currentFile = this.file();\n if (blob && currentFile) {\n this.uploadService.setCroppedImage(currentFile, blob);\n this.uploadService.uploadQueuedFiles();\n\n firstValueFrom(this.uploadService.fileUploaded$).then((fileInfo) => {\n this.dialogRef.close({\n newImageUrl: fileInfo.url,\n });\n });\n } else {\n this.uploadService.clear();\n this.file.set(null);\n this.dialogRef.close();\n }\n }\n}\n","

{{ 'AI_ASSISTANT.SETTINGS.IMAGE_UPLOAD.CHANGE_APPEARANCE' | translate }}

\n\n\n @switch (state()) {\n @case ('view') {\n
\n \n\n
\n \n @if (data.imageURL) {\n \n }\n
\n
\n }\n @case ('change') {\n @if (!file()) {\n \n } @else {\n \n }\n }\n }\n
\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, inject, input, Output, signal } from '@angular/core';\nimport { GALAXY_UPLOADER_SERVICE_TOKEN, GalaxyUploaderModule } from '@vendasta/galaxy/uploader';\nimport { ImageUploadService } from './image-upload.service';\nimport { MatButtonModule } from '@angular/material/button';\nimport { GalaxyAvatarModule } from '@vendasta/galaxy/avatar';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ImageUploadModalComponent } from './image-upload-modal/image-upload-modal.component';\n\n@Component({\n selector: 'ai-image-upload',\n imports: [\n CommonModule,\n TranslateModule,\n GalaxyUploaderModule,\n MatButtonModule,\n GalaxyAvatarModule,\n MatIconModule,\n MatMenuModule,\n ],\n providers: [{ provide: GALAXY_UPLOADER_SERVICE_TOKEN, useClass: ImageUploadService }],\n templateUrl: './image-upload.component.html',\n styleUrls: ['./image-upload.component.scss'],\n})\nexport class ImageUploadComponent {\n imageUrl = input();\n defaultSvg = input();\n @Output() imageUrlChanged = new EventEmitter();\n\n newUploadedImageUrl = signal(null);\n private readonly dialog = inject(MatDialog);\n\n onChangeImage(): void {\n const dialogRef = this.dialog.open(ImageUploadModalComponent, {\n width: '500px',\n data: {\n imageURL: this.imageUrl(),\n defaultSvg: this.defaultSvg(),\n },\n });\n\n dialogRef.afterClosed().subscribe((result) => {\n if (result) {\n if (result.remove) {\n this.imageUrlChanged.emit('');\n } else {\n this.imageUrlChanged.emit(result.newImageUrl);\n this.newUploadedImageUrl.set(result.newImageUrl);\n }\n }\n });\n }\n}\n","
\n \n\n
\n photo_camera\n
\n\n @if (newUploadedImageUrl() || imageUrl()) {\n
\n \n
\n }\n
\n","import { inject, Injectable, signal } from '@angular/core';\nimport { OpenConfirmationModalService } from '@vendasta/galaxy/confirmation-modal';\nimport { MaybeAsync } from '@angular/router';\nimport { map } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class UnsavedChangesGuard {\n private readonly confirmationModal = inject(OpenConfirmationModalService);\n private readonly hasUnsavedChanges = signal(false);\n\n canDeactivate(): MaybeAsync {\n if (this.hasUnsavedChanges()) {\n return this.confirmationModal\n .openModal({\n type: 'warn',\n title: 'AI_ASSISTANT.SHARED.UNSAVED_CHANGES.TITLE',\n message: 'AI_ASSISTANT.SHARED.UNSAVED_CHANGES.MESSAGE',\n confirmButtonText: 'AI_ASSISTANT.SHARED.UNSAVED_CHANGES.CONFIRM',\n })\n .pipe(map((confirmation) => !!confirmation));\n }\n return true;\n }\n\n notifyStateChanged(hasChanges: boolean): void {\n this.hasUnsavedChanges.set(hasChanges);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, inject, input } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { filter, map, shareReplay, switchMap } from 'rxjs';\nimport { AiAssistantI18nModule } from '../../assets/i18n/ai-assistant-i18n.module';\nimport { GalaxyProgressBarModule } from '@vendasta/galaxy/progress-bar';\nimport { MatIconModule } from '@angular/material/icon';\nimport { GalaxyTooltipModule } from '@vendasta/galaxy/tooltip';\nimport { VoiceApiService } from '@vendasta/voice';\nimport { NamespaceInterface } from '@vendasta/ai-assistants/lib/_internal/interfaces/namespace.interface';\nimport { toObservable } from '@angular/core/rxjs-interop';\n\n@Component({\n selector: 'ai-assistant-voice-usage',\n imports: [CommonModule, AiAssistantI18nModule, GalaxyProgressBarModule, MatIconModule, GalaxyTooltipModule],\n templateUrl: './ai-assistant-voice-usage.component.html',\n styleUrls: ['./ai-assistant-voice-usage.component.scss'],\n})\nexport class AiAssistantVoiceUsageComponent {\n namespace = input();\n\n protected readonly translationService = inject(TranslateService);\n private readonly voiceApiService = inject(VoiceApiService);\n\n readonly callUsageLimitMinutes = 300;\n\n callUsage$ = toObservable(this.namespace).pipe(\n filter((namespace) => !!namespace),\n switchMap((namespace) => this.voiceApiService.getCallUsage({ namespace: namespace })),\n map((r) => {\n // nanoseconds to minutes, rounded down to the nearest minute\n const totalMinutes = Math.floor(r?.totalDuration / 60_000_000_000);\n return {\n totalMinutes: totalMinutes,\n startDate: r?.startTime,\n endDate: r?.endTime,\n limitPercent: Math.min(Math.round((totalMinutes / this.callUsageLimitMinutes) * 100), 100),\n };\n }),\n shareReplay(1),\n );\n}\n","@let callUsage = callUsage$ | async;\n
\n
\n {{\n 'AI_ASSISTANT.WORKFORCE.DEFAULT_ASSISTANTS.VOICE_RECEPTIONIST.MINUTES_USED'\n | translate\n : {\n used: callUsage?.totalMinutes || 0,\n limit: callUsageLimitMinutes,\n }\n }}\n
\n \n
\n {{\n 'AI_ASSISTANT.WORKFORCE.DEFAULT_ASSISTANTS.VOICE_RECEPTIONIST.USAGE_PROGRESS'\n | translate\n : {\n startDay: callUsage?.startDate | date: 'MMM d' : 'UTC',\n endDay: callUsage?.endDate | date: 'MMM d' : 'UTC',\n }\n }}\n
\n
\n
\n","import { Component, input, output } from '@angular/core';\nimport { GoalInterface } from '@vendasta/ai-assistants/lib/_internal/interfaces/goal.interface';\nimport { MatListModule } from '@angular/material/list';\nimport { MatCardModule } from '@angular/material/card';\nimport { AiAssistantI18nModule } from '../../../assets/i18n/ai-assistant-i18n.module';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'ai-goals-list',\n imports: [CommonModule, MatCardModule, MatListModule, AiAssistantI18nModule],\n templateUrl: './goals-list.component.html',\n styleUrl: './goals-list.component.scss',\n})\nexport class GoalsListComponent {\n readonly goals = input.required();\n goalClicked = output();\n}\n","
\n @for (goal of goals(); track goal) {\n \n \n
\n {{ goal.name }}\n
\n
\n {{ goal.description }}\n
\n
\n
\n }\n
\n","import { inject, Injectable } from '@angular/core';\nimport {\n FunctionApiService,\n GoalApiService,\n GoalInterface,\n PromptModuleApiService,\n PromptModuleInterface,\n PromptVersion,\n} from '@vendasta/ai-assistants';\nimport { getNamespace } from './ai-assistant-utils';\nimport { map, Observable } from 'rxjs';\nimport { HttpResponse } from '@angular/common/http';\nimport { PromptModuleKeyInterface } from '@vendasta/ai-assistants/lib/_internal/interfaces/prompt.interface';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AiGoalService {\n private readonly goalApiService = inject(GoalApiService);\n private readonly promptModuleApiService = inject(PromptModuleApiService);\n private readonly functionApiService = inject(FunctionApiService);\n\n buildGoalConfigurationUrl(accountGroupId: string, goalId: string): string {\n if (accountGroupId) {\n return `/account/location/${accountGroupId}/ai/goals/${goalId}/edit`;\n }\n return `/ai/goals/${goalId}/edit`;\n }\n\n getGoal(accountGroupId: string, partnerId: string, goalId: string): Observable {\n return this.goalApiService\n .get({\n id: goalId,\n namespace: getNamespace(accountGroupId, partnerId),\n })\n .pipe(map((response) => response?.goal));\n }\n\n getPromptModule(promptModuleId: PromptModuleKeyInterface): Observable<{\n promptModule: PromptModuleInterface;\n promptVersion: PromptVersion;\n }> {\n return this.promptModuleApiService\n .getDeployedVersion({\n id: promptModuleId.id,\n namespace: promptModuleId.namespace,\n })\n .pipe(\n map((response) => ({\n promptModule: response?.promptModule,\n promptVersion: response?.deployedPromptModuleVersion,\n })),\n );\n }\n\n upsertGoal(goal: GoalInterface): Observable> {\n return this.goalApiService.upsert({ goal });\n }\n}\n","import { CommonModule, Location } from '@angular/common';\nimport {\n Component,\n computed,\n DestroyRef,\n effect,\n EnvironmentInjector,\n HostListener,\n inject,\n OnDestroy,\n runInInjectionContext,\n signal,\n} from '@angular/core';\nimport { takeUntilDestroyed, toSignal } from '@angular/core/rxjs-interop';\nimport { FormArray, FormControl, FormGroup, FormsModule, ReactiveFormsModule, Validators } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { ActivatedRoute, Router, RouterModule } from '@angular/router';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { GalaxyLoadingSpinnerModule } from '@vendasta/galaxy/loading-spinner';\nimport { KnowledgeSource } from '@vendasta/embeddings';\nimport { AiKnowledgeService, ApplicationKnowledgeComponent } from '@galaxy/ai-knowledge';\nimport { MatDialog, MatDialogModule } from '@angular/material/dialog';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { GalaxyPageNoAccessUnauthorizedModule } from '@vendasta/galaxy/page-no-access-unauthorized';\nimport {\n catchError,\n combineLatest,\n distinctUntilChanged,\n EMPTY,\n firstValueFrom,\n map,\n of,\n shareReplay,\n startWith,\n switchMap,\n take,\n throwError,\n} from 'rxjs';\nimport { GalaxyBadgeModule } from '@vendasta/galaxy/badge';\nimport { GalaxyTooltipModule } from '@vendasta/galaxy/tooltip';\nimport {\n AssistantApiService,\n AssistantInterface,\n AssistantType,\n ConfigurableGoal,\n ConfigurableGoalInterface,\n ConnectionInterface,\n KeyValuePairInterface,\n Namespace,\n VendorModel,\n} from '@vendasta/ai-assistants';\n\nimport { AiAssistantService } from '../../../core/services/ai-assistant.service';\nimport { BookingConfigService } from '../../../core/services/booking-config.service';\nimport {\n DEFAULT_CONNECTION_PREFIX,\n knowledgeAppType,\n WEBCHAT_WIDGET_CONNECTION_TYPE,\n} from '../../../core/ai-assistant.constants';\nimport { EnableLeadCaptureDialogComponent } from '../enable-lead-capture-dialog/enable-lead-capture-dialog.component';\nimport { AdditionalInstructionsDialogComponent } from '../../additional-instructions-dialog/additional-instructions-dialog.component';\nimport { StickyFooterComponent } from '../../sticky-footer/sticky-footer.component';\nimport { ImageUploadComponent } from '../image-upload/image-upload.component';\nimport { GalaxyPageModule } from '@vendasta/galaxy/page';\nimport { AiAssistantI18nModule } from '../../../assets/i18n/ai-assistant-i18n.module';\nimport { GalaxyAlertModule } from '@vendasta/galaxy/alert';\nimport { GalaxyEmptyStateModule } from '@vendasta/galaxy/empty-state';\nimport {\n AssistantIdToAssistantType,\n familyFromVoice,\n getVoiceFamilies,\n previewUrlFromVoice,\n voicesForFamily,\n} from '../../../core/services/ai-assistant-utils';\nimport { GalaxyAvatarModule } from '@vendasta/galaxy/avatar';\nimport { ACCOUNT_GROUP_ID_TOKEN, AI_DEFAULT_WORKFORCE_TOKEN, PARTNER_ID_TOKEN } from '../../../core/tokens';\nimport { UnsavedChangesGuard } from './unsaved-changes.guard';\nimport { ConversationApiService, Widget } from '@vendasta/conversation';\nimport { AiAssistantVoiceUsageComponent } from '../../ai-assistant-voice-usage/ai-assistant-voice-usage.component';\nimport { PopoverPositions } from '@vendasta/galaxy/popover';\nimport { MatOptionModule } from '@angular/material/core';\nimport { MatSelectModule } from '@angular/material/select';\nimport { CdkAccordionModule } from '@angular/cdk/accordion';\nimport { MatSliderModule } from '@angular/material/slider';\nimport { AiVoice, AiVoiceFamily, MeetingType } from '../../../core/interfaces/config.interface';\nimport { FeatureFlagService } from '@galaxy/partner';\nimport {\n AiConnection,\n ConnectionType,\n MY_LISTING_CONNECTION_NAME,\n} from '../../../core/interfaces/ai-assistant.interface';\nimport { TranslateService } from '@galaxy/lexicon';\nimport { GoalsListComponent } from '../goals-and-instructions/goals-list.component';\nimport { AiGoalService } from '../../../core/services/ai-goal.service';\n\nconst ADDITIONAL_INSTRUCTIONS_LIMIT = 10000;\nconst FALLBACK_BACK_URL = '../../';\nconst MEETING_URL = '../../../../events-and-meetings';\n\n// Default global goals\nconst DEFAULT_LEAD_CAPTURE_GOAL_ID = 'DefaultLeadCapture';\nconst DEFAULT_MEETING_BOOKING_GOAL_ID = 'BookAppointmentsWithBookMeNow';\nconst ADDITIONAL_INSTRUCTIONS_GOAL_ID = 'AdditionalInstructions';\nconst DEEPGRAM_SPEAK_FEATURE_FLAG = 'deepgram_speak';\n\n// Goal configuration keys\nconst GOAL_CONFIG_KEY_CALENDAR_ID = 'calendarId';\nconst GOAL_CONFIG_KEY_MEETING_TYPE_ID = 'meetingTypeId';\n\n@Component({\n selector: 'ai-assistant-form',\n imports: [\n CommonModule,\n MatInputModule,\n MatCardModule,\n MatOptionModule,\n MatSelectModule,\n MatSliderModule,\n CdkAccordionModule,\n ReactiveFormsModule,\n FormsModule,\n MatButtonModule,\n GalaxyFormFieldModule,\n GalaxyLoadingSpinnerModule,\n GalaxyPageNoAccessUnauthorizedModule,\n AiAssistantI18nModule,\n MatCheckboxModule,\n RouterModule,\n MatIconModule,\n MatButtonToggleModule,\n MatDialogModule,\n MatDividerModule,\n ApplicationKnowledgeComponent,\n GalaxyBadgeModule,\n ImageUploadComponent,\n GalaxyTooltipModule,\n StickyFooterComponent,\n GalaxyPageModule,\n GalaxyAlertModule,\n GalaxyEmptyStateModule,\n GalaxyAvatarModule,\n AiAssistantVoiceUsageComponent,\n GoalsListComponent,\n ],\n templateUrl: './ai-assistant-form.component.html',\n styleUrls: ['./ai-assistant-form.component.scss'],\n})\nexport class AiAssistantFormComponent implements OnDestroy {\n private destroyRef = inject(DestroyRef);\n\n PopoverPositions = PopoverPositions;\n\n static connectionsFormGroupFactory(assistant?: AssistantInterface, aiConnections?: AiConnection[]): FormGroup {\n const formArray =\n aiConnections?.map(\n (aiConnection) =>\n new FormControl({\n value: aiConnection.connection.assistantKeys?.some((assistantKey) => assistantKey.id === assistant?.id),\n disabled: aiConnection.connection.isConnectionLocked || aiConnection.isDefault,\n }),\n ) || [];\n\n return new FormGroup({\n connections: new FormArray(formArray),\n });\n }\n\n static assistantFormGroupFactory(\n assistantService: AiAssistantService,\n assistant?: AssistantInterface,\n additionalInstructions?: string,\n ) {\n let leadCaptureEnabled = false;\n if (assistantService.$isAssistantGoalsEnabled()) {\n leadCaptureEnabled =\n assistant?.configurableGoals?.some((goal) => goal.goal?.id === DEFAULT_LEAD_CAPTURE_GOAL_ID) || false;\n } else {\n leadCaptureEnabled = assistant?.config?.inboxConfig?.leadCaptureEnabled || false;\n additionalInstructions = assistant?.config?.inboxConfig?.additionalInstructions || '';\n }\n\n let meetingBookingEnabled = false;\n let calendarId = '';\n let meetingTypeId = '';\n if (assistantService.$isAIMeetingBookingEnabled()) {\n const bookingGoal = assistant?.configurableGoals?.find(\n (goal) => goal.goal?.id === DEFAULT_MEETING_BOOKING_GOAL_ID,\n );\n\n meetingBookingEnabled = Boolean(bookingGoal);\n calendarId =\n bookingGoal?.configuration?.find((config) => config.key === GOAL_CONFIG_KEY_CALENDAR_ID)?.value || '';\n meetingTypeId =\n bookingGoal?.configuration?.find((config) => config.key === GOAL_CONFIG_KEY_MEETING_TYPE_ID)?.value || '';\n }\n\n return new FormGroup({\n name: new FormControl(assistant?.name || ''),\n assistantAvatarUrl: new FormControl(assistant?.avatarUrl || ''),\n enableLeadCapture: new FormControl(leadCaptureEnabled || false),\n enableMeetingBooking: new FormControl(meetingBookingEnabled || false),\n calendarAndMeetingType: new FormControl({\n calendarId: calendarId || '',\n meetingTypeId: meetingTypeId || '',\n }),\n additionalPrompt: new FormControl(additionalInstructions || '', [\n Validators.maxLength(ADDITIONAL_INSTRUCTIONS_LIMIT),\n ]),\n assistantId: new FormControl(assistant?.id || ''),\n namespace: new FormControl(assistant?.namespace),\n });\n }\n\n static voiceConfigFormGroupFactory(assistant?: AssistantInterface) {\n // There is a translation here between the options we present to the user, and which models/config-options those become.\n let voice = assistant?.config?.voiceConfig?.modelConfig?.openaiRealtimeConfig?.voice || 'alloy';\n let family = familyFromVoice(voice);\n const vendorModel = assistant?.config?.voiceConfig?.vendorModel ?? VendorModel.VENDOR_MODEL_OPEN_AI_REALTIME;\n\n if (vendorModel === VendorModel.VENDOR_MODEL_DEEPGRAM) {\n voice = assistant?.config?.voiceConfig?.modelConfig?.deepgramConfig?.voice ?? 'aura-asteria-en';\n family = familyFromVoice(voice);\n }\n\n return new FormGroup({\n family: new FormControl(family?.name ?? 'OpenAI GPT-4o Realtime (Sep. 17 Preview)'),\n voice: new FormControl(voice),\n advanced: new FormGroup({\n turnDetectionThreshold: new FormControl(\n assistant?.config?.voiceConfig?.modelConfig?.openaiRealtimeConfig?.turnDetection?.threshold || 0.75,\n ),\n turnDetectionPrefixPadding: new FormControl(\n assistant?.config?.voiceConfig?.modelConfig?.openaiRealtimeConfig?.turnDetection?.prefixPadding || 300,\n ),\n turnDetectionSilenceDuration: new FormControl(\n assistant?.config?.voiceConfig?.modelConfig?.openaiRealtimeConfig?.turnDetection?.silenceDuration || 500,\n ),\n }),\n });\n }\n\n static knowledgeFormGroupFactory(assistantId?: string) {\n const kID = inject(AiAssistantService).buildAppId(assistantId);\n return new FormGroup({\n knowledgeSources: new FormControl([]),\n // following is used only to store web chat state\n knowledgeAppId: new FormControl(kID),\n });\n }\n\n private readonly assistantAPI = inject(AssistantApiService);\n private readonly snackbarService = inject(SnackbarService);\n private readonly knowledgeService = inject(AiKnowledgeService);\n private readonly assistantService = inject(AiAssistantService);\n private readonly goalService = inject(AiGoalService);\n private readonly featureFlagService = inject(FeatureFlagService);\n private readonly bookingConfigService = inject(BookingConfigService);\n private readonly router = inject(Router);\n private readonly route = inject(ActivatedRoute);\n private readonly unsavedGuard = inject(UnsavedChangesGuard);\n private readonly dialog = inject(MatDialog);\n private readonly injector = inject(EnvironmentInjector);\n private readonly accountGroupId$ = inject(ACCOUNT_GROUP_ID_TOKEN);\n private readonly partnerId$ = inject(PARTNER_ID_TOKEN);\n private readonly conversationApiService = inject(ConversationApiService);\n private readonly translateService = inject(TranslateService);\n protected readonly DEFAULT_CONNECTION_PREFIX = DEFAULT_CONNECTION_PREFIX;\n protected voiceFamilies: AiVoiceFamily[] = [];\n protected readonly vendorModels = VendorModel;\n protected availableVoices = signal([]);\n private readonly defaultWorkforce$ = inject(AI_DEFAULT_WORKFORCE_TOKEN);\n protected readonly voiceFamily = signal(null);\n private readonly navHistory: string[] = [];\n protected previewAudio = signal(new Audio(''));\n protected currentlyPlayingPreview = signal(false);\n\n // combine the accountGroupId$ and partnerId$ into a single observable that only emits when one of them changes\n private readonly partnerIdAndAccountGroupId$ = combineLatest([this.partnerId$, this.accountGroupId$]).pipe(\n distinctUntilChanged((a, b) => a[0] === b[0] && a[1] === b[1]),\n );\n\n protected readonly $isSaving = signal(false);\n protected readonly error = signal(null);\n\n protected readonly additionalInstructionsLimit = ADDITIONAL_INSTRUCTIONS_LIMIT;\n\n private readonly $hasUnsavedChanges = signal(false);\n private readonly $initialSources = signal(null);\n protected readonly $canSave = computed(() => !this.$isLoading() && this.$hasUnsavedChanges());\n\n protected assistantForm = AiAssistantFormComponent.assistantFormGroupFactory(this.assistantService);\n protected knowledgeForm = AiAssistantFormComponent.knowledgeFormGroupFactory();\n protected connectionForm = AiAssistantFormComponent.connectionsFormGroupFactory();\n protected voiceConfigForm = AiAssistantFormComponent.voiceConfigFormGroupFactory();\n private previousUrl: string | undefined;\n\n public readonly showCustomGoals = computed(() => {\n return this.assistantService.$isNewCustomAIGoalsEnabled() && this.assistantService.$isAssistantGoalsEnabled();\n });\n\n private readonly assistantId = this.route.snapshot.params['assistantId'];\n\n readonly aiAssistant$ = combineLatest([this.partnerIdAndAccountGroupId$, this.defaultWorkforce$]).pipe(\n switchMap(([partnerIdAndAccountGroupId, defaultWorkforce]) => {\n const partnerId = partnerIdAndAccountGroupId[0];\n const accountGroupId = partnerIdAndAccountGroupId[1];\n return this.assistantService.getAssistant(partnerId, accountGroupId, this.assistantId).pipe(\n map((assistant) => {\n return this.assistantService.hydrateAssistantWithDefaultInfo(assistant, defaultWorkforce);\n }),\n catchError((err) => {\n // create the assistant if it does not exist\n if (err.status === 404) {\n return this.assistantService.getDefaultAssistant(partnerId, accountGroupId, this.assistantId).pipe(\n map((assistant) => assistant),\n catchError((err) => {\n this.error.set(err.message);\n return EMPTY;\n }),\n );\n } else {\n this.error.set(err.message);\n return EMPTY;\n }\n }),\n );\n }),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n readonly aiAssistant = toSignal(this.aiAssistant$, {\n initialValue: null,\n });\n\n readonly assistant = computed(() => this.aiAssistant()?.assistant);\n\n readonly goals = computed(() => {\n return (this.assistant()?.configurableGoals || [])\n .map((configurableGoal) => configurableGoal.goal)\n .filter((goal) => !goal?.namespace?.globalNamespace);\n });\n\n readonly additionalInstructions$ = this.aiAssistant$.pipe(\n switchMap((aiAssistant) => {\n const additionalInstructionsPromptModule = aiAssistant?.assistant?.configurableGoals?.find(\n (goal) => goal.goal?.id === this.buildAdditionalInstructionsGoalID(aiAssistant?.assistant?.id || ''),\n )?.goal?.promptModules?.[0];\n if (additionalInstructionsPromptModule) {\n return this.assistantService\n .getPromptModuleVersion(\n additionalInstructionsPromptModule.id ?? '',\n additionalInstructionsPromptModule.namespace ?? {},\n additionalInstructionsPromptModule.deployedVersion ?? '',\n )\n .pipe(map((instructions) => instructions || ''));\n }\n return of('');\n }),\n );\n\n readonly $additionalInstructions = toSignal(this.additionalInstructions$, {\n initialValue: '',\n });\n\n readonly connections$ = this.partnerIdAndAccountGroupId$.pipe(\n switchMap(([partnerId, accountGroupId]) =>\n this.assistantService.listConnectionsForAssistant(partnerId, accountGroupId, this.assistantId),\n ),\n catchError(() => {\n this.snackbarService.openErrorSnack('AI_ASSISTANT.SETTINGS.CHANNELS.FETCH_ERROR');\n return of([] as AiConnection[]);\n }),\n );\n readonly $connections = toSignal(this.connections$);\n\n protected readonly $isVoiceAssistant = computed(() => {\n return this.assistant() && this.assistant()?.type === AssistantType.ASSISTANT_TYPE_VOICE_RECEPTIONIST;\n });\n\n protected readonly $showPrimaryGoalCheckbox = computed(() => {\n return this.assistant() && this.assistant()?.type !== AssistantType.ASSISTANT_TYPE_VOICE_RECEPTIONIST;\n });\n\n protected readonly $isMeetingBookingEnabled = this.assistantService.$isAIMeetingBookingEnabled;\n\n protected readonly $showBetaBadge = computed(() => {\n return this.assistant() && this.assistant()?.type === AssistantType.ASSISTANT_TYPE_VOICE_RECEPTIONIST;\n });\n\n protected readonly widgetConnections$ = this.connections$.pipe(\n map((aiConnections) =>\n aiConnections\n .filter((aiConnection) => aiConnection.connection.connectionType === WEBCHAT_WIDGET_CONNECTION_TYPE)\n .map((aiConnection) => aiConnection.connection.id),\n ),\n switchMap((webchatWidgetConnectionIds) => {\n const widgetIds = webchatWidgetConnectionIds.filter((id) => !id.includes('default'));\n if (widgetIds?.length > 0) {\n return this.conversationApiService.getMultiWidget({ widgetIds: widgetIds }).pipe(\n map((response) => response.widgets),\n catchError(() => {\n this.snackbarService.openErrorSnack('AI_ASSISTANT.SETTINGS.CHANNELS.FETCH_WIDGET_NAME_WARNING');\n return of([]);\n }),\n );\n }\n return of([]);\n }),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n private readonly fetching$ = combineLatest([this.connections$, this.widgetConnections$, this.aiAssistant$]).pipe(\n map(() => false),\n startWith(true),\n );\n private readonly $fetching = toSignal(this.fetching$, {\n requireSync: true,\n });\n protected readonly $isLoading = computed(() => this.$fetching() || this.$isSaving());\n\n protected readonly calendarsWithTypes$ = this.bookingConfigService.getCalendarsWithTypes();\n\n constructor(private location: Location) {\n // leverage the unsavedGuard to prevent leaving current route if there are unsaved changes\n // unsavedGuard uses private signal to manage state so we need to allow signal writes\n effect(() => this.unsavedGuard.notifyStateChanged(this.$hasUnsavedChanges()));\n\n effect(() => {\n const assistant = this.assistant();\n const additionalInstructions = this.$additionalInstructions();\n if (assistant) {\n this.knowledgeForm.get('knowledgeAppId')?.setValue(this.assistantService.buildAppId(assistant.id));\n }\n const aiConnections = this.$connections();\n if (assistant && aiConnections) {\n // Initialize assistantForm once $assistant has a value\n this.assistantForm = runInInjectionContext<\n ReturnType\n >(this.injector, () =>\n AiAssistantFormComponent.assistantFormGroupFactory(this.assistantService, assistant, additionalInstructions),\n );\n this.connectionForm = runInInjectionContext<\n ReturnType\n >(this.injector, () => AiAssistantFormComponent.connectionsFormGroupFactory(assistant, aiConnections));\n\n this.voiceConfigForm = runInInjectionContext<\n ReturnType\n >(this.injector, () => AiAssistantFormComponent.voiceConfigFormGroupFactory(assistant));\n // Once initialized, we typically don't re-create form group unless required\n // for specific scenarios.\n this.subscribeToFormChanges();\n\n this.voiceFamily.set(\n this.voiceFamilies.find((f) => f.name === this.voiceConfigForm.controls.family.value) ?? null,\n );\n\n this.previewAudio.set(new Audio(previewUrlFromVoice(this.voiceConfigForm.controls.voice.value ?? '') ?? ''));\n\n this.availableVoices.set(voicesForFamily(this.voiceConfigForm.controls.family.value ?? ''));\n }\n this.partnerId$\n .pipe(\n switchMap((partnerId) =>\n this.featureFlagService.batchGetStatus(partnerId, '', [DEEPGRAM_SPEAK_FEATURE_FLAG]).pipe(\n map((resp) => resp[DEEPGRAM_SPEAK_FEATURE_FLAG]),\n catchError(() => of(false)),\n ),\n ),\n take(1),\n )\n .subscribe((deepgramEnabled) => {\n this.voiceFamilies = getVoiceFamilies(deepgramEnabled);\n });\n });\n\n this.route.queryParams.subscribe((params) => {\n this.previousUrl = params['returnUrl'];\n });\n }\n\n private subscribeToFormChanges(): void {\n this.assistantForm.valueChanges.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n this.markChanges();\n this.updateBookingValidator();\n });\n\n this.connectionForm.valueChanges.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n this.markChanges();\n });\n\n this.knowledgeForm.valueChanges.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n this.markChanges();\n });\n\n this.voiceConfigForm.valueChanges.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n this.markChanges();\n });\n\n this.voiceConfigForm.controls.family.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((familyName) => {\n if (!familyName) {\n this.availableVoices.set([]);\n return;\n }\n\n this.availableVoices.set(voicesForFamily(familyName));\n this.voiceFamily.set(this.voiceFamilies.find((f) => f.name === familyName) ?? null);\n\n if (this.availableVoices().length > 0) {\n this.voiceConfigForm.controls.voice.setValue(this.availableVoices()[0].value);\n }\n });\n\n this.voiceConfigForm.controls.voice.valueChanges.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((voice) => {\n this.stopPlayingPreview();\n this.previewAudio.set(new Audio(previewUrlFromVoice(voice ?? '') ?? ''));\n });\n }\n\n protected togglePreview() {\n if (this.currentlyPlayingPreview()) {\n this.stopPlayingPreview();\n return;\n }\n\n this.currentlyPlayingPreview.set(true);\n\n const handleEnded = () => {\n this.currentlyPlayingPreview.set(false);\n this.previewAudio().removeEventListener('ended', handleEnded);\n };\n\n this.previewAudio()\n ?.play()\n .then(() => {\n this.audioEndedHandler = handleEnded;\n this.previewAudio().addEventListener('ended', handleEnded);\n });\n }\n\n private stopPlayingPreview() {\n this.previewAudio().pause();\n this.previewAudio().currentTime = 0;\n this.currentlyPlayingPreview.set(false);\n this.cleanupAudioEventListeners();\n }\n\n private audioEndedHandler: ((this: HTMLAudioElement, ev: Event) => void) | null = null;\n\n private cleanupAudioEventListeners() {\n if (this.audioEndedHandler) {\n this.previewAudio().removeEventListener('ended', this.audioEndedHandler);\n this.audioEndedHandler = null;\n }\n }\n\n private knowledgeSourcesHaveChanged(): boolean {\n const currentSources = this.knowledgeForm.get('knowledgeSources')?.value;\n if (this.$initialSources()?.length !== currentSources?.length) {\n return true;\n }\n for (const source of this.$initialSources() || []) {\n if (!(currentSources || []).some((s) => s.id === source.id)) {\n return true;\n }\n }\n return false;\n }\n\n protected getConnectionName(connection: ConnectionInterface, widgets: Widget[]): string {\n if (\n connection.namespace?.accountGroupNamespace &&\n connection.connectionType === ConnectionType.WebchatWidget &&\n connection.name !== MY_LISTING_CONNECTION_NAME &&\n !connection.assistantKeys?.length\n ) {\n return this.translateService.instant('AI_ASSISTANT.SETTINGS.CONNECTIONS.WEBCHAT_CREATING');\n }\n\n const widget = widgets?.find((widget) => widget.widgetId === connection.id);\n return widget ? widget.name || '' : connection.name || '';\n }\n\n protected updateSelectedSources(sources: KnowledgeSource[] | null): void {\n if (this.$initialSources() === null && sources !== null) {\n this.$initialSources.set(JSON.parse(JSON.stringify(sources)));\n }\n this.knowledgeForm.get('knowledgeSources')?.setValue(sources);\n }\n\n protected async editGoal(goalId: string): Promise {\n const accountGroupId = await firstValueFrom(this.accountGroupId$);\n const goalConfigurationUrl = this.goalService.buildGoalConfigurationUrl(accountGroupId, goalId);\n\n this.router.navigate([goalConfigurationUrl], { relativeTo: this.route });\n }\n\n @HostListener('window: beforeunload', ['$event'])\n onBeforeUnload(event: BeforeUnloadEvent): void {\n if (this.$hasUnsavedChanges()) {\n event.preventDefault();\n event.stopPropagation();\n event.returnValue = false;\n }\n }\n\n protected async submit(): Promise {\n this.assistantForm.markAllAsTouched();\n\n if (\n this.assistantForm.invalid ||\n this.knowledgeForm.invalid ||\n (!this.assistantForm.dirty &&\n !this.connectionForm.dirty &&\n !this.knowledgeSourcesHaveChanged() &&\n !this.voiceConfigForm.dirty)\n ) {\n return;\n }\n\n let assistantPromise: Promise | undefined;\n let connectionPromise: Promise | undefined;\n if (this.assistantForm.dirty || this.knowledgeSourcesHaveChanged() || this.voiceConfigForm.dirty) {\n assistantPromise = this.updateAssistant();\n }\n if (this.connectionForm.dirty) {\n connectionPromise = this.updateConnections();\n }\n\n this.$isSaving.set(true);\n try {\n await Promise.all([assistantPromise, connectionPromise]);\n this.markAsSaved();\n this.snackbarService.openSuccessSnack('AI_ASSISTANT.SETTINGS.ASSISTANT_UPDATED');\n } catch (e) {\n this.snackbarService.openErrorSnack('AI_ASSISTANT.SETTINGS.ASSISTANT_UPDATE_ERROR');\n } finally {\n this.$isSaving.set(false);\n }\n }\n\n private markChanges(): void {\n const hasChanges =\n this.assistantForm.dirty ||\n this.knowledgeForm.dirty ||\n this.knowledgeSourcesHaveChanged() ||\n this.connectionForm.dirty ||\n this.voiceConfigForm.dirty;\n this.$hasUnsavedChanges.set(hasChanges);\n }\n\n private markAsSaved() {\n this.assistantForm.markAsPristine();\n this.knowledgeForm.markAsPristine();\n this.connectionForm.markAsPristine();\n this.voiceConfigForm.markAsPristine();\n this.$initialSources.set(JSON.parse(JSON.stringify(this.knowledgeForm.get('knowledgeSources')?.value)));\n this.$hasUnsavedChanges.set(false);\n }\n\n private updateBookingValidator(): void {\n const enableMeetingBooking = this.assistantForm.get('enableMeetingBooking')?.value;\n const calendarAndMeetingType = this.assistantForm.get('calendarAndMeetingType');\n if (enableMeetingBooking) {\n calendarAndMeetingType?.setValidators([\n (control) => (!control?.value?.calendarId || !control?.value?.meetingTypeId ? { bothRequired: true } : null),\n ]);\n } else {\n calendarAndMeetingType?.clearValidators();\n }\n calendarAndMeetingType?.updateValueAndValidity({ emitEvent: false });\n }\n\n private async updateAssistant(): Promise {\n const assistant = this.toAssistant();\n\n try {\n await this.updateGoals(assistant);\n } catch (err) {\n throw new Error('Failed to update assistant goals', { cause: err });\n }\n\n const assistantId = this.assistantId;\n const configurationUrl = await firstValueFrom(\n this.assistantService.buildAiKnowledgeAppConfigurationUrl(assistantId),\n );\n const knowledge = this.toKnowledgeSource();\n await this.knowledgeService.upsertKnowledgeForApp(\n this.assistantService.buildAppId(assistantId),\n assistant?.name || '',\n configurationUrl,\n knowledgeAppType,\n knowledge,\n );\n await firstValueFrom(\n this.assistantAPI\n .upsertAssistant({\n assistant: assistant,\n })\n .pipe(catchError((err) => throwError(() => err))),\n );\n }\n\n private async updateGoals(assistant: AssistantInterface): Promise {\n // Initialize configurableGoals if it is undefined\n if (!assistant.configurableGoals) {\n assistant.configurableGoals = [];\n }\n\n const globalNamespace = new Namespace({\n globalNamespace: {},\n });\n\n switch (assistant.type) {\n case AssistantType.ASSISTANT_TYPE_INBOX:\n if (this.assistantForm.get('enableLeadCapture')?.value) {\n this.updateGoal(DEFAULT_LEAD_CAPTURE_GOAL_ID, globalNamespace, assistant.configurableGoals);\n } else {\n assistant.configurableGoals = assistant.configurableGoals?.filter(\n (goal) => goal.goal?.id !== DEFAULT_LEAD_CAPTURE_GOAL_ID,\n );\n }\n\n if (this.assistantForm.get('enableMeetingBooking')?.value) {\n const goalConfig: KeyValuePairInterface[] = [\n {\n key: GOAL_CONFIG_KEY_CALENDAR_ID,\n value: this.assistantForm.get('calendarAndMeetingType')?.value?.calendarId || '',\n },\n {\n key: GOAL_CONFIG_KEY_MEETING_TYPE_ID,\n value: this.assistantForm.get('calendarAndMeetingType')?.value?.meetingTypeId || '',\n },\n ];\n this.updateGoal(DEFAULT_MEETING_BOOKING_GOAL_ID, globalNamespace, assistant.configurableGoals, goalConfig);\n } else {\n assistant.configurableGoals = assistant.configurableGoals?.filter(\n (goal) => goal.goal?.id !== DEFAULT_MEETING_BOOKING_GOAL_ID,\n );\n }\n break;\n case AssistantType.ASSISTANT_TYPE_VOICE_RECEPTIONIST:\n // TODO: Create configurable settings for voice goals (i.e: Lead Capture and Appointment Booking)\n break;\n }\n\n try {\n await this.addAdditionalInstructionsGoal(assistant);\n } catch (err) {\n throw new Error('Failed to add additional instructions', { cause: err });\n }\n }\n\n private updateGoal(\n defaultGoalId: string,\n namespace: Namespace,\n existingGoals: ConfigurableGoalInterface[],\n goalConfig?: KeyValuePairInterface[],\n ): void {\n const goalIndex = existingGoals.findIndex((goal) => goal?.goal?.id === defaultGoalId);\n if (goalIndex === -1) {\n existingGoals.push(\n new ConfigurableGoal({\n goal: {\n id: defaultGoalId,\n namespace: namespace,\n },\n configuration: goalConfig,\n }),\n );\n } else {\n existingGoals[goalIndex].configuration = goalConfig;\n }\n }\n\n private async addAdditionalInstructionsGoal(assistant: AssistantInterface): Promise {\n const hasAdditionalInstructionsGoal = assistant.configurableGoals?.some(\n (goal) => goal.goal?.id === this.buildAdditionalInstructionsGoalID(assistant.id),\n );\n const additionalInstructionsFormValue = this.assistantForm.get('additionalPrompt')?.value;\n if (additionalInstructionsFormValue) {\n try {\n const goalKey = await this.assistantService.upsertAdditionalInstructions(\n assistant.id,\n assistant.namespace,\n additionalInstructionsFormValue,\n );\n\n if (!hasAdditionalInstructionsGoal) {\n assistant.configurableGoals?.push(\n new ConfigurableGoal({\n goal: goalKey,\n }),\n );\n }\n } catch (err) {\n throw new Error('Failed to upsert additional instructions goal', { cause: err });\n }\n } else if (hasAdditionalInstructionsGoal) {\n assistant.configurableGoals = assistant.configurableGoals?.filter(\n (goal) => goal.goal?.id !== this.buildAdditionalInstructionsGoalID(assistant.id),\n );\n }\n }\n\n private buildAdditionalInstructionsGoalID(assistantId?: string): string {\n if (assistantId === undefined) {\n console.warn('Assistant ID is undefined');\n return '';\n }\n return `${ADDITIONAL_INSTRUCTIONS_GOAL_ID}-${assistantId}`;\n }\n\n private async updateConnections(): Promise {\n await firstValueFrom(\n this.assistantAPI.setAssistantConnections({\n assistantKey: {\n id: this.assistant()?.id,\n namespace: this.assistant()?.namespace,\n },\n associationStates: this.$connections()\n ?.map((aiConnection, index) =>\n !aiConnection?.connection.isConnectionLocked\n ? {\n connectionKey: {\n id: aiConnection.connection.id,\n namespace: aiConnection.connection.namespace,\n connectionType: aiConnection.connection.connectionType,\n },\n isAssociated: this.connectionForm.getRawValue().connections[index],\n }\n : null,\n )\n .filter((connection) => connection !== null),\n }),\n );\n }\n\n private toAssistant(): AssistantInterface {\n return {\n name: this.assistantForm.get('name')?.value || '',\n id: this.assistantForm.get('assistantId')?.value || '',\n namespace: this.assistantForm.get('namespace')?.value || ({} as Namespace),\n type: AssistantIdToAssistantType(this.assistantForm.get('assistantId')?.value || ''),\n config: {\n inboxConfig: {\n leadCaptureEnabled: this.assistantForm.get('enableLeadCapture')?.value || false,\n additionalInstructions: this.assistantForm.get('additionalPrompt')?.value || '',\n },\n voiceConfig: this.$isVoiceAssistant()\n ? {\n vendorModel: this.voiceFamily()?.provider,\n modelConfig: this.buildVoiceModelConfig(),\n }\n : undefined,\n },\n avatarUrl: this.assistantForm.get('assistantAvatarUrl')?.value || '',\n configurableGoals: this.assistant()?.configurableGoals,\n };\n }\n\n private buildVoiceModelConfig() {\n const family = this.voiceConfigForm.get('family')?.value;\n const voice = this.voiceConfigForm.get('voice')?.value || '';\n const voiceFamily = this.voiceFamilies.find((f) => f.name === family);\n\n if (voiceFamily?.provider === VendorModel.VENDOR_MODEL_DEEPGRAM) {\n return {\n deepgramConfig: {\n voice: voice,\n },\n };\n }\n\n return {\n openaiRealtimeConfig: {\n voice: voice,\n turnDetection: {\n threshold: this.voiceConfigForm.get('advanced')?.get('turnDetectionThreshold')?.value ?? 0.75,\n prefixPadding: this.voiceConfigForm.get('advanced')?.get('turnDetectionPrefixPadding')?.value ?? 300,\n silenceDuration: this.voiceConfigForm.get('advanced')?.get('turnDetectionSilenceDuration')?.value ?? 500,\n },\n },\n };\n }\n\n private toKnowledgeSource(): KnowledgeSource[] {\n return this.knowledgeForm.get('knowledgeSources')?.value || [];\n }\n\n openEnableLeadCaptureDialog(): void {\n this.dialog.open(EnableLeadCaptureDialogComponent, {\n width: '550px',\n });\n }\n\n openAdditionalInstructionsDialog(): void {\n this.dialog.open(AdditionalInstructionsDialogComponent, {\n width: '100vh',\n });\n }\n\n onImageChanged(imageUrl: string): void {\n this.assistantForm.get('assistantAvatarUrl')?.markAsDirty();\n this.assistantForm.get('assistantAvatarUrl')?.setValue(imageUrl);\n }\n\n protected triggerAction(aiConnection: AiConnection): void {\n if (aiConnection) {\n this.buildConnectionActionCallback(aiConnection)?.();\n }\n }\n\n protected buildConnectionActionCallback(aiConnection: AiConnection): (() => void) | undefined {\n if (!aiConnection?.cta || !aiConnection?.cta.action?.showButton) {\n return undefined;\n }\n\n const action = aiConnection?.cta?.action;\n\n if (action?.url) {\n //TODO: MEGA-1856 - Remove this if clause once the inbox settings are moved out from side panel\n if (\n aiConnection.connection.namespace?.partnerNamespace &&\n action.url.includes('inbox') &&\n !action.url.includes('restricted')\n ) {\n return () => this.router.navigate(['', { outlets: { inbox: action.url } }]);\n }\n\n if (action.newTab && !action.relativeRoute) {\n return () => window.open(action.url, '_blank');\n }\n\n return () => this.router.navigate([action.url], action.relativeRoute ? { relativeTo: this.route } : undefined);\n }\n\n if (action?.pathCommands) {\n return () => this.router.navigate(action.pathCommands);\n }\n\n if (action?.callback) {\n return action.callback;\n }\n return undefined;\n }\n\n protected backUrl(): string {\n return FALLBACK_BACK_URL;\n }\n\n protected async back(): Promise {\n try {\n const accountGroupId = await firstValueFrom(this.accountGroupId$.pipe(take(1)));\n\n if (accountGroupId && this.previousUrl?.includes(accountGroupId)) {\n await this.router.navigate([this.previousUrl]);\n } else {\n await this.router.navigate([FALLBACK_BACK_URL], { relativeTo: this.route });\n }\n } catch (error) {\n console.error('Error navigating back:', error);\n }\n }\n\n protected goToMeetings(): void {\n this.markAsSaved();\n this.router.navigate([MEETING_URL], { relativeTo: this.route });\n }\n\n protected compareBookingOptions(a: MeetingType, b: MeetingType): boolean {\n return a.calendarId === b.calendarId && a.meetingTypeId === b.meetingTypeId;\n }\n\n ngOnDestroy(): void {\n this.stopPlayingPreview();\n }\n}\n","\n \n \n \n \n\n {{ 'AI_ASSISTANT.SETTINGS.TITLE' | translate: { assistantName: aiAssistant()?.assistant?.name } }}\n @if ($showBetaBadge()) {\n  \n {{ 'AI_ASSISTANT.SHARED.BETA' | translate }}\n }\n \n \n \n @if (!!error()) {\n \n } @else {\n
\n
\n \n
\n \n
\n @if ($isLoading()) {\n \n } @else {\n \n }\n
\n\n \n \n \n {{ 'AI_ASSISTANT.SETTINGS.ASSISTANT_NAME' | translate }}\n \n info_outline\n \n \n \n \n
\n
\n\n
\n
\n
\n @if ($isVoiceAssistant()) {\n \n Important\n — {{ 'AI_ASSISTANT.SETTINGS.VOICE_BETA_BANNER_MESSAGE' | translate }}\n \n \n }\n \n \n {{ 'AI_ASSISTANT.SETTINGS.CHANNELS.TITLE' | translate }}\n {{ 'AI_ASSISTANT.SETTINGS.CHANNELS.SUBTITLE' | translate }}\n \n \n @if ($isLoading()) {\n \n } @else {\n @let aiConnections = connections$ | async;\n @if (aiConnections?.length === 0) {\n \n \n forum\n \n {{ 'AI_ASSISTANT.SETTINGS.CHANNELS.NO_CHANNELS_AVAILABLE' | translate }}\n \n \n \n } @else {\n @let widgetConnections = widgetConnections$ | async;\n @for (aiConnection of aiConnections; track i; let i = $index) {\n \n \n
\n \"avatar\"\n
\n
\n {{ getConnectionName(aiConnection.connection, widgetConnections || []) }}\n
\n \n @if (aiConnection.cta?.action?.showButton) {\n \n @if (aiConnection.isDefault && !aiConnection.cta?.label) {\n {{\n 'AI_ASSISTANT.SETTINGS.SETUP_CONNECTIONS'\n | translate: { connectionName: aiConnection?.connection.name }\n }}\n } @else {\n {{ aiConnection.cta?.label || 'AI_ASSISTANT.SETTINGS.SETTINGS' | translate }}\n }\n \n }\n
\n
\n
\n
\n }\n }\n }\n
\n
\n
\n
\n @if ($isVoiceAssistant()) {\n
\n
\n \n \n {{ 'AI_ASSISTANT.SETTINGS.VOICE_CONFIG.VOICE_CONFIG' | translate }}\n \n \n \n \n {{ 'AI_ASSISTANT.SETTINGS.VOICE_CONFIG.FAMILY' | translate }}\n \n \n @for (family of voiceFamilies; track family) {\n \n
{{ family.name }}
\n
\n }\n
\n @let selectedVoiceFamily = voiceFamily();\n @if (selectedVoiceFamily) {\n \n {{ selectedVoiceFamily.description_key | translate }}\n \n }\n
\n
\n
\n {{ 'AI_ASSISTANT.SETTINGS.VOICE_CONFIG.VOICE' | translate }}\n
\n
\n \n \n @for (voice of availableVoices(); track voice) {\n \n {{ voice.name }} ({{ voice.region | translate }}, {{ voice.gender | translate }})\n \n }\n \n \n \n
\n
\n @if (voiceFamily()?.provider === vendorModels.VENDOR_MODEL_OPEN_AI_REALTIME) {\n \n \n \n {{ accordionItem.expanded ? 'expand_less' : 'expand_more' }}\n \n {{ 'AI_ASSISTANT.SETTINGS.VOICE_CONFIG.ADVANCED' | translate }}\n \n @if (accordionItem.expanded) {\n
\n \n \n {{ 'AI_ASSISTANT.SETTINGS.VOICE_CONFIG.TURN_DETECTION.THRESHOLD.LABEL' | translate }}\n \n \n \n \n {{\n 'AI_ASSISTANT.SETTINGS.VOICE_CONFIG.TURN_DETECTION.THRESHOLD.DESCRIPTION'\n | translate\n }}\n \n \n \n \n {{\n 'AI_ASSISTANT.SETTINGS.VOICE_CONFIG.TURN_DETECTION.PREFIX_PADDING.LABEL' | translate\n }}\n \n \n \n \n {{\n 'AI_ASSISTANT.SETTINGS.VOICE_CONFIG.TURN_DETECTION.PREFIX_PADDING.DESCRIPTION'\n | translate\n }}\n \n \n \n \n {{\n 'AI_ASSISTANT.SETTINGS.VOICE_CONFIG.TURN_DETECTION.SILENCE_DURATION.LABEL'\n | translate\n }}\n \n \n \n \n {{\n 'AI_ASSISTANT.SETTINGS.VOICE_CONFIG.TURN_DETECTION.SILENCE_DURATION.DESCRIPTION'\n | translate\n }}\n \n \n
\n }\n
\n
\n }\n
\n
\n
\n
\n }\n\n
\n
\n \n \n {{ 'AI_ASSISTANT.SETTINGS.GOALS_INSTRUCTIONS' | translate }}\n \n \n @if ($showPrimaryGoalCheckbox()) {\n

{{ 'AI_ASSISTANT.SETTINGS.ASSISTANT_PRIMARY_GOAL' | translate }}

\n \n \n {{ 'AI_ASSISTANT.SETTINGS.ENABLE_LEAD_CAPTURE.DESCRIPTION' | translate }}\n \n {{ 'AI_ASSISTANT.SETTINGS.ENABLE_LEAD_CAPTURE.INFORMATION' | translate }}\n \n {{ 'AI_ASSISTANT.SETTINGS.LEARN_MORE' | translate }}\n \n \n \n \n @if ($isMeetingBookingEnabled()) {\n \n \n {{ 'AI_ASSISTANT.SETTINGS.ENABLE_MEETING_BOOKING.DESCRIPTION' | translate }}\n \n @if (assistantForm?.get('enableMeetingBooking')?.value) {\n \n \n {{ 'AI_ASSISTANT.SETTINGS.ENABLE_MEETING_BOOKING.LABEL' | translate }}\n \n \n @for (calendar of calendarsWithTypes$ | async; track calendar) {\n \n @for (type of calendar.meetingTypes; track type) {\n \n @if (calendar.isPersonal) {\n person\n } @else {\n group\n }\n {{ type.name }}\n \n }\n \n }\n \n add\n \n {{ 'AI_ASSISTANT.SETTINGS.ENABLE_MEETING_BOOKING.CREATE_NEW_CALENDAR' | translate }}\n \n \n \n \n }\n \n }\n }\n @if (!showCustomGoals()) {\n

\n {{ 'AI_ASSISTANT.SETTINGS.ASSISTANT_ADDITIONAL_INSTRUCTIONS' | translate }}\n \n {{ 'AI_ASSISTANT.SHARED.BETA' | translate }}\n \n

\n \n \n {{ 'AI_ASSISTANT.SETTINGS.ASSISTANT_ADDITIONAL_INSTRUCTIONS_DESCRIPTION' | translate }}\n \n {{ 'AI_ASSISTANT.SETTINGS.LEARN_MORE' | translate }}\n \n \n \n \n {{ additionalPromptSoftLimit.value?.length || 0 }}/{{ additionalInstructionsLimit }}\n \n additionalInstructionsLimit\"\n >\n {{ 'AI_ASSISTANT.SETTINGS.ASSISTANT_ADDITIONAL_INSTRUCTIONS_LIMIT_EXCEEDED' | translate }}\n   {{ additionalPromptSoftLimit.value?.length || 0 }} /{{ additionalInstructionsLimit }}\n \n \n } @else {\n

{{ 'AI_ASSISTANT.SETTINGS.CUSTOM_CAPABILITIES' | translate }}

\n \n }\n
\n
\n \n \n {{ 'AI_ASSISTANT.SETTINGS.KNOWLEDGE_SOURCES' | translate }}\n {{ 'AI_ASSISTANT.SETTINGS.KNOWLEDGE_SOURCES_DESCRIPTION' | translate }}\n \n \n \n @if ($isLoading()) {\n \n } @else {\n \n }\n \n \n
\n
\n
\n
\n \n\n \n }\n
\n
\n\n\n \n {{ 'AI_ASSISTANT.SETTINGS.SOMETHING_WENT_WRONG' | translate }}\n \n {{ errorMessage }}\n \n \n\n","import { GoalChannel } from '@vendasta/ai-assistants';\n\nexport const goalChannels = new Map([\n [GoalChannel.GOAL_CHANNEL_PLATFORM, 'AI_ASSISTANT.GOALS.CONFIGURE_GOAL.CHANNELS.PLATFORM_CHAT'],\n [GoalChannel.GOAL_CHANNEL_WEBCHAT, 'AI_ASSISTANT.GOALS.CONFIGURE_GOAL.CHANNELS.WEB_CHAT'],\n [GoalChannel.GOAL_CHANNEL_SMS, 'AI_ASSISTANT.GOALS.CONFIGURE_GOAL.CHANNELS.SMS'],\n [GoalChannel.GOAL_CHANNEL_EMAIL, 'AI_ASSISTANT.GOALS.CONFIGURE_GOAL.CHANNELS.EMAIL'],\n [GoalChannel.GOAL_CHANNEL_VOICE, 'AI_ASSISTANT.GOALS.CONFIGURE_GOAL.CHANNELS.VOICE'],\n [GoalChannel.GOAL_CHANNEL_FACEBOOK, 'AI_ASSISTANT.GOALS.CONFIGURE_GOAL.CHANNELS.FACEBOOK'],\n [GoalChannel.GOAL_CHANNEL_INSTAGRAM, 'AI_ASSISTANT.GOALS.CONFIGURE_GOAL.CHANNELS.INSTAGRAM'],\n [GoalChannel.GOAL_CHANNEL_WHATSAPP, 'AI_ASSISTANT.GOALS.CONFIGURE_GOAL.CHANNELS.WHATSAPP'],\n]);\n\nexport const goalChannelIcons = new Map([\n [GoalChannel.GOAL_CHANNEL_WEBCHAT, 'WebchatWidget'],\n [GoalChannel.GOAL_CHANNEL_SMS, 'SMS'],\n [GoalChannel.GOAL_CHANNEL_VOICE, 'Voice'],\n [GoalChannel.GOAL_CHANNEL_WHATSAPP, 'Whatsapp'],\n]);\n","import { Component, computed, DestroyRef, effect, inject, signal } from '@angular/core';\nimport { GalaxyPageModule } from '@vendasta/galaxy/page';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { AiGoalService } from '../../core/services/ai-goal.service';\nimport { ACCOUNT_GROUP_ID_TOKEN, PARTNER_ID_TOKEN } from '../../core/tokens';\nimport { combineLatest, firstValueFrom, map, Observable, of, switchMap } from 'rxjs';\nimport { CommonModule } from '@angular/common';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { FormControl, FormGroup, FormsModule, ReactiveFormsModule, Validators } from '@angular/forms';\nimport { takeUntilDestroyed, toSignal } from '@angular/core/rxjs-interop';\nimport { GoalChannel, GoalInterface } from '@vendasta/ai-assistants';\nimport { goalChannelIcons, goalChannels } from '../../core/services/ai-goal-util';\nimport { MatSelectModule } from '@angular/material/select';\nimport { GalaxyBadgeModule } from '@vendasta/galaxy/badge';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { GalaxyAvatarModule } from '@vendasta/galaxy/avatar';\nimport { MatCardModule } from '@angular/material/card';\nimport { StickyFooterComponent } from '../sticky-footer/sticky-footer.component';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { PageService } from '@vendasta/galaxy/page/src/page.service';\nimport { AiAssistantI18nModule } from '../../assets/i18n/ai-assistant-i18n.module';\nimport { MatInputModule } from '@angular/material/input';\n\nconst AVAILABLE_CHANNELS = [\n GoalChannel.GOAL_CHANNEL_SMS,\n GoalChannel.GOAL_CHANNEL_WEBCHAT,\n GoalChannel.GOAL_CHANNEL_WHATSAPP,\n];\nconst FALLBACK_BACK_URL = '../../../assistants';\n\n@Component({\n selector: 'ai-ai-goal-form',\n imports: [\n CommonModule,\n GalaxyPageModule,\n GalaxyFormFieldModule,\n ReactiveFormsModule,\n MatSelectModule,\n GalaxyBadgeModule,\n MatChipsModule,\n GalaxyAvatarModule,\n MatCardModule,\n StickyFooterComponent,\n AiAssistantI18nModule,\n FormsModule,\n MatInputModule,\n ],\n templateUrl: './ai-goal-form.component.html',\n styleUrl: './ai-goal-form.component.scss',\n})\nexport class AiGoalFormComponent {\n private readonly route = inject(ActivatedRoute);\n private readonly goalService = inject(AiGoalService);\n private readonly snackbarService = inject(SnackbarService);\n private readonly pageService = inject(PageService);\n private readonly router = inject(Router);\n\n private readonly accountGroupId$ = inject(ACCOUNT_GROUP_ID_TOKEN);\n private readonly partnerId$ = inject(PARTNER_ID_TOKEN);\n\n protected readonly goalChannelIcons = goalChannelIcons;\n protected readonly GoalChannel = GoalChannel;\n protected readonly availableGoalChannels = AVAILABLE_CHANNELS.map((channel) => ({\n id: channel,\n name: goalChannels.get(channel),\n icon: goalChannelIcons.get(channel),\n }));\n\n private readonly goalId = this.route.snapshot.params['goalId'];\n\n protected readonly goal$ = combineLatest([this.partnerId$, this.accountGroupId$]).pipe(\n switchMap(([partnerId, accountGroupId]) => this.goalService.getGoal(accountGroupId, partnerId, this.goalId)),\n );\n\n protected readonly promptModule$ = this.goal$.pipe(\n switchMap((goal) => {\n if (!goal.promptModules || goal.promptModules.length === 0) {\n return of(null);\n }\n return this.goalService.getPromptModule(goal.promptModules[0]);\n }),\n );\n\n protected readonly form = toSignal(\n combineLatest([this.goal$, this.promptModule$]).pipe(\n map(([goal, promptModule]) => this.initForm(goal, promptModule?.promptVersion?.content || '')),\n ),\n );\n\n protected readonly isLoading = computed(() => !this.form());\n protected readonly isSubmitting = signal(false);\n protected readonly hasUnsavedChanges = signal(false);\n protected readonly canSave = computed(() => !this.isLoading() && !this.isSubmitting() && this.hasUnsavedChanges());\n\n constructor(private destroyRef: DestroyRef) {\n effect(() => {\n this.form()\n ?.valueChanges.pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.hasUnsavedChanges.set(true));\n });\n }\n\n private initForm(goal: GoalInterface, promptContent: string): FormGroup {\n return new FormGroup({\n name: new FormControl(goal?.name, [Validators.required]),\n description: new FormControl(goal?.description),\n supportedChannels: new FormControl(goal?.supportedChannels || []),\n prompt: new FormControl(promptContent || ''),\n functions: new FormControl(goal.functions || []),\n });\n }\n\n toggleChannelSelection(channelKey: number): void {\n const control = this.form()?.get('supportedChannels');\n if (control) {\n let currentValue = (control.value as number[]) || [];\n\n if (currentValue.includes(channelKey)) {\n currentValue = currentValue.filter((key) => key !== channelKey);\n } else {\n currentValue = [...currentValue, channelKey];\n }\n control.setValue(currentValue);\n }\n }\n\n selectAllChannels(): void {\n const control = this.form()?.get('supportedChannels');\n if (control) {\n control.setValue([]);\n }\n }\n\n getGoalFromForm(formValue: any): Observable {\n // copy the goal object and add the form values\n return this.goal$.pipe(\n map((goal) => {\n const newGoal = { ...goal };\n newGoal.name = formValue.name;\n newGoal.description = formValue.description;\n newGoal.supportedChannels = formValue.supportedChannels;\n return newGoal;\n }),\n );\n }\n\n async submit(): Promise {\n if (!this.form()?.valid) {\n this.snackbarService.openErrorSnack('AI_ASSISTANT.GOALS.CONFIGURE_GOAL.FORM_INVALID');\n return;\n }\n\n this.isSubmitting.set(true);\n try {\n const goal = await firstValueFrom(this.getGoalFromForm(this.form()?.value));\n await firstValueFrom(this.goalService.upsertGoal(goal));\n this.snackbarService.openSuccessSnack('AI_ASSISTANT.GOALS.CONFIGURE_GOAL.SAVE_SUCCESS');\n } catch (error) {\n this.snackbarService.openErrorSnack('AI_ASSISTANT.GOALS.CONFIGURE_GOAL.SAVE_ERROR');\n }\n this.isSubmitting.set(false);\n }\n\n protected cancel(): void {\n const path = this.pageService.getPreviousPageUrl('');\n if (path) {\n this.router.navigate([path]);\n } else {\n this.router.navigate([FALLBACK_BACK_URL], { relativeTo: this.route });\n }\n }\n}\n","\n \n \n \n \n {{ 'AI_ASSISTANT.GOALS.CONFIGURE_GOAL.TITLE' | translate }}\n \n \n @if (form(); as form) {\n
\n \n \n {{ 'AI_ASSISTANT.GOALS.CONFIGURE_GOAL.NAME' | translate }}\n \n \n\n \n \n {{ 'AI_ASSISTANT.GOALS.CONFIGURE_GOAL.DESCRIPTION' | translate }}\n \n \n\n \n \n {{ 'AI_ASSISTANT.GOALS.CONFIGURE_GOAL.SUPPORTED_CHANNELS' | translate }}\n \n \n {{ 'AI_ASSISTANT.GOALS.CONFIGURE_GOAL.CHANNELS.ALL_CHANNELS' | translate }}\n \n @for (channel of availableGoalChannels; track channel.id) {\n \n
\n @if (goalChannelIcons.get(channel.id)) {\n \n }\n {{ channel?.name | translate }}\n
\n \n }\n
\n
\n\n \n \n {{ 'AI_ASSISTANT.GOALS.CONFIGURE_GOAL.PROMPT' | translate }}\n \n \n\n \n \n {{ 'AI_ASSISTANT.GOALS.CONFIGURE_GOAL.FUNCTIONS' | translate }}\n
\n @for (goalFunction of form.get('functions')?.value; track goalFunction.id) {\n \n \n {{ goalFunction.id }}\n
\n {{ goalFunction.description }}\n
\n
\n
\n }\n \n {{ 'AI_ASSISTANT.GOALS.CONFIGURE_GOAL.ADD_FUNCTION' | translate }}\n \n
\n
\n
\n\n \n }\n
\n
\n","import { Route } from '@angular/router';\nimport { AiAssistantPageComponent } from '../index';\nimport { AiAssistantFormComponent } from '../components/ai-assistant-configuration/ai-assistant-form/ai-assistant-form.component';\nimport { UnsavedChangesGuard } from '../components/ai-assistant-configuration/ai-assistant-form/unsaved-changes.guard';\nimport { AiGoalFormComponent } from '../components/ai-goal-form/ai-goal-form.component';\n\nexport const AI_ASSISTANT_ROUTES: Route[] = [\n {\n path: 'assistants',\n children: [\n {\n path: '',\n component: AiAssistantPageComponent,\n },\n {\n path: ':assistantId/edit',\n component: AiAssistantFormComponent,\n canDeactivate: [UnsavedChangesGuard],\n },\n ],\n },\n {\n path: 'goals',\n children: [\n {\n path: ':goalId/edit',\n component: AiGoalFormComponent,\n },\n ],\n },\n];\n","import { inject, Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { RegistrationStage, A2PRegistrationService } from '@galaxy/sms';\nimport { combineLatest, map, Observable, of } from 'rxjs';\nimport { InboxService } from '../inbox.service';\nimport { ConversationDetail } from '../interface/conversation.interface';\nimport { CONVERSATION_COUNTRY_TOKEN } from '../tokens';\nimport { AlertOptions, ConversationChannelService } from './conversation-channel.abstract';\nimport { InboxAlertService } from './inbox-alert.service';\nimport { getSubjectParticipantByType } from '../participant-utils';\nimport { ParticipantType } from '@vendasta/conversation';\n\n@Injectable()\nexport class ConversationSMSService extends ConversationChannelService {\n private router = inject(Router);\n private readonly smsRegistrationService = inject(A2PRegistrationService);\n private readonly inboxService = inject(InboxService);\n private readonly country$ = inject(CONVERSATION_COUNTRY_TOKEN);\n private readonly canAccessSMS$ = this.inboxService.canAccessSMS$;\n private readonly inboxAlerter = inject(InboxAlertService);\n\n getChatComposerAlert(\n partnerId: string,\n accountGroupId: string,\n conversationDetail: ConversationDetail,\n ): Observable {\n const stage$ = this.smsRegistrationService.registrationStage$;\n const SMSNumber$ = this.inboxService.SMSNumber$;\n\n const checkContactInfo = this.inboxAlerter.getConversationCustomerErrors(conversationDetail);\n if (!checkContactInfo?.participant || checkContactInfo?.alert) return of(checkContactInfo?.alert ?? null);\n\n const accountGroupParticipant = getSubjectParticipantByType(\n conversationDetail?.participants,\n ParticipantType.PARTICIPANT_TYPE_ACCOUNT_GROUP,\n );\n\n return combineLatest([this.country$, this.canAccessSMS$, stage$, SMSNumber$]).pipe(\n map(([orgCountry, canAccessSMS, stage, smsNumber]) => {\n const country = orgCountry?.toLowerCase() || '';\n if (!this.inboxService.hasAccessByCountry(country)) return null;\n\n if (!canAccessSMS) {\n if (!accountGroupParticipant)\n return this.inboxAlerter.checkNotAvailableErrorForLeads(conversationDetail, country);\n return this.inboxAlerter.getSMSMessageEnabledError();\n }\n\n if (!smsNumber) return this.inboxAlerter.getSMSPhoneNumberError();\n\n if (country !== 'us') return null;\n\n return stage !== RegistrationStage.RegistrationComplete\n ? this.inboxAlerter.getSMSRegistrationError(accountGroupId)\n : null;\n }),\n );\n }\n}\n","export const firebaseConfig = {\n apiKey: 'AIzaSyAmrv372h8otvJv6mBdHZzywPn5d6h6oPc',\n authDomain: 'inbox-291119.firebaseapp.com',\n databaseURL: 'https://inbox-291119.firebaseio.com',\n projectId: 'inbox-291119',\n storageBucket: 'inbox-291119.appspot.com',\n messagingSenderId: '133184929067',\n appId: '1:133184929067:web:aa3e2d0c6ccf993462596e',\n measurementId: 'G-MQLC4B4Q53',\n};\n","import { Injectable } from '@angular/core';\nimport { ChannelAvailability, ConversationChannel } from '@vendasta/conversation';\nimport { Observable, of } from 'rxjs';\nimport { ConversationDetail } from '../interface/conversation.interface';\nimport { AlertOptions, ConversationChannelService } from './conversation-channel.abstract';\n\n@Injectable()\nexport class ConversationWhatsappService extends ConversationChannelService {\n getChatComposerAlert(\n _partnerId: string,\n _accountGroupId: string,\n conversationDetail?: ConversationDetail,\n channels?: ConversationChannel[],\n channelAvailabilities?: ChannelAvailability[],\n ): Observable {\n if (conversationDetail?.conversation.channel !== ConversationChannel.CONVERSATION_CHANNEL_WHATSAPP) {\n return of(null);\n }\n\n const whatsappAvailability = channelAvailabilities?.find(\n (channelAvailability) => channelAvailability.channel === ConversationChannel.CONVERSATION_CHANNEL_WHATSAPP,\n );\n\n return of({\n description:\n whatsappAvailability?.statuses?.[0]?.i18nKey ||\n 'INBOX.SETTINGS.WHATSAPP_MESSAGES.ERRORS.CANNOT_SEND_MESSAGE_DESCRIPTION',\n });\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { AlertOptions, ConversationChannelService } from './conversation-channel.abstract';\nimport { getSubjectParticipantByType } from '../participant-utils';\nimport { InboxAlertService } from './inbox-alert.service';\nimport { Observable, of } from 'rxjs';\nimport { ParticipantType } from '@vendasta/conversation';\nimport { InboxService } from '../inbox.service';\nimport { ConversationDetail } from '../interface/conversation.interface';\n\n@Injectable()\nexport class ConversationEmailService extends ConversationChannelService {\n private readonly inboxService = inject(InboxService);\n private readonly inboxAlerter = inject(InboxAlertService);\n\n getChatComposerAlert(\n partnerId: string,\n accountGroupId: string,\n conversationDetail: ConversationDetail,\n ): Observable {\n const checkContactInfo = this.inboxAlerter.getConversationCustomerErrors(conversationDetail);\n if (!checkContactInfo?.participant || checkContactInfo?.alert) return of(checkContactInfo?.alert ?? null);\n\n const customerParticipant = getSubjectParticipantByType(\n conversationDetail?.participants,\n ParticipantType.PARTICIPANT_TYPE_CUSTOMER,\n );\n\n if (customerParticipant) {\n const email = customerParticipant?.email;\n const phoneNumber = customerParticipant?.phoneNumber;\n\n if (this.inboxService.isPartnerCenter && email && !phoneNumber) {\n return of(this.inboxAlerter.getEmailOnlyAlertError());\n }\n }\n return of(null);\n }\n}\n","import { inject, InjectionToken, ModuleWithProviders, NgModule } from '@angular/core';\nimport { getApp, initializeApp, provideFirebaseApp } from '@angular/fire/app';\nimport { getFirestore, provideFirestore } from '@angular/fire/firestore';\nimport { Environment, EnvironmentService } from '@galaxy/core';\nimport { ConversationChannel, GlobalParticipantType, InboxApiService, PlatformLocation } from '@vendasta/conversation';\nimport { combineLatest, isObservable, map, Observable, of, switchMap } from 'rxjs';\nimport { catchError, shareReplay } from 'rxjs/operators';\nimport { ConversationChannelService } from './channels/conversation-channel.abstract';\nimport { ConversationFacebookService } from './channels/conversation-facebook.service';\nimport { ConversationInstagramService } from './channels/conversation-instagram.service';\nimport { ConversationGoogleService } from './channels/conversation-google.service';\nimport { ConversationPlatformService } from './channels/conversation-platform.service';\nimport { ConversationSMSService } from './channels/conversation-sms.service';\nimport { ConversationWebchatService } from './channels/conversation-webchat.service';\nimport { InboxAlertService } from './channels/inbox-alert.service';\nimport { ConversationService } from './conversation.service';\nimport { firebaseConfig } from './firebase.config';\nimport { FirestoreService } from './firestore.service';\nimport { InboxNavigationService } from './inbox-navigation.service';\nimport { InboxNotificationService } from './inbox-notification.service';\nimport { InboxProMarketplaceAppIDs } from './inbox.constants';\nimport { InboxService } from './inbox.service';\nimport { ConversationConfig } from './interface/config.interface';\nimport { RouteConfig } from './interface/routes.interface';\nimport { ListingService } from './listing.service';\nimport { ParticipantService } from './participant.service';\nimport { TemplateService } from './template.service';\nimport {\n ACCOUNT_GROUP_ID_TOKEN,\n COMPANY_NAME_TOKEN,\n CONVERSATION_CHANNEL_SERVICE_TOKEN,\n CONVERSATION_CONFIG_TOKEN,\n CONVERSATION_CONVERSATION_CHANNELS_ENABLED_TOKEN,\n CONVERSATION_COUNTRY_TOKEN,\n CONVERSATION_FACEBOOK_MESSENGER_AVAILABLE_TOKEN,\n CONVERSATION_GEOGRAPHICAL_STATE_TOKEN,\n CONVERSATION_GOOGLE_BUSINESS_MESSAGES_AVAILABLE_TOKEN,\n CONVERSATION_IMAGE_SERVICE_TOKEN,\n CONVERSATION_INSTAGRAM_MESSAGES_AVAILABLE_TOKEN,\n CONVERSATION_PLATFORM_LOCATION_TOKEN,\n CONVERSATION_ROUTES_TOKEN,\n CONVERSATION_SMS_ENABLED_TOKEN,\n CONVERSATION_WEB_CHAT_ENABLED_TOKEN,\n CONVERSATION_WHATSAPP_MESSAGES_AVAILABLE_TOKEN,\n FEATURE_FLAG_TOKEN,\n GROUP_ID_TOKEN,\n InboxImageService,\n MARKET_ID_TOKEN,\n MARKETPLACE_APP_ID_TOKEN,\n PARTNER_BRAND_NAME_TOKEN,\n PARTNER_ID_TOKEN,\n StubInboxImageService,\n USER_ID_TOKEN,\n} from './tokens';\nimport { ViewService } from './view.service';\nimport { FeatureFlagService } from '@galaxy/partner';\nimport { ConversationWhatsappService } from './channels/conversation-whatsapp.service';\nimport { WhatsappTemplatesService } from './channels/whatsapp-templates.service';\nimport { ConversationEmailService } from './channels/conversation-email.service';\n\nconst SERVICE_PROVIDERS = [\n ViewService,\n ParticipantService,\n ConversationService,\n FirestoreService,\n InboxService,\n InboxNavigationService,\n ListingService,\n InboxNotificationService,\n ConversationGoogleService,\n ConversationFacebookService,\n ConversationInstagramService,\n ConversationSMSService,\n ConversationWebchatService,\n ConversationPlatformService,\n InboxAlertService,\n TemplateService,\n ConversationWhatsappService,\n WhatsappTemplatesService,\n ConversationEmailService,\n];\n\n@NgModule({\n providers: [\n provideFirebaseApp(() => initializeApp(firebaseConfig, 'inbox')),\n provideFirestore(() => getFirestore(getApp('inbox'))),\n ],\n})\nexport class ConversationCoreModule {\n static forRoot(c: { config: InjectionToken }): ModuleWithProviders {\n const result = {\n ngModule: ConversationCoreModule,\n providers: [\n ...SERVICE_PROVIDERS,\n { provide: USER_ID_TOKEN, deps: [CONVERSATION_CONFIG_TOKEN], useFactory: userIdFactory },\n { provide: ACCOUNT_GROUP_ID_TOKEN, deps: [CONVERSATION_CONFIG_TOKEN], useFactory: accountGroupIdFactory },\n {\n provide: CONVERSATION_COUNTRY_TOKEN,\n deps: [CONVERSATION_CONFIG_TOKEN],\n useFactory: countryFactory,\n },\n {\n provide: CONVERSATION_GEOGRAPHICAL_STATE_TOKEN,\n deps: [CONVERSATION_CONFIG_TOKEN],\n useFactory: geographicalState,\n },\n { provide: PARTNER_ID_TOKEN, deps: [CONVERSATION_CONFIG_TOKEN], useFactory: partnerIdFactory },\n { provide: PARTNER_BRAND_NAME_TOKEN, deps: [CONVERSATION_CONFIG_TOKEN], useFactory: partnerBrandNameFactory },\n { provide: MARKET_ID_TOKEN, deps: [CONVERSATION_CONFIG_TOKEN], useFactory: marketIdFactory },\n { provide: COMPANY_NAME_TOKEN, deps: [CONVERSATION_CONFIG_TOKEN], useFactory: companyNameFactory },\n {\n provide: CONVERSATION_PLATFORM_LOCATION_TOKEN,\n deps: [CONVERSATION_CONFIG_TOKEN],\n useFactory: platformLocationFactory,\n },\n {\n provide: CONVERSATION_CONVERSATION_CHANNELS_ENABLED_TOKEN,\n deps: [CONVERSATION_CONFIG_TOKEN],\n useFactory: conversationChannelsEnabledFactory,\n },\n {\n provide: FEATURE_FLAG_TOKEN,\n deps: [CONVERSATION_CONFIG_TOKEN],\n useFactory: featureFlagFactory,\n },\n {\n provide: CONVERSATION_IMAGE_SERVICE_TOKEN,\n deps: [CONVERSATION_CONFIG_TOKEN],\n useFactory: inboxImageServiceFactory,\n },\n { provide: CONVERSATION_ROUTES_TOKEN, deps: [CONVERSATION_CONFIG_TOKEN], useFactory: routesFactory },\n {\n provide: CONVERSATION_GOOGLE_BUSINESS_MESSAGES_AVAILABLE_TOKEN,\n deps: [CONVERSATION_CONFIG_TOKEN],\n useFactory: googleBusinessMessagesAvailableFactory,\n },\n {\n provide: CONVERSATION_FACEBOOK_MESSENGER_AVAILABLE_TOKEN,\n deps: [CONVERSATION_CONFIG_TOKEN],\n useFactory: facebookMessengerEnabledFactory,\n },\n {\n provide: CONVERSATION_INSTAGRAM_MESSAGES_AVAILABLE_TOKEN,\n deps: [CONVERSATION_CONFIG_TOKEN],\n useFactory: instagramMessagesEnabledFactory,\n },\n {\n provide: CONVERSATION_WHATSAPP_MESSAGES_AVAILABLE_TOKEN,\n deps: [CONVERSATION_CONFIG_TOKEN],\n useFactory: whatsAppMessagesEnabledFactory,\n },\n {\n provide: CONVERSATION_SMS_ENABLED_TOKEN,\n deps: [CONVERSATION_CONFIG_TOKEN],\n useFactory: smsEnabledFactory,\n },\n {\n provide: CONVERSATION_WEB_CHAT_ENABLED_TOKEN,\n deps: [CONVERSATION_CONFIG_TOKEN],\n useFactory: webchatEnabledFactory,\n },\n { provide: CONVERSATION_CONFIG_TOKEN, useExisting: c.config },\n { provide: CONVERSATION_CHANNEL_SERVICE_TOKEN, useFactory: abstractConversationChannelServiceFactory },\n {\n provide: GROUP_ID_TOKEN,\n deps: [CONVERSATION_CONFIG_TOKEN],\n useFactory: groupIdFactory,\n },\n {\n provide: MARKETPLACE_APP_ID_TOKEN,\n useFactory: marketplaceAppIdFactory,\n },\n ],\n };\n return result;\n }\n}\n\nfunction userIdFactory(config: ConversationConfig): Observable {\n return isObservable(config.userId$) ? config.userId$ : of(config.userId$);\n}\n\nfunction accountGroupIdFactory(config: ConversationConfig): Observable {\n return isObservable(config.accountGroupId$) ? config.accountGroupId$ : of(config.accountGroupId$);\n}\n\nfunction countryFactory(config: ConversationConfig): Observable {\n return isObservable(config.country$) ? config.country$ : of(config.country$);\n}\n\nfunction geographicalState(config: ConversationConfig): Observable {\n return isObservable(config.geographicalState$) ? config.geographicalState$ : of(config.geographicalState$);\n}\n\nfunction partnerIdFactory(config: ConversationConfig): Observable {\n return isObservable(config.partnerId$) ? config.partnerId$ : of(config.partnerId$);\n}\n\nfunction partnerBrandNameFactory(config: ConversationConfig): Observable {\n return isObservable(config.partnerBrandName$) ? config.partnerBrandName$ : of(config.partnerBrandName$);\n}\n\nfunction companyNameFactory(config: ConversationConfig): Observable {\n return isObservable(config.companyName$) ? config.companyName$ : of(config.companyName$);\n}\n\nfunction platformLocationFactory(config: ConversationConfig): PlatformLocation {\n return config.platformLocation;\n}\n\nfunction marketplaceAppIdFactory(): string {\n const environmentService = inject(EnvironmentService);\n return InboxProMarketplaceAppIDs[environmentService.getEnvironment()];\n}\n\nfunction conversationChannelsEnabledFactory(\n config: ConversationConfig,\n): Observable {\n return isObservable(config.conversationChannelsEnabled$)\n ? config.conversationChannelsEnabled$\n : of(config.conversationChannelsEnabled$);\n}\n\nfunction routesFactory(config: ConversationConfig): Observable {\n return isObservable(config.routes$) ? config.routes$ : of(config.routes$);\n}\n\nfunction featureFlagFactory(config: ConversationConfig): Observable {\n if (!config.featureFlag$) {\n return of(false);\n }\n return config.featureFlag$;\n}\n\nfunction inboxImageServiceFactory(config: ConversationConfig): InboxImageService {\n return config.inboxImageService || inject(StubInboxImageService);\n}\n\nfunction marketIdFactory(config: ConversationConfig): Observable {\n return isObservable(config.marketId$) ? config.marketId$ : of(config.marketId$);\n}\n\nfunction smsEnabledFactory(config: ConversationConfig): Observable {\n const inboxApiService = inject(InboxApiService);\n const isEnabled$ = isObservable(config.smsEnabled$) ? config.smsEnabled$ : of(config.smsEnabled$);\n return combineLatest([config.accountGroupId$, config.partnerId$, isEnabled$]).pipe(\n switchMap(([agid, partnerId, isEnabled]) => {\n if (!isEnabled || (!agid && !partnerId)) {\n return of({ configuration: { smsEnabled: false } });\n }\n\n let ownerId;\n let participantType;\n\n if (agid) {\n participantType = GlobalParticipantType.GLOBAL_PARTICIPANT_TYPE_ACCOUNT_GROUP;\n ownerId = agid;\n } else if (partnerId) {\n participantType = GlobalParticipantType.GLOBAL_PARTICIPANT_TYPE_PARTNER;\n ownerId = partnerId;\n }\n\n return inboxApiService.getConfiguration({\n subjectParticipant: {\n internalParticipantId: ownerId,\n participantType: participantType,\n },\n });\n }),\n map((config): boolean => config.configuration.smsEnabled),\n shareReplay({ refCount: true, bufferSize: 1 }),\n catchError(() => of(false)),\n );\n}\n\nfunction webchatEnabledFactory(config: ConversationConfig): Observable {\n const isEnabled$ = isObservable(config.webChatEnabled$) ? config.webChatEnabled$ : of(false);\n\n return isEnabled$.pipe(\n shareReplay({ refCount: true, bufferSize: 1 }),\n catchError(() => of(false)),\n );\n}\n\nfunction facebookMessengerEnabledFactory(config: ConversationConfig): Observable {\n const inboxApiService = inject(InboxApiService);\n const enableable$ = isObservable(config.facebookMessengerSupported$)\n ? config.facebookMessengerSupported$\n : of(config.facebookMessengerSupported$);\n\n return combineLatest([config.accountGroupId$, enableable$]).pipe(\n switchMap(([agid, enableable]) => {\n if (!enableable || !agid) {\n return of({ configuration: { facebookMessengerEnabled: false } });\n }\n return inboxApiService.getConfiguration({\n subjectParticipant: {\n participantType: GlobalParticipantType.GLOBAL_PARTICIPANT_TYPE_ACCOUNT_GROUP,\n internalParticipantId: agid,\n },\n });\n }),\n map((config): boolean => config.configuration.facebookMessengerEnabled),\n shareReplay({ refCount: true, bufferSize: 1 }),\n catchError(() => of(false)),\n );\n}\n\nfunction instagramMessagesEnabledFactory(config: ConversationConfig): Observable {\n const enableable$ = isObservable(config.instagramMessagesSupported$)\n ? config.instagramMessagesSupported$\n : of(config.instagramMessagesSupported$);\n\n return combineLatest([config.accountGroupId$, enableable$]).pipe(\n map(([agid, enableable]) => {\n return Boolean(enableable && agid);\n }),\n shareReplay({ refCount: true, bufferSize: 1 }),\n catchError(() => of(false)),\n );\n}\n\nfunction whatsAppMessagesEnabledFactory(config: ConversationConfig): Observable {\n const ffService = inject(FeatureFlagService);\n const isSupported$ = isObservable(config.whatsAppMessagesSupported$)\n ? config.whatsAppMessagesSupported$\n : of(config.whatsAppMessagesSupported$);\n\n const isEnabled$ = isObservable(config.whatsAppEnabled$) ? config.whatsAppEnabled$ : of(false);\n\n const whatsAppIntegrationFeatureFlag = 'inbox_whatsapp_integration';\n return combineLatest([config.partnerId$, isSupported$, isEnabled$]).pipe(\n switchMap(([partnerId, isSupported, isEnabled]) => {\n if (!partnerId || !isSupported || !isEnabled) {\n return of({ [whatsAppIntegrationFeatureFlag]: false });\n }\n return ffService.batchGetStatus(partnerId, '', [whatsAppIntegrationFeatureFlag]);\n }),\n map((status) => status[whatsAppIntegrationFeatureFlag]),\n shareReplay({ refCount: true, bufferSize: 1 }),\n catchError(() => of(false)),\n );\n}\n\nfunction googleBusinessMessagesAvailableFactory(config: ConversationConfig): Observable {\n const inboxService = inject(InboxApiService);\n const environmentService = inject(EnvironmentService);\n const enableable$ = isObservable(config.googleBusinessMessagesSupported$)\n ? config.googleBusinessMessagesSupported$\n : of(config.googleBusinessMessagesSupported$);\n\n return combineLatest([config.accountGroupId$, enableable$]).pipe(\n switchMap(([agid, enableable]) => {\n if (!enableable || environmentService.getEnvironment() !== Environment.PROD || !agid) {\n return of({ configuration: { googleBusinessMessagesEnabled: false } });\n }\n return inboxService.getConfiguration({\n subjectParticipant: {\n participantType: GlobalParticipantType.GLOBAL_PARTICIPANT_TYPE_ACCOUNT_GROUP,\n internalParticipantId: agid,\n },\n });\n }),\n map((config): boolean => config.configuration.googleBusinessMessagesEnabled),\n shareReplay({ refCount: true, bufferSize: 1 }),\n catchError(() => of(false)),\n );\n}\n\nfunction abstractConversationChannelServiceFactory(): Record<\n ConversationChannel,\n ConversationChannelService | undefined\n> {\n const conversationGoogleService = inject(ConversationGoogleService);\n const conversationWebChatService = inject(ConversationWebchatService);\n const conversationFacebookService = inject(ConversationFacebookService);\n const conversationInstagramService = inject(ConversationInstagramService);\n const conversationPlatformService = inject(ConversationPlatformService);\n const conversationWhatsappService = inject(ConversationWhatsappService);\n let conversationSMSService: ConversationSMSService;\n let conversationEmailService: ConversationEmailService;\n\n const channelMap: Record = {\n [ConversationChannel.CONVERSATION_CHANNEL_UNDEFINED]: undefined,\n [ConversationChannel.CONVERSATION_CHANNEL_GOOGLE_MESSAGES]: undefined, // Unused channel\n [ConversationChannel.CONVERSATION_CHANNEL_GOOGLE_BUSINESS_COMMUNICATIONS]: conversationGoogleService,\n [ConversationChannel.CONVERSATION_CHANNEL_WEB_CHAT]: conversationWebChatService,\n [ConversationChannel.CONVERSATION_CHANNEL_FACEBOOK]: conversationFacebookService,\n [ConversationChannel.CONVERSATION_CHANNEL_INSTAGRAM]: conversationInstagramService,\n [ConversationChannel.CONVERSATION_CHANNEL_INTERNAL]: conversationPlatformService,\n [ConversationChannel.CONVERSATION_CHANNEL_SMS]: undefined, // Conditionally added below\n [ConversationChannel.CONVERSATION_CHANNEL_EMAIL]: undefined, // Errors not handled TODO: Add email service\n [ConversationChannel.CONVERSATION_CHANNEL_OPENAI]: undefined, // Errors not handled\n [ConversationChannel.CONVERSATION_CHANNEL_WHATSAPP]: conversationWhatsappService,\n };\n\n try {\n conversationSMSService = inject(ConversationSMSService);\n channelMap[ConversationChannel.CONVERSATION_CHANNEL_SMS] = conversationSMSService;\n } catch (e) {\n console.debug('ConversationSMSService could not be injected.', e);\n }\n\n try {\n conversationEmailService = inject(ConversationEmailService);\n channelMap[ConversationChannel.CONVERSATION_CHANNEL_EMAIL] = conversationEmailService;\n } catch (e) {\n console.debug('ConversationSMSService could not be injected.', e);\n }\n\n return channelMap;\n}\n\nfunction groupIdFactory(config: ConversationConfig): Observable {\n return isObservable(config.groupId$) ? config.groupId$ : of(config.groupId$);\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'app-access-denied',\n templateUrl: './access-denied.component.html',\n styleUrls: ['./access-denied.component.scss'],\n standalone: false,\n})\nexport class AccessDeniedComponent {}\n","

{{ 'ACCESS_DENIED.ACCESS_DENIED' | translate }}

\n

{{ 'ACCESS_DENIED.ACCESS_DENIED_INFO' | translate }}

\n

{{ 'ACCESS_DENIED.GO_BACK' | translate }}

\n","import { Component, OnInit } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { AccountGroupService, ProjectionFilter } from '@galaxy/account-group';\nimport { switchMap, take } from 'rxjs/operators';\nimport { DeleteAccountDialogComponent } from '../manage_accounts/dialogs/delete-account-dialog.component';\n\n@Component({\n template: '',\n standalone: false,\n})\nexport class AccountDeleteComponent implements OnInit {\n constructor(\n private readonly route: ActivatedRoute,\n private readonly router: Router,\n private accountGroupService: AccountGroupService,\n private readonly dialog: MatDialog,\n ) {}\n\n ngOnInit(): void {\n this.accountGroupService\n .get(this.route.snapshot.params.accountGroupId, new ProjectionFilter({ napData: true }))\n .pipe(\n switchMap((accountGroup) => {\n this.dialog.closeAll();\n const ref = this.dialog.open(DeleteAccountDialogComponent, { width: '620px', data: { accountGroup } });\n return ref.afterClosed();\n }),\n take(1),\n )\n .subscribe((deleted) => {\n if (deleted && this.shouldRedirectToManageAccounts()) {\n this.router.navigateByUrl('/manage-accounts');\n } else {\n this.router.navigate([{ outlets: { action: null } }]);\n }\n });\n }\n\n /**\n * Returns true if the url contains the final segment \"redirect\" false if it does not. This redirect segment indicates\n * that once the delete is complete, it should redirect to the manage accounts page.\n */\n private shouldRedirectToManageAccounts(): boolean {\n const segments = this.route.snapshot.url;\n return segments.length > 0 && segments[segments.length - 1].path === 'redirect';\n }\n}\n","import { ResellerItem } from '@vendasta/store';\nimport { AnalyticsItem, AnalyticsTransaction } from '../../../analytics/interface';\nimport { PurchaseCost } from '../../../core/billing/purchase-cost';\nimport { ActivationResult } from '../activate-app/interface';\n\nexport function filterMapByIds(selectedIds: string[], m: Map): Map {\n if (!selectedIds || selectedIds.length === 0 || !m || m.size === 0) {\n return new Map();\n }\n return selectedIds.reduce((currMap, id) => {\n const item = m.get(id);\n if (item) {\n currMap.set(id, item);\n }\n return currMap;\n }, new Map());\n}\n\nexport function convertResellerItemsAndPricingMapToAnalyticsItems(\n pricingMap: Map,\n resellerItemMap: Map,\n activatedItemMap: Map,\n): AnalyticsItem[] {\n return Array.from(activatedItemMap.keys()).reduce((acc, id) => {\n const quantity = activatedItemMap.get(id);\n if (quantity <= 0) {\n return acc;\n }\n const resellerItem = resellerItemMap.get(id);\n const pricing = resellerItem ? pricingMap.get(resellerItem.billingId) : null;\n const analyticsItem = buildAnalyticsItem(pricing, quantity, resellerItem);\n acc.push(analyticsItem);\n return acc;\n }, []);\n}\n\nexport function buildTransaction(\n transactionId: string,\n partnerId: string,\n marketId: string,\n analyticsItems: AnalyticsItem[],\n): AnalyticsTransaction {\n const totalRevenue = (analyticsItems || []).reduce((total, item) => {\n if (item.quantity > 0) {\n total = total + item.price * item.quantity;\n }\n return total;\n }, 0);\n return {\n transactionId: transactionId,\n revenue: totalRevenue,\n affiliation: `${partnerId},${marketId}`,\n } as AnalyticsTransaction;\n}\n\n/* generate random uuidv4 */\nexport function uuidv4(): string {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\n // tslint:disable-next-line:no-bitwise\n const r = (Math.random() * 16) | 0,\n // tslint:disable-next-line:no-bitwise\n v = c === 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n}\n\nexport function convertActivationResultsToQuantityMap(activationResults: ActivationResult[]): Map {\n return (activationResults || []).reduce((m, curr) => {\n const currentCount = m.get(curr.appId) || 0;\n m.set(curr.appId, currentCount + 1);\n return m;\n }, new Map());\n}\n\nfunction buildAnalyticsItem(pricing: PurchaseCost, quantity: number, resellerItem: ResellerItem): AnalyticsItem {\n resellerItem = resellerItem || ({} as ResellerItem);\n if (!pricing) {\n if (resellerItem && resellerItem.isCustom) {\n pricing = new PurchaseCost();\n pricing.totalCost = resellerItem.price * quantity;\n pricing.currency = resellerItem.currency;\n } else {\n pricing = { totalCost: 0, currency: 'USD' } as PurchaseCost;\n }\n }\n return {\n name: resellerItem.name || 'NO NAME',\n id: resellerItem.billingId || 'NO SKU',\n category: (resellerItem.lmiCategories || []).reduce((s, cat) => (s ? `${s},${cat}` : `${cat}`), ''),\n price: pricing.totalCost ? pricing.totalCost / quantity : 0,\n currency: pricing.currency || 'USD',\n quantity: quantity,\n };\n}\n","import { Injectable } from '@angular/core';\nimport { ProductAnalyticsService } from '@vendasta/product-analytics';\nimport { ResellerItem } from '@vendasta/store';\nimport { combineLatest, Observable } from 'rxjs';\nimport { first, map } from 'rxjs/operators';\nimport { AnalyticsService } from '../../../analytics';\nimport { PurchaseCost } from '../../../core/billing/purchase-cost';\nimport { resellerArrayToMap } from '../../../core/reseller';\nimport { ResellerItemService } from '../../../core/reseller/reseller-item.service';\nimport { ActivationResult } from '../activate-app/interface';\nimport { ActivationParamService } from '../activation-param.service';\nimport { ActivationPricingService } from '../activation-pricing.service';\nimport {\n buildTransaction,\n convertActivationResultsToQuantityMap,\n convertResellerItemsAndPricingMapToAnalyticsItems,\n filterMapByIds,\n uuidv4,\n} from './utils';\n\n@Injectable()\nexport class ActivationAnalyticsService {\n // this is a map of sku to purchase cost\n private purchaseCostMap$: Observable>;\n private resellerItemMap$: Observable>;\n private resellerItems$: Observable;\n private partnerId$: Observable;\n private marketId$: Observable;\n\n constructor(\n private resellerItemService: ResellerItemService,\n private activationPricingService: ActivationPricingService,\n private analyticsService: AnalyticsService,\n private activationParamService: ActivationParamService,\n private productAnalytics: ProductAnalyticsService,\n ) {\n this.resellerItems$ = this.resellerItemService.getActivatablePartnerData();\n this.resellerItemMap$ = this.resellerItems$.pipe(map((ris) => resellerArrayToMap(ris)));\n this.partnerId$ = this.activationParamService.partnerId$;\n this.marketId$ = this.activationParamService.marketId$;\n }\n\n trackActivationTransactions(activationResults: ActivationResult[]): Observable {\n const randomTransactionId$ = combineLatest([this.partnerId$, this.marketId$]).pipe(\n map(([partnerId, marketId]) => {\n const uniqueTransactionId = uuidv4();\n return `${partnerId}-${marketId}-${uniqueTransactionId}`;\n }),\n );\n const analyticsItems = combineLatest([this.purchaseCostMap$, this.resellerItemMap$]).pipe(\n first(),\n map(([purchaseCostMap, resellerItemMap]) => {\n const activatedItemIds = activationResults.map((r) => r.appId);\n const activatedResellerMap = filterMapByIds(activatedItemIds, resellerItemMap);\n const activatedItemMap = convertActivationResultsToQuantityMap(activationResults);\n return convertResellerItemsAndPricingMapToAnalyticsItems(\n purchaseCostMap,\n activatedResellerMap,\n activatedItemMap,\n );\n }),\n );\n\n const transaction = combineLatest([this.partnerId$, this.marketId$, analyticsItems, randomTransactionId$]).pipe(\n first(),\n map(([partnerId, marketId, analyticsItemsInput, transactionId]) => {\n return buildTransaction(transactionId, partnerId, marketId, analyticsItemsInput);\n }),\n );\n\n return combineLatest([transaction, analyticsItems]).pipe(\n first(),\n map(([analyticsTransaction, analyticsItemsInput]) => {\n this.analyticsService.trackEcommerceTransaction(analyticsTransaction, analyticsItemsInput);\n }),\n );\n }\n}\n","import { NgModule } from '@angular/core';\nimport {\n ActivationPricingServiceInterfaceToken,\n ActivationServiceInterfaceToken,\n} from '../../common/app-selection/paginated-app-activation-table/tokens';\nimport { VbcHostService } from '../../vbc/vbc.host.service';\nimport { getHostName } from '../activation.module';\nimport { ActivateAppApiService } from '../core/activate-app/activate-app-api.service';\nimport { ActivateAppService } from '../core/activate-app/activate-app.service';\nimport { ActivationParamService } from '../core/activation-param.service';\nimport { ActivationPricingService } from '../core/activation-pricing.service';\nimport { ActivationService } from '../core/activation.service';\nimport { ActivationAnalyticsService } from '../core/analytics/activation-analytics.service';\nimport { VBC_HOST } from '../core/injection-tokens';\n\n@NgModule({\n imports: [],\n exports: [],\n providers: [\n ActivationService,\n { provide: ActivationServiceInterfaceToken, useExisting: ActivationService },\n ActivateAppService,\n ActivationPricingService,\n { provide: ActivationPricingServiceInterfaceToken, useExisting: ActivationPricingService },\n ActivationParamService,\n { provide: VBC_HOST, deps: [VbcHostService], useFactory: getHostName },\n ActivateAppApiService,\n ActivationAnalyticsService,\n VbcHostService,\n ],\n})\nexport class SharedActivationModule {}\n","import { Component, OnInit } from '@angular/core';\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { AccountGroup, AccountGroupService, ProjectionFilter } from '@galaxy/account-group';\nimport { take } from 'rxjs/operators';\nimport { ActionListsApiService, ActionListsStoreService } from '../action-lists';\nimport { CreateListDialog } from '../action-lists/actions';\nimport { AddToListDialogComponent } from '../manage_accounts/dialogs/add-to-list-dialog.component';\n\n@Component({\n template: '',\n standalone: false,\n})\nexport class AccountAddToListComponent implements OnInit {\n constructor(\n public dialogRef: MatDialogRef,\n private readonly route: ActivatedRoute,\n private readonly router: Router,\n private accountGroupService: AccountGroupService,\n private readonly dialog: MatDialog,\n private actionListsApiService: ActionListsApiService,\n private actionListsStoreService: ActionListsStoreService,\n ) {}\n\n ngOnInit(): void {\n this.actionListsStoreService.initializeStore(1000);\n this.accountGroupService\n .get(this.route.snapshot.params.accountGroupId, new ProjectionFilter({ napData: true }))\n .pipe(take(1))\n .subscribe((accountGroup) => {\n this.openAddToListDialog(accountGroup);\n });\n }\n\n private showCreateListDialogAndAddAccount(accountGroup: AccountGroup): void {\n this.dialog.closeAll();\n const createDialog = this.dialog.open(CreateListDialog, {\n width: '620px',\n });\n createDialog\n .afterClosed()\n .pipe(take(1))\n .subscribe((listName) => {\n if (listName) {\n this.actionListsApiService.createActionList(listName).subscribe(() => {\n this.actionListsApiService.addAccountToActionList(listName, accountGroup.accountGroupId);\n });\n }\n this.router.navigate([{ outlets: { action: null } }]);\n });\n }\n\n private openAddToListDialog(accountGroup: AccountGroup): void {\n this.dialog.closeAll();\n const addToListDialogRef = this.dialog.open(AddToListDialogComponent, {\n width: '620px',\n });\n addToListDialogRef.componentInstance.accountGroup = accountGroup;\n addToListDialogRef\n .afterClosed()\n .pipe(take(1))\n .subscribe((result) => {\n if (result === false) {\n this.showCreateListDialogAndAddAccount(accountGroup);\n } else {\n this.router.navigate([{ outlets: { action: null } }]);\n }\n });\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ChangePlanDialogComponent } from './change-plan-dialog.component';\nimport { ChangePlanService } from './change-plan-service';\n\n@NgModule({\n imports: [\n CommonModule,\n MatRadioModule,\n MatDialogModule,\n MatCheckboxModule,\n MatButtonModule,\n FormsModule,\n MatProgressSpinnerModule,\n TranslateModule,\n ],\n declarations: [ChangePlanDialogComponent],\n providers: [ChangePlanService],\n})\nexport class ChangePlanDialogModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatListModule } from '@angular/material/list';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { RouterModule } from '@angular/router';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { AccountsService } from '@vendasta/accounts/legacy';\nimport { BillingUiModule } from '@vendasta/billing-ui';\nimport { VaFormsModule } from '@vendasta/forms';\nimport { GalaxyAlertModule } from '@vendasta/galaxy/alert';\nimport { GalaxyButtonLoadingIndicatorModule } from '@vendasta/galaxy/button-loading-indicator';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { GalaxyInputModule } from '@vendasta/galaxy/input';\nimport { GalaxyPipesModule } from '@vendasta/galaxy/pipes';\nimport { StencilsModule } from '@vendasta/store';\nimport { IconComponent, VaListModule, VaStatusBannerModule } from '@vendasta/uikit';\nimport { ActivationSettingsApiService } from '../activation/activation-settings-api.service';\nimport { ProductOrderFormStoreService } from '../activation/core/product-order-form.store.service';\nimport { SharedActivationModule } from '../activation/shared/shared-activation.module';\nimport { UnifiedTOSService } from '../core/tos-unified.service';\nimport { CampaignService } from '../marketing/campaign.service';\nimport { UserService, UsersModule } from '../users';\nimport { AccountAddToListComponent } from './account-add-to-list.component';\nimport { AccountDeleteComponent } from './account-delete.component';\nimport { AccountSelectorDialogComponent } from './account-selector-dialog/account-selector-dialog.component';\nimport { ActiveCampaignChangeEditionDialogComponent } from './active-campaign-change-edition-dialog/ac-change-edition-dialog.component';\nimport { CampaignDialogItemStoreService } from './campaign-dialog-item-store.service';\nimport { CampaignDialogItemComponent } from './campaign-dialog-item.component';\nimport { CampaignDialogStoreService } from './campaign-dialog-store.service';\nimport { CampaignsDialogComponent } from './campaigns-dialog.component';\nimport { ChangeEditionDialogComponent } from './change-edition-dialog.component';\nimport { ChangeEditionDialogService } from './change-edition-dialog.service';\nimport { ChangePlanDialogModule } from './change-plan-dialog';\nimport { ChangePlanService } from './change-plan-dialog/change-plan-service';\nimport { DeactivateDependentProductDialogComponent } from './deactivate-dependent-product-dialog/deactivate-dependent-product-dialog.component';\nimport { DeactivateDialogComponent } from './deactivate-dialog/deactivate-dialog.component';\nimport { DeactivateImmediatelyDialogComponent } from './deactivate-immediately-dialog.component';\nimport { OrderFormSubmissionDialogComponent } from './order-form-submission-dialog.component';\nimport { RequestSpendChangeDialogComponent } from './request-spend-change-dialog/request-spend-change-dialog.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n VaListModule,\n ReactiveFormsModule,\n MatProgressSpinnerModule,\n MatButtonModule,\n MatCardModule,\n MatIconModule,\n MatIconModule,\n VaFormsModule,\n MatMenuModule,\n MatSelectModule,\n MatDialogModule,\n MatFormFieldModule,\n MatInputModule,\n MatCheckboxModule,\n MatListModule,\n MatTooltipModule,\n MatChipsModule,\n MatProgressBarModule,\n MatButtonToggleModule,\n MatTabsModule,\n StencilsModule,\n ChangePlanDialogModule,\n MatRadioModule,\n TranslateModule,\n SharedActivationModule,\n MatAutocompleteModule,\n VaStatusBannerModule,\n GalaxyAlertModule,\n GalaxyFormFieldModule,\n GalaxyPipesModule,\n RouterModule,\n GalaxyInputModule,\n UsersModule,\n GalaxyButtonLoadingIndicatorModule,\n BillingUiModule,\n IconComponent,\n ],\n exports: [],\n declarations: [\n CampaignsDialogComponent,\n OrderFormSubmissionDialogComponent,\n DeactivateDialogComponent,\n DeactivateDependentProductDialogComponent,\n DeactivateImmediatelyDialogComponent,\n RequestSpendChangeDialogComponent,\n CampaignDialogItemComponent,\n ChangeEditionDialogComponent,\n ActiveCampaignChangeEditionDialogComponent,\n AccountDeleteComponent,\n AccountAddToListComponent,\n AccountSelectorDialogComponent,\n ],\n providers: [\n { provide: 'AccountsServiceInterface', useExisting: AccountsService },\n UserService,\n CampaignService,\n UnifiedTOSService,\n ChangePlanService,\n CampaignDialogStoreService,\n CampaignDialogItemStoreService,\n ChangeEditionDialogService,\n AccountsService,\n ProductOrderFormStoreService,\n ActivationSettingsApiService,\n ],\n})\nexport class AccountsModule {}\n","import { inject, InjectionToken } from '@angular/core';\n// eslint-disable-next-line @nx/enforce-module-boundaries\nimport { PartnerService } from '@galaxy/partner';\nimport { of } from 'rxjs';\nimport { distinctUntilChanged, filter, map, shareReplay } from 'rxjs/operators';\nimport { AiKnowledgeConfig } from '@galaxy/ai-knowledge';\n\nexport const AI_KNOWLEDGE_CONFIG = new InjectionToken(\n '[Partner Center Client]: Token for AI Knowledge config',\n {\n providedIn: 'root',\n factory: function (): AiKnowledgeConfig {\n const partnerService = inject(PartnerService);\n\n const accountGroupId$ = of('');\n const marketId$ = of('');\n const partnerId$ = partnerService.getPartnerId().pipe(\n map((partnerId) => partnerId),\n filter(Boolean),\n distinctUntilChanged(),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n const manageKnowledgeUrl$ = of('/ai-knowledge');\n\n const businessProfileUrl$ = of('');\n\n const showBusinessProfileSource$ = of(false);\n\n const webChatWidgetEditRoute$ = of(['', { outlets: { inbox: ['inbox', 'widgets', ':id', 'edit'] } }]);\n\n return {\n accountGroupId$,\n marketId$,\n partnerId$,\n manageKnowledgeUrl$,\n businessProfileUrl$,\n showBusinessProfileSource$,\n webChatWidgetEditRoute$,\n };\n },\n },\n);\n","import type { MenuItem } from './app-nav-item.component';\nimport { Feature } from './core/access';\n\nconst popUpMapping = new Map([\n ['open-ssc', Feature.salesAndSuccessCenterAccess],\n ['open-meetings', Feature.salesAndSuccessCenterAccess],\n ['open-task-manager', Feature.concierge],\n]);\n\nexport function popUpShouldRedirectToCTA(item: MenuItem): boolean {\n return item.locked && popUpMapping.has(item.menuId);\n}\n\nfunction getFeatureForPopUp(key: string): Feature {\n return popUpMapping.get(key);\n}\n\nexport function getCallToActionUrl(item: MenuItem): string {\n const feature = getFeatureForPopUp(item.menuId);\n return `/restricted/${feature}`;\n}\n","import { ConnectedPosition } from '@angular/cdk/overlay';\nimport { Component, EventEmitter, Inject, inject, Input, OnInit, Output } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { PopoverPositions } from '@vendasta/galaxy/popover';\nimport { Observable } from 'rxjs';\nimport { AppConfigService } from './app-config.service';\nimport { getCallToActionUrl, popUpShouldRedirectToCTA } from './pop-up-cta-check';\nimport { GalaxyNavItemListComponent } from '@vendasta/galaxy/nav';\n\nexport interface MenuItem {\n ngRoute?: boolean;\n url?: string;\n label: string;\n menuId: string;\n i18n_key?: string;\n icon?: string;\n nestedItems?: MenuItem[];\n expanded?: boolean;\n rightIcon?: string;\n popOut?: boolean;\n svgIcon?: boolean;\n locked?: boolean;\n subsectionHeader?: string;\n badge?: string;\n}\n\nenum NavLinkType {\n NAVLINK = 0,\n SUBNAV = 1,\n DISABLED = 2,\n LOCKED = 3,\n POPOUT = 4,\n BETA = 5,\n NEW = 6,\n}\n\n@Component({\n selector: 'app-nav-item',\n templateUrl: './app-nav-item.component.html',\n styleUrls: ['./app-nav-item.component.scss'],\n standalone: false,\n})\nexport class AppNavItemComponent implements OnInit {\n @Input() activeMenuId: string;\n @Input() item: MenuItem;\n @Output() clicked: EventEmitter = new EventEmitter();\n\n private readonly router = inject(Router);\n private readonly configService = inject(AppConfigService);\n\n public shouldExpandMenu = false;\n linkIsHandledInComponent: boolean;\n clickWillRedirectToCTA = false;\n\n readonly navLinkTypes = NavLinkType;\n navType: NavLinkType = NavLinkType.NAVLINK;\n\n readonly positions: ConnectedPosition[] = [{ ...PopoverPositions.Right }, { ...PopoverPositions.Bottom }];\n tooltip = `NAV_ITEMS.DEFAULT_DISABLED_TOOLTIP`;\n\n constructor(@Inject('PARTNER_ID') readonly partnerId$: Observable) {}\n\n ngOnInit(): void {\n if (this.item.nestedItems) {\n const activeItems = this.item.nestedItems.filter((item) => this.activeMenuId.startsWith(item.menuId));\n this.shouldExpandMenu = activeItems.length > 0;\n }\n this.clickWillRedirectToCTA = popUpShouldRedirectToCTA(this.item);\n this.linkIsHandledInComponent =\n this.navType === NavLinkType.DISABLED || this.navType === NavLinkType.LOCKED || this.clickWillRedirectToCTA;\n this.navType = this.getNavType();\n }\n\n onClick($event: GalaxyNavItemListComponent): void {\n if (this.navType === NavLinkType.DISABLED) {\n return;\n }\n this.clicked.emit($event);\n }\n\n navTabClicked(item: MenuItem): void {\n if (this.navType === NavLinkType.DISABLED) {\n return;\n }\n if (!item.popOut) {\n this.router.navigate([item.url]);\n }\n\n if (this.clickWillRedirectToCTA) {\n this.handleLockedPopUpClick(item);\n }\n }\n\n private handleLockedPopUpClick(item: MenuItem): void {\n const ctaUrl = getCallToActionUrl(item);\n this.router.navigate([ctaUrl], { queryParams: { page: item.menuId } });\n }\n\n private getNavType(): NavLinkType {\n if (this.item.menuId === 'open-ssc') {\n if (this.configService.config.isSuperAdmin) {\n this.tooltip = `NAV_ITEMS.SALES.SALES_POPOUTS_DISABLED_TOOLTIP`;\n return NavLinkType.DISABLED;\n }\n }\n\n if (this.item.menuId === 'open-meetings') {\n if (this.configService.config.isSuperAdmin) {\n this.tooltip = `NAV_ITEMS.SUPER_ADMIN_DISABLED_TOOLTIP`;\n return NavLinkType.DISABLED;\n } else if (this.item.locked) {\n this.tooltip = `NAV_ITEMS.SALES.MY_MEETINGS_POPOUTS_DISABLED_TOOLTIP`;\n return NavLinkType.DISABLED;\n }\n }\n\n if (this.item.locked) {\n return NavLinkType.LOCKED;\n }\n\n if (this.item.popOut) {\n return NavLinkType.POPOUT;\n }\n\n if (this.item.rightIcon) {\n return NavLinkType.SUBNAV;\n }\n\n if (this.item.badge === 'NAVIGATION_ITEM_BADGE_NEW') {\n return NavLinkType.NEW;\n }\n\n if (this.item.badge === 'NAVIGATION_ITEM_BADGE_BETA') {\n return NavLinkType.BETA;\n }\n }\n}\n","@if (item.nestedItems?.length > 0) {\n \n {{ item.i18n_key ?? item.label | translate }}\n \n \n \n \n} @else {\n @if (item.subsectionHeader) {\n \n {{ item.subsectionHeader | translate }}\n \n }\n @if (linkIsHandledInComponent) {\n \n {{ item.i18n_key ?? item.label | translate }}\n \n \n } @else {\n \n {{ item.i18n_key ?? item.label | translate }}\n \n \n }\n}\n\n\n\n @switch (navType) {\n @case (navLinkTypes.DISABLED) {\n \n error_outline\n \n }\n @case (navLinkTypes.LOCKED) {\n arrow_circle_up\n }\n @case (navLinkTypes.POPOUT) {\n open_in_new\n }\n @case (navLinkTypes.SUBNAV) {\n chevron_right\n }\n @case (navLinkTypes.BETA) {\n \n {{ 'COMMON.BETA' | translate }}\n \n }\n @case (navLinkTypes.NEW) {\n \n {{ 'COMMON.NEW' | translate }}\n \n }\n }\n\n","import { Params } from '@angular/router';\nimport { EmailEventService, EventType, SenderType } from '@vendasta/email';\nimport { EmailEvent } from '@vendasta/email/lib/_internal/objects/email-event';\nimport { PagedListRequestInterface, PagedResponseInterface, PaginatedAPIInterface } from '@vendasta/galaxy/table';\nimport { Observable, combineLatest } from 'rxjs';\nimport { catchError, map, switchMap } from 'rxjs/operators';\n\ninterface ParameterServiceInterface {\n partnerId$: Observable;\n url: Params;\n}\n\nexport class ParameterService implements ParameterServiceInterface {\n readonly partnerId$: Observable;\n readonly url: Params;\n\n constructor(partnerID$: Observable, url: Params) {\n this.partnerId$ = partnerID$;\n this.url = url;\n }\n}\n\nexport class ActivityTableDataService implements PaginatedAPIInterface {\n constructor(\n private parameterService: ParameterServiceInterface,\n private emailEventService: EmailEventService,\n private filters$: Observable,\n ) {}\n\n get(r: PagedListRequestInterface): Observable> {\n return combineLatest([this.parameterService.partnerId$, this.filters$]).pipe(\n switchMap(([pid, filters]) => {\n return this.emailEventService\n .listEventsForAttribute(\n {\n type: SenderType.SENDER_TYPE_PARTNER,\n id: pid,\n },\n {\n key: this.parameterService.url.attributeKey,\n value: this.parameterService.url.attributeValue,\n },\n filters,\n r.pagingOptions.cursor,\n r.pagingOptions.pageSize,\n )\n .pipe(\n map((r) => {\n return {\n data: r.events,\n pagingMetadata: {\n nextCursor: r?.cursor,\n hasMore: r?.hasMore,\n },\n };\n }),\n );\n }),\n catchError(() => []),\n );\n }\n}\n","import { Component, Inject, OnInit, OnDestroy } from '@angular/core';\nimport { Observable, Subscription } from 'rxjs';\nimport { EmailEventService, EventType } from '@vendasta/email';\nimport { ActivatedRoute } from '@angular/router';\nimport { GalaxyDataSource, GalaxyTableModule } from '@vendasta/galaxy/table';\nimport { EmailEvent } from '@vendasta/email/lib/_internal/objects/email-event';\nimport { GalaxyColumnDef } from '@vendasta/galaxy/table/src/table.interface';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { DateFormat } from '@vendasta/galaxy/utility/date-utils';\nimport { ActivityTableDataService, ParameterService } from './activity-table.service';\nimport { CheckboxFilterControl, FilterGroup, FilterModule, SidebarState } from '@vendasta/va-filter2';\nimport { CommonModule } from '@angular/common';\nimport { GalaxyPageModule } from '@vendasta/galaxy/page';\nimport { GalaxyEmptyStateModule } from '@vendasta/galaxy/empty-state';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTableModule } from '@angular/material/table';\nimport { GalaxyPipesModule } from '@vendasta/galaxy/pipes';\nimport { shareReplay, startWith, map } from 'rxjs/operators';\nimport { SENDER_ID_TOKEN } from '../../../email-activity/src/dependencies';\n\n@Component({\n imports: [\n CommonModule,\n TranslateModule,\n GalaxyPageModule,\n GalaxyTableModule,\n GalaxyEmptyStateModule,\n FilterModule,\n MatIconModule,\n MatTableModule,\n GalaxyPipesModule,\n ],\n providers: [EmailEventService],\n templateUrl: './activity-table.component.html',\n styles: [\n `\n :host {\n display: block;\n }\n `,\n ],\n})\nexport class ActivityTableComponent implements OnInit, OnDestroy {\n dataSource: GalaxyDataSource;\n readonly columns: GalaxyColumnDef[] = [\n {\n id: 'eventType',\n title: this.translateService.instant('EMAIL_ACTIVITY.EVENT_TYPE'),\n },\n {\n id: 'eventTime',\n title: this.translateService.instant('EMAIL_ACTIVITY.EVENT_TIME'),\n },\n ];\n readonly dateFormat = DateFormat.medium;\n readonly sidebarState = SidebarState.OPEN;\n filterGroup: FilterGroup;\n filters$: Observable;\n private subscriptions: Subscription[] = [];\n\n constructor(\n private readonly translateService: TranslateService,\n @Inject(SENDER_ID_TOKEN) readonly senderId$: Observable,\n private emailEventService: EmailEventService,\n private route: ActivatedRoute,\n ) {}\n\n ngOnInit(): void {\n this.filterGroup = new FilterGroup('').addSection(\n 'Event type',\n this.getEventTypeList().map((eventType) => {\n return new CheckboxFilterControl(eventType, eventType, false, {\n appliedValueMapper: (name: string) => ({ name, label: name }),\n });\n }),\n );\n this.subscriptions.push(\n this.route.queryParams.subscribe((params) => {\n this.filterGroup.initValue({\n [params.eventType]: true,\n });\n }),\n );\n\n this.filters$ = this.filterGroup.valueChanges.pipe(\n startWith(this.filterGroup.value),\n map((group) => {\n const filterTypes = [];\n if (group.Processed) {\n filterTypes.push(EventType.PROCESSED);\n }\n if (group.Delivered) {\n filterTypes.push(EventType.DELIVERED);\n }\n if (group.Opened) {\n filterTypes.push(EventType.OPENED);\n }\n if (group.Clicked) {\n filterTypes.push(EventType.CLICKED);\n }\n if (group.Bounced) {\n filterTypes.push(EventType.BOUNCED);\n }\n if (group.Deferred) {\n filterTypes.push(EventType.DEFERRED);\n }\n if (group.Dropped) {\n filterTypes.push(EventType.DROPPED);\n }\n if (group.Spamreport) {\n filterTypes.push(EventType.SPAMREPORT);\n }\n if (group.Unsubscribed) {\n filterTypes.push(EventType.UNSUBSCRIBED);\n }\n if (group.Resubscribed) {\n filterTypes.push(EventType.RESUBSCRIBED);\n }\n return filterTypes;\n }),\n shareReplay(1),\n );\n const paramsService = new ParameterService(this.senderId$, this.route.snapshot.params);\n const service = new ActivityTableDataService(paramsService, this.emailEventService, this.filters$);\n this.dataSource = new GalaxyDataSource(service);\n }\n\n getEventTypeList(): string[] {\n return Object.keys(EventType)\n .reduce((arr, key) => {\n if (!arr.includes(key)) {\n arr.push(EventType[key]);\n }\n return arr;\n }, [])\n .map((eventType) => eventType.charAt(0) + eventType.slice(1).toLowerCase());\n }\n\n getDisplayTypeFromEnum(value: EventType): string {\n switch (value) {\n case EventType.PROCESSED:\n return 'Processed';\n case EventType.DELIVERED:\n return 'Delivered';\n case EventType.OPENED:\n return 'Opened';\n case EventType.CLICKED:\n return 'Clicked';\n case EventType.BOUNCED:\n return 'Bounced';\n case EventType.DEFERRED:\n return 'Deferred';\n case EventType.DROPPED:\n return 'Dropped';\n case EventType.SPAMREPORT:\n return 'Spamreport';\n case EventType.UNSUBSCRIBED:\n return 'Unsubscribed';\n case EventType.RESUBSCRIBED:\n return 'Resubscribed';\n }\n }\n\n ngOnDestroy(): void {\n this.subscriptions.forEach((s) => s.unsubscribe());\n }\n}\n","\n \n {{ 'EMAIL_ACTIVITY.TITLE' | translate }}\n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n\n \n
{{ 'EMAIL_ACTIVITY.EVENT_TYPE' | translate }}\n {{ getDisplayTypeFromEnum(element.eventType) }}\n {{ 'EMAIL_ACTIVITY.EVENT_TIME' | translate }}\n {{ element.eventTime | glxyDate : dateFormat }}\n
\n \n \n done_all\n \n

{{ 'EMAIL_ACTIVITY.NO_EVENTS' | translate }}

\n
\n
\n \n \n
\n","import { Component } from '@angular/core';\n\n@Component({\n template: `\n

Preview Welcome Email

\n
\n The text between the braces {{ '{}' }} is dynamic. The braces and text will be replaced with information related\n to your company and the email recipient.\n
\n \n \n \n \n \n \n `,\n styleUrls: ['../../common/dialog.component.scss', './preview-welcome-email-dialog.component.scss'],\n standalone: false,\n})\nexport class PreviewWelcomeEmailComponent {}\n","import { Component, Inject } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\n\n@Component({\n templateUrl: 'map-change-dialog.component.html',\n styleUrls: ['map-change-dialog.component.scss'],\n standalone: false,\n})\nexport class MapChangeDialogComponent {\n constructor(\n public dialog: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: MapDialogData,\n ) {}\n\n cancel(): void {\n this.dialog.close(false);\n }\n}\n\nexport interface MapDialogData {\n fieldName: string;\n headerRow?: string;\n}\n","\n\n

\n \n \n

\n
\n\n \n \n\n","import { Component, Inject, Input, OnInit, ViewEncapsulation } from '@angular/core';\nimport { UntypedFormControl } from '@angular/forms';\nimport { MatDialog } from '@angular/material/dialog';\n// eslint-disable-next-line @nx/enforce-module-boundaries\nimport { FieldSchema } from '@vendasta/auxiliary-data-components';\nimport { Observable } from 'rxjs';\nimport { debounceTime, filter, map, shareReplay, switchMap, take, tap, withLatestFrom } from 'rxjs/operators';\n// eslint-disable-next-line @nx/enforce-module-boundaries\nimport { FieldSelectedForEditService as CustomFieldEditorNotificationsService } from '@vendasta/auxiliary-data-components';\nimport { BulkImportMappingService, fieldType } from './bulk-import-mapping.service';\nimport { doNotImportOptionId, FieldMappingOption, fieldOptions } from './header-mapping.options';\nimport { MapChangeDialogComponent } from './map-change-dialog.component';\n\n@Component({\n selector: 'app-bulk-import-mapper-row',\n templateUrl: 'bulk-import-mapping-row.component.html',\n styleUrls: ['./bulk-import-mapping-row.component.scss'],\n encapsulation: ViewEncapsulation.None,\n standalone: false,\n})\nexport class BulkImportMappingRowComponent implements OnInit {\n @Input() headerRow: string;\n options = fieldOptions;\n\n oldSelectionId: string = null;\n doNotImportOptionId = doNotImportOptionId;\n searchOptionsControl = new UntypedFormControl();\n filteredOptions$: Observable;\n filteredCustomFieldOptions$: Observable;\n readonly createCustomFieldOption = new CreateCustomField();\n\n constructor(\n @Inject('PARTNER_ID') readonly partnerId$: Observable,\n private mappingService: BulkImportMappingService,\n public dialog: MatDialog,\n private readonly customFieldEditorNotificationsService: CustomFieldEditorNotificationsService,\n ) {}\n\n private get selectedKey(): string {\n return this.searchOptionsControl.value ? this.searchOptionsControl.value.id : null;\n }\n\n setDoNotImport(): void {\n const oldColumn = this.mappingService.columnThatsMappedToField(this.oldSelectionId);\n this.mappingService.removeFromMap(oldColumn);\n this.setControlValue(doNotImportOptionId);\n }\n\n onSelectionChange(selection: FieldMappingOption | CreateCustomField): void {\n if ('createCustomField' in selection && selection.createCustomField) {\n this.customFieldEditorNotificationsService.createNewFieldClicked();\n this.customFieldEditorNotificationsService.fieldCreated$$\n .pipe(\n take(1),\n switchMap((newField: FieldSchema) => this.mappingService.getCustomFieldIdByName(newField.fieldName)),\n tap((newFieldId: string) => {\n this.updateMapping(newFieldId, 'custom');\n this.setControlValue(newFieldId);\n }),\n )\n .subscribe();\n return;\n }\n\n let ft: fieldType = 'standard';\n if ('isCustomFieldOption' in selection && selection.isCustomFieldOption) {\n ft = 'custom';\n }\n if (!('id' in selection)) {\n console.error('did not receive ID for field-mapping');\n return;\n }\n const fieldId: string = selection.id;\n const currentMappedHeader = this.mappingService.columnThatsMappedToField(fieldId);\n if (currentMappedHeader && currentMappedHeader !== this.headerRow) {\n this.openDialog(fieldId, currentMappedHeader, ft);\n } else {\n this.updateMapping(fieldId, ft);\n this.setControlValue(fieldId);\n }\n }\n\n nameDisplayFn(objectWithAName: { name: string }): string {\n return objectWithAName ? objectWithAName.name : undefined;\n }\n\n private setControlValue(fieldId: string): void {\n if (fieldId === doNotImportOptionId) {\n this.oldSelectionId = fieldId;\n } else if (fieldId !== this.oldSelectionId) {\n this.oldSelectionId = this.selectedKey ? this.selectedKey : fieldId;\n }\n const matchedStandardOptions: FieldMappingOption[] = this.options.filter((option) => option.id === fieldId);\n if (matchedStandardOptions.length > 0) {\n this.searchOptionsControl.setValue(matchedStandardOptions[0]);\n return;\n }\n\n this.mappingService.customFieldOptions$\n .pipe(\n take(1),\n tap((options: FieldMappingOption[]) => {\n const matched = options.filter((option) => option.id === fieldId);\n if (matched.length > 0) {\n this.searchOptionsControl.setValue(matched[0]);\n }\n }),\n )\n .subscribe();\n }\n\n ngOnInit(): void {\n const searchText$ = this.searchOptionsControl.valueChanges.pipe(\n debounceTime(100),\n filter((value) => value !== null && value !== undefined),\n map((value) => (typeof value === 'string' ? value : value.name)),\n );\n\n const staticOptions$ = searchText$.pipe(map((value) => this._filterOptions(value)));\n this.filteredOptions$ = staticOptions$;\n this.filteredCustomFieldOptions$ = searchText$.pipe(\n withLatestFrom(this.mappingService.customFieldOptions$),\n map(([searchText, customFieldOptions]) => {\n if (!searchText) {\n return customFieldOptions;\n }\n return customFieldOptions.filter((option) => this.optionMatchesSearch(option.name, searchText));\n }),\n shareReplay({ refCount: false, bufferSize: 1 }),\n );\n\n this.mappingService\n .autoMatch(this.headerRow)\n .pipe(\n take(1),\n tap((autoMatchedKey) => this.setControlValue(autoMatchedKey)),\n )\n .subscribe();\n }\n\n private optionMatchesSearch(option: string, search: string): boolean {\n return option.toLowerCase().includes(search.toLowerCase());\n }\n\n openDialog(newFieldChoice: string, currentMappedHeader: string, ft: fieldType): void {\n const dialogRef = this.dialog.open(MapChangeDialogComponent, {\n width: '400px',\n data: {\n headerRow: currentMappedHeader,\n fieldName: newFieldChoice,\n },\n });\n\n dialogRef.afterClosed().subscribe((result) => {\n if (result) {\n this.updateMapping(newFieldChoice, ft);\n this.setControlValue(newFieldChoice);\n } else {\n this.setControlValue(this.oldSelectionId);\n }\n });\n }\n\n private updateMapping(newFieldChoice: string, ft: fieldType): void {\n this.mappingService.addToMap(this.headerRow, newFieldChoice, ft);\n }\n\n _filterOptions(value: string): FieldMappingOption[] {\n if (!value) {\n return this.options;\n }\n const filterValue = value.toLowerCase();\n return this.options.filter((option) => this.optionMatchesSearch(option.name, filterValue));\n }\n\n onFocusout(): void {\n if (!this.selectedKey) {\n this.setControlValue(this.oldSelectionId);\n }\n }\n}\n\nclass CreateCustomField {\n readonly createCustomField: boolean = true;\n}\n","
\n \n \n \n \n \n {{ option.name }}\n \n \n \n \n {{ option.name }}\n \n \n \n {{ 'USERS.BULK_IMPORT.IMPORT_MAPPER.CREATE_NEW_CUSTOM_FIELD' | translate }}\n \n \n \n \n \n \n clear\n \n
\n","import { Component, Input, OnInit } from '@angular/core';\nimport { MatStepper } from '@angular/material/stepper';\nimport { Observable, Subscription } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { BulkImportService, ErrorRowInterface } from './bulk-import.service';\nimport { fieldOptions } from './header-mapping.options';\n\n@Component({\n selector: 'app-bulk-import-mapper',\n templateUrl: './bulk-import-mapper.component.html',\n styleUrls: ['./bulk-import-mapper.component.scss'],\n standalone: false,\n})\nexport class BulkImportMapperComponent implements OnInit {\n readonly displayedColumns = ['header-row', 'first-row', 'mapping'];\n readonly options = fieldOptions;\n @Input() pageStepper: MatStepper;\n\n subscriptions: Subscription[] = [];\n show = 10;\n proceedWithErrors = false;\n uploading$: Observable;\n dataSource: any;\n errorMessage$: any;\n errors$: Observable;\n\n constructor(private bulkImportService: BulkImportService) {}\n ngOnInit(): void {\n this.uploading$ = this.bulkImportService.uploading$;\n this.dataSource = this.bulkImportService.dataSource;\n this.errorMessage$ = this.bulkImportService.errorMessage$$.asObservable();\n this.errors$ = this.bulkImportService.errors$.pipe(\n map((errors) => {\n return errors.map((err) => {\n if (!this.isString(err.column)) {\n err.column = err.column.length > 1 ? err.column[0] + ' - ' + err.column[err.column.length - 1] : err.column;\n }\n return err;\n });\n }),\n );\n }\n\n uploadFileAndMapping(): void {\n this.bulkImportService.uploadFileAndMapping(this.pageStepper, this.proceedWithErrors);\n }\n increaseShow(): void {\n this.show += 10;\n }\n isString(val: any): boolean {\n return typeof val === 'string';\n }\n}\n","\n \n \n \n {{ 'USERS.BULK_IMPORT.IMPORT_MAPPER.COLUMNS' | translate }}\n \n \n \n {{ 'USERS.BULK_IMPORT.IMPORT_MAPPER.COLUMNS' | translate }}\n \n {{ col.headerRow }}\n \n \n \n \n {{ 'USERS.BULK_IMPORT.IMPORT_MAPPER.FIRST_ROW' | translate }}\n \n \n \n {{ 'USERS.BULK_IMPORT.IMPORT_MAPPER.FIRST_ROW' | translate }}\n \n {{ col.firstRow }}\n \n \n \n \n {{ 'USERS.BULK_IMPORT.IMPORT_MAPPER.MAP_TO' | translate }}\n \n \n \n \n \n \n \n \n\n\n\n
\n \n {{ 'USERS.BULK_IMPORT.IMPORT_MAPPER.ERRORS_ON_FOLLOWING_ROWS' | translate }}\n \n
\n \n \n {{ 'USERS.BULK_IMPORT.IMPORT_MAPPER.ROW_NUMBER' | translate: { rowNumber: error.row } }}\n ({{ error.column }}) {{ error.message }}\n \n \n \n {{ 'USERS.BULK_IMPORT.IMPORT_MAPPER.SHOW_MORE' | translate }}\n \n
\n \n {{ 'USERS.BULK_IMPORT.IMPORT_MAPPER.SKIP_ROWS_WITH_ERRORS' | translate }}\n \n
\n \n {{ 'USERS.BULK_IMPORT.IMPORT_MAPPER.DOWNLOAD_CSV_WITH_INCOMPLETE_ACCOUNTS' | translate }}\n \n
\n *{{ 'COMMON.REQUIRED' | translate }}\n
\n 0\" href=\"/manage-accounts/import-list/business-categories-csv\" target=\"_blank\">\n save_alt\n \n {{ 'USERS.BULK_IMPORT.DOWNLOAD_BUSINESS_CATEGORIES' | translate }}\n \n \n
\n\n
\n \n \n {{ 'COMMON.ACTION_LABELS.BACK' | translate }}\n \n \n \n {{ 'COMMON.ACTION_LABELS.NEXT' | translate }}\n \n \n \n
\n","import { AfterViewInit, Component, Inject, OnDestroy, OnInit, TemplateRef, ViewChild } from '@angular/core';\nimport {\n AbstractControl,\n FormGroupDirective,\n NgForm,\n UntypedFormBuilder,\n UntypedFormControl,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\nimport { MatAutocompleteSelectedEvent } from '@angular/material/autocomplete';\nimport { ErrorStateMatcher } from '@angular/material/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatStepper } from '@angular/material/stepper';\nimport { Router } from '@angular/router';\nimport { FeatureFlagService } from '@vendasta/businesses';\nimport { Market } from '@vendasta/businesses/easy-account-create';\nimport { ProductAnalyticsService } from '@vendasta/product-analytics';\nimport { BehaviorSubject, combineLatest, Observable, Subscription } from 'rxjs';\nimport { map, shareReplay, startWith, switchMap, take, tap } from 'rxjs/operators';\nimport { ActionListsStoreService } from '../action-lists';\nimport { ActionList } from '../action-lists/action-list';\n// eslint-disable-next-line @nx/enforce-module-boundaries\nimport { FieldSelectedForEditService as CreateOrEditCustomFieldService } from '@vendasta/auxiliary-data-components'; // nx-ignore\nimport { WELCOME_EMAIL_LOCALES } from '../constants';\nimport { AccessService, Feature, StubAccessService } from '../core/access';\nimport { MarketsService } from '../core/markets/markets.service';\nimport { DynamicOpenCloseTemplateRefService } from '../side-drawer/dynamic-open-close-template-ref.service';\nimport { PreviewWelcomeEmailComponent } from '../users/user/preview-welcome-email-dialog.component';\nimport { VConfigService } from '../vconfig/vconfig.service';\nimport { BulkImportMappingService } from './bulk-import-mapping.service';\nimport { BulkImportService } from './bulk-import.service';\n\n@Component({\n templateUrl: './bulk-import.component.html',\n styleUrls: ['./bulk-import.component.scss'],\n standalone: false,\n})\nexport class BulkImportComponent implements OnInit, AfterViewInit, OnDestroy {\n secondFormGroup: UntypedFormGroup;\n fileTypes = ['text/csv'];\n marketUiESM: MyErrorStateMatcher;\n filteredMarkets$: Observable;\n marketSearchTerm$$: BehaviorSubject = new BehaviorSubject('');\n listSearchTerm$$: BehaviorSubject = new BehaviorSubject('');\n selectFirstMarket = false;\n hasAccessToMarkets$: Observable;\n marketUiFormControl: UntypedFormControl;\n fileFormControl: UntypedFormControl;\n listFormControl: UntypedFormControl;\n filteredLists$: Observable;\n selectFirstActionList: boolean;\n subscriptions: Subscription[] = [];\n accessibleMarkets: string[] = [];\n totalRows$: Observable;\n marketName: string;\n listName: string;\n fileName: string;\n errorRows: any = [];\n show = 10;\n listText = `To an existing list named:`;\n fileForm: UntypedFormGroup;\n marketListForm: UntypedFormGroup;\n listSelected = false;\n marketMatcher: MyErrorStateMatcher;\n listMatcher: MyErrorStateMatcher;\n @ViewChild('stepper', { static: true })\n pageStepper: MatStepper;\n processing: boolean;\n processingErrorMessage: string = null;\n loading = false;\n netRows$: Observable;\n marketAndListText = 'Choose List';\n overwriteBlank = true;\n partnerBusinessCenterName$: Observable;\n permissionsFlag: boolean;\n notificationsFlag: boolean;\n welcomeEmailFlag: boolean;\n emailLanguage: string;\n welcomeMessage: string;\n emailLanguages = WELCOME_EMAIL_LOCALES;\n englishSelection: string;\n vbcConfigKey = 'vbc_product_name';\n @ViewChild('customFieldEditor', { static: true }) customFieldEditor: TemplateRef;\n\n constructor(\n private formBuilder: UntypedFormBuilder,\n public dialog: MatDialog,\n private marketService: MarketsService,\n private actionListsStoreService: ActionListsStoreService,\n private bulkImportService: BulkImportService,\n private mappingService: BulkImportMappingService,\n @Inject(StubAccessService) private accessService: AccessService,\n @Inject('PARTNER_ID') private readonly partnerId$: Observable,\n @Inject('MARKET_ID') private readonly marketId$: Observable,\n private feature: FeatureFlagService,\n private router: Router,\n private vConfigService: VConfigService,\n private readonly createOrEditCustomFieldService: CreateOrEditCustomFieldService,\n private readonly dynamicOpenCloseService: DynamicOpenCloseTemplateRefService,\n private readonly trackingService: ProductAnalyticsService,\n ) {}\n\n get filename(): string {\n if (this.bulkImportService.file) {\n return this.bulkImportService.file.name;\n }\n return '';\n }\n\n ngOnInit(): void {\n this.subscriptions.push(\n this.createOrEditCustomFieldService.createClicked$\n .pipe(tap(() => this.dynamicOpenCloseService.open('customFieldEditor')))\n .subscribe(),\n );\n this.actionListsStoreService.initializeStore(1000);\n this.marketUiFormControl = new UntypedFormControl('');\n this.fileFormControl = new UntypedFormControl('', [Validators.required]);\n this.listFormControl = new UntypedFormControl('', [Validators.required]);\n this.secondFormGroup = this.formBuilder.group({\n secondCtrl: ['', Validators.required],\n });\n\n this.fileForm = this.formBuilder.group({\n file: ['', Validators.required],\n fileHasErrors: [false],\n });\n\n this.marketListForm = this.formBuilder.group({\n marketId: [null, Validators.required],\n actionListId: [null, Validators.required],\n actionListName: [''],\n useExistingList: [true],\n });\n\n this.hasAccessToMarkets$ = this.accessService.hasAccessToFeature(Feature.markets).pipe(\n tap((hasAccess) => {\n hasAccess ? (this.marketAndListText = 'Choose Market and List') : (this.marketAndListText = 'Choose List');\n this.marketUiFormControl.setValidators(hasAccess ? [Validators.required] : []);\n }),\n );\n\n this.filteredMarkets$ = combineLatest([\n this.marketSearchTerm$$.asObservable().pipe(startWith('')),\n this.marketService.markets.pipe(startWith([])),\n ]).pipe(\n map(([searchTerm, markets]: [string, Market[]]) =>\n markets.filter((market) => {\n this.selectFirstMarket = !!searchTerm;\n if (market) {\n return market.name.toLowerCase().indexOf(searchTerm.toLowerCase()) > -1;\n }\n return false;\n }),\n ),\n );\n\n this.filteredLists$ = combineLatest([\n this.listSearchTerm$$.asObservable().pipe(startWith('')),\n this.actionListsStoreService.actionLists$.pipe(startWith([])),\n ]).pipe(\n map(([searchTerm, actionLists]: [string, ActionList[]]) => {\n if (actionLists) {\n return actionLists.filter((actionList) => {\n this.selectFirstActionList = !!searchTerm;\n if (actionList && typeof searchTerm === 'string') {\n return actionList.name.toLowerCase().indexOf(searchTerm.toLowerCase()) > -1;\n }\n return false;\n });\n }\n }),\n startWith([]),\n );\n\n this.marketUiESM = new CustomErrorStateMatcher(\n this.marketListForm.controls.marketId,\n (formControl: AbstractControl) => !formControl.value && formControl.touched,\n );\n this.subscriptions.push(\n this.marketService.markets\n .pipe(\n map((markets) => {\n this.accessibleMarkets = markets.map((market) => market.market_id);\n }),\n )\n .subscribe(),\n );\n\n this.subscriptions.push(\n combineLatest([this.marketService.currentMarket$, this.hasAccessToMarkets$])\n .pipe(\n tap(([market, marketAccess]) => {\n if (marketAccess === false || this.accessibleMarkets.length === 1) {\n this.marketListForm.patchValue({ marketId: market });\n }\n }),\n )\n .subscribe(),\n );\n this.marketMatcher = new MyErrorStateMatcher();\n this.listMatcher = new MyErrorStateMatcher();\n this.permissionsFlag = true;\n this.notificationsFlag = true;\n this.welcomeEmailFlag = false;\n this.welcomeMessage = '';\n this.emailLanguage = this.emailLanguages[0].id;\n this.englishSelection = this.emailLanguage;\n\n this.partnerBusinessCenterName$ = this.partnerId$.pipe(\n switchMap((partnerId) => {\n return this.vConfigService.getConfigurations(partnerId, [this.vbcConfigKey]);\n }),\n map((config) => config.vbc_product_name),\n shareReplay(1),\n );\n }\n\n ngAfterViewInit(): void {\n this.dynamicOpenCloseService.registerTemplate('customFieldEditor', this.customFieldEditor);\n }\n\n ngOnDestroy(): void {\n this.subscriptions.forEach((s) => s.unsubscribe());\n }\n\n fileOnChange(event: any): void {\n this.trackingService.trackEvent(\n `BulkImport:clicked-upload-file-bulk-import`,\n 'BulkImport',\n `clicked-upload-file-bulk-import`,\n );\n this.errorRows = [];\n if (!event.target.files) {\n return;\n }\n this.processing = true;\n this.processingErrorMessage = null;\n this.mappingService.resetMapping();\n this.bulkImportService.file = event.target.files[0];\n this.bulkImportService\n .processFile()\n .pipe(take(1))\n .subscribe({\n next: () => {\n this.processing = false;\n this.pageStepper.next();\n },\n error: (error) => {\n this.processing = false;\n this.processingErrorMessage = error;\n },\n });\n }\n\n nameDisplayFn(objectWithAName: { name: string }): string {\n return objectWithAName ? objectWithAName.name : undefined;\n }\n\n selectMarket(event: MatAutocompleteSelectedEvent): void {\n this.marketListForm.controls.marketId.setValue(event.option.value);\n this.marketName = this.marketListForm.controls.marketId.value.name;\n }\n\n selectList(event: MatAutocompleteSelectedEvent): void {\n this.listSelected = true;\n this.marketListForm.controls.useExistingList.setValue(true);\n this.marketListForm.controls.actionListId.setValue(event.option.value);\n this.listName = this.marketListForm.controls.actionListId.value.name;\n }\n\n updateSearchTerm(subject$$: BehaviorSubject, term: string): void {\n subject$$.next(term);\n }\n\n displayFn(actionList?: ActionList): string | undefined {\n return actionList ? actionList.name : undefined;\n }\n\n downloadTemplate(): void {\n window.open('/manage-accounts/import-list/csv-template/', '_blank');\n }\n\n downloadBusinessCategories(): void {\n window.open('/manage-accounts/import-list/business-categories-csv', '_blank');\n }\n\n increaseShow(): void {\n this.show += 10;\n }\n\n goToFinalStep(): void {\n this.netRows$ = combineLatest([this.bulkImportService.totalRows$, this.bulkImportService.errorRows$]).pipe(\n map(([totalRows, errorRows]) => {\n return totalRows - errorRows;\n }),\n );\n this.marketUiFormControl.markAsTouched();\n this.listFormControl.markAsTouched();\n this.setListName();\n }\n\n clearInput(event: any, input: any): void {\n this.show = 10;\n this.errorRows = [];\n input.value = '';\n }\n\n setListName(): void {\n if (this.marketListForm.controls.useExistingList.value && this.marketListForm.controls.actionListId.value) {\n this.listName = this.marketListForm.controls.actionListId.value.name;\n } else {\n this.listName = this.marketListForm.controls.actionListName.value;\n }\n }\n\n selectExistingList(): void {\n if (!this.marketListForm.controls.useExistingList.value) {\n this.marketListForm.controls.actionListId.setValidators([Validators.required]);\n this.listName = '';\n this.marketListForm.controls.actionListId.setValue('');\n this.marketListForm.controls.actionListName.clearValidators();\n this.marketListForm.controls.actionListName.updateValueAndValidity({ onlySelf: true });\n this.listText = `To an existing list named:`;\n }\n }\n\n createNewList(): void {\n this.marketListForm.controls.actionListName.setValidators([Validators.required]);\n this.listFormControl.setValue('');\n this.marketListForm.controls.actionListName.setValue(null);\n this.marketListForm.controls.actionListId.clearValidators();\n this.marketListForm.controls.actionListId.updateValueAndValidity({ onlySelf: true });\n this.listText = `To a new list named:`;\n }\n\n goToFieldMapping(): void {\n if (this.processingErrorMessage === null) {\n this.fileForm.controls.file.markAsTouched();\n this.fileForm.controls.fileHasErrors.markAsTouched();\n this.pageStepper.next();\n }\n }\n\n startListImport(): void {\n this.loading = true;\n this.bulkImportService\n .startListImport(\n this.bulkImportService.sessionId,\n this.listName,\n this.marketListForm.controls.marketId.value.market_id,\n this.overwriteBlank,\n this.permissionsFlag,\n this.notificationsFlag,\n this.welcomeEmailFlag,\n this.emailLanguage,\n this.welcomeMessage,\n )\n .subscribe((response) => {\n this.loading = false;\n this.router.navigate(['action-lists', response.data.actionListId, 'history']);\n });\n }\n\n openPreview(): void {\n this.dialog.open(PreviewWelcomeEmailComponent, { width: '600px' });\n }\n}\n\nexport class MyErrorStateMatcher implements ErrorStateMatcher {\n isErrorState(control: UntypedFormControl | null, form: FormGroupDirective | NgForm | null): boolean {\n const isSubmitted = form && form.submitted;\n return !!(control && control.invalid && (control.dirty || control.touched || isSubmitted));\n }\n}\n\nexport class CustomErrorStateMatcher implements ErrorStateMatcher {\n hasError: (formControl: AbstractControl) => boolean;\n formControl: AbstractControl;\n\n constructor(formControl: AbstractControl, hasError: (formControl: AbstractControl) => boolean) {\n this.formControl = formControl;\n this.hasError = hasError;\n }\n\n isErrorState(): boolean {\n return this.hasError.call(this, this.formControl);\n }\n}\n","\n \n \n \n {{ 'USERS.BULK_IMPORT.IMPORT_WIZARD' | translate }}\n \n \n \n \n \n \n \n \n
\n \n {{ 'USERS.BULK_IMPORT.UPLOAD_CSV_OF_ACCOUNTS' | translate }}\n \n
\n {{ 'USERS.BULK_IMPORT.UPLOAD_EXISTING_CUSTOMER_DATA' | translate }}\n
\n
\n {{ 'USERS.BULK_IMPORT.ADD_UP_TO_15_COLUMNS' | translate }}\n
\n
\n {{ 'USERS.BULK_IMPORT.REQUIRED_FIELDS' | translate }}\n CompanyName\n {{ 'STORE.AND' | translate }}\n Zip\n .\n
\n {{ 'USERS.BULK_IMPORT.MAXIMUM_FILE_SIZE' | translate }}\n 4MB\n .\n
\n
\n
\n attach_file\n \n \n clear\n \n \n {{ 'COMMON.THIS_FIELD_REQUIRED' | translate }}\n \n
\n \n \n
\n {{ 'USERS.BULK_IMPORT.AVAILABLE_FILES' | translate }}\n
\n \n\n
\n \n {{ 'COMMON.ACTION_LABELS.NEXT' | translate }}\n \n
\n \n
\n \n
\n \n \n \n \n
\n \n
\n \n
\n
\n \n
\n
\n \n {{\n 'USERS.BULK_IMPORT.ALLOW_ACCESS_TO_BUSINESS_APP'\n | translate: { businessAppName: partnerBusinessCenterName$ | async }\n }}\n \n
\n {{ 'USERS.BULK_IMPORT.CONFIGURE_PERMISSIONS_FOR_EACH_USER' | translate }}\n
\n
\n
\n
\n \n
\n \n {{ 'USERS.BULK_IMPORT.TURN_ON_ALL_NOTIFICATIONS' | translate }}\n \n
\n
\n \n
\n
\n \n
\n
\n \n {{ 'USERS.BULK_IMPORT.SEND_WELCOME_EMAIL' | translate }}\n\n \n {{ 'COMMON.ACTION_LABELS.PREVIEW' | translate }}\n \n \n
\n
\n
\n \n \n {{ 'USERS.BULK_IMPORT.DEFAULT_EMAIL_LANGUAGE' | translate }}\n \n \n \n {{ language.name }}\n \n \n \n {{ 'USERS.BULK_IMPORT.WELCOME_EMAIL_LANGUAGE' | translate }}\n \n \n
\n
\n \n \n {{ 'USERS.BULK_IMPORT.WELCOME_MESSAGE' | translate }}\n \n \n \n
\n
\n
\n
\n
\n
\n \n {{ 'COMMON.ACTION_LABELS.BACK' | translate }}\n \n \n {{ 'COMMON.ACTION_LABELS.NEXT' | translate }}\n \n
\n
\n \n
\n {{ marketAndListText }}\n
\n
\n \n {{ 'USERS.BULK_IMPORT.SELECT_MARKET_FOR_IMPORT' | translate }}\n \n
\n \n \n \n \n {{ market.name }}\n \n \n arrow_drop_down\n \n {{ 'USERS.BULK_IMPORT.MARKET_IS_REQUIRED' | translate }}\n \n \n
\n
\n \n {{ 'USERS.BULK_IMPORT.USE_OR_CREATE_NEW_LIST' | translate }}\n \n
\n \n \n {{ 'USERS.BULK_IMPORT.SELECT_EXISTING_LIST' | translate }}\n \n
\n \n \n \n \n {{ list.name }}\n \n \n arrow_drop_down\n \n {{ 'USERS.BULK_IMPORT.SELECT_OR_CREATE_LIST' | translate }}\n \n \n
\n \n {{ 'USERS.BULK_IMPORT.CREATE_NEW_LIST' | translate }}\n \n
\n \n \n \n {{ 'USERS.BULK_IMPORT.SELECT_OR_CREATE_LIST' | translate }}\n \n \n
\n
\n\n
\n \n {{ 'COMMON.ACTION_LABELS.BACK' | translate }}\n \n \n {{ 'COMMON.ACTION_LABELS.NEXT' | translate }}\n \n
\n
\n
\n \n \n {{ 'USERS.BULK_IMPORT.REVIEW_IMPORT' | translate }}\n \n
\n
\n
\n insert_drive_file\n {{ filename }}\n
\n
\n
\n {{ listName }}\n
\n
\n
\n
\n {{ marketName }}\n
\n
\n
\n
\n {{ 'USERS.BULK_IMPORT.HOW_TO_TREAT_EMPTY_CELLS' | translate }}\n
\n
\n \n {{ 'USERS.BULK_IMPORT.ATTEMPT_TO_FILL_EMPTY_CELLS' | translate }}\n \n
\n
\n \n
\n
\n \n {{ 'COMMON.ACTION_LABELS.BACK' | translate }}\n \n \n \n \n {{ 'COMMON.ACTION_LABELS.FINISH' | translate }}\n \n \n
\n
\n
\n
\n
\n
\n\n \n \n \n
\n","import { CommonModule } from '@angular/common';\nimport { Component, Inject, OnInit } from '@angular/core';\nimport { ReactiveFormsModule, UntypedFormControl } from '@angular/forms';\nimport { AccountGroup, AccountGroupService, ProjectionFilter } from '@galaxy/account-group';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { GalaxyInputModule } from '@vendasta/galaxy/input';\n// eslint-disable-next-line @nx/enforce-module-boundaries\nimport {\n PREVIEW_DATA_TYPE,\n PreviewDataProvider,\n RecipientTypes,\n stepDataForPartnerEmail,\n} from '@galaxy/campaign/dependencies';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { BehaviorSubject, Observable, combineLatest, firstValueFrom } from 'rxjs';\nimport { map, take } from 'rxjs/operators';\nimport { MarketsService } from '../../core/markets/markets.service';\nimport { MatOptionModule } from '@angular/material/core';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { GENERIC_ACCOUNT_GROUP } from '../../marketing/marketing-automation-page/campaigns.service';\n\nconst PAGE_SIZE = 20;\n\n@Component({\n templateUrl: './campaign-account-selector.component.html',\n imports: [\n CommonModule, //\n GalaxyInputModule,\n GalaxyFormFieldModule,\n MatAutocompleteModule,\n MatOptionModule,\n ReactiveFormsModule,\n TranslateModule,\n MatFormFieldModule,\n ],\n})\nexport class CampaignAccountSelectorComponent implements PreviewDataProvider, OnInit {\n data$: PREVIEW_DATA_TYPE;\n\n accountGroupSelect: UntypedFormControl = new UntypedFormControl();\n readonly accountGroups$: Observable;\n genericAccountGroup = GENERIC_ACCOUNT_GROUP;\n selectedAccountGroup: AccountGroup;\n searchTerm$$: BehaviorSubject = new BehaviorSubject('');\n private accessibleMarkets: string[] | undefined;\n\n constructor(\n @Inject('USER_ID') uid$: Observable,\n private readonly accountGroupService: AccountGroupService,\n private readonly marketsService: MarketsService,\n ) {\n this.accountGroups$ = this.accountGroupService.accountGroups;\n this.data$ = combineLatest([this.accountGroupSelect.valueChanges, uid$]).pipe(\n map(([ag, uid]: [AccountGroup, string]) =>\n stepDataForPartnerEmail(ag.accountGroupId, RecipientTypes.IAMUser, uid),\n ),\n );\n }\n\n async ngOnInit(): Promise {\n const markets = await firstValueFrom(this.marketsService.markets);\n this.accessibleMarkets = markets.map((m) => m.market_id);\n await firstValueFrom(\n this.accountGroupService.lookup(\n new ProjectionFilter({\n napData: true,\n }),\n this.accessibleMarkets,\n '',\n undefined,\n PAGE_SIZE,\n ),\n );\n }\n\n selectAccount(accountGroup?: AccountGroup): void {\n if (!accountGroup) {\n this.accountGroupSelect.setValue(null);\n this.selectedAccountGroup = null;\n return;\n }\n this.selectedAccountGroup = accountGroup;\n }\n\n displayFn(accountGroup?: AccountGroup): string | undefined {\n return accountGroup ? accountGroup.napData.companyName : 'Generic account';\n }\n\n updateSearchTerm(event: Event): void {\n this.selectedAccountGroup = null;\n const searchValue = (event.target as HTMLInputElement).value;\n this.searchTerm$$.next(searchValue);\n this.search(searchValue);\n }\n\n search(searchValue: string): void {\n this.accountGroupService\n .lookup(\n new ProjectionFilter({\n napData: true,\n }),\n this.accessibleMarkets,\n searchValue,\n undefined,\n PAGE_SIZE,\n )\n .pipe(take(1));\n }\n}\n","\n \n {{ 'CAMPAIGN_GENERIC.TEST_EMAIL.PREVIEW_AS' | translate }}\n \n \n \n \n {{ 'CAMPAIGN_GENERIC.TEST_EMAIL.GENERIC_ACCOUNT' | translate }}\n \n \n \n
{{ accountGroup.napData.companyName }}
\n \n
\n {{ accountGroup.napData.address }}\n
\n
\n
\n
\n \n
\n","import { AsyncPipe, NgForOf, NgIf } from '@angular/common';\nimport { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatSelectModule } from '@angular/material/select';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GalaxyEmptyStateModule } from '@vendasta/galaxy/empty-state';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { of, Subscription } from 'rxjs';\nimport { map, switchMap } from 'rxjs/operators';\nimport { VariableMenuItem } from '../variable-menu.service';\n\n@Component({\n imports: [\n GalaxyFormFieldModule,\n MatSelectModule,\n TranslateModule,\n ReactiveFormsModule,\n AsyncPipe,\n NgForOf,\n NgIf,\n GalaxyEmptyStateModule,\n MatButtonModule,\n MatIconModule,\n ],\n selector: 'app-variable-menu-item-selector',\n templateUrl: './variable-menu-item-selector.component.html',\n styleUrls: ['./variable-menu-item-selector.component.scss'],\n})\nexport class VariableMenuItemSelectorComponent implements OnInit, OnDestroy {\n @Input() items: VariableMenuItem[];\n @Input() parentTextKey: string;\n @Output() variableMenuItemSelected = new EventEmitter();\n\n formControl: FormControl = new FormControl(null);\n private subscriptions: Subscription[] = [];\n\n ngOnInit(): void {\n this.subscriptions.push(\n this.formControl.valueChanges\n .pipe(\n switchMap((variableMenuItem) => {\n return variableMenuItem.subItems$ || of([]);\n }),\n map((subItems) => {\n // Check if it's a leaf node\n if (subItems.length == 0) {\n this.variableMenuItemSelected.emit(this.formControl.value);\n }\n }),\n )\n .subscribe(),\n );\n }\n\n ngOnDestroy(): void {\n this.subscriptions.forEach((subscription) => {\n subscription.unsubscribe();\n });\n }\n\n childComponentVariableMenuItemSelected(variableMenuItem: VariableMenuItem): void {\n this.variableMenuItemSelected.emit(variableMenuItem);\n }\n}\n","
\n \n \n search_off\n \n \n {{ 'HTML_EDITOR.DYNAMIC_CONTENT.NO_DATA_FOUND' | translate }}\n \n

\n {{ 'HTML_EDITOR.DYNAMIC_CONTENT.NO_DATA_FOUND_DESCRIPTION' | translate }}\n

\n
\n
\n
0\">\n \n {{ parentTextKey | translate }}\n \n \n {{ item.textKey | translate }}\n \n \n \n \n 0\">\n \n \n \n
\n","import { Injectable } from '@angular/core';\nimport { MarketplaceAppService } from '@vendasta/marketplace-packages';\nimport {\n ListSubstitutionParametersRequestFiltersInterface,\n SubstitutionParameter,\n TemplatesService,\n} from '@vendasta/templates';\nimport { Observable } from 'rxjs';\nimport { map, shareReplay } from 'rxjs/operators';\nimport { BUSINESS_CUSTOM_DATA, SALESPERSON_CUSTOM_DATA } from './variable-menu-dialog/variable-menu-dialog.component';\n// eslint-disable-next-line @nx/enforce-module-boundaries\nimport { SchemaService } from '@vendasta/auxiliary-data-components';\nimport { SubstitutionParameterOptionsInterface } from '@vendasta/templates/lib/_internal/interfaces/substitution.interface';\n\nexport interface Option {\n title: string;\n value: string;\n}\n\nexport interface VariablesFilters {\n includeHtml?: boolean;\n dontIncludeDefaultCategories?: boolean;\n includeDeprecated?: boolean;\n // forRequiredOptions should be used for filtering out variables you don't have tue required data to render with but\n // it currently is not used, unfortunately\n forRequiredOptions?: SubstitutionParameterOptionsInterface;\n}\n\ninterface VariableMenuItemSettings {\n requiredParams: string[];\n // By default the replacement tag is surrounded by '{{' and '}}' so that templates µs can interpolate them. This\n // flag turns that off\n shouldNotSurroundWithCurlyBraces?: boolean;\n}\n\nexport interface VariableMenuCategory {\n textKey: string;\n subItems$: Observable;\n settings?: VariableMenuItemSettings;\n}\n\nexport interface VariableMenuItem {\n textKey: string;\n // VariableMenuItems either have a replacement tag (if they are a leaf) or subItems if they are just part of a branch\n replacementTag: string;\n subItems$?: Observable;\n settings?: VariableMenuItemSettings; //Not sure if settings is requried on the VariableMenuItem or just the category\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class VariableMenuService {\n allSubstitutionParameters$: Observable = this.templatesService\n .listSubstitutionParameters({ includeHtml: true })\n .pipe(shareReplay(1));\n\n private buildVariables(\n partnerId: string,\n marketId: string,\n filters: ListSubstitutionParametersRequestFiltersInterface,\n ): VariableMenuCategory[] {\n return [\n {\n textKey: 'HTML_EDITOR.DYNAMIC_CONTENT.ACCOUNT_DETAILS',\n subItems$: this.filterAllSubstitionParametersToSupportedReplacementTags(\n [\n 'businessName',\n 'businessWebsite',\n 'customerIdentifier',\n 'accountIdentifier',\n 'companyIdentifier',\n 'businessPhoneNumber',\n 'businessCountry',\n 'businessState',\n 'businessStreetAddress',\n 'businessStreetAddress2',\n 'businessCity',\n 'businessPostalCode',\n 'businessOrigin',\n 'businessCategoryIds',\n 'businessEmail',\n ],\n filters,\n ),\n },\n {\n textKey: 'HTML_EDITOR.DYNAMIC_CONTENT.PARTNER_DETAILS',\n subItems$: this.filterAllSubstitionParametersToSupportedReplacementTags(\n [\n 'partnerName',\n 'partnerWebsite',\n 'partnerEmail',\n 'partnerPhone',\n 'partnerStreetAddress',\n 'partnerStreetAddress2',\n 'partnerCity',\n 'partnerState',\n 'partnerCountry',\n 'partnerPostalCode',\n ],\n filters,\n ),\n },\n {\n textKey: 'HTML_EDITOR.DYNAMIC_CONTENT.ORDER_DETAILS',\n subItems$: this.filterAllSubstitionParametersToSupportedReplacementTags(\n [\n 'orderId',\n 'orderLineItems',\n 'status',\n 'orderBusinessName',\n 'expiryDate',\n 'contractStartDate',\n 'userContact',\n ],\n filters,\n ),\n settings: {\n requiredParams: ['isOrderAutomation'],\n },\n },\n {\n textKey: 'HTML_EDITOR.DYNAMIC_CONTENT.ORDER_SALESPERSON_DETAILS.TITLE',\n subItems$: this.filterAllSubstitionParametersToSupportedReplacementTags(\n [\n 'salesPersonInformation',\n 'orderSalesPersonFirstName',\n 'orderSalesPersonLastName',\n 'orderSalesPersonPhoneNumber',\n 'orderSalesPersonEmail',\n 'orderSalesPersonJobTitle',\n 'orderSalesPersonPhoto',\n 'salesPersonId',\n ],\n filters,\n ),\n settings: {\n requiredParams: ['isOrderAutomation'],\n },\n },\n {\n textKey: 'HTML_EDITOR.DYNAMIC_CONTENT.SALESPERSON_DETAILS',\n subItems$: this.filterAllSubstitionParametersToSupportedReplacementTags(\n [\n 'salesPersonContactCard',\n 'salesPersonFirstName',\n 'salesPersonLastName',\n 'salesPersonEmail',\n 'salesPersonPhoneNumber',\n 'salesPersonJobTitle',\n 'salesPersonLoginUrl',\n ],\n filters,\n ),\n },\n {\n textKey: 'HTML_EDITOR.DYNAMIC_CONTENT.BUSINESS_APP_DETAILS',\n subItems$: this.filterAllSubstitionParametersToSupportedReplacementTags(\n ['businessAppName', 'businessAppUrl', 'businessAppStoreUrl', 'businessAppPreviewUrl'],\n filters,\n ),\n },\n {\n textKey: 'HTML_EDITOR.DYNAMIC_CONTENT.PRODUCT_DETAILS.TITLE',\n subItems$: this.filterAllSubstitionParametersToSupportedReplacementTags(['productName'], filters).pipe(\n map((subItems) => {\n if ((subItems || []).length > 0) {\n subItems[0].subItems$ = this.marketplacePackagesService.getAllActivatableApps(partnerId, marketId).pipe(\n shareReplay(1),\n map((apps) => {\n return apps.map((app) => ({\n replacementTag: \"productName['\" + app.appId + \"']\",\n textKey: app.name,\n }));\n }),\n );\n }\n return subItems;\n }),\n ),\n settings: {\n requiredParams: ['partnerId', 'marketId'],\n },\n },\n {\n textKey: 'HTML_EDITOR.DYNAMIC_CONTENT.CUSTOM_DATA_DETAILS.TITLE',\n subItems$: this.filterAllSubstitionParametersToSupportedReplacementTags(\n [SALESPERSON_CUSTOM_DATA, BUSINESS_CUSTOM_DATA],\n filters,\n ).pipe(\n map((menuItems) => {\n if ((menuItems || []).length > 0) {\n menuItems.map((menuItem) => {\n if (menuItem.replacementTag === SALESPERSON_CUSTOM_DATA) {\n menuItem.subItems$ = this.schemaService.listFieldSchemas('user', partnerId, false, '', 100).pipe(\n map((response) => response.fieldSchemas),\n map((fieldSchemas) =>\n fieldSchemas.map((schema) => ({\n textKey: schema.fieldName,\n replacementTag: SALESPERSON_CUSTOM_DATA + \"['\" + schema.fieldId + \"']\",\n })),\n ),\n );\n }\n if (menuItem.replacementTag === BUSINESS_CUSTOM_DATA) {\n menuItem.subItems$ = this.schemaService.listFieldSchemas('business', partnerId, false, '', 100).pipe(\n map((response) => response.fieldSchemas),\n map((fieldSchemas) =>\n fieldSchemas.map((schema) => ({\n textKey: schema.fieldName,\n replacementTag: BUSINESS_CUSTOM_DATA + \"['\" + schema.fieldId + \"']\",\n })),\n ),\n );\n }\n });\n }\n return menuItems;\n }),\n ),\n settings: {\n requiredParams: ['partnerId'],\n },\n },\n ];\n }\n\n constructor(\n private readonly templatesService: TemplatesService,\n private readonly marketplacePackagesService: MarketplaceAppService,\n private readonly schemaService: SchemaService,\n ) {}\n\n public getVariables(\n partnerId: string,\n marketId: string,\n filters: VariablesFilters,\n extraMenuItems: VariableMenuItem[] = [],\n ): VariableMenuItem[] {\n const variables = this.buildVariables(partnerId, marketId, filters);\n let variablesFromCategories: VariableMenuItem[] = variables.map((v) => ({\n textKey: v.textKey,\n settings: v.settings,\n replacementTag: '', // This is the top level category so it doesn't have a replacement tag\n subItems$: v.subItems$,\n }));\n if (filters.dontIncludeDefaultCategories) {\n variablesFromCategories = [];\n }\n return variablesFromCategories.concat(extraMenuItems);\n }\n\n private variableMenuItemFromSubstitutionParameter(s: SubstitutionParameter): VariableMenuItem {\n return {\n replacementTag: s.replacementTag,\n textKey: s.displayName,\n };\n }\n\n private filterAllSubstitionParametersToSupportedReplacementTags(\n supportedReplacementTags: string[],\n filters: ListSubstitutionParametersRequestFiltersInterface,\n ): Observable {\n return this.allSubstitutionParameters$.pipe(\n map((params) => {\n const filteredParams = params.filter((p) => {\n return !(!filters.includeHtml && p.isHtml);\n });\n return filteredParams\n .filter((p) => supportedReplacementTags.some((t) => t === p.replacementTag))\n .sort(function (a, b): number {\n return (\n supportedReplacementTags.indexOf(a.replacementTag) - supportedReplacementTags.indexOf(b.replacementTag)\n );\n })\n .map(this.variableMenuItemFromSubstitutionParameter);\n }),\n );\n }\n}\n","import { AsyncPipe, NgIf } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { ActivatedRoute } from '@angular/router';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { SubstitutionParameterOptionsInterface } from '@vendasta/templates';\nimport { CookieService } from 'ngx-cookie-service';\nimport { combineLatest, Observable, of } from 'rxjs';\nimport { map, shareReplay } from 'rxjs/operators';\nimport { VariableMenuItemSelectorComponent } from '../variable-menu-item-selector/variable-menu-item-selector.component';\nimport { VariableMenuItem, VariableMenuService } from '../variable-menu.service';\n\nexport const SALESPERSON_CUSTOM_DATA = 'salesPersonCustomData';\nexport const BUSINESS_CUSTOM_DATA = 'businessCustomData';\n\n@Component({\n imports: [VariableMenuItemSelectorComponent, AsyncPipe, TranslateModule, MatButtonModule, NgIf],\n selector: 'app-variable-menu-dialog',\n templateUrl: './variable-menu-dialog.component.html',\n styleUrls: ['./variable-menu-dialog.component.scss'],\n})\n// VariableMenuDialogComponent is used both as a regular component as well as in an iFrame. This is because it is used\n// with a TinyMCE editor and the only way for it to render angular components is through an iframe.\n// Because of this the input parameters can either come in via @Input's or via query params\nexport class VariableMenuDialogComponent {\n @Input() emitEventsInsteadOfTakingAction = false;\n @Input() partnerId = '';\n @Input() marketId = '';\n @Input() isOrderAutomation = false;\n @Input() extraMenuItems: VariableMenuItem[] = [];\n @Input() supportedSubstitutionOptions: SubstitutionParameterOptionsInterface = null;\n @Input() dontIncludeDefaultCategories = false;\n @Output() formResult: EventEmitter = new EventEmitter();\n\n chosenVariableMenutItem: VariableMenuItem = null;\n\n includeHtml$: Observable = this.route.queryParamMap.pipe(\n map((params) => {\n return !!params.get('includeHtml');\n }),\n );\n\n partnerId$: Observable = this.route.queryParamMap.pipe(\n map((params) => {\n if (params.get('partnerId')) {\n this.partnerId = params.get('partnerId');\n }\n return this.partnerId;\n }),\n );\n\n marketId$: Observable = this.route.queryParamMap.pipe(\n map((params) => {\n if (params.get('marketId')) {\n this.marketId = params.get('marketId');\n }\n return this.marketId;\n }),\n );\n\n extraMenuItems$: Observable = this.route.queryParamMap.pipe(\n map((params) => {\n return params.get('extraMenuItemsCookieString');\n }),\n map((cookieId) => {\n if (cookieId) {\n const payload = this.cookieService.get(cookieId);\n if (payload) {\n // Observables can't be json stringified so they are serilizaed as raw values and need to be changed back to\n // observables so the rest of the code doesn't have to worry about this\n return this.convertNonObservablesSubItemsToObservables(JSON.parse(payload));\n }\n }\n return this.extraMenuItems;\n }),\n );\n\n variables$: Observable = combineLatest([\n this.includeHtml$,\n this.extraMenuItems$,\n this.partnerId$,\n this.marketId$,\n ]).pipe(\n map(([includeHtml, extraMenuItems, partnerId, marketId]) => {\n return this.variableMenuService.getVariables(\n partnerId,\n marketId,\n {\n includeHtml: includeHtml,\n forRequiredOptions: this.supportedSubstitutionOptions,\n dontIncludeDefaultCategories: this.dontIncludeDefaultCategories,\n },\n extraMenuItems,\n );\n }),\n map((vars) => {\n return vars.filter((v) => {\n if (v?.settings?.requiredParams) {\n return v.settings.requiredParams.reduce((prev, curr, i, arr) => {\n // If there is a required parameter, get the value from the properties of this instance of\n // VariableMenuDialogComponent to see if it will be provided\n return prev && !!this[arr[i]];\n }, true);\n } else {\n return true;\n }\n });\n }),\n shareReplay(1),\n );\n\n constructor(\n private readonly variableMenuService: VariableMenuService,\n private readonly route: ActivatedRoute,\n private readonly cookieService: CookieService,\n ) {}\n\n private convertNonObservablesSubItemsToObservables(toConvert: VariableMenuItem[]): VariableMenuItem[] {\n return toConvert.map((item) => {\n item.subItems$ = of(this.convertNonObservablesSubItemsToObservables(item.subItems$ as any));\n return item;\n });\n }\n\n add(): void {\n const content = this.chosenVariableMenutItem?.settings?.shouldNotSurroundWithCurlyBraces\n ? this.chosenVariableMenutItem.replacementTag\n : '{{ ' + this.chosenVariableMenutItem.replacementTag + ' }}';\n if (this.emitEventsInsteadOfTakingAction) {\n this.formResult.emit(content);\n } else {\n window.parent.postMessage({\n mceAction: 'insertContent',\n content: content,\n });\n this.close();\n }\n }\n\n close(): void {\n if (this.emitEventsInsteadOfTakingAction) {\n this.formResult.emit(null);\n } else {\n window.parent.postMessage({ mceAction: 'close' });\n }\n }\n\n variableMenuItemSelected(variableMenuItem: VariableMenuItem): void {\n this.chosenVariableMenutItem = variableMenuItem;\n }\n}\n","
\n
\n \n \n \n
\n
\n
\n \n \n
\n
\n
\n","import { Injectable, inject } from '@angular/core';\nimport { Router, UrlTree } from '@angular/router';\nimport { Observable, map } from 'rxjs';\nimport { StubAccessService } from '../access';\nimport { Views } from '../access/interface';\n\n@Injectable({ providedIn: 'root' })\nexport class AccessPartnerAdminViewGuard {\n private readonly accessService = inject(StubAccessService);\n private readonly router = inject(Router);\n\n canActivate(): Observable {\n return this.accessService.hasAccessToViews([Views.partnerAll]).pipe(\n map((response) => {\n const hasAccess = response.get(Views.partnerAll);\n if (hasAccess) {\n return true;\n }\n return this.router.createUrlTree(['/access-denied']);\n }),\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, Router, RouterStateSnapshot } from '@angular/router';\n// eslint-disable-next-line @nx/enforce-module-boundaries\nimport { InboxNavigationService } from '@galaxy/conversation/core';\n\n@Injectable()\nexport class InboxModalGuard {\n constructor(\n private router: Router,\n private inboxNav: InboxNavigationService,\n ) {}\n\n async canActivate(route: ActivatedRouteSnapshot, _state: RouterStateSnapshot): Promise {\n this.router.navigate(['dashboard']).then(() => this.inboxNav.gotoConversationID(route.params['id']));\n return false;\n }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { Router, UrlTree, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\nimport { AppConfigService } from '../../app-config.service';\nimport { combineLatest, Observable, map } from 'rxjs';\nimport { AccessService, StubAccessService } from '../access';\nimport { Views } from '../access/interface';\nimport { TRAINING_RESOURCES_PAGE_ROUTES } from '../../training-resources/training-resources-routing.module';\n\nconst GeneralSalespeoplePages = [\n '/st/leaderboard',\n '/sales/leaderboard',\n `/training-resources/${TRAINING_RESOURCES_PAGE_ROUTES.PRODUCTS_LIST}`,\n `/training-resources/${TRAINING_RESOURCES_PAGE_ROUTES.PRODUCT}`,\n];\n\n@Injectable({ providedIn: 'root' })\nexport class SalespeopleGuard {\n constructor(\n @Inject(StubAccessService) private access: AccessService,\n private readonly configService: AppConfigService,\n private readonly router: Router,\n ) {}\n\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable {\n const hasSalespersonAccess$ = this.access\n .hasAccessToViews([Views.salespersonAll])\n .pipe(map((response) => response.get(Views.salespersonAll) ?? false));\n const partnerAccessCheck$ = this.configService.config$.pipe(map((config) => config.userCanAccessSales ?? false));\n if (GeneralSalespeoplePages.includes(state.url)) {\n return combineLatest([hasSalespersonAccess$, partnerAccessCheck$]).pipe(\n map(([hasSalesperson, hasPartner]) => hasSalesperson || hasPartner),\n map((hasAccess) => hasAccess ?? this.router.createUrlTree(['/access-denied'])),\n );\n }\n return partnerAccessCheck$.pipe(map((hasAccess) => hasAccess ?? this.router.createUrlTree(['/access-denied'])));\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ApiService } from '../api-service/api.service';\nimport { PartnerMailingRequest } from './partner';\n\n@Injectable({ providedIn: 'root' })\nexport class CompanyProfileApiService {\n private updateUrl = `/api/v3/partner/updateMailingAddress/`;\n\n constructor(private apiService: ApiService) {}\n\n public updatePartnerMailingAddress(partner: PartnerMailingRequest): Observable {\n return this.apiService.post(this.updateUrl, partner);\n }\n}\n","import { Component, Inject, OnDestroy, OnInit } from '@angular/core';\nimport { UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';\nimport { TranslateService } from '@ngx-translate/core';\nimport { AddressAPIService } from '@vendasta/address';\nimport { SelectInputOptionInterface } from '@vendasta/galaxy/input';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { BehaviorSubject, Observable, Subject, Subscription } from 'rxjs';\nimport {\n catchError,\n distinctUntilChanged,\n filter,\n map,\n publishReplay,\n refCount,\n switchMap,\n take,\n takeUntil,\n tap,\n} from 'rxjs/operators';\nimport { AppConfigService } from '../app-config.service';\nimport { PartnerService } from '../core/partner.service';\nimport { CompanyProfileService } from './company-profile.service';\nimport { PartnerMailingAddressResponse } from './partner';\n\n@Component({\n templateUrl: 'company-profile.component.html',\n styleUrls: ['company-profile.component.scss'],\n standalone: false,\n})\nexport class CompanyProfileComponent implements OnInit, OnDestroy {\n updateCompanyFormGroup: UntypedFormGroup;\n partnerId: string;\n hasMailingInformation = false;\n isUpdatingProfile = false;\n loading = true;\n private subscriptions: Subscription[] = [];\n partnerMailingAddressInfo$: Observable;\n partnerName: string;\n\n countryOptions$: Observable;\n stateProvOptions$$ = new BehaviorSubject([]);\n private readonly onDestroy = new Subject();\n\n constructor(\n @Inject('PARTNER_ID') private readonly partnerId$: Observable,\n private companyProfileService: CompanyProfileService,\n private translate: TranslateService,\n private snackbarService: SnackbarService,\n private partnerService: PartnerService,\n private readonly configService: AppConfigService,\n private readonly addressService: AddressAPIService,\n ) {}\n\n ngOnInit(): void {\n this.subscriptions.push(\n this.partnerId$\n .pipe(\n switchMap((pid) => {\n this.partnerId = pid;\n return this.partnerService.getPartnerByPartnerId(pid);\n }),\n )\n .subscribe((partner) => {\n this.partnerName = partner.name;\n this.companyProfileService.loadCompanyProfileData(this.partnerId);\n }),\n );\n\n this.partnerMailingAddressInfo$ = this.companyProfileService.partnerMailingInformation$.pipe(\n tap((partnerMailingAddress) => {\n this.setUpForm(partnerMailingAddress);\n }),\n );\n\n this.countryOptions$ = this.addressService.listAllCountryOptions().pipe(\n take(1),\n map((countries) => {\n if (!countries) {\n return [];\n }\n return countries.sort((a, b) => {\n const nameA = a.name.toUpperCase();\n const nameB = b.name.toUpperCase();\n if (nameA < nameB) {\n return -1;\n }\n if (nameA > nameB) {\n return 1;\n }\n return 0;\n });\n }),\n map((countries) =>\n countries.map((country) => ({\n value: country?.code || '',\n label: country?.name || '',\n })),\n ),\n publishReplay(1),\n refCount(),\n );\n }\n\n private updateStateProvWithCountry(state: string): void {\n this.updateCompanyFormGroup.controls.country.valueChanges\n .pipe(\n takeUntil(this.onDestroy),\n filter((country) => !!country),\n distinctUntilChanged(),\n tap((country) => this.setCountry(country, state)),\n )\n .subscribe();\n }\n\n private setCountry(country: string, state: string): void {\n this.addressService\n .getCountryConfiguration(country, undefined)\n .pipe(\n map((countryConfig) =>\n countryConfig?.zones?.map((zone) => ({\n value: zone?.code || '',\n label: zone?.name || '',\n })),\n ),\n catchError(() => []),\n tap((stateProvs: SelectInputOptionInterface[]) => this.stateProvOptions$$.next(stateProvs)),\n tap((stateProvs: SelectInputOptionInterface[]) => {\n if (!!stateProvs && stateProvs.findIndex((sp) => sp.value === state) > 0) {\n this.updateCompanyFormGroup.setControl('stateProv', new UntypedFormControl(state));\n } else {\n this.updateCompanyFormGroup.setControl('stateProv', new UntypedFormControl(null));\n }\n }),\n take(1),\n )\n .subscribe();\n }\n\n updateCompanyProfile(): void {\n if (this.updateCompanyFormGroup.invalid) {\n this.snackbarService.errorSnack(this.translate.instant('COMPANY_PROFILE.INVALID_FORM'));\n return;\n }\n\n if (this.updateCompanyFormGroup.valid) {\n this.partnerName = this.updateCompanyFormGroup.controls.company_name.value;\n\n this.isUpdatingProfile = true;\n\n const companyProfileFormValues = {\n partnerId: this.partnerId,\n mailingCompanyName: this.updateCompanyFormGroup.controls.company_name.value,\n mailingAddress: this.updateCompanyFormGroup.controls.address.value,\n mailingAddress2: this.updateCompanyFormGroup.controls.additionalAddressLine.value,\n mailingCity: this.updateCompanyFormGroup.controls.city.value,\n mailingState: this.updateCompanyFormGroup.controls.stateProv.value || '',\n mailingCountry: this.updateCompanyFormGroup.controls.country.value,\n mailingPostalCode: this.updateCompanyFormGroup.controls.postalCode.value,\n mailingPhoneNumber: this.updateCompanyFormGroup.controls.phone_number.value,\n mailingWebsiteAddress: this.updateCompanyFormGroup.controls.website_address.value,\n mailingEmailAddress: this.updateCompanyFormGroup.controls.email_address.value,\n };\n this.companyProfileService\n .updatePartnerMailingAddress(companyProfileFormValues)\n .pipe(take(1))\n .subscribe((success) => {\n if (success) {\n window.setTimeout(() => {\n this.companyProfileService.forceLoadCompanyProfileData(this.partnerId);\n this.configService.load(this.partnerId);\n this.isUpdatingProfile = false;\n this.snackbarService.successSnack(this.translate.instant('COMPANY_PROFILE.UPDATE_SUCCESS'));\n }, 3000);\n } else {\n this.snackbarService.errorSnack(this.translate.instant('COMPANY_PROFILE.UPDATE_ERROR'));\n }\n });\n }\n }\n\n ngOnDestroy(): void {\n this.subscriptions.forEach((subscription) => {\n subscription.unsubscribe();\n });\n this.onDestroy.complete();\n }\n\n setUpForm(partnerMailingAddress: PartnerMailingAddressResponse): void {\n this.updateCompanyFormGroup = new UntypedFormGroup({\n company_name: new UntypedFormControl(\n this.partnerName || this.configService.config.partnerName || '',\n Validators.required,\n ),\n phone_number: new UntypedFormControl(partnerMailingAddress?.mailing_phone_number || ''),\n website_address: new UntypedFormControl(partnerMailingAddress?.mailing_website_address || ''),\n email_address: new UntypedFormControl(partnerMailingAddress?.mailing_email_address || ''),\n country: new UntypedFormControl(partnerMailingAddress?.mailing_country || ''),\n address: new UntypedFormControl(partnerMailingAddress?.mailing_address || ''),\n additionalAddressLine: new UntypedFormControl(partnerMailingAddress?.mailing_address_2 || ''),\n city: new UntypedFormControl(partnerMailingAddress?.mailing_city || ''),\n postalCode: new UntypedFormControl(partnerMailingAddress?.mailing_postal_code || ''),\n });\n this.updateStateProvWithCountry(partnerMailingAddress?.mailing_state || '');\n }\n}\n","\n \n \n {{ 'COMPANY_PROFILE.TITLE' | translate }}\n \n \n \n \n \n
\n \n \n
\n \n \n \n \n \n
\n \n {{ 'COMPANY_PROFILE.ADDRESS_TITLE' | translate }}\n \n
\n 0\"\n [formControl]=\"updateCompanyFormGroup.controls['country']\"\n [label]=\"'COMMON.ADDRESS.COUNTRY'\"\n [options]=\"countryOptions$ | async\"\n [required]=\"true\"\n >\n \n \n 0\"\n [formControl]=\"updateCompanyFormGroup.controls['stateProv']\"\n [label]=\"'COMMON.ADDRESS.STATE_PROV'\"\n [options]=\"stateProvOptions$$ | async\"\n [required]=\"true\"\n >\n \n \n \n \n
\n \n
\n \n
\n
\n \n \n \n
\n
\n
\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatOptionModule } from '@angular/material/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { RouterModule } from '@angular/router';\nimport { LexiconModule } from '@galaxy/lexicon';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { AddressFormModule } from '@vendasta/businesses';\nimport { GalaxyWrapModule } from '@vendasta/galaxy/galaxy-wrap';\nimport { GalaxyInputModule } from '@vendasta/galaxy/input';\nimport { GalaxyPageModule } from '@vendasta/galaxy/page';\nimport { WEBLATE_COMPONENT_NAME } from '@vendasta/store';\nimport baseTranslation from '../../assets/i18n/en_devel.json';\nimport { CompanyProfileApiService } from './company-profile-api.service';\nimport { CompanyProfileComponent } from './company-profile.component';\nimport { CompanyProfileService } from './company-profile.service';\n\n@NgModule({\n imports: [\n MatCardModule,\n MatInputModule,\n MatButtonModule,\n MatCheckboxModule,\n MatTooltipModule,\n CommonModule,\n ReactiveFormsModule,\n MatRadioModule,\n MatOptionModule,\n MatSelectModule,\n MatProgressSpinnerModule,\n MatIconModule,\n RouterModule,\n GalaxyPageModule,\n TranslateModule,\n LexiconModule.forChild({\n componentName: WEBLATE_COMPONENT_NAME,\n baseTranslation: baseTranslation,\n }),\n GalaxyWrapModule,\n AddressFormModule,\n GalaxyInputModule,\n ],\n exports: [CompanyProfileComponent],\n declarations: [CompanyProfileComponent],\n providers: [CompanyProfileService, CompanyProfileApiService],\n})\nexport class PartnerModule {}\n","import { Injectable } from '@angular/core';\nimport { Category, ExecutiveReportService, ReportConfig } from '@vendasta/executive-report';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { BehaviorSubject, Observable, ReplaySubject } from 'rxjs';\nimport { PartnerService } from '../../core/partner.service';\n\n@Injectable({ providedIn: 'root' })\nexport class CustomizeExecReportService {\n private enabledCategories$$: ReplaySubject> = new ReplaySubject>(1);\n private isSavingCategories$$: BehaviorSubject = new BehaviorSubject(false);\n\n constructor(\n private execReportSDK: ExecutiveReportService,\n private snackbarService: SnackbarService,\n private partnerService: PartnerService,\n ) {}\n\n getEnabledExecReportCategories(partnerId: string, marketId: string): void {\n this.execReportSDK\n .getReportConfig(partnerId, marketId)\n .subscribe((data: ReportConfig) => this.enabledCategories$$.next(data.enabledCategories));\n }\n\n setConfigReportCategories(partnerId: string, marketId: string, newCategories: Array): void {\n this.isSavingCategories$$.next(true);\n const market = marketId ? marketId : 'default';\n\n if (this.userHasWritePermissions(marketId)) {\n const config = new ReportConfig({ enabledCategories: newCategories });\n this.execReportSDK.saveReportConfig(partnerId, marketId, config).subscribe(\n () => {\n this.enabledCategories$$.next(newCategories);\n this.snackbarService.successSnack(`Applied changes to ${market} market`);\n },\n () => {\n this.isSavingCategories$$.next(false);\n this.snackbarService.errorSnack(`Failed to set configuration for ${market} market`);\n },\n () => this.isSavingCategories$$.next(false),\n );\n } else {\n this.isSavingCategories$$.next(false);\n this.snackbarService.errorSnack(`You do not have the permissions to configure ${market} market`);\n }\n }\n\n get enabledCategories$(): Observable> {\n return this.enabledCategories$$.asObservable();\n }\n\n get isSavingCategories$(): Observable {\n return this.isSavingCategories$$.asObservable();\n }\n\n private userHasWritePermissions(marketId: string): boolean {\n if (!this.partnerService.CanCustomizeWhitelabel) {\n return false;\n }\n\n return marketId && this.partnerService.MarketAccess.length > 0\n ? this.partnerService.MarketAccess.some((id) => id === marketId)\n : true;\n }\n}\n","import { Component, Inject, OnInit } from '@angular/core';\nimport { ActivatedRoute, Params } from '@angular/router';\nimport { Category } from '@vendasta/executive-report';\nimport { Breadcrumbs } from '@vendasta/uikit';\nimport { combineLatest, Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { PartnerService } from '../../core/partner.service';\nimport { CustomizeExecReportService } from './customize-exec-report.service';\n\n@Component({\n selector: 'app-customize-exec-report',\n templateUrl: './customize-exec-report.component.html',\n styleUrls: ['./customize-exec-report.component.scss'],\n standalone: false,\n})\nexport class CustomizeExecReportComponent implements OnInit {\n navSectionElement: any;\n partnerId: string;\n marketId: string;\n categoryOrder$: Observable;\n isReordering$: Observable = new Observable(null);\n breadcrumbs: Breadcrumbs[];\n categoriesEnum = Category;\n\n constructor(\n private execReportService: CustomizeExecReportService,\n private partnerService: PartnerService,\n @Inject('PARTNER_ID') private readonly partnerId$: Observable,\n private route: ActivatedRoute,\n ) {}\n\n ngOnInit(): void {\n combineLatest([this.partnerId$, this.route.params])\n .pipe(\n map(([partnerId, params]: [string, Params]) => {\n this.marketId = params.marketId;\n this.execReportService.getEnabledExecReportCategories(partnerId, params.marketId);\n }),\n )\n .subscribe();\n\n this.partnerId = this.partnerService.partnerId;\n this.categoryOrder$ = this.execReportService.enabledCategories$;\n this.isReordering$ = this.execReportService.isSavingCategories$;\n this.breadcrumbs = this.buildBreadcrumbs();\n }\n\n private buildBreadcrumbs(): Breadcrumbs[] {\n let baseUrl = '/customize-design';\n let baseBack2Message = 'Back to Customize Settings';\n if (this.marketId) {\n baseUrl += `/markets/${this.marketId}`;\n baseBack2Message += ` (${this.marketId})`;\n }\n return [{ url: baseUrl, text: baseBack2Message }, { text: 'Executive Report' }];\n }\n\n isBefore(a: any, b: any): boolean {\n if (a.parentNode === b.parentNode) {\n for (let cur = a; cur; cur = cur.previousSibling) {\n if (cur === b) {\n return true;\n }\n }\n }\n return false;\n }\n\n dragEnter($event: any): void {\n const target: any = $event.currentTarget;\n if (this.isBefore(this.navSectionElement, target)) {\n target.parentNode.insertBefore(this.navSectionElement, target); // insert before\n } else {\n target.parentNode.insertBefore(this.navSectionElement, target.nextSibling); //insert after\n }\n }\n\n dragStart($event: any): void {\n this.navSectionElement = $event.currentTarget;\n $event.dataTransfer.effectAllowed = 'move';\n }\n\n dragEnd($event: any): void {\n const target: any = $event.currentTarget;\n const elements: any = Array.from(target.parentNode.childNodes);\n const firstLevelChildren = elements.filter((child: any) => child.nodeType === 1);\n const categories: Category[] = firstLevelChildren.map((x: any) => +x.dataset.category); // unary op: str to int\n this.execReportService.setConfigReportCategories(this.partnerId, this.marketId, categories);\n }\n}\n","\n
\n \n \n \n \n \n drag_handle\n \n {{ 'ADMINISTRATION.EXECUTIVE_REPORT.LISTINGS' | translate }}\n \n \n \n \n \n drag_handle\n \n {{ 'ADMINISTRATION.EXECUTIVE_REPORT.REPUTATION' | translate }}\n \n \n \n \n \n drag_handle\n \n {{ 'ADMINISTRATION.EXECUTIVE_REPORT.WEBSITE' | translate }}\n \n \n \n \n \n drag_handle\n \n {{ 'ADMINISTRATION.EXECUTIVE_REPORT.SOCIAL' | translate }}\n \n \n \n \n \n drag_handle\n \n {{ 'ADMINISTRATION.EXECUTIVE_REPORT.ADVERTISING' | translate }}\n \n \n \n \n \n drag_handle\n \n {{ 'ADMINISTRATION.EXECUTIVE_REPORT.SEO' | translate }}\n \n \n \n \n \n drag_handle\n \n {{ 'ADMINISTRATION.EXECUTIVE_REPORT.CONTENT_AND_EXPERIENCE' | translate }}\n \n \n \n \n \n\n
\n \n \n \n \n \n {{ 'ADMINISTRATION.EXECUTIVE_REPORT.LISTINGS' | translate }}\n \n \n {{ 'ADMINISTRATION.EXECUTIVE_REPORT.LISTINGS_DESCRIPTION' | translate }}\n \n \n \n \n \n \n \n \n {{ 'ADMINISTRATION.EXECUTIVE_REPORT.REPUTATION' | translate }}\n \n \n {{ 'ADMINISTRATION.EXECUTIVE_REPORT.REPUTATION_DESCRIPTION' | translate }}\n \n \n \n \n \n \n \n \n {{ 'ADMINISTRATION.EXECUTIVE_REPORT.WEBSITE' | translate }}\n \n \n {{ 'ADMINISTRATION.EXECUTIVE_REPORT.WEBSITE_DESCRIPTION' | translate }}\n \n \n \n \n \n \n \n \n {{ 'ADMINISTRATION.EXECUTIVE_REPORT.SOCIAL' | translate }}\n \n \n {{ 'ADMINISTRATION.EXECUTIVE_REPORT.SOCIAL_DESCRIPTION' | translate }}\n \n \n \n \n \n \n \n \n {{ 'ADMINISTRATION.EXECUTIVE_REPORT.ADVERTISING' | translate }}\n \n \n {{ 'ADMINISTRATION.EXECUTIVE_REPORT.ADVERTISING_DESCRIPTION' | translate }}\n \n \n \n \n \n \n \n \n {{ 'ADMINISTRATION.EXECUTIVE_REPORT.SEO' | translate }}\n \n \n {{ 'ADMINISTRATION.EXECUTIVE_REPORT.SEO_DESCRIPTION' | translate }}\n \n \n \n \n \n \n \n \n {{ 'ADMINISTRATION.EXECUTIVE_REPORT.CONTENT_AND_EXPERIENCE' | translate }}\n \n \n {{ 'ADMINISTRATION.EXECUTIVE_REPORT.CONTENT_AND_EXPERIENCE_DESCRIPTION' | translate }}\n \n \n \n \n \n
\n
\n\n \n \n \n
\n","import { Component, Inject, OnInit, SecurityContext, ViewEncapsulation } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { BrandingV2Service } from '@galaxy/partner';\nimport { TemplatesService } from '@vendasta/templates';\nimport { Observable } from 'rxjs';\nimport { map, switchMap, take } from 'rxjs/operators';\n\n@Component({\n templateUrl: './preview-email-dialog.component.html',\n styleUrls: ['./preview-email-dialog.component.scss'],\n encapsulation: ViewEncapsulation.None,\n standalone: false,\n})\nexport class PreviewEmailDialogComponent implements OnInit {\n renderedTemplate$: Observable;\n\n constructor(\n @Inject(MAT_DIALOG_DATA)\n public data: {\n partnerId: string;\n marketId: string;\n templateId: string;\n subject: string;\n heading: string;\n body: string;\n button: string;\n },\n public dialogRef: MatDialogRef,\n private templatesService: TemplatesService,\n private brandingService: BrandingV2Service,\n private sanitizer: DomSanitizer,\n ) {}\n\n ngOnInit(): void {\n this.renderedTemplate$ = this.brandingService.getBranding(this.data.partnerId, this.data.marketId).pipe(\n switchMap((branding) =>\n this.templatesService.renderTemplate('sales', this.data.templateId, {\n _link: '#',\n _heading: this.data.heading,\n _body: this.data.body.replace('{{ companyName }}', '(Company Name)'),\n _button: this.data.button,\n _branding: {\n name: branding.name,\n primary_color: branding.primaryColor,\n logo_url: branding.logoUrl,\n },\n }),\n ),\n map((renderedTemplate) =>\n this.sanitizer.sanitize(SecurityContext.HTML, this.sanitizer.bypassSecurityTrustHtml(renderedTemplate)),\n ),\n take(1),\n );\n }\n}\n","

\n {{\n 'CUSTOMIZE_SALES_ORDERS_CONFIG.EMAIL_OPTIONS_SETTINGS.PREVIEW_EMAIL'\n | translate\n }}\n

\n\n \n\n\n \n\n","import { Component, Input, OnInit } from '@angular/core';\nimport { AutomataService } from '@vendasta/automata';\nimport { Observable } from 'rxjs';\nimport { map, take } from 'rxjs/operators';\n\n@Component({\n selector: 'app-automation-name-display',\n templateUrl: './automation-name-display.component.html',\n styleUrls: ['./automation-name-display.component.scss'],\n standalone: false,\n})\nexport class AutomationNameDisplayComponent implements OnInit {\n @Input() automationId: string;\n\n name$: Observable;\n constructor(private readonly automataService: AutomataService) {}\n\n ngOnInit(): void {\n if (this.automationId) {\n this.name$ = this.automataService.getAutomation(this.automationId).pipe(\n take(1),\n map((auto) => auto.name),\n );\n }\n }\n}\n","{{ name }}\n","export interface OrderFormFieldOptionInterface {\n label?: string;\n value?: string;\n}\n\nexport interface OrderFormFieldInterface {\n label?: string;\n id?: string;\n type?: string;\n options?: string[];\n optionsWithLabels?: OrderFormFieldOptionInterface[];\n description?: string;\n required?: boolean;\n uploadUrl?: string;\n prefix?: string;\n suffix?: string;\n regexValidator?: string;\n regexErrorMessage?: string;\n forOfficeUseOnly?: boolean;\n officeEditableOnly?: boolean;\n allowDuplicates?: boolean;\n allowMultiples?: boolean;\n maxChoices?: number;\n}\n\nexport class OrderFormField {\n label: string;\n id: string;\n type: string;\n options: string[];\n optionsWithLabels: OrderFormFieldOptionInterface[];\n description: string;\n required: boolean;\n uploadUrl: string;\n prefix: string;\n suffix: string;\n regexValidator: string;\n regexErrorMessage: string;\n forOfficeUseOnly: boolean;\n officeEditableOnly: boolean;\n allowDuplicates: boolean;\n allowMultiples: boolean;\n maxChoices: number;\n\n constructor(i: OrderFormFieldInterface) {\n this.label = i.label || '';\n this.id = i.id || '';\n this.type = i.type || '';\n this.options = i.options ? i.options : [];\n this.optionsWithLabels = i.optionsWithLabels ? i.optionsWithLabels : [];\n this.description = i.description || '';\n this.required = i.required || false;\n this.uploadUrl = i.uploadUrl || '';\n this.prefix = i.prefix || '';\n this.suffix = i.suffix || '';\n this.regexValidator = i.regexValidator || '';\n this.regexErrorMessage = i.regexErrorMessage || '';\n this.forOfficeUseOnly = i.forOfficeUseOnly || false;\n this.officeEditableOnly = i.officeEditableOnly || false;\n this.allowDuplicates = i.allowDuplicates || false;\n this.allowMultiples = i.allowMultiples || false;\n this.maxChoices = i.maxChoices || 1;\n }\n}\n\nexport interface CustomSalespersonActionInterface {\n label?: string;\n automationId?: string;\n}\n\nexport interface WorkflowStepOptionsInterface {\n allowSendDirectToAdmin?: boolean;\n allowSendToCustomer?: boolean;\n maintainTermsAndConditionsAgreement?: boolean;\n customSalespersonActions?: CustomSalespersonActionInterface[];\n allowOrderFormEditing?: boolean;\n allowCollectPaymentFromCustomer?: boolean;\n canChargeSmbOnOrderSubmission?: boolean;\n}\n\nexport class WorkflowStepOptions {\n allowSendDirectToAdmin: boolean;\n allowSendToCustomer: boolean;\n maintainTermsAndConditionsAgreement: boolean;\n customSalespersonActions: CustomSalespersonActionInterface[];\n allowOrderFormEditing: boolean;\n allowCollectPaymentFromCustomer: boolean;\n canChargeSmbOnOrderSubmission: boolean;\n\n constructor(i: WorkflowStepOptionsInterface) {\n this.allowSendDirectToAdmin = i?.allowSendDirectToAdmin || false;\n this.allowSendToCustomer = i?.allowSendToCustomer || false;\n this.maintainTermsAndConditionsAgreement = i?.maintainTermsAndConditionsAgreement || false;\n this.customSalespersonActions =\n i?.customSalespersonActions?.map((a) => ({\n label: a?.label,\n automationId: a?.automationId,\n })) || [];\n this.allowOrderFormEditing = i?.allowOrderFormEditing || false;\n this.allowCollectPaymentFromCustomer = i?.allowCollectPaymentFromCustomer || false;\n this.canChargeSmbOnOrderSubmission = i?.canChargeSmbOnOrderSubmission || false;\n }\n}\n\nexport interface SalespersonOptionsInterface {\n validateRequiredFields?: boolean;\n disableSellingStandaloneProducts?: boolean;\n disableTagging?: boolean;\n}\n\nexport class SalespersonOptions {\n validateRequiredFields: boolean;\n disableSellingStandaloneProducts: boolean;\n disableTagging: boolean;\n\n constructor(salespersonInterface: SalespersonOptionsInterface) {\n this.validateRequiredFields = (salespersonInterface && salespersonInterface.validateRequiredFields) || false;\n this.disableSellingStandaloneProducts =\n (salespersonInterface && salespersonInterface.disableSellingStandaloneProducts) || false;\n this.disableTagging = (salespersonInterface && salespersonInterface.disableTagging) || false;\n }\n}\n\nexport interface TaxOptionInterface {\n label?: string;\n percentageMultiplier?: number;\n}\n\nexport class TaxOption {\n label?: string;\n percentageMultiplier?: number;\n\n constructor(taxOptionInterface: TaxOptionInterface) {\n this.label = taxOptionInterface.label;\n // Conversion will ensure that for example when JS messes a number up like 0.07 * 100 = 7.00000000001, so it is 7\n // toFixed will generate a string version with 7.00\n // + will convert it back to 7\n this.percentageMultiplier = +(taxOptionInterface.percentageMultiplier * 100).toFixed(2);\n }\n}\n\nexport interface CustomerOptionsInterface {\n allowCustomerInitiatedOrders?: boolean;\n}\n\nexport class CustomerOptions {\n allowCustomerInitiatedOrders: boolean;\n\n constructor(customerInterface: CustomerOptionsInterface) {\n this.allowCustomerInitiatedOrders = (customerInterface && customerInterface.allowCustomerInitiatedOrders) || false;\n }\n}\n\nexport interface TermsOfServiceInterface {\n text?: string;\n termsOfServiceUrl?: string;\n linkTitle?: string;\n required?: boolean;\n}\n\nexport class TermsOfService {\n text: string;\n termsOfServiceUrl: string;\n linkTitle: string;\n required: boolean;\n\n constructor(i: TermsOfServiceInterface) {\n this.text = i.text || '';\n this.termsOfServiceUrl = i.termsOfServiceUrl || '';\n this.linkTitle = i.linkTitle || '';\n this.required = i.required || false;\n }\n}\n\nexport interface TermsOfServiceOptionsInterface {\n hideDefaultTermsOfService?: boolean;\n termsOfService?: TermsOfServiceInterface[];\n}\n\nexport class TermsOfServiceOptions {\n hideDefaultTermsOfService: boolean;\n termsOfService: TermsOfServiceInterface[];\n\n constructor(i: TermsOfServiceOptionsInterface) {\n this.hideDefaultTermsOfService = (i && i.hideDefaultTermsOfService) || false;\n this.termsOfService = i && i.termsOfService ? i.termsOfService.map((tos) => new TermsOfService(tos)) : [];\n }\n}\n\nexport interface EmailContentInterface {\n subject?: string;\n heading?: string;\n body?: string;\n button?: string;\n}\n\nexport class EmailContent {\n subject: string;\n heading: string;\n body: string;\n button: string;\n\n constructor(i: EmailContentInterface) {\n this.subject = i.subject || '';\n this.heading = i.heading || '';\n this.body = i.body || '';\n this.button = i.button || '';\n }\n}\n\nexport interface EmailCustomContentInterface {\n contractAwaitingApproval?: EmailContentInterface;\n orderProcessed?: EmailContentInterface;\n orderDeclined?: EmailContentInterface;\n}\n\nexport class EmailCustomContent {\n contractAwaitingApproval: EmailContent;\n orderProcessed: EmailContent;\n orderDeclined: EmailContent;\n\n constructor(i: EmailCustomContentInterface) {\n this.contractAwaitingApproval = new EmailContent(i.contractAwaitingApproval);\n this.orderProcessed = new EmailContent(i.orderProcessed);\n this.orderDeclined = new EmailContent(i.orderDeclined);\n }\n}\n\nexport interface EmailOptionsInterface {\n emailCustomContent?: EmailCustomContentInterface;\n}\n\nexport class EmailOptions {\n emailCustomContent: EmailCustomContent;\n\n constructor(i: EmailOptionsInterface) {\n this.emailCustomContent = new EmailCustomContent(i.emailCustomContent);\n }\n}\n\nexport interface OrderConfigInterface {\n partnerId?: string;\n marketId?: string;\n defaultNotesContent?: string;\n extraFields?: OrderFormFieldInterface[];\n termsOfServiceUrl?: string;\n workflowStepOptions?: WorkflowStepOptionsInterface;\n salespersonOptions?: SalespersonOptionsInterface;\n taxOptions?: TaxOptionInterface[];\n customerOptions?: CustomerOptionsInterface;\n customerTermsOfServiceOptions?: TermsOfServiceOptionsInterface;\n emailOptions?: EmailOptionsInterface;\n}\n\nexport class OrderConfig {\n partnerId: string;\n marketId: string;\n defaultNotesContent: string;\n extraFields: OrderFormField[];\n termsOfServiceUrl?: string;\n workflowStepOptions: WorkflowStepOptions;\n salespersonOptions: SalespersonOptions;\n taxOptions: TaxOption[];\n customerOptions: CustomerOptions;\n customerTermsOfServiceOptions: TermsOfServiceOptions;\n emailOptions: EmailOptions;\n\n constructor(i: OrderConfigInterface) {\n this.partnerId = i.partnerId || '';\n this.marketId = i.marketId || '';\n this.defaultNotesContent = i.defaultNotesContent || '';\n this.extraFields = i.extraFields ? i.extraFields.map((x) => new OrderFormField(x)) : [];\n this.termsOfServiceUrl = i.termsOfServiceUrl || '';\n this.workflowStepOptions = new WorkflowStepOptions(i.workflowStepOptions);\n this.salespersonOptions = new SalespersonOptions(i.salespersonOptions);\n this.taxOptions = i.taxOptions ? i.taxOptions.map((x) => new TaxOption(x)) : [];\n this.customerOptions = new CustomerOptions(i.customerOptions);\n this.customerTermsOfServiceOptions = new TermsOfServiceOptions(i.customerTermsOfServiceOptions);\n this.emailOptions = new EmailOptions(i.emailOptions);\n }\n}\n","import { Component } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\n\n@Component({\n templateUrl: './restore-warning-dialog.component.html',\n styleUrls: [],\n standalone: false,\n})\nexport class RestoreWarningDialogComponent {\n constructor(public dialogRef: MatDialogRef) {}\n\n continueRestore(): void {\n this.dialogRef.close(true);\n }\n}\n","

\n {{ 'CUSTOMIZE_SALES_ORDERS_CONFIG.RESTORE_WARNING_DIALOG.TITLE' | translate }}\n

\n\n

\n {{\n 'CUSTOMIZE_SALES_ORDERS_CONFIG.RESTORE_WARNING_DIALOG.TEXT_1' | translate\n }}\n

\n

\n {{\n 'CUSTOMIZE_SALES_ORDERS_CONFIG.RESTORE_WARNING_DIALOG.TEXT_2' | translate\n }}\n

\n
\n\n \n \n\n","import { Injectable } from '@angular/core';\nimport {\n PartnerSalesService,\n SalesConfigInputsInterface,\n SalesConfigurationInterface,\n SalesSetting,\n SetSalesConfigResponseInterface,\n} from '@galaxy/partner';\nimport { ObservableWorkStateMap } from '@vendasta/rx-utils/work-state';\nimport { combineLatest, Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\n@Injectable({ providedIn: 'root' })\nexport class OrderSetupService {\n constructor(private readonly partnerSalesService: PartnerSalesService) {}\n private saveOrderConfigState = new ObservableWorkStateMap();\n private readonly getOrderConfigState = new ObservableWorkStateMap();\n\n private static convertBoolToSetting(value: boolean): SalesSetting {\n return value ? SalesSetting.SALES_SETTING_ENABLED : SalesSetting.SALES_SETTING_DISABLED;\n }\n\n private static constructWorkStateMapId(partnerId: string, marketId: string): string {\n return marketId ? `${partnerId}-${marketId}` : partnerId;\n }\n\n public saveSalesOrderConfig(partnerId: string, marketId: string, newConfig: SalesConfigurationInterface): void {\n const ID = OrderSetupService.constructWorkStateMapId(partnerId, marketId);\n const configInputs = this.convertConfigToSetSalesConfigInput(newConfig);\n this.saveOrderConfigState.startWork(\n ID,\n this.partnerSalesService.setConfiguration(partnerId, marketId, configInputs),\n );\n }\n\n public getSalesOrderConfig(partnerId: string, marketId?: string): void {\n const ID = OrderSetupService.constructWorkStateMapId(partnerId, marketId);\n this.getOrderConfigState.startWork(\n ID,\n this.partnerSalesService.getConfiguration(partnerId, marketId).pipe(map((resp) => resp.config)),\n );\n }\n\n public getSalesOrderConfigWorkResults(partnerId: string, marketId: string): Observable {\n const ID = OrderSetupService.constructWorkStateMapId(partnerId, marketId);\n return this.getOrderConfigState.getWorkResults$(ID);\n }\n\n public isGetOrderConfigReady(partnerId: string, marketId?: string): Observable {\n const ID = OrderSetupService.constructWorkStateMapId(partnerId, marketId);\n return combineLatest([this.getOrderConfigState.isLoading$(ID), this.getOrderConfigState.isSuccess$(ID)]).pipe(\n map(([isLoading, isSuccess]) => isLoading === false && isSuccess === true),\n );\n }\n\n public isSaveOrderConfigLoading(partnerId: string, marketId: string): Observable {\n const ID = OrderSetupService.constructWorkStateMapId(partnerId, marketId);\n return this.saveOrderConfigState.isLoading$(ID);\n }\n\n public isSaveOrderConfigSuccessful(partnerId: string, marketId: string): Observable {\n const ID = OrderSetupService.constructWorkStateMapId(partnerId, marketId);\n return this.saveOrderConfigState.successEvent$(ID);\n }\n private convertConfigToSetSalesConfigInput(getConfig: SalesConfigurationInterface): SalesConfigInputsInterface {\n const inputInterface: SalesConfigInputsInterface = {};\n inputInterface.hideProducts = OrderSetupService.convertBoolToSetting(getConfig.hideProducts);\n inputInterface.hideRmDemo = OrderSetupService.convertBoolToSetting(getConfig.hideRmDemo);\n inputInterface.hideOrders = OrderSetupService.convertBoolToSetting(getConfig.hideOrders);\n inputInterface.stTeamActivity = OrderSetupService.convertBoolToSetting(getConfig.stTeamActivity);\n inputInterface.stAllowSalespersonCampaignAdd = OrderSetupService.convertBoolToSetting(\n getConfig.stAllowSalespersonCampaignAdd,\n );\n inputInterface.stShowProductsWholesalePrice = OrderSetupService.convertBoolToSetting(\n getConfig.stShowProductsWholesalePrice,\n );\n inputInterface.stShowTrainingResourcesField = OrderSetupService.convertBoolToSetting(\n getConfig.stShowTrainingResourcesField,\n );\n inputInterface.stSalespersonSharedAccountAccess = OrderSetupService.convertBoolToSetting(\n getConfig.stSalespersonSharedAccountAccess,\n );\n inputInterface.stDefaultDisplayCurrency = getConfig.stDefaultDisplayCurrency;\n inputInterface.stEnableSnapshotsPerSalespersonLimit = OrderSetupService.convertBoolToSetting(\n getConfig.stEnableSnapshotsPerSalespersonLimit,\n );\n inputInterface.stSnapshotsPerSalespersonLimit = getConfig.stSnapshotsPerSalespersonLimit;\n inputInterface.stBusinessCenterAccess = OrderSetupService.convertBoolToSetting(getConfig.stBusinessCenterAccess);\n return inputInterface;\n }\n}\n","import { Component, OnDestroy } from '@angular/core';\nimport { UntypedFormControl, UntypedFormGroup } from '@angular/forms';\nimport { ActivatedRoute } from '@angular/router';\nimport { PartnerService, SalesConfigurationInterface } from '@galaxy/partner';\nimport { TranslateService } from '@ngx-translate/core';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { SubscriptionList } from '@vendasta/rx-utils';\nimport { combineLatest, Observable, ReplaySubject } from 'rxjs';\nimport { map, switchMap, take, tap } from 'rxjs/operators';\nimport { OrderSetupService } from './order-setup.service';\n\ninterface PartnerAndMarketId {\n partnerId: string;\n marketId?: string;\n}\n\n@Component({\n selector: 'app-order-setup',\n styleUrls: ['../order-config/order-config.component.scss'],\n templateUrl: './order-setup.component.html',\n standalone: false,\n})\nexport class OrderSetupComponent implements OnDestroy {\n configForm: UntypedFormGroup;\n private readonly partnerId$: Observable;\n private readonly marketId$: Observable;\n getConfigIsReady$: Observable;\n saveConfigIsLoading$: Observable;\n private orderConfig$$ = new ReplaySubject(1);\n private partnerAndMarketId$$ = new ReplaySubject(1);\n\n subscriptions = SubscriptionList.new();\n saveSuccessful$: Observable;\n constructor(\n private readonly orderSetupService: OrderSetupService,\n private readonly partnerService: PartnerService,\n private readonly route: ActivatedRoute,\n private readonly snackbarService: SnackbarService,\n private readonly translate: TranslateService,\n ) {\n this.partnerId$ = this.partnerService.getPartnerId();\n this.marketId$ = this.route.params.pipe(map((p) => p.marketId));\n\n const nextPartnerAndMarketId$ = combineLatest([this.partnerId$, this.marketId$]);\n this.subscriptions.add(nextPartnerAndMarketId$, ([partnerId, marketId]) => {\n const partnerAndMarketId = marketId ? { partnerId: partnerId, marketId: marketId } : { partnerId: partnerId };\n this.partnerAndMarketId$$.next(partnerAndMarketId);\n });\n\n this.setupGetOrderConfigs();\n this.setupSaveOrderConfigs();\n\n this.configForm = new UntypedFormGroup({\n orderSetupConfig: new UntypedFormGroup({\n hideSalesOrders: new UntypedFormControl(),\n }),\n });\n\n this.subscriptions.add(this.orderConfig$$, (config: SalesConfigurationInterface) =>\n this.configForm.get('orderSetupConfig.hideSalesOrders').setValue(config.hideOrders),\n );\n }\n\n ngOnDestroy(): void {\n this.subscriptions.destroy();\n }\n\n private setupSaveOrderConfigs(): void {\n this.saveConfigIsLoading$ = this.partnerAndMarketId$$.pipe(\n switchMap((ids) => this.orderSetupService.isSaveOrderConfigLoading(ids.partnerId, ids.marketId)),\n );\n this.saveSuccessful$ = this.partnerAndMarketId$$.pipe(\n switchMap((ids) => this.orderSetupService.isSaveOrderConfigSuccessful(ids.partnerId, ids.marketId)),\n );\n this.addSaveStateSubscription();\n }\n\n private setupGetOrderConfigs(): void {\n this.getConfigIsReady$ = this.partnerAndMarketId$$.pipe(\n switchMap((ids) => this.orderSetupService.isGetOrderConfigReady(ids.partnerId, ids.marketId)),\n );\n const getSalesOrderConfig$ = this.partnerAndMarketId$$.pipe(\n tap((ids) => {\n this.orderSetupService.getSalesOrderConfig(ids.partnerId, ids.marketId);\n }),\n switchMap((ids) => this.orderSetupService.getSalesOrderConfigWorkResults(ids.partnerId, ids.marketId)),\n );\n this.subscriptions.add(getSalesOrderConfig$, (config: SalesConfigurationInterface) =>\n this.orderConfig$$.next(config),\n );\n }\n\n public saveConfig(): void {\n const currentConfig$ = this.orderConfig$$.pipe(take(1));\n this.subscriptions.add(currentConfig$, (config: SalesConfigurationInterface) =>\n this.updateConfigWithFormValueAndSave(config),\n );\n }\n\n private updateConfigWithFormValueAndSave(config: SalesConfigurationInterface): void {\n config.hideOrders = this.configForm.get('orderSetupConfig.hideSalesOrders').value as boolean;\n this.subscriptions.add(this.partnerAndMarketId$$.pipe(take(1)), (ids: PartnerAndMarketId) => {\n this.orderSetupService.saveSalesOrderConfig(ids.partnerId, ids.marketId, config);\n });\n }\n\n private addSaveStateSubscription(): void {\n this.subscriptions.add(this.saveSuccessful$, (isSuccessful: boolean) => {\n isSuccessful\n ? this.snackbarService.successSnack(this.translate.instant('SALES_ORDER_CONFIG_SETUP.ALERTS.SUCCESSFUL'))\n : this.snackbarService.errorSnack(this.translate.instant('SALES_ORDER_CONFIG_SETUP.ALERTS.UNSUCCESSFUL'));\n this.addSaveStateSubscription();\n });\n }\n}\n","
\n
\n \n \n
\n \n {{ 'SALES_ORDER_CONFIG_SETUP.HIDE_SALES_ORDERS' | translate }}\n \n
\n
\n
\n
\n
\n \n
\n \n
\n
\n \n \n \n
\n
\n","import { CdkDragDrop } from '@angular/cdk/drag-drop';\nimport { Component, Inject, OnInit, QueryList, ViewChildren } from '@angular/core';\nimport { UntypedFormArray, UntypedFormControl, UntypedFormGroup, ValidationErrors, Validators } from '@angular/forms';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ActivatedRoute } from '@angular/router';\nimport { StartManualAutomationDialogComponent } from '@galaxy/automata/shared';\nimport { Environment, EnvironmentService } from '@galaxy/core';\nimport { OrderFormField } from '@galaxy/marketplace-apps/v1';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Context, EntityType } from '@vendasta/automata';\nimport { FeatureFlagService } from '@vendasta/businesses';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { SalesOrdersService } from '@vendasta/sales-orders';\nimport { BUSINESS_USER, FieldBuilderComponent, FORM_FIELDS } from '@vendasta/store';\nimport { Observable } from 'rxjs';\nimport { map, shareReplay, switchMap, take, tap } from 'rxjs/operators';\nimport { FeatureFlags } from '../../core/features';\nimport { PartnerService } from '../../core/partner.service';\nimport {\n CustomSalespersonActionInterface,\n EmailContentInterface,\n OrderConfig,\n TermsOfServiceInterface,\n} from './order-config';\nimport { PreviewEmailDialogComponent } from './preview-email-dialog/preview-email-dialog.component';\nimport { RestoreWarningDialogComponent } from './restore-warning-dialog/restore-warning-dialog.component';\n\nfunction getSalesToolHost(env: Environment): string {\n switch (env) {\n case Environment.DEMO:\n return 'https://salestool-demo.appspot.com';\n case Environment.PROD:\n return 'https://salestool-prod.appspot.com';\n default:\n return 'https://salestool-demo.appspot.com';\n }\n}\n\nfunction setInitialValuesForEmailContent(group: UntypedFormGroup, content: EmailContentInterface): void {\n group.setValue({\n subject: content.subject,\n heading: content.heading,\n body: content.body,\n button: content.button,\n });\n}\n\n@Component({\n styleUrls: ['order-config.component.scss'],\n templateUrl: './order-config.component.html',\n standalone: false,\n})\nexport class OrderConfigComponent implements OnInit {\n @ViewChildren(FieldBuilderComponent) orderFormFieldFormComponents: QueryList;\n partnerId: string;\n marketId$: Observable;\n config$: Observable;\n configForm: UntypedFormGroup;\n customSalespersonActions$: Observable;\n salespersonAcceptsPayment$: Observable;\n saving = false;\n loading = true;\n uploadUrl: string;\n private uploadPath = '/ajax/v1/sales-orders/file/upload';\n supportedFiledTypes = FORM_FIELDS.filter((f) => f.id !== BUSINESS_USER);\n\n constructor(\n private readonly salesOrdersService: SalesOrdersService,\n private readonly snackbarService: SnackbarService,\n private readonly partnerService: PartnerService,\n private readonly _route: ActivatedRoute,\n private environmentService: EnvironmentService,\n private feature: FeatureFlagService,\n private translate: TranslateService,\n private readonly dialog: MatDialog,\n @Inject('markets$') readonly markets$: Observable,\n ) {}\n\n static validateWorkflowStepOptions(formGroup: UntypedFormGroup): ValidationErrors | null {\n if (\n !(\n formGroup.controls.allowSendDirectToAdmins.value ||\n formGroup.controls.allowSendToCustomers.value ||\n formGroup.controls.allowOrderFormEditing.value ||\n (formGroup.controls.customAutomationActions as UntypedFormArray).length > 0\n )\n ) {\n return { noStepsSelected: true };\n }\n return null;\n }\n\n static createCustomAutomationActionFormGroup(customAction?: CustomSalespersonActionInterface): UntypedFormGroup {\n return new UntypedFormGroup({\n label: new UntypedFormControl(customAction?.label, Validators.required),\n automationId: new UntypedFormControl(customAction?.automationId, Validators.required),\n });\n }\n\n ngOnInit(): void {\n this.uploadUrl = getSalesToolHost(this.environmentService.getEnvironment()) + this.uploadPath;\n this.partnerId = this.partnerService.partnerId;\n\n this.configForm = new UntypedFormGroup({\n defaultNotesContent: new UntypedFormControl('', []),\n extraFields: new UntypedFormArray([]),\n termsOfServiceFormControl: new UntypedFormControl([], []),\n workflowStepConfig: new UntypedFormGroup(\n {\n allowSendDirectToAdmins: new UntypedFormControl(false, []),\n canChargeSmbOnOrderSubmission: new UntypedFormControl(false, []),\n allowSendToCustomers: new UntypedFormControl(false, []),\n allowCollectPaymentFromCustomers: new UntypedFormControl(false, []),\n maintainTermsAndConditionsAgreement: new UntypedFormControl(false, []),\n customAutomationActions: new UntypedFormArray([]),\n allowOrderFormEditing: new UntypedFormControl(false, []),\n },\n OrderConfigComponent.validateWorkflowStepOptions,\n ),\n salespersonOptions: new UntypedFormGroup({\n validateRequiredFields: new UntypedFormControl(false, []),\n disableSellingStandaloneProducts: new UntypedFormControl(false, []),\n disableTagging: new UntypedFormControl(false, []),\n }),\n customerOptions: new UntypedFormGroup({\n allowCustomerInitiatedOrders: new UntypedFormControl(false, []),\n }),\n customerTermsOfServiceOptions: new UntypedFormGroup({\n hideDefaultTermsOfService: new UntypedFormControl(false, []),\n termsOfService: new UntypedFormArray([]),\n }),\n emailOptions: new UntypedFormGroup({\n contractAwaitingApproval: new UntypedFormGroup({\n subject: new UntypedFormControl('', []),\n heading: new UntypedFormControl('', []),\n body: new UntypedFormControl('', []),\n button: new UntypedFormControl('', []),\n }),\n orderProcessed: new UntypedFormGroup({\n subject: new UntypedFormControl('', []),\n heading: new UntypedFormControl('', []),\n body: new UntypedFormControl('', []),\n button: new UntypedFormControl('', []),\n }),\n orderDeclined: new UntypedFormGroup({\n subject: new UntypedFormControl('', []),\n heading: new UntypedFormControl('', []),\n body: new UntypedFormControl('', []),\n button: new UntypedFormControl('', []),\n }),\n }),\n });\n\n this.marketId$ = this._route.params.pipe(\n map((p) => {\n if (Object.prototype.hasOwnProperty.call(p, 'marketId')) {\n return p.marketId;\n }\n return '';\n }),\n take(1),\n shareReplay({ bufferSize: 1, refCount: true }),\n );\n\n this.customSalespersonActions$ = this.marketId$.pipe(\n switchMap((market) =>\n this.feature.checkFeatureFlag(this.partnerId, market, FeatureFlags.CUSTOM_SALESPERSON_ACTIONS),\n ),\n take(1),\n shareReplay({ bufferSize: 1, refCount: true }),\n );\n\n this.salespersonAcceptsPayment$ = this.marketId$.pipe(\n switchMap((market) =>\n this.feature.checkFeatureFlag(this.partnerId, market, FeatureFlags.SALESPERSON_ORDER_APPROVAL_ACCEPTS_PAYMENT),\n ),\n take(1),\n shareReplay({ bufferSize: 1, refCount: true }),\n );\n\n this.config$ = this.marketId$.pipe(\n tap((_) => (this.loading = true)),\n switchMap((marketId) => this.salesOrdersService.getConfig(this.partnerId, marketId)),\n map((c) => new OrderConfig(c)),\n take(1),\n shareReplay({ bufferSize: 1, refCount: true }),\n );\n\n this.config$.subscribe((c) => {\n this.configForm.controls.defaultNotesContent.setValue(c.defaultNotesContent);\n c.extraFields.map((f) => this.getExtraFieldsArray().push(FieldBuilderComponent.createOrderFormFieldGroup(f)));\n if (c.termsOfServiceUrl) {\n this.configForm.controls.termsOfServiceFormControl.setValue([\n {\n url: c.termsOfServiceUrl,\n name: c.termsOfServiceUrl,\n },\n ]);\n }\n (this.configForm.get('workflowStepConfig') as UntypedFormGroup).controls.allowSendDirectToAdmins.setValue(\n c.workflowStepOptions.allowSendDirectToAdmin,\n );\n (this.configForm.get('workflowStepConfig') as UntypedFormGroup).controls.canChargeSmbOnOrderSubmission.setValue(\n c.workflowStepOptions.canChargeSmbOnOrderSubmission,\n );\n (this.configForm.get('workflowStepConfig') as UntypedFormGroup).controls.allowSendToCustomers.setValue(\n c.workflowStepOptions.allowSendToCustomer,\n );\n (\n this.configForm.get('workflowStepConfig') as UntypedFormGroup\n ).controls.allowCollectPaymentFromCustomers.setValue(c.workflowStepOptions.allowCollectPaymentFromCustomer);\n (this.configForm.get('workflowStepConfig') as UntypedFormGroup).controls.allowOrderFormEditing.setValue(\n c.workflowStepOptions.allowOrderFormEditing,\n );\n (\n this.configForm.get('workflowStepConfig') as UntypedFormGroup\n ).controls.maintainTermsAndConditionsAgreement.setValue(\n c.workflowStepOptions.maintainTermsAndConditionsAgreement,\n );\n c.workflowStepOptions.customSalespersonActions.map((a) => this.addCustomAutomationAction(a));\n (this.configForm.get('salespersonOptions') as UntypedFormGroup).controls.validateRequiredFields.setValue(\n c.salespersonOptions.validateRequiredFields,\n );\n (\n this.configForm.get('salespersonOptions') as UntypedFormGroup\n ).controls.disableSellingStandaloneProducts.setValue(c.salespersonOptions.disableSellingStandaloneProducts);\n (this.configForm.get('salespersonOptions') as UntypedFormGroup).controls.disableTagging.setValue(\n c.salespersonOptions.disableTagging,\n );\n (this.configForm.get('customerOptions') as UntypedFormGroup).controls.allowCustomerInitiatedOrders.setValue(\n c.customerOptions.allowCustomerInitiatedOrders,\n );\n (\n this.configForm.get('customerTermsOfServiceOptions') as UntypedFormGroup\n ).controls.hideDefaultTermsOfService.setValue(c.customerTermsOfServiceOptions.hideDefaultTermsOfService);\n const emailOptions = this.configForm.get('emailOptions') as UntypedFormGroup;\n const contractAwaitingApproval = emailOptions.get('contractAwaitingApproval') as UntypedFormGroup;\n setInitialValuesForEmailContent(\n contractAwaitingApproval,\n c.emailOptions.emailCustomContent.contractAwaitingApproval,\n );\n const orderProcessed = emailOptions.get('orderProcessed') as UntypedFormGroup;\n setInitialValuesForEmailContent(orderProcessed, c.emailOptions.emailCustomContent.orderProcessed);\n const orderDeclined = emailOptions.get('orderDeclined') as UntypedFormGroup;\n setInitialValuesForEmailContent(orderDeclined, c.emailOptions.emailCustomContent.orderDeclined);\n c.customerTermsOfServiceOptions.termsOfService.map((tos) =>\n this.getTermsOfServiceArray().push(this.createTermsOfService(tos)),\n );\n this.loading = false;\n });\n }\n\n submit(): void {\n if (this.configForm.invalid) {\n return;\n }\n\n this.marketId$\n .pipe(\n take(1),\n tap(() => (this.saving = true)),\n map((marketId) => {\n const data = { partnerId: this.partnerId, marketId: marketId };\n /* tslint:disable */\n if (this.configForm.controls.defaultNotesContent.dirty) {\n data['defaultNotesContent'] = this.configForm.controls.defaultNotesContent.value;\n }\n // The form array isn't marked as dirty when expected so we will always send it's values\n data['extraFields'] = this.orderFormFieldFormComponents.map((component) => component.getFormValues());\n\n // The termsOfServiceFormControl also doesn't get marked as dirty\n const tosValue = this.configForm.controls.termsOfServiceFormControl.value;\n data['termsOfServiceUrl'] = tosValue && tosValue.length > 0 ? tosValue[0]['url'] : '';\n\n data['workflowStepOptions'] = {\n allowSendDirectToAdmin: (this.configForm.get('workflowStepConfig') as UntypedFormGroup).controls\n .allowSendDirectToAdmins.value,\n canChargeSmbOnOrderSubmission: (this.configForm.get('workflowStepConfig') as UntypedFormGroup).controls\n .canChargeSmbOnOrderSubmission.value,\n allowSendToCustomer: (this.configForm.get('workflowStepConfig') as UntypedFormGroup).controls\n .allowSendToCustomers.value,\n allowCollectPaymentFromCustomer: this.validateAllowCollectPaymentFromCustomer(),\n maintainTermsAndConditionsAgreement: (this.configForm.get('workflowStepConfig') as UntypedFormGroup)\n .controls.maintainTermsAndConditionsAgreement.value,\n customSalespersonActions: this.getCustomAutomationActionsArray().controls.map((control) => {\n const fg = control as UntypedFormGroup;\n return {\n label: fg.controls.label.value,\n automationId: fg.controls.automationId.value,\n };\n }),\n allowOrderFormEditing: (this.configForm.get('workflowStepConfig') as UntypedFormGroup).controls\n .allowOrderFormEditing.value,\n };\n\n data['salespersonOptions'] = {\n validateRequiredFields: (this.configForm.get('salespersonOptions') as UntypedFormGroup).controls\n .validateRequiredFields.value,\n disableSellingStandaloneProducts: (this.configForm.get('salespersonOptions') as UntypedFormGroup).controls\n .disableSellingStandaloneProducts.value,\n disableTagging: (this.configForm.get('salespersonOptions') as UntypedFormGroup).controls.disableTagging\n .value,\n };\n\n data['customerOptions'] = {\n allowCustomerInitiatedOrders: (this.configForm.get('customerOptions') as UntypedFormGroup).controls\n .allowCustomerInitiatedOrders.value,\n };\n\n data['customerTermsOfServiceOptions'] = {\n hideDefaultTermsOfService: (this.configForm.get('customerTermsOfServiceOptions') as UntypedFormGroup)\n .controls.hideDefaultTermsOfService.value,\n termsOfService: this.getTermsOfServiceArray().controls.map((c) => {\n const group = c as UntypedFormGroup;\n return {\n text: group.controls.text.value,\n termsOfServiceUrl:\n group.controls.termsOfServiceUrl.value && group.controls.termsOfServiceUrl.value.length > 0\n ? group.controls.termsOfServiceUrl.value[0]['url']\n : '',\n linkTitle: group.controls.linkTitle.value,\n required: group.controls.required.value,\n };\n }),\n };\n\n const emailOptions = this.configForm.get('emailOptions') as UntypedFormGroup;\n const contractAwaitingApproval = emailOptions.get('contractAwaitingApproval') as UntypedFormGroup;\n const orderProcessed = emailOptions.get('orderProcessed') as UntypedFormGroup;\n const orderDeclined = emailOptions.get('orderDeclined') as UntypedFormGroup;\n data['emailOptions'] = {\n emailCustomContent: {\n contractAwaitingApproval: {\n subject: contractAwaitingApproval.controls.subject.value,\n heading: contractAwaitingApproval.controls.heading.value,\n body: contractAwaitingApproval.controls.body.value,\n button: contractAwaitingApproval.controls.button.value,\n },\n orderProcessed: {\n subject: orderProcessed.controls.subject.value,\n heading: orderProcessed.controls.heading.value,\n body: orderProcessed.controls.body.value,\n button: orderProcessed.controls.button.value,\n },\n orderDeclined: {\n subject: orderDeclined.controls.subject.value,\n heading: orderDeclined.controls.heading.value,\n body: orderDeclined.controls.body.value,\n button: orderDeclined.controls.button.value,\n },\n },\n };\n /* tslint:enable */\n this.salesOrdersService\n .updateConfig(data)\n .pipe(take(1))\n .subscribe(\n () => {\n this.saving = false;\n this.snackbarService.successSnack(\n this.translate.instant('CUSTOMIZE_SALES_ORDERS_CONFIG.SNACK_MESSAGES.SAVED_CONFIG_SUCCESS'),\n );\n this.ngOnInit();\n },\n () => {\n this.saving = false;\n this.snackbarService.errorSnack(\n this.translate.instant('CUSTOMIZE_SALES_ORDERS_CONFIG.SNACK_MESSAGES.SAVED_CONFIG_ERROR'),\n );\n },\n );\n }),\n )\n .subscribe();\n }\n\n delete(): void {\n this.marketId$\n .pipe(\n take(1),\n tap(() => (this.saving = true)),\n map((marketId) => {\n return this.salesOrdersService.deleteConfig(this.partnerId, marketId).subscribe(\n () => {\n this.saving = false;\n this.snackbarService.successSnack(\n this.translate.instant('CUSTOMIZE_SALES_ORDERS_CONFIG.SNACK_MESSAGES.RESTORED_CONFIG_SUCCESS'),\n );\n this.ngOnInit();\n },\n () => {\n this.saving = false;\n this.snackbarService.errorSnack(\n this.translate.instant('CUSTOMIZE_SALES_ORDERS_CONFIG.SNACK_MESSAGES.RESTORED_CONFIG_ERROR'),\n );\n },\n );\n }),\n )\n .subscribe();\n }\n\n restore(): void {\n this.dialog\n .open(RestoreWarningDialogComponent, {\n maxWidth: '500px',\n })\n .afterClosed()\n .subscribe((r) => {\n if (r) {\n this.delete();\n }\n });\n }\n\n previewEmail(templateId: string, formGroupName: string): void {\n this.marketId$\n .pipe(\n take(1),\n map((marketId) => {\n const emailContent = this.configForm.get('emailOptions').get(formGroupName) as UntypedFormGroup;\n this.dialog.open(PreviewEmailDialogComponent, {\n minWidth: '50%',\n data: {\n partnerId: this.partnerId,\n marketId: marketId,\n templateId: templateId,\n subject: emailContent.controls.subject.value,\n heading: emailContent.controls.heading.value,\n body: emailContent.controls.body.value,\n button: emailContent.controls.button.value,\n },\n });\n }),\n )\n .subscribe();\n }\n\n onDrop(event: CdkDragDrop): void {\n const ctrls = this.getExtraFieldsArray().controls;\n const tmp = ctrls[event.previousIndex];\n ctrls[event.previousIndex] = ctrls[event.currentIndex];\n ctrls[event.currentIndex] = tmp;\n this.getExtraFieldsArray().controls = ctrls;\n }\n\n getExtraFieldsArray(): UntypedFormArray {\n return this.configForm.controls.extraFields as UntypedFormArray;\n }\n\n addExtraFieldsFormField(): void {\n this.getExtraFieldsArray().push(FieldBuilderComponent.createOrderFormFieldGroup(new OrderFormField()));\n }\n\n getCustomAutomationActionsArray(): UntypedFormArray {\n return (this.configForm.get('workflowStepConfig') as UntypedFormGroup).controls\n .customAutomationActions as UntypedFormArray;\n }\n\n addCustomAutomationAction(customAction?: CustomSalespersonActionInterface): void {\n this.getCustomAutomationActionsArray().push(\n OrderConfigComponent.createCustomAutomationActionFormGroup(customAction),\n );\n }\n\n chooseAutomation(control: UntypedFormControl): void {\n const dialogRef = this.dialog.open(StartManualAutomationDialogComponent, {\n data: {\n namespace: this.partnerId,\n entityType: EntityType.ENTITY_TYPE_ORDER,\n context: Context.AUTOMATION_CONTEXT_PARTNER,\n options: {\n onlySelectDontStart: true,\n hideSettingsLink: true,\n onlySalespersonAutomations: true,\n },\n warnings: [this.translate.instant('CUSTOMIZE_SALES_ORDERS_CONFIG.WORKFLOW_STEP_SETTINGS.AUTOMATION_WARNING')],\n },\n });\n dialogRef\n .afterClosed()\n .pipe(take(1))\n .subscribe((res) => {\n if (res) {\n control.setValue(res.id);\n }\n });\n }\n\n removeCustomAutomationAction(index: number): void {\n this.getCustomAutomationActionsArray().removeAt(index);\n }\n\n removeExtraFieldsFormField(index: number): void {\n this.getExtraFieldsArray().removeAt(index);\n }\n\n createTermsOfService(t?: TermsOfServiceInterface): UntypedFormGroup {\n return new UntypedFormGroup({\n text: new UntypedFormControl(t ? t.text : '', Validators.required),\n termsOfServiceUrl: new UntypedFormControl(\n t && t.termsOfServiceUrl\n ? [\n {\n url: t.termsOfServiceUrl,\n name: t.termsOfServiceUrl,\n },\n ]\n : [],\n ),\n linkTitle: new UntypedFormControl(t ? t.linkTitle : ''),\n required: new UntypedFormControl(t ? t.required : false),\n });\n }\n\n getTermsOfServiceArray(): UntypedFormArray {\n return (this.configForm.controls.customerTermsOfServiceOptions as UntypedFormGroup).controls\n .termsOfService as UntypedFormArray;\n }\n\n addTermsOfServiceFormField(): void {\n this.getTermsOfServiceArray().push(this.createTermsOfService());\n }\n\n removeTermsOfServiceFormField(index: number): void {\n this.getTermsOfServiceArray().removeAt(index);\n }\n\n validateAllowCollectPaymentFromCustomer(): boolean {\n const allowSendToCustomer = (this.configForm.get('workflowStepConfig') as UntypedFormGroup).controls\n .allowSendToCustomers.value;\n const allowCollectPaymentFromCustomer = (this.configForm.get('workflowStepConfig') as UntypedFormGroup).controls\n .allowCollectPaymentFromCustomers.value;\n return allowSendToCustomer && allowCollectPaymentFromCustomer;\n }\n\n toggleCollectPaymentFromCustomers(event: boolean): void {\n if (event === false) {\n (\n this.configForm.get('workflowStepConfig') as UntypedFormGroup\n ).controls.allowCollectPaymentFromCustomers.setValue(false);\n }\n }\n\n handleFileUploadError(_err: Error): void {\n this.snackbarService.errorSnack(\n this.translate.instant('CUSTOMIZE_SALES_ORDERS_CONFIG.SNACK_MESSAGES.UPLOAD_ATTACHMENT_ERROR'),\n );\n }\n}\n","\n \n \n {{ 'CUSTOMIZE_SALES_ORDERS_CONFIG.VISIBILITY_TITLE' | translate }}\n \n \n \n \n \n \n \n
\n

\n {{ 'CUSTOMIZE_SALES_ORDERS_CONFIG.TITLE' | translate }}\n

\n
\n
\n \n \n \n {{ 'CUSTOMIZE_SALES_ORDERS_CONFIG.WORKFLOW_STEP_SETTINGS.TITLE' | translate }}\n \n \n \n
\n \n {{\n 'CUSTOMIZE_SALES_ORDERS_CONFIG.WORKFLOW_STEP_SETTINGS.MAINTAIN_TERMS_AND_CONDITIONS_AGREEMENT'\n | translate\n }}\n \n \n {{ 'CUSTOMIZE_SALES_ORDERS_CONFIG.WORKFLOW_STEP_SETTINGS.ALLOW_ORDER_FORM_EDITING' | translate }}\n \n
\n
\n \n {{ 'CUSTOMIZE_SALES_ORDERS_CONFIG.SALESPEOPLE_SETTINGS.VALIDATE_REQUIRED_FIELDS' | translate }}\n \n \n {{ 'CUSTOMIZE_SALES_ORDERS_CONFIG.SALESPEOPLE_SETTINGS.DISABLE_SELLING_PRODUCTS' | translate }}\n \n \n {{ 'CUSTOMIZE_SALES_ORDERS_CONFIG.SALESPEOPLE_SETTINGS.DISABLE_TAGGING' | translate }}\n \n
\n
\n \n {{ 'CUSTOMIZE_SALES_ORDERS_CONFIG.CUSTOMER_SETTINGS.ALLOW_TO_SEND_AN_ORDER_FROM_STORE' | translate }}\n \n
\n
\n
\n \n \n \n {{ 'CUSTOMIZE_SALES_ORDERS_CONFIG.WORKFLOW_STEP_SETTINGS.SALESPERSON_SUBMIT_ACTIONS' | translate }}\n \n \n \n
\n
\n \n {{ 'CUSTOMIZE_SALES_ORDERS_CONFIG.WORKFLOW_STEP_SETTINGS.ALLOW_TO_SEND_ORDER_TO_ADMIN' | translate }}\n \n \n {{\n 'CUSTOMIZE_SALES_ORDERS_CONFIG.WORKFLOW_STEP_SETTINGS.CAN_CHARGE_SMB_ON_ORDER_SUBMISSION'\n | translate\n }}\n \n
\n \n {{\n 'CUSTOMIZE_SALES_ORDERS_CONFIG.WORKFLOW_STEP_SETTINGS.ALLOW_TO_SEND_ORDER_TO_CUSTOMER_APPROVAL'\n | translate\n }}\n \n\n
\n \n {{\n 'CUSTOMIZE_SALES_ORDERS_CONFIG.WORKFLOW_STEP_SETTINGS.ALLOW_TO_COLLECT_PAYMENT_FROM_CUSTOMER'\n | translate\n }}\n \n
\n
\n
\n \n {{ 'CUSTOMIZE_SALES_ORDERS_CONFIG.WORKFLOW_STEP_SETTINGS.MIN_STEP_REQUIREMENT_ERROR' | translate }}\n \n
\n
\n {{\n 'CUSTOMIZE_SALES_ORDERS_CONFIG.WORKFLOW_STEP_SETTINGS.CUSTOM_SALESPERSON_ACTION_DESCRIPTION'\n | translate\n }}\n
\n \n \n \n \n \n {{ 'CUSTOMIZE_SALES_ORDERS_CONFIG.WORKFLOW_STEP_SETTINGS.ADD_AUTOMATION_ACTION' | translate }}\n \n \n
\n
\n
\n
\n \n \n \n {{ 'CUSTOMIZE_SALES_ORDERS_CONFIG.DEFAULT_CONTENT.TITLE' | translate }}\n \n \n \n \n \n {{ 'CUSTOMIZE_SALES_ORDERS_CONFIG.DEFAULT_CONTENT.CONTENT_LABEL' | translate }}\n \n \n \n \n {{ 'CUSTOMIZE_SALES_ORDERS_CONFIG.DEFAULT_CONTENT.CONTENT_TOOLTIP_LABEL' | translate }}\n \n \n \n\n
\n
\n {{ 'CUSTOMIZE_SALES_ORDERS_CONFIG.DEFAULT_CONTENT.CUSTOM_FIELD_SECTION' | translate }}\n
\n 0; else firstField\">\n \n \n \n \n drag_handle\n
\n
\n \n {{ extraFieldGroup.value.typeControl.name | translate }}\n \n \n - {{ extraFieldGroup.value.labelControl }}\n \n
\n
\n \n
\n \n {{ 'CUSTOMIZE_SALES_ORDERS_CONFIG.DEFAULT_CONTENT.NEW_FIELD_TITLE' | translate }}\n \n
\n
\n
\n \n
\n \n \n
\n
\n \n {{ 'CUSTOMIZE_SALES_ORDERS_CONFIG.DEFAULT_CONTENT.ADD_CUSTOM_FIELD' | translate }}\n \n
\n
\n
\n \n \n \n \n {{ 'CUSTOMIZE_SALES_ORDERS_CONFIG.CUSTOMER_TOS_SETTINGS.TITLE' | translate }}\n \n \n \n
\n \n {{ 'CUSTOMIZE_SALES_ORDERS_CONFIG.CUSTOMER_TOS_SETTINGS.HIDE_TOS' | translate }}\n \n
\n 0; else noToS\">\n
\n \n \n
\n \n close\n \n \n \n \n \n \n \n \n \n {{\n 'CUSTOMIZE_SALES_ORDERS_CONFIG.CUSTOMER_TOS_SETTINGS.REQUIRE_CUSTOMER_TO_AGREE'\n | translate\n }}\n \n
\n
\n
\n
\n
\n
\n \n {{ 'CUSTOMIZE_SALES_ORDERS_CONFIG.CUSTOMER_TOS_SETTINGS.ADD_TERMS_OF_SERVICE' | translate }}\n \n
\n \n
\n {{ 'CUSTOMIZE_SALES_ORDERS_CONFIG.CUSTOMER_TOS_SETTINGS.NO_TOS_MESSAGE' | translate }}\n
\n
\n
\n
\n\n \n \n \n {{ 'CUSTOMIZE_SALES_ORDERS_CONFIG.EMAIL_OPTIONS_SETTINGS.TITLE' | translate }}\n \n \n {{ 'CUSTOMIZE_SALES_ORDERS_CONFIG.EMAIL_OPTIONS_SETTINGS.SUBTITLE' | translate }}\n \n \n \n \n \n \n \n {{ 'CUSTOMIZE_SALES_ORDERS_CONFIG.EMAIL_OPTIONS_SETTINGS.CONTRACT_AWAITING_APPROVAL' | translate }}\n \n \n {{\n 'CUSTOMIZE_SALES_ORDERS_CONFIG.EMAIL_OPTIONS_SETTINGS.CONTRACT_AWAITING_APPROVAL_DESCRIPTION'\n | translate\n }}\n \n \n \n \n {{ 'CUSTOMIZE_SALES_ORDERS_CONFIG.EMAIL_OPTIONS_SETTINGS.PREVIEW_EMAIL' | translate }}\n \n \n \n \n \n {{ 'CUSTOMIZE_SALES_ORDERS_CONFIG.EMAIL_OPTIONS_SETTINGS.ORDER_PROCESSED' | translate }}\n \n \n {{ 'CUSTOMIZE_SALES_ORDERS_CONFIG.EMAIL_OPTIONS_SETTINGS.ORDER_PROCESSED_DESCRIPTION' | translate }}\n \n \n \n \n {{ 'CUSTOMIZE_SALES_ORDERS_CONFIG.EMAIL_OPTIONS_SETTINGS.PREVIEW_EMAIL' | translate }}\n \n \n \n \n \n {{ 'CUSTOMIZE_SALES_ORDERS_CONFIG.EMAIL_OPTIONS_SETTINGS.ORDER_DECLINED' | translate }}\n \n \n {{ 'CUSTOMIZE_SALES_ORDERS_CONFIG.EMAIL_OPTIONS_SETTINGS.ORDER_DECLINED_DESCRIPTION' | translate }}\n \n \n \n \n {{ 'CUSTOMIZE_SALES_ORDERS_CONFIG.EMAIL_OPTIONS_SETTINGS.PREVIEW_EMAIL' | translate }}\n \n \n \n \n \n \n
\n \n {{ 'CUSTOMIZE_SALES_ORDERS_CONFIG.EMAIL_OPTIONS_SETTINGS.SUBJECT' | translate }}\n \n \n \n {{ 'CUSTOMIZE_SALES_ORDERS_CONFIG.EMAIL_OPTIONS_SETTINGS.HEADING' | translate }}\n \n \n \n \n {{ 'CUSTOMIZE_SALES_ORDERS_CONFIG.EMAIL_OPTIONS_SETTINGS.BODY' | translate }}\n \n \n \n \n {{ 'CUSTOMIZE_SALES_ORDERS_CONFIG.EMAIL_OPTIONS_SETTINGS.BUTTON' | translate }}\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 {{ 'CUSTOMIZE_SALES_ORDERS_CONFIG.DEFAULT_CONTENT.NO_CUSTOM_FIELD_MESSAGE' | translate }}\n
\n
\n
\n
\n","import { Component, Inject, OnInit } from '@angular/core';\nimport { UntypedFormBuilder, UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { TranslateService } from '@ngx-translate/core';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { DeclinedReason, DeclinedReasonService } from '@vendasta/sales-orders';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { finalize, take } from 'rxjs/operators';\n\nexport enum Action {\n ADD = 'add',\n ARCHIVE = 'archive',\n EDIT = 'edit',\n}\n\nexport interface DeclinedReasonDialogData {\n action: Action;\n partnerId?: string;\n reason?: DeclinedReason;\n}\n\ninterface TranslatedData {\n pageTitle: string;\n saveButton: string;\n info?: string;\n inputLabel?: string;\n sucessMessage: string;\n errorMessage: string;\n}\n\n@Component({\n styleUrls: ['./declined-reason-dialog.component.scss'],\n templateUrl: './declined-reason-dialog.component.html',\n standalone: false,\n})\nexport class DeclinedReasonDialogComponent implements OnInit {\n formGroup: UntypedFormGroup;\n translatedData: TranslatedData;\n saving$$ = new BehaviorSubject(false);\n action = Action;\n\n constructor(\n public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: DeclinedReasonDialogData,\n private fb: UntypedFormBuilder,\n private readonly declinedReasonsService: DeclinedReasonService,\n private translateService: TranslateService,\n private snackbarService: SnackbarService,\n ) {}\n\n ngOnInit(): void {\n this.formGroup = this.fb.group({\n reason: new UntypedFormControl(this.data.reason?.reason || null, [Validators.required]),\n });\n\n switch (this.data.action) {\n case Action.ADD:\n this.translatedData = {\n pageTitle: this.translateService.instant('CUSTOMIZE_SALES_ORDERS_DECLINE_REASONS.DIALOG.ADD_PAGE_TITLE'),\n saveButton: this.translateService.instant('CUSTOMIZE_SALES_ORDERS_DECLINE_REASONS.DIALOG.SAVE_BUTTON'),\n info: this.translateService.instant('CUSTOMIZE_SALES_ORDERS_DECLINE_REASONS.DIALOG.ADD_INFO'),\n inputLabel: this.translateService.instant('CUSTOMIZE_SALES_ORDERS_DECLINE_REASONS.DIALOG.INPUT_REASON_LABEL'),\n sucessMessage: this.translateService.instant('CUSTOMIZE_SALES_ORDERS_DECLINE_REASONS.DIALOG.ADD_SUCCESS'),\n errorMessage: this.translateService.instant('CUSTOMIZE_SALES_ORDERS_DECLINE_REASONS.DIALOG.ADD_ERROR'),\n };\n break;\n case Action.EDIT:\n this.translatedData = {\n pageTitle: this.translateService.instant('CUSTOMIZE_SALES_ORDERS_DECLINE_REASONS.DIALOG.EDIT_PAGE_TITLE'),\n saveButton: this.translateService.instant('CUSTOMIZE_SALES_ORDERS_DECLINE_REASONS.DIALOG.SAVE_BUTTON'),\n inputLabel: this.translateService.instant('CUSTOMIZE_SALES_ORDERS_DECLINE_REASONS.DIALOG.INPUT_REASON_LABEL'),\n sucessMessage: this.translateService.instant('CUSTOMIZE_SALES_ORDERS_DECLINE_REASONS.DIALOG.EDIT_SUCCESS'),\n errorMessage: this.translateService.instant('CUSTOMIZE_SALES_ORDERS_DECLINE_REASONS.DIALOG.EDIT_ERROR'),\n };\n break;\n case Action.ARCHIVE:\n this.translatedData = {\n pageTitle: this.translateService.instant('CUSTOMIZE_SALES_ORDERS_DECLINE_REASONS.DIALOG.ARCHIVE_PAGE_TITLE'),\n saveButton: this.translateService.instant('CUSTOMIZE_SALES_ORDERS_DECLINE_REASONS.DIALOG.ARCHIVE_BUTTON'),\n info: `${this.translateService.instant(\n 'CUSTOMIZE_SALES_ORDERS_DECLINE_REASONS.DIALOG.ARCHIVE_INFO',\n )} ${this.data.reason?.reason}`,\n sucessMessage: this.translateService.instant('CUSTOMIZE_SALES_ORDERS_DECLINE_REASONS.DIALOG.ARCHIVE_SUCCESS'),\n errorMessage: this.translateService.instant('CUSTOMIZE_SALES_ORDERS_DECLINE_REASONS.DIALOG.ARCHIVE_ERROR'),\n };\n break;\n }\n }\n\n save(): void {\n this.saving$$.next(true);\n\n let method: Observable;\n switch (this.data.action) {\n case Action.ADD:\n method = this.declinedReasonsService.create(this.data.partnerId, {\n reason: this.formGroup.controls['reason'].value,\n });\n break;\n case Action.EDIT:\n method = this.declinedReasonsService.update(this.data.reason?.id, {\n reason: this.formGroup.controls['reason'].value,\n });\n break;\n case Action.ARCHIVE:\n method = this.declinedReasonsService.archive(this.data.reason?.id);\n break;\n }\n\n method\n .pipe(\n take(1),\n finalize(() => this.saving$$.next(false)),\n )\n .subscribe(\n () => {\n this.snackbarService.successSnack(this.translatedData.sucessMessage);\n this.dialogRef.close(true);\n },\n () => {\n this.snackbarService.errorSnack(this.translatedData.errorMessage);\n },\n );\n }\n\n displayInput(): boolean {\n return this.data.action === Action.ADD || this.data.action === Action.EDIT;\n }\n}\n","

\n {{ translatedData.pageTitle }}\n

\n\n
\n

\n \n \n \n
\n
\n\n \n \n {{ translatedData.saveButton }}\n \n\n","import { Component, Inject, OnInit } from '@angular/core';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\nimport { TranslateService } from '@ngx-translate/core';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { DeclinedReason, DeclinedReasonService, ListDeclinedReasonsFilters } from '@vendasta/sales-orders';\nimport { BehaviorSubject, combineLatest, Observable, of, Subject } from 'rxjs';\nimport { catchError, shareReplay, startWith, switchMap, take, tap } from 'rxjs/operators';\nimport { PARTNER_ID_INJECTION_TOKEN } from '../../core/constants';\nimport { getImageSrc } from '../../core/images';\nimport {\n Action,\n DeclinedReasonDialogComponent,\n DeclinedReasonDialogData,\n} from './dialog/declined-reason-dialog.component';\n\n@Component({\n styleUrls: ['sales-orders-decline-reasons.component.scss'],\n templateUrl: './sales-orders-decline-reasons.component.html',\n standalone: false,\n})\nexport class OrderDeclineReasonsConfigComponent implements OnInit {\n private readonly loading$$: BehaviorSubject = new BehaviorSubject(true);\n readonly loading$: Observable = this.loading$$.asObservable();\n private readonly error$$: BehaviorSubject = new BehaviorSubject(false);\n readonly error$: Observable = this.error$$.asObservable();\n declineReasons$: Observable;\n private readonly reload$$: Subject = new Subject();\n\n readonly action = Action;\n readonly getImageSrc = getImageSrc;\n\n constructor(\n @Inject(PARTNER_ID_INJECTION_TOKEN) private readonly partnerId$: Observable,\n private readonly declinedReasonsService: DeclinedReasonService,\n private readonly snackbarService: SnackbarService,\n private readonly translateService: TranslateService,\n readonly dialog: MatDialog,\n ) {}\n\n ngOnInit(): void {\n const reload$ = this.reload$$.pipe(startWith(null));\n this.declineReasons$ = combineLatest([this.partnerId$, reload$]).pipe(\n tap(() => this.loading$$.next(true)),\n switchMap(([partnerId, _]) =>\n this.declinedReasonsService.list(partnerId, { includeArchived: false } as ListDeclinedReasonsFilters).pipe(\n catchError(() => {\n this.snackbarService.openErrorSnack(\n this.translateService.instant('CUSTOMIZE_SALES_ORDERS_DECLINE_REASONS.LIST_ERROR'),\n );\n return of([]);\n }),\n ),\n ),\n tap(() => this.loading$$.next(false)),\n shareReplay(1),\n );\n }\n\n openActionDialog(action: Action, reason?: DeclinedReason): void {\n this.partnerId$\n .pipe(\n take(1),\n switchMap((partnerId) => {\n const dialogData: DeclinedReasonDialogData = {\n action,\n partnerId,\n reason,\n };\n return this.dialog\n .open(DeclinedReasonDialogComponent, {\n width: '600px',\n data: dialogData,\n } as MatDialogConfig)\n .afterClosed();\n }),\n )\n .subscribe((isSuccess) => {\n if (isSuccess) {\n this.reload$$.next(null);\n }\n });\n }\n}\n","\n \n \n \n \n \n {{ 'CUSTOMIZE_SALES_ORDERS_DECLINE_REASONS.PAGE_TITLE' | translate }}\n \n \n 0\"\n mat-flat-button\n color=\"primary\"\n (click)=\"openActionDialog(action.ADD)\"\n [disabled]=\"loading$ | async\"\n >\n {{ 'CUSTOMIZE_SALES_ORDERS_DECLINE_REASONS.ADD_REASON' | translate }}\n \n \n \n\n \n 0; else emptyState\">\n \n \n {{ 'CUSTOMIZE_SALES_ORDERS_DECLINE_REASONS.ALERT_TITLE' | translate }}\n \n —\n {{ 'CUSTOMIZE_SALES_ORDERS_DECLINE_REASONS.ALERT_INFO' | translate }}\n \n\n \n \n \n \n {{ r.reason }}\n
\n \n edit\n \n \n
\n
\n \n
\n
\n
\n
\n
\n
\n\n\n \n \n \n \n \n {{ 'CUSTOMIZE_SALES_ORDERS_DECLINE_REASONS.EMPTY_STATE.TITLE' | translate }}\n \n

\n {{ 'CUSTOMIZE_SALES_ORDERS_DECLINE_REASONS.EMPTY_STATE.MESSAGE' | translate }}\n

\n \n \n \n
\n
\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatListModule } from '@angular/material/list';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GalaxyAlertModule } from '@vendasta/galaxy/alert';\nimport { GalaxyEmptyStateModule } from '@vendasta/galaxy/empty-state';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { GalaxyPageModule } from '@vendasta/galaxy/page';\nimport { DeclinedReasonDialogComponent } from './dialog/declined-reason-dialog.component';\nimport { OrderDeclineReasonsConfigComponent } from './sales-orders-decline-reasons.component';\n\n@NgModule({\n imports: [\n CommonModule,\n MatCardModule,\n MatListModule,\n MatIconModule,\n MatInputModule,\n MatFormFieldModule,\n MatButtonModule,\n MatDialogModule,\n FormsModule,\n ReactiveFormsModule,\n TranslateModule,\n GalaxyPageModule,\n GalaxyEmptyStateModule,\n GalaxyFormFieldModule,\n GalaxyAlertModule,\n ],\n declarations: [OrderDeclineReasonsConfigComponent, DeclinedReasonDialogComponent],\n})\nexport class SalesOrdersDeclineReasonsModule {}\n","import { DragDropModule } from '@angular/cdk/drag-drop';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatListModule } from '@angular/material/list';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatSidenavModule } from '@angular/material/sidenav';\nimport { MatTableModule } from '@angular/material/table';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { RouterModule } from '@angular/router';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { VaFormsModule } from '@vendasta/forms';\nimport { GalaxyAlertModule } from '@vendasta/galaxy/alert';\nimport { GalaxyButtonGroupModule } from '@vendasta/galaxy/button-group';\nimport { GalaxyEmailViewerModule } from '@vendasta/galaxy/email-viewer';\nimport { GalaxyInputModule } from '@vendasta/galaxy/input';\nimport { GalaxyPageModule } from '@vendasta/galaxy/page';\nimport { GalaxyPipesModule } from '@vendasta/galaxy/pipes';\nimport { GalaxyUploaderModule } from '@vendasta/galaxy/uploader';\nimport { StencilsModule, VaOrderFormModule } from '@vendasta/store';\nimport { VaMaterialTableModule } from '@vendasta/uikit';\nimport { VFormModule } from '@vendasta/vform';\nimport { ColorPickerModule } from 'ngx-color-picker';\nimport { VaImageUploaderComponent } from '../common/file-upload/va-image-upload.component';\nimport { PageComponent } from '../common/page.component';\nimport { PartnerModule } from '../partner/partner.module';\nimport { CustomizeExecReportComponent } from './customize-exec-report/customize-exec-report.component';\nimport { CustomizeExecReportService } from './customize-exec-report/customize-exec-report.service';\nimport { PreviewEmailDialogComponent } from './order-config//preview-email-dialog/preview-email-dialog.component';\nimport { AutomationNameDisplayComponent } from './order-config/automation-name-display/automation-name-display.component';\nimport { OrderConfigComponent } from './order-config/order-config.component';\nimport { RestoreWarningDialogComponent } from './order-config/restore-warning-dialog/restore-warning-dialog.component';\nimport { OrderSetupComponent } from './order-setup/order-setup.component';\nimport { OrderSetupService } from './order-setup/order-setup.service';\nimport { SalesOrdersDeclineReasonsModule } from './sales-orders-decline-reasons/sales-orders-decline-reasons.module';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\n\n@NgModule({\n imports: [\n CommonModule,\n StencilsModule,\n MatSidenavModule,\n MatCardModule,\n MatListModule,\n MatIconModule,\n MatProgressBarModule,\n PartnerModule,\n MatInputModule,\n MatFormFieldModule,\n FormsModule,\n ReactiveFormsModule,\n MatButtonModule,\n MatProgressSpinnerModule,\n MatTooltipModule,\n MatExpansionModule,\n VaOrderFormModule,\n DragDropModule,\n VaFormsModule,\n MatCheckboxModule,\n MatDialogModule,\n MatSelectModule,\n TranslateModule,\n VFormModule,\n ColorPickerModule,\n MatRadioModule,\n MatTableModule,\n RouterModule,\n VaMaterialTableModule,\n GalaxyPipesModule,\n GalaxyPageModule,\n GalaxyInputModule,\n GalaxyAlertModule,\n GalaxyUploaderModule,\n GalaxyButtonGroupModule,\n GalaxyEmailViewerModule,\n MatButtonToggleModule,\n SalesOrdersDeclineReasonsModule,\n VaImageUploaderComponent,\n PageComponent,\n GalaxyFormFieldModule,\n ],\n declarations: [\n CustomizeExecReportComponent,\n OrderConfigComponent,\n RestoreWarningDialogComponent,\n PreviewEmailDialogComponent,\n OrderSetupComponent,\n AutomationNameDisplayComponent,\n ],\n providers: [CustomizeExecReportService, OrderSetupService],\n})\nexport class CustomizeDesignModule {}\n","import { CommonModule } from '@angular/common';\nimport { Component, Inject, NgModule, OnInit } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { ActivatedRoute } from '@angular/router';\nimport {\n ALL_ADVANCED_SECTIONS_ENABLED,\n DYNAMIC_COMPONENT_DATA_TOKEN,\n EmailBuilderModule,\n EmailContentData,\n VariableMenuItem,\n} from '@galaxy/email-ui/email-builder';\nimport {\n emptyColors,\n emptyTopLogo,\n} from '@galaxy/email-ui/email-builder/src/components/email-advanced-settings/empty-settings';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { EmailBuilderDataService } from '@galaxy/email-ui/email-builder/src/services/email-builder-data.service';\nimport { AppNamespace, OwnerType } from '@vendasta/email-builder';\nimport { GalaxyAlertModule } from '@vendasta/galaxy/alert';\nimport { GalaxyLoadingSpinnerModule } from '@vendasta/galaxy/loading-spinner';\nimport { GalaxyPageModule } from '@vendasta/galaxy/page';\nimport { GalaxyPipesModule } from '@vendasta/galaxy/pipes';\nimport { EMPTY, Observable, of } from 'rxjs';\n\n@Component({\n templateUrl: './email-builder-sandbox.component.html',\n styleUrls: ['./email-builder-sandbox.component.css'],\n standalone: false,\n})\nexport class EmailBuilderSandboxComponent implements OnInit {\n isNew = true;\n\n templateId: string | undefined = undefined;\n templateData$: Observable = EMPTY;\n private dataForSaving: EmailContentData;\n private rawHtmlForSaving: string;\n htmlRendering = false;\n\n constructor(\n private readonly route: ActivatedRoute,\n private readonly dataSvc: EmailBuilderDataService,\n @Inject(DYNAMIC_COMPONENT_DATA_TOKEN) readonly dynamicComponents: VariableMenuItem[],\n ) {}\n\n ngOnInit(): void {\n this.templateId = this.route.snapshot.queryParams['templateId'];\n if (this.templateId) {\n this.isNew = false;\n this.templateData$ = this.dataSvc.loadTemplate$(\n OwnerType.OWNER_TYPE_PARTNER,\n 'VUNI',\n AppNamespace.DEV_SANDBOX,\n this.templateId,\n );\n } else {\n this.templateId = new Date().toISOString();\n console.log('new template will be created with ID:', this.templateId);\n this.templateData$ = of({\n emailSetup: {\n topLogo: emptyTopLogo,\n colors: emptyColors,\n pageSetup: { collapsed: false },\n footer: { collapsed: false },\n },\n emailContentBlocks: [],\n } as EmailContentData);\n }\n }\n\n setHtmlRendering($event: boolean): void {\n this.htmlRendering = $event;\n }\n\n stageDataForSaving($event: EmailContentData): void {\n this.dataForSaving = $event;\n }\n\n stageRawHtmlForSaving($event: string): void {\n this.rawHtmlForSaving = $event;\n }\n\n save(): void {\n if (!this.dataForSaving) {\n throw new Error('No data has been staged for saving - try making a change to the email content');\n }\n this.isNew ? this.sendCreateRequest() : this.sendUpdateRequest();\n }\n\n private sendUpdateRequest(): void {\n this.dataSvc\n .updateExistingTemplate$(\n OwnerType.OWNER_TYPE_PARTNER,\n 'VUNI',\n AppNamespace.DEV_SANDBOX,\n this.templateId,\n this.dataForSaving,\n this.rawHtmlForSaving,\n )\n .subscribe();\n }\n\n private sendCreateRequest(): void {\n this.dataSvc\n .createNewTemplate$(\n OwnerType.OWNER_TYPE_PARTNER,\n 'VUNI',\n AppNamespace.DEV_SANDBOX,\n this.templateId,\n this.dataForSaving,\n this.rawHtmlForSaving,\n )\n .subscribe();\n }\n\n protected readonly ALL_ADVANCED_SECTIONS_ENABLED = ALL_ADVANCED_SECTIONS_ENABLED;\n}\n\n@NgModule({\n declarations: [EmailBuilderSandboxComponent],\n imports: [\n EmailBuilderModule,\n GalaxyPipesModule,\n CommonModule,\n GalaxyLoadingSpinnerModule,\n GalaxyAlertModule,\n GalaxyPageModule,\n MatButtonModule,\n TranslateModule,\n ],\n exports: [EmailBuilderSandboxComponent],\n})\nexport class EmailBuilderSandboxComponentModule {}\n","\n \n \n \n \n \n \n \n\n \n \n \n

There was a problem loading the content

\n
\n
\n\n \n \n \n \n \n Save\n \n \n \n\n \n \n \n
\n
\n","import { Injectable } from '@angular/core';\nimport { DomainService as DomainSDKService, ListAllDomainsResponse, SenderType } from '@vendasta/email';\nimport { GetPendingEmailDomainResponse } from '@vendasta/email/lib/_internal/objects/api';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { shareReplay, skipWhile, take, tap } from 'rxjs/operators';\n\n@Injectable()\nexport class DomainCacheService {\n private responses = new Map>();\n constructor(private readonly sdk: DomainSDKService) {}\n\n listAllDomains(senderType: SenderType, senderID: string): Observable {\n const key = this.buildCacheKey(senderType, senderID);\n let cachedResponse = this.responses.get(key);\n const b = new BehaviorSubject(null);\n if (!cachedResponse) {\n this.responses.set(key, b);\n this.sdk\n .listAllDomains(senderType, senderID)\n .pipe(shareReplay(1))\n .subscribe((r) => b.next(r));\n this.responses.set(key, b);\n cachedResponse = b;\n }\n return cachedResponse.asObservable().pipe(skipWhile((a) => !a));\n }\n\n private refreshDomains(senderType: SenderType, senderID: string): void {\n const key = this.buildCacheKey(senderType, senderID);\n let cachedResponse = this.responses.get(key);\n const b = new BehaviorSubject(null);\n if (!cachedResponse) {\n cachedResponse = b;\n this.responses.set(key, b);\n }\n this.sdk\n .listAllDomains(senderType, senderID)\n .pipe(shareReplay(1), take(1))\n .subscribe((r) => cachedResponse.next(r));\n return;\n }\n\n createPendingDomain(\n senderType: SenderType,\n senderID: string,\n domain: string,\n ): Observable {\n const d = this.sdk\n .createPendingDomain(senderType, senderID, domain)\n .pipe(tap(() => this.refreshDomains(senderType, senderID)));\n return d;\n }\n\n deletePendingDomain(senderType: SenderType, senderID: string, domain: string): Observable {\n const d = this.sdk\n .deletePendingDomain(senderType, senderID, domain)\n .pipe(tap(() => this.refreshDomains(senderType, senderID)));\n return d;\n }\n\n private buildCacheKey(senderType: SenderType, senderID: string): string {\n return senderType.toString() + ':' + senderID;\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const SETUP_HELP_INFO_URL_INJECTION_TOKEN = new InjectionToken(\n 'com.vendasta.email-ui.domain-authorization.setup-help-info-url',\n);\n","import { Component, Input } from '@angular/core';\nimport {\n GetPendingEmailDomainTargetCNameRecordsInterface,\n VerifyPendingEmailDomainResponseInterface,\n} from '@vendasta/email';\n\nexport interface DomainStatus {\n targetSpf?: string;\n currentSpf?: string;\n targets?: GetPendingEmailDomainTargetCNameRecordsInterface;\n}\n\n@Component({\n selector: 'email-domain-status-icon',\n templateUrl: './domain-status-icon.component.html',\n styleUrls: ['./domain-status-icon.component.scss'],\n standalone: false,\n})\nexport class DomainStatusIconComponent {\n @Input() result: VerifyPendingEmailDomainResponseInterface;\n}\n","\n \n check_circle_filled\n \n \n error\n \n\n","import { Clipboard } from '@angular/cdk/clipboard';\nimport { ChangeDetectorRef, Component, ElementRef, Input, Pipe, PipeTransform, Self } from '@angular/core';\nimport { VerifyPendingEmailDomainMismatchInterface } from '@vendasta/email';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { ReplaySubject } from 'rxjs';\nimport { distinctUntilChanged, tap } from 'rxjs/operators';\n\nexport interface RecordsRow {\n recordType: 'CNAME' | 'TXT' | 'A_RECORD';\n recordHost: string;\n recordValue: string;\n recordValueMatchPrefix?: string;\n recordValueMismatchPortion?: string;\n recordValueMatchSuffix?: string;\n}\n\n@Pipe({\n name: 'toTableRowClass',\n standalone: false,\n})\nexport class ToTableRowClassPipe implements PipeTransform {\n transform(value: any): any {\n const row: RecordsRow = value;\n if (row.recordValueMatchPrefix?.length > 0 && row.recordValueMismatchPortion?.length === 0) {\n return 'match';\n }\n }\n}\n\nfunction splitOnce(s: string, on: string): string[] {\n const [first, ...rest] = s.split(on);\n return [first, rest.length > 0 ? rest.join(on) : null];\n}\n\n@Component({\n selector: 'email-domain-records-table',\n templateUrl: './domain-records-table.component.html',\n styleUrls: ['./domain-records-table.component.scss'],\n standalone: false,\n})\nexport class DomainRecordsTableComponent {\n private readonly mobileMaxWidth: number = 768;\n private readonly isContainerLarge$$ = new ReplaySubject(1);\n readonly isContainerLarge$ = this.isContainerLarge$$.asObservable().pipe(\n distinctUntilChanged(),\n tap(() => this.cd.detectChanges()),\n );\n\n @Input() expectedRecords: RecordsRow[] = [];\n\n @Input() set mismatchedRecords(v: VerifyPendingEmailDomainMismatchInterface[]) {\n if (v == undefined) {\n return;\n }\n\n this.expectedRecords = this.expectedRecords.map((er) => {\n const mismatch = v.find((vr) => vr.url === er.recordHost);\n if (!mismatch) {\n return {\n ...er,\n recordValueMatchPrefix: er.recordValue,\n };\n }\n\n return {\n ...er,\n recordValueMatchPrefix: mismatch?.matchedPrefix,\n recordValueMismatchPortion: this.findMismatchedPortion(mismatch),\n recordValueMatchSuffix: mismatch?.matchedSuffix,\n };\n });\n this.cd.markForCheck();\n }\n\n private findMismatchedPortion(mismatch: VerifyPendingEmailDomainMismatchInterface) {\n const withPrefixRemoved = mismatch?.matchedPrefix\n ? splitOnce(mismatch?.actualValue, mismatch?.matchedPrefix)[1]\n : '';\n return mismatch?.matchedSuffix ? splitOnce(withPrefixRemoved, mismatch?.matchedSuffix)[0] : withPrefixRemoved;\n }\n\n @Input() showMismatches: boolean;\n\n constructor(\n @Self() private readonly element: ElementRef,\n private readonly cd: ChangeDetectorRef,\n private readonly clipboard: Clipboard,\n private readonly snackbar: SnackbarService,\n ) {\n const ro = new ResizeObserver((entries) => {\n for (const entry of entries) {\n if (entry.target !== this.element.nativeElement) {\n continue;\n }\n const cr = entry.contentRect;\n const isLarge = cr.width >= this.mobileMaxWidth;\n this.isContainerLarge$$.next(isLarge);\n }\n });\n\n // Element for which to observe height and width\n ro.observe(this.element.nativeElement);\n }\n\n copyValue(recordValue: string): void {\n this.clipboard.copy(recordValue);\n this.snackbar.openSuccessSnack('DOMAIN_AUTHORIZATION.DOMAIN_RECORDS_TABLE.COPY_SUCCESS');\n }\n}\n","\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
{{ 'DOMAIN_AUTHORIZATION.DOMAIN_RECORDS_TABLE.TYPE' | translate }}{{ 'DOMAIN_AUTHORIZATION.DOMAIN_RECORDS_TABLE.HOST' | translate }}{{ 'DOMAIN_AUTHORIZATION.DOMAIN_RECORDS_TABLE.VALUE' | translate }}{{ 'DOMAIN_AUTHORIZATION.DOMAIN_RECORDS_TABLE.FOUND' | translate }}
\n \n
\n
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
{{ 'DOMAIN_AUTHORIZATION.DOMAIN_RECORDS_TABLE.TYPE' | translate }}{{ row.recordType }}
{{ 'DOMAIN_AUTHORIZATION.DOMAIN_RECORDS_TABLE.HOST' | translate }}
{{ 'DOMAIN_AUTHORIZATION.DOMAIN_RECORDS_TABLE.VALUE' | translate }}
{{ 'DOMAIN_AUTHORIZATION.DOMAIN_RECORDS_TABLE.FOUND' | translate }}\n \n
\n
\n
\n\n\n \n {{ cellText }}\n \n\n\n\n \n {{ row.recordValueMatchPrefix }}\n \n {{ row.recordValueMismatchPortion }}\n \n {{ row.recordValueMatchSuffix }}\n \n \n \n {{ 'DOMAIN_AUTHORIZATION.DOMAIN_RECORDS_TABLE.NOT_FOUND' | translate }}\n \n \n\n","import {\n Component,\n EventEmitter,\n Inject,\n Input,\n OnInit,\n Optional,\n Output,\n TemplateRef,\n ViewChild,\n inject,\n} from '@angular/core';\nimport {\n DomainService,\n SenderDomain,\n VerifyDefaultDomainResponse,\n VerifyPendingEmailDomainResponse as VerifyResponse,\n} from '@vendasta/email';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { EMPTY, Observable, ReplaySubject, throwError } from 'rxjs';\nimport { catchError, delay, map, tap } from 'rxjs/operators';\nimport { RecordsRow } from '../domain-records-table/domain-records-table.component';\nimport { ExtendedDomain, SenderID } from '../shared-types';\nimport { SETUP_HELP_INFO_URL_INJECTION_TOKEN } from './dependencies';\nimport { MatDialog } from '@angular/material/dialog';\n\nexport type VerifyError = boolean;\n\n@Component({\n selector: 'email-domain-info-card',\n templateUrl: './domain-info-card.component.html',\n styleUrls: ['./domain-info-card.component.scss'],\n standalone: false,\n})\nexport class DomainInfoCardComponent implements OnInit {\n private readonly inputs$$ = new ReplaySubject(1);\n private _senderId: SenderID;\n\n private _domain: SenderDomain;\n targetDmarc: RecordsRow;\n targetSpf: RecordsRow;\n targetA: RecordsRow;\n targetCNAME: RecordsRow;\n targetDKIMs: RecordsRow[];\n domainResult$: Observable = EMPTY;\n\n @Output() readonly useAsDefaultRequested = new EventEmitter();\n @Output() readonly deleteRequested = new EventEmitter();\n\n @Input() expanded = false;\n @Input() showShadow = false;\n @Input() showDeleteButton = true;\n @Input() deleteInProgress = false;\n\n @Input() set senderId(v: SenderID) {\n this.inputs$$.next(v);\n this._senderId = v;\n }\n\n get senderId(): SenderID {\n return this._senderId;\n }\n\n @Input() set domain(v: ExtendedDomain) {\n this._domain = v;\n if (v.targetA) {\n this.targetA = {\n recordType: 'A_RECORD',\n recordHost: `@.${v.sendFromDomain}`,\n recordValue: v.targetA,\n };\n }\n if (v.targetCNAME) {\n this.targetCNAME = {\n recordType: 'CNAME',\n recordHost: `www.${v.sendFromDomain}`,\n recordValue: v.targetCNAME,\n };\n }\n this.targetDmarc = {\n recordType: 'TXT',\n recordHost: v.targets.dmarcSubdomain,\n recordValue: v.targets.dmarcValue,\n };\n this.targetSpf = {\n recordType: 'TXT',\n recordHost: `@.${v.sendFromDomain}`,\n recordValue: `v=spf1 ${v.targetSpf} -all`,\n };\n this.targetDKIMs = [\n {\n recordType: 'CNAME',\n recordHost: v.targets.mailSubdomain,\n recordValue: v.targets.mailValue,\n },\n {\n recordType: 'CNAME',\n recordHost: v.targets.dkim1Subdomain,\n recordValue: v.targets.dkim1Value,\n },\n {\n recordType: 'CNAME',\n recordHost: v.targets.dkim2Subdomain,\n recordValue: v.targets.dkim2Value,\n },\n ];\n }\n\n get domain(): SenderDomain {\n return this._domain;\n }\n\n @ViewChild('genericHelpModal') helpModal: TemplateRef;\n private readonly dialog = inject(MatDialog);\n\n constructor(\n private readonly sdk: DomainService,\n private readonly alerts: SnackbarService,\n @Inject(SETUP_HELP_INFO_URL_INJECTION_TOKEN) @Optional() private readonly helpArticleURL: string,\n ) {}\n\n ngOnInit(): void {\n this.runValidation(true);\n }\n\n runValidation(initialLoad = false): void {\n if (this._domain.isPrimary) {\n this.runPrimaryDomainValidation(initialLoad);\n } else {\n this.runPendingDomainValidation(initialLoad);\n }\n }\n\n private runPrimaryDomainValidation(initialLoad: boolean): void {\n const request$ = this.sdk.verifyDefaultDomain(this._senderId.senderType, this._senderId.senderID);\n this.runGenericValidation(request$, initialLoad);\n }\n\n private runPendingDomainValidation(initialLoad: boolean): void {\n const request$ = this.sdk.verifyPendingDomain(this._senderId.senderType, this._senderId.senderID);\n this.runGenericValidation(request$, initialLoad);\n }\n\n private runGenericValidation(\n request$: Observable,\n initialLoad: boolean,\n ): void {\n if (!initialLoad) {\n request$ = request$.pipe(\n tap((v) => {\n if (v.allRecordsMatch) {\n this.alerts.openSuccessSnack('DOMAIN_AUTHORIZATION.DOMAIN_INFO_CARD.GENERIC_VALIDATION.SUCCESS');\n } else {\n this.alerts.openErrorSnack('DOMAIN_AUTHORIZATION.DOMAIN_INFO_CARD.GENERIC_VALIDATION.FAILURE');\n }\n }),\n catchError((err) => {\n this.alerts.openErrorSnack('DOMAIN_AUTHORIZATION.DOMAIN_INFO_CARD.GENERIC_VALIDATION.ERROR');\n return throwError(() => err);\n }),\n );\n }\n this.domainResult$ = request$.pipe(\n map((v) => {\n if (v.allRecordsMatch) {\n v.mismatches = [];\n }\n return v;\n }),\n delay(350), // Causes the loading spinner to render for a moment. Less jerky UX.\n );\n }\n\n openHelpArticle(): void {\n if (this.helpArticleURL) {\n window.open(this.helpArticleURL, '_blank');\n } else {\n this.dialog.open(this.helpModal);\n }\n }\n}\n","\n \n \n \n \n \n \n \n \n warning\n \n \n \n \n \n\n \n {{ domain.sendFromDomain }}\n \n ({{ 'DOMAIN_AUTHORIZATION.DOMAIN_INFO_CARD.ACTIVE' | translate }})\n \n \n\n
\n \n \n \n \n {{ 'DOMAIN_AUTHORIZATION.DOMAIN_INFO_CARD.STATUS_BANNER.ERROR' | translate }}\n \n \n \n \n \n \n \n \n \n\n

{{ 'DOMAIN_AUTHORIZATION.DOMAIN_INFO_CARD.DNS_RECORDS.HEADER' | translate }}

\n\n

{{ 'DOMAIN_AUTHORIZATION.DOMAIN_INFO_CARD.DNS_RECORDS.SUBTEXT' | translate }}

\n\n

{{ 'DOMAIN_AUTHORIZATION.DOMAIN_INFO_CARD.DMARC_RECORDS.HEADER' | translate }}

\n\n \n\n \n

{{ 'DOMAIN_AUTHORIZATION.DOMAIN_INFO_CARD.A_RECORDS.HEADER' | translate }}

\n \n
\n\n \n

{{ 'DOMAIN_AUTHORIZATION.DOMAIN_INFO_CARD.CNAME_RECORDS.HEADER' | translate }}

\n \n
\n\n

{{ 'DOMAIN_AUTHORIZATION.DOMAIN_INFO_CARD.SPF_RECORDS.HEADER' | translate }}

\n\n \n\n

{{ 'DOMAIN_AUTHORIZATION.DOMAIN_INFO_CARD.DKIM_RECORDS.HEADER' | translate }}

\n\n \n
\n\n
\n
\n \n \n \n {{ 'DOMAIN_AUTHORIZATION.DOMAIN_INFO_CARD.USE_AS_DEFAULT_DOMAIN' | translate }}\n \n \n \n \n \n \n \n\n \n \n \n
\n
\n
\n
\n\n\n \n
\n {{ 'DOMAIN_AUTHORIZATION.DOMAIN_INFO_CARD.ERROR_NOTICE.HEADER' | translate }}\n - {{ 'DOMAIN_AUTHORIZATION.DOMAIN_INFO_CARD.ERROR_NOTICE.HINT' | translate }}\n
\n \n
\n\n\n

{{ 'DOMAIN_AUTHORIZATION.DOMAIN_INFO_CARD.GENERIC_HELP_PANEL.TITLE' | translate }}

\n\n \n

\n {{ 'DOMAIN_AUTHORIZATION.DOMAIN_INFO_CARD.GENERIC_HELP_PANEL.PAR_1' | translate }}\n

\n

{{ 'DOMAIN_AUTHORIZATION.DOMAIN_INFO_CARD.GENERIC_HELP_PANEL.HEADING_1' | translate }}

\n

\n {{ 'DOMAIN_AUTHORIZATION.DOMAIN_INFO_CARD.GENERIC_HELP_PANEL.PAR_2' | translate }}\n

\n
    \n
  • \n {{ 'DOMAIN_AUTHORIZATION.DOMAIN_INFO_CARD.GENERIC_HELP_PANEL.BULLET_LIST.ITEM_1' | translate }}\n
  • \n
  • \n {{ 'DOMAIN_AUTHORIZATION.DOMAIN_INFO_CARD.GENERIC_HELP_PANEL.BULLET_LIST.ITEM_2' | translate }}\n
  • \n
\n

{{ 'DOMAIN_AUTHORIZATION.DOMAIN_INFO_CARD.GENERIC_HELP_PANEL.HEADING_2' | translate }}

\n

\n {{ 'DOMAIN_AUTHORIZATION.DOMAIN_INFO_CARD.GENERIC_HELP_PANEL.PAR_3' | translate }}\n

\n
    \n
  1. \n {{ 'DOMAIN_AUTHORIZATION.DOMAIN_INFO_CARD.GENERIC_HELP_PANEL.NUMBERED_LIST.ITEM_1' | translate }}\n
  2. \n
  3. \n {{ 'DOMAIN_AUTHORIZATION.DOMAIN_INFO_CARD.GENERIC_HELP_PANEL.NUMBERED_LIST.ITEM_2' | translate }}\n
  4. \n\n
  5. \n {{ 'DOMAIN_AUTHORIZATION.DOMAIN_INFO_CARD.GENERIC_HELP_PANEL.NUMBERED_LIST.ITEM_3' | translate }}\n
  6. \n
  7. \n {{ 'DOMAIN_AUTHORIZATION.DOMAIN_INFO_CARD.GENERIC_HELP_PANEL.NUMBERED_LIST.ITEM_4' | translate }}\n
  8. \n
  9. \n {{ 'DOMAIN_AUTHORIZATION.DOMAIN_INFO_CARD.GENERIC_HELP_PANEL.NUMBERED_LIST.ITEM_5' | translate }}\n
  10. \n
\n

{{ 'DOMAIN_AUTHORIZATION.DOMAIN_INFO_CARD.GENERIC_HELP_PANEL.HEADING_1' | translate }}

\n
    \n
  • \n {{ 'DOMAIN_AUTHORIZATION.DOMAIN_INFO_CARD.GENERIC_HELP_PANEL.BULLET_LIST.ITEM_3' | translate }}\n
  • \n
  • \n {{ 'DOMAIN_AUTHORIZATION.DOMAIN_INFO_CARD.GENERIC_HELP_PANEL.BULLET_LIST.ITEM_4' | translate }}\n
  • \n
  • \n {{ 'DOMAIN_AUTHORIZATION.DOMAIN_INFO_CARD.GENERIC_HELP_PANEL.BULLET_LIST.ITEM_5' | translate }}\n
  • \n
\n

\n {{ 'DOMAIN_AUTHORIZATION.DOMAIN_INFO_CARD.GENERIC_HELP_PANEL.PAR_4' | translate }}\n

\n
\n \n \n \n
\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { SenderDomain, SenderType } from '@vendasta/email';\nimport { Observable, of } from 'rxjs';\nimport { DefaultDomainService } from '../default-domain.service';\nimport { map } from 'rxjs/operators';\n\n@Pipe({\n name: 'canAddDomain',\n standalone: false,\n})\nexport class CanAddDomainPipe implements PipeTransform {\n constructor(private defaultDomainService: DefaultDomainService) {}\n\n transform(value: SenderDomain[], senderType: SenderType): Observable {\n if (!value) {\n return of(true);\n }\n return this.defaultDomainService.getDefaultDomain$(senderType).pipe(\n map((defaultDomain) => {\n const nonDefault = value.filter((d) => d.sendFromDomain !== defaultDomain);\n const hasPending = nonDefault.map((d) => !d.isPrimary).some((isPending) => isPending);\n return hasPending === false;\n }),\n );\n }\n}\n","import { Component, EventEmitter, Input, Output, ViewChildren } from '@angular/core';\nimport { SenderID, ExtendedDomain } from '../shared-types';\nimport { DomainInfoCardComponent } from '../domain-info-card/domain-info-card.component';\n\n@Component({\n selector: 'email-domains',\n templateUrl: './domains.component.html',\n styleUrls: ['./domains.component.scss'],\n standalone: false,\n})\nexport class DomainsComponent {\n @Input() readonly senderId: SenderID;\n @Input() readonly domains: ExtendedDomain[] = [];\n @Input() readonly deleteInProgress = false;\n @Input() readonly showEmpty = true;\n\n @Output() readonly deleteRequested = new EventEmitter();\n @Output() readonly authorizeRequested = new EventEmitter();\n @Output() readonly useAsDefaultRequested = new EventEmitter();\n\n @ViewChildren(DomainInfoCardComponent) domainInfoCards: DomainInfoCardComponent[];\n\n async handleAuthorizeClick(): Promise {\n this.authorizeRequested.emit(null);\n }\n\n scrollToDomain(domain: string): void {\n this.domainInfoCards\n .filter((c) => c.domain?.sendFromDomain === domain)\n .forEach((card) => {\n card.expanded = true;\n });\n // WARNING: if an error happens and the domain is not found, this would break the page\n // We need to handle if the element is not found. Refer to UB-397\n // Consider if the element is not found to debounce until it is found. For now we will just not scroll.\n window.setTimeout(\n () => document.getElementById(`domain_card_${domain}`)?.scrollIntoView({ behavior: 'smooth' }),\n 500,\n );\n }\n}\n"," 0; else empty\">\n \n \n \n
\n \n
\n
\n\n\n \n \n domain_disabled\n \n {{ 'DOMAIN_AUTHORIZATION.DOMAINS.NO_DOMAINS' | translate }}\n

{{ 'DOMAIN_AUTHORIZATION.DOMAINS.NEW_DOMAIN' | translate }}

\n \n \n \n
\n
\n","import { Component, Inject } from '@angular/core';\nimport { UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { GetPendingEmailDomainResponseInterface } from '@vendasta/email';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { Observable, of } from 'rxjs';\nimport { catchError, shareReplay, tap } from 'rxjs/operators';\nimport { DomainCacheService } from '../domain-cache.service';\nimport { SenderID } from '../shared-types';\n\nexport interface NewDomainDialogData {\n senderID: SenderID;\n}\n\nexport interface Result {\n newPendingDomain?: string;\n}\n\n@Component({\n selector: 'email-new-domain-dialog',\n templateUrl: './new-domain-dialog.component.html',\n styleUrls: ['./new-domain-dialog.component.scss'],\n standalone: false,\n})\nexport class NewDomainDialogComponent {\n readonly senderForm = new UntypedFormGroup({\n senderDomain: new UntypedFormControl('', [Validators.required, Validators.pattern('[^(@\\\\s)]+\\\\.[^(@\\\\s)]+')]),\n });\n authorizedDomain$: Observable = of(null);\n\n constructor(\n @Inject(MAT_DIALOG_DATA) readonly data: NewDomainDialogData,\n @Inject(MatDialogRef) private readonly dialog: MatDialogRef,\n private readonly domainService: DomainCacheService,\n private readonly alerts: SnackbarService,\n ) {}\n\n private authorize(): void {\n const domain = this.senderForm.get('senderDomain').value;\n this.authorizedDomain$ = this.domainService\n .createPendingDomain(this.data.senderID.senderType, this.data.senderID.senderID, domain)\n .pipe(\n shareReplay({ refCount: true, bufferSize: 1 }),\n catchError(() => {\n this.alerts.openErrorSnack('DOMAIN_AUTHORIZATION.NEW_DOMAIN_DIALOG.AUTH_ERROR');\n return of(null);\n }),\n tap(() =>\n this.dialog.close({\n newPendingDomain: domain,\n } as Result),\n ),\n );\n }\n\n close(): void {\n this.dialog.close({ newPendingDomain: undefined } as Result);\n }\n\n submitForm(): void {\n this.senderForm.markAsDirty();\n if (this.senderForm.valid) {\n this.authorize();\n } else {\n this.alerts.openErrorSnack('DOMAIN_AUTHORIZATION.NEW_DOMAIN_DIALOG.INVALID_ERROR');\n }\n }\n}\n","\n

{{ 'DOMAIN_AUTHORIZATION.NEW_DOMAIN_DIALOG.NOT_PROVIDED' | translate }}

\n
\n\n

\n {{ 'DOMAIN_AUTHORIZATION.NEW_DOMAIN_DIALOG.TITLE' | translate }}\n

\n\n\n

\n {{ 'DOMAIN_AUTHORIZATION.NEW_DOMAIN_DIALOG.HEADER' | translate }}\n

\n\n
\n
\n \n {{ 'COMMON.DOMAIN' | translate }}\n \n \n
\n
\n
\n\n \n\n \n \n {{ 'DOMAIN_AUTHORIZATION.NEW_DOMAIN_DIALOG.START' | translate }}\n \n \n\n","export const UNSAVED_DATA_HANDLER_TOKEN = 'com.vendasta.email-ui.unsaved_data_handler';\n\nexport enum SavedState {\n SAFE_TO_NAVIGATE_AWAY = 'safe',\n HAS_UNSAVED_CHANGES = 'unsaved',\n}\n\nexport interface UnsavedDataHandler {\n notifyStateChanged(newState: SavedState): void;\n}\n","import { Validators } from '@angular/forms';\n\nexport class EmailValidators {\n static readonly emailUsername = () => Validators.pattern('[^@]+');\n static readonly emailDomain = () => Validators.pattern('[^(@\\\\s)]+\\\\.[^(@\\\\s)]+');\n static readonly fullEmailAddress = () => Validators.pattern('[^@]+@[^(@\\\\s)]+\\\\.[^(@\\\\s)]+');\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport {\n DomainService,\n Sender,\n SenderDomain,\n VerifyDefaultDomainResponse,\n VerifyDefaultDomainResponseInterface,\n} from '@vendasta/email';\nimport { EMPTY, Observable } from 'rxjs';\nimport { MatDialog } from '@angular/material/dialog';\n\nexport interface Data {\n sender: Sender;\n domain: SenderDomain;\n}\n\n@Component({\n selector: 'email-domain-status-and-name',\n templateUrl: './domain-status-and-name.component.html',\n styleUrls: ['./domain-status-and-name.component.scss'],\n standalone: false,\n})\nexport class DomainStatusAndNameComponent {\n verifyResult$: Observable = EMPTY;\n domain: SenderDomain;\n private sender: Sender;\n\n @Output() public readonly domainChangeRequested = new EventEmitter();\n @Output() public readonly invalidDomainChangeRequested = new EventEmitter();\n @Output() public readonly clicked = new EventEmitter();\n\n @Input()\n public set data(value: Data) {\n this.domain = value.domain;\n this.sender = value.sender;\n if (value.domain.isPrimary) {\n this.verifyResult$ = this.sdk.verifyDefaultDomain(value.sender.type, value.sender.id);\n } else {\n this.verifyResult$ = this.sdk.verifyPendingDomain(value.sender.type, value.sender.id);\n }\n }\n\n constructor(\n private readonly sdk: DomainService,\n private readonly dialog: MatDialog,\n ) {}\n\n public handleClick(result: VerifyDefaultDomainResponseInterface): void {\n this.clicked.emit();\n if (result.allRecordsMatch) {\n this.domainChangeRequested.emit(this.domain.sendFromDomain);\n } else {\n this.invalidDomainChangeRequested.emit(this.domain.sendFromDomain);\n }\n }\n}\n","\n \n \n \n \n \n warning\n \n \n
\n \n {{ domain.sendFromDomain }}\n
\n
\n
\n
\n","import { Component, Inject } from '@angular/core';\nimport { ListAllDomainsResponseInterface, Sender, SenderType } from '@vendasta/email';\nimport { EMPTY, Observable } from 'rxjs';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { map } from 'rxjs/operators';\nimport { Data as ButtonData } from './domain-status-and-name/domain-status-and-name.component';\nimport { DomainCacheService } from '../domain-cache.service';\n\nexport type ChoiceType = 'new' | 'valid' | 'invalid';\n\nexport interface Result {\n newDomain: string | undefined;\n choiceType: ChoiceType;\n}\n\n@Component({\n selector: 'email-domains-dialog',\n templateUrl: './domains-dialog.component.html',\n styleUrls: ['./domains-dialog.component.scss'],\n standalone: false,\n})\nexport class DomainsDialogComponent {\n allDomains$: Observable = EMPTY;\n\n constructor(\n private readonly domainService: DomainCacheService, //\n @Inject(MAT_DIALOG_DATA) sender: Sender,\n readonly self: MatDialogRef,\n ) {\n this.refreshDomains(sender);\n }\n\n private refreshDomains(sender: Sender): void {\n if (!sender.id || sender.type === SenderType.SENDER_TYPE_INVALID) {\n return;\n }\n // We replace the entire observable because errors cause the original observable to complete\n this.allDomains$ = this.domainService\n .listAllDomains(sender.type, sender.id)\n .pipe(map((v) => convertListResponseToButtonData(sender, v)));\n }\n\n handleDomainChangeRequested(domain: string, isValidDomain: boolean): void {\n this.self.close({\n newDomain: domain,\n choiceType: isValidDomain ? 'valid' : 'invalid',\n } as Result);\n }\n\n handleNewDomainRequested(): void {\n this.self.close({\n newDomain: '',\n choiceType: 'new',\n } as Result);\n }\n}\n\nfunction convertListResponseToButtonData(sender: Sender, response: ListAllDomainsResponseInterface): ButtonData[] {\n return response.domains.map(\n (v) =>\n ({\n domain: v,\n sender: sender,\n }) as ButtonData,\n );\n}\n","

{{ 'DOMAIN_AUTHORIZATION.DOMAINS_DIALOG.HEADER' | translate }}

\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 error\n \n {{ 'DOMAIN_AUTHORIZATION.DOMAINS_DIALOG.ERROR' | translate }}\n

{{ data.error }}

\n
\n
\n
\n
\n\n \n
\n \n
\n \n
\n","import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatButtonModule } from '@angular/material/button';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@Component({\n imports: [CommonModule, MatDialogModule, MatButtonModule, TranslateModule],\n templateUrl: './email-forwarding-info.component.html',\n styleUrl: './email-forwarding-info.component.scss',\n})\nexport class EmailForwardingInfoComponent {}\n","

{{ 'DOMAIN_AUTHORIZATION.SENDER_INFO_FORM.FORWARDING_ADDRESS_INFO_TITLE' | translate }}

\n\n
\n
\n\n \n\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { MatDialog } from '@angular/material/dialog';\nimport { Sender } from '@vendasta/email';\nimport { firstValueFrom, Observable } from 'rxjs';\nimport {\n Result as DialogResult,\n DomainsDialogComponent,\n} from '../domain-authorization/src/domains-dialog/domains-dialog.component';\nimport { DefaultDomainService } from '../domain-authorization/src/default-domain.service';\nimport { switchMap } from 'rxjs/operators';\n\n@Component({\n selector: 'email-username-input',\n templateUrl: './email-username-input.component.html',\n styleUrls: ['./email-username-input.component.scss'],\n standalone: false,\n})\nexport class EmailUsernameInputComponent implements OnInit {\n public isDefaultDomain$: Observable;\n\n @Output() readonly authorizeRequested = new EventEmitter();\n @Output() readonly domainChangeRequested = new EventEmitter();\n @Output() readonly invalidDomainChangeRequested = new EventEmitter();\n\n @Input() readonly form: UntypedFormGroup;\n @Input() readonly formControlNameString: string;\n @Input() readonly sender: Sender;\n @Input() readonly domain$: Observable;\n\n constructor(\n private readonly dialog: MatDialog,\n private defaultDomainService: DefaultDomainService,\n ) {}\n\n ngOnInit(): void {\n this.isDefaultDomain$ = this.domain$.pipe(\n switchMap((domain) => this.defaultDomainService.isDefaultDomain$(domain, this.sender.type)),\n );\n }\n\n async changeDomain(): Promise {\n const dialog = this.dialog.open(DomainsDialogComponent, {\n data: this.sender,\n });\n const result: DialogResult = await firstValueFrom(dialog.afterClosed());\n switch (result.choiceType) {\n case 'new':\n this.authorizeRequested.emit();\n break;\n case 'valid':\n this.domainChangeRequested.emit(result.newDomain);\n break;\n case 'invalid':\n this.invalidDomainChangeRequested.emit(result.newDomain);\n break;\n }\n }\n}\n","
\n
\n \n {{ 'COMMON.EMAIL_ADDRESS' | translate }}\n \n \n {{ 'EMAIL_USERNAME_INPUT.EMAIL_REQUIRED' | translate }}\n \n \n \n edit\n \n
\n
\n","import {\n ChangeDetectorRef,\n Component,\n EventEmitter,\n inject,\n Inject,\n Input,\n OnChanges,\n OnInit,\n Output,\n} from '@angular/core';\nimport { UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';\nimport { MatDialog } from '@angular/material/dialog';\nimport {\n DomainService,\n GetSenderInfoResponse,\n GetSenderInfoResponseInterface,\n Sender,\n SenderDomain,\n SenderType,\n} from '@vendasta/email';\nimport { SubscriptionList } from '@vendasta/rx-utils';\nimport { combineLatest, firstValueFrom, Observable, of, Subscription, throwError } from 'rxjs';\nimport { catchError, map, shareReplay, switchMap, tap } from 'rxjs/operators';\nimport { EmailValidators } from '../../../../email-form-validators';\nimport { DomainCacheService } from '../../domain-cache.service';\nimport { DomainsDialogComponent, Result as DialogResult } from '../../domains-dialog/domains-dialog.component';\nimport { SavedState, UNSAVED_DATA_HANDLER_TOKEN, UnsavedDataHandler } from '../dependencies';\nimport { SelectedDomain } from './selected-domain';\nimport { DefaultDomainService, repairDefaultDomain } from '../../../src/default-domain.service';\nimport { SelectedDomainFactoryService } from './selected-domain-factory.service';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { EmailApiService, GlobalParticipantType } from '@vendasta/conversation';\nimport { Clipboard } from '@angular/cdk/clipboard';\nimport { EmailForwardingInfoComponent } from './email-forwarding-info/email-forwarding-info.component';\n\nexport interface SaveData {\n domain: string;\n preferredDisplayName: string;\n preferredEmailUsername: string;\n senderName: string;\n replyTo: string;\n}\n\n@Component({\n selector: 'email-sender-info-form',\n templateUrl: './sender-info-form.component.html',\n styleUrls: ['./sender-info-form.component.scss'],\n standalone: false,\n})\nexport class SenderInfoFormComponent implements OnInit, OnChanges {\n @Output() readonly domainChangeRequested = new EventEmitter();\n @Output() readonly invalidDomainChangeRequested = new EventEmitter();\n @Output() readonly authorizeRequested = new EventEmitter();\n\n @Input() readonly sender: Sender;\n\n @Input() readonly senderInfo: GetSenderInfoResponse;\n\n /**\n * domainOverride sets the domain that is displayed in this component. It\n * is displayed INSTEAD OF the sender's actual domain. (e.g. prior to saving)\n */\n @Input() domainOverride: string;\n\n domains$: Observable;\n\n senderInfoForm: UntypedFormGroup = new UntypedFormGroup({\n senderName: new UntypedFormControl('', [Validators.required]),\n useOwn: new UntypedFormControl(''),\n senderEmailUsername: new UntypedFormControl('', [Validators.required, EmailValidators.emailUsername()]),\n replyTo: new UntypedFormControl('', [EmailValidators.fullEmailAddress()]),\n });\n\n forwardingAddress: Promise;\n protected isCopied = false;\n private readonly emailApiService = inject(EmailApiService);\n\n selectedDomain$: Observable;\n selectedDomainName$: Observable;\n saveSenderInfoRequest$: Observable = of(null);\n saveDomainRequest$: Observable = of(null);\n\n useOwn: boolean;\n showAlertBanner = true;\n\n showForwardingAddress: boolean;\n\n private readonly subs = SubscriptionList.new();\n private notifier: Subscription | null = null;\n\n constructor(\n private readonly cdr: ChangeDetectorRef,\n @Inject(UNSAVED_DATA_HANDLER_TOKEN) private readonly unsavedHandler: UnsavedDataHandler,\n private readonly dialog: MatDialog,\n private readonly domainService: DomainCacheService,\n private defaultDomainService: DefaultDomainService,\n private readonly selectedDomainFactory: SelectedDomainFactoryService,\n private readonly domains: DomainService,\n private readonly alerts: SnackbarService,\n private clipboard: Clipboard,\n ) {\n this.subs.add(this.senderInfoForm.get('useOwn').valueChanges, (value) => this.handleUseOwnChanged(value));\n }\n\n ngOnChanges(): void {\n this.updateFormValuesIfUnset(this.senderInfo);\n if (this.domainOverride) {\n this.senderInfoForm.get('useOwn').setValue(true);\n const senderInfo: GetSenderInfoResponseInterface = {\n domain: this.domainOverride,\n isPlatformAuthorized: true,\n };\n this.selectedDomain$ = this.selectedDomainFactory.fromSenderInfo(this.sender.type, senderInfo, true);\n this.selectedDomainName$ = this.selectedDomain$.pipe(map((d) => d.domain));\n }\n }\n\n ngOnInit(): void {\n this.showForwardingAddress = this.sender.type === SenderType.SENDER_TYPE_BUSINESS;\n this.domains$ = this.domainService.listAllDomains(this.sender.type, this.sender.id).pipe(map((r) => r.domains));\n this.forwardingAddress = this.getForwardingAddress();\n }\n\n private handleUseOwnChanged(useOwnDomain: boolean): void {\n this.useOwn = useOwnDomain;\n this.selectedDomain$ = this.selectedDomainFactory.fromSenderInfo(this.sender.type, this.senderInfo, useOwnDomain);\n this.selectedDomainName$ = this.selectedDomain$.pipe(map((d) => d.domain));\n this.cdr.detectChanges();\n }\n\n public handleAuthorizeDomain(): void {\n this.authorizeRequested.emit();\n }\n\n private updateFormValuesIfUnset(info: GetSenderInfoResponseInterface): void {\n this.notifier?.unsubscribe();\n this.senderInfoForm.get('useOwn').setValue(!info.isDefaultForSenderType);\n const senderName = this.senderInfoForm.get('senderName');\n if (!senderName.value) {\n senderName.setValue(info.preferredEmailDisplayName);\n }\n const senderEmailUsername = this.senderInfoForm.get('senderEmailUsername');\n if (!senderEmailUsername.value) {\n senderEmailUsername.setValue(info.preferredEmailUsername);\n }\n const replyTo = this.senderInfoForm.get('replyTo');\n if (!replyTo.value) {\n replyTo.setValue(info.preferredReplyToEmailAddress);\n }\n this.notifier = this.senderInfoForm.valueChanges.subscribe(() =>\n this.unsavedHandler.notifyStateChanged(SavedState.HAS_UNSAVED_CHANGES),\n );\n }\n\n handleSaveRequested($event: Observable, isDomainSave: boolean): void {\n const saveRequest = $event.pipe(\n switchMap((saveData) =>\n this.domains.changeForSender(\n this.sender.type,\n this.sender.id,\n repairDefaultDomain(saveData.domain),\n saveData.preferredEmailUsername,\n saveData.replyTo,\n saveData.senderName,\n ),\n ),\n tap(() => this.alerts.openSuccessSnack('DOMAIN_AUTHORIZATION.SENDER_INFO_CARD.UPDATE_SUCCESS')),\n catchError((err) => {\n this.alerts.openErrorSnack('DOMAIN_AUTHORIZATION.SENDER_INFO_CARD.UPDATE_FAILURE');\n return throwError(() => err);\n }),\n tap(() => this.unsavedHandler.notifyStateChanged(SavedState.SAFE_TO_NAVIGATE_AWAY)),\n shareReplay({ bufferSize: 1, refCount: true }),\n );\n if (isDomainSave) {\n this.saveDomainRequest$ = saveRequest;\n } else {\n this.saveSenderInfoRequest$ = saveRequest;\n }\n }\n\n getSaveData(): Observable {\n // TODO: Prevent saving if form is not valid?\n const useOwnDomain = this.senderInfoForm.get('useOwn').value;\n return combineLatest([this.defaultDomainService.getDefaultDomain$(this.sender.type), this.selectedDomain$]).pipe(\n map(([defaultDomain, selectedDomain]) => {\n return {\n domain: useOwnDomain ? selectedDomain.domain : defaultDomain,\n preferredDisplayName: this.senderInfoForm.get('senderName').value,\n preferredEmailUsername: this.senderInfoForm.get('senderEmailUsername').value,\n senderName: this.senderInfoForm.get('senderName').value,\n replyTo: this.senderInfoForm.get('replyTo').value,\n } as SaveData;\n }),\n );\n }\n\n async openChooseDomainDialog(): Promise {\n const dialog = this.dialog.open(DomainsDialogComponent, {\n data: this.sender,\n maxHeight: '600px',\n });\n const result: DialogResult = await firstValueFrom(dialog.afterClosed());\n switch (result.choiceType) {\n case 'new':\n this.authorizeRequested.emit();\n break;\n case 'valid':\n this.domainChangeRequested.emit(result.newDomain);\n break;\n case 'invalid':\n this.invalidDomainChangeRequested.emit(result.newDomain);\n break;\n }\n }\n\n closeAlert() {\n this.showAlertBanner = false;\n }\n\n async copyClicked() {\n this.isCopied = true;\n this.clipboard.copy(await this.forwardingAddress);\n setTimeout(() => {\n this.isCopied = false;\n }, 5000);\n }\n\n async getForwardingAddress(): Promise {\n return await firstValueFrom(\n this.emailApiService\n .getOwnerEmail({\n subjectParticipant: {\n participantType: GlobalParticipantType.GLOBAL_PARTICIPANT_TYPE_ACCOUNT_GROUP,\n internalParticipantId: this.sender?.id ?? '',\n },\n })\n .pipe(\n map((emailRes) => {\n return emailRes.forwardingEmail ?? '';\n }),\n catchError(() => of('')),\n ),\n );\n }\n\n openLearnMoreModal(): void {\n this.dialog.open(EmailForwardingInfoComponent, { width: '600px' });\n }\n}\n","\n \n {{ 'DOMAIN_AUTHORIZATION.SENDER_INFO_CARD.GENERAL' | translate }}\n \n \n \n {{ 'DOMAIN_AUTHORIZATION.SENDER_INFO_FORM.CONFIGURATION_ALERT_MESSAGE' | translate }}\n \n
\n \n {{ 'DOMAIN_AUTHORIZATION.SENDER_INFO_FORM.NAME' | translate }}\n \n \n {{ 'DOMAIN_AUTHORIZATION.SENDER_INFO_FORM.NAME_REQUIRED' | translate }}\n \n \n\n \n {{ 'DOMAIN_AUTHORIZATION.SENDER_INFO_FORM.REPLY_ADDRESS' | translate }}\n \n \n {{ 'DOMAIN_AUTHORIZATION.SENDER_INFO_FORM.REPLY_ADDRESS_NOT_VALID' | translate }}\n \n \n
\n \n \n {{ 'DOMAIN_AUTHORIZATION.SENDER_INFO_CARD.SAVE' | translate }}\n \n \n
\n
\n\n \n {{ 'DOMAIN_AUTHORIZATION.SENDER_INFO_FORM.TITLE' | translate }}\n \n \n
\n \n {{ 'DOMAIN_AUTHORIZATION.SENDER_INFO_FORM.SENDER_DOMAIN' | translate }}\n \n \n {{ 'DOMAIN_AUTHORIZATION.SENDER_INFO_FORM.USE_DEFAULT' | translate }}\n \n \n \n {{ 'DOMAIN_AUTHORIZATION.SENDER_INFO_FORM.USE_OWN' | translate }}\n \n \n \n \n\n \n \n

{{ 'DOMAIN_AUTHORIZATION.SENDER_INFO_FORM.EMPTY_DOMAIN' | translate }}

\n \n \n \n \n
\n
\n\n \n
\n \n \n \n
\n
\n
\n @if (showForwardingAddress) {\n \n {{ 'DOMAIN_AUTHORIZATION.SENDER_INFO_FORM.FORWARDING_ADDRESS' | translate }}\n \n \n content_copy\n \n \n {{ 'DOMAIN_AUTHORIZATION.SENDER_INFO_FORM.FORWARDING_ADDRESS_DESCRIPTION' | translate }}\n {{ 'DOMAIN_AUTHORIZATION.SENDER_INFO_FORM.LEARN_MORE' | translate }}\n \n \n }\n \n \n {{ 'DOMAIN_AUTHORIZATION.SENDER_INFO_CARD.SAVE' | translate }}\n \n \n
\n
\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Inject,\n Input,\n OnChanges,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {\n DomainService,\n GetSenderInfoResponse,\n GetSenderInfoResponseInterface,\n Sender,\n SendersService,\n} from '@vendasta/email';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { EMPTY, Observable, of } from 'rxjs';\nimport { catchError, map, tap } from 'rxjs/operators';\nimport { SavedState, UNSAVED_DATA_HANDLER_TOKEN, UnsavedDataHandler } from './dependencies';\nimport { SenderInfoFormComponent } from './sender-info-form/sender-info-form.component';\n\n@Component({\n selector: 'email-sender-info-card',\n templateUrl: './sender-info-card.component.html',\n styleUrls: ['./sender-info-card.component.scss'],\n changeDetection: ChangeDetectionStrategy.Default,\n standalone: false,\n})\nexport class SenderInfoCardComponent implements OnChanges {\n @Output() authorizeRequested: EventEmitter = new EventEmitter();\n @Output() invalidDomainChangeRequested = new EventEmitter();\n @Input() sender: Sender;\n @ViewChild(SenderInfoFormComponent) form: SenderInfoFormComponent;\n\n senderInfo$: Observable;\n domainOverride: string | null = null;\n\n constructor(\n private readonly api: SendersService,\n private readonly domains: DomainService,\n private readonly alerts: SnackbarService,\n @Inject(UNSAVED_DATA_HANDLER_TOKEN) private readonly unsavedHandler: UnsavedDataHandler,\n ) {}\n\n ngOnChanges(): void {\n this.reInitializeObservables();\n }\n\n reInitializeObservables(): void {\n this.domainOverride = null;\n this.senderInfo$ = this.api.getEmailSendingInfo(this.sender.type, this.sender.id).pipe(\n tap((v) => this.auditDomain(v)),\n map((res) => {\n if (Object.keys(res).length === 0) {\n return {\n isDefaultForSenderType: true,\n } as GetSenderInfoResponseInterface;\n }\n return res;\n }),\n catchError((e) => {\n if (e.status === 404) {\n return of({\n isDefaultForSenderType: true,\n } as GetSenderInfoResponseInterface);\n }\n this.alerts.openErrorSnack('DOMAIN_AUTHORIZATION.SENDER_INFO_CARD.LOADING_ERROR');\n return EMPTY;\n }),\n );\n this.unsavedHandler.notifyStateChanged(SavedState.SAFE_TO_NAVIGATE_AWAY);\n }\n\n handleAuthorizeRequested(): void {\n this.authorizeRequested.emit();\n }\n\n setDomain(domain: string): void {\n if (this.domainOverride !== domain) {\n this.alerts.openSuccessSnack('DOMAIN_AUTHORIZATION.SENDER_INFO_CARD.DOMAIN_SELECT_SUCCESS');\n this.unsavedHandler.notifyStateChanged(SavedState.HAS_UNSAVED_CHANGES);\n }\n this.domainOverride = domain;\n }\n\n private auditDomain(v: GetSenderInfoResponse): void {\n if (!v.domain) {\n // Partner has an empty sender domain. Try to keep user on page to fix it.\n this.unsavedHandler.notifyStateChanged(SavedState.HAS_UNSAVED_CHANGES);\n }\n }\n}\n","\n

{{ 'DOMAIN_AUTHORIZATION.SENDER_INFO_CARD.INPUT_NOT_PROVIDED' | translate }}

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

{{ 'DOMAIN_AUTHORIZATION.SENDER_INFO_CARD.LOADING_ERROR' | translate }}

\n \n \n \n
\n
\n
\n
\n","import { AfterViewInit, Component, Input, OnChanges, ViewChild } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ListAllDomainsResponse, SenderDomain, SenderType } from '@vendasta/email';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { Observable, firstValueFrom } from 'rxjs';\nimport { map, skipWhile, tap } from 'rxjs/operators';\nimport { DomainCacheService } from './domain-cache.service';\nimport { DomainsComponent } from './domains/domains.component';\nimport {\n NewDomainDialogComponent,\n NewDomainDialogData,\n Result as NewDomainDialogResult,\n} from './new-domain-dialog/new-domain-dialog.component';\n@Component({\n selector: 'email-domain-authorization',\n templateUrl: './domain-authorization.component.html',\n styleUrls: ['./domain-authorization.component.scss'],\n standalone: false,\n})\nexport class DomainAuthorizationComponent implements AfterViewInit, OnChanges {\n @Input() senderType: SenderType;\n @Input() senderID: string;\n\n @ViewChild(DomainsComponent) domainsComponent: DomainsComponent;\n\n allDomains$: Observable;\n deleting: boolean;\n\n constructor(\n private readonly domainService: DomainCacheService,\n private readonly dialog: MatDialog,\n private readonly snack: SnackbarService,\n ) {}\n\n ngAfterViewInit(): void {\n this.refreshDomains();\n }\n\n ngOnChanges(): void {\n this.refreshDomains();\n }\n\n private refreshDomains(andScrollToDomain?: string): void {\n if (!this.senderID || this.senderType === SenderType.SENDER_TYPE_INVALID) {\n return;\n }\n // We replace the entire observable because errors cause the original observable to complete\n this.allDomains$ = this.domainService.listAllDomains(this.senderType, this.senderID).pipe(\n skipWhile((v) => !v),\n map((v: ListAllDomainsResponse) => v.domains),\n tap((domains) => {\n const chmln = window['chmln'];\n if (Array.isArray(domains) && domains.length > 0) {\n chmln?.track('Completed Customize Email Domain');\n }\n }),\n tap(() => window.setTimeout(() => (andScrollToDomain ? this.scrollToDomain(andScrollToDomain) : undefined), 0)),\n );\n }\n\n async handleAuthorizationRequested(): Promise {\n const data: NewDomainDialogData = {\n senderID: {\n senderType: this.senderType,\n senderID: this.senderID,\n },\n };\n const dialog = this.dialog.open(NewDomainDialogComponent, { data: data });\n const result: NewDomainDialogResult = await firstValueFrom(dialog.afterClosed());\n\n if (result.newPendingDomain) {\n this.refreshDomains(result.newPendingDomain);\n }\n }\n\n scrollToDomain(domain: string): void {\n this.domainsComponent.scrollToDomain(domain);\n }\n\n async handleDeleteRequested(domain: string): Promise {\n const delete$ = this.domainService.deletePendingDomain(this.senderType, this.senderID, domain);\n this.deleting = true;\n await firstValueFrom(delete$)\n .then(() => {\n this.snack.openSuccessSnack('Domain deleted');\n this.refreshDomains();\n })\n .catch(() => this.snack.openErrorSnack('There was a problem deleting the domain. Try again.'))\n .finally(() => (this.deleting = false));\n }\n}\n","\n\n
\n

{{ 'DOMAIN_AUTHORIZATION.GENERAL.HEADER' | translate }}

\n
\n {{ 'DOMAIN_AUTHORIZATION.GENERAL.PURPOSE' | translate }}\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 error\n \n {{ 'DOMAIN_AUTHORIZATION.GENERAL.ERROR' | translate }}\n

{{ domains.error }}

\n
\n
\n
\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DomainStatusIconComponent } from './domain-status-icon.component';\nimport { MatIconModule } from '@angular/material/icon';\n\n@NgModule({\n declarations: [DomainStatusIconComponent],\n imports: [CommonModule, MatIconModule],\n exports: [DomainStatusIconComponent],\n})\nexport class DomainStatusIconModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DomainRecordsTableComponent, ToTableRowClassPipe } from './domain-records-table.component';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { GalaxyTooltipModule } from '@vendasta/galaxy/tooltip';\nimport { EmailUII18nModule } from '../../../src/lib/i18n/email-ui-i18n.module';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@NgModule({\n declarations: [DomainRecordsTableComponent, ToTableRowClassPipe],\n imports: [CommonModule, MatButtonModule, MatIconModule, GalaxyTooltipModule, EmailUII18nModule, TranslateModule],\n exports: [DomainRecordsTableComponent],\n providers: [ToTableRowClassPipe],\n})\nexport class DomainRecordsTableModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DomainInfoCardComponent } from './domain-info-card.component';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { DomainStatusIconModule } from '../domain-status-icon/domain-status-icon.module';\nimport { GalaxyLoadingSpinnerModule } from '@vendasta/galaxy/loading-spinner';\nimport { GalaxyTooltipModule } from '@vendasta/galaxy/tooltip';\nimport { MatIconModule } from '@angular/material/icon';\nimport { GalaxyPipesModule } from '@vendasta/galaxy/pipes';\nimport { GalaxyAlertModule } from '@vendasta/galaxy/alert';\nimport { DomainRecordsTableModule } from '../domain-records-table/domain-records-table.module';\nimport { MatButtonModule } from '@angular/material/button';\nimport { GalaxyButtonLoadingIndicatorModule } from '@vendasta/galaxy/button-loading-indicator';\nimport { EmailUII18nModule } from '../../../src/lib/i18n/email-ui-i18n.module';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { MatDialogModule } from '@angular/material/dialog';\n\n@NgModule({\n declarations: [DomainInfoCardComponent],\n imports: [\n CommonModule,\n MatExpansionModule,\n DomainStatusIconModule,\n DomainRecordsTableModule,\n GalaxyLoadingSpinnerModule,\n GalaxyTooltipModule,\n MatIconModule,\n GalaxyPipesModule,\n GalaxyAlertModule,\n MatButtonModule,\n GalaxyButtonLoadingIndicatorModule,\n EmailUII18nModule,\n TranslateModule,\n MatDialogModule,\n ],\n exports: [DomainInfoCardComponent],\n})\nexport class DomainInfoCardModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NewDomainDialogComponent } from './new-domain-dialog.component';\nimport { GalaxyWrapModule } from '@vendasta/galaxy/galaxy-wrap';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatButtonModule } from '@angular/material/button';\nimport { GalaxyButtonLoadingIndicatorModule } from '@vendasta/galaxy/button-loading-indicator';\nimport { GalaxyPipesModule } from '@vendasta/galaxy/pipes';\nimport { EmailUII18nModule } from '../../../src/lib/i18n/email-ui-i18n.module';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\n\n@NgModule({\n declarations: [NewDomainDialogComponent],\n imports: [\n CommonModule,\n GalaxyWrapModule,\n FormsModule,\n MatFormFieldModule,\n TranslateModule,\n MatInputModule,\n ReactiveFormsModule,\n MatButtonModule,\n GalaxyButtonLoadingIndicatorModule,\n GalaxyPipesModule,\n EmailUII18nModule,\n TranslateModule,\n MatDialogModule,\n GalaxyFormFieldModule,\n ],\n exports: [NewDomainDialogComponent],\n})\nexport class NewDomainDialogModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DomainsComponent } from './domains.component';\nimport { GalaxyEmptyStateModule } from '@vendasta/galaxy/empty-state';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { DomainInfoCardModule } from '../domain-info-card/domain-info-card.module';\nimport { NewDomainDialogModule } from '../new-domain-dialog/new-domain-dialog.module';\nimport { CanAddDomainPipe } from './can-add-domain.pipe';\nimport { EmailUII18nModule } from '../../../src/lib/i18n/email-ui-i18n.module';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@NgModule({\n declarations: [DomainsComponent, CanAddDomainPipe],\n imports: [\n CommonModule,\n GalaxyEmptyStateModule,\n MatIconModule,\n MatButtonModule,\n DomainInfoCardModule,\n NewDomainDialogModule,\n EmailUII18nModule,\n TranslateModule,\n ],\n exports: [DomainsComponent],\n})\nexport class DomainsModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { EmailUsernameInputComponent } from './email-username-input.component';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatIconModule } from '@angular/material/icon';\nimport { GalaxyTooltipModule } from '@vendasta/galaxy/tooltip';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { EmailUII18nModule } from '../src/lib/i18n/email-ui-i18n.module';\n\n@NgModule({\n declarations: [EmailUsernameInputComponent],\n imports: [\n CommonModule, //\n GalaxyFormFieldModule,\n MatInputModule,\n ReactiveFormsModule,\n MatIconModule,\n GalaxyTooltipModule,\n TranslateModule,\n EmailUII18nModule,\n ],\n exports: [EmailUsernameInputComponent],\n})\nexport class EmailUsernameInputModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DomainInfoDialogComponent } from './domain-info-dialog.component';\nimport { DomainInfoCardModule } from '../domain-info-card/domain-info-card.module';\n\n@NgModule({\n declarations: [DomainInfoDialogComponent],\n imports: [CommonModule, DomainInfoCardModule],\n})\nexport class DomainInfoDialogModule {}\n","import { NgModule } from '@angular/core';\nimport { DomainsDialogComponent } from './domains-dialog.component';\nimport { GalaxyEmptyStateModule } from '@vendasta/galaxy/empty-state';\nimport { MatIconModule } from '@angular/material/icon';\nimport { GalaxyLoadingSpinnerModule } from '@vendasta/galaxy/loading-spinner';\nimport { GalaxyPipesModule } from '@vendasta/galaxy/pipes';\nimport { CommonModule } from '@angular/common';\nimport { DomainStatusAndNameComponent } from './domain-status-and-name/domain-status-and-name.component';\nimport { DomainStatusIconModule } from '../domain-status-icon/domain-status-icon.module';\nimport { MatButtonModule } from '@angular/material/button';\nimport { DomainInfoDialogModule } from '../domain-info-dialog/domain-info-dialog.module';\nimport { EmailUII18nModule } from '../../../src/lib/i18n/email-ui-i18n.module';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatListModule } from '@angular/material/list';\n\n@NgModule({\n declarations: [DomainStatusAndNameComponent, DomainsDialogComponent],\n imports: [\n CommonModule,\n GalaxyPipesModule,\n GalaxyEmptyStateModule,\n GalaxyLoadingSpinnerModule,\n MatIconModule,\n DomainStatusIconModule,\n DomainInfoDialogModule,\n EmailUII18nModule,\n TranslateModule,\n MatDialogModule,\n MatListModule,\n MatButtonModule,\n ],\n})\nexport class DomainsDialogModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SenderInfoCardComponent } from './sender-info-card.component';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\nimport { GalaxyWrapModule } from '@vendasta/galaxy/galaxy-wrap';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { GalaxyInputModule } from '@vendasta/galaxy/input';\nimport { MatIconModule } from '@angular/material/icon';\nimport { EmailUsernameInputModule } from '../../../email-username-input/email-username-input.module';\nimport { SendersService } from '@vendasta/email';\nimport { GalaxyPipesModule } from '@vendasta/galaxy/pipes';\nimport { GalaxyLoadingSpinnerModule } from '@vendasta/galaxy/loading-spinner';\nimport { GalaxyEmptyStateModule } from '@vendasta/galaxy/empty-state';\nimport { SenderInfoFormComponent } from './sender-info-form/sender-info-form.component';\nimport { MatButtonModule } from '@angular/material/button';\nimport { GalaxyTooltipModule } from '@vendasta/galaxy/tooltip';\nimport { GalaxyButtonLoadingIndicatorModule } from '@vendasta/galaxy/button-loading-indicator';\nimport { DomainsDialogModule } from '../domains-dialog/domains-dialog.module';\nimport { EmailUII18nModule } from '../../../src/lib/i18n/email-ui-i18n.module';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { MatCardModule } from '@angular/material/card';\nimport { GalaxyAlertModule } from '@vendasta/galaxy/alert';\nimport { EmailForwardingInfoComponent } from './sender-info-form/email-forwarding-info/email-forwarding-info.component';\n\n@NgModule({\n declarations: [SenderInfoCardComponent, SenderInfoFormComponent],\n imports: [\n CommonModule,\n MatExpansionModule,\n MatCardModule,\n ReactiveFormsModule,\n MatInputModule,\n GalaxyWrapModule,\n GalaxyFormFieldModule,\n MatRadioModule,\n FormsModule,\n GalaxyInputModule,\n MatIconModule,\n EmailUsernameInputModule,\n GalaxyPipesModule,\n GalaxyLoadingSpinnerModule,\n GalaxyEmptyStateModule,\n MatButtonModule,\n GalaxyTooltipModule,\n GalaxyButtonLoadingIndicatorModule,\n DomainsDialogModule,\n EmailUII18nModule,\n TranslateModule,\n GalaxyAlertModule,\n EmailForwardingInfoComponent,\n ],\n exports: [SenderInfoCardComponent],\n providers: [SendersService],\n})\nexport class SenderInfoCardModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DomainAuthorizationComponent } from './domain-authorization.component';\nimport { DomainCacheService } from './domain-cache.service';\n\nimport { GalaxyEmptyStateModule } from '@vendasta/galaxy/empty-state';\nimport { MatIconModule } from '@angular/material/icon';\nimport { GalaxyPipesModule } from '@vendasta/galaxy/pipes';\nimport { GalaxyLoadingSpinnerModule } from '@vendasta/galaxy/loading-spinner';\nimport { DomainsModule } from './domains/domains.module';\nimport { SenderInfoCardModule } from './sender-info-card/sender-info-card.module';\nimport { EmailUII18nModule } from '../../src/lib/i18n/email-ui-i18n.module';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@NgModule({\n declarations: [DomainAuthorizationComponent],\n imports: [\n CommonModule,\n GalaxyEmptyStateModule,\n MatIconModule,\n GalaxyPipesModule,\n GalaxyLoadingSpinnerModule,\n DomainsModule,\n SenderInfoCardModule,\n EmailUII18nModule,\n TranslateModule,\n ],\n providers: [DomainCacheService],\n exports: [DomainAuthorizationComponent],\n})\nexport class DomainAuthorizationModule {}\n","import { Component, Inject, Injectable } from '@angular/core';\nimport { SavedState, UnsavedDataHandler, UNSAVED_DATA_HANDLER_TOKEN } from '@galaxy/email-ui/domain-authorization';\nimport { SenderType } from '@vendasta/email';\nimport { Observable } from 'rxjs';\nimport { PARTNER_ID_INJECTION_TOKEN } from '../core/constants';\nimport { ComponentCanDeactivate } from '../core/guards/pending-changes-guard.service';\n\n@Injectable()\nclass UnsavedChanges implements UnsavedDataHandler {\n private hasUnsavedChanges = false;\n\n canDeactivate(): boolean {\n return !this.hasUnsavedChanges;\n }\n\n notifyStateChanged(newState: SavedState): void {\n switch (newState) {\n case SavedState.SAFE_TO_NAVIGATE_AWAY:\n this.hasUnsavedChanges = false;\n return;\n case SavedState.HAS_UNSAVED_CHANGES:\n this.hasUnsavedChanges = true;\n return;\n default:\n throw new Error(`Unexpected SavedState: ${newState}`);\n }\n }\n}\n\n@Component({\n templateUrl: './email-settings.component.html',\n styleUrls: ['./email-settings.component.scss'],\n providers: [UnsavedChanges, { provide: UNSAVED_DATA_HANDLER_TOKEN, useExisting: UnsavedChanges }],\n standalone: false,\n})\nexport class EmailSettingsComponent extends ComponentCanDeactivate {\n readonly SenderTypePartner = SenderType.SENDER_TYPE_PARTNER;\n\n constructor(\n @Inject(PARTNER_ID_INJECTION_TOKEN) readonly partnerId$: Observable,\n private readonly unsavedChanges: UnsavedChanges,\n ) {\n super();\n }\n\n canDeactivate(): boolean | Observable {\n return this.unsavedChanges.canDeactivate();\n }\n}\n","\n \n {{ 'EMAIL_SETTINGS.TITLE' | translate }}\n \n \n \n \n\n","import * as i0 from '@angular/core';\nimport { Injectable } from '@angular/core';\nimport * as i1 from '@angular/common/http';\nimport { HttpHeaders } from '@angular/common/http';\nimport { map } from 'rxjs/operators';\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\nvar Origins = /*#__PURE__*/function (Origins) {\n Origins[Origins[\"ORIGINS_UNSPECIFIED\"] = 0] = \"ORIGINS_UNSPECIFIED\";\n Origins[Origins[\"ORIGINS_COMMUNITY_WP\"] = 1] = \"ORIGINS_COMMUNITY_WP\";\n Origins[Origins[\"ORIGINS_ACADEMY_WP\"] = 2] = \"ORIGINS_ACADEMY_WP\";\n Origins[Origins[\"ORIGINS_RESOURCE_CENTER_ZENDESK\"] = 3] = \"ORIGINS_RESOURCE_CENTER_ZENDESK\";\n Origins[Origins[\"ORIGINS_VIDEO_WP\"] = 4] = \"ORIGINS_VIDEO_WP\";\n Origins[Origins[\"ORIGINS_BP_MEMBERS_WP\"] = 5] = \"ORIGINS_BP_MEMBERS_WP\";\n Origins[Origins[\"ORIGINS_ACADEMY_LESSON_WP\"] = 6] = \"ORIGINS_ACADEMY_LESSON_WP\";\n Origins[Origins[\"ORIGINS_BP_GROUP_WP\"] = 7] = \"ORIGINS_BP_GROUP_WP\";\n Origins[Origins[\"ORIGINS_PODCASTS_WP\"] = 8] = \"ORIGINS_PODCASTS_WP\";\n Origins[Origins[\"ORIGINS_OPEN_API\"] = 9] = \"ORIGINS_OPEN_API\";\n Origins[Origins[\"ORIGINS_COMMUNITY_POST_ZENDESK\"] = 10] = \"ORIGINS_COMMUNITY_POST_ZENDESK\";\n return Origins;\n}(Origins || {});\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums Index.\n// *********************************\n\nfunction enumStringToValue$2(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass ArticleStub {\n static fromProto(proto) {\n let m = new ArticleStub();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.title !== 'undefined') {\n toReturn['title'] = this.title;\n }\n if (typeof this.body !== 'undefined') {\n toReturn['body'] = this.body;\n }\n if (typeof this.origin !== 'undefined') {\n toReturn['origin'] = this.origin;\n }\n if (typeof this.link !== 'undefined') {\n toReturn['link'] = this.link;\n }\n if (typeof this.thumbnail !== 'undefined') {\n toReturn['thumbnail'] = this.thumbnail;\n }\n return toReturn;\n }\n}\nclass FilterParams {\n static fromProto(proto) {\n let m = new FilterParams();\n m = Object.assign(m, proto);\n if (proto.origins) {\n m.origins = proto.origins.map(v => enumStringToValue$2(Origins, v));\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.origins !== 'undefined') {\n toReturn['origins'] = this.origins;\n }\n return toReturn;\n }\n}\nclass PagedRequestOptions {\n static fromProto(proto) {\n let m = new PagedRequestOptions();\n m = Object.assign(m, proto);\n if (proto.pageSize) {\n m.pageSize = parseInt(proto.pageSize, 10);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.cursor !== 'undefined') {\n toReturn['cursor'] = this.cursor;\n }\n if (typeof this.pageSize !== 'undefined') {\n toReturn['pageSize'] = this.pageSize;\n }\n return toReturn;\n }\n}\nclass PagedResponseMetadata {\n static fromProto(proto) {\n let m = new PagedResponseMetadata();\n m = Object.assign(m, proto);\n if (proto.totalResults) {\n m.totalResults = parseInt(proto.totalResults, 10);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.nextCursor !== 'undefined') {\n toReturn['nextCursor'] = this.nextCursor;\n }\n if (typeof this.hasMore !== 'undefined') {\n toReturn['hasMore'] = this.hasMore;\n }\n if (typeof this.totalResults !== 'undefined') {\n toReturn['totalResults'] = this.totalResults;\n }\n return toReturn;\n }\n}\nclass SearchArticleRequest {\n static fromProto(proto) {\n let m = new SearchArticleRequest();\n m = Object.assign(m, proto);\n if (proto.filters) {\n m.filters = FilterParams.fromProto(proto.filters);\n }\n if (proto.pagingOptions) {\n m.pagingOptions = PagedRequestOptions.fromProto(proto.pagingOptions);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.searchTerm !== 'undefined') {\n toReturn['searchTerm'] = this.searchTerm;\n }\n if (typeof this.locale !== 'undefined') {\n toReturn['locale'] = this.locale;\n }\n if (typeof this.filters !== 'undefined' && this.filters !== null) {\n toReturn['filters'] = 'toApiJson' in this.filters ? this.filters.toApiJson() : this.filters;\n }\n if (typeof this.pagingOptions !== 'undefined' && this.pagingOptions !== null) {\n toReturn['pagingOptions'] = 'toApiJson' in this.pagingOptions ? this.pagingOptions.toApiJson() : this.pagingOptions;\n }\n return toReturn;\n }\n}\nclass SearchArticleResponse {\n static fromProto(proto) {\n let m = new SearchArticleResponse();\n m = Object.assign(m, proto);\n if (proto.articles) {\n m.articles = proto.articles.map(ArticleStub.fromProto);\n }\n if (proto.pagingMetadata) {\n m.pagingMetadata = PagedResponseMetadata.fromProto(proto.pagingMetadata);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.articles !== 'undefined' && this.articles !== null) {\n toReturn['articles'] = 'toApiJson' in this.articles ? this.articles.toApiJson() : this.articles;\n }\n if (typeof this.pagingMetadata !== 'undefined' && this.pagingMetadata !== null) {\n toReturn['pagingMetadata'] = 'toApiJson' in this.pagingMetadata ? this.pagingMetadata.toApiJson() : this.pagingMetadata;\n }\n return toReturn;\n }\n}\nfunction enumStringToValue$1(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass ArticleHiddenToggleRequest {\n static fromProto(proto) {\n let m = new ArticleHiddenToggleRequest();\n m = Object.assign(m, proto);\n if (proto.origin) {\n m.origin = enumStringToValue$1(Origins, proto.origin);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.articleId !== 'undefined') {\n toReturn['articleId'] = this.articleId;\n }\n if (typeof this.locale !== 'undefined') {\n toReturn['locale'] = this.locale;\n }\n if (typeof this.origin !== 'undefined') {\n toReturn['origin'] = this.origin;\n }\n return toReturn;\n }\n}\nfunction enumStringToValue(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass Article {\n static fromProto(proto) {\n let m = new Article();\n m = Object.assign(m, proto);\n if (proto.origin) {\n m.origin = enumStringToValue(Origins, proto.origin);\n }\n if (proto.sourceModified) {\n m.sourceModified = new Date(proto.sourceModified);\n }\n if (proto.voteCount) {\n m.voteCount = parseInt(proto.voteCount, 10);\n }\n if (proto.voteSum) {\n m.voteSum = parseInt(proto.voteSum, 10);\n }\n if (proto.replyCount) {\n m.replyCount = parseInt(proto.replyCount, 10);\n }\n if (proto.viewCount) {\n m.viewCount = parseInt(proto.viewCount, 10);\n }\n if (proto.answerCount) {\n m.answerCount = parseInt(proto.answerCount, 10);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.articleId !== 'undefined') {\n toReturn['articleId'] = this.articleId;\n }\n if (typeof this.locale !== 'undefined') {\n toReturn['locale'] = this.locale;\n }\n if (typeof this.origin !== 'undefined') {\n toReturn['origin'] = this.origin;\n }\n if (typeof this.url !== 'undefined') {\n toReturn['url'] = this.url;\n }\n if (typeof this.title !== 'undefined') {\n toReturn['title'] = this.title;\n }\n if (typeof this.content !== 'undefined') {\n toReturn['content'] = this.content;\n }\n if (typeof this.tags !== 'undefined') {\n toReturn['tags'] = this.tags;\n }\n if (typeof this.sourceModified !== 'undefined' && this.sourceModified !== null) {\n toReturn['sourceModified'] = 'toApiJson' in this.sourceModified ? this.sourceModified.toApiJson() : this.sourceModified;\n }\n if (typeof this.voteCount !== 'undefined') {\n toReturn['voteCount'] = this.voteCount;\n }\n if (typeof this.voteSum !== 'undefined') {\n toReturn['voteSum'] = this.voteSum;\n }\n if (typeof this.promoted !== 'undefined') {\n toReturn['promoted'] = this.promoted;\n }\n if (typeof this.replyCount !== 'undefined') {\n toReturn['replyCount'] = this.replyCount;\n }\n if (typeof this.viewCount !== 'undefined') {\n toReturn['viewCount'] = this.viewCount;\n }\n if (typeof this.solved !== 'undefined') {\n toReturn['solved'] = this.solved;\n }\n if (typeof this.answerCount !== 'undefined') {\n toReturn['answerCount'] = this.answerCount;\n }\n if (typeof this.thumnailLinkUrl !== 'undefined') {\n toReturn['thumnailLinkUrl'] = this.thumnailLinkUrl;\n }\n return toReturn;\n }\n}\nclass DeleteArticleRequest {\n static fromProto(proto) {\n let m = new DeleteArticleRequest();\n m = Object.assign(m, proto);\n if (proto.origin) {\n m.origin = enumStringToValue(Origins, proto.origin);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.articleId !== 'undefined') {\n toReturn['articleId'] = this.articleId;\n }\n if (typeof this.locale !== 'undefined') {\n toReturn['locale'] = this.locale;\n }\n if (typeof this.origin !== 'undefined') {\n toReturn['origin'] = this.origin;\n }\n return toReturn;\n }\n}\nclass DirectIndexArticleRequest {\n static fromProto(proto) {\n let m = new DirectIndexArticleRequest();\n m = Object.assign(m, proto);\n if (proto.article) {\n m.article = Article.fromProto(proto.article);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.article !== 'undefined' && this.article !== null) {\n toReturn['article'] = 'toApiJson' in this.article ? this.article.toApiJson() : this.article;\n }\n return toReturn;\n }\n}\nclass IndexArticleRequest {\n static fromProto(proto) {\n let m = new IndexArticleRequest();\n m = Object.assign(m, proto);\n if (proto.origin) {\n m.origin = enumStringToValue(Origins, proto.origin);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.articleId !== 'undefined') {\n toReturn['articleId'] = this.articleId;\n }\n if (typeof this.locale !== 'undefined') {\n toReturn['locale'] = this.locale;\n }\n if (typeof this.origin !== 'undefined') {\n toReturn['origin'] = this.origin;\n }\n return toReturn;\n }\n}\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Objects Index.\n// *********************************\n\nclass PagedResponse {\n constructor(results, nextCursor, hasMore, totalResults) {\n this.results = results;\n this.nextCursor = nextCursor;\n this.hasMore = hasMore;\n this.totalResults = totalResults;\n }\n}\nconst environment = (window ? window['environment'] : 'prod') ?? 'prod';\nconst hostMap = {\n 'local': 'help-center-api.vendasta-local.com',\n 'test': '',\n 'demo': 'help-center-demo.apigateway.co',\n 'prod': 'help-center-prod.apigateway.co',\n 'production': 'help-center-prod.apigateway.co'\n};\nlet HostService = /*#__PURE__*/(() => {\n class HostService {\n get host() {\n return hostMap[environment.toLowerCase()];\n }\n get hostWithScheme() {\n return 'https://' + this.host;\n }\n }\n HostService.ɵfac = function HostService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || HostService)();\n };\n HostService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: HostService,\n factory: HostService.ɵfac,\n providedIn: 'root'\n });\n return HostService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nlet HelpCenterApiService = /*#__PURE__*/(() => {\n class HelpCenterApiService {\n constructor(http, hostService) {\n this.http = http;\n this.hostService = hostService;\n this._host = this.hostService.hostWithScheme;\n }\n apiOptions() {\n return {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n }),\n withCredentials: true\n };\n }\n searchArticle(r) {\n const request = r.toApiJson ? r : new SearchArticleRequest(r);\n return this.http.post(this._host + \"/helpcenter.v1.HelpCenter/SearchArticle\", request.toApiJson(), this.apiOptions()).pipe(map(resp => SearchArticleResponse.fromProto(resp)));\n }\n indexArticle(r) {\n const request = r.toApiJson ? r : new IndexArticleRequest(r);\n return this.http.post(this._host + \"/helpcenter.v1.HelpCenter/IndexArticle\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n directIndexArticle(r) {\n const request = r.toApiJson ? r : new DirectIndexArticleRequest(r);\n return this.http.post(this._host + \"/helpcenter.v1.HelpCenter/DirectIndexArticle\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n deleteArticle(r) {\n const request = r.toApiJson ? r : new DeleteArticleRequest(r);\n return this.http.post(this._host + \"/helpcenter.v1.HelpCenter/DeleteArticle\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n }\n HelpCenterApiService.ɵfac = function HelpCenterApiService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || HelpCenterApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n HelpCenterApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: HelpCenterApiService,\n factory: HelpCenterApiService.ɵfac,\n providedIn: 'root'\n });\n return HelpCenterApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet HelpCenterService = /*#__PURE__*/(() => {\n class HelpCenterService {\n constructor(api) {\n this.api = api;\n }\n search(searchTerm, locale, filters, cursor, pageSize) {\n return this.api.searchArticle({\n searchTerm: searchTerm,\n locale: locale,\n filters: filters,\n pagingOptions: {\n cursor: cursor,\n pageSize: pageSize\n }\n }).pipe(map(resp => new PagedResponse(resp.articles, resp.pagingMetadata.nextCursor, resp.pagingMetadata.hasMore, resp.pagingMetadata.totalResults)));\n }\n }\n HelpCenterService.ɵfac = function HelpCenterService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || HelpCenterService)(i0.ɵɵinject(HelpCenterApiService));\n };\n HelpCenterService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: HelpCenterService,\n factory: HelpCenterService.ɵfac,\n providedIn: 'root'\n });\n return HelpCenterService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { ArticleHiddenToggleRequest, ArticleStub, DeleteArticleRequest, FilterParams, HelpCenterService, IndexArticleRequest, Origins, PagedResponse, SearchArticleRequest, SearchArticleResponse };\n","export interface HelpCase {\n id: string;\n name: string;\n subTitle?: string;\n image: string;\n imageAlt?: string;\n newBadge?: boolean;\n}\n\nexport interface HelpPage {\n header?: string;\n cases?: HelpCase[];\n url?: string;\n}\n\nexport enum HelpCaseId {\n ACADEMY = 'academy',\n ARTICLES = 'articles',\n BOOK_MEETING = 'bookMeeting',\n CALL_US = 'callUs',\n COMMUNITY = 'community',\n CONTACT_US = 'contactUs',\n LIVE_CHAT = 'liveChat',\n MAIN = 'main',\n SEARCH = 'search',\n SUBMIT_TICKET = 'submitTicket',\n TICKET_HISTORY = 'ticketHistory',\n CANNY = 'canny',\n}\n\nexport const HELP_CASES: { [helpCaseId: string]: HelpCase } = {\n academy: {\n id: HelpCaseId.ACADEMY,\n name: 'HELP_CENTER.CASES.ACADEMY',\n image: '/images/help-center/academy.svg',\n imageAlt: 'Academy',\n },\n articles: {\n id: HelpCaseId.ARTICLES,\n name: 'HELP_CENTER.CASES.ARTICLES',\n image: '/images/help-center/article.svg',\n imageAlt: 'Articles',\n },\n bookMeeting: {\n id: HelpCaseId.BOOK_MEETING,\n name: 'HELP_CENTER.CASES.BOOK_MEETING',\n image: '/images/help-center/bookMeet.svg',\n imageAlt: 'Book meeting',\n },\n callUs: {\n id: HelpCaseId.CALL_US,\n name: 'HELP_CENTER.CASES.CALL_US',\n image: '/images/help-center/callUs.svg',\n imageAlt: 'Call us',\n },\n community: {\n id: HelpCaseId.COMMUNITY,\n name: 'HELP_CENTER.CASES.COMMUNITY',\n image: '/images/help-center/globe.svg',\n imageAlt: 'Community',\n },\n contactUs: {\n id: HelpCaseId.CONTACT_US,\n name: 'HELP_CENTER.CASES.CONTACT_US',\n image: '/images/help-center/contactUs.svg',\n imageAlt: 'Contact us',\n },\n liveChat: {\n id: HelpCaseId.LIVE_CHAT,\n name: 'HELP_CENTER.CASES.LIVE_CHAT',\n image: '/images/help-center/liveChat.svg',\n imageAlt: 'Live chat',\n },\n submitTicket: {\n id: HelpCaseId.SUBMIT_TICKET,\n name: 'HELP_CENTER.CASES.SUBMIT_TICKET',\n image: '/images/help-center/ticket.svg',\n imageAlt: 'Submit ticket',\n },\n ticketHistory: {\n id: HelpCaseId.TICKET_HISTORY,\n name: 'HELP_CENTER.CASES.TICKET_HISTORY',\n image: '/images/help-center/ticketHistory.svg',\n imageAlt: 'Ticket history',\n },\n canny: {\n id: HelpCaseId.CANNY,\n name: 'HELP_CENTER.CASES.CANNY.FEEDBACK',\n image: '/images/help-center/map.svg',\n imageAlt: 'View our roadmap',\n },\n};\n\nexport const HELP_PAGES: { [caseId: string]: HelpPage } = {\n main: {\n header: 'HELP_CENTER.HEADERS.MAIN',\n cases: [\n HELP_CASES[HelpCaseId.ACADEMY],\n HELP_CASES[HelpCaseId.ARTICLES],\n HELP_CASES[HelpCaseId.COMMUNITY],\n HELP_CASES[HelpCaseId.CANNY],\n HELP_CASES[HelpCaseId.SUBMIT_TICKET],\n HELP_CASES[HelpCaseId.TICKET_HISTORY],\n ],\n },\n academy: {\n url: 'https://academy.vendasta.com/home/content/all',\n },\n community: {\n url: 'https://www.facebook.com/groups/vendasta',\n },\n articles: {\n url: 'https://support.vendasta.com',\n },\n submitTicket: {\n url: 'https://support.vendasta.com/hc/en-us/requests/new',\n },\n ticketHistory: {\n url: 'https://support.vendasta.com/hc/en-us/requests',\n },\n};\n","import { inject, Injectable, TemplateRef } from '@angular/core';\nimport { BehaviorSubject, map, Observable, publishReplay, refCount } from 'rxjs';\nimport {\n checkZendeskIsOpen,\n closeZendeskLauncher,\n getZendeskLauncher,\n openZendeskLauncher,\n probeForZendeskLauncherForSideDrawer,\n probeForZendeskLauncherThenClose,\n} from '../../../lib/zendesk';\n// eslint-disable-next-line @nx/enforce-module-boundaries\nimport { ViewModeService } from '@galaxy/conversation/core';\n\nexport interface HelpSideDrawerTemplateRef {\n id: string;\n templateRef: TemplateRef;\n}\n\n@Injectable()\nexport class HelpSideDrawerTemplateRefService {\n private templateMap = new Map>();\n private openTemplate$$ = new BehaviorSubject('');\n openTemplate$: Observable;\n open$: Observable;\n isZendeskOpen = false;\n\n private readonly viewModeService = inject(ViewModeService);\n\n constructor() {\n this.openTemplate$ = this.openTemplate$$.pipe(\n map((t) => {\n const templateRef = this.templateMap.get(t);\n const id = templateRef ? t : '';\n return {\n id: id,\n templateRef: templateRef,\n };\n }),\n publishReplay(1),\n refCount(),\n );\n\n this.open$ = this.openTemplate$$.pipe(map((a) => !!a));\n\n // Ensure the Help launcher is always hidden on app load\n const launcher = getZendeskLauncher();\n if (launcher) {\n closeZendeskLauncher();\n } else {\n probeForZendeskLauncherThenClose();\n }\n }\n\n registerTemplate(id: string, template: TemplateRef): void {\n this.templateMap.set(id, template);\n if (this.openTemplate$$.getValue() === id) {\n this.open(id);\n }\n }\n\n open(id: string): void {\n window.setTimeout(() => {\n this.openTemplate$$.next(id);\n this.isZendeskOpen = checkZendeskIsOpen();\n\n const launcher = getZendeskLauncher();\n if (launcher) {\n closeZendeskLauncher();\n } else {\n probeForZendeskLauncherForSideDrawer();\n }\n });\n }\n\n close(id?: string): void {\n if (id) {\n if (this.openTemplate$$.getValue() === id) {\n this.openTemplate$$.next('');\n }\n } else {\n this.openTemplate$$.next('');\n }\n\n const launcher = getZendeskLauncher();\n if (!!launcher && this.isZendeskOpen) {\n openZendeskLauncher();\n }\n }\n\n toggle(id: string): void {\n const launcher = getZendeskLauncher();\n // side drawer should be close if id is empty\n if (!id || this.openTemplate$$.getValue() === id) {\n this.openTemplate$$.next('');\n if (!!launcher && this.isZendeskOpen) {\n openZendeskLauncher();\n }\n } else {\n // only one side drawer can be open at a time\n this.viewModeService.close();\n this.openTemplate$$.next(id);\n this.isZendeskOpen = checkZendeskIsOpen();\n if (launcher) {\n closeZendeskLauncher();\n } else {\n probeForZendeskLauncherForSideDrawer();\n }\n }\n }\n\n showChat(id?: string): void {\n if (id) {\n if (this.openTemplate$$.getValue() === id) {\n this.openTemplate$$.next('');\n }\n } else {\n this.openTemplate$$.next('');\n }\n\n const launcher = getZendeskLauncher();\n if (launcher) {\n openZendeskLauncher();\n }\n }\n}\n","import { Component, Directive, HostBinding, Input } from '@angular/core';\nimport { HelpSideDrawerTemplateRefService } from '../help-side-drawer-template-ref.service';\n\n@Directive({\n selector: 'app-help-side-drawer-content, [app-help-side-drawer-content], [appHelpSideDrawerContent]',\n standalone: false,\n})\nexport class HelpSideDrawerContentDirective {\n @HostBinding('class') className = 'help-side-drawer-content';\n}\n\n@Directive({\n selector: 'app-help-side-drawer-footer, [app-help-side-drawer-footer], [appHelpSideDrawerFooter]',\n standalone: false,\n})\nexport class HelpSideDrawerFooterDirective {\n @HostBinding('class') className = 'help-side-drawer-footer';\n}\n\n@Directive({\n selector:\n 'app-help-side-drawer-pre-title-actions, [app-help-side-drawer-pre-title-actions], [appHelpSideDrawerPreTitleActions]',\n standalone: false,\n})\nexport class HelpSideDrawerPreTitleActionsDirective {\n @HostBinding('class') className = 'help-side-drawer-pre-title-actions';\n}\n\n@Directive({\n selector: 'app-help-side-drawer-title-actions, [app-help-side-drawer-title-actions], [appHelpSideDrawerTitleActions]',\n standalone: false,\n})\nexport class HelpSideDrawerTitleActionsDirective {\n @HostBinding('class') className = 'help-side-drawer-title-actions';\n}\n\n@Component({\n selector: 'app-help-closing-side-drawer',\n templateUrl: './help-closing-side-drawer.component.html',\n styleUrls: ['./help-closing-side-drawer.component.scss'],\n standalone: false,\n})\nexport class HelpClosingSideDrawerComponent {\n @Input()\n title: string;\n\n @Input()\n preventClose: boolean;\n\n constructor(private readonly helpSideDrawerTemplateRefService: HelpSideDrawerTemplateRefService) {}\n\n closeSideDrawer(): void {\n this.helpSideDrawerTemplateRefService.close();\n }\n}\n","
\n \n \n
\n \n
\n

{{ title }}

\n
\n \n
\n \n \n \n
\n
\n\n
\n \n
\n\n
\n \n
\n
\n","import { Component, Input, OnInit } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { SupportNumberService } from '../../common/help-menu';\nimport { getImageSrc } from '../../core/images';\nimport { HelpCase, HelpCaseId } from './help-center-cases';\n\n@Component({\n selector: 'app-help-case-card',\n templateUrl: './help-case-card.component.html',\n styleUrls: ['./help-case-card.component.scss'],\n standalone: false,\n})\nexport class HelpCaseCardComponent implements OnInit {\n @Input() helpCase: HelpCase;\n @Input() hasMeetingUrl: string;\n\n getImageSrc = getImageSrc;\n countryCode = 'US';\n phone$: Observable;\n\n constructor(private supportNumberService: SupportNumberService) {}\n\n ngOnInit(): void {\n if (this.helpCase?.id === HelpCaseId.CALL_US) {\n this.phone$ = this.supportNumberService.getSupportNumber();\n }\n }\n\n showCard(): boolean {\n return (\n this.helpCase.id !== HelpCaseId.BOOK_MEETING ||\n (this.helpCase.id === HelpCaseId.BOOK_MEETING && !!this.hasMeetingUrl)\n );\n }\n}\n","\n \n
\n
\n
\n \n
\n
\n
\n
\n {{ helpCase.name | translate }}\n
\n
\n
\n
\n \n
\n
\n
\n \n
\n
\n
\n \n
\n {{ helpCase.name | translate }}\n \n {{ phone | formatPhoneNumber : countryCode }}\n \n
\n
\n \n
\n {{ helpCase.name | translate }}\n \n {{ 'HELP_CENTER.NEW' | translate }}\n \n
\n
\n {{ helpCase.subTitle | translate }}\n
\n
\n
\n
\n
\n
\n","export interface Article {\n title: string;\n body: string;\n source: string;\n link: string;\n}\n\nexport enum Sources {\n ZD_RESOURCE_CENTER = 'Resource Center',\n ZD_COMMUNITY_POST = 'Community',\n CL_GROUP = 'Group',\n CL_PODCAST = 'Podcast',\n CL_VIDEO = 'Video',\n OPEN_API = 'Developer Center',\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { Article, Sources } from './help-center-articles';\n\n@Component({\n selector: 'app-help-search-card',\n templateUrl: './help-search-card.component.html',\n styleUrls: ['./help-search-card.component.scss'],\n standalone: false,\n})\nexport class HelpSearchCardComponent implements OnInit {\n @Input() article: Article;\n icon: string;\n\n ngOnInit(): void {\n switch (this.article.source) {\n case Sources.ZD_COMMUNITY_POST:\n this.icon = 'groups';\n break;\n case Sources.ZD_RESOURCE_CENTER:\n this.icon = 'article';\n break;\n case Sources.CL_PODCAST:\n this.icon = 'podcasts';\n break;\n case Sources.CL_VIDEO:\n this.icon = 'videocam';\n break;\n case Sources.CL_GROUP:\n this.icon = 'group';\n break;\n case Sources.OPEN_API:\n this.icon = 'api';\n break;\n default:\n this.icon = 'book';\n break;\n }\n }\n\n openArticle(): void {\n window.open(this.article.link, '_blank', 'noopener');\n }\n}\n","
\n
{{ article.title }}
\n
\n {{ article.body }}\n
\n
\n {{ this.icon }}\n
{{ article.source }}
\n
\n
\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\nimport { UntypedFormControl } from '@angular/forms';\nimport { CannyService, CHAT_SUPPORT_TIERS } from '@galaxy/partner';\nimport { TranslateService } from '@ngx-translate/core';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { FilterParams, HelpCenterService as HelpCenterAPIService, Origins } from '@vendasta/help-center';\nimport { Observable, Subscription, take } from 'rxjs';\nimport { finalize, map, switchMap } from 'rxjs/operators';\nimport { AppConfigService } from '../app-config.service';\nimport { AssignedSalespersonService } from '../assigned-salesperson/assigned-salesperson.service';\nimport { HelpCase, HelpCaseId, HELP_PAGES, HELP_CASES } from './help-case-card/help-center-cases';\nimport { Article } from './help-search-card/help-center-articles';\nimport { HelpSideDrawerTemplateRefService } from './help-side-drawer/help-side-drawer-template-ref.service';\nimport { SupportNumberService } from '../common/help-menu';\n\n@Component({\n selector: 'app-help-center',\n templateUrl: './help-center.component.html',\n styleUrls: ['./help-center.component.scss'],\n standalone: false,\n})\nexport class HelpCenterComponent implements OnInit, OnDestroy {\n @Input() partnerId: string;\n @Input() subscriptionTier: string;\n\n title: string = this.translate.instant('HELP_CENTER.TITLE');\n helpCases: HelpCase[] = HELP_PAGES[HelpCaseId.MAIN].cases;\n helpHeader: string = HELP_PAGES[HelpCaseId.MAIN].header;\n helpCaseHistory: string[] = [HelpCaseId.MAIN];\n currentPageId: string = HelpCaseId.MAIN;\n bookMeetingUrl$: Observable;\n subscriptions: Subscription[] = [];\n searchBar: UntypedFormControl = new UntypedFormControl();\n articles: Article[] = [];\n showLoadMore: boolean;\n cursor: string;\n\n isSearching = false;\n\n constructor(\n private readonly assignedSalespersonService: AssignedSalespersonService,\n private readonly helpCenterAPIService: HelpCenterAPIService,\n private helpSideDrawerTemplateRefService: HelpSideDrawerTemplateRefService,\n private translate: TranslateService,\n private cannyService: CannyService,\n private appConfigService: AppConfigService,\n private snackBarService: SnackbarService,\n private supportNumberService: SupportNumberService,\n ) {}\n\n ngOnInit(): void {\n this.subscriptions.push(\n this.supportNumberService\n .getSupportNumber()\n .pipe(take(1))\n .subscribe((number) => {\n if (number) {\n if (this.helpCases.find((hc) => hc.id === HelpCaseId.CALL_US) === undefined) {\n this.helpCases.unshift(HELP_CASES[HelpCaseId.CALL_US]);\n }\n }\n }),\n );\n\n // if the partner subscription tier is part of the standard support tiers, then add live chat to the help cases\n if (CHAT_SUPPORT_TIERS.includes(this.subscriptionTier)) {\n if (this.helpCases.find((hc) => hc.id === HelpCaseId.LIVE_CHAT) === undefined) {\n this.helpCases.push(HELP_CASES[HelpCaseId.LIVE_CHAT]);\n }\n }\n this.bookMeetingUrl$ = this.assignedSalespersonService.bookMeetingUrl$;\n\n this.subscriptions.push(\n this.bookMeetingUrl$.pipe(take(1)).subscribe((number) => {\n if (number) {\n if (this.helpCases.find((hc) => hc.id === HelpCaseId.BOOK_MEETING) === undefined) {\n this.helpCases.push(HELP_CASES[HelpCaseId.BOOK_MEETING]);\n }\n }\n }),\n );\n\n this.isSearching = false;\n this.cursor = '';\n }\n\n ngOnDestroy(): void {\n this.subscriptions.forEach((s) => s.unsubscribe());\n }\n\n displaySearch(): boolean {\n return this.currentPageId === HelpCaseId.MAIN || this.currentPageId === HelpCaseId.SEARCH;\n }\n\n search(onKeyUp = true): void {\n if (this.searchBar.value) {\n this.isSearching = true;\n if (onKeyUp) {\n this.articles = [];\n }\n\n const searchFilters: FilterParams = new FilterParams({\n origins: [\n Origins.ORIGINS_RESOURCE_CENTER_ZENDESK,\n Origins.ORIGINS_COMMUNITY_POST_ZENDESK,\n Origins.ORIGINS_PODCASTS_WP,\n Origins.ORIGINS_VIDEO_WP,\n Origins.ORIGINS_OPEN_API,\n ],\n });\n this.helpCenterAPIService\n .search(this.searchBar.value, 'en-us', searchFilters, this.cursor, 30)\n .pipe(\n map((resp) => {\n if (resp) {\n resp.results.forEach((r) => {\n // This keeps the types generic while we have no duplicate types from different sources\n r.origin = r.origin.replace(/(Conquer Local )|(Zendesk )/, '');\n this.articles.push(
{ title: r.title, body: r.body, source: r.origin, link: r.link });\n });\n this.cursor = resp.nextCursor;\n this.showLoadMore = resp.hasMore;\n }\n if (this.currentPageId !== HelpCaseId.SEARCH) {\n this.currentPageId = HelpCaseId.SEARCH;\n this.helpCaseHistory.push(HelpCaseId.SEARCH);\n }\n return this.articles;\n }),\n finalize(() => {\n this.isSearching = false;\n }),\n )\n .subscribe();\n }\n }\n\n loadMoreClicked(): void {\n this.search(false);\n }\n\n handleHelpCaseClick(caseId: string): void {\n if (caseId === HelpCaseId.LIVE_CHAT) {\n this.helpSideDrawerTemplateRefService.showChat();\n return;\n }\n if (caseId === HelpCaseId.BOOK_MEETING) {\n this.subscriptions.push(\n this.bookMeetingUrl$.pipe(map((url) => window.open(url, '_blank', 'noopener'))).subscribe(),\n );\n }\n if (caseId === HelpCaseId.CANNY) {\n this.openCanny();\n return;\n }\n if (HELP_PAGES[caseId]) {\n if (HELP_PAGES[caseId].url) {\n window.open(HELP_PAGES[caseId].url, '_blank', 'noopener');\n } else {\n this.helpHeader = HELP_PAGES[caseId].header;\n this.helpCases = HELP_PAGES[caseId].cases;\n if (caseId !== HelpCaseId.MAIN && caseId !== this.currentPageId) {\n this.currentPageId = caseId;\n this.helpCaseHistory.push(caseId);\n }\n }\n }\n }\n\n back(): void {\n this.helpCaseHistory.pop();\n this.currentPageId = this.helpCaseHistory.slice(-1)[0];\n this.handleHelpCaseClick(this.currentPageId);\n }\n\n openCanny(): void {\n this.appConfigService.config$\n .pipe(\n take(1),\n switchMap((appConfig) => {\n return this.cannyService.getSingleSignOn(appConfig.unifiedUserId);\n }),\n )\n .subscribe({\n next: (ssoConfig) => {\n window.open(\n this.buildCannyRedirectUrl(ssoConfig.token, ssoConfig.companyId, `https://${ssoConfig.roadmapDomain}`),\n '_blank',\n 'noopener',\n );\n },\n error: () => {\n this.snackBarService.openErrorSnack(this.translate.instant('HELP_CENTER.ERROR'));\n },\n });\n }\n\n buildCannyRedirectUrl(ssoToken: string, companyId: string, redirect: string): string {\n return `https://canny.io/api/redirects/sso?companyID=${companyId}&ssoToken=${ssoToken}&redirect=${redirect}`;\n }\n}\n","\n \n \n \n\n \n \n \n
\n
\n
\n \n
\n \n {{ helpHeader | translate }}\n \n
\n \n
\n
\n search_off\n
\n {{ 'HELP_CENTER.SEARCH.NO_RESULTS.TITLE' | translate }}\n
\n {{ 'HELP_CENTER.SEARCH.NO_RESULTS.DESCRIPTION' | translate }}\n \n {{ 'HELP_CENTER.SEARCH.NO_RESULTS.CONTACT_US' | translate }}\n \n
\n
\n \n
\n
\n \n \n \n
\n \n
\n
\n {{ 'HELP_CENTER.SEARCH.RESULTS.DESCRIPTION' | translate }}\n \n {{ 'HELP_CENTER.SEARCH.RESULTS.CONTACT_US' | translate }}\n \n
\n
\n
\n
\n \n
\n
\n \n \n \n
\n
\n
\n
\n
\n
\n
\n\n\n \n\n","import { HttpClient, HttpErrorResponse, HttpHeaders } from '@angular/common/http';\nimport { Component, OnInit } from '@angular/core';\nimport { NgForm } from '@angular/forms';\nimport { ActivatedRoute, ParamMap, Router } from '@angular/router';\nimport { SessionService } from '@galaxy/core';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { IAMService } from '@vendasta/iam';\nimport { Observable, of } from 'rxjs';\nimport { catchError, map, take } from 'rxjs/operators';\nimport { environment } from '../../globals';\n\n@Component({\n selector: 'app-local-login',\n styleUrls: ['./local-login.component.scss'],\n templateUrl: './local-login.component.html',\n standalone: false,\n})\nexport class LocalLoginComponent implements OnInit {\n email: string;\n password: string;\n partnerId: string;\n sessionToken: string;\n loading: boolean;\n\n environment = environment;\n\n constructor(\n private iamService: IAMService,\n private snackbarService: SnackbarService,\n private sessionService: SessionService,\n private http: HttpClient,\n private router: Router,\n private route: ActivatedRoute,\n ) {}\n\n ngOnInit(): void {\n this.route.queryParamMap.pipe(take(1)).subscribe((paramMap: ParamMap) => {\n if (paramMap.get('session_id')) {\n this.signIn(paramMap.get('session_id'));\n }\n\n if (paramMap.get('error')) {\n const errorStatus = paramMap.get('status');\n this.handleError(errorStatus);\n\n this.router.navigate(['/login'], {});\n }\n });\n }\n\n handleError(statusCode: number | string): void {\n if (statusCode === '404' || statusCode === 404) {\n this.snackbarService.openErrorSnack('User not found.');\n } else if (statusCode === '401' || statusCode === 401) {\n this.snackbarService.openErrorSnack('Incorrect email/password.');\n } else if (statusCode === '403' || statusCode === 403) {\n this.snackbarService.openErrorSnack(\"Superadmins can't use email/password. Please sign in with google.\");\n } else {\n this.snackbarService.openErrorSnack('An error occured');\n }\n }\n\n private signIn(sessionId: string): void {\n this.sessionService.setSessionId(sessionId);\n this.loading = true;\n this.createSession(sessionId).subscribe(\n () => {\n this.loading = false;\n this.redirectToNextUrl();\n },\n (err) => {\n this.snackbarService.openErrorSnack(`Invalid login: ${err.message}`);\n this.loading = false;\n },\n );\n }\n\n private redirectToNextUrl(): void {\n this.route.queryParamMap.pipe(take(1)).subscribe((paramMap: ParamMap) => {\n const nextUrl = paramMap.get('next_url');\n if (nextUrl) {\n window.location.href = nextUrl;\n } else {\n window.location.href = '/';\n }\n });\n }\n\n login(form: NgForm): void {\n if (this.sessionToken) {\n this.signIn(this.sessionToken);\n return;\n }\n if (!form.valid) {\n return;\n }\n this.iamService\n .login(this.email, this.password)\n .pipe(\n take(1),\n catchError((e: HttpErrorResponse) => {\n this.handleError(e.status);\n return of('');\n }),\n )\n .subscribe((sessionId: string) => {\n if (sessionId) {\n this.signIn(sessionId);\n }\n });\n }\n\n loginWithGoogle(): void {\n this.iamService.ssoLogin(window.location.href);\n }\n\n createSession(iamSession: string): Observable {\n let params = `sessionId=${iamSession}`;\n\n if (this.partnerId) {\n this.partnerId = this.partnerId.toUpperCase();\n params += `&partnerId=${this.partnerId}`;\n }\n\n return this.http\n .post('/_ajax/v1/create-session', params, {\n headers: new HttpHeaders({\n 'content-type': 'application/x-www-form-urlencoded; charset=UTF-8',\n }),\n })\n .pipe(map(() => true));\n }\n}\n","
\n @if (loading) {\n
\n \n Signing in...\n
\n } @else {\n
Local Development - {{ environment | titlecase }}
\n\n
\n \"Vendasta\"\n\n
\n \n Email\n \n \n\n \n Password\n \n \n\n
\n or\n
\n\n \n\n \n Partner ID\n \n \n\n \n Session Token\n \n \n\n \n
\n\n
\n or\n
\n\n \n
\n }\n
\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { LocalLoginComponent } from './local-login.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n MatInputModule,\n MatButtonModule,\n MatProgressSpinnerModule,\n GalaxyFormFieldModule,\n ],\n declarations: [LocalLoginComponent],\n exports: [LocalLoginComponent],\n providers: [],\n})\nexport class LocalLoginModule {}\n","import { Component } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { Router } from '@angular/router';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GalaxyEmptyStateModule } from '@vendasta/galaxy/empty-state';\nimport { GalaxyPageModule } from '@vendasta/galaxy/page';\n\n@Component({\n imports: [GalaxyPageModule, GalaxyEmptyStateModule, MatIconModule, TranslateModule],\n templateUrl: 'page-not-found.component.html',\n})\nexport class PageNotFoundComponent {\n constructor(private router: Router) {\n // Notifications does not support auxilliary routes (or secondary routes) and URL encodes them.\n // This will decode the encoded URL. This is temporary as solution should be done in notificaitons.\n const url = this.router.url.replace(/%28(.*?)%29/g, '($1)');\n if (url !== this.router.url) {\n this.router.navigateByUrl(url);\n }\n }\n}\n","\n \n \n error\n \n {{ 'PAGE_NOT_FOUND.TITLE' | translate }}\n

{{ 'PAGE_NOT_FOUND.DESCRIPTION' | translate }}

\n
\n
\n","import { Injectable } from '@angular/core';\nimport { Router, UrlTree } from '@angular/router';\nimport { PipelinePageUrls, PipelineSwitcherService } from '@vendasta/sales-ui';\nimport { Observable } from 'rxjs';\nimport { map, take } from 'rxjs/operators';\n\n@Injectable({ providedIn: 'root' })\nexport class PipelineViewRouterGuard {\n constructor(\n private readonly pipelineSwitcherService: PipelineSwitcherService,\n private readonly router: Router,\n ) {}\n\n canActivate(): Observable {\n return this.pipelineSwitcherService.cachedPipelinePage$.pipe(\n take(1),\n map((page) => {\n if (page === PipelinePageUrls.BOARD) {\n return this.router.createUrlTree([PipelinePageUrls.BOARD]);\n }\n // Wil take them to the originally requested url (/pipeline/table)\n return true;\n }),\n );\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { combineLatest } from 'rxjs';\nimport { filter, first, map } from 'rxjs/operators';\n\n/* TODO: delete this component\nThis is just a temporary component used to proxy to the new activate products url.\nAccount create currently sends to a different url, but it is in Knockout land.\n */\n@Component({\n selector: 'app-product-order-form-proxy',\n template: ``,\n standalone: false,\n})\nexport class ProductOrderFormProxyComponent implements OnInit {\n constructor(\n private route: ActivatedRoute,\n private router: Router,\n ) {}\n\n ngOnInit(): void {\n const accountGroupId$ = this.route.queryParams.pipe(\n map((params) => params.agid || params.accountGroupId),\n filter(Boolean),\n first(),\n );\n\n combineLatest([accountGroupId$, this.route.queryParams])\n .pipe(first())\n .subscribe(([agid, params]) => {\n this.router.navigate([`businesses/accounts/${agid}/activation/order-form`], {\n queryParams: {\n accountGroupId: agid,\n ...params,\n },\n });\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { ApiService } from '../api-service/api.service';\n\n@Injectable()\nexport class TermsOfServiceService {\n constructor(private api: ApiService) {}\n\n get termsOfService(): Observable {\n return this.api.get('/_ajax/v1/terms-of-service/').pipe(map((res) => res.terms));\n }\n\n acceptTermsOfService(): Observable {\n return this.api.post('/_ajax/v1/accept-terms-of-service', {});\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { map } from 'rxjs/operators';\nimport { AppConfigService } from '../app-config.service';\nimport { TermsOfServiceService } from './terms-of-service.service';\n\n@Component({\n selector: 'app-terms-and-conditions',\n templateUrl: './terms-of-service.component.html',\n styleUrls: ['./terms-of-service.component.scss'],\n standalone: false,\n})\nexport class TermsOfServiceComponent implements OnInit {\n terms: string;\n submitting = false;\n\n constructor(\n private termsService: TermsOfServiceService,\n private snackbarService: SnackbarService,\n private readonly configService: AppConfigService,\n ) {}\n\n partnerName$ = this.configService.config$.pipe(map((config) => config.partnerName));\n partnerId$ = this.configService.config$.pipe(map((config) => config.partnerId));\n\n ngOnInit(): void {\n this.termsService.termsOfService.subscribe((terms) => {\n this.terms = terms;\n });\n }\n\n acceptTerms(): void {\n this.submitting = true;\n this.termsService.acceptTermsOfService().subscribe({\n next: () => (window.location.href = '/dashboard'),\n error: () => {\n this.snackbarService.errorSnack('Error accepting Terms of Service, please try again.');\n this.submitting = false;\n },\n });\n }\n}\n","\n \n Terms and Conditions \n \n \n \n \n

\n \n
\n \n
\n I agree to the Terms & Conditions\n\n
\n \n Continue\n \n\n Logout\n
\n
\n
\n
\n
{{ partnerName$ | async }} ({{ partnerId$ | async }})
\n
\n
\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { GalaxyPipesModule } from '@vendasta/galaxy/pipes';\nimport { PageComponent } from '../common/page.component';\nimport { TermsOfServiceComponent } from './terms-of-service.component';\nimport { TermsOfServiceService } from './terms-of-service.service';\nimport { GalaxyPageModule } from '@vendasta/galaxy/page';\n\n@NgModule({\n imports: [\n CommonModule,\n MatProgressSpinnerModule,\n MatCardModule,\n MatCheckboxModule,\n MatButtonModule,\n GalaxyPipesModule,\n PageComponent,\n GalaxyPageModule,\n ],\n exports: [TermsOfServiceComponent],\n declarations: [TermsOfServiceComponent],\n providers: [TermsOfServiceService],\n})\nexport class TermsOfServiceModule {}\n","import { InjectionToken } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nexport interface ConfigManagerConfig {\n partnerId$: Observable;\n // Add other configuration options as needed\n}\n\nexport const CONFIG_MANAGER_CONFIG_TOKEN = new InjectionToken(\n '[ConfigManager]: token for configuration',\n);\n\nexport const PARTNER_ID_TOKEN = new InjectionToken>('[ConfigManager]: token for partnerId');\n","import { Inject, Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { CONFIG_MANAGER_CONFIG_TOKEN, ConfigManagerConfig, PARTNER_ID_TOKEN } from './tokens';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ConfigManagerService {\n constructor(\n @Inject(CONFIG_MANAGER_CONFIG_TOKEN) private config: ConfigManagerConfig,\n @Inject(PARTNER_ID_TOKEN) private partnerId$: Observable,\n ) {}\n\n getPartnerId(): Observable {\n return this.partnerId$;\n }\n}\n","import { InjectionToken, ModuleWithProviders, NgModule } from '@angular/core';\nimport { ConfigManagerService } from './config-manager.service';\nimport { CONFIG_MANAGER_CONFIG_TOKEN, ConfigManagerConfig, PARTNER_ID_TOKEN } from './tokens';\nimport { isObservable, Observable, of } from 'rxjs';\n\n@NgModule()\nexport class ConfigManagerModule {\n static forRoot(c: { config: InjectionToken }): ModuleWithProviders {\n const result = {\n ngModule: ConfigManagerModule,\n providers: [\n ConfigManagerService,\n { provide: CONFIG_MANAGER_CONFIG_TOKEN, useExisting: c.config },\n { provide: PARTNER_ID_TOKEN, deps: [CONFIG_MANAGER_CONFIG_TOKEN], useFactory: partnerIdFactory },\n ],\n };\n return result;\n }\n}\n\nfunction partnerIdFactory(config: ConfigManagerConfig): Observable {\n return isObservable(config.partnerId$) ? config.partnerId$ : of(config.partnerId$);\n}\n","{\n \"CONFIG_EDITOR\": {\n \"CREATE_CONFIG\": \"Create Configuration\",\n \"ERROR\": {\n \"ACCOUNT_GROUP_REQUIRED\": \"Account group is required\",\n \"NAME_REQUIRED\": \"Name is required\",\n \"NO_MATCHING_ACCOUNT_GROUPS_FOUND\": \"No matching account groups found\"\n },\n \"NAME\": \"Name\",\n \"SOURCE_ACCOUNT_GROUP\": \"Source Account Group\"\n },\n \"COMMON\": {\n \"SAVE\": \"Save\",\n \"SAVE_AND_CONTINUE\": \"Save and continue\",\n \"NEXT\": \"Next\",\n \"BACK\": \"Back\",\n \"EDIT\": \"Edit\",\n \"CANCEL\": \"Cancel\",\n \"CREATE\": \"Create\",\n \"APPLY\": \"Apply\",\n \"CLOSE\": \"Close\"\n },\n \"CONFIG_MANAGER\": {\n \"CREATE_CONFIG\": \"Create Configuration\",\n \"CONFIGURATIONS\": \"Configurations\"\n },\n \"CONFIG_LIST\": {\n \"NO_CONFIGURATIONS\": \"No configurations found\"\n },\n \"CONFIG_CARD\": {\n \"APPLY_TO\": \"Apply to\",\n \"SOURCE\": \"Source\",\n \"CONTAINS\": \"Contains\"\n },\n \"CONFIG_APPLIER\": {\n \"TITLE\": \"Apply Configuration\",\n \"TARGET_TYPE\": \"Type\",\n \"TARGET_TYPE_PLACEHOLDER\": \"Type\",\n \"TARGET_NAME\": \"Name\",\n \"TARGET_NAME_PLACEHOLDER\": \"Search for a name\",\n \"CONTAINER_TYPE\": {\n \"ACCOUNT_GROUP\": \"Account Group\",\n \"MULTI_LOCATION_GROUP\": \"Multi Location Group\"\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { LexiconModule } from '@galaxy/lexicon';\nimport En from './en_devel.json';\n\n@NgModule({\n imports: [\n TranslateModule,\n LexiconModule.forChild({\n componentName: 'common/config-manager',\n baseTranslation: En,\n }),\n ],\n})\nexport class ConfigManagerI18nModule {}\n","import { Component, EventEmitter, inject, OnInit, Output } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormControl, FormGroup, ReactiveFormsModule, Validators } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { MatIconModule } from '@angular/material/icon';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { Observable, of } from 'rxjs';\nimport { debounceTime, map, startWith, switchMap, tap } from 'rxjs/operators';\nimport { AccountGroup, AccountGroupService, ProjectionFilter } from '@galaxy/account-group';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ConfigManagerI18nModule } from '../../assets/i18n/config-manager-i18n.module';\n\n@Component({\n selector: 'config-source',\n standalone: true,\n imports: [\n CommonModule,\n ReactiveFormsModule,\n GalaxyFormFieldModule,\n MatInputModule,\n MatSelectModule,\n MatAutocompleteModule,\n MatIconModule,\n ScrollingModule,\n MatProgressSpinnerModule,\n TranslateModule,\n ConfigManagerI18nModule,\n ],\n templateUrl: './source.component.html',\n styleUrls: ['./source.component.scss'],\n})\nexport class ConfigSourceComponent implements OnInit {\n @Output() dataChange = new EventEmitter<{ data: any; valid: boolean }>();\n\n form = new FormGroup({\n name: new FormControl('', [Validators.required]),\n accountGroup: new FormControl('', [Validators.required]),\n });\n\n searchCtrl = this.form.get('accountGroup') as FormControl;\n filteredAccountGroups$: Observable = of([]);\n accountGroupService = inject(AccountGroupService);\n isLoading = false;\n\n private fetchAccountGroups(searchTerm: string): Observable {\n if (!searchTerm) {\n this.isLoading = false;\n return of([]);\n }\n\n return this.accountGroupService.lookup(\n new ProjectionFilter().enableAll(),\n undefined,\n searchTerm,\n undefined,\n 10,\n undefined,\n );\n }\n\n ngOnInit() {\n this.filteredAccountGroups$ = this.searchCtrl.valueChanges.pipe(\n startWith(''),\n debounceTime(300),\n map((value) => (typeof value === 'string' ? value : value?.accountGroupId || '')),\n tap(() => (this.isLoading = true)),\n switchMap((searchTerm) => {\n return this.fetchAccountGroups(searchTerm).pipe(\n tap(() => {\n this.isLoading = false;\n }),\n );\n }),\n );\n\n this.form.valueChanges.subscribe(() => {\n this.emitChanges();\n });\n }\n\n displayFn(accountGroup: AccountGroup): string {\n return accountGroup ? `${accountGroup.napData.companyName} (${accountGroup.accountGroupId})` : '';\n }\n\n private emitChanges(): void {\n const formValue = this.form.value;\n this.dataChange.emit({\n data: {\n name: formValue.name,\n accountGroup: formValue.accountGroup,\n accountGroupId:\n formValue.accountGroup && typeof formValue.accountGroup !== 'string'\n ? formValue.accountGroup.accountGroupId\n : null,\n },\n valid: this.form.valid,\n });\n }\n}\n","
\n
\n
\n \n {{ 'CONFIG_EDITOR.NAME' | translate }}\n \n \n {{ 'CONFIG_EDITOR.ERROR.NAME_REQUIRED' | translate }}\n \n \n
\n\n
\n \n {{ 'CONFIG_EDITOR.SOURCE_ACCOUNT_GROUP' | translate }}\n \n arrow_drop_down\n \n {{ 'CONFIG_EDITOR.ERROR.ACCOUNT_GROUP_REQUIRED' | translate }}\n \n \n \n \n Loading...\n \n \n \n {{ option.napData.companyName }} ({{ option.accountGroupId }})\n \n \n {{ 'CONFIG_EDITOR.ERROR.NO_MATCHING_ACCOUNT_GROUPS_FOUND' | translate }}\n \n \n \n \n
\n
\n
\n","import { Component, Output, EventEmitter, input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { FormsModule } from '@angular/forms';\n\nexport interface ConfigOption {\n id: string;\n name: string;\n enabled: boolean;\n indeterminate?: boolean;\n description?: string;\n subOptions?: ConfigOption[];\n link?: string;\n}\n\n@Component({\n selector: 'config-options',\n standalone: true,\n imports: [CommonModule, MatExpansionModule, MatSlideToggleModule, MatIconModule, MatCheckboxModule, FormsModule],\n templateUrl: './options.component.html',\n styleUrls: ['./options.component.scss'],\n})\nexport class ConfigOptionsComponent {\n @Output() dataChange = new EventEmitter();\n\n configOptions = input.required();\n\n onOptionChange(option: ConfigOption) {\n option.enabled = !option.enabled;\n option.indeterminate = false;\n\n if (option.subOptions) {\n option.subOptions.forEach((subOption) => {\n subOption.enabled = option.enabled;\n });\n }\n this.dataChange.emit(this.configOptions());\n }\n\n onSubOptionChange(parentOption: ConfigOption, subOption: ConfigOption, event: boolean) {\n subOption.enabled = event;\n\n if (parentOption.subOptions) {\n const enabledCount = parentOption.subOptions.filter((so) => so.enabled).length;\n const totalSubOptions = parentOption.subOptions.length;\n\n if (enabledCount === 0) {\n parentOption.enabled = false;\n parentOption.indeterminate = false;\n } else if (enabledCount === totalSubOptions) {\n parentOption.enabled = true;\n parentOption.indeterminate = false;\n } else {\n parentOption.enabled = false;\n parentOption.indeterminate = true;\n }\n }\n this.dataChange.emit(this.configOptions());\n }\n}\n","
\n \n 0\">\n \n
\n
{{ option.name }}
\n \n
\n
\n\n
0\">\n
\n
\n
\n
\n @if (subOption.link) {\n \n {{ subOption.name }}\n open_in_new\n \n } @else {\n {{ subOption.name }}\n }\n
\n
\n {{ subOption.description }}\n
\n
\n \n
\n
\n
\n
\n
\n
\n","import * as i0 from '@angular/core';\nimport { Injectable, inject } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { map } from 'rxjs/operators';\nconst environment = (window ? window['environment'] : 'prod') ?? 'prod';\nconst hostMap = {\n 'local': 'configuration-management-api.vendasta-local.com',\n 'test': '',\n 'demo': 'configuration-management-demo.apigateway.co',\n 'prod': 'configuration-management-prod.apigateway.co',\n 'production': 'configuration-management-prod.apigateway.co'\n};\nlet HostService = /*#__PURE__*/(() => {\n class HostService {\n get host() {\n return hostMap[environment.toLowerCase()];\n }\n get hostWithScheme() {\n return 'https://' + this.host;\n }\n }\n HostService.ɵfac = function HostService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || HostService)();\n };\n HostService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: HostService,\n factory: HostService.ɵfac,\n providedIn: 'root'\n });\n return HostService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\nvar ObjectApplicationStrategy = /*#__PURE__*/function (ObjectApplicationStrategy) {\n ObjectApplicationStrategy[ObjectApplicationStrategy[\"OBJECT_APPLICATION_STRATEGY_UNSPECIFIED\"] = 0] = \"OBJECT_APPLICATION_STRATEGY_UNSPECIFIED\";\n ObjectApplicationStrategy[ObjectApplicationStrategy[\"OBJECT_APPLICATION_STRATEGY_SKIP_EXISTING\"] = 1] = \"OBJECT_APPLICATION_STRATEGY_SKIP_EXISTING\";\n ObjectApplicationStrategy[ObjectApplicationStrategy[\"OBJECT_APPLICATION_STRATEGY_OVERWRITE_EXISTING\"] = 2] = \"OBJECT_APPLICATION_STRATEGY_OVERWRITE_EXISTING\";\n return ObjectApplicationStrategy;\n}(ObjectApplicationStrategy || {});\nvar OwnerNamespaceType = /*#__PURE__*/function (OwnerNamespaceType) {\n OwnerNamespaceType[OwnerNamespaceType[\"OWNER_NAMESPACE_UNSPECIFIED\"] = 0] = \"OWNER_NAMESPACE_UNSPECIFIED\";\n OwnerNamespaceType[OwnerNamespaceType[\"OWNER_NAMESPACE_PARTNER\"] = 1] = \"OWNER_NAMESPACE_PARTNER\";\n return OwnerNamespaceType;\n}(OwnerNamespaceType || {});\nvar SourceNamespaceType = /*#__PURE__*/function (SourceNamespaceType) {\n SourceNamespaceType[SourceNamespaceType[\"SOURCE_NAMESPACE_UNSPECIFIED\"] = 0] = \"SOURCE_NAMESPACE_UNSPECIFIED\";\n SourceNamespaceType[SourceNamespaceType[\"SOURCE_NAMESPACE_PARTNER\"] = 1] = \"SOURCE_NAMESPACE_PARTNER\";\n SourceNamespaceType[SourceNamespaceType[\"SOURCE_NAMESPACE_ACCOUNT_GROUP\"] = 2] = \"SOURCE_NAMESPACE_ACCOUNT_GROUP\";\n return SourceNamespaceType;\n}(SourceNamespaceType || {});\nvar TargetContainerNamespaceType = /*#__PURE__*/function (TargetContainerNamespaceType) {\n TargetContainerNamespaceType[TargetContainerNamespaceType[\"TARGET_CONTAINER_NAMESPACE_UNSPECIFIED\"] = 0] = \"TARGET_CONTAINER_NAMESPACE_UNSPECIFIED\";\n TargetContainerNamespaceType[TargetContainerNamespaceType[\"TARGET_CONTAINER_NAMESPACE_ACCOUNT_GROUP\"] = 1] = \"TARGET_CONTAINER_NAMESPACE_ACCOUNT_GROUP\";\n TargetContainerNamespaceType[TargetContainerNamespaceType[\"TARGET_CONTAINER_NAMESPACE_GROUP\"] = 2] = \"TARGET_CONTAINER_NAMESPACE_GROUP\";\n return TargetContainerNamespaceType;\n}(TargetContainerNamespaceType || {});\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums Index.\n// *********************************\n\nfunction enumStringToValue$1(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass PagedRequestOptions {\n static fromProto(proto) {\n let m = new PagedRequestOptions();\n m = Object.assign(m, proto);\n if (proto.pageSize) {\n m.pageSize = parseInt(proto.pageSize, 10);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.cursor !== 'undefined') {\n toReturn['cursor'] = this.cursor;\n }\n if (typeof this.pageSize !== 'undefined') {\n toReturn['pageSize'] = this.pageSize;\n }\n return toReturn;\n }\n}\nclass PagedResponseMetadata {\n static fromProto(proto) {\n let m = new PagedResponseMetadata();\n m = Object.assign(m, proto);\n if (proto.totalResults) {\n m.totalResults = parseInt(proto.totalResults, 10);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.nextCursor !== 'undefined') {\n toReturn['nextCursor'] = this.nextCursor;\n }\n if (typeof this.hasMore !== 'undefined') {\n toReturn['hasMore'] = this.hasMore;\n }\n if (typeof this.totalResults !== 'undefined') {\n toReturn['totalResults'] = this.totalResults;\n }\n return toReturn;\n }\n}\nfunction enumStringToValue(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass ApplyConfigurationRequest {\n static fromProto(proto) {\n let m = new ApplyConfigurationRequest();\n m = Object.assign(m, proto);\n if (proto.configurationTargetContainers) {\n m.configurationTargetContainers = proto.configurationTargetContainers.map(ConfigurationTargetContainer.fromProto);\n }\n if (proto.objectApplicationSelections) {\n m.objectApplicationSelections = proto.objectApplicationSelections.map(ObjectApplicationSelection.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.configurationId !== 'undefined') {\n toReturn['configurationId'] = this.configurationId;\n }\n if (typeof this.configurationTargetContainers !== 'undefined' && this.configurationTargetContainers !== null) {\n toReturn['configurationTargetContainers'] = 'toApiJson' in this.configurationTargetContainers ? this.configurationTargetContainers.toApiJson() : this.configurationTargetContainers;\n }\n if (typeof this.objectApplicationSelections !== 'undefined' && this.objectApplicationSelections !== null) {\n toReturn['objectApplicationSelections'] = 'toApiJson' in this.objectApplicationSelections ? this.objectApplicationSelections.toApiJson() : this.objectApplicationSelections;\n }\n if (typeof this.autoApplyNewVersions !== 'undefined') {\n toReturn['autoApplyNewVersions'] = this.autoApplyNewVersions;\n }\n return toReturn;\n }\n}\nclass ApplyConfigurationResponse {\n static fromProto(proto) {\n let m = new ApplyConfigurationResponse();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n return toReturn;\n }\n}\nclass Configuration {\n static fromProto(proto) {\n let m = new Configuration();\n m = Object.assign(m, proto);\n if (proto.configurationOwner) {\n m.configurationOwner = ConfigurationOwner.fromProto(proto.configurationOwner);\n }\n if (proto.sourceNamespaceType) {\n m.sourceNamespaceType = enumStringToValue(SourceNamespaceType, proto.sourceNamespaceType);\n }\n if (proto.configurationVersion) {\n m.configurationVersion = ConfigurationVersion.fromProto(proto.configurationVersion);\n }\n if (proto.createdAt) {\n m.createdAt = new Date(proto.createdAt);\n }\n if (proto.updatedAt) {\n m.updatedAt = new Date(proto.updatedAt);\n }\n if (proto.deletedAt) {\n m.deletedAt = new Date(proto.deletedAt);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.configurationId !== 'undefined') {\n toReturn['configurationId'] = this.configurationId;\n }\n if (typeof this.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n if (typeof this.configurationOwner !== 'undefined' && this.configurationOwner !== null) {\n toReturn['configurationOwner'] = 'toApiJson' in this.configurationOwner ? this.configurationOwner.toApiJson() : this.configurationOwner;\n }\n if (typeof this.sourceNamespaceType !== 'undefined') {\n toReturn['sourceNamespaceType'] = this.sourceNamespaceType;\n }\n if (typeof this.configurationVersion !== 'undefined' && this.configurationVersion !== null) {\n toReturn['configurationVersion'] = 'toApiJson' in this.configurationVersion ? this.configurationVersion.toApiJson() : this.configurationVersion;\n }\n if (typeof this.deployedVersion !== 'undefined') {\n toReturn['deployedVersion'] = this.deployedVersion;\n }\n if (typeof this.createdAt !== 'undefined' && this.createdAt !== null) {\n toReturn['createdAt'] = 'toApiJson' in this.createdAt ? this.createdAt.toApiJson() : this.createdAt;\n }\n if (typeof this.updatedAt !== 'undefined' && this.updatedAt !== null) {\n toReturn['updatedAt'] = 'toApiJson' in this.updatedAt ? this.updatedAt.toApiJson() : this.updatedAt;\n }\n if (typeof this.deletedAt !== 'undefined' && this.deletedAt !== null) {\n toReturn['deletedAt'] = 'toApiJson' in this.deletedAt ? this.deletedAt.toApiJson() : this.deletedAt;\n }\n return toReturn;\n }\n}\nclass ConfigurationOwner {\n static fromProto(proto) {\n let m = new ConfigurationOwner();\n m = Object.assign(m, proto);\n if (proto.ownerNamespaceType) {\n m.ownerNamespaceType = enumStringToValue(OwnerNamespaceType, proto.ownerNamespaceType);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.ownerNamespace !== 'undefined') {\n toReturn['ownerNamespace'] = this.ownerNamespace;\n }\n if (typeof this.ownerNamespaceType !== 'undefined') {\n toReturn['ownerNamespaceType'] = this.ownerNamespaceType;\n }\n return toReturn;\n }\n}\nclass ConfigurationSource {\n static fromProto(proto) {\n let m = new ConfigurationSource();\n m = Object.assign(m, proto);\n if (proto.sourceNamespaceType) {\n m.sourceNamespaceType = enumStringToValue(SourceNamespaceType, proto.sourceNamespaceType);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.sourceNamespace !== 'undefined') {\n toReturn['sourceNamespace'] = this.sourceNamespace;\n }\n if (typeof this.sourceNamespaceType !== 'undefined') {\n toReturn['sourceNamespaceType'] = this.sourceNamespaceType;\n }\n return toReturn;\n }\n}\nclass ConfigurationTargetContainer {\n static fromProto(proto) {\n let m = new ConfigurationTargetContainer();\n m = Object.assign(m, proto);\n if (proto.targetContainerNamespaceType) {\n m.targetContainerNamespaceType = enumStringToValue(TargetContainerNamespaceType, proto.targetContainerNamespaceType);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.targetContainerNamespace !== 'undefined') {\n toReturn['targetContainerNamespace'] = this.targetContainerNamespace;\n }\n if (typeof this.targetContainerNamespaceType !== 'undefined') {\n toReturn['targetContainerNamespaceType'] = this.targetContainerNamespaceType;\n }\n return toReturn;\n }\n}\nclass ConfigurationVersion {\n static fromProto(proto) {\n let m = new ConfigurationVersion();\n m = Object.assign(m, proto);\n if (proto.objectTypes) {\n m.objectTypes = proto.objectTypes.map(TypedObjectContainer.fromProto);\n }\n if (proto.createdAt) {\n m.createdAt = new Date(proto.createdAt);\n }\n if (proto.deletedAt) {\n m.deletedAt = new Date(proto.deletedAt);\n }\n if (proto.lastDeployedAt) {\n m.lastDeployedAt = new Date(proto.lastDeployedAt);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.configurationId !== 'undefined') {\n toReturn['configurationId'] = this.configurationId;\n }\n if (typeof this.version !== 'undefined') {\n toReturn['version'] = this.version;\n }\n if (typeof this.sourceNamespace !== 'undefined') {\n toReturn['sourceNamespace'] = this.sourceNamespace;\n }\n if (typeof this.objectTypes !== 'undefined' && this.objectTypes !== null) {\n toReturn['objectTypes'] = 'toApiJson' in this.objectTypes ? this.objectTypes.toApiJson() : this.objectTypes;\n }\n if (typeof this.createdBy !== 'undefined') {\n toReturn['createdBy'] = this.createdBy;\n }\n if (typeof this.createdAt !== 'undefined' && this.createdAt !== null) {\n toReturn['createdAt'] = 'toApiJson' in this.createdAt ? this.createdAt.toApiJson() : this.createdAt;\n }\n if (typeof this.deletedAt !== 'undefined' && this.deletedAt !== null) {\n toReturn['deletedAt'] = 'toApiJson' in this.deletedAt ? this.deletedAt.toApiJson() : this.deletedAt;\n }\n if (typeof this.lastDeployedAt !== 'undefined' && this.lastDeployedAt !== null) {\n toReturn['lastDeployedAt'] = 'toApiJson' in this.lastDeployedAt ? this.lastDeployedAt.toApiJson() : this.lastDeployedAt;\n }\n return toReturn;\n }\n}\nclass CreateConfigurationFromSourceRequest {\n static fromProto(proto) {\n let m = new CreateConfigurationFromSourceRequest();\n m = Object.assign(m, proto);\n if (proto.configurationSource) {\n m.configurationSource = ConfigurationSource.fromProto(proto.configurationSource);\n }\n if (proto.selectedTypedObjectIds) {\n m.selectedTypedObjectIds = proto.selectedTypedObjectIds.map(TypedObjectIds.fromProto);\n }\n if (proto.configurationOwner) {\n m.configurationOwner = ConfigurationOwner.fromProto(proto.configurationOwner);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.configurationSource !== 'undefined' && this.configurationSource !== null) {\n toReturn['configurationSource'] = 'toApiJson' in this.configurationSource ? this.configurationSource.toApiJson() : this.configurationSource;\n }\n if (typeof this.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n if (typeof this.selectedTypedObjectIds !== 'undefined' && this.selectedTypedObjectIds !== null) {\n toReturn['selectedTypedObjectIds'] = 'toApiJson' in this.selectedTypedObjectIds ? this.selectedTypedObjectIds.toApiJson() : this.selectedTypedObjectIds;\n }\n if (typeof this.configurationOwner !== 'undefined' && this.configurationOwner !== null) {\n toReturn['configurationOwner'] = 'toApiJson' in this.configurationOwner ? this.configurationOwner.toApiJson() : this.configurationOwner;\n }\n return toReturn;\n }\n}\nclass CreateConfigurationFromSourceResponse {\n static fromProto(proto) {\n let m = new CreateConfigurationFromSourceResponse();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.configurationId !== 'undefined') {\n toReturn['configurationId'] = this.configurationId;\n }\n return toReturn;\n }\n}\nclass DeleteConfigurationRequest {\n static fromProto(proto) {\n let m = new DeleteConfigurationRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.configurationId !== 'undefined') {\n toReturn['configurationId'] = this.configurationId;\n }\n return toReturn;\n }\n}\nclass GetConfigurationPreviewDataForSourceRequest {\n static fromProto(proto) {\n let m = new GetConfigurationPreviewDataForSourceRequest();\n m = Object.assign(m, proto);\n if (proto.configurationSource) {\n m.configurationSource = ConfigurationSource.fromProto(proto.configurationSource);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.configurationSource !== 'undefined' && this.configurationSource !== null) {\n toReturn['configurationSource'] = 'toApiJson' in this.configurationSource ? this.configurationSource.toApiJson() : this.configurationSource;\n }\n return toReturn;\n }\n}\nclass GetConfigurationPreviewDataForSourceResponse {\n static fromProto(proto) {\n let m = new GetConfigurationPreviewDataForSourceResponse();\n m = Object.assign(m, proto);\n if (proto.objectTypes) {\n m.objectTypes = proto.objectTypes.map(TypedObjectContainer.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.objectTypes !== 'undefined' && this.objectTypes !== null) {\n toReturn['objectTypes'] = 'toApiJson' in this.objectTypes ? this.objectTypes.toApiJson() : this.objectTypes;\n }\n return toReturn;\n }\n}\nclass ListConfigurationsRequest {\n static fromProto(proto) {\n let m = new ListConfigurationsRequest();\n m = Object.assign(m, proto);\n if (proto.configurationOwner) {\n m.configurationOwner = ConfigurationOwner.fromProto(proto.configurationOwner);\n }\n if (proto.pagingOptions) {\n m.pagingOptions = PagedRequestOptions.fromProto(proto.pagingOptions);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.configurationOwner !== 'undefined' && this.configurationOwner !== null) {\n toReturn['configurationOwner'] = 'toApiJson' in this.configurationOwner ? this.configurationOwner.toApiJson() : this.configurationOwner;\n }\n if (typeof this.pagingOptions !== 'undefined' && this.pagingOptions !== null) {\n toReturn['pagingOptions'] = 'toApiJson' in this.pagingOptions ? this.pagingOptions.toApiJson() : this.pagingOptions;\n }\n return toReturn;\n }\n}\nclass ListConfigurationsResponse {\n static fromProto(proto) {\n let m = new ListConfigurationsResponse();\n m = Object.assign(m, proto);\n if (proto.configuration) {\n m.configuration = proto.configuration.map(Configuration.fromProto);\n }\n if (proto.pagingMetadata) {\n m.pagingMetadata = PagedResponseMetadata.fromProto(proto.pagingMetadata);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.configuration !== 'undefined' && this.configuration !== null) {\n toReturn['configuration'] = 'toApiJson' in this.configuration ? this.configuration.toApiJson() : this.configuration;\n }\n if (typeof this.pagingMetadata !== 'undefined' && this.pagingMetadata !== null) {\n toReturn['pagingMetadata'] = 'toApiJson' in this.pagingMetadata ? this.pagingMetadata.toApiJson() : this.pagingMetadata;\n }\n return toReturn;\n }\n}\nclass ObjectApplicationSelection {\n static fromProto(proto) {\n let m = new ObjectApplicationSelection();\n m = Object.assign(m, proto);\n if (proto.strategy) {\n m.strategy = enumStringToValue(ObjectApplicationStrategy, proto.strategy);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.configurationObjectId !== 'undefined') {\n toReturn['configurationObjectId'] = this.configurationObjectId;\n }\n if (typeof this.strategy !== 'undefined') {\n toReturn['strategy'] = this.strategy;\n }\n return toReturn;\n }\n}\nclass TypedObject {\n static fromProto(proto) {\n let m = new TypedObject();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n if (typeof this.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n if (typeof this.description !== 'undefined') {\n toReturn['description'] = this.description;\n }\n if (typeof this.link !== 'undefined') {\n toReturn['link'] = this.link;\n }\n return toReturn;\n }\n}\nclass TypedObjectContainer {\n static fromProto(proto) {\n let m = new TypedObjectContainer();\n m = Object.assign(m, proto);\n if (proto.objects) {\n m.objects = proto.objects.map(TypedObject.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.typeId !== 'undefined') {\n toReturn['typeId'] = this.typeId;\n }\n if (typeof this.typeName !== 'undefined') {\n toReturn['typeName'] = this.typeName;\n }\n if (typeof this.objects !== 'undefined' && this.objects !== null) {\n toReturn['objects'] = 'toApiJson' in this.objects ? this.objects.toApiJson() : this.objects;\n }\n return toReturn;\n }\n}\nclass TypedObjectIds {\n static fromProto(proto) {\n let m = new TypedObjectIds();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.typeId !== 'undefined') {\n toReturn['typeId'] = this.typeId;\n }\n if (typeof this.typedObjectIds !== 'undefined') {\n toReturn['typedObjectIds'] = this.typedObjectIds;\n }\n return toReturn;\n }\n}\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Objects Index.\n// *********************************\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nlet ConfigurationManagementApiService = /*#__PURE__*/(() => {\n class ConfigurationManagementApiService {\n constructor() {\n this.hostService = inject(HostService);\n this.http = inject(HttpClient);\n this._host = this.hostService.hostWithScheme;\n }\n apiOptions() {\n return {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n }),\n withCredentials: true\n };\n }\n getConfigurationPreviewDataForSource(r) {\n const request = r.toApiJson ? r : new GetConfigurationPreviewDataForSourceRequest(r);\n return this.http.post(this._host + \"/configuration_management.v1.ConfigurationManagement/GetConfigurationPreviewDataForSource\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetConfigurationPreviewDataForSourceResponse.fromProto(resp)));\n }\n createConfigurationFromSource(r) {\n const request = r.toApiJson ? r : new CreateConfigurationFromSourceRequest(r);\n return this.http.post(this._host + \"/configuration_management.v1.ConfigurationManagement/CreateConfigurationFromSource\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CreateConfigurationFromSourceResponse.fromProto(resp)));\n }\n listConfigurations(r) {\n const request = r.toApiJson ? r : new ListConfigurationsRequest(r);\n return this.http.post(this._host + \"/configuration_management.v1.ConfigurationManagement/ListConfigurations\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ListConfigurationsResponse.fromProto(resp)));\n }\n applyConfiguration(r) {\n const request = r.toApiJson ? r : new ApplyConfigurationRequest(r);\n return this.http.post(this._host + \"/configuration_management.v1.ConfigurationManagement/ApplyConfiguration\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ApplyConfigurationResponse.fromProto(resp)));\n }\n deleteConfiguration(r) {\n const request = r.toApiJson ? r : new DeleteConfigurationRequest(r);\n return this.http.post(this._host + \"/configuration_management.v1.ConfigurationManagement/DeleteConfiguration\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n }\n ConfigurationManagementApiService.ɵfac = function ConfigurationManagementApiService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ConfigurationManagementApiService)();\n };\n ConfigurationManagementApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: ConfigurationManagementApiService,\n factory: ConfigurationManagementApiService.ɵfac,\n providedIn: 'root'\n });\n return ConfigurationManagementApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Index.\n// *********************************\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { ApplyConfigurationRequest, ApplyConfigurationResponse, Configuration, ConfigurationManagementApiService, ConfigurationOwner, ConfigurationSource, ConfigurationTargetContainer, ConfigurationVersion, CreateConfigurationFromSourceRequest, CreateConfigurationFromSourceResponse, DeleteConfigurationRequest, GetConfigurationPreviewDataForSourceRequest, GetConfigurationPreviewDataForSourceResponse, HostService, ListConfigurationsRequest, ListConfigurationsResponse, ObjectApplicationSelection, ObjectApplicationStrategy, OwnerNamespaceType, PagedRequestOptions, PagedResponseMetadata, SourceNamespaceType, TargetContainerNamespaceType, TypedObject, TypedObjectContainer, TypedObjectIds };\n","import { TypedObjectContainer } from '@vendasta/configuration-management';\nimport { ConfigOption } from './config-editor/config-options/options.component';\n\nexport function typedObjectContainersToConfigOptions(\n typedObjectContainers: TypedObjectContainer[],\n defaultEnabled = false,\n): ConfigOption[] {\n return typedObjectContainers.map((t) => ({\n id: t.typeId,\n name: t.typeName,\n enabled: defaultEnabled,\n indeterminate: false,\n subOptions: t.objects.map((o) => ({\n id: o.id,\n name: o.name,\n description: o.description,\n link: o.link,\n enabled: defaultEnabled,\n })),\n }));\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, computed, DestroyRef, inject, OnInit, signal, ViewChild } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatDialogModule, MatDialogRef } from '@angular/material/dialog';\nimport { MatStepperModule } from '@angular/material/stepper';\nimport { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\nimport { ConfigSourceComponent } from '../config-source/source.component';\nimport { ConfigOptionsComponent } from '../config-options/options.component';\nimport { STEPPER_GLOBAL_OPTIONS } from '@angular/cdk/stepper';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ConfigManagerI18nModule } from '../../assets/i18n/config-manager-i18n.module';\nimport {\n ConfigurationManagementApiService,\n OwnerNamespaceType,\n SourceNamespaceType,\n} from '@vendasta/configuration-management';\nimport { takeUntilDestroyed, toSignal } from '@angular/core/rxjs-interop';\nimport { PARTNER_ID_TOKEN } from '../../tokens';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { Observable, of, switchMap, take } from 'rxjs';\nimport { ConfigOption } from '../config-options/options.component';\nimport { typedObjectContainersToConfigOptions } from '../../utils';\n@Component({\n selector: 'config-editor-dialog',\n standalone: true,\n imports: [\n CommonModule,\n MatDialogModule,\n MatButtonModule,\n MatCardModule,\n MatStepperModule,\n ConfigSourceComponent,\n ConfigOptionsComponent,\n TranslateModule,\n ConfigManagerI18nModule,\n ],\n providers: [\n {\n provide: STEPPER_GLOBAL_OPTIONS,\n useValue: { displayDefaultIndicatorType: false },\n },\n ],\n templateUrl: './config-editor-dialog.component.html',\n styleUrls: ['./config-editor-dialog.component.scss'],\n})\nexport class ConfigEditorDialogComponent implements OnInit {\n private readonly DIALOG_WIDTH = '660px';\n private readonly bpObserver = inject(BreakpointObserver);\n private readonly configService = inject(ConfigurationManagementApiService);\n private readonly snackbar = inject(SnackbarService);\n private readonly partnerId = toSignal(inject(PARTNER_ID_TOKEN));\n\n private readonly sourceData = signal(null);\n private readonly sourceValid = signal(false);\n private readonly optionsData = signal([]);\n private readonly accountGroupId = signal(undefined);\n\n protected readonly isSourceValid = computed(() => this.sourceValid());\n\n configOptionsData = signal([]);\n @ViewChild('configOptions') configOptionsComponent!: ConfigOptionsComponent;\n\n constructor(\n public dialogRef: MatDialogRef,\n public readonly destroyRef: DestroyRef,\n ) {}\n\n ngOnInit(): void {\n this.dialogRef.disableClose = true;\n\n const isSmallScreen = this.bpObserver.isMatched(Breakpoints.XSmall);\n if (isSmallScreen) {\n this.dialogRef.updateSize('100vw', '100vh');\n } else {\n this.dialogRef.updateSize(this.DIALOG_WIDTH);\n }\n }\n\n onSourceDataChange(event: { data: any; valid: boolean }): void {\n this.sourceData.set(event.data);\n this.sourceValid.set(event.valid);\n this.accountGroupId.set(event.data.accountGroupId);\n }\n\n onOptionsDataChange(data: any): void {\n this.optionsData.set(data);\n }\n\n close(): void {\n this.dialogRef.close();\n }\n\n finish(): void {\n const typedObjectIds = this.optionsData()\n .map((option: any) => ({\n typeId: option.id,\n typedObjectIds:\n option.subOptions?.filter((subOption: any) => subOption.enabled).map((subOption: any) => subOption.id) || [],\n }))\n .filter((option: any) => option.typedObjectIds.length > 0);\n\n const partnerId = this.partnerId();\n if (!partnerId) {\n this.snackbar.openErrorSnack('Partner ID is not available');\n return;\n }\n\n const request = {\n name: this.sourceData()?.name,\n configurationSource: {\n sourceNamespace: this.accountGroupId(),\n sourceNamespaceType: SourceNamespaceType.SOURCE_NAMESPACE_ACCOUNT_GROUP,\n },\n configurationOwner: {\n ownerNamespace: partnerId,\n ownerNamespaceType: OwnerNamespaceType.OWNER_NAMESPACE_PARTNER,\n },\n selectedTypedObjectIds: typedObjectIds,\n };\n\n this.configService\n .createConfigurationFromSource(request)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe({\n next: () => {\n this.snackbar.openSuccessSnack('Configuration created successfully');\n this.dialogRef.close({\n success: true,\n source: this.sourceData(),\n options: this.optionsData(),\n });\n },\n error: (error) => {\n const errorMessage = error?.error?.message || 'Failed to create configuration';\n this.snackbar.openErrorSnack(errorMessage);\n },\n });\n }\n\n setAccountGroupId() {\n const id = this.accountGroupId();\n if (id) {\n this.getConfigOptions()\n .pipe(take(1))\n .subscribe((options) => {\n this.configOptionsData.set(options);\n });\n }\n }\n\n getConfigOptions(): Observable {\n return this.configService\n .getConfigurationPreviewDataForSource({\n configurationSource: {\n sourceNamespace: this.accountGroupId(),\n sourceNamespaceType: SourceNamespaceType.SOURCE_NAMESPACE_ACCOUNT_GROUP,\n },\n })\n .pipe(\n switchMap((response) => {\n return of(typedObjectContainersToConfigOptions(response.objectTypes));\n }),\n );\n }\n}\n","
\n

{{ 'CONFIG_EDITOR.CREATE_CONFIG' | translate }}

\n \n \n \n \n
\n \n \n
\n
\n\n \n \n
\n \n \n \n
\n
\n
\n
\n
\n","import { Component, computed, DestroyRef, effect, inject, signal } from '@angular/core';\nimport { MatDialogModule, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { MatSelectModule } from '@angular/material/select';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { FormGroup } from '@angular/forms';\nimport { takeUntilDestroyed, toSignal } from '@angular/core/rxjs-interop';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { CommonModule } from '@angular/common';\nimport { debounceTime, take } from 'rxjs/operators';\nimport { AccountGroupService, ProjectionFilter } from '@galaxy/account-group';\nimport { Subscription } from 'rxjs';\nimport { MultiLocationService } from '@vendasta/multi-location';\nimport { PARTNER_ID_TOKEN } from '../../tokens';\nimport { MatButtonModule } from '@angular/material/button';\nimport {\n ApplyConfigurationRequest,\n ConfigurationManagementApiService,\n ConfigurationTargetContainer,\n ObjectApplicationSelection,\n ObjectApplicationStrategy,\n TargetContainerNamespaceType,\n} from '@vendasta/configuration-management';\nimport { ConfigOption } from '../../config-editor/config-options/options.component';\nimport { ConfigOptionsComponent } from '../../config-editor/config-options/options.component';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\ninterface TargetContainer {\n id: string;\n name: string;\n}\n@Component({\n selector: 'config-applier-dialog',\n templateUrl: './config-applier-dialog.component.html',\n styleUrls: ['./config-applier-dialog.component.scss'],\n imports: [\n TranslateModule,\n MatDialogModule,\n MatSelectModule,\n GalaxyFormFieldModule,\n ReactiveFormsModule,\n MatAutocompleteModule,\n CommonModule,\n MatButtonModule,\n ConfigOptionsComponent,\n ],\n})\nexport class ConfigApplierDialogComponent {\n private readonly dialogRef = inject(MatDialogRef);\n private readonly destroyRef = inject(DestroyRef);\n private readonly accountGroupService = inject(AccountGroupService);\n private readonly multiLocationService = inject(MultiLocationService);\n private readonly partnerId = toSignal(inject(PARTNER_ID_TOKEN));\n private readonly configService = inject(ConfigurationManagementApiService);\n private readonly snackBarService = inject(SnackbarService);\n\n private currentConfigOptions = signal([]);\n private targetContainerType = signal('');\n private isTargetContainerDisabled = computed(() => this.targetContainerType() === '');\n private targetContainerSearchTerm = signal('');\n private brands = signal([]);\n private lookupSubscription: Subscription;\n\n targetContainerOptions = signal([]);\n isApplyEnabled = computed(() => this.targetContainerType() !== '' && this.targetContainerSearchTerm() !== '');\n\n filteredBrands = computed(() => {\n const term = this.targetContainerSearchTerm();\n const brands = this.brands();\n if (term.length > 0) {\n return brands.filter((brand) => brand.name.toLowerCase().includes(term.toLowerCase()));\n }\n return brands;\n });\n\n data: { configurationId: string; configOptions: ConfigOption[] } = inject(MAT_DIALOG_DATA);\n\n form = new FormGroup({\n targetContainerType: new FormControl(''),\n\n targetContainer: new FormControl({ value: '', disabled: true }),\n });\n\n constructor() {\n this.lookupSubscription = new Subscription();\n this.currentConfigOptions.set(this.data.configOptions);\n this.form\n .get('targetContainer')\n ?.valueChanges.pipe(takeUntilDestroyed(this.destroyRef), debounceTime(300))\n .subscribe((value) => {\n this.targetContainerSearchTerm.set(value ? (value as string) : '');\n });\n\n this.form\n .get('targetContainerType')\n ?.valueChanges.pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((value) => {\n this.targetContainerType.set(value ? value : '');\n this.form.get('targetContainer')?.reset();\n });\n\n effect(() => {\n if (this.isTargetContainerDisabled()) {\n this.form.get('targetContainer')?.disable();\n } else {\n this.form.get('targetContainer')?.enable();\n }\n });\n\n effect(() => {\n const term = this.targetContainerSearchTerm();\n this.lookupSubscription?.unsubscribe();\n if (typeof term !== 'string') {\n this.targetContainerOptions.set([]);\n return;\n }\n\n if (term.length === 0) {\n this.targetContainerOptions.set([]);\n return;\n }\n\n if (this.targetContainerType() === 'account-group') {\n this.setFilteredAccountGroups(term);\n } else {\n if (this.brands().length === 0) {\n this.fetchBrandsAPI();\n }\n this.targetContainerOptions.set(this.filteredBrands());\n }\n });\n }\n\n ngOnDestroy(): void {\n this.lookupSubscription.unsubscribe();\n }\n\n onOptionsChange(options: ConfigOption[]) {\n this.currentConfigOptions.set(options);\n }\n\n setFilteredAccountGroups(term: string) {\n this.lookupSubscription = this.accountGroupService\n .lookup(new ProjectionFilter().enableAll(), undefined, term, undefined, 10, undefined)\n .subscribe((accountGroups) => {\n if (accountGroups) {\n this.targetContainerOptions.set(\n accountGroups.map((accountGroup) => ({\n id: accountGroup.accountGroupId,\n name: accountGroup.napData.companyName,\n })),\n );\n }\n });\n }\n\n fetchBrandsAPI() {\n this.lookupSubscription = this.multiLocationService.listBrandsMetadata(this.partnerId()!).subscribe((brands) => {\n this.brands.set(brands.map((brand) => ({ id: brand.groupId, name: brand.name })));\n });\n }\n\n apply() {\n const formValue = this.form.value;\n const objectApplicationSelections: ObjectApplicationSelection[] = [];\n this.currentConfigOptions().forEach((opt) => {\n opt.subOptions?.forEach((subOpt) => {\n subOpt.enabled &&\n objectApplicationSelections.push(\n new ObjectApplicationSelection({\n configurationObjectId: subOpt.id,\n strategy: ObjectApplicationStrategy.OBJECT_APPLICATION_STRATEGY_SKIP_EXISTING,\n }),\n );\n });\n });\n this.configService\n .applyConfiguration(\n new ApplyConfigurationRequest({\n configurationId: this.data.configurationId,\n configurationTargetContainers: [\n new ConfigurationTargetContainer({\n targetContainerNamespace: (formValue.targetContainer as TargetContainer).id,\n targetContainerNamespaceType: this.targetContainerTypeToEnum(formValue.targetContainerType!),\n }),\n ],\n objectApplicationSelections: objectApplicationSelections,\n }),\n )\n .pipe(take(1))\n .subscribe({\n next: () => {\n this.snackBarService.openSuccessSnack('Application process started');\n this.dialogRef.close();\n },\n error: () => {\n this.snackBarService.openErrorSnack('Error applying configuration');\n },\n });\n }\n\n targetContainerTypeToEnum(type?: string): TargetContainerNamespaceType {\n if (!type) {\n return TargetContainerNamespaceType.TARGET_CONTAINER_NAMESPACE_UNSPECIFIED;\n }\n switch (type) {\n case 'account-group':\n return TargetContainerNamespaceType.TARGET_CONTAINER_NAMESPACE_ACCOUNT_GROUP;\n case 'group':\n return TargetContainerNamespaceType.TARGET_CONTAINER_NAMESPACE_GROUP;\n default:\n return TargetContainerNamespaceType.TARGET_CONTAINER_NAMESPACE_UNSPECIFIED;\n }\n }\n\n displayFn(opt: TargetContainer): string {\n return opt ? opt.name : '';\n }\n}\n","
\n

{{ 'CONFIG_APPLIER.TITLE' | translate }}

\n \n
\n

Select Target

\n
\n
\n
\n \n \n {{\n 'CONFIG_APPLIER.CONTAINER_TYPE.ACCOUNT_GROUP' | translate\n }}\n {{\n 'CONFIG_APPLIER.CONTAINER_TYPE.MULTI_LOCATION_GROUP' | translate\n }}\n \n \n
\n
\n \n \n \n \n {{ option.name }}\n \n \n \n
\n
\n
\n
\n
\n

Select Objects to Apply

\n
\n \n
\n
\n
\n \n \n \n \n
\n","import { Component, Inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport {\n MAT_DIALOG_DATA,\n MatDialogActions,\n MatDialogClose,\n MatDialogContent,\n MatDialogRef,\n MatDialogTitle,\n} from '@angular/material/dialog';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { MatButton } from '@angular/material/button';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatIconModule } from '@angular/material/icon';\nimport { ConfigOption } from '../../config-editor/config-options/options.component';\n\n@Component({\n selector: 'config-manager-config-view-dialog',\n standalone: true,\n imports: [\n CommonModule,\n MatDialogContent,\n MatDialogTitle,\n TranslateModule,\n MatDialogActions,\n MatButton,\n MatDialogClose,\n MatExpansionModule,\n MatIconModule,\n ],\n templateUrl: './config-view-dialog.component.html',\n styleUrls: ['./config-view-dialog.component.scss'],\n})\nexport class ConfigViewDialogComponent {\n constructor(\n public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: { configOptions: ConfigOption[]; name: string; source: string },\n ) {}\n}\n","
\n

{{ data.name }}

\n \n
\n {{ 'CONFIG_CARD.SOURCE' | translate }}:\n {{ data.source }}\n
\n \n 0\"\n >\n \n
{{ option.name }}
\n
\n\n
0\">\n
\n {{ subOption.name }}\n
\n
\n \n
\n
\n \n \n \n
\n","import { CommonModule } from '@angular/common';\nimport { Component, inject, Input } from '@angular/core';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ConfigManagerI18nModule } from '../../assets/i18n/config-manager-i18n.module';\nimport { ExtendedConfiguration } from '../config-list.component';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ConfigApplierDialogComponent } from '../../config-applier/dialog/config-applier-dialog.component';\nimport { typedObjectContainersToConfigOptions } from '../../utils';\nimport { ConfigViewDialogComponent } from '../../config-view/dialog/config-view-dialog.component';\n\n@Component({\n selector: 'config-card',\n templateUrl: './config-card.component.html',\n styleUrls: ['./config-card.component.scss'],\n standalone: true,\n imports: [\n CommonModule,\n TranslateModule,\n MatCardModule,\n MatIconModule,\n MatButtonModule,\n MatChipsModule,\n ConfigManagerI18nModule,\n ],\n})\nexport class ConfigCardComponent {\n @Input({ required: true }) config!: ExtendedConfiguration;\n dialog = inject(MatDialog);\n\n applyConfiguration(): void {\n this.dialog.open(ConfigApplierDialogComponent, {\n data: {\n configurationId: this.config.configurationId,\n configOptions: typedObjectContainersToConfigOptions(this.config.configurationVersion.objectTypes, true),\n },\n });\n }\n\n openConfigViewDialog(): void {\n this.dialog.open(ConfigViewDialogComponent, {\n data: {\n name: this.config.name,\n source: this.config.configurationVersion.sourceNamespaceObject.napData.companyName,\n configOptions: typedObjectContainersToConfigOptions(this.config.configurationVersion.objectTypes, true),\n },\n });\n }\n}\n","
\n \n \n
\n {{ config.name }}\n
\n
\n\n \n
\n {{ 'CONFIG_CARD.SOURCE' | translate }}:\n {{ config.configurationVersion.sourceNamespaceObject.napData.companyName }}\n
\n\n
\n
\n {{ 'CONFIG_CARD.CONTAINS' | translate }}:\n
\n \n {{ item.objects.length }} {{ item.typeName }}\n \n
\n
\n
\n
\n\n \n \n \n
\n
\n","import { Component, inject, OnInit, signal } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatCardModule } from '@angular/material/card';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ConfigManagerI18nModule } from '../assets/i18n/config-manager-i18n.module';\nimport {\n Configuration,\n ConfigurationManagementApiService,\n ConfigurationOwner,\n ConfigurationVersion,\n ListConfigurationsRequest,\n OwnerNamespaceType,\n PagedRequestOptions,\n} from '@vendasta/configuration-management';\nimport { ConfigCardComponent } from './config-card/config-card.component';\nimport { switchMap, map, take } from 'rxjs';\nimport { AccountGroupService, ProjectionFilter, AccountGroup } from '@galaxy/account-group';\nimport { PARTNER_ID_TOKEN } from '../tokens';\nimport { toSignal } from '@angular/core/rxjs-interop';\nexport interface ExtendedConfigurationVersion extends ConfigurationVersion {\n sourceNamespaceObject: AccountGroup;\n}\nexport interface ExtendedConfiguration extends Configuration {\n configurationVersion: ExtendedConfigurationVersion;\n}\n@Component({\n selector: 'config-list',\n standalone: true,\n imports: [CommonModule, MatCardModule, ConfigCardComponent, TranslateModule, ConfigManagerI18nModule],\n templateUrl: './config-list.component.html',\n styleUrls: ['./config-list.component.scss'],\n})\nexport class ConfigListComponent implements OnInit {\n configs = signal([]);\n private accountGroupService = inject(AccountGroupService);\n private configService = inject(ConfigurationManagementApiService);\n private readonly partnerId = toSignal(inject(PARTNER_ID_TOKEN));\n ngOnInit(): void {\n this.loadListData();\n }\n\n loadListData(): void {\n const now = new Date();\n const lastWeek = new Date(now);\n lastWeek.setDate(lastWeek.getDate() - 7);\n\n this.configService\n .listConfigurations(\n new ListConfigurationsRequest({\n configurationOwner: new ConfigurationOwner({\n ownerNamespace: this.partnerId(),\n ownerNamespaceType: OwnerNamespaceType.OWNER_NAMESPACE_PARTNER,\n }),\n pagingOptions: new PagedRequestOptions({\n pageSize: 10,\n }),\n }),\n )\n .pipe(\n take(1),\n switchMap((configs) => {\n const agIDs = configs.configuration.map((config) => config.configurationVersion.sourceNamespace);\n return this.accountGroupService.getMulti(agIDs, new ProjectionFilter({ napData: true })).pipe(\n map((response: AccountGroup[]) => {\n const extendedConfigs: ExtendedConfiguration[] = [];\n configs.configuration.forEach((config, i) => {\n const extendedVersion = {\n ...config.configurationVersion,\n sourceNamespaceObject: response[i],\n } as ExtendedConfigurationVersion;\n\n extendedConfigs.push(\n new Configuration({\n ...config,\n configurationVersion: extendedVersion,\n }) as ExtendedConfiguration,\n );\n });\n return extendedConfigs;\n }),\n );\n }),\n )\n .subscribe((configs) => {\n this.configs.set(configs);\n });\n }\n}\n","
\n
\n
\n \n
\n\n
\n

{{ 'CONFIG_LIST.NO_CONFIGURATIONS' | translate }}

\n
\n
\n
\n","import { Component, inject, ViewChild } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CONFIG_MANAGER_CONFIG_TOKEN } from '../tokens';\nimport { ConfigEditorDialogComponent } from '../config-editor/dialog/config-editor-dialog.component';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatButtonModule } from '@angular/material/button';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ConfigManagerI18nModule } from '../assets/i18n/config-manager-i18n.module';\nimport { ConfigListComponent } from '../config-list/config-list.component';\n\n@Component({\n selector: 'config-manager',\n standalone: true,\n imports: [CommonModule, TranslateModule, ConfigManagerI18nModule, ConfigListComponent, MatButtonModule],\n templateUrl: './config-manager.component.html',\n styleUrls: ['./config-manager.component.scss'],\n})\nexport class ConfigManagerComponent {\n @ViewChild(ConfigListComponent) configList!: ConfigListComponent;\n\n title = 'Configuration Manager';\n private config = inject(CONFIG_MANAGER_CONFIG_TOKEN);\n partnerId$ = this.config.partnerId$;\n dialog = inject(MatDialog);\n\n openConfigDialog(): void {\n const dialogRef = this.dialog.open(ConfigEditorDialogComponent);\n\n dialogRef.afterClosed().subscribe((result) => {\n if (result?.success) {\n this.configList.loadListData();\n }\n });\n }\n}\n","
\n
\n
\n

{{ 'CONFIG_MANAGER.CONFIGURATIONS' | translate }}

\n
\n
\n \n
\n
\n\n \n
\n","import { inject, NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { KnowledgeSourceManagementComponent } from '@galaxy/ai-knowledge';\nimport { Language } from '@galaxy/atlas/core';\n// eslint-disable-next-line @nx/enforce-module-boundaries\nimport {\n LOCALE_DATA_TYPE,\n PREVIEW_DATA_SELECTOR_COMPONENT_TOKEN,\n SUPPORTED_LOCALES_TOKEN,\n} from '@galaxy/campaign/dependencies';\nimport { ActivityTableComponent, LinkActivityComponent } from '@galaxy/email-ui/email-activity';\nimport { EMAIL_LIBRARY_BASE_URL_TOKEN } from '@galaxy/email-ui/email-library/src/shared';\nimport { LanguageMap } from '@vendasta/galaxy/i18n';\nimport { of } from 'rxjs';\nimport { devServer } from '../globals';\nimport { AccessRestrictedComponent } from './access';\nimport { AccessDeniedComponent } from './access-denied/access-denied.component';\nimport { AccountDeleteComponent } from './accounts';\nimport { AccountAddToListComponent } from './accounts/account-add-to-list.component';\nimport { ActionListsOverviewComponent } from './action-lists';\nimport { ActionListsDetailsComponent } from './action-lists/action-lists-details.component';\nimport { VendastaPaymentsGuard } from './billing/vendasta-payments.guard';\nimport { BulkImportComponent } from './bulk-import/bulk-import.component';\nimport { CampaignAccountSelectorComponent } from './campaigns/account-selector/campaign-account-selector.component';\nimport { CampaignConfigFactory } from './campaigns/providers';\nimport { VariableMenuDialogComponent } from './common/variable-menu/variable-menu-dialog/variable-menu-dialog.component';\nimport { Feature } from './core/access';\nimport { Views } from './core/access/interface';\nimport { AccessDashboardGuard, AccessFeatureFlagGuard } from './core/guards';\nimport { AccessAllMarketsGuard } from './core/guards/access-all-markets.service';\nimport { AccessBillingGuard } from './core/guards/access-billing-guard.service';\nimport { AccessBusinessPrioritiesGuard } from './core/guards/access-business-priorities-guard.service';\nimport { AccessFeatureGuard } from './core/guards/access-feature-guard.service';\nimport { AccessIsAdminGuard } from './core/guards/access-is-admin-guard.service';\nimport { AccessPartnerAdminViewGuard } from './core/guards/access-partner-admin-view-guard.service';\nimport { AccessViewGuard } from './core/guards/access-view-guard.service';\nimport { AutomationsGuard } from './core/guards/automations-guard';\nimport { EmbedGuard } from './core/guards/embed.guard';\nimport { FacebookAdLeadsGuard } from './core/guards/facebook-ad-leads-guard';\nimport { InboxModalGuard } from './core/guards/inbox-modal.guard';\nimport { ManageAccountsGuard } from './core/guards/manage-accounts-guard.service';\nimport { SalespeopleGuard } from './core/guards/salespeople-guard.service';\nimport { PendingChangesGuard } from './core/guards/pending-changes-guard.service';\nimport { RetailBillingGuard } from './core/guards/retail-billing.guard';\nimport { SignUpGuard } from './core/guards/sign-up-guard.service';\nimport { CustomizeExecReportComponent } from './customize-design';\nimport { OrderConfigComponent } from './customize-design/order-config/order-config.component';\nimport { OrderSetupComponent } from './customize-design/order-setup/order-setup.component';\nimport { OrderDeclineReasonsConfigComponent } from './customize-design/sales-orders-decline-reasons/sales-orders-decline-reasons.component';\nimport { EmailBuilderSandboxComponent } from './email-builder-sandbox/email-builder-sandbox.component';\nimport { EmailSettingsComponent } from './email-settings/email-settings.component';\nimport { EmbedComponent, EmbedLocalComponent } from './embed';\nimport { FacebookRoutes } from './facebook-ad-leads/facebook-ad-leads.module';\nimport { HelpCenterComponent } from './help-center/help-center.component';\nimport { LocalLoginComponent } from './local-login';\nimport { PageNotFoundComponent } from './page-not-found/page-not-found.component';\nimport { CompanyProfileComponent } from './partner/company-profile.component';\nimport { PipelineViewRouterGuard } from './pipeline/view-router';\nimport { ProductOrderFormProxyComponent } from './product-order-form-proxy/product-order-form-proxy.component';\nimport { TermsOfServiceComponent } from './terms-of-service';\n// eslint-disable-next-line @nx/enforce-module-boundaries\nimport { CONFIG_TOKEN } from '@galaxy/campaign/shared/tokens';\nimport { ForgotPasswordGuard } from './core/guards/forgot-password-guard';\nimport { AI_ASSISTANT_ROUTES } from '@galaxy/ai-assistant';\nimport { ConfigManagerComponent } from '@vendasta/config-manager';\nimport { FeatureFlags } from './core/features';\nimport { PartnerCRMCategoryService } from './crm/category.service';\n\n/** Add routes for new angular component here, or as legacy components are replaced */\nexport const routes: Routes = [\n {\n path: 'login-two',\n loadChildren: () => import('./login/login.module').then((m) => m.LoginModule),\n data: { noNavbar: true, noCardCheck: true },\n },\n {\n path: 'forgot-password',\n component: ForgotPasswordGuard,\n canActivate: [ForgotPasswordGuard],\n data: { noCardCheck: true },\n },\n {\n path: 'forgot-password-two',\n component: ForgotPasswordGuard,\n canActivate: [ForgotPasswordGuard],\n data: { noCardCheck: true },\n },\n { path: 'app', component: EmbedComponent, canActivate: [EmbedGuard], data: { noCardCheck: true } },\n { path: 'vstatic', component: EmbedComponent, canActivate: [EmbedGuard], data: { noCardCheck: true } },\n {\n path: 'signup',\n pathMatch: 'full',\n component: SignUpGuard,\n canActivate: [SignUpGuard],\n data: { noCardCheck: true },\n },\n {\n path: 'sign-up/',\n pathMatch: 'full',\n component: SignUpGuard,\n canActivate: [SignUpGuard],\n data: { noCardCheck: true },\n },\n {\n path: 'sign-up',\n pathMatch: 'full',\n component: SignUpGuard,\n canActivate: [SignUpGuard],\n data: { noCardCheck: true },\n },\n { path: 'terms-of-service', component: TermsOfServiceComponent, data: { noNavbar: true, noCardCheck: true } },\n { path: 'access-denied', component: AccessDeniedComponent, data: { noCardCheck: true } },\n {\n path: 'superadmin',\n loadChildren: () => import('./superadmin/superadmin.module').then((m) => m.SuperadminModule),\n data: { noCardCheck: true },\n },\n {\n path: 'user-onboarding',\n pathMatch: 'prefix',\n loadChildren: () =>\n import('./user-onboarding/new-user-onboarding-flow/user-onboarding-flow.module').then(\n (m) => m.UserOnboardingModule,\n ),\n },\n {\n path: '',\n loadChildren: () => import('./dashboard/dashboard.module').then((m) => m.DashboardModule),\n },\n {\n path: 'affiliates',\n loadChildren: () => import('./affiliates/affiliates.module').then((m) => m.AffiliateModule),\n },\n {\n path: 'marketplace/saas-metrics',\n redirectTo: 'saas-metrics',\n pathMatch: 'full',\n },\n { path: 'arm-dashboard', redirectTo: 'task-manager', pathMatch: 'full' },\n {\n path: 'concierge/users/manage',\n redirectTo: 'task-manager/users/manage',\n pathMatch: 'full',\n },\n {\n path: 'campaign/:campaignId/template/create',\n redirectTo: 'marketing/campaign/:campaignId/template/create',\n },\n {\n path: 'campaign/:campaignId/:campaignStepId/template/:templateId',\n redirectTo: 'marketing/campaign/:campaignId/template/create',\n },\n {\n path: 'campaign/:campaignId/:campaignStepId/template/:templateId',\n redirectTo: 'marketing/campaign/:campaignId/template/create',\n },\n { path: 'account/', redirectTo: 'account' },\n {\n path: 'account',\n loadChildren: () => import('./account/account.module').then((m) => m.AccountModule),\n },\n {\n path: 'bc-admin',\n loadChildren: () => import('./users/users.routing').then((m) => m.UsersRoutingModule),\n canActivate: [ManageAccountsGuard],\n data: { objectType: 'contact' },\n },\n {\n path: 'users',\n pathMatch: 'prefix',\n loadChildren: () => import('./unified-users/unified-users.module').then((m) => m.UnifiedUsersModule),\n },\n { path: 'manage-admins', pathMatch: 'prefix', redirectTo: '/my-team' },\n {\n path: 'my-team',\n pathMatch: 'prefix',\n canActivate: [AccessIsAdminGuard],\n loadChildren: () => import('./manage-team/manage-team.module').then((m) => m.ManageTeamModule),\n },\n {\n path: 'manage-accounts/bulk-update/wizard',\n component: devServer ? EmbedLocalComponent : EmbedComponent,\n canActivate: [AccessViewGuard],\n data: { view: Views.manageAccounts },\n },\n {\n path: 'manage-accounts/bulk-update/wizard/',\n redirectTo: 'manage-accounts/bulk-update/wizard',\n },\n {\n path: 'manage-accounts/bulk-update/history/',\n component: devServer ? EmbedLocalComponent : EmbedComponent,\n canActivate: [AccessViewGuard],\n data: { view: Views.manageAccounts },\n },\n {\n path: 'manage-accounts/bulk-update/history',\n redirectTo: 'manage-accounts/bulk-update/history/',\n },\n {\n path: 'customize-design/prospect-workflow/wizard/',\n component: devServer ? EmbedLocalComponent : EmbedComponent,\n },\n {\n path: 'customize-design/prospect-workflow/wizard',\n redirectTo: 'customize-design/prospect-workflow/wizard/',\n },\n {\n path: 'customize-design/markets/:marketId/customize-sales-orders',\n component: OrderConfigComponent,\n canActivate: [AccessFeatureGuard],\n data: { feature: Feature.salesOrders },\n },\n {\n path: 'customize-design/markets/:marketId/customize-executive-report',\n component: CustomizeExecReportComponent,\n canActivate: [AccessFeatureGuard, AccessViewGuard],\n data: { feature: Feature.executiveReport },\n },\n {\n path: 'customize-design/customize-sales-orders',\n component: OrderConfigComponent,\n canActivate: [AccessFeatureGuard],\n data: { feature: Feature.salesOrders },\n },\n {\n path: 'customize-design/sales-orders-decline-reasons',\n component: OrderDeclineReasonsConfigComponent,\n canActivate: [AccessFeatureGuard],\n data: { feature: Feature.salesOrders },\n },\n {\n path: 'customize-design/markets/:marketId/sales-center-config',\n component: OrderSetupComponent,\n canActivate: [AccessFeatureGuard],\n data: { feature: Feature.salesOrders },\n },\n {\n path: 'customize-design/markets/:marketId/',\n redirectTo: 'customize-design/markets',\n },\n {\n path: 'customize-design/markets/',\n component: devServer ? EmbedLocalComponent : EmbedComponent,\n canActivate: [AccessFeatureGuard, AccessViewGuard],\n data: { feature: Feature.whitelabel, view: Views.customizePlatform },\n },\n {\n path: 'customize-design/markets',\n redirectTo: 'customize-design/markets/',\n },\n {\n path: 'customize-design',\n component: devServer ? EmbedLocalComponent : EmbedComponent,\n canActivate: [AccessFeatureGuard, AccessViewGuard],\n data: { feature: Feature.whitelabel, view: Views.customizePlatform },\n },\n {\n path: 'customize-design/',\n redirectTo: 'customize-design',\n },\n {\n path: 'customize-branding',\n loadChildren: () => import('./customize-branding/customize-branding.module').then((m) => m.CustomizeBrandingModule),\n canActivate: [AccessFeatureGuard, AccessViewGuard],\n data: { feature: Feature.whitelabel, view: Views.customizePlatform },\n },\n {\n path: 'customize-design/default-notifications',\n loadChildren: () =>\n import('./user-notifications/notification-preferences.module').then((m) => m.NotificationPreferencesModule),\n canActivate: [AccessViewGuard],\n data: { view: Views.customizePlatform },\n },\n {\n path: 'customize-design/customize-executive-report',\n component: CustomizeExecReportComponent,\n canActivate: [AccessFeatureGuard],\n data: { feature: Feature.executiveReport },\n },\n {\n path: 'manage-business-app',\n loadChildren: () =>\n import('./manage-business-app/manage-business-app.module').then((m) => m.ManageBusinessAppModule),\n canActivate: [AccessViewGuard],\n data: { view: Views.manageAccounts },\n },\n {\n path: 'manage-accounts/files',\n loadChildren: () => import('./files/files.module').then((m) => m.FilesModule),\n canActivate: [AccessViewGuard],\n data: { view: Views.manageAccounts },\n },\n {\n path: 'action-lists/manage',\n component: ActionListsOverviewComponent,\n canActivate: [AccessFeatureGuard, AccessViewGuard],\n data: { feature: Feature.lists, view: Views.manageAccounts },\n },\n {\n path: 'action-lists/manage/:listType',\n component: ActionListsOverviewComponent,\n canActivate: [AccessFeatureGuard, AccessViewGuard],\n data: { feature: Feature.lists, view: Views.manageAccounts },\n },\n {\n path: 'action-lists/:actionListId/:tabId',\n component: ActionListsDetailsComponent,\n canActivate: [AccessFeatureGuard, AccessViewGuard],\n data: { feature: Feature.lists, view: Views.manageAccounts },\n },\n { path: 'bulk-import', component: BulkImportComponent },\n // TODO: If you know of a spot that navigates to these urls, just navigate directly to the activation/order-form-page route.\n {\n path: 'manage-accounts/activate-products',\n component: ProductOrderFormProxyComponent, // use temporarily until account create navigation is fixed\n canActivate: [AccessViewGuard],\n data: { view: Views.manageAccounts },\n },\n {\n path: 'company-profile',\n component: CompanyProfileComponent,\n canActivate: [AccessViewGuard],\n data: { view: Views.companyProfile },\n },\n { path: 'restricted/:featureId', component: AccessRestrictedComponent },\n {\n path: 'configure/brand-analytics',\n component: devServer ? EmbedLocalComponent : EmbedComponent,\n canActivate: [AccessFeatureGuard],\n data: { feature: Feature.brands },\n },\n {\n path: 'brands',\n loadChildren: () => import('./brands/brands.module').then((m) => m.BrandsModule),\n canActivate: [AccessFeatureGuard, AccessViewGuard],\n data: { feature: Feature.brands, view: Views.manageAccounts },\n },\n {\n path: 'nb',\n component: devServer ? EmbedLocalComponent : EmbedComponent,\n canActivate: [AccessFeatureGuard],\n data: { feature: Feature.brands },\n },\n {\n path: 'campaigns/acquire',\n component: devServer ? EmbedLocalComponent : EmbedComponent,\n canActivate: [AccessFeatureGuard],\n data: { feature: Feature.marketingAutomation },\n },\n {\n path: 'campaigns/adopt',\n component: devServer ? EmbedLocalComponent : EmbedComponent,\n canActivate: [AccessFeatureGuard],\n data: { feature: Feature.marketingAutomation },\n },\n {\n path: 'campaigns/upsell',\n component: devServer ? EmbedLocalComponent : EmbedComponent,\n canActivate: [AccessFeatureGuard],\n data: { feature: Feature.marketingAutomation },\n },\n {\n path: 'campaign/details',\n component: devServer ? EmbedLocalComponent : EmbedComponent,\n canActivate: [AccessFeatureGuard],\n data: { feature: Feature.marketingAutomation },\n },\n {\n path: 'campaign/accounts/:id',\n component: devServer ? EmbedLocalComponent : EmbedComponent,\n canActivate: [AccessFeatureGuard],\n data: { feature: Feature.marketingAutomation },\n },\n {\n path: 'campaign-settings',\n redirectTo: 'email-settings',\n },\n {\n path: 'email-settings',\n component: EmailSettingsComponent,\n canActivate: [AccessAllMarketsGuard, AccessViewGuard],\n canDeactivate: [PendingChangesGuard],\n data: { view: Views.partnerMarketing },\n },\n {\n path: 'email-builder-sandbox',\n component: EmailBuilderSandboxComponent,\n },\n {\n path: 'help',\n component: HelpCenterComponent,\n },\n //Lazy Loaded Routes\n {\n path: 'saas-metrics',\n loadChildren: () => import('./saas-metrics/saas-metrics.module').then((m) => m.SaasMetricsModule),\n canActivate: [AccessDashboardGuard],\n },\n {\n path: 'reports',\n loadChildren: () => import('@galaxy/reports/dynamic').then((m) => m.ReportingModule),\n },\n {\n path: 'marketplace',\n loadChildren: () => import('./marketplace-app/marketplace-app.module').then((m) => m.MarketplaceAppModule),\n canActivate: [AccessViewGuard],\n data: { view: Views.marketplace },\n },\n {\n path: 'billing',\n loadChildren: () => import('./billing/billing.module').then((m) => m.BillingModule),\n canLoad: [AccessBillingGuard],\n },\n {\n path: 'failed-payments',\n loadChildren: () => import('./billing/failed-payments/failed-payments.module').then((m) => m.FailedPaymentsModule),\n },\n {\n path: 'payouts',\n loadComponent: () => import('./billing/payouts/payouts-page.component').then((m) => m.PayoutsPageComponent),\n canActivate: [RetailBillingGuard, VendastaPaymentsGuard],\n },\n {\n path: 'payouts/:payoutId',\n loadComponent: () =>\n import('./billing/payouts/payout-details/payout-details-page.component').then(\n (m) => m.PayoutDetailsPageComponent,\n ),\n canActivate: [RetailBillingGuard, VendastaPaymentsGuard],\n },\n {\n path: 'subscriptions',\n loadComponent: () =>\n import('@galaxy/partner-center-client/billing/dynamic/pages/subscription-page').then(\n (m) => m.SubscriptionsPageComponent,\n ),\n canActivate: [RetailBillingGuard],\n },\n {\n path: 'settings',\n loadChildren: () => import('./settings/settings.module').then((m) => m.SettingsModule),\n canActivate: [AccessViewGuard],\n data: { view: Views.partnerAll },\n },\n {\n path: 'administration',\n loadChildren: () => import('./administration/administration.module').then((m) => m.AdministrationModule),\n },\n {\n path: 'auxiliary-data',\n loadChildren: () =>\n import('./auxiliary-data/crm-custom-fields/crm-custom-field-management.module').then(\n (m) => m.CrmCustomFieldManagementModule,\n ),\n canActivate: [AccessFeatureGuard],\n data: { feature: Feature.customFields },\n },\n {\n path: 'custom-fields',\n loadChildren: () =>\n import('./auxiliary-data/crm-custom-fields/crm-custom-field-management.module').then(\n (m) => m.CrmCustomFieldManagementModule,\n ),\n canActivate: [AccessFeatureGuard, AccessViewGuard],\n data: { feature: Feature.customFields, view: Views.partnerAll },\n },\n {\n path: 'custom-forms',\n loadChildren: () => import('./custom-forms/custom-forms.module').then((m) => m.CustomFormsModule),\n canActivate: [AccessViewGuard],\n data: { view: Views.partnerMarketing },\n },\n {\n path: 'st', // TODO: Stop using `st` and use `sales` instead.\n loadChildren: () => import('./sales/sales.module').then((m) => m.SalesModule),\n canActivate: [SalespeopleGuard],\n },\n {\n path: 'sales',\n loadChildren: () => import('./sales/sales.module').then((m) => m.SalesModule),\n canActivate: [SalespeopleGuard],\n },\n {\n path: 'marketing',\n loadChildren: () => import('./marketing/marketing.module').then((m) => m.MarketingModule),\n providers: [{ provide: CONFIG_TOKEN, useFactory: CampaignConfigFactory }],\n },\n {\n path: 'task-manager',\n loadChildren: () => import('./concierge/concierge.module').then((m) => m.ConciergeModule),\n canActivate: [AccessFeatureGuard, AccessViewGuard],\n data: { feature: Feature.concierge, view: Views.taskManager },\n },\n {\n path: 'order-management',\n loadChildren: () => import('./sales-orders/sales-orders.module').then((m) => m.SalesOrdersModule),\n canActivate: [AccessFeatureGuard],\n data: { feature: Feature.salesOrders },\n },\n {\n path: 'pipeline/table',\n loadChildren: () => import('./pipeline-table/pipeline-table-page.module').then((m) => m.PipelineTablePageModule),\n canActivate: [AccessFeatureGuard, PipelineViewRouterGuard],\n data: { feature: Feature.pipeline },\n },\n {\n path: 'pipeline/board',\n loadChildren: () => import('./pipeline-board/pipeline-board.module').then((m) => m.PipelineBoardModule),\n canActivate: [AccessFeatureGuard],\n data: { feature: Feature.pipeline },\n },\n {\n path: 'pipeline/settings',\n loadChildren: () =>\n import('./pipeline-settings-page/pipeline-settings-page.module').then((m) => m.PipelineSettingsPageModule),\n canActivate: [AccessFeatureGuard],\n data: { feature: Feature.pipeline },\n },\n {\n path: 'integrations/service-accounts',\n loadChildren: () =>\n import('./integrations/service-account/service-account.module').then((m) => m.ServiceAccountModule),\n canActivate: [AccessFeatureGuard, AccessViewGuard],\n data: { feature: Feature.serviceAccounts, view: Views.manageAdmins },\n },\n {\n path: 'integrations/sso',\n canActivate: [AccessViewGuard],\n data: { view: Views.partnerAll },\n loadChildren: () =>\n import('./integrations/identity-provider-config/identity-provider-config.module').then(\n (m) => m.IdentityProviderConfigModule,\n ),\n },\n {\n path: 'action-lists/user-list',\n loadChildren: () => import('./action-lists/users/user-list.module').then((m) => m.UserListModule),\n canActivate: [AccessFeatureGuard, AccessViewGuard],\n data: { feature: Feature.lists, view: Views.manageAccounts },\n },\n {\n path: 'upgrade',\n loadChildren: () =>\n import('./upgrade-subscription-tier/upgrade-subscription-tier.module').then(\n (m) => m.UpgradeSubscriptionTierModule,\n ),\n },\n {\n path: 'upgrade-subscription-tier',\n loadChildren: () =>\n import('./upgrade-subscription-tier/upgrade-subscription-tier.module').then(\n (m) => m.UpgradeSubscriptionTierModule,\n ),\n },\n {\n path: 'subscription-tier',\n loadChildren: () => import('./subscription-tier/subscription-tier.module').then((m) => m.SubscriptionTierModule),\n canLoad: [AccessBillingGuard],\n },\n {\n path: 'translate',\n loadChildren: () => import('./translate-portal/translate-portal.module').then((m) => m.TranslatePortalModule),\n canActivate: [() => inject(AccessPartnerAdminViewGuard).canActivate()],\n },\n {\n path: 'manage-accounts/duplicates',\n loadChildren: () =>\n import('./duplicate-accounts/duplicate-accounts.module').then((m) => m.DuplicateAccountsFeatureModule),\n canActivate: [AccessViewGuard],\n data: { view: Views.manageAccounts },\n },\n {\n path: 'manage-accounts',\n loadChildren: () => import('./manage_accounts/manage-accounts.module').then((m) => m.ManageAccountsModule),\n canActivate: [AccessViewGuard],\n data: { objectType: 'company', view: Views.manageAccounts },\n },\n {\n path: 'business',\n loadChildren: () => import('./business/business.module').then((m) => m.BusinessModule),\n canActivate: [AccessViewGuard],\n data: { view: Views.manageAccounts },\n },\n {\n // This route will remain on the same page after adding to the list.\n path: 'businesses/accounts/:accountGroupId/addToList',\n outlet: 'action',\n component: AccountAddToListComponent,\n },\n {\n path: 'order-fulfillment',\n loadComponent: () =>\n import('./fulfillment/order-fulfillment-table/order-fulfillment-table.component').then(\n (m) => m.OrderFulfillmentTableComponent,\n ),\n },\n {\n // This route will remain on the same page after the delete succeeds.\n path: 'businesses/accounts/:accountGroupId/delete',\n outlet: 'action',\n component: AccountDeleteComponent,\n },\n {\n // This route will redirect the user to the manage accounts screen when the delete succeeds.\n path: 'businesses/accounts/:accountGroupId/delete/redirect',\n outlet: 'action',\n component: AccountDeleteComponent,\n },\n {\n path: 'partnerId/:partnerId/custom-fields/:objectTypeId/object/:objectId',\n outlet: 'action',\n loadComponent: () => import('@vendasta/auxiliary-data-components').then((m) => m.CustomFieldsDialogComponent),\n },\n {\n path: 'partnerId/:partnerId/custom-fields/:objectTypeId/object/:objectId/disableManage/:disableManage',\n outlet: 'action',\n loadComponent: () => import('@vendasta/auxiliary-data-components').then((m) => m.CustomFieldsDialogComponent),\n },\n {\n path: 'businesses/accounts/:accountGroupId/activation',\n loadChildren: () => import('./activation/activation.module').then((m) => m.ActivationModule),\n },\n {\n path: 'businesses',\n loadChildren: () => import('./businesses/business.module').then((m) => m.BusinessModule),\n },\n {\n path: 'customize-business-priorities',\n loadChildren: () =>\n import('./customize-business-priorities/customize-business-priorities.module').then(\n (m) => m.CustomizeBusinessPrioritiesModule,\n ),\n canActivate: [AccessBusinessPrioritiesGuard],\n },\n {\n path: 'customize-business-app',\n loadChildren: () =>\n import('./customize-business-app/customize-business-app.module').then((m) => m.CustomizeBusinessAppModule),\n canActivate: [AccessFeatureGuard],\n data: { feature: Feature.customizeBusinessApp },\n },\n {\n path: 'automations',\n loadChildren: () => import('@galaxy/automata').then((m) => m.AutomationsModule),\n canActivate: [AutomationsGuard],\n data: { feature: Feature.automations },\n },\n {\n path: 'automation-templates',\n redirectTo: '/automations?tab=templates',\n },\n {\n path: 'account-configurations',\n component: ConfigManagerComponent,\n canMatch: [AccessFeatureFlagGuard],\n data: { featureFlag: FeatureFlags.ACCOUNT_CONFIGURATIONS },\n },\n {\n path: FacebookRoutes.ROOT,\n loadChildren: () => import('./facebook-ad-leads/facebook-ad-leads.module').then((m) => m.FacebookAdLeadsModule),\n canActivate: [FacebookAdLeadsGuard],\n },\n {\n path: 'ai-knowledge',\n component: KnowledgeSourceManagementComponent,\n canActivate: [AccessViewGuard],\n data: {\n view: Views.partnerAll,\n previousPageTitle: 'ADMINISTRATION.PAGE_TITLE',\n previousPageUrl: '/settings',\n },\n },\n {\n path: 'integrations',\n canActivate: [AccessViewGuard],\n data: { view: Views.partnerAll },\n loadChildren: () => import('@galaxy/platform-integrations').then((m) => m.PlatformIntegrationsLibModule),\n },\n {\n path: 'invoices',\n loadChildren: () => import('./invoice/invoice.module').then((m) => m.InvoiceModule),\n canActivate: [RetailBillingGuard],\n },\n { path: 'variable-menu', component: VariableMenuDialogComponent, data: { noNavbar: true } },\n {\n path: 'crm',\n loadChildren: () => import('./crm/partner-crm.module').then((m) => m.PartnerCrmModule),\n resolve: { partnerCRMCategory: () => inject(PartnerCRMCategoryService) },\n },\n {\n path: 'ai',\n children: [\n ...AI_ASSISTANT_ROUTES,\n {\n path: 'knowledge-base',\n component: KnowledgeSourceManagementComponent,\n },\n ],\n canActivate: [AccessViewGuard],\n data: { view: Views.partnerAll },\n },\n {\n path: 'score/Contact/:fieldId',\n redirectTo: 'score',\n pathMatch: 'full',\n },\n {\n path: 'score',\n loadChildren: () => import('./crm/partner-score.module').then((m) => m.PartnerScoreModule),\n canActivate: [AccessFeatureGuard, AccessViewGuard],\n data: { feature: Feature.crmLeadScore, view: Views.editCrmLeadScore },\n },\n {\n path: 'lists',\n loadChildren: () => import('./crm/partner-dynamic-lists.module').then((m) => m.PartnerDynamicListsModule),\n },\n {\n path: 'prospect',\n loadChildren: () => import('./crm/prospector/prospector.module').then((m) => m.CrmProspectorModule),\n canActivate: [AccessFeatureGuard],\n data: { feature: Feature.crmLeadProspector },\n },\n {\n path: 'email-activity/:attributeKey/:attributeValue',\n component: ActivityTableComponent,\n },\n {\n path: 'link-activity/:attributeKey/:attributeValue',\n component: LinkActivityComponent,\n },\n {\n path: 'products',\n redirectTo: '/marketplace/products',\n },\n {\n path: 'business-directory',\n redirectTo: 'businesses/directory',\n },\n {\n path: 'arm-dashboard',\n redirectTo: 'task-manager',\n },\n {\n path: 'concierge/users/manage',\n redirectTo: 'task-manager/users/manage',\n },\n {\n path: 'concierge/reporting',\n redirectTo: 'task-manager/reporting',\n },\n {\n path: 'manage-admins/user/create',\n redirectTo: 'my-team',\n },\n {\n path: 'manage-admins/user/edit',\n redirectTo: 'my-team',\n },\n {\n path: 'manage-admins',\n redirectTo: 'my-team',\n },\n {\n path: 'billing-reports',\n redirectTo: 'billing/reports',\n },\n {\n path: 'billing-metrics',\n redirectTo: 'billing/metrics',\n },\n {\n path: 'billing/invoices',\n redirectTo: 'billing/documents/sales-invoices',\n },\n {\n path: 'service-accounts',\n redirectTo: 'integrations/service-accounts',\n },\n {\n path: 'st/campaign-stats',\n redirectTo: 'st/sales-overview',\n },\n {\n path: 'st/campaign-stats/details',\n redirectTo: 'st/sales-overview',\n },\n {\n path: 'manage-accounts/create',\n redirectTo: 'business/create',\n },\n {\n path: 'st/manage-leads/manage-accounts/create',\n redirectTo: 'business/create',\n },\n {\n path: 'manage-accounts/business-search',\n redirectTo: 'business/search',\n },\n {\n path: 'st/manage-leads/manage-accounts/business-search',\n redirectTo: 'business/search',\n },\n {\n path: 'manage-accounts/verify',\n redirectTo: 'business/search',\n },\n {\n path: 'st/manage-leads/manage-accounts/verify',\n redirectTo: 'business/search',\n },\n {\n path: 'manageAccounts',\n redirectTo: 'manage-accounts',\n },\n {\n path: 'manage-accounts/import-list/wizard',\n redirectTo: 'bulk-import',\n },\n {\n path: 'marketing/snapshot-widget',\n redirectTo: 'marketing/widget',\n },\n {\n path: 'marketing/snapshot-widget/wizard',\n redirectTo: 'marketing/widget',\n },\n {\n path: 'inbox',\n outlet: 'inbox',\n loadChildren: () => import('@galaxy/conversation/inbox').then((m) => m.INBOX_ROUTES),\n },\n {\n path: 'inbox/channel/:id',\n children: [],\n canActivate: [InboxModalGuard],\n },\n {\n // This is a hidden URL for an in-development feature.\n path: 'sequences',\n loadChildren: () => import('@galaxy/sequences').then((m) => m.SequencesModule),\n },\n {\n // Note, this is a hidden URL for an in-development feature.\n // The released/legacy campaign UI is under \"marketing\".\n path: 'campaigns',\n loadChildren: () => import('@galaxy/campaign').then((m) => m.CampaignModule),\n providers: [\n { provide: CONFIG_TOKEN, useFactory: CampaignConfigFactory },\n {\n provide: PREVIEW_DATA_SELECTOR_COMPONENT_TOKEN,\n useValue: CampaignAccountSelectorComponent,\n },\n {\n provide: SUPPORTED_LOCALES_TOKEN,\n useFactory: (): LOCALE_DATA_TYPE => {\n return of(\n LanguageMap.filter(\n (lang) =>\n [Language.ENGLISH, Language.FRENCH_FRANCE, Language.CZECH, Language.DUTCH]\n .map((l) => l.toString())\n .indexOf(lang.code) > -1,\n ).map((lang) => {\n return { value: lang.code, name: lang.label };\n }),\n );\n },\n },\n ],\n },\n {\n path: 'goals',\n loadChildren: () => import('./goals/goals.module').then((m) => m.GoalsModule),\n canActivate: [AccessFeatureGuard],\n data: { feature: Feature.goals },\n },\n {\n path: 'training-resources',\n loadChildren: () =>\n import('./training-resources/partner-training-resources.module').then((m) => m.PartnerTrainingResourcesModule),\n canActivate: [SalespeopleGuard],\n },\n {\n path: 'events-and-meetings',\n loadChildren: () =>\n import('./meeting-scheduler/meeting-scheduler.module').then((m) => m.MeetingSchedulerRoutingModule),\n canActivate: [AccessFeatureGuard, AccessViewGuard],\n data: { feature: Feature.myMeetings, view: Views.salespersonAll },\n },\n { path: '**', component: PageNotFoundComponent },\n];\n\n@NgModule({\n imports: [\n RouterModule.forRoot(\n devServer\n ? [\n {\n path: 'login',\n component: LocalLoginComponent,\n data: { noNavbar: true },\n },\n ...routes,\n ]\n : routes,\n {\n anchorScrolling: 'enabled',\n paramsInheritanceStrategy: 'always',\n bindToComponentInputs: true,\n },\n ),\n ],\n providers: [\n {\n provide: EMAIL_LIBRARY_BASE_URL_TOKEN,\n useFactory: () => {\n return of('marketing/email-library');\n },\n },\n ],\n exports: [RouterModule],\n})\nexport class AppRoutingModule {}\n","import { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\nimport { DOCUMENT, Location } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n HostListener,\n inject,\n Inject,\n NgZone,\n OnDestroy,\n OnInit,\n QueryList,\n TemplateRef,\n ViewChildren,\n} from '@angular/core';\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { MatIconRegistry } from '@angular/material/icon';\nimport { MatDrawerMode } from '@angular/material/sidenav';\nimport { DomSanitizer, Title } from '@angular/platform-browser';\nimport { ActivatedRoute, RouteConfigLoadEnd, RouteConfigLoadStart, Router } from '@angular/router';\nimport { CustomUserDropdownItem } from '@galaxy/atlas';\nimport { Environment, EnvironmentService } from '@galaxy/core';\nimport { SubscriptionTierInterface, SubscriptionTiersService, UITheme, WhitelabelService } from '@galaxy/partner';\nimport { TranslateService } from '@ngx-translate/core';\nimport { getLocale } from '@vendasta/galaxy/i18n';\nimport { IAMService, User, UserIdentifier } from '@vendasta/iamv2';\nimport { ProductAnalyticsService } from '@vendasta/product-analytics';\nimport moment from 'moment';\nimport {\n BehaviorSubject,\n combineLatest,\n debounce,\n distinctUntilChanged,\n filter,\n interval,\n map,\n Observable,\n ReplaySubject,\n shareReplay,\n startWith,\n Subscription,\n switchMap,\n take,\n tap,\n} from 'rxjs';\nimport { devServer } from '../globals';\nimport { initializeWootric } from '../lib/wootric';\nimport { AnalyticsService } from './analytics';\nimport { AppConfig, AppConfigService, Product } from './app-config.service';\nimport type { MenuItem } from './app-nav-item.component';\nimport { FailedPaymentsService } from './billing/failed-payments/failed-payments.service';\nimport { AccessService, Feature, StubAccessService } from './core/access';\nimport { Views } from './core/access/interface';\nimport { BillingFeatureService } from './core/billing/billing-feature.service';\nimport { FeatureFlags } from './core/features';\nimport { NavigationService } from './core/navigation-service.service';\nimport { PartnerService } from './core/partner.service';\nimport { PartnerServiceV2 } from './core/partner.service.v2';\nimport { PartnerAjaxResponse } from './core/partner/partner-ajax.response';\nimport { UnifiedTOSService } from './core/tos-unified.service';\nimport { UrlService } from './core/url.service';\nimport { uiThemeFromEnum, uiThemeToEnum, UserBrandingService } from './core/user-branding.service';\nimport { HelpSideDrawerTemplateRefService } from './help-center/help-side-drawer/help-side-drawer-template-ref.service';\nimport {\n AccountGroupSearcherComponent,\n OmniSearchComponent,\n OmniSearchService,\n PartnerOverviewComponent,\n PartnerSwitcherComponent,\n UserSwitcherComponent,\n} from './omni-search';\nimport { Intent } from './omni-search/intent';\nimport { PartnerTrialStoreService, TrialStatus } from './core/partner';\nimport { StyleService } from '@vendasta/galaxy/style-service';\nimport { GalaxyTheme } from '@vendasta/galaxy/style-service/src/style.service';\nimport { GalaxyAiIconService } from '@vendasta/galaxy/ai-icon';\n\ndeclare let window: any;\ndeclare let initializeHotJar: any;\ndeclare let zE: any; // Zendesk wrapping function\ndeclare let Canny: any; // canny wrapping function\n\nconst DEFAULT_NAV_THEME = 'dark';\nconst DEFAULT_FAVICON_URL = 'favicon.ico';\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.scss'],\n standalone: false,\n})\nexport class AppComponent implements OnInit, AfterViewInit, OnDestroy {\n private styleService = inject(StyleService);\n private aiIconService = inject(GalaxyAiIconService);\n\n constructor(\n private failedPaymentsService: FailedPaymentsService, // Not used here, but needs to be instantiated at app root\n private zone: NgZone,\n private router: Router,\n private unifiedTosService: UnifiedTOSService,\n private analytics: AnalyticsService, // Not used here, but needs to be instantiated at app root\n private readonly configService: AppConfigService,\n private billingFeatureService: BillingFeatureService, // Not used here, but needs to be instantiated at app root\n private environmentService: EnvironmentService,\n private productAnalytics: ProductAnalyticsService,\n public dialog: MatDialog,\n private omniSearchService: OmniSearchService,\n @Inject(StubAccessService) private access: AccessService,\n private matIconRegistry: MatIconRegistry,\n private sanitizer: DomSanitizer,\n private translate: TranslateService,\n private readonly whitelabelService: WhitelabelService,\n private readonly partnerService: PartnerServiceV2,\n private route: ActivatedRoute,\n private readonly location: Location,\n private readonly partnerServiceV1: PartnerService,\n private readonly breakpointObserver: BreakpointObserver,\n private navService: NavigationService, // Not used here, but needs to be instantiated at app root\n private helpSideDrawerTemplateRefService: HelpSideDrawerTemplateRefService,\n private userBrandingService: UserBrandingService,\n private urlService: UrlService,\n @Inject(FeatureFlags.INBOX_AI_ATLAS_LINK)\n public readonly inboxAIFeatureFlag$: Observable,\n private readonly iamService: IAMService,\n private cdr: ChangeDetectorRef,\n @Inject(DOCUMENT) private readonly document: Document,\n private readonly title: Title,\n private partnerTrialStoreService: PartnerTrialStoreService,\n ) {\n // expose this component's navtheme and logo methods to the global scope\n window.ngAppComponent = {\n zone: this.zone,\n setWhiteLabelColor: (value: string) => this.setWhiteLabelColor(value),\n setNavTheme: (value: string) => this.setNavTheme(value),\n setWhiteLabelLogo: (value: string) => this.setWhiteLabelLogo(value),\n iframeClickHandler: () => this.iframeClickHandler(),\n revealOmnisearch: (event: any) => this.revealOmnisearch(event),\n ngRouter: this.router,\n component: this,\n };\n\n moment.locale(getLocale());\n\n // This is typically populated by here, but not when the app-config load failed and redirected within angular\n // to local login.\n if (this.configService.config) {\n this.partnerId = this.configService.config.partnerId;\n }\n\n this.initializeTitleAndFavIcon();\n }\n\n private subscriptions: Subscription[] = [];\n\n @ViewChildren('helpCenter') helpCenter: QueryList>;\n\n readonly helpCenterTemplateId = 'helpCenter';\n\n omnisearchDialogRef: MatDialogRef;\n\n content: string;\n userOptions: Array = [];\n\n hasAccessToMarkets$ = this.access.hasAccessToFeature(Feature.markets);\n\n partner$ = this.partnerServiceV1.partnerConfig$;\n\n configLoading$ = this.configService.loading$;\n private checkingPaymentRequired$$ = new BehaviorSubject(true);\n pageLoading$: Observable;\n loadingLazyModule = false;\n\n accountExecutive: string;\n userCanCustomizeWhitelabel: boolean;\n userCanAccessOmnisearch: boolean;\n subscriptionTier: string;\n\n isSuperAdminRoute$ = this.urlService.isSuperAdminRoute$;\n currentUrl$ = this.urlService.currentUrl$;\n\n hasWhitelabel$: Observable;\n useDarkNavHeader$: Observable;\n vaNavTheme$: Observable;\n\n userEmail: string;\n partnerId: string;\n showAtlasPidSelector$: Observable;\n private viewMode$$ = new ReplaySubject();\n readonly viewMode$ = this.viewMode$$.asObservable();\n\n menuItems: CustomUserDropdownItem[] = [];\n nonSuperadminTabs$: Observable;\n navItems$: Observable;\n activeMenuId$: Observable;\n\n partnerName$ = this.configService.config$.pipe(map((config) => config.partnerName));\n partnerId$ = this.configService.config$.pipe(map((config) => config.partnerId));\n atlasTitle$ = combineLatest([this.isSuperAdminRoute$, this.partnerName$, this.partnerId$]).pipe(\n map(([superadmin, partnerName, partnerId]) => (superadmin ? 'Superadmin' : `${partnerName} (${partnerId})`)),\n );\n\n isMobile$: Observable;\n\n helpDrawerSelected$ = this.helpSideDrawerTemplateRefService.open$.pipe(\n map((open) => (open ? 'atlas-navbar__item-selected' : '')),\n );\n\n // Don't show the nav if current page is user-onboarding\n isOnboardingUrl$ = this.currentUrl$.pipe(map((url) => url.startsWith('/user-onboarding')));\n\n hasViewAccess$ = this.access\n .hasAccessToViews([\n Views.assignedSalespersonCard,\n Views.helpCenter,\n Views.newReleases,\n Views.inboxAi,\n Views.inboxFeature,\n ])\n .pipe(shareReplay(1));\n hasViewAccessForSalesContactCard$ = this.hasViewAccess$.pipe(\n map((access) => access.get(Views.assignedSalespersonCard)),\n );\n hasViewAccessForHelpCenter$ = this.hasViewAccess$.pipe(map((access) => access.get(Views.helpCenter)));\n hasViewAccessForNewReleases$ = this.hasViewAccess$.pipe(map((access) => access.get(Views.newReleases)));\n hasViewAccessForInboxAI$ = this.hasViewAccess$.pipe(\n map((access) => access.get(Views.inboxAi) && access.get(Views.inboxFeature)),\n );\n readonly hasViewAccessForInboxFeature$ = this.hasViewAccess$.pipe(map((access) => access.get(Views.inboxFeature)));\n protected disableInboxFeature$ = this.hasViewAccessForInboxFeature$.pipe(map((hasAccess) => !hasAccess));\n\n /** Gets more information about the current user. */\n private readonly user$: Observable = this.configService.config$.pipe(\n map((config) => config.unifiedUserId || config.userId),\n switchMap((id) => this.iamService.getUser(new UserIdentifier({ userId: id }))),\n );\n\n static getCurrentPathForNavSelection(currentPath: string): string {\n // get current path when embedded in vstatic url\n if (currentPath.startsWith('/vstatic')) {\n const regex = new RegExp('[\\\\?&]embed=([^&#]*)');\n const results = regex.exec(currentPath);\n const embedRoute = results === null ? '' : decodeURIComponent(results[1].replace(/\\+/g, ' '));\n currentPath = embedRoute ? embedRoute : currentPath;\n } else {\n const currentPathParts = currentPath.split('?');\n currentPath = currentPathParts[0];\n // Parse restricted page path to get path to the restricted page\n if (currentPath.startsWith('/restricted/') && currentPathParts.length > 1) {\n const queryParts = currentPathParts[1].split('=');\n if (queryParts.length > 1) {\n currentPath = decodeURIComponent(queryParts[1]);\n }\n }\n }\n if (!currentPath.startsWith('/') && currentPath !== '') {\n currentPath = '/' + currentPath;\n }\n return currentPath;\n }\n\n // Grab all of the jinja variables that base handler dumped on global.html and pull the block\n // content into the angular app\n ngOnInit(): void {\n this.styleService.update('partner-center-client', GalaxyTheme.Light);\n this.viewMode$$.next(this.isLargeScreen());\n\n this.nonSuperadminTabs$ = this.configService.config$.pipe(map((config) => getNavItems(config.products)));\n this.navItems$ = combineLatest([this.nonSuperadminTabs$, this.isSuperAdminRoute$]).pipe(\n map(([nonSuperadminTabs, superadmin]) => {\n return superadmin ? superadminTabs : nonSuperadminTabs;\n }),\n distinctUntilChanged(),\n shareReplay(1),\n );\n\n this.activeMenuId$ = combineLatest([this.navItems$, this.currentUrl$]).pipe(\n map(([navItems, url]) => this.setSelectedNavItemForPath(navItems, url)),\n );\n\n this.subscriptions.push(\n // If it is taking longer than 0.5s to load the lazy module, show the loading indicator\n this.router.events\n .pipe(\n filter((event) => event instanceof RouteConfigLoadStart || event instanceof RouteConfigLoadEnd),\n debounce((e) => {\n let delay = 500; // 500ms\n if (e instanceof RouteConfigLoadEnd) {\n delay = 0;\n }\n return interval(delay);\n }),\n )\n .subscribe((e) => {\n this.loadingLazyModule = e instanceof RouteConfigLoadStart;\n }),\n );\n\n this.pageLoading$ = this.configLoading$.pipe(\n map((configLoading) => {\n return configLoading;\n }),\n );\n\n if (this.environmentService.getEnvironment() === Environment.PROD) {\n initializeHotJar();\n this.partnerServiceV1.subscriptionTier$.subscribe((s) => {\n if (SubscriptionTiersService.isFree(s) && Object.prototype.hasOwnProperty.call(window, 'hj')) {\n // tslint:disable-next-line\n window['hj']('trigger', 'is-free-user');\n }\n });\n this.configService.config$.subscribe((config) => setHotJarIdentity(config));\n }\n\n this.subscriptions.push(\n this.configService.config$\n .pipe(\n tap((config) => {\n if (config.wootricEnabled) {\n initializeWootric({\n email: config.userEmail,\n createdAt: config.userCreated,\n accountToken: 'NPS-652e0546',\n persona: 'Partner',\n success: config.accountExecutive,\n partnerId: config.partnerId,\n partnerName: config.partnerName,\n userMarket: config.userMarket,\n });\n }\n\n if (!devServer) {\n this.productAnalytics.initialize({\n environment: this.environmentService.getEnvironment(),\n projectUUID: 'a4f6ec25-67a7-4edf-972a-29e80320f67f',\n postHogID: 'F-GqYmiH8D1O6ojHLctu7SWCr7YovJtv9nbTv_-S-uo',\n projectName: 'partner-center-client',\n partner: {\n pid: config.partnerId,\n name: config.partnerName,\n pidChanges$: this.configService.config$.pipe(map((c) => c.partnerId)),\n },\n });\n }\n\n this.userEmail = config.userEmail;\n this.accountExecutive = config.accountExecutive;\n this.userCanCustomizeWhitelabel = config.userCanCustomizeWhitelabel;\n this.userCanAccessOmnisearch = config.userCanAccessAccounts || config.isSuperAdmin;\n this.registerSuperadminOmnisearchIntent(config, {\n title: 'Switch Partners',\n description: \"Switch Partner Center's context to a given PID.\",\n shortcut: 'p',\n itemOfIntent: null,\n callback: () => {\n this.showPartnerSwitcherDialog();\n },\n });\n this.registerSuperadminOmnisearchIntent(config, {\n title: 'Partner Overview',\n description: 'View the Partner Details',\n shortcut: 'o',\n itemOfIntent: null,\n callback: () => {\n this.showPartnerOverviewDialog();\n },\n });\n this.registerPartnerOmnisearchIntent({\n title: 'Find a Business',\n description: 'Go to the account details page for a business.',\n shortcut: 'b',\n itemOfIntent: null,\n callback: () => {\n this.showSwitchLocationDialog();\n },\n });\n this.registerPartnerOmnisearchIntent({\n title: 'Find a User',\n description: 'Search for a business user or salesperson and impersonate them.',\n shortcut: 'u',\n itemOfIntent: null,\n callback: () => this.showImpersonateUserDialog(),\n });\n this.registerSuperadminOmnisearchIntent(config, {\n title: 'Return to Superadmin',\n description: 'Go back to superadmin.',\n shortcut: 's',\n routerUrl: '/superadmin/partners',\n });\n this.buildUserOptions();\n }),\n switchMap((config) => {\n return combineLatest([\n this.partnerServiceV1.partnerConfig$,\n this.partnerServiceV1.subscriptionTier$,\n this.user$,\n this.partnerTrialStoreService.partnerTrial$,\n ]).pipe(\n tap(([partnerConfig, subscription, user, trial]) => {\n this.subscriptionTier = subscription.id;\n this.productAnalytics.trackProperties({\n isOnTrial: trial.status === TrialStatus.ACTIVE,\n subscriptionTier: subscription.id,\n });\n this.zendeskInit(config, partnerConfig, subscription);\n this.unifiedTosService.getTermsOfServiceData(subscription);\n if (this.environmentService.getEnvironment() === Environment.PROD) {\n this.initializeUserOnboarding(config, subscription, user);\n }\n this.initializeCanny();\n }),\n );\n }),\n )\n .subscribe(),\n );\n\n this.hasWhitelabel$ = this.access.hasAccessToFeature(Feature.whitelabel).pipe(startWith(true));\n\n this.useDarkNavHeader$ = this.userBrandingService.branding$.pipe(\n map(\n (branding) => branding.uiTheme === UITheme.UI_THEME_DARK && ![undefined, ''].includes(branding.darkModeLogoUrl),\n ),\n );\n\n this.vaNavTheme$ = combineLatest([\n this.hasWhitelabel$,\n this.userBrandingService.branding$,\n this.isSuperAdminRoute$,\n ]).pipe(\n map(([hasWhitelabel, branding, superadminRoute]) =>\n hasWhitelabel && !superadminRoute\n ? 'glxy-nav--platform-' + uiThemeFromEnum(branding.uiTheme) + '-theme'\n : 'glxy-nav--platform-' + DEFAULT_NAV_THEME + '-theme',\n ),\n );\n\n this.showAtlasPidSelector$ = this.configService.config$.pipe(\n map((config: AppConfig) => config.isSuperAdmin || config.isImpersonated),\n shareReplay(1),\n );\n\n this.matIconRegistry.addSvgIcon(\n 'concierge',\n this.sanitizer.bypassSecurityTrustResourceUrl('/static/images/products/task-manager.svg'),\n );\n\n this.matIconRegistry.addSvgIcon(\n 'automation',\n this.sanitizer.bypassSecurityTrustResourceUrl('/static/images/products/automation.svg'),\n );\n\n this.matIconRegistry.addSvgIcon(\n 'facebook-f-logo-circle-1024',\n this.sanitizer.bypassSecurityTrustResourceUrl('/static/images/facebook/facebook-f-logo-circle-1024.svg'),\n );\n\n this.matIconRegistry.addSvgIcon(\n 'hotness',\n this.sanitizer.bypassSecurityTrustResourceUrl('/static/images/marketing-campaign/hotness.svg'),\n );\n\n this.isMobile$ = this.breakpointObserver.observe([Breakpoints.XSmall]).pipe(map((result) => result.matches));\n }\n\n ngOnDestroy(): void {\n this.subscriptions.forEach((s) => s.unsubscribe());\n\n // close the change log if it happens to be open\n Canny('closeChangelog');\n }\n\n ngAfterViewInit(): void {\n this.helpCenter.changes.pipe(startWith(this.helpCenter), take(1)).subscribe((ref) => {\n this.helpSideDrawerTemplateRefService.registerTemplate(this.helpCenterTemplateId, ref.first);\n });\n }\n\n private registerSuperadminOmnisearchIntent(config: AppConfig, intent: Intent): void {\n if (config.isSuperAdmin || config.isImpersonated) {\n this.omniSearchService.registerIntent(intent);\n }\n }\n\n private registerPartnerOmnisearchIntent(intent: Intent): void {\n if (this.configService.config.userCanAccessAccounts) {\n this.omniSearchService.registerIntent(intent);\n }\n }\n\n private initializeTitleAndFavIcon() {\n this.userBrandingService.branding$.pipe(take(1)).subscribe((branding) => {\n this.title.setTitle(branding?.name || this.translate.instant('PAGE.DEFAULT_TITLE'));\n\n const favIcon = this.document.getElementById('app-favicon');\n const faviconUrl = branding?.faviconUrl || DEFAULT_FAVICON_URL;\n favIcon.setAttribute('href', `${faviconUrl}?v=${Date.now()}`);\n });\n }\n\n // This is the Zendesk initialization so the user can be known by support.\n private zendeskInit(\n config: AppConfig,\n partnerConfig: PartnerAjaxResponse,\n subscription: SubscriptionTierInterface,\n ): void {\n const chatTags = [config.partnerId, subscription.name];\n if (partnerConfig.priority_chat_support === true) {\n chatTags.push('PriorityChat');\n }\n zE(() => {\n let prefill = config.userFirstName;\n if (config.userLastName) {\n prefill = prefill + ' ' + config.userLastName;\n }\n zE('webWidget', 'chat:addTags', chatTags);\n zE('webWidget', 'prefill', { name: { value: prefill }, email: { value: config.userEmail } });\n });\n }\n\n initializeCanny(): void {\n this.cdr.detectChanges(); // Force change detection\n Canny('initChangelog', {\n appID: '636d173a834b780c31120d3b',\n position: 'bottom',\n align: 'left',\n theme: 'light',\n });\n }\n\n private initializeUserOnboarding(config: AppConfig, subscription: SubscriptionTierInterface, user: User): void {\n // Determine the roles that the user can perform.\n // This will help Chameleon appropriately segment users and apply role-based filters.\n const permissions: { [role: string]: boolean } = {};\n Object.keys(user.roles).forEach((role) => (permissions[role] = true));\n\n // Pass important user attributes to Chameleon so segmentation can be done more accurately.\n window.chmln.identify(user.userId, {\n created: config.userCreated,\n isAdmin: config.userIsAdmin,\n project: 'partner-center-client',\n role_permissions: permissions,\n\n company: {\n uid: config.partnerId,\n created: config.partnerCreated,\n name: config.partnerName,\n plan: subscription.id,\n version: subscription.tierVersion,\n },\n });\n }\n\n public setSelectedNavItemForPath(navItems: MenuItem[], currentPath: string): string {\n currentPath = AppComponent.getCurrentPathForNavSelection(currentPath);\n if (currentPath.startsWith('/businesses/accounts')) {\n currentPath = currentPath.replace('/businesses/accounts', '/manage-accounts');\n }\n if (currentPath.startsWith('/billing')) {\n if (currentPath.startsWith('/billing/AG-')) {\n currentPath = '/manage-accounts';\n } else if (currentPath.startsWith('/billing/payments')) {\n // For the Billing payments tab we want to set the activeMenuId to `payments`\n currentPath = '/billing/payments';\n } else {\n // For all other billing paths we want to set activeMenuId to 'administration'\n currentPath = '/settings';\n }\n }\n if (currentPath.startsWith('/action-lists')) {\n currentPath = '/action-lists/manage';\n }\n if (currentPath.startsWith('/task-manager/groups')) {\n currentPath = '/task-manager/users/manage';\n }\n\n if (currentPath.startsWith('/automations/config/smb/templates')) {\n currentPath = '/settings';\n }\n\n let allNavItems = navItems;\n const nestedNavItems = navItems.filter((item) => item.nestedItems).map((item) => item.nestedItems);\n if (nestedNavItems.length > 0) {\n allNavItems = allNavItems.concat(nestedNavItems.reduce((a, b) => a.concat(b)));\n }\n\n let activeMenuId = '';\n allNavItems\n .filter((item) => Boolean(item.url) && (currentPath + '/').startsWith(item.url))\n .sort((a, b) => a.url.length - b.url.length)\n .map((item) => (activeMenuId = item.menuId));\n return activeMenuId;\n }\n\n /**\n * @deprecated\n * Does nothing. Superseeded by the nav theme. Still called by non angular pages.\n */\n public setWhiteLabelColor(_value: string): void {\n /** pass */\n }\n\n /** setNavTheme */\n public setNavTheme(value: string): void {\n this.userBrandingService.setUiTheme(uiThemeToEnum(value));\n }\n\n /** setWhiteLabelLogo */\n public setWhiteLabelLogo(value: string): void {\n this.userBrandingService.setLogoUrl(value);\n }\n\n /** Builds the user options in the user tab in the navbar */\n private buildUserOptions(): void {\n this.menuItems = [];\n let partner_id = '';\n if (this.configService.config.partnerId) {\n partner_id = ' (' + this.configService.config.partnerId + ')';\n }\n this.userOptions = [\n {\n rightIcon: 'fec-icon-dropdown',\n label: this.configService.config.userFirstName + ' ' + this.configService.config.userLastName + partner_id,\n menuId: '',\n icon: 'fec-icon-user',\n nestedItems: [],\n expanded: false,\n },\n ];\n\n for (const option of this.configService.config.userOptions) {\n this.userOptions[0].nestedItems.push({\n label: option.label,\n url: option.url,\n menuId: option.menuId,\n expanded: false,\n });\n if (option.menuId === 'edit-profile') {\n this.menuItems.push({\n label: option.label,\n route: option.url,\n });\n } else {\n this.menuItems.push({\n label: option.label,\n url: option.url,\n });\n }\n }\n }\n\n public iframeClickHandler(): void {\n if (this.userOptions.length > 0 && this.userOptions[0].expanded) {\n this.userOptions[0].expanded = false;\n }\n }\n\n public revealOmnisearch(e: any): void {\n this.showOmniSearch(e);\n }\n\n @HostListener('window:keydown', ['$event'])\n showOmniSearch(event: any): void {\n if (!this.userCanAccessOmnisearch) {\n return;\n }\n\n const tag = event.target.tagName.toLowerCase();\n if (event.key === '/' && tag !== 'input' && tag !== 'textarea') {\n if (this.omnisearchDialogRef === null || this.omnisearchDialogRef === undefined) {\n this.omnisearchDialogRef = this.dialog.open(OmniSearchComponent, { width: '600px' });\n this.omnisearchDialogRef.afterClosed().subscribe(() => {\n this.omnisearchDialogRef = null;\n });\n } else {\n this.omnisearchDialogRef.close();\n }\n }\n }\n\n showSwitchLocationDialog(): void {\n this.dialog.open(AccountGroupSearcherComponent, { width: '600px' });\n }\n\n showImpersonateUserDialog(): void {\n this.dialog.open(UserSwitcherComponent, { width: '600px' });\n }\n\n showPartnerSwitcherDialog(): void {\n this.dialog.open(PartnerSwitcherComponent, { width: '600px' });\n }\n\n showAtlasPidSelector(): void {\n this.showAtlasPidSelector$.pipe(take(1)).subscribe((show: boolean) => {\n if (show) {\n this.showPartnerSwitcherDialog();\n }\n });\n }\n\n showPartnerOverviewDialog(): void {\n this.dialog.open(PartnerOverviewComponent, { width: '600px' });\n }\n\n showHelpCenter(templateId?: string): void {\n this.helpSideDrawerTemplateRefService.toggle(templateId);\n }\n\n @HostListener('window:resize', ['$event'])\n onResize(): void {\n this.viewMode$$.next(this.isLargeScreen());\n }\n\n private isLargeScreen(): MatDrawerMode {\n return window.matchMedia('(min-width: 1440px)').matches ? 'side' : 'over';\n }\n}\n\nfunction setHotJarIdentity(config: AppConfig): void {\n try {\n if (config?.unifiedUserId && typeof window !== 'undefined' && window.hj) {\n // userCreated is in seconds\n const createdAdjustedToMilliseconds = config.userCreated * 1000;\n const userCreatedDate = new Date(createdAdjustedToMilliseconds);\n const identityInfo: { created: string; userNotNew?: boolean } = {\n created: userCreatedDate.toISOString(),\n };\n // For HotJar identity we only want to add the userNotNew Property if they were created longer than 1 week ago.\n const oneWeekAgo = new Date();\n oneWeekAgo.setDate(oneWeekAgo.getDate() - 7);\n if (userCreatedDate.getTime() <= oneWeekAgo.getTime()) {\n identityInfo.userNotNew = true;\n }\n window.hj('identify', config.unifiedUserId, identityInfo);\n }\n } catch (e) {\n console.error(`failed to set HotJar identity: ${e}`);\n }\n}\n\n// why is this needed? Cant we just use the nav items from the config service?\nfunction getNavItems(navData: Product[]): Array {\n const navItems = Array();\n for (const nav of navData) {\n const navItem: MenuItem = {\n url: nav.link,\n label: nav.title,\n icon: nav.icon,\n menuId: nav.tab_id,\n i18n_key: nav.i18n_key,\n expanded: false,\n ngRoute: !nav.pop_out && nav.ng_route !== false,\n svgIcon: !!nav.svg_icon,\n locked: nav.locked,\n badge: nav.badge,\n };\n if (nav.pop_out) {\n navItem.popOut = nav.pop_out;\n }\n if (nav.right_icon) {\n navItem.rightIcon = nav.right_icon;\n }\n if (nav.nested_tabs) {\n navItem.nestedItems = getNavItems(nav.nested_tabs);\n }\n if (nav.subsection_header) {\n navItem.subsectionHeader = nav.subsection_header;\n }\n navItems.push(navItem);\n }\n return navItems;\n}\n\nconst superadminTabs = getNavItems([\n {\n locked: false,\n nested_tabs: null,\n link: '/superadmin/partners/',\n title: 'Partners',\n tab_id: 'sa',\n i18n_key: 'NAV_ITEMS.SUPERADMIN.PARTNERS',\n ng_route: true,\n svg_icon: false,\n icon: 'people',\n },\n {\n locked: false,\n nested_tabs: null,\n link: '/superadmin/products/',\n title: 'Manage Products',\n tab_id: 'products_superadmin',\n i18n_key: 'NAV_ITEMS.SUPERADMIN.MANAGE_PRODUCTS',\n ng_route: true,\n svg_icon: false,\n icon: 'apps',\n },\n]);\n","\n\n \n \n
\n \n \n \n
\n \n {{ atlasTitle$ | async }}\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
\n
\n\n\n \n \n \n\n\n\n \n\n","declare let window: any;\n\nexport interface WootricData {\n email?: string;\n createdAt?: number;\n accountToken?: string;\n persona?: string;\n success?: string;\n partnerId?: string;\n partnerName?: string;\n userMarket?: string;\n}\n\nexport function initializeWootric(config: WootricData): void {\n if (config?.email && typeof window !== 'undefined') {\n window.wootricSettings = {\n email: config.email,\n created_at: config.createdAt,\n account_token: config.accountToken,\n properties: {\n persona: 'Partner',\n success: config.success,\n partner_id: config.partnerId,\n partner_name: config.partnerName,\n user_market: config.userMarket,\n },\n };\n if (typeof window !== 'undefined' && Boolean(window.wootric)) {\n window.wootric('run');\n } else {\n console.error(`wootric not loaded`);\n }\n }\n}\n","import { Location } from '@angular/common';\nimport { Injectable } from '@angular/core';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { distinctUntilChanged, filter, map, publishReplay, refCount, startWith } from 'rxjs/operators';\n\n@Injectable({ providedIn: 'root' })\nexport class UrlService {\n constructor(\n private router: Router,\n private readonly location: Location,\n ) {}\n\n public currentUrl$ = this.router.events.pipe(\n filter((event) => event instanceof NavigationEnd),\n map((event: NavigationEnd) => event.urlAfterRedirects),\n startWith(this.location.path()),\n distinctUntilChanged(),\n publishReplay(1),\n refCount(),\n );\n\n public isSuperAdminRoute$ = this.currentUrl$.pipe(\n map((url) => {\n // On initial load, if we don't look for the embed route param, then the URL will change on us without a\n // route change, and the initial detection of the superadmin state will be wrong.\n const regex = new RegExp('[\\\\?&]embed=([^&#]*)');\n const results = regex.exec(url);\n const embedRoute = results === null ? '' : decodeURIComponent(results[1].replace(/\\+/g, ' '));\n url = embedRoute ? embedRoute : url;\n return url.startsWith('/superadmin');\n }),\n distinctUntilChanged(),\n publishReplay(1),\n refCount(),\n );\n\n public isAutomationsRoute$ = this.currentUrl$.pipe(\n map((url) => {\n // On initial load, if we don't look for the embed route param, then the URL will change on us without a\n // route change, and the initial detection of the superadmin state will be wrong.\n const regex = new RegExp('[\\\\?&]embed=([^&#]*)');\n const results = regex.exec(url);\n const embedRoute = results === null ? '' : decodeURIComponent(results[1].replace(/\\+/g, ' '));\n url = embedRoute ? embedRoute : url;\n return url.includes('automations');\n }),\n );\n}\n","import { Inject, Injectable, OnDestroy } from '@angular/core';\nimport { BrandingV2Interface, BrandingV2Service, UITheme } from '@galaxy/partner';\nimport { BehaviorSubject, combineLatest, Observable, Subscription } from 'rxjs';\nimport { distinctUntilChanged, filter, map, publishReplay, refCount, switchMap } from 'rxjs/operators';\nimport { Market } from './markets/market';\nimport { MarketsService } from './markets/markets.service';\n\n// uiThemeToEnum converts legacy string theme to brandingV2 enum\nexport function uiThemeToEnum(uiTheme: string): UITheme {\n if (uiTheme === 'light') {\n return UITheme.UI_THEME_LIGHT;\n }\n return UITheme.UI_THEME_DARK;\n}\n\n// uiThemeFromEnum converts brandingV2 enum to legacy string theme\nexport function uiThemeFromEnum(uiTheme: UITheme): string {\n if (uiTheme === UITheme.UI_THEME_LIGHT) {\n return 'light';\n }\n return 'dark';\n}\n\n/*\n UserBrandingService contains the branding information for the current user based on the selectedMarket.\n This changes the logo and UiTheme shown in Partner Center depending on the market the user has access to, etc.\n*/\n\n@Injectable({ providedIn: 'root' })\nexport class UserBrandingService implements OnDestroy {\n private branding$$: BehaviorSubject = new BehaviorSubject(null);\n public branding$: Observable = this.branding$$.asObservable().pipe(\n filter((b) => !!b),\n publishReplay(1),\n refCount(),\n );\n\n private readonly subscription: Subscription;\n\n constructor(\n @Inject('PARTNER_ID') private partnerId$: Observable,\n private marketsService: MarketsService,\n private brandingV2Service: BrandingV2Service,\n ) {\n const selectedMarket$: Observable = this.marketsService.markets$\n .pipe(map((markets) => (markets.length === 1 ? markets[0] : null)))\n .pipe(distinctUntilChanged());\n\n this.subscription = combineLatest([this.partnerId$, selectedMarket$])\n .pipe(switchMap(([partnerId, market]) => this.brandingV2Service.getBranding(partnerId, market?.market_id)))\n .subscribe((branding) => this.branding$$.next(branding));\n }\n\n public setLogoUrl(logoUrl: string): void {\n if (logoUrl?.endsWith('=s58')) {\n // Uploading logo via AA returns with sizing config appended to url. Remove it as it makes it look small.\n logoUrl = logoUrl.replace('=s58', '');\n }\n this.branding$$.next({ ...this.branding$$.getValue(), logoUrl: logoUrl });\n }\n\n public setUiTheme(uiTheme: UITheme): void {\n this.branding$$.next({ ...this.branding$$.getValue(), uiTheme: uiTheme });\n }\n\n ngOnDestroy(): void {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { Intent } from './intent';\n\nimport { AppConfigService } from '../app-config.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OmniSearchService {\n private intents$$: BehaviorSubject = new BehaviorSubject([]);\n private intentSet: Set = new Set();\n\n intents$: Observable = this.intents$$.asObservable();\n\n constructor(private config: AppConfigService) {}\n\n registerIntent(intent: Intent): void {\n if (!this.intentSet.has(intent.title)) {\n this.intents$$.next([...this.intents$$.getValue(), intent]);\n this.intentSet.add(intent.title);\n }\n }\n}\n","import { Component, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\n\n@Component({\n selector: 'app-omni-app-icon',\n templateUrl: './omni-app-icon.component.html',\n styleUrls: ['./omni-app-icon.component.scss'],\n standalone: false,\n})\nexport class OmniAppIconComponent implements OnInit, OnChanges {\n @Input()\n icons: { [key: string]: string };\n @Input()\n appId: string;\n\n iconUrl: string;\n iconColor: string;\n\n ngOnInit(): void {\n this.iconUrl = this.icons[this.appId];\n this.iconColor = getIconColor();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.icons) {\n this.iconUrl = this.icons[this.appId];\n }\n }\n}\n\nfunction getIconColor(): string {\n const COLOR_CODES = [\n '#EF5350',\n '#42A5F5',\n '#66BB6A',\n '#FFA726',\n '#AB47BC',\n '#FFCA28',\n '#EC407A',\n '#26C6DA',\n '#FF7B57',\n ];\n\n // Choose randomly from the list of color codes\n return COLOR_CODES[Math.floor(Math.random() * Math.floor(COLOR_CODES.length))];\n}\n","\n \n\n\n \n {{ appId[0] }}\n \n\n","import { AfterViewInit, Component, ElementRef, Inject, OnDestroy, ViewChild } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { Router } from '@angular/router';\nimport { AccountGroup, AccountGroupService, ProjectionFilter } from '@galaxy/account-group';\nimport { GetMultiProductsResponse, MarketplacePackagesApiService } from '@vendasta/marketplace-packages';\nimport { combineLatest, fromEvent as observableFromEvent, Observable, of, Subscription } from 'rxjs';\nimport { debounceTime, filter, map, shareReplay, startWith, switchMap } from 'rxjs/operators';\nimport { OmniSearchService } from './omni-search.service';\n\n@Component({\n templateUrl: './account-group-searcher.component.html',\n styleUrls: ['./common.scss', './account-group-searcher.component.scss'],\n providers: [AccountGroupService],\n standalone: false,\n})\nexport class AccountGroupSearcherComponent implements AfterViewInit, OnDestroy {\n accountGroups$: Observable;\n productIcons$: Observable<{ [key: string]: string }>;\n cachedProductIcons: { [key: string]: string } = {};\n cachedProductIds: Set = new Set();\n uniqueIdsSubscription: Subscription;\n\n @ViewChild('searchTerm', { static: true }) searchTerm: ElementRef;\n\n constructor(\n public dialogRef: MatDialogRef,\n private accountGroupService: AccountGroupService,\n private marketplaceAppService: MarketplacePackagesApiService,\n @Inject('PARTNER_ID') private readonly partnerId$: Observable,\n private router: Router,\n private omnisearchService: OmniSearchService,\n ) {}\n\n ngAfterViewInit(): void {\n const napPf = new ProjectionFilter({ accounts: true, napData: true });\n this.accountGroups$ = observableFromEvent(this.searchTerm.nativeElement, 'keyup').pipe(\n filter((e: KeyboardEvent) => {\n // Don't trigger a re-search on one of the non-letter keys\n return !['Meta', 'Alt', 'Shift', 'Control'].some((ignoredKey) => e.key === ignoredKey);\n }),\n debounceTime(300),\n map((_) => this.searchTerm.nativeElement.value),\n switchMap((searchTerm) => this.accountGroupService.lookup(napPf, [], searchTerm)),\n map((accountGroups) => {\n if (!accountGroups) {\n return [];\n }\n return accountGroups.map((ag) => {\n ag.accounts = ag.accounts.sort((a, b) => {\n // Custom products go to the back of the line\n if (a.marketplaceAppId.startsWith('CP')) {\n return 1;\n } else if (b.marketplaceAppId.startsWith('CP')) {\n return -1;\n }\n // Normal alphabetical sorting\n if (a.marketplaceAppId < b.marketplaceAppId) {\n return -1;\n } else if (a.marketplaceAppId > b.marketplaceAppId) {\n return 1;\n }\n return 0;\n });\n return ag;\n });\n }),\n );\n const uniqueProductIds$ = this.accountGroups$.pipe(\n map((accounts) => {\n if (!accounts) {\n return new Set();\n }\n const accountSet = new Set();\n accounts.forEach((a) =>\n a.accounts.forEach((acc) => {\n accountSet.add(acc.marketplaceAppId);\n }),\n );\n return accountSet;\n }),\n shareReplay(1),\n );\n this.uniqueIdsSubscription = uniqueProductIds$.subscribe();\n this.productIcons$ = combineLatest([uniqueProductIds$, this.partnerId$]).pipe(\n switchMap(([accountIds, partnerId]) => {\n const ids = [];\n accountIds.forEach((a) => {\n ids.push(a);\n });\n if (ids.length === 0) {\n return of([]);\n }\n return this.marketplaceAppService.getMultiProducts({\n partnerId,\n productIds: ids,\n fieldMask: { paths: ['iconUrl', 'productId'] },\n });\n }),\n map((productContainers: GetMultiProductsResponse) => {\n if (!productContainers || !productContainers.products) {\n return this.cachedProductIcons;\n }\n productContainers.products.forEach((p) => this.cachedProductIds.add(p.product.productId));\n const idsToIcons = productContainers.products.reduce((pObj, product) => {\n pObj[product.product.productId] = product.product.iconUrl;\n return pObj;\n }, {});\n Object.keys(idsToIcons).forEach((key) => {\n this.cachedProductIcons[key] = idsToIcons[key];\n });\n return this.cachedProductIcons;\n }),\n startWith({}),\n shareReplay(1),\n );\n }\n\n ngOnDestroy(): void {\n this.uniqueIdsSubscription.unsubscribe();\n }\n\n navigateToLocation(accountGroupId: string): void {\n this.router.navigateByUrl(`/businesses/accounts/${accountGroupId}/details`);\n this.dialogRef.close();\n }\n}\n","

{{ 'OMNISEARCH.FIND_A_BUSINESS' | translate }}

\n
\n \n \n \n
\n\n \n \n \n \n \n \n \n \n\n\n \n\n","import { Component } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { Router } from '@angular/router';\nimport { BehaviorSubject, combineLatest, Observable } from 'rxjs';\nimport { map, tap } from 'rxjs/operators';\nimport { Intent } from './intent';\nimport { OmniSearchService } from './omni-search.service';\n\n@Component({\n template: `\n

{{ 'OMNISEARCH.WHAT_WOULD_YOU_LIKE_TO_DO' | translate }}

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

\n {{ intent.title | translate }}\n {{ intent.shortcut }}\n

\n

{{ intent.description | translate }}

\n \n
\n
\n \n \n \n `,\n styleUrls: ['./common.scss'],\n standalone: false,\n})\nexport class OmniSearchComponent {\n private intents$: Observable;\n private searchTerm$$: BehaviorSubject = new BehaviorSubject('');\n filteredIntents$: Observable;\n\n constructor(\n public dialogRef: MatDialogRef,\n private omnisearchService: OmniSearchService,\n private router: Router,\n ) {\n this.intents$ = this.omnisearchService.intents$;\n this.filteredIntents$ = combineLatest([this.searchTerm$, this.intents$]).pipe(\n tap(([searchTerm, intents]) => {\n intents.forEach((intent) => {\n if (intent.shortcut === searchTerm) {\n this.fulfillIntent(intent);\n }\n });\n }),\n map(([searchTerm, intents]) => intents.filter((intent) => this.filterIntent(intent, searchTerm))),\n );\n }\n\n private filterIntent(intent: Intent, searchTerm: string): boolean {\n searchTerm = searchTerm.toLowerCase();\n return (\n intent.title.toLowerCase().indexOf(searchTerm) > -1 ||\n intent.description.toLowerCase().indexOf(searchTerm) > -1 ||\n intent.shortcut.toLowerCase().indexOf(searchTerm) > -1\n );\n }\n\n get searchTerm$(): Observable {\n return this.searchTerm$$.asObservable();\n }\n\n search(searchTerm: string): void {\n this.searchTerm$$.next(searchTerm);\n }\n\n fulfillIntent(intent: any): void {\n if (typeof intent.callback !== 'undefined') {\n intent.callback(intent.itemOfIntent);\n } else if (typeof intent.routerUrl !== 'undefined') {\n this.router.navigateByUrl(intent.routerUrl);\n }\n this.dialogRef.close();\n }\n}\n","import { AfterViewInit, Component, ElementRef, ViewChild } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { Router } from '@angular/router';\nimport { fromEvent as observableFromEvent, Observable } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, map, switchMap } from 'rxjs/operators';\nimport { PartnerInfo } from '../core/partner';\nimport { PartnerService } from '../core/partner.service';\nimport { BillingSettingsService } from '../shared-billing/settings/billing-settings.service';\nimport { OmniSearchService } from './omni-search.service';\n\n@Component({\n templateUrl: './partner-overview.component.html',\n styleUrls: ['./common.scss'],\n standalone: false,\n})\nexport class PartnerOverviewComponent implements AfterViewInit {\n @ViewChild('searchTerm', { static: true }) searchTerm: ElementRef;\n partners$: Observable;\n\n constructor(\n public dialogRef: MatDialogRef,\n private partnerService: PartnerService,\n private omnisearchService: OmniSearchService,\n private router: Router,\n private billingSettingsService: BillingSettingsService,\n ) {}\n\n ngAfterViewInit(): void {\n this.partners$ = observableFromEvent(this.searchTerm.nativeElement, 'keyup').pipe(\n distinctUntilChanged(),\n map(() => {\n return this.searchTerm.nativeElement.value;\n }),\n debounceTime(300),\n switchMap((searchTerm) => this.partnerService.search(searchTerm)),\n );\n }\n\n goToOverview(partnerId: string): void {\n // This is a temporary fix around the billingSettingsService because previous values were displaying data for the newly swapped to partner\n // in our billing pages, which raises concerns. This is a hot fix until work is done to clean up that service.\n this.billingSettingsService.resetCache();\n this.router.navigate(['superadmin', 'contract', partnerId.toUpperCase(), 'overview']);\n this.dialogRef.close();\n }\n}\n","

\n {{ 'OMNISEARCH.VIEW_PARTNER_OVERVIEW' | translate }}\n

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

{{ partner.id }}

\n

{{ partner.name }}

\n \n
\n
\n\n \n\n","import { AfterViewInit, Component, ElementRef, Inject, OnInit, ViewChild } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { LocalStorageService } from '@vendasta/uikit';\nimport { BehaviorSubject, Observable, combineLatest, fromEvent as observableFromEvent } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, map, shareReplay, startWith, switchMap, take } from 'rxjs/operators';\nimport { AppConfigService } from '../app-config.service';\nimport { PartnerInfo } from '../core/partner';\nimport { PartnerService } from '../core/partner.service';\n\nconst RecentPartnersStorageKey = 'omnisearch:recentPartners';\nconst MaxRecentPartners = 5;\n\n@Component({\n templateUrl: './partner-switcher.component.html',\n styleUrls: ['./common.scss'],\n standalone: false,\n})\nexport class PartnerSwitcherComponent implements OnInit, AfterViewInit {\n @ViewChild('searchTerm', { static: true }) searchTerm: ElementRef;\n partners$: Observable;\n private recentPartners$$ = new BehaviorSubject([]);\n recentPartners$: Observable;\n\n constructor(\n @Inject('PARTNER_ID') private readonly partnerId$: Observable,\n public dialogRef: MatDialogRef,\n private partnerService: PartnerService,\n private localStorageService: LocalStorageService,\n private readonly configService: AppConfigService,\n ) {}\n\n ngOnInit(): void {\n // Load recently access partners from local storage\n this.recentPartners$$.next(this.loadRecentPartners());\n }\n\n ngAfterViewInit(): void {\n // Get a change since check error, since we're setting up streams here? This setTimeout resolves that\n window.setTimeout(() => {\n const search$ = observableFromEvent(this.searchTerm.nativeElement, 'keyup').pipe(\n distinctUntilChanged(),\n map((_) => {\n return this.searchTerm.nativeElement.value;\n }),\n );\n const searchDebounced$ = search$.pipe(debounceTime(300));\n this.recentPartners$ = combineLatest([\n search$.pipe(startWith('')), // stream doesn't start with anything to avoid the empty partner search\n this.recentPartners$$,\n ]).pipe(\n map(([searchTerm, recentPartners]) => {\n if (!searchTerm) {\n return recentPartners;\n }\n const lowerSearchTerm = searchTerm.toLowerCase();\n return recentPartners.filter((p) => {\n return p.id.toLowerCase().includes(lowerSearchTerm) || p.name.toLowerCase().includes(lowerSearchTerm);\n });\n }),\n shareReplay(1),\n );\n\n this.partners$ = searchDebounced$.pipe(\n switchMap((searchTerm) => this.partnerService.search(searchTerm)),\n shareReplay(1),\n );\n }, 0);\n }\n\n switchPartner(partnerId: string): void {\n const upperPartnerId = partnerId.toUpperCase();\n // Try to find in partners, save to recent if we can\n combineLatest([\n this.partnerId$,\n this.partners$.pipe(startWith([])), // start with empty list, since they might not be loaded yet\n this.recentPartners$,\n ])\n .pipe(\n take(1),\n map(([currentPartnerId, partners, recentPartners]) => {\n return [\n currentPartnerId,\n partners.find((pInfo) => pInfo.id === upperPartnerId) ||\n recentPartners.find((pInfo) => pInfo.id === upperPartnerId),\n ];\n }),\n )\n .subscribe(async ([, partnerInfo]) => {\n const partnerIdWithFallbackToInput = partnerInfo?.id || upperPartnerId;\n this.addPartnerToRecents(partnerInfo);\n await this.configService.load(partnerIdWithFallbackToInput); // wait for config to load before continuing\n this.dialogRef.close();\n const url = new URL(window.location.href);\n if (url.searchParams.has('_pid')) {\n url.searchParams.set('_pid', partnerIdWithFallbackToInput); // set _pid value in url to new partnerId\n }\n window.location.href = url.toString(); // ensure nothing is referencing the previous PID by reloading the page\n });\n }\n\n addPartnerToRecents(partnerInfo: PartnerInfo): void {\n if (!partnerInfo) {\n return;\n }\n\n // Get existing or default\n let recentPartners = this.loadRecentPartners();\n // Update time if found, add if not\n const found = recentPartners.findIndex((p) => p.id === partnerInfo.id);\n if (found !== -1) {\n // Update all fields of the existing partner, including lastAccessed\n recentPartners[found] = { ...partnerInfo, lastAccessed: new Date() };\n } else {\n // Set their last used date for sorting/limiting\n partnerInfo.lastAccessed = new Date();\n recentPartners.push(partnerInfo);\n }\n // Sort Data\n recentPartners = recentPartners.sort((a, b) => b.lastAccessed.valueOf() - a.lastAccessed.valueOf());\n // Limit Recents\n if (recentPartners.length > MaxRecentPartners) {\n recentPartners = recentPartners.slice(0, MaxRecentPartners);\n }\n // Update data\n this.recentPartners$$.next(recentPartners);\n // Save\n this.localStorageService.set(RecentPartnersStorageKey, JSON.stringify(recentPartners));\n }\n\n loadRecentPartners(): PartnerInfo[] {\n // Get existing or default\n const recentPartnersSerialized = this.localStorageService.get(RecentPartnersStorageKey);\n let recentPartners = [];\n // Deserialize as needed\n if (recentPartnersSerialized) {\n try {\n recentPartners = JSON.parse(recentPartnersSerialized);\n } catch {\n console.error('recent partners data from localStorage could not be loaded');\n }\n }\n // Create dates from strings\n recentPartners.forEach((p) => {\n p.lastAccessed = new Date(p.lastAccessed);\n });\n return recentPartners;\n }\n}\n","

\n {{ 'OMNISEARCH.SWITCH_TO_PARTNER' | translate }}\n

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

0\">\n {{ 'OMNISEARCH.RECENT' | translate }}\n

\n \n

\n {{ recentPartner.id }}\n ({{ recentPartner.subscription_tier_id }})\n

\n

\n {{ recentPartner.name }}\n \n - {{ recentPartner.address_line_one }} {{ recentPartner.city }} {{ recentPartner.state_code }}\n \n

\n \n 0 && (recentPartners$ | async)?.length > 0\">\n

0\">\n {{ 'OMNISEARCH.SEARCH_RESULTS' | translate }}\n

\n \n

{{ partner.id }} ({{ partner.subscription_tier_id }})

\n

\n {{ partner.name }}\n \n - {{ partner.address_line_one }} {{ partner.city }} {{ partner.state_code }}\n \n

\n \n
\n
\n\n \n\n","import { HttpClient } from '@angular/common/http';\nimport { AfterViewInit, Component, ElementRef, ViewChild } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { newPartnerServiceContext, SSOService } from '@vendasta/sso';\nimport { combineLatest, fromEvent as observableFromEvent, Observable, of } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, filter, map, switchMap } from 'rxjs/operators';\nimport { AppConfigService } from '../app-config.service';\nimport { PartnerService } from '../core/partner.service';\nimport { UserService } from '../users';\nimport { OmniSearchService } from './omni-search.service';\n\ninterface Person {\n id: string;\n firstName: string;\n lastName: string;\n phoneNumber: string;\n email: string;\n type: string;\n unifiedId: string;\n}\n\n@Component({\n templateUrl: './user-switcher.component.html',\n styleUrls: ['./common.scss', './user-switcher.component.scss'],\n standalone: false,\n})\nexport class UserSwitcherComponent implements AfterViewInit {\n urlForSalespeopleLookup = '/_ajax/v1/salesperson/list';\n\n @ViewChild('searchTerm', { static: true }) searchTerm: ElementRef;\n people$: Observable;\n\n constructor(\n public dialogRef: MatDialogRef,\n private userService: UserService,\n private ssoService: SSOService,\n private snackbarService: SnackbarService,\n private partnerService: PartnerService,\n private config: AppConfigService,\n private omnisearchService: OmniSearchService,\n private http: HttpClient,\n ) {}\n\n ngAfterViewInit(): void {\n const keyUps$ = observableFromEvent(this.searchTerm.nativeElement, 'keyup').pipe(\n distinctUntilChanged(),\n map((_) => this.searchTerm.nativeElement.value),\n debounceTime(300),\n );\n this.people$ = keyUps$.pipe(\n switchMap((searchTerm) => {\n return this.userService.search(of(searchTerm), 0);\n }),\n filter((users) => !!users),\n map((users) =>\n users.map((u) => {\n return {\n firstName: u.firstName,\n lastName: u.lastName,\n email: u.email,\n phoneNumber: u.phoneNumber,\n id: u.userId,\n unifiedId: u.unifiedUserId,\n type: 'U',\n };\n }),\n ),\n );\n if (this.config.config.userCanAccessSales) {\n // Get salespeople into the mix as well\n const salesPeople$ = keyUps$.pipe(\n switchMap((searchTerm) => {\n return this.http.get<{ data: any[] }>(this.urlForSalespeopleLookup, { params: { searchText: searchTerm } });\n }),\n map((resp: any) => resp.data),\n map((salespeople) => {\n return salespeople.map((sp) => {\n return {\n firstName: sp.first_name,\n lastName: sp.last_name,\n id: sp.sales_person_id,\n email: sp.email,\n phoneNumber: sp.phone_numbers?.[0],\n unifiedId: sp.unifiedUserId,\n type: 'S',\n };\n });\n }),\n );\n\n this.people$ = combineLatest([this.people$, salesPeople$]).pipe(\n map(([users, salespeople]) => {\n return [...users, ...salespeople].sort((a, b) => {\n if (a.firstName > b.firstName) {\n return 1;\n }\n if (a.firstName < b.firstName) {\n return -1;\n }\n return 0;\n });\n }),\n );\n }\n }\n\n impersonateUser(user: Person): void {\n const serviceProviderId = user.type === 'U' ? 'VBC' : 'ST';\n this.ssoService\n .getEntryUrl(serviceProviderId, newPartnerServiceContext(this.partnerService.partnerId), {\n impersonation: user.unifiedId,\n })\n .subscribe({\n next: (url) => {\n if (url === undefined || url === 'undefined') {\n this.snackbarService.errorSnack('Error Impersonating User');\n return;\n }\n window.location.href = url;\n this.dialogRef.close();\n },\n error: () => this.snackbarService.errorSnack('Error Impersonating User'),\n });\n }\n}\n","

\n {{ 'MANAGE_ACCOUNTS.IMPERSONATE_USER_DIALOG.IMPERSONATE_USER' | translate }}\n

\n
\n \n \n \n
\n\n \n \n
\n
\n \n {{ user.type === 'S' ? 'monetization_on' : 'store' }}\n \n
\n
\n

{{ user.firstName }} {{ user.lastName }}

\n

{{ user.email }}{{ user.email && user.phoneNumber ? ' - ' : '' }}{{ user.phoneNumber }}

\n
\n
\n \n
\n
\n\n \n\n","import { Inject, Injectable } from '@angular/core';\nimport { SubscriptionTierInterface, SubscriptionTiersService } from '@galaxy/partner';\nimport { Observable } from 'rxjs';\nimport { distinctUntilChanged, map, shareReplay, startWith, switchMap } from 'rxjs/operators';\nimport { PartnerService } from '../../core/partner.service';\nimport { TrialStatus } from '../../core/partner/partner-trial-status';\nimport { PartnerTrialStore, PartnerTrialStoreService } from '../../partner-trial';\n\n/**\n * Maintains the state for the LevelBadgeComponent\n */\n@Injectable()\nexport class LevelBadgeStoreService {\n subscriptionTier$: Observable;\n showBadge$: Observable;\n\n constructor(\n @Inject(PartnerTrialStoreService) private trials: PartnerTrialStore,\n @Inject(PartnerService) private partners: PartnerService,\n private readonly subscriptionTiersService: SubscriptionTiersService,\n ) {\n this.subscriptionTier$ = this.setUpSubscriptionLevel();\n this.showBadge$ = this.setUpShowBadge(this.subscriptionTier$);\n }\n\n private setUpSubscriptionLevel(): Observable {\n return this.trials.partnerTrial$.pipe(\n switchMap((trial) => {\n if (trial.status === TrialStatus.ACTIVE) {\n return this.subscriptionTiersService.getSubscriptionTier(trial.subscriptionTierId, this.partners.partnerId);\n } else {\n return this.partners.subscriptionTier$;\n }\n }),\n shareReplay(1),\n );\n }\n\n private setUpShowBadge(subscriptionLevel: Observable): Observable {\n return subscriptionLevel.pipe(\n map((v) => v.tierVersion !== 'Classic'),\n startWith(false),\n distinctUntilChanged(),\n shareReplay(1),\n );\n }\n}\n","import { Component } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { SubscriptionTierInterface, SubscriptionTiersService } from '@galaxy/partner';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { AppConfigService } from '../../app-config.service';\nimport { LevelBadgeStoreService } from './level-badge-store.service';\n\n@Component({\n selector: 'app-level-badge',\n templateUrl: './level-badge.component.html',\n styleUrls: ['./level-badge.component.scss'],\n standalone: false,\n})\nexport class LevelBadgeComponent {\n subscriptionTier$: Observable;\n subscriptionLevel$: Observable;\n showBadge$: Observable;\n\n constructor(\n private badgeStore: LevelBadgeStoreService,\n private readonly appConfigService: AppConfigService,\n private router: Router,\n ) {\n this.subscriptionTier$ = this.badgeStore.subscriptionTier$;\n this.subscriptionLevel$ = this.badgeStore.subscriptionTier$.pipe(\n map((s) => SubscriptionTiersService.getI18NName(s.id)),\n );\n this.showBadge$ = this.badgeStore.showBadge$;\n }\n\n handleOnSubLevelClick(_subscriptionTier: SubscriptionTierInterface): void {\n this.router.navigateByUrl('/subscription-tier/my-plan');\n }\n\n canNavigateToMyPlanPage$(s: SubscriptionTierInterface): Observable {\n return this.appConfigService.config$.pipe(\n map((config) => {\n return (\n (SubscriptionTiersService.isVBP2Subscription(s) ||\n SubscriptionTiersService.isM3Subscription(s) ||\n SubscriptionTiersService.isVBP2022Subscription(s) ||\n SubscriptionTiersService.isFree(s)) &&\n config.userCanAccessBilling\n );\n }),\n );\n }\n}\n","\n \n \n {{ subscriptionLevel$ | async | translate }}\n \n \n \n {{ subscriptionLevel$ | async | translate }}\n \n \n \n\n","import { Component } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { TrialStatus } from '../../core/partner/partner-trial-status';\nimport { PartnerTrialStoreService } from '../../partner-trial';\nimport { LevelBadgeStoreService } from './level-badge-store.service';\n\nconst formatRemainingTrialDays = function (remainingDays: number): string {\n return remainingDays + (remainingDays === 1 ? ' DAY REMAINING' : ' DAYS REMAINING');\n};\n\n@Component({\n selector: 'app-trial-badge',\n templateUrl: './trial-badge.component.html',\n styleUrls: ['./trial-badge.component.scss'],\n standalone: false,\n})\nexport class TrialBadgeComponent {\n showBadge$: Observable;\n trialActive$: Observable;\n trialExpiringSoon$: Observable;\n trialDaysRemaining$: Observable;\n\n constructor(\n private trialService: PartnerTrialStoreService,\n private badgeStore: LevelBadgeStoreService,\n ) {\n this.trialActive$ = this.trialService.partnerTrial$.pipe(map((t) => t.status === TrialStatus.ACTIVE));\n this.trialExpiringSoon$ = this.trialService.partnerTrial$.pipe(map((t) => t.expiringSoon));\n this.trialDaysRemaining$ = this.trialService.partnerTrial$.pipe(\n map((t) => formatRemainingTrialDays(t.remainingDays)),\n );\n this.showBadge$ = this.badgeStore.showBadge$;\n }\n}\n","\n
\n {{ 'COMMON.TRIAL' | translate | uppercase }}\n
\n
\n {{ trialDaysRemaining$ | async }}\n
\n
\n","import { Component, Inject, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { combineLatest, Observable } from 'rxjs';\nimport { map, shareReplay, startWith } from 'rxjs/operators';\nimport { AppConfigService } from '../../app-config.service';\nimport { AccessService, Feature, StubAccessService } from '../../core/access';\nimport { UrlService } from '../../core/url.service';\nimport { UserBrandingService } from '../../core/user-branding.service';\nimport { UITheme } from '@vendasta/partner';\n\nconst VENDASTA_LOGO = 'https://vstatic-prod.apigateway.co/partner-center-client.9223372035111579330.prod/assets/images/vendasta-logo.png';\nconst DEFAULT_LOGO =\n 'https://vstatic-prod.apigateway.co/partner-center-client.9223372035111579330.prod/assets/images/powered-by-vendasta-logo.png';\n\n@Component({\n selector: 'app-logo',\n templateUrl: './logo.component.html',\n styleUrls: ['./logo.component.scss'],\n standalone: false,\n})\nexport class LogoComponent implements OnInit {\n whiteLabelLogoUrlDisplay$: Observable;\n shouldShowEditCapability$: Observable;\n shouldShowAddLogo$: Observable;\n shouldShowPoweredByVendasta$: Observable;\n isSuperAdminRoute$: Observable;\n\n vendastaLogo = VENDASTA_LOGO;\n hoveringLogo = false;\n\n constructor(\n @Inject(StubAccessService) private access: AccessService,\n private urlService: UrlService,\n private readonly configService: AppConfigService,\n private userBrandingService: UserBrandingService,\n private router: Router,\n ) {}\n\n ngOnInit(): void {\n this.isSuperAdminRoute$ = this.urlService.isSuperAdminRoute$;\n\n const hasWhitelabel$ = this.access.hasAccessToFeature(Feature.whitelabel).pipe(startWith(true));\n\n this.whiteLabelLogoUrlDisplay$ = combineLatest([this.userBrandingService.branding$, hasWhitelabel$]).pipe(\n map(([branding, hasWhitelabel]) => {\n if (!hasWhitelabel) {\n return DEFAULT_LOGO;\n }\n if (branding.uiTheme === UITheme.UI_THEME_DARK && !!branding.darkModeLogoUrl) {\n return branding.darkModeLogoUrl;\n } else {\n return branding.logoUrl;\n }\n }),\n shareReplay({ refCount: false, bufferSize: 1 }),\n );\n\n const userCanCustomizeWhitelabel$ = this.configService.config$.pipe(\n map((config) => {\n return config.userCanCustomizeWhitelabel;\n }),\n );\n\n this.shouldShowEditCapability$ = userCanCustomizeWhitelabel$;\n this.shouldShowAddLogo$ = combineLatest([\n hasWhitelabel$,\n this.whiteLabelLogoUrlDisplay$,\n userCanCustomizeWhitelabel$,\n ]).pipe(\n map(\n ([hasWhitelabel, logoUrl, userCanCustomizeWhitelabel]) =>\n hasWhitelabel && !logoUrl && userCanCustomizeWhitelabel,\n ),\n );\n\n this.shouldShowPoweredByVendasta$ = this.access\n .hasAccessToFeature(Feature.cobrandingDisabled)\n .pipe(map((cobrandingDisabled) => !cobrandingDisabled));\n }\n\n editLogo(): void {\n this.router.navigateByUrl('/customize-branding');\n }\n}\n","\n
\n Powered by\n \n
\n\n
\n \n \n \n create\n
\n
\n \n \n + {{ 'CUSTOMIZE_BRANDING.LOGO.TITLE' | translate }}\n \n \n \n\n\n\n
\n \n
\n
\n\n\n
\n \n
\n
\n","import { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { DateFormat } from '@vendasta/galaxy/utility/date-utils';\nimport { ProductAnalyticsService } from '@vendasta/product-analytics';\nimport { Observable, of } from 'rxjs';\nimport { catchError, map, shareReplay } from 'rxjs/operators';\nimport { UrlService } from '../../core/url.service';\nimport { daysRemaining } from '../../partner-trial';\nimport { TrialBannerService, TrialDetails } from '../trial-banner.service';\n\n@Component({\n selector: 'app-trial-banner',\n templateUrl: './trial-banner.component.html',\n styleUrls: ['./trial-banner.component.scss'],\n standalone: false,\n})\nexport class TrialBannerComponent implements OnInit {\n trialDetails$: Observable;\n remainingDays$: Observable;\n dateFormat = DateFormat;\n isSuperAdminRoute$: Observable;\n isAutomationsRoute$: Observable;\n\n constructor(\n private trialBannerService: TrialBannerService,\n private router: Router,\n private readonly analyticsService: ProductAnalyticsService,\n private urlService: UrlService,\n ) {}\n\n ngOnInit(): void {\n this.isAutomationsRoute$ = this.urlService.isAutomationsRoute$;\n this.isSuperAdminRoute$ = this.urlService.isSuperAdminRoute$;\n this.trialDetails$ = this.trialBannerService.getTrialDetails$().pipe(\n catchError(() => {\n return of({ onTrial: false, isFree: false });\n }),\n shareReplay({ bufferSize: 1, refCount: true }),\n );\n\n this.remainingDays$ = this.trialDetails$.pipe(\n map((details) => {\n return daysRemaining(details.startDate, details.endDate);\n }),\n );\n }\n\n openSalesVideo(): void {\n this.analyticsService.trackEvent('watch-sales-video', 'trial-banner', 'click');\n const videoUrl = 'https://vendasta-1.wistia.com/medias/55ko816exp';\n window.open(videoUrl, '_blank');\n }\n\n learnMore(): void {\n this.analyticsService.trackEvent('learn-more', 'trial-banner', 'click');\n this.router.navigateByUrl('/upgrade-subscription-tier');\n }\n}\n","\n \n {{ trialDetails.tierName | translate }}{{ 'TRIAL_BANNER.PLAN' | translate }}\n \n \n {{ 'TRIAL_BANNER.ENDS_TODAY' | translate }}\n \n 0\">\n \n {{ 'TRIAL_BANNER.DESCRIPTION' | translate: { date: trialDetails.endDate | glxyDate: dateFormat.longDate } }}\n \n \n \n {{ 'TRIAL_BANNER.DAY_REMAINING' | translate }}\n \n \n {{ 'TRIAL_BANNER.DAYS_REMAINING' | translate: { days: data.remainingDays } }}\n \n \n \n \n \n {{ 'TRIAL_BANNER.LEARN_MORE' | translate }}\n \n \n\n","import { Component, Input, OnDestroy, OnInit, Optional, QueryList, ViewChildren } from '@angular/core';\nimport { MatDrawer, MatDrawerMode } from '@angular/material/sidenav';\nimport { Observable, Subscription } from 'rxjs';\nimport { tap } from 'rxjs/operators';\nimport { HelpSideDrawerTemplateRef, HelpSideDrawerTemplateRefService } from '../help-side-drawer-template-ref.service';\n\n@Component({\n selector: 'app-help-side-drawer-container',\n templateUrl: './help-side-drawer-container.component.html',\n styleUrls: ['./help-side-drawer-container.component.scss'],\n standalone: false,\n})\nexport class HelpSideDrawerContainerComponent implements OnInit, OnDestroy {\n @ViewChildren(MatDrawer) drawerReference: QueryList;\n @Input() modeType: MatDrawerMode = 'over';\n sideDrawerTemplate$: Observable;\n private subscriptions: Subscription[] = [];\n\n constructor(\n @Optional()\n private helpSideDrawerTemplateRefService: HelpSideDrawerTemplateRefService,\n ) {}\n\n ngOnInit(): void {\n if (this.helpSideDrawerTemplateRefService) {\n this.sideDrawerTemplate$ = this.helpSideDrawerTemplateRefService.openTemplate$;\n\n this.subscriptions.push(\n this.helpSideDrawerTemplateRefService.open$\n .pipe(\n tap((open) => {\n if (!this.drawerReference?.first) {\n return;\n }\n\n if (open) {\n this.drawerReference.first.open('program');\n } else {\n this.drawerReference.first.close();\n }\n }),\n )\n .subscribe(),\n );\n }\n }\n\n ngOnDestroy(): void {\n this.subscriptions.forEach((s) => {\n s.unsubscribe();\n });\n }\n}\n","\n \n \n \n \n \n \n\n\n \n
\n \n
\n
\n","import { InjectionToken, NgModule } from '@angular/core';\nimport { PARTNER_CENTER_BILLING_CONFIG_TOKEN, PartnerCenterBillingConfig } from './config';\n\n@NgModule({\n imports: [],\n})\nexport class PartnerCenterBillingCoreModule {\n static forRoot(config: InjectionToken) {\n return {\n ngModule: PartnerCenterBillingCoreModule,\n providers: [\n {\n provide: PARTNER_CENTER_BILLING_CONFIG_TOKEN,\n useExisting: config,\n deps: [],\n },\n ],\n };\n }\n}\n","import { inject, InjectionToken, NgModule, ProviderToken } from '@angular/core';\nimport {\n CustomerUser,\n PartnerCenterBillingConfig,\n PartnerCenterBillingCoreModule,\n Recipient,\n RecipientProvider,\n} from '@galaxy/partner-center-client/billing/static/core';\nimport { PARTNER_ID_INJECTION_TOKEN } from '../../core/constants';\nimport { combineLatest, firstValueFrom, Observable, switchMap } from 'rxjs';\nimport { AccountGroupService, ProjectionFilter } from '@galaxy/account-group';\nimport { map } from 'rxjs/operators';\nimport { BrandingV2Interface } from '@vendasta/partner';\nimport { BrandingV2Service, SubscriptionTiersService } from '@galaxy/partner';\nimport { AccountService } from '../../core/account.service';\nimport { MatDialog } from '@angular/material/dialog';\nimport { AssignedSalespersonService } from '../../assigned-salesperson/assigned-salesperson.service';\nimport { AssignedSalespersonDialogComponent } from '../../assigned-salesperson/assigned-salesperson-dialog/assigned-salesperson-dialog.component';\nimport { PartnerTrialStoreService, TrialStatus } from '../../core/partner';\nimport { SupportNumberService } from '../../common/help-menu';\nimport { PartnerService } from '../../core/partner.service';\nimport { RecipientProviderService } from '../../invoice/recipients/recipient-provider.service';\n\nexport const PARTNER_CENTER_TOKEN_FOR_PCC_BILLING_CONFIG = new InjectionToken(\n '[partner-center-client]: token for partner-center-client/billing config',\n {\n providedIn: 'root',\n factory: () => {\n const partnerId$ = inject('PARTNER_ID' as unknown as unknown as InjectionToken>);\n const marketId$ = inject('MARKET_ID' as unknown as InjectionToken>);\n const accountGroupService = inject(AccountGroupService);\n const brandingService = inject(BrandingV2Service);\n const accountService = inject(AccountService);\n const assignedSalespersonService = inject(AssignedSalespersonService);\n const dialog = inject(MatDialog);\n\n const trialService = inject(PartnerTrialStoreService);\n const partnerService = inject(PartnerService);\n const supportNumberService = inject(SupportNumberService);\n\n const recipientService: RecipientProvider = inject(RecipientProviderService);\n\n return {\n merchantId$: inject(PARTNER_ID_INJECTION_TOKEN as unknown as ProviderToken>),\n marketId$: inject('MARKET_ID' as unknown as InjectionToken>),\n customerService: {\n getCustomer(customerId: string): Observable<{ name: string; marketId: string }> {\n return accountGroupService\n .get(customerId, new ProjectionFilter({ napData: true, accountGroupExternalIdentifiers: true }))\n .pipe(map((a) => ({ name: a.napData.companyName, marketId: a.externalIdentifiers.marketId })));\n },\n getUsers(customerId: string): Observable {\n return partnerId$.pipe(\n switchMap((partnerId) => accountService.loadUsers(customerId, partnerId)),\n map((users) =>\n users.map((u) => {\n // Patch the user here - prefer unifiedUserId\n return { ...u, userId: u.unifiedUserId ?? u.userId };\n }),\n ),\n );\n },\n },\n merchantService: {\n getBranding(): Observable> {\n return combineLatest([partnerId$, marketId$]).pipe(\n switchMap(([partnerId, marketId]) => brandingService.getBranding(partnerId, marketId)),\n );\n },\n isFreeMerchant$: partnerService.subscriptionTier$.pipe(map((s) => SubscriptionTiersService.isFree(s))),\n isTrialActive$: trialService.partnerTrial$.pipe(map((t) => t.status === TrialStatus.ACTIVE)),\n supportNumber$: supportNumberService.getSupportNumber(),\n },\n recipientProvider: recipientService,\n\n openAssignedSalespersonDialog: async () => {\n const config = await firstValueFrom(assignedSalespersonService.dialogConfig$);\n dialog.open(AssignedSalespersonDialogComponent, config);\n },\n };\n },\n },\n);\n\n@NgModule({\n imports: [PartnerCenterBillingCoreModule.forRoot(PARTNER_CENTER_TOKEN_FOR_PCC_BILLING_CONFIG)],\n})\nexport class BillingProviderModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatListModule } from '@angular/material/list';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatStepperModule } from '@angular/material/stepper';\nimport { MatTableModule } from '@angular/material/table';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GalaxyAlertModule } from '@vendasta/galaxy/alert';\nimport { GalaxyPageModule } from '@vendasta/galaxy/page';\nimport { VaMaterialTableModule } from '@vendasta/uikit';\nimport { ActionListsStoreService } from '../action-lists';\n// eslint-disable-next-line @nx/enforce-module-boundaries\nimport { AuxiliaryDataModule, AuxiliaryDataPageModule } from '@vendasta/auxiliary-data-components';\n// eslint-disable-next-line @nx/enforce-module-boundaries\nimport { FieldSelectedForEditService as CreateOrEditCustomFieldService } from '@vendasta/auxiliary-data-components';\nimport { SideDrawerContainerComponent } from '../common/side-drawer-container/side-drawer-container.component';\nimport { SideDrawerModule } from '../side-drawer/side-drawer.module';\nimport { PreviewWelcomeEmailComponent } from '../users/user/preview-welcome-email-dialog.component';\nimport { BulkImportMapperComponent } from './bulk-import-mapper.component';\nimport { BulkImportMappingRowComponent } from './bulk-import-mapping-row.component';\nimport { BulkImportMappingService } from './bulk-import-mapping.service';\nimport { BulkImportComponent } from './bulk-import.component';\nimport { BulkImportService } from './bulk-import.service';\nimport { MapChangeDialogComponent } from './map-change-dialog.component';\n// eslint-disable-next-line @nx/enforce-module-boundaries\nimport { AuxiliaryDataPanelComponentModule } from '@vendasta/auxiliary-data-components';\n\n@NgModule({\n declarations: [\n BulkImportComponent,\n BulkImportMapperComponent,\n BulkImportMappingRowComponent,\n MapChangeDialogComponent,\n PreviewWelcomeEmailComponent,\n ],\n imports: [\n MatStepperModule,\n ReactiveFormsModule,\n MatFormFieldModule,\n MatInputModule,\n SideDrawerModule,\n MatButtonModule,\n MatIconModule,\n FormsModule,\n MatAutocompleteModule,\n MatRadioModule,\n VaMaterialTableModule,\n MatCheckboxModule,\n MatTableModule,\n MatSelectModule,\n MatProgressSpinnerModule,\n MatDialogModule,\n MatListModule,\n MatTooltipModule,\n GalaxyPageModule,\n TranslateModule,\n GalaxyAlertModule,\n AuxiliaryDataPageModule,\n SideDrawerContainerComponent,\n CommonModule,\n AuxiliaryDataModule,\n AuxiliaryDataPageModule,\n AuxiliaryDataPanelComponentModule,\n ],\n exports: [BulkImportComponent, BulkImportMapperComponent, BulkImportMappingRowComponent, MapChangeDialogComponent],\n providers: [ActionListsStoreService, BulkImportService, BulkImportMappingService, CreateOrEditCustomFieldService],\n})\nexport class BulkImportModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { LevelBadgeStoreService } from './level-badge-store.service';\nimport { LevelBadgeComponent } from './level-badge.component';\nimport { TrialBadgeComponent } from './trial-badge.component';\n\nconst MatModules = [MatIconModule, MatMenuModule, MatTooltipModule];\n\n@NgModule({\n imports: [CommonModule, MatModules, TranslateModule],\n declarations: [LevelBadgeComponent, TrialBadgeComponent],\n exports: [LevelBadgeComponent, TrialBadgeComponent],\n providers: [LevelBadgeStoreService],\n})\nexport class LevelBadgeModule {}\n","import { Component, Inject } from '@angular/core';\nimport { MatDialogModule, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { SubstitutionParameterOptionsInterface } from '@vendasta/templates';\nimport { VariableMenuItem } from '../variable-menu.service';\nimport { VariableMenuDialogComponent } from './variable-menu-dialog.component';\n\ninterface DialogData {\n includeHtml: boolean;\n partnerId: string;\n marketId: string;\n isOrderAutomation: boolean; // deprecated: should use `supportedSubstitutionOptions` instead\n extraMenuItems: VariableMenuItem[];\n supportedSubstitutionOptions: SubstitutionParameterOptionsInterface;\n dontIncludeDefaultCategories: boolean;\n}\n\n@Component({\n imports: [VariableMenuDialogComponent, MatDialogModule, TranslateModule],\n template: `\n

{{ 'HTML_EDITOR.DYNAMIC_CONTENT.ADD_DYNAMIC_CONTENT' | translate }}

\n
\n \n
\n `,\n styles: [\n `\n .form-container {\n position: relative;\n height: calc(100% - 69px);\n width: 100%;\n }\n `,\n ],\n})\nexport class VariableMenuMatDialogComponent {\n partnerId: string;\n marketId: string;\n automationId: string;\n isOrderAutomation: boolean;\n extraMenuItems: VariableMenuItem[];\n supportedSubstitutionOptions: SubstitutionParameterOptionsInterface;\n dontIncludeDefaultCategories: boolean;\n\n constructor(\n public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: DialogData,\n ) {\n this.partnerId = data.partnerId;\n this.marketId = data.marketId;\n this.isOrderAutomation = data.isOrderAutomation;\n this.extraMenuItems = data.extraMenuItems;\n this.supportedSubstitutionOptions = data.supportedSubstitutionOptions;\n this.dontIncludeDefaultCategories = data.dontIncludeDefaultCategories;\n }\n\n formResult(result: string | null): void {\n this.dialogRef.close(result);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { DefaultUrlSerializer, UrlTree } from '@angular/router';\n\n/*\nAngular 2 auto serializes all url parameters that go onto an a tag.\nThis is generally fine - if the urls are staying within angular 2's router.\nSince the majority of these links are going back to the python server,\ngoogle app engine was 404ing because it didn't know what '/%3Fagid%3DAG-1234 was.\n\nThis will return those characters back to their non-serialized form.\n */\n@Injectable()\nexport class ForAppEngineUrlSerializer extends DefaultUrlSerializer {\n serialize(tree: UrlTree): string {\n const path = super.serialize(tree);\n return path.replace('%3F', '?').replace('%3D', '=').replace('%26', '&');\n }\n}\n","{\n \"COMMON\": {\n \"MEETING_ANALYSIS\": \"Meeting Analysis\"\n },\n \"CALLS\": {\n \"TITLE\": \"Calls\"\n }\n}\n","import { NgModule } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { LexiconModule } from '@galaxy/lexicon';\nimport En from './en_devel.json';\n\n@NgModule({\n imports: [\n TranslateModule,\n LexiconModule.forChild({\n componentName: 'common/meeting-analysis',\n baseTranslation: En,\n }),\n ],\n})\nexport class MeetingAnalysisI18nModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { DomainAuthorizationModule } from '@galaxy/email-ui/domain-authorization';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GalaxyPageModule } from '@vendasta/galaxy/page';\nimport { EmailSettingsComponent } from './email-settings.component';\nimport { SETUP_HELP_INFO_URL_INJECTION_TOKEN } from '@galaxy/email-ui/domain-authorization/src/domain-info-card/dependencies';\n\n@NgModule({\n declarations: [EmailSettingsComponent],\n imports: [CommonModule, GalaxyPageModule, TranslateModule, DomainAuthorizationModule, MatButtonModule],\n exports: [EmailSettingsComponent],\n providers: [\n {\n provide: SETUP_HELP_INFO_URL_INJECTION_TOKEN,\n useValue: 'https://support.vendasta.com/hc/en-us/articles/4406951758871',\n },\n ],\n})\nexport class EmailSettingsModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GalaxyAlertModule } from '@vendasta/galaxy/alert';\nimport { GalaxyPipesModule } from '@vendasta/galaxy/pipes';\nimport { TrialBannerComponent } from './trial-banner/trial-banner.component';\n\n@NgModule({\n imports: [CommonModule, TranslateModule, GalaxyAlertModule, GalaxyPipesModule],\n declarations: [TrialBannerComponent],\n exports: [TrialBannerComponent],\n})\nexport class TrialBannerModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatToolbarModule } from '@angular/material/toolbar';\n\nimport {\n HelpClosingSideDrawerComponent,\n HelpSideDrawerContentDirective,\n HelpSideDrawerFooterDirective,\n HelpSideDrawerPreTitleActionsDirective,\n HelpSideDrawerTitleActionsDirective,\n} from './help-closing-side-drawer/help-closing-side-drawer.component';\n\n@NgModule({\n declarations: [\n HelpClosingSideDrawerComponent,\n HelpSideDrawerContentDirective,\n HelpSideDrawerFooterDirective,\n HelpSideDrawerPreTitleActionsDirective,\n HelpSideDrawerTitleActionsDirective,\n ],\n imports: [CommonModule, MatButtonModule, MatIconModule, MatToolbarModule],\n exports: [\n HelpClosingSideDrawerComponent,\n HelpSideDrawerContentDirective,\n HelpSideDrawerFooterDirective,\n HelpSideDrawerPreTitleActionsDirective,\n HelpSideDrawerTitleActionsDirective,\n ],\n})\nexport class HelpSideDrawerModule {}\n","import { NgModule } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatSidenavModule } from '@angular/material/sidenav';\nimport { LexiconModule } from '@galaxy/lexicon';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GalaxyInputModule } from '@vendasta/galaxy/input';\nimport { GalaxyLoadingSpinnerModule } from '@vendasta/galaxy/loading-spinner';\nimport baseTranslation from '../../assets/i18n/en_devel.json';\nimport { WEBLATE_COMPONENT_NAME } from '../constants';\n\nimport { CommonModule } from '@angular/common';\nimport { GalaxyBadgeModule } from '@vendasta/galaxy/badge';\nimport { IconComponent, UIKitModule } from '@vendasta/uikit';\nimport { AssignedSalespersonModule } from '../assigned-salesperson/assigned-salesperson.module';\nimport { TrialBannerModule } from '../trial-banner/trial-banner.module';\nimport { HelpCaseCardComponent } from './help-case-card/help-case-card.component';\nimport { HelpCenterComponent } from './help-center.component';\nimport { HelpSearchCardComponent } from './help-search-card/help-search-card.component';\nimport { HelpSideDrawerContainerComponent } from './help-side-drawer/help-side-drawer-container/help-side-drawer-container.component';\nimport { HelpSideDrawerModule } from './help-side-drawer/help-side-drawer.module';\n\n@NgModule({\n imports: [\n CommonModule,\n MatIconModule,\n MatButtonModule,\n MatExpansionModule,\n MatSidenavModule,\n MatDividerModule,\n GalaxyLoadingSpinnerModule,\n GalaxyBadgeModule,\n TranslateModule,\n LexiconModule.forChild({\n componentName: WEBLATE_COMPONENT_NAME,\n baseTranslation: baseTranslation,\n }),\n\n UIKitModule,\n HelpSideDrawerModule,\n AssignedSalespersonModule,\n GalaxyInputModule,\n TrialBannerModule,\n IconComponent,\n ],\n exports: [HelpCenterComponent, HelpSideDrawerContainerComponent],\n declarations: [HelpCenterComponent, HelpCaseCardComponent, HelpSideDrawerContainerComponent, HelpSearchCardComponent],\n providers: [],\n})\nexport class HelpCenterModule {}\n","import { Inject, Injectable } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { Router } from '@angular/router';\nimport { InvoiceService, TaxRateService } from '@galaxy/billing';\n// eslint-disable-next-line @nx/enforce-module-boundaries\nimport {\n addNextUrl,\n AppOptionsKeys,\n ConversationDetail,\n ConversationMessage,\n ConversationTitleInfo,\n CreateContactState,\n getSubjectParticipantByType,\n HostAppInterface,\n InboxNamespace,\n KabobDynamicButton,\n ParticipantService,\n SendMessage,\n SubjectParticipant,\n ViewModeService,\n} from '@galaxy/conversation/core';\n// eslint-disable-next-line @nx/enforce-module-boundaries\nimport { toFirestoreId } from '@galaxy/conversation/core/lib/conversation-utils';\nimport { FeatureFlagService, PartnerAccountGroupService } from '@galaxy/partner';\nimport { PaymentLinkItem } from '@vendasta/billing';\nimport { AssociatedUserInterface } from '@vendasta/business-center/lib/_internal/interfaces/api.interface';\nimport {\n ConversationChannel,\n GlobalParticipantType,\n Participant,\n ParticipantType,\n PlatformLocation,\n} from '@vendasta/conversation';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { ProductAnalyticsService } from '@vendasta/product-analytics';\nimport { newPartnerServiceContext, SSOService } from '@vendasta/sso';\nimport { Owner, UrlShortenerService } from '@vendasta/url-shortener';\nimport { catchError, firstValueFrom, forkJoin, map, mergeMap, Observable, of, switchMap, take } from 'rxjs';\nimport { PAGE_ROUTES } from '@galaxy/crm/static';\n\n@Injectable()\nexport class ConversationPartnerCenterService implements HostAppInterface {\n private partnerId = toSignal(this.partnerId$);\n\n constructor(\n private readonly router: Router,\n private readonly participantService: ParticipantService,\n private readonly snackbarService: SnackbarService,\n private readonly urlShortenerService: UrlShortenerService,\n private readonly viewModeService: ViewModeService,\n private featureFlagService: FeatureFlagService,\n private invoiceService: InvoiceService,\n private ssoService: SSOService,\n private analyticsService: ProductAnalyticsService,\n private taxRateService: TaxRateService,\n private partnerAccountGroupService: PartnerAccountGroupService,\n @Inject('PARTNER_ID') private partnerId$: Observable,\n ) {}\n\n getConversationTitleInfo(conversationDetail: ConversationDetail): ConversationTitleInfo {\n const recipients = this.getRecipient(conversationDetail);\n const conversationTitleInfo = {} as ConversationTitleInfo;\n const title: string[] = [];\n const secondarySubtitle: string[] = [];\n let subtitle = '';\n\n recipients.map((recipient) => {\n if (\n recipient.participantType == ParticipantType.PARTICIPANT_TYPE_CUSTOMER &&\n recipient.isParticipantInternalInfoDeleted\n ) {\n title.push('INBOX.ERROR.DELETED_CUSTOMER');\n } else {\n title.push(recipient.name || recipient.phoneNumber || recipient.internalParticipantId);\n secondarySubtitle.push(recipient.internalParticipantId);\n }\n });\n conversationTitleInfo.title = title.filter((item) => item).join(', ');\n conversationTitleInfo.secondarySubtitle = secondarySubtitle.filter((item) => item).join(', ');\n\n // only returns a subtitle when there's only an accountGroup as recipient\n if (recipients.length === 1) {\n const address = recipients.find(\n (recipient) => recipient.participantType === ParticipantType.PARTICIPANT_TYPE_ACCOUNT_GROUP,\n )?.address;\n if (address) {\n subtitle = [address.firstLineAddress, address.secondLineAddress, address.city, address.state, address.country]\n .filter((item) => item)\n .join(', ');\n }\n }\n conversationTitleInfo.subtitle = subtitle;\n // Don't show the subtitle for openAI channel conversations\n if (conversationDetail.conversation.channel === ConversationChannel.CONVERSATION_CHANNEL_OPENAI) {\n conversationTitleInfo.subtitle = '';\n conversationTitleInfo.secondarySubtitle = '';\n }\n return conversationTitleInfo;\n }\n\n getRecipient(conversationDetail: ConversationDetail): Participant[] | null {\n const subjectParticipants = conversationDetail?.participants?.filter(\n (participant) => participant.isSubjectParticipant,\n );\n\n let recipientResult = subjectParticipants.filter(\n (recipient) => recipient.internalParticipantId !== this.partnerId(),\n );\n\n if (!recipientResult?.length) {\n recipientResult = subjectParticipants.map((subjectParticipant) => {\n let result = subjectParticipant;\n if (subjectParticipant.participantType !== ParticipantType.PARTICIPANT_TYPE_PARTNER) {\n result = new Participant({\n internalParticipantId: result.internalParticipantId,\n participantType: ParticipantType.PARTICIPANT_TYPE_PARTNER,\n isSubjectParticipant: true,\n });\n }\n return result;\n });\n }\n\n return recipientResult;\n }\n\n isSenderFromOrganization(message: ConversationMessage): boolean {\n if (\n message.sender?.participantType === ParticipantType.PARTICIPANT_TYPE_IAM_USER ||\n message.sender?.participantType === ParticipantType.PARTICIPANT_TYPE_PARTNER\n ) {\n return message.sender?.partnerId === this.partnerId() && !message.sender?.accountGroupId;\n }\n return (\n message.sender?.participantType === ParticipantType.PARTICIPANT_TYPE_DIGITAL_AGENT ||\n (message.sender?.participantType === ParticipantType.PARTICIPANT_TYPE_OPENAI_BOT &&\n message.channel === ConversationChannel.CONVERSATION_CHANNEL_WEB_CHAT)\n );\n }\n\n isYourExpert(): boolean {\n return false;\n }\n\n // this method only returns isInfoDeleted when the there's only an accountGroup as recipient\n isRecipientInternalInfoDeleted(conversationDetail: ConversationDetail): boolean {\n const recipient = this.getRecipient(conversationDetail) || [];\n if (recipient.length == 1) {\n return recipient.find(\n (subjectParticipant) => subjectParticipant?.participantType === ParticipantType.PARTICIPANT_TYPE_ACCOUNT_GROUP,\n )?.isParticipantInternalInfoDeleted;\n }\n return false;\n }\n\n private buildSubjectParticipant(partnerId: string, subjectParticipant: SubjectParticipant): Participant {\n switch (subjectParticipant?.participantType) {\n case GlobalParticipantType.GLOBAL_PARTICIPANT_TYPE_ACCOUNT_GROUP:\n return this.participantService.buildAccountGroup(partnerId, subjectParticipant?.internalParticipantId);\n case GlobalParticipantType.GLOBAL_PARTICIPANT_TYPE_PARTNER:\n return this.participantService.buildPartner(subjectParticipant?.internalParticipantId);\n case GlobalParticipantType.GLOBAL_PARTICIPANT_TYPE_VENDOR:\n return this.participantService.buildVendor(subjectParticipant?.internalParticipantId);\n case GlobalParticipantType.GLOBAL_PARTICIPANT_TYPE_CUSTOMER:\n return this.participantService.buildContactParticipant(subjectParticipant?.internalParticipantId, partnerId);\n default:\n return {} as Participant;\n }\n }\n\n viewContact(contactId: string, participantType: ParticipantType, _firestoreDocId: string): void {\n if (!contactId || !participantType) {\n this.snackbarService.openErrorSnack('INBOX.TOPBAR.ERROR_LOADING_RECIPIENT');\n return;\n }\n\n const routeTemplate = `/crm/${PAGE_ROUTES.CONTACT.ROOT}/${PAGE_ROUTES.CONTACT.SUBROUTES.PROFILE}`;\n this.viewModeService.setViewMode('sidebar');\n this.router.navigate([routeTemplate.replace(':crmObjectId', contactId)]);\n }\n\n buildParticipant(partnerId: string, recipient: SubjectParticipant): Observable {\n if (\n partnerId === 'VMF' &&\n recipient?.participantType === GlobalParticipantType.GLOBAL_PARTICIPANT_TYPE_ACCOUNT_GROUP\n ) {\n return this.partnerAccountGroupService.getPartnerAccountGroupMapping('', recipient?.internalParticipantId).pipe(\n catchError((err) => {\n console.error(err);\n if (err.status === 404) {\n this.snackbarService.openErrorSnack('Account is not associated with a Partner');\n throw new Error('Account is not associated with a Partner');\n }\n this.snackbarService.openErrorSnack('An error occurred, please try again');\n throw err;\n }),\n switchMap((partnerFromAccountGroup) => {\n return this.featureFlagService.batchGetStatus(partnerFromAccountGroup.partnerId, '', ['inbox_tab_pcc']).pipe(\n map((featureFlagsStatus) => ({\n featureFlags: featureFlagsStatus,\n partnerFromAccountGroup: partnerFromAccountGroup,\n })),\n );\n }),\n map((result) => {\n if (result.featureFlags['inbox_tab_pcc']) {\n return this.participantService.buildPartner(result.partnerFromAccountGroup.partnerId);\n }\n this.snackbarService.openErrorSnack('Partner does not have the \"inbox_tab_pcc\" feature flag enabled');\n throw new Error('Partner does not have the \"inbox_tab_pcc\" feature flag enabled');\n }),\n );\n }\n return of(this.buildSubjectParticipant(partnerId, recipient));\n }\n\n buildParticipants(currentIAMParticipant: Participant, participants: SubjectParticipant[]): Observable {\n const participantList$: Observable[] = [];\n\n participants.forEach((participant) => {\n participantList$.push(this.buildParticipant(currentIAMParticipant?.partnerId, participant));\n });\n return forkJoin(participantList$).pipe(\n map((participants) => {\n participants.push(currentIAMParticipant);\n return participants;\n }),\n );\n }\n\n buildSendMessageParams(\n currentIAMParticipant: Participant,\n subjectParticipants: SubjectParticipant[],\n channel: ConversationChannel,\n ): Observable {\n return this.buildParticipants(currentIAMParticipant, subjectParticipants).pipe(\n map((participants) => ({\n participants: participants,\n location: PlatformLocation.PLATFORM_LOCATION_PARTNER_CENTER,\n channel: channel,\n })),\n );\n }\n\n redirectToInternalConversation(\n currentIAMParticipant: Participant,\n recipientSubjectParticipant: SubjectParticipant[],\n channel: ConversationChannel,\n ): void {\n this.buildSendMessageParams(currentIAMParticipant, recipientSubjectParticipant, channel)\n .pipe(take(1))\n .subscribe((params) => this.router.navigate(['/inbox/send-message/'], { state: params }));\n }\n\n createPaymentLink(conversationDetail: ConversationDetail, paymentLinkItems: PaymentLinkItem[]): Observable {\n const senderInternalId = getSubjectParticipantByType(\n conversationDetail.participants,\n ParticipantType.PARTICIPANT_TYPE_PARTNER,\n )?.internalParticipantId;\n const participantInternalId = getSubjectParticipantByType(\n conversationDetail.participants,\n ParticipantType.PARTICIPANT_TYPE_ACCOUNT_GROUP,\n )?.internalParticipantId;\n const trackingProps = {\n id: toFirestoreId(conversationDetail.conversation.conversationId),\n accountGroupId: participantInternalId,\n partnerId: senderInternalId,\n location: PlatformLocation.PLATFORM_LOCATION_PARTNER_CENTER,\n channel: conversationDetail.conversation.channel,\n };\n return this.invoiceService.createPaymentLink(senderInternalId, participantInternalId, paymentLinkItems).pipe(\n mergeMap((invoiceId) => {\n if (!invoiceId) {\n return of('');\n }\n this.analyticsService.trackEvent('inbox', 'conversation', 'create-invoice-success', 0, {\n ...trackingProps,\n invoiceId: invoiceId,\n });\n return this.ssoService.getEntryUrl('VBC', newPartnerServiceContext(senderInternalId), {\n path: `/invoice/${senderInternalId}/${invoiceId}`,\n skipGatewayAuthentication: true,\n });\n }),\n catchError((_) => {\n this.analyticsService.trackEvent('inbox', 'conversation', 'create-invoice-error', 0, trackingProps);\n return of('');\n }),\n );\n }\n\n shortenLink(link: string, accountGroupId = ''): Observable {\n link = !link.match(/^http/) ? 'https://' + link : link;\n // TODO: Add new owner type in urlshortener service\n return this.urlShortenerService.createLink(accountGroupId, link, Owner.OWNER_UNTRACKED, '', false).pipe(\n catchError((_) => of(null)),\n map((result) => {\n if (!result) {\n return link;\n }\n return `https://${result.domain}${result.shortCode}`;\n }),\n );\n }\n\n navigateToCreateContact(state: CreateContactState): void {\n this.router.navigate([{ outlets: { inbox: ['inbox', 'create-contact'] } }], { state });\n }\n\n calculatePaymentLinkTax(conversationDetail: ConversationDetail, amount: number): Observable {\n const merchantId = getSubjectParticipantByType(\n conversationDetail.participants,\n ParticipantType.PARTICIPANT_TYPE_PARTNER,\n )?.internalParticipantId;\n const customerId = getSubjectParticipantByType(\n conversationDetail.participants,\n ParticipantType.PARTICIPANT_TYPE_ACCOUNT_GROUP,\n )?.internalParticipantId;\n return this.taxRateService.calculate(merchantId, customerId, amount).pipe(\n map((response) => {\n return response?.taxableAmount || 0;\n }),\n catchError((_) => {\n return of(0);\n }),\n );\n }\n\n getKabobAvailableActions(conversationDetail: ConversationDetail): Observable {\n const accountGroupId = getSubjectParticipantByType(\n conversationDetail?.participants,\n ParticipantType.PARTICIPANT_TYPE_ACCOUNT_GROUP,\n )?.internalParticipantId;\n const actionsAvailable: KabobDynamicButton[] = [];\n // Add view contact action if a customer recipient exists and is not deleted\n const recipients = this.getRecipient(conversationDetail);\n if (recipients && recipients.length > 0) {\n const customerRecipient = recipients.find(\n (recipient) => recipient.participantType === ParticipantType.PARTICIPANT_TYPE_CUSTOMER,\n );\n if (customerRecipient && !customerRecipient.isParticipantInternalInfoDeleted) {\n const viewContactAction: KabobDynamicButton = {\n title: 'INBOX.SENDER.VIEW_CONTACT',\n action: () =>\n this.viewContact(\n customerRecipient.internalParticipantId,\n customerRecipient.participantType,\n toFirestoreId(conversationDetail.conversation.conversationId),\n ),\n posthogLabel: 'clicked-view-contact',\n };\n actionsAvailable.push(viewContactAction);\n }\n }\n if (accountGroupId) {\n const isRecipientDeleted = this.isRecipientInternalInfoDeleted(conversationDetail);\n if (!isRecipientDeleted) {\n const goToAccountAction: KabobDynamicButton = {\n title: 'INBOX.SENDER.GO_TO_ACCOUNT',\n action: () =>\n this.router\n .navigate([`/businesses/accounts/${accountGroupId}/details`])\n .then(() => this.router.navigate(['', { outlets: { inbox: null } }])),\n posthogLabel: 'clicked-go-to-account',\n };\n actionsAvailable.push(goToAccountAction);\n\n const openBusinessAppButton: KabobDynamicButton = {\n title: 'INBOX.SENDER.OPEN_BUSINESS_APP',\n action: () => this.openBusinessApp(accountGroupId),\n posthogLabel: 'clicked-open-business-app',\n };\n actionsAvailable.push(openBusinessAppButton);\n }\n }\n return of(actionsAvailable);\n }\n\n getAppOptions(): { [key in AppOptionsKeys]?: boolean } {\n return {};\n }\n\n openBusinessApp(accountGroupId: string): void {\n const entryUrl$ = this.ssoService.getEntryUrl('VBC', newPartnerServiceContext(this.partnerId()));\n firstValueFrom(entryUrl$).then((entryUrl) => {\n if (entryUrl) {\n window.open(addNextUrl(entryUrl, `/account/location/${accountGroupId}/dashboard`), '_blank');\n }\n });\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n getUsers(accountGroupId: string): Observable {\n return;\n }\n\n getNamespace(): Observable {\n return this.partnerId$.pipe(\n map(\n (partnerId): InboxNamespace => ({\n id: partnerId,\n namespaceType: GlobalParticipantType.GLOBAL_PARTICIPANT_TYPE_PARTNER,\n }),\n ),\n );\n }\n}\n","// eslint-disable-next-line @nx/enforce-module-boundaries\nimport { InboxImageService } from '@galaxy/conversation/core';\nimport { ImageService } from '../core/utils/image.service';\n\n// External\n// For adapting the ImageService to suit ImageService for Inbox\nexport function imageServiceFactory(imageService: ImageService): InboxImageService {\n return {\n getImageSrc: (imageName: string) => {\n return imageService.getImageSrc(imageName);\n },\n };\n}\n","import { inject, InjectionToken } from '@angular/core';\n// eslint-disable-next-line @nx/enforce-module-boundaries\nimport { ConversationConfig, RouteConfig } from '@galaxy/conversation/core';\nimport { FeatureFlagService, PartnerService, WhitelabelService } from '@galaxy/partner';\nimport { GlobalParticipantType, InboxApiService, PlatformLocation } from '@vendasta/conversation';\nimport { of } from 'rxjs';\nimport { catchError, distinctUntilChanged, filter, map, shareReplay, switchMap, take } from 'rxjs/operators';\nimport { AppConfigService } from '../app-config.service';\nimport { DashboardService } from './../dashboard/dashboard.service';\nimport { GetConfigurationResponse } from '@vendasta/conversation/lib/_internal/objects';\n\nexport const INBOX_CONFIG_FOR_CONVERSATION = new InjectionToken(\n '[Partner Center Client]: Token for Conversation config',\n {\n providedIn: 'root',\n factory: function (): ConversationConfig {\n const userService = inject(DashboardService);\n const partnerService = inject(PartnerService);\n const whitelabelService = inject(WhitelabelService);\n const featureFlagService = inject(FeatureFlagService);\n const appConfigService = inject(AppConfigService);\n const inboxApiService = inject(InboxApiService);\n\n const userId$ = userService.getCurrentUser().pipe(\n map((user) => user?.userId),\n filter(Boolean),\n distinctUntilChanged(),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n const accountGroupId$ = of('');\n\n const partnerId$ = partnerService.getPartnerId().pipe(\n map((partnerId) => partnerId),\n filter(Boolean),\n distinctUntilChanged(),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n const country$ = partnerId$.pipe(\n take(1),\n switchMap((partnerId) => {\n return whitelabelService\n .getConfiguration(partnerId)\n .pipe(map((config) => config.mailingConfiguration.mailingCountry));\n }),\n distinctUntilChanged(),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n const geographicalState$ = of('');\n\n const partnerBrandName$ = of('');\n\n const companyName$ = of('');\n\n const featureFlag$ = partnerId$.pipe(\n take(1),\n switchMap((partnerId) => {\n return featureFlagService.batchGetStatus(partnerId, 'default', ['inbox_tab_pcc']);\n }),\n map((featureFlags) => {\n return featureFlags['inbox_tab_pcc'];\n }),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n const platformLocation = PlatformLocation.PLATFORM_LOCATION_PARTNER_CENTER;\n\n const routes$ = of({\n root: '',\n sendNewMessage: 'manage-accounts',\n useModal: true,\n } as RouteConfig);\n\n const marketId$ = of('');\n\n const isImpersonating$ = appConfigService.config$.pipe(map((config) => config.isImpersonated));\n\n const webChatEnabled$ = of(true);\n\n const inboxConfig$ = partnerId$.pipe(\n switchMap((accountGroupId) => {\n if (!accountGroupId) {\n return of({} as GetConfigurationResponse);\n }\n return inboxApiService\n .getConfiguration({\n subjectParticipant: {\n participantType: GlobalParticipantType.GLOBAL_PARTICIPANT_TYPE_PARTNER,\n internalParticipantId: accountGroupId,\n },\n })\n .pipe(catchError(() => of({} as GetConfigurationResponse)));\n }),\n map((config) => config?.configuration),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n const smsAIResponderEnabled$ = inboxConfig$.pipe(\n map((config) => config?.aiConfiguration?.smsResponderEnabled || false),\n );\n\n const smsEnabled$ = of(true);\n const whatsAppEnabled$ = of(false);\n\n return {\n userId$,\n accountGroupId$,\n country$,\n geographicalState$,\n partnerId$,\n partnerBrandName$,\n companyName$,\n featureFlag$,\n platformLocation,\n routes$,\n marketId$,\n isImpersonating$,\n webChatEnabled$,\n smsEnabled$,\n smsAIResponderEnabled$,\n whatsAppEnabled$,\n };\n },\n },\n);\n","import { inject, InjectionToken } from '@angular/core';\nimport { PartnerService } from '@galaxy/partner';\nimport { GetAccountInfoResponse, OwnerType, ParticipantType, SmsApiService } from '@vendasta/smsv2';\nimport { catchError, filter, map, of, switchMap } from 'rxjs';\n\nexport const SmsRegistrationLibraryInjectionToken = new InjectionToken('dependencies given to the sms library', {\n factory: () => {\n const partnerService = inject(PartnerService);\n const smsService = inject(SmsApiService);\n\n const subAccountId$ = partnerService.getPartnerId().pipe(\n switchMap((partnerId) =>\n smsService.getAccountInfo({\n sender: {\n internalId: partnerId,\n type: ParticipantType.PARTICIPANT_TYPE_PARTNER,\n },\n }),\n ),\n catchError((e) => {\n console.error('error retrieving GetAccountInfo:', e);\n return of({} as GetAccountInfoResponse);\n }),\n filter((accountInfo) => !!accountInfo),\n map((accountInfo) => accountInfo?.subaccountId),\n );\n\n return {\n ownerId$: partnerService.getPartnerId(),\n ownerType: OwnerType.OWNER_TYPE_PARTNER,\n subaccountID$: subAccountId$,\n };\n },\n});\n","import { Inject, Injectable } from '@angular/core';\nimport { AppListingServiceInterface } from '@galaxy/email-ui/email-builder';\nimport { ActivatableApp, MarketplaceAppService } from '@vendasta/marketplace-packages';\nimport { combineLatest, Observable } from 'rxjs';\nimport { switchMap, take } from 'rxjs/operators';\n\n@Injectable()\nexport class AppListingService implements AppListingServiceInterface {\n constructor(\n private marketplacePackagesService: MarketplaceAppService,\n @Inject('PARTNER_ID') private readonly partnerId$: Observable,\n @Inject('MARKET_ID') private readonly marketId$: Observable,\n ) {}\n\n listAllActivatableApps(): Observable {\n return combineLatest([this.partnerId$.pipe(take(1)), this.marketId$.pipe(take(1))]).pipe(\n switchMap(([partnerID, marketID]) =>\n this.marketplacePackagesService.getAllActivatableApps(partnerID, marketID).pipe(take(1)),\n ),\n );\n }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { BrandingV2Service } from '@galaxy/partner';\nimport { BrandingV2Interface } from '@vendasta/partner';\nimport { Observable } from 'rxjs';\nimport { map, shareReplay, switchMap } from 'rxjs/operators';\n\ninterface BrandingService {\n getBranding(partnerId: string, marketId?: string): Observable;\n}\n\n@Injectable()\nexport class LogoSource {\n readonly logoURL$: Observable;\n\n constructor(@Inject('PARTNER_ID') partnerID$: Observable, @Inject(BrandingV2Service) svc: BrandingService) {\n this.logoURL$ = partnerID$.pipe(\n switchMap((pid) => svc.getBranding(pid)),\n map((branding) => branding?.logoUrl),\n shareReplay({ bufferSize: 1, refCount: false }),\n );\n }\n}\n","import { inject, InjectionToken } from '@angular/core';\nimport { EnvironmentService, SessionService } from '@galaxy/core';\nimport { ReportingConfig } from '@galaxy/reports/static';\nimport { map } from 'rxjs/operators';\nimport { AppConfigService } from '../app-config.service';\n\nexport const PARTNER_CENTER_REPORTING_CONFIG_TOKEN = new InjectionToken(\n '[partner-center-client] token for looker-report config',\n {\n providedIn: 'root',\n factory: () => {\n const environmentService = inject(EnvironmentService);\n return {\n partnerId$: inject(AppConfigService).config$.pipe(map((config) => config.partnerId)),\n getEnvironment: () => environmentService.getEnvironment(),\n sessionId$: inject(SessionService).getSessionId(),\n userId$: inject(AppConfigService).config$.pipe(map((config) => config.unifiedUserId)),\n reportsUrl: `/reports`,\n };\n },\n },\n);\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { PartnerService } from '../../../core/partner.service';\nimport { AppSettingSection } from '../../../user-notifications/legacy-notification-preference/legacy-notification-preference.service';\nimport { VConfigService } from '../../../vconfig/vconfig.service';\nimport { SELECT_OPTION } from '../user-bulk-actions.component';\nimport { UserBulkActionsService } from '../user-bulk-actions.service';\n\n@Component({\n selector: 'app-bulk-notifications-change',\n templateUrl: './bulk-notifications-change.component.html',\n styleUrls: ['./bulk-notifications-change.component.scss'],\n standalone: false,\n})\nexport class BulkNotificationsChangeComponent implements OnInit, OnDestroy {\n notifications: any[];\n dropdownOptions = [\n {\n id: SELECT_OPTION.DONT_UPDATE,\n name: \"Don't Update\",\n key: 'USERS.BULK_UPDATE_SETTINGS.DONT_UPDATE',\n },\n {\n id: SELECT_OPTION.GIVE_ACCESS,\n name: 'Turn On',\n key: 'USERS.BULK_UPDATE_SETTINGS.TURN_ON',\n },\n {\n id: SELECT_OPTION.REMOVE_ACCESS,\n name: 'Turn Off',\n key: 'USERS.BULK_UPDATE_SETTINGS.TURN_OFF',\n },\n ];\n partnerId = this.partnerService.partnerId;\n\n private componentDestroyed$$: Subject = new Subject();\n\n constructor(\n private userBulkActionsService: UserBulkActionsService,\n private partnerService: PartnerService,\n private vConfigService: VConfigService,\n ) {}\n\n ngOnInit(): void {\n this.notifications = this.generateNotificationObject();\n this.vConfigService\n .getConfigurations(this.partnerService.partnerId, ['vbc_product_name'])\n .pipe(takeUntil(this.componentDestroyed$$))\n .subscribe((vbcDetails) => {\n this.notifications[1].name = vbcDetails.vbc_product_name;\n });\n }\n\n ngOnDestroy(): void {\n this.componentDestroyed$$.next('bye');\n }\n\n getClass(settingId: string, sectionIndex: number, optionIndex: number): string {\n const notification = this.notifications.find((notif) => notif.settingId === settingId);\n const notifValue = notification.sections[sectionIndex].options[optionIndex].value;\n if (notifValue === undefined) {\n return '';\n }\n if (notifValue) {\n return 'give-access';\n }\n return 'remove-access';\n }\n\n selectChange(section: AppSettingSection): void {\n this.userBulkActionsService.setNotificationUpdate({\n setting: section.sectionId,\n section: section.sectionType,\n title: section.title,\n valueFlag: section.value,\n });\n }\n\n private generateNotificationObject(): any {\n return [\n {\n settingId: 'globalSettings',\n name: 'Global Settings',\n iconType: 'public',\n sections: [\n {\n name: 'Global Email Settings',\n options: [\n {\n name: 'Instant Email (When Available)',\n section: 'instantEmailFlag',\n setting: 'instantEmailFlag',\n value: undefined,\n },\n {\n name: 'Daily Digest',\n section: 'activityDigestEmailFlag',\n setting: 'activityDigestEmailFlag',\n value: undefined,\n },\n ],\n },\n ],\n },\n {\n settingId: 'businessAppSettings',\n name: 'Business App',\n iconUrl: 'https://vbc-prod.appspot.com/static/images/file-upload.png',\n sections: [\n {\n name: 'Executive Report Email',\n options: [\n {\n name: 'Monthly Executive Report',\n section: 'executiveReportFlag',\n setting: 'VBC:Monthly Executive Report',\n value: undefined,\n },\n {\n name: 'Weekly Executive Report',\n section: 'executiveReportFlag',\n setting: 'VBC:Weekly Executive Report',\n value: undefined,\n },\n ],\n },\n ],\n },\n ];\n }\n}\n","\n","import { Component, OnInit } from '@angular/core';\nimport { MatSelectChange } from '@angular/material/select';\nimport { SELECT_OPTION } from '../user-bulk-actions.component';\nimport { TabChange, UserBulkActionsService, UserTabAccessInfo } from '../user-bulk-actions.service';\n\n@Component({\n selector: 'app-bulk-tab-access-change',\n templateUrl: './bulk-tab-access-change.component.html',\n styleUrls: ['./bulk-tab-access-change.component.scss'],\n standalone: false,\n})\nexport class BulkTabAccessChangeComponent implements OnInit {\n dropdownOptions = [\n {\n id: SELECT_OPTION.DONT_UPDATE,\n name: \"Don't Update\",\n key: 'USERS.BULK_UPDATE_SETTINGS.DONT_UPDATE',\n },\n {\n id: SELECT_OPTION.GIVE_ACCESS,\n name: 'Turn On',\n key: 'USERS.BULK_UPDATE_SETTINGS.TURN_ON',\n },\n {\n id: SELECT_OPTION.REMOVE_ACCESS,\n name: 'Turn Off',\n key: 'USERS.BULK_UPDATE_SETTINGS.TURN_OFF',\n },\n ];\n\n data: UserTabAccessInfo;\n tabsGivenAccess: TabChange[] = [];\n tabsRemovedAccess: TabChange[] = [];\n\n constructor(private userBulkActionsService: UserBulkActionsService) {}\n\n ngOnInit(): void {\n this.data = this.userBulkActionsService.getUserTabAccessInfo();\n }\n\n getClass(tabId: string): string {\n if (this.tabsGivenAccess.find((tab) => tab.id === tabId)) {\n return 'give-access';\n }\n if (this.tabsRemovedAccess.find((tab) => tab.id === tabId)) {\n return 'remove-access';\n }\n return '';\n }\n\n selectChange(event: MatSelectChange, id: string, name: string): void {\n switch (event.value) {\n case SELECT_OPTION.DONT_UPDATE:\n if (this.tabsGivenAccess.find((tab) => tab.id === id)) {\n this.tabsGivenAccess = this.tabsGivenAccess.filter((tab) => tab.id !== id);\n }\n if (this.tabsRemovedAccess.find((tab) => tab.id === id)) {\n this.tabsRemovedAccess = this.tabsRemovedAccess.filter((tab) => tab.id !== id);\n }\n break;\n case SELECT_OPTION.GIVE_ACCESS:\n if (!this.tabsGivenAccess.find((tab) => tab.id === id)) {\n this.tabsGivenAccess.push({\n name,\n id,\n });\n }\n if (this.tabsRemovedAccess.find((tab) => tab.id === id)) {\n this.tabsRemovedAccess = this.tabsRemovedAccess.filter((tab) => tab.id !== id);\n }\n break;\n case SELECT_OPTION.REMOVE_ACCESS:\n if (!this.tabsRemovedAccess.find((tab) => tab.id === id)) {\n this.tabsRemovedAccess.push({\n name,\n id,\n });\n }\n if (this.tabsGivenAccess.find((tab) => tab.id === id)) {\n this.tabsGivenAccess = this.tabsGivenAccess.filter((tab) => tab.id !== id);\n }\n }\n this.userBulkActionsService.setTabAccess(this.tabsGivenAccess, this.tabsRemovedAccess);\n }\n}\n","
\n
\n {{ tab.icon }}\n
\n {{ tab.name | translate }}\n
\n
\n \n \n {{ opt.key | translate }}\n \n \n
\n
\n
\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatGridListModule } from '@angular/material/grid-list';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatStepperModule } from '@angular/material/stepper';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { RouterModule } from '@angular/router';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GalaxyAlertModule } from '@vendasta/galaxy/alert';\nimport { GalaxyPageModule } from '@vendasta/galaxy/page';\nimport { UIKitModule } from '@vendasta/uikit';\nimport { SharedModule } from '../../activation/shared/shared.module';\nimport { LegacyNotificationPreferenceService } from '../../user-notifications/legacy-notification-preference/legacy-notification-preference.service';\nimport { NotificationPreferencesModule } from '../../user-notifications/notification-preferences.module';\nimport { BulkUserImportComponent } from './bulk-import/bulk-user-import.component';\nimport { BulkUserImportService } from './bulk-import/bulk-user-import.service';\nimport { BulkNotificationsChangeComponent } from './bulk-notifications-change/bulk-notifications-change.component';\nimport { BulkTabAccessChangeComponent } from './bulk-tab-access-change/bulk-tab-access-change.component';\nimport { UserBulkActionsComponent } from './user-bulk-actions.component';\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\n\nconst MAT_MODULES = [\n MatAutocompleteModule,\n MatTabsModule,\n MatIconModule,\n MatSelectModule,\n MatSlideToggleModule,\n MatCardModule,\n MatButtonModule,\n MatStepperModule,\n MatGridListModule,\n MatInputModule,\n];\n\n@NgModule({\n imports: [\n CommonModule,\n MAT_MODULES,\n UIKitModule,\n SharedModule,\n TranslateModule,\n GalaxyPageModule,\n RouterModule,\n NotificationPreferencesModule,\n MatButtonToggleModule,\n GalaxyAlertModule,\n ],\n declarations: [\n UserBulkActionsComponent,\n BulkTabAccessChangeComponent,\n BulkNotificationsChangeComponent,\n BulkUserImportComponent,\n ],\n providers: [LegacyNotificationPreferenceService, BulkUserImportService],\n})\nexport class UserBulkActionsModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatIconModule } from '@angular/material/icon';\nimport { RouterModule } from '@angular/router';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GalaxyAlertModule } from '@vendasta/galaxy/alert';\nimport { GalaxyUploaderModule } from '@vendasta/galaxy/uploader';\nimport { CustomizeDesignModule } from '../customize-design';\nimport { LogoComponent } from './logo/logo.component';\n\n@NgModule({\n declarations: [LogoComponent],\n imports: [\n CommonModule,\n MatDialogModule,\n GalaxyUploaderModule,\n MatIconModule,\n RouterModule,\n TranslateModule,\n MatButtonModule,\n CustomizeDesignModule,\n GalaxyAlertModule,\n ],\n exports: [LogoComponent],\n})\nexport class WhitelabelModule {}\n","import {\n AiAssistant,\n ConnectionType,\n DEFAULT_CHAT_RECEPTIONIST_AVATAR_SVG_ICON,\n DEFAULT_CONNECTION_PREFIX,\n WEBCHAT_ICON,\n} from '@galaxy/ai-assistant';\nimport { ASSISTANT_ID_CHAT_RECEPTIONIST } from '@galaxy/ai-assistant';\nimport { AssistantType, Connection } from '@vendasta/ai-assistants';\nimport { AiConnection } from '@galaxy/ai-assistant';\nexport const NEW_WIDGET_CONFIGURATION_URL = 'inbox/widgets/new';\nconst DEFAULT_WIDGET_CONFIGURATION_URL = 'restricted/inbox-ai-webchat';\n\nexport const AI_DEFAULT_PARTNERS_ASSISTANT_WORKFORCE: AiAssistant[] = [\n {\n assistant: {\n id: ASSISTANT_ID_CHAT_RECEPTIONIST,\n name: 'AI_ASSISTANT.WORKFORCE.DEFAULT_ASSISTANTS.CHAT_RECEPTIONIST.TITLE',\n type: AssistantType.ASSISTANT_TYPE_INBOX,\n },\n subtitleKey: 'AI_ASSISTANT.WORKFORCE.DEFAULT_ASSISTANTS.CHAT_RECEPTIONIST.SUBTITLE',\n descriptionKey: 'AI_ASSISTANT.WORKFORCE.DEFAULT_ASSISTANTS.CHAT_RECEPTIONIST.DESCRIPTION',\n decoration: {\n defaultAvatarIcon: DEFAULT_CHAT_RECEPTIONIST_AVATAR_SVG_ICON,\n gradientColor: '#22C0CA',\n },\n isDefault: true,\n showConfigButtonOnDefault: true,\n },\n];\n\nexport const AI_DEFAULT_PARTNERS_ASSISTANT_CONNECTIONS: AiConnection[] = [\n {\n connection: new Connection({\n id: DEFAULT_CONNECTION_PREFIX + 'webchat',\n name: 'Webchat',\n connectionTypeName: 'Webchat',\n iconUrl: WEBCHAT_ICON,\n connectionType: ConnectionType.WebchatWidget,\n supportedAssistantTypes: [AssistantType.ASSISTANT_TYPE_INBOX],\n configurationUrl: DEFAULT_WIDGET_CONFIGURATION_URL,\n isConnectionLocked: true,\n }),\n isDefault: true,\n cta: {\n action: {\n url: DEFAULT_WIDGET_CONFIGURATION_URL,\n showButton: true,\n },\n },\n },\n];\n","import { inject, InjectionToken } from '@angular/core';\n// eslint-disable-next-line @nx/enforce-module-boundaries\nimport { PartnerService, WhitelabelService } from '@galaxy/partner';\nimport { combineLatest, of } from 'rxjs';\nimport { distinctUntilChanged, filter, map, shareReplay, switchMap } from 'rxjs/operators';\nimport { AiAssistantConfig, AiConnection, ConnectionType } from '@galaxy/ai-assistant';\nimport {\n AI_DEFAULT_PARTNERS_ASSISTANT_CONNECTIONS,\n AI_DEFAULT_PARTNERS_ASSISTANT_WORKFORCE,\n NEW_WIDGET_CONFIGURATION_URL,\n} from './ai-assistant-constants';\nimport { Connection, Namespace } from '@vendasta/ai-assistants';\nimport { AppConfigService } from '../app-config.service';\n\nexport const AI_ASSISTANTS_CONFIG = new InjectionToken(\n '[Partner Center Client]: Token for AI assistants config',\n {\n providedIn: 'root',\n factory: function (): AiAssistantConfig {\n const partnerService = inject(PartnerService);\n const whitelabelService = inject(WhitelabelService);\n const appConfigService = inject(AppConfigService);\n\n const accountGroupId$ = of('');\n const marketId$ = of('');\n const partnerId$ = partnerService.getPartnerId().pipe(\n map((partnerId) => partnerId),\n filter(Boolean),\n distinctUntilChanged(),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n const wlConfig$ = partnerId$.pipe(\n switchMap((partnerId) => whitelabelService.getConfiguration(partnerId)),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n const defaultAIWorkforce$ = of(AI_DEFAULT_PARTNERS_ASSISTANT_WORKFORCE);\n\n const defaultConnections$ = combineLatest([partnerId$, wlConfig$]).pipe(\n map(([partnerId, config]) => {\n const webchatEnabled = config.enabledFeatures.includes('inbox-ai-webchat');\n return buildAIDefaultConnections(partnerId, webchatEnabled);\n }),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n const currentUserId$ = appConfigService.config$.pipe(\n map((config) => config.unifiedUserId),\n shareReplay({ bufferSize: 1, refCount: true }),\n );\n\n return {\n accountGroupId$,\n marketId$,\n partnerId$,\n defaultAIWorkforce$,\n defaultConnections$,\n currentUserId$,\n };\n },\n },\n);\n\nfunction buildAIDefaultConnections(partnerId: string, webchatEnabled: boolean): AiConnection[] {\n const defaultConnections = AI_DEFAULT_PARTNERS_ASSISTANT_CONNECTIONS.map((aiConnection) => ({\n ...aiConnection,\n connection: new Connection({\n ...aiConnection.connection,\n namespace: new Namespace({\n partnerNamespace: {\n partnerId: partnerId,\n },\n }),\n }),\n }));\n\n const aiDefaultConnections: AiConnection[] = [];\n defaultConnections.forEach((defaultConnection) => {\n if (defaultConnection.connection.connectionType === ConnectionType.WebchatWidget && webchatEnabled) {\n const newAiConnection = structuredClone(defaultConnection);\n newAiConnection.cta.action.url = NEW_WIDGET_CONFIGURATION_URL;\n aiDefaultConnections.push(newAiConnection);\n } else {\n aiDefaultConnections.push(defaultConnection);\n }\n });\n\n return aiDefaultConnections;\n}\n","import { ActivatedRouteSnapshot, DetachedRouteHandle, RouteReuseStrategy } from '@angular/router';\nimport { DYNAMIC_LISTS_PAGE_ROUTES } from '@galaxy/crm/integrations/dynamic-lists';\nimport { PAGE_ROUTES } from '@galaxy/crm/static';\n\nexport class CachedRouteReuseStrategy implements RouteReuseStrategy {\n private routesToCache: string[] = [\n `crm/${PAGE_ROUTES.COMPANY.ROOT}/${PAGE_ROUTES.COMPANY.SUBROUTES.EDIT}`,\n `crm/${PAGE_ROUTES.COMPANY.ROOT}/${PAGE_ROUTES.COMPANY.SUBROUTES.PROFILE}`,\n `crm/${PAGE_ROUTES.CONTACT.ROOT}/${PAGE_ROUTES.CONTACT.SUBROUTES.EDIT}`,\n `crm/${PAGE_ROUTES.CONTACT.ROOT}/${PAGE_ROUTES.CONTACT.SUBROUTES.PROFILE}`,\n DYNAMIC_LISTS_PAGE_ROUTES.EDIT,\n ];\n // A map to cache components, using the route path as the key and the component instance as the value.\n private cache: Map = new Map();\n // Routes need to specify they want to be reused with shouldCacheRoute\n private shouldCacheRouteValue(route: ActivatedRouteSnapshot): boolean {\n return this.routesToCache.includes(this.cacheKey(route));\n }\n private cacheKey(route: ActivatedRouteSnapshot): string {\n return route.pathFromRoot\n .map((el: ActivatedRouteSnapshot) => (el.routeConfig ? el.routeConfig.path : ''))\n .filter((str) => str.length > 0)\n .join('/');\n }\n\n // 1. Checks if the route configuration for the target route (future) matches the route configuration for the current route (curr).\n shouldReuseRoute(future: ActivatedRouteSnapshot, curr: ActivatedRouteSnapshot): boolean {\n return future.routeConfig === curr.routeConfig;\n }\n\n // 2. Determines if a cached instance of the component for the target route exists.\n // If it returns true, Angular calls the `retrieve` method to restore the cached component.\n // If it returns false, Angular will create and initialize a new component instance.\n shouldAttach(route: ActivatedRouteSnapshot): boolean {\n return this.shouldCacheRouteValue(route) && !!this.cache.get(this.cacheKey(route));\n }\n\n // 3. Retrieves the cached component for the given route.\n retrieve(route: ActivatedRouteSnapshot): DetachedRouteHandle | null {\n return this.cache.get(this.cacheKey(route)) || null;\n }\n\n // 4. Determines if the component we are navigating away from should be cached.\n // If it returns true, Angular calls the `store` method to save the component for future use.\n // If it returns false, Angular destroys the component.\n shouldDetach(route: ActivatedRouteSnapshot): boolean {\n return this.shouldCacheRouteValue(route);\n }\n\n // Stores the component for the given route in the cache\n store(route: ActivatedRouteSnapshot, handle: DetachedRouteHandle | null): void {\n if (this.shouldCacheRouteValue(route) && this.cacheKey(route) && handle) {\n this.cache.set(this.cacheKey(route), handle);\n }\n }\n}\n","import { inject, InjectionToken } from '@angular/core';\nimport { distinctUntilChanged, filter, map, shareReplay } from 'rxjs/operators';\nimport { PartnerService } from '@galaxy/partner';\nimport { ConfigManagerConfig } from '@vendasta/config-manager';\n\nexport const CONFIG_MANAGER_CONFIG = new InjectionToken(\n '[ConfigManager]: token for configuration',\n {\n providedIn: 'root',\n factory: () => {\n const partnerService = inject(PartnerService);\n\n const partnerId$ = partnerService.getPartnerId().pipe(\n map((partnerId) => partnerId),\n filter(Boolean),\n distinctUntilChanged(),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n return {\n partnerId$,\n };\n },\n },\n);\n","import { CommonModule, LOCATION_INITIALIZED } from '@angular/common';\nimport { provideHttpClient, withInterceptorsFromDi, withXsrfConfiguration } from '@angular/common/http';\nimport { APP_INITIALIZER, Inject, Injectable, Injector, NgModule } from '@angular/core';\nimport { GoogleMapsModule } from '@angular/google-maps';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatListModule } from '@angular/material/list';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { RouteReuseStrategy, UrlSerializer } from '@angular/router';\n\nimport { AiKnowledgeModule } from '@galaxy/ai-knowledge';\nimport { ATLAS_CONFIG_TOKEN, AtlasModule } from '@galaxy/atlas';\nimport {\n AutomataI18nModule,\n AUTOMATION_BUSINESS_ENTRY_URL_SERVICE,\n AUTOMATION_CONTEXT_INJECTION_TOKEN,\n AUTOMATION_DEFAULT_CURRENCY_CODE,\n AUTOMATION_IS_USER_SUPERADMIN$,\n AUTOMATION_MARKET_ID_INJECTION_TOKEN$,\n AUTOMATION_NAMESPACE_INJECTION_TOKEN$,\n AUTOMATION_PARTNER_ID_INJECTION_TOKEN$,\n AUTOMATION_VARIABLE_MENU_DIALOG,\n AUTOMATIONS_ACCESS_SERVICE,\n AUTOMATIONS_MARKETS_SERVICE,\n AUTOMATIONS_ROUTE_PREFIX$,\n} from '@galaxy/automata/shared';\nimport { BILLING_MARKETS_SERVICE } from '@galaxy/billing';\n// eslint-disable-next-line @nx/enforce-module-boundaries\nimport { CONFIG_TOKEN } from '@galaxy/campaign/shared/tokens';\n\n// eslint-disable-next-line @nx/enforce-module-boundaries\nimport {\n CONVERSATION_HOST_APP_INTERFACE_TOKEN,\n CONVERSATION_IMAGE_SERVICE_TOKEN,\n ConversationCoreModule,\n} from '@galaxy/conversation/core';\n// eslint-disable-next-line @nx/enforce-module-boundaries\nimport { InboxAIButtonComponent, InboxButtonComponent, InboxComponent } from '@galaxy/conversation/inbox';\n// eslint-disable-next-line @nx/enforce-module-boundaries\nimport { ConversationUIModule } from '@galaxy/conversation/ui';\nimport { EnvironmentService } from '@galaxy/core';\nimport { CrmPlatformApiService } from '@galaxy/crm/static';\nimport { SENDER_ID_TOKEN } from '@galaxy/email-ui/email-activity/src/dependencies';\nimport {\n DYNAMIC_COMPONENT_DATA_TOKEN,\n EMAIL_BUILDER_APP_LISTING_SERVICE_TOKEN,\n EMAIL_BUILDER_ENABLED_RECIPES,\n PLACEHOLDER_LOGO_URL_TOKEN,\n TEMPLATE_HYDRATION_DATA_TOKEN,\n} from '@galaxy/email-ui/email-builder';\nimport {\n VariableMenuItem,\n VariableMenuItemOptions,\n} from '@galaxy/email-ui/email-builder/src/components/dynamic-component-selector';\nimport { buildSenderData, SENDER_INJECTION_TOKEN } from '@galaxy/email-ui/email-builder/src/shared';\nimport { SENDER_EMAIL_LIB_TOKEN } from '@galaxy/email-ui/email-library/dependencies';\nimport { TranslationModule as FormBuilderI18NModule } from '@galaxy/form-builder';\nimport { LEXICON_TRANSLATE_PORTAL_URL, LexiconModule } from '@galaxy/lexicon';\nimport { FeatureFlagService, PartnerServiceInterfaceToken } from '@galaxy/partner';\nimport {\n PLATFORM_INTEGRATIONS_CONTEXT_INJECTION_TOKEN$,\n PLATFORM_INTEGRATIONS_MARKET_ID_INJECTION_TOKEN$,\n PLATFORM_INTEGRATIONS_NAMESPACE_INJECTION_TOKEN$,\n PLATFORM_INTEGRATIONS_ORIGIN_INJECTION_TOKEN,\n PLATFORM_INTEGRATIONS_PARTNER_ID_INJECTION_TOKEN$,\n PlatformIntegrationsI18nModule,\n} from '@galaxy/platform-integrations/shared';\nimport { ReportingCoreModule } from '@galaxy/reports/static';\nimport { SmsContextToken, SmsInjectionToken, SmsModule } from '@galaxy/sms';\nimport { DEFAULT_LANGUAGE, TranslateModule, TranslateService, TranslateStore } from '@ngx-translate/core';\nimport { AccountGroupApiService } from '@vendasta/account-group';\nimport { Context } from '@vendasta/automata';\n// eslint-disable-next-line @nx/enforce-module-boundaries\nimport { AuxDataAccountsTableActionModule } from '@vendasta/auxiliary-data-components';\nimport { ActionListsServiceModule, BusinessProfileModule } from '@vendasta/businesses';\nimport { CountryStateServiceInterfaceToken } from '@vendasta/country-state';\nimport { GalaxyBadgeModule } from '@vendasta/galaxy/badge';\nimport { GalaxyI18NModule, getLocale } from '@vendasta/galaxy/i18n';\nimport { GalaxyLoadingSpinnerModule } from '@vendasta/galaxy/loading-spinner';\nimport { GalaxyNavModule } from '@vendasta/galaxy/nav';\nimport { GalaxyDefaultProviderOverrides } from '@vendasta/galaxy/provider-default-overrides';\nimport { GalaxySnackbarModule, SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { GalaxyTooltipModule } from '@vendasta/galaxy/tooltip';\nimport { SupportedContexts } from '@vendasta/platform-integrations';\nimport { ProductAnalyticsModule } from '@vendasta/product-analytics';\nimport { UserPipelinesModule } from '@vendasta/sales-ui';\nimport { OwnerType, SmsApiService } from '@vendasta/smsv2';\nimport { TaxonomyServiceInterfaceToken } from '@vendasta/taxonomy';\nimport { DateRangeSelectorModule, UIKitModule } from '@vendasta/uikit';\nimport { UsersModule, UsersServiceInterfaceToken } from '@vendasta/users';\nimport { DragulaModule } from 'ng2-dragula';\nimport { combineLatest, Observable, of } from 'rxjs';\nimport { distinctUntilChanged, filter, map, shareReplay, switchMap } from 'rxjs/operators';\nimport baseTranslation from '../assets/i18n/en_devel.json';\nimport { AccessModule } from './access';\nimport { AccessDeniedComponent } from './access-denied/access-denied.component';\nimport { AccountModule } from './account/account.module';\nimport { AccountsModule } from './accounts';\nimport { AI_KNOWLEDGE_CONFIG } from './ai-knowledge/providers';\nimport { AnalyticsModule } from './analytics';\nimport { AppConfig, AppConfigService } from './app-config.service';\nimport { AppNavItemComponent } from './app-nav-item.component';\nimport { AppRoutingModule } from './app-routing.module';\nimport { AppComponent } from './app.component';\nimport { AssignedSalespersonModule } from './assigned-salesperson/assigned-salesperson.module';\nimport { BillingProviderModule } from './billing/billing-provider/billing-provider.module';\nimport { VendastaPaymentsGuard } from './billing/vendasta-payments.guard';\nimport { BulkImportModule } from './bulk-import/bulk-import.module';\nimport { CampaignConfigFactory } from './campaigns/providers';\nimport { AddressCellModule } from './common/address-cell';\nimport { HelpMenuComponent } from './common/help-menu';\nimport { LevelBadgeModule } from './common/level-badge/level-badge.module';\nimport { PricePipe } from './common/pipes/price.pipe';\nimport { VaAlertComponent } from './common/va-alert/va-alert.component';\nimport { VaDialogService } from './common/va-dialog.service';\nimport { VariableMenuMatDialogComponent } from './common/variable-menu/variable-menu-dialog/variable-menu-mat-dialog.component';\nimport { PartnerIdToken, WEBLATE_COMPONENT_NAME } from './constants';\nimport { StubAccessService } from './core/access';\nimport { Views } from './core/access/interface';\nimport { BusinessCenterService } from './core/business-center.service';\nimport { CountryStateService } from './core/country-state.service';\nimport { featureFlagFactory, FeatureFlags } from './core/features';\nimport { InboxModalGuard } from './core/guards/inbox-modal.guard';\nimport { MarketsService } from './core/markets/markets.service';\nimport { PartnerService } from './core/partner.service';\nimport { TaxonomyService } from './core/taxonomy.service';\nimport { ForAppEngineUrlSerializer } from './core/url-serializer.service';\nimport { UrlService } from './core/url.service';\nimport { ImageService } from './core/utils/image.service';\nimport { PartnerCrmModule } from './crm/partner-crm.module';\nimport { DashboardModule } from './dashboard';\nimport { EmailBuilderSandboxComponentModule } from './email-builder-sandbox/email-builder-sandbox.component';\nimport { EmailSettingsModule } from './email-settings/email-settings.module';\nimport { EmbedModule } from './embed/embed.module';\nimport { FEATURE_BULK_ACTIONS_V2 } from './flags';\nimport { HelpCenterModule } from './help-center/help-center.module';\nimport { HelpSideDrawerTemplateRefService } from './help-center/help-side-drawer/help-side-drawer-template-ref.service';\nimport { ConversationPartnerCenterService } from './inbox/conversation-partner-center.service';\nimport { imageServiceFactory } from './inbox/external-providers';\nimport { INBOX_CONFIG_FOR_CONVERSATION } from './inbox/providers';\nimport { SmsRegistrationLibraryInjectionToken } from './inbox/sms-configuration/providers';\nimport { IdentityProviderConfigModule } from './integrations/identity-provider-config/identity-provider-config.module';\nimport { RecipientProviderService } from './invoice/recipients/recipient-provider.service';\nimport { LocalLoginModule } from './local-login';\nimport {\n ActionListsLibraryInjectionToken,\n AuxDataAccountsActionInjectionToken,\n} from './manage_accounts/filterby-custom-fields-page.component';\nimport { AppListingService } from './marketing/base-template-editing/app-listing.service';\nimport { buildHydrationData } from './marketing/base-template-editing/base-template-editing.module';\nimport { LogoSource } from './marketing/base-template-editing/template-editor-page/partner-logo';\nimport {\n AccountGroupSearcherComponent,\n OmniSearchComponent,\n PartnerOverviewComponent,\n PartnerSwitcherComponent,\n UserSwitcherComponent,\n} from './omni-search/';\nimport { OmniAppIconComponent } from './omni-search/omni-app-icon.component';\nimport { ProductOrderFormProxyComponent } from './product-order-form-proxy/product-order-form-proxy.component';\nimport { PARTNER_CENTER_REPORTING_CONFIG_TOKEN } from './reporting/providers';\nimport { CurrencyService } from './saas-metrics/currency.service';\nimport { TermsOfServiceModule } from './terms-of-service';\nimport { NotificationPreferencesModule } from './user-notifications/notification-preferences.module';\nimport { UserBulkActionsModule } from './users/user-bulk-actions/user-bulk-actions.module';\nimport { WhitelabelModule } from './whitelabel/whitelabel.module';\nimport { AddUserService } from './work-order-details/add-user.service';\nimport { AI_ASSISTANTS_CONFIG } from './ai-assistant/providers';\nimport { AiAssistantModule } from '@galaxy/ai-assistant';\nimport { MEETING_SCHEDULER_CONTEXT_INJECTION_TOKEN$, MS_CONTEXT } from '@galaxy/meeting-scheduler';\nimport { CachedRouteReuseStrategy } from './app.routing.strategy';\nimport { MeetingAnalysisI18nModule } from '@galaxy/meeting-analysis/static';\nimport { ConfigManagerModule } from '@vendasta/config-manager';\nimport { CONFIG_MANAGER_CONFIG } from './config-manager/providers';\nimport { MeetingSourceOrigin } from '@vendasta/meetings';\n\nconst unauthedRoutes = ['/signup', '/sign-up', '/login', '/forgot-password', '/login-two', '/forgot-password-two'];\n\n@Injectable()\nexport class BulkActionFeatureCache {\n readonly enabled$: Observable;\n\n constructor(@Inject('PARTNER_ID') partnerId$: Observable, flagSvc: FeatureFlagService) {\n this.enabled$ = partnerId$.pipe(\n switchMap((partnerId) => flagSvc.batchGetStatus(partnerId, null, [FeatureFlags.BULK_ACTIONS_V2])),\n map((v) => v[FeatureFlags.BULK_ACTIONS_V2]),\n shareReplay(1),\n );\n }\n}\n\nexport function isEnabled(cache: BulkActionFeatureCache): Observable {\n return cache.enabled$;\n}\n\nconst MAT_MODULES = [\n MatProgressBarModule,\n MatIconModule,\n MatInputModule,\n MatListModule,\n MatDialogModule,\n MatDialogModule,\n MatButtonModule,\n MatFormFieldModule,\n MatToolbarModule,\n MatTooltipModule,\n MatDividerModule,\n MatMenuModule,\n MatProgressSpinnerModule,\n];\n\nexport function configFactory(config: AppConfigService, injector: Injector): () => Promise {\n // IE10+ takes too long to initialize the location, we need to load the config after it is initialized\n function waitForLocationAndLoadConfig(resolve: any): Promise {\n const locationInitialized: Promise = injector.get(LOCATION_INITIALIZED, Promise.resolve(null));\n return locationInitialized.then(() => {\n if (unauthedRoutes.some((route) => window.location.href.indexOf(route) >= 0)) {\n return resolve(true);\n } else {\n return config\n .load()\n .then(() => resolve(true))\n .catch(() => {\n window.location.href = '/login/';\n });\n }\n });\n }\n\n return () => new Promise(waitForLocationAndLoadConfig);\n}\n\nconst hasAccessToWeblateFactory = (accessService: StubAccessService) => {\n return accessService.hasAccessToViews([Views.partnerAll]).pipe(\n map((response) => {\n const hasAccess = response.get(Views.partnerAll);\n if (hasAccess) {\n return '/translate';\n }\n return null;\n }),\n );\n};\n\nconst dynamicComponents: VariableMenuItem[] = [\n {\n textKey: 'EMAIL_BUILDER.DYNAMIC_COMPONENT_SELECTOR.CONTACT_DETAILS',\n replacementTags: ['crmCampaignContactFields'],\n options: {\n nestedDynamicSelector: true,\n } as VariableMenuItemOptions,\n },\n {\n textKey: 'EMAIL_BUILDER.DYNAMIC_COMPONENT_SELECTOR.PRIMARY_COMPANY_DETAILS',\n replacementTags: ['crmCampaignCompanyFields'],\n options: {\n nestedDynamicSelector: true,\n } as VariableMenuItemOptions,\n },\n {\n textKey: 'EMAIL_BUILDER.DYNAMIC_COMPONENT_SELECTOR.ACCOUNT_DETAILS',\n replacementTags: [\n 'businessName',\n 'businessWebsite',\n 'customerIdentifier',\n 'accountIdentifier',\n 'firstName',\n 'lastName',\n 'greetingName',\n 'phoneNumber',\n ],\n },\n {\n textKey: 'EMAIL_BUILDER.DYNAMIC_COMPONENT_SELECTOR.PARTNER_DETAILS',\n replacementTags: [\n 'partnerName',\n 'partnerWebsite',\n 'partnerEmail',\n 'partnerPhone',\n 'partnerStreetAddress',\n 'partnerStreetAddress2',\n 'partnerCity',\n 'partnerState',\n 'partnerCountry',\n 'partnerPostalCode',\n ],\n },\n {\n textKey: 'EMAIL_BUILDER.DYNAMIC_COMPONENT_SELECTOR.SALESPERSON_DETAILS',\n replacementTags: [\n 'salesPersonContactCard',\n 'salesPersonFirstName',\n 'salesPersonLastName',\n 'salesPersonEmail',\n 'salesPersonPhoneNumber',\n 'salesPersonJobTitle',\n 'salesPersonLoginUrl',\n 'meetingSchedulerName',\n 'meetingSchedulerUrl',\n ],\n },\n {\n textKey: 'EMAIL_BUILDER.DYNAMIC_COMPONENT_SELECTOR.BUSINESS_APP_DETAILS',\n replacementTags: ['businessAppName', 'businessAppUrl', 'businessAppStoreUrl', 'businessAppPreviewUrl'],\n },\n {\n textKey: 'EMAIL_BUILDER.DYNAMIC_COMPONENT_SELECTOR.SNAPSHOT_REPORT',\n replacementTags: [\n 'gradeReview',\n 'gradeSocial',\n 'gradeListing',\n 'gradeWebsite',\n 'gradeAdvertising',\n 'gradeEcommerce',\n 'gradeSEO',\n 'snapshotReportUrl',\n ],\n },\n {\n textKey: 'EMAIL_BUILDER.DYNAMIC_COMPONENT_SELECTOR.PRODUCT_DETAILS',\n replacementTags: ['productName', 'productPreviewUrl', 'productUrl'],\n options: {\n nestedDynamicSelector: true,\n } as VariableMenuItemOptions,\n },\n];\n\n@NgModule({\n exports: [],\n declarations: [\n AppComponent,\n OmniSearchComponent,\n AccountGroupSearcherComponent,\n OmniAppIconComponent,\n PartnerSwitcherComponent,\n UserSwitcherComponent,\n ProductOrderFormProxyComponent,\n AppNavItemComponent,\n PartnerOverviewComponent,\n AccessDeniedComponent,\n ],\n bootstrap: [AppComponent],\n imports: [\n HelpMenuComponent,\n BrowserModule,\n LevelBadgeModule,\n CommonModule,\n DragulaModule.forRoot(),\n ProductAnalyticsModule,\n AnalyticsModule,\n ...MAT_MODULES,\n AccountsModule,\n BrowserAnimationsModule,\n DashboardModule,\n AppRoutingModule,\n AccountModule,\n TermsOfServiceModule,\n BusinessProfileModule,\n GoogleMapsModule,\n UserBulkActionsModule,\n NotificationPreferencesModule,\n AccessModule,\n TranslateModule,\n LexiconModule.forRoot({\n componentName: WEBLATE_COMPONENT_NAME,\n baseTranslation: baseTranslation,\n }),\n UIKitModule,\n LocalLoginModule,\n AtlasModule,\n EmbedModule,\n EmailSettingsModule,\n BulkImportModule,\n AssignedSalespersonModule,\n IdentityProviderConfigModule,\n DateRangeSelectorModule,\n GalaxySnackbarModule,\n GalaxyNavModule,\n GalaxyBadgeModule,\n GalaxyLoadingSpinnerModule,\n GalaxyI18NModule,\n GalaxyTooltipModule,\n WhitelabelModule,\n HelpCenterModule,\n AddressCellModule,\n EmailBuilderSandboxComponentModule,\n UserPipelinesModule,\n ConversationUIModule,\n ConversationCoreModule.forRoot({ config: INBOX_CONFIG_FOR_CONVERSATION }),\n ReportingCoreModule.forRoot({ config: PARTNER_CENTER_REPORTING_CONFIG_TOKEN }),\n InboxComponent,\n InboxButtonComponent,\n ActionListsServiceModule.forRoot(ActionListsLibraryInjectionToken),\n AuxDataAccountsTableActionModule.forRoot(AuxDataAccountsActionInjectionToken),\n PartnerCrmModule,\n BillingProviderModule,\n AutomataI18nModule,\n MeetingAnalysisI18nModule,\n UsersModule,\n InboxAIButtonComponent,\n SmsModule,\n VaAlertComponent,\n FormBuilderI18NModule,\n AiKnowledgeModule.forRoot({ config: AI_KNOWLEDGE_CONFIG }),\n AiAssistantModule.forRoot({ config: AI_ASSISTANTS_CONFIG }),\n PlatformIntegrationsI18nModule,\n ConfigManagerModule.forRoot({ config: CONFIG_MANAGER_CONFIG }),\n ],\n providers: [\n provideHttpClient(\n withInterceptorsFromDi(),\n withXsrfConfiguration({\n headerName: 'x-blast-shield',\n cookieName: 'x-blast-shield',\n }),\n ),\n VendastaPaymentsGuard,\n ...GalaxyDefaultProviderOverrides,\n AppConfigService,\n {\n provide: APP_INITIALIZER,\n useFactory: configFactory,\n deps: [AppConfigService, Injector],\n multi: true,\n },\n {\n provide: DEFAULT_LANGUAGE,\n useFactory: () => getLocale(),\n },\n StubAccessService,\n { provide: 'AccessService', useExisting: StubAccessService },\n {\n provide: 'PARTNER_ID',\n useFactory: (appConfigService: AppConfigService) =>\n appConfigService.config$.pipe(\n map((config) => config.partnerId),\n filter((partnerId) => !!partnerId),\n distinctUntilChanged(),\n shareReplay(1),\n ),\n deps: [AppConfigService],\n },\n {\n provide: PartnerIdToken,\n useExisting: 'PARTNER_ID',\n deps: ['PARTNER_ID'],\n },\n {\n provide: SENDER_ID_TOKEN,\n useFactory: (appConfigService: AppConfigService) =>\n appConfigService.config$.pipe(\n map((config) => config.partnerId),\n filter((partnerId) => !!partnerId),\n distinctUntilChanged(),\n shareReplay(1),\n ),\n deps: [AppConfigService],\n },\n {\n provide: SENDER_INJECTION_TOKEN,\n useFactory: buildSenderData,\n },\n {\n provide: MEETING_SCHEDULER_CONTEXT_INJECTION_TOKEN$,\n useValue: MS_CONTEXT.MS_CONTEXT_PARTNER,\n },\n {\n provide: SENDER_EMAIL_LIB_TOKEN,\n useFactory: buildSenderData,\n },\n {\n provide: DYNAMIC_COMPONENT_DATA_TOKEN,\n useValue: dynamicComponents,\n },\n {\n provide: CONFIG_TOKEN,\n useFactory: CampaignConfigFactory,\n },\n {\n provide: 'MARKET_ID',\n useFactory: (marketService: MarketsService) => {\n return marketService.currentMarket$.pipe(\n map((market) => market.market_id),\n distinctUntilChanged(),\n shareReplay(1),\n );\n },\n deps: [MarketsService],\n },\n {\n provide: 'USER_ACCESSIBLE_MARKETS',\n useFactory: (marketsService: MarketsService) =>\n marketsService.userAccessibleMarkets$.pipe(distinctUntilChanged(), shareReplay(1)),\n deps: [MarketsService],\n },\n TranslateService,\n TranslateStore,\n {\n provide: 'USER_ID',\n useFactory: (a: AppConfigService) => {\n return a.config$.pipe(map((cfg: AppConfig) => cfg.unifiedUserId));\n },\n deps: [AppConfigService],\n },\n {\n provide: 'IS_IMPERSONATING',\n useFactory: (a: AppConfigService) => {\n return a.config$.pipe(map((cfg: AppConfig) => cfg.isImpersonated));\n },\n deps: [AppConfigService],\n },\n {\n provide: ATLAS_CONFIG_TOKEN,\n useFactory: (urlService: UrlService, appConfigService: AppConfigService) => {\n const partnerId$ = appConfigService.config$.pipe(map((config) => config.partnerId));\n const isSuperAdminRoute$ = urlService.isSuperAdminRoute$;\n return combineLatest([isSuperAdminRoute$, partnerId$]).pipe(\n map(([superadmin, partnerId]) => (superadmin ? 'VA' : partnerId)),\n map((partnerId) => ({ partnerId: partnerId, serviceProviderId: 'AA' })),\n );\n },\n deps: [UrlService, AppConfigService],\n },\n { provide: 'PartnerSdkFeatureFlagsService', useClass: FeatureFlagService },\n { provide: FeatureFlagService, useClass: FeatureFlagService },\n BulkActionFeatureCache,\n {\n provide: FEATURE_BULK_ACTIONS_V2,\n deps: [BulkActionFeatureCache],\n useFactory: isEnabled,\n },\n {\n provide: FeatureFlags.FRESHDESK_INTEGRATION,\n useFactory: featureFlagFactory(FeatureFlags.FRESHDESK_INTEGRATION),\n deps: [FeatureFlagService, 'PARTNER_ID', 'MARKET_ID'],\n },\n {\n provide: FeatureFlags.MANAGE_PLATFORM_INTEGRATIONS,\n useFactory: featureFlagFactory(FeatureFlags.MANAGE_PLATFORM_INTEGRATIONS),\n deps: [FeatureFlagService, 'PARTNER_ID'],\n },\n {\n provide: FeatureFlags.WEBLATE_TRANSLATION_PORTAL,\n useFactory: featureFlagFactory(FeatureFlags.WEBLATE_TRANSLATION_PORTAL),\n deps: [FeatureFlagService, 'PARTNER_ID', 'MARKET_ID'],\n },\n {\n provide: FeatureFlags.CUSTOM_DATA_FILTER_TABLE,\n useFactory: featureFlagFactory(FeatureFlags.CUSTOM_DATA_FILTER_TABLE),\n deps: [FeatureFlagService, 'PARTNER_ID'],\n },\n {\n provide: FeatureFlags.INVOICE_MULTI_FREQUENCY_WARNING,\n useFactory: featureFlagFactory(FeatureFlags.INVOICE_MULTI_FREQUENCY_WARNING),\n deps: [FeatureFlagService, 'PARTNER_ID'],\n },\n {\n provide: FeatureFlags.INBOX_AI_ATLAS_LINK,\n useFactory: featureFlagFactory(FeatureFlags.INBOX_AI_ATLAS_LINK),\n deps: [FeatureFlagService, 'PARTNER_ID'],\n },\n {\n provide: FeatureFlags.CRM_COMPANY,\n useFactory: featureFlagFactory(FeatureFlags.CRM_COMPANY),\n deps: [FeatureFlagService, 'PARTNER_ID'],\n },\n {\n provide: FeatureFlags.CREATE_SALES_ORDER,\n useFactory: featureFlagFactory(FeatureFlags.CREATE_SALES_ORDER),\n deps: [FeatureFlagService, 'PARTNER_ID'],\n },\n {\n provide: FeatureFlags.SALESPERSON_MARKET_ACCESS,\n useFactory: featureFlagFactory(FeatureFlags.SALESPERSON_MARKET_ACCESS),\n deps: [FeatureFlagService, 'PARTNER_ID'],\n },\n {\n provide: FeatureFlags.SALESPERSON_ORDER_APPROVAL_ACCEPTS_PAYMENT,\n useFactory: featureFlagFactory(FeatureFlags.SALESPERSON_ORDER_APPROVAL_ACCEPTS_PAYMENT),\n deps: [FeatureFlagService, 'PARTNER_ID'],\n },\n {\n provide: FeatureFlags.UNIFIED_MARKET_SELECTOR,\n useFactory: featureFlagFactory(FeatureFlags.UNIFIED_MARKET_SELECTOR),\n deps: [FeatureFlagService, 'PARTNER_ID'],\n },\n {\n provide: FeatureFlags.SCHEDULED_DEACTIVATIONS,\n useFactory: featureFlagFactory(FeatureFlags.SCHEDULED_DEACTIVATIONS),\n deps: [FeatureFlagService, 'PARTNER_ID'],\n },\n {\n provide: FeatureFlags.SUBSCRIPTION_TIERS_2024,\n useFactory: featureFlagFactory(FeatureFlags.SUBSCRIPTION_TIERS_2024),\n deps: [FeatureFlagService, 'PARTNER_ID'],\n },\n {\n provide: FeatureFlags.MARKETPLACE_SELL_PRODUCTS,\n useFactory: featureFlagFactory(FeatureFlags.MARKETPLACE_SELL_PRODUCTS),\n deps: [FeatureFlagService, 'PARTNER_ID'],\n },\n {\n provide: FeatureFlags.SNAP_VLC_WELCOME_EMAIL,\n useFactory: featureFlagFactory(FeatureFlags.SNAP_VLC_WELCOME_EMAIL),\n deps: [FeatureFlagService, 'PARTNER_ID'],\n },\n {\n provide: FeatureFlags.SHOW_SALES_AND_SUCCESS_CENTER,\n useFactory: featureFlagFactory(FeatureFlags.SHOW_SALES_AND_SUCCESS_CENTER),\n deps: [FeatureFlagService, 'PARTNER_ID'],\n },\n {\n provide: FeatureFlags.SHOW_MORE_SALESPERSON_PERMISSIONS,\n useFactory: featureFlagFactory(FeatureFlags.SHOW_MORE_SALESPERSON_PERMISSIONS),\n deps: [FeatureFlagService, 'PARTNER_ID'],\n },\n {\n provide: LEXICON_TRANSLATE_PORTAL_URL,\n useFactory: hasAccessToWeblateFactory,\n deps: [StubAccessService],\n },\n SnackbarService,\n HelpSideDrawerTemplateRefService,\n {\n provide: CONVERSATION_IMAGE_SERVICE_TOKEN,\n useFactory: imageServiceFactory,\n deps: [ImageService],\n },\n {\n provide: 'CURRENCY',\n useFactory: (currencyService: CurrencyService) => {\n return currencyService.currency$;\n },\n deps: [CurrencyService],\n },\n {\n provide: 'PARTNER_MARKET',\n useFactory: (partnerId$: Observable, marketId$: Observable) => {\n return combineLatest([partnerId$, marketId$]);\n },\n deps: ['PARTNER_ID', 'MARKET_ID'],\n },\n {\n provide: 'kFormat',\n useFactory: (currencyService: CurrencyService) => {\n return currencyService.kFormat$;\n },\n deps: [CurrencyService],\n },\n { provide: 'ACCOUNT_DETAILS_URL', useValue: '/businesses/accounts/${account_group_id}/details' },\n InboxModalGuard,\n AddUserService,\n {\n provide: UsersServiceInterfaceToken,\n useExisting: AddUserService,\n },\n { provide: TaxonomyServiceInterfaceToken, useExisting: TaxonomyService },\n {\n provide: CountryStateServiceInterfaceToken,\n useExisting: CountryStateService,\n },\n { provide: PartnerServiceInterfaceToken, useExisting: PartnerService },\n { provide: UrlSerializer, useClass: ForAppEngineUrlSerializer },\n PricePipe,\n VaDialogService,\n { provide: CONVERSATION_HOST_APP_INTERFACE_TOKEN, useClass: ConversationPartnerCenterService },\n {\n provide: TEMPLATE_HYDRATION_DATA_TOKEN,\n useFactory: buildHydrationData,\n deps: ['PARTNER_ID', 'MARKET_ID', EnvironmentService, AccountGroupApiService],\n },\n { provide: EMAIL_BUILDER_APP_LISTING_SERVICE_TOKEN, useClass: AppListingService },\n { provide: EMAIL_BUILDER_ENABLED_RECIPES, useValue: ['product-button', 'meeting-scheduler-button'] },\n LogoSource,\n {\n provide: PLACEHOLDER_LOGO_URL_TOKEN,\n useFactory: (src: LogoSource) => src.logoURL$ as Observable,\n deps: [LogoSource],\n },\n {\n provide: AUTOMATION_NAMESPACE_INJECTION_TOKEN$,\n useFactory: (partnerId$: Observable) => partnerId$.pipe(distinctUntilChanged()),\n deps: ['PARTNER_ID'],\n },\n {\n provide: PLATFORM_INTEGRATIONS_NAMESPACE_INJECTION_TOKEN$,\n useFactory: (partnerId$: Observable) => partnerId$.pipe(distinctUntilChanged()),\n deps: ['PARTNER_ID'],\n },\n {\n provide: PLATFORM_INTEGRATIONS_ORIGIN_INJECTION_TOKEN,\n useValue: MeetingSourceOrigin.PartnerCenter,\n },\n {\n provide: PLATFORM_INTEGRATIONS_PARTNER_ID_INJECTION_TOKEN$,\n useFactory: (partnerId$: Observable) => partnerId$.pipe(distinctUntilChanged()),\n deps: ['PARTNER_ID'],\n },\n {\n provide: AUTOMATION_PARTNER_ID_INJECTION_TOKEN$,\n useFactory: (partnerId$: Observable) => partnerId$.pipe(distinctUntilChanged()),\n deps: ['PARTNER_ID'],\n },\n {\n provide: AUTOMATION_CONTEXT_INJECTION_TOKEN,\n useValue: Context.AUTOMATION_CONTEXT_PARTNER,\n },\n {\n provide: AUTOMATION_MARKET_ID_INJECTION_TOKEN$,\n useFactory: (marketsService: MarketsService) =>\n marketsService.userAccessibleMarkets$.pipe(\n distinctUntilChanged(),\n map((markets) => {\n // Use the default market if it exists, otherwise use the first (alphabetical) market\n const defaultMarket = markets.find((market) => market.market_id === 'default');\n return defaultMarket ? defaultMarket.market_id : markets[0].market_id;\n }),\n ),\n deps: [MarketsService],\n },\n {\n provide: PLATFORM_INTEGRATIONS_MARKET_ID_INJECTION_TOKEN$,\n useFactory: (marketsService: MarketsService) =>\n marketsService.userAccessibleMarkets$.pipe(\n distinctUntilChanged(),\n map((markets) => markets[0].market_id),\n ),\n deps: [MarketsService],\n },\n {\n provide: AUTOMATION_BUSINESS_ENTRY_URL_SERVICE,\n useClass: BusinessCenterService,\n },\n {\n provide: AUTOMATIONS_ACCESS_SERVICE,\n useExisting: StubAccessService,\n },\n {\n provide: AUTOMATIONS_MARKETS_SERVICE,\n useExisting: MarketsService,\n },\n {\n provide: AUTOMATION_IS_USER_SUPERADMIN$,\n useFactory: (appConfigService: AppConfigService) => appConfigService.config$.pipe(map((c) => c.isSuperAdmin)),\n deps: [AppConfigService],\n },\n {\n provide: AUTOMATION_DEFAULT_CURRENCY_CODE,\n useFactory: (currencyService: CurrencyService) => {\n return currencyService.currency$;\n },\n deps: [CurrencyService],\n },\n {\n provide: AUTOMATIONS_ROUTE_PREFIX$,\n useValue: of(''),\n },\n {\n provide: AUTOMATION_VARIABLE_MENU_DIALOG,\n useValue: VariableMenuMatDialogComponent,\n },\n {\n provide: PLATFORM_INTEGRATIONS_CONTEXT_INJECTION_TOKEN$,\n useValue: SupportedContexts.PI_CONTEXT_PARTNER,\n },\n {\n provide: BILLING_MARKETS_SERVICE,\n useExisting: MarketsService,\n },\n {\n provide: SmsContextToken,\n useFactory: (partnerId$: Observable) => ({\n ownerId$: partnerId$,\n ownerType: OwnerType.OWNER_TYPE_PARTNER,\n featureFlagInfo$: partnerId$.pipe(map((partnerId) => ({ partnerId }))),\n sendsViaBroadly$: of(false),\n }),\n deps: ['PARTNER_ID'],\n },\n CrmPlatformApiService,\n RecipientProviderService,\n SmsApiService,\n {\n provide: SmsInjectionToken,\n useExisting: SmsRegistrationLibraryInjectionToken,\n },\n {\n provide: RouteReuseStrategy,\n useClass: CachedRouteReuseStrategy,\n },\n ],\n})\nexport class AppModule {}\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\nimport { AppModule } from './app/app.module';\nimport { devServer } from './globals';\n\nif (!devServer) {\n enableProdMode();\n}\n\nplatformBrowserDynamic()\n .bootstrapModule(AppModule)\n .catch((err) => console.error(err));\n"],"mappings":"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","names":["ɵɵelement","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate","ɵɵpipeBind1","ɵɵproperty","ctx_r0","associatedApps","ɵɵtextInterpolate1","ɵɵtemplate","DeleteCustomKnowledgeComponent_Conditional_5_Conditional_0_Template","DeleteCustomKnowledgeComponent_Conditional_5_Conditional_1_Template","ɵɵconditional","length","DeleteCustomKnowledgeComponent","constructor","dialogRef","data","knowledgeService","inject","AiKnowledgeService","snackbarService","SnackbarService","isLoading","signal","ngOnInit","__async","set","listAllAppsForKnowledgeSource","knowledgeSourceId","cancel","close","delete","deleteKnowledgeSource","openSuccessSnack","ɵɵdirectiveInject","MatDialogRef","MAT_DIALOG_DATA","selectors","features","ɵɵProvidersFeature","decls","vars","consts","template","rf","ctx","DeleteCustomKnowledgeComponent_Conditional_4_Template","DeleteCustomKnowledgeComponent_Conditional_5_Template","ɵɵlistener","CommonModule","TranslateModule","TranslatePipe","AiKnowledgeI18nModule","MatButtonModule","MatButton","MatDialogModule","MatDialogTitle","MatDialogActions","MatDialogContent","ApplicationListComponent","GalaxyLoadingSpinnerModule","LoadingSpinnerComponent","GalaxySnackbarModule","encapsulation","ɵɵelement","ɵɵproperty","ɵɵpipeBind1","ctx_r0","previousPageTitle","previousPageUrl","KnowledgeSourceManagementComponent","constructor","DIALOG_WIDTH","SCRAPED_PAGES_STEP_OPTION","STEP_OPTION","dialog","inject","MatDialog","bpObserver","BreakpointObserver","activeRoute","ActivatedRoute","knowledgeSources","signal","showBusinessProfileSource","toSignal","SHOW_BUSINESS_PROFILE_SOURCE_TOKEN","knowledgeService","AiKnowledgeService","confirmationModal","OpenConfirmationModalService","router","Router","isLoading","ngOnInit","__async","refreshSources","editSourceParam","snapshot","queryParamMap","get","sourceId","option","sourceIdAndOptionFromEditSourceParam","source","find","s","id","editKnowledgeSource","addNewKnowledgeSource","colonIndex","indexOf","substring","set","listKnowledgeSources","KnowledgeSourceConfigType","KNOWLEDGE_SOURCE_CONFIG_TYPE_CUSTOM_DATA","KNOWLEDGE_SOURCE_CONFIG_TYPE_WEBSITE_SCRAPE","pageSize","businessProfileSource","buildBusinessProfileKnowledgeSource","unshift","conf","width","isMatched","Breakpoints","XSmall","maxWidth","maxHeight","editor","open","AddKnowledgeComponent","componentInstance","componentSelected","pipe","takeUntilDestroyed","destroyRef","take","subscribe","event","subscribeToKnowledgeCreated","knowledgeCreated","firstValueFrom","afterClosed","switchMap","data","knowledgeSourceKey","knowledgeSourceId","namespace","config","stepOption","websiteScrapeConfig","WebsiteScrapeComponent","customDataConfig","CustomDataComponent","BusinessProfileComponent","setEditSourceQueryParam","stepChange","map","deleteKnowledgeSource","DeleteCustomKnowledgeComponent","editSource","queryParams","navigate","relativeTo","queryParamsHandling","selectors","inputs","features","ɵɵProvidersFeature","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵtemplate","KnowledgeSourceManagementComponent_glxy_page_nav_button_3_Template","ɵɵelementEnd","ɵɵtext","ɵɵlistener","$event","ɵɵadvance","ɵɵtextInterpolate","ɵɵtextInterpolate1","CommonModule","NgIf","TranslateModule","TranslatePipe","AiKnowledgeI18nModule","GalaxyPageModule","PageComponent","PageToolbarComponent","PageTitleDirective","PageNavDirective","PageNavButtonComponent","PageWrapperDirective","MatButtonModule","MatButton","MatIconModule","RouterModule","MatListModule","MatCardModule","MatCard","MatCardContent","MatCardHeader","MatCardTitle","MatDialogModule","KnowledgeListComponent","styles","CanEnableBusinessCommunicationsRequest","_CanEnableBusinessCommunicationsRequest","proto","m","kwargs","toReturn","CanEnableBusinessCommunicationsResponse","_CanEnableBusinessCommunicationsResponse","ConnectBusinessCommunicationsRequest","_ConnectBusinessCommunicationsRequest","GetBusinessLaunchStatusRequest","_GetBusinessLaunchStatusRequest","GetBusinessLaunchStatusResponse","_GetBusinessLaunchStatusResponse","UnlaunchBusinessCommunicationsAgentRequest","_UnlaunchBusinessCommunicationsAgentRequest","environment","hostMap","HostService","__ngFactoryType__","ɵɵdefineInjectable","BusinessCommunicationsApiService","http","hostService","HttpHeaders","r","request","ConnectBusinessCommunicationsRequest","__spreadProps","__spreadValues","UnlaunchBusinessCommunicationsAgentRequest","GetBusinessLaunchStatusRequest","map","resp","GetBusinessLaunchStatusResponse","CanEnableBusinessCommunicationsRequest","CanEnableBusinessCommunicationsResponse","__ngFactoryType__","ɵɵinject","HttpClient","HostService","ɵɵdefineInjectable","BusinessMessagesEnabledState","ConversationGoogleService","ConversationChannelService","constructor","partnerId$","inject","PARTNER_ID_TOKEN","accountGroupId$","ACCOUNT_GROUP_ID_TOKEN","router","Router","googleMyBusinessService","BusinessCommunicationsApiService","googleBusinessMessagesAvailable$","CONVERSATION_GOOGLE_BUSINESS_MESSAGES_AVAILABLE_TOKEN","isGoogleBusinessMessagesEnabled$","combineLatest","pipe","switchMap","partnerId","accountGroupId","getBusinessLaunchStatus","map","res","isLaunched","catchError","of","getChatComposerAlert","conversationDetail","canSendGoogleBusinessMessage","canSend","IS_ENABLED","getGoogleBusinessMessagesError","enabledState","accountGroup","alert","NOT_ENABLED","title","description","INVALID_TOKEN","action","callback","navigate","CONVERSATION_EXPIRED","NOT_LAUNCHED","UNKNOWN_ERROR","expirationDate","addDays","latestMessage","updated","currentDate","Date","launchStatus$","error","HttpErrorResponse","status","HttpStatusCode","PreconditionFailed","googleBusinessMessagesAvailable","launched","isBefore","__ngFactoryType__","factory","ɵfac","ConversationFacebookService","ConversationChannelService","constructor","router","inject","Router","getChatComposerAlert","_partnerId","_accountGroupId","conversationDetail","channels","channelAvailabilities","conversation","channel","ConversationChannel","CONVERSATION_CHANNEL_FACEBOOK","of","facebookAvailability","find","channelAvailability","isAvailable","title","description","statuses","i18nKey","action","callback","navigate","__ngFactoryType__","factory","ɵfac","ConversationInstagramService","ConversationChannelService","constructor","router","inject","Router","getChatComposerAlert","_partnerId","_accountGroupId","conversationDetail","channels","channelAvailabilities","conversation","channel","ConversationChannel","CONVERSATION_CHANNEL_INSTAGRAM","of","instagramAvailability","find","channelAvailability","isAvailable","title","description","statuses","i18nKey","action","callback","navigate","__ngFactoryType__","factory","ɵfac","ConversationPlatformService","ConversationChannelService","constructor","country$","inject","CONVERSATION_COUNTRY_TOKEN","inboxAlerter","InboxAlertService","getChatComposerAlert","partnerId","accountGroupId","conversationDetail","conversation","channel","ConversationChannel","CONVERSATION_CHANNEL_INTERNAL","of","checkContactInfo","getConversationCustomerErrors","participant","alert","pipe","map","country","checkNotAvailableErrorForLeads","__ngFactoryType__","factory","ɵfac","ChatReceptionistAvatar","VoiceReceptionistAvatar","ContentWriterAvatar","ReviewManagerAvatar","SalesCoachAvatar","SEOAnalystAvatar","webchatIcon","smsIcon","voiceIcon","whatsappIcon","SmsDetailsService","constructor","accountGroupId$","inject","ACCOUNT_GROUP_ID_TOKEN","partnerId$","PARTNER_ID_TOKEN","smsService","SmsService","configApiService","ConfigApiService","phoneNumber$","combineLatest","pipe","switchMap","accountGroupId","partnerId","ownerId","participantType","ParticipantType","PARTICIPANT_TYPE_UNKNOWN","PARTICIPANT_TYPE_ACCOUNT_GROUP","PARTICIPANT_TYPE_PARTNER","getAccountInfo","internalId","type","map","accountInfo","phoneNumber","shareReplay","refCount","bufferSize","isRoutingToVoiceAi$","getPhoneNumberConfig","ownerType","OwnerType","OWNER_TYPE_ACCOUNT_GROUP","OWNER_TYPE_PARTNER","response","phoneNumberConfig","voiceAi","enabled","factory","ɵfac","BookingConfigService","constructor","currentUserId$","inject","CURRENT_USER_ID_TOKEN","partnerId$","PARTNER_ID_TOKEN","accountGroupId$","ACCOUNT_GROUP_ID_TOKEN","meetingService","HostService","salespersonService","SalespersonService","salesTeamService","SalesTeamService","partnerIdAndAccountGroupId$","combineLatest","pipe","distinctUntilChanged","a","b","salesPersonId$","switchMap","partnerId","userId","getSalespersonByUserId","catchError","of","undefined","map","salesperson","salespersonId","shareReplay","salesTeamIDs$","id","getSalesTeamsBySalesperson","teams","team","groupId","filter","personalCalendar$","accountGroupId","ensurePersonalCalendarExists","applicationContextProperties","newBusinessCenterApplicationContextProperties","business_id","newPartnerCenterApplicationContextProperties","partner_id","calendarId","getCalendar","groupCalendars$","_","ensureGroupCalendarsExist","externalIds","salesTeamIds","length","mergeMap","calendarIds","forkJoin","allCalendars$","personalCalendar","groupCalendars","calendarEvents$","calendars","calendar","getMeetingTypesForCalendars","metadata","getCalendarsWithTypes","events","calendarType","CalendarType","CALENDAR_TYPE_INVALID","calendarName","displayName","meetingTypes","mt","name","meetingTypeId","isPersonal","CALENDAR_TYPE_PERSONAL","sort","factory","ɵfac","AiAssistantModule","forRoot","c","ngModule","providers","AiAssistantService","BookingConfigService","SmsDetailsService","provide","AI_ASSISTANT_CONFIG_TOKEN","useExisting","config","ACCOUNT_GROUP_ID_TOKEN","deps","useFactory","accountGroupIdFactory","MARKET_ID_TOKEN","marketIdFactory","PARTNER_ID_TOKEN","partnerIdFactory","AI_DEFAULT_WORKFORCE_TOKEN","aiDefaultWorkforceFactory","AI_DEFAULT_CONNECTIONS_TOKEN","aiDefaultConnectionsFactory","CURRENT_USER_ID_TOKEN","currentUserIdFactory","constructor","iconRegistry","sanitizer","addSvgIconLiteral","DEFAULT_CHAT_RECEPTIONIST_AVATAR_SVG_ICON","bypassSecurityTrustHtml","ChatReceptionistAvatar","VoiceReceptionistAvatar","ContentWriterAvatar","ReviewManagerAvatar","SalesCoachAvatar","SEOAnalystAvatar","webchatIcon","smsIcon","voiceIcon","whatsappIcon","ɵɵinject","MatIconRegistry","DomSanitizer","isObservable","accountGroupId$","of","marketId$","partnerId$","defaultAIWorkforce$","defaultConnections$","currentUserId$","ɵɵelement","ɵɵproperty","ctx_r1","aiAssistant","assistant","avatarUrl","tmp_3_0","decoration","defaultAvatarIcon","undefined","tmp_4_0","avatarIconUrl","isDisabled","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate","ɵɵpipeBind1","subtitleKey","aiConnection_r3","connection","iconUrl","ɵɵsanitizeUrl","connectionTypeName","tooltip","ɵɵclassProp","isGreyscale","connectionType","ɵɵtemplate","AiAssistantCardComponent_Conditional_16_For_2_Conditional_0_Conditional_0_Template","AiAssistantCardComponent_Conditional_16_For_2_Conditional_0_Conditional_1_Template","ɵɵconditional","AiAssistantCardComponent_Conditional_16_For_2_Conditional_0_Template","ɵɵrepeaterCreate","AiAssistantCardComponent_Conditional_16_For_2_Template","ɵɵrepeaterTrackByIdentity","ɵɵrepeater","aiConnections_r4","ɵɵlistener","ɵɵrestoreView","_r5","ɵɵnextContext","ɵɵresetView","ctaClicked","emit","ɵɵtextInterpolate1","cta","label","ɵɵpureFunction1","_c1","aiAssistantConfigUrl","_c2","currentUrl","AiAssistantCardComponent","constructor","class","translationService","inject","TranslateService","aiIconService","GalaxyAiIconService","destroyRef","DestroyRef","aiAssistantService","AiAssistantService","voiceApiService","VoiceApiService","accountGroupId","toSignal","ACCOUNT_GROUP_ID_TOKEN","router","Router","input","required","showCTAButton","isComingSoon","output","url","DEFAULT_AVATAR_SVG_ICON","computed","buildAssistantConfigurationUrl","id","gradientBorderMask","viewChild","gradientColor","signal","gradient","isVoiceReceptionistCard","ASSISTANT_ID_VOICE_RECEPTIONIST","uniqueConnections","connections","length","filter","index","self","findIndex","c","map","aiConnection","__spreadProps","__spreadValues","assistantKeys","sort","a","b","Number","showConfigButton","isDefault","showConfigButtonOnDefault","$isAiAssistantEnabled","$goalsDisabled","phoneNumber$","SmsDetailsService","stopReset","animationSubscription","unsubscribe","getMousePosition","event","rect","nativeElement","getBoundingClientRect","x","clientX","left","y","clientY","top","ngOnInit","initializeGradient","move","applyGradient","leave","startX","startY","duration","intervalMs","startTime","performance","now","interval","pipe","elapsed","progress","Math","min","easedProgress","easeOutCubic","takeWhile","floor","takeUntilDestroyed","subscribe","coords","t","set","selectors","viewQuery","rf","ctx","ɵɵclassMap","i0","_r1","$event","AiAssistantCardComponent_Conditional_5_Template","AiAssistantCardComponent_Conditional_6_Template","AiAssistantCardComponent_Conditional_10_Template","AiAssistantCardComponent_Conditional_11_Template","ɵɵdeclareLet","AiAssistantCardComponent_Conditional_16_Template","AiAssistantCardComponent_Conditional_18_Template","AiAssistantCardComponent_Conditional_19_Template","AiAssistantCardComponent_Conditional_20_Template","AiAssistantCardComponent_Conditional_21_Template","ɵɵstyleProp","name","descriptionKey","ɵɵstoreLet","aiConnections_r6","CommonModule","GalaxyAvatarModule","AvatarComponent","AiAssistantI18nModule","TranslatePipe","MatAnchor","RouterLink","MatButtonModule","MatButton","GalaxyBadgeModule","BadgeComponent","GalaxyTooltipModule","GalaxyTooltipDirective","MatIcon","styles","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵproperty","ctx_r0","alertType","alertTitle","ɵɵadvance","ɵɵtextInterpolate1","ɵɵpipeBind1","alertMessage","ɵɵelement","ɵɵpipeBind2","ɵɵpureFunction1","_c0","phoneNumber","ɵɵsanitizeHtml","ɵɵdeclareLet","ɵɵtemplate","AiVoiceTryItModalComponent_Conditional_0_Conditional_5_Template","AiVoiceTryItModalComponent_Conditional_0_Conditional_6_Template","ɵɵnextContext","assistantStatus","ɵɵconditional","status_r2","AiVoiceTryItModalComponent","constructor","assistantService","inject","AiAssistantService","smsDetailsService","SmsDetailsService","snackbarService","SnackbarService","toSignal","phoneNumber$","pipe","catchError","err","status","openErrorSnack","of","isVoiceAiFeatureEnabled","$isVoiceAiEnabled","isRoutingCallsToVoiceAi","isRoutingToVoiceAi$","isVoiceAssistantActive","activeConnectionsForAssistant","ASSISTANT_ID_VOICE_RECEPTIONIST","map","aiConnections","some","aiConnection","connection","connectionType","ConnectionType","Voice","computed","isLoading","includes","undefined","toUpperCase","selectors","decls","vars","consts","template","rf","ctx","AiVoiceTryItModalComponent_Conditional_0_Template","AiVoiceTryItModalComponent_Conditional_1_Template","MatDialogTitle","MatDialogContent","AiAssistantI18nModule","TranslatePipe","CommonModule","GalaxyLoadingSpinnerModule","LoadingSpinnerComponent","GalaxyAlertModule","AlertComponent","styles","ɵɵelementStart","ɵɵelement","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","ɵɵlistener","aiAssistant_r2","ɵɵrestoreView","_r1","$implicit","ctx_r2","ɵɵnextContext","ɵɵresetView","triggerAction","cta","action","showButton","isDisabled","isComingSoon","ɵɵrepeaterCreate","AiAssistantPageComponent_Conditional_7_For_2_Template","ɵɵrepeaterTrackByIdentity","ɵɵrepeater","aiWorkforce","AiAssistantPageComponent","constructor","aiAssistantService","inject","AiAssistantService","translateService","TranslateService","partnerId$","PARTNER_ID_TOKEN","accountGroupId$","ACCOUNT_GROUP_ID_TOKEN","defaultWorkforce$","AI_DEFAULT_WORKFORCE_TOKEN","matDialog","MatDialog","router","Router","smsDetailsService","SmsDetailsService","phoneNumber$","isVoiceAiEnabled$","toObservable","$isVoiceAiEnabled","aiWorkforce$","getAiWorkforce","fetching$","merge","combineLatest","pipe","map","$fetching","toSignal","requireSync","switchMap","partnerId","accountGroupId","isVoiceAiEnabled","defaultWorkforce","listAssistants","assistantRes","assistants","assistant","hydrateAssistantWithDefaultInfo","filter","isNotNullOrUndefined","forEach","defaultAssistant","find","convertAssistantTypeToDefaultID","type","AssistantType","ASSISTANT_TYPE_UNSPECIFIED","id","defaultAssistantCopy","structuredClone","name","instant","push","ASSISTANT_ID_VOICE_RECEPTIONIST","voiceAssistant","callback","openVoiceReceptionistTryItModal","bind","listConnections","aiConnections","connections","aiConnection","undefined","connection","supportedAssistantTypes","includes","catchError","e","console","error","of","__async","open","AiVoiceTryItModalComponent","aiAssistant","buildAssistantActionCallback","url","window","pathCommands","navigate","selectors","decls","vars","consts","template","rf","ctx","ɵɵtext","ɵɵtemplate","AiAssistantPageComponent_Conditional_6_Template","AiAssistantPageComponent_Conditional_7_Template","ɵɵtextInterpolate","ɵɵpipeBind1","ɵɵconditional","CommonModule","GalaxyPageModule","PageComponent","PageToolbarComponent","PageTitleDirective","PageWrapperDirective","AiAssistantCardComponent","AiAssistantI18nModule","TranslatePipe","GalaxyLoadingSpinnerModule","LoadingSpinnerComponent","styles","EnableLeadCaptureDialogComponent","selectors","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate","ɵɵpipeBind1","CommonModule","MatDialogModule","MatDialogClose","MatDialogTitle","MatDialogActions","MatDialogContent","MatButtonModule","MatButton","TranslateModule","TranslatePipe","encapsulation","AdditionalInstructionsDialogComponent","selectors","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate1","ɵɵpipeBind1","ɵɵtextInterpolate","CommonModule","MatDialogModule","MatDialogClose","MatDialogTitle","MatDialogActions","MatDialogContent","MatButtonModule","MatButton","AiAssistantI18nModule","TranslatePipe","GalaxyBadgeModule","BadgeComponent","encapsulation","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵproperty","ɵɵpureFunction1","_c0","ctx_r0","cancelLink","ɵɵadvance","ɵɵtextInterpolate1","ɵɵpipeBind1","cancelOverride","ɵɵtemplate","StickyFooterComponent_Conditional_4_a_0_Template","ɵɵlistener","ɵɵrestoreView","_r2","ɵɵnextContext","ɵɵresetView","cancelClick","emit","StickyFooterComponent","constructor","submitClick","EventEmitter","disabled","selectors","inputs","submitOverride","outputs","decls","vars","consts","template","rf","ctx","StickyFooterComponent_Conditional_4_Template","StickyFooterComponent_Conditional_5_Template","ɵɵconditional","CommonModule","NgIf","RouterModule","RouterLink","MatCardModule","MatButtonModule","MatAnchor","MatButton","AiAssistantI18nModule","TranslatePipe","GalaxyStickyFooterModule","encapsulation","ImageUploadService","GalaxyImageUploaderService","constructor","httpClient","environmentService","getURL","getEnvironment","Environment","DEMO","PROD","buildRequest","fileInfo","imageToUpload","data","croppedImage","file","formData","FormData","append","post","withCredentials","ɵɵinject","HttpClient","EnvironmentService","factory","ɵfac","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r3","ctx_r1","ɵɵnextContext","ɵɵresetView","onRemove","ɵɵtext","ɵɵelementEnd","ɵɵelement","_r1","state","set","ɵɵtemplate","ImageUploadModalComponent_Case_4_Conditional_5_Template","ɵɵadvance","ɵɵproperty","data","imageURL","defaultSvg","ɵɵconditional","$event","_r4","onError","onUpload","onFilesChanged","ɵɵpipeBind1","_r5","endEdit","file","ɵɵpureFunction0","_c0","ɵɵpureFunction1","_c2","_c1","ImageUploadModalComponent_Case_5_Conditional_0_Template","ImageUploadModalComponent_Case_5_Conditional_1_Template","ImageUploadModalComponent","constructor","signal","uploadService","inject","GALAXY_UPLOADER_SERVICE_TOKEN","dialogRef","MatDialogRef","snack","SnackbarService","close","removed","event","openErrorSnack","error","message","fileInfo","clear","newImageUrl","url","files","blob","__async","currentFile","setCroppedImage","uploadQueuedFiles","firstValueFrom","fileUploaded$","then","ɵɵdirectiveInject","MAT_DIALOG_DATA","selectors","features","ɵɵProvidersFeature","provide","useClass","ImageUploadService","decls","vars","consts","template","rf","ctx","ImageUploadModalComponent_Case_4_Template","ImageUploadModalComponent_Case_5_Template","ɵɵtextInterpolate","tmp_1_0","MatDialogModule","MatDialogTitle","MatDialogContent","GalaxyUploaderModule","GalaxyImageUploaderComponent","GalaxyImageEditorComponent","TranslateModule","TranslatePipe","GalaxyAvatarModule","AvatarComponent","MatButtonModule","MatButton","MatIconModule","styles","ɵɵelementStart","ɵɵelement","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","ctx_r0","defaultSvg","ImageUploadComponent","constructor","imageUrl","input","imageUrlChanged","EventEmitter","newUploadedImageUrl","signal","dialog","inject","MatDialog","onChangeImage","open","ImageUploadModalComponent","width","data","imageURL","afterClosed","subscribe","result","remove","emit","newImageUrl","set","selectors","inputs","outputs","features","ɵɵProvidersFeature","provide","GALAXY_UPLOADER_SERVICE_TOKEN","useClass","ImageUploadService","decls","vars","consts","template","rf","ctx","ɵɵlistener","ɵɵtext","ɵɵtemplate","ImageUploadComponent_Conditional_5_Template","ɵɵconditional","CommonModule","TranslateModule","GalaxyUploaderModule","MatButtonModule","GalaxyAvatarModule","AvatarComponent","MatIconModule","MatIcon","MatMenuModule","styles","UnsavedChangesGuard","constructor","confirmationModal","inject","OpenConfirmationModalService","hasUnsavedChanges","signal","canDeactivate","openModal","type","title","message","confirmButtonText","pipe","map","confirmation","notifyStateChanged","hasChanges","set","factory","ɵfac","providedIn","AiAssistantVoiceUsageComponent","constructor","namespace","input","translationService","inject","TranslateService","voiceApiService","VoiceApiService","callUsageLimitMinutes","callUsage$","toObservable","pipe","filter","switchMap","getCallUsage","map","r","totalMinutes","Math","floor","totalDuration","startDate","startTime","endDate","endTime","limitPercent","min","round","shareReplay","selectors","inputs","decls","vars","consts","template","rf","ctx","ɵɵdeclareLet","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵelement","ɵɵadvance","ɵɵclassMap","callUsage_r1","ɵɵtextInterpolate1","ɵɵpipeBind2","ɵɵpureFunction2","_c0","ɵɵproperty","_c1","ɵɵpipeBind3","CommonModule","AsyncPipe","DatePipe","AiAssistantI18nModule","TranslatePipe","GalaxyProgressBarModule","ProgressBarComponent","MatIconModule","GalaxyTooltipModule","styles","ɵɵelementStart","ɵɵlistener","goal_r2","ɵɵrestoreView","_r1","$implicit","ctx_r2","ɵɵnextContext","ɵɵresetView","goalClicked","emit","id","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate1","name","description","GoalsListComponent","constructor","goals","input","required","output","selectors","inputs","outputs","decls","vars","consts","template","rf","ctx","ɵɵrepeaterCreate","GoalsListComponent_For_2_Template","ɵɵrepeaterTrackByIdentity","ɵɵrepeater","CommonModule","MatCardModule","MatCard","MatCardContent","MatListModule","AiAssistantI18nModule","styles","AiGoalService","constructor","goalApiService","inject","GoalApiService","promptModuleApiService","PromptModuleApiService","functionApiService","FunctionApiService","buildGoalConfigurationUrl","accountGroupId","goalId","getGoal","partnerId","get","id","namespace","getNamespace","pipe","map","response","goal","getPromptModule","promptModuleId","getDeployedVersion","promptModule","promptVersion","deployedPromptModuleVersion","upsertGoal","upsert","factory","ɵfac","providedIn","ɵɵtext","ɵɵelementStart","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","ɵɵtextInterpolate","ɵɵpipeBind1","ɵɵelementContainer","errorTemplate_r3","ɵɵpureFunction1","_c2","ctx_r1","error","ɵɵelement","ɵɵlistener","$event","ɵɵrestoreView","_r5","ɵɵnextContext","ɵɵresetView","onImageChanged","tmp_3_0","assistantForm","get","value","tmp_4_0","aiAssistant","decoration","defaultAvatarIcon","undefined","ɵɵtextInterpolate1","assistant","namespace","ɵɵpipeBind2","_c5","aiConnection_r7","connection","name","cta","label","_r6","$implicit","triggerAction","preventDefault","ɵɵtemplate","AiAssistantFormComponent_Conditional_10_Conditional_29_Conditional_3_For_3_Conditional_7_Conditional_1_Template","AiAssistantFormComponent_Conditional_10_Conditional_29_Conditional_3_For_3_Conditional_7_Conditional_2_Template","ɵɵconditional","isDefault","AiAssistantFormComponent_Conditional_10_Conditional_29_Conditional_3_For_3_Conditional_7_Template","ɵ$index_103_r8","iconUrl","ɵɵsanitizeUrl","getConnectionName","widgetConnections_r9","ɵɵpureFunction0","_c4","action","showButton","ɵɵdeclareLet","ɵɵrepeaterCreate","AiAssistantFormComponent_Conditional_10_Conditional_29_Conditional_3_For_3_Template","ɵɵrepeaterTrackByIndex","ɵɵstoreLet","widgetConnections$","ɵɵrepeater","aiConnections_r10","AiAssistantFormComponent_Conditional_10_Conditional_29_Conditional_2_Template","AiAssistantFormComponent_Conditional_10_Conditional_29_Conditional_3_Template","connections$","aiConnections_r11","length","family_r13","selectedVoiceFamily_r14","description_key","voice_r15","ɵɵtextInterpolate3","region","gender","_r16","accordionItem_r17","ɵɵreference","toggle","AiAssistantFormComponent_Conditional_10_Conditional_30_Conditional_29_Conditional_8_Template","expanded","AiAssistantFormComponent_Conditional_10_Conditional_30_For_14_Template","ɵɵrepeaterTrackByIdentity","AiAssistantFormComponent_Conditional_10_Conditional_30_Conditional_16_Template","AiAssistantFormComponent_Conditional_10_Conditional_30_For_25_Template","_r12","togglePreview","AiAssistantFormComponent_Conditional_10_Conditional_30_Conditional_27_Template","AiAssistantFormComponent_Conditional_10_Conditional_30_Conditional_28_Template","AiAssistantFormComponent_Conditional_10_Conditional_30_Conditional_29_Template","voiceConfigForm","voiceFamilies","voiceFamily","selectedVoiceFamily_r18","availableVoices","currentlyPlayingPreview","tmp_13_0","provider","vendorModels","VENDOR_MODEL_OPEN_AI_REALTIME","AiAssistantFormComponent_Conditional_10_Conditional_39_Conditional_13_Conditional_4_For_6_For_2_Conditional_1_Template","AiAssistantFormComponent_Conditional_10_Conditional_39_Conditional_13_Conditional_4_For_6_For_2_Conditional_2_Template","type_r21","calendar_r22","isPersonal","AiAssistantFormComponent_Conditional_10_Conditional_39_Conditional_13_Conditional_4_For_6_For_2_Template","calendarName","meetingTypes","AiAssistantFormComponent_Conditional_10_Conditional_39_Conditional_13_Conditional_4_For_6_Template","_r20","goToMeetings","compareBookingOptions","calendarsWithTypes$","AiAssistantFormComponent_Conditional_10_Conditional_39_Conditional_13_Conditional_4_Template","tmp_5_0","_r19","openEnableLeadCaptureDialog","AiAssistantFormComponent_Conditional_10_Conditional_39_Conditional_13_Template","$isMeetingBookingEnabled","ɵɵtextInterpolate2","additionalPromptSoftLimit_r24","additionalInstructionsLimit","_r23","openAdditionalInstructionsDialog","AiAssistantFormComponent_Conditional_10_Conditional_40_glxy_hint_16_Template","AiAssistantFormComponent_Conditional_10_Conditional_40_glxy_error_17_Template","_r25","editGoal","goals","_r26","updateSelectedSources","knowledgeForm","controls","knowledgeAppId","AiAssistantFormComponent_Conditional_10_Conditional_4_Template","AiAssistantFormComponent_Conditional_10_Conditional_5_Template","AiAssistantFormComponent_Conditional_10_Conditional_18_Template","AiAssistantFormComponent_Conditional_10_Conditional_28_Template","AiAssistantFormComponent_Conditional_10_Conditional_29_Template","AiAssistantFormComponent_Conditional_10_Conditional_30_Template","AiAssistantFormComponent_Conditional_10_Conditional_39_Template","AiAssistantFormComponent_Conditional_10_Conditional_40_Template","AiAssistantFormComponent_Conditional_10_Conditional_41_Template","AiAssistantFormComponent_Conditional_10_Conditional_51_Template","AiAssistantFormComponent_Conditional_10_Conditional_52_Template","ɵɵprojection","_r4","submit","back","$isLoading","ɵɵpureFunction2","_c3","PopoverPositions","TopLeft","BottomLeft","ɵɵpropertyInterpolate","connectionForm","$isVoiceAssistant","$showPrimaryGoalCheckbox","showCustomGoals","$canSave","errorMessage_r27","ADDITIONAL_INSTRUCTIONS_LIMIT","FALLBACK_BACK_URL","MEETING_URL","DEFAULT_LEAD_CAPTURE_GOAL_ID","DEFAULT_MEETING_BOOKING_GOAL_ID","ADDITIONAL_INSTRUCTIONS_GOAL_ID","DEEPGRAM_SPEAK_FEATURE_FLAG","GOAL_CONFIG_KEY_CALENDAR_ID","GOAL_CONFIG_KEY_MEETING_TYPE_ID","AiAssistantFormComponent","connectionsFormGroupFactory","aiConnections","formArray","map","aiConnection","FormControl","assistantKeys","some","assistantKey","id","disabled","isConnectionLocked","FormGroup","connections","FormArray","assistantFormGroupFactory","assistantService","additionalInstructions","leadCaptureEnabled","$isAssistantGoalsEnabled","configurableGoals","goal","config","inboxConfig","meetingBookingEnabled","calendarId","meetingTypeId","$isAIMeetingBookingEnabled","bookingGoal","find","Boolean","configuration","key","assistantAvatarUrl","avatarUrl","enableLeadCapture","enableMeetingBooking","calendarAndMeetingType","additionalPrompt","Validators","maxLength","assistantId","voiceConfigFormGroupFactory","voice","voiceConfig","modelConfig","openaiRealtimeConfig","family","familyFromVoice","vendorModel","VendorModel","VENDOR_MODEL_DEEPGRAM","deepgramConfig","advanced","turnDetectionThreshold","turnDetection","threshold","turnDetectionPrefixPadding","prefixPadding","turnDetectionSilenceDuration","silenceDuration","knowledgeFormGroupFactory","kID","inject","AiAssistantService","buildAppId","knowledgeSources","constructor","location","destroyRef","DestroyRef","assistantAPI","AssistantApiService","snackbarService","SnackbarService","knowledgeService","AiKnowledgeService","goalService","AiGoalService","featureFlagService","FeatureFlagService","bookingConfigService","BookingConfigService","router","Router","route","ActivatedRoute","unsavedGuard","UnsavedChangesGuard","dialog","MatDialog","injector","EnvironmentInjector","accountGroupId$","ACCOUNT_GROUP_ID_TOKEN","partnerId$","PARTNER_ID_TOKEN","conversationApiService","ConversationApiService","translateService","TranslateService","DEFAULT_CONNECTION_PREFIX","signal","defaultWorkforce$","AI_DEFAULT_WORKFORCE_TOKEN","navHistory","previewAudio","Audio","partnerIdAndAccountGroupId$","combineLatest","pipe","distinctUntilChanged","a","b","$isSaving","$hasUnsavedChanges","$initialSources","computed","$isNewCustomAIGoalsEnabled","snapshot","params","aiAssistant$","switchMap","partnerIdAndAccountGroupId","defaultWorkforce","partnerId","accountGroupId","getAssistant","hydrateAssistantWithDefaultInfo","catchError","err","status","getDefaultAssistant","set","message","EMPTY","shareReplay","refCount","bufferSize","toSignal","initialValue","configurableGoal","filter","globalNamespace","additionalInstructions$","additionalInstructionsPromptModule","buildAdditionalInstructionsGoalID","promptModules","getPromptModuleVersion","deployedVersion","instructions","of","$additionalInstructions","listConnectionsForAssistant","openErrorSnack","$connections","type","AssistantType","ASSISTANT_TYPE_VOICE_RECEPTIONIST","$showBetaBadge","connectionType","WEBCHAT_WIDGET_CONNECTION_TYPE","webchatWidgetConnectionIds","widgetIds","includes","getMultiWidget","response","widgets","fetching$","startWith","$fetching","requireSync","getCalendarsWithTypes","audioEndedHandler","effect","notifyStateChanged","setValue","runInInjectionContext","subscribeToFormChanges","f","previewUrlFromVoice","voicesForFamily","batchGetStatus","resp","take","subscribe","deepgramEnabled","getVoiceFamilies","queryParams","previousUrl","valueChanges","takeUntilDestroyed","markChanges","updateBookingValidator","familyName","stopPlayingPreview","handleEnded","removeEventListener","play","then","addEventListener","pause","currentTime","cleanupAudioEventListeners","knowledgeSourcesHaveChanged","currentSources","source","s","accountGroupNamespace","ConnectionType","WebchatWidget","MY_LISTING_CONNECTION_NAME","instant","widget","widgetId","sources","JSON","parse","stringify","goalId","__async","firstValueFrom","goalConfigurationUrl","buildGoalConfigurationUrl","navigate","relativeTo","onBeforeUnload","event","stopPropagation","returnValue","markAllAsTouched","invalid","dirty","assistantPromise","connectionPromise","updateAssistant","updateConnections","Promise","all","markAsSaved","openSuccessSnack","hasChanges","markAsPristine","setValidators","control","bothRequired","clearValidators","updateValueAndValidity","emitEvent","toAssistant","updateGoals","Error","cause","configurationUrl","buildAiKnowledgeAppConfigurationUrl","knowledge","toKnowledgeSource","upsertKnowledgeForApp","knowledgeAppType","upsertAssistant","throwError","Namespace","ASSISTANT_TYPE_INBOX","updateGoal","goalConfig","addAdditionalInstructionsGoal","defaultGoalId","existingGoals","goalIndex","findIndex","push","ConfigurableGoal","hasAdditionalInstructionsGoal","additionalInstructionsFormValue","goalKey","upsertAdditionalInstructions","console","warn","setAssistantConnections","associationStates","index","connectionKey","isAssociated","getRawValue","AssistantIdToAssistantType","buildVoiceModelConfig","open","EnableLeadCaptureDialogComponent","width","AdditionalInstructionsDialogComponent","imageUrl","markAsDirty","buildConnectionActionCallback","url","partnerNamespace","outlets","inbox","newTab","relativeRoute","window","pathCommands","callback","backUrl","ngOnDestroy","ɵɵdirectiveInject","Location","selectors","hostBindings","rf","ctx","ɵɵresolveWindow","i0","_r1","AiAssistantFormComponent_Conditional_7_Template","AiAssistantFormComponent_Conditional_9_Template","AiAssistantFormComponent_Conditional_10_Template","AiAssistantFormComponent_ng_template_11_Template","ɵɵtemplateRefExtractor","_c1","tmp_2_0","CommonModule","NgIf","NgTemplateOutlet","AsyncPipe","MatInputModule","MatInput","CdkTextareaAutosize","MatCardModule","MatCard","MatCardContent","MatCardHeader","MatCardSubtitle","MatCardTitle","MatOptionModule","MatOption","MatOptgroup","MatSelectModule","MatSelect","MatSliderModule","MatSlider","MatSliderThumb","CdkAccordionModule","CdkAccordion","CdkAccordionItem","ReactiveFormsModule","ɵNgNoValidate","DefaultValueAccessor","NgControlStatus","NgControlStatusGroup","FormGroupDirective","FormControlName","FormGroupName","FormArrayName","FormsModule","MatButtonModule","MatIconButton","GalaxyFormFieldModule","FormFieldComponent","LabelDirective","HintDirective","ErrorDirective","ExtendedDirective","GalaxyLoadingSpinnerModule","LoadingSpinnerComponent","GalaxyPageNoAccessUnauthorizedModule","AiAssistantI18nModule","TranslatePipe","MatCheckboxModule","MatCheckbox","RouterModule","MatIconModule","MatIcon","MatButtonToggleModule","MatDialogModule","MatDividerModule","ApplicationKnowledgeComponent","GalaxyBadgeModule","BadgeComponent","ImageUploadComponent","GalaxyTooltipModule","GalaxyTooltipDirective","StickyFooterComponent","GalaxyPageModule","PageComponent","PageToolbarComponent","PageTitleDirective","PageNavDirective","PageNavButtonComponent","PageWrapperDirective","GalaxyAlertModule","AlertComponent","AlertExtendedDirective","GalaxyEmptyStateModule","EmptyStateComponent","EmptyStateHeroDirective","EmptyStateTitleDirective","GalaxyAvatarModule","AiAssistantVoiceUsageComponent","GoalsListComponent","styles","goalChannels","Map","GoalChannel","GOAL_CHANNEL_PLATFORM","GOAL_CHANNEL_WEBCHAT","GOAL_CHANNEL_SMS","GOAL_CHANNEL_EMAIL","GOAL_CHANNEL_VOICE","GOAL_CHANNEL_FACEBOOK","GOAL_CHANNEL_INSTAGRAM","GOAL_CHANNEL_WHATSAPP","goalChannelIcons","ɵɵelement","ɵɵproperty","channel_r4","icon","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r3","$implicit","ctx_r1","ɵɵnextContext","ɵɵresetView","toggleChannelSelection","id","ɵɵtemplate","AiGoalFormComponent_Conditional_8_For_20_Conditional_2_Template","ɵɵtext","ɵɵelementEnd","tmp_14_0","form_r5","get","value","includes","ɵɵadvance","ɵɵconditional","goalChannelIcons","ɵɵtextInterpolate1","ɵɵpipeBind1","name","goalFunction_r6","description","_r1","selectAllChannels","ɵɵrepeaterCreate","AiGoalFormComponent_Conditional_8_For_20_Template","_forTrack0","AiGoalFormComponent_Conditional_8_For_32_Template","submit","cancel","ɵɵtextInterpolate","tmp_8_0","length","ɵɵrepeater","availableGoalChannels","canSave","AVAILABLE_CHANNELS","GoalChannel","GOAL_CHANNEL_SMS","GOAL_CHANNEL_WEBCHAT","GOAL_CHANNEL_WHATSAPP","FALLBACK_BACK_URL","AiGoalFormComponent","constructor","destroyRef","route","inject","ActivatedRoute","goalService","AiGoalService","snackbarService","SnackbarService","pageService","PageService","router","Router","accountGroupId$","ACCOUNT_GROUP_ID_TOKEN","partnerId$","PARTNER_ID_TOKEN","map","channel","goalChannels","goalId","snapshot","params","goal$","combineLatest","pipe","switchMap","partnerId","accountGroupId","getGoal","promptModule$","goal","promptModules","of","getPromptModule","form","toSignal","promptModule","initForm","promptVersion","content","isLoading","computed","isSubmitting","signal","hasUnsavedChanges","effect","valueChanges","takeUntilDestroyed","subscribe","set","promptContent","FormGroup","FormControl","Validators","required","supportedChannels","prompt","functions","channelKey","control","currentValue","filter","key","setValue","getGoalFromForm","formValue","newGoal","__spreadValues","__async","valid","openErrorSnack","firstValueFrom","upsertGoal","openSuccessSnack","path","getPreviousPageUrl","navigate","relativeTo","ɵɵdirectiveInject","DestroyRef","selectors","decls","vars","consts","template","rf","ctx","AiGoalFormComponent_Conditional_8_Template","tmp_4_0","CommonModule","GalaxyPageModule","PageComponent","PageToolbarComponent","PageTitleDirective","PageNavDirective","PageNavButtonComponent","PageWrapperDirective","GalaxyFormFieldModule","FormFieldComponent","LabelDirective","ReactiveFormsModule","DefaultValueAccessor","NgControlStatus","NgControlStatusGroup","FormGroupDirective","FormControlName","MatSelectModule","GalaxyBadgeModule","MatChipsModule","MatChipListbox","MatChipOption","GalaxyAvatarModule","AvatarComponent","MatCardModule","MatCard","MatCardContent","StickyFooterComponent","AiAssistantI18nModule","TranslatePipe","FormsModule","MatInputModule","MatInput","styles","AI_ASSISTANT_ROUTES","path","children","component","AiAssistantPageComponent","AiAssistantFormComponent","canDeactivate","UnsavedChangesGuard","AiGoalFormComponent","ConversationSMSService","ConversationChannelService","constructor","router","inject","Router","smsRegistrationService","A2PRegistrationService","inboxService","InboxService","country$","CONVERSATION_COUNTRY_TOKEN","canAccessSMS$","inboxAlerter","InboxAlertService","getChatComposerAlert","partnerId","accountGroupId","conversationDetail","stage$","registrationStage$","SMSNumber$","checkContactInfo","getConversationCustomerErrors","participant","alert","of","accountGroupParticipant","getSubjectParticipantByType","participants","ParticipantType","PARTICIPANT_TYPE_ACCOUNT_GROUP","combineLatest","pipe","map","orgCountry","canAccessSMS","stage","smsNumber","country","toLowerCase","hasAccessByCountry","RegistrationStage","RegistrationComplete","getSMSRegistrationError","getSMSPhoneNumberError","getSMSMessageEnabledError","checkNotAvailableErrorForLeads","__ngFactoryType__","factory","ɵfac","firebaseConfig","apiKey","authDomain","databaseURL","projectId","storageBucket","messagingSenderId","appId","measurementId","ConversationWhatsappService","ConversationChannelService","getChatComposerAlert","_partnerId","_accountGroupId","conversationDetail","channels","channelAvailabilities","conversation","channel","ConversationChannel","CONVERSATION_CHANNEL_WHATSAPP","of","whatsappAvailability","find","channelAvailability","description","statuses","i18nKey","__ngFactoryType__","factory","ɵfac","ConversationEmailService","ConversationChannelService","constructor","inboxService","inject","InboxService","inboxAlerter","InboxAlertService","getChatComposerAlert","partnerId","accountGroupId","conversationDetail","checkContactInfo","getConversationCustomerErrors","participant","alert","of","customerParticipant","getSubjectParticipantByType","participants","ParticipantType","PARTICIPANT_TYPE_CUSTOMER","email","phoneNumber","isPartnerCenter","getEmailOnlyAlertError","__ngFactoryType__","factory","ɵfac","SERVICE_PROVIDERS","ViewService","ParticipantService","ConversationService","FirestoreService","InboxService","InboxNavigationService","ListingService","InboxNotificationService","ConversationGoogleService","ConversationFacebookService","ConversationInstagramService","ConversationSMSService","ConversationWebchatService","ConversationPlatformService","InboxAlertService","TemplateService","ConversationWhatsappService","WhatsappTemplatesService","ConversationEmailService","ConversationCoreModule","forRoot","c","ngModule","providers","provide","USER_ID_TOKEN","deps","CONVERSATION_CONFIG_TOKEN","useFactory","userIdFactory","ACCOUNT_GROUP_ID_TOKEN","accountGroupIdFactory","CONVERSATION_COUNTRY_TOKEN","countryFactory","CONVERSATION_GEOGRAPHICAL_STATE_TOKEN","geographicalState","PARTNER_ID_TOKEN","partnerIdFactory","PARTNER_BRAND_NAME_TOKEN","partnerBrandNameFactory","MARKET_ID_TOKEN","marketIdFactory","COMPANY_NAME_TOKEN","companyNameFactory","CONVERSATION_PLATFORM_LOCATION_TOKEN","platformLocationFactory","CONVERSATION_CONVERSATION_CHANNELS_ENABLED_TOKEN","conversationChannelsEnabledFactory","FEATURE_FLAG_TOKEN","featureFlagFactory","CONVERSATION_IMAGE_SERVICE_TOKEN","inboxImageServiceFactory","CONVERSATION_ROUTES_TOKEN","routesFactory","CONVERSATION_GOOGLE_BUSINESS_MESSAGES_AVAILABLE_TOKEN","googleBusinessMessagesAvailableFactory","CONVERSATION_FACEBOOK_MESSENGER_AVAILABLE_TOKEN","facebookMessengerEnabledFactory","CONVERSATION_INSTAGRAM_MESSAGES_AVAILABLE_TOKEN","instagramMessagesEnabledFactory","CONVERSATION_WHATSAPP_MESSAGES_AVAILABLE_TOKEN","whatsAppMessagesEnabledFactory","CONVERSATION_SMS_ENABLED_TOKEN","smsEnabledFactory","CONVERSATION_WEB_CHAT_ENABLED_TOKEN","webchatEnabledFactory","useExisting","config","CONVERSATION_CHANNEL_SERVICE_TOKEN","abstractConversationChannelServiceFactory","GROUP_ID_TOKEN","groupIdFactory","MARKETPLACE_APP_ID_TOKEN","marketplaceAppIdFactory","provideFirebaseApp","initializeApp","firebaseConfig","provideFirestore","getFirestore","getApp","isObservable","userId$","of","accountGroupId$","country$","geographicalState$","partnerId$","partnerBrandName$","companyName$","platformLocation","environmentService","inject","EnvironmentService","InboxProMarketplaceAppIDs","getEnvironment","conversationChannelsEnabled$","routes$","featureFlag$","inboxImageService","StubInboxImageService","marketId$","inboxApiService","InboxApiService","isEnabled$","smsEnabled$","combineLatest","pipe","switchMap","agid","partnerId","isEnabled","configuration","smsEnabled","ownerId","participantType","GlobalParticipantType","GLOBAL_PARTICIPANT_TYPE_ACCOUNT_GROUP","GLOBAL_PARTICIPANT_TYPE_PARTNER","getConfiguration","subjectParticipant","internalParticipantId","map","shareReplay","refCount","bufferSize","catchError","webChatEnabled$","enableable$","facebookMessengerSupported$","enableable","facebookMessengerEnabled","instagramMessagesSupported$","Boolean","ffService","FeatureFlagService","isSupported$","whatsAppMessagesSupported$","whatsAppEnabled$","whatsAppIntegrationFeatureFlag","isSupported","batchGetStatus","status","inboxService","googleBusinessMessagesSupported$","Environment","PROD","googleBusinessMessagesEnabled","conversationGoogleService","conversationWebChatService","conversationFacebookService","conversationInstagramService","conversationPlatformService","conversationWhatsappService","conversationSMSService","conversationEmailService","channelMap","ConversationChannel","CONVERSATION_CHANNEL_UNDEFINED","undefined","CONVERSATION_CHANNEL_GOOGLE_MESSAGES","CONVERSATION_CHANNEL_GOOGLE_BUSINESS_COMMUNICATIONS","CONVERSATION_CHANNEL_WEB_CHAT","CONVERSATION_CHANNEL_FACEBOOK","CONVERSATION_CHANNEL_INSTAGRAM","CONVERSATION_CHANNEL_INTERNAL","CONVERSATION_CHANNEL_SMS","CONVERSATION_CHANNEL_EMAIL","CONVERSATION_CHANNEL_OPENAI","CONVERSATION_CHANNEL_WHATSAPP","e","console","debug","groupId$","AccessDeniedComponent","selectors","standalone","decls","vars","template","rf","ctx","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate","ɵɵpipeBind1","AccountDeleteComponent","constructor","route","router","accountGroupService","dialog","ngOnInit","get","snapshot","params","accountGroupId","ProjectionFilter","napData","pipe","switchMap","accountGroup","closeAll","open","DeleteAccountDialogComponent","width","data","afterClosed","take","subscribe","deleted","shouldRedirectToManageAccounts","navigateByUrl","navigate","outlets","action","segments","url","length","path","ɵɵdirectiveInject","ActivatedRoute","Router","AccountGroupService","MatDialog","selectors","standalone","decls","vars","template","rf","ctx","encapsulation","filterMapByIds","selectedIds","m","length","size","Map","reduce","currMap","id","item","get","set","convertResellerItemsAndPricingMapToAnalyticsItems","pricingMap","resellerItemMap","activatedItemMap","Array","from","keys","acc","quantity","resellerItem","pricing","billingId","analyticsItem","buildAnalyticsItem","push","buildTransaction","transactionId","partnerId","marketId","analyticsItems","totalRevenue","total","price","revenue","affiliation","uuidv4","replace","c","r","Math","random","toString","convertActivationResultsToQuantityMap","activationResults","curr","currentCount","appId","isCustom","PurchaseCost","totalCost","currency","name","category","lmiCategories","s","cat","ActivationAnalyticsService","constructor","resellerItemService","activationPricingService","analyticsService","activationParamService","productAnalytics","resellerItems$","getActivatablePartnerData","resellerItemMap$","pipe","map","ris","resellerArrayToMap","partnerId$","marketId$","trackActivationTransactions","activationResults","randomTransactionId$","combineLatest","partnerId","marketId","uniqueTransactionId","uuidv4","analyticsItems","purchaseCostMap$","first","purchaseCostMap","resellerItemMap","activatedItemIds","r","appId","activatedResellerMap","filterMapByIds","activatedItemMap","convertActivationResultsToQuantityMap","convertResellerItemsAndPricingMapToAnalyticsItems","transaction","analyticsItemsInput","transactionId","buildTransaction","analyticsTransaction","trackEcommerceTransaction","ɵɵinject","ResellerItemService","ActivationPricingService","AnalyticsService","ActivationParamService","ProductAnalyticsService","factory","ɵfac","SharedActivationModule","ActivationService","provide","ActivationServiceInterfaceToken","useExisting","ActivateAppService","ActivationPricingService","ActivationPricingServiceInterfaceToken","ActivationParamService","VBC_HOST","deps","VbcHostService","useFactory","getHostName","ActivateAppApiService","ActivationAnalyticsService","AccountAddToListComponent","constructor","dialogRef","route","router","accountGroupService","dialog","actionListsApiService","actionListsStoreService","ngOnInit","initializeStore","get","snapshot","params","accountGroupId","ProjectionFilter","napData","pipe","take","subscribe","accountGroup","openAddToListDialog","showCreateListDialogAndAddAccount","closeAll","open","CreateListDialog","width","afterClosed","listName","createActionList","addAccountToActionList","navigate","outlets","action","addToListDialogRef","AddToListDialogComponent","componentInstance","result","ɵɵdirectiveInject","MatDialogRef","ActivatedRoute","Router","AccountGroupService","MatDialog","ActionListsApiService","ActionListsStoreService","selectors","standalone","decls","vars","template","rf","ctx","encapsulation","ChangePlanDialogModule","ChangePlanService","imports","CommonModule","MatRadioModule","MatDialogModule","MatCheckboxModule","MatButtonModule","FormsModule","MatProgressSpinnerModule","TranslateModule","AccountsModule","provide","useExisting","AccountsService","UserService","CampaignService","UnifiedTOSService","ChangePlanService","CampaignDialogStoreService","CampaignDialogItemStoreService","ChangeEditionDialogService","ProductOrderFormStoreService","ActivationSettingsApiService","imports","CommonModule","FormsModule","VaListModule","ReactiveFormsModule","MatProgressSpinnerModule","MatButtonModule","MatCardModule","MatIconModule","VaFormsModule","MatMenuModule","MatSelectModule","MatDialogModule","MatFormFieldModule","MatInputModule","MatCheckboxModule","MatListModule","MatTooltipModule","MatChipsModule","MatProgressBarModule","MatButtonToggleModule","MatTabsModule","StencilsModule","ChangePlanDialogModule","MatRadioModule","TranslateModule","SharedActivationModule","MatAutocompleteModule","VaStatusBannerModule","GalaxyAlertModule","GalaxyFormFieldModule","GalaxyPipesModule","RouterModule","GalaxyInputModule","UsersModule","GalaxyButtonLoadingIndicatorModule","BillingUiModule","AI_KNOWLEDGE_CONFIG","InjectionToken","providedIn","factory","partnerService","inject","PartnerService","accountGroupId$","of","marketId$","partnerId$","getPartnerId","pipe","map","partnerId","filter","Boolean","distinctUntilChanged","shareReplay","refCount","bufferSize","manageKnowledgeUrl$","businessProfileUrl$","showBusinessProfileSource$","webChatWidgetEditRoute$","outlets","inbox","popUpMapping","Map","popUpShouldRedirectToCTA","item","locked","has","menuId","getFeatureForPopUp","key","get","getCallToActionUrl","ɵɵelement","ɵɵproperty","ctx_r1","activeMenuId","nesteditem_r3","ɵɵelementStart","ɵɵlistener","$event","ɵɵrestoreView","_r1","ɵɵnextContext","ɵɵresetView","onClick","ɵɵtext","ɵɵtemplate","AppNavItemComponent_Conditional_0_app_nav_item_4_Template","ɵɵelementEnd","item","icon","svgIcon","menuId","shouldExpandMenu","ɵɵadvance","ɵɵtextInterpolate1","ɵɵpipeBind1","tmp_7_0","i18n_key","undefined","label","nestedItems","subsectionHeader","_r4","navTabClicked","AppNavItemComponent_Conditional_1_Conditional_1_glxy_nav_item_accessory_3_Template","ɵɵpureFunction1","_c0","tmp_9_0","navIcon_r5","AppNavItemComponent_Conditional_1_Conditional_2_glxy_nav_item_accessory_3_Template","ngRoute","url","popOut","tmp_12_0","AppNavItemComponent_Conditional_1_Conditional_0_Template","AppNavItemComponent_Conditional_1_Conditional_1_Template","AppNavItemComponent_Conditional_1_Conditional_2_Template","ɵɵconditional","linkIsHandledInComponent","tooltip","positions","rightIcon","AppNavItemComponent_ng_template_2_Case_0_Template","AppNavItemComponent_ng_template_2_Case_1_Template","AppNavItemComponent_ng_template_2_Case_2_Template","AppNavItemComponent_ng_template_2_Case_3_Template","AppNavItemComponent_ng_template_2_Case_4_Template","AppNavItemComponent_ng_template_2_Case_5_Template","tmp_2_0","navType","navLinkTypes","DISABLED","LOCKED","POPOUT","SUBNAV","BETA","NEW","NavLinkType","AppNavItemComponent","constructor","partnerId$","clicked","EventEmitter","router","inject","Router","configService","AppConfigService","clickWillRedirectToCTA","NAVLINK","__spreadValues","PopoverPositions","Right","Bottom","ngOnInit","activeItems","filter","startsWith","length","popUpShouldRedirectToCTA","getNavType","emit","navigate","handleLockedPopUpClick","ctaUrl","getCallToActionUrl","queryParams","page","config","isSuperAdmin","locked","badge","ɵɵdirectiveInject","selectors","inputs","outputs","standalone","decls","vars","consts","template","rf","ctx","AppNavItemComponent_Conditional_0_Template","AppNavItemComponent_Conditional_1_Template","AppNavItemComponent_ng_template_2_Template","ɵɵtemplateRefExtractor","TranslatePipe","styles","ParameterService","constructor","partnerID$","url","partnerId$","ActivityTableDataService","parameterService","emailEventService","filters$","get","r","combineLatest","pipe","switchMap","pid","filters","listEventsForAttribute","type","SenderType","SENDER_TYPE_PARTNER","id","key","attributeKey","value","attributeValue","pagingOptions","cursor","pageSize","map","data","events","pagingMetadata","nextCursor","hasMore","catchError","ɵɵelement","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate","ɵɵpipeBind1","ɵɵtextInterpolate1","ctx_r1","getDisplayTypeFromEnum","element_r1","eventType","ɵɵpipeBind2","element_r3","eventTime","dateFormat","ɵɵproperty","ActivityTableComponent","constructor","translateService","senderId$","emailEventService","route","columns","id","title","instant","DateFormat","medium","sidebarState","SidebarState","OPEN","subscriptions","ngOnInit","filterGroup","FilterGroup","addSection","getEventTypeList","map","CheckboxFilterControl","appliedValueMapper","name","label","push","queryParams","subscribe","params","initValue","filters$","valueChanges","pipe","startWith","value","group","filterTypes","Processed","EventType","PROCESSED","Delivered","DELIVERED","Opened","OPENED","Clicked","CLICKED","Bounced","BOUNCED","Deferred","DEFERRED","Dropped","DROPPED","Spamreport","SPAMREPORT","Unsubscribed","UNSUBSCRIBED","Resubscribed","RESUBSCRIBED","shareReplay","paramsService","ParameterService","snapshot","service","ActivityTableDataService","dataSource","GalaxyDataSource","Object","keys","reduce","arr","key","includes","charAt","slice","toLowerCase","ngOnDestroy","forEach","s","unsubscribe","ɵɵdirectiveInject","TranslateService","SENDER_ID_TOKEN","EmailEventService","ActivatedRoute","selectors","features","ɵɵProvidersFeature","decls","vars","consts","template","rf","ctx","ɵɵtemplate","ActivityTableComponent_tr_10_Template","ɵɵelementContainerStart","ActivityTableComponent_th_12_Template","ActivityTableComponent_td_13_Template","ActivityTableComponent_th_15_Template","ActivityTableComponent_td_16_Template","ActivityTableComponent_tr_17_Template","ActivityTableComponent_glxy_empty_state_18_Template","ɵɵpureFunction0","_c0","loading$","_c1","state","totalDataMembers","loading","CommonModule","NgIf","AsyncPipe","TranslateModule","TranslatePipe","GalaxyPageModule","PageComponent","PageToolbarComponent","PageTitleDirective","GalaxyTableModule","TableContainerComponent","GalaxyEmptyStateModule","EmptyStateComponent","EmptyStateHeroDirective","FilterModule","FilterContentDirective","FilterModelComponent","MatIconModule","MatIcon","MatTableModule","MatTable","MatHeaderCellDef","MatHeaderRowDef","MatColumnDef","MatCellDef","MatRowDef","MatHeaderCell","MatCell","MatHeaderRow","MatRow","GalaxyPipesModule","GalaxyDatePipe","styles","PreviewWelcomeEmailComponent","selectors","standalone","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵelement","ɵɵadvance","ɵɵtextInterpolate1","MapChangeDialogComponent","constructor","dialog","data","cancel","close","ɵɵdirectiveInject","MatDialogRef","MAT_DIALOG_DATA","selectors","standalone","decls","vars","consts","template","rf","ctx","ɵɵelement","ɵɵelementStart","ɵɵelementEnd","ɵɵlistener","ɵɵtext","ɵɵproperty","ɵɵpipeBind2","ɵɵpureFunction1","_c0","fieldName","ɵɵsanitizeHtml","ɵɵadvance","ɵɵpureFunction2","_c1","headerRow","ɵɵtextInterpolate1","ɵɵpipeBind1","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵproperty","option_r2","ɵɵadvance","ɵɵtextInterpolate1","name","option_r3","ɵɵlistener","ɵɵrestoreView","_r4","ctx_r4","ɵɵnextContext","ɵɵresetView","setDoNotImport","ɵɵpipeBind1","BulkImportMappingRowComponent","constructor","partnerId$","mappingService","dialog","customFieldEditorNotificationsService","options","fieldOptions","oldSelectionId","doNotImportOptionId","searchOptionsControl","UntypedFormControl","createCustomFieldOption","CreateCustomField","selectedKey","value","id","oldColumn","columnThatsMappedToField","removeFromMap","setControlValue","onSelectionChange","selection","createCustomField","createNewFieldClicked","fieldCreated$$","pipe","take","switchMap","newField","getCustomFieldIdByName","fieldName","tap","newFieldId","updateMapping","subscribe","ft","isCustomFieldOption","console","error","fieldId","currentMappedHeader","headerRow","openDialog","nameDisplayFn","objectWithAName","undefined","matchedStandardOptions","filter","option","length","setValue","customFieldOptions$","matched","ngOnInit","searchText$","valueChanges","debounceTime","map","staticOptions$","_filterOptions","filteredOptions$","filteredCustomFieldOptions$","withLatestFrom","searchText","customFieldOptions","optionMatchesSearch","shareReplay","refCount","bufferSize","autoMatch","autoMatchedKey","search","toLowerCase","includes","newFieldChoice","open","MapChangeDialogComponent","width","data","afterClosed","result","addToMap","filterValue","onFocusout","ɵɵdirectiveInject","BulkImportMappingService","MatDialog","FieldSelectedForEditService","selectors","inputs","standalone","decls","vars","consts","template","rf","ctx","i0","_r1","$event","ɵɵtemplate","BulkImportMappingRowComponent_mat_option_7_Template","BulkImportMappingRowComponent_mat_option_11_Template","BulkImportMappingRowComponent_button_17_Template","auto_r6","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate1","ɵɵpipeBind1","ɵɵproperty","col_r2","headerRow","ɵɵtextInterpolate","col_r3","firstRow","ɵɵelement","col_r4","ɵɵtextInterpolate3","ɵɵpipeBind2","ɵɵpureFunction1","_c0","error_r6","row","column","message","ɵɵlistener","ɵɵrestoreView","_r7","ctx_r7","ɵɵnextContext","ɵɵresetView","increaseShow","ɵɵtemplate","BulkImportMapperComponent_mat_list_14_mat_list_item_5_Template","BulkImportMapperComponent_mat_list_14_a_6_Template","ɵɵtwoWayListener","$event","_r5","i0","ɵɵtwoWayBindingSet","proceedWithErrors","BulkImportMapperComponent_mat_list_14_mat_error_15_Template","BulkImportMapperComponent_mat_list_14_a_16_Template","errors_r9","show","length","ɵɵtwoWayProperty","ɵɵpropertyInterpolate","errorMessage_r10","ɵɵsanitizeHtml","BulkImportMapperComponent","constructor","bulkImportService","displayedColumns","options","fieldOptions","subscriptions","ngOnInit","uploading$","dataSource","errorMessage$","errorMessage$$","asObservable","errors$","pipe","map","errors","err","isString","uploadFileAndMapping","pageStepper","val","ɵɵdirectiveInject","BulkImportService","selectors","inputs","standalone","decls","vars","consts","template","rf","ctx","ɵɵelementContainerStart","BulkImportMapperComponent_mat_header_cell_4_Template","BulkImportMapperComponent_mat_cell_5_Template","BulkImportMapperComponent_mat_header_cell_7_Template","BulkImportMapperComponent_mat_cell_8_Template","BulkImportMapperComponent_mat_header_cell_10_Template","BulkImportMapperComponent_mat_cell_11_Template","BulkImportMapperComponent_mat_header_row_12_Template","BulkImportMapperComponent_mat_row_13_Template","BulkImportMapperComponent_mat_list_14_Template","BulkImportMapperComponent_mat_error_17_Template","_r1","BulkImportMapperComponent_span_24_Template","BulkImportMapperComponent_mat_spinner_26_Template","ɵɵtext","ɵɵtextInterpolate1","ɵɵpipeBind1","ɵɵelementStart","ɵɵlistener","$event","ɵɵrestoreView","_r2","ctx_r2","ɵɵnextContext","removableInput_r4","ɵɵreference","ɵɵresetView","clearInput","ɵɵelementEnd","ɵɵadvance","ɵɵelement","ɵɵproperty","ɵɵpropertyInterpolate","processingErrorMessage","ɵɵsanitizeHtml","_r5","openPreview","language_r7","id","name","ɵɵtwoWayListener","_r6","i0","ɵɵtwoWayBindingSet","emailLanguage","ɵɵtemplate","BulkImportComponent_div_107_mat_option_8_Template","welcomeMessage","ɵɵtwoWayProperty","emailLanguages","ɵɵtextInterpolate","marketAndListText","market_r9","_r8","updateSearchTerm","marketSearchTerm$$","target","value","selectMarket","BulkImportComponent_div_118_mat_option_10_Template","BulkImportComponent_div_118_mat_error_14_Template","marketUiFormControl","marketMatcher","marketAutocomplete_r10","selectFirstMarket","nameDisplayFn","filteredMarkets$","hasError","list_r12","_r11","listSearchTerm$$","selectList","BulkImportComponent_mat_form_field_129_mat_option_5_Template","BulkImportComponent_mat_form_field_129_mat_error_9_Template","listFormControl","auto_r13","listMatcher","displayFn","filteredLists$","BulkImportComponent_mat_form_field_134_mat_error_2_Template","marketListForm","controls","marketName","BulkImportComponent","constructor","formBuilder","dialog","marketService","actionListsStoreService","bulkImportService","mappingService","accessService","partnerId$","marketId$","feature","router","vConfigService","createOrEditCustomFieldService","dynamicOpenCloseService","trackingService","fileTypes","BehaviorSubject","subscriptions","accessibleMarkets","errorRows","show","listText","listSelected","loading","overwriteBlank","WELCOME_EMAIL_LOCALES","vbcConfigKey","filename","file","ngOnInit","push","createClicked$","pipe","tap","open","subscribe","initializeStore","UntypedFormControl","fileFormControl","Validators","required","secondFormGroup","group","secondCtrl","fileForm","fileHasErrors","marketId","actionListId","actionListName","useExistingList","hasAccessToMarkets$","hasAccessToFeature","hasAccess","setValidators","combineLatest","asObservable","startWith","markets","map","searchTerm","filter","market","toLowerCase","indexOf","actionLists$","actionLists","actionList","selectFirstActionList","marketUiESM","CustomErrorStateMatcher","formControl","touched","market_id","currentMarket$","marketAccess","length","patchValue","MyErrorStateMatcher","permissionsFlag","notificationsFlag","welcomeEmailFlag","englishSelection","partnerBusinessCenterName$","switchMap","partnerId","getConfigurations","config","vbc_product_name","shareReplay","ngAfterViewInit","registerTemplate","customFieldEditor","ngOnDestroy","forEach","s","unsubscribe","fileOnChange","event","trackEvent","files","processing","resetMapping","processFile","take","next","pageStepper","error","objectWithAName","undefined","setValue","option","listName","subject$$","term","downloadTemplate","window","downloadBusinessCategories","increaseShow","goToFinalStep","netRows$","totalRows$","errorRows$","totalRows","markAsTouched","setListName","input","selectExistingList","clearValidators","updateValueAndValidity","onlySelf","createNewList","goToFieldMapping","startListImport","sessionId","response","navigate","data","PreviewWelcomeEmailComponent","width","ɵɵdirectiveInject","UntypedFormBuilder","MatDialog","MarketsService","ActionListsStoreService","BulkImportService","BulkImportMappingService","StubAccessService","FeatureFlagService","Router","VConfigService","FieldSelectedForEditService","DynamicOpenCloseTemplateRefService","ProductAnalyticsService","selectors","viewQuery","rf","ctx","BulkImportComponent_ng_template_15_Template","_r1","BulkImportComponent_button_43_Template","BulkImportComponent_mat_error_44_Template","BulkImportComponent_mat_spinner_45_Template","BulkImportComponent_mat_error_46_Template","BulkImportComponent_a_106_Template","BulkImportComponent_div_107_Template","BulkImportComponent_ng_template_117_Template","BulkImportComponent_div_118_Template","BulkImportComponent_mat_form_field_129_Template","BulkImportComponent_mat_form_field_134_Template","BulkImportComponent_ng_template_143_Template","BulkImportComponent_div_156_Template","BulkImportComponent_mat_spinner_172_Template","BulkImportComponent_span_173_Template","BulkImportComponent_ng_template_174_Template","ɵɵtemplateRefExtractor","join","empty","ɵɵpipeBind2","ɵɵpureFunction0","_c2","ɵɵpureFunction1","_c3","_c4","isErrorState","control","form","isSubmitted","submitted","invalid","dirty","call","ɵɵelementContainerStart","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate1","accountGroup_r2","napData","address","ɵɵtemplate","CampaignAccountSelectorComponent_mat_option_11_ng_container_1_ng_container_3_Template","ɵɵtextInterpolate","companyName","ɵɵproperty","CampaignAccountSelectorComponent_mat_option_11_ng_container_1_Template","PAGE_SIZE","CampaignAccountSelectorComponent","constructor","uid$","accountGroupService","marketsService","accountGroupSelect","UntypedFormControl","genericAccountGroup","GENERIC_ACCOUNT_GROUP","searchTerm$$","BehaviorSubject","accountGroups$","accountGroups","data$","combineLatest","valueChanges","pipe","map","ag","uid","stepDataForPartnerEmail","accountGroupId","RecipientTypes","IAMUser","ngOnInit","__async","markets","firstValueFrom","accessibleMarkets","m","market_id","lookup","ProjectionFilter","undefined","selectAccount","accountGroup","setValue","selectedAccountGroup","displayFn","updateSearchTerm","event","searchValue","target","value","next","search","take","ɵɵdirectiveInject","AccountGroupService","MarketsService","selectors","decls","vars","consts","template","rf","ctx","ɵɵlistener","$event","i0","ɵɵrestoreView","_r1","ɵɵresetView","option","CampaignAccountSelectorComponent_mat_option_11_Template","ɵɵpipeBind1","ɵɵpropertyInterpolate","auto_r3","CommonModule","NgForOf","NgIf","AsyncPipe","GalaxyInputModule","GalaxyFormFieldModule","MatAutocompleteModule","MatAutocomplete","MatOption","MatAutocompleteTrigger","MatOptionModule","ReactiveFormsModule","DefaultValueAccessor","NgControlStatus","FormControlDirective","TranslateModule","TranslatePipe","MatFormFieldModule","MatFormField","MatLabel","encapsulation","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","ɵɵtextInterpolate1","ɵɵpipeBind1","item_r1","textKey","ɵɵelementContainerStart","ɵɵlistener","$event","ɵɵrestoreView","_r2","ctx_r2","ɵɵnextContext","ɵɵresetView","childComponentVariableMenuItemSelected","subItems_r4","formControl","value","ɵɵtemplate","VariableMenuItemSelectorComponent_div_1_ng_container_7_ng_container_1_Template","ɵɵpureFunction0","_c0","length","VariableMenuItemSelectorComponent_div_1_mat_option_6_Template","VariableMenuItemSelectorComponent_div_1_ng_container_7_Template","ɵɵtextInterpolate","parentTextKey","items","subItems$","VariableMenuItemSelectorComponent","constructor","variableMenuItemSelected","EventEmitter","FormControl","subscriptions","ngOnInit","push","valueChanges","pipe","switchMap","variableMenuItem","of","map","subItems","emit","subscribe","ngOnDestroy","forEach","subscription","unsubscribe","selectors","inputs","outputs","decls","vars","consts","template","rf","ctx","VariableMenuItemSelectorComponent_div_0_Template","VariableMenuItemSelectorComponent_div_1_Template","GalaxyFormFieldModule","FormFieldComponent","LabelDirective","MatSelectModule","MatSelect","MatOption","TranslateModule","TranslatePipe","ReactiveFormsModule","NgControlStatus","FormControlDirective","AsyncPipe","NgForOf","NgIf","GalaxyEmptyStateModule","EmptyStateComponent","EmptyStateHeroDirective","EmptyStateTitleDirective","MatButtonModule","MatIconModule","MatIcon","styles","VariableMenuService","buildVariables","partnerId","marketId","filters","textKey","subItems$","filterAllSubstitionParametersToSupportedReplacementTags","settings","requiredParams","pipe","map","subItems","length","marketplacePackagesService","getAllActivatableApps","shareReplay","apps","app","replacementTag","appId","name","SALESPERSON_CUSTOM_DATA","BUSINESS_CUSTOM_DATA","menuItems","menuItem","schemaService","listFieldSchemas","response","fieldSchemas","schema","fieldName","fieldId","constructor","templatesService","allSubstitutionParameters$","listSubstitutionParameters","includeHtml","getVariables","extraMenuItems","variablesFromCategories","v","dontIncludeDefaultCategories","concat","variableMenuItemFromSubstitutionParameter","s","displayName","supportedReplacementTags","params","filter","p","isHtml","some","t","sort","a","b","indexOf","ɵɵinject","TemplatesService","MarketplaceAppService","SchemaService","factory","ɵfac","providedIn","ɵɵelementContainerStart","ɵɵelementStart","ɵɵlistener","$event","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","variableMenuItemSelected","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","variables_r3","ɵɵpipeBind1","SALESPERSON_CUSTOM_DATA","BUSINESS_CUSTOM_DATA","VariableMenuDialogComponent","constructor","variableMenuService","route","cookieService","emitEventsInsteadOfTakingAction","partnerId","marketId","isOrderAutomation","extraMenuItems","supportedSubstitutionOptions","dontIncludeDefaultCategories","formResult","EventEmitter","chosenVariableMenutItem","includeHtml$","queryParamMap","pipe","map","params","get","partnerId$","marketId$","extraMenuItems$","cookieId","payload","convertNonObservablesSubItemsToObservables","JSON","parse","variables$","combineLatest","includeHtml","getVariables","forRequiredOptions","vars","filter","v","settings","requiredParams","reduce","prev","curr","i","arr","shareReplay","toConvert","item","subItems$","of","add","content","shouldNotSurroundWithCurlyBraces","replacementTag","emit","window","parent","postMessage","mceAction","close","variableMenuItem","ɵɵdirectiveInject","VariableMenuService","ActivatedRoute","CookieService","selectors","inputs","outputs","decls","consts","template","rf","ctx","ɵɵtemplate","VariableMenuDialogComponent_ng_container_2_Template","ɵɵtext","ɵɵtextInterpolate1","VariableMenuItemSelectorComponent","AsyncPipe","TranslateModule","TranslatePipe","MatButtonModule","MatButton","NgIf","styles","AccessPartnerAdminViewGuard","constructor","accessService","inject","StubAccessService","router","Router","canActivate","hasAccessToViews","pipe","map","response","get","createUrlTree","factory","ɵfac","providedIn","InboxModalGuard","constructor","router","inboxNav","canActivate","route","_state","__async","navigate","then","gotoConversationID","params","ɵɵinject","Router","InboxNavigationService","factory","ɵfac","GeneralSalespeoplePages","TRAINING_RESOURCES_PAGE_ROUTES","PRODUCTS_LIST","PRODUCT","SalespeopleGuard","constructor","access","configService","router","canActivate","route","state","hasSalespersonAccess$","hasAccessToViews","pipe","map","response","get","partnerAccessCheck$","config$","config","userCanAccessSales","includes","url","combineLatest","hasSalesperson","hasPartner","hasAccess","createUrlTree","ɵɵinject","StubAccessService","AppConfigService","Router","factory","ɵfac","providedIn","CompanyProfileApiService","constructor","apiService","updateUrl","updatePartnerMailingAddress","partner","post","ɵɵinject","ApiService","factory","ɵfac","providedIn","ɵɵelement","ɵɵproperty","ctx_r1","updateCompanyFormGroup","controls","ɵɵpipeBind1","countryOptions$","stateProvOptions$$","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵtemplate","CompanyProfileComponent_mat_card_content_11_glxy_select_input_14_Template","CompanyProfileComponent_mat_card_content_11_glxy_select_input_18_Template","ɵɵadvance","company_name","phone_number","website_address","email_address","ɵɵtextInterpolate1","tmp_17_0","length","tmp_23_0","ɵɵelementContainerStart","CompanyProfileComponent","constructor","partnerId$","companyProfileService","translate","snackbarService","partnerService","configService","addressService","hasMailingInformation","isUpdatingProfile","loading","subscriptions","BehaviorSubject","onDestroy","Subject","ngOnInit","push","pipe","switchMap","pid","partnerId","getPartnerByPartnerId","subscribe","partner","partnerName","name","loadCompanyProfileData","partnerMailingAddressInfo$","partnerMailingInformation$","tap","partnerMailingAddress","setUpForm","listAllCountryOptions","take","map","countries","sort","a","b","nameA","toUpperCase","nameB","country","value","code","label","publishReplay","refCount","updateStateProvWithCountry","state","valueChanges","takeUntil","filter","distinctUntilChanged","setCountry","getCountryConfiguration","undefined","countryConfig","zones","zone","catchError","stateProvs","next","findIndex","sp","setControl","UntypedFormControl","updateCompanyProfile","invalid","errorSnack","instant","valid","companyProfileFormValues","mailingCompanyName","mailingAddress","address","mailingAddress2","additionalAddressLine","mailingCity","city","mailingState","stateProv","mailingCountry","mailingPostalCode","postalCode","mailingPhoneNumber","mailingWebsiteAddress","mailingEmailAddress","updatePartnerMailingAddress","success","window","setTimeout","forceLoadCompanyProfileData","load","successSnack","ngOnDestroy","forEach","subscription","unsubscribe","complete","UntypedFormGroup","config","Validators","required","mailing_phone_number","mailing_website_address","mailing_email_address","mailing_country","mailing_address","mailing_address_2","mailing_city","mailing_postal_code","mailing_state","ɵɵdirectiveInject","CompanyProfileService","TranslateService","SnackbarService","PartnerService","AppConfigService","AddressAPIService","selectors","standalone","decls","vars","consts","template","rf","ctx","CompanyProfileComponent_mat_card_content_11_Template","CompanyProfileComponent_ng_template_13_Template","ɵɵtemplateRefExtractor","ɵɵlistener","i0","ɵɵrestoreView","_r1","ɵɵresetView","CompanyProfileComponent_ng_container_17_Template","CompanyProfileComponent_ng_template_18_Template","loadingPage_r3","loadingSpinner_r4","PartnerModule","CompanyProfileService","CompanyProfileApiService","imports","MatCardModule","MatInputModule","MatButtonModule","MatCheckboxModule","MatTooltipModule","CommonModule","ReactiveFormsModule","MatRadioModule","MatOptionModule","MatSelectModule","MatProgressSpinnerModule","MatIconModule","RouterModule","GalaxyPageModule","TranslateModule","LexiconModule","forChild","componentName","WEBLATE_COMPONENT_NAME","baseTranslation","GalaxyWrapModule","AddressFormModule","GalaxyInputModule","CustomizeExecReportService","constructor","execReportSDK","snackbarService","partnerService","enabledCategories$$","ReplaySubject","isSavingCategories$$","BehaviorSubject","getEnabledExecReportCategories","partnerId","marketId","getReportConfig","subscribe","data","next","enabledCategories","setConfigReportCategories","newCategories","market","userHasWritePermissions","config","ReportConfig","saveReportConfig","successSnack","errorSnack","enabledCategories$","asObservable","isSavingCategories$","CanCustomizeWhitelabel","MarketAccess","length","some","id","ɵɵinject","ExecutiveReportService","SnackbarService","PartnerService","factory","ɵfac","providedIn","ɵɵelement","ɵɵelementContainerStart","ɵɵelementStart","ɵɵlistener","$event","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","dragEnter","dragStart","dragEnd","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","ɵɵtextInterpolate1","ɵɵpipeBind1","_r3","_r4","_r5","_r6","_r7","_r8","ɵɵtemplate","CustomizeExecReportComponent_div_1_ng_container_4_ng_container_1_Template","CustomizeExecReportComponent_div_1_ng_container_4_ng_container_2_Template","CustomizeExecReportComponent_div_1_ng_container_4_ng_container_3_Template","CustomizeExecReportComponent_div_1_ng_container_4_ng_container_4_Template","CustomizeExecReportComponent_div_1_ng_container_4_ng_container_5_Template","CustomizeExecReportComponent_div_1_ng_container_4_ng_container_6_Template","CustomizeExecReportComponent_div_1_ng_container_4_ng_container_7_Template","category_r9","categoriesEnum","LISTINGS","REPUTATION","WEBSITE","SOCIAL","ADVERTISING","SEO","CONTENT_AND_EXPERIENCE","CustomizeExecReportComponent_div_1_ng_container_6_ng_container_1_Template","CustomizeExecReportComponent_div_1_ng_container_6_ng_container_2_Template","CustomizeExecReportComponent_div_1_ng_container_6_ng_container_3_Template","CustomizeExecReportComponent_div_1_ng_container_6_ng_container_4_Template","CustomizeExecReportComponent_div_1_ng_container_6_ng_container_5_Template","CustomizeExecReportComponent_div_1_ng_container_6_ng_container_6_Template","CustomizeExecReportComponent_div_1_ng_container_6_ng_container_7_Template","category_r10","CustomizeExecReportComponent_div_1_mat_progress_bar_2_Template","CustomizeExecReportComponent_div_1_ng_container_4_Template","CustomizeExecReportComponent_div_1_ng_container_6_Template","isReordering$","categoryOrder_r11","CustomizeExecReportComponent","constructor","execReportService","partnerService","partnerId$","route","Observable","Category","ngOnInit","combineLatest","params","pipe","map","partnerId","marketId","getEnabledExecReportCategories","subscribe","categoryOrder$","enabledCategories$","isSavingCategories$","breadcrumbs","buildBreadcrumbs","baseUrl","baseBack2Message","url","text","isBefore","a","b","parentNode","cur","previousSibling","target","currentTarget","navSectionElement","insertBefore","nextSibling","dataTransfer","effectAllowed","categories","Array","from","childNodes","filter","child","nodeType","x","dataset","category","setConfigReportCategories","ɵɵdirectiveInject","CustomizeExecReportService","PartnerService","ActivatedRoute","selectors","standalone","decls","vars","consts","template","rf","ctx","CustomizeExecReportComponent_div_1_Template","CustomizeExecReportComponent_ng_template_3_Template","ɵɵtemplateRefExtractor","isLoading_r12","PreviewEmailDialogComponent","constructor","data","dialogRef","templatesService","brandingService","sanitizer","ngOnInit","renderedTemplate$","getBranding","partnerId","marketId","pipe","switchMap","branding","renderTemplate","templateId","_link","_heading","heading","_body","body","replace","_button","button","_branding","name","primary_color","primaryColor","logo_url","logoUrl","map","renderedTemplate","sanitize","SecurityContext","HTML","bypassSecurityTrustHtml","take","ɵɵdirectiveInject","MAT_DIALOG_DATA","MatDialogRef","TemplatesService","BrandingV2Service","DomSanitizer","selectors","standalone","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵelement","ɵɵadvance","ɵɵtextInterpolate1","ɵɵpipeBind1","ɵɵproperty","ɵɵelementContainerStart","ɵɵtext","ɵɵadvance","ɵɵtextInterpolate","name_r1","AutomationNameDisplayComponent","constructor","automataService","ngOnInit","automationId","name$","getAutomation","pipe","take","map","auto","name","ɵɵdirectiveInject","AutomataService","selectors","inputs","standalone","decls","vars","consts","template","rf","ctx","ɵɵtemplate","AutomationNameDisplayComponent_ng_container_0_Template","ɵɵproperty","ɵɵpipeBind1","OrderFormField","constructor","i","label","id","type","options","optionsWithLabels","description","required","uploadUrl","prefix","suffix","regexValidator","regexErrorMessage","forOfficeUseOnly","officeEditableOnly","allowDuplicates","allowMultiples","maxChoices","WorkflowStepOptions","allowSendDirectToAdmin","allowSendToCustomer","maintainTermsAndConditionsAgreement","customSalespersonActions","map","a","automationId","allowOrderFormEditing","allowCollectPaymentFromCustomer","canChargeSmbOnOrderSubmission","SalespersonOptions","salespersonInterface","validateRequiredFields","disableSellingStandaloneProducts","disableTagging","TaxOption","taxOptionInterface","percentageMultiplier","toFixed","CustomerOptions","customerInterface","allowCustomerInitiatedOrders","TermsOfService","text","termsOfServiceUrl","linkTitle","TermsOfServiceOptions","hideDefaultTermsOfService","termsOfService","tos","EmailContent","subject","heading","body","button","EmailCustomContent","contractAwaitingApproval","orderProcessed","orderDeclined","EmailOptions","emailCustomContent","OrderConfig","partnerId","marketId","defaultNotesContent","extraFields","x","workflowStepOptions","salespersonOptions","taxOptions","customerOptions","customerTermsOfServiceOptions","emailOptions","RestoreWarningDialogComponent","constructor","dialogRef","continueRestore","close","ɵɵdirectiveInject","MatDialogRef","selectors","standalone","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵlistener","ɵɵadvance","ɵɵtextInterpolate1","ɵɵpipeBind1","OrderSetupService","constructor","partnerSalesService","saveOrderConfigState","ObservableWorkStateMap","getOrderConfigState","convertBoolToSetting","value","SalesSetting","SALES_SETTING_ENABLED","SALES_SETTING_DISABLED","constructWorkStateMapId","partnerId","marketId","saveSalesOrderConfig","newConfig","ID","configInputs","convertConfigToSetSalesConfigInput","startWork","setConfiguration","getSalesOrderConfig","getConfiguration","pipe","map","resp","config","getSalesOrderConfigWorkResults","getWorkResults$","isGetOrderConfigReady","combineLatest","isLoading$","isSuccess$","isLoading","isSuccess","isSaveOrderConfigLoading","isSaveOrderConfigSuccessful","successEvent$","getConfig","inputInterface","hideProducts","hideRmDemo","hideOrders","stTeamActivity","stAllowSalespersonCampaignAdd","stShowProductsWholesalePrice","stShowTrainingResourcesField","stSalespersonSharedAccountAccess","stDefaultDisplayCurrency","stEnableSnapshotsPerSalespersonLimit","stSnapshotsPerSalespersonLimit","stBusinessCenterAccess","ɵɵinject","PartnerSalesService","factory","ɵfac","providedIn","ɵɵelementContainerStart","ɵɵelementStart","ɵɵelement","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","ɵɵlistener","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","saveConfig","ɵɵtext","ɵɵtextInterpolate1","ɵɵpipeBind1","ɵɵtemplate","OrderSetupComponent_div_0_ng_container_9_Template","OrderSetupComponent_div_0_ng_template_11_Template","ɵɵtemplateRefExtractor","configForm","saveConfigIsLoading$","submitButton_r3","OrderSetupComponent","constructor","orderSetupService","partnerService","route","snackbarService","translate","orderConfig$$","ReplaySubject","partnerAndMarketId$$","subscriptions","SubscriptionList","new","partnerId$","getPartnerId","marketId$","params","pipe","map","p","marketId","nextPartnerAndMarketId$","combineLatest","add","partnerId","partnerAndMarketId","next","setupGetOrderConfigs","setupSaveOrderConfigs","UntypedFormGroup","orderSetupConfig","hideSalesOrders","UntypedFormControl","config","get","setValue","hideOrders","ngOnDestroy","destroy","switchMap","ids","isSaveOrderConfigLoading","saveSuccessful$","isSaveOrderConfigSuccessful","addSaveStateSubscription","getConfigIsReady$","isGetOrderConfigReady","getSalesOrderConfig$","tap","getSalesOrderConfig","getSalesOrderConfigWorkResults","currentConfig$","take","updateConfigWithFormValueAndSave","value","saveSalesOrderConfig","isSuccessful","successSnack","instant","errorSnack","ɵɵdirectiveInject","OrderSetupService","PartnerService","ActivatedRoute","SnackbarService","TranslateService","selectors","standalone","decls","vars","consts","template","rf","ctx","OrderSetupComponent_div_0_Template","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","ctx_r1","configForm","get","value","ɵɵtextInterpolate1","ɵɵpipeBind1","ɵɵelementContainerStart","ɵɵelement","customAction_r4","ɵɵlistener","ɵɵrestoreView","_r5","ɵɵnextContext","$implicit","ɵɵresetView","chooseAutomation","ɵɵtemplate","OrderConfigComponent_div_14_div_50_ng_container_4_ng_container_5_Template","OrderConfigComponent_div_14_div_50_ng_container_4_ng_container_6_Template","i_r6","_r3","index","removeCustomAutomationAction","_r7","addCustomAutomationAction","OrderConfigComponent_div_14_div_50_ng_container_4_Template","OrderConfigComponent_div_14_div_50_ng_container_5_Template","getCustomAutomationActionsArray","controls","tmp_9_0","length","extraFieldGroup_r10","labelControl","OrderConfigComponent_div_14_ng_container_73_mat_expansion_panel_2_div_5_span_5_Template","typeControl","name","OrderConfigComponent_div_14_ng_container_73_mat_expansion_panel_2_div_5_Template","OrderConfigComponent_div_14_ng_container_73_mat_expansion_panel_2_ng_template_6_Template","ɵɵtemplateRefExtractor","i_r11","_r9","removeExtraFieldsFormField","noFieldTypeYet_r12","supportedFiledTypes","$event","_r8","onDrop","OrderConfigComponent_div_14_ng_container_73_mat_expansion_panel_2_Template","getExtraFieldsArray","i_r14","_r13","removeTermsOfServiceFormField","handleFileUploadError","ɵɵpropertyInterpolate","uploadUrl","tos_r15","OrderConfigComponent_div_14_ng_container_90_div_1_Template","getTermsOfServiceArray","formGroup_r16","ɵɵtextInterpolate","_r18","restore","OrderConfigComponent_div_14_ng_container_145_ng_container_1_button_1_Template","config_r19","marketId","OrderConfigComponent_div_14_ng_container_145_ng_container_1_Template","_r17","submit","config$","_r1","toggleCollectPaymentFromCustomers","checked","OrderConfigComponent_div_14_div_47_Template","OrderConfigComponent_div_14_mat_error_49_Template","OrderConfigComponent_div_14_div_50_Template","OrderConfigComponent_div_14_ng_container_73_Template","addExtraFieldsFormField","OrderConfigComponent_div_14_ng_container_90_Template","addTermsOfServiceFormField","OrderConfigComponent_div_14_ng_template_94_Template","OrderConfigComponent_div_14_ng_template_114_Template","previewEmail","OrderConfigComponent_div_14_ng_template_126_Template","OrderConfigComponent_div_14_ng_template_138_Template","OrderConfigComponent_div_14_ng_template_142_Template","OrderConfigComponent_div_14_ng_container_145_Template","salespersonAcceptsPayment$","errors","customSalespersonActions$","firstField_r22","noToS_r20","emailContentForm_r21","ɵɵpureFunction1","_c0","saving","getSalesToolHost","env","Environment","DEMO","PROD","setInitialValuesForEmailContent","group","content","setValue","subject","heading","body","button","OrderConfigComponent","constructor","salesOrdersService","snackbarService","partnerService","_route","environmentService","feature","translate","dialog","markets$","loading","uploadPath","FORM_FIELDS","filter","f","id","BUSINESS_USER","validateWorkflowStepOptions","formGroup","allowSendDirectToAdmins","allowSendToCustomers","allowOrderFormEditing","customAutomationActions","noStepsSelected","createCustomAutomationActionFormGroup","customAction","UntypedFormGroup","label","UntypedFormControl","Validators","required","automationId","ngOnInit","getEnvironment","partnerId","defaultNotesContent","extraFields","UntypedFormArray","termsOfServiceFormControl","workflowStepConfig","canChargeSmbOnOrderSubmission","allowCollectPaymentFromCustomers","maintainTermsAndConditionsAgreement","salespersonOptions","validateRequiredFields","disableSellingStandaloneProducts","disableTagging","customerOptions","allowCustomerInitiatedOrders","customerTermsOfServiceOptions","hideDefaultTermsOfService","termsOfService","emailOptions","contractAwaitingApproval","orderProcessed","orderDeclined","marketId$","params","pipe","map","p","Object","prototype","hasOwnProperty","call","take","shareReplay","bufferSize","refCount","switchMap","market","checkFeatureFlag","FeatureFlags","CUSTOM_SALESPERSON_ACTIONS","SALESPERSON_ORDER_APPROVAL_ACCEPTS_PAYMENT","tap","_","getConfig","c","OrderConfig","subscribe","push","FieldBuilderComponent","createOrderFormFieldGroup","termsOfServiceUrl","url","workflowStepOptions","allowSendDirectToAdmin","allowSendToCustomer","allowCollectPaymentFromCustomer","customSalespersonActions","a","emailCustomContent","tos","createTermsOfService","invalid","data","dirty","orderFormFieldFormComponents","component","getFormValues","tosValue","validateAllowCollectPaymentFromCustomer","control","fg","text","linkTitle","updateConfig","successSnack","instant","errorSnack","delete","deleteConfig","open","RestoreWarningDialogComponent","maxWidth","afterClosed","r","templateId","formGroupName","emailContent","PreviewEmailDialogComponent","minWidth","event","ctrls","tmp","previousIndex","currentIndex","OrderFormField","StartManualAutomationDialogComponent","namespace","entityType","EntityType","ENTITY_TYPE_ORDER","context","Context","AUTOMATION_CONTEXT_PARTNER","options","onlySelectDontStart","hideSettingsLink","onlySalespersonAutomations","warnings","res","removeAt","t","_err","ɵɵdirectiveInject","SalesOrdersService","SnackbarService","PartnerService","ActivatedRoute","EnvironmentService","FeatureFlagService","TranslateService","MatDialog","selectors","viewQuery","rf","ctx","OrderConfigComponent_div_14_Template","OrderConfigComponent_ng_template_15_Template","OrderConfigComponent_ng_template_17_Template","loadingConfig_r23","ɵɵelementStart","ɵɵelement","ɵɵelementEnd","ɵɵadvance","ɵɵpropertyInterpolate","ctx_r0","translatedData","inputLabel","Action","DeclinedReasonDialogComponent","constructor","dialogRef","data","fb","declinedReasonsService","translateService","snackbarService","saving$$","BehaviorSubject","action","ngOnInit","formGroup","group","reason","UntypedFormControl","Validators","required","ADD","pageTitle","instant","saveButton","info","sucessMessage","errorMessage","EDIT","ARCHIVE","save","next","method","create","partnerId","controls","value","update","id","archive","pipe","take","finalize","subscribe","successSnack","close","errorSnack","displayInput","ɵɵdirectiveInject","MatDialogRef","MAT_DIALOG_DATA","UntypedFormBuilder","DeclinedReasonService","TranslateService","SnackbarService","selectors","standalone","decls","vars","consts","template","rf","ctx","ɵɵtext","ɵɵtemplate","DeclinedReasonDialogComponent_glxy_form_field_5_Template","ɵɵlistener","ɵɵtextInterpolate1","ɵɵproperty","ɵɵsanitizeHtml","ɵɵpipeBind1","valid","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","openActionDialog","action","ADD","ɵɵtext","ɵɵelementEnd","ɵɵproperty","ɵɵpipeBind1","loading$","ɵɵadvance","ɵɵtextInterpolate1","ɵɵelement","ɵɵelementContainerStart","r_r4","_r3","$implicit","EDIT","ARCHIVE","ɵɵtemplate","OrderDeclineReasonsConfigComponent_glxy_page_wrapper_12_ng_container_1_ng_container_9_mat_divider_12_Template","reason","last_r5","OrderDeclineReasonsConfigComponent_glxy_page_wrapper_12_ng_container_1_ng_container_9_Template","declineReasons$","OrderDeclineReasonsConfigComponent_glxy_page_wrapper_12_ng_container_1_Template","tmp_3_0","length","emptyState_r6","OrderDeclineReasonsConfigComponent_ng_template_15_p_6_Template","_r7","getImageSrc","ɵɵsanitizeUrl","error$","OrderDeclineReasonsConfigComponent","constructor","partnerId$","declinedReasonsService","snackbarService","translateService","dialog","loading$$","BehaviorSubject","asObservable","error$$","reload$$","Subject","Action","ngOnInit","reload$","pipe","startWith","combineLatest","tap","next","switchMap","partnerId","_","list","includeArchived","catchError","openErrorSnack","instant","of","shareReplay","take","dialogData","open","DeclinedReasonDialogComponent","width","data","afterClosed","subscribe","isSuccess","ɵɵdirectiveInject","PARTNER_ID_INJECTION_TOKEN","DeclinedReasonService","SnackbarService","TranslateService","MatDialog","selectors","standalone","decls","vars","consts","template","rf","ctx","OrderDeclineReasonsConfigComponent_button_10_Template","OrderDeclineReasonsConfigComponent_glxy_page_wrapper_12_Template","OrderDeclineReasonsConfigComponent_ng_template_15_Template","ɵɵtemplateRefExtractor","tmp_5_0","SalesOrdersDeclineReasonsModule","CommonModule","MatCardModule","MatListModule","MatIconModule","MatInputModule","MatFormFieldModule","MatButtonModule","MatDialogModule","FormsModule","ReactiveFormsModule","TranslateModule","GalaxyPageModule","GalaxyEmptyStateModule","GalaxyFormFieldModule","GalaxyAlertModule","CustomizeDesignModule","CustomizeExecReportService","OrderSetupService","imports","CommonModule","StencilsModule","MatSidenavModule","MatCardModule","MatListModule","MatIconModule","MatProgressBarModule","PartnerModule","MatInputModule","MatFormFieldModule","FormsModule","ReactiveFormsModule","MatButtonModule","MatProgressSpinnerModule","MatTooltipModule","MatExpansionModule","VaOrderFormModule","DragDropModule","VaFormsModule","MatCheckboxModule","MatDialogModule","MatSelectModule","TranslateModule","VFormModule","ColorPickerModule","MatRadioModule","MatTableModule","RouterModule","VaMaterialTableModule","GalaxyPipesModule","GalaxyPageModule","GalaxyInputModule","GalaxyAlertModule","GalaxyUploaderModule","GalaxyButtonGroupModule","GalaxyEmailViewerModule","MatButtonToggleModule","SalesOrdersDeclineReasonsModule","VaImageUploaderComponent","PageComponent","GalaxyFormFieldModule","ɵɵelementContainerStart","ɵɵelementStart","ɵɵelement","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","ɵɵtext","ɵɵlistener","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","save","$event","stageDataForSaving","stageRawHtmlForSaving","setHtmlRendering","result_r3","status","htmlRendering","value","ALL_ADVANCED_SECTIONS_ENABLED","dynamicComponents","ɵɵtemplate","EmailBuilderSandboxComponent_ng_container_0_ng_container_2_Template","EmailBuilderSandboxComponent_ng_container_0_ng_container_3_Template","EmailBuilderSandboxComponent_ng_container_0_ng_container_4_Template","EmailBuilderSandboxComponent","constructor","route","dataSvc","isNew","templateId","undefined","templateData$","EMPTY","ngOnInit","snapshot","queryParams","loadTemplate$","OwnerType","OWNER_TYPE_PARTNER","AppNamespace","DEV_SANDBOX","Date","toISOString","console","log","of","emailSetup","topLogo","emptyTopLogo","colors","emptyColors","pageSetup","collapsed","footer","emailContentBlocks","dataForSaving","rawHtmlForSaving","Error","sendCreateRequest","sendUpdateRequest","updateExistingTemplate$","subscribe","createNewTemplate$","ɵɵdirectiveInject","ActivatedRoute","EmailBuilderDataService","DYNAMIC_COMPONENT_DATA_TOKEN","selectors","standalone","decls","vars","consts","template","rf","ctx","EmailBuilderSandboxComponent_ng_container_0_Template","ɵɵpipeBind1","EmailBuilderSandboxComponentModule","EmailBuilderModule","GalaxyPipesModule","CommonModule","GalaxyLoadingSpinnerModule","GalaxyAlertModule","GalaxyPageModule","MatButtonModule","TranslateModule","DomainCacheService","constructor","sdk","responses","Map","listAllDomains","senderType","senderID","key","buildCacheKey","cachedResponse","get","b","BehaviorSubject","set","pipe","shareReplay","subscribe","r","next","asObservable","skipWhile","a","refreshDomains","take","createPendingDomain","domain","tap","deletePendingDomain","toString","ɵɵinject","DomainService","factory","ɵfac","SETUP_HELP_INFO_URL_INJECTION_TOKEN","InjectionToken","ɵɵelementContainerStart","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","DomainStatusIconComponent","selectors","inputs","result","standalone","decls","vars","consts","template","rf","ctx","ɵɵtemplate","DomainStatusIconComponent_ng_container_1_Template","DomainStatusIconComponent_ng_container_2_Template","ɵɵproperty","allRecordsMatch","ɵɵadvance","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate","ɵɵpipeBind1","ɵɵelementContainer","ɵɵproperty","highlight_r2","ɵɵpureFunction1","_c1","row_r1","ɵɵelementContainerStart","ɵɵtemplate","DomainRecordsTableComponent_ng_container_0_ng_container_13_td_5_Template","td_r4","_c0","recordType","recordHost","recordValue","ctx_r2","showMismatches","DomainRecordsTableComponent_ng_container_0_td_12_Template","DomainRecordsTableComponent_ng_container_0_ng_container_13_Template","expectedRecords","ɵɵclassMap","row_r5","DomainRecordsTableComponent_ng_container_2_ng_container_1_tr_18_Template","DomainRecordsTableComponent_ng_container_2_ng_container_1_Template","ɵɵlistener","cellText_r7","ɵɵrestoreView","_r6","cellText","ɵɵnextContext","ɵɵresetView","copyValue","row_r8","recordValueMatchPrefix","ɵɵtextInterpolate1","recordValueMismatchPortion","recordValueMatchSuffix","DomainRecordsTableComponent_ng_template_6_ng_container_0_Template","DomainRecordsTableComponent_ng_template_6_ng_container_1_Template","ToTableRowClassPipe","transform","value","row","length","pure","standalone","splitOnce","s","on","first","rest","split","join","DomainRecordsTableComponent","mismatchedRecords","v","undefined","map","er","mismatch","find","vr","url","__spreadProps","__spreadValues","matchedPrefix","findMismatchedPortion","matchedSuffix","cd","markForCheck","withPrefixRemoved","actualValue","constructor","element","clipboard","snackbar","mobileMaxWidth","isContainerLarge$$","ReplaySubject","isContainerLarge$","asObservable","pipe","distinctUntilChanged","tap","detectChanges","ResizeObserver","entries","entry","target","nativeElement","isLarge","contentRect","width","next","observe","copy","openSuccessSnack","ɵɵdirectiveInject","ElementRef","ChangeDetectorRef","Clipboard","SnackbarService","selectors","inputs","decls","vars","consts","template","rf","ctx","DomainRecordsTableComponent_ng_container_0_Template","DomainRecordsTableComponent_ng_container_2_Template","DomainRecordsTableComponent_ng_template_4_Template","ɵɵtemplateRefExtractor","DomainRecordsTableComponent_ng_template_6_Template","styles","ɵɵelementContainerStart","ɵɵelement","ɵɵadvance","ɵɵproperty","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","result_r1","value","ɵɵtextInterpolate1","ɵɵpipeBind1","ɵɵlistener","ɵɵrestoreView","_r2","ctx_r2","ɵɵnextContext","ɵɵresetView","runValidation","ɵɵelementContainer","errorNotice_r4","ɵɵtemplate","DomainInfoCardComponent_ng_container_0_ng_container_14_ng_container_1_Template","allRecordsMatch","ɵɵtextInterpolate","ɵɵpureFunction1","_c1","targetA","mismatches","targetCNAME","_r5","useAsDefaultRequested","emit","domain","sendFromDomain","status","_r6","_r7","deleteRequested","deleteInProgress","DomainInfoCardComponent_ng_container_0_ng_container_4_Template","DomainInfoCardComponent_ng_container_0_ng_container_5_Template","DomainInfoCardComponent_ng_container_0_ng_container_6_Template","DomainInfoCardComponent_ng_container_0_ng_container_9_Template","DomainInfoCardComponent_ng_container_0_ng_container_12_Template","DomainInfoCardComponent_ng_container_0_ng_container_13_Template","DomainInfoCardComponent_ng_container_0_ng_container_14_Template","DomainInfoCardComponent_ng_container_0_ng_container_25_Template","DomainInfoCardComponent_ng_container_0_ng_container_26_Template","DomainInfoCardComponent_ng_container_0_ng_container_37_Template","DomainInfoCardComponent_ng_container_0_ng_container_38_Template","DomainInfoCardComponent_ng_container_0_ng_container_39_Template","expanded","isPrimary","targetDmarc","targetSpf","targetDKIMs","_c2","showShadow","showDeleteButton","_r8","openHelpArticle","DomainInfoCardComponent","senderId","v","inputs$$","next","_senderId","_domain","recordType","recordHost","recordValue","targets","dmarcSubdomain","dmarcValue","mailSubdomain","mailValue","dkim1Subdomain","dkim1Value","dkim2Subdomain","dkim2Value","constructor","sdk","alerts","helpArticleURL","ReplaySubject","domainResult$","EMPTY","EventEmitter","dialog","inject","MatDialog","ngOnInit","initialLoad","runPrimaryDomainValidation","runPendingDomainValidation","request$","verifyDefaultDomain","senderType","senderID","runGenericValidation","verifyPendingDomain","pipe","tap","openSuccessSnack","openErrorSnack","catchError","err","throwError","map","delay","window","open","helpModal","ɵɵdirectiveInject","DomainService","SnackbarService","SETUP_HELP_INFO_URL_INJECTION_TOKEN","selectors","viewQuery","rf","ctx","DomainInfoCardComponent_ng_container_0_Template","DomainInfoCardComponent_ng_template_3_Template","ɵɵtemplateRefExtractor","DomainInfoCardComponent_ng_template_5_Template","CanAddDomainPipe","constructor","defaultDomainService","transform","value","senderType","getDefaultDomain$","pipe","map","defaultDomain","filter","d","sendFromDomain","isPrimary","some","isPending","of","ɵɵdirectiveInject","DefaultDomainService","pure","standalone","ɵɵelementContainerStart","ɵɵelementStart","ɵɵlistener","$event","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","useAsDefaultRequested","emit","deleteRequested","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","senderId","domain_r3","deleteInProgress","_r4","handleAuthorizeClick","ɵɵtext","ɵɵtextInterpolate","ɵɵpipeBind1","ɵɵtemplate","DomainsComponent_ng_container_0_ng_container_1_Template","DomainsComponent_ng_container_0_div_2_Template","domains","ɵɵpipeBind2","senderType","_r5","ɵɵtextInterpolate1","DomainsComponent_ng_template_1_glxy_empty_state_0_Template","showEmpty","DomainsComponent","constructor","EventEmitter","authorizeRequested","__async","scrollToDomain","domain","domainInfoCards","filter","c","sendFromDomain","forEach","card","expanded","window","setTimeout","document","getElementById","scrollIntoView","behavior","selectors","viewQuery","rf","ctx","DomainInfoCardComponent","DomainsComponent_ng_container_0_Template","DomainsComponent_ng_template_1_Template","ɵɵtemplateRefExtractor","length","empty_r6","ɵɵelementContainerStart","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate","ɵɵpipeBind1","NewDomainDialogComponent","constructor","data","dialog","domainService","alerts","senderForm","UntypedFormGroup","senderDomain","UntypedFormControl","Validators","required","pattern","authorizedDomain$","of","authorize","domain","get","value","createPendingDomain","senderID","senderType","pipe","shareReplay","refCount","bufferSize","catchError","openErrorSnack","tap","close","newPendingDomain","undefined","submitForm","markAsDirty","valid","ɵɵdirectiveInject","MAT_DIALOG_DATA","MatDialogRef","DomainCacheService","SnackbarService","selectors","standalone","decls","vars","consts","template","rf","ctx","ɵɵtemplate","NewDomainDialogComponent_ng_container_0_Template","ɵɵlistener","ɵɵelement","ɵɵproperty","ɵɵtextInterpolate1","status","UNSAVED_DATA_HANDLER_TOKEN","SavedState","EmailValidators","emailUsername","Validators","pattern","emailDomain","fullEmailAddress","ɵɵelementContainerStart","ɵɵelement","ɵɵadvance","ɵɵproperty","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵlistener","ɵɵrestoreView","_r1","result_r2","ɵɵnextContext","ngIf","ctx_r2","ɵɵresetView","handleClick","value","ɵɵtextInterpolate1","domain","sendFromDomain","ɵɵtemplate","DomainStatusAndNameComponent_ng_container_0_ng_container_2_Template","DomainStatusAndNameComponent_ng_container_0_ng_container_3_Template","DomainStatusAndNameComponent_ng_container_0_ng_container_4_Template","status","DomainStatusAndNameComponent","data","sender","isPrimary","verifyResult$","sdk","verifyDefaultDomain","type","id","verifyPendingDomain","constructor","dialog","EMPTY","domainChangeRequested","EventEmitter","invalidDomainChangeRequested","clicked","result","emit","allRecordsMatch","ɵɵdirectiveInject","DomainService","MatDialog","selectors","inputs","outputs","standalone","decls","vars","consts","template","rf","ctx","DomainStatusAndNameComponent_ng_container_0_Template","ɵɵpipeBind1","ɵɵelementContainerStart","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","self","close","$event","handleDomainChangeRequested","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","ɵɵpureFunction2","_c0","data_r3","domain","sender","ɵɵtemplate","DomainsDialogComponent_ng_container_4_ng_container_1_ng_container_2_Template","data_r4","value","ɵɵelement","ɵɵelementContainer","DomainsDialogComponent_ng_container_4_ng_container_3_ng_container_1_Template","error_r5","ɵɵtext","ɵɵtextInterpolate","ɵɵpipeBind1","error","DomainsDialogComponent_ng_container_4_ng_container_1_Template","DomainsDialogComponent_ng_container_4_ng_container_2_Template","DomainsDialogComponent_ng_container_4_ng_container_3_Template","DomainsDialogComponent_ng_container_4_ng_template_4_Template","ɵɵtemplateRefExtractor","status","_r6","handleNewDomainRequested","ɵɵtextInterpolate1","DomainsDialogComponent","constructor","domainService","allDomains$","EMPTY","refreshDomains","id","type","SenderType","SENDER_TYPE_INVALID","listAllDomains","pipe","map","v","convertListResponseToButtonData","isValidDomain","newDomain","choiceType","ɵɵdirectiveInject","DomainCacheService","MAT_DIALOG_DATA","MatDialogRef","selectors","standalone","decls","vars","consts","template","rf","ctx","DomainsDialogComponent_ng_container_4_Template","DomainsDialogComponent_div_8_Template","tmp_2_0","length","response","domains","EmailForwardingInfoComponent","selectors","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵelement","ɵɵadvance","ɵɵtextInterpolate","ɵɵpipeBind1","ɵɵproperty","ɵɵsanitizeHtml","ɵɵtextInterpolate1","CommonModule","MatDialogModule","MatDialogClose","MatDialogTitle","MatDialogActions","MatDialogContent","MatButtonModule","MatButton","TranslateModule","TranslatePipe","styles","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate1","ɵɵpipeBind1","ɵɵlistener","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","changeDomain","ɵɵproperty","EmailUsernameInputComponent","constructor","dialog","defaultDomainService","authorizeRequested","EventEmitter","domainChangeRequested","invalidDomainChangeRequested","ngOnInit","isDefaultDomain$","domain$","pipe","switchMap","domain","sender","type","__async","open","DomainsDialogComponent","data","result","firstValueFrom","afterClosed","choiceType","emit","newDomain","ɵɵdirectiveInject","MatDialog","DefaultDomainService","selectors","inputs","form","formControlNameString","outputs","standalone","decls","vars","consts","template","rf","ctx","ɵɵelement","ɵɵtemplate","EmailUsernameInputComponent_glxy_error_8_Template","EmailUsernameInputComponent_mat_icon_9_Template","ɵɵtextInterpolate","get","invalid","touched","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r2","ctx_r2","ɵɵnextContext","ɵɵresetView","closeAlert","ɵɵtext","ɵɵelementEnd","ɵɵproperty","ɵɵadvance","ɵɵtextInterpolate1","ɵɵpipeBind1","ɵɵelementContainer","_r4","openChooseDomainDialog","ɵɵtextInterpolate","_r5","handleAuthorizeDomain","ɵɵtemplate","SenderInfoFormComponent_ng_template_48_button_5_Template","SenderInfoFormComponent_ng_template_48_button_7_Template","tmp_4_0","domains$","length","tmp_5_0","_r6","$event","domainChangeRequested","emit","invalidDomainChangeRequested","selectedDomainName$","sender","senderInfoForm","SenderInfoFormComponent_ng_template_50_div_0_Template","tmp_3_0","selectedDomain$","canUse","cta_r7","ɵɵelement","_r8","copyClicked","openLearnMoreModal","ɵɵpropertyInterpolate","forwardingAddress","isCopied","SenderInfoFormComponent","constructor","cdr","unsavedHandler","dialog","domainService","defaultDomainService","selectedDomainFactory","domains","alerts","clipboard","EventEmitter","authorizeRequested","UntypedFormGroup","senderName","UntypedFormControl","Validators","required","useOwn","senderEmailUsername","EmailValidators","emailUsername","replyTo","fullEmailAddress","emailApiService","inject","EmailApiService","saveSenderInfoRequest$","of","saveDomainRequest$","showAlertBanner","subs","SubscriptionList","new","notifier","add","get","valueChanges","value","handleUseOwnChanged","ngOnChanges","updateFormValuesIfUnset","senderInfo","domainOverride","setValue","domain","isPlatformAuthorized","fromSenderInfo","type","pipe","map","d","ngOnInit","showForwardingAddress","SenderType","SENDER_TYPE_BUSINESS","listAllDomains","id","r","getForwardingAddress","useOwnDomain","detectChanges","info","unsubscribe","isDefaultForSenderType","preferredEmailDisplayName","preferredEmailUsername","preferredReplyToEmailAddress","subscribe","notifyStateChanged","SavedState","HAS_UNSAVED_CHANGES","handleSaveRequested","isDomainSave","saveRequest","switchMap","saveData","changeForSender","repairDefaultDomain","tap","openSuccessSnack","catchError","err","openErrorSnack","throwError","SAFE_TO_NAVIGATE_AWAY","shareReplay","bufferSize","refCount","getSaveData","combineLatest","getDefaultDomain$","defaultDomain","selectedDomain","preferredDisplayName","__async","open","DomainsDialogComponent","data","maxHeight","result","firstValueFrom","afterClosed","choiceType","newDomain","copy","setTimeout","getOwnerEmail","subjectParticipant","participantType","GlobalParticipantType","GLOBAL_PARTICIPANT_TYPE_ACCOUNT_GROUP","internalParticipantId","emailRes","forwardingEmail","EmailForwardingInfoComponent","width","ɵɵdirectiveInject","ChangeDetectorRef","UNSAVED_DATA_HANDLER_TOKEN","MatDialog","DomainCacheService","DefaultDomainService","SelectedDomainFactoryService","DomainService","SnackbarService","Clipboard","selectors","inputs","outputs","standalone","features","ɵɵNgOnChangesFeature","decls","vars","consts","template","rf","ctx","SenderInfoFormComponent_glxy_alert_6_Template","SenderInfoFormComponent_glxy_error_13_Template","SenderInfoFormComponent_glxy_error_19_Template","i0","_r1","SenderInfoFormComponent_ng_container_43_Template","SenderInfoFormComponent_ng_container_47_Template","SenderInfoFormComponent_ng_template_48_Template","ɵɵtemplateRefExtractor","SenderInfoFormComponent_ng_template_50_Template","SenderInfoFormComponent_Conditional_52_Template","invalid","touched","status","usernameinput_r9","ɵɵconditional","ɵɵelementContainerStart","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate","ɵɵpipeBind1","ɵɵlistener","$event","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","setDomain","invalidDomainChangeRequested","emit","handleAuthorizeRequested","ɵɵproperty","sender","senderInfo_r3","value","domainOverride","ɵɵelement","_r4","reInitializeObservables","ɵɵtextInterpolate1","ɵɵtemplate","SenderInfoCardComponent_ng_container_1_ng_container_2_Template","SenderInfoCardComponent_ng_container_1_ng_container_3_Template","SenderInfoCardComponent_ng_container_1_ng_container_4_Template","status","SenderInfoCardComponent","constructor","api","domains","alerts","unsavedHandler","authorizeRequested","EventEmitter","ngOnChanges","senderInfo$","getEmailSendingInfo","type","id","pipe","tap","v","auditDomain","map","res","Object","keys","length","isDefaultForSenderType","catchError","e","of","openErrorSnack","EMPTY","notifyStateChanged","SavedState","SAFE_TO_NAVIGATE_AWAY","domain","openSuccessSnack","HAS_UNSAVED_CHANGES","ɵɵdirectiveInject","SendersService","DomainService","SnackbarService","UNSAVED_DATA_HANDLER_TOKEN","selectors","viewQuery","rf","ctx","SenderInfoFormComponent","SenderInfoCardComponent_ng_container_0_Template","SenderInfoCardComponent_ng_container_1_Template","ɵɵelementContainerStart","ɵɵelementStart","ɵɵlistener","$event","ɵɵrestoreView","_r2","ctx_r2","ɵɵnextContext","ɵɵresetView","handleDeleteRequested","handleAuthorizationRequested","infocard_r4","ɵɵreference","setDomain","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","ɵɵpureFunction2","_c1","senderType","senderID","domains_r5","value","deleting","_r6","ɵɵpureFunction0","_c2","ɵɵelement","ɵɵelementContainer","ɵɵtemplate","DomainAuthorizationComponent_ng_container_9_ng_container_4_ng_container_1_Template","error_r7","ɵɵtext","ɵɵtextInterpolate","ɵɵpipeBind1","error","DomainAuthorizationComponent_ng_container_9_ng_container_1_Template","DomainAuthorizationComponent_ng_container_9_ng_container_2_Template","DomainAuthorizationComponent_ng_container_9_ng_container_3_Template","DomainAuthorizationComponent_ng_container_9_ng_container_4_Template","DomainAuthorizationComponent_ng_container_9_ng_template_5_Template","ɵɵtemplateRefExtractor","status","DomainAuthorizationComponent","constructor","domainService","dialog","snack","ngAfterViewInit","refreshDomains","ngOnChanges","andScrollToDomain","SenderType","SENDER_TYPE_INVALID","allDomains$","listAllDomains","pipe","skipWhile","v","map","domains","tap","chmln","window","Array","isArray","length","track","setTimeout","scrollToDomain","undefined","__async","data","open","NewDomainDialogComponent","result","firstValueFrom","afterClosed","newPendingDomain","domain","domainsComponent","delete$","deletePendingDomain","then","openSuccessSnack","catch","openErrorSnack","finally","ɵɵdirectiveInject","DomainCacheService","MatDialog","SnackbarService","selectors","viewQuery","rf","ctx","DomainsComponent","i0","_r1","DomainAuthorizationComponent_ng_container_9_Template","_c0","ɵɵtextInterpolate1","DomainStatusIconModule","CommonModule","MatIconModule","DomainRecordsTableModule","ToTableRowClassPipe","imports","CommonModule","MatButtonModule","MatIconModule","GalaxyTooltipModule","EmailUII18nModule","TranslateModule","DomainInfoCardModule","CommonModule","MatExpansionModule","DomainStatusIconModule","DomainRecordsTableModule","GalaxyLoadingSpinnerModule","GalaxyTooltipModule","MatIconModule","GalaxyPipesModule","GalaxyAlertModule","MatButtonModule","GalaxyButtonLoadingIndicatorModule","EmailUII18nModule","TranslateModule","MatDialogModule","NewDomainDialogModule","CommonModule","GalaxyWrapModule","FormsModule","MatFormFieldModule","TranslateModule","MatInputModule","ReactiveFormsModule","MatButtonModule","GalaxyButtonLoadingIndicatorModule","GalaxyPipesModule","EmailUII18nModule","MatDialogModule","GalaxyFormFieldModule","DomainsModule","CommonModule","GalaxyEmptyStateModule","MatIconModule","MatButtonModule","DomainInfoCardModule","NewDomainDialogModule","EmailUII18nModule","TranslateModule","EmailUsernameInputModule","CommonModule","GalaxyFormFieldModule","MatInputModule","ReactiveFormsModule","MatIconModule","GalaxyTooltipModule","TranslateModule","EmailUII18nModule","DomainInfoDialogModule","CommonModule","DomainInfoCardModule","DomainsDialogModule","CommonModule","GalaxyPipesModule","GalaxyEmptyStateModule","GalaxyLoadingSpinnerModule","MatIconModule","DomainStatusIconModule","DomainInfoDialogModule","EmailUII18nModule","TranslateModule","MatDialogModule","MatListModule","MatButtonModule","SenderInfoCardModule","SendersService","imports","CommonModule","MatExpansionModule","MatCardModule","ReactiveFormsModule","MatInputModule","GalaxyWrapModule","GalaxyFormFieldModule","MatRadioModule","FormsModule","GalaxyInputModule","MatIconModule","EmailUsernameInputModule","GalaxyPipesModule","GalaxyLoadingSpinnerModule","GalaxyEmptyStateModule","MatButtonModule","GalaxyTooltipModule","GalaxyButtonLoadingIndicatorModule","DomainsDialogModule","EmailUII18nModule","TranslateModule","GalaxyAlertModule","EmailForwardingInfoComponent","DomainAuthorizationModule","DomainCacheService","imports","CommonModule","GalaxyEmptyStateModule","MatIconModule","GalaxyPipesModule","GalaxyLoadingSpinnerModule","DomainsModule","SenderInfoCardModule","EmailUII18nModule","TranslateModule","UnsavedChanges","constructor","hasUnsavedChanges","canDeactivate","notifyStateChanged","newState","SavedState","SAFE_TO_NAVIGATE_AWAY","HAS_UNSAVED_CHANGES","Error","factory","ɵfac","EmailSettingsComponent","ComponentCanDeactivate","partnerId$","unsavedChanges","SenderTypePartner","SenderType","SENDER_TYPE_PARTNER","ɵɵdirectiveInject","PARTNER_ID_INJECTION_TOKEN","selectors","standalone","features","ɵɵProvidersFeature","provide","UNSAVED_DATA_HANDLER_TOKEN","useExisting","ɵɵInheritDefinitionFeature","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵelement","ɵɵadvance","ɵɵtextInterpolate","ɵɵpipeBind1","ɵɵproperty","Origins","enumStringToValue$2","enumRef","value","ArticleStub","_ArticleStub","proto","m","kwargs","toReturn","FilterParams","_FilterParams","v","PagedRequestOptions","_PagedRequestOptions","PagedResponseMetadata","_PagedResponseMetadata","SearchArticleRequest","_SearchArticleRequest","SearchArticleResponse","_SearchArticleResponse","enumStringToValue","enumRef","value","Article","_Article","proto","m","Origins","kwargs","toReturn","DeleteArticleRequest","_DeleteArticleRequest","DirectIndexArticleRequest","_DirectIndexArticleRequest","IndexArticleRequest","_IndexArticleRequest","PagedResponse","results","nextCursor","hasMore","totalResults","environment","hostMap","HostService","__ngFactoryType__","ɵɵdefineInjectable","HelpCenterApiService","http","hostService","HttpHeaders","r","request","SearchArticleRequest","map","resp","SearchArticleResponse","__spreadProps","__spreadValues","ɵɵinject","HttpClient","HelpCenterService","api","searchTerm","locale","filters","cursor","pageSize","HelpCaseId","HELP_CASES","academy","id","ACADEMY","name","image","imageAlt","articles","ARTICLES","bookMeeting","BOOK_MEETING","callUs","CALL_US","community","COMMUNITY","contactUs","CONTACT_US","liveChat","LIVE_CHAT","submitTicket","SUBMIT_TICKET","ticketHistory","TICKET_HISTORY","canny","CANNY","HELP_PAGES","main","header","cases","url","HelpSideDrawerTemplateRefService","constructor","templateMap","Map","openTemplate$$","BehaviorSubject","isZendeskOpen","viewModeService","inject","ViewModeService","openTemplate$","pipe","map","t","templateRef","get","id","publishReplay","refCount","open$","a","getZendeskLauncher","closeZendeskLauncher","probeForZendeskLauncherThenClose","registerTemplate","template","set","getValue","open","window","setTimeout","next","checkZendeskIsOpen","probeForZendeskLauncherForSideDrawer","close","openZendeskLauncher","toggle","launcher","showChat","factory","ɵfac","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","closeSideDrawer","ɵɵtext","ɵɵelementEnd","HelpSideDrawerContentDirective","constructor","className","selectors","hostVars","hostBindings","rf","ctx","ɵɵclassMap","HelpSideDrawerPreTitleActionsDirective","constructor","className","selectors","hostVars","hostBindings","rf","ctx","ɵɵclassMap","HelpClosingSideDrawerComponent","constructor","helpSideDrawerTemplateRefService","closeSideDrawer","close","ɵɵdirectiveInject","HelpSideDrawerTemplateRefService","selectors","inputs","title","preventClose","standalone","ngContentSelectors","_c1","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵprojection","ɵɵelementEnd","ɵɵtext","ɵɵelementContainerStart","ɵɵtemplate","HelpClosingSideDrawerComponent_button_10_Template","ɵɵadvance","ɵɵtextInterpolate","ɵɵproperty","ɵɵelementContainerStart","ɵɵelementStart","ɵɵelement","ɵɵelementEnd","ɵɵtext","ɵɵadvance","ɵɵproperty","ctx_r0","getImageSrc","helpCase","image","ɵɵsanitizeUrl","imageAlt","ɵɵtextInterpolate1","ɵɵpipeBind1","name","ɵɵpropertyInterpolate1","phone_r2","ɵɵpipeBind2","countryCode","ɵɵtemplate","HelpCaseCardComponent_va_card_0_ng_template_2_ng_template_7_glxy_badge_3_Template","newBadge","subTitle","HelpCaseCardComponent_va_card_0_ng_template_2_ng_container_5_Template","HelpCaseCardComponent_va_card_0_ng_template_2_ng_template_7_Template","ɵɵtemplateRefExtractor","phone$","helpNameNoPhone_r3","HelpCaseCardComponent_va_card_0_ng_container_1_Template","HelpCaseCardComponent_va_card_0_ng_template_2_Template","id","helpCard_r4","HelpCaseCardComponent","constructor","supportNumberService","ngOnInit","HelpCaseId","CALL_US","getSupportNumber","showCard","BOOK_MEETING","hasMeetingUrl","ɵɵdirectiveInject","SupportNumberService","selectors","inputs","standalone","decls","vars","consts","template","rf","ctx","HelpCaseCardComponent_va_card_0_Template","Sources","HelpSearchCardComponent","ngOnInit","article","source","Sources","ZD_COMMUNITY_POST","icon","ZD_RESOURCE_CENTER","CL_PODCAST","CL_VIDEO","CL_GROUP","OPEN_API","openArticle","window","open","link","selectors","inputs","standalone","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵlistener","ɵɵtext","ɵɵelementEnd","ɵɵproperty","ɵɵadvance","ɵɵtextInterpolate","title","ɵɵtextInterpolate1","body","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","back","ɵɵtext","ɵɵelementEnd","ɵɵelementContainer","_r3","search","ɵɵadvance","ɵɵpropertyInterpolate","ɵɵpipeBind1","ɵɵproperty","searchBar","ɵɵtextInterpolate1","helpHeader","_r4","handleHelpCaseClick","ɵɵelement","_r6","loadMoreClicked","ɵɵtemplate","HelpCenterComponent_ng_template_5_div_5_div_3_ng_template_3_div_0_Template","_r5","showLoadMore","HelpCenterComponent_ng_template_5_div_5_div_3_mat_divider_2_Template","HelpCenterComponent_ng_template_5_div_5_div_3_ng_template_3_Template","ɵɵtemplateRefExtractor","article_r7","i_r8","len_r9","searchEnd_r10","HelpCenterComponent_ng_template_5_div_5_div_1_Template","HelpCenterComponent_ng_template_5_div_5_div_2_Template","HelpCenterComponent_ng_template_5_div_5_div_3_Template","articles","length","isSearching","helpCase_r12","_r11","$implicit","id","bookMeetingUrl$","ɵɵelementContainerStart","HelpCenterComponent_ng_template_5_ng_template_6_ng_container_2_app_help_case_card_1_Template","helpCases","HelpCenterComponent_ng_template_5_ng_template_6_ng_container_2_Template","loading_r13","HelpCenterComponent_ng_template_5_div_2_Template","HelpCenterComponent_ng_template_5_ng_template_3_Template","HelpCenterComponent_ng_template_5_div_5_Template","HelpCenterComponent_ng_template_5_ng_template_6_Template","displaySearch","header_r14","currentPageId","noSearch_r15","HelpCenterComponent","constructor","assignedSalespersonService","helpCenterAPIService","helpSideDrawerTemplateRefService","translate","cannyService","appConfigService","snackBarService","supportNumberService","title","instant","HELP_PAGES","HelpCaseId","MAIN","cases","header","helpCaseHistory","subscriptions","UntypedFormControl","ngOnInit","push","getSupportNumber","pipe","take","subscribe","number","find","hc","CALL_US","undefined","unshift","HELP_CASES","CHAT_SUPPORT_TIERS","includes","subscriptionTier","LIVE_CHAT","BOOK_MEETING","cursor","ngOnDestroy","forEach","s","unsubscribe","SEARCH","onKeyUp","value","searchFilters","FilterParams","origins","Origins","ORIGINS_RESOURCE_CENTER_ZENDESK","ORIGINS_COMMUNITY_POST_ZENDESK","ORIGINS_PODCASTS_WP","ORIGINS_VIDEO_WP","ORIGINS_OPEN_API","map","resp","results","r","origin","replace","body","source","link","nextCursor","hasMore","finalize","caseId","showChat","url","window","open","CANNY","openCanny","pop","slice","config$","switchMap","appConfig","getSingleSignOn","unifiedUserId","next","ssoConfig","buildCannyRedirectUrl","token","companyId","roadmapDomain","error","openErrorSnack","ssoToken","redirect","ɵɵdirectiveInject","AssignedSalespersonService","HelpCenterService","HelpSideDrawerTemplateRefService","TranslateService","CannyService","AppConfigService","SnackbarService","SupportNumberService","selectors","inputs","partnerId","standalone","decls","vars","consts","template","rf","ctx","HelpCenterComponent_button_2_Template","HelpCenterComponent_ng_container_4_Template","HelpCenterComponent_ng_template_5_Template","HelpCenterComponent_ng_template_7_Template","case_selection_r16","ɵɵelementStart","ɵɵelement","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","ɵɵlistener","ɵɵrestoreView","_r1","form_r2","ɵɵreference","ctx_r2","ɵɵnextContext","ɵɵresetView","login","ɵɵtwoWayListener","$event","i0","ɵɵtwoWayBindingSet","email","password","partnerId","sessionToken","loginWithGoogle","ɵɵtextInterpolate1","ɵɵpipeBind1","environment","ɵɵtwoWayProperty","ɵɵpropertyInterpolate1","LocalLoginComponent","constructor","iamService","snackbarService","sessionService","http","router","route","ngOnInit","queryParamMap","pipe","take","subscribe","paramMap","get","signIn","errorStatus","handleError","navigate","statusCode","openErrorSnack","sessionId","setSessionId","loading","createSession","redirectToNextUrl","err","message","nextUrl","window","location","href","form","valid","catchError","e","status","of","ssoLogin","iamSession","params","toUpperCase","post","headers","HttpHeaders","map","ɵɵdirectiveInject","IAMService","SnackbarService","SessionService","HttpClient","Router","ActivatedRoute","selectors","standalone","decls","vars","consts","template","rf","ctx","ɵɵtemplate","LocalLoginComponent_Conditional_1_Template","LocalLoginComponent_Conditional_2_Template","ɵɵconditional","LocalLoginModule","CommonModule","FormsModule","MatInputModule","MatButtonModule","MatProgressSpinnerModule","GalaxyFormFieldModule","PageNotFoundComponent","constructor","router","url","replace","navigateByUrl","ɵɵdirectiveInject","Router","selectors","decls","vars","template","rf","ctx","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate","ɵɵpipeBind1","GalaxyPageModule","PageComponent","GalaxyEmptyStateModule","EmptyStateComponent","EmptyStateHeroDirective","EmptyStateTitleDirective","MatIconModule","MatIcon","TranslateModule","TranslatePipe","encapsulation","PipelineViewRouterGuard","constructor","pipelineSwitcherService","router","canActivate","cachedPipelinePage$","pipe","take","map","page","PipelinePageUrls","BOARD","createUrlTree","ɵɵinject","PipelineSwitcherService","Router","factory","ɵfac","providedIn","ProductOrderFormProxyComponent","constructor","route","router","ngOnInit","accountGroupId$","queryParams","pipe","map","params","agid","accountGroupId","filter","Boolean","first","combineLatest","subscribe","navigate","__spreadValues","ɵɵdirectiveInject","ActivatedRoute","Router","selectors","standalone","decls","vars","template","rf","ctx","encapsulation","TermsOfServiceService","constructor","api","termsOfService","get","pipe","map","res","terms","acceptTermsOfService","post","ɵɵinject","ApiService","factory","ɵfac","ɵɵelement","ɵɵproperty","ɵɵpipeBind1","ctx_r1","terms","ɵɵsanitizeHtml","TermsOfServiceComponent","constructor","termsService","snackbarService","configService","submitting","partnerName$","config$","pipe","map","config","partnerName","partnerId$","partnerId","ngOnInit","termsOfService","subscribe","acceptTerms","acceptTermsOfService","next","window","location","href","error","errorSnack","ɵɵdirectiveInject","TermsOfServiceService","SnackbarService","AppConfigService","selectors","standalone","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵtemplate","TermsOfServiceComponent_p_7_Template","TermsOfServiceComponent_mat_spinner_8_Template","ɵɵlistener","i0","ɵɵrestoreView","_r1","ɵɵresetView","ɵɵadvance","accept_r3","checked","ɵɵtextInterpolate2","TermsOfServiceModule","TermsOfServiceService","imports","CommonModule","MatProgressSpinnerModule","MatCardModule","MatCheckboxModule","MatButtonModule","GalaxyPipesModule","PageComponent","GalaxyPageModule","CONFIG_MANAGER_CONFIG_TOKEN","InjectionToken","PARTNER_ID_TOKEN","ConfigManagerService","constructor","config","partnerId$","getPartnerId","ɵɵinject","CONFIG_MANAGER_CONFIG_TOKEN","PARTNER_ID_TOKEN","factory","ɵfac","providedIn","ConfigManagerModule","forRoot","c","ngModule","providers","ConfigManagerService","provide","CONFIG_MANAGER_CONFIG_TOKEN","useExisting","config","PARTNER_ID_TOKEN","deps","useFactory","partnerIdFactory","isObservable","partnerId$","of","en_devel_default","ConfigManagerI18nModule","TranslateModule","LexiconModule","forChild","componentName","baseTranslation","En","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate1","ɵɵpipeBind1","ɵɵelement","ɵɵproperty","option_r1","ɵɵtextInterpolate2","napData","companyName","accountGroupId","ɵɵelementContainerStart","ɵɵtemplate","ConfigSourceComponent_ng_container_21_mat_option_1_Template","ConfigSourceComponent_ng_container_21_mat_option_2_Template","options_r2","length","ConfigSourceComponent","constructor","dataChange","EventEmitter","form","FormGroup","name","FormControl","Validators","required","accountGroup","searchCtrl","get","filteredAccountGroups$","of","accountGroupService","inject","AccountGroupService","isLoading","fetchAccountGroups","searchTerm","lookup","ProjectionFilter","enableAll","undefined","ngOnInit","valueChanges","pipe","startWith","debounceTime","map","value","tap","switchMap","subscribe","emitChanges","displayFn","formValue","emit","data","valid","selectors","outputs","decls","vars","consts","template","rf","ctx","ConfigSourceComponent_glxy_error_8_Template","ConfigSourceComponent_glxy_error_17_Template","ConfigSourceComponent_mat_option_20_Template","ConfigSourceComponent_ng_container_21_Template","ɵɵtextInterpolate","tmp_4_0","hasError","dirty","auto_r3","tmp_8_0","CommonModule","NgForOf","NgIf","AsyncPipe","ReactiveFormsModule","ɵNgNoValidate","DefaultValueAccessor","NgControlStatus","NgControlStatusGroup","FormGroupDirective","FormControlName","GalaxyFormFieldModule","FormFieldComponent","LabelDirective","ErrorDirective","MatInputModule","MatInput","MatSuffix","MatSelectModule","MatOption","MatAutocompleteModule","MatAutocomplete","MatAutocompleteTrigger","MatIconModule","MatIcon","ScrollingModule","MatProgressSpinnerModule","MatProgressSpinner","TranslateModule","TranslatePipe","ConfigManagerI18nModule","styles","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵproperty","subOption_r5","link","ɵɵsanitizeUrl","ɵɵadvance","ɵɵtextInterpolate","name","ɵɵtextInterpolate1","description","ɵɵtemplate","ConfigOptionsComponent_div_0_mat_expansion_panel_2_div_6_div_1_Conditional_4_Template","ConfigOptionsComponent_div_0_mat_expansion_panel_2_div_6_div_1_Conditional_5_Template","ConfigOptionsComponent_div_0_mat_expansion_panel_2_div_6_div_1_div_6_Template","ɵɵlistener","$event","ɵɵrestoreView","_r4","$implicit","option_r2","ɵɵnextContext","ctx_r2","ɵɵresetView","onSubOptionChange","checked","ɵɵconditional","enabled","ConfigOptionsComponent_div_0_mat_expansion_panel_2_div_6_div_1_Template","subOptions","_r1","onOptionChange","i0","stopPropagation","ConfigOptionsComponent_div_0_mat_expansion_panel_2_div_6_Template","length","indeterminate","ConfigOptionsComponent_div_0_mat_expansion_panel_2_Template","options_r6","ConfigOptionsComponent","constructor","dataChange","EventEmitter","configOptions","input","required","option","forEach","subOption","emit","parentOption","event","enabledCount","filter","so","totalSubOptions","selectors","inputs","outputs","decls","vars","consts","template","rf","ctx","ConfigOptionsComponent_div_0_Template","CommonModule","NgForOf","NgIf","MatExpansionModule","MatAccordion","MatExpansionPanel","MatExpansionPanelHeader","MatSlideToggleModule","MatIconModule","MatIcon","MatCheckboxModule","MatCheckbox","FormsModule","styles","environment","hostMap","HostService","__ngFactoryType__","ɵɵdefineInjectable","ObjectApplicationStrategy","OwnerNamespaceType","SourceNamespaceType","TargetContainerNamespaceType","PagedRequestOptions","_PagedRequestOptions","proto","m","kwargs","toReturn","PagedResponseMetadata","_PagedResponseMetadata","enumStringToValue","enumRef","value","ApplyConfigurationRequest","_ApplyConfigurationRequest","ConfigurationTargetContainer","ObjectApplicationSelection","ApplyConfigurationResponse","_ApplyConfigurationResponse","Configuration","_Configuration","ConfigurationOwner","SourceNamespaceType","ConfigurationVersion","_ConfigurationOwner","OwnerNamespaceType","ConfigurationSource","_ConfigurationSource","_ConfigurationTargetContainer","TargetContainerNamespaceType","_ConfigurationVersion","TypedObjectContainer","CreateConfigurationFromSourceRequest","_CreateConfigurationFromSourceRequest","TypedObjectIds","CreateConfigurationFromSourceResponse","_CreateConfigurationFromSourceResponse","DeleteConfigurationRequest","_DeleteConfigurationRequest","GetConfigurationPreviewDataForSourceRequest","_GetConfigurationPreviewDataForSourceRequest","GetConfigurationPreviewDataForSourceResponse","_GetConfigurationPreviewDataForSourceResponse","ListConfigurationsRequest","_ListConfigurationsRequest","ListConfigurationsResponse","_ListConfigurationsResponse","_ObjectApplicationSelection","ObjectApplicationStrategy","TypedObject","_TypedObject","_TypedObjectContainer","_TypedObjectIds","ConfigurationManagementApiService","inject","HostService","HttpClient","HttpHeaders","r","request","map","resp","__spreadProps","__spreadValues","__ngFactoryType__","ɵɵdefineInjectable","typedObjectContainersToConfigOptions","typedObjectContainers","defaultEnabled","map","t","id","typeId","name","typeName","enabled","indeterminate","subOptions","objects","o","description","link","ConfigEditorDialogComponent","constructor","dialogRef","destroyRef","DIALOG_WIDTH","bpObserver","inject","BreakpointObserver","configService","ConfigurationManagementApiService","snackbar","SnackbarService","partnerId","toSignal","PARTNER_ID_TOKEN","sourceData","signal","sourceValid","optionsData","accountGroupId","undefined","isSourceValid","computed","configOptionsData","ngOnInit","disableClose","isMatched","Breakpoints","XSmall","updateSize","onSourceDataChange","event","set","data","valid","onOptionsDataChange","close","finish","typedObjectIds","map","option","typeId","id","subOptions","filter","subOption","enabled","length","openErrorSnack","request","name","configurationSource","sourceNamespace","sourceNamespaceType","SourceNamespaceType","SOURCE_NAMESPACE_ACCOUNT_GROUP","configurationOwner","ownerNamespace","ownerNamespaceType","OwnerNamespaceType","OWNER_NAMESPACE_PARTNER","selectedTypedObjectIds","createConfigurationFromSource","pipe","takeUntilDestroyed","subscribe","next","openSuccessSnack","success","source","options","error","errorMessage","message","setAccountGroupId","getConfigOptions","take","getConfigurationPreviewDataForSource","switchMap","response","of","typedObjectContainersToConfigOptions","objectTypes","ɵɵdirectiveInject","MatDialogRef","DestroyRef","selectors","viewQuery","rf","ctx","provide","STEPPER_GLOBAL_OPTIONS","useValue","displayDefaultIndicatorType","decls","vars","consts","template","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵlistener","$event","i0","ɵɵrestoreView","_r1","ɵɵresetView","ɵɵadvance","ɵɵtextInterpolate","ɵɵpipeBind1","ɵɵproperty","ɵɵtextInterpolate1","CommonModule","MatDialogModule","MatDialogTitle","MatDialogContent","MatButtonModule","MatButton","MatCardModule","MatStepperModule","MatStep","MatStepper","MatStepperNext","MatStepperPrevious","ConfigSourceComponent","ConfigOptionsComponent","TranslateModule","TranslatePipe","ConfigManagerI18nModule","styles","ɵɵelementContainerStart","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","option_r2","ɵɵtextInterpolate","name","ConfigApplierDialogComponent","constructor","dialogRef","inject","MatDialogRef","destroyRef","DestroyRef","accountGroupService","AccountGroupService","multiLocationService","MultiLocationService","partnerId","toSignal","PARTNER_ID_TOKEN","configService","ConfigurationManagementApiService","snackBarService","SnackbarService","currentConfigOptions","signal","targetContainerType","isTargetContainerDisabled","computed","targetContainerSearchTerm","brands","targetContainerOptions","isApplyEnabled","filteredBrands","term","length","filter","brand","toLowerCase","includes","data","MAT_DIALOG_DATA","form","FormGroup","FormControl","targetContainer","value","disabled","lookupSubscription","Subscription","set","configOptions","get","valueChanges","pipe","takeUntilDestroyed","debounceTime","subscribe","reset","effect","disable","enable","unsubscribe","setFilteredAccountGroups","fetchBrandsAPI","ngOnDestroy","onOptionsChange","options","lookup","ProjectionFilter","enableAll","undefined","accountGroups","map","accountGroup","id","accountGroupId","napData","companyName","listBrandsMetadata","groupId","apply","formValue","objectApplicationSelections","forEach","opt","subOptions","subOpt","enabled","push","ObjectApplicationSelection","configurationObjectId","strategy","ObjectApplicationStrategy","OBJECT_APPLICATION_STRATEGY_SKIP_EXISTING","applyConfiguration","ApplyConfigurationRequest","configurationId","configurationTargetContainers","ConfigurationTargetContainer","targetContainerNamespace","targetContainerNamespaceType","targetContainerTypeToEnum","take","next","openSuccessSnack","close","error","openErrorSnack","type","TargetContainerNamespaceType","TARGET_CONTAINER_NAMESPACE_UNSPECIFIED","TARGET_CONTAINER_NAMESPACE_ACCOUNT_GROUP","TARGET_CONTAINER_NAMESPACE_GROUP","displayFn","selectors","decls","vars","consts","template","rf","ctx","ɵɵelement","ɵɵtemplate","ConfigApplierDialogComponent_ng_container_26_Template","ɵɵlistener","$event","i0","ɵɵrestoreView","_r1","ɵɵresetView","ɵɵpipeBind1","ɵɵpropertyInterpolate","targetContainer_r3","ɵɵtextInterpolate1","TranslateModule","TranslatePipe","MatDialogModule","MatDialogClose","MatDialogTitle","MatDialogActions","MatDialogContent","MatSelectModule","MatSelect","MatOption","GalaxyFormFieldModule","FormFieldComponent","ReactiveFormsModule","ɵNgNoValidate","DefaultValueAccessor","NgControlStatus","NgControlStatusGroup","FormGroupDirective","FormControlName","MatAutocompleteModule","MatAutocomplete","MatAutocompleteTrigger","CommonModule","NgForOf","MatButtonModule","MatButton","ConfigOptionsComponent","styles","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate1","subOption_r1","name","ɵɵtemplate","ConfigViewDialogComponent_mat_expansion_panel_11_div_4_div_1_Template","ɵɵproperty","option_r2","subOptions","ConfigViewDialogComponent_mat_expansion_panel_11_div_4_Template","length","ɵɵtextInterpolate","ConfigViewDialogComponent","constructor","dialogRef","data","ɵɵdirectiveInject","MatDialogRef","MAT_DIALOG_DATA","selectors","decls","vars","consts","template","rf","ctx","ConfigViewDialogComponent_mat_expansion_panel_11_Template","ɵɵpipeBind1","source","configOptions","CommonModule","NgForOf","NgIf","MatDialogContent","MatDialogTitle","TranslateModule","TranslatePipe","MatDialogActions","MatButton","MatDialogClose","MatExpansionModule","MatAccordion","MatExpansionPanel","MatExpansionPanelHeader","MatIconModule","styles","ɵɵelementContainerStart","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate2","item_r1","objects","length","typeName","ConfigCardComponent","constructor","dialog","inject","MatDialog","applyConfiguration","open","ConfigApplierDialogComponent","data","configurationId","config","configOptions","typedObjectContainersToConfigOptions","configurationVersion","objectTypes","openConfigViewDialog","ConfigViewDialogComponent","name","source","sourceNamespaceObject","napData","companyName","selectors","inputs","decls","vars","consts","template","rf","ctx","ɵɵlistener","ɵɵtemplate","ConfigCardComponent_ng_container_19_Template","ɵɵtextInterpolate","ɵɵtextInterpolate1","ɵɵpipeBind1","ɵɵproperty","CommonModule","NgForOf","TranslateModule","TranslatePipe","MatCardModule","MatCard","MatCardActions","MatCardContent","MatCardHeader","MatCardTitle","MatIconModule","MatButtonModule","MatButton","MatChipsModule","ConfigManagerI18nModule","styles","ɵɵelementStart","ɵɵelement","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","config_r1","ɵɵtext","ɵɵtextInterpolate","ɵɵpipeBind1","ConfigListComponent","constructor","configs","signal","accountGroupService","inject","AccountGroupService","configService","ConfigurationManagementApiService","partnerId","toSignal","PARTNER_ID_TOKEN","ngOnInit","loadListData","now","Date","lastWeek","setDate","getDate","listConfigurations","ListConfigurationsRequest","configurationOwner","ConfigurationOwner","ownerNamespace","ownerNamespaceType","OwnerNamespaceType","OWNER_NAMESPACE_PARTNER","pagingOptions","PagedRequestOptions","pageSize","pipe","take","switchMap","agIDs","configuration","map","config","configurationVersion","sourceNamespace","getMulti","ProjectionFilter","napData","response","extendedConfigs","forEach","i","extendedVersion","__spreadProps","__spreadValues","sourceNamespaceObject","push","Configuration","subscribe","set","selectors","decls","vars","consts","template","rf","ctx","ɵɵtemplate","ConfigListComponent_div_2_Template","ConfigListComponent_div_3_Template","length","CommonModule","NgForOf","NgIf","MatCardModule","ConfigCardComponent","TranslateModule","TranslatePipe","ConfigManagerI18nModule","styles","ConfigManagerComponent","constructor","title","config","inject","CONFIG_MANAGER_CONFIG_TOKEN","partnerId$","dialog","MatDialog","openConfigDialog","open","ConfigEditorDialogComponent","afterClosed","subscribe","result","success","configList","loadListData","selectors","viewQuery","rf","ctx","ConfigListComponent","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵlistener","i0","ɵɵrestoreView","_r1","ɵɵresetView","ɵɵelement","ɵɵadvance","ɵɵtextInterpolate","ɵɵpipeBind1","ɵɵtextInterpolate1","CommonModule","TranslateModule","TranslatePipe","ConfigManagerI18nModule","MatButtonModule","MatButton","styles","routes","path","loadChildren","then","m","LoginModule","data","noNavbar","noCardCheck","component","ForgotPasswordGuard","canActivate","EmbedComponent","EmbedGuard","pathMatch","SignUpGuard","TermsOfServiceComponent","AccessDeniedComponent","SuperadminModule","UserOnboardingModule","DashboardModule","AffiliateModule","redirectTo","AccountModule","UsersRoutingModule","ManageAccountsGuard","objectType","UnifiedUsersModule","AccessIsAdminGuard","ManageTeamModule","devServer","EmbedLocalComponent","AccessViewGuard","view","OrderConfigComponent","AccessFeatureGuard","feature","CustomizeExecReportComponent","OrderDeclineReasonsConfigComponent","OrderSetupComponent","CustomizeBrandingModule","NotificationPreferencesModule","ManageBusinessAppModule","FilesModule","ActionListsOverviewComponent","ActionListsDetailsComponent","BulkImportComponent","ProductOrderFormProxyComponent","CompanyProfileComponent","AccessRestrictedComponent","BrandsModule","EmailSettingsComponent","AccessAllMarketsGuard","canDeactivate","PendingChangesGuard","EmailBuilderSandboxComponent","HelpCenterComponent","SaasMetricsModule","AccessDashboardGuard","ReportingModule","MarketplaceAppModule","BillingModule","canLoad","AccessBillingGuard","FailedPaymentsModule","loadComponent","PayoutsPageComponent","RetailBillingGuard","VendastaPaymentsGuard","PayoutDetailsPageComponent","SubscriptionsPageComponent","SettingsModule","AdministrationModule","CrmCustomFieldManagementModule","CustomFormsModule","SalesModule","SalespeopleGuard","MarketingModule","providers","provide","CONFIG_TOKEN","useFactory","CampaignConfigFactory","ConciergeModule","SalesOrdersModule","PipelineTablePageModule","PipelineViewRouterGuard","PipelineBoardModule","PipelineSettingsPageModule","ServiceAccountModule","IdentityProviderConfigModule","UserListModule","UpgradeSubscriptionTierModule","SubscriptionTierModule","TranslatePortalModule","inject","AccessPartnerAdminViewGuard","DuplicateAccountsFeatureModule","ManageAccountsModule","BusinessModule","outlet","AccountAddToListComponent","OrderFulfillmentTableComponent","AccountDeleteComponent","CustomFieldsDialogComponent","ActivationModule","CustomizeBusinessPrioritiesModule","AccessBusinessPrioritiesGuard","CustomizeBusinessAppModule","AutomationsModule","AutomationsGuard","ConfigManagerComponent","canMatch","AccessFeatureFlagGuard","featureFlag","FeatureFlags","ACCOUNT_CONFIGURATIONS","FacebookRoutes","ROOT","FacebookAdLeadsModule","FacebookAdLeadsGuard","KnowledgeSourceManagementComponent","previousPageTitle","previousPageUrl","PlatformIntegrationsLibModule","InvoiceModule","VariableMenuDialogComponent","PartnerCrmModule","resolve","partnerCRMCategory","PartnerCRMCategoryService","children","AI_ASSISTANT_ROUTES","PartnerScoreModule","PartnerDynamicListsModule","CrmProspectorModule","ActivityTableComponent","LinkActivityComponent","INBOX_ROUTES","InboxModalGuard","SequencesModule","CampaignModule","PREVIEW_DATA_SELECTOR_COMPONENT_TOKEN","useValue","CampaignAccountSelectorComponent","SUPPORTED_LOCALES_TOKEN","of","LanguageMap","filter","lang","Language","ENGLISH","FRENCH_FRANCE","CZECH","DUTCH","map","l","toString","indexOf","code","value","name","label","GoalsModule","PartnerTrainingResourcesModule","MeetingSchedulerRoutingModule","PageNotFoundComponent","AppRoutingModule","EMAIL_LIBRARY_BASE_URL_TOKEN","imports","RouterModule","forRoot","LocalLoginComponent","anchorScrolling","paramsInheritanceStrategy","bindToComponentInputs","import_moment","initializeWootric","config","email","window","wootricSettings","created_at","createdAt","account_token","accountToken","properties","persona","success","partner_id","partnerId","partner_name","partnerName","user_market","userMarket","wootric","console","error","UrlService","constructor","router","location","currentUrl$","events","pipe","filter","event","NavigationEnd","map","urlAfterRedirects","startWith","path","distinctUntilChanged","publishReplay","refCount","isSuperAdminRoute$","url","results","RegExp","exec","embedRoute","decodeURIComponent","replace","startsWith","isAutomationsRoute$","includes","ɵɵinject","Router","Location","factory","ɵfac","providedIn","uiThemeToEnum","uiTheme","UITheme","UI_THEME_LIGHT","UI_THEME_DARK","uiThemeFromEnum","UserBrandingService","constructor","partnerId$","marketsService","brandingV2Service","branding$$","BehaviorSubject","branding$","asObservable","pipe","filter","b","publishReplay","refCount","selectedMarket$","markets$","map","markets","length","distinctUntilChanged","subscription","combineLatest","switchMap","partnerId","market","getBranding","market_id","subscribe","branding","next","setLogoUrl","logoUrl","endsWith","replace","__spreadProps","__spreadValues","getValue","setUiTheme","ngOnDestroy","unsubscribe","ɵɵinject","MarketsService","BrandingV2Service","factory","ɵfac","providedIn","OmniSearchService","constructor","config","intents$$","BehaviorSubject","intentSet","Set","intents$","asObservable","registerIntent","intent","has","title","next","getValue","add","ɵɵinject","AppConfigService","factory","ɵfac","providedIn","ɵɵelementContainerStart","ɵɵelement","ɵɵadvance","ɵɵproperty","ctx_r0","iconUrl","ɵɵsanitizeUrl","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵpureFunction1","_c0","iconColor","ɵɵtextInterpolate1","appId","OmniAppIconComponent","ngOnInit","icons","getIconColor","ngOnChanges","changes","selectors","inputs","standalone","features","ɵɵNgOnChangesFeature","decls","vars","consts","template","rf","ctx","ɵɵtemplate","OmniAppIconComponent_ng_container_0_Template","OmniAppIconComponent_ng_template_1_Template","ɵɵtemplateRefExtractor","custom_r2","COLOR_CODES","Math","floor","random","length","ɵɵelement","ɵɵproperty","ɵɵpipeBind1","ctx_r2","productIcons$","account_r4","marketplaceAppId","ɵɵelementStart","ɵɵlistener","accountGroup_r2","ɵɵrestoreView","_r1","$implicit","ɵɵnextContext","ɵɵresetView","navigateToLocation","accountGroupId","ɵɵtemplate","AccountGroupSearcherComponent_a_10_app_omni_app_icon_3_Template","ɵɵelementEnd","ɵɵadvance","accounts","AccountGroupSearcherComponent","constructor","dialogRef","accountGroupService","marketplaceAppService","partnerId$","router","omnisearchService","cachedProductIcons","cachedProductIds","Set","ngAfterViewInit","napPf","ProjectionFilter","napData","accountGroups$","observableFromEvent","searchTerm","nativeElement","pipe","filter","e","some","ignoredKey","key","debounceTime","map","_","value","switchMap","lookup","accountGroups","ag","sort","a","b","startsWith","uniqueProductIds$","accountSet","forEach","acc","add","shareReplay","uniqueIdsSubscription","subscribe","combineLatest","accountIds","partnerId","ids","push","length","of","getMultiProducts","productIds","fieldMask","paths","productContainers","products","p","product","productId","idsToIcons","reduce","pObj","iconUrl","Object","keys","startWith","ngOnDestroy","unsubscribe","navigateByUrl","close","ɵɵdirectiveInject","MatDialogRef","AccountGroupService","MarketplacePackagesApiService","Router","OmniSearchService","selectors","viewQuery","rf","ctx","decls","vars","consts","template","ɵɵtext","AccountGroupSearcherComponent_a_10_Template","ɵɵtextInterpolate","ɵɵtextInterpolate1","ɵɵelementStart","ɵɵlistener","intent_r4","ɵɵrestoreView","_r3","$implicit","ctx_r4","ɵɵnextContext","ɵɵresetView","fulfillIntent","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate1","ɵɵpipeBind1","title","ɵɵtextInterpolate","shortcut","description","OmniSearchComponent","constructor","dialogRef","omnisearchService","router","searchTerm$$","BehaviorSubject","intents$","filteredIntents$","combineLatest","searchTerm$","pipe","tap","searchTerm","intents","forEach","intent","map","filter","filterIntent","toLowerCase","indexOf","asObservable","search","next","callback","itemOfIntent","routerUrl","navigateByUrl","close","ɵɵdirectiveInject","MatDialogRef","OmniSearchService","Router","selectors","standalone","decls","vars","consts","template","rf","ctx","_r1","searchTerm_r2","ɵɵreference","value","ɵɵtemplate","OmniSearchComponent_a_10_Template","ɵɵproperty","ɵɵelementStart","ɵɵlistener","partner_r4","ɵɵrestoreView","_r3","$implicit","ctx_r4","ɵɵnextContext","ɵɵresetView","goToOverview","id","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate","name","PartnerOverviewComponent","constructor","dialogRef","partnerService","omnisearchService","router","billingSettingsService","ngAfterViewInit","partners$","observableFromEvent","searchTerm","nativeElement","pipe","distinctUntilChanged","map","value","debounceTime","switchMap","search","partnerId","resetCache","navigate","toUpperCase","close","ɵɵdirectiveInject","MatDialogRef","PartnerService","OmniSearchService","Router","BillingSettingsService","selectors","viewQuery","rf","ctx","_r1","searchTerm_r2","ɵɵreference","ɵɵtemplate","PartnerOverviewComponent_a_10_Template","ɵɵtextInterpolate1","ɵɵpipeBind1","ɵɵproperty","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate1","ɵɵpipeBind1","recentPartner_r4","subscription_tier_id","ɵɵtextInterpolate3","address_line_one","city","state_code","ɵɵlistener","ɵɵrestoreView","_r3","$implicit","ctx_r4","ɵɵnextContext","ɵɵresetView","switchPartner","id","ɵɵtemplate","PartnerSwitcherComponent_a_12_span_3_Template","PartnerSwitcherComponent_a_12_span_6_Template","ɵɵproperty","name","ɵɵelement","partner_r7","_r6","PartnerSwitcherComponent_a_19_span_5_Template","ɵɵtextInterpolate2","RecentPartnersStorageKey","MaxRecentPartners","PartnerSwitcherComponent","constructor","partnerId$","dialogRef","partnerService","localStorageService","configService","recentPartners$$","BehaviorSubject","ngOnInit","next","loadRecentPartners","ngAfterViewInit","window","setTimeout","search$","observableFromEvent","searchTerm","nativeElement","pipe","distinctUntilChanged","map","_","value","searchDebounced$","debounceTime","recentPartners$","combineLatest","startWith","recentPartners","lowerSearchTerm","toLowerCase","filter","p","includes","shareReplay","partners$","switchMap","search","partnerId","upperPartnerId","toUpperCase","take","currentPartnerId","partners","find","pInfo","subscribe","_0","__async","partnerInfo","partnerIdWithFallbackToInput","addPartnerToRecents","load","close","url","URL","location","href","searchParams","has","set","toString","found","findIndex","__spreadProps","__spreadValues","lastAccessed","Date","push","sort","a","b","valueOf","length","slice","JSON","stringify","recentPartnersSerialized","get","parse","console","error","forEach","ɵɵdirectiveInject","MatDialogRef","PartnerService","LocalStorageService","AppConfigService","selectors","viewQuery","rf","ctx","_r1","searchTerm_r2","ɵɵreference","PartnerSwitcherComponent_h3_10_Template","PartnerSwitcherComponent_a_12_Template","PartnerSwitcherComponent_mat_divider_14_Template","PartnerSwitcherComponent_h3_17_Template","PartnerSwitcherComponent_a_19_Template","tmp_3_0","tmp_5_0","tmp_6_0","ɵɵelementStart","ɵɵlistener","user_r2","ɵɵrestoreView","_r1","$implicit","ctx_r2","ɵɵnextContext","ɵɵresetView","impersonateUser","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","ɵɵpipeBind1","type","ɵɵtextInterpolate1","ɵɵtextInterpolate2","firstName","lastName","ɵɵtextInterpolate3","email","phoneNumber","UserSwitcherComponent","constructor","dialogRef","userService","ssoService","snackbarService","partnerService","config","omnisearchService","http","urlForSalespeopleLookup","ngAfterViewInit","keyUps$","observableFromEvent","searchTerm","nativeElement","pipe","distinctUntilChanged","map","_","value","debounceTime","people$","switchMap","search","of","filter","users","u","id","userId","unifiedId","unifiedUserId","userCanAccessSales","salesPeople$","get","params","searchText","resp","data","salespeople","sp","first_name","last_name","sales_person_id","phone_numbers","combineLatest","sort","a","b","user","serviceProviderId","getEntryUrl","newPartnerServiceContext","partnerId","impersonation","subscribe","next","url","undefined","errorSnack","window","location","href","close","error","ɵɵdirectiveInject","MatDialogRef","UserService","SSOService","SnackbarService","PartnerService","AppConfigService","OmniSearchService","HttpClient","selectors","viewQuery","rf","ctx","ɵɵelement","ɵɵtemplate","UserSwitcherComponent_a_10_Template","LevelBadgeStoreService","constructor","trials","partners","subscriptionTiersService","subscriptionTier$","setUpSubscriptionLevel","showBadge$","setUpShowBadge","partnerTrial$","pipe","switchMap","trial","status","TrialStatus","ACTIVE","getSubscriptionTier","subscriptionTierId","partnerId","shareReplay","subscriptionLevel","map","v","tierVersion","startWith","distinctUntilChanged","ɵɵinject","PartnerTrialStoreService","PartnerService","SubscriptionTiersService","factory","ɵfac","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r1","tier_r2","ɵɵnextContext","ngIf","ctx_r2","ɵɵresetView","handleOnSubLevelClick","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate1","ɵɵpipeBind1","subscriptionLevel$","ɵɵelementContainerStart","ɵɵtemplate","LevelBadgeComponent_ng_container_0_ng_container_1_div_1_Template","LevelBadgeComponent_ng_container_0_ng_container_1_ng_template_3_Template","ɵɵtemplateRefExtractor","ɵɵproperty","canNavigateToMyPlanPage$","notClickable_r4","LevelBadgeComponent_ng_container_0_ng_container_1_Template","subscriptionTier$","LevelBadgeComponent","constructor","badgeStore","appConfigService","router","pipe","map","s","SubscriptionTiersService","getI18NName","id","showBadge$","_subscriptionTier","navigateByUrl","config$","config","isVBP2Subscription","isM3Subscription","isVBP2022Subscription","isFree","userCanAccessBilling","ɵɵdirectiveInject","LevelBadgeStoreService","AppConfigService","Router","selectors","standalone","decls","vars","consts","template","rf","ctx","LevelBadgeComponent_ng_container_0_Template","ɵɵelementContainerStart","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","ɵɵpureFunction1","_c0","ɵɵpipeBind1","ctx_r0","trialExpiringSoon$","ɵɵtextInterpolate1","trialDaysRemaining$","formatRemainingTrialDays","remainingDays","TrialBadgeComponent","constructor","trialService","badgeStore","trialActive$","partnerTrial$","pipe","map","t","status","TrialStatus","ACTIVE","expiringSoon","showBadge$","ɵɵdirectiveInject","PartnerTrialStoreService","LevelBadgeStoreService","selectors","standalone","decls","vars","consts","template","rf","ctx","ɵɵtemplate","TrialBadgeComponent_ng_container_0_Template","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵelement","ɵɵadvance","ɵɵpropertyInterpolate","ctx_r0","vendastaLogo","ɵɵsanitizeUrl","ɵɵelementContainer","ɵɵlistener","ɵɵrestoreView","_r2","ɵɵnextContext","ɵɵresetView","hoveringLogo","editLogo","ɵɵtemplate","LogoComponent_ng_container_0_ng_container_4_div_1_ng_container_1_Template","LogoComponent_ng_container_0_ng_container_4_div_1_mat_icon_2_Template","ɵɵproperty","ɵɵpureFunction1","_c0","justLogo_r3","ɵɵelementContainerStart","LogoComponent_ng_container_0_ng_container_4_div_1_Template","ɵɵpipeBind1","shouldShowEditCapability$","_r4","ɵɵtextInterpolate1","LogoComponent_ng_container_0_ng_template_6_a_0_Template","shouldShowAddLogo$","LogoComponent_ng_container_0_div_1_Template","LogoComponent_ng_container_0_ng_container_4_Template","LogoComponent_ng_container_0_ng_template_6_Template","ɵɵtemplateRefExtractor","shouldShowPoweredByVendasta$","addLogo_r5","whiteLabelLogoUrlDisplay$","VENDASTA_LOGO","DEFAULT_LOGO","LogoComponent","constructor","access","urlService","configService","userBrandingService","router","ngOnInit","isSuperAdminRoute$","hasWhitelabel$","hasAccessToFeature","pipe","startWith","combineLatest","branding$","map","branding","hasWhitelabel","uiTheme","UITheme","UI_THEME_DARK","darkModeLogoUrl","logoUrl","shareReplay","refCount","bufferSize","userCanCustomizeWhitelabel$","config$","config","userCanCustomizeWhitelabel","cobrandingDisabled","navigateByUrl","ɵɵdirectiveInject","StubAccessService","UrlService","AppConfigService","UserBrandingService","Router","selectors","standalone","decls","vars","consts","template","rf","ctx","LogoComponent_ng_container_0_Template","LogoComponent_ng_template_2_Template","LogoComponent_ng_template_4_Template","superAdminView_r6","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate1","ɵɵpipeBind1","ɵɵpipeBind2","ɵɵpureFunction1","_c2","data_r3","remainingDays","ɵɵelementContainerStart","ɵɵtemplate","TrialBannerComponent_ng_container_0_glxy_alert_1_ng_container_6_ng_container_2_ng_template_6_Template","TrialBannerComponent_ng_container_0_glxy_alert_1_ng_container_6_ng_container_2_ng_template_7_Template","_c1","trialDetails_r4","endDate","ctx_r1","dateFormat","longDate","ɵɵproperty","TrialBannerComponent_ng_container_0_glxy_alert_1_ng_container_6_span_1_Template","TrialBannerComponent_ng_container_0_glxy_alert_1_ng_container_6_ng_container_2_Template","ɵɵlistener","ɵɵrestoreView","_r1","ɵɵnextContext","ɵɵresetView","openSalesVideo","TrialBannerComponent_ng_container_0_glxy_alert_1_ng_container_6_Template","learnMore","ɵɵtextInterpolate2","tierName","_c0","remainingDays$","TrialBannerComponent_ng_container_0_glxy_alert_1_Template","onTrial","TrialBannerComponent","constructor","trialBannerService","router","analyticsService","urlService","DateFormat","ngOnInit","isAutomationsRoute$","isSuperAdminRoute$","trialDetails$","getTrialDetails$","pipe","catchError","of","isFree","shareReplay","bufferSize","refCount","map","details","daysRemaining","startDate","trackEvent","window","open","navigateByUrl","ɵɵdirectiveInject","TrialBannerService","Router","ProductAnalyticsService","UrlService","selectors","standalone","decls","vars","consts","template","rf","ctx","TrialBannerComponent_ng_container_0_Template","ɵɵelementStart","ɵɵtemplate","HelpSideDrawerContainerComponent_mat_drawer_container_0_ng_template_2_Template","ɵɵelementEnd","ɵɵelementContainer","ɵɵadvance","ɵɵproperty","ctx_r1","modeType","sideDrawer_r1","templateRef","page_r3","ɵɵelement","ɵɵprojection","HelpSideDrawerContainerComponent","constructor","helpSideDrawerTemplateRefService","subscriptions","ngOnInit","sideDrawerTemplate$","openTemplate$","push","open$","pipe","tap","open","drawerReference","first","close","subscribe","ngOnDestroy","forEach","s","unsubscribe","ɵɵdirectiveInject","HelpSideDrawerTemplateRefService","selectors","viewQuery","rf","ctx","MatDrawer","HelpSideDrawerContainerComponent_mat_drawer_container_0_Template","HelpSideDrawerContainerComponent_ng_template_2_Template","ɵɵtemplateRefExtractor","ɵɵpipeBind1","ɵɵelement","ɵɵproperty","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r5","ctx_r2","ɵɵnextContext","ɵɵresetView","showHelpCenter","ɵɵelementEnd","ɵɵelementContainerStart","ɵɵtemplate","AppComponent_ng_container_0_ng_container_1_ng_container_15_inbox_ai_button_5_Template","_r4","helpCenterTemplateId","AppComponent_ng_container_0_ng_container_1_ng_container_15_inbox_button_11_Template","ɵɵadvance","ɵɵpropertyInterpolate","ɵɵpipeBind1","inboxAIFeatureFlag$","hasViewAccessForInboxAI$","helpDrawerSelected$","hasViewAccessForInboxFeature$","_r6","_r7","_r8","AppComponent_ng_container_0_ng_container_1_ng_template_17_atlas_item_0_Template","AppComponent_ng_container_0_ng_container_1_ng_template_17_atlas_item_2_Template","AppComponent_ng_container_0_ng_container_1_ng_template_17_inbox_ai_button_4_Template","AppComponent_ng_container_0_ng_container_1_ng_template_17_inbox_button_7_Template","hasViewAccessForNewReleases$","hasViewAccessForHelpCenter$","activeMenuId$","menuItem_r9","ɵɵelementContainer","_r1","nav_r2","ɵɵreference","toggle","ɵɵtext","showAtlasPidSelector","AppComponent_ng_container_0_ng_container_1_ng_container_15_Template","AppComponent_ng_container_0_ng_container_1_ng_template_17_Template","ɵɵtemplateRefExtractor","AppComponent_ng_container_0_ng_container_1_app_level_badge_30_Template","AppComponent_ng_container_0_ng_container_1_app_trial_badge_32_Template","AppComponent_ng_container_0_ng_container_1_app_nav_item_34_Template","AppComponent_ng_container_0_ng_container_1_app_assigned_salesperson_nav_footer_card_37_Template","AppComponent_ng_container_0_ng_container_1_ng_container_41_Template","menuItems","useDarkNavHeader$","showAtlasPidSelector$","ɵɵtextInterpolate1","atlasTitle$","isMobile$","desktop_r10","viewMode$","disableInboxFeature$","vaNavTheme$","ɵɵpureFunction1","_c1","isSuperAdminRoute$","navItems$","hasViewAccessForSalesContactCard$","pageContent_r11","AppComponent_ng_container_0_ng_container_1_Template","isOnboardingUrl$","AppComponent_ng_template_4_glxy_loading_spinner_1_Template","loadingLazyModule","partnerId","subscriptionTier","DEFAULT_NAV_THEME","DEFAULT_FAVICON_URL","AppComponent","constructor","failedPaymentsService","zone","router","unifiedTosService","analytics","configService","billingFeatureService","environmentService","productAnalytics","dialog","omniSearchService","access","matIconRegistry","sanitizer","translate","whitelabelService","partnerService","route","location","partnerServiceV1","breakpointObserver","navService","helpSideDrawerTemplateRefService","userBrandingService","urlService","iamService","cdr","document","title","partnerTrialStoreService","styleService","inject","StyleService","aiIconService","GalaxyAiIconService","subscriptions","userOptions","hasAccessToMarkets$","hasAccessToFeature","partner$","partnerConfig$","configLoading$","loading$","checkingPaymentRequired$$","BehaviorSubject","currentUrl$","viewMode$$","ReplaySubject","asObservable","partnerName$","config$","pipe","map","config","partnerName","partnerId$","combineLatest","superadmin","open$","open","url","startsWith","hasViewAccess$","hasAccessToViews","shareReplay","get","hasAccess","user$","unifiedUserId","userId","switchMap","id","getUser","UserIdentifier","window","ngAppComponent","setWhiteLabelColor","value","setNavTheme","setWhiteLabelLogo","iframeClickHandler","revealOmnisearch","event","ngRouter","component","moment","locale","getLocale","initializeTitleAndFavIcon","getCurrentPathForNavSelection","currentPath","results","RegExp","exec","embedRoute","decodeURIComponent","replace","currentPathParts","split","length","queryParts","ngOnInit","update","GalaxyTheme","Light","next","isLargeScreen","nonSuperadminTabs$","getNavItems","products","nonSuperadminTabs","superadminTabs","distinctUntilChanged","navItems","setSelectedNavItemForPath","push","events","filter","RouteConfigLoadStart","RouteConfigLoadEnd","debounce","e","delay","interval","subscribe","pageLoading$","configLoading","getEnvironment","Environment","PROD","initializeHotJar","subscriptionTier$","s","SubscriptionTiersService","isFree","Object","prototype","hasOwnProperty","call","setHotJarIdentity","tap","wootricEnabled","initializeWootric","email","userEmail","createdAt","userCreated","accountToken","persona","success","accountExecutive","userMarket","devServer","initialize","environment","projectUUID","postHogID","projectName","partner","pid","name","pidChanges$","c","userCanCustomizeWhitelabel","userCanAccessOmnisearch","userCanAccessAccounts","isSuperAdmin","registerSuperadminOmnisearchIntent","description","shortcut","itemOfIntent","callback","showPartnerSwitcherDialog","showPartnerOverviewDialog","registerPartnerOmnisearchIntent","showSwitchLocationDialog","showImpersonateUserDialog","routerUrl","buildUserOptions","partnerTrial$","partnerConfig","subscription","user","trial","trackProperties","isOnTrial","status","TrialStatus","ACTIVE","zendeskInit","getTermsOfServiceData","initializeUserOnboarding","initializeCanny","hasWhitelabel$","startWith","branding$","branding","uiTheme","UITheme","UI_THEME_DARK","undefined","includes","darkModeLogoUrl","hasWhitelabel","superadminRoute","uiThemeFromEnum","isImpersonated","addSvgIcon","bypassSecurityTrustResourceUrl","observe","Breakpoints","XSmall","result","matches","ngOnDestroy","forEach","unsubscribe","Canny","ngAfterViewInit","helpCenter","changes","take","ref","registerTemplate","first","intent","registerIntent","setTitle","instant","favIcon","getElementById","faviconUrl","setAttribute","Date","now","chatTags","priority_chat_support","zE","prefill","userFirstName","userLastName","detectChanges","appID","position","align","theme","permissions","keys","roles","role","chmln","identify","created","isAdmin","userIsAdmin","project","role_permissions","company","uid","partnerCreated","plan","version","tierVersion","allNavItems","nestedNavItems","item","nestedItems","concat","reduce","a","b","activeMenuId","Boolean","sort","menuId","_value","setUiTheme","uiThemeToEnum","setLogoUrl","partner_id","rightIcon","label","icon","expanded","option","showOmniSearch","tag","target","tagName","toLowerCase","key","omnisearchDialogRef","OmniSearchComponent","width","afterClosed","close","AccountGroupSearcherComponent","UserSwitcherComponent","PartnerSwitcherComponent","show","PartnerOverviewComponent","templateId","onResize","matchMedia","ɵɵdirectiveInject","FailedPaymentsService","NgZone","Router","UnifiedTOSService","AnalyticsService","AppConfigService","BillingFeatureService","EnvironmentService","ProductAnalyticsService","MatDialog","OmniSearchService","StubAccessService","MatIconRegistry","DomSanitizer","TranslateService","WhitelabelService","PartnerServiceV2","ActivatedRoute","Location","PartnerService","BreakpointObserver","NavigationService","HelpSideDrawerTemplateRefService","UserBrandingService","UrlService","FeatureFlags","INBOX_AI_ATLAS_LINK","IAMService","ChangeDetectorRef","DOCUMENT","Title","PartnerTrialStoreService","selectors","viewQuery","rf","ctx","$event","ɵɵresolveWindow","AppComponent_ng_container_0_Template","AppComponent_ng_template_2_Template","AppComponent_ng_template_4_Template","AppComponent_ng_template_6_Template","loading_r12","hj","createdAdjustedToMilliseconds","userCreatedDate","identityInfo","toISOString","oneWeekAgo","setDate","getDate","getTime","userNotNew","console","error","navData","Array","nav","navItem","link","tab_id","i18n_key","ngRoute","pop_out","ng_route","svgIcon","svg_icon","locked","badge","popOut","right_icon","nested_tabs","subsection_header","subsectionHeader","PartnerCenterBillingCoreModule","forRoot","config","ngModule","providers","provide","PARTNER_CENTER_BILLING_CONFIG_TOKEN","useExisting","deps","PARTNER_CENTER_TOKEN_FOR_PCC_BILLING_CONFIG","InjectionToken","providedIn","factory","partnerId$","inject","marketId$","accountGroupService","AccountGroupService","brandingService","BrandingV2Service","accountService","AccountService","assignedSalespersonService","AssignedSalespersonService","dialog","MatDialog","trialService","PartnerTrialStoreService","partnerService","PartnerService","supportNumberService","SupportNumberService","recipientService","RecipientProviderService","merchantId$","PARTNER_ID_INJECTION_TOKEN","customerService","getCustomer","customerId","get","ProjectionFilter","napData","accountGroupExternalIdentifiers","pipe","map","a","name","companyName","marketId","externalIdentifiers","getUsers","switchMap","partnerId","loadUsers","users","u","__spreadProps","__spreadValues","userId","unifiedUserId","merchantService","getBranding","combineLatest","isFreeMerchant$","subscriptionTier$","s","SubscriptionTiersService","isFree","isTrialActive$","partnerTrial$","t","status","TrialStatus","ACTIVE","supportNumber$","getSupportNumber","recipientProvider","openAssignedSalespersonDialog","__async","config","firstValueFrom","dialogConfig$","open","AssignedSalespersonDialogComponent","BillingProviderModule","PartnerCenterBillingCoreModule","forRoot","BulkImportModule","ActionListsStoreService","BulkImportService","BulkImportMappingService","CreateOrEditCustomFieldService","imports","MatStepperModule","ReactiveFormsModule","MatFormFieldModule","MatInputModule","SideDrawerModule","MatButtonModule","MatIconModule","FormsModule","MatAutocompleteModule","MatRadioModule","VaMaterialTableModule","MatCheckboxModule","MatTableModule","MatSelectModule","MatProgressSpinnerModule","MatDialogModule","MatListModule","MatTooltipModule","GalaxyPageModule","TranslateModule","GalaxyAlertModule","AuxiliaryDataPageModule","SideDrawerContainerComponent","CommonModule","AuxiliaryDataModule","AuxiliaryDataPanelComponentModule","MatModules","MatIconModule","MatMenuModule","MatTooltipModule","LevelBadgeModule","LevelBadgeStoreService","imports","CommonModule","TranslateModule","VariableMenuMatDialogComponent","constructor","dialogRef","data","partnerId","marketId","isOrderAutomation","extraMenuItems","supportedSubstitutionOptions","dontIncludeDefaultCategories","formResult","result","close","ɵɵdirectiveInject","MatDialogRef","MAT_DIALOG_DATA","selectors","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵlistener","$event","ɵɵadvance","ɵɵtextInterpolate","ɵɵpipeBind1","ɵɵproperty","VariableMenuDialogComponent","MatDialogModule","MatDialogTitle","TranslateModule","TranslatePipe","styles","ForAppEngineUrlSerializer","DefaultUrlSerializer","serialize","tree","replace","__ngFactoryType__","factory","ɵfac","en_devel_default","MeetingAnalysisI18nModule","TranslateModule","LexiconModule","forChild","componentName","baseTranslation","En","EmailSettingsModule","provide","SETUP_HELP_INFO_URL_INJECTION_TOKEN","useValue","imports","CommonModule","GalaxyPageModule","TranslateModule","DomainAuthorizationModule","MatButtonModule","TrialBannerModule","CommonModule","TranslateModule","GalaxyAlertModule","GalaxyPipesModule","HelpSideDrawerModule","CommonModule","MatButtonModule","MatIconModule","MatToolbarModule","HelpCenterModule","CommonModule","MatIconModule","MatButtonModule","MatExpansionModule","MatSidenavModule","MatDividerModule","GalaxyLoadingSpinnerModule","GalaxyBadgeModule","TranslateModule","LexiconModule","forChild","componentName","WEBLATE_COMPONENT_NAME","baseTranslation","UIKitModule","HelpSideDrawerModule","AssignedSalespersonModule","GalaxyInputModule","TrialBannerModule","ConversationPartnerCenterService","constructor","router","participantService","snackbarService","urlShortenerService","viewModeService","featureFlagService","invoiceService","ssoService","analyticsService","taxRateService","partnerAccountGroupService","partnerId$","partnerId","toSignal","getConversationTitleInfo","conversationDetail","recipients","getRecipient","conversationTitleInfo","title","secondarySubtitle","subtitle","map","recipient","participantType","ParticipantType","PARTICIPANT_TYPE_CUSTOMER","isParticipantInternalInfoDeleted","push","name","phoneNumber","internalParticipantId","filter","item","join","length","address","find","PARTICIPANT_TYPE_ACCOUNT_GROUP","firstLineAddress","secondLineAddress","city","state","country","conversation","channel","ConversationChannel","CONVERSATION_CHANNEL_OPENAI","subjectParticipants","participants","participant","isSubjectParticipant","recipientResult","subjectParticipant","result","PARTICIPANT_TYPE_PARTNER","Participant","isSenderFromOrganization","message","sender","PARTICIPANT_TYPE_IAM_USER","accountGroupId","PARTICIPANT_TYPE_DIGITAL_AGENT","PARTICIPANT_TYPE_OPENAI_BOT","CONVERSATION_CHANNEL_WEB_CHAT","isYourExpert","isRecipientInternalInfoDeleted","buildSubjectParticipant","GlobalParticipantType","GLOBAL_PARTICIPANT_TYPE_ACCOUNT_GROUP","buildAccountGroup","GLOBAL_PARTICIPANT_TYPE_PARTNER","buildPartner","GLOBAL_PARTICIPANT_TYPE_VENDOR","buildVendor","GLOBAL_PARTICIPANT_TYPE_CUSTOMER","buildContactParticipant","viewContact","contactId","_firestoreDocId","openErrorSnack","routeTemplate","PAGE_ROUTES","CONTACT","ROOT","SUBROUTES","PROFILE","setViewMode","navigate","replace","buildParticipant","getPartnerAccountGroupMapping","pipe","catchError","err","console","error","status","Error","switchMap","partnerFromAccountGroup","batchGetStatus","featureFlagsStatus","featureFlags","of","buildParticipants","currentIAMParticipant","participantList$","forEach","forkJoin","buildSendMessageParams","location","PlatformLocation","PLATFORM_LOCATION_PARTNER_CENTER","redirectToInternalConversation","recipientSubjectParticipant","take","subscribe","params","createPaymentLink","paymentLinkItems","senderInternalId","getSubjectParticipantByType","participantInternalId","trackingProps","id","toFirestoreId","conversationId","mergeMap","invoiceId","trackEvent","__spreadProps","__spreadValues","getEntryUrl","newPartnerServiceContext","path","skipGatewayAuthentication","_","shortenLink","link","match","createLink","Owner","OWNER_UNTRACKED","domain","shortCode","navigateToCreateContact","outlets","inbox","calculatePaymentLinkTax","amount","merchantId","customerId","calculate","response","taxableAmount","getKabobAvailableActions","actionsAvailable","customerRecipient","viewContactAction","action","posthogLabel","goToAccountAction","then","openBusinessAppButton","openBusinessApp","getAppOptions","entryUrl$","firstValueFrom","entryUrl","window","open","addNextUrl","getUsers","getNamespace","namespaceType","ɵɵinject","Router","ParticipantService","SnackbarService","UrlShortenerService","ViewModeService","FeatureFlagService","InvoiceService","SSOService","ProductAnalyticsService","TaxRateService","PartnerAccountGroupService","factory","ɵfac","imageServiceFactory","imageService","getImageSrc","imageName","INBOX_CONFIG_FOR_CONVERSATION","InjectionToken","providedIn","factory","userService","inject","DashboardService","partnerService","PartnerService","whitelabelService","WhitelabelService","featureFlagService","FeatureFlagService","appConfigService","AppConfigService","inboxApiService","InboxApiService","userId$","getCurrentUser","pipe","map","user","userId","filter","Boolean","distinctUntilChanged","shareReplay","refCount","bufferSize","accountGroupId$","of","partnerId$","getPartnerId","partnerId","country$","take","switchMap","getConfiguration","config","mailingConfiguration","mailingCountry","geographicalState$","partnerBrandName$","companyName$","featureFlag$","batchGetStatus","featureFlags","platformLocation","PlatformLocation","PLATFORM_LOCATION_PARTNER_CENTER","routes$","root","sendNewMessage","useModal","marketId$","isImpersonating$","config$","isImpersonated","webChatEnabled$","smsAIResponderEnabled$","accountGroupId","subjectParticipant","participantType","GlobalParticipantType","GLOBAL_PARTICIPANT_TYPE_PARTNER","internalParticipantId","catchError","configuration","aiConfiguration","smsResponderEnabled","smsEnabled$","whatsAppEnabled$","SmsRegistrationLibraryInjectionToken","InjectionToken","factory","partnerService","inject","PartnerService","smsService","SmsApiService","subAccountId$","getPartnerId","pipe","switchMap","partnerId","getAccountInfo","sender","internalId","type","ParticipantType","PARTICIPANT_TYPE_PARTNER","catchError","e","console","error","of","filter","accountInfo","map","subaccountId","ownerId$","ownerType","OwnerType","OWNER_TYPE_PARTNER","subaccountID$","AppListingService","constructor","marketplacePackagesService","partnerId$","marketId$","listAllActivatableApps","combineLatest","pipe","take","switchMap","partnerID","marketID","getAllActivatableApps","ɵɵinject","MarketplaceAppService","factory","ɵfac","LogoSource","constructor","partnerID$","svc","logoURL$","pipe","switchMap","pid","getBranding","map","branding","logoUrl","shareReplay","bufferSize","refCount","ɵɵinject","BrandingV2Service","factory","ɵfac","PARTNER_CENTER_REPORTING_CONFIG_TOKEN","InjectionToken","providedIn","factory","environmentService","inject","EnvironmentService","partnerId$","AppConfigService","config$","pipe","map","config","partnerId","getEnvironment","sessionId$","SessionService","getSessionId","userId$","unifiedUserId","reportsUrl","BulkNotificationsChangeComponent","constructor","userBulkActionsService","partnerService","vConfigService","dropdownOptions","id","name","key","partnerId","componentDestroyed$$","Subject","ngOnInit","notifications","generateNotificationObject","getConfigurations","pipe","takeUntil","subscribe","vbcDetails","vbc_product_name","ngOnDestroy","next","getClass","settingId","sectionIndex","optionIndex","notifValue","find","notif","sections","options","value","undefined","selectChange","section","setNotificationUpdate","setting","sectionId","sectionType","title","valueFlag","iconType","iconUrl","ɵɵdirectiveInject","UserBulkActionsService","PartnerService","VConfigService","selectors","standalone","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵlistener","$event","ɵɵelementEnd","ɵɵproperty","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵproperty","opt_r4","id","ɵɵadvance","ɵɵtextInterpolate1","ɵɵpipeBind1","key","ɵɵlistener","$event","tab_r2","ɵɵrestoreView","_r1","$implicit","ctx_r2","ɵɵnextContext","ɵɵresetView","selectChange","name","ɵɵtemplate","BulkTabAccessChangeComponent_div_1_mat_option_8_Template","getClass","ɵɵtextInterpolate","icon","dropdownOptions","BulkTabAccessChangeComponent","constructor","userBulkActionsService","tabsGivenAccess","tabsRemovedAccess","ngOnInit","data","getUserTabAccessInfo","tabId","find","tab","event","value","filter","push","setTabAccess","ɵɵdirectiveInject","UserBulkActionsService","selectors","standalone","decls","vars","consts","template","rf","ctx","BulkTabAccessChangeComponent_div_1_Template","tabs","MAT_MODULES","MatAutocompleteModule","MatTabsModule","MatIconModule","MatSelectModule","MatSlideToggleModule","MatCardModule","MatButtonModule","MatStepperModule","MatGridListModule","MatInputModule","UserBulkActionsModule","LegacyNotificationPreferenceService","BulkUserImportService","imports","CommonModule","UIKitModule","SharedModule","TranslateModule","GalaxyPageModule","RouterModule","NotificationPreferencesModule","MatButtonToggleModule","GalaxyAlertModule","UserBulkActionsComponent","NgForOf","NgIf","MatTab","MatTabGroup","MatSlideToggle","MatCard","MatButton","VaBadgeComponent","PageComponent","PageToolbarComponent","PageTitleDirective","PageNavDirective","PageNavButtonComponent","PageWrapperDirective","RouterLink","AlertComponent","BulkTabAccessChangeComponent","BulkNotificationsChangeComponent","AsyncPipe","TranslatePipe","WhitelabelModule","CommonModule","MatDialogModule","GalaxyUploaderModule","MatIconModule","RouterModule","TranslateModule","MatButtonModule","CustomizeDesignModule","GalaxyAlertModule","NEW_WIDGET_CONFIGURATION_URL","DEFAULT_WIDGET_CONFIGURATION_URL","AI_DEFAULT_PARTNERS_ASSISTANT_WORKFORCE","assistant","id","ASSISTANT_ID_CHAT_RECEPTIONIST","name","type","AssistantType","ASSISTANT_TYPE_INBOX","subtitleKey","descriptionKey","decoration","defaultAvatarIcon","DEFAULT_CHAT_RECEPTIONIST_AVATAR_SVG_ICON","gradientColor","isDefault","showConfigButtonOnDefault","AI_DEFAULT_PARTNERS_ASSISTANT_CONNECTIONS","connection","Connection","DEFAULT_CONNECTION_PREFIX","connectionTypeName","iconUrl","WEBCHAT_ICON","connectionType","ConnectionType","WebchatWidget","supportedAssistantTypes","configurationUrl","isConnectionLocked","cta","action","url","showButton","AI_ASSISTANTS_CONFIG","InjectionToken","providedIn","factory","partnerService","inject","PartnerService","whitelabelService","WhitelabelService","appConfigService","AppConfigService","accountGroupId$","of","marketId$","partnerId$","getPartnerId","pipe","map","partnerId","filter","Boolean","distinctUntilChanged","shareReplay","refCount","bufferSize","wlConfig$","switchMap","getConfiguration","defaultAIWorkforce$","AI_DEFAULT_PARTNERS_ASSISTANT_WORKFORCE","defaultConnections$","combineLatest","config","webchatEnabled","enabledFeatures","includes","buildAIDefaultConnections","currentUserId$","config$","unifiedUserId","defaultConnections","AI_DEFAULT_PARTNERS_ASSISTANT_CONNECTIONS","aiConnection","__spreadProps","__spreadValues","connection","Connection","namespace","Namespace","partnerNamespace","aiDefaultConnections","forEach","defaultConnection","connectionType","ConnectionType","WebchatWidget","newAiConnection","structuredClone","cta","action","url","NEW_WIDGET_CONFIGURATION_URL","push","CachedRouteReuseStrategy","constructor","routesToCache","PAGE_ROUTES","COMPANY","ROOT","SUBROUTES","EDIT","PROFILE","CONTACT","DYNAMIC_LISTS_PAGE_ROUTES","cache","Map","shouldCacheRouteValue","route","includes","cacheKey","pathFromRoot","map","el","routeConfig","path","filter","str","length","join","shouldReuseRoute","future","curr","shouldAttach","get","retrieve","shouldDetach","store","handle","set","CONFIG_MANAGER_CONFIG","InjectionToken","providedIn","factory","partnerId$","inject","PartnerService","getPartnerId","pipe","map","partnerId","filter","Boolean","distinctUntilChanged","shareReplay","refCount","bufferSize","unauthedRoutes","BulkActionFeatureCache","constructor","partnerId$","flagSvc","enabled$","pipe","switchMap","partnerId","batchGetStatus","FeatureFlags","BULK_ACTIONS_V2","map","v","shareReplay","ɵɵinject","FeatureFlagService","factory","ɵfac","isEnabled","cache","MAT_MODULES","MatProgressBarModule","MatIconModule","MatInputModule","MatListModule","MatDialogModule","MatButtonModule","MatFormFieldModule","MatToolbarModule","MatTooltipModule","MatDividerModule","MatMenuModule","MatProgressSpinnerModule","configFactory","config","injector","waitForLocationAndLoadConfig","resolve","get","LOCATION_INITIALIZED","Promise","then","some","route","window","location","href","indexOf","load","catch","hasAccessToWeblateFactory","accessService","hasAccessToViews","response","dynamicComponents","textKey","replacementTags","options","nestedDynamicSelector","AppModule","bootstrap","AppComponent","provideHttpClient","withInterceptorsFromDi","withXsrfConfiguration","headerName","cookieName","VendastaPaymentsGuard","GalaxyDefaultProviderOverrides","AppConfigService","provide","APP_INITIALIZER","useFactory","deps","Injector","multi","DEFAULT_LANGUAGE","getLocale","StubAccessService","useExisting","appConfigService","config$","filter","distinctUntilChanged","PartnerIdToken","SENDER_ID_TOKEN","SENDER_INJECTION_TOKEN","buildSenderData","MEETING_SCHEDULER_CONTEXT_INJECTION_TOKEN$","useValue","MS_CONTEXT","MS_CONTEXT_PARTNER","SENDER_EMAIL_LIB_TOKEN","DYNAMIC_COMPONENT_DATA_TOKEN","CONFIG_TOKEN","CampaignConfigFactory","marketService","currentMarket$","market","market_id","MarketsService","marketsService","userAccessibleMarkets$","TranslateService","TranslateStore","a","cfg","unifiedUserId","isImpersonated","ATLAS_CONFIG_TOKEN","urlService","isSuperAdminRoute$","combineLatest","superadmin","serviceProviderId","UrlService","useClass","FEATURE_BULK_ACTIONS_V2","FRESHDESK_INTEGRATION","featureFlagFactory","MANAGE_PLATFORM_INTEGRATIONS","WEBLATE_TRANSLATION_PORTAL","CUSTOM_DATA_FILTER_TABLE","INVOICE_MULTI_FREQUENCY_WARNING","INBOX_AI_ATLAS_LINK","CRM_COMPANY","CREATE_SALES_ORDER","SALESPERSON_MARKET_ACCESS","SALESPERSON_ORDER_APPROVAL_ACCEPTS_PAYMENT","UNIFIED_MARKET_SELECTOR","SCHEDULED_DEACTIVATIONS","SUBSCRIPTION_TIERS_2024","MARKETPLACE_SELL_PRODUCTS","SNAP_VLC_WELCOME_EMAIL","SHOW_SALES_AND_SUCCESS_CENTER","SHOW_MORE_SALESPERSON_PERMISSIONS","LEXICON_TRANSLATE_PORTAL_URL","SnackbarService","HelpSideDrawerTemplateRefService","CONVERSATION_IMAGE_SERVICE_TOKEN","imageServiceFactory","ImageService","currencyService","currency$","CurrencyService","marketId$","kFormat$","InboxModalGuard","AddUserService","UsersServiceInterfaceToken","TaxonomyServiceInterfaceToken","TaxonomyService","CountryStateServiceInterfaceToken","CountryStateService","PartnerServiceInterfaceToken","PartnerService","UrlSerializer","ForAppEngineUrlSerializer","PricePipe","VaDialogService","CONVERSATION_HOST_APP_INTERFACE_TOKEN","ConversationPartnerCenterService","TEMPLATE_HYDRATION_DATA_TOKEN","buildHydrationData","EnvironmentService","AccountGroupApiService","EMAIL_BUILDER_APP_LISTING_SERVICE_TOKEN","AppListingService","EMAIL_BUILDER_ENABLED_RECIPES","LogoSource","PLACEHOLDER_LOGO_URL_TOKEN","src","logoURL$","AUTOMATION_NAMESPACE_INJECTION_TOKEN$","PLATFORM_INTEGRATIONS_NAMESPACE_INJECTION_TOKEN$","PLATFORM_INTEGRATIONS_ORIGIN_INJECTION_TOKEN","MeetingSourceOrigin","PartnerCenter","PLATFORM_INTEGRATIONS_PARTNER_ID_INJECTION_TOKEN$","AUTOMATION_PARTNER_ID_INJECTION_TOKEN$","AUTOMATION_CONTEXT_INJECTION_TOKEN","Context","AUTOMATION_CONTEXT_PARTNER","AUTOMATION_MARKET_ID_INJECTION_TOKEN$","markets","defaultMarket","find","PLATFORM_INTEGRATIONS_MARKET_ID_INJECTION_TOKEN$","AUTOMATION_BUSINESS_ENTRY_URL_SERVICE","BusinessCenterService","AUTOMATIONS_ACCESS_SERVICE","AUTOMATIONS_MARKETS_SERVICE","AUTOMATION_IS_USER_SUPERADMIN$","c","isSuperAdmin","AUTOMATION_DEFAULT_CURRENCY_CODE","AUTOMATIONS_ROUTE_PREFIX$","of","AUTOMATION_VARIABLE_MENU_DIALOG","VariableMenuMatDialogComponent","PLATFORM_INTEGRATIONS_CONTEXT_INJECTION_TOKEN$","SupportedContexts","PI_CONTEXT_PARTNER","BILLING_MARKETS_SERVICE","SmsContextToken","ownerId$","ownerType","OwnerType","OWNER_TYPE_PARTNER","featureFlagInfo$","sendsViaBroadly$","CrmPlatformApiService","RecipientProviderService","SmsApiService","SmsInjectionToken","SmsRegistrationLibraryInjectionToken","RouteReuseStrategy","CachedRouteReuseStrategy","imports","HelpMenuComponent","BrowserModule","LevelBadgeModule","CommonModule","DragulaModule","forRoot","ProductAnalyticsModule","AnalyticsModule","AccountsModule","BrowserAnimationsModule","DashboardModule","AppRoutingModule","AccountModule","TermsOfServiceModule","BusinessProfileModule","GoogleMapsModule","UserBulkActionsModule","NotificationPreferencesModule","AccessModule","TranslateModule","LexiconModule","componentName","WEBLATE_COMPONENT_NAME","baseTranslation","UIKitModule","LocalLoginModule","AtlasModule","EmbedModule","EmailSettingsModule","BulkImportModule","AssignedSalespersonModule","IdentityProviderConfigModule","DateRangeSelectorModule","GalaxySnackbarModule","GalaxyNavModule","GalaxyBadgeModule","GalaxyLoadingSpinnerModule","GalaxyI18NModule","GalaxyTooltipModule","WhitelabelModule","HelpCenterModule","AddressCellModule","EmailBuilderSandboxComponentModule","UserPipelinesModule","ConversationUIModule","ConversationCoreModule","INBOX_CONFIG_FOR_CONVERSATION","ReportingCoreModule","PARTNER_CENTER_REPORTING_CONFIG_TOKEN","InboxComponent","InboxButtonComponent","ActionListsServiceModule","ActionListsLibraryInjectionToken","AuxDataAccountsTableActionModule","AuxDataAccountsActionInjectionToken","PartnerCrmModule","BillingProviderModule","AutomataI18nModule","MeetingAnalysisI18nModule","UsersModule","InboxAIButtonComponent","SmsModule","VaAlertComponent","FormBuilderI18NModule","AiKnowledgeModule","AI_KNOWLEDGE_CONFIG","AiAssistantModule","AI_ASSISTANTS_CONFIG","PlatformIntegrationsI18nModule","ConfigManagerModule","CONFIG_MANAGER_CONFIG","devServer","enableProdMode","platformBrowser","bootstrapModule","AppModule","catch","err","console","error"],"x_google_ignoreList":[4,150,182]}