{"version":3,"sources":["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-platform.service.ts","libs/conversation/core/src/lib/channels/conversation-sms.service.ts","libs/conversation/core/src/lib/firebase.config.ts","libs/conversation/core/src/lib/conversation-core.module.ts","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","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/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/inbox-modal.guard.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","apps/partner-center-client/src/app/core/guards/access-partner-admin-view-guard.service.ts","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","node_modules/ngx-material-file-input/fesm2020/ngx-material-file-input.mjs","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","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/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-knowledge/providers.ts","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/app.module.ts","apps/partner-center-client/src/main.ts"],"sourcesContent":["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(t) {\n return new (t || 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(t) {\n return new (t || 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(t) {\n return new (t || 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(t) {\n return new (t || 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(t) {\n return new (t || 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(t) {\n return new (t || 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(t) {\n return new (t || 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(t) {\n return new (t || 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(t) {\n return new (t || 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 { Injectable, inject } from '@angular/core';\nimport { ConversationChannel, ParticipantType } from '@vendasta/conversation';\nimport { Observable, map, 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';\n\n@Injectable()\nexport class ConversationPlatformService extends ConversationChannelService {\n private readonly inboxService = inject(InboxService);\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 // for business app form submission contacts conversations are created in either email or sms channel\n // but just in case exit early\n if (this.inboxService.isBusinessApp) return of(null);\n\n // for partners there should only one customer in one specific platform conversation (i.e. from form submission)\n const customerParticipant = conversationDetail?.participants?.find(\n (participant) => participant.participantType === ParticipantType.PARTICIPANT_TYPE_CUSTOMER,\n );\n if (!customerParticipant || (!customerParticipant.phoneNumber && !customerParticipant.email)) return of(null);\n\n return this.country$.pipe(\n map((country) => {\n return this.inboxAlerter.smsOrEmailNotAvailableForCapturedLeadError(\n customerParticipant.phoneNumber,\n customerParticipant.email,\n country,\n );\n }),\n );\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { RegistrationStage, SmsRegistrationService } from '@galaxy/sms';\nimport { combineLatest, map, Observable } from 'rxjs';\nimport { InboxService } from '../inbox.service';\nimport { ConversationDetail } from '../interface/conversation.interface';\nimport { CONVERSATION_COUNTRY_TOKEN, CONVERSATION_SMS_ENABLED_TOKEN } from '../tokens';\nimport { AlertOptions, ConversationChannelService } from './conversation-channel.abstract';\n\n@Injectable()\nexport class ConversationSMSService extends ConversationChannelService {\n private router = inject(Router);\n private readonly smsRegistrationService = inject(SmsRegistrationService);\n private readonly inboxService = inject(InboxService);\n private readonly country$ = inject(CONVERSATION_COUNTRY_TOKEN);\n private readonly smsEnabled$ = inject(CONVERSATION_SMS_ENABLED_TOKEN);\n\n getChatComposerAlert(\n partnerId: string,\n accountGroupId: string,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n conversationDetail?: ConversationDetail,\n ): Observable {\n const stage$ = this.smsRegistrationService.registrationStage$;\n const SMSNumber$ = this.inboxService.SMSNumber$;\n return combineLatest([this.country$, this.smsEnabled$, stage$, SMSNumber$]).pipe(\n map(([accountGroupCountry, smsEnabled, stage, smsNumber]) => {\n const country = accountGroupCountry?.toLowerCase() || '';\n if (!smsEnabled) {\n return this.getSMSMessageEnabledError();\n }\n if (!smsNumber) {\n return this.getSMSMPhoneNumberError();\n }\n if (country != 'us' && smsNumber) {\n return null;\n }\n return stage !== RegistrationStage.RegistrationComplete ? this.getSMSRegistrationError(accountGroupId) : null;\n }),\n );\n }\n\n private getSMSRegistrationError(accountGroupId: string): AlertOptions {\n return {\n title: 'INBOX.SETTINGS.SMS_MESSAGES.COMPOSER_A2P_REGISTRATION_REQUIRED.TITLE',\n description: 'INBOX.SETTINGS.SMS_MESSAGES.COMPOSER_A2P_REGISTRATION_REQUIRED.DESCRIPTION',\n action: {\n title: 'INBOX.SETTINGS.SMS_MESSAGES.COMPOSER_A2P_REGISTRATION_REQUIRED.ACTION_TITLE',\n callback: () => this.router.navigate([`/account/location/${accountGroupId}/settings/inbox/sms-registration`]),\n },\n };\n }\n\n private getSMSMessageEnabledError(): AlertOptions {\n return {\n title: 'INBOX.SETTINGS.SMS_MESSAGES.NOT_ENABLED.TITLE',\n description: 'INBOX.SETTINGS.SMS_MESSAGES.NOT_ENABLED.DESCRIPTION',\n };\n }\n\n private getSMSMPhoneNumberError(): AlertOptions {\n return {\n title: 'INBOX.SETTINGS.SMS_MESSAGES.NO_PHONE_NUMBER.TITLE',\n description: 'INBOX.SETTINGS.SMS_MESSAGES.NO_PHONE_NUMBER.DESCRIPTION',\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 { 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 { 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 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';\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 ConversationSMSService,\n ConversationWebchatService,\n ConversationPlatformService,\n InboxAlertService,\n TemplateService,\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_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$, isEnabled$]).pipe(\n switchMap(([agid, isEnabled]) => {\n if (!isEnabled || !agid) {\n return of({ configuration: { smsEnabled: 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.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 inboxApiService = inject(InboxApiService);\n const enableable$ = isObservable(config.instagramMessagesSupported$)\n ? config.instagramMessagesSupported$\n : of(config.instagramMessagesSupported$);\n\n // TODO(BREW-577): update this to use `instagramMessagesEnabled` once the\n // Configuration API is updated to include that\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 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(): Map {\n const conversationGoogleService = inject(ConversationGoogleService);\n const conversationWebChatService = inject(ConversationWebchatService);\n const conversationFacebookService = inject(ConversationFacebookService);\n const conversationPlatformService = inject(ConversationPlatformService);\n let conversationSMSService: ConversationSMSService;\n\n const channelMap = new Map([\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_INTERNAL, conversationPlatformService],\n ]);\n\n try {\n conversationSMSService = inject(ConversationSMSService);\n channelMap.set(ConversationChannel.CONVERSATION_CHANNEL_SMS, conversationSMSService);\n } catch (e) {\n channelMap.set(ConversationChannel.CONVERSATION_CHANNEL_SMS, undefined);\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 { 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 standalone: true,\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, inject, Input, OnInit, signal } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { TranslateModule, TranslateService } 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 { KnowledgeEditorComponent } from '../knowledge-editor/knowledge-editor.component';\nimport { MatDialog, MatDialogConfig, MatDialogModule } from '@angular/material/dialog';\nimport { firstValueFrom, map } 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';\n\n@Component({\n selector: 'ai-knowledge-knowledge-source-management',\n standalone: true,\n imports: [\n CommonModule,\n TranslateModule,\n AiKnowledgeI18nModule,\n GalaxyPageModule,\n MatButtonModule,\n MatIconModule,\n RouterModule,\n MatListModule,\n MatCardModule,\n KnowledgeEditorComponent,\n DeleteCustomKnowledgeComponent,\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 private readonly translateService = inject(TranslateService);\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 await firstValueFrom(this.dialog.open(KnowledgeEditorComponent, conf).afterClosed());\n await this.refreshSources();\n }\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 const editor = this.dialog.open(KnowledgeEditorComponent, conf);\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 { 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})\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})\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})\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 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})\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 standalone: true,\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})\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})\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})\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})\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})\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 standalone: true,\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 standalone: true,\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 standalone: true,\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 } 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 { 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})\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})\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})\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})\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}\n\nexport class WorkflowStepOptions {\n allowSendDirectToAdmin: boolean;\n allowSendToCustomer: boolean;\n maintainTermsAndConditionsAgreement: boolean;\n customSalespersonActions: CustomSalespersonActionInterface[];\n allowOrderFormEditing: boolean;\n allowCollectPaymentFromCustomer: 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 }\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})\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})\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 { combineLatest, 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})\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 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.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 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 combineLatest([this.marketId$, this.markets$])\n .pipe(\n take(1),\n switchMap(([selectedMarketId, userAccessibleMarkets]) => {\n const markets = selectedMarketId ? [selectedMarketId] : userAccessibleMarkets.map((m) => m.marketId);\n markets.push(''); // Include all markets automations\n const dialogRef = this.dialog.open(StartManualAutomationDialogComponent, {\n data: {\n partnerId: this.partnerId,\n marketIds: markets,\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: [\n this.translate.instant('CUSTOMIZE_SALES_ORDERS_CONFIG.WORKFLOW_STEP_SETTINGS.AUTOMATION_WARNING'),\n ],\n },\n });\n return dialogRef.afterClosed();\n }),\n )\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 {{\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})\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})\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})\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})\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})\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})\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})\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})\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';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\n\n@Component({\n selector: 'email-domains',\n templateUrl: './domains.component.html',\n styleUrls: ['./domains.component.scss'],\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 constructor(private readonly snackbar: SnackbarService) {}\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 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})\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})\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(private readonly sdk: DomainService, private readonly dialog: MatDialog) {}\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})\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 standalone: true,\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})\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})\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})\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})\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(() => 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})\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(t) {\n return new (t || 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(t) {\n return new (t || 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(t) {\n return new (t || 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.TITLE',\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})\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})\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})\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})\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})\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})\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})\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})\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})\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 standalone: true,\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})\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})\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 { 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 { 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 CONFIG_TOKEN,\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 { 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 { AccessDashboardGuard } 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 { 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 { 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';\nimport { AccessPartnerAdminViewGuard } from './core/guards/access-partner-admin-view-guard.service';\nimport { VendastaPaymentsGuard } from './billing/vendasta-payments.guard';\nimport { AccessViewGuard } from './core/guards/access-view-guard.service';\nimport { Views } from './core/access/interface';\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 loadChildren: () => import('./forgot-password/forgot-password.module').then((m) => m.ForgotPasswordModule),\n data: { noNavbar: true, noCardCheck: true },\n },\n {\n path: 'forgot-password-two',\n loadChildren: () => import('./forgot-password/forgot-password.module').then((m) => m.ForgotPasswordModule),\n data: { noNavbar: true, 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 },\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 },\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],\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],\n data: { feature: Feature.whitelabel },\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],\n data: { feature: Feature.whitelabel },\n },\n {\n path: 'customize-design/',\n redirectTo: 'customize-design',\n },\n {\n path: 'customize-branding',\n canActivate: [AccessFeatureGuard],\n data: { feature: Feature.whitelabel },\n loadChildren: () => import('./customize-branding/customize-branding.module').then((m) => m.CustomizeBrandingModule),\n },\n {\n path: 'customize-design/default-notifications',\n loadChildren: () =>\n import('./user-notifications/notification-preferences.module').then((m) => m.NotificationPreferencesModule),\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 },\n {\n path: 'manage-accounts/files',\n loadChildren: () => import('./files/files.module').then((m) => m.FilesModule),\n },\n {\n path: 'action-lists/manage',\n component: ActionListsOverviewComponent,\n canActivate: [AccessFeatureGuard],\n data: { feature: Feature.lists },\n },\n {\n path: 'action-lists/manage/:listType',\n component: ActionListsOverviewComponent,\n canActivate: [AccessFeatureGuard],\n data: { feature: Feature.lists },\n },\n {\n path: 'action-lists/:actionListId/:tabId',\n component: ActionListsDetailsComponent,\n canActivate: [AccessFeatureGuard],\n data: { feature: Feature.lists },\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 },\n { path: 'company-profile', component: CompanyProfileComponent },\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],\n data: { feature: Feature.brands },\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],\n canDeactivate: [PendingChangesGuard],\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 },\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 loadChildren: () => import('./billing/payouts/payouts.module').then((m) => m.PayoutsModule),\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 },\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],\n data: { feature: Feature.customFields },\n },\n {\n path: 'custom-forms',\n loadChildren: () => import('./custom-forms/custom-forms.module').then((m) => m.CustomFormsModule),\n },\n {\n path: 'st', // TODO: Stop using `st` and use `sales` instead.\n loadChildren: () => import('./sales/sales.module').then((m) => m.SalesModule),\n },\n {\n path: 'sales',\n loadChildren: () => import('./sales/sales.module').then((m) => m.SalesModule),\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],\n data: { feature: Feature.concierge },\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: 'salesperson-activity',\n loadChildren: () =>\n import('./sales/team-activity-page/team-activity-page.module').then((m) => m.TeamActivityPageModule),\n canActivate: [AccessFeatureGuard],\n data: { feature: Feature.theLoop },\n },\n {\n path: 'integrations/service-accounts',\n loadChildren: () =>\n import('./integrations/service-account/service-account.module').then((m) => m.ServiceAccountModule),\n canActivate: [AccessFeatureGuard],\n data: { feature: Feature.serviceAccounts },\n },\n {\n path: 'integrations/sso',\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 },\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: [ManageAccountsGuard],\n },\n {\n path: 'manage-accounts',\n loadChildren: () => import('./manage_accounts/manage-accounts.module').then((m) => m.ManageAccountsModule),\n canActivate: [ManageAccountsGuard],\n data: { objectType: 'company' },\n },\n {\n path: 'business',\n loadChildren: () => import('./business/business.module').then((m) => m.BusinessModule),\n canActivate: [ManageAccountsGuard],\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: '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: 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 data: {\n previousPageTitle: 'ADMINISTRATION.PAGE_TITLE',\n previousPageUrl: '/settings',\n },\n },\n {\n path: 'integrations',\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 },\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: 'dynamic-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: '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 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, 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';\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})\nexport class AppComponent implements OnInit, AfterViewInit, OnDestroy {\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 ) {\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 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([Views.assignedSalespersonCard, Views.helpCenter, Views.newReleases, Views.inboxAi])\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(map((access) => access.get(Views.inboxAi)));\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.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 ]).pipe(\n tap(([partnerConfig, subscription, user]) => {\n this.subscriptionTier = subscription.id;\n this.productAnalytics.trackProperties({ 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.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\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})\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})\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})\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})\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})\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.find((p) => p.id === partnerInfo.id);\n if (found) {\n found.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

{{ recentPartner.id }}

\n

{{ recentPartner.name }}

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

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

\n \n

{{ partner.id }}

\n

{{ partner.name }}

\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})\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})\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})\nexport class TrialBadgeComponent {\n showBadge$: Observable;\n trialActive$: Observable;\n trialExpiringSoon$: Observable;\n trialDaysRemaining$: Observable;\n\n constructor(private trialService: PartnerTrialStoreService, private badgeStore: LevelBadgeStoreService) {\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, publishReplay, refCount, 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';\n\nconst VENDASTA_LOGO = 'https://vstatic-prod.apigateway.co/partner-center-client.9223372035132760725.prod/assets/images/vendasta-logo.png';\nconst DEFAULT_LOGO =\n 'https://vstatic-prod.apigateway.co/partner-center-client.9223372035132760725.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})\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 return branding.logoUrl;\n }),\n publishReplay(1),\n refCount(),\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})\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, OnDestroy, OnInit, Optional, QueryList, ViewChildren } from '@angular/core';\nimport { MatDrawer } 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})\nexport class HelpSideDrawerContainerComponent implements OnInit, OnDestroy {\n @ViewChildren(MatDrawer) drawerReference: QueryList;\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 * as i0 from '@angular/core';\nimport { Component, Optional, Self, Input, HostBinding, HostListener, InjectionToken, Pipe, Inject, NgModule } from '@angular/core';\nimport * as i1 from '@angular/cdk/a11y';\nimport { FocusMonitor } from '@angular/cdk/a11y';\nimport * as i2 from '@angular/material/core';\nimport { mixinErrorState } from '@angular/material/core';\nimport { MatFormFieldControl } from '@angular/material/form-field';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { Subject } from 'rxjs';\nimport * as i3 from '@angular/forms';\n\n/**\n * The files to be uploaded\n */\nclass FileInput {\n constructor(_files, delimiter = ', ') {\n this._files = _files;\n this.delimiter = delimiter;\n this._fileNames = (this._files || []).map(f => f.name).join(delimiter);\n }\n get files() {\n return this._files || [];\n }\n get fileNames() {\n return this._fileNames;\n }\n}\n\n// Boilerplate for applying mixins to FileInput\n/** @docs-private */\nclass FileInputBase {\n constructor(_defaultErrorStateMatcher, _parentForm, _parentFormGroup, ngControl, stateChanges) {\n this._defaultErrorStateMatcher = _defaultErrorStateMatcher;\n this._parentForm = _parentForm;\n this._parentFormGroup = _parentFormGroup;\n this.ngControl = ngControl;\n this.stateChanges = stateChanges;\n }\n}\n/**\n * Allows to use a custom ErrorStateMatcher with the file-input component\n */\nconst FileInputMixinBase = mixinErrorState(FileInputBase);\nlet FileInputComponent = /*#__PURE__*/(() => {\n class FileInputComponent extends FileInputMixinBase {\n /**\n * @see https://angular.io/api/forms/ControlValueAccessor\n */\n constructor(fm, _elementRef, _renderer, _defaultErrorStateMatcher, ngControl, _parentForm, _parentFormGroup) {\n super(_defaultErrorStateMatcher, _parentForm, _parentFormGroup, ngControl, new Subject());\n this.fm = fm;\n this._elementRef = _elementRef;\n this._renderer = _renderer;\n this._defaultErrorStateMatcher = _defaultErrorStateMatcher;\n this.ngControl = ngControl;\n this._parentForm = _parentForm;\n this._parentFormGroup = _parentFormGroup;\n this.focused = false;\n this.controlType = 'file-input';\n this.autofilled = false;\n this._required = false;\n this.accept = null;\n this.id = `ngx-mat-file-input-${FileInputComponent.nextId++}`;\n this.describedBy = '';\n this._onChange = _ => {};\n this._onTouched = () => {};\n if (this.ngControl != null) {\n this.ngControl.valueAccessor = this;\n }\n fm.monitor(_elementRef.nativeElement, true).subscribe(origin => {\n this.focused = !!origin;\n this.stateChanges.next();\n });\n }\n setDescribedByIds(ids) {\n this.describedBy = ids.join(' ');\n }\n get value() {\n return this.empty ? null : new FileInput(this._elementRef.nativeElement.value || []);\n }\n set value(fileInput) {\n if (fileInput) {\n this.writeValue(fileInput);\n this.stateChanges.next();\n }\n }\n get multiple() {\n return this._multiple;\n }\n set multiple(value) {\n this._multiple = coerceBooleanProperty(value);\n this.stateChanges.next();\n }\n get placeholder() {\n return this._placeholder;\n }\n set placeholder(plh) {\n this._placeholder = plh;\n this.stateChanges.next();\n }\n /**\n * Whether the current input has files\n */\n get empty() {\n return !this._elementRef.nativeElement.value || this._elementRef.nativeElement.value.length === 0;\n }\n get shouldLabelFloat() {\n return this.focused || !this.empty || this.valuePlaceholder !== undefined;\n }\n get required() {\n return this._required;\n }\n set required(req) {\n this._required = coerceBooleanProperty(req);\n this.stateChanges.next();\n }\n get isDisabled() {\n return this.disabled;\n }\n get disabled() {\n return this._elementRef.nativeElement.disabled;\n }\n set disabled(dis) {\n this.setDisabledState(coerceBooleanProperty(dis));\n this.stateChanges.next();\n }\n onContainerClick(event) {\n if (event.target.tagName.toLowerCase() !== 'input' && !this.disabled) {\n this._elementRef.nativeElement.querySelector('input').focus();\n this.focused = true;\n this.open();\n }\n }\n get fileNames() {\n return this.value ? this.value.fileNames : this.valuePlaceholder;\n }\n writeValue(obj) {\n this._renderer.setProperty(this._elementRef.nativeElement, 'value', obj instanceof FileInput ? obj.files : null);\n }\n registerOnChange(fn) {\n this._onChange = fn;\n }\n registerOnTouched(fn) {\n this._onTouched = fn;\n }\n /**\n * Remove all files from the file input component\n * @param [event] optional event that may have triggered the clear action\n */\n clear(event) {\n if (event) {\n event.preventDefault();\n event.stopPropagation();\n }\n this.value = new FileInput([]);\n this._elementRef.nativeElement.querySelector('input').value = null;\n this._onChange(this.value);\n }\n change(event) {\n const fileList = event.target.files;\n const fileArray = [];\n if (fileList) {\n for (let i = 0; i < fileList.length; i++) {\n fileArray.push(fileList[i]);\n }\n }\n this.value = new FileInput(fileArray);\n this._onChange(this.value);\n }\n blur() {\n this.focused = false;\n this._onTouched();\n }\n setDisabledState(isDisabled) {\n this._renderer.setProperty(this._elementRef.nativeElement, 'disabled', isDisabled);\n }\n ngOnInit() {\n this.multiple = coerceBooleanProperty(this.multiple);\n }\n open() {\n if (!this.disabled) {\n this._elementRef.nativeElement.querySelector('input').click();\n }\n }\n ngOnDestroy() {\n this.stateChanges.complete();\n this.fm.stopMonitoring(this._elementRef.nativeElement);\n }\n ngDoCheck() {\n if (this.ngControl) {\n // We need to re-evaluate this on every change detection cycle, because there are some\n // error triggers that we can't subscribe to (e.g. parent form submissions). This means\n // that whatever logic is in here has to be super lean or we risk destroying the performance.\n this.updateErrorState();\n }\n }\n }\n FileInputComponent.nextId = 0;\n FileInputComponent.ɵfac = function FileInputComponent_Factory(t) {\n return new (t || FileInputComponent)(i0.ɵɵdirectiveInject(i1.FocusMonitor), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i2.ErrorStateMatcher), i0.ɵɵdirectiveInject(i3.NgControl, 10), i0.ɵɵdirectiveInject(i3.NgForm, 8), i0.ɵɵdirectiveInject(i3.FormGroupDirective, 8));\n };\n FileInputComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: FileInputComponent,\n selectors: [[\"ngx-mat-file-input\"]],\n hostVars: 6,\n hostBindings: function FileInputComponent_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"change\", function FileInputComponent_change_HostBindingHandler($event) {\n return ctx.change($event);\n })(\"focusout\", function FileInputComponent_focusout_HostBindingHandler() {\n return ctx.blur();\n });\n }\n if (rf & 2) {\n i0.ɵɵhostProperty(\"id\", ctx.id);\n i0.ɵɵattribute(\"aria-describedby\", ctx.describedBy);\n i0.ɵɵclassProp(\"mat-form-field-should-float\", ctx.shouldLabelFloat)(\"file-input-disabled\", ctx.isDisabled);\n }\n },\n inputs: {\n autofilled: \"autofilled\",\n valuePlaceholder: \"valuePlaceholder\",\n accept: \"accept\",\n errorStateMatcher: \"errorStateMatcher\",\n value: \"value\",\n multiple: \"multiple\",\n placeholder: \"placeholder\",\n required: \"required\",\n disabled: \"disabled\"\n },\n features: [i0.ɵɵProvidersFeature([{\n provide: MatFormFieldControl,\n useExisting: FileInputComponent\n }]), i0.ɵɵInheritDefinitionFeature],\n decls: 4,\n vars: 4,\n consts: [[\"input\", \"\"], [\"type\", \"file\"], [1, \"filename\", 3, \"title\"]],\n template: function FileInputComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"input\", 1, 0);\n i0.ɵɵelementStart(2, \"span\", 2);\n i0.ɵɵtext(3);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵattribute(\"multiple\", ctx.multiple ? \"\" : null)(\"accept\", ctx.accept);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"title\", ctx.fileNames);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx.fileNames);\n }\n },\n styles: [\"[_nghost-%COMP%]{display:inline-block;width:100%}[_nghost-%COMP%]:not(.file-input-disabled){cursor:pointer}input[_ngcontent-%COMP%]{width:0px;height:0px;opacity:0;overflow:hidden;position:absolute;z-index:-1}.filename[_ngcontent-%COMP%]{display:inline-block;text-overflow:ellipsis;overflow:hidden;width:100%}\"]\n });\n return FileInputComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Optional token to provide custom configuration to the module\n */\nconst NGX_MAT_FILE_INPUT_CONFIG = new InjectionToken('ngx-mat-file-input.config');\nlet ByteFormatPipe = /*#__PURE__*/(() => {\n class ByteFormatPipe {\n constructor(config) {\n this.config = config;\n this.unit = config ? config.sizeUnit : 'Byte';\n }\n transform(value, args) {\n if (parseInt(value, 10) >= 0) {\n value = this.formatBytes(+value, +args);\n }\n return value;\n }\n formatBytes(bytes, decimals) {\n if (bytes === 0) {\n return '0 ' + this.unit;\n }\n const B = this.unit.charAt(0);\n const k = 1024;\n const dm = decimals || 2;\n const sizes = [this.unit, 'K' + B, 'M' + B, 'G' + B, 'T' + B, 'P' + B, 'E' + B, 'Z' + B, 'Y' + B];\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i];\n }\n }\n ByteFormatPipe.ɵfac = function ByteFormatPipe_Factory(t) {\n return new (t || ByteFormatPipe)(i0.ɵɵdirectiveInject(NGX_MAT_FILE_INPUT_CONFIG, 24));\n };\n ByteFormatPipe.ɵpipe = /* @__PURE__ */i0.ɵɵdefinePipe({\n name: \"byteFormat\",\n type: ByteFormatPipe,\n pure: true\n });\n return ByteFormatPipe;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet MaterialFileInputModule = /*#__PURE__*/(() => {\n class MaterialFileInputModule {}\n MaterialFileInputModule.ɵfac = function MaterialFileInputModule_Factory(t) {\n return new (t || MaterialFileInputModule)();\n };\n MaterialFileInputModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: MaterialFileInputModule\n });\n MaterialFileInputModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: [FocusMonitor]\n });\n return MaterialFileInputModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nclass FileValidator {\n /**\n * Function to control content of files\n *\n * @param bytes max number of bytes allowed\n *\n * @returns\n */\n static maxContentSize(bytes) {\n return control => {\n const size = control && control.value ? control.value.files.map(f => f.size).reduce((acc, i) => acc + i, 0) : 0;\n const condition = bytes >= size;\n return condition ? null : {\n maxContentSize: {\n actualSize: size,\n maxSize: bytes\n }\n };\n };\n }\n}\n\n// Module\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { ByteFormatPipe, FileInput, FileInputComponent, FileValidator, MaterialFileInputModule, NGX_MAT_FILE_INPUT_CONFIG };\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 { MaterialFileInputModule } from 'ngx-material-file-input';\nimport { ActionListsStoreService } from '../action-lists/action-lists.store.service';\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 MaterialFileInputModule,\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 standalone: true,\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","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 getSubjectParticipantByType,\n HostAppInterface,\n KabobDynamicButton,\n ParticipantService,\n SendMessage,\n SubjectParticipant,\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 {\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 { AssociatedUserInterface } from '@vendasta/business-center/lib/_internal/interfaces/api.interface';\n\n@Injectable()\nexport class ConversationPartnerCenterService implements HostAppInterface {\n private partnerId = toSignal(this.partnerId$);\n\n constructor(\n private router: Router,\n private featureFlagService: FeatureFlagService,\n private snackbarService: SnackbarService,\n private participantService: ParticipantService,\n private invoiceService: InvoiceService,\n private ssoService: SSOService,\n private urlShortenerService: UrlShortenerService,\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.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 default:\n return {} as Participant;\n }\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 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 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","// 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 { ConversationChannel, PlatformLocation } from '@vendasta/conversation';\nimport { of } from 'rxjs';\nimport { distinctUntilChanged, filter, map, shareReplay, switchMap, take } from 'rxjs/operators';\nimport { AppConfigService } from '../app-config.service';\nimport { DashboardService } from './../dashboard/dashboard.service';\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\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 const conversationChannelsEnabled$ = of([ConversationChannel.CONVERSATION_CHANNEL_INTERNAL]);\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 return {\n userId$,\n accountGroupId$,\n country$,\n geographicalState$,\n partnerId$,\n partnerBrandName$,\n companyName$,\n featureFlag$,\n platformLocation,\n conversationChannelsEnabled$,\n routes$,\n marketId$,\n isImpersonating$,\n webChatEnabled$,\n };\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})\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})\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 }}\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 { MaterialFileInputModule } from 'ngx-material-file-input';\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 MaterialFileInputModule,\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 { 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 { 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 customerService: {\n getCustomer(customerId: string): Observable<{ name: string }> {\n return accountGroupService\n .get(customerId, new ProjectionFilter({ napData: true }))\n .pipe(map((a) => ({ name: a.napData.companyName })));\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, 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 { UrlSerializer } from '@angular/router';\nimport { ATLAS_CONFIG_TOKEN, AtlasModule } from '@galaxy/atlas';\nimport {\n AUTOMATIONS_ACCESS_SERVICE,\n AUTOMATIONS_MARKETS_SERVICE,\n AUTOMATIONS_ROUTE_PREFIX$,\n AUTOMATION_BUSINESS_ENTRY_URL_SERVICE,\n AUTOMATION_CONTEXT_INJECTION_TOKEN,\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 AutomataI18nModule,\n} from '@galaxy/automata/shared';\nimport {\n PLATFORM_INTEGRATIONS_CONTEXT_INJECTION_TOKEN$,\n PLATFORM_INTEGRATIONS_MARKET_ID_INJECTION_TOKEN$,\n PLATFORM_INTEGRATIONS_NAMESPACE_INJECTION_TOKEN$,\n PLATFORM_INTEGRATIONS_PARTNER_ID_INJECTION_TOKEN$,\n} from '@galaxy/platform-integrations/shared';\nimport { SupportedContexts } from '@vendasta/platform-integrations';\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 { 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 { SENDER_INJECTION_TOKEN, buildSenderData } from '@galaxy/email-ui/email-builder/src/shared';\nimport { TranslationModule as FormBuilderI18NModule } from '@galaxy/form-builder';\nimport { LEXICON_TRANSLATE_PORTAL_URL, LexiconModule } from '@galaxy/lexicon';\nimport { FeatureFlagService, PartnerServiceInterfaceToken } from '@galaxy/partner';\nimport { ReportingCoreModule } from '@galaxy/reports/static';\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 { ProductAnalyticsModule } from '@vendasta/product-analytics';\nimport { UserPipelinesModule } from '@vendasta/sales-ui';\nimport { TaxonomyServiceInterfaceToken } from '@vendasta/taxonomy';\nimport { DateRangeSelectorModule, UIKitModule } from '@vendasta/uikit';\nimport { UsersModule, UsersServiceInterfaceToken } from '@vendasta/users';\nimport { DragulaModule } from 'ng2-dragula';\nimport { Observable, combineLatest, 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 { 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 { BulkImportModule } from './bulk-import/bulk-import.module';\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 { BusinessCenterService } from './core/business-center.service';\nimport { CountryStateService } from './core/country-state.service';\nimport { FeatureFlags, featureFlagFactory } 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 { ImageService } from './core/utils/image.service';\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 { ForgotPasswordModule } from './forgot-password';\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 { IdentityProviderConfigModule } from './integrations/identity-provider-config/identity-provider-config.module';\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';\n\nimport { AiKnowledgeModule } from '@galaxy/ai-knowledge';\nimport { BILLING_MARKETS_SERVICE } from '@galaxy/billing';\nimport { CrmPlatformApiService } from '@galaxy/crm/static';\nimport { SENDER_EMAIL_LIB_TOKEN } from '@galaxy/email-ui/email-library/dependencies';\nimport { AI_KNOWLEDGE_CONFIG } from './ai-knowledge/providers';\nimport { BillingProviderModule } from './billing/billing-provider/billing-provider.module';\nimport { VendastaPaymentsGuard } from './billing/vendasta-payments.guard';\nimport { Views } from './core/access/interface';\nimport { UrlService } from './core/url.service';\nimport { PartnerCrmModule } from './crm/partner-crm.module';\nimport { RecipientProviderService } from './invoice/recipients/recipient-provider.service';\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 ForgotPasswordModule,\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 UsersModule,\n InboxAIButtonComponent,\n VaAlertComponent,\n FormBuilderI18NModule,\n AiKnowledgeModule.forRoot({ config: AI_KNOWLEDGE_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: SENDER_EMAIL_LIB_TOKEN,\n useFactory: buildSenderData,\n },\n {\n provide: DYNAMIC_COMPONENT_DATA_TOKEN,\n useValue: dynamicComponents,\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: 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,\n useFactory: featureFlagFactory(FeatureFlags.CRM),\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.START_TRIAL_BANNER,\n useFactory: featureFlagFactory(FeatureFlags.START_TRIAL_BANNER),\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_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) => markets[0].market_id),\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: 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 CrmPlatformApiService,\n RecipientProviderService,\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":["CanEnableBusinessCommunicationsRequest","_CanEnableBusinessCommunicationsRequest","proto","m","kwargs","toReturn","CanEnableBusinessCommunicationsResponse","_CanEnableBusinessCommunicationsResponse","ConnectBusinessCommunicationsRequest","_ConnectBusinessCommunicationsRequest","GetBusinessLaunchStatusRequest","_GetBusinessLaunchStatusRequest","GetBusinessLaunchStatusResponse","_GetBusinessLaunchStatusResponse","UnlaunchBusinessCommunicationsAgentRequest","_UnlaunchBusinessCommunicationsAgentRequest","environment","hostMap","HostService","t","ɵɵdefineInjectable","BusinessCommunicationsApiService","http","hostService","HttpHeaders","request","ConnectBusinessCommunicationsRequest","__spreadProps","__spreadValues","UnlaunchBusinessCommunicationsAgentRequest","GetBusinessLaunchStatusRequest","map","resp","GetBusinessLaunchStatusResponse","CanEnableBusinessCommunicationsRequest","CanEnableBusinessCommunicationsResponse","t","ɵɵ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","t","factory","ɵfac","_ConversationGoogleService","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","t","factory","ɵfac","_ConversationFacebookService","ConversationPlatformService","ConversationChannelService","constructor","inboxService","inject","InboxService","country$","CONVERSATION_COUNTRY_TOKEN","inboxAlerter","InboxAlertService","getChatComposerAlert","partnerId","accountGroupId","conversationDetail","conversation","channel","ConversationChannel","CONVERSATION_CHANNEL_INTERNAL","of","isBusinessApp","customerParticipant","participants","find","participant","participantType","ParticipantType","PARTICIPANT_TYPE_CUSTOMER","phoneNumber","email","pipe","map","country","smsOrEmailNotAvailableForCapturedLeadError","t","factory","ɵfac","_ConversationPlatformService","ConversationSMSService","ConversationChannelService","constructor","router","inject","Router","smsRegistrationService","SmsRegistrationService","inboxService","InboxService","country$","CONVERSATION_COUNTRY_TOKEN","smsEnabled$","CONVERSATION_SMS_ENABLED_TOKEN","getChatComposerAlert","partnerId","accountGroupId","conversationDetail","stage$","registrationStage$","SMSNumber$","combineLatest","pipe","map","accountGroupCountry","smsEnabled","stage","smsNumber","country","toLowerCase","RegistrationStage","RegistrationComplete","getSMSRegistrationError","getSMSMPhoneNumberError","getSMSMessageEnabledError","title","description","action","callback","navigate","t","factory","ɵfac","_ConversationSMSService","firebaseConfig","apiKey","authDomain","databaseURL","projectId","storageBucket","messagingSenderId","appId","measurementId","SERVICE_PROVIDERS","ViewService","ParticipantService","ConversationService","FirestoreService","InboxService","InboxNavigationService","ListingService","InboxNotificationService","ConversationGoogleService","ConversationFacebookService","ConversationSMSService","ConversationWebchatService","ConversationPlatformService","InboxAlertService","TemplateService","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_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","_ConversationCoreModule","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","isEnabled","configuration","smsEnabled","getConfiguration","subjectParticipant","participantType","GlobalParticipantType","GLOBAL_PARTICIPANT_TYPE_ACCOUNT_GROUP","internalParticipantId","map","shareReplay","refCount","bufferSize","catchError","webChatEnabled$","enableable$","facebookMessengerSupported$","enableable","facebookMessengerEnabled","instagramMessagesSupported$","inboxService","googleBusinessMessagesSupported$","Environment","PROD","googleBusinessMessagesEnabled","conversationGoogleService","conversationWebChatService","conversationFacebookService","conversationPlatformService","conversationSMSService","channelMap","Map","ConversationChannel","CONVERSATION_CHANNEL_GOOGLE_BUSINESS_COMMUNICATIONS","CONVERSATION_CHANNEL_WEB_CHAT","CONVERSATION_CHANNEL_FACEBOOK","CONVERSATION_CHANNEL_INTERNAL","set","CONVERSATION_CHANNEL_SMS","e","undefined","console","debug","groupId$","ɵɵ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","standalone","features","ɵɵProvidersFeature","ɵɵStandaloneFeature","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","_DeleteCustomKnowledgeComponent","ɵɵ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","translateService","TranslateService","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","firstValueFrom","open","KnowledgeEditorComponent","afterClosed","data","knowledgeSourceKey","knowledgeSourceId","namespace","config","stepOption","editor","componentInstance","stepChange","pipe","takeUntilDestroyed","destroyRef","map","setEditSourceQueryParam","subscribe","deleteKnowledgeSource","DeleteCustomKnowledgeComponent","editSource","queryParams","navigate","relativeTo","queryParamsHandling","selectors","inputs","standalone","features","ɵɵProvidersFeature","ɵɵStandaloneFeature","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","_KnowledgeSourceManagementComponent","AccessDeniedComponent","selectors","decls","vars","template","rf","ctx","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate","ɵɵpipeBind1","_AccessDeniedComponent","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","decls","vars","template","rf","ctx","encapsulation","_AccountDeleteComponent","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","_ActivationAnalyticsService","SharedActivationModule","ActivationService","provide","ActivationServiceInterfaceToken","useExisting","ActivateAppService","ActivationPricingService","ActivationPricingServiceInterfaceToken","ActivationParamService","VBC_HOST","deps","VbcHostService","useFactory","getHostName","ActivateAppApiService","ActivationAnalyticsService","_SharedActivationModule","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","decls","vars","template","rf","ctx","encapsulation","_AccountAddToListComponent","ChangePlanDialogModule","ChangePlanService","imports","CommonModule","MatRadioModule","MatDialogModule","MatCheckboxModule","MatButtonModule","FormsModule","MatProgressSpinnerModule","TranslateModule","_ChangePlanDialogModule","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","_AccountsModule","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_11_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","decls","vars","consts","template","rf","ctx","AppNavItemComponent_Conditional_0_Template","AppNavItemComponent_Conditional_1_Template","AppNavItemComponent_ng_template_2_Template","ɵɵtemplateRefExtractor","TranslatePipe","styles","_AppNavItemComponent","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","standalone","features","ɵɵProvidersFeature","ɵɵStandaloneFeature","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","_ActivityTableComponent","PreviewWelcomeEmailComponent","selectors","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵelement","ɵɵadvance","ɵɵtextInterpolate1","_PreviewWelcomeEmailComponent","MapChangeDialogComponent","constructor","dialog","data","cancel","close","ɵɵdirectiveInject","MatDialogRef","MAT_DIALOG_DATA","selectors","decls","vars","consts","template","rf","ctx","ɵɵelement","ɵɵelementStart","ɵɵelementEnd","ɵɵlistener","ɵɵtext","ɵɵproperty","ɵɵpipeBind2","ɵɵpureFunction1","_c0","fieldName","ɵɵsanitizeHtml","ɵɵadvance","ɵɵpureFunction2","_c1","headerRow","ɵɵtextInterpolate1","ɵɵpipeBind1","_MapChangeDialogComponent","ɵɵ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","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","_BulkImportMappingRowComponent","ɵɵ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","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","_BulkImportMapperComponent","ɵɵ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","_BulkImportComponent","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","standalone","features","ɵɵStandaloneFeature","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","_CampaignAccountSelectorComponent","ɵɵ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","standalone","features","ɵɵStandaloneFeature","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","_VariableMenuItemSelectorComponent","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","_VariableMenuService","ɵɵ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","standalone","features","ɵɵStandaloneFeature","decls","consts","template","rf","ctx","ɵɵtemplate","VariableMenuDialogComponent_ng_container_2_Template","ɵɵtext","ɵɵtextInterpolate1","VariableMenuItemSelectorComponent","AsyncPipe","TranslateModule","TranslatePipe","MatButtonModule","MatButton","NgIf","styles","_VariableMenuDialogComponent","InboxModalGuard","constructor","router","inboxNav","canActivate","route","_state","__async","navigate","then","gotoConversationID","params","ɵɵinject","Router","InboxNavigationService","factory","ɵfac","_InboxModalGuard","CompanyProfileApiService","constructor","apiService","updateUrl","updatePartnerMailingAddress","partner","post","ɵɵinject","ApiService","factory","ɵfac","providedIn","_CompanyProfileApiService","ɵɵ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","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","_CompanyProfileComponent","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","_PartnerModule","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","_CustomizeExecReportService","ɵɵ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","decls","vars","consts","template","rf","ctx","CustomizeExecReportComponent_div_1_Template","CustomizeExecReportComponent_ng_template_3_Template","ɵɵtemplateRefExtractor","isLoading_r12","_CustomizeExecReportComponent","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","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵelement","ɵɵadvance","ɵɵtextInterpolate1","ɵɵpipeBind1","ɵɵproperty","_PreviewEmailDialogComponent","ɵɵelementContainerStart","ɵɵtext","ɵɵadvance","ɵɵtextInterpolate","name_r1","AutomationNameDisplayComponent","constructor","automataService","ngOnInit","automationId","name$","getAutomation","pipe","take","map","auto","name","ɵɵdirectiveInject","AutomataService","selectors","inputs","decls","vars","consts","template","rf","ctx","ɵɵtemplate","AutomationNameDisplayComponent_ng_container_0_Template","ɵɵproperty","ɵɵpipeBind1","_AutomationNameDisplayComponent","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","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","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵlistener","ɵɵadvance","ɵɵtextInterpolate1","ɵɵpipeBind1","_RestoreWarningDialogComponent","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","_OrderSetupService","ɵɵ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","decls","vars","consts","template","rf","ctx","OrderSetupComponent_div_0_Template","_OrderSetupComponent","ɵɵ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_47_ng_container_4_ng_container_5_Template","OrderConfigComponent_div_14_div_47_ng_container_4_ng_container_6_Template","i_r6","_r3","index","removeCustomAutomationAction","_r7","addCustomAutomationAction","OrderConfigComponent_div_14_div_47_ng_container_4_Template","OrderConfigComponent_div_14_div_47_ng_container_5_Template","getCustomAutomationActionsArray","controls","tmp_9_0","length","extraFieldGroup_r10","labelControl","OrderConfigComponent_div_14_ng_container_70_mat_expansion_panel_2_div_5_span_5_Template","typeControl","name","OrderConfigComponent_div_14_ng_container_70_mat_expansion_panel_2_div_5_Template","OrderConfigComponent_div_14_ng_container_70_mat_expansion_panel_2_ng_template_6_Template","ɵɵtemplateRefExtractor","i_r11","_r9","removeExtraFieldsFormField","noFieldTypeYet_r12","supportedFiledTypes","$event","_r8","onDrop","OrderConfigComponent_div_14_ng_container_70_mat_expansion_panel_2_Template","getExtraFieldsArray","i_r14","_r13","removeTermsOfServiceFormField","handleFileUploadError","ɵɵpropertyInterpolate","uploadUrl","tos_r15","OrderConfigComponent_div_14_ng_container_87_div_1_Template","getTermsOfServiceArray","formGroup_r16","ɵɵtextInterpolate","_r18","restore","OrderConfigComponent_div_14_ng_container_142_ng_container_1_button_1_Template","config_r19","marketId","OrderConfigComponent_div_14_ng_container_142_ng_container_1_Template","_r17","submit","config$","_r1","toggleCollectPaymentFromCustomers","checked","OrderConfigComponent_div_14_div_44_Template","OrderConfigComponent_div_14_mat_error_46_Template","OrderConfigComponent_div_14_div_47_Template","OrderConfigComponent_div_14_ng_container_70_Template","addExtraFieldsFormField","OrderConfigComponent_div_14_ng_container_87_Template","addTermsOfServiceFormField","OrderConfigComponent_div_14_ng_template_91_Template","OrderConfigComponent_div_14_ng_template_111_Template","previewEmail","OrderConfigComponent_div_14_ng_template_123_Template","OrderConfigComponent_div_14_ng_template_135_Template","OrderConfigComponent_div_14_ng_template_139_Template","OrderConfigComponent_div_14_ng_container_142_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","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","combineLatest","selectedMarketId","userAccessibleMarkets","markets","m","StartManualAutomationDialogComponent","marketIds","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","_OrderConfigComponent","ɵɵ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","decls","vars","consts","template","rf","ctx","ɵɵtext","ɵɵtemplate","DeclinedReasonDialogComponent_glxy_form_field_5_Template","ɵɵlistener","ɵɵtextInterpolate1","ɵɵproperty","ɵɵsanitizeHtml","ɵɵpipeBind1","valid","_DeclinedReasonDialogComponent","ɵɵ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","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","_OrderDeclineReasonsConfigComponent","SalesOrdersDeclineReasonsModule","CommonModule","MatCardModule","MatListModule","MatIconModule","MatInputModule","MatFormFieldModule","MatButtonModule","MatDialogModule","FormsModule","ReactiveFormsModule","TranslateModule","GalaxyPageModule","GalaxyEmptyStateModule","GalaxyFormFieldModule","GalaxyAlertModule","_SalesOrdersDeclineReasonsModule","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","_CustomizeDesignModule","ɵɵ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","decls","vars","consts","template","rf","ctx","EmailBuilderSandboxComponent_ng_container_0_Template","ɵɵpipeBind1","_EmailBuilderSandboxComponent","EmailBuilderSandboxComponentModule","EmailBuilderModule","GalaxyPipesModule","CommonModule","GalaxyLoadingSpinnerModule","GalaxyAlertModule","GalaxyPageModule","MatButtonModule","TranslateModule","_EmailBuilderSandboxComponentModule","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","_DomainCacheService","SETUP_HELP_INFO_URL_INJECTION_TOKEN","InjectionToken","ɵɵelementContainerStart","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","DomainStatusIconComponent","selectors","inputs","result","decls","vars","consts","template","rf","ctx","ɵɵtemplate","DomainStatusIconComponent_ng_container_1_Template","DomainStatusIconComponent_ng_container_2_Template","ɵɵproperty","allRecordsMatch","ɵɵadvance","_DomainStatusIconComponent","ɵɵ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","_ToTableRowClassPipe","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","_DomainRecordsTableComponent","ɵɵ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","_DomainInfoCardComponent","CanAddDomainPipe","constructor","defaultDomainService","transform","value","senderType","getDefaultDomain$","pipe","map","defaultDomain","filter","d","sendFromDomain","isPrimary","some","isPending","of","ɵɵdirectiveInject","DefaultDomainService","pure","_CanAddDomainPipe","ɵɵ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","snackbar","EventEmitter","authorizeRequested","__async","scrollToDomain","domain","domainInfoCards","filter","c","sendFromDomain","forEach","card","expanded","window","setTimeout","document","getElementById","scrollIntoView","behavior","ɵɵdirectiveInject","SnackbarService","selectors","viewQuery","rf","ctx","DomainInfoCardComponent","DomainsComponent_ng_container_0_Template","DomainsComponent_ng_template_1_Template","ɵɵtemplateRefExtractor","length","empty_r6","_DomainsComponent","ɵɵ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","decls","vars","consts","template","rf","ctx","ɵɵtemplate","NewDomainDialogComponent_ng_container_0_Template","ɵɵlistener","ɵɵelement","ɵɵproperty","ɵɵtextInterpolate1","status","_NewDomainDialogComponent","UNSAVED_DATA_HANDLER_TOKEN","SavedState","EmailValidators","_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","decls","vars","consts","template","rf","ctx","DomainStatusAndNameComponent_ng_container_0_Template","ɵɵpipeBind1","_DomainStatusAndNameComponent","ɵɵ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","decls","vars","consts","template","rf","ctx","DomainsDialogComponent_ng_container_4_Template","DomainsDialogComponent_div_8_Template","tmp_2_0","length","_DomainsDialogComponent","response","domains","EmailForwardingInfoComponent","selectors","standalone","features","ɵɵStandaloneFeature","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","_EmailForwardingInfoComponent","ɵɵ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","decls","vars","consts","template","rf","ctx","ɵɵelement","ɵɵtemplate","EmailUsernameInputComponent_glxy_error_8_Template","EmailUsernameInputComponent_mat_icon_9_Template","ɵɵtextInterpolate","get","invalid","touched","_EmailUsernameInputComponent","ɵɵ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","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","_SenderInfoFormComponent","ɵɵ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","_SenderInfoCardComponent","ɵɵ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","window","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","_DomainAuthorizationComponent","DomainStatusIconModule","CommonModule","MatIconModule","_DomainStatusIconModule","DomainRecordsTableModule","ToTableRowClassPipe","imports","CommonModule","MatButtonModule","MatIconModule","GalaxyTooltipModule","EmailUII18nModule","TranslateModule","_DomainRecordsTableModule","DomainInfoCardModule","CommonModule","MatExpansionModule","DomainStatusIconModule","DomainRecordsTableModule","GalaxyLoadingSpinnerModule","GalaxyTooltipModule","MatIconModule","GalaxyPipesModule","GalaxyAlertModule","MatButtonModule","GalaxyButtonLoadingIndicatorModule","EmailUII18nModule","TranslateModule","MatDialogModule","_DomainInfoCardModule","NewDomainDialogModule","CommonModule","GalaxyWrapModule","FormsModule","MatFormFieldModule","TranslateModule","MatInputModule","ReactiveFormsModule","MatButtonModule","GalaxyButtonLoadingIndicatorModule","GalaxyPipesModule","EmailUII18nModule","MatDialogModule","GalaxyFormFieldModule","_NewDomainDialogModule","DomainsModule","CommonModule","GalaxyEmptyStateModule","MatIconModule","MatButtonModule","DomainInfoCardModule","NewDomainDialogModule","EmailUII18nModule","TranslateModule","_DomainsModule","EmailUsernameInputModule","CommonModule","GalaxyFormFieldModule","MatInputModule","ReactiveFormsModule","MatIconModule","GalaxyTooltipModule","TranslateModule","EmailUII18nModule","_EmailUsernameInputModule","DomainInfoDialogModule","CommonModule","DomainInfoCardModule","_DomainInfoDialogModule","DomainsDialogModule","CommonModule","GalaxyPipesModule","GalaxyEmptyStateModule","GalaxyLoadingSpinnerModule","MatIconModule","DomainStatusIconModule","DomainInfoDialogModule","EmailUII18nModule","TranslateModule","MatDialogModule","MatListModule","MatButtonModule","_DomainsDialogModule","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","_SenderInfoCardModule","DomainAuthorizationModule","DomainCacheService","imports","CommonModule","GalaxyEmptyStateModule","MatIconModule","GalaxyPipesModule","GalaxyLoadingSpinnerModule","DomainsModule","SenderInfoCardModule","EmailUII18nModule","TranslateModule","_DomainAuthorizationModule","UnsavedChanges","constructor","hasUnsavedChanges","canDeactivate","notifyStateChanged","newState","SavedState","SAFE_TO_NAVIGATE_AWAY","HAS_UNSAVED_CHANGES","Error","factory","ɵfac","_UnsavedChanges","EmailSettingsComponent","ComponentCanDeactivate","partnerId$","unsavedChanges","SenderTypePartner","SenderType","SENDER_TYPE_PARTNER","ɵɵdirectiveInject","PARTNER_ID_INJECTION_TOKEN","selectors","features","ɵɵProvidersFeature","provide","UNSAVED_DATA_HANDLER_TOKEN","useExisting","ɵɵInheritDefinitionFeature","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵelement","ɵɵadvance","ɵɵtextInterpolate","ɵɵpipeBind1","ɵɵproperty","_EmailSettingsComponent","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","t","ɵɵdefineInjectable","HelpCenterApiService","http","hostService","HttpHeaders","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","_HelpSideDrawerTemplateRefService","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","closeSideDrawer","ɵɵtext","ɵɵelementEnd","HelpSideDrawerContentDirective","constructor","className","selectors","hostVars","hostBindings","rf","ctx","ɵɵclassMap","_HelpSideDrawerContentDirective","HelpSideDrawerPreTitleActionsDirective","constructor","className","selectors","hostVars","hostBindings","rf","ctx","ɵɵclassMap","_HelpSideDrawerPreTitleActionsDirective","HelpClosingSideDrawerComponent","constructor","helpSideDrawerTemplateRefService","closeSideDrawer","close","ɵɵdirectiveInject","HelpSideDrawerTemplateRefService","selectors","inputs","title","preventClose","ngContentSelectors","_c1","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵprojection","ɵɵelementEnd","ɵɵtext","ɵɵelementContainerStart","ɵɵtemplate","HelpClosingSideDrawerComponent_button_10_Template","ɵɵadvance","ɵɵtextInterpolate","ɵɵproperty","_HelpClosingSideDrawerComponent","ɵɵ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","decls","vars","consts","template","rf","ctx","HelpCaseCardComponent_va_card_0_Template","_HelpCaseCardComponent","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","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵlistener","ɵɵtext","ɵɵelementEnd","ɵɵproperty","ɵɵadvance","ɵɵtextInterpolate","title","ɵɵtextInterpolate1","body","_HelpSearchCardComponent","ɵɵ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","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","_HelpCenterComponent","ɵɵ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","decls","vars","consts","template","rf","ctx","ɵɵtemplate","LocalLoginComponent_Conditional_1_Template","LocalLoginComponent_Conditional_2_Template","ɵɵconditional","_LocalLoginComponent","LocalLoginModule","CommonModule","FormsModule","MatInputModule","MatButtonModule","MatProgressSpinnerModule","GalaxyFormFieldModule","_LocalLoginModule","PageNotFoundComponent","constructor","router","url","replace","navigateByUrl","ɵɵdirectiveInject","Router","selectors","standalone","features","ɵɵStandaloneFeature","decls","vars","template","rf","ctx","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate","ɵɵpipeBind1","GalaxyPageModule","PageComponent","GalaxyEmptyStateModule","EmptyStateComponent","EmptyStateHeroDirective","EmptyStateTitleDirective","MatIconModule","MatIcon","TranslateModule","TranslatePipe","encapsulation","_PageNotFoundComponent","PipelineViewRouterGuard","constructor","pipelineSwitcherService","router","canActivate","cachedPipelinePage$","pipe","take","map","page","PipelinePageUrls","BOARD","createUrlTree","ɵɵinject","PipelineSwitcherService","Router","factory","ɵfac","providedIn","_PipelineViewRouterGuard","ProductOrderFormProxyComponent","constructor","route","router","ngOnInit","accountGroupId$","queryParams","pipe","map","params","agid","accountGroupId","filter","Boolean","first","combineLatest","subscribe","navigate","__spreadValues","ɵɵdirectiveInject","ActivatedRoute","Router","selectors","decls","vars","template","rf","ctx","encapsulation","_ProductOrderFormProxyComponent","TermsOfServiceService","constructor","api","termsOfService","get","pipe","map","res","terms","acceptTermsOfService","post","ɵɵinject","ApiService","factory","ɵfac","_TermsOfServiceService","ɵɵ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","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","_TermsOfServiceComponent","TermsOfServiceModule","TermsOfServiceService","imports","CommonModule","MatProgressSpinnerModule","MatCardModule","MatCheckboxModule","MatButtonModule","GalaxyPipesModule","PageComponent","GalaxyPageModule","_TermsOfServiceModule","AccessPartnerAdminViewGuard","constructor","accessService","inject","StubAccessService","router","Router","canActivate","hasAccessToViews","pipe","map","response","get","createUrlTree","factory","ɵfac","providedIn","_AccessPartnerAdminViewGuard","routes","path","loadChildren","then","m","LoginModule","data","noNavbar","noCardCheck","ForgotPasswordModule","component","EmbedComponent","canActivate","EmbedGuard","pathMatch","SignUpGuard","TermsOfServiceComponent","AccessDeniedComponent","SuperadminModule","UserOnboardingModule","DashboardModule","AffiliateModule","redirectTo","AccountModule","UsersRoutingModule","ManageAccountsGuard","objectType","UnifiedUsersModule","AccessIsAdminGuard","ManageTeamModule","devServer","EmbedLocalComponent","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","PayoutsModule","RetailBillingGuard","VendastaPaymentsGuard","loadComponent","SubscriptionsPageComponent","SettingsModule","AdministrationModule","CrmCustomFieldManagementModule","CustomFormsModule","SalesModule","MarketingModule","providers","provide","CONFIG_TOKEN","useFactory","CampaignConfigFactory","ConciergeModule","SalesOrdersModule","PipelineTablePageModule","PipelineViewRouterGuard","PipelineBoardModule","PipelineSettingsPageModule","TeamActivityPageModule","ServiceAccountModule","IdentityProviderConfigModule","UserListModule","UpgradeSubscriptionTierModule","SubscriptionTierModule","TranslatePortalModule","inject","AccessPartnerAdminViewGuard","DuplicateAccountsFeatureModule","ManageAccountsModule","BusinessModule","outlet","AccountAddToListComponent","OrderFulfillmentTableComponent","AccountDeleteComponent","CustomFieldsDialogComponent","ActivationModule","CustomizeBusinessPrioritiesModule","AccessBusinessPrioritiesGuard","CustomizeBusinessAppModule","AutomationsModule","AutomationsGuard","FacebookRoutes","ROOT","FacebookAdLeadsModule","FacebookAdLeadsGuard","KnowledgeSourceManagementComponent","previousPageTitle","previousPageUrl","PlatformIntegrationsLibModule","InvoiceModule","VariableMenuDialogComponent","PartnerCrmModule","PartnerScoreModule","AccessViewGuard","view","PartnerDynamicListsModule","CrmProspectorModule","ActivityTableComponent","LinkActivityComponent","INBOX_ROUTES","children","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","MeetingSchedulerRoutingModule","PageNotFoundComponent","AppRoutingModule","EMAIL_LIBRARY_BASE_URL_TOKEN","imports","RouterModule","forRoot","LocalLoginComponent","anchorScrolling","paramsInheritanceStrategy","bindToComponentInputs","_AppRoutingModule","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","_UrlService","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","_UserBrandingService","OmniSearchService","constructor","config","intents$$","BehaviorSubject","intentSet","Set","intents$","asObservable","registerIntent","intent","has","title","next","getValue","add","ɵɵinject","AppConfigService","factory","ɵfac","providedIn","_OmniSearchService","ɵɵelementContainerStart","ɵɵelement","ɵɵadvance","ɵɵproperty","ctx_r0","iconUrl","ɵɵsanitizeUrl","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵpureFunction1","_c0","iconColor","ɵɵtextInterpolate1","appId","OmniAppIconComponent","ngOnInit","icons","getIconColor","ngOnChanges","changes","selectors","inputs","features","ɵɵNgOnChangesFeature","decls","vars","consts","template","rf","ctx","ɵɵtemplate","OmniAppIconComponent_ng_container_0_Template","OmniAppIconComponent_ng_template_1_Template","ɵɵtemplateRefExtractor","custom_r2","_OmniAppIconComponent","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","_AccountGroupSearcherComponent","ɵɵ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","decls","vars","consts","template","rf","ctx","_r1","searchTerm_r2","ɵɵreference","value","ɵɵtemplate","OmniSearchComponent_a_10_Template","ɵɵproperty","_OmniSearchComponent","ɵɵ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","_PartnerOverviewComponent","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate1","ɵɵpipeBind1","ɵɵlistener","recentPartner_r4","ɵɵrestoreView","_r3","$implicit","ctx_r4","ɵɵnextContext","ɵɵresetView","switchPartner","id","ɵɵtextInterpolate","name","ɵɵelement","partner_r7","_r6","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","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","ɵɵtemplate","PartnerSwitcherComponent_h3_10_Template","PartnerSwitcherComponent_a_12_Template","PartnerSwitcherComponent_mat_divider_14_Template","PartnerSwitcherComponent_h3_17_Template","PartnerSwitcherComponent_a_19_Template","ɵɵproperty","tmp_3_0","tmp_5_0","tmp_6_0","_PartnerSwitcherComponent","ɵɵ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","_UserSwitcherComponent","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","_LevelBadgeStoreService","ɵɵ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","decls","vars","consts","template","rf","ctx","LevelBadgeComponent_ng_container_0_Template","_LevelBadgeComponent","ɵɵ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","decls","vars","consts","template","rf","ctx","ɵɵtemplate","TrialBadgeComponent_ng_container_0_Template","_TrialBadgeComponent","ɵɵ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","logoUrl","publishReplay","refCount","userCanCustomizeWhitelabel$","config$","config","userCanCustomizeWhitelabel","cobrandingDisabled","navigateByUrl","ɵɵdirectiveInject","StubAccessService","UrlService","AppConfigService","UserBrandingService","Router","selectors","decls","vars","consts","template","rf","ctx","LogoComponent_ng_container_0_Template","LogoComponent_ng_template_2_Template","LogoComponent_ng_template_4_Template","superAdminView_r6","_LogoComponent","ɵɵ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","decls","vars","consts","template","rf","ctx","TrialBannerComponent_ng_container_0_Template","_TrialBannerComponent","ɵɵelementStart","ɵɵtemplate","HelpSideDrawerContainerComponent_mat_drawer_container_0_ng_template_2_Template","ɵɵelementEnd","ɵɵelementContainer","ɵɵadvance","ɵɵproperty","sideDrawer_r1","templateRef","page_r2","ɵɵ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","_HelpSideDrawerContainerComponent","ɵɵelement","ɵɵproperty","ɵɵelementContainerStart","ɵɵelementStart","ɵɵtemplate","AppComponent_ng_container_0_ng_container_1_ng_container_14_inbox_ai_button_5_Template","ɵɵelementEnd","ɵɵlistener","ɵɵrestoreView","_r4","ctx_r2","ɵɵnextContext","ɵɵresetView","showHelpCenter","helpCenterTemplateId","ɵɵadvance","ɵɵpropertyInterpolate","ɵɵpipeBind1","inboxAIFeatureFlag$","helpDrawerSelected$","_r6","_r7","AppComponent_ng_container_0_ng_container_1_ng_template_16_atlas_item_0_Template","AppComponent_ng_container_0_ng_container_1_ng_template_16_atlas_item_2_Template","AppComponent_ng_container_0_ng_container_1_ng_template_16_inbox_ai_button_6_Template","_r5","hasViewAccessForNewReleases$","hasViewAccessForHelpCenter$","hasViewAccessForInboxAI$","activeMenuId$","menuItem_r8","ɵɵelementContainer","_r1","nav_r2","ɵɵreference","toggle","ɵɵtext","showAtlasPidSelector","AppComponent_ng_container_0_ng_container_1_ng_container_14_Template","AppComponent_ng_container_0_ng_container_1_ng_template_16_Template","ɵɵtemplateRefExtractor","AppComponent_ng_container_0_ng_container_1_app_level_badge_27_Template","AppComponent_ng_container_0_ng_container_1_app_trial_badge_29_Template","AppComponent_ng_container_0_ng_container_1_app_nav_item_31_Template","AppComponent_ng_container_0_ng_container_1_app_assigned_salesperson_nav_footer_card_34_Template","AppComponent_ng_container_0_ng_container_1_ng_container_37_Template","menuItems","showAtlasPidSelector$","ɵɵtextInterpolate1","atlasTitle$","isMobile$","desktop_r9","viewMode$","vaNavTheme$","isSuperAdminRoute$","navItems$","hasViewAccessForSalesContactCard$","pageContent_r10","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","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","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","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","partnerConfig","subscription","user","trackProperties","zendeskInit","getTermsOfServiceData","initializeUserOnboarding","initializeCanny","hasWhitelabel$","startWith","branding$","hasWhitelabel","branding","superadminRoute","uiThemeFromEnum","uiTheme","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","undefined","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","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_r11","_AppComponent","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","FileInputBase","_defaultErrorStateMatcher","_parentForm","_parentFormGroup","ngControl","stateChanges","FileInputMixinBase","mixinErrorState","NGX_MAT_FILE_INPUT_CONFIG","InjectionToken","MaterialFileInputModule","t","ɵɵdefineNgModule","ɵɵdefineInjector","FocusMonitor","BulkImportModule","ActionListsStoreService","BulkImportService","BulkImportMappingService","CreateOrEditCustomFieldService","imports","MatStepperModule","ReactiveFormsModule","MatFormFieldModule","MatInputModule","SideDrawerModule","MatButtonModule","MaterialFileInputModule","MatIconModule","FormsModule","MatAutocompleteModule","MatRadioModule","VaMaterialTableModule","MatCheckboxModule","MatTableModule","MatSelectModule","MatProgressSpinnerModule","MatDialogModule","MatListModule","MatTooltipModule","GalaxyPageModule","TranslateModule","GalaxyAlertModule","AuxiliaryDataPageModule","SideDrawerContainerComponent","CommonModule","AuxiliaryDataModule","AuxiliaryDataPanelComponentModule","_BulkImportModule","MatModules","MatIconModule","MatMenuModule","MatTooltipModule","LevelBadgeModule","LevelBadgeStoreService","imports","CommonModule","TranslateModule","_LevelBadgeModule","VariableMenuMatDialogComponent","constructor","dialogRef","data","partnerId","marketId","isOrderAutomation","extraMenuItems","supportedSubstitutionOptions","dontIncludeDefaultCategories","formResult","result","close","ɵɵdirectiveInject","MatDialogRef","MAT_DIALOG_DATA","selectors","standalone","features","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵlistener","$event","ɵɵadvance","ɵɵtextInterpolate","ɵɵpipeBind1","ɵɵproperty","VariableMenuDialogComponent","MatDialogModule","MatDialogTitle","TranslateModule","TranslatePipe","styles","_VariableMenuMatDialogComponent","ForAppEngineUrlSerializer","DefaultUrlSerializer","serialize","tree","replace","t","factory","ɵfac","_ForAppEngineUrlSerializer","EmailSettingsModule","provide","SETUP_HELP_INFO_URL_INJECTION_TOKEN","useValue","imports","CommonModule","GalaxyPageModule","TranslateModule","DomainAuthorizationModule","MatButtonModule","_EmailSettingsModule","TrialBannerModule","CommonModule","TranslateModule","GalaxyAlertModule","GalaxyPipesModule","_TrialBannerModule","HelpSideDrawerModule","CommonModule","MatButtonModule","MatIconModule","MatToolbarModule","_HelpSideDrawerModule","HelpCenterModule","CommonModule","MatIconModule","MatButtonModule","MatExpansionModule","MatSidenavModule","MatDividerModule","GalaxyLoadingSpinnerModule","GalaxyBadgeModule","TranslateModule","LexiconModule","forChild","componentName","WEBLATE_COMPONENT_NAME","baseTranslation","UIKitModule","HelpSideDrawerModule","AssignedSalespersonModule","GalaxyInputModule","TrialBannerModule","_HelpCenterModule","ConversationPartnerCenterService","constructor","router","featureFlagService","snackbarService","participantService","invoiceService","ssoService","urlShortenerService","analyticsService","taxRateService","partnerAccountGroupService","partnerId$","partnerId","toSignal","getConversationTitleInfo","conversationDetail","recipients","getRecipient","conversationTitleInfo","title","secondarySubtitle","subtitle","map","recipient","participantType","ParticipantType","PARTICIPANT_TYPE_CUSTOMER","isParticipantInternalInfoDeleted","push","name","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","buildParticipant","getPartnerAccountGroupMapping","pipe","catchError","err","console","error","status","openErrorSnack","Error","switchMap","partnerFromAccountGroup","batchGetStatus","featureFlagsStatus","featureFlags","of","buildParticipants","currentIAMParticipant","participantList$","forEach","forkJoin","buildSendMessageParams","location","PlatformLocation","PLATFORM_LOCATION_PARTNER_CENTER","redirectToInternalConversation","recipientSubjectParticipant","take","subscribe","params","navigate","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","calculatePaymentLinkTax","amount","merchantId","customerId","calculate","response","taxableAmount","getKabobAvailableActions","actionsAvailable","goToAccountAction","action","then","outlets","inbox","posthogLabel","openBusinessAppButton","openBusinessApp","getAppOptions","entryUrl$","firstValueFrom","entryUrl","window","open","addNextUrl","getUsers","ɵɵinject","Router","FeatureFlagService","SnackbarService","ParticipantService","InvoiceService","SSOService","UrlShortenerService","ProductAnalyticsService","TaxRateService","PartnerAccountGroupService","factory","ɵfac","_ConversationPartnerCenterService","imageServiceFactory","imageService","getImageSrc","imageName","INBOX_CONFIG_FOR_CONVERSATION","InjectionToken","providedIn","factory","userService","inject","DashboardService","partnerService","PartnerService","whitelabelService","WhitelabelService","featureFlagService","FeatureFlagService","appConfigService","AppConfigService","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","conversationChannelsEnabled$","ConversationChannel","CONVERSATION_CHANNEL_INTERNAL","routes$","root","sendNewMessage","useModal","marketId$","isImpersonating$","config$","isImpersonated","webChatEnabled$","AppListingService","constructor","marketplacePackagesService","partnerId$","marketId$","listAllActivatableApps","combineLatest","pipe","take","switchMap","partnerID","marketID","getAllActivatableApps","ɵɵinject","MarketplaceAppService","factory","ɵfac","_AppListingService","LogoSource","constructor","partnerID$","svc","logoURL$","pipe","switchMap","pid","getBranding","map","branding","logoUrl","shareReplay","bufferSize","refCount","ɵɵinject","BrandingV2Service","factory","ɵfac","_LogoSource","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","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵlistener","$event","ɵɵelementEnd","ɵɵproperty","_BulkNotificationsChangeComponent","ɵɵ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_7_Template","getClass","ɵɵtextInterpolate","icon","dropdownOptions","BulkTabAccessChangeComponent","constructor","userBulkActionsService","tabsGivenAccess","tabsRemovedAccess","ngOnInit","data","getUserTabAccessInfo","tabId","find","tab","event","value","filter","push","setTabAccess","ɵɵdirectiveInject","UserBulkActionsService","selectors","decls","vars","consts","template","rf","ctx","BulkTabAccessChangeComponent_div_1_Template","tabs","_BulkTabAccessChangeComponent","MAT_MODULES","MatAutocompleteModule","MatTabsModule","MatIconModule","MatSelectModule","MatSlideToggleModule","MatCardModule","MatButtonModule","MatStepperModule","MaterialFileInputModule","MatGridListModule","MatInputModule","UserBulkActionsModule","LegacyNotificationPreferenceService","BulkUserImportService","imports","CommonModule","UIKitModule","SharedModule","TranslateModule","GalaxyPageModule","RouterModule","NotificationPreferencesModule","MatButtonToggleModule","GalaxyAlertModule","_UserBulkActionsModule","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","_WhitelabelModule","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","PartnerCenterBillingCoreModule","forRoot","config","ngModule","providers","provide","PARTNER_CENTER_BILLING_CONFIG_TOKEN","useExisting","deps","_PartnerCenterBillingCoreModule","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","pipe","map","a","name","companyName","getUsers","switchMap","partnerId","loadUsers","users","u","__spreadProps","__spreadValues","userId","unifiedUserId","merchantService","getBranding","combineLatest","marketId","isFreeMerchant$","subscriptionTier$","s","SubscriptionTiersService","isFree","isTrialActive$","partnerTrial$","t","status","TrialStatus","ACTIVE","supportNumber$","getSupportNumber","recipientProvider","openAssignedSalespersonDialog","__async","config","firstValueFrom","dialogConfig$","open","AssignedSalespersonDialogComponent","BillingProviderModule","PartnerCenterBillingCoreModule","forRoot","_BillingProviderModule","unauthedRoutes","BulkActionFeatureCache","constructor","partnerId$","flagSvc","enabled$","pipe","switchMap","partnerId","batchGetStatus","FeatureFlags","BULK_ACTIONS_V2","map","v","shareReplay","ɵɵinject","FeatureFlagService","factory","ɵfac","_BulkActionFeatureCache","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","SENDER_EMAIL_LIB_TOKEN","DYNAMIC_COMPONENT_DATA_TOKEN","useValue","marketService","currentMarket$","market","market_id","MarketsService","marketsService","userAccessibleMarkets$","TranslateService","TranslateStore","a","cfg","unifiedUserId","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","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","START_TRIAL_BANNER","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_PARTNER_ID_INJECTION_TOKEN$","AUTOMATION_PARTNER_ID_INJECTION_TOKEN$","AUTOMATION_CONTEXT_INJECTION_TOKEN","Context","AUTOMATION_CONTEXT_PARTNER","AUTOMATION_MARKET_ID_INJECTION_TOKEN$","markets","PLATFORM_INTEGRATIONS_MARKET_ID_INJECTION_TOKEN$","AUTOMATION_BUSINESS_ENTRY_URL_SERVICE","BusinessCenterService","AUTOMATIONS_ACCESS_SERVICE","AUTOMATIONS_MARKETS_SERVICE","AUTOMATION_IS_USER_SUPERADMIN$","c","isSuperAdmin","AUTOMATIONS_ROUTE_PREFIX$","of","AUTOMATION_VARIABLE_MENU_DIALOG","VariableMenuMatDialogComponent","PLATFORM_INTEGRATIONS_CONTEXT_INJECTION_TOKEN$","SupportedContexts","PI_CONTEXT_PARTNER","BILLING_MARKETS_SERVICE","CrmPlatformApiService","RecipientProviderService","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","ForgotPasswordModule","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","UsersModule","InboxAIButtonComponent","VaAlertComponent","FormBuilderI18NModule","AiKnowledgeModule","AI_KNOWLEDGE_CONFIG","_AppModule","devServer","enableProdMode","platformBrowser","bootstrapModule","AppModule","catch","err","console","error"],"x_google_ignoreList":[0,111,164]}