{ "version": 3, "sources": ["libs/sales-ui/src/lib/sales-orders/sales-order-contents/package-dropdown/package-dropdown-item/package-dropdown-item.component.ts", "libs/sales-ui/src/lib/sales-orders/sales-order-contents/package-dropdown/package-dropdown-item/package-dropdown-item.component.html", "libs/sales-ui/src/lib/sales-orders/sales-order-contents/package-dropdown/sales-package.ts", "libs/sales-ui/src/lib/sales-orders/sales-order-contents/package-dropdown/package-dropdown.component.ts", "libs/sales-ui/src/lib/sales-orders/sales-order-contents/package-dropdown/package-dropdown.component.html", "libs/sales-ui/src/lib/sales-orders/sales-order-contents/product-activation.ts", "libs/sales-ui/src/lib/sales-orders/sales-order-store.service.ts", "libs/sales-ui/src/lib/sales-orders/sales-order-contents/sales-order-contents.service.ts", "libs/sales-ui/src/lib/sales-orders/sales-order-contents/sales-order-contents.component.ts", "libs/sales-ui/src/lib/sales-orders/sales-order-contents/sales-order-contents.component.html", "libs/sales-ui/src/lib/assets/i18n/en_devel.json", "libs/sales-ui/src/lib/shared/constants.ts", "libs/sales-ui/src/lib/sales-orders/sales-order-contents/sales-order-contents.module.ts", "libs/sales-ui/src/lib/sales-opportunities/opportunity-side-panel/opportunity-side-panel-events.service.ts", "libs/sales-ui/src/lib/sales-orders/conversion-utils.ts", "libs/sales-ui/src/lib/sales-orders/external-dependencies/provider-tokens.ts", "libs/sales-ui/src/lib/sales-orders/sales-opportunity-store.service.ts", "libs/sales-ui/src/lib/sales-orders/billing-utils.ts", "libs/sales-ui/src/lib/sales-orders/sales-order-confirmation/sales-order-confirmation.service.ts", "libs/sales-ui/src/lib/sales-orders/sales-order-line-item-selector/item-selector-adapter/utils.ts", "libs/sales-ui/src/lib/sales-orders/sales-order-line-item-selector/item-selector-adapter/item-selector-adapter.service.ts", "libs/sales-ui/src/lib/sales-orders/sales-order-line-item-selector/item-selector-adapter/item-selector-adapter.component.ts", "libs/sales-ui/src/lib/sales-orders/sales-order-line-item-selector/item-selector-adapter/item-selector-adapter.component.html", "libs/sales-ui/src/lib/sales-orders/sales-order-line-item-selector/sales-order-line-item-selector.component.ts", "libs/sales-ui/src/lib/sales-orders/sales-order-line-item-selector/sales-order-line-item-selector.component.html", "libs/sales-ui/src/lib/sales-orders/sales-order-confirmation/sales-order-line-item-selector-dialog/sales-order-line-item-selector-dialog.component.ts", "libs/sales-ui/src/lib/sales-orders/sales-order-confirmation/sales-order-line-item-selector-dialog/sales-order-line-item-selector-dialog.component.html", "libs/sales-ui/src/lib/sales-orders/sales-order-confirmation/sales-order-edit-price/sales-order-edit-price.component.ts", "libs/sales-ui/src/lib/sales-orders/sales-order-confirmation/sales-order-edit-price/sales-order-edit-price.component.html", "libs/sales-ui/src/lib/sales-orders/sales-order-confirmation/sales-order-confirmation.component.ts", "libs/sales-ui/src/lib/sales-orders/sales-order-confirmation/sales-order-confirmation.component.html", "libs/sales-ui/src/lib/sales-orders/sales-order-line-item-selector/sales-order-line-item-selector.module.ts", "libs/sales-ui/src/lib/sales-orders/sales-order-confirmation/sales-order-confirmation.module.ts", "libs/sales-ui/src/lib/sales-orders/sales-order-details-card/order-detail-agreement.ts", "libs/sales-ui/src/lib/sales-orders/sales-order-details-card/order-detail-field.ts", "libs/sales-ui/src/lib/sales-orders/sales-order-details-card/sales-order-details-contract-duration/sales-contract-duration.ts", "libs/sales-ui/src/lib/sales-orders/sales-order-details-card/sales-order-details-tags/sales-order-details-tags.service.ts", "libs/sales-ui/src/lib/sales-orders/sales-order-details-card/sales-order-details-tags/sales-order-details-tags.component.ts", "libs/sales-ui/src/lib/sales-orders/sales-order-details-card/sales-order-details-tags/sales-order-details-tags.component.html", "libs/sales-ui/src/lib/sales-orders/sales-order-details-card/sales-order-details-requested-activation/sales-order-details-requested-activation.component.ts", "libs/sales-ui/src/lib/sales-orders/sales-order-details-card/sales-order-details-requested-activation/sales-order-details-requested-activation.component.html", "libs/sales-ui/src/lib/sales-orders/sales-order-details-card/sales-order-details-contract-duration/sales-order-details-contract-duration.component.ts", "libs/sales-ui/src/lib/sales-orders/sales-order-details-card/sales-order-details-contract-duration/sales-order-details-contract-duration.component.html", "libs/sales-ui/src/lib/sales-orders/sales-order-details-card/sales-order-details-notes/sales-order-details-notes.component.ts", "libs/sales-ui/src/lib/sales-orders/sales-order-details-card/sales-order-details-notes/sales-order-details-notes.component.html", "libs/sales-ui/src/lib/sales-orders/sales-order-details-card/sales-order-details-customer-notes/sales-order-details-customer-notes.component.ts", "libs/sales-ui/src/lib/sales-orders/sales-order-details-card/sales-order-details-customer-notes/sales-order-details-customer-notes.component.html", "libs/sales-ui/src/lib/sales-orders/sales-order-details-card/sales-order-details-card.component.ts", "libs/sales-ui/src/lib/sales-orders/sales-order-details-card/sales-order-details-card.component.html", "libs/sales-ui/src/lib/sales-orders/sales-order-details-card/sales-order-details-card.module.ts", "libs/sales-ui/src/lib/sales-orders/sales-order-form/interface.ts", "libs/sales-ui/src/lib/sales-orders/sales-order-form/sales-order.service.ts", "libs/sales-ui/src/lib/sales-orders/sales-order-form/sales-order-form.service.ts", "libs/sales-ui/src/lib/sales-orders/sales-order-form/sales-order-form.component.ts", "libs/sales-ui/src/lib/sales-orders/sales-order-form/sales-order-form.component.html", "libs/sales-ui/src/lib/sales-orders/sales-order-form/sales-order-form.module.ts", "libs/sales-ui/src/lib/sales-orders/salesperson-selector-dialog/salesperson-selector-dialog.component.ts", "libs/sales-ui/src/lib/sales-orders/salesperson-selector-dialog/salesperson-selector-dialog.component.html", "libs/sales-ui/src/lib/sales-orders/sales-order-table/cells/order-link.ts", "libs/sales-ui/src/lib/sales-orders/sales-order-table/cells/sales-order-table-custom.component.ts", "libs/sales-ui/src/lib/sales-orders/sales-order-table/sales-orders-table-access.service.ts", "libs/sales-ui/src/lib/sales-orders/sales-order-table/cells/sales-order-actions-cell.component.ts", "libs/sales-ui/src/lib/sales-orders/sales-order-table/cells/business-info-cell.component.ts", "libs/sales-ui/src/lib/sales-orders/sales-order-table/cells/date-cell.component.ts", "libs/sales-ui/src/lib/sales-orders/sales-order-table/cells/expiry-cell.component.ts", "libs/sales-ui/src/lib/sales-orders/sales-order-table/cells/order-id-cell.component.ts", "libs/sales-ui/src/lib/sales-orders/sales-order-table/cells/order-tags-cell.component.ts", "libs/sales-ui/src/lib/sales-orders/sales-order-table/interface.ts", "libs/sales-ui/src/lib/sales-orders/sales-order-table/cells/salesperson-cell.component.ts", "libs/sales-ui/src/lib/sales-orders/sales-order-table/cells/status-cell.component.ts", "libs/sales-ui/src/lib/sales-orders/sales-order-table/sales-order-export-all-service.ts", "libs/sales-ui/src/lib/sales-orders/sales-order-table/conversion-utils.ts", "libs/sales-ui/src/lib/sales-orders/sales-order-table/sales-orders-customer-table.service.ts", "libs/sales-ui/src/lib/sales-orders/sales-order-table/sales-orders-table-customer-filter.service.ts", "libs/sales-ui/src/lib/sales-orders/sales-order-table/filters-utils.ts", "libs/sales-ui/src/lib/sales-orders/sales-order-table/sales-orders-table-filter.service.ts", "libs/sales-ui/src/lib/sales-orders/sales-order-table/cells/fulfillment-cell.component.ts", "libs/sales-ui/src/lib/sales-orders/sales-order-table/cells/fulfillment-cell.component.html", "libs/sales-ui/src/lib/sales-orders/sales-order-table/sales-orders-table-model.ts", "libs/sales-ui/src/lib/sales-orders/sales-order-table/sales-orders-table.service.ts", "libs/sales-ui/src/lib/sales-orders/sales-order-table/salesperson.service.ts", "libs/sales-ui/src/lib/sales-orders/sales-order-table/sales-orders-table-tab-filter.service.ts", "libs/sales-ui/src/lib/sales-orders/sales-order-table/sales-order-table-stats/sales-order-table-stats.component.ts", "libs/sales-ui/src/lib/sales-orders/sales-order-table/sales-order-table-stats/sales-order-table-stats.component.html", "libs/sales-ui/src/lib/sales-orders/sales-order-table/sales-orders-table.component.ts", "libs/sales-ui/src/lib/sales-orders/sales-order-table/sales-orders-table.component.html", "libs/sales-ui/src/lib/sales-orders/salesperson-selector-dialog/salesperson-selector-dialog.module.ts", "libs/sales-ui/src/lib/sales-orders/sales-order-table/sales-orders-table.module.ts", "libs/sales-ui/src/lib/sales-ui-translations.module.ts", "libs/sales-ui/src/lib/sales-opportunities/type-selector/type-selector.component.ts", "libs/sales-ui/src/lib/sales-opportunities/type-selector/type-selector.component.html", "libs/sales-ui/src/lib/index.ts", "libs/sales-ui/src/index.ts"], "sourcesContent": ["import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';\nimport { StatusNotificationItem } from '../sales-package';\nimport { ActivationStatus } from '@vendasta/sales-orders';\n\nexport enum ListIndent {\n INDENT_ZERO = 'indent-zero',\n INDENT_ONE = 'indent-one',\n INDENT_TWO = 'indent-two',\n}\n\nexport interface MenuItemInterface {\n label: string;\n icon: string;\n value: string;\n eventType: MenuItemEventType;\n}\n\nexport enum MenuItemEventType {\n IGNORE_ACTIVATION_ERRORS = 'ignore-errors',\n}\n\nexport interface MenuItemClickedInterface {\n value: string;\n eventType: MenuItemEventType;\n}\n\n@Component({\n selector: 'sales-ui-sales-order-package-dropdown-item',\n templateUrl: './package-dropdown-item.component.html',\n styleUrls: ['./package-dropdown-item.component.scss', '../package-dropdown.component.scss'],\n standalone: false,\n})\nexport class SalesOrderPackageDropdownItemComponent {\n @Input() title: string;\n @Input() editionName: string;\n @Input() previousEditionName: string;\n @Input() titleDescriptor: string;\n @Input() iconUrl: string;\n @Input() secondaryIconUrl: string;\n @Input() secondaryIconName: string;\n @Input() subtitle: string;\n @Input() statusItem: StatusNotificationItem;\n @Input() enableDropdown = false;\n @Input() enableMenu = false;\n @Input() indent = ListIndent.INDENT_ZERO;\n @Input() toggleValue: boolean;\n @Input() description: string;\n @Input() menuItems: MenuItemInterface[] = [];\n @Input() first = false;\n @Input() showMenuItems = false;\n @Output() menuItemClicked: EventEmitter = new EventEmitter();\n @Output() itemToggled: EventEmitter = new EventEmitter();\n\n @ViewChild('errorRef') errorRef;\n\n toggleItem(): void {\n this.itemToggled.emit(null);\n }\n\n calculateClassFromStatus(status: ActivationStatus): string {\n switch (status) {\n case ActivationStatus.ACTIVATED:\n case ActivationStatus.IGNORED_ERRORS:\n return 'activated';\n case ActivationStatus.ALREADY_ACTIVATED:\n return 'warning';\n case ActivationStatus.ERRORED:\n return 'error';\n default:\n return 'pending';\n }\n }\n\n menuItemClick(item: MenuItemInterface): void {\n this.menuItemClicked.emit({ value: item.value, eventType: item.eventType });\n }\n\n statusText(status: ActivationStatus): string {\n if (status === ActivationStatus.ALREADY_ACTIVATED) {\n return 'FRONTEND.SALES_UI.ACTIVATION_STATUS.ALREADY_ACTIVATED';\n }\n\n return '';\n }\n}\n", "\n
\n
\n \n
\n
\n \n {{ title }}\n  | {{ editionName }}\n \n {{ 'FRONTEND.SALES_UI.CHANGES_EDITION_FROM' | translate: { previousEditionName: previousEditionName } }}\n \n \n {{ titleDescriptor }}\n \n \n {{ subtitle }}\n
\n
\n
\n
\n
\n

\n {{ description }}\n

\n \n
\n
\n {{ statusItem.icon }}\n

\n {{ statusItem.text | translate }}\n {{ statusText(statusItem.status) ? ' - ' + (statusText(statusItem.status) | translate) : '' }}\n \n -\n \n \n

\n \n
\n
\n
\n
\n\n\n \n\n\n\n
0 && showMenuItems\">\n \n \n \n \n
\n
\n\n\n
\n \n \n
\n
\n", "import { LineItem, Package } from '@vendasta/marketplace-packages';\nimport { App } from '@galaxy/marketplace-apps';\nimport { MenuItemEventType, MenuItemInterface } from './package-dropdown-item/package-dropdown-item.component';\nimport { ActivationStatus } from '@vendasta/sales-orders';\nimport { ActivationFailureDetails } from '@vendasta/order-fulfillment/lib/_internal/objects';\n\nexport class SalesPackage extends Package {\n salesProducts: SalesProduct[];\n addonsWithNoParent: SalesProduct[];\n totalAddons: number;\n activationStatus?: StatusNotificationItem;\n\n constructor(\n pkg: Package,\n salesProducts: SalesProduct[],\n addonsWithNoParent: SalesProduct[],\n totalAddons: number,\n activationStatus?: StatusNotificationItem,\n ) {\n super(pkg);\n this.salesProducts = salesProducts;\n this.addonsWithNoParent = addonsWithNoParent;\n this.totalAddons = totalAddons;\n this.activationStatus = activationStatus;\n }\n}\n\nexport class SalesProduct extends App {\n activationStatus?: StatusNotificationItem;\n addons: SalesProduct[];\n menuItems: MenuItemInterface[] = [];\n\n constructor(app: App, addons: SalesProduct[], activationStatus?: StatusNotificationItem) {\n super(app);\n this.addons = addons;\n this.activationStatus = activationStatus;\n }\n}\n\nexport interface PackageItemActivationStatus {\n packageItemId: string;\n status: ActivationStatus;\n uniqueId: string;\n editionId?: string;\n previousEditionId?: string;\n isEditionChange?: boolean;\n failureDetails?: string;\n}\n\nexport interface StatusNotificationItem {\n icon: string;\n text: string;\n status: ActivationStatus;\n uniqueId: string;\n editionId?: string;\n previousEditionId?: string;\n isEditionChange?: boolean;\n failureDetails?: string;\n}\n\nexport function buildSalesPackages(packages: Package[], apps: App[]): SalesPackage[] {\n if (!packages || packages.length < 1) {\n return [];\n }\n return packages.map((pkg) => buildSalesPackageFromPackage(pkg, apps));\n}\n\nfunction buildSalesPackageFromPackage(pkg: Package, apps: App[]): SalesPackage {\n if (!pkg) {\n return null;\n }\n\n const appMap: Map = new Map();\n (apps || []).forEach((app) => appMap.set(app.key.appId, app));\n\n const salesProducts = buildSalesProducts(pkg, appMap);\n // Addons can be in a package even if the parent product is not, this will create salesAddons with no parent\n const addonsWithNoParent: SalesProduct[] = buildSalesAddonsWithNoParent(pkg, appMap);\n\n const totalAddonsCount = (pkg.lineItems.lineItems || [])\n .filter((li) => !!li.parentId)\n .reduce((count, addon) => {\n return count + (addon.quantity || 1);\n }, 0);\n\n return new SalesPackage(pkg, salesProducts, addonsWithNoParent, totalAddonsCount);\n}\n\nexport function buildSalesProducts(pkg: Package, appMap: Map): SalesProduct[] {\n if (!(appMap && appMap.size && pkg.lineItems && (pkg.lineItems.lineItems || []).length)) {\n return [];\n }\n\n const productsInPackage = pkg.lineItems.lineItems.filter((li) => !li.parentId);\n return productsInPackage\n .map((li) => {\n const productMatch: App = appMap.get(li.id);\n const addonsInPackage = productMatch\n ? multiplyAddonsByTheirQuantity(\n pkg.lineItems.lineItems.filter((il) => il.parentId === productMatch.key.appId),\n appMap,\n )\n : [];\n return productMatch ? buildSalesProductFromProduct(productMatch, addonsInPackage) : null;\n })\n .filter((productItem) => productItem);\n}\n\nexport function multiplyAddonsByTheirQuantity(addonLineItems: LineItem[], appMap: Map): App[] {\n return addonLineItems.reduce((addonsArray, li) => {\n const addon = appMap.get(li.id);\n if (addon) {\n const quantity = li.quantity || 1;\n for (let i = 0; i < quantity; i++) {\n addonsArray.push(addon);\n }\n }\n return addonsArray;\n }, []);\n}\n\nexport function buildSalesAddonsWithNoParent(pkg: Package, appMap: Map): SalesProduct[] {\n if (!appMap || appMap.size < 1 || !pkg.lineItems || !(pkg.lineItems.lineItems || []).length) {\n return [];\n }\n const productsInPackageMap: Map = new Map();\n pkg.lineItems.lineItems.filter((li) => !li.parentId).forEach((li) => productsInPackageMap.set(li.id, true));\n\n const lineItemsThatAreAddonsThatDontHaveTheParentAppInThePackage = pkg.lineItems.lineItems.filter(\n (li) => !!li.parentId && !productsInPackageMap.get(li.parentId),\n );\n\n const addonArray: SalesProduct[] = [];\n lineItemsThatAreAddonsThatDontHaveTheParentAppInThePackage.map((li) => {\n const quantity = li.quantity || 1;\n const addon = appMap.get(li.id);\n if (quantity && addon) {\n for (let i = 0; i < quantity; i++) {\n addonArray.push(new SalesProduct(addon, []));\n }\n }\n });\n return addonArray;\n}\n\nexport function buildSalesProductFromProduct(app: App, addons: App[]): SalesProduct {\n if (!app) {\n return null;\n }\n return new SalesProduct(\n app,\n (addons || []).map((a) => new SalesProduct(a, [])),\n );\n}\n\nexport function addStatusesToSalesPackages(\n salesPackages: SalesPackage[],\n statuses: PackageItemActivationStatus[],\n failureDetails: ActivationFailureDetails[],\n): SalesPackage[] {\n if (!statuses || statuses.length === 0) {\n return salesPackages;\n }\n\n return salesPackages.map((salesPackage) => {\n const newProducts = salesPackage.salesProducts.map((product) =>\n addStatusesToSalesProduct(product, statuses, failureDetails),\n );\n\n const newAddonsWithNoParent = salesPackage.addonsWithNoParent.map((addon) => {\n return addStatusesToSalesProduct(addon, statuses, failureDetails);\n });\n\n const productStatuses = newProducts.map((product) => product?.activationStatus?.status);\n const addonStatuses = newProducts\n .map((product) => (product?.addons ? product.addons.map((addon) => addon?.activationStatus?.status) : []))\n .reduce((statusList, reducedList) => reducedList.concat(statusList), []);\n const addonsWithNoParentStatuses = newAddonsWithNoParent.map((addon) =>\n addon?.activationStatus ? addon.activationStatus.status : null,\n );\n const allStatuses = [...productStatuses, ...addonStatuses, ...addonsWithNoParentStatuses];\n\n const packageStatus = aggregateStatuses(allStatuses);\n const statusNotification = createStatusNotificationItem(packageStatus, '');\n\n return new SalesPackage(\n salesPackage,\n newProducts,\n newAddonsWithNoParent,\n salesPackage.totalAddons,\n statusNotification,\n );\n });\n}\n\nexport function addStatusesToSalesProduct(\n product: SalesProduct,\n statuses: PackageItemActivationStatus[],\n activationFailureDetails: ActivationFailureDetails[],\n): SalesProduct {\n if (!statuses || statuses.length === 0) {\n return product;\n }\n const productStatus = findStatus(statuses, product.key.appId, product.key.editionId);\n if (!productStatus) {\n return product;\n }\n const statusNotification = createStatusNotificationItem(\n productStatus.status,\n productStatus.uniqueId,\n productStatus.editionId,\n productStatus.previousEditionId,\n productStatus.isEditionChange,\n productStatus.failureDetails,\n );\n if (!product.addons) {\n return new SalesProduct(product, [], statusNotification);\n }\n\n const newSalesAddons = product.addons.map((addon) => {\n return addStatusesToSalesProduct(addon, statuses, activationFailureDetails);\n });\n\n return new SalesProduct(product, newSalesAddons, statusNotification);\n}\n\nexport function addMenuItemsToSalesPackages(salesPackages: SalesPackage[]): SalesPackage[] {\n return salesPackages.map((salesPackage) => {\n salesPackage.salesProducts = salesPackage.salesProducts.map((product) => {\n (product.addons || []).map((a) => addMenuItemsToSalesProduct(a));\n return addMenuItemsToSalesProduct(product);\n });\n salesPackage.addonsWithNoParent = salesPackage.addonsWithNoParent.map((a) => addMenuItemsToSalesProduct(a));\n return salesPackage;\n });\n}\n\nexport function addMenuItemsToSalesProduct(product: SalesProduct): SalesProduct {\n if (\n product.activationStatus &&\n product.activationStatus.status === ActivationStatus.ERRORED &&\n !!product.activationStatus.uniqueId\n ) {\n product.menuItems = [\n {\n label: 'FRONTEND.SALES_UI.IGNORE_ERRORS',\n icon: '',\n value: product.activationStatus.uniqueId,\n eventType: MenuItemEventType.IGNORE_ACTIVATION_ERRORS,\n },\n ];\n }\n return product;\n}\n\nfunction findStatus(\n statuses: PackageItemActivationStatus[],\n id: string,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n editionId: string,\n): PackageItemActivationStatus {\n if (!statuses || statuses.length <= 0) {\n return null;\n }\n const statusIndex = statuses.findIndex((s) => {\n // Temporary hack to get around issue reported on MT-1431\n // Package was edited after it was ordered, causing the editionId on the current package to be different than\n // the edition id on the package that was ordered. This causes the status to not be found. Checking only for the\n // item id shouldn't cause any issue since there won't be multiple activatable items with editions.\n return s.packageItemId === id /*&& (s.editionId || '') === (editionId || '')*/;\n });\n if (statusIndex < 0) {\n return null;\n }\n const status = statuses[statusIndex];\n statuses.splice(statusIndex, 1);\n return status;\n}\n\nfunction createStatusNotificationItem(\n status: ActivationStatus,\n uniqueId: string,\n editionId?: string,\n previousEditionId?: string,\n isEditionChange?: boolean,\n failureDetails?: string,\n): StatusNotificationItem {\n switch (status) {\n case ActivationStatus.ACTIVATED:\n return {\n icon: 'check_circle',\n status: status,\n text: 'FRONTEND.SALES_UI.ACTIVATED',\n uniqueId: uniqueId,\n editionId,\n previousEditionId,\n isEditionChange,\n failureDetails: failureDetails,\n };\n case ActivationStatus.ALREADY_ACTIVATED:\n return {\n icon: 'warning',\n status: status,\n text: 'FRONTEND.SALES_UI.ACTIVATION_WARNINGS',\n uniqueId: uniqueId,\n editionId,\n previousEditionId,\n isEditionChange,\n failureDetails: failureDetails,\n };\n case ActivationStatus.IGNORED_ERRORS:\n return {\n icon: 'check_circle',\n status: status,\n text: 'FRONTEND.SALES_UI.ERRORS_IGNORED',\n uniqueId: uniqueId,\n editionId,\n previousEditionId,\n isEditionChange,\n failureDetails: failureDetails,\n };\n case ActivationStatus.ERRORED:\n return {\n icon: 'error',\n status: status,\n text: 'FRONTEND.SALES_UI.ACTIVATION_ERRORS',\n uniqueId: uniqueId,\n editionId,\n previousEditionId,\n isEditionChange,\n failureDetails: failureDetails,\n };\n default:\n return {\n icon: 'watch_later',\n status: status,\n text: 'FRONTEND.SALES_UI.PENDING_ACTIVATION',\n uniqueId: uniqueId,\n editionId,\n previousEditionId,\n isEditionChange,\n failureDetails: failureDetails,\n };\n }\n}\n\nfunction aggregateStatuses(statuses: ActivationStatus[]): ActivationStatus {\n const allStatuses = statuses || [];\n\n if (allStatuses.some((s) => s === ActivationStatus.ERRORED)) {\n return ActivationStatus.ERRORED;\n }\n\n if (allStatuses.some((s) => s === ActivationStatus.ALREADY_ACTIVATED)) {\n return ActivationStatus.ALREADY_ACTIVATED;\n }\n\n if (allStatuses.length > 0 && allStatuses.every((s) => s === ActivationStatus.PENDING || s === undefined)) {\n return ActivationStatus.PENDING;\n }\n\n return ActivationStatus.ACTIVATED;\n}\n", "import { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\n\nimport { Package } from '@vendasta/marketplace-packages';\nimport { App } from '@galaxy/marketplace-apps';\nimport {\n addMenuItemsToSalesPackages,\n addMenuItemsToSalesProduct,\n addStatusesToSalesPackages,\n addStatusesToSalesProduct,\n buildSalesPackages,\n buildSalesProductFromProduct,\n PackageItemActivationStatus,\n SalesPackage,\n SalesProduct,\n} from './sales-package';\nimport { ListIndent, MenuItemClickedInterface } from './package-dropdown-item/package-dropdown-item.component';\nimport { ActivationFailureDetails } from '@vendasta/order-fulfillment/lib/_internal/objects';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { TranslateService } from '@ngx-translate/core';\n\ninterface OrderLengthsForToggling {\n packages: number;\n products: number;\n}\n\n@Component({\n selector: 'sales-ui-sales-order-package-dropdown',\n animations: [\n trigger('listAnimationStart', [\n state('void', style({ height: '0px' })),\n state('*', style({ height: '*' })),\n transition('void => *', [animate('0.25s ease')]),\n transition('* => void', [animate('0.25s ease')]),\n ]),\n ],\n templateUrl: 'package-dropdown.component.html',\n styleUrls: ['../../../shared/shared-styles.scss', './package-dropdown.component.scss'],\n standalone: false,\n})\nexport class SalesOrderPackageDropdownComponent implements OnChanges {\n // whether to show the contents in it's own card or a closed expansion panel\n @Input() compactView = false;\n // packages in dropdown\n @Input() packages: Package[] = [];\n // apps that are in the given packages\n @Input() appsInPackages: App[] = [];\n // apps not associated with a package\n @Input() standAloneApps: App[] = [];\n // statuses for all products and addons\n @Input() statuses: PackageItemActivationStatus[] = [];\n @Input() title: string;\n @Input() showMenuItems = false;\n @Input() activationFailureDetails: ActivationFailureDetails[];\n\n @Output() menuItemClicked: EventEmitter = new EventEmitter();\n\n packageProductIndent = ListIndent.INDENT_ONE;\n packageAddonWithoutProductIndent = ListIndent.INDENT_ONE;\n packageAddonWithProductIndent = ListIndent.INDENT_TWO;\n\n orderItemLengths: OrderLengthsForToggling = {\n packages: 0,\n products: 0,\n };\n\n salesPackages: SalesPackage[] = [];\n salesProducts: SalesProduct[] = [];\n packageToggles: boolean[] = [];\n productToggles: boolean[] = [];\n\n constructor(private translateService: TranslateService) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n this.packages = changes.packages ? changes.packages.currentValue : this.packages;\n this.appsInPackages = changes.appsInPackages ? changes.appsInPackages.currentValue : this.appsInPackages;\n this.standAloneApps = changes.standAloneApps ? changes.standAloneApps.currentValue : this.standAloneApps;\n this.statuses = changes.statuses ? changes.statuses.currentValue : this.statuses;\n this.title = changes.title ? changes.title.currentValue : this.title;\n\n this.orderItemLengths = {\n packages: this.packages.length,\n products: this.appsInPackages.length,\n };\n this.salesPackages = addMenuItemsToSalesPackages(\n addStatusesToSalesPackages(\n buildSalesPackages(this.packages, this.appsInPackages),\n this.statuses,\n this.activationFailureDetails,\n ),\n );\n this.salesProducts = this.standAloneApps.map((a) =>\n addMenuItemsToSalesProduct(\n addStatusesToSalesProduct(buildSalesProductFromProduct(a, []), this.statuses, this.activationFailureDetails),\n ),\n );\n }\n\n public openAllDropdowns(): void {\n for (let x = 0; x < this.orderItemLengths.packages; x++) {\n this.packageToggles[x] = true;\n }\n for (let x = 0; x < this.orderItemLengths.products; x++) {\n this.productToggles[x] = true;\n }\n }\n\n public togglePackage(indexToToggle: number): void {\n this.packageToggles[indexToToggle] = !this.packageToggles[indexToToggle];\n }\n\n public standAloneProductWithParentDescription(product: SalesProduct): string {\n if (!product.parentRequirements.enabled) {\n return '';\n }\n\n return this.translateService.instant('FRONTEND.STORE.REQUIRES_DESCRIPTOR', {\n requirementName: product.parentRequirements.parentDetails.name,\n });\n }\n\n public packageDescription(pkg: SalesPackage): string {\n const productsCount = pkg.salesProducts ? pkg.salesProducts.length : 0;\n return this.translateService.instant('FRONTEND.STORE.CONTAINS_NUM_ITEMS', {\n itemCount: productsCount + pkg.totalAddons,\n });\n }\n\n menuItemClick(event: MenuItemClickedInterface): void {\n this.menuItemClicked.emit(event);\n }\n\n getPreviousEditionName(product: SalesProduct): string {\n if (\n product &&\n product.activationStatus &&\n product.activationStatus.isEditionChange &&\n product.activationStatus.editionId !== product.activationStatus.previousEditionId\n ) {\n const previousEdition = (product.editionInformation?.editions || []).find((edition) => {\n return edition?.appKey?.editionId === product.activationStatus.previousEditionId;\n });\n\n return previousEdition?.name || '';\n }\n\n return '';\n }\n}\n", "\n \n\n\n \n \n {{ title | translate }}\n \n \n \n \n \n\n\n\n \n
\n 0 || package.addonsWithNoParent?.length > 0\"\n [toggleValue]=\"packageToggles[packageIndex]\"\n [first]=\"first\"\n [showMenuItems]=\"showMenuItems\"\n (itemToggled)=\"togglePackage(packageIndex)\"\n >\n\n \n
\n \n\n \n
\n\n \n \n
\n\n
\n \n
\n
\n
\n", "import { ActivationStatus, ProductActivation } from '@vendasta/sales-orders';\nimport { PackageItemActivationStatus } from './package-dropdown/sales-package';\n\nexport function convertActivationsToPackageItemActivationStatuses(\n productActivations: ProductActivation[],\n): PackageItemActivationStatus[] {\n return productActivations\n ? productActivations\n .filter((productActivation) => productActivation.activationStatus !== ActivationStatus.PENDING)\n .map((productActivation) => {\n return {\n packageItemId: productActivation.productId,\n status: productActivation.activationStatus,\n uniqueId: productActivation.uniqueId,\n editionId: productActivation.editionId,\n previousEditionId: productActivation.previousEditionId,\n isEditionChange: productActivation.isEditionChange,\n };\n })\n : [];\n}\n", "import { Inject, Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { CustomerSalesOrdersService, Order, SalesOrdersService } from '@vendasta/sales-orders';\nimport { catchError, skipWhile, take, tap } from 'rxjs/operators';\n\ninterface OrderState {\n order: Order;\n loading: boolean;\n}\n\nexport interface SalesOrders {\n get(orderId, businessId): Observable;\n}\n\n@Injectable()\nexport class SalesOrderStoreService {\n private ordersStore: Map> = new Map>();\n\n constructor(\n @Inject(SalesOrdersService) private salesOrdersService: SalesOrders,\n @Inject(CustomerSalesOrdersService) private customerSalesOrdersService: SalesOrders,\n ) {}\n\n buildId(businessId: string, orderId: string): string {\n return [businessId, orderId].join(':');\n }\n\n public getOrderState(orderId: string, businessId: string): Observable {\n const id = this.buildId(businessId, orderId);\n if (!this.ordersStore.has(id)) {\n this.fetchOrder(orderId, businessId);\n }\n return this.ordersStore.get(id).pipe(skipWhile((o) => o === undefined));\n }\n\n fetchOrder(orderId: string, businessId: string): void {\n const id = this.buildId(businessId, orderId);\n if (!this.ordersStore.has(id)) {\n this.ordersStore.set(id, new BehaviorSubject(undefined));\n }\n const order$$ = this.ordersStore.get(id);\n if (!businessId || !orderId) {\n order$$.next({ order: null, loading: false });\n return;\n }\n const currentValue = this.ordersStore.get(id).getValue();\n if (currentValue) {\n order$$.next({ order: currentValue.order, loading: true });\n }\n this.salesOrdersService\n .get(orderId, businessId)\n .pipe(\n catchError(() => {\n return this.customerSalesOrdersService.get(orderId, businessId);\n }),\n tap((o) => order$$.next({ order: o, loading: false })),\n take(1),\n )\n .subscribe();\n }\n\n public refreshOrder(orderId: string, businessId: string): void {\n this.fetchOrder(orderId, businessId);\n }\n\n public clearOrderStateCache(): void {\n this.ordersStore.clear();\n }\n}\n", "import { Inject, Injectable, OnDestroy } from '@angular/core';\nimport { Package, PackageService } from '@vendasta/marketplace-packages';\nimport { App, AppKey, AppPartnerService, AppType, FieldMaskInterface } from '@galaxy/marketplace-apps';\nimport { map, switchMap, publishReplay, refCount, tap, catchError, skipWhile, filter } from 'rxjs/operators';\nimport { BehaviorSubject, combineLatest, Observable, of, Subscription, zip } from 'rxjs';\nimport { LineItem, ProductActivation, SalesOrdersService } from '@vendasta/sales-orders';\nimport { convertActivationsToPackageItemActivationStatuses } from './product-activation';\nimport { PackageItemActivationStatus } from './package-dropdown/sales-package';\nimport { SalesOrderStoreService } from '../sales-order-store.service';\n\nexport interface PackageApiService {\n getMulti(packageIds: string[]): Observable;\n}\n\nexport interface AppSdkService {\n getMulti(\n appKeys: AppKey[],\n partnerId: string,\n marketId: string,\n projectionFilter: FieldMaskInterface,\n includeNotEnabled: boolean,\n ): Observable;\n}\n\nexport interface SalesOrders {\n ignoreProductActivationError(\n orderId: string,\n businessId: string,\n productActivationUniqueId: string,\n ): Observable;\n previewOrderActivations(orderId: string, businessId: string): Observable;\n}\n\nexport interface UIPackages {\n packages: Package[];\n products: App[];\n status: PackageItemActivationStatus[];\n}\n\nexport interface UIProducts {\n products: App[];\n status: PackageItemActivationStatus[];\n}\n\nexport interface UIAddons {\n addons: App[];\n status: PackageItemActivationStatus[];\n}\n\n@Injectable()\nexport class SalesOrderContentsService implements OnDestroy {\n partnerId: string;\n marketId: string;\n businessId: string;\n\n uiPackages$: Observable;\n uiProducts$: Observable;\n uiAddons$: Observable;\n\n orderId$$: BehaviorSubject = new BehaviorSubject(null);\n orderId$: Observable = this.orderId$$.asObservable();\n\n specifiedLineItems$$: BehaviorSubject = new BehaviorSubject([]);\n specifiedLineItems$: Observable = this.specifiedLineItems$$.asObservable();\n\n loading$$: BehaviorSubject = new BehaviorSubject(true);\n loading$: Observable = this.loading$$.asObservable();\n\n validationErrorMsgs = new Map([\n ['1', 'App Not Found'],\n ['2', 'No Order Form SubmissionID'],\n ['3', 'Order Form Not Found'],\n ['4', 'Order Form Already Used'],\n ['5', 'Order Form Not Supported'],\n ['6', 'Invalid Entry URL'],\n ['7', 'Entry URL Not Provided'],\n ['8', 'Invalid Dependency'],\n ['9', 'Already Active'],\n ['10', 'Edition Not Provided'],\n ['11', 'Editions Not Supported'],\n ['12', 'Invalid Edition'],\n ['13', 'Trial Not Supported'],\n ['14', 'Account Group Not Found'],\n ['15', 'No Country Information'],\n ['16', 'Unsupported Country'],\n ['17', 'Can Not Change Edition of Trial'],\n ['18', 'App Not Found'],\n ]);\n\n private subscriptions: Subscription[] = [];\n\n constructor(\n @Inject(PackageService) private readonly packageSdk: PackageApiService,\n @Inject(AppPartnerService) private readonly appSdk: AppSdkService,\n @Inject(SalesOrdersService) private readonly salesOrdersSdk: SalesOrders,\n private readonly salesOrderStoreService: SalesOrderStoreService,\n ) {\n const orderState$ = this.orderId$.pipe(\n skipWhile((orderId) => orderId === null),\n switchMap((orderId) => this.salesOrderStoreService.getOrderState(orderId, this.businessId)),\n publishReplay(1),\n refCount(),\n );\n\n this.subscriptions.push(\n orderState$\n .pipe(\n tap((orderState) => {\n if (orderState.loading) {\n this.loading$$.next(true);\n }\n }),\n )\n .subscribe(),\n );\n\n const order$ = orderState$.pipe(\n filter((orderState) => !orderState.loading),\n map((orderState) => orderState.order),\n publishReplay(1),\n refCount(),\n );\n\n const combinedLineItems$ = combineLatest([order$, this.specifiedLineItems$]).pipe(\n map(([order, lineItems]) => lineItems.concat(order?.lineItems || [])),\n publishReplay(1),\n refCount(),\n );\n\n const packages$ = combinedLineItems$.pipe(\n switchMap((lineItems) => {\n const packageLineItems = lineItems.filter((li) => !!li.packageId);\n if (packageLineItems.length > 0) {\n return this.packageSdk.getMulti(packageLineItems.map((li) => li.packageId));\n }\n return of([]);\n }),\n publishReplay(1),\n refCount(),\n );\n\n const productActivations$ = order$.pipe(\n switchMap((order) => {\n if (order.productActivations) {\n return of(order.productActivations);\n }\n return this.salesOrdersSdk.previewOrderActivations(order.orderId, order.businessId);\n }),\n catchError(() => {\n return of([]);\n }),\n publishReplay(1),\n refCount(),\n );\n\n const packageItemActivationStatus$ = productActivations$.pipe(\n map((productActivations) => convertActivationsToPackageItemActivationStatuses(productActivations || [])),\n publishReplay(1),\n refCount(),\n );\n\n const uniqueAppsAndAddons$ = zip(combinedLineItems$, packages$).pipe(\n switchMap(([lineItems, packages]) => {\n const notPackages = lineItems.filter((li) => !!li.appKey);\n const appKeys = notPackages.map(\n ({ appKey }) => new AppKey({ appId: appKey.appId, editionId: appKey.editionId || '' }),\n );\n\n packages.map((p) =>\n (p.lineItems.lineItems || []).map((li) =>\n appKeys.push(new AppKey({ appId: li.id, editionId: li.editionId || '' })),\n ),\n );\n const uniqueAppKeys = appKeys.reduce((unique, app) => {\n if (unique.find((u) => u.appId === app.appId && u.editionId === app.editionId)) {\n return unique;\n }\n\n unique.push(app);\n return unique;\n }, []);\n return this.appSdk.getMulti(uniqueAppKeys, this.partnerId, this.marketId, null, true);\n }),\n map((apps) => apps?.filter((a) => !!a?.key?.appId)),\n publishReplay(1),\n refCount(),\n );\n\n this.uiPackages$ = zip(combinedLineItems$, packages$, uniqueAppsAndAddons$, packageItemActivationStatus$).pipe(\n map(([lineItems, packages, uniqueAppsAndAddons, statuses]) => {\n const packagesLineItems = lineItems.filter((li) => !!li.packageId);\n const quantifiedPackages = quantifyLineItems(packagesLineItems);\n const storePackages = quantifiedPackages\n .map((li) => {\n return packages.find((p) => p.packageId === li.packageId);\n })\n .filter((p) => !!p);\n return {\n packages: storePackages,\n products: uniqueAppsAndAddons,\n status: statuses,\n };\n }),\n );\n\n this.uiProducts$ = zip(combinedLineItems$, uniqueAppsAndAddons$, packageItemActivationStatus$).pipe(\n map(([lineItems, uniqueAppsAndAddons, statuses]) => {\n const nonPackageLineItems = lineItems.filter((li) => !!li.appKey);\n const quantifiedNonPackage = quantifyLineItems(nonPackageLineItems);\n const apps = uniqueAppsAndAddons?.filter((a) => a.appType === AppType.APP_TYPE_APP);\n\n const products = quantifiedNonPackage\n .map((npli) => {\n return apps.find(\n (a) => npli.appKey.appId === a.key.appId && (npli.appKey.editionId || '') === (a.key.editionId || ''),\n );\n })\n .filter((a) => !!a);\n return {\n products: products,\n status: statuses,\n };\n }),\n );\n\n this.uiAddons$ = zip(combinedLineItems$, uniqueAppsAndAddons$, packageItemActivationStatus$).pipe(\n map(([lineItems, uniqueAppsAndAddons, statuses]) => {\n const nonPackageLineItems = lineItems.filter((li) => !!li.appKey);\n const quantifiedNonPackage = quantifyLineItems(nonPackageLineItems);\n const addons = uniqueAppsAndAddons?.filter((a) => a.appType === AppType.APP_TYPE_ADDON);\n\n const nonPackagedAddons = quantifiedNonPackage\n .map((npli) => {\n return addons.find(\n (a) => npli.appKey.appId === a.key.appId && (npli.appKey.editionId || '') === (a.key.editionId || ''),\n );\n })\n .filter((a) => !!a);\n return {\n addons: nonPackagedAddons,\n status: statuses,\n };\n }),\n );\n }\n\n ngOnDestroy(): void {\n this.subscriptions.forEach((sub) => sub.unsubscribe());\n }\n\n initialize(partnerId: string, marketId: string, businessId: string, orderId: string, lineItems: LineItem[]): void {\n this.partnerId = partnerId;\n this.marketId = marketId;\n this.businessId = businessId;\n this.orderId$$.next(orderId || '');\n this.specifiedLineItems$$.next(lineItems || []);\n this.subscriptions.push(\n zip(this.uiPackages$, this.uiProducts$, this.uiAddons$)\n .pipe(tap(() => this.loading$$.next(false)))\n .subscribe(),\n );\n }\n\n ignoreErrors(orderId: string, businessId: string, itemId: string): Observable {\n return this.salesOrdersSdk\n .ignoreProductActivationError(orderId, businessId, itemId)\n .pipe(tap(() => this.salesOrderStoreService.refreshOrder(orderId, businessId)));\n }\n\n clearOrderStateCache(): void {\n this.salesOrderStoreService.clearOrderStateCache();\n }\n}\n\nfunction flattenArray(array: any[]): LineItem[] {\n return [].concat(...array);\n}\n\nfunction quantifyLineItems(lineItems: LineItem[]): LineItem[] {\n const quantifiedLineItems = lineItems.map((lineItem) => {\n const replicatedLineItems = [];\n const quantity = lineItem.quantity || 1;\n for (let i = 0; i < quantity; i += 1) {\n replicatedLineItems.push(lineItem);\n }\n\n return replicatedLineItems;\n });\n\n return flattenArray(quantifiedLineItems);\n}\n", "import { Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewChildren } from '@angular/core';\nimport { OrderFulfillmentService } from '@vendasta/order-fulfillment';\nimport { ActivationStatus, LineItem } from '@vendasta/sales-orders';\nimport { Observable, Subscription, combineLatest, of } from 'rxjs';\nimport {\n MenuItemClickedInterface,\n MenuItemEventType,\n} from './package-dropdown/package-dropdown-item/package-dropdown-item.component';\nimport { SalesOrderPackageDropdownComponent } from './package-dropdown/package-dropdown.component';\nimport { SalesOrderContentsService, UIAddons, UIPackages, UIProducts } from './sales-order-contents.service';\n\nimport { MatExpansionPanel } from '@angular/material/expansion';\nimport { FailureReason } from '@vendasta/order-fulfillment';\nimport { ActivationFailureDetails } from '@vendasta/order-fulfillment/lib/_internal/objects';\nimport { catchError, map, switchMap, take, tap } from 'rxjs/operators';\n\n@Component({\n selector: 'sales-ui-sales-order-contents',\n templateUrl: './sales-order-contents.component.html',\n styleUrls: ['./sales-order-contents.component.scss'],\n providers: [SalesOrderContentsService],\n standalone: false,\n})\nexport class SalesOrderContentsComponent implements OnInit, OnDestroy {\n @Input() compactView;\n @Input() lineItems: LineItem[] = [];\n @Input() partnerId: string;\n @Input() marketId: string;\n @Input() orderId: string;\n @Input() businessId: string;\n @Input() showMenuItems = false;\n\n @Output() loading: EventEmitter = new EventEmitter();\n\n @ViewChildren(SalesOrderPackageDropdownComponent) private readonly packageDropdowns;\n @ViewChildren(MatExpansionPanel) private readonly topExpansionPanels;\n uiPackages$: Observable;\n uiProducts$: Observable;\n uiAddons$: Observable;\n loading$: Observable = this.contentsService.loading$;\n subscriptions: Subscription[] = [];\n\n constructor(\n private readonly contentsService: SalesOrderContentsService,\n private readonly orderFulfillmentService: OrderFulfillmentService,\n ) {\n this.subscriptions.push(this.loading$.pipe(tap((loading) => this.loading.emit(loading))).subscribe());\n }\n\n ngOnInit(): void {\n this.contentsService.initialize(this.partnerId, this.marketId, this.businessId, this.orderId, this.lineItems);\n\n const packageActivationErrors$ = this.contentsService.uiPackages$.pipe(\n switchMap((uiPackages) => {\n const orderItemIDs = (uiPackages.status || [])\n .filter((status) => status.status === ActivationStatus.ERRORED)\n .map((status) => status.uniqueId);\n if (!orderItemIDs.length) {\n return of([] as ActivationFailureDetails[]);\n }\n return this.orderFulfillmentService.getMultiActivationErrorsForOrderItems(orderItemIDs).pipe(\n take(1),\n catchError(() => of([] as ActivationFailureDetails[])),\n );\n }),\n map((errorDetails) => errorDetails || []),\n );\n\n const productActivationErrors$ = this.contentsService.uiProducts$.pipe(\n switchMap((uiProducts) => {\n const orderItemIDs = (uiProducts.status || [])\n .filter((status) => status.status === ActivationStatus.ERRORED)\n .map((status) => status.uniqueId);\n if (!orderItemIDs.length) {\n return of([] as ActivationFailureDetails[]);\n }\n return this.orderFulfillmentService.getMultiActivationErrorsForOrderItems(orderItemIDs).pipe(\n take(1),\n catchError(() => of([] as ActivationFailureDetails[])),\n );\n }),\n map((errorDetails) => errorDetails || []),\n );\n\n const addonsActivationErrors$ = this.contentsService.uiAddons$.pipe(\n switchMap((uiAddons) => {\n const orderItemIDs = (uiAddons.status || [])\n .filter((status) => status.status === ActivationStatus.ERRORED)\n .map((status) => status.uniqueId);\n if (!orderItemIDs.length) {\n return of([] as ActivationFailureDetails[]);\n }\n return this.orderFulfillmentService.getMultiActivationErrorsForOrderItems(orderItemIDs).pipe(\n take(1),\n catchError(() => of([] as ActivationFailureDetails[])),\n );\n }),\n map((errorDetails) => errorDetails || []),\n );\n\n this.uiPackages$ = combineLatest([this.contentsService.uiPackages$, packageActivationErrors$]).pipe(\n map(([packages, errorDetails]) => {\n const errDetailsMap = errorDetails.reduce((prev, curr) => {\n prev.set(curr.orderItemId, curr);\n return prev;\n }, new Map());\n this.openDropdownOnError(errorDetails.length);\n packages.status.forEach((pckg) => {\n if (errDetailsMap.has(pckg.uniqueId)) {\n pckg.failureDetails = this.translateFailureDetails(errDetailsMap.get(pckg.uniqueId));\n }\n });\n\n return packages;\n }),\n );\n\n this.uiProducts$ = combineLatest([this.contentsService.uiProducts$, productActivationErrors$]).pipe(\n map(([products, errorDetails]) => {\n const errDetailsMap = errorDetails.reduce((prev, curr) => {\n prev.set(curr.orderItemId, curr);\n return prev;\n }, new Map());\n this.openDropdownOnError(errorDetails.length);\n products.status.forEach((prod) => {\n if (errDetailsMap.has(prod.uniqueId)) {\n prod.failureDetails = this.translateFailureDetails(errDetailsMap.get(prod.uniqueId));\n }\n });\n\n return products;\n }),\n );\n\n this.uiAddons$ = combineLatest([this.contentsService.uiAddons$, addonsActivationErrors$]).pipe(\n map(([addons, errorDetails]) => {\n const errDetailsMap = errorDetails.reduce((prev, curr) => {\n prev.set(curr.orderItemId, curr);\n return prev;\n }, new Map());\n this.openDropdownOnError(errorDetails.length);\n addons.status.forEach((addon) => {\n if (errDetailsMap.has(addon.uniqueId)) {\n addon.failureDetails = this.translateFailureDetails(errDetailsMap.get(addon.uniqueId));\n }\n });\n\n return addons;\n }),\n );\n }\n\n ngOnDestroy(): void {\n this.subscriptions.forEach((sub) => {\n sub.unsubscribe();\n });\n this.contentsService.clearOrderStateCache();\n }\n\n private openDropdownOnError(errorCount: number): void {\n if (errorCount > 0) {\n this.signalToOpenAllDropdowns();\n }\n }\n\n public signalToOpenAllDropdowns(): void {\n if (this.compactView) {\n this.topExpansionPanels.forEach((panel) => panel.open());\n }\n // the top level panels need time to open before the inner panels render\n window.setTimeout(() => {\n this.packageDropdowns.forEach((section) => section.openAllDropdowns());\n }, 750);\n }\n\n menuItemClick(event: MenuItemClickedInterface): void {\n if (event.eventType === MenuItemEventType.IGNORE_ACTIVATION_ERRORS) {\n this.contentsService.ignoreErrors(this.orderId, this.businessId, event.value).pipe(take(1)).subscribe();\n }\n }\n\n translateFailureDetails(activationFailureDetails: ActivationFailureDetails): string {\n switch (activationFailureDetails.failureReason) {\n case FailureReason.FAILURE_REASON_VALIDATION_ERROR:\n return this.translateValidationError(activationFailureDetails.details);\n case FailureReason.FAILURE_REASON_CHARGE_ERROR:\n return activationFailureDetails.details\n ? this.formattedChargeError(activationFailureDetails.details[0])\n : 'Payment could not be processed for this product';\n case FailureReason.FAILURE_REASON_VENDOR_REJECTED_ERROR:\n return activationFailureDetails.details ? activationFailureDetails.details[0] : 'Vendor rejected the order';\n case FailureReason.FAILURE_REASON_ACTIVATION_ERROR:\n return activationFailureDetails.details\n ? activationFailureDetails.details[0]\n : 'Product failed to activate. Contact Support for assistance.';\n }\n return activationFailureDetails.details ? activationFailureDetails.details[0] : '';\n }\n\n translateValidationError(details: string[]): string {\n let failureMsg = '';\n details.forEach((detail) => {\n const validationMsg = this.contentsService.validationErrorMsgs.has(detail)\n ? this.contentsService.validationErrorMsgs.get(detail)\n : '';\n if (failureMsg === '') {\n failureMsg += validationMsg;\n } else {\n failureMsg += ' / ' + validationMsg;\n }\n });\n return failureMsg;\n }\n\n formattedChargeError(details: string): string {\n const toCapitalize = details.split('_');\n toCapitalize.forEach((line) => {\n line.toUpperCase();\n });\n return toCapitalize.join(' ');\n }\n}\n", "\n
\n
\n\n
\n
\n 0\">\n \n \n \n \n {{ 'FRONTEND.SALES_UI.PACKAGES' | translate }}\n \n \n \n 1 {{ 'FRONTEND.SALES_UI.ITEM' | translate | lowercase }}\n \n {{ uiPackages.packages.length }}\n {{ 'FRONTEND.SALES_UI.ITEMS' | translate | lowercase }}\n \n \n \n \n \n \n \n \n
\n \n
\n
\n
\n
\n\n
\n 0\">\n \n \n \n \n {{ 'FRONTEND.SALES_UI.PRODUCTS' | translate }}\n \n \n \n 1 {{ 'FRONTEND.SALES_UI.ITEM' | translate | lowercase }}\n \n {{ uiProducts.products.length }}\n {{ 'FRONTEND.SALES_UI.ITEMS' | translate | lowercase }}\n \n \n \n \n \n \n \n \n
\n \n
\n
\n
\n
\n\n
\n 0\">\n \n \n \n \n {{ 'FRONTEND.SALES_UI.ADDONS' | translate }}\n \n \n \n 1 {{ 'FRONTEND.SALES_UI.ITEM' | translate | lowercase }}\n \n {{ uiAddons.addons.length }}\n {{ 'FRONTEND.SALES_UI.ITEMS' | translate | lowercase }}\n \n \n \n \n \n \n \n \n
\n \n
\n
\n
\n
\n
\n", "{\n \"FRONTEND\": {\n \"SALES_UI\": {\n \"OPPORTUNITY_ATTACHMENT\": {\n \"ADD_ATTACHMENT\": \"Add attachment\",\n \"FILE\": \"file\",\n \"ATTACHMENT_ADDING_ERROR\": \"There was an error adding the attachment to the opportunity. Please try again\",\n \"ATTACHMENT_UPLOAD_ERROR\": \"Something went wrong uploading the attachment\",\n \"ATTACHMENT_UPLOAD_SUCCESS\": \"Successfully added attachment\",\n \"ATTACHMENTS\": \"Attachments\",\n \"NO_ATTACHMENTS_MESSAGE\": \"There are no attachments for this opportunity.\"\n },\n \"SALES_OPPORTUNITIES\": {\n \"REOPENING_OPPORTUNITIES\": {\n \"MUST_ENTER_REASON_ON_REOPEN\": \"You must enter a reason for reopening this opportunity.\",\n \"REOPEN_OPPORTUNITY_ACTION\": \"Reopen opportunity ({{ opportunityName }})\",\n \"OPPORTUNITY_REOPEN_DETAILS\": \"This will reopen the opportunity and allow you to edit its details.\",\n \"OPPORTUNITY_REOPEN_REASON\": \"Reason for reopening opportunity\",\n \"CANNOT_REOPEN_OPPORTUNITY\": \"Unable to reopen opportunity. Please try again.\"\n },\n \"OPPORTUNITY_VALUE\": \"Opportunity value\",\n \"REOPEN\": \"Reopen\",\n \"ADD_PACKAGES\": \"Add packages\",\n \"OPPORTUNITIES_LABEL\": \"Opportunities\",\n \"SUCCESSFUL_CREATION\": \"Successfully created opportunity\",\n \"OPPORTUNITY_CREATE\": \"Create sales opportunity\",\n \"OPPORTUNITY_NAME\": \"Opportunity name\",\n \"EMPTY_OPPORTUNITIES_DESCRIPTION\": \"There are no opportunities.\",\n \"POTENTIAL_REVENUE\": \"Potential revenue\",\n \"PROJECTED_MONTHLY_REVENUE\": \"Monthly revenue\",\n \"MONTHLY_REVENUE\": \"Monthly revenue\",\n \"PROBABILITY_TO_CLOSE\": \"{{percentage}}% probability.\",\n \"NO_ASSIGNEE_TEXT\": \"Salesperson deleted\",\n \"NO_PACKAGES_TIP\": \"Create sales opportunities using the packages in your store. Come back to begin tracking your opportunities as packages become available.\",\n \"PROBABILITY_OF_CLOSE\": \"Probability of close\",\n \"PIPELINE_STAGE\": \"Pipeline stage\",\n \"EXPECTED_CLOSE_PLACEHOLDER\": \"Expected close date\",\n \"SELECT_PACKAGES\": \"Select packages *\",\n \"SELECT_A_PACKAGE_ERROR\": \"At least one package must be selected\",\n \"SELECT_QUANTITIES\": \"Select package quantities\",\n \"NO_NOTES_FOR_OPPORTUNITY\": \"There are no notes for this opportunity.\",\n \"NO_PACKAGES_FOR_OPPORTUNITY\": \"There are no packages for this opportunity.\",\n \"REMOVE_PACKAGE_CONFIRMATION\": \"Are you sure you want to remove {{ packageName }}?\",\n \"PACKAGE_WILL_BE_REMOVED\": \"The package will be removed from this opportunity.\",\n \"REVENUE_TOOLTIP\": \"This adds up all one-time fees and calculates all recurring revenue for the contract length. To change this value, edit the revenue for the packages below.\",\n \"QUANTITIES\": \"Quantities\",\n \"QUANTITY\": \"Quantity\",\n \"DETAILS\": \"Details\",\n \"ACTIVITY\": \"Activity\",\n \"ASSIGNED_TO\": \"Assigned to {{ person }}\",\n \"ASSIGN_TO\": \"Assign to\",\n \"SUBSCRIBERS\": \"Subscribers\",\n \"OVERVIEW\": \"Overview\",\n \"BUSINESS\": \"Business:\",\n \"CONTRACT_DURATION_REVENUE\": \"{{ durationAndPeriod }} revenue\",\n \"DEFAULT_DURATION_REVENUE\": \"Per year\",\n \"ADD_OPPORTUNITY_TAGS\": \"Add opportunity tags\",\n \"CLOSED_WON\": \"Closed won\",\n \"CLOSED_LOST\": \"Closed lost\",\n \"WON\": \"Won\",\n \"LOST\": \"Lost\",\n \"OPEN\": \"Open\",\n \"WON_FILTER\": \"closed-won\",\n \"LOST_FILTER\": \"closed-lost\",\n \"OPEN_FILTER\": \"open\",\n \"STAGE\": \"Stage\",\n \"ACTUAL_CLOSE_DATE_UPDATED\": \"Actual close date updated\",\n \"OPPS_NOT_ON_PIPELINE\": \"Migrate opportunities\",\n \"HIDE_ORPHANED_OPPORTUNITIES\": \"Show pipeline\",\n \"SUCCESSFULLY_ASSIGNED_OPPORTUNITIES\": \"Successfully assigned all selected opportunities\",\n \"FAILED_TO_ASSIGNED_OPPORTUNITIES\": \"Failed to assign one or more opportunities, please try again\",\n \"OPPORTUNITY_ITEMS_REQUIRED\": \"You must add at least one item to the opportunity contents\",\n \"ACCOUNT_REQUIRED\": \"You must select an account for the opportunity\",\n \"OPPORTUNITY_CONTENTS\": \"Items\",\n \"CLOSE\": {\n \"CLOSE_OPPORTUNITY\": \"Close opportunity\",\n \"TITLE\": \"Close opportunity\",\n \"CLOSE_STATE\": \"Close state\",\n \"MESSAGE\": \"This will close the opportunity with the current revenue and packages. The opportunity will no longer be editable.\",\n \"OPPORTUNITY_CLOSE\": \"Close opportunity\",\n \"SELECT_STATE\": \"Select state\",\n \"CLOSED_LOST\": {\n \"REASON\": \"Reason\",\n \"SELECT_REASON\": \"Select reason\",\n \"PRICE\": \"Price\",\n \"NO_BUDGET\": \"No budget\",\n \"LOST_TO_COMPETITOR\": \"Lost to competitor\",\n \"NOT_READY\": \"Not ready\",\n \"OTHER\": \"Other\"\n }\n },\n \"OPPORTUNITY_INFO\": \"Opportunity info\",\n \"ACCOUNT_INFO\": \"Account info\",\n \"ITEMS\": \"Items\",\n \"ERRORS\": {\n \"BAD_DATE_ERROR\": \"Date cannot be before today\",\n \"INCORRECT_DATE_FORMAT\": \"Date must be in the form of MM/DD/YYYY\",\n \"EXCEED_SUBSCRIBERS_LIMIT\": \"Subscribers must be less than or equal to 5\",\n \"INVALID_ASSIGNEE_AND_SUBSCRIBERS\": \"Account assignee cannot be a subscriber to an opportunity\",\n \"GENERIC_ERROR\": \"An error occurred\",\n \"PIPELINE_STAGE_SELECTION\": \"Select a pipeline stage\",\n \"UPDATE_OPPORTUNITY\": \"Failed to update opportunity. Make sure the opportunity has all required information and try again.\"\n },\n \"ADD_SUBSCRIBER_PLACEHOLDER\": \"Add subscribers\",\n \"SUBSCRIBERS_UPDATED\": \"Subscribers updated\",\n \"SUBSCRIBERS_UPDATE_ERROR\": \"Failed to update opportunity subscribers\",\n \"NAME_UPDATED\": \"Opportunity name updated\",\n \"NAME_UPDATE_ERROR\": \"Failed to update opportunity name\",\n \"ADD_TAG_PLACEHOLDER\": \"Add tag\",\n \"LOG_ACTIVITY\": \"Log activity\",\n \"EDIT_BILLING_TERMS\": \"Edit billing terms\",\n \"ADD_BILLING_TERMS\": \"Add billing terms\",\n \"REMOVE_ITEM\": \"Remove item\"\n },\n \"OPPORTUNITY_DETAILS\": {\n \"CREATE_ORDER\": \"Create order\"\n },\n \"ACCOUNT_DETAILS\": {\n \"TITLE\": \"General info\",\n \"BUSINESS_CATEGORY_LABEL\": \"Business category\",\n \"SERVICE_CATEGORY_LABEL\": \"Service categories\",\n \"TAGS_LABEL\": \"Tags\",\n \"EDIT_ACCOUNT_INFO\": \"Edit account info\",\n \"BREADCRUMBS\": {\n \"PREVIOUS_PAGE\": \"Previous page\"\n },\n \"LOCAL_TIME\": {\n \"TITLE\": \"Local time\",\n \"ADD_TIMEZONE\": \"Add timezone\",\n \"NO_TIMEZONE\": \"No timezone set for this account\"\n }\n },\n \"OPPORTUNITY_TAGS\": {\n \"TITLE\": \"Tags\",\n \"EMPTY_STATE\": {\n \"DESCRIPTION\": \"There are no tags for this opportunity.\",\n \"ACTION\": \"Add tags\"\n },\n \"ADD_DIALOG\": {\n \"TITLE\": \"Add opportunity tags\",\n \"LABEL\": \"Add tag\"\n }\n },\n \"VIEW_ALL\": \"View all\",\n \"ORDERS\": \"Orders\",\n \"PACKAGES\": \"Packages\",\n \"PACKAGE\": \"Package\",\n \"PRODUCTS\": \"Products\",\n \"PRODUCT\": \"Product\",\n \"ADDONS\": \"Add-ons\",\n \"ADDON\": \"Add-on\",\n \"ITEMS\": \"Items\",\n \"ITEM\": \"Item\",\n \"ATTACHMENTS\": \"Attachments\",\n \"CUSTOMER_AGREEMENTS\": \"Customer agreements\",\n \"LAST_ACCEPTED\": \"Accepted on\",\n \"ADMIN\": \"Admin\",\n \"ORDER_ID\": \"Order ID\",\n \"ACCOUNT\": \"Account\",\n \"ORDER_FILTERS\": \"Order filters\",\n \"TOTAL_ORDERS\": \"Total orders\",\n \"PENDING_APPROVAL\": \"Pending approval\",\n \"STATUS\": \"Status\",\n \"PENDING\": \"Pending\",\n \"RESUBMITTED\": \"Resubmitted\",\n \"AWAITING_CUSTOMER_APPROVAL\": \"Awaiting customer approval\",\n \"APPROVED\": \"Approved\",\n \"PROCESSING\": \"Processing\",\n \"ACTIVATION_ERRORS\": \"Activation errors\",\n \"ARCHIVED\": \"Archived\",\n \"ACTIVATED\": \"Activated\",\n \"FULFILLED\": \"Activated\",\n \"DECLINED\": \"Declined\",\n \"DRAFTED\": \"Drafted\",\n \"SCHEDULED_ACTIVATION\": \"Scheduled activation\",\n \"CANCELLATION_REQUESTED\": \"Cancellation requested\",\n \"CANCELLATION_DECLINED\": \"Cancellation declined\",\n \"CANCELLED\": \"Cancelled\",\n \"AWAITING_PAYMENT\": \"Awaiting payment\",\n \"PROCESSING_PAYMENT\": \"Processing payment\",\n \"PRODUCT_ACTIVATION_INITIATED\": \"Product activation initiated\",\n \"TAG\": \"Tag\",\n \"TAGS\": \"Tags\",\n \"ADD_TAG\": \"Add tag\",\n \"INCLUDED_TAG\": \"Included tag\",\n \"UNTAGGED\": \"Untagged\",\n \"NO_TAGS_FOUND\": \"No tags found\",\n \"NO_TAGS\": \"No tags\",\n \"TAGS_ERROR\": \"Error updating tags\",\n \"MAX_TAGS\": \"Cannot submit more than {{maxTags}} tags\",\n \"SUBMITTED\": \"Submitted\",\n \"SUBMITTED_FOR_ADMIN_APPROVAL\": \"Submitted for admin approval\",\n \"SUBMITTED_FOR_CUSTOMER_APPROVAL\": \"Submitted for customer approval\",\n \"CONTRACT_START\": \"Contract start\",\n \"CONTRACT_START_DATE\": \"Contract start {{startDate}}\",\n \"CONTRACT_START_HINT\": \"Scheduled contracts will be automatically activated at 7 AM local time\",\n \"CONTRACT_START_FORMAT\": \"Contract start date\",\n \"CONTRACT_START_ERROR\": \"We couldn't update the contract start date. Refresh the page to try again.\",\n \"UPDATED_TAGS\": \"Updated tags\",\n \"UPDATED_NOTES\": \"Updated admin notes\",\n \"UPDATED_SALESPERSON\": \"Updated the salesperson\",\n \"UPDATED_CUSTOMER_NOTES\": \"Updated customer notes\",\n \"UPDATED_CONTRACT_START\": \"Updated contract start\",\n \"UPDATED_CONTRACT_LENGTH\": \"Updated contract length\",\n \"UPDATED_ENFORCE_CONTRACT_TERM\": \"Updated enforce contract term\",\n \"UPDATED_DRAFT\": \"Updated draft\",\n \"UPDATED_PRICING\": \"Updated pricing\",\n \"UPDATED_CONTENTS\": \"Updated contents\",\n \"UPDATE_ORDER_FORM_ANSWERS\": \"Update order form answers\",\n \"ORDER_FORM_ANSWERS_UPDATED\": \"The order form answers were updated\",\n \"UPDATED_ADMIN_ATTACHMENTS\": \"Updated admin attachments\",\n \"UPDATED_CUSTOMER_ATTACHMENTS\": \"Updated customer attachments\",\n \"CONTENTS_UPDATED\": \"Contents updated\",\n \"OFFER_EXPIRY\": \"Offer expiry\",\n \"FROM\": \"From\",\n \"TO\": \"To\",\n \"CLIENT\": \"Client\",\n \"SALESPERSON\": \"Salesperson\",\n \"SALES_TEAM\": \"Sales team\",\n \"BUSINESS\": \"Business\",\n \"ERROR_LOADING_SALESPEOPLE\": \"Something went wrong when loading your salespeople. Refreshing the page might help.\",\n \"MARKET\": \"Market\",\n \"ERROR_LOADING_MARKETS\": \"Something went wrong. You might want to try refreshing the page.\",\n \"ERROR_LOADING_SALES_TEAMS\": \"Something went wrong when loading your sales teams. Refreshing the page might help.\",\n \"EXPIRY\": \"Expiry\",\n \"EXPIRED\": \"Expired\",\n \"ALREADY_ACTIVATED_TOOLTIP\": \"This product is already active on this account.\",\n \"IGNORE_ERRORS\": \"Ignore errors\",\n \"ERRORS_IGNORED\": \"Errors ignored\",\n \"PENDING_ACTIVATION\": \"Pending activation\",\n \"ACTIVATION_WARNINGS\": \"Activation warnings\",\n \"MESSAGE\": \"Enter more information for the salesperson\",\n \"CONTRACT_LENGTH\": \"Contract length\",\n \"NO_CONTRACT_LENGTH\": \"No contract length\",\n \"NO_ORDERS\": \"There are no orders\",\n \"ORDER_FORM_LABEL\": \"Order form\",\n \"ERROR_RETRIEVING_ORDERS\": \"We couldn't retrieve your orders. Refresh the page to try again.\",\n \"SHOW_MORE\": \"Show more\",\n \"CONTRACT_LENGTH_ERROR\": \"Error updating the contract length\",\n \"LENGTH\": \"Length\",\n \"PERIOD\": \"Period\",\n \"NUMBER_HIGHER_THAN\": \"Must be a valid number higher than {{minNumber}}\",\n \"DURATION_WARNING\": \"Use this field for reference only. Orders and product expiration dates will not be impacted by this timeframe.\",\n \"REMOVE\": \"Remove\",\n \"SAVE\": \"Save\",\n \"SELECT\": \"Select\",\n \"CANCEL\": \"Cancel\",\n \"DECLINE\": \"Decline order\",\n \"REASON_FOR_DECLINE\": \"Reason for decline\",\n \"DECLINE_MESSAGE_VALIDATION\": \"Enter a decline message\",\n \"DECLINE_REASON_VALIDATION\": \"Select a decline reason\",\n \"DAYS_PLURAL_OR_SINGULAR\": \"{{duration}} days\",\n \"WEEKS_PLURAL_OR_SINGULAR\": \"{{duration}} weeks\",\n \"MONTHS_PLURAL_OR_SINGULAR\": \"{{duration}} months\",\n \"YEARS_PLURAL_OR_SINGULAR\": \"{{duration}} years\",\n \"DAYS_PLURAL_OR_SINGULAR_LABEL\": \"Days\",\n \"WEEKS_PLURAL_OR_SINGULAR_LABEL\": \"Weeks\",\n \"MONTHS_PLURAL_OR_SINGULAR_LABEL\": \"Months\",\n \"YEARS_PLURAL_OR_SINGULAR_LABEL\": \"Years\",\n \"NOTES\": \"Admin notes\",\n \"NOTES_HINT\": \"Only admins and salespeople can see these.\",\n \"NOTES_ERROR\": \"The admin notes couldn't be saved.\",\n \"CUSTOMER_NOTES\": \"Customer notes\",\n \"CUSTOMER_NOTES_HINT\": \"These notes will be visible to the customer\",\n \"CUSTOMER_NOTES_ERROR\": \"The customer notes couldn't be saved\",\n \"EDITION\": \"Edition\",\n \"CHANGES_EDITION_FROM\": \"(Changes edition from {{previousEditionName}})\",\n \"QUANTITY\": \"Quantity\",\n \"QUANTITY_ERROR\": \"You'll need to add a quantity to continue\",\n \"QUANTITY_DISABLED\": \"You can only activate one of these at a time\",\n \"REVENUE\": \"Revenue\",\n \"NAME\": \"Name\",\n \"BILL_FOR_RECURRING_CHARGES\": \"Bill for recurring charges\",\n \"RETAIL_PRICE\": \"Retail price\",\n \"WHOLESALE_COST\": \"Wholesale cost\",\n \"ADD_ITEMS\": \"Add items\",\n \"ARCHIVE\": \"Archive\",\n \"SEARCH\": \"Search\",\n \"DUPLICATE\": \"Duplicate order\",\n \"CHANGE_SALESPERSON\": \"Change salesperson\",\n \"EDIT_CUSTOM_FIELDS\": \"Edit custom fields\",\n \"SELECT_SALESPERSON\": \"Select Salesperson\",\n \"ORDER_PERMISSION_ERROR\": \"You do not have permission to view this order\",\n \"FULFILLMENT_BANNER_TEXT\": \"Fulfillment information is required.\",\n \"FULFILLMENT_BANNER_BUTTON\": \"View\",\n \"FULFILLMENT\": \"Fulfillment\",\n \"FULFILLMENT_STATUS_UNSET\": \"Status unset\",\n \"FULFILLMENT_STATUS_DETAILS_NEEDED\": \"Details needed\",\n \"FULFILLMENT_STATUS_IN_REVIEW\": \"Vendor review\",\n \"FULFILLMENT_STATUS_IN_PROGRESS\": \"In progress\",\n \"FULFILLMENT_STATUS_COMPLETED\": \"Completed\",\n \"FULFILLMENT_STATUS_CANCELLED\": \"Cancelled\",\n \"TABLE_PRESETS\": {\n \"UPCOMING_EXPIRATION\": \"Upcoming expirations\",\n \"UPCOMING_EXPIRATION_DESC\": \"Orders with upcoming expirations in next 3 months\"\n },\n \"ORDER_DETAILS\": {\n \"TITLE\": \"Order details\",\n \"OFFER_WILL_EXPIRE\": \"This offer expires on {{date}}\",\n \"OFFER_EXPIRED\": \"This offer expired on {{date}}\",\n \"SUBTITLE\": \"The following information is an overview of the order\",\n \"SUBMITTED_BY\": \"submitted by {{name}}\",\n \"CREATED_BY\": \"created by {{name}}\",\n \"ORDER_INFO_ERROR\": \"There was a problem loading order info. Try refreshing the page.\",\n \"UPDATED_TO\": \"Updated to {{value}}\",\n \"UPDATED_FROM_TO\": \"Updated from {{fromValue}} to {{toValue}}\",\n \"ATTACHMENTS_UPDATED_SUCCESSFULLY\": \"Attachments were saved\",\n \"ALL_TAGS_REMOVED\": \"All tags removed\",\n \"NO_CONTRACT_START_DATE\": \"no contract start date\",\n \"NO_CONTRACT_LENGTH\": \"no contract length\",\n \"DATE_BY_USER\": \"{{date}} by {{user}}\",\n \"SYSTEM\": \"system\"\n },\n \"CUSTOMER_EVENTS\": {\n \"SENDING\": \"Sending\",\n \"PROCESSING\": \"Processing\",\n \"DELIVERED\": \"Delivered\",\n \"BOUNCED\": \"Bounced\",\n \"DROPPED\": \"Dropped\",\n \"UNSUBSCRIBED\": \"Unsubscribed\",\n \"DEFERRED\": \"Deferred\",\n \"SPAM_REPORT\": \"Spam report\",\n \"EMAIL_OPENED\": \"Email opened\",\n \"EMAIL_CLICKED\": \"Email clicked\",\n \"UPDATED_ANSWERS\": \"Updated answers\",\n \"UNKNOWN\": \"Unknown\"\n },\n \"ORDER_FORM\": {\n \"CUSTOM_ENTRY_URL\": \"Custom entry URL\",\n \"CUSTOM_ENTRY_URL_REGEX_ERROR\": \"Not in correct format. Should be prefixed with https or http.\"\n },\n \"PRICING\": {\n \"STARTING_PRICE\": \"Starting price\",\n \"STARTING_PRICE_TOOLTIP\": \"Specifies whether or not the price varies based on usage, list size, or other special considerations\",\n \"REVENUE_REQUIRED\": \"Price is required\",\n \"GREATER_THAN_OR_EQUAL_TO_ZERO\": \"Must be greater than or equal to zero\",\n \"MUST_BE_NUM\": \"Must be a number\",\n \"PERIOD_REQUIRED\": \"Period is required\",\n \"ADD_ROW\": \"Add row\",\n \"PRICE\": \"Price\",\n \"PERIOD\": \"Period\",\n \"PRICING_UPDATED\": \"Pricing updated\",\n \"ERROR_UPDATING_PRICING\": \"There was an error updating the pricing\"\n },\n \"ERRORS\": {\n \"ERROR_PERMISSION_DENIED\": \"Permission denied\",\n \"ERROR_UPDATING_CONTENTS\": \"There was an error updating the contents of the order\",\n \"ERROR_MUST_HAVE_ITEMS\": \"The order must contain at least one item\",\n \"ERROR_MUST_HAVE_PRICING\": \"Order items must have at least one row of pricing\",\n \"ERROR_ARCHIVING\": \"There was an error archiving the order\",\n \"ERROR_CANCELLING\": \"There was an error cancelling the order\",\n \"ERROR_IGNORING_ERRORS\": \"There was an error ignoring the activation errors of the order\",\n \"ERROR_UPDATING_ORDER_FORM\": \"There was an error updating the answers of the order form\",\n \"ERROR_UPDATING_SALESPERSON\": \"There was an error updating the salesperson of the order\",\n \"ERROR_FORM_NOT_VALID\": \"Form is not valid\",\n \"ERROR_EXPORT_ALL\": \"There was a problem downloading data. Please try again\",\n \"ERROR_EXPORT_TOO_MANY_REQUESTS\": \"Already processing a similar export request\",\n \"ERROR_ATTACHMENT_GENERIC\": \"There was an error uploading the attachment\",\n \"ERROR_DUPLICATE_FILE_ATTEMPT\": \"This file has already been uploaded\",\n \"ERROR_MAX_FILE_SIZE_EXCEEDED\": \"Max file size exceeded\",\n \"ERROR_MAX_FILES_EXCEEDED\": \"Max files exceeded\",\n \"UNABLE_TO_UPDATE_OVERVIEW\": \"Failed to update opportunity notes\",\n \"UNABLE_TO_LOAD_DISPLAY_VALUE\": \"There was a problem loading the display name for this {{value}}.\",\n \"ERROR_UPDATING_TAGS\": \"There was an error updating the tags\"\n },\n \"ACTIVATION_STATUS\": {\n \"ACTIVATED\": \"Activated\",\n \"ALREADY_ACTIVATED\": \"Already activated\",\n \"ACTIVATION_ERRORS\": \"Activation errors\",\n \"ACTIVATION_WARNINGS\": \"Activation warnings\",\n \"ERRORS_IGNORED\": \"Errors ignored\"\n },\n \"ACTIONS\": \"Actions\",\n \"EDITION_REQUIRED_FOR_PRICE\": \"Edition required to set price\",\n \"EXPORT\": {\n \"SUCCESS_EXPORT_ALL\": \"Download started\",\n \"ERROR_TOO_MANY_ROWS\": \"Please use filters to narrow results, or contact support if this size export is intended.\",\n \"ERROR_NO_RESULTS\": \"No results to export.\",\n \"EXPORT_HEADER\": \"Generate CSV file for sales orders\",\n \"EXPORT_DESCRIPTION\": \"Which data would you like to export?\",\n \"ALL_ORDER_OPTION_LABEL\": \"All order data\",\n \"ALL_ORDER_OPTION_DESCRIPTION\": \"Outputs all orders matching your filters with additional columns. You'll receive a download notification when your file is ready.\",\n \"ALL_ORDER_WITH_PRODUCT_DATA_OPTION_LABEL\": \"All orders with product data\",\n \"ALL_ORDER_WITH_PRODUCT_DATA_OPTION_DESCRIPTION\": \"This option will export one row per product included in the order. You'll receive a download notification when your file is ready.\"\n },\n \"DECLINE_REASON\": {\n \"ERROR\": \"Something went wrong\",\n \"TRY_AGAIN\": \"Try again\",\n \"MESSAGE\": \"Decline message\",\n \"REASONS_TITLE\": \"Why are you declining this order?\",\n \"REQUIRED\": \"Required\",\n \"MANAGE_REASONS\": \"Manage reasons\"\n },\n \"PIPELINE\": {\n \"PERCENTAGE_OF\": \"% of\",\n \"SETTINGS\": {\n \"PAGE_TITLE\": \"Manage pipelines\",\n \"EMPTY_STATE\": {\n \"TITLE\": \"Create your first custom pipeline\",\n \"MESSAGE\": \"Track and manage your sales opportunities from start to close\"\n },\n \"MODALS\": {\n \"DELETE_TITLE\": \"Delete pipeline?\",\n \"DELETE_MESSAGE\": \"Deleting a pipeline with opportunities in it will cause them to no longer show on the pipeline board. Ensure that you have removed all opportunities from this pipeline before deleting it.\",\n \"UNSAVED_CHANGES_TITLE\": \"Unsaved changes\",\n \"UNSAVED_CHANGES_MESSAGE\": \"Are you sure you want to leave? You will lose any unsaved changes.\",\n \"UNSAVED_CHANGES_CONFIRM\": \"Discard changes\"\n },\n \"BUTTONS\": {\n \"CREATE\": \"Create pipeline\",\n \"SAVE\": \"Save\",\n \"CANCEL\": \"Cancel\",\n \"DELETE\": \"Delete\",\n \"DELETE_PIPELINE\": \"Delete pipeline\",\n \"CREATE_NEW\": \"Create new pipeline\",\n \"ADD_STAGE\": \"Add stage\"\n },\n \"FORMS\": {\n \"NAME_TITLE\": \"Pipeline name\",\n \"NAME_PLACEHOLDER\": \"New pipeline\",\n \"STAGES_TITLE\": \"Pipeline stages\",\n \"STAGES_SUBTITLE\": \"Opportunities may shift within the pipeline if you delete a stage or change its probability.\",\n \"STAGE_NAME\": \"Stage name\",\n \"STAGE_PROBABILITY\": \"Close probability\"\n },\n \"SNACKBARS\": {\n \"CREATE_FAILED\": \"Failed to create a new pipeline, please try again later.\",\n \"CREATE_SUCCESS\": \"Successfully created a new pipeline\",\n \"DELETE_FAILED\": \"Failed to delete pipeline, please try again later.\",\n \"DELETE_SUCCESS\": \"Successfully deleted pipeline\",\n \"PIPELINE_UPDATED\": \"Failed to update pipeline stages, please try again later.\",\n \"FORM_INVALID\": \"Failed to update pipeline, please make sure all fields are correct.\"\n },\n \"DEFAULTS\": {\n \"NAME\": \"My new pipeline\",\n \"STAGE_ONE\": \"Stage one\",\n \"STAGE_TWO\": \"Stage two\",\n \"STAGE_THREE\": \"Stage three\"\n }\n },\n \"EMPTY_PIPELINE_FILTERED_OR_NO_OPPS\": \"No opportunities to show. You may need to adjust your filters or add an opportunity to an account.\",\n \"SAVE_FILTER_DIALOG_TITLE\": \"Choose filter group name\",\n \"FILTER_NAME_INPUT\": \"Filter group name\",\n \"FILTER_OVERWRITTEN_WARNING\": \"A filter group named {{ filterGroupName }} already exists. Clicking save will overwrite it.\",\n \"SAVE_FILTER_SUCCESS\": \"Filter group saved\",\n \"SAVED_FILTERS\": \"Saved filters\",\n \"SAVE_CURRENT_FILTERS\": \"Save current filters\",\n \"PIPELINES\": \"Pipelines\",\n \"EXPORT_AS_CSV\": \"Export as CSV\",\n \"PREPARING_CSV\": \"Preparing CSV\",\n \"CSV_EXPORT_ERROR\": \"There was an issue trying to start the export CSV process, please try again.\",\n \"PREPARING_DOWNLOAD\": \"We'll notify you when your file is ready to download.\",\n \"OK_TO_LEAVE_PAGE\": \"Navigating away from the page won't interrupt this process.\",\n \"FILTERS_RETURNED_ZERO_RESULTS_TITLE\": \"We couldn't find any opportunities that fit your search\",\n \"FILTERS_RETURNED_ZERO_RESULTS_DESCRIPTION\": \"You may need to adjust your filters or search terms\",\n \"PIPELINE_NOT_FOUND\": \"Pipeline unavailable\",\n \"REVENUE_FOR_DATE_PERIOD\": \"Revenue for {{ date }}\",\n \"MEDDIC\": {\n \"POINTS\": \"Points\"\n },\n \"COLUMN_LABELS\": {\n \"ACTUAL_CLOSE\": \"Actual close\",\n \"ASSIGNED\": \"Assigned\",\n \"CALLS\": \"Calls\",\n \"CONNECTIONS\": \"Connections\",\n \"EXPECTED_CLOSE\": \"Expected close\",\n \"LAST_ACTIVITY\": \"Last activity\",\n \"LAST_CONNECTED\": \"Last connected\",\n \"OPPORTUNITY\": \"Opportunity\",\n \"QUALIFICATION\": \"Qualification\",\n \"OPPORTUNITY_QUALIFICATION\": \"Opportunity qualification\",\n \"POTENTIAL\": \"Potential\",\n \"MONTHLY_REVENUE\": \"Monthly revenue\",\n \"STAGE\": \"Pipeline stage\",\n \"PIPELINE_NAME\": \"Pipeline name\",\n \"STATUS\": \"Status\",\n \"TOTAL_EFFORTS\": \"Total efforts\",\n \"CREATED_DATE\": \"Created date\",\n \"TYPE\": \"Type\"\n },\n \"ACCOUNT_DELETED\": \"Account deleted\",\n \"PIPELINE_STAGE_LABEL\": \"Pipeline stage\",\n \"PIPELINE_STAGE_TOOLTIP\": \"Select a single pipeline to enable pipeline stage selection\",\n \"EXPECTED_CLOSE_LABEL\": \"Expected close\",\n \"ASSIGNED_DATE_LABEL\": \"Assigned\",\n \"STATUS_TITLE\": \"Pipeline status\",\n \"STATUS_LABEL\": \"Status\",\n \"ACTUAL_CLOSE_LABEL\": \"Actual close\",\n \"CREATED_DATE_LABEL\": \"Created\",\n \"TYPE_LABEL\": \"Type\",\n \"POTENTIAL_REVENUE\": \"Potential revenue\",\n \"PIPELINE_BOARD\": {\n \"BOARD\": \"Board\",\n \"TABLE\": \"Table\",\n \"SORT\": \"Sort\",\n \"MANAGE_PIPELINES\": \"Manage pipelines\",\n \"SORT_ACTIONS\": {\n \"EXPECTED_CLOSE_DATE\": \"Expected close date\",\n \"ACTUAL_CLOSE_DATE\": \"Actual close date\",\n \"POTENTIAL_REVENUE\": \"Potential revenue\",\n \"LAST_CONNECTED_DATE\": \"Last connected date\",\n \"LAST_SALES_ACTIVITY\": \"Last sales activity\",\n \"CREATED_DATE\": \"Created date\",\n \"ASSIGNED_DATE\": \"Assigned date\",\n \"NAME\": \"Opportunity name\",\n \"QUALIFICATION\": \"Qualification\"\n }\n },\n \"TABLE\": {\n \"EXPORT_CSV\": {\n \"TITLE\": \"Select files to export\",\n \"PIPELINE\": \"Pipeline\",\n \"OPPORTUNITY_HISTORY\": \"Opportunity history\"\n },\n \"ERRORS\": {\n \"FETCH_OPPORTUNITIES_ERROR_TITLE\": \"An error occurred when fetching your opportunities\",\n \"FETCH_OPPORTUNITIES_ERROR_DESCRIPTION\": \"Refresh your page or adjust your search to try again\",\n \"NAVIGATE_TO_PAGE\": \"Unable to open the page. Reload the page and try again.\"\n }\n }\n },\n \"COMMON\": {\n \"NOTES\": \"Notes\",\n \"LOST\": \"Lost\",\n \"WON\": \"Won\",\n \"TAG\": \"Tag\",\n \"SELECT_PACKAGES\": \"Select packages\",\n \"SELECT_PRODUCTS\": \"Select products\",\n \"SELECT_ACCOUNT\": \"Select account\",\n \"SELECT_TYPE\": \"Select type\",\n \"PACKAGES_LABEL\": \"Packages\",\n \"PRODUCTS_LABEL\": \"Products\",\n \"SALESPEOPLE_LABEL\": \"Salespeople\",\n \"SALES_TEAM_LABEL\": \"Sales team\",\n \"WARNING\": \"Warning\",\n \"ASSIGNEE\": \"Assignee\",\n \"EMAILS\": \"Emails\",\n \"MEETINGS\": \"Meetings\",\n \"NOT_APPLICABLE_LABEL\": \"N/A\",\n \"NONE_LABEL\": \"None\",\n \"MARKET_LABEL\": \"Market\",\n \"DELETED\": \"Deleted\",\n \"ACTION_LABELS\": {\n \"ACTIVE\": \"active\",\n \"ADD\": \"Add\",\n \"ADD_NEW\": \"Add new\",\n \"ADD_ATTACHMENT\": \"Add attachment\",\n \"APPLY\": \"Apply\",\n \"BACK\": \"Back\",\n \"BOOKING_LINK\": \"Booking link\",\n \"CALL\": \"Call\",\n \"CANCEL\": \"Cancel\",\n \"CLICK_TO_REFRESH\": \"Click to refresh\",\n \"CLICK_TO_RETRY\": \"Click to retry\",\n \"CLOSE\": \"Close\",\n \"COMPOSE_MESSAGE\": \"Compose message\",\n \"ERROR_SENDING_MESSAGE\": \"An error occurred while sending the message\",\n \"MESSAGE_SENT_SUCCESSFULLY\": \"Message sent successfully\",\n \"CONTACT_EMAILS\": \"Send contact email\",\n \"CONTINUE\": \"Continue\",\n \"COPY\": \"Copy\",\n \"COPY_LINK\": \"Copy link\",\n \"CREATE\": \"Create\",\n \"DELETE\": \"Delete\",\n \"EDIT\": \"Edit\",\n \"EMAIL\": \"Email\",\n \"JOIN\": \"Join\",\n \"LEARN_MORE\": \"Learn more\",\n \"LOAD_MORE\": \"Load more\",\n \"MORE_ACTIONS\": \"More actions\",\n \"NEXT\": \"Next\",\n \"PAUSE\": \"Pause\",\n \"PREVIEW\": \"Preview\",\n \"REFRESH\": \"Refresh\",\n \"RESUME\": \"Resume\",\n \"RETRY\": \"Retry\",\n \"SAVE\": \"Save\",\n \"SELECT_ALL\": \"Select all\",\n \"SELECT_DATE\": \"Select date\",\n \"SEND\": \"Send\",\n \"SUBMIT\": \"Submit\",\n \"TRY_AGAIN\": \"Try again\",\n \"UPDATE\": \"Update\",\n \"UNDO\": \"Undo\",\n \"UNDO_ARCHIVE\": \"Unarchive\",\n \"UNSAVED_CHANGE\": \"You have unsaved changes\",\n \"VIEW\": \"View\",\n \"VIEW_ALL\": \"View all\",\n \"VIEW_MORE\": \"View more\",\n \"VIEW_LESS\": \"View less\",\n \"PRINT\": \"Print\",\n \"ACTIONS\": \"Actions\",\n \"OK\": \"OK\",\n \"EXPORT\": \"Export\",\n \"START\": \"Start\",\n \"SHOW_MORE\": \"Show more\"\n },\n \"BILLING_FREQUENCIES\": {\n \"ONE_TIME\": \"One time\",\n \"MONTHLY\": \"Monthly\",\n \"YEARLY\": \"Yearly\"\n },\n \"LOADING\": \"Loading...\",\n \"NAME\": \"Name\",\n \"ACCOUNT_NAME\": \"Account name\",\n \"PROBABILITY\": \"Probability\",\n \"DATES\": {\n \"FROM_LABEL\": \"From\",\n \"TO_LABEL\": \"To\",\n \"NEVER\": \"Never\",\n \"CUSTOM\": \"Custom\",\n \"DATE_RANGE\": \"Date range\",\n \"CREATED_ON\": \"Created on {{date}}\",\n \"TODAY\": \"Today\",\n \"INVALID_DATE_RANGE\": \"Invalid date range\"\n }\n },\n \"FILTER_BY_SALESPEOPLE\": \"Filter by salespeople\",\n \"FILTER_BY_SALES_TEAM\": \"Filter by sales team\",\n \"FILTER_BY_PIPELINES\": \"Filter by pipelines\",\n \"TASK_STATUS\": {\n \"OPEN\": \"Open\",\n \"IN_PROGRESS\": \"In progress\",\n \"WAITING_ON_CUSTOMER\": \"Waiting on customer\",\n \"COMPLETED\": \"Completed\"\n },\n \"SELECT_TAG\": \"Select tag\",\n \"PROJECTED_MONTHLY_REVENUE\": \"Monthly revenue\",\n \"FORMS\": {\n \"CHOOSE_ACCOUNT\": \"Choose an account\",\n \"CHOOSE_LINE_ITEMS\": \"Choose products and packages\",\n \"ADDITIONAL_INFO\": \"Additional info\",\n \"INVALID_FORM\": \"Form is invalid\",\n \"INVALID_CONTACT_DURATION\": \"Contract length is invalid\"\n }\n },\n \"SALES_OPPORTUNITIES\": {\n \"ADD_PACKAGES\": \"Add packages\",\n \"OPPORTUNITY_VALUE\": \"Opportunity value\",\n \"ACCOUNT_INFO\": \"Account info\",\n \"OPPORTUNITY_INFO\": \"Opportunity info\",\n \"OPPORTUNITIES_LABEL\": \"Opportunities\",\n \"SUCCESSFUL_CREATION\": \"Successfully created opportunity\",\n \"OPPORTUNITY_CREATE\": \"Create sales opportunity\",\n \"OPPORTUNITY_NAME\": \"Opportunity name\",\n \"EMPTY_OPPORTUNITIES_DESCRIPTION\": \"There are no opportunities.\",\n \"POTENTIAL_REVENUE\": \"Potential revenue\",\n \"PROJECTED_MONTHLY_REVENUE\": \"Monthly revenue\",\n \"MONTHLY_REVENUE\": \"Monthly revenue\",\n \"PROBABILITY_TO_CLOSE\": \"{{percentage}}% probability.\",\n \"NO_ASSIGNEE_TEXT\": \"Salesperson deleted\",\n \"NO_PACKAGES_TIP\": \"Create sales opportunities using the packages in your store. Come back to begin tracking your opportunities as packages become available.\",\n \"PROBABILITY_OF_CLOSE\": \"Probability of close\",\n \"PIPELINE_STAGE\": \"Pipeline stage\",\n \"EXPECTED_CLOSE_PLACEHOLDER\": \"Expected close date\",\n \"SELECT_PACKAGES\": \"Select packages *\",\n \"SELECT_A_PACKAGE_ERROR\": \"At least one package must be selected\",\n \"SELECT_QUANTITIES\": \"Select package quantities\",\n \"NO_NOTES_FOR_OPPORTUNITY\": \"There are no notes for this opportunity.\",\n \"NO_PACKAGES_FOR_OPPORTUNITY\": \"There are no packages for this opportunity.\",\n \"REMOVE_PACKAGE_CONFIRMATION\": \"Are you sure you want to remove {{ packageName }}?\",\n \"PACKAGE_WILL_BE_REMOVED\": \"The package will be removed from this opportunity.\",\n \"REVENUE_TOOLTIP\": \"This adds up all one-time fees and calculates all recurring revenue for the contract length. To change this value, edit the revenue for the packages below.\",\n \"QUANTITIES\": \"Quantities\",\n \"QUANTITY\": \"Quantity\",\n \"DETAILS\": \"Details\",\n \"ACTIVITY\": \"Activity\",\n \"ASSIGNED_TO\": \"Assigned to {{ person }}\",\n \"ASSIGN_TO\": \"Assign to\",\n \"OVERVIEW\": \"Overview\",\n \"BUSINESS\": \"Business:\",\n \"REOPEN\": \"Reopen\",\n \"CONTRACT_DURATION_REVENUE\": \"{{ durationAndPeriod }} revenue\",\n \"DEFAULT_DURATION_REVENUE\": \"Per year\",\n \"ADD_OPPORTUNITY_TAGS\": \"Add opportunity tags\",\n \"CLOSED_WON\": \"Closed won\",\n \"CLOSED_LOST\": \"Closed lost\",\n \"WON\": \"Won\",\n \"LOST\": \"Lost\",\n \"OPEN\": \"Open\",\n \"WON_FILTER\": \"closed-won\",\n \"LOST_FILTER\": \"closed-lost\",\n \"OPEN_FILTER\": \"open\",\n \"STAGE\": \"Stage\",\n \"ACTUAL_CLOSE_DATE_UPDATED\": \"Actual close date updated\",\n \"OPPS_NOT_ON_PIPELINE\": \"Migrate opportunities\",\n \"HIDE_ORPHANED_OPPORTUNITIES\": \"Show pipeline\",\n \"SUCCESSFULLY_ASSIGNED_OPPORTUNITIES\": \"Successfully assigned all selected opportunities\",\n \"FAILED_TO_ASSIGNED_OPPORTUNITIES\": \"Failed to assign one or more opportunities, please try again\",\n \"OPPORTUNITY_ITEMS_REQUIRED\": \"You must add at least one item to the opportunity contents\",\n \"ACCOUNT_REQUIRED\": \"You must select an account for the opportunity\",\n \"OPPORTUNITY_CONTENTS\": \"Items\",\n \"PIPELINE\": \"Pipeline\",\n \"CLOSE\": {\n \"CLOSE_OPPORTUNITY\": \"Close opportunity\",\n \"TITLE\": \"Close opportunity\",\n \"CLOSE_STATE\": \"Close state\",\n \"MESSAGE\": \"This will close the opportunity with the current revenue and packages. The opportunity will no longer be editable.\",\n \"OPPORTUNITY_CLOSE\": \"Close opportunity\",\n \"SELECT_STATE\": \"Select state\",\n \"CLOSED_LOST\": {\n \"REASON\": \"Reason\",\n \"SELECT_REASON\": \"Select reason\",\n \"PRICE\": \"Price\",\n \"NO_BUDGET\": \"No budget\",\n \"LOST_TO_COMPETITOR\": \"Lost to competitor\",\n \"NOT_READY\": \"Not ready\",\n \"OTHER\": \"Other\"\n }\n },\n \"OPPORTUNITY_TYPE\": {\n \"NOT_SPECIFIED\": \"Not specified\",\n \"NEW_BUSINESS\": \"New business\",\n \"EXISTING_BUSINESS\": \"Existing business\",\n \"PLACEHOLDER\": \"Type\",\n \"SUCCESS\": \"Successfully changed opportunity type.\",\n \"ERROR\": \"Unable to change opportunity type.\"\n }\n }\n },\n \"MEDDIC\": {\n \"POINTS\": \"Points\",\n \"PROBLEM_SAVING_SCORES\": \"There was a problem storing your MEDDIC scores\",\n \"PROBLEM_SAVING_NOTES\": \"There was a problem storing your MEDDIC notes\",\n \"PROBLEM_LOADING_NOTES\": \"There was a problem loading the MEDDIC notes\",\n \"NOTES_SAVED\": \"Your notes were saved\",\n \"SCORE_NAMES\": {\n \"METRIC\": \"Metrics\",\n \"ECONOMIC_BUYER\": \"Economic buyer\",\n \"DECISION_CRITERIA\": \"Decision criteria\",\n \"DECISION_PROCESS\": \"Decision process\",\n \"IDENTIFY_PAIN\": \"Identify pain\",\n \"CHAMPION\": \"Champion\",\n \"COMPETITION\": \"Competition\",\n \"PAPER_PROCESS\": \"Paper process\"\n },\n \"SCORE_DESCRIPTIONS\": {\n \"METRIC\": \"Metrics are the criteria your prospect uses to determine the success of this solution. This helps you prove return on investment (ROI) to your prospect.\",\n \"ECONOMIC_BUYER\": \"The economic buyer is the person that can ultimately approve the purchase of this solution. If possible, try to establish a relationship directly with this person.\",\n \"DECISION_CRITERIA\": \"Decision criteria are factors that impact whether your prospect purchases your solution. Common examples include budget constraints, potential return on investment (ROI), learning curve, and integration options.\",\n \"DECISION_PROCESS\": \"The decision process covers how your prospect decides to purchase new solutions. Examples include who makes decisions, what formalities are involved, and general turn-around time. This is useful in ensuring your deal won't fall apart or end up in limbo.\",\n \"IDENTIFY_PAIN\": \"When you identify pain, you know exactly which problems your solution solves for your prospect. Try to be as specific as possible to best pitch your solution.\",\n \"CHAMPION\": \"A champion is a well-respected advocate within the prospect's company. They are invested in your solution and will push for the company to purchase.\"\n },\n \"SCORE_OPTIONS\": {\n \"PLACEHOLDER\": \"Select an option\",\n \"METRIC\": {\n \"SCORE_0\": \"I have no idea\",\n \"SCORE_1\": \"I know some of the metrics, but details are still fuzzy\",\n \"SCORE_2\": \"I know exactly how the company will validate this solution\"\n },\n \"ECONOMIC_BUYER\": {\n \"SCORE_0\": \"I'm not sure\",\n \"SCORE_1\": \"I have the names of some people that can potentially purchase\",\n \"SCORE_2\": \"I know who approves purchases\"\n },\n \"DECISION_CRITERIA\": {\n \"SCORE_0\": \"I don't know\",\n \"SCORE_1\": \"I know some of the criteria, but not all\",\n \"SCORE_2\": \"I know exactly how they're evaluating my solution\"\n },\n \"DECISION_PROCESS\": {\n \"SCORE_0\": \"I'm not sure\",\n \"SCORE_1\": \"I know some of the process, but not the whole thing\",\n \"SCORE_2\": \"I know every step involved\"\n },\n \"IDENTIFY_PAIN\": {\n \"SCORE_0\": \"I haven't learned that yet\",\n \"SCORE_1\": \"I understand some of it, but I'm not clear on the specifics\",\n \"SCORE_2\": \"I fully understand the pain my prospect is trying to alleviate\"\n },\n \"CHAMPION\": {\n \"SCORE_0\": \"There's no one that I know of\",\n \"SCORE_1\": \"There's a few people who might, but no one concrete\",\n \"SCORE_2\": \"I know my champion\"\n },\n \"COMPETITION\": {\n \"SCORE_0\": \"Unaware of competitors\",\n \"SCORE_1\": \"Know competitors, lack comparison\",\n \"SCORE_2\": \"Understand competitors and differentiation\"\n },\n \"PAPER_PROCESS\": {\n \"SCORE_0\": \"No defined paper process\",\n \"SCORE_1\": \"Some steps identified, but not fully defined\",\n \"SCORE_2\": \"Clearly defined paper process from decision to signature\"\n }\n },\n \"POINT_VAL_0\": \"0 Points\",\n \"POINT_VAL_1\": \"1 Point\",\n \"POINT_VAL_2\": \"2 Points\",\n \"FAILED_TO_LOAD\": \"There was a problem loading the MEDDIC scores for this opportunity\",\n \"REASON_FOR_SCORE\": \"Reason for score\"\n },\n \"SALES_EXPECTED_CLOSE\": {\n \"UNABLE_TO_UPDATE_EXPECTED_CLOSE\": \"Failed to update expected close date\",\n \"EXPECTED_CLOSE_UPDATED\": \"Expected close date updated\",\n \"PLACEHOLDER\": \"Select a date\"\n },\n \"SALES_CONTRACT_DURATION\": {\n \"TITLE\": \"Expected contract length\",\n \"DETAILS_SECTION_TITLE\": \"Contract length\",\n \"ENTER_DURATION\": \"enter length\",\n \"PERIOD\": \"Period\",\n \"DURATION\": \"Length\",\n \"HINT\": \"Use this field for reference only. Orders and product expiration dates will not be impacted by this timeframe.\",\n \"DURATION_UPDATED\": \"Contract duration updated\",\n \"ERRORS\": {\n \"INVALID_FORMAT\": \"Must be a valid number higher than 0\",\n \"UNABLE_TO_UPDATE_DURATION\": \"Failed to update contract duration\"\n },\n \"DURATIONS\": {\n \"DAY\": \"day(s)\",\n \"WEEK\": \"week(s)\",\n \"MONTH\": \"month(s)\",\n \"YEAR\": \"year(s)\",\n \"DAY_SINGULAR\": \"day\",\n \"WEEK_SINGULAR\": \"week\",\n \"MONTH_SINGULAR\": \"month\",\n \"YEAR_SINGULAR\": \"year\"\n },\n \"TOOLTIP\": {\n \"CLEAR\": \"Remove contract length\",\n \"EDIT\": \"Edit contract length\"\n }\n },\n \"SALES_ACTIVITY\": {\n \"ADD_NOTES\": \"Add notes\"\n },\n \"TRAINING_RESOURCES\": {\n \"RESOURCES_TITLE\": \"Resources\",\n \"PRODUCTS_BREADCRUMB\": \"Products\"\n }\n}\n", "export const WEBLATE_COMPONENT_NAME = 'common/sales-ui';\n", "import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SalesOrderContentsComponent } from './sales-order-contents.component';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatListModule } from '@angular/material/list';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { VaBadgeModule, VaIconModule } from '@vendasta/uikit';\nimport { SalesOrderPackageDropdownItemComponent } from './package-dropdown/package-dropdown-item/package-dropdown-item.component';\nimport { SalesOrderPackageDropdownComponent } from './package-dropdown/package-dropdown.component';\nimport { LexiconModule } from '@galaxy/lexicon';\nimport baseTranslation from '../../assets/i18n/en_devel.json';\nimport { WEBLATE_COMPONENT_NAME } from '../../shared/constants';\nimport { GalaxyTooltipModule } from '@vendasta/galaxy/tooltip';\nimport { MatExpansionModule } from '@angular/material/expansion';\n\n@NgModule({\n declarations: [\n SalesOrderContentsComponent,\n SalesOrderPackageDropdownItemComponent,\n SalesOrderPackageDropdownComponent,\n ],\n exports: [SalesOrderContentsComponent],\n imports: [\n CommonModule,\n MatCardModule,\n MatListModule,\n MatIconModule,\n MatTooltipModule,\n VaIconModule,\n VaBadgeModule,\n MatMenuModule,\n MatButtonModule,\n MatProgressSpinnerModule,\n TranslateModule,\n LexiconModule.forChild({\n componentName: WEBLATE_COMPONENT_NAME,\n baseTranslation: baseTranslation,\n }),\n GalaxyTooltipModule,\n MatExpansionModule,\n ],\n})\nexport class SalesOrderContentsModule {}\n", "import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { Opportunity } from '@vendasta/sales-opportunities';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OpportunitySidePanelEventsService {\n private readonly sidePanelCloseEvents$$ = new Subject();\n sidePanelCloseEvents$ = this.sidePanelCloseEvents$$.asObservable();\n private readonly opportunityCreatedEvents$$ = new BehaviorSubject(null);\n opportunityCreatedEvents$ = this.opportunityCreatedEvents$$.asObservable();\n\n private readonly opportunityUpdatedEvents$$ = new BehaviorSubject(null);\n opportunityUpdatedEvents$ = this.opportunityUpdatedEvents$$.asObservable();\n\n sidePanelCloseRequested(): void {\n this.sidePanelCloseEvents$$.next(null);\n }\n\n opportunityCreated(opportunity: Opportunity): void {\n this.opportunityCreatedEvents$$.next(opportunity);\n }\n\n opportunityUpdated(opportunity: Opportunity): void {\n this.opportunityUpdatedEvents$$.next(opportunity);\n }\n}\n", "import { LineItem, Revenue, RevenueComponent, RevenuePeriod, Status } from '@vendasta/sales-orders';\nimport { Currency as PackageCurrency, Frequency, Package, Pricing } from '@vendasta/marketplace-packages';\nimport { App, AppPrice, UnitBillingFrequency } from '@galaxy/marketplace-apps';\nimport { BadgeColor } from '@vendasta/galaxy/badge/src/badge.component';\nimport { LineItem as OpportunityLineItem } from '@vendasta/sales-opportunities';\n\nexport interface Badge {\n text: string;\n color: BadgeColor;\n}\n\nexport const StatusToBadgeMapping = new Map([\n [Status.ACTIVATION_ERRORS, { text: 'FRONTEND.SALES_UI.ACTIVATION_ERRORS', color: 'red' }],\n [Status.APPROVED, { text: 'FRONTEND.SALES_UI.APPROVED', color: 'green' }],\n [Status.DECLINED, { text: 'FRONTEND.SALES_UI.DECLINED', color: 'dark-grey-solid' }],\n [Status.FULFILLED, { text: 'FRONTEND.SALES_UI.ACTIVATED', color: 'blue' }],\n [Status.PROCESSING, { text: 'FRONTEND.SALES_UI.PRODUCT_ACTIVATION_INITIATED', color: 'yellow' }],\n [Status.SUBMITTED, { text: 'FRONTEND.SALES_UI.SUBMITTED_FOR_ADMIN_APPROVAL', color: 'blue' }],\n [Status.RESUBMITTED, { text: 'FRONTEND.SALES_UI.RESUBMITTED', color: 'blue' }],\n [Status.DRAFTED, { text: 'FRONTEND.SALES_UI.DRAFTED', color: 'grey' }],\n [Status.ARCHIVED, { text: 'FRONTEND.SALES_UI.ARCHIVED', color: 'blue-solid' }],\n [\n Status.SUBMITTED_FOR_CUSTOMER_APPROVAL,\n { text: 'FRONTEND.SALES_UI.SUBMITTED_FOR_CUSTOMER_APPROVAL', color: 'yellow' },\n ],\n [Status.CANCELLATION_REQUESTED, { text: 'FRONTEND.SALES_UI.CANCELLATION_REQUESTED', color: 'red' }],\n [Status.CANCELLED, { text: 'FRONTEND.SALES_UI.CANCELLED', color: 'red' }],\n [Status.SCHEDULED_ACTIVATION, { text: 'FRONTEND.SALES_UI.SCHEDULED_ACTIVATION', color: 'yellow' }],\n // No default color defined, defaulting to grey.\n [Status.AWAITING_PAYMENT, { text: 'FRONTEND.SALES_UI.AWAITING_PAYMENT', color: 'grey' }],\n [Status.PROCESSING_PAYMENT, { text: 'FRONTEND.SALES_UI.PROCESSING_PAYMENT', color: 'grey' }],\n [undefined, { text: 'FRONTEND.SALES_UI.SUBMITTED_FOR_ADMIN_APPROVAL', color: 'grey' }],\n]);\n\nexport function convertPackagePricingToSalesOrderRevenue(pricing: Pricing): Revenue {\n const prices = !!pricing && !!pricing.prices ? pricing.prices : [];\n return new Revenue({\n revenueComponents: prices.map(\n (p) =>\n new RevenueComponent({\n value: p.price,\n period: packageFrequencyToSalesOrderPeriod(p.frequency),\n isStartingRevenue: p.isStartingPrice,\n }),\n ),\n });\n}\n\nfunction packageFrequencyToSalesOrderPeriod(f: Frequency): RevenuePeriod {\n switch (f) {\n case Frequency.DAILY:\n return RevenuePeriod.DAILY;\n case Frequency.MONTHLY:\n return RevenuePeriod.MONTHLY;\n case Frequency.ONCE:\n return RevenuePeriod.ONETIME;\n case Frequency.WEEKLY:\n return RevenuePeriod.WEEKLY;\n case Frequency.YEARLY:\n return RevenuePeriod.YEARLY;\n default:\n return RevenuePeriod.MONTHLY;\n }\n}\n\nexport function packageCurrencyToCurrencyCode(currency: PackageCurrency): string {\n if (!currency || !PackageCurrency[currency]) {\n return 'USD';\n }\n return PackageCurrency[currency];\n}\n\nexport function packageToSalesOrderLineItem(pkg: Package): LineItem {\n return new LineItem({\n packageId: pkg.packageId,\n currencyCode: packageCurrencyToCurrencyCode(pkg.pricing ? pkg.pricing.currency : null),\n currentRevenue: convertPackagePricingToSalesOrderRevenue(pkg.pricing),\n quantity: 1,\n });\n}\n\nexport function OpportunityToOrderLineItems(lineItems: OpportunityLineItem[]): LineItem[] {\n if (!lineItems) return [];\n return lineItems.map((li) => new LineItem({ ...li })).map(convertNegativeRevenueValuesToZero) ?? [];\n}\n\nexport function convertNegativeRevenueValuesToZero(lineItem: LineItem): LineItem {\n if (lineItem?.currentRevenue?.revenueComponents) {\n lineItem.currentRevenue.revenueComponents.forEach((revenueComponent: RevenueComponent) => {\n if (revenueComponent.value < 0) {\n revenueComponent.value = 0;\n }\n });\n }\n return lineItem;\n}\n\nexport function OrderToOpportunityLineItems(lineItems: LineItem[]): OpportunityLineItem[] {\n if (!lineItems) return [];\n return lineItems.map((li) => new OpportunityLineItem({ ...li }));\n}\n\nexport function appToSalesOrderLineItem(app: App, currency: string): LineItem {\n return new LineItem({\n appKey: app.key,\n currencyCode: currency,\n currentRevenue: new Revenue({\n revenueComponents: [\n new RevenueComponent({\n value: 0,\n period: null, // Period is not set here to force the user to interact with this price before saving\n isStartingRevenue: false,\n }),\n ],\n }),\n quantity: 1,\n });\n}\n\nexport function convertMarketplaceFreqToRevenueFreq(freq: UnitBillingFrequency): RevenuePeriod {\n if (freq === UnitBillingFrequency.UNIT_BILLING_FREQUENCY_MONTHLY) {\n return RevenuePeriod.MONTHLY;\n } else if (freq === UnitBillingFrequency.UNIT_BILLING_FREQUENCY_ONETIME) {\n return RevenuePeriod.ONETIME;\n } else if (freq === UnitBillingFrequency.UNIT_BILLING_FREQUENCY_YEARLY) {\n return RevenuePeriod.YEARLY;\n }\n return RevenuePeriod.MONTHLY;\n}\n\nexport function convertAppPriceToRevenuePrice(appPrice: AppPrice, currencyCode: string, editionID: string): Revenue {\n const frequencyPrice =\n appPrice?.pricesForEditions?.[editionID]?.pricesForCurrencies?.[currencyCode]?.pricesForFrequencies?.[0];\n const pricingRules = frequencyPrice?.pricingRules?.[0];\n if (currencyCode === '' || !pricingRules) {\n return new Revenue({\n revenueComponents: [\n new RevenueComponent({\n value: 0,\n }),\n ],\n });\n }\n\n const revenueComponents = [\n new RevenueComponent({\n value: pricingRules.price,\n period: convertMarketplaceFreqToRevenueFreq(frequencyPrice.frequency),\n isStartingRevenue: false,\n }),\n ];\n\n if (frequencyPrice.setupFee > 0) {\n revenueComponents.push(\n new RevenueComponent({\n value: frequencyPrice.setupFee,\n period: RevenuePeriod.ONETIME,\n isStartingRevenue: false,\n }),\n );\n }\n\n return new Revenue({ revenueComponents });\n}\n", "/**\n * This library has external dependencies that need to be provided by the host app in the module.\n * Provided type for PARTNER_ID_TOKEN, MARKET_ID_TOKEN, and BUSINESS_ID_TOKEN is `Observable`.\n *\n * Example:\n * @NgModule({\n * declarations: [MyHostComponent],\n * providers: [\n * {provide: PARTNER_ID_TOKEN, useExisting: MY_EXISTING_PROVIDED_PARTNER_ID},\n * {provide: MARKET_ID_TOKEN, useValue: of('my-market-id')},\n * {provide: BUSINESS_ID_TOKEN, useFactory: myFactoryFn(myDep: MyServiceDep), deps: [MyServiceDep]},\n * ],\n * })\n * export class MyHostModule {}\n *\n *\n * @Component({\n * selector: 'my-host-component',\n * template: `\n * \n * `,\n * })\n * export class MyHostComponent {}\n */\nexport const PARTNER_ID_TOKEN = 'partnerId$';\nexport const MARKET_ID_TOKEN = 'marketId$';\n\n/*\n * BUSINESS_ID_TOKEN is an OPTIONAL value provided to the SalesOrderLineitemSelector. If provided it will lookup\n * the apps that a business already has activated and mark those rows as already activated in the products table.\n */\nexport const BUSINESS_ID_TOKEN = 'businessId$';\n\n/**\n * Provided type is `Observable`, where Market is defined as\n * export interface Market {\n * name: string;\n * marketId: string;\n * }\n */\nexport const MARKET_IDS_TOKEN = 'markets$';\n\n/**\n * Provided type is `Observable`, where Salesperson is defined as\n * export interface Salesperson {\n * name: string;\n * salespersonId: string;\n * }\n */\nexport const SALESPEOPLE_TOKEN = 'salespeople$';\n\n/**\n * Provided type is `Observable`, where Salesteam has value\n * export interface Salesteam {\n * id: string;\n * teamName: string;\n * }\n */\nexport const SALES_TEAMS_TOKEN = 'salesTeams$';\n", "import { Inject, Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { skipWhile, take, tap } from 'rxjs/operators';\nimport { Opportunity, SalesOpportunitiesService } from '@vendasta/sales-opportunities';\n\ninterface SalesOpportunity {\n get(opportunityId, accountGroupId): Observable;\n}\n\ninterface OpportunityState {\n opportunity: Opportunity;\n loading: boolean;\n}\n\n@Injectable()\nexport class SalesOpportunityStoreService {\n private opportunityStore: Map> = new Map<\n string,\n BehaviorSubject\n >();\n\n constructor(@Inject(SalesOpportunitiesService) private readonly salesOpportunityService: SalesOpportunity) {}\n\n buildId(accountGroupId: string, opportunityId: string): string {\n return [accountGroupId, opportunityId].join(':');\n }\n\n public getOpportunityState(opportunityId: string, accountGroupId: string): Observable {\n const id = this.buildId(accountGroupId, opportunityId);\n if (!this.opportunityStore.has(id)) {\n this.fetchOpportunity(opportunityId, accountGroupId);\n }\n return this.opportunityStore.get(id).pipe(skipWhile((o) => o === undefined));\n }\n\n fetchOpportunity(opportunityId: string, accountGroupId: string): void {\n const id = this.buildId(accountGroupId, opportunityId);\n if (!this.opportunityStore.has(id)) {\n this.opportunityStore.set(id, new BehaviorSubject(undefined));\n }\n if (!accountGroupId || !opportunityId) {\n this.opportunityStore.get(id).next({ opportunity: null, loading: false });\n return;\n }\n const currentValue = this.opportunityStore.get(id).getValue();\n if (currentValue) {\n this.opportunityStore.get(id).next({ opportunity: currentValue.opportunity, loading: true });\n }\n this.salesOpportunityService\n .get(opportunityId, accountGroupId)\n .pipe(\n tap((o) => this.opportunityStore.get(id).next({ opportunity: o, loading: false })),\n take(1),\n )\n .subscribe();\n }\n\n public refreshOpportunity(opportunityId: string, accountGroupId: string): void {\n this.fetchOpportunity(opportunityId, accountGroupId);\n }\n\n public clearCache(): void {\n this.opportunityStore.clear();\n }\n}\n", "import { UILineItemWithEditionPricing } from './sales-order-confirmation/sales-order-confirmation.service';\n\nexport type BillingLineItemSummary = {\n [key: string]: {\n sku: string;\n amount: number;\n };\n};\n\nexport function convertLineItemsToBillingSummary(lineItems: UILineItemWithEditionPricing[]): BillingLineItemSummary {\n return lineItems.reduce((acc, li) => {\n if (li.lineItem?.currentRevenue?.revenueComponents) {\n li.lineItem.currentRevenue.revenueComponents.forEach((rev) => {\n if (!acc[li.billingId]) {\n acc[li.billingId] = { sku: li.billingId, amount: 0 };\n }\n acc[li.billingId].amount += rev.value;\n });\n }\n return acc;\n }, {});\n}\n", "import { HttpErrorResponse } from '@angular/common/http';\nimport { Inject, Injectable, OnDestroy } from '@angular/core';\nimport { AppliedTax, CalculateLineItemsTaxResponse, LineItemTaxes, TaxRateService } from '@galaxy/billing';\nimport { App, AppKey, AppPartnerService, FieldMask, FieldMaskInterface } from '@galaxy/marketplace-apps';\nimport { Package, PackageService } from '@vendasta/marketplace-packages';\nimport { Opportunity, SalesOpportunitiesService } from '@vendasta/sales-opportunities';\nimport { DurationInterface, LineItem, Order, Origin, Revenue, SalesOrdersService } from '@vendasta/sales-orders';\nimport { DurationTotal, TaxOption, UILineItem } from '@vendasta/store';\nimport { add } from 'date-fns';\nimport { BehaviorSubject, combineLatest, merge, Observable, of, Subscription, zip } from 'rxjs';\nimport { catchError, filter, map, publishReplay, refCount, skipWhile, switchMap, take, tap } from 'rxjs/operators';\nimport { convertLineItemsToBillingSummary } from '../billing-utils';\nimport {\n appToSalesOrderLineItem,\n OpportunityToOrderLineItems,\n OrderToOpportunityLineItems,\n packageToSalesOrderLineItem,\n} from '../conversion-utils';\nimport { SalesOpportunityStoreService } from '../sales-opportunity-store.service';\nimport { AppWithRetailPricing } from '../sales-order-line-item-selector/sales-order-line-item-selector.component';\nimport { SalesOrderStoreService } from '../sales-order-store.service';\nimport { OpportunitySidePanelEventsService } from '../../sales-opportunities/opportunity-side-panel/opportunity-side-panel-events.service';\n\nexport interface PackageApiService {\n getMulti(packageIds: string[]): Observable;\n}\n\nexport interface AppSdkService {\n getMulti(\n appKeys: AppKey[],\n partnerId: string,\n marketId: string,\n projectionFilter: FieldMaskInterface,\n includeNotEnabled?: boolean,\n ): Observable;\n}\n\nexport interface UILineItemWithEditionPricing extends UILineItem {\n possibleRevenue?: {\n [editionId: string]: {\n currencyCode: string;\n revenue: Revenue;\n };\n };\n}\n\nconst INVALID_ITEM: UILineItem = {\n name: 'Invalid Item',\n iconUrl: null,\n lineItem: null,\n};\n\n@Injectable()\nexport class SalesOrderConfirmationService implements OnDestroy {\n partnerId: string;\n marketId: string;\n businessId: string;\n defaultDisplayCurrency: string;\n\n orderId$$: BehaviorSubject = new BehaviorSubject(null);\n orderId$: Observable = this.orderId$$.asObservable();\n\n opportunityId$$: BehaviorSubject = new BehaviorSubject(null);\n opportunityId$: Observable = this.opportunityId$$.asObservable();\n\n specifiedLineItems$$: BehaviorSubject = new BehaviorSubject([]);\n specifiedLineItems$: Observable = this.specifiedLineItems$$.asObservable();\n\n uiLineItems$: Observable;\n\n loading$$: BehaviorSubject = new BehaviorSubject(true);\n loading$: Observable = this.loading$$.asObservable();\n\n taxOptions$: Observable;\n contractDuration$: Observable;\n\n private specifiedContractStartDate$$ = new BehaviorSubject(new Date());\n specifiedContractStartDate$: Observable;\n\n orderOrigin$: Observable;\n\n private subscriptions: Subscription[] = [];\n\n readonly order$: Observable;\n private readonly opportunity$: Observable;\n private readonly confirmation$: Observable;\n readonly estimatedTotal$: Observable;\n\n constructor(\n @Inject(PackageService) private readonly packageSdk: PackageApiService,\n @Inject(AppPartnerService) private readonly appSdk: AppSdkService,\n private readonly salesOrdersSdk: SalesOrdersService,\n private readonly salesOrderStoreService: SalesOrderStoreService,\n private readonly taxRateService: TaxRateService,\n private readonly salesOpportunityStoreService: SalesOpportunityStoreService,\n private readonly salesOpportunitiesSdk: SalesOpportunitiesService,\n private readonly opportunitySidePanelEventsService: OpportunitySidePanelEventsService,\n ) {\n const orderState$ = this.orderId$.pipe(\n skipWhile((orderId) => orderId === null),\n switchMap((orderId) => this.salesOrderStoreService.getOrderState(orderId, this.businessId)),\n publishReplay(1),\n refCount(),\n );\n\n const opportunityState$ = this.opportunityId$.pipe(\n skipWhile((opportunityId) => opportunityId === null),\n switchMap((opportunityId) =>\n this.salesOpportunityStoreService.getOpportunityState(opportunityId, this.businessId),\n ),\n publishReplay(1),\n refCount(),\n );\n\n this.subscriptions.push(\n orderState$\n .pipe(\n tap((orderState) => {\n if (orderState.loading) {\n this.loading$$.next(true);\n }\n }),\n )\n .subscribe(),\n );\n\n this.subscriptions.push(\n opportunityState$\n .pipe(\n tap((oppState) => {\n if (oppState.loading) {\n this.loading$$.next(true);\n }\n }),\n )\n .subscribe(),\n );\n\n this.order$ = orderState$.pipe(\n filter((orderState) => !orderState.loading),\n map((orderState) => orderState.order),\n publishReplay(1),\n refCount(),\n );\n\n this.opportunity$ = opportunityState$.pipe(\n filter((oppState) => !oppState.loading),\n map((oppState) => oppState.opportunity),\n publishReplay(1),\n refCount(),\n );\n\n this.orderOrigin$ = this.order$.pipe(map((order) => order?.origin));\n\n this.confirmation$ = combineLatest([this.order$, this.opportunity$]).pipe(\n map(([order, opportunity]) => {\n if (opportunity !== null) {\n return opportunity;\n }\n\n return order;\n }),\n );\n\n this.contractDuration$ = this.confirmation$.pipe(\n map((val) => {\n const order = val as Order;\n const opportunity = val as Opportunity;\n if (order?.contractDuration) {\n return order?.contractDuration;\n }\n return opportunity?.expectedContractDuration;\n }),\n );\n\n const cachedContractStartDate$ = this.confirmation$.pipe(\n map((val) => {\n const order = val as Order;\n const opportunity = val as Opportunity;\n if (order?.requestedActivation) {\n return order?.requestedActivation;\n }\n if (opportunity?.expectedCloseDate) {\n return opportunity?.expectedCloseDate;\n }\n if (val && 'orderId' in val) {\n return new Date();\n } else {\n return this.getDefaultExpectedCloseDate();\n }\n }),\n );\n\n this.specifiedContractStartDate$ = merge([\n cachedContractStartDate$,\n this.specifiedContractStartDate$$.asObservable(),\n ]).pipe(switchMap((startDate) => startDate));\n\n const combinedLineItems$ = combineLatest([this.confirmation$, this.specifiedLineItems$]).pipe(\n map(([val, lineItems]) => {\n if (!val) return lineItems;\n if ('orderId' in val) return lineItems.concat(val?.lineItems);\n\n return lineItems.concat(OpportunityToOrderLineItems(val?.lineItems || []));\n }),\n publishReplay(1),\n refCount(),\n );\n\n const packages$ = combinedLineItems$.pipe(\n switchMap((lineItems) => {\n const packageLineItems = lineItems.filter((li) => !!li.packageId);\n if (packageLineItems.length > 0) {\n return this.packageSdk.getMulti(packageLineItems.map((li) => li.packageId));\n }\n return of([]);\n }),\n publishReplay(1),\n refCount(),\n );\n\n const appsAndAddons$ = combinedLineItems$.pipe(\n switchMap((lineItems) => {\n const appsAndAddonsLineItems = lineItems.filter((li) => !!li.appKey);\n const appsAndAddonsKeys = appsAndAddonsLineItems.map((app) => new AppKey(app.appKey));\n if (appsAndAddonsKeys.length > 0) {\n return this.appSdk.getMulti(\n appsAndAddonsKeys,\n this.partnerId,\n this.marketId,\n new FieldMask({ paths: ['billingId'] }),\n true,\n );\n }\n return of([]);\n }),\n map((apps) => apps.filter((a) => !!a?.key?.appId)),\n publishReplay(1),\n refCount(),\n );\n\n this.uiLineItems$ = zip(combinedLineItems$, packages$, appsAndAddons$).pipe(\n map(([lineItems, packages, appsAndAddons]) => {\n return lineItems.map((li) => {\n let uiLineItem = INVALID_ITEM;\n if (li.packageId) {\n const pack = packages.find((p) => p.packageId === li.packageId);\n uiLineItem = this.packageToUILineItem(pack);\n } else {\n const app = appsAndAddons.find(\n (a) => a.key.appId === li.appKey.appId && (a.key.editionId || '') === (li.appKey.editionId || ''),\n );\n if (app) {\n uiLineItem = this.appWithPossibleRevenueToUILineItem(app);\n }\n }\n uiLineItem.lineItem = li;\n return uiLineItem;\n });\n }),\n );\n\n this.taxOptions$ = combineLatest([this.order$, this.uiLineItems$]).pipe(\n switchMap(([order, lineItems]) => {\n if (order) {\n const shouldTaxApplyToAllSKUs = (lineItems || []).every(\n (li) => (li?.lineItem?.taxRateIds || []).length === 0,\n );\n const taxOptions = (order.taxOptions || []).map((opt) => {\n const applicableSKUs = shouldTaxApplyToAllSKUs\n ? lineItems.map((li) => li.billingId)\n : lineItems\n .filter((li) => (li?.lineItem?.taxRateIds || []).includes(opt.taxRateId))\n .map((li) => li.billingId);\n return {\n label: opt.label,\n percentageMultiplier: opt.percentageMultiplier,\n initialAmount: opt.initialAmount,\n taxRateId: opt.taxRateId,\n applicableSkus: applicableSKUs,\n };\n });\n return of(taxOptions);\n }\n\n return this.taxRateService\n .calculateLineItems(\n this.partnerId,\n this.businessId,\n Object.values(convertLineItemsToBillingSummary(lineItems)),\n )\n .pipe(\n catchError((err: HttpErrorResponse) => {\n console.error(err);\n return [];\n }),\n map((response: CalculateLineItemsTaxResponse) => {\n return response.appliedTaxes.map((rate: AppliedTax) => {\n const applicableSkus = this.buildApplicableSkus(rate, response.lineItemTaxes);\n\n return {\n label: rate.name,\n percentageMultiplier: rate.percentage / 100,\n initialAmount: rate.amount,\n taxRateId: rate.taxRateId,\n applicableSkus: applicableSkus,\n };\n });\n }),\n );\n }),\n );\n\n this.estimatedTotal$ = combineLatest([this.confirmation$, this.taxOptions$]).pipe(\n map(([confirmation, taxOption]) =>\n calculateOpportunityEstimatedTotal(confirmation, taxOption, this.defaultDisplayCurrency),\n ),\n );\n }\n\n ngOnDestroy(): void {\n this.subscriptions.forEach((sub) => sub.unsubscribe());\n this.salesOrderStoreService.clearOrderStateCache();\n this.salesOpportunityStoreService.clearCache();\n }\n\n buildApplicableSkus(rate: AppliedTax, lineItemTaxes: LineItemTaxes[]): string[] {\n return lineItemTaxes\n .filter((liTax) => liTax.taxRateIds.some((taxRateId) => taxRateId === rate.taxRateId))\n .map((liTax) => liTax.sku);\n }\n\n updateLineItems(lineItems: LineItem[]): Observable {\n this.loading$$.next(true);\n\n return this.confirmation$.pipe(\n take(1),\n switchMap((val) => {\n const order = val as Order;\n const opportunity = val as Opportunity;\n\n if (opportunity.opportunityId) {\n return this.salesOpportunitiesSdk\n .updateLineItemsForOpportunity(\n opportunity.opportunityId,\n opportunity.accountGroupId,\n opportunity.salesPersonId,\n OrderToOpportunityLineItems(lineItems),\n )\n .pipe(\n map((updatedOpportunity: Opportunity) => {\n this.salesOpportunityStoreService.refreshOpportunity(\n updatedOpportunity.opportunityId,\n updatedOpportunity.accountGroupId,\n );\n this.opportunitySidePanelEventsService.opportunityUpdated(updatedOpportunity);\n return true;\n }),\n );\n }\n\n return this.salesOrdersSdk.updateLineItems(order.orderId, order.businessId, lineItems).pipe(\n map(() => {\n this.salesOrderStoreService.refreshOrder(order.orderId, order.businessId);\n return true;\n }),\n );\n }),\n );\n }\n\n packageToUILineItem(pkg: Package): UILineItem {\n return {\n lineItem: packageToSalesOrderLineItem(pkg),\n billingId: pkg.packageId,\n name: pkg.name,\n iconUrl: pkg.icon,\n bannerUrl: pkg.headerImageUrl,\n isMultiActivatable: false,\n description: pkg.tagline,\n };\n }\n\n appWithPossibleRevenueToUILineItem(app: AppWithRetailPricing): UILineItem {\n const uiLineItem: UILineItemWithEditionPricing = {\n lineItem: appToSalesOrderLineItem(app, this.defaultDisplayCurrency),\n name: app.sharedMarketingInformation.name,\n editionName: app.sharedMarketingInformation.editionName,\n iconUrl: app.sharedMarketingInformation.iconUrl,\n bannerUrl: app.sharedMarketingInformation.bannerImageUrl,\n billingId: app.externalIdentifiers?.billingId,\n description: app.sharedMarketingInformation.tagline,\n appType: app.appType,\n };\n\n if (app.activationInformation) {\n uiLineItem.isMultiActivatable = app.activationInformation.multipleActivationsEnabled;\n }\n\n if (app.retailPricing) {\n uiLineItem.lineItem.currentRevenue = app.retailPricing.revenue;\n uiLineItem.lineItem.currencyCode = app.retailPricing.currencyCode;\n }\n\n if (app.parentRequirements?.enabled) {\n uiLineItem.parentIconUrl = app.parentRequirements.parentDetails.iconUrl;\n uiLineItem.parentName = app.parentRequirements.parentDetails.name;\n }\n return uiLineItem;\n }\n\n initialize(\n lineItems: LineItem[],\n orderId: string,\n opportunityId: string,\n partnerId: string,\n marketId: string,\n businessId: string,\n defaultDisplayCurrency: string,\n ): void {\n this.partnerId = partnerId;\n this.marketId = marketId;\n this.businessId = businessId;\n this.specifiedLineItems$$.next(lineItems || []);\n this.defaultDisplayCurrency = defaultDisplayCurrency;\n this.orderId$$.next(orderId || '');\n this.opportunityId$$.next(opportunityId || '');\n }\n\n addSpecifiedLineItems(lineItems: LineItem[]): void {\n this.specifiedLineItems$$.next(this.specifiedLineItems$$.getValue().concat(lineItems));\n }\n\n private getDefaultExpectedCloseDate(): Date {\n return add(new Date(), { months: 1 });\n }\n\n updateContractStartDate(date: Date): void {\n this.specifiedContractStartDate$$.next(date);\n }\n}\n\nexport function calculateOpportunityEstimatedTotal(\n confirmation: Order | Opportunity,\n taxOptions: TaxOption[],\n currencyCode: string,\n): DurationTotal[] {\n if (confirmation instanceof Opportunity) {\n let total = confirmation.projectedFirstYearValue / 100;\n if (taxOptions) {\n const taxTotal = taxOptions.reduce((all, tax) => all + tax.percentageMultiplier * total, 0);\n total += taxTotal;\n }\n return [\n {\n total: total,\n currencyCode: currencyCode,\n startingPrice: confirmation.lineItems.some((li) =>\n li.currentRevenue?.revenueComponents.some((rc) => rc.isStartingRevenue),\n ),\n },\n ];\n }\n return null;\n}\n", "import { SelectedItem } from '@galaxy/inventory-ui';\nimport { AppKey } from '@vendasta/marketplace-apps';\n\nexport function convertItemsToAppKeys(items: SelectedItem[]): AppKey[] {\n return items.map((item) => {\n return new AppKey({\n appId: item.itemId,\n editionId: item.type === 'app' ? item.edition?.editionId : undefined,\n });\n });\n}\n\nexport function mapify(array: any[], keyFn: (item: any) => string): Map {\n return array.reduce((map, item) => {\n map.set(keyFn(item), item);\n return map;\n }, new Map());\n}\n", "import { Injectable } from '@angular/core';\nimport { SelectedItem, ToInventoryItem } from '@galaxy/inventory-ui';\nimport { App, AppPrices, FieldMask } from '@vendasta/marketplace-apps';\nimport { AppPartnerService, AppPricingService } from '@galaxy/marketplace-apps';\nimport { MarketplacePackagesApiService, Package } from '@vendasta/marketplace-packages';\nimport { convertItemsToAppKeys, mapify } from './utils';\nimport { combineLatest, map, Observable, of } from 'rxjs';\nimport { getPartnerCurrency } from '@vendasta/billing-ui';\nimport { convertAppPriceToRevenuePrice } from '../../conversion-utils';\nimport { AppWithRetailPricing } from '../sales-order-line-item-selector.component';\n\n@Injectable()\nexport class ItemSelectorAdapterService {\n constructor(\n private appPartnerService: AppPartnerService,\n private appPricingService: AppPricingService,\n private readonly marketplacePackagesApiService: MarketplacePackagesApiService,\n ) {}\n\n public static convertAppsToItems(apps: App[]): SelectedItem[] {\n return apps.map((a) => ToInventoryItem(a));\n }\n\n public static convertAppsAndPackagesToItems(apps: App[], packages: Package[]): SelectedItem[] {\n const selectedItems = apps.map((a) => ToInventoryItem(a));\n selectedItems.push(...packages.map((p) => ToInventoryItem(p)));\n return selectedItems;\n }\n\n public getMarketplaceApps(items: SelectedItem[], partnerId: string, marketId: string): Observable> {\n const appItems = items.filter((item) => item.type === 'app' || item.type === 'addon');\n if (!appItems.length) return of(new Map());\n\n return this.appPartnerService\n .getMulti(convertItemsToAppKeys(appItems), partnerId, marketId, null, true)\n .pipe(map((apps) => mapify(apps, (app: App) => app.key.appId)));\n }\n\n public getMarketplacePackages(items: SelectedItem[]): Observable {\n const packageIds = items.filter((item) => item.type === 'package').map((item) => item.itemId);\n if (!packageIds.length) return of([]);\n\n return this.marketplacePackagesApiService\n .getMultiPackages({ packageIds: packageIds })\n .pipe(map((resp) => resp.packageContainers.map((container) => container.package)));\n }\n\n public getRetailPricing(appIds: string[], partnerId: string, marketId: string): Observable> {\n return this.appPricingService\n .getMultiPricing(appIds, new FieldMask({ paths: ['retail'] }), partnerId, marketId)\n .pipe(map((appPrices) => mapify(appPrices, (ap: AppPrices) => ap.appId)));\n }\n\n public getAppsWithRetailPricing(\n selectedItems: SelectedItem[],\n partnerId: string,\n marketId: string,\n ): Observable {\n const items = selectedItems.filter((item) => item.type === 'app' || item.type === 'addon');\n if (!items.length) {\n return of([]);\n }\n\n const itemIds: string[] = items.map((item) => item.itemId);\n return combineLatest([\n this.getMarketplaceApps(items, partnerId, marketId),\n this.getRetailPricing(itemIds, partnerId, marketId),\n ]).pipe(\n map(([apps, appPrices]) =>\n items.map((item) => {\n const app = apps.get(item.itemId);\n const appPrice = appPrices.get(item.itemId);\n const partnerCurrency = getPartnerCurrency(appPrice.pricesForContexts['retail']);\n const appWithRetailPrice = app as AppWithRetailPricing;\n appWithRetailPrice.retailPricing = {\n currencyCode: partnerCurrency,\n revenue: convertAppPriceToRevenuePrice(\n appPrice.pricesForContexts['retail'],\n partnerCurrency,\n app.key.editionId ?? '',\n ),\n };\n return appWithRetailPrice;\n }),\n ),\n );\n }\n}\n", "import { Component, Input, OnInit } from '@angular/core';\nimport { App } from '@galaxy/marketplace-apps';\nimport { Package } from '@vendasta/marketplace-packages';\nimport { ItemSelectorConfig, SelectedItem, SelectionChange } from '@galaxy/inventory-ui';\nimport { ItemSelectorAdapterService } from './item-selector-adapter.service';\nimport { Observable } from 'rxjs';\nimport { AppWithRetailPricing } from '../sales-order-line-item-selector.component';\n\n@Component({\n selector: 'sales-ui-sales-order-item-selector-adapter',\n templateUrl: './item-selector-adapter.component.html',\n providers: [ItemSelectorAdapterService],\n standalone: false,\n})\nexport class ItemSelectorAdapterComponent implements OnInit {\n @Input() config: ItemSelectorConfig;\n @Input() selectedApps: App[];\n @Input() selectedPackages: Package[];\n\n selectedItems: SelectedItem[];\n\n constructor(private itemSelectorAdapterService: ItemSelectorAdapterService) {}\n\n ngOnInit() {\n this.selectedItems = ItemSelectorAdapterService.convertAppsAndPackagesToItems(\n this.selectedApps,\n this.selectedPackages,\n );\n }\n\n itemSelectionChanged(selectionChange: SelectionChange): void {\n this.selectedItems = selectionChange.selectedItems;\n }\n\n getAppsWithRetailPricing(): Observable {\n return this.itemSelectorAdapterService.getAppsWithRetailPricing(\n this.selectedItems,\n this.config.partnerId,\n this.config.marketId,\n );\n }\n\n getMarketplacePackages(): Observable {\n return this.itemSelectorAdapterService.getMarketplacePackages(this.selectedItems);\n }\n}\n", "\n", "import { Component, Input, OnInit, ViewChild } from '@angular/core';\nimport { App } from '@galaxy/marketplace-apps';\nimport { Package } from '@vendasta/marketplace-packages';\nimport { Revenue } from '@vendasta/sales-orders';\nimport { Observable, of } from 'rxjs';\nimport { AppSelectorComponent } from './app-selector/app-selector.component';\nimport { ItemSelectorAdapterComponent } from './item-selector-adapter/item-selector-adapter.component';\nimport { ItemSelectorFilterType } from '@galaxy/inventory-ui';\n\n// This can also hold wholesale information if wholesalePricing is true\nexport class AppWithRetailPricing extends App {\n retailPricing: {\n currencyCode: string;\n revenue: Revenue;\n };\n}\n\n@Component({\n selector: 'sales-ui-sales-order-line-item-selector',\n templateUrl: './sales-order-line-item-selector.component.html',\n styleUrls: ['./sales-order-line-item-selector.component.scss'],\n standalone: false,\n})\nexport class SalesOrderLineItemSelectorComponent implements OnInit {\n @Input() partnerId: string;\n @Input() marketId: string;\n @Input() preselectedPackages: Package[] = [];\n @Input() preselectedApps: App[] = [];\n @Input() hideSellingStandaloneProducts: boolean;\n @Input() hidePackages: boolean;\n @Input() hideOwnerName: boolean;\n @Input() hideOrderFormProducts: boolean;\n @Input() wholesalePricing: boolean;\n\n @ViewChild('apps') app: AppSelectorComponent;\n @ViewChild('itemSelectorAdapter') itemSelectorAdapter: ItemSelectorAdapterComponent;\n\n itemTypesAvailable: ItemSelectorFilterType[] = ['products', 'packages'];\n\n ngOnInit(): void {\n if (this.hidePackages) {\n this.itemTypesAvailable = this.itemTypesAvailable.filter((itemType) => itemType !== 'packages');\n }\n if (this.hideSellingStandaloneProducts) {\n this.itemTypesAvailable = this.itemTypesAvailable.filter((itemType) => itemType !== 'products');\n }\n }\n\n getSelectedAppsWithRetailPricing(): Observable {\n if (this.hideSellingStandaloneProducts) {\n return of([]);\n }\n return this.itemSelectorAdapter.getAppsWithRetailPricing();\n }\n\n getSelectedPackages(): Observable {\n return this.itemSelectorAdapter.getMarketplacePackages();\n }\n}\n", "\n", "import { Component, Inject, ViewChild } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { App } from '@galaxy/marketplace-apps';\nimport { Package } from '@vendasta/marketplace-packages';\nimport { combineLatest, Observable } from 'rxjs';\nimport { take } from 'rxjs/operators';\nimport { SalesOrderLineItemSelectorComponent } from '../../sales-order-line-item-selector/sales-order-line-item-selector.component';\n\nexport interface SalesOrderLineItemSelectorDialogData {\n marketId?: string;\n preselectedPackages: Package[];\n preselectedApps: App[];\n hideSellingStandaloneProducts: boolean;\n hidePackages?: boolean;\n hideOwnerName?: boolean;\n hideOrderFormProducts?: boolean;\n wholesalePricing?: boolean;\n}\n\nexport interface SalesOrderLineItemSelectorDialogResult {\n packages: Package[];\n apps: App[];\n}\n\n@Component({\n selector: 'sales-ui-sales-order-line-item-selector-dialog',\n templateUrl: 'sales-order-line-item-selector-dialog.component.html',\n styleUrls: ['sales-order-line-item-selector-dialog.component.scss'],\n standalone: false,\n})\nexport class SalesOrderLineItemSelectorDialogComponent {\n marketId: string;\n preselectedPackages: Package[];\n preselectedApps: App[];\n hideSellingStandaloneProducts: boolean;\n hidePackages: boolean;\n hideOwnerName: boolean;\n hideOrderFormProducts: boolean;\n wholesalePricing: boolean;\n\n @ViewChild(SalesOrderLineItemSelectorComponent, { static: true })\n selectorComponent: SalesOrderLineItemSelectorComponent;\n\n constructor(\n @Inject('PARTNER_ID') readonly partnerId$: Observable,\n @Inject(MAT_DIALOG_DATA) public data: SalesOrderLineItemSelectorDialogData,\n public dialogRef: MatDialogRef,\n ) {\n this.marketId = data.marketId;\n this.preselectedPackages = data.preselectedPackages;\n this.preselectedApps = data.preselectedApps;\n this.hideSellingStandaloneProducts = data.hideSellingStandaloneProducts;\n this.hidePackages = data.hidePackages || false;\n this.hideOwnerName = data.hideOwnerName || false;\n this.hideOrderFormProducts = data.hideOrderFormProducts || false;\n this.wholesalePricing = data.wholesalePricing || false;\n }\n\n selectPackages(): void {\n combineLatest([\n this.selectorComponent.getSelectedAppsWithRetailPricing(),\n this.selectorComponent.getSelectedPackages(),\n ])\n .pipe(take(1))\n .subscribe(([apps, packages]) => {\n this.dialogRef.close({\n packages: packages,\n apps: apps,\n });\n });\n }\n}\n", "

{{ 'FRONTEND.SALES_UI.ADD_ITEMS' | translate }}

\n\n \n\n\n \n \n\n", "import { CurrencyPipe } from '@angular/common';\nimport { Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { RevenueComponent, RevenuePeriod } from '@vendasta/sales-orders';\n\ninterface PeriodOptions {\n label: string;\n value: RevenuePeriod;\n}\n\n@Component({\n selector: 'sales-ui-sales-order-edit-price',\n templateUrl: './sales-order-edit-price.component.html',\n styleUrls: ['./sales-order-edit-price.component.scss'],\n standalone: false,\n})\nexport class SalesOrderEditPriceComponent implements OnInit {\n @ViewChild('input', { static: true }) input: ElementRef;\n @Input() revenueComponent: RevenueComponent;\n @Input() allowDelete: boolean;\n @Input() currencyCode: string;\n @Input() form: UntypedFormGroup;\n @Input() allowNegativeValues = false;\n @Input() canEditPeriod = true;\n @Output() errorMessage: EventEmitter = new EventEmitter();\n\n @Output() delete: EventEmitter = new EventEmitter();\n\n currencySymbol: string;\n\n periodOptions: PeriodOptions[] = [\n { label: 'FRONTEND.STORE.PERIODS.ONE_TIME', value: RevenuePeriod.ONETIME },\n { label: 'FRONTEND.STORE.PERIODS.MONTHLY', value: RevenuePeriod.MONTHLY },\n { label: 'FRONTEND.STORE.PERIODS.YEARLY', value: RevenuePeriod.YEARLY },\n ];\n\n oneTimeOnly: PeriodOptions[] = [{ label: 'FRONTEND.STORE.PERIODS.ONE_TIME', value: RevenuePeriod.ONETIME }];\n\n constructor(private readonly formatCurrencyPipe: CurrencyPipe) {}\n\n ngOnInit(): void {\n this.currencySymbol = this.formatCurrencyPipe.transform(0, this.currencyCode, 'symbol-narrow').charAt(0);\n }\n\n handleDelete(): void {\n this.delete.emit(this.revenueComponent);\n }\n\n markAsTouched(): void {\n this.form.markAsTouched();\n this.form.updateValueAndValidity();\n for (const i in this.form.controls) {\n if (i) {\n this.form.controls[i].updateValueAndValidity();\n this.form.controls[i].markAsTouched();\n }\n }\n }\n}\n", "
\n \n {{ 'FRONTEND.SALES_UI.PRICING.PRICE' | translate }}\n {{ currencySymbol }}  \n \n \n {{ 'FRONTEND.SALES_UI.PRICING.REVENUE_REQUIRED' | translate }}\n \n \n {{ 'FRONTEND.SALES_UI.PRICING.GREATER_THAN_OR_EQUAL_TO_ZERO' | translate }}\n \n \n {{ 'FRONTEND.SALES_UI.PRICING.MUST_BE_NUM' | translate }}\n \n \n \n \n {{ 'FRONTEND.SALES_UI.PRICING.PERIOD' | translate }}\n \n \n \n \n {{ option.label | translate }}\n \n \n \n \n {{ option.label | translate }}\n \n \n \n \n {{ 'FRONTEND.SALES_UI.PRICING.PERIOD_REQUIRED' | translate }}\n \n \n \n \n \n
\n", "import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n Pipe,\n PipeTransform,\n QueryList,\n SimpleChanges,\n ViewChildren,\n} from '@angular/core';\nimport {\n UntypedFormArray,\n UntypedFormBuilder,\n UntypedFormControl,\n UntypedFormGroup,\n ValidationErrors,\n Validators,\n} from '@angular/forms';\nimport { MatDialog } from '@angular/material/dialog';\nimport { BillingTermDialogComponent, BillingTermDialogOutput } from '@galaxy/inventory-ui';\nimport { App } from '@galaxy/marketplace-apps';\nimport { FeatureFlagService, FeatureFlagStatusInterface } from '@galaxy/partner';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { Package } from '@vendasta/marketplace-packages';\nimport {\n BillingPeriod,\n DurationInterface,\n LineItem,\n Origin,\n Revenue,\n RevenueComponent,\n RevenuePeriod,\n SalesOrdersService,\n Status,\n} from '@vendasta/sales-orders';\nimport { TaxOption } from '@vendasta/store';\nimport { BehaviorSubject, combineLatest, iif, Observable, Subscription, of } from 'rxjs';\nimport { map, switchMap, take, tap } from 'rxjs/operators';\nimport { SalesOrderConfirmationService, UILineItemWithEditionPricing } from './sales-order-confirmation.service';\nimport { SalesOrderEditPriceComponent } from './sales-order-edit-price/sales-order-edit-price.component';\nimport { SalesOrderLineItemSelectorDialogComponent } from './sales-order-line-item-selector-dialog/sales-order-line-item-selector-dialog.component';\n\nconst SALES_OPPORTUNITIES_BILLING_PERIODS = '2024_01_sales_opportunities_billing_periods';\nconst UNIFIED_ORDERS_SCHEDULED_ACTIVATIONS = '2024_11_07_unified_orders_page_schedule_activation';\n\n@Component({\n selector: 'sales-ui-sales-order-confirmation',\n templateUrl: './sales-order-confirmation.component.html',\n styleUrls: ['../../shared/shared-styles.scss', './sales-order-confirmation.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [SalesOrderConfirmationService],\n standalone: false,\n})\nexport class SalesOrderConfirmationComponent implements OnInit, OnChanges, OnDestroy {\n @Input() partnerId: string;\n @Input() marketId: string;\n @Input() businessId: string;\n\n @Input() orderId: string;\n @Input() opportunityId: string;\n @Input() lineItems: LineItem[];\n @Input() hidePackages = false;\n @Input() removeHeader: boolean;\n @Input() title: string;\n @Input() editable = false;\n @Input() startEditing = false;\n @Input() defaultDisplayCurrency: string;\n @Input() allowNegativeValues = false;\n // allows multiple quantities to be set for products that are not multi-activatable\n @Input() bypassQuantityRestrictions = false;\n // controls whether or not an order can be directly charged, allowing for PC origin orders to display pricing.\n @Input() chargeOrdersEnabled = false;\n @Input() enableEditBillingSchedule = false;\n @Input() contractStartDate: Date;\n @Input() allowDuplicateItems = false;\n @Input() createRetailSubscriptions = false;\n\n @Output() loading: EventEmitter = new EventEmitter();\n\n openExpansionPanel$$ = new BehaviorSubject(false);\n openExpansionPanel$ = this.openExpansionPanel$$.asObservable();\n formForLineItems: UntypedFormArray;\n editing = false;\n saving = false;\n displayItems: UILineItemWithEditionPricing[];\n editingItems: UILineItemWithEditionPricing[];\n uiLineItems$: Observable = this.salesOrderConfirmationService.uiLineItems$;\n taxOptions$: Observable = this.salesOrderConfirmationService.taxOptions$;\n loading$: Observable = this.salesOrderConfirmationService.loading$;\n showPricing$: Observable = this.salesOrderConfirmationService.order$.pipe(\n map(\n (order) =>\n order?.origin !== Origin.PC ||\n (this.chargeOrdersEnabled &&\n order?.statusHistory?.some((history) => history.status === Status.SUBMITTED_FOR_CUSTOMER_APPROVAL)),\n ),\n );\n inputDuration$$ = new BehaviorSubject(null);\n duration$ = this.inputDuration$$\n .asObservable()\n .pipe(\n switchMap((inputDuration) =>\n iif(\n () => !!inputDuration,\n this.inputDuration$$.asObservable(),\n this.salesOrderConfirmationService.contractDuration$,\n ),\n ),\n );\n contractStart$ = this.salesOrderConfirmationService.specifiedContractStartDate$;\n estimatedTotal$ = this.salesOrderConfirmationService.estimatedTotal$;\n orderState$ = combineLatest([\n this.uiLineItems$,\n this.taxOptions$,\n this.duration$,\n this.loading$,\n this.estimatedTotal$,\n ]).pipe(\n map(([orderItems, taxOptions, duration, loading, estimatedTotal]) => ({\n orderItems: orderItems,\n taxOptions: taxOptions,\n duration: duration,\n loading: loading,\n estimatedTotal: estimatedTotal,\n })),\n );\n hideSellingStandaloneProducts = false;\n @ViewChildren('editPriceComponent')\n private readonly editPriceComponents: QueryList;\n private subscriptions: Subscription[] = [];\n\n featureFlags$: Observable;\n areBillingPeriodsEnabled$: Observable;\n canScheduleActivations$: Observable = of(false);\n\n constructor(\n private readonly salesOrderConfirmationService: SalesOrderConfirmationService,\n private fb: UntypedFormBuilder,\n private cdk: ChangeDetectorRef,\n private alertService: SnackbarService,\n private dialog: MatDialog,\n private readonly salesOrdersService: SalesOrdersService,\n private readonly featureFlagService: FeatureFlagService,\n ) {}\n\n @Input()\n set duration(duration: DurationInterface) {\n this.inputDuration$$.next(duration);\n }\n\n ngOnInit(): void {\n this.featureFlags$ = this.featureFlagService.batchGetStatus(this.partnerId, this.marketId, [\n SALES_OPPORTUNITIES_BILLING_PERIODS,\n UNIFIED_ORDERS_SCHEDULED_ACTIVATIONS,\n ]);\n this.areBillingPeriodsEnabled$ = this.featureFlags$.pipe(\n map((featureFlags) => featureFlags && featureFlags[SALES_OPPORTUNITIES_BILLING_PERIODS]),\n );\n\n this.editing = !!this.editable && !!this.startEditing;\n this.salesOrderConfirmationService.initialize(\n this.lineItems,\n this.orderId,\n this.opportunityId,\n this.partnerId,\n this.marketId,\n this.businessId,\n this.defaultDisplayCurrency,\n );\n this.subscriptions.push(\n this.salesOrdersService\n .getConfig(this.partnerId, this.marketId)\n .pipe(map((config) => config.salespersonOptions?.disableSellingStandaloneProducts))\n .subscribe((hideSellingStandaloneProducts) => {\n this.hideSellingStandaloneProducts = hideSellingStandaloneProducts;\n }),\n );\n this.formForLineItems = this.fb.array([]);\n\n this.subscriptions.push(\n this.uiLineItems$\n .pipe(\n map((uiLineItems) => {\n this.displayItems = uiLineItems;\n this.resetEditingItems();\n this.cdk.detectChanges();\n }),\n tap(() => this.salesOrderConfirmationService.loading$$.next(false)),\n )\n .subscribe(),\n );\n\n this.subscriptions.push(this.loading$.pipe(tap((loading) => this.loading.emit(loading))).subscribe());\n\n this.canScheduleActivations$ = this.featureFlags$.pipe(map((flags) => flags[UNIFIED_ORDERS_SCHEDULED_ACTIVATIONS]));\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.contractStartDate?.currentValue) {\n this.setDefaultBillingTermStartDate(changes.contractStartDate.currentValue);\n this.salesOrderConfirmationService.updateContractStartDate(changes.contractStartDate.currentValue);\n }\n }\n\n ngOnDestroy(): void {\n this.subscriptions.forEach((sub) => sub.unsubscribe());\n }\n\n resetEditingItems(): void {\n this.setEditingLineItems(JSON.parse(JSON.stringify(this.displayItems)));\n this.resetFormToEditingItems();\n }\n\n resetFormToEditingItems(): void {\n this.formForLineItems = this.fb.array(\n this.editingItems.map((li) => {\n const revenueControls = this.revenueControlFromLineItemRevenue(li.lineItem?.currentRevenue);\n const quantityEnabled = this.bypassQuantityRestrictions || li.isMultiActivatable;\n const nonBillable = li.lineItem?.nonBillable ?? false;\n const formGroup = this.fb.group({\n quantity: [\n { value: quantityEnabled ? li.lineItem.quantity : 1, disabled: !quantityEnabled },\n [Validators.min(1)],\n ],\n revenueComponents: this.fb.array(revenueControls),\n shouldInvoice: [!nonBillable],\n });\n return formGroup;\n }),\n );\n }\n\n revenueControlFromLineItemRevenue(revenue: Revenue): UntypedFormGroup[] {\n return (revenue?.revenueComponents || []).map((rc) =>\n this.fb.group({\n revenue: [(rc.value || 0) / 100, [Validators.required, this.validateRevenue]],\n period: [rc.period === undefined ? RevenuePeriod.ONETIME : rc.period, [Validators.required]],\n startingAt: [rc.isStartingRevenue],\n }),\n );\n }\n\n hasNoRevenue(uiLineItem: UILineItemWithEditionPricing, index: number): boolean {\n const revenueComponents = uiLineItem.lineItem?.currentRevenue?.revenueComponents;\n\n if ((revenueComponents || []).length === 0) {\n this.addRevenueRow(index);\n }\n\n return false;\n }\n\n validateRevenue = (c: UntypedFormControl): ValidationErrors | null => {\n const revenueValue = c.value;\n if (isNaN(revenueValue)) {\n return { pattern: true };\n }\n if (Number(revenueValue) < 0 && this.allowNegativeValues === false) {\n return { min: true };\n }\n return null;\n };\n\n edit(): void {\n this.editing = true;\n }\n\n cancel(): void {\n this.editing = false;\n this.resetEditingItems();\n }\n\n save(): void {\n if (!this.isFormValid()) {\n return;\n }\n\n const items = this.formatEditingItems();\n this.saving = true;\n this.salesOrderConfirmationService\n .updateLineItems(items)\n .pipe(take(1))\n .subscribe({\n next: () => {\n this.displayItems = JSON.parse(JSON.stringify(this.editingItems));\n this.resetEditingItems();\n this.saving = false;\n this.editing = false;\n this.alertService.openSuccessSnack('FRONTEND.SALES_UI.CONTENTS_UPDATED');\n this.cdk.detectChanges();\n },\n error: () => {\n this.saving = false;\n this.alertService.openErrorSnack('FRONTEND.SALES_UI.ERRORS.ERROR_UPDATING_CONTENTS');\n this.cdk.detectChanges();\n },\n });\n }\n\n formatEditingItems(): LineItem[] {\n this.writeFormValuesToEditingItems();\n return this.editingItems.map((li) => li.lineItem);\n }\n\n writeFormValuesToEditingItems(): void {\n this.editingItems.map((uiLineItem, index) => {\n const lineItemFormGroup = this.formForLineItems.controls[index] as UntypedFormGroup;\n uiLineItem.lineItem.quantity = lineItemFormGroup.controls.quantity.value;\n const revenueComponentsFormArray = lineItemFormGroup.controls?.revenueComponents as UntypedFormArray;\n const revenueComponents = revenueComponentsFormArray.controls.map((fa) => {\n const fg = fa as UntypedFormGroup;\n return new RevenueComponent({\n value: Math.round(fg.controls.revenue.value * 100),\n period: fg.controls.period.value,\n isStartingRevenue: fg.controls.startingAt.value,\n });\n });\n uiLineItem.lineItem.currentRevenue = new Revenue({ revenueComponents: revenueComponents });\n uiLineItem.lineItem.nonBillable = !lineItemFormGroup.controls?.shouldInvoice.value;\n });\n }\n\n // When using the component without a backing order, this can be used to retrieve the lineitems that are in the editor when an external\n // save button is clicked (or some other trigger)\n public getCurrentLineItems(): LineItem[] {\n return this.formatEditingItems();\n }\n\n public isFormValid(): boolean {\n const valid = this.formForLineItems.valid;\n if (!valid) {\n this.formForLineItems.markAsTouched();\n this.formForLineItems.updateValueAndValidity();\n this.editPriceComponents.map((c) => c.markAsTouched());\n }\n if (this.editingItems.length <= 0) {\n this.alertService.openErrorSnack('FRONTEND.SALES_UI.ERRORS.ERROR_MUST_HAVE_ITEMS');\n return false;\n }\n if (this.editingItems.find((item) => item.lineItem?.currentRevenue?.revenueComponents.length === 0)) {\n this.alertService.openErrorSnack('FRONTEND.SALES_UI.ERRORS.ERROR_MUST_HAVE_PRICING');\n return false;\n }\n\n return valid;\n }\n\n // After the component is initialized, if you would like to specify more line items you can use this function\n public addSpecifiedLineItems(lineItems: LineItem[]): void {\n this.salesOrderConfirmationService.addSpecifiedLineItems(lineItems);\n }\n\n onEditBillingSchedule(lineItemIndex: number, contractStart: Date, canScheduleActivations: boolean): void {\n const uiLineItem = this.editingItems[lineItemIndex];\n const revenueComponent = this.formForLineItems.controls[lineItemIndex].value?.revenueComponents[0];\n const lineItem = uiLineItem.lineItem;\n\n const dialogRef = this.dialog.open(BillingTermDialogComponent, {\n data: {\n itemId: lineItem.appKey?.appId ?? lineItem.packageId,\n name: uiLineItem.name,\n editionName: uiLineItem.editionName,\n iconUrl: uiLineItem.iconUrl,\n revenueComponent: { revenue: revenueComponent.revenue * 100, period: revenueComponent.period },\n startDate: lineItem.billingPeriod?.startDate ?? contractStart,\n endDate: lineItem.billingPeriod?.endDate,\n canAddAnotherTerm: uiLineItem.isMultiActivatable && !canScheduleActivations,\n canScheduleActivations: canScheduleActivations,\n },\n maxWidth: '90vw',\n maxHeight: '90vh',\n width: '500px',\n });\n\n dialogRef\n .afterClosed()\n .pipe(take(1))\n .subscribe((dialogOutput: BillingTermDialogOutput) => {\n if (!dialogOutput) {\n return;\n }\n\n lineItem.billingPeriod = new BillingPeriod({\n startDate: dialogOutput.startDate,\n endDate: dialogOutput.endDate,\n });\n lineItem.currentRevenue.revenueComponents[0].period = dialogOutput.billingFrequency;\n this.formForLineItems.controls[lineItemIndex].patchValue(lineItem.currentRevenue);\n\n if (dialogOutput.addAnotherTerm) {\n this.onAddBillingSchedule(lineItemIndex, contractStart, canScheduleActivations);\n }\n });\n }\n\n onAddBillingSchedule(lineItemIndex: number, contractStart: Date, canScheduleActivations: boolean): void {\n this.writeFormValuesToEditingItems();\n const deepCopiedItem = structuredClone(this.editingItems[lineItemIndex]);\n delete deepCopiedItem.lineItem.billingPeriod;\n this.editingItems.splice(lineItemIndex + 1, 0, deepCopiedItem);\n this.setEditingLineItems(this.editingItems);\n this.resetFormToEditingItems();\n this.cdk.detectChanges();\n this.onEditBillingSchedule(lineItemIndex + 1, contractStart, canScheduleActivations);\n }\n\n addRevenueRow(index: number): void {\n const components = this.editingItems[index]?.lineItem?.currentRevenue?.revenueComponents || [];\n components.push(new RevenueComponent());\n this.formForLineItems.controls[index]['controls']?.revenueComponents.push(\n this.fb.group({\n revenue: [0, [Validators.required, this.validateRevenue]],\n period: [RevenuePeriod.ONETIME, [Validators.required]],\n startingAt: [false],\n }),\n );\n this.editingItems[index].lineItem.currentRevenue.revenueComponents = components;\n }\n\n deleteRevenueRow(revenueComponent: RevenueComponent, liIndex: number, rcIndex: number): void {\n this.editingItems[liIndex].lineItem?.currentRevenue?.revenueComponents.splice(rcIndex, 1);\n const lineItemFormGroup = this.formForLineItems.controls[liIndex] as UntypedFormGroup;\n (lineItemFormGroup.controls?.revenueComponents as UntypedFormArray).removeAt(rcIndex);\n }\n\n addLineItems(): void {\n const preselectedPackages = this.editingItems\n .filter((item) => !!item.lineItem?.packageId)\n .map((item) => new Package({ packageId: item.lineItem.packageId }));\n const preselectedApps = this.editingItems\n .filter((item) => !!item.lineItem?.appKey?.appId)\n .map((item) => {\n return new App({\n key: {\n appId: item.lineItem.appKey.appId,\n editionId: item.lineItem.appKey.editionId,\n },\n parentRequirements: {\n parentDetails: {\n key: {\n appId: item.parentAppId,\n },\n name: item.parentName,\n },\n },\n appType: item.appType,\n });\n });\n const dialogRef = this.dialog.open(SalesOrderLineItemSelectorDialogComponent, {\n data: {\n marketId: this.marketId,\n preselectedApps: this.allowDuplicateItems ? [] : preselectedApps,\n preselectedPackages: this.allowDuplicateItems ? [] : preselectedPackages,\n hideSellingStandaloneProducts: this.hideSellingStandaloneProducts,\n hidePackages: this.hidePackages,\n hideOwnerName: true,\n },\n width: '1000px',\n height: '900px',\n maxWidth: '95vw',\n minHeight: '420px',\n maxHeight: '85vh',\n });\n dialogRef\n .afterClosed()\n .pipe(take(1))\n .subscribe((result) => {\n if (result) {\n this.writeFormValuesToEditingItems();\n let updatedItems = this.editingItems;\n let selectedPackages = result.packages;\n let selectedApps = result.apps;\n\n if (!this.allowDuplicateItems) {\n updatedItems = this.deselectItems(\n updatedItems,\n preselectedPackages,\n preselectedApps,\n selectedPackages,\n selectedApps,\n );\n if (!this.hidePackages) {\n selectedPackages = this.dedupePackages(updatedItems, selectedPackages);\n }\n selectedApps = this.dedupeApps(updatedItems, selectedApps);\n }\n\n if (!this.hidePackages) {\n updatedItems = updatedItems.concat(\n selectedPackages.map((pkg) => this.salesOrderConfirmationService.packageToUILineItem(pkg)),\n );\n }\n\n updatedItems = updatedItems.concat(\n selectedApps.map((app) => this.salesOrderConfirmationService.appWithPossibleRevenueToUILineItem(app)),\n );\n\n // Remove invalid revenue values from revenue components aka line items with contact sales (value == -1)\n updatedItems = updatedItems.map((item) => {\n item.lineItem.currentRevenue.revenueComponents = item.lineItem?.currentRevenue?.revenueComponents.filter(\n (revenue) => revenue.value >= 0,\n );\n return item;\n });\n\n // Update items in UI\n this.setEditingLineItems(updatedItems);\n\n this.resetFormToEditingItems();\n this.cdk.detectChanges();\n }\n });\n }\n\n deleteLineItem(index: number): void {\n this.editingItems.splice(index, 1);\n this.formForLineItems.removeAt(index);\n }\n\n // called by parent components for print-friendly display\n public openDropdown(): void {\n this.openExpansionPanel$$.next(true);\n }\n\n private setEditingLineItems(uiLineItems: UILineItemWithEditionPricing[]): void {\n // Sort the revenue components to ensure one time always appears last, initially\n uiLineItems?.forEach?.((uilineItem) => {\n uilineItem.lineItem?.currentRevenue?.revenueComponents?.sort((a: RevenueComponent, b: RevenueComponent) => {\n if (a.period === RevenuePeriod.ONETIME || !a.period) {\n return 1;\n }\n if (b.period === RevenuePeriod.ONETIME || !b.period) {\n return -1;\n }\n return 0;\n });\n });\n this.editingItems = uiLineItems;\n }\n\n private setDefaultBillingTermStartDate(startDate: Date): void {\n if (!this.editingItems) return;\n\n this.writeFormValuesToEditingItems();\n\n const updatedItems = this.editingItems.map((item) => {\n if (item.lineItem.billingPeriod) {\n item.lineItem.billingPeriod.startDate = startDate;\n }\n return { ...item };\n });\n\n this.displayItems = updatedItems;\n this.setEditingLineItems(updatedItems);\n this.resetFormToEditingItems();\n }\n\n private deselectItems(\n updatedItems: UILineItemWithEditionPricing[],\n preselectedPackages: Package[],\n preselectedApps: App[],\n selectedPackages: Package[],\n selectedApps: App[],\n ): UILineItemWithEditionPricing[] {\n // Find packages that have been deselected in the selector\n const deselectedPackageIds = [];\n if (!this.hidePackages) {\n preselectedPackages.map((pkg) => {\n const stillSelected = selectedPackages.some((selected) => selected.packageId === pkg.packageId);\n if (!stillSelected) {\n deselectedPackageIds.push(pkg.packageId);\n }\n });\n updatedItems = updatedItems.filter(\n (item) => !item.lineItem.packageId || !deselectedPackageIds.includes(item.lineItem.packageId),\n );\n }\n // Find apps that have been deselected in the selector\n const deselectedAppIds = [];\n preselectedApps.map((app) => {\n const stillSelected = selectedApps.some((selected) => selected.key.appId === app.key.appId);\n if (!stillSelected) {\n deselectedAppIds.push(app.key.appId);\n }\n });\n\n // Remove packages and apps that have been deselected in the selector\n updatedItems = updatedItems.filter(\n (item) =>\n (!!item.lineItem.packageId && !deselectedPackageIds.includes(item.lineItem.packageId)) ||\n (!!item.lineItem.appKey?.appId && !deselectedAppIds.includes(item.lineItem.appKey.appId)),\n );\n\n return updatedItems;\n }\n\n private dedupeApps(updatedItems: UILineItemWithEditionPricing[], addedApps: App[]): App[] {\n // Add only newly added apps so that preselected apps that have not been deselected do not have quantity and revenue overwritten\n return addedApps.reduce((added, app) => {\n if (!updatedItems.some((item) => item.lineItem.appKey?.appId === app.key.appId)) {\n added.push(app);\n }\n return added;\n }, []);\n }\n\n private dedupePackages(updatedItems: UILineItemWithEditionPricing[], addedPackages: Package[]): Package[] {\n // Add only newly added packages so that preselected packages that remain do not have quantity and revenue overwritten\n return addedPackages.reduce((added, pkg) => {\n if (this.allowDuplicateItems || !updatedItems.some((item) => item.lineItem.packageId === pkg.packageId)) {\n added.push(pkg);\n }\n return added;\n }, []);\n }\n}\n\n@Pipe({\n name: 'revenuePeriodToFrequency',\n standalone: false,\n})\nexport class RevenuePeriodToFrequencyPipe implements PipeTransform {\n transform(period: RevenuePeriod): string {\n switch (period) {\n case RevenuePeriod.MONTHLY:\n return 'per month';\n case RevenuePeriod.YEARLY:\n return 'per year';\n default:\n return '';\n }\n }\n}\n", "\n \n \n {{ title }}\n \n \n edit\n \n \n \n \n \n\n \n \n \n \n \n \n \n\n\n\n
\n \n \n
\n @if ((areBillingPeriodsEnabled$ | async) === false || !enableEditBillingSchedule) {\n 0\" class=\"delete-line-item\" (click)=\"deleteLineItem(liIndex)\">\n clear\n \n }\n
\n
\n \n \n {{ 'FRONTEND.SALES_UI.QUANTITY' | translate }} *\n \n \n {{ 'FRONTEND.SALES_UI.QUANTITY_ERROR' | translate }}\n \n \n @if ((areBillingPeriodsEnabled$ | async) === true && enableEditBillingSchedule) {\n \n \n @if (contractStart$ | async; as contractStart) {\n @if ({ value: canScheduleActivations$ | async }; as canScheduleActivations) {\n \n {{ 'FRONTEND.SALES_UI.SALES_OPPORTUNITIES.EDIT_BILLING_TERMS' | translate }}\n \n \n {{ 'FRONTEND.SALES_UI.SALES_OPPORTUNITIES.ADD_BILLING_TERMS' | translate }}\n \n }\n }\n \n \n }\n
\n
\n \n \n 1\"\n [form]=\"formForLineItems.controls[liIndex]['controls']?.revenueComponents.controls[rcIndex]\"\n (delete)=\"deleteRevenueRow($event, liIndex, rcIndex)\"\n />\n\n \n \n \n \n
\n
\n \n {{ 'FRONTEND.SALES_UI.PRICING.REVENUE_REQUIRED' | translate }}\n \n
\n
\n add\n \n {{ 'FRONTEND.SALES_UI.PRICING.ADD_ROW' | translate }}\n \n
\n
\n
\n
\n
\n \n {{ 'FRONTEND.SALES_UI.BILL_FOR_RECURRING_CHARGES' | translate }}\n \n
\n \n
\n
\n
0; else noLineItems\">\n add\n \n {{ 'FRONTEND.SALES_UI.ADD_ITEMS' | translate }}\n \n
\n \n \n \n
\n
\n
\n \n \n \n {{ 'FRONTEND.SALES_UI.SAVE' | translate }}\n \n \n \n
\n \n
\n
\n
\n
\n", "import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { ItemSelectorModule } from '@galaxy/inventory-ui';\nimport { LexiconModule } from '@galaxy/lexicon';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { BillingUiModule } from '@vendasta/billing-ui';\nimport { GalaxyBadgeModule } from '@vendasta/galaxy/badge';\nimport { VaPricingModule } from '@vendasta/store';\nimport { VaBadgeModule, VaIconModule } from '@vendasta/uikit';\nimport { Filter2TableModule } from '@vendasta/va-filter2-table';\nimport baseTranslation from '../../assets/i18n/en_devel.json';\nimport { WEBLATE_COMPONENT_NAME } from '../../shared/constants';\nimport { AppSelectorComponent } from './app-selector/app-selector.component';\nimport { AppNameCellComponent } from './app-selector/cells/app-name-cell.component';\nimport { AppRevenueCellComponent } from './app-selector/cells/app-revenue-cell.component';\nimport { AppRevenueHeaderCellComponent } from './app-selector/cells/app-revenue-header-cell.component';\nimport { AppSelectorCustomComponentDirective } from './app-selector/cells/app-selector-custom.component';\nimport { AppWholesaleHeaderCellComponent } from './app-selector/cells/app-wholesale-header-cell.component';\nimport { ItemSelectorAdapterComponent } from './item-selector-adapter/item-selector-adapter.component';\nimport { ItemSelectorAdapterService } from './item-selector-adapter/item-selector-adapter.service';\nimport { SalesOrderLineItemSelectorComponent } from './sales-order-line-item-selector.component';\n\n@NgModule({\n imports: [\n CommonModule,\n Filter2TableModule,\n MatTabsModule,\n VaIconModule,\n VaPricingModule,\n VaBadgeModule,\n TranslateModule,\n LexiconModule.forChild({\n componentName: WEBLATE_COMPONENT_NAME,\n baseTranslation: baseTranslation,\n }),\n MatSelectModule,\n BillingUiModule,\n GalaxyBadgeModule,\n ItemSelectorModule,\n ],\n declarations: [\n SalesOrderLineItemSelectorComponent,\n AppSelectorComponent,\n ItemSelectorAdapterComponent,\n AppNameCellComponent,\n AppRevenueCellComponent,\n AppRevenueHeaderCellComponent,\n AppWholesaleHeaderCellComponent,\n AppSelectorCustomComponentDirective,\n ],\n exports: [SalesOrderLineItemSelectorComponent],\n providers: [ItemSelectorAdapterService],\n})\nexport class SalesOrderLineItemSelectorModule {}\n", "import { CommonModule, CurrencyPipe } 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 { MatCardModule } from '@angular/material/card';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatGridListModule } from '@angular/material/grid-list';\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 { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { LexiconModule } from '@galaxy/lexicon';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { CoreSharedModule } from '@vendasta/shared';\nimport { VaOrderFormModule, VaOrderSummaryModule } from '@vendasta/store';\nimport { VaIconModule } from '@vendasta/uikit';\nimport baseTranslation from '../../assets/i18n/en_devel.json';\nimport { WEBLATE_COMPONENT_NAME } from '../../shared/constants';\nimport { SalesOpportunityStoreService } from '../sales-opportunity-store.service';\nimport { SalesOrderLineItemSelectorModule } from '../sales-order-line-item-selector/sales-order-line-item-selector.module';\nimport { SalesOrderStoreService } from '../sales-order-store.service';\nimport { SalesOrderConfirmationComponent, RevenuePeriodToFrequencyPipe } from './sales-order-confirmation.component';\nimport { SalesOrderEditPriceComponent } from './sales-order-edit-price/sales-order-edit-price.component';\nimport { SalesOrderLineItemSelectorDialogComponent } from './sales-order-line-item-selector-dialog/sales-order-line-item-selector-dialog.component';\nimport { GalaxyInputModule } from '@vendasta/galaxy/input';\n\n@NgModule({\n declarations: [\n SalesOrderConfirmationComponent,\n SalesOrderEditPriceComponent,\n SalesOrderLineItemSelectorDialogComponent,\n RevenuePeriodToFrequencyPipe,\n ],\n exports: [SalesOrderConfirmationComponent, SalesOrderLineItemSelectorDialogComponent],\n imports: [\n CommonModule,\n VaOrderFormModule,\n VaOrderSummaryModule,\n MatButtonModule,\n MatListModule,\n VaIconModule,\n CoreSharedModule,\n TranslateModule,\n LexiconModule.forChild({\n componentName: WEBLATE_COMPONENT_NAME,\n baseTranslation: baseTranslation,\n }),\n FormsModule,\n MatTooltipModule,\n MatInputModule,\n MatCheckboxModule,\n MatSelectModule,\n ReactiveFormsModule,\n MatIconModule,\n MatProgressSpinnerModule,\n MatDialogModule,\n SalesOrderLineItemSelectorModule,\n MatCardModule,\n MatGridListModule,\n MatAutocompleteModule,\n MatMenuModule,\n GalaxyInputModule,\n ],\n providers: [CurrencyPipe, SalesOrderStoreService, SalesOpportunityStoreService],\n})\nexport class SalesOrderConfirmationModule {}\n", "import { AgreementInterface, Order, UserInterface as SalesUser } from '@vendasta/sales-orders';\n\nexport class OrderDetailAgreement {\n name: string;\n term: string;\n agreed: boolean;\n\n static agreementFromOrderAgreementWithUser(\n agreement: AgreementInterface,\n usersMap: { [key: string]: SalesUser },\n ): OrderDetailAgreement {\n const names = [];\n let name = '';\n if (agreement.userId in usersMap) {\n const user = usersMap[agreement.userId];\n if (user.firstName) {\n names.push(user.firstName);\n }\n if (user.lastName) {\n names.push(user.lastName);\n }\n name = names.join(' ') || user.email;\n }\n return new OrderDetailAgreement(name, agreement.term, agreement.agreed);\n }\n\n public static createFromOrderWithUsers(\n salesOrder: Order,\n usersMap: { [key: string]: SalesUser },\n ): OrderDetailAgreement[] {\n if (!salesOrder) {\n return [];\n }\n if (!usersMap) {\n usersMap = {};\n }\n return (salesOrder.agreements || []).map((a) => {\n return OrderDetailAgreement.agreementFromOrderAgreementWithUser(a, usersMap);\n });\n }\n\n constructor(name: string, term: string, agreed: boolean) {\n this.name = name;\n this.term = term;\n this.agreed = agreed;\n }\n}\n", "import {\n Order,\n DurationPeriod,\n Status,\n UserInterface as SalesUser,\n StatusHistoryItemInterface,\n getMetadataFromStatusHistoryItem,\n HistoryMetadata,\n Source,\n} from '@vendasta/sales-orders';\n\nexport const DurationMapping = new Map([\n [DurationPeriod.DAY, 'FRONTEND.SALES_UI.DAYS_PLURAL_OR_SINGULAR'],\n [DurationPeriod.WEEK, 'FRONTEND.SALES_UI.WEEKS_PLURAL_OR_SINGULAR'],\n [DurationPeriod.MONTH, 'FRONTEND.SALES_UI.MONTHS_PLURAL_OR_SINGULAR'],\n [DurationPeriod.YEAR, 'FRONTEND.SALES_UI.YEARS_PLURAL_OR_SINGULAR'],\n]);\n\nexport interface User {\n userId: string;\n fullName?: string;\n email?: string;\n}\n\n/**\n *\n * @param userId: must be non empty string\n * @param email: must be non empty string\n * @throws Error if required arguments are not valid\n */\nexport function userWithEmail(userId: string, email: string): User {\n if (!userId) {\n throw new Error('userId is required');\n }\n if (!email) {\n throw new Error('email is required');\n }\n return {\n userId: userId,\n email: email,\n };\n}\n\n/**\n *\n * @param userId: must be non empty string\n * @param fullName: must be non empty string\n * @throws Error if required arguments are not valid\n */\nexport function userWithName(userId: string, fullName: string): User {\n if (!userId) {\n throw new Error('userId is required');\n }\n if (!fullName) {\n throw new Error('fullName is required');\n }\n return {\n userId: userId,\n fullName: fullName,\n };\n}\n\nexport class OrderDetailField {\n status: Status;\n date: Date;\n metadata: HistoryMetadata;\n user: SalesUser;\n userInfo: string;\n childFields: OrderDetailFieldChild[];\n\n private static buildFieldsFromStatusHistory(\n historyItems: StatusHistoryItemInterface[],\n usersMap: { [key: string]: SalesUser },\n ): OrderDetailField[] {\n const fields: OrderDetailField[] = [];\n if (historyItems) {\n historyItems.forEach((historyItem, index) => {\n // If it's the first item, or the current status is different than the previous one add to the toplevel array\n if (index === 0 || historyItems[index - 1].status !== historyItem.status) {\n const field = this.buildFieldFromStatusHistory(historyItem, usersMap, false);\n fields.push(field);\n } else {\n // The statuses are the same so add to the child fields of the last item\n const field = this.buildFieldFromStatusHistory(historyItem, usersMap, true);\n fields[fields.length - 1].childFields.push(field);\n }\n });\n }\n return fields;\n }\n\n private static buildFieldFromStatusHistory(\n historyItem: StatusHistoryItemInterface,\n usersMap: { [key: string]: SalesUser },\n isChild: boolean,\n ): OrderDetailField {\n const metadata = getMetadataFromStatusHistoryItem(historyItem);\n let userId = historyItem.userId;\n\n // setup status specific metadata labels\n if (isChild && !!metadata) {\n userId = metadata.userId;\n }\n\n let user: SalesUser = { email: historyItem.email };\n if (userId in usersMap) {\n user = usersMap[userId];\n }\n\n const userInfo = this.getNormalizedUserInfo(historyItem);\n return new OrderDetailField(historyItem.status, historyItem.created, metadata, user, userInfo);\n }\n\n private static getNormalizedUserInfo(item: StatusHistoryItemInterface): string {\n if (item.name) {\n return item.name;\n }\n\n switch (item.source) {\n case Source.SOURCE_SYSTEM:\n return 'System';\n case Source.SOURCE_SYSTEM_ADMIN:\n return 'System Admin';\n default:\n return '';\n }\n }\n\n public static createFromOrderWithUsers(\n salesOrder: Order,\n usersMap: { [key: string]: SalesUser },\n ): OrderDetailField[] {\n const additionalFields = this.buildFieldsFromStatusHistory(salesOrder.statusHistory, usersMap);\n return additionalFields;\n }\n\n constructor(status: Status, date: Date, metadata: HistoryMetadata, user: SalesUser, userInfo: string) {\n this.status = status;\n this.date = date;\n this.metadata = metadata;\n this.user = user;\n this.userInfo = userInfo;\n this.childFields = [];\n }\n}\n\nexport class OrderDetailFieldChild extends OrderDetailField {}\n", "import { DurationPeriod } from '@vendasta/sales-orders';\n\nexport interface ContractDurationTranslationKey {\n key: string;\n value: number;\n}\n\nexport const ContractDurationKeysToEnum: ContractDurationTranslationKey[] = [\n { key: 'FRONTEND.SALES_UI.DAYS_PLURAL_OR_SINGULAR_LABEL', value: DurationPeriod.DAY },\n { key: 'FRONTEND.SALES_UI.WEEKS_PLURAL_OR_SINGULAR_LABEL', value: DurationPeriod.WEEK },\n { key: 'FRONTEND.SALES_UI.MONTHS_PLURAL_OR_SINGULAR_LABEL', value: DurationPeriod.MONTH },\n { key: 'FRONTEND.SALES_UI.YEARS_PLURAL_OR_SINGULAR_LABEL', value: DurationPeriod.YEAR },\n];\n\nexport const ContractDurationEnumToKeys: string[] = [];\nContractDurationEnumToKeys['DAY'] = 'FRONTEND.SALES_UI.DAYS_PLURAL_OR_SINGULAR_LABEL';\nContractDurationEnumToKeys['WEEK'] = 'FRONTEND.SALES_UI.WEEKS_PLURAL_OR_SINGULAR_LABEL';\nContractDurationEnumToKeys['MONTH'] = 'FRONTEND.SALES_UI.MONTHS_PLURAL_OR_SINGULAR_LABEL';\nContractDurationEnumToKeys['YEAR'] = 'FRONTEND.SALES_UI.YEARS_PLURAL_OR_SINGULAR_LABEL';\n", "import { Injectable } from '@angular/core';\nimport { Observable, of } from 'rxjs';\nimport { switchMap } from 'rxjs/operators';\nimport { SalesOrdersService } from '@vendasta/sales-orders';\nimport { Option } from '@vendasta/forms';\n\nexport interface UIOptions {\n tags: Option[];\n}\n\nexport interface TagsList {\n tags: string[];\n}\n\n@Injectable()\nexport class SalesOrderTagsService {\n private businessId: string;\n private orderId: string;\n\n tagOptions$: Observable;\n\n constructor(private salesOrderService: SalesOrdersService) {}\n\n initialize(businessId: string, orderId: string, partnerId: string, marketId: string): void {\n this.businessId = businessId;\n this.orderId = orderId;\n\n this.tagOptions$ = this.salesOrderService\n .listTags(partnerId, {\n marketIds: [marketId],\n })\n .pipe(\n switchMap(({ tags }) =>\n of({\n tags: (tags || []).map((tag) => {\n return {\n name: tag,\n value: tag,\n } as Option;\n }),\n }),\n ),\n );\n }\n\n updateTags(tags: string[]): Observable {\n return this.salesOrderService.updateTags(this.orderId, this.businessId, tags).pipe(\n switchMap((order) => {\n return of({\n tags: order.tags || [],\n });\n }),\n );\n }\n}\n", "import { ChangeDetectorRef, Component, Input, OnInit, ViewChild } from '@angular/core';\nimport { GlxyInputTagsComponent } from '@vendasta/forms';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { Observable, of } from 'rxjs';\nimport { catchError, finalize, take, tap } from 'rxjs/operators';\nimport { SalesOrderTagsService, UIOptions } from './sales-order-details-tags.service';\n\n@Component({\n selector: 'sales-ui-sales-order-details-tags',\n templateUrl: 'sales-order-details-tags.component.html',\n styleUrls: ['sales-order-details-tags.component.scss', '../sales-order-details-card.component.scss'],\n providers: [SalesOrderTagsService],\n standalone: false,\n})\nexport class SalesOrderDetailsTagsComponent implements OnInit {\n maxTags = 15;\n private vaInputTags: GlxyInputTagsComponent;\n\n @ViewChild(GlxyInputTagsComponent) set content(content: GlxyInputTagsComponent) {\n if (content) {\n this.vaInputTags = content;\n }\n }\n\n @Input() tags?: string[];\n @Input() orderId: string;\n @Input() businessId: string;\n @Input() partnerId: string;\n @Input() marketId: string;\n @Input() editable = true;\n\n isEditing: boolean;\n editingTags: string[];\n isSubmittingTags = false;\n options$: Observable;\n\n constructor(\n private orderTagsService: SalesOrderTagsService,\n private readonly cdr: ChangeDetectorRef,\n private readonly snackbarService: SnackbarService,\n ) {}\n\n ngOnInit(): void {\n this.orderTagsService.initialize(this.businessId, this.orderId, this.partnerId, this.marketId);\n this.options$ = this.orderTagsService.tagOptions$;\n }\n\n public editTags(): void {\n this.editingTags = this.tags;\n this.isEditing = true;\n }\n\n public sendTags(): void {\n if (this.vaInputTags.overMaxFields) {\n this.snackbarService.openErrorSnack('FRONTEND.SALES_UI.MAX_TAGS', {\n interpolateTranslateParams: { maxTags: this.maxTags.toString() },\n });\n return;\n }\n const newTags = this.vaInputTags.value;\n\n if (this.tags === newTags) {\n this.isEditing = false;\n return;\n }\n\n this.isSubmittingTags = true;\n\n this.orderTagsService\n .updateTags(newTags)\n .pipe(\n take(1),\n tap((t) => {\n this.isEditing = false;\n this.tags = t.tags || [];\n }),\n catchError(() => {\n this.editingTags = newTags;\n this.snackbarService.openErrorSnack('FRONTEND.SALES_UI.TAGS_ERROR');\n return of(null);\n }),\n finalize(() => {\n this.isSubmittingTags = false;\n this.cdr.detectChanges(); // update state of isEditing and isSubmittingTags\n }),\n )\n .subscribe();\n }\n}\n", "
\n
{{ 'FRONTEND.SALES_UI.TAGS' | translate }}
\n
\n
\n \n
0; else noTags\" class=\"order-details__tag\">\n
\n \n {{ tag }}\n \n
\n
\n \n
{{ 'FRONTEND.SALES_UI.NO_TAGS' | translate }}
\n
\n \n
\n
\n\n \n \n \n \n \n \n \n \n
\n \n
\n
\n
\n
\n
\n", "import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Input,\n OnChanges,\n OnInit,\n SimpleChanges,\n} from '@angular/core';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { Order, SalesOrdersService } from '@vendasta/sales-orders';\nimport moment from 'moment';\nimport { take } from 'rxjs/operators';\n\n@Component({\n selector: 'sales-ui-sales-order-details-requested-activation',\n templateUrl: './sales-order-details-requested-activation.component.html',\n styleUrls: [\n './sales-order-details-requested-activation.component.scss',\n '../sales-order-details-card.component.scss',\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class SalesOrderDetailsRequestedActivationComponent implements OnInit, OnChanges {\n @Input() order: Order;\n @Input() editable = false;\n\n isEditing = false;\n minDate = new Date();\n requestedActivation: Date;\n updatingRequestedActivation = false;\n\n constructor(\n private readonly salesOrdersService: SalesOrdersService,\n private readonly alertService: SnackbarService,\n private cdk: ChangeDetectorRef,\n ) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n this.editable = changes.editable ? changes.editable.currentValue : this.editable;\n this.requestedActivation = changes.requestedActivation\n ? changes.requestedActivation.currentValue\n : this.requestedActivation;\n }\n\n ngOnInit(): void {\n this.requestedActivation = this.order.requestedActivation;\n }\n\n formatDate(date: Date): string {\n return moment(date).format('lll');\n }\n\n edit(): void {\n this.isEditing = true;\n }\n\n updateRequestedActivation(): void {\n this.isEditing = true;\n this.updatingRequestedActivation = true;\n\n if (this.requestedActivation === undefined || this.requestedActivation === null) {\n this.alertService.openErrorSnack('SALES_ORDERS.ERRORS.BAD_DATE_FORMAT');\n this.requestedActivation = this.order.requestedActivation;\n this.isEditing = false;\n this.updatingRequestedActivation = false;\n this.cdk.detectChanges();\n return;\n }\n\n // ensure the type is a Date so we can properly set hours on it\n const requestedActivation = new Date(this.requestedActivation);\n requestedActivation.setHours(7);\n this.salesOrdersService\n .updateRequestedActivation(this.order.orderId, this.order.businessId, requestedActivation)\n .pipe(take(1))\n .subscribe(\n () => {\n this.isEditing = false;\n this.updatingRequestedActivation = false;\n this.cdk.detectChanges();\n },\n () => {\n this.isEditing = false;\n this.updatingRequestedActivation = false;\n this.requestedActivation = this.order.requestedActivation;\n this.cdk.detectChanges();\n this.alertService.openErrorSnack('FRONTEND.SALES_UI.CONTRACT_START_ERROR');\n },\n );\n }\n}\n", "
\n
\n {{ 'FRONTEND.SALES_UI.CONTRACT_START' | translate }}\n
\n
\n
\n \n
\n \n {{ 'FRONTEND.SALES_UI.CONTRACT_START_FORMAT' | translate }}\n \n \n \n \n {{ 'FRONTEND.SALES_UI.CONTRACT_START_HINT' | translate }}\n \n \n
\n\n \n
\n
\n
\n
\n\n {{ formatDate(requestedActivation) }}\n \n\n", "import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Input,\n OnChanges,\n OnInit,\n SimpleChanges,\n} from '@angular/core';\nimport { UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';\nimport { TranslateService } from '@ngx-translate/core';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { DurationInterface, Order, SalesOrdersService } from '@vendasta/sales-orders';\nimport { Observable } from 'rxjs';\nimport { take } from 'rxjs/operators';\nimport { DurationMapping } from '../order-detail-field';\nimport { ContractDurationKeysToEnum, ContractDurationTranslationKey } from './sales-contract-duration';\n\nconst MIN_CONTRACT_DURATION_REGEX = '^[1-9][0-9]*?$'; // regex for checking minimum valid contract duration (1 year or month)\n\n@Component({\n selector: 'sales-ui-sales-order-details-contract-duration',\n templateUrl: './sales-order-details-contract-duration.component.html',\n styleUrls: ['./sales-order-details-contract-duration.component.scss', '../sales-order-details-card.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class SalesOrderDetailsContractDurationComponent implements OnInit, OnChanges {\n @Input() order: Order;\n @Input() editable = false;\n\n isEditing = false;\n contractDuration: DurationInterface;\n contractDurationForm: UntypedFormGroup;\n contractPeriods: ContractDurationTranslationKey[] = ContractDurationKeysToEnum;\n updating = false;\n\n contractDurationText$: Observable;\n\n constructor(\n private readonly salesOrdersService: SalesOrdersService,\n private readonly alertService: SnackbarService,\n private readonly translateService: TranslateService,\n private cdk: ChangeDetectorRef,\n ) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n this.editable = changes.editable ? changes.editable.currentValue : this.editable;\n this.contractDuration = changes.contractDuration ? changes.contractDuration.currentValue : this.contractDuration;\n this.contractDuration = this.order.contractDuration || {};\n }\n\n ngOnInit(): void {\n this.contractDuration = this.order.contractDuration || {};\n this.contractDurationForm = new UntypedFormGroup({\n value: new UntypedFormControl(this.contractDuration && this.contractDuration.value, [\n Validators.pattern(MIN_CONTRACT_DURATION_REGEX),\n ]),\n duration: new UntypedFormControl(this.contractDuration && this.contractDuration.duration, [Validators.required]),\n });\n\n this.convertDuration();\n }\n\n convertDuration(): void {\n this.contractDuration = this.contractDuration || {};\n\n if (!this.contractDuration.value) {\n this.contractDurationText$ = this.translateService.stream('FRONTEND.SALES_UI.NO_CONTRACT_LENGTH');\n } else {\n this.contractDurationText$ = this.translateService.stream(DurationMapping.get(this.contractDuration.duration), {\n duration: this.contractDuration.value.toString(),\n });\n }\n }\n\n invalidDurationValue(): boolean {\n this.contractDurationForm.markAsTouched();\n return this.contractDurationForm.controls.value.invalid && this.contractDurationForm.controls.value.dirty;\n }\n\n invalidDurationPeriod(): boolean {\n this.contractDurationForm.controls.duration.markAsTouched();\n return this.contractDurationForm.controls.duration.invalid;\n }\n\n edit(): void {\n this.isEditing = true;\n }\n\n updateContractDuration(): void {\n if (this.invalidDurationValue()) {\n return;\n }\n\n if (this.invalidDurationPeriod()) {\n return;\n }\n\n // if field is empty and user hits send, reset length\n if (this.contractDuration && !this.contractDuration.value) {\n this.contractDuration = null;\n }\n\n this.isEditing = true;\n this.updating = true;\n this.salesOrdersService\n .updateContractDuration(this.order.orderId, this.order.businessId, this.contractDuration)\n .pipe(take(1))\n .subscribe(\n () => {\n this.isEditing = false;\n this.updating = false;\n this.convertDuration();\n this.cdk.detectChanges();\n },\n () => {\n this.isEditing = false;\n this.updating = false;\n this.alertService.openErrorSnack('FRONTEND.SALES_UI.CONTRACT_LENGTH_ERROR');\n this.convertDuration();\n this.cdk.detectChanges();\n },\n );\n }\n}\n", "
\n
\n {{ 'FRONTEND.SALES_UI.CONTRACT_LENGTH' | translate }}\n
\n
\n
\n \n
\n
\n
\n \n {{ 'FRONTEND.SALES_UI.LENGTH' | translate }}\n \n \n
\n
\n \n {{ 'FRONTEND.SALES_UI.PERIOD' | translate }}\n \n \n {{ period.key | translate }}\n \n \n \n
\n
\n\n \n {{ 'FRONTEND.SALES_UI.DURATION_WARNING' | translate }}\n \n\n \n {{ 'FRONTEND.SALES_UI.NUMBER_HIGHER_THAN' | translate: { minNumber: 0 } }}\n \n
\n\n \n
\n
\n
\n
\n\n {{ contractDurationText$ | async }}\n \n\n", "import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Input,\n OnChanges,\n OnInit,\n SimpleChanges,\n} from '@angular/core';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { Order, SalesOrdersService } from '@vendasta/sales-orders';\nimport { take } from 'rxjs/operators';\n\n@Component({\n selector: 'sales-ui-sales-order-details-notes',\n templateUrl: './sales-order-details-notes.component.html',\n styleUrls: ['./sales-order-details-notes.component.scss', '../sales-order-details-card.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class SalesOrderDetailsNotesComponent implements OnInit, OnChanges {\n @Input() order: Order;\n @Input() editable = true;\n\n isEditing = false;\n notes: string;\n updatingNotes = false;\n\n constructor(\n private readonly salesOrdersService: SalesOrdersService,\n private readonly alertService: SnackbarService,\n private cdk: ChangeDetectorRef,\n ) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n this.notes = changes.notes ? changes.notes.currentValue : this.notes;\n }\n\n ngOnInit(): void {\n this.notes = this.order.notes;\n }\n\n edit(): void {\n this.isEditing = true;\n }\n\n updateNotes(): void {\n this.isEditing = true;\n this.updatingNotes = true;\n this.salesOrdersService\n .updateNotes(this.order.orderId, this.order.businessId, this.notes)\n .pipe(take(1))\n .subscribe(\n () => {\n this.isEditing = false;\n this.updatingNotes = false;\n this.cdk.detectChanges();\n },\n () => {\n this.isEditing = false;\n this.updatingNotes = false;\n this.notes = this.order.notes;\n this.cdk.detectChanges();\n this.alertService.openErrorSnack('FRONTEND.SALES_UI.NOTES_ERROR');\n },\n );\n }\n}\n", "
\n
{{ 'FRONTEND.SALES_UI.NOTES' | translate }}
\n
\n
\n \n \n \n {{ 'FRONTEND.SALES_UI.NOTES_HINT' | translate }}\n \n \n \n
\n
\n
\n\n
{{ notes }}
\n \n
\n\n", "import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Input,\n OnChanges,\n OnInit,\n SimpleChanges,\n} from '@angular/core';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { Order, SalesOrdersService } from '@vendasta/sales-orders';\nimport { take } from 'rxjs/operators';\n\n@Component({\n selector: 'sales-ui-sales-order-details-customer-notes',\n templateUrl: './sales-order-details-customer-notes.component.html',\n styleUrls: ['./sales-order-details-customer-notes.component.scss', '../sales-order-details-card.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class SalesOrderDetailsCustomerNotesComponent implements OnInit, OnChanges {\n @Input() order: Order;\n @Input() isCustomerDetails: boolean;\n @Input() editable = true;\n\n isEditing = false;\n customerNotes: string;\n updatingNotes = false;\n\n constructor(\n private readonly salesOrdersService: SalesOrdersService,\n private readonly alertService: SnackbarService,\n private cdk: ChangeDetectorRef,\n ) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n this.customerNotes = changes.customerNotes ? changes.customerNotes.currentValue : this.customerNotes;\n }\n\n ngOnInit(): void {\n this.customerNotes = this.order.customerNotes;\n }\n\n edit(): void {\n this.isEditing = true;\n }\n\n updateCustomerNotes(): void {\n this.isEditing = true;\n this.updatingNotes = true;\n this.salesOrdersService\n .updateCustomerNotes(this.order.orderId, this.order.businessId, this.customerNotes)\n .pipe(take(1))\n .subscribe(\n () => {\n this.isEditing = false;\n this.updatingNotes = false;\n this.cdk.detectChanges();\n },\n () => {\n this.isEditing = false;\n this.updatingNotes = false;\n this.customerNotes = this.order.customerNotes;\n this.cdk.detectChanges();\n this.alertService.openErrorSnack('FRONTEND.SALES_UI.CUSTOMER_NOTES_ERROR');\n },\n );\n }\n}\n", "
\n
\n {{ 'FRONTEND.SALES_UI.CUSTOMER_NOTES' | translate }}\n
\n
\n
\n \n \n \n \n {{ 'FRONTEND.SALES_UI.CUSTOMER_NOTES_HINT' | translate }}\n \n \n \n \n
\n
\n
\n\n
{{ customerNotes }}
\n \n
\n\n", "import { DatePipe } from '@angular/common';\nimport { Component, Input, OnInit, SimpleChanges, ViewChildren, OnChanges } from '@angular/core';\nimport { MatAccordion } from '@angular/material/expansion';\nimport { TranslateService } from '@ngx-translate/core';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { FileInfo, FileUploadError, FileUploadStatus } from '@vendasta/galaxy/uploader';\nimport { IAMService, User } from '@vendasta/iam';\nimport {\n Attachment,\n CustomerApprovalEventBounced,\n CustomerApprovalEventClicked,\n CustomerApprovalEventDeferred,\n CustomerApprovalEventDelivered,\n CustomerApprovalEventDropped,\n CustomerApprovalEventOpened,\n CustomerApprovalEventProcessing,\n CustomerApprovalEventSending,\n CustomerApprovalEventSpamReport,\n CustomerApprovalEventUnsubscribed,\n CustomerApprovalEventUpdatedAnswers,\n CustomerNotesMetadata,\n DeclineCancellationEvent,\n DeclinedOrderMetadata,\n HistoryMetadata,\n NotesMetadata,\n Order,\n Origin,\n RequestCancellationEvent,\n RequestCancellationMetadata,\n SalesOrdersService,\n UserInterface as SalesUser,\n Status,\n UpdateContractDurationEvent,\n UpdateContractDurationMetadata,\n UpdatedCustomerNotesEvent,\n UpdateEnforceContractTermEvent,\n UpdatedDraftEvent,\n UpdatedLineItemsEvent,\n UpdatedNotesEvent,\n UpdatedRequestedActivationEvent,\n UpdatedRequestedActivationMetadata,\n UpdatedSalespersonEvent,\n UpdatedTagsEvent,\n UpdatedTagsMetadata,\n getOfferExpiry,\n} from '@vendasta/sales-orders';\nimport moment from 'moment';\nimport { BehaviorSubject } from 'rxjs';\nimport { map, take, tap } from 'rxjs/operators';\nimport { StatusToBadgeMapping } from '../conversion-utils';\nimport { OrderDetailAgreement } from './order-detail-agreement';\nimport { OrderDetailField } from './order-detail-field';\nimport { ContractDurationEnumToKeys } from './sales-order-details-contract-duration/sales-contract-duration';\n\ninterface SubmitterBadgeInfo {\n color: string;\n tranlationKey: string;\n}\n\n@Component({\n selector: 'sales-ui-sales-order-details-card',\n templateUrl: 'sales-order-details-card.component.html',\n styleUrls: ['../../shared/shared-styles.scss', 'sales-order-details-card.component.scss'],\n standalone: false,\n})\nexport class SalesOrderDetailsCardComponent implements OnInit, OnChanges {\n @Input() order: Order;\n @Input() editable: boolean;\n @Input() orderDetails: OrderDetailField[];\n @Input() isLoading = false;\n @Input() hasError = false;\n @Input() orderDetailsEditable = true;\n @Input() isCustomerDetails = false;\n /** @deprecated: this should only be used for older orders (before March 1st 2020 that don't have their decline reason in the metadata */\n @Input() declinedReason?: string;\n @Input() attachments?: Attachment[];\n @Input() agreements?: OrderDetailAgreement[];\n offerExpiryDisplay: string;\n attachmentsUploadUrl: string;\n files: FileInfo[] = [];\n isEditing$$ = new BehaviorSubject(false);\n salesperson: User;\n @ViewChildren(MatAccordion) private readonly matAccordions;\n\n constructor(\n private readonly translateService: TranslateService,\n private readonly alertService: SnackbarService,\n private readonly salesOrderService: SalesOrdersService,\n private readonly userLookupService: IAMService,\n ) {}\n\n ngOnInit(): void {\n this.attachmentsUploadUrl = this.salesOrderService.getUploadFileUrl();\n this.files = (this.attachments || []).map((attachment) => {\n return { name: attachment.name, url: attachment.url, status: FileUploadStatus.Success };\n });\n\n const offerExpiryDate = getOfferExpiry(this.order);\n if (offerExpiryDate) {\n const formattedDate = formatDateWithTime(offerExpiryDate);\n if (moment(offerExpiryDate).isAfter(moment())) {\n this.offerExpiryDisplay = this.translateService.instant('FRONTEND.SALES_UI.ORDER_DETAILS.OFFER_WILL_EXPIRE', {\n date: formattedDate,\n });\n } else {\n this.offerExpiryDisplay = this.translateService.instant('FRONTEND.SALES_UI.ORDER_DETAILS.OFFER_EXPIRED', {\n date: formattedDate,\n });\n }\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.order && changes.order.currentValue.salespersonId != this.salesperson?.userId) {\n if (changes.order.currentValue.salespersonId) {\n this.userLookupService\n .getMultiUsers([{ userId: changes.order.currentValue.salespersonId }])\n .pipe(\n map((users) => {\n if (!!users && users.length == 1) {\n return users[0];\n }\n return null;\n }),\n take(1),\n )\n .subscribe(\n (user) => {\n if (user) {\n this.salesperson = user;\n }\n },\n (err) => {\n console.error(err);\n },\n );\n } else {\n this.salesperson = null;\n }\n }\n }\n\n getOrderSubmitterName(): string {\n if (!!this.orderDetails && this.orderDetails.length > 0) {\n return getDisplayNameForSalesUser(this.orderDetails[0].user);\n }\n return '';\n }\n\n buildCustomerApprovalNameAndDate(): string {\n const customerApproval = this.getLastCustomerApproval();\n if (!customerApproval) {\n return '';\n }\n const lastAccepted = this.translateService.instant('FRONTEND.SALES_UI.LAST_ACCEPTED');\n return lastAccepted + ' ' + this.formatDateAndNamePair(customerApproval.date, customerApproval.user);\n }\n\n getLastCustomerApproval(): OrderDetailField {\n if (!this.orderDetails) {\n return null;\n }\n\n // Clone the order details so reverse doesn't break the original array\n const orderDetailsCopy = [...this.orderDetails];\n orderDetailsCopy.reverse();\n\n // Get the matching history item if at least two entries exist and one is approved by the customer\n return orderDetailsCopy.find(\n (historyItem, index, statusHistory) =>\n index < statusHistory.length - 1 &&\n !historyItem.status &&\n statusHistory[index + 1].status &&\n statusHistory[index + 1].status === Status.SUBMITTED_FOR_CUSTOMER_APPROVAL,\n );\n }\n\n getOrderSubmitterBadgeInfo(): SubmitterBadgeInfo {\n switch (this.order.origin || Origin.SSC) {\n case Origin.SSC:\n return { color: 'purple', tranlationKey: 'FRONTEND.SALES_UI.SALESPERSON' };\n case Origin.VBC:\n return { color: 'green', tranlationKey: 'FRONTEND.SALES_UI.CLIENT' };\n case Origin.PC:\n return { color: 'blue', tranlationKey: 'FRONTEND.SALES_UI.ADMIN' };\n default:\n return null;\n }\n }\n\n buildDetailName(orderDetailField: OrderDetailField, isChild: boolean): string {\n if (isChild) {\n return getEventNameTranslationKeyForOrderDetailField(orderDetailField);\n }\n // Not all sales histories were created with a status\n return StatusToBadgeMapping.get(orderDetailField.status)?.text || StatusToBadgeMapping.get(Status.SUBMITTED).text;\n }\n\n buildDetailValue(orderDetailField: OrderDetailField): string {\n const nameAndDateString = this.formatDateAndNamePair(orderDetailField.date, orderDetailField.user);\n return this.buildValueFromMetadata(nameAndDateString, orderDetailField.metadata);\n }\n\n public signalToOpenAllDropdowns(): void {\n this.matAccordions.forEach((accordion) => accordion.openAll());\n }\n\n updateAttachmentsOnOrder(): void {\n const attachments = this.files.map((file) => {\n return {\n name: file.name,\n url: file.url,\n };\n });\n this.salesOrderService\n .updateAttachments(this.order.orderId, this.order.businessId, attachments)\n .pipe(\n take(1),\n tap(() => this.isEditing$$.next(false)),\n )\n .subscribe({\n next: () => {\n this.alertService.openSuccessSnack('FRONTEND.SALES_UI.ORDER_DETAILS.ATTACHMENTS_UPDATED_SUCCESSFULLY');\n },\n error: () => {\n this.alertService.openErrorSnack('FRONTEND.SALES_UI.ERRORS.ERROR_ATTACHMENT_GENERIC');\n },\n });\n }\n\n updateFilesUploaded(files: FileInfo[]): void {\n this.files = files;\n }\n\n handleFileUploadError(err: FileUploadError): void {\n let errorMessage = 'FRONTEND.SALES_UI.ERRORS.ERROR_ATTACHMENT_GENERIC';\n switch (err.error.message) {\n case 'GALAXY.UPLOADER.ERROR.MAX_FILE_SIZE_EXCEEDED':\n errorMessage = 'FRONTEND.SALES_UI.ERRORS.MAX_FILE_SIZE_EXCEEDED';\n break;\n case 'GALAXY.UPLOADER.ERROR.MAX_FILES_EXCEEDED':\n errorMessage = 'FRONTEND.SALES_UI.ERRORS.MAX_FILES_EXCEEDED';\n break;\n case 'GALAXY.UPLOADER.ERROR.DUPLICATE_FILE_ATTEMPT':\n errorMessage = 'FRONTEND.SALES_UI.ERRORS.DUPLICATE_FILE_ATTEMPT';\n break;\n }\n this.alertService.openErrorSnack(errorMessage);\n }\n\n edit(): void {\n this.isEditing$$.next(true);\n }\n\n private formatDateAndNamePair(date: Date, user: SalesUser): string {\n const displayName = getDisplayNameForSalesUser(user);\n\n const formattedDate = formatDateWithTime(date);\n if (displayName) {\n return this.translateService.instant('FRONTEND.SALES_UI.ORDER_DETAILS.DATE_BY_USER', {\n date: formattedDate,\n user: displayName,\n });\n }\n // If there's no user just display the date ()\n return formattedDate;\n }\n\n private buildValueFromMetadata(nameAndDateString: string, metadata: HistoryMetadata): string {\n if (\n metadata instanceof RequestCancellationMetadata ||\n metadata instanceof NotesMetadata ||\n metadata instanceof CustomerNotesMetadata\n ) {\n let notes = metadata.current;\n if (metadata.event.id === DeclineCancellationEvent) {\n notes = metadata.event.name + '\\n' + metadata.current;\n }\n return nameAndDateString + '\\n' + notes;\n }\n if (metadata instanceof DeclinedOrderMetadata) {\n const notes = [...metadata.declinedReasons, metadata.current].join('\\n');\n return nameAndDateString + '\\n' + notes;\n }\n if (metadata instanceof UpdatedTagsMetadata) {\n const tagsString =\n !!metadata.tags && metadata.tags.length > 0\n ? this.translateService.instant('FRONTEND.SALES_UI.ORDER_DETAILS.UPDATED_TO', {\n value: metadata.tags.join(', '),\n })\n : this.translateService.instant('FRONTEND.SALES_UI.ORDER_DETAILS.ALL_TAGS_REMOVED');\n return nameAndDateString + '\\n' + tagsString;\n }\n if (metadata instanceof UpdatedRequestedActivationMetadata) {\n if (!!metadata.previous && !!metadata.current) {\n return (\n nameAndDateString +\n '\\n' +\n this.translateService.instant('FRONTEND.SALES_UI.ORDER_DETAILS.UPDATED_FROM_TO', {\n fromValue: formatDate(metadata.previous),\n toValue: formatDate(metadata.current),\n })\n );\n }\n if (metadata.current) {\n return (\n nameAndDateString +\n '\\n' +\n this.translateService.instant('FRONTEND.SALES_UI.ORDER_DETAILS.UPDATED_TO', {\n value: formatDate(metadata.current),\n })\n );\n }\n if (metadata.previous) {\n return (\n nameAndDateString +\n '\\n' +\n this.translateService.instant('FRONTEND.SALES_UI.ORDER_DETAILS.UPDATED_FROM_TO', {\n fromValue: formatDate(metadata.previous),\n toValue: this.translateService.instant('FRONTEND.SALES_UI.ORDER_DETAILS.NO_CONTRACT_START_DATE'),\n })\n );\n }\n return (\n nameAndDateString +\n '\\n' +\n this.translateService.instant('FRONTEND.SALES_UI.ORDER_DETAILS.UPDATED_TO', {\n value: this.translateService.instant('FRONTEND.SALES_UI.ORDER_DETAILS.NO_CONTRACT_START_DATE'),\n })\n );\n }\n if (metadata instanceof UpdateContractDurationMetadata) {\n if (!!metadata.previous && !!metadata.current) {\n const previousDurationPeriod = this.translateService.instant(\n ContractDurationEnumToKeys[metadata.previous.duration],\n );\n const previousDuration = `${metadata.previous.value} ${previousDurationPeriod}`;\n const currentDurationPeriod = this.translateService.instant(\n ContractDurationEnumToKeys[metadata.current.duration],\n );\n const currentDuration = `${metadata.current.value} ${currentDurationPeriod}`;\n return (\n nameAndDateString +\n '\\n' +\n this.translateService.instant('FRONTEND.SALES_UI.ORDER_DETAILS.UPDATED_FROM_TO', {\n fromValue: previousDuration,\n toValue: currentDuration,\n })\n );\n }\n if (metadata.current) {\n const currentDurationPeriod = this.translateService.instant(\n ContractDurationEnumToKeys[metadata.current.duration],\n );\n const currentDuration = `${metadata.current.value} ${currentDurationPeriod}`;\n return (\n nameAndDateString +\n '\\n' +\n this.translateService.instant('FRONTEND.SALES_UI.ORDER_DETAILS.UPDATED_TO', {\n value: currentDuration,\n })\n );\n }\n if (metadata.previous) {\n const previousDurationPeriod = this.translateService.instant(\n ContractDurationEnumToKeys[metadata.previous.duration],\n );\n const previousDuration = `${metadata.previous.value} ${previousDurationPeriod}`;\n return (\n nameAndDateString +\n '\\n' +\n this.translateService.instant('FRONTEND.SALES_UI.ORDER_DETAILS.UPDATED_FROM_TO', {\n fromValue: previousDuration,\n toValue: this.translateService.instant('FRONTEND.SALES_UI.ORDER_DETAILS.NO_CONTRACT_LENGTH'),\n })\n );\n }\n return (\n nameAndDateString +\n '\\n' +\n this.translateService.instant('FRONTEND.SALES_UI.ORDER_DETAILS.UPDATED_TO', {\n value: this.translateService.instant('FRONTEND.SALES_UI.ORDER_DETAILS.NO_CONTRACT_LENGTH'),\n })\n );\n }\n return nameAndDateString;\n }\n}\n\nfunction formatDate(date: Date): string {\n return new DatePipe('en-US').transform(date, 'MMMM d, y');\n}\n\nfunction formatDateWithTime(date: Date): string {\n return new DatePipe('en-US').transform(date, 'MMMM d, y, h:mm:ss a');\n}\n\nfunction getDisplayNameForSalesUser(user: SalesUser): string {\n if (!user) {\n return '';\n }\n const names = [];\n if (user.firstName) {\n names.push(user.firstName);\n }\n if (user.lastName) {\n names.push(user.lastName);\n }\n const displayName = names.join(' ');\n if (!displayName) {\n return user.email;\n }\n return displayName;\n}\n\nfunction getEventNameTranslationKeyForOrderDetailField(orderDetailField: OrderDetailField): string {\n if (!orderDetailField || !orderDetailField.metadata) {\n return null;\n }\n\n if (orderDetailField.metadata.event.id === UpdatedTagsEvent) {\n return 'FRONTEND.SALES_UI.UPDATED_TAGS';\n }\n\n if (orderDetailField.metadata.event.id === UpdatedNotesEvent) {\n return 'FRONTEND.SALES_UI.UPDATED_NOTES';\n }\n\n if (orderDetailField.metadata.event.id === UpdatedSalespersonEvent) {\n return 'FRONTEND.SALES_UI.UPDATED_SALESPERSON';\n }\n\n if (orderDetailField.metadata.event.id === UpdatedCustomerNotesEvent) {\n return 'FRONTEND.SALES_UI.UPDATED_CUSTOMER_NOTES';\n }\n\n if (orderDetailField.metadata.event.id === UpdatedRequestedActivationEvent) {\n return 'FRONTEND.SALES_UI.UPDATED_CONTRACT_START';\n }\n\n if (orderDetailField.metadata.event.id === UpdateContractDurationEvent) {\n return 'FRONTEND.SALES_UI.UPDATED_CONTRACT_LENGTH';\n }\n\n if (orderDetailField.metadata.event.id === UpdateEnforceContractTermEvent) {\n return 'FRONTEND.SALES_UI.UPDATED_ENFORCE_CONTRACT_TERM';\n }\n\n if (orderDetailField.metadata.event.id === RequestCancellationEvent) {\n return 'FRONTEND.SALES_UI.CANCELLATION_REQUESTED';\n }\n\n if (orderDetailField.metadata.event.id === DeclineCancellationEvent) {\n return 'FRONTEND.SALES_UI.CANCELLATION_DECLINED';\n }\n\n if (orderDetailField.metadata.event.id === UpdatedDraftEvent) {\n return 'FRONTEND.SALES_UI.UPDATED_DRAFT';\n }\n\n if (orderDetailField.metadata.event.id === UpdatedLineItemsEvent) {\n return 'FRONTEND.SALES_UI.UPDATED_CONTENTS';\n }\n\n if (orderDetailField.status !== Status.SUBMITTED_FOR_CUSTOMER_APPROVAL) {\n return null;\n }\n return getCustomerApprovalTranslationKeyForEventID(orderDetailField.metadata.event.id);\n}\n\nfunction getCustomerApprovalTranslationKeyForEventID(eventID: string): string {\n switch (eventID) {\n case CustomerApprovalEventSending:\n return 'FRONTEND.SALES_UI.CUSTOMER_EVENTS.SENDING';\n case CustomerApprovalEventProcessing:\n return 'FRONTEND.SALES_UI.CUSTOMER_EVENTS.PROCESSING';\n case CustomerApprovalEventDelivered:\n return 'FRONTEND.SALES_UI.CUSTOMER_EVENTS.DELIVERED';\n case CustomerApprovalEventBounced:\n return 'FRONTEND.SALES_UI.CUSTOMER_EVENTS.BOUNCED';\n case CustomerApprovalEventDropped:\n return 'FRONTEND.SALES_UI.CUSTOMER_EVENTS.DROPPED';\n case CustomerApprovalEventUnsubscribed:\n return 'FRONTEND.SALES_UI.CUSTOMER_EVENTS.UNSUBSCRIBED';\n case CustomerApprovalEventDeferred:\n return 'FRONTEND.SALES_UI.CUSTOMER_EVENTS.DEFERRED';\n case CustomerApprovalEventSpamReport:\n return 'FRONTEND.SALES_UI.CUSTOMER_EVENTS.SPAM_REPORT';\n case CustomerApprovalEventOpened:\n return 'FRONTEND.SALES_UI.CUSTOMER_EVENTS.EMAIL_OPENED';\n case CustomerApprovalEventClicked:\n return 'FRONTEND.SALES_UI.CUSTOMER_EVENTS.EMAIL_CLICKED';\n case CustomerApprovalEventUpdatedAnswers:\n return 'FRONTEND.SALES_UI.CUSTOMER_EVENTS.UPDATED_ANSWERS';\n default:\n return 'FRONTEND.SALES_UI.CUSTOMER_EVENTS.UNKNOWN';\n }\n}\n", "
\n \n \n \n {{ 'FRONTEND.SALES_UI.ORDER_DETAILS.TITLE' | translate }}\n \n \n {{ 'FRONTEND.SALES_UI.ORDER_DETAILS.SUBTITLE' | translate }}\n \n {{ 'FRONTEND.SALES_UI.ORDER_DETAILS.CREATED_BY' | translate: { name: nameOfSubmitter } }}\n \n \n \n {{ badgeInfo.tranlationKey | translate }}\n \n \n \n
\n
{{ order.orderId }}
\n
\n\n \n
\n \n
\n
Salesperson
\n
{{ salesperson.firstName }} {{ salesperson.lastName }}
\n
\n
\n \n
\n
\n {{ 'FRONTEND.SALES_UI.OFFER_EXPIRY' | translate }}\n
\n
\n {{ offerExpiryDisplay }}\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 {{ buildDetailName(info, isChild) | translate }}\n
\n
\n {{ buildDetailValue(info) }}\n
\n
\n
\n \n \n\n
\n
\n
\n {{ 'FRONTEND.SALES_UI.REASON_FOR_DECLINE' | translate }}\n
\n
\n {{ declinedReason }}\n
\n
\n \n
\n\n
\n
\n
\n {{ 'FRONTEND.SALES_UI.ATTACHMENTS' | translate }}\n
\n\n \n
\n
\n \n
\n \n
\n
\n \n {{ 'FRONTEND.SALES_UI.SAVE' | translate }}\n \n
\n
\n\n \n
\n
\n \n \n
\n
\n
\n
\n \n
\n\n
0\">\n
\n
\n {{ 'FRONTEND.SALES_UI.CUSTOMER_AGREEMENTS' | translate }}\n
\n
\n
{{ buildCustomerApprovalNameAndDate() }}
\n
\n
\n
\n @if (agreement.agreed) {\n check_circle_outline\n } @else {\n highlight_off\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 {{ 'FRONTEND.SALES_UI.ORDER_DETAILS.ORDER_INFO_ERROR' | translate }}\n \n \n
\n
\n\n\n
\n \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 { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatExpansionModule } from '@angular/material/expansion';\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 { MatSelectModule } from '@angular/material/select';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { VaFormsModule } from '@vendasta/forms';\nimport { EmptyStateModule } from '@vendasta/uikit';\nimport { SalesOrderDetailsCardComponent } from './sales-order-details-card.component';\nimport { SalesOrderTagsService } from './sales-order-details-tags/sales-order-details-tags.service';\nimport { SalesOrderDetailsTagsComponent } from './sales-order-details-tags/sales-order-details-tags.component';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { SalesOrderDetailsRequestedActivationComponent } from './sales-order-details-requested-activation/sales-order-details-requested-activation.component';\nimport { SalesOrderDetailsContractDurationComponent } from './sales-order-details-contract-duration/sales-order-details-contract-duration.component';\nimport { SalesOrderDetailsNotesComponent } from './sales-order-details-notes/sales-order-details-notes.component';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { SalesOrderDetailsCustomerNotesComponent } from './sales-order-details-customer-notes/sales-order-details-customer-notes.component';\nimport { LexiconModule } from '@galaxy/lexicon';\nimport baseTranslation from '../../assets/i18n/en_devel.json';\nimport { WEBLATE_COMPONENT_NAME } from '../../shared/constants';\nimport { GalaxyUploaderModule } from '@vendasta/galaxy/uploader';\nimport { GalaxyBadgeModule } from '@vendasta/galaxy/badge';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { GalaxyButtonLoadingIndicatorModule } from '@vendasta/galaxy/button-loading-indicator';\n\n@NgModule({\n imports: [\n CommonModule,\n MatCardModule,\n MatListModule,\n MatProgressSpinnerModule,\n EmptyStateModule,\n MatExpansionModule,\n VaFormsModule,\n MatIconModule,\n FormsModule,\n ReactiveFormsModule,\n MatCheckboxModule,\n MatTooltipModule,\n MatButtonModule,\n MatDatepickerModule,\n MatInputModule,\n MatSelectModule,\n TranslateModule,\n LexiconModule.forChild({\n componentName: WEBLATE_COMPONENT_NAME,\n baseTranslation: baseTranslation,\n }),\n GalaxyUploaderModule,\n GalaxyBadgeModule,\n GalaxyFormFieldModule,\n GalaxyButtonLoadingIndicatorModule,\n ],\n providers: [SalesOrderTagsService],\n declarations: [\n SalesOrderDetailsCardComponent,\n SalesOrderDetailsTagsComponent,\n SalesOrderDetailsRequestedActivationComponent,\n SalesOrderDetailsContractDurationComponent,\n SalesOrderDetailsNotesComponent,\n SalesOrderDetailsCustomerNotesComponent,\n ],\n exports: [SalesOrderDetailsCardComponent, SalesOrderDetailsTagsComponent],\n})\nexport class SalesOrderDetailsCardModule {}\n", "export {};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiaW50ZXJmYWNlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEdldE11bHRpT3JkZXJGb3Jtc1JlcXVlc3RJbnRlcmZhY2UsIEdldE11bHRpT3JkZXJGb3Jtc1Jlc3BvbnNlSW50ZXJmYWNlIH0gZnJvbSAnQGdhbGF4eS9tYXJrZXRwbGFjZS1hcHBzL3YxJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IGludGVyZmFjZSBNYXJrZXRwbGFjZUFwcHNTZXJ2aWNlSW50ZXJmYWNlIHtcbiAgZ2V0TXVsdGlPcmRlckZvcm1zKHI6IEdldE11bHRpT3JkZXJGb3Jtc1JlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPEdldE11bHRpT3JkZXJGb3Jtc1Jlc3BvbnNlSW50ZXJmYWNlPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVc2VyIHtcbiAgdXNlcklkOiBzdHJpbmc7XG4gIGVtYWlsOiBzdHJpbmc7XG4gIGZpcnN0TmFtZTogc3RyaW5nO1xuICBsYXN0TmFtZTogc3RyaW5nO1xuICBwaG9uZU51bWJlcjogc3RyaW5nO1xufVxuIl0sIm1hcHBpbmdzIjoiIiwiaWdub3JlTGlzdCI6W119", "import { Injectable } from '@angular/core';\nimport { Observable, BehaviorSubject, combineLatest, of, zip, throwError } from 'rxjs';\nimport { catchError, map, switchMap, refCount, publishReplay, skipWhile, filter } from 'rxjs/operators';\nimport { Currency, Package, Price, Pricing, Frequency, PackageService } from '@vendasta/marketplace-packages';\nimport {\n Order,\n RevenuePeriod,\n SalesOrdersService,\n ConfigInterface,\n LineItem,\n LineItemInterface,\n} from '@vendasta/sales-orders';\nimport { App, AppKey, AppPartnerService } from '@galaxy/marketplace-apps';\nimport { AccountGroup, AccountGroupService, ProjectionFilter, ReadFilter } from '@galaxy/account-group';\nimport { Salesperson, SalespersonService } from '@vendasta/sales';\nimport { SalesOrderStoreService } from '../sales-order-store.service';\n\n@Injectable()\nexport class SalesOrderService {\n private businessId$$: BehaviorSubject = new BehaviorSubject(null);\n readonly businessId$: Observable = this.businessId$$.asObservable();\n\n private orderId$$: BehaviorSubject = new BehaviorSubject(null);\n readonly orderId$: Observable = this.orderId$$.asObservable();\n\n private specifiedLineItems$$: BehaviorSubject = new BehaviorSubject([]);\n readonly specifiedLineItems$: Observable = this.specifiedLineItems$$.asObservable();\n\n readonly lineItems$: Observable;\n\n readonly order$: Observable;\n readonly business$: Observable;\n readonly salesperson$: Observable;\n readonly packageIds$: Observable;\n readonly packages$: Observable;\n readonly apps$: Observable;\n readonly standaloneAppKeys$: Observable;\n readonly includedAppKeys$: Observable;\n readonly orderConfig$: Observable;\n readonly uniqueApps$: Observable;\n\n static convertOrderCurrencyToMPCurrency(orderCurrency: string): Currency {\n if (!Currency[orderCurrency]) {\n return Currency.USD;\n }\n return Currency[orderCurrency];\n }\n\n static convertOrderRevenuePeriodToMPFrequency(revenuePeriod: RevenuePeriod): Frequency {\n // TODO: Unify Frequency between orders and packages\n switch (revenuePeriod) {\n case undefined: // proto doesn't transmit 0 enum, but the default should not be Onetime\n case RevenuePeriod.ONETIME:\n return Frequency.ONCE;\n case RevenuePeriod.DAILY:\n return Frequency.DAILY;\n case RevenuePeriod.WEEKLY:\n return Frequency.WEEKLY;\n case RevenuePeriod.MONTHLY:\n return Frequency.MONTHLY;\n case RevenuePeriod.YEARLY:\n return Frequency.YEARLY;\n case RevenuePeriod.BIWEEKLY: // No MP equivalent...?\n default:\n return Frequency.OTHER;\n }\n }\n\n static getPricingFromLineItem(lineItem: LineItem): Pricing {\n let prices: Price[] = [];\n if (!!lineItem.currentRevenue && !!lineItem?.currentRevenue?.revenueComponents) {\n prices = lineItem?.currentRevenue?.revenueComponents.map((c) => {\n return new Price({\n price: c.value,\n frequency: SalesOrderService.convertOrderRevenuePeriodToMPFrequency(c.period),\n });\n });\n }\n\n return new Pricing({\n currency: SalesOrderService.convertOrderCurrencyToMPCurrency(lineItem.currencyCode),\n prices: prices,\n });\n }\n\n constructor(\n private accountGroupService: AccountGroupService,\n private salesService: SalespersonService,\n private packageService: PackageService,\n private appsService: AppPartnerService,\n private salesOrdersService: SalesOrdersService,\n private salesOrderStoreService: SalesOrderStoreService,\n ) {\n this.order$ = combineLatest([this.orderId$, this.businessId$]).pipe(\n skipWhile(([orderId, businessId]) => orderId === null || businessId === null),\n switchMap(([orderId, businessId]) => this.salesOrderStoreService.getOrderState(orderId, businessId)),\n filter((orderState) => !orderState.loading),\n map((orderState) => orderState.order),\n publishReplay(1),\n refCount(),\n );\n\n this.business$ = this.businessId$.pipe(\n switchMap((businessId) => {\n return this.accountGroupService.getMulti(\n [businessId],\n new ProjectionFilter({\n accountGroupExternalIdentifiers: true,\n napData: true,\n accounts: true,\n }),\n new ReadFilter({ includeDeleted: true }),\n );\n }),\n map((results) => {\n if (results.length !== 1) {\n throwError(new Error('Business not found'));\n }\n return results[0];\n }),\n publishReplay(1),\n refCount(),\n );\n\n this.salesperson$ = this.business$.pipe(\n switchMap((business) => {\n if (!business.externalIdentifiers.salesPersonId) {\n return of(null);\n }\n return this.salesService.getSalesperson(\n business.externalIdentifiers.partnerId,\n business.externalIdentifiers.salesPersonId,\n );\n }),\n catchError(() => {\n // This is only used to pre-fill salesperson a new order, so just skip it if an error occurs\n return of(null);\n }),\n publishReplay(1),\n refCount(),\n );\n\n this.orderConfig$ = this.business$.pipe(\n switchMap((business) => {\n return this.salesOrdersService.getConfig(\n business.externalIdentifiers.partnerId,\n business.externalIdentifiers.marketId,\n );\n }),\n publishReplay(1),\n refCount(),\n );\n\n this.lineItems$ = combineLatest([this.order$, this.specifiedLineItems$]).pipe(\n map(([order, lineItems]) => lineItems.concat(order?.lineItems || [])),\n publishReplay(1),\n refCount(),\n );\n\n this.packageIds$ = this.lineItems$.pipe(\n map((lineItems) => {\n return lineItems.map((lineItem) => lineItem.packageId).filter((packageId) => !!packageId);\n }),\n publishReplay(1),\n refCount(),\n );\n\n this.standaloneAppKeys$ = this.lineItems$.pipe(\n map((lineItems) => {\n return lineItems\n .filter((lineItem) => !!lineItem.appKey)\n .map((lineItem) => {\n return new AppKey(lineItem.appKey);\n });\n }),\n publishReplay(1),\n refCount(),\n );\n\n this.packages$ = this.packageIds$.pipe(\n switchMap((packageIds) => {\n return packageIds.length > 0 ? this.packageService.getMulti(packageIds) : of([]);\n }),\n publishReplay(1),\n refCount(),\n );\n\n this.includedAppKeys$ = zip(this.packages$, this.standaloneAppKeys$).pipe(\n map(([packages, standaloneAppKeys]) => {\n const packageAppKeys = packages\n .map((pkg) => {\n const lineItems = pkg && pkg.lineItems && pkg.lineItems.lineItems ? pkg.lineItems.lineItems : [];\n return lineItems.map(\n (item) =>\n new AppKey({\n appId: item.id || '',\n editionId: item.editionId || '',\n }),\n );\n })\n .reduce((a, b) => [...a, ...b], []);\n return standaloneAppKeys.concat(packageAppKeys);\n }),\n publishReplay(1),\n refCount(),\n );\n\n this.apps$ = combineLatest([this.includedAppKeys$, this.business$]).pipe(\n switchMap(([includedAppKeys, business]) =>\n this.appsService.getMulti(\n includedAppKeys,\n business.externalIdentifiers.partnerId,\n business.externalIdentifiers.marketId,\n null,\n true,\n ),\n ),\n publishReplay(1),\n refCount(),\n );\n\n this.uniqueApps$ = this.apps$.pipe(\n filter((apps) => !!apps && apps.length > 0),\n map((appKeys) => {\n return appKeys.reduce((unique, app) => {\n const { key } = app;\n if (\n !key ||\n !!unique.find(\n ({ key: uniqueKey }) => uniqueKey.appId === key.appId && uniqueKey.editionId === key.editionId,\n )\n ) {\n return unique;\n }\n\n unique.push(app);\n return unique;\n }, []);\n }),\n publishReplay(1),\n refCount(),\n );\n }\n\n initialize(businessId: string, orderId: string, lineItems: LineItemInterface[]): void {\n this.businessId$$.next(businessId || '');\n this.orderId$$.next(orderId || '');\n this.specifiedLineItems$$.next(lineItems || []);\n }\n}\n", "import { Injectable } from '@angular/core';\nimport {\n CommonFormData,\n CustomFieldsAnswer,\n CustomFieldsAnswers,\n IncludedCommonFormFieldsInterface,\n OrderFormFieldOptionsType,\n OrderFormInterface,\n OrderFormOptionsInterface,\n ProductInfoInterface,\n TextBoxFieldOptions,\n} from '@vendasta/store';\nimport { User } from './interface';\nimport { combineLatest, Observable, of, zip } from 'rxjs';\nimport {\n GetMultiOrderFormsResponseOrderFormContainerInterface as MPOrderFormContainerInterface,\n MarketplaceAppsApiService,\n} from '@galaxy/marketplace-apps/v1';\nimport { App } from '@galaxy/marketplace-apps';\nimport { SalesOrderService } from './sales-order.service';\nimport {\n CommonField,\n CustomField,\n Field,\n LineItem,\n LineItemInterface,\n Order,\n SalesOrdersService,\n} from '@vendasta/sales-orders';\nimport { Account, AccountGroup } from '@galaxy/account-group';\nimport { Package } from '@vendasta/marketplace-packages';\nimport { map, publishReplay, refCount, switchMap } from 'rxjs/operators';\nimport { TranslateService } from '@ngx-translate/core';\nimport { AppType } from '@vendasta/marketplace-apps';\n\n@Injectable()\nexport class SalesOrderFormService {\n private mpOrderForms$: Observable;\n private appQuantityMap$: Observable>;\n private userOptions: User[];\n order$: Observable;\n\n constructor(\n private translateService: TranslateService,\n private appsApiService: MarketplaceAppsApiService,\n private salesOrderService: SalesOrderService,\n private salesOrderSdk: SalesOrdersService,\n ) {}\n\n initialize(businessId: string, orderId: string, lineItems: LineItemInterface[], userOptions: User[]): void {\n this.userOptions = userOptions;\n this.salesOrderService.initialize(businessId, orderId, lineItems);\n this.order$ = this.salesOrderService.order$;\n\n this.mpOrderForms$ = combineLatest([this.salesOrderService.apps$, this.salesOrderService.business$]).pipe(\n switchMap(([apps, business]) => {\n return this.getMarketplaceOrderForms(business.externalIdentifiers.partnerId, apps);\n }),\n publishReplay(1),\n refCount(),\n );\n\n this.appQuantityMap$ = zip(this.salesOrderService.packages$, this.salesOrderService.lineItems$).pipe(\n map(([packages, salesLineItems]) => {\n const quantityMap: Map = new Map();\n const allPkgLineItems = packages.reduce((items, pkg) => {\n const pkgLineItem = salesLineItems.find((lineItem) => lineItem.packageId === pkg.packageId);\n const pkgCount = (pkgLineItem ? pkgLineItem.quantity : 1) || 1;\n return items.concat(this.salesOrderLineItemsFromPackage(pkg, pkgCount));\n }, []);\n salesLineItems = salesLineItems.filter((lineItem) => !lineItem.packageId);\n salesLineItems = salesLineItems.concat(allPkgLineItems);\n salesLineItems.forEach((item) => {\n const count = quantityMap.get(item.appKey.appId) || 0;\n quantityMap.set(item.appKey.appId, count + (item.quantity || 1));\n });\n return quantityMap;\n }),\n publishReplay(1),\n refCount(),\n );\n }\n\n private salesOrderLineItemsFromPackage(pkg: Package, pkgCount: number): LineItem[] {\n if (!pkg.lineItems || !pkg.lineItems.lineItems || !pkg.lineItems.lineItems.length) {\n return [];\n }\n return pkg.lineItems.lineItems.map(\n (lineItem) =>\n new LineItem({\n appKey: { appId: lineItem.id, editionId: lineItem.editionId },\n quantity: (lineItem.quantity || 1) * pkgCount,\n }),\n );\n }\n\n private getMarketplaceOrderForms(partnerId: string, apps: App[]): Observable {\n if (apps?.length > 0) {\n const appIds: string[] = apps\n .filter((app) => !!app.key && app.activationInformation.orderFormEnabled)\n .map((app) => app.key.appId);\n if (appIds?.length > 0) {\n return this.appsApiService\n .getMultiOrderForms({ partnerId: partnerId, appIds: appIds })\n .pipe(map((resp) => resp.orderFormContainer || []));\n }\n }\n return of([]);\n }\n\n getOrderForms(options: OrderFormOptionsInterface): Observable {\n return combineLatest([\n zip(\n this.mpOrderForms$,\n this.appQuantityMap$,\n this.salesOrderService.uniqueApps$,\n this.salesOrderService.lineItems$,\n ),\n this.salesOrderService.business$,\n ]).pipe(\n map(([[orderForms, appQuantityMap, apps, lineItems], business]) => {\n return apps.reduce((forms, app) => {\n let commonFormRequiredFields: IncludedCommonFormFieldsInterface = {};\n let customFields: OrderFormFieldOptionsType[] = [];\n\n if (app.activationInformation.activationSpecificUrlEnabled) {\n customFields.unshift({\n id: 'custom-entry-url-' + app.key.appId,\n label: this.translateService.instant('FRONTEND.SALES_UI.ORDER_FORM.CUSTOM_ENTRY_URL'),\n type: 'text',\n required: options.showOfficeUseQuestions,\n hidden: !options.showOfficeUseQuestions,\n regexValidator: '^(http://|https://).*',\n regexErrorMessage: this.translateService.instant(\n 'FRONTEND.SALES_UI.ORDER_FORM.CUSTOM_ENTRY_URL_REGEX_ERROR',\n ),\n textboxType: 'text',\n } as TextBoxFieldOptions);\n }\n\n const orderForm = orderForms.find((o) => o.appId === app.key.appId);\n\n if (!!orderForm || app.activationInformation.activationSpecificUrlEnabled) {\n if (\n !!orderForm &&\n orderForm.orderForm &&\n app.activationInformation.orderFormEnabled &&\n !this.isTrialUpgrade(app.key.appId, lineItems, business)\n ) {\n if (orderForm.orderForm.commonFormRequiredFields) {\n commonFormRequiredFields = orderForm.orderForm.commonFormRequiredFields;\n }\n if (orderForm.orderForm.orderForm) {\n customFields = customFields.concat(\n orderForm.orderForm.orderForm.map(\n (f) => ({ ...f, options: f.optionsWithLabels } as OrderFormFieldOptionsType),\n ),\n );\n }\n }\n\n let appId = app.key.appId;\n let addonId = '';\n if (app.parentRequirements.enabled && app.appType === AppType.APP_TYPE_ADDON) {\n appId = app.parentRequirements.parentDetails.key.appId;\n addonId = app.key.appId;\n }\n\n const createdForm: OrderFormInterface = {\n appId: appId,\n addonId: addonId,\n customFields: customFields,\n commonFormRequiredFields: commonFormRequiredFields,\n };\n if (orderForm?.orderForm?.footerText && orderForm.orderForm.footerText.trim() !== '') {\n createdForm.footerText = orderForm.orderForm.footerText;\n }\n forms.push(createdForm);\n\n if (\n !!addonId &&\n app.activationInformation.orderFormEnabled &&\n app.activationInformation.multipleActivationsEnabled &&\n app.activationInformation.separateOrderForms\n ) {\n const count = appQuantityMap.get(app.key.appId) || 1;\n for (let i = 1; i < count; i++) {\n forms.push(createdForm);\n }\n } else if (\n !addonId &&\n app.activationInformation.orderFormEnabled &&\n app.activationInformation.multipleActivationsEnabled\n ) {\n const count = appQuantityMap.get(app.key.appId) || 1;\n for (let i = 1; i < count; i++) {\n forms.push(createdForm);\n }\n }\n }\n\n return forms;\n }, []);\n }),\n );\n }\n\n private isTrialUpgrade(appId: string, lineItems: LineItemInterface[], business: AccountGroup): boolean {\n return !this.isTrialLineItem(lineItems, appId) && business && this.businessHasActiveTrial(business.accounts, appId);\n }\n\n private isTrialLineItem(lineItems: LineItemInterface[], appId: string): boolean {\n if (lineItems) {\n const lineItem = lineItems.find((li) => li.appKey && li.appKey.appId === appId);\n return lineItem && lineItem.isTrial;\n }\n return false;\n }\n\n private businessHasActiveTrial(accounts: Account[], appId: string): boolean {\n if (accounts) {\n const account = accounts.find((a) => a.marketplaceAppId === appId);\n return account && account.isTrial;\n }\n return false;\n }\n\n private getNewCommonData(commonFormData: CommonFormData): Observable {\n return combineLatest([this.salesOrderService.business$, this.salesOrderService.salesperson$]).pipe(\n map(([business, salesperson]) => {\n const user = this.userOptions && this.userOptions.length > 0 ? this.userOptions[0] : null;\n let businessAddress = '';\n if (\n business &&\n business.napData &&\n (business.napData.address || business.napData.city || business.napData.state || business.napData.zip)\n ) {\n const addressItems = [\n business.napData.address,\n business.napData.city,\n business.napData.state,\n business.napData.zip,\n ];\n businessAddress = addressItems.filter((i) => !!i).join(', ');\n }\n return {\n user_options: this.userOptions,\n contact_email:\n !!commonFormData.contact_email && commonFormData.contact_email\n ? commonFormData.contact_email\n : user\n ? user.email\n : '',\n contact_name:\n !!commonFormData.contact_name && commonFormData.contact_name\n ? commonFormData.contact_name\n : user\n ? [user.firstName, user.lastName].filter((i) => !!i).join(' ')\n : '',\n contact_phone_number:\n !!commonFormData.contact_phone_number && commonFormData.contact_phone_number\n ? commonFormData.contact_phone_number\n : user\n ? user.phoneNumber\n : '',\n business_account_group_id:\n !!commonFormData.business_account_group_id && commonFormData.business_account_group_id\n ? commonFormData.business_account_group_id\n : business\n ? business.accountGroupId\n : '',\n business_name:\n !!commonFormData.business_name && commonFormData.business_name\n ? commonFormData.business_name\n : business && business.napData\n ? business.napData.companyName\n : '',\n business_address:\n !!commonFormData.business_address && commonFormData.business_address\n ? commonFormData.business_address\n : businessAddress,\n business_phone_number:\n !!commonFormData.business_phone_number && commonFormData.business_phone_number\n ? commonFormData.business_phone_number\n : business && business.napData && business.napData.workNumber && business.napData.workNumber.length > 0\n ? business.napData.workNumber[0]\n : '',\n business_website:\n !!commonFormData.business_website && commonFormData.business_website\n ? commonFormData.business_website\n : business && business.napData\n ? business.napData.website\n : '',\n salesperson_name:\n !!commonFormData.salesperson_name && commonFormData.salesperson_name\n ? commonFormData.salesperson_name\n : salesperson\n ? [salesperson.firstName, salesperson.lastName].filter((i) => !!i).join(' ')\n : '',\n salesperson_email:\n !!commonFormData.salesperson_email && commonFormData.salesperson_email\n ? commonFormData.salesperson_email\n : salesperson\n ? salesperson.email\n : '',\n salesperson_phone_number:\n !!commonFormData.salesperson_phone_number && commonFormData.salesperson_phone_number\n ? commonFormData.salesperson_phone_number\n : salesperson && salesperson.phoneNumber && salesperson.phoneNumber.length > 0\n ? salesperson.phoneNumber[0]\n : '',\n ...commonFormData,\n };\n }),\n );\n }\n\n getCommonData(): Observable {\n return this.salesOrderService.order$.pipe(\n switchMap((order) => {\n if (order) {\n const commonData: CommonFormData = {};\n (order.commonFields || []).map((cf) => {\n let fieldAnswer = cf.field.answer;\n try {\n fieldAnswer = JSON.parse(fieldAnswer);\n } catch (error) {\n // do nothing\n }\n const fieldId = cf.field.fieldId;\n commonData[fieldId] = fieldAnswer;\n });\n return this.getNewCommonData(commonData);\n }\n return this.getNewCommonData({});\n }),\n );\n }\n\n getProductInfo(): Observable {\n return this.salesOrderService.uniqueApps$.pipe(\n map((apps) => {\n const productInfoMap: Map = new Map();\n apps.map((app) => {\n let productInfo: ProductInfoInterface = {\n productId: 'temporary',\n addonInfo: [],\n };\n if (app.parentRequirements.enabled && app.appType === AppType.APP_TYPE_ADDON) {\n if (productInfoMap.has(app.parentRequirements.parentDetails.key.appId)) {\n productInfo = productInfoMap.get(app.parentRequirements.parentDetails.key.appId);\n }\n productInfo.name = app.parentRequirements.parentDetails.name;\n productInfo.tagline = app.parentRequirements.parentDetails.tagline;\n productInfo.icon = app.parentRequirements.parentDetails.iconUrl;\n productInfo.addonInfo.push({\n addonId: app.key.appId,\n name: app.sharedMarketingInformation.name,\n });\n productInfo.productId = app.parentRequirements.parentDetails.key.appId;\n productInfoMap.set(productInfo.productId, productInfo);\n } else {\n if (productInfoMap.has(app.key.appId)) {\n productInfo = productInfoMap.get(app.key.appId);\n }\n productInfo.name = app.sharedMarketingInformation.name;\n productInfo.tagline = app.sharedMarketingInformation.tagline;\n productInfo.icon = app.sharedMarketingInformation.iconUrl;\n productInfo.productId = app.key.appId;\n productInfoMap.set(productInfo.productId, productInfo);\n }\n });\n return Array.from(productInfoMap.values());\n }),\n );\n }\n\n getAnswers(): Observable {\n return this.salesOrderService.order$.pipe(\n map((order) => {\n if (order) {\n const answers: CustomFieldsAnswers[] = [];\n if (order.customFields) {\n order.customFields.map((c) => {\n let fieldAnswers: CustomFieldsAnswer[] = [];\n if (c.fields) {\n fieldAnswers = c.fields.map((f) => ({ fieldId: f.fieldId, answer: f.answer }));\n }\n answers.push({\n productID: c.productId || (c.addonKey ? c.addonKey.appId : ''),\n addonKey: c.addonKey,\n customFieldsAnswers: fieldAnswers,\n });\n });\n }\n return answers;\n }\n return [];\n }),\n );\n }\n\n getExtraQuestions(): Observable {\n return this.salesOrderService.orderConfig$.pipe(\n map((config) => {\n return !!config && !!config.extraFields\n ? config.extraFields.map((f) => ({ ...f, options: f.optionsWithLabels } as OrderFormFieldOptionsType))\n : [];\n }),\n );\n }\n\n getExtraAnswers(): Observable {\n return this.salesOrderService.order$.pipe(\n map((order) => {\n if (order) {\n return order.extraFields || [];\n }\n return [];\n }),\n );\n }\n\n updateAnswers(commonFormData: CommonField[], customFormData: CustomField[], extraFields: Field[]): Observable {\n return this.salesOrderService.order$.pipe(\n switchMap((order) => {\n return this.salesOrderSdk.updateAnswers(\n order.orderId,\n order.businessId,\n customFormData,\n commonFormData,\n extraFields,\n );\n }),\n );\n }\n\n hasQuestions(orderFormOptions: OrderFormOptionsInterface): Observable {\n return combineLatest([this.getExtraQuestions(), this.getOrderForms(orderFormOptions)]).pipe(\n map(([questions, forms]) => {\n const hasExtraQuestions = questions?.length > 0;\n\n const commonFormHasQuestions = (commonForm?: IncludedCommonFormFieldsInterface) => {\n return (\n commonForm &&\n Object.values(commonForm).some((field) => {\n return typeof field === 'boolean' && field;\n })\n );\n };\n\n const hasQuestions = forms.some((form) => {\n const hasCommonForm = commonFormHasQuestions(form.commonForm);\n const hasCommonFormRequiredFields = commonFormHasQuestions(form.commonFormRequiredFields);\n const hasCustomFields = form.customFields && form.customFields.length > 0;\n return hasCommonForm || hasCommonFormRequiredFields || hasCustomFields;\n });\n return hasQuestions || hasExtraQuestions;\n }),\n );\n }\n}\n", "import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Inject,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { UntypedFormControl, UntypedFormGroup } from '@angular/forms';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { CommonField, CustomField, Field, LineItem, LineItemInterface, Order, Status } from '@vendasta/sales-orders';\nimport {\n CommonFormData,\n CustomFieldsAnswer,\n CustomFieldsAnswers,\n OrderFormComponent,\n OrderFormFieldOptionsType,\n OrderFormInterface,\n OrderFormOptionsInterface,\n ProductInfoInterface,\n} from '@vendasta/store';\nimport { BehaviorSubject, Observable, Subscription, combineLatest, zip } from 'rxjs';\nimport { map, take, tap } from 'rxjs/operators';\nimport { PARTNER_ID_TOKEN } from '../..';\nimport { SalesOrderStoreService } from '../sales-order-store.service';\nimport { User } from './interface';\nimport { SalesOrderFormService } from './sales-order-form.service';\nimport { SalesOrderService } from './sales-order.service';\n\ninterface OrderData {\n orderForms: OrderFormInterface[];\n productInfo: ProductInfoInterface[];\n commonData: CommonFormData;\n answers: CustomFieldsAnswers[];\n extraQuestions: OrderFormFieldOptionsType[];\n extraAnswers: CustomFieldsAnswer[];\n users: User[];\n orderFormOptions: OrderFormOptionsInterface;\n partnerId: string;\n businessId: string;\n}\n\n@Component({\n templateUrl: 'sales-order-form.component.html',\n providers: [SalesOrderFormService, SalesOrderService],\n selector: 'sales-ui-sales-order-form',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['../../shared/shared-styles.scss', './sales-order-form.component.scss'],\n standalone: false,\n})\nexport class SalesOrderFormComponent implements OnInit, OnDestroy {\n @ViewChild('vaOrderForm')\n public orderFormComponent: OrderFormComponent;\n\n @Input() businessId: string;\n @Input() orderId: string;\n @Input() lineItems: LineItemInterface[];\n @Input() userOptions: User[];\n @Input() orderFormOptions: OrderFormOptionsInterface;\n @Input() fileUploadUrl = ''; // TODO: Provide a generic upload url instead?\n @Input() showSelfSaveButton = false;\n @Input() answers: CustomFieldsAnswers[] = [];\n\n @Output() loading: EventEmitter = new EventEmitter();\n @Output() hasSalesOrderFormEvent: EventEmitter = new EventEmitter();\n\n form: UntypedFormGroup;\n orderForms$: Observable;\n commonData$: Observable;\n productInfo$: Observable;\n answers$: Observable;\n extraQuestions$: Observable;\n extraAnswers$: Observable;\n orderData$: Observable;\n submitting = false;\n orderStatus: Status;\n\n loading$$: BehaviorSubject = new BehaviorSubject(true);\n loading$: Observable = this.loading$$.asObservable();\n\n subscriptions: Subscription[] = [];\n\n constructor(\n private alertService: SnackbarService,\n private salesOrderFormService: SalesOrderFormService,\n private salesOrderStoreService: SalesOrderStoreService,\n private cdr: ChangeDetectorRef,\n @Inject(PARTNER_ID_TOKEN) private readonly partnerId$: Observable,\n ) {}\n\n ngOnInit(): void {\n this.subscriptions.push(\n this.salesOrderStoreService\n .getOrderState(this.orderId, this.businessId)\n .pipe(\n tap((orderState) => {\n if (orderState.loading) {\n this.loading$$.next(true);\n } else {\n this.orderStatus = orderState.order?.status;\n }\n }),\n )\n .subscribe(),\n );\n\n this.salesOrderFormService.initialize(this.businessId, this.orderId, this.lineItems, this.userOptions);\n this.form = new UntypedFormGroup({});\n\n this.orderForms$ = this.salesOrderFormService.getOrderForms(this.orderFormOptions);\n this.commonData$ = this.salesOrderFormService.getCommonData();\n this.productInfo$ = this.salesOrderFormService.getProductInfo();\n this.extraQuestions$ = this.salesOrderFormService.getExtraQuestions();\n this.extraAnswers$ = this.salesOrderFormService.getExtraAnswers();\n\n this.answers$ = this.salesOrderFormService.getAnswers().pipe(\n map((answers) => {\n if (answers.length > 0) {\n return answers;\n }\n\n return this.answers;\n }),\n );\n\n this.orderData$ = combineLatest([\n zip(this.orderForms$, this.productInfo$, this.commonData$, this.answers$, this.extraAnswers$),\n this.extraQuestions$,\n this.partnerId$,\n ]).pipe(\n map(([[orderForms, productInfo, commonData, answers, extraAnswers], extraQuestions, partnerId]) => {\n return {\n orderForms: orderForms,\n productInfo: productInfo,\n commonData: commonData,\n answers: answers,\n extraQuestions: extraQuestions,\n extraAnswers: extraAnswers,\n users: this.userOptions,\n orderFormOptions: this.orderFormOptions,\n status: this.orderStatus,\n partnerId: partnerId,\n businessId: this.businessId,\n };\n }),\n tap((orderData) => {\n if (orderData.orderForms?.length === 0 && orderData.extraQuestions?.length === 0) {\n this.hasSalesOrderFormEvent.emit(false);\n }\n this.loading$$.next(false);\n }),\n );\n\n this.subscriptions.push(this.loading$.pipe(tap((loading) => this.loading.emit(loading))).subscribe());\n }\n\n ngOnDestroy(): void {\n this.subscriptions.forEach((sub) => {\n sub.unsubscribe();\n });\n this.salesOrderStoreService.clearOrderStateCache();\n }\n\n /**\n * returns the data from common form fields in a format that is usable by sales orders\n */\n public getCommonFormData(): CommonField[] {\n return this.orderFormComponent?.getCommonFormData();\n }\n\n /**\n * returns the data from custom forms in a format that is usable by sales orders\n */\n public getCustomFormData(): CustomField[] {\n return this.orderFormComponent?.getCustomFormData();\n }\n\n /**\n * returns the data from extra fields in a format that is usable by sales orders\n */\n public getExtraFieldsData(): Field[] {\n return this.orderFormComponent?.getExtraFieldsData();\n }\n\n /**\n * returns true if the order form contains fields that need to be filled out by the partner\n */\n public requiresPartnerInput(): boolean {\n return this.orderFormComponent?.orderFormRequiresPartnerInput();\n }\n\n /**\n * returns the line items used in this form\n */\n public getLineItems(): LineItem[] {\n return this.lineItems.map((li) => new LineItem(li));\n }\n\n /**\n * changes the read only state of the sales order form\n */\n public changeReadOnly(readOnly: boolean): void {\n this.orderFormComponent.changeReadOnly(readOnly);\n }\n\n /**\n * returns whether or not the sales order form is valid and touches all controls\n */\n public validateForm(): boolean {\n const valid = this.form.valid;\n if (!valid) {\n this.setAsTouched(this.form);\n }\n return valid;\n }\n\n public openDropdown(): void {\n this.orderFormComponent.openDropdown();\n }\n\n clickUpdate(): void {\n const result$ = this.updateAnswers();\n if (!result$) {\n return;\n }\n result$.subscribe(\n () => {\n this.alertService.openSuccessSnack('FRONTEND.SALES_UI.ORDER_FORM_ANSWERS_UPDATED');\n },\n () => {\n this.alertService.openErrorSnack('FRONTEND.SALES_UI.ERRORS.ERROR_UPDATING_ORDER_FORM');\n },\n );\n }\n\n public updateAnswers(): Observable {\n if (this.orderStatus !== Status.DRAFTED && !this.validateForm()) {\n this.alertService.openErrorSnack('FRONTEND.SALES_UI.ERRORS.ERROR_FORM_NOT_VALID');\n return;\n }\n\n this.submitting = true;\n const customFormData = this.getCustomFormData();\n const extraFieldsData = this.getExtraFieldsData();\n const commonFormData = this.getCommonFormData();\n\n return this.salesOrderFormService.updateAnswers(commonFormData, customFormData, extraFieldsData).pipe(\n take(1),\n tap(() => {\n this.submitting = false;\n this.cdr.detectChanges();\n }),\n );\n }\n\n private setAsTouched(form: UntypedFormGroup): void {\n form.markAsTouched();\n const controls = form.controls;\n for (const i of Object.keys(controls)) {\n if (controls[i] instanceof UntypedFormControl) {\n controls[i].markAsTouched();\n } else if (controls[i] instanceof UntypedFormGroup) {\n this.setAsTouched(controls[i] as UntypedFormGroup);\n }\n controls[i].updateValueAndValidity();\n }\n form.updateValueAndValidity();\n }\n}\n", "\n \n \n\n\n\n
\n \n
\n \n
\n
\n
\n\n\n
\n \n
\n \n \n
\n \n
\n\n\n
\n
\n", "import { 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 { MatExpansionModule } from '@angular/material/expansion';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { LexiconModule } from '@galaxy/lexicon';\nimport { MarketplaceAppsApiService } from '@galaxy/marketplace-apps/v1';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { VaOrderFormModule } from '@vendasta/store';\nimport baseTranslation from '../../assets/i18n/en_devel.json';\nimport { WEBLATE_COMPONENT_NAME } from '../../shared/constants';\nimport { SalesOrderStoreService } from '../sales-order-store.service';\nimport { SalesOrderFormComponent } from './sales-order-form.component';\nimport { SalesOrderFormService } from './sales-order-form.service';\nimport { SalesOrderService } from './sales-order.service';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n VaOrderFormModule,\n TranslateModule,\n LexiconModule.forChild({\n componentName: WEBLATE_COMPONENT_NAME,\n baseTranslation: baseTranslation,\n }),\n MatButtonModule,\n MatCardModule,\n MatProgressSpinnerModule,\n MatExpansionModule,\n ],\n declarations: [SalesOrderFormComponent],\n exports: [SalesOrderFormComponent],\n providers: [\n SalesOrderService,\n SalesOrderFormService,\n SalesOrderStoreService,\n { provide: 'MarketplaceAppsServiceInterface', useExisting: MarketplaceAppsApiService },\n ],\n})\nexport class SalesOrderFormModule {}\n", "import { ChangeDetectorRef, Component, Inject, OnInit } from '@angular/core';\nimport { UntypedFormControl } from '@angular/forms';\nimport { MatAutocompleteSelectedEvent } from '@angular/material/autocomplete';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { IAMService, SortDirection, User, UserSortField } from '@vendasta/iam';\nimport { BehaviorSubject } from 'rxjs';\nimport { debounceTime, map, switchMap, take, withLatestFrom } from 'rxjs/operators';\n\n// SelectedSalesperson is needed to distinguish between the user clicking cancel to close the modal and\n// them unselecting the salesperson\nexport interface SelectedSalesperson {\n salesperson: User;\n}\n\n@Component({\n selector: 'sales-ui-salesperson-selector-dialog',\n templateUrl: './salesperson-selector-dialog.component.html',\n styleUrls: ['./salesperson-selector-dialog.component.scss'],\n standalone: false,\n})\nexport class SalespersonSelectorDialogComponent implements OnInit {\n selectedSalesperson: User;\n salespersonOptions$$ = new BehaviorSubject([]);\n salespersonOptions$ = this.salespersonOptions$$.asObservable();\n cursor = '';\n pageSize = 25;\n hasMore = true;\n searchCtrl = new UntypedFormControl('');\n searchTerm$$ = new BehaviorSubject('');\n loadMore$$ = new BehaviorSubject(null);\n partnerId: string;\n loading: boolean;\n\n constructor(\n private readonly userLookupService: IAMService,\n @Inject(MAT_DIALOG_DATA) public data: { partnerId: string; previouslySelectedUser: string },\n private dialogRef: MatDialogRef,\n private readonly cdr: ChangeDetectorRef,\n ) {\n this.partnerId = data.partnerId;\n }\n\n ngOnInit(): void {\n if (this.data?.previouslySelectedUser) {\n this.userLookupService\n .getMultiUsers([{ userId: this.data.previouslySelectedUser }])\n .pipe(take(1))\n .subscribe((user) => {\n if (!!user && user.length == 1) {\n this.selectedSalesperson = user[0];\n this.setSalespersonInputText(this.selectedSalesperson);\n }\n });\n }\n this.searchCtrl.valueChanges.pipe(map((searchTerm) => searchTerm ?? '')).subscribe((searchTerm) => {\n this.cursor = '';\n this.hasMore = true;\n this.searchTerm$$.next(searchTerm);\n });\n this.searchTerm$$\n .pipe(\n debounceTime(200),\n switchMap((searchTerm) => {\n this.loading = true;\n this.cdr.detectChanges();\n\n return this.userLookupService.listUsers(\n this.partnerId,\n null,\n this.cursor,\n this.pageSize,\n ['sales_person'],\n [searchTerm],\n [\n {\n direction: SortDirection.SORT_DIRECTION_ASCENDING,\n field: UserSortField.USER_SORT_FIELD_FIRST_NAME,\n },\n {\n direction: SortDirection.SORT_DIRECTION_ASCENDING,\n field: UserSortField.USER_SORT_FIELD_LAST_NAME,\n },\n ],\n );\n }),\n )\n .subscribe((resp) => this.updateSalespersonOptions([], resp.users, resp.nextCursor, resp.hasMore));\n this.loadMore$$\n .pipe(\n withLatestFrom(this.searchTerm$$),\n switchMap(([, searchTerm]) => {\n this.loading = true;\n this.cdr.detectChanges();\n return this.userLookupService.listUsers(\n this.partnerId,\n null,\n this.cursor,\n this.pageSize,\n ['sales_person'],\n [searchTerm],\n [\n {\n direction: SortDirection.SORT_DIRECTION_ASCENDING,\n field: UserSortField.USER_SORT_FIELD_FIRST_NAME,\n },\n {\n direction: SortDirection.SORT_DIRECTION_ASCENDING,\n field: UserSortField.USER_SORT_FIELD_LAST_NAME,\n },\n ],\n );\n }),\n withLatestFrom(this.salespersonOptions$$),\n )\n .subscribe(([resp, currentSalespersonOptions]) =>\n this.updateSalespersonOptions(currentSalespersonOptions, resp.users, resp.nextCursor, resp.hasMore),\n );\n\n this.salespersonOptions$$.next([]);\n }\n\n selectSalesperson(event: MatAutocompleteSelectedEvent): void {\n this.selectedSalesperson = event?.option?.value as User;\n this.setSalespersonInputText(this.selectedSalesperson);\n }\n\n setSalespersonInputText(user: User): void {\n if (user) {\n this.searchCtrl.setValue(`${user.firstName} ${user.lastName}`);\n } else {\n this.searchCtrl.setValue('');\n }\n }\n\n unselectSalesperson(): void {\n this.selectedSalesperson = null;\n this.setSalespersonInputText(this.selectedSalesperson);\n }\n\n loadMore(): void {\n if (!this.hasMore) {\n return;\n }\n\n this.loadMore$$.next(null);\n }\n\n updateSalespersonOptions(\n currentSalespersonOptions: User[],\n newSalespersonOptions: User[],\n nextCursor: string,\n hasMore: boolean,\n ): void {\n let salespersonOptions = currentSalespersonOptions || [];\n if (newSalespersonOptions) {\n salespersonOptions = salespersonOptions.concat(newSalespersonOptions);\n }\n this.salespersonOptions$$.next(salespersonOptions);\n this.cursor = nextCursor;\n this.hasMore = hasMore;\n this.loading = false;\n this.cdr.detectChanges();\n }\n\n select() {\n this.dialogRef.close({ salesperson: this.selectedSalesperson });\n }\n}\n", "
\n

{{ 'LIB_ORDERS.SALES_ORDERS.UPDATE_SALESPERSON' | translate }}

\n \n @if (salespersonOptions$ | async; as salespersonOptions) {\n \n \n {{ 'LIB_ORDERS.SALES_ORDERS.SELECT_SALESPERSON' | translate }}\n \n @if (loading) {\n \n }\n @if (selectedSalesperson) {\n \n }\n \n \n @for (user of salespersonOptions; track user) {\n \n
{{ user?.firstName }} {{ user?.lastName }}
\n
\n }\n \n
\n
\n }\n
\n \n \n \n \n
\n", "import { InjectionToken } from '@angular/core';\nimport { OrdersRow } from '../interface';\n\nexport const ORDER_LINK = new InjectionToken<(order: OrdersRow) => string>('SALES_ORDERS_TABLE_ORDER_LINK', {\n providedIn: 'root',\n factory: () => (order: OrdersRow) => `/order-management/${order.businessId}/info/${order.orderId}`,\n});\n", "import { Directive, EventEmitter, Input } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { ColumnDefinition, CustomCellComponent } from '@vendasta/va-filter2-table';\nimport { OrdersRow } from '../interface';\n\n// eslint-disable-next-line @angular-eslint/directive-selector\n@Directive({\n selector: '[salesUiSalesOrderTableCustomComponentSelector]',\n standalone: false,\n})\nexport class SalesOrderTableCustomComponentDirective implements CustomCellComponent {\n @Input() columnDefinition: ColumnDefinition;\n @Input() translateService: TranslateService;\n @Input() element: OrdersRow;\n @Input() eventEmitter: EventEmitter;\n}\n", "import { Observable } from 'rxjs';\nimport { InjectionToken } from '@angular/core';\n\nexport interface AccessService {\n canModifyCustomFields$?: Observable;\n hasPartnerPermissions$?: Observable;\n orderTableSalespersonLinkAccess$?: Observable;\n}\n\nexport const SALES_ORDERS_ACCESS_SERVICE_TOKEN = new InjectionToken(\n 'App-specific access service for the sales orders table',\n);\n", "import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Inject,\n inject,\n Optional,\n ViewEncapsulation,\n} from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { Router } from '@angular/router';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { SalesOrdersService, Status } from '@vendasta/sales-orders';\nimport { Observable, of } from 'rxjs';\nimport { finalize, map, switchMap, take } from 'rxjs/operators';\nimport { SalespersonSelectorDialogComponent } from '../../salesperson-selector-dialog/salesperson-selector-dialog.component';\nimport { ORDER_LINK } from './order-link';\nimport { SalesOrderTableCustomComponentDirective } from './sales-order-table-custom.component';\nimport { SALES_ORDERS_ACCESS_SERVICE_TOKEN } from '../sales-orders-table-access.service';\n\n@Component({\n selector: 'sales-ui-order-id-cell',\n template: `\n
\n \n \n \n @if (hasPartnerPermissions$ | async) {\n \n {{ 'FRONTEND.SALES_UI.ARCHIVE' | translate }}\n \n \n {{ 'FRONTEND.SALES_UI.IGNORE_ERRORS' | translate }}\n \n \n {{ 'FRONTEND.SALES_UI.CANCEL' | translate }}\n \n \n }\n \n @if (canEditCustomFields$ | async) {\n \n {{ 'FRONTEND.SALES_UI.EDIT_CUSTOM_FIELDS' | translate }}\n \n }\n \n \n \n \n \n
\n `,\n styles: [\n `\n .sales-order-actions-cell {\n text-align: center;\n }\n `,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n standalone: false,\n})\nexport class SalesOrderActionsCellComponent extends SalesOrderTableCustomComponentDirective {\n protected readonly status = Status;\n protected loading = false;\n private readonly orderLink = inject(ORDER_LINK);\n protected readonly canEditCustomFields$: Observable;\n protected readonly hasPartnerPermissions$: Observable;\n\n constructor(\n private readonly salesOrdersService: SalesOrdersService,\n private readonly alertService: SnackbarService,\n private readonly cdk: ChangeDetectorRef,\n private readonly dialog: MatDialog,\n private readonly router: Router,\n @Optional() @Inject(SALES_ORDERS_ACCESS_SERVICE_TOKEN) private readonly accessService,\n ) {\n super();\n this.canEditCustomFields$ = this.accessService?.canModifyCustomFields$\n ? this.accessService.canModifyCustomFields$\n : of(false);\n this.hasPartnerPermissions$ = this.accessService?.hasPartnerPermissions$\n ? this.accessService.hasPartnerPermissions$\n : of(false);\n }\n\n protected archive(): void {\n this.loading = true;\n this.hasPartnerPermissions$\n .pipe(\n switchMap((hasPermission) =>\n hasPermission ? this.salesOrdersService.archive(this.element.businessId, this.element.orderId) : of(null),\n ),\n )\n .pipe(\n take(1),\n finalize(() => {\n this.loading = false;\n this.cdk.detectChanges();\n }),\n )\n .subscribe({\n next: (order) => {\n if (order) {\n this.element.status = Status.ARCHIVED;\n } else {\n this.alertService.openErrorSnack('FRONTEND.SALES_UI.ERRORS.ERROR_PERMISSION_DENIED');\n }\n },\n error: () => {\n this.alertService.openErrorSnack('FRONTEND.SALES_UI.ERRORS.ERROR_ARCHIVING');\n },\n });\n }\n\n protected cancel(): void {\n this.loading = true;\n this.hasPartnerPermissions$\n .pipe(\n switchMap((hasPermission) =>\n hasPermission\n ? this.salesOrdersService.approveCancellation(this.element.orderId, this.element.businessId)\n : of(null),\n ),\n )\n .pipe(\n take(1),\n finalize(() => {\n this.loading = false;\n this.cdk.detectChanges();\n }),\n )\n .subscribe({\n next: (order) => {\n if (order) {\n this.element.status = Status.CANCELLED;\n } else {\n this.alertService.openErrorSnack('FRONTEND.SALES_UI.ERRORS.ERROR_PERMISSION_DENIED');\n }\n },\n error: () => {\n this.alertService.openErrorSnack('FRONTEND.SALES_UI.ERRORS.ERROR_CANCELLING');\n },\n });\n }\n\n protected ignoreErrors(): void {\n this.loading = true;\n this.hasPartnerPermissions$\n .pipe(\n switchMap((hasPermission) =>\n hasPermission\n ? this.salesOrdersService.ignoreAllProductActivationErrors(this.element.orderId, this.element.businessId)\n : of(null),\n ),\n )\n .pipe(\n take(1),\n finalize(() => {\n this.loading = false;\n this.cdk.detectChanges();\n }),\n )\n .subscribe({\n next: (order) => {\n if (order) {\n this.element.status = Status.FULFILLED;\n } else {\n this.alertService.openErrorSnack('FRONTEND.SALES_UI.ERRORS.ERROR_PERMISSION_DENIED');\n }\n },\n error: () => {\n this.alertService.openErrorSnack('FRONTEND.SALES_UI.ERRORS.ERROR_IGNORING_ERRORS');\n },\n });\n }\n\n protected duplicateOrder(): void {\n this.loading = true;\n this.salesOrdersService\n .duplicate(this.element.orderId, this.element.businessId)\n .pipe(\n take(1),\n map((orderId) => {\n const orderRow = this.element;\n orderRow.orderId = orderId;\n const url = this.orderLink(orderRow);\n this.router.navigate([url]);\n }),\n finalize(() => {\n this.loading = false;\n this.cdk.detectChanges();\n }),\n )\n .subscribe();\n }\n\n protected changeSalesperson(): void {\n this.hasPartnerPermissions$\n .pipe(\n switchMap((hasPermission) =>\n hasPermission\n ? this.dialog\n .open(SalespersonSelectorDialogComponent, {\n data: {\n partnerId: this.element.partnerId,\n previouslySelectedUser: this.element.salespersonId,\n },\n width: '600px',\n })\n .afterClosed()\n : of(null),\n ),\n )\n .pipe(\n switchMap((selectedSalesperson) => {\n if (selectedSalesperson) {\n this.loading = true;\n this.cdk.detectChanges();\n return this.salesOrdersService\n .updateSalesperson(\n this.element.orderId,\n this.element.businessId,\n selectedSalesperson?.salesperson?.userId,\n )\n .pipe(map(() => selectedSalesperson));\n }\n return of(null);\n }),\n )\n .subscribe({\n next: (selectedSalesperson) => {\n if (selectedSalesperson) {\n this.element.salesperson = {\n firstName: selectedSalesperson?.salesperson?.firstName,\n lastName: selectedSalesperson?.salesperson?.lastName,\n email: selectedSalesperson?.salesperson?.email,\n // There is no phone number on the selectedSalesperson and it's not used in this table anyway but this\n // key needs to be here to fulfill the object interface\n phoneNumber: '',\n };\n this.element.salespersonId = selectedSalesperson?.salesperson?.userId;\n this.loading = false;\n this.cdk.detectChanges();\n }\n },\n error: (err) => {\n console.error(err);\n this.alertService.openErrorSnack('FRONTEND.SALES_UI.ERRORS.ERROR_UPDATING_SALESPERSON');\n this.loading = false;\n this.cdk.detectChanges();\n },\n });\n }\n}\n", "import { ChangeDetectionStrategy, Component, inject, InjectionToken, OnInit } from '@angular/core';\nimport { AddressService } from '@vendasta/businesses';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { tap } from 'rxjs/operators';\nimport { Business, OrdersRow } from '../interface';\nimport { SalesOrderTableCustomComponentDirective } from './sales-order-table-custom.component';\n\nexport const BUSINESS_LINK = new InjectionToken<(order: OrdersRow) => string>('SALES_ORDERS_TABLE_BUSINESS_LINK_URL', {\n providedIn: 'root',\n factory: () => (order: OrdersRow) => `/businesses/accounts/${order.businessId}/details`,\n});\n\n@Component({\n selector: 'sales-ui-business-info-cell',\n template: `\n \n
\n
\n {{ business.companyName }}\n
\n
\n
{{ address$ | async }}
\n \n {{ business.companyName }}\n \n
\n `,\n styles: [\n `\n :host {\n display: flex;\n flex-direction: column;\n min-width: 0;\n max-width: 100%;\n }\n\n .title {\n font-size: 14px;\n font-weight: 500;\n }\n\n .subtitle {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n font-size: 14px;\n color: rgba(0, 0, 0, 0.54);\n }\n `,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class BusinessInfoCellComponent extends SalesOrderTableCustomComponentDirective implements OnInit {\n business: Business;\n address$: Observable;\n address$$: BehaviorSubject = new BehaviorSubject('');\n\n businessLink = inject(BUSINESS_LINK);\n\n constructor(private addressService: AddressService) {\n super();\n }\n\n ngOnInit(): void {\n this.business = this.element.business;\n if (this.business) {\n this.address$ = this.addressService\n .shortAddress$({\n address1: this.element.business.address,\n address2: this.element.business.address2,\n city: this.element.business.city,\n province: this.element.business.state,\n zip: this.element.business.zip,\n country: this.element.business.country,\n })\n .pipe(\n tap((address) => {\n this.address$$.next(address);\n }),\n );\n }\n }\n}\n", "import { Component, Input, OnInit } from '@angular/core';\nimport { ColumnDefinition, CellValueService } from '@vendasta/va-filter2-table';\nimport moment from 'moment';\n\n@Component({\n selector: 'sales-ui-date-cell',\n template: `\n \n {{ momentFormatDate(value, 'ddd MMM D YYYY') }}\n \n `,\n standalone: false,\n})\nexport class DateCellComponent implements OnInit {\n @Input() columnDefinition: ColumnDefinition;\n\n @Input() element: T;\n\n value: any;\n\n constructor(private readonly cellValueService: CellValueService) {}\n\n ngOnInit(): void {\n this.value = this.cellValueService.getCellValue(\n this.columnDefinition.id,\n this.columnDefinition.field,\n this.element,\n );\n }\n\n momentFormatDate(date: Date, format: string): string {\n return moment(date).format(format);\n }\n}\n", "import { Component, OnInit } from '@angular/core';\nimport moment from 'moment';\nimport { SalesOrderTableCustomComponentDirective } from './sales-order-table-custom.component';\n\n@Component({\n selector: 'sales-ui-date-cell',\n template: `\n \n {{ fromNow }}\n \n \n {{ 'FRONTEND.SALES_UI.EXPIRED' | translate }}\n \n `,\n standalone: false,\n})\nexport class ExpiryCellComponent extends SalesOrderTableCustomComponentDirective implements OnInit {\n expiryDate: Date;\n fromNow: string;\n showDate = false;\n showExpired = false;\n\n ngOnInit(): void {\n if (this.element?.expiryDate) {\n const expiryMoment = moment(this.element?.expiryDate);\n this.expiryDate = expiryMoment.toDate();\n if (expiryMoment.isBefore(moment())) {\n this.showExpired = true;\n } else {\n this.fromNow = expiryMoment.fromNow();\n this.showDate = true;\n }\n }\n }\n\n momentFormatDate(date: Date, format: string): string {\n return moment(date).format(format);\n }\n}\n", "import { Component, inject } from '@angular/core';\nimport { ORDER_LINK } from './order-link';\nimport { SalesOrderTableCustomComponentDirective } from './sales-order-table-custom.component';\n\n@Component({\n selector: 'sales-ui-order-id-cell',\n template: '{{ element.orderId}}',\n styles: [\n `\n .title {\n font-size: 14px;\n font-weight: 500;\n }\n `,\n ],\n standalone: false,\n})\nexport class OrderIdCellComponent extends SalesOrderTableCustomComponentDirective {\n orderLink = inject(ORDER_LINK);\n}\n", "import { Component, OnInit } from '@angular/core';\nimport { SalesOrderTableCustomComponentDirective } from './sales-order-table-custom.component';\n\n@Component({\n selector: 'sales-ui-order-tags-cell',\n template: `\n
\n
\n {{ tag }}\n
\n
\n `,\n styles: [\n `\n .tags {\n display: flex;\n }\n .tag {\n margin: 2px;\n }\n `,\n ],\n standalone: false,\n})\nexport class OrderTagsCellComponent extends SalesOrderTableCustomComponentDirective implements OnInit {\n tags: string[];\n\n ngOnInit(): void {\n this.tags = this.element.tags || [];\n }\n}\n", "import { InjectionToken } from '@angular/core';\nimport { FulfillmentOrderStatus, Status } from '@vendasta/sales-orders';\nimport { FilterGroup, SelectFilterControl } from '@vendasta/va-filter2';\nimport { ExportToCSVRequest, ExportToCSVService, LoadRequest, TableDataService } from '@vendasta/va-filter2-table';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\nexport interface SalesOrdersTableOptions {\n forcedFilters?: ForcedFilterOptions;\n exportOptions?: RequestedExportType;\n}\n\nexport enum RequestedExportType {\n Buyer,\n Sales,\n Partner,\n}\n\n// Any value will always be filtered on and the associated selector will be hidden\nexport interface ForcedFilterOptions {\n marketIds?: string[];\n salespersonId?: string;\n businessId?: string;\n}\n\nexport const SALES_ORDERS_TABLE_FACTORY_PARAM_TOKEN = 'SALES_ORDERS_TABLE_FACTORY_PARAM_TOKEN';\nexport interface SalesOrdersTableFactoryParams {\n showActions: boolean;\n inBusinessCenter: boolean;\n}\n\nexport interface OrdersRow {\n orderId: string;\n salespersonId: string;\n salesperson: SalesOrderSalesperson;\n partnerId: string;\n businessId: string;\n marketId: string;\n status: Status;\n requestedActivation: Date;\n created: Date;\n tags: string[];\n business: Business;\n contractDurationInMonths?: number;\n expiryDate?: Date;\n fulfillmentOrderStatus?: FulfillmentOrderStatus;\n hasFulfillment?: boolean;\n isEmpty?: boolean;\n}\n\nexport interface Business {\n companyName: string;\n address: string;\n address2: string;\n city: string;\n country: string;\n state: string;\n zip: string;\n phoneNumber: string;\n website: string;\n deleted: boolean;\n}\n\nexport interface Market {\n name: string;\n marketId: string;\n}\n\nexport interface Salesperson {\n salespersonId: string;\n name: string;\n firstName: string;\n lastName: string;\n email: string;\n phoneNumber: string;\n}\n\nexport interface SalesOrderSalesperson {\n firstName: string;\n lastName: string;\n email: string;\n phoneNumber: string;\n}\n\nexport interface Salesteam {\n id: string;\n teamName: string;\n}\n\nexport enum exportDataFormatModalOption {\n ORDERS_PER_ROW = 'orders-per-row',\n PRODUCTS_PER_ROW = 'products-per-row',\n}\n\nexport abstract class BaseSalesOrdersTableFilterService {\n filters: FilterGroup;\n marketFilterControl?: SelectFilterControl;\n packageFilterSectionName?: string;\n\n abstract initialize(forcedFilterOptions: ForcedFilterOptions, canAccessSalesTeams?: boolean): void;\n}\n\nexport abstract class BaseSalesOrdersTableService implements TableDataService {\n totalResults$: Observable;\n stats$?: Observable<{ [key: string]: number }>;\n presetViews?: string;\n salesOrdersTab$$?: BehaviorSubject;\n\n abstract load(request: LoadRequest): Observable;\n abstract initialize(forcedFilterOptions: ForcedFilterOptions): void;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport abstract class BaseSalesOrdersExportAllService implements ExportToCSVService {\n abstract exportAllRowsToCSV(request: ExportToCSVRequest, option?: string): void;\n abstract initialize(forcedFilterOptions: ForcedFilterOptions, exportOptions: RequestedExportType): void;\n}\n\nexport const SALESPERSON_PROFILE_LINK = new InjectionToken('orders-table-salesperson-link');\n\nexport type SalesPersonLink = (orderId: OrdersRow) => string;\n", "import { Component, inject } from '@angular/core';\nimport { SalesOrderTableCustomComponentDirective } from './sales-order-table-custom.component';\nimport { OrdersRow, SALESPERSON_PROFILE_LINK } from '../interface';\nimport { SALES_ORDERS_ACCESS_SERVICE_TOKEN } from '../sales-orders-table-access.service';\nimport { firstValueFrom, of } from 'rxjs';\nimport { Router } from '@angular/router';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\n\n@Component({\n selector: 'sales-ui-salesperson-cell',\n template: `\n \n
\n @if (hasLinkAccess$ | async) {\n \n \n \n } @else {\n \n }\n
\n
{{ element.salesperson?.email }}
\n
\n \n @if (element.salesperson?.firstName && element.salesperson?.lastName) {\n {{ element.salesperson?.firstName + ' ' + element.salesperson?.lastName }}\n } @else if (element.salesperson?.firstName) {\n {{ element.salesperson?.firstName }}\n } @else if (element.salesperson?.lastName) {\n {{ element.salesperson?.lastName }}\n }\n \n `,\n styles: [\n `\n :host {\n display: flex;\n flex-direction: column;\n min-width: 0;\n max-width: 100%;\n }\n\n .title {\n font-size: 14px;\n font-weight: 500;\n }\n\n .subtitle {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n font-size: 14px;\n color: rgba(0, 0, 0, 0.54);\n }\n `,\n ],\n standalone: false,\n})\nexport class SalespersonCellComponent extends SalesOrderTableCustomComponentDirective {\n private readonly accessService = inject(SALES_ORDERS_ACCESS_SERVICE_TOKEN, { optional: true });\n protected readonly hasLinkAccess$ = this.accessService.orderTableSalespersonLinkAccess$\n ? this.accessService.orderTableSalespersonLinkAccess$\n : of(false);\n\n protected readonly salespersonLink = inject(SALESPERSON_PROFILE_LINK);\n private readonly router = inject(Router);\n private readonly snackbarService = inject(SnackbarService);\n\n protected async linkClicked(order: OrdersRow): Promise {\n const hasAccess = await firstValueFrom(this.hasLinkAccess$);\n if (hasAccess) {\n this.router.navigateByUrl(this.salespersonLink(order));\n } else {\n this.snackbarService.openErrorSnack('FRONTEND.SALES_UI.ERRORS.ERROR_PERMISSION_DENIED');\n }\n }\n}\n", "import { Component } from '@angular/core';\nimport { Status } from '@vendasta/sales-orders';\nimport { SalesOrderTableCustomComponentDirective } from './sales-order-table-custom.component';\n\n@Component({\n selector: 'sales-ui-status-cell',\n template: '{{\"FRONTEND.SALES_UI.\" + getStatusName() | translate}}',\n standalone: false,\n})\nexport class StatusCellComponent extends SalesOrderTableCustomComponentDirective {\n status = Status;\n\n getStatusName(): string {\n const statusName = this.status[this.element.status];\n\n if (statusName) {\n return statusName;\n }\n\n return 'PENDING';\n }\n}\n", "import { Inject, Injectable } from '@angular/core';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { SalesTeamService } from '@vendasta/sales';\nimport {\n CustomerSalesOrdersService,\n InitiateOrderExportRequest,\n InitiateOrderExportRequestDataFormatOption,\n InitiateOrderExportRequestFilters,\n InitiateOrderExportRequestFiltersInterface,\n InitiateOrderExportRequestSortDirection,\n InitiateOrderExportRequestSortField,\n InitiateOrderExportRequestSortOption,\n InitiateOrderExportRequestSortOptionInterface,\n Status,\n} from '@vendasta/sales-orders';\nimport { ExportToCSVRequest, SortDirection, SortSetting } from '@vendasta/va-filter2-table';\nimport { Observable, combineLatest, of } from 'rxjs';\nimport { catchError, map, switchMap } from 'rxjs/operators';\nimport { PARTNER_ID_TOKEN } from '../external-dependencies/provider-tokens';\nimport {\n BaseSalesOrdersExportAllService,\n ForcedFilterOptions,\n RequestedExportType,\n exportDataFormatModalOption,\n} from './interface';\n\n@Injectable()\nexport class SalesOrdersExportAllService implements BaseSalesOrdersExportAllService {\n // forced filters apply when the end user is only able to view certain data (salesperson, smb has different context than partner)\n private forcedFilterOptions: ForcedFilterOptions;\n private exportOptions: RequestedExportType;\n\n constructor(\n private readonly salesOrderService: CustomerSalesOrdersService,\n @Inject(PARTNER_ID_TOKEN) private readonly partnerId$: Observable,\n private readonly salesTeamService: SalesTeamService,\n private readonly alertService: SnackbarService,\n ) {}\n\n static convertSortOptions(sort: SortSetting[]): InitiateOrderExportRequestSortOption | null {\n let s: InitiateOrderExportRequestSortOptionInterface = null;\n if (!!sort && sort.length > 0) {\n s = {};\n s.direction =\n sort[0].direction === SortDirection.SORT_DIRECTION_ASCENDING\n ? InitiateOrderExportRequestSortDirection.ASCENDING\n : InitiateOrderExportRequestSortDirection.DESCENDING;\n switch (sort[0].field) {\n case 'status':\n s.field = InitiateOrderExportRequestSortField.STATUS;\n break;\n case 'requestedActivation':\n s.field = InitiateOrderExportRequestSortField.REQUESTED_ACTIVATION;\n break;\n case 'created':\n s.field = InitiateOrderExportRequestSortField.CREATED;\n break;\n case 'expiry':\n s.field = InitiateOrderExportRequestSortField.EXPIRY_DATE;\n break;\n default:\n s = null;\n }\n }\n if (s) {\n return new InitiateOrderExportRequestSortOption(s);\n }\n return null;\n }\n\n static convertFilters(\n filters: any,\n filteredTeamSalesPersonIds: string[],\n forcedMarkets?: string[],\n forcedSalesperson?: string,\n forcedBusinessId?: string,\n ): InitiateOrderExportRequestFilters | null {\n const f: InitiateOrderExportRequestFiltersInterface = {};\n f.statuses = [];\n f.created = {};\n f.requestedActivation = {};\n f.expiryDate = {};\n\n // status filters\n if (filters.controls['activated']?.value || filters.value['activated']) {\n f.statuses.push(Status.FULFILLED);\n }\n if (filters.controls['activation-errors']?.value || filters.value['activation-errors']) {\n f.statuses.push(Status.ACTIVATION_ERRORS);\n }\n if (filters.controls['approved']?.value || filters.value['approved']) {\n f.statuses.push(Status.APPROVED);\n }\n if (filters.controls['archived']?.value || filters.value['archived']) {\n f.statuses.push(Status.ARCHIVED);\n }\n if (filters.controls['awaiting-customer-approval']?.value || filters.value['awaiting-customer-approval']) {\n f.statuses.push(Status.SUBMITTED_FOR_CUSTOMER_APPROVAL);\n }\n if (filters.controls['declined']?.value || filters.value['declined']) {\n f.statuses.push(Status.DECLINED);\n }\n if (filters.controls['pending']?.value || filters.value['pending']) {\n f.statuses.push(Status.SUBMITTED);\n }\n if (filters.controls['processing']?.value || filters.value['processing']) {\n f.statuses.push(Status.PROCESSING);\n }\n if (filters.controls['drafted']?.value || filters.value['drafted']) {\n f.statuses.push(Status.DRAFTED);\n }\n if (filters.controls['cancellation-requested']?.value || filters.value['cancellation-requested']) {\n f.statuses.push(Status.CANCELLATION_REQUESTED);\n }\n if (filters.controls['cancelled']?.value || filters.value['cancelled']) {\n f.statuses.push(Status.CANCELLED);\n }\n if (filters.controls['scheduled-activation']?.value || filters.value['scheduled-activation']) {\n f.statuses.push(Status.SCHEDULED_ACTIVATION);\n }\n\n // date filters\n if (filters.controls['submittedDateFromControl'].value) {\n f.created.beginRange = filters.controls['submittedDateFromControl'].value;\n }\n if (filters.controls['submittedDateToControl'].value) {\n f.created.endRange = filters.controls['submittedDateToControl'].value;\n }\n\n if (filters.controls['contractStartFrom'].value) {\n f.requestedActivation.beginRange = filters.controls['contractStartFrom'].value;\n }\n if (filters.controls['contractStartToControl'].value) {\n f.requestedActivation.endRange = filters.controls['contractStartToControl'].value;\n }\n\n if (filters.controls['expiryDateFrom'].value) {\n f.expiryDate.beginRange = filters.controls['expiryDateFrom'].value;\n }\n if (filters.controls['expiryDateTo'].value) {\n f.expiryDate.endRange = filters.controls['expiryDateTo'].value;\n }\n\n // other filters\n if (filters.controls['tag'].value) {\n f.tags = [filters.controls['tag'].value];\n }\n if (filters.controls['untagged'].value) {\n f.untagged = true;\n }\n if (filters.controls['orderId'].value) {\n f.orderId = filters.controls['orderId'].value;\n }\n\n if (filters.controls['package']?.value) {\n f.packageIds = [filters.controls['package'].value.packageId];\n }\n\n // forced filters; based on which client the table is being viewed\n if (forcedMarkets) {\n // Salesperson view has a forced market filter\n f.marketIds = forcedMarkets;\n } else if (filters.controls['market'].value) {\n f.marketIds = [filters.controls['market'].value.marketId];\n }\n\n if (forcedBusinessId) {\n // SMB view has a forced business filter\n f.businessIds = [forcedBusinessId];\n } else if (filters.controls['businessId'].value) {\n f.businessIds = [filters.controls['businessId'].value];\n }\n\n if (forcedSalesperson) {\n // Some Salesperson views have access to more than the current Salesperson\n f.salespersonIds = [forcedSalesperson];\n } else if (filters.controls['salesPeople'].value) {\n const salespersonId = filters.controls['salesPeople'].value.salespersonId;\n // currently uses the selected sales team to append additional salesperson IDs from what may have been selected\n f.salespersonIds = filteredTeamSalesPersonIds.includes(salespersonId)\n ? filteredTeamSalesPersonIds\n : [...filteredTeamSalesPersonIds, salespersonId];\n } else if (filters.controls['salesTeam'].value) {\n f.salespersonIds = filteredTeamSalesPersonIds.length === 0 ? [] : filteredTeamSalesPersonIds;\n }\n\n if (f) {\n return new InitiateOrderExportRequestFilters(f);\n }\n return null;\n }\n\n // initializes the service with forced filters based on which client is viewing the table\n // eg. SMBs in Business Center have a forced filter for businessId\n // Salespeople in Sales Center have a forced filter for marketId\n initialize(forcedFilterOptions: ForcedFilterOptions, exportOptions: RequestedExportType): void {\n this.forcedFilterOptions = forcedFilterOptions;\n this.exportOptions = exportOptions;\n }\n\n // Gets the export data format based on:\n // 1. User selection from the download modal\n // 2. Which user type has made the request, based on the forced filter specified\n // Eg. Business Center and Sales Center Users have different access to which data/columns should be displayed in the file\n getSelectedDataFormat(fileFormatSelected: string): InitiateOrderExportRequestDataFormatOption {\n let selectedDataFormat = InitiateOrderExportRequestDataFormatOption.ORDERS_PER_ROW;\n if (fileFormatSelected === exportDataFormatModalOption.PRODUCTS_PER_ROW) {\n selectedDataFormat = InitiateOrderExportRequestDataFormatOption.PRODUCTS_PER_ROW;\n }\n\n if (this.exportOptions === RequestedExportType.Buyer) {\n if (fileFormatSelected === exportDataFormatModalOption.PRODUCTS_PER_ROW) {\n selectedDataFormat = InitiateOrderExportRequestDataFormatOption.PRODUCTS_PER_ROW_BUYER;\n } else {\n selectedDataFormat = InitiateOrderExportRequestDataFormatOption.ORDERS_PER_ROW_BUYER;\n }\n } else if (this.exportOptions === RequestedExportType.Sales) {\n if (fileFormatSelected === exportDataFormatModalOption.PRODUCTS_PER_ROW) {\n selectedDataFormat = InitiateOrderExportRequestDataFormatOption.PRODUCTS_PER_ROW_SALES;\n } else {\n selectedDataFormat = InitiateOrderExportRequestDataFormatOption.ORDERS_PER_ROW_SALES;\n }\n }\n return selectedDataFormat;\n }\n\n exportAllRowsToCSV(request: ExportToCSVRequest, option?: string): void {\n const selectedDataFormat = this.getSelectedDataFormat(option);\n\n // prepare sort and filters\n const sortOptions = SalesOrdersExportAllService.convertSortOptions(request.sortingOptions);\n let salesPersonIdsBelongingToFilteredTeam$ = of([]);\n if (request.filters?.controls['salesTeam'].value) {\n salesPersonIdsBelongingToFilteredTeam$ = this.salesTeamService\n .getMembers(request.filters.controls['salesTeam'].value.id)\n .pipe(catchError(() => of([])));\n }\n const filters$ = salesPersonIdsBelongingToFilteredTeam$.pipe(\n map((salesPersonIdsBelongingToFilteredTeam) => {\n const teamSalesPersonIds = (salesPersonIdsBelongingToFilteredTeam || []).map((sp) => sp.salespersonId);\n return SalesOrdersExportAllService.convertFilters(\n request.filters,\n teamSalesPersonIds,\n this.forcedFilterOptions.marketIds,\n this.forcedFilterOptions.salespersonId,\n this.forcedFilterOptions.businessId,\n );\n }),\n );\n\n // make export request\n combineLatest([this.partnerId$, filters$])\n .pipe(\n switchMap(([partnerId, filters]) => {\n const tableUrlWithFiltersSet = window.location.href;\n const exportOrderRequest = new InitiateOrderExportRequest({\n partnerId: partnerId,\n filters: filters,\n sortOption: sortOptions,\n tryAgainUrl: tableUrlWithFiltersSet,\n selectedDataFormat: selectedDataFormat,\n });\n return this.salesOrderService.initiateOrderExport(exportOrderRequest);\n }),\n )\n .subscribe({\n next: () => {\n this.alertService.openSuccessSnack('FRONTEND.SALES_UI.EXPORT.SUCCESS_EXPORT_ALL');\n },\n error: (err) => {\n if (err.status === 429) {\n this.alertService.openErrorSnack('FRONTEND.SALES_UI.ERRORS.ERROR_EXPORT_TOO_MANY_REQUESTS');\n } else {\n this.alertService.openErrorSnack('FRONTEND.SALES_UI.ERRORS.ERROR_EXPORT_ALL');\n }\n },\n });\n }\n}\n", "import { DurationInterface, DurationPeriod } from '@vendasta/sales-orders';\n\nexport function calculateContractDurationMonths(d: DurationInterface): number {\n let months = 0;\n if (!d) {\n return months;\n }\n if (d.duration === DurationPeriod.MONTH) {\n months = d.value || 0;\n }\n if (d.duration === DurationPeriod.YEAR) {\n months = 12 * (d.value || 0);\n }\n return months;\n}\n", "import { Inject, Injectable } from '@angular/core';\nimport { BehaviorSubject, combineLatest, Observable } from 'rxjs';\nimport { map, switchMap, take } from 'rxjs/operators';\nimport { LoadRequest, SortDirection } from '@vendasta/va-filter2-table';\nimport {\n Order,\n CustomerSalesOrdersService,\n ListCustomerSalesOrderRequestFilters,\n ListCustomerSalesOrderRequestSortOption,\n ListCustomerSalesOrderRequestSortOptionInterface,\n ListCustomerSalesOrderRequestFiltersInterface,\n ListCustomerSalesOrderRequestSortField,\n ListCustomerSalesOrderRequestSortDirection,\n} from '@vendasta/sales-orders';\nimport { ForcedFilterOptions, OrdersRow, BaseSalesOrdersTableService } from './interface';\nimport { calculateContractDurationMonths } from './conversion-utils';\nimport { PARTNER_ID_TOKEN } from '../external-dependencies/provider-tokens';\nimport { SortSetting } from '@vendasta/va-filter2-table';\n\n@Injectable()\nexport class CustomerSalesOrdersTableService implements BaseSalesOrdersTableService {\n private readonly totalResults$$: BehaviorSubject = new BehaviorSubject(0);\n public readonly totalResults$: Observable = this.totalResults$$.asObservable();\n\n private forcedFilterOptions: ForcedFilterOptions;\n\n constructor(\n private readonly salesOrderService: CustomerSalesOrdersService,\n @Inject(PARTNER_ID_TOKEN) private readonly partnerId$: Observable,\n ) {}\n\n initialize(forcedFilterOptions: ForcedFilterOptions): void {\n this.forcedFilterOptions = forcedFilterOptions;\n }\n\n /* tslint:disable */\n static convertFilters(filters: any, forcedBusiness: string): ListCustomerSalesOrderRequestFilters {\n const f: ListCustomerSalesOrderRequestFiltersInterface = {};\n f.created = {};\n f.requestedActivation = {};\n f.expiryDate = {};\n\n if (filters['submittedDateFromControl']) {\n f.created.beginRange = filters['submittedDateFromControl'];\n }\n if (filters['submittedDateToControl']) {\n f.created.endRange = filters['submittedDateToControl'];\n }\n\n if (filters['contractStartFrom']) {\n f.requestedActivation.beginRange = filters['contractStartFrom'];\n }\n if (filters['contractStartToControl']) {\n f.requestedActivation.endRange = filters['contractStartToControl'];\n }\n\n if (filters['expiryDateFrom']) {\n f.expiryDate.beginRange = filters['expiryDateFrom'];\n }\n if (filters['expiryDateTo']) {\n f.expiryDate.endRange = filters['expiryDateTo'];\n }\n\n // Forced business filter\n f.businessId = forcedBusiness;\n\n return new ListCustomerSalesOrderRequestFilters(f);\n }\n\n static convertSortOptions(sort: SortSetting[]): ListCustomerSalesOrderRequestSortOption {\n let s: ListCustomerSalesOrderRequestSortOptionInterface = null;\n if (!!sort && sort.length > 0) {\n s = {};\n s.direction =\n sort[0].direction == SortDirection.SORT_DIRECTION_ASCENDING\n ? ListCustomerSalesOrderRequestSortDirection.ASCENDING\n : ListCustomerSalesOrderRequestSortDirection.DESCENDING;\n switch (sort[0].field) {\n case 'status':\n s.field = ListCustomerSalesOrderRequestSortField.STATUS;\n break;\n case 'requestedActivation':\n s.field = ListCustomerSalesOrderRequestSortField.REQUESTED_ACTIVATION;\n break;\n case 'created':\n s.field = ListCustomerSalesOrderRequestSortField.CREATED;\n break;\n case 'expiry':\n s.field = ListCustomerSalesOrderRequestSortField.EXPIRY_DATE;\n break;\n default:\n s = null;\n }\n }\n if (s) {\n return new ListCustomerSalesOrderRequestSortOption(s);\n }\n return null;\n }\n /* tslint:enable */\n\n load(request: LoadRequest): Observable {\n const sorting = CustomerSalesOrdersTableService.convertSortOptions(request.sortingOptions);\n const cursor = btoa((request.pageIndex * request.pageSize).toString());\n return combineLatest([this.partnerId$]).pipe(\n switchMap(([partnerId]) => {\n const filters = CustomerSalesOrdersTableService.convertFilters(\n request.filters,\n this.forcedFilterOptions.businessId,\n );\n const apiFilters = new ListCustomerSalesOrderRequestFilters(filters);\n return this.salesOrderService.list(partnerId, apiFilters, sorting, cursor, request.pageSize);\n }),\n take(1),\n map((results) => {\n if (!results || !results.results) {\n this.totalResults$$.next(results.totalResults);\n return [];\n }\n this.totalResults$$.next(results.totalResults);\n return results.results.map((o: Order) => ({\n orderId: o.orderId,\n salespersonId: o.salespersonId,\n salesperson: o.salesperson,\n partnerId: o.partnerId,\n businessId: o.businessId,\n business: o.business,\n marketId: o.marketId,\n status: o.status,\n requestedActivation: o.requestedActivation,\n created: o.created,\n tags: o.tags,\n contractDurationInMonths: calculateContractDurationMonths(o.contractDuration),\n expiryDate: o.expiryDate,\n }));\n }),\n );\n }\n}\n", "import { Inject, Injectable } from '@angular/core';\nimport { DateFilterControl, FilterGroup } from '@vendasta/va-filter2';\nimport { Observable } from 'rxjs';\nimport { TranslateService } from '@ngx-translate/core';\nimport { ForcedFilterOptions } from './interface';\nimport { BaseSalesOrdersTableFilterService } from './interface';\nimport { PARTNER_ID_TOKEN } from '../external-dependencies/provider-tokens';\n\n@Injectable()\nexport class CustomerSalesOrdersTableFilterService extends BaseSalesOrdersTableFilterService {\n filters: FilterGroup = new FilterGroup('sales-orders');\n private forcedFilterOptions: ForcedFilterOptions;\n\n constructor(\n @Inject(PARTNER_ID_TOKEN) private readonly partnerId$: Observable,\n private translateService: TranslateService,\n ) {\n super();\n }\n\n initialize(forcedFilterOptions: ForcedFilterOptions): void {\n this.forcedFilterOptions = forcedFilterOptions;\n\n const contractStartFromControl = new DateFilterControl(\n 'contractStartFrom',\n this.translateService.instant('FRONTEND.SALES_UI.FROM'),\n );\n const contractStartToControl = new DateFilterControl(\n 'contractStartToControl',\n this.translateService.instant('FRONTEND.SALES_UI.TO'),\n );\n const submittedDateFromControl = new DateFilterControl(\n 'submittedDateFromControl',\n this.translateService.instant('FRONTEND.SALES_UI.FROM'),\n );\n const submittedDateToControl = new DateFilterControl(\n 'submittedDateToControl',\n this.translateService.instant('FRONTEND.SALES_UI.TO'),\n );\n const expiryDateFromControl = new DateFilterControl(\n 'expiryDateFrom',\n this.translateService.instant('FRONTEND.SALES_UI.FROM'),\n );\n const expiryDateToControl = new DateFilterControl(\n 'expiryDateTo',\n this.translateService.instant('FRONTEND.SALES_UI.TO'),\n );\n\n this.filters\n .addSection(this.translateService.instant('FRONTEND.SALES_UI.SUBMITTED'), [\n submittedDateFromControl,\n submittedDateToControl,\n ])\n .addSection(this.translateService.instant('FRONTEND.SALES_UI.CONTRACT_START'), [\n contractStartFromControl,\n contractStartToControl,\n ])\n .addSection(this.translateService.instant('FRONTEND.SALES_UI.EXPIRY'), [\n expiryDateFromControl,\n expiryDateToControl,\n ]);\n }\n}\n", "import { TranslateService } from '@ngx-translate/core';\nimport { CheckboxFilterControl, FilterGroup } from '@vendasta/va-filter2';\n\nexport function prependStatusFiltersSection(filters: FilterGroup, translateService: TranslateService) {\n filters?.prependSection(translateService.instant('FRONTEND.SALES_UI.STATUS'), [\n new CheckboxFilterControl('resubmitted', translateService.instant('FRONTEND.SALES_UI.RESUBMITTED'), false, {\n appliedValueMapper: (name) => ({\n name,\n label: translateService.instant('FRONTEND.SALES_UI.RESUBMITTED'),\n }),\n }),\n new CheckboxFilterControl('pending', translateService.instant('FRONTEND.SALES_UI.PENDING'), false, {\n appliedValueMapper: (name) => ({\n name,\n label: translateService.instant('FRONTEND.SALES_UI.PENDING'),\n }),\n }),\n new CheckboxFilterControl(\n 'awaiting-customer-approval',\n translateService.instant('FRONTEND.SALES_UI.AWAITING_CUSTOMER_APPROVAL'),\n false,\n {\n appliedValueMapper: (name) => ({\n name,\n label: translateService.instant('FRONTEND.SALES_UI.AWAITING_CUSTOMER_APPROVAL'),\n }),\n },\n ),\n new CheckboxFilterControl('approved', translateService.instant('FRONTEND.SALES_UI.APPROVED'), false, {\n appliedValueMapper: (name) => ({\n name,\n label: translateService.instant('FRONTEND.SALES_UI.APPROVED'),\n }),\n }),\n new CheckboxFilterControl('processing', translateService.instant('FRONTEND.SALES_UI.PROCESSING'), false, {\n appliedValueMapper: (name) => ({\n name,\n label: translateService.instant('FRONTEND.SALES_UI.PROCESSING'),\n }),\n }),\n new CheckboxFilterControl(\n 'activation-errors',\n translateService.instant('FRONTEND.SALES_UI.ACTIVATION_ERRORS'),\n false,\n {\n appliedValueMapper: (name) => ({\n name,\n label: translateService.instant('FRONTEND.SALES_UI.ACTIVATION_ERRORS'),\n }),\n },\n ),\n new CheckboxFilterControl('archived', translateService.instant('FRONTEND.SALES_UI.ARCHIVED'), false, {\n appliedValueMapper: (name) => ({\n name,\n label: translateService.instant('FRONTEND.SALES_UI.ARCHIVED'),\n }),\n }),\n new CheckboxFilterControl('activated', translateService.instant('FRONTEND.SALES_UI.ACTIVATED'), false, {\n appliedValueMapper: (name) => ({\n name,\n label: translateService.instant('FRONTEND.SALES_UI.ACTIVATED'),\n }),\n }),\n new CheckboxFilterControl('declined', translateService.instant('FRONTEND.SALES_UI.DECLINED'), false, {\n appliedValueMapper: (name) => ({\n name,\n label: translateService.instant('FRONTEND.SALES_UI.DECLINED'),\n }),\n }),\n new CheckboxFilterControl(\n 'scheduled-activation',\n translateService.instant('FRONTEND.SALES_UI.SCHEDULED_ACTIVATION'),\n false,\n {\n appliedValueMapper: (name) => ({\n name,\n label: translateService.instant('FRONTEND.SALES_UI.SCHEDULED_ACTIVATION'),\n }),\n },\n ),\n new CheckboxFilterControl('drafted', translateService.instant('FRONTEND.SALES_UI.DRAFTED'), false, {\n appliedValueMapper: (name) => ({\n name,\n label: translateService.instant('FRONTEND.SALES_UI.DRAFTED'),\n }),\n }),\n new CheckboxFilterControl(\n 'cancellation-requested',\n translateService.instant('FRONTEND.SALES_UI.CANCELLATION_REQUESTED'),\n false,\n {\n appliedValueMapper: (name) => ({\n name,\n label: translateService.instant('FRONTEND.SALES_UI.CANCELLATION_REQUESTED'),\n }),\n },\n ),\n new CheckboxFilterControl('cancelled', translateService.instant('FRONTEND.SALES_UI.CANCELLED'), false, {\n appliedValueMapper: (name) => ({\n name,\n label: translateService.instant('FRONTEND.SALES_UI.CANCELLED'),\n }),\n }),\n ]);\n}\n", "import { Inject, Injectable, OnDestroy } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { AccountGroupSdkService, ProjectionFilterInterface } from '@vendasta/account-group';\nimport { GalaxyAddressPipe } from '@vendasta/galaxy/pipes';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { Package, PackageService, Status } from '@vendasta/marketplace-packages';\nimport { ListTagsResponse, SalesOrdersService } from '@vendasta/sales-orders';\nimport {\n CheckboxFilterControl,\n DateFilterControl,\n FilterGroup,\n SearchSelectFilterControl,\n SelectFilterControl,\n TextInputFilterControl,\n} from '@vendasta/va-filter2';\nimport { BehaviorSubject, Observable, Subject, combineLatest, throwError } from 'rxjs';\nimport { catchError, map, switchMap, take, takeUntil } from 'rxjs/operators';\nimport { BaseSalesOrdersTableFilterService, ForcedFilterOptions, Market, Salesperson, Salesteam } from './interface';\n\nimport {\n MARKET_IDS_TOKEN,\n PARTNER_ID_TOKEN,\n SALESPEOPLE_TOKEN,\n SALES_TEAMS_TOKEN,\n} from '../external-dependencies/provider-tokens';\nimport { prependStatusFiltersSection } from './filters-utils';\n\n@Injectable()\nexport class SalesOrdersTableFilterService extends BaseSalesOrdersTableFilterService implements OnDestroy {\n filters: FilterGroup = new FilterGroup('sales-orders');\n private forcedFilterOptions: ForcedFilterOptions;\n private destroy$ = new Subject();\n marketFilterControl: SelectFilterControl;\n packageFilterSectionName = this.translateService.instant('FRONTEND.SALES_UI.PACKAGES');\n\n constructor(\n @Inject(PARTNER_ID_TOKEN) readonly partnerId$: Observable,\n @Inject(MARKET_IDS_TOKEN) private readonly markets$: Observable,\n @Inject(SALESPEOPLE_TOKEN) private readonly salespeople$: Observable,\n @Inject(SALES_TEAMS_TOKEN) private readonly salesTeams$: Observable,\n private readonly alertService: SnackbarService,\n private readonly salesOrdersService: SalesOrdersService,\n private translateService: TranslateService,\n private packageService: PackageService,\n private accountGroupService: AccountGroupSdkService,\n private addressPipe: GalaxyAddressPipe,\n ) {\n super();\n }\n\n private static reduceSalesTeamToMap(salesTeamMap: Map, st: Salesteam): Map {\n salesTeamMap.set(st.teamName, st);\n return salesTeamMap;\n }\n\n private static convertSalesTeamsToMap(salesTeams: Salesteam[]): Map {\n if (!salesTeams) {\n return new Map();\n }\n\n return salesTeams.reduce(SalesOrdersTableFilterService.reduceSalesTeamToMap, new Map());\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n initialize(forcedFilterOptions: ForcedFilterOptions, canAccessSalesTeams: boolean): void {\n this.forcedFilterOptions = forcedFilterOptions;\n const marketOptions$: Observable> = this.markets$.pipe(\n map((markets) => {\n markets.sort((a, b) => {\n const aName = a.name.toLowerCase(),\n bName = b.name.toLowerCase();\n return aName < bName ? -1 : aName > bName ? 1 : 0;\n });\n return markets;\n }),\n map((markets) => {\n return markets.reduce((objMap, market) => {\n objMap.set(market.name, market);\n return objMap;\n }, new Map());\n }),\n catchError((e) => {\n this.alertService.openErrorSnack('FRONTEND.SALES_UI.ERROR_LOADING_MARKETS');\n return throwError(e);\n }),\n );\n\n const tags: Observable> = combineLatest([this.partnerId$, this.markets$]).pipe(\n switchMap(([partnerId, markets]) => {\n const marketIds = this.getMarketIds(markets);\n return this.salesOrdersService.listTags(partnerId, { marketIds: marketIds });\n }),\n map((resp: ListTagsResponse) => {\n const t = new Map();\n if (resp.tags) {\n resp.tags.map((v) => t.set(v, v));\n } else {\n const msg = this.translateService.instant('FRONTEND.SALES_UI.NO_TAGS_FOUND');\n t.set(msg, msg);\n }\n return t;\n }),\n );\n\n const adminControls = [\n new TextInputFilterControl('orderId', this.translateService.instant('FRONTEND.SALES_UI.ORDER_ID')),\n ];\n\n this.marketFilterControl = new SelectFilterControl(\n 'market',\n this.translateService.instant('FRONTEND.SALES_UI.MARKET'),\n marketOptions$,\n null,\n {\n appliedValueMapper: (name, value) => {\n const marketLabel = this.translateService.instant('FRONTEND.SALES_UI.MARKET');\n return { name, label: `${marketLabel}: ${value.name}` };\n },\n },\n );\n if (!this.forcedFilterOptions.marketIds) {\n adminControls.push(this.marketFilterControl);\n // auto-select first market if only one is available\n marketOptions$.pipe(takeUntil(this.destroy$)).subscribe((markets) => {\n const availMarkets: Market[] = markets ? Array.from(markets.values()) : [];\n if (availMarkets.length === 1) {\n this.marketFilterControl?.setValue(availMarkets[0]);\n }\n });\n }\n\n if (!this.forcedFilterOptions.salespersonId) {\n adminControls.push(this.createSalesPeopleSelectControl());\n if (canAccessSalesTeams) {\n // Enable salesteams filter only if sales teams is enabled for partner's subscription tier\n adminControls.push(this.createSalesTeamsSelectControl());\n }\n }\n\n adminControls.push(this.createAccountSearchControl());\n\n if (adminControls.length > 0) {\n this.filters.addSection(this.translateService.instant('FRONTEND.SALES_UI.ADMIN'), adminControls);\n }\n\n const contractStartFromControl = new DateFilterControl(\n 'contractStartFrom',\n this.translateService.instant('FRONTEND.SALES_UI.FROM'),\n );\n const contractStartToControl = new DateFilterControl(\n 'contractStartToControl',\n this.translateService.instant('FRONTEND.SALES_UI.TO'),\n );\n const submittedDateFromControl = new DateFilterControl(\n 'submittedDateFromControl',\n this.translateService.instant('FRONTEND.SALES_UI.FROM'),\n );\n const submittedDateToControl = new DateFilterControl(\n 'submittedDateToControl',\n this.translateService.instant('FRONTEND.SALES_UI.TO'),\n );\n const expiryDateFromControl = new DateFilterControl(\n 'expiryDateFrom',\n this.translateService.instant('FRONTEND.SALES_UI.FROM'),\n );\n const expiryDateToControl = new DateFilterControl(\n 'expiryDateTo',\n this.translateService.instant('FRONTEND.SALES_UI.TO'),\n );\n\n prependStatusFiltersSection(this.filters, this.translateService);\n this.filters\n .addSection(this.translateService.instant('FRONTEND.SALES_UI.TAGS'), [\n new SelectFilterControl('tag', this.translateService.instant('FRONTEND.SALES_UI.INCLUDED_TAG'), tags, null, {\n appliedValueMapper: (name, value) => {\n const tagLabel = this.translateService.instant('FRONTEND.SALES_UI.TAG');\n return { name, label: `${tagLabel}: ${value}` };\n },\n }),\n new CheckboxFilterControl('untagged', this.translateService.instant('FRONTEND.SALES_UI.UNTAGGED'), false, {\n appliedValueMapper: (name) => ({\n name,\n label: this.translateService.instant('FRONTEND.SALES_UI.UNTAGGED'),\n }),\n }),\n ])\n .addSection(this.translateService.instant('FRONTEND.SALES_UI.SUBMITTED'), [\n submittedDateFromControl,\n submittedDateToControl,\n ])\n .addSection(this.translateService.instant('FRONTEND.SALES_UI.CONTRACT_START'), [\n contractStartFromControl,\n contractStartToControl,\n ])\n .addSection(this.translateService.instant('FRONTEND.SALES_UI.EXPIRY'), [\n expiryDateFromControl,\n expiryDateToControl,\n ]);\n\n if ((this.forcedFilterOptions.marketIds || []).length === 1) {\n this.partnerId$.pipe(take(1)).subscribe((partnerId) => {\n this.addPackageFilterSection(partnerId, this.forcedFilterOptions.marketIds[0]);\n });\n } else {\n combineLatest([this.partnerId$, this.marketFilterControl.valueChanges]).subscribe(([partnerId, market]) => {\n this.filters.removeSection(this.packageFilterSectionName);\n if (market) {\n this.addPackageFilterSection(partnerId, market.marketId);\n }\n });\n }\n }\n\n formatSearchAccountOption(accountGroup): string {\n const address = {\n address: accountGroup.napData.address,\n address2: accountGroup.napData.address2,\n city: accountGroup.napData.city,\n state: accountGroup.napData.state,\n };\n\n const formattedAddress = this.addressPipe.transform(address);\n let companyName = accountGroup.napData.companyName;\n if (formattedAddress) {\n companyName = `${companyName} - ${formattedAddress}`;\n }\n return companyName;\n }\n\n getMarketIds(markets: Market[]): string[] {\n let marketIds = markets.map((m) => m.marketId);\n if (this.forcedFilterOptions.marketIds) {\n marketIds = this.forcedFilterOptions.marketIds;\n }\n return marketIds;\n }\n\n private createSalesPeopleSelectControl(): SelectFilterControl {\n const salesPeopleOptions$: Observable> = this.salespeople$.pipe(\n map((salesPeople) => {\n salesPeople.sort((a, b) => {\n const aName = a.name.toLowerCase(),\n bName = b.name.toLowerCase();\n return aName < bName ? -1 : aName > bName ? 1 : 0;\n });\n return salesPeople;\n }),\n map((salesPeople) => {\n return salesPeople.reduce((objMap, sp) => {\n objMap.set(sp.name, sp);\n return objMap;\n }, new Map());\n }),\n catchError((e) => {\n this.alertService.openErrorSnack('FRONTEND.SALES_UI.ERROR_LOADING_SALESPEOPLE');\n return throwError(() => e);\n }),\n );\n return new SelectFilterControl(\n 'salesPeople',\n this.translateService.instant('FRONTEND.SALES_UI.SALESPERSON'),\n salesPeopleOptions$,\n null,\n {\n appliedValueMapper: (name, value) => {\n const salespersonLabel = this.translateService.instant('FRONTEND.SALES_UI.SALESPERSON');\n return { name, label: `${salespersonLabel}: ${value.name}` };\n },\n },\n );\n }\n\n private createSalesTeamsSelectControl(): SelectFilterControl {\n const salesTeamOptions$: Observable> = this.salesTeams$.pipe(\n take(1),\n map((salesTeams) => {\n if (!salesTeams) {\n return [];\n }\n\n salesTeams.sort((a, b) => {\n const aName = a.teamName.toLowerCase();\n const bName = b.teamName.toLowerCase();\n return aName < bName ? -1 : aName > bName ? 1 : 0;\n });\n return salesTeams;\n }),\n map((teams) => SalesOrdersTableFilterService.convertSalesTeamsToMap(teams)),\n catchError((e) => {\n this.alertService.openErrorSnack('FRONTEND.SALES_UI.ERROR_LOADING_SALES_TEAMS');\n return throwError(() => e);\n }),\n );\n\n return new SelectFilterControl(\n 'salesTeam',\n this.translateService.instant('FRONTEND.SALES_UI.SALES_TEAM'),\n salesTeamOptions$,\n null,\n {\n appliedValueMapper: (name, value) => {\n const salesTeamLabel = this.translateService.instant('FRONTEND.SALES_UI.SALES_TEAM');\n return { name, label: `${salesTeamLabel}: ${value.teamName}` };\n },\n },\n );\n }\n\n private createAccountSearchControl(): SearchSelectFilterControl {\n const accountGroupProjectionFilter: ProjectionFilterInterface = { napData: true } as const;\n const accountSearchTerm$$: BehaviorSubject = new BehaviorSubject('');\n const accountGroupIdToCompanyName = new Map();\n const accountOptions$: Observable> = combineLatest([\n this.partnerId$,\n this.markets$,\n accountSearchTerm$$,\n ]).pipe(\n switchMap(([partnerId, markets, searchTerm]) =>\n this.accountGroupService.lookup({\n filters: {\n partnerId: partnerId,\n marketIds: this.getMarketIds(markets),\n },\n projectionFilter: accountGroupProjectionFilter,\n searchTerm: searchTerm,\n pageSize: 25,\n }),\n ),\n map((response) => {\n const accountGroupLabelToId = new Map();\n response?.accountGroups?.forEach((accountGroup) => {\n const selectOptionLabel = this.formatSearchAccountOption(accountGroup);\n accountGroupLabelToId.set(selectOptionLabel, accountGroup.accountGroupId);\n accountGroupIdToCompanyName.set(accountGroup.accountGroupId, accountGroup.napData.companyName);\n });\n return accountGroupLabelToId;\n }),\n );\n const accountLabel = this.translateService.instant('FRONTEND.SALES_UI.ACCOUNT');\n const accountSearchControl = new SearchSelectFilterControl('businessId', accountLabel, accountOptions$, null, {\n searchDisplay: (accountId) => accountGroupIdToCompanyName.get(accountId) || accountId,\n appliedValueMapper: (name, value) => {\n if (accountGroupIdToCompanyName.get(value)) {\n return { name, label: `${accountLabel}: ${accountGroupIdToCompanyName.get(value)}` };\n }\n return { name, label: `${accountLabel}: ${value}` };\n },\n });\n accountSearchControl.valueChanges.pipe(takeUntil(this.destroy$)).subscribe((searchTerm) => {\n accountSearchTerm$$.next(searchTerm);\n });\n return accountSearchControl;\n }\n\n private addPackageFilterSection(partnerId: string, marketId: string): void {\n this.filters.addSection(this.packageFilterSectionName, [\n new SelectFilterControl(\n 'package',\n this.translateService.instant('FRONTEND.SALES_UI.PACKAGE'),\n this.packageService.list(partnerId, [Status.PUBLISHED], marketId).pipe(\n map((resp) => {\n const packages = resp.packages || [];\n packages.sort((a, b) => {\n const aName = a.name.toLowerCase(),\n bName = b.name.toLowerCase();\n return aName < bName ? -1 : aName > bName ? 1 : 0;\n });\n return packages;\n }),\n map((sortedPackages) => {\n const values = new Map();\n (sortedPackages || []).map((p) => values.set(p.name, p));\n return values;\n }),\n ),\n null,\n {\n appliedValueMapper: (name, value) => {\n const marketLabel = this.translateService.instant('FRONTEND.SALES_UI.PACKAGE');\n return { name, label: `${marketLabel}: ${value.name}` };\n },\n },\n ),\n ]);\n }\n}\n", "import { Component, Inject, inject, OnInit } from '@angular/core';\nimport { FulfillmentOrderStatus } from '@vendasta/sales-orders';\nimport { statusColorMap, WorkOrderPersona } from '@vendasta/work-order';\nimport { SalesOrderTableCustomComponentDirective } from './sales-order-table-custom.component';\nimport { Observable } from 'rxjs';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'sales-ui-status-cell',\n styleUrls: ['./fulfillment-cell.component.scss'],\n templateUrl: './fulfillment-cell.component.html',\n standalone: false,\n})\nexport class FulfillmentCellComponent extends SalesOrderTableCustomComponentDirective implements OnInit {\n stringStatus = '';\n orderID: string;\n badgeColor: string;\n fulfillmentOrderStatus = FulfillmentOrderStatus;\n queryParamsLink: { [key: string]: string };\n hasFulfillment: boolean;\n router: Router = inject(Router);\n\n constructor(\n @Inject('PARTNER_ID') readonly partnerId$: Observable,\n @Inject('FULFILLMENT_CELL_LINK_VERSION') readonly fulfillmentCellLinkVersion: boolean,\n ) {\n super();\n }\n\n ngOnInit(): void {\n this.stringStatus = this.fulfillmentOrderStatus[this.element.fulfillmentOrderStatus];\n this.orderID = this.element.orderId;\n this.queryParamsLink = this.getLinkQueryParams();\n this.hasFulfillment = this.element.hasFulfillment;\n\n // leave an entry empty if there are no fulfillment orders associated with the sales order\n if (this.stringStatus !== 'FULFILLMENT_STATUS_UNSET') {\n const statusAsNumber: number = this.convertStringStatusToNumber(this.stringStatus);\n this.badgeColor = statusColorMap.get(WorkOrderPersona.CP).get(statusAsNumber);\n }\n }\n\n convertStringStatusToNumber(fulfillmentOrderStatus: string): number {\n return Object.values(FulfillmentOrderStatus).indexOf(fulfillmentOrderStatus);\n }\n\n getLinkQueryParams() {\n const queryParams = {\n orderIds: [this.orderID],\n };\n const queryParamString = JSON.stringify(queryParams);\n return { 'order-fulfillment-table': queryParamString, tab: 'unfulfilled' };\n }\n\n handleViewItemsClick(): void {\n this.navigateToUnifiedTables();\n }\n\n private navigateToUnifiedTables(): void {\n this.router.navigate(['/order-management'], {\n queryParams: this.queryParamsLink,\n queryParamsHandling: 'merge',\n });\n }\n}\n", "\n
\n \n {{ 'FRONTEND.SALES_UI.' + stringStatus | translate }}\n \n \n

{{ 'SALES_ORDERS.VIEW_ITEMS' | translate }}

\n \n
\n
\n\n\n \n {{ 'FRONTEND.SALES_UI.' + stringStatus | translate }}\n \n\n\n\n

N/A

\n
\n", "import { TranslateService } from '@ngx-translate/core';\nimport { ColumnOrganizerType, ColumnType, Pinned, SortDirection, TableDefinition } from '@vendasta/va-filter2-table';\nimport { combineLatest } from 'rxjs';\nimport { SalesOrderActionsCellComponent } from './cells/sales-order-actions-cell.component';\nimport { BusinessInfoCellComponent } from './cells/business-info-cell.component';\nimport { DateCellComponent } from './cells/date-cell.component';\nimport { ExpiryCellComponent } from './cells/expiry-cell.component';\nimport { FulfillmentCellComponent } from './cells/fulfillment-cell.component';\nimport { OrderIdCellComponent } from './cells/order-id-cell.component';\nimport { OrderTagsCellComponent } from './cells/order-tags-cell.component';\nimport { SalespersonCellComponent } from './cells/salesperson-cell.component';\nimport { StatusCellComponent } from './cells/status-cell.component';\nimport { SalesOrdersTableFactoryParams, exportDataFormatModalOption } from './interface';\nimport { CustomerSalesOrdersTableFilterService } from './sales-orders-table-customer-filter.service';\nimport { SalesOrdersTableFilterService } from './sales-orders-table-filter.service';\n\nconst ORDERS_TABLE_DEF: TableDefinition = {\n id: 'sales-orders',\n columnOrganizerType: ColumnOrganizerType.ADVANCED_ORGANIZER,\n labels: {\n // TODO: Translations for these labels in table component\n noResults: 'No results',\n cancel: 'Cancel',\n none: 'None',\n update: 'Update',\n sortBy: 'Sort By',\n thenSortBy: 'Then Sort By',\n addAnotherSortColumn: 'Add another column to sort on',\n chooseColumnToSortBy: 'Choose a column to sort on',\n columnSorting: {\n date: {\n ascending: 'Earliest to Latest',\n descending: 'Latest to Earliest',\n },\n number: {\n ascending: '1 to 9',\n descending: '9 to 1',\n },\n string: {\n ascending: 'A to Z',\n descending: 'Z to A',\n },\n default: {\n ascending: 'ascending',\n descending: 'descending',\n },\n },\n export: {\n buttonText: '',\n buttonTooltipBeforeCount: '',\n buttonTooltipAfterCount: '',\n },\n columnSelector: {\n buttonText: '',\n },\n },\n options: {\n disableMultiColumnSorting: true,\n tableTitle: 'FRONTEND.SALES_UI.ORDER_FILTERS',\n csvExportEnabled: true,\n },\n columns: [\n {\n id: 'orderId',\n displayName: 'FRONTEND.SALES_UI.ORDER_ID',\n pinned: Pinned.PINNED_LEFT,\n type: ColumnType.COLUMN_TYPE_STRING,\n field: 'orderId',\n cellComponent: OrderIdCellComponent,\n },\n {\n id: 'account',\n displayName: 'FRONTEND.SALES_UI.ACCOUNT',\n type: ColumnType.COLUMN_TYPE_STRING,\n field: 'business',\n cellComponent: BusinessInfoCellComponent,\n },\n {\n id: 'status',\n displayName: 'FRONTEND.SALES_UI.STATUS',\n field: 'status',\n cellComponent: StatusCellComponent,\n sortOptions: {\n sortable: true,\n },\n },\n {\n id: 'fulfillmentStatus',\n displayName: 'FRONTEND.SALES_UI.FULFILLMENT',\n field: 'fulfillmentStatus',\n cellComponent: FulfillmentCellComponent,\n },\n {\n id: 'contract-start',\n displayName: 'FRONTEND.SALES_UI.CONTRACT_START',\n type: ColumnType.COLUMN_TYPE_DATE,\n field: 'requestedActivation',\n cellComponent: DateCellComponent,\n sortOptions: {\n sortable: true,\n },\n },\n {\n id: 'salesperson',\n displayName: 'FRONTEND.SALES_UI.SALESPERSON',\n type: ColumnType.COLUMN_TYPE_STRING,\n field: 'salespersonId',\n cellComponent: SalespersonCellComponent,\n },\n {\n id: 'submitted',\n displayName: 'FRONTEND.SALES_UI.SUBMITTED',\n type: ColumnType.COLUMN_TYPE_DATE,\n field: 'created',\n cellComponent: DateCellComponent,\n sortOptions: {\n sortable: true,\n initialSortDirection: SortDirection.SORT_DIRECTION_DESCENDING,\n },\n },\n {\n id: 'expiry',\n displayName: 'FRONTEND.SALES_UI.EXPIRY',\n type: ColumnType.COLUMN_TYPE_STRING,\n translateCell: true,\n field: 'expiry',\n cellComponent: ExpiryCellComponent,\n sortOptions: {\n sortable: true,\n },\n },\n {\n id: 'tags',\n displayName: 'FRONTEND.SALES_UI.TAGS',\n field: 'tags',\n cellComponent: OrderTagsCellComponent,\n },\n ],\n};\n\nconst salesOrdersActionsCell = {\n id: 'adminActions',\n displayName: 'FRONTEND.SALES_UI.ACTIONS',\n field: '',\n pinned: Pinned.PINNED_RIGHT,\n cellComponent: SalesOrderActionsCellComponent,\n};\n\nexport const tableDefinitionFactory = (\n filterService: SalesOrdersTableFilterService,\n customerFilterService: CustomerSalesOrdersTableFilterService,\n params: SalesOrdersTableFactoryParams,\n translateService: TranslateService,\n) => {\n const tableDefinition = ORDERS_TABLE_DEF;\n if (params) {\n if (params.showActions) {\n if (!tableDefinition.columns.some((c) => c.id === 'adminActions')) {\n tableDefinition.columns.push(salesOrdersActionsCell);\n }\n }\n }\n\n if (params && params.inBusinessCenter) {\n const removeIds = ['tags', 'salesperson', 'account'];\n tableDefinition.columns = tableDefinition.columns.filter((column) => {\n return !removeIds.includes(column.id);\n });\n\n tableDefinition.filters = customerFilterService.filters;\n return tableDefinition;\n }\n\n tableDefinition.filters = filterService.filters;\n tableDefinition.options.csvExportEnabled = true;\n tableDefinition.options.exportDialogDefinition = buildExportModalContent(translateService);\n return tableDefinition;\n};\n\nfunction buildExportModalContent(translateService: TranslateService): any {\n const content = {\n headerText: '',\n descriptionText: '',\n exportOptions: [],\n };\n\n combineLatest([\n translateService.stream('FRONTEND.SALES_UI.EXPORT.EXPORT_HEADER'),\n translateService.stream('FRONTEND.SALES_UI.EXPORT.EXPORT_DESCRIPTION'),\n translateService.stream('FRONTEND.SALES_UI.EXPORT.ALL_ORDER_OPTION_LABEL'),\n translateService.stream('FRONTEND.SALES_UI.EXPORT.ALL_ORDER_OPTION_DESCRIPTION'),\n translateService.stream('FRONTEND.SALES_UI.EXPORT.ALL_ORDER_WITH_PRODUCT_DATA_OPTION_LABEL'),\n translateService.stream('FRONTEND.SALES_UI.EXPORT.ALL_ORDER_WITH_PRODUCT_DATA_OPTION_DESCRIPTION'),\n ]).subscribe(\n ([\n exportHeaderMessage,\n exportDescriptionMessage,\n orderPerRowOptionText,\n orderPerRowOptionHelpText,\n productsPerRowOptionText,\n productsPerRowOptionHelpText,\n ]) => {\n content.headerText = exportHeaderMessage;\n content.descriptionText = exportDescriptionMessage;\n content.exportOptions = [\n {\n id: exportDataFormatModalOption.ORDERS_PER_ROW,\n selectionText: orderPerRowOptionText,\n selectionHelpText: orderPerRowOptionHelpText,\n },\n {\n id: exportDataFormatModalOption.PRODUCTS_PER_ROW,\n selectionText: productsPerRowOptionText,\n selectionHelpText: productsPerRowOptionHelpText,\n },\n ];\n },\n );\n\n return content;\n}\n", "import { Inject, Injectable } from '@angular/core';\nimport {\n ListSalesOrderRequestFilters,\n ListSalesOrderRequestFiltersInterface,\n ListSalesOrderRequestSortDirection,\n ListSalesOrderRequestSortField,\n ListSalesOrderRequestSortOption,\n ListSalesOrderRequestSortOptionInterface,\n Order,\n SalesOrdersService,\n Status,\n} from '@vendasta/sales-orders';\nimport { LoadRequest, SortDirection, SortSetting } from '@vendasta/va-filter2-table';\nimport { BehaviorSubject, combineLatest, Observable, of } from 'rxjs';\nimport { catchError, map, shareReplay, switchMap, take } from 'rxjs/operators';\nimport { calculateContractDurationMonths } from './conversion-utils';\nimport { BaseSalesOrdersTableService, ForcedFilterOptions, OrdersRow } from './interface';\n\nimport { TranslateService } from '@ngx-translate/core';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { Salesperson, SalesTeamService } from '@vendasta/sales';\nimport { PARTNER_ID_TOKEN } from '../external-dependencies/provider-tokens';\n\nenum SalesOrdersTableTab {\n ALL = 0,\n PENDING = 1,\n APPROVED = 2,\n CANCELLATION_REQUESTS = 3,\n ERRORS = 4,\n}\n@Injectable()\nexport class SalesOrdersTableService implements BaseSalesOrdersTableService {\n private readonly totalResults$$: BehaviorSubject = new BehaviorSubject(0);\n public readonly totalResults$: Observable = this.totalResults$$.asObservable();\n\n public salesOrdersTab$$: BehaviorSubject = new BehaviorSubject(null);\n\n public stats$: Observable<{ [key: string]: number }>;\n public presetViews: string;\n\n private forcedFilterOptions: ForcedFilterOptions;\n\n constructor(\n private readonly salesOrderService: SalesOrdersService,\n @Inject(PARTNER_ID_TOKEN) private readonly partnerId$: Observable,\n private readonly translateService: TranslateService,\n private readonly salesTeamService: SalesTeamService,\n private readonly snackbarService: SnackbarService,\n ) {}\n\n initialize(forcedFilterOptions: ForcedFilterOptions): void {\n this.forcedFilterOptions = forcedFilterOptions;\n this.stats$ = this.partnerId$.pipe(\n switchMap((partnerId) =>\n this.salesOrderService.getStatusCounts(partnerId, {\n marketIds: this.forcedFilterOptions.marketIds,\n salespersonId: this.forcedFilterOptions.salespersonId,\n }),\n ),\n map((counts) => counts || {}),\n shareReplay(1),\n );\n\n const currentDate = new Date();\n const nextDate = new Date(currentDate.setMonth(currentDate.getMonth() + 3));\n\n this.presetViews = JSON.stringify([\n {\n viewId: 'upcomingExpiriesPreset',\n viewName: this.translateService.instant('FRONTEND.SALES_UI.TABLE_PRESETS.UPCOMING_EXPIRATION'),\n viewDescription: this.translateService.instant('FRONTEND.SALES_UI.TABLE_PRESETS.UPCOMING_EXPIRATION_DESC'),\n attributeFiltersJson: JSON.stringify({\n expiryDateFrom: currentDate,\n expiryDateTo: nextDate,\n }),\n sortingJson: `{\n \"expiry\": \"asc\"\n }`,\n },\n ]);\n }\n\n /* tslint:disable */\n static convertFilters(\n filters: any,\n teamSalesPersonIds: string[],\n forcedMarkets?: string[],\n forcedSalesperson?: string,\n ): ListSalesOrderRequestFiltersInterface {\n const f: ListSalesOrderRequestFiltersInterface = {};\n f.statuses = [];\n f.created = {};\n f.requestedActivation = {};\n f.expiryDate = {};\n\n if (filters['activated']) {\n f.statuses.push(Status.FULFILLED);\n }\n if (filters['activation-errors']) {\n f.statuses.push(Status.ACTIVATION_ERRORS);\n }\n if (filters['approved']) {\n f.statuses.push(Status.APPROVED);\n }\n if (filters['archived']) {\n f.statuses.push(Status.ARCHIVED);\n }\n if (filters['awaiting-customer-approval']) {\n f.statuses.push(Status.SUBMITTED_FOR_CUSTOMER_APPROVAL);\n }\n if (filters['declined']) {\n f.statuses.push(Status.DECLINED);\n }\n if (filters['pending']) {\n f.statuses.push(Status.SUBMITTED);\n }\n if (filters['resubmitted']) {\n f.statuses.push(Status.RESUBMITTED);\n }\n if (filters['processing']) {\n f.statuses.push(Status.PROCESSING);\n }\n if (filters['drafted']) {\n f.statuses.push(Status.DRAFTED);\n }\n if (filters['cancellation-requested']) {\n f.statuses.push(Status.CANCELLATION_REQUESTED);\n }\n if (filters['cancelled']) {\n f.statuses.push(Status.CANCELLED);\n }\n if (filters['scheduled-activation']) {\n f.statuses.push(Status.SCHEDULED_ACTIVATION);\n }\n\n if (forcedMarkets) {\n f.marketIds = forcedMarkets;\n } else if (filters['market']) {\n f.marketIds = [filters['market'].marketId];\n }\n\n if (forcedSalesperson) {\n f.salespersonIds = [forcedSalesperson];\n } else if (filters['salesPeople']) {\n const salespersonId = filters['salesPeople'].salespersonId;\n f.salespersonIds = teamSalesPersonIds.includes(salespersonId)\n ? teamSalesPersonIds\n : [...teamSalesPersonIds, salespersonId];\n } else if (filters['salesTeam']) {\n f.salespersonIds = teamSalesPersonIds.length === 0 ? ['EMPTY'] : teamSalesPersonIds;\n }\n\n if (filters['submittedDateFromControl']) {\n f.created.beginRange = filters['submittedDateFromControl'];\n }\n if (filters['submittedDateToControl']) {\n f.created.endRange = filters['submittedDateToControl'];\n }\n\n if (filters['contractStartFrom']) {\n f.requestedActivation.beginRange = filters['contractStartFrom'];\n }\n if (filters['contractStartToControl']) {\n f.requestedActivation.endRange = filters['contractStartToControl'];\n }\n\n if (filters['expiryDateFrom']) {\n f.expiryDate.beginRange = filters['expiryDateFrom'];\n }\n if (filters['expiryDateTo']) {\n f.expiryDate.endRange = filters['expiryDateTo'];\n }\n\n if (filters['tag']) {\n f.tags = [filters['tag']];\n }\n if (filters['untagged']) {\n f.untagged = true;\n }\n\n if (filters['businessId']) {\n f.businessId = filters['businessId'];\n }\n\n if (filters['orderId']) {\n f.orderId = filters['orderId'];\n }\n\n if (filters['package']) {\n f.packageId = filters['package'].packageId;\n }\n\n return f;\n }\n\n private static extractSalespersonIds(salespeople: Salesperson[]): string[] {\n const sps = salespeople || [];\n return sps.map((sp) => sp.salespersonId);\n }\n\n static convertSortOptions(sort: SortSetting[]): ListSalesOrderRequestSortOption {\n let s: ListSalesOrderRequestSortOptionInterface = null;\n if (!!sort && sort.length > 0) {\n s = {};\n s.direction =\n sort[0].direction == SortDirection.SORT_DIRECTION_ASCENDING\n ? ListSalesOrderRequestSortDirection.ASCENDING\n : ListSalesOrderRequestSortDirection.DESCENDING;\n switch (sort[0].field) {\n case 'status':\n s.field = ListSalesOrderRequestSortField.STATUS;\n break;\n case 'requestedActivation':\n s.field = ListSalesOrderRequestSortField.REQUESTED_ACTIVATION;\n break;\n case 'created':\n s.field = ListSalesOrderRequestSortField.CREATED;\n break;\n case 'expiry':\n s.field = ListSalesOrderRequestSortField.EXPIRY_DATE;\n break;\n default:\n s = null;\n }\n }\n if (s) {\n return new ListSalesOrderRequestSortOption(s);\n }\n return null;\n }\n /* tslint:enable */\n\n load(request: LoadRequest): Observable {\n const sorting = SalesOrdersTableService.convertSortOptions(request.sortingOptions);\n const cursor = btoa((request.pageIndex * request.pageSize).toString());\n const salesPersonIdsBelongingToTeam$ = request.filters?.salesTeam\n ? this.salesTeamService.getMembers(request.filters.salesTeam.id).pipe(catchError(() => of([])))\n : of([]);\n return combineLatest([this.partnerId$, salesPersonIdsBelongingToTeam$, this.salesOrdersTab$$]).pipe(\n switchMap(([partnerId, salesPersonIds, salesOrdersTab]) => {\n const teamSalesPersonIds = SalesOrdersTableService.extractSalespersonIds(salesPersonIds);\n this.adjustStatusFiltersForTabs(request, salesOrdersTab);\n const filters = SalesOrdersTableService.convertFilters(\n request.filters,\n teamSalesPersonIds,\n this.forcedFilterOptions.marketIds,\n this.forcedFilterOptions.salespersonId,\n );\n const apiFilters = new ListSalesOrderRequestFilters(filters);\n return this.salesOrderService.list(partnerId, apiFilters, sorting, cursor, request.pageSize);\n }),\n take(1),\n map((results) => {\n if (!results || !results.results) {\n this.totalResults$$.next(results.totalResults);\n return [];\n }\n this.totalResults$$.next(results.totalResults);\n return results.results.map((o: Order) => ({\n orderId: o.orderId,\n salespersonId: o.salespersonId,\n salesperson: o.salesperson,\n partnerId: o.partnerId,\n businessId: o.businessId,\n business: o.business,\n marketId: o.marketId,\n status: o.status,\n requestedActivation: o.requestedActivation,\n created: o.created,\n tags: o.tags,\n contractDurationInMonths: calculateContractDurationMonths(o.contractDuration),\n expiryDate: o.expiryDate,\n fulfillmentOrderStatus: o.fulfillmentStatus,\n hasFulfillment: o.hasFulfillment,\n isEmpty: !o.lineItems?.length,\n }));\n }),\n catchError((error) => {\n if (error.status === 403) {\n this.snackbarService.openErrorSnack('FRONTEND.SALES_UI.ORDER_PERMISSION_ERROR');\n return of([]);\n }\n }),\n );\n }\n\n adjustStatusFiltersForTabs(request: LoadRequest, salesOrdersTab: SalesOrdersTableTab): void {\n switch (salesOrdersTab) {\n case SalesOrdersTableTab.PENDING:\n if (\n !request.filters['resubmitted'] &&\n !request.filters['pending'] &&\n !request.filters['awaiting-customer-approval']\n ) {\n request.filters['resubmitted'] = true;\n request.filters['pending'] = true;\n request.filters['awaiting-customer-approval'] = true;\n }\n break;\n case SalesOrdersTableTab.APPROVED:\n request.filters['approved'] = true;\n break;\n case SalesOrdersTableTab.CANCELLATION_REQUESTS:\n request.filters['cancellation-requested'] = true;\n break;\n case SalesOrdersTableTab.ERRORS:\n request.filters['activation-errors'] = true;\n break;\n }\n }\n}\n", "import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { publishReplay, refCount, take } from 'rxjs/operators';\nimport { Salesperson, SalespersonService as SalesService } from '@vendasta/sales';\n\n@Injectable()\nexport class SalespersonService {\n private cache: { [salesPersonId: string]: Observable } = {};\n\n constructor(private readonly salesService: SalesService) {}\n\n getSalesperson(partnerId: string, salespersonId: string): Observable {\n if (!this.cache[salespersonId]) {\n this.cache[salespersonId] = this.salesService\n .getSalesperson(partnerId, salespersonId)\n .pipe(publishReplay(1, 5000), refCount(), take(1));\n }\n\n return this.cache[salespersonId];\n }\n}\n", "import { Injectable } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { CheckboxFilterControl, FilterGroup } from '@vendasta/va-filter2';\nimport { prependStatusFiltersSection } from './filters-utils';\n\nenum SalesOrdersTableTab {\n ALL = 0,\n PENDING = 1,\n APPROVED = 2,\n CANCELLATION_REQUESTS = 3,\n ERRORS = 4,\n}\n\n@Injectable({ providedIn: 'root' })\nexport class SalesOrdersTableTabFilterService {\n statusSectionName = this.translateService.instant('FRONTEND.SALES_UI.STATUS');\n\n constructor(private translateService: TranslateService) {}\n\n setTabStatusFilters(selectedTab: number, filters: FilterGroup): void {\n filters?.removeSection(this.statusSectionName);\n switch (selectedTab) {\n case SalesOrdersTableTab.ALL:\n prependStatusFiltersSection(filters, this.translateService);\n break;\n case SalesOrdersTableTab.PENDING:\n filters?.prependSection(this.statusSectionName, [\n new CheckboxFilterControl(\n 'resubmitted',\n this.translateService.instant('FRONTEND.SALES_UI.RESUBMITTED'),\n false,\n {\n appliedValueMapper: (name) => ({\n name,\n label: this.translateService.instant('FRONTEND.SALES_UI.RESUBMITTED'),\n }),\n },\n ),\n new CheckboxFilterControl('pending', this.translateService.instant('FRONTEND.SALES_UI.PENDING'), false, {\n appliedValueMapper: (name) => ({\n name,\n label: this.translateService.instant('FRONTEND.SALES_UI.PENDING'),\n }),\n }),\n new CheckboxFilterControl(\n 'awaiting-customer-approval',\n this.translateService.instant('FRONTEND.SALES_UI.AWAITING_CUSTOMER_APPROVAL'),\n false,\n {\n appliedValueMapper: (name) => ({\n name,\n label: this.translateService.instant('FRONTEND.SALES_UI.AWAITING_CUSTOMER_APPROVAL'),\n }),\n },\n ),\n ]);\n break;\n }\n filters?.patchValue({ ...filters?.value });\n }\n}\n", "import { Component, Input } from '@angular/core';\nimport { Observable, map, startWith } from 'rxjs';\nimport { BaseSalesOrdersTableService } from '../interface';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Status } from '@vendasta/sales-orders';\n\n@Component({\n selector: 'sales-ui-sales-order-table-stats',\n templateUrl: './sales-order-table-stats.component.html',\n styleUrl: './sales-order-table-stats.component.scss',\n standalone: false,\n})\nexport class SalesOrderTableStatsComponent {\n @Input() set dataService(dataService: BaseSalesOrdersTableService) {\n this.stats$ = dataService?.stats$.pipe(\n map((stats) => this.startCardData(stats)),\n startWith(this.startCardData(null)),\n );\n }\n stats$: Observable<{ title: string; value?: number; loading?: boolean }[]>;\n\n constructor(private readonly i18n: TranslateService) {}\n\n startCardData(stats: { [key: string]: number }): { title: string; value?: number; loading?: boolean }[] {\n return [\n {\n title: this.i18n.instant('FRONTEND.SALES_UI.TOTAL_ORDERS'),\n loading: !stats,\n value: this.statValue(stats, Object.values(Status)),\n },\n {\n title: this.i18n.instant('FRONTEND.SALES_UI.PENDING_APPROVAL'),\n loading: !stats,\n value: this.statValue(stats, [Status.SUBMITTED, Status.SUBMITTED_FOR_CUSTOMER_APPROVAL, Status.RESUBMITTED]),\n },\n {\n title: this.i18n.instant('FRONTEND.SALES_UI.CANCELLED'),\n loading: !stats,\n value: this.statValue(stats, [Status.CANCELLED]),\n },\n {\n title: this.i18n.instant('FRONTEND.SALES_UI.APPROVED'),\n loading: !stats,\n value: this.statValue(stats, [Status.APPROVED, Status.SCHEDULED_ACTIVATION, Status.FULFILLED]),\n },\n ];\n }\n\n statValue(stats: { [key: string]: number }, statuses: (Status | string)[]): number {\n if (!stats) return 0;\n return statuses.reduce((acc, status) => acc + (stats[status] || 0), 0);\n }\n}\n", "
\n
\n \n \n \n {{ stat.title }}\n {{ stat.value }}\n \n \n \n \n
\n
\n", "import { Component, Inject, Injector, Input, OnInit, output } from '@angular/core';\nimport { FeatureFlagService, PartnerService } from '@galaxy/partner';\nimport { TranslateService } from '@ngx-translate/core';\nimport {\n CustomExportEvent,\n TABLE_DEFINITION,\n VaFilteredMatTableService,\n VaTableSortService,\n} from '@vendasta/va-filter2-table';\nimport { firstValueFrom } from 'rxjs';\nimport {\n BaseSalesOrdersExportAllService,\n BaseSalesOrdersTableFilterService,\n BaseSalesOrdersTableService,\n OrdersRow,\n RequestedExportType,\n SALES_ORDERS_TABLE_FACTORY_PARAM_TOKEN,\n SalesOrdersTableFactoryParams,\n SalesOrdersTableOptions,\n} from './interface';\nimport { SalesOrdersExportAllService } from './sales-order-export-all-service';\nimport { CustomerSalesOrdersTableService } from './sales-orders-customer-table.service';\nimport { CustomerSalesOrdersTableFilterService } from './sales-orders-table-customer-filter.service';\nimport { SalesOrdersTableFilterService } from './sales-orders-table-filter.service';\nimport { tableDefinitionFactory } from './sales-orders-table-model';\nimport { SalesOrdersTableService } from './sales-orders-table.service';\nimport { SalespersonService } from './salesperson.service';\nimport { ProductAnalyticsService } from '@vendasta/product-analytics';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { SalesOrdersTableTabFilterService } from './sales-orders-table-tab-filter.service';\n\n@Component({\n selector: 'sales-ui-sales-orders-table',\n templateUrl: './sales-orders-table.component.html',\n styleUrls: ['./sales-orders-table.component.scss'],\n providers: [\n VaTableSortService,\n SalespersonService,\n SalesOrdersTableService,\n CustomerSalesOrdersTableService,\n VaFilteredMatTableService,\n SalesOrdersTableTabFilterService,\n SalesOrdersTableFilterService,\n CustomerSalesOrdersTableFilterService,\n SalesOrdersExportAllService,\n {\n provide: TABLE_DEFINITION,\n useFactory: tableDefinitionFactory,\n deps: [\n SalesOrdersTableFilterService,\n CustomerSalesOrdersTableFilterService,\n SALES_ORDERS_TABLE_FACTORY_PARAM_TOKEN,\n TranslateService,\n FeatureFlagService,\n PartnerService,\n ],\n },\n ],\n standalone: false,\n})\nexport class SalesOrdersTableComponent implements OnInit {\n @Input() options: SalesOrdersTableOptions = {};\n\n @Input() showStats = false;\n @Input() canAccessSalesTeams = true;\n @Input() set salesOrdersTab(tab: number) {\n if (!this.tableFactoryParams?.inBusinessCenter && this.dataService) {\n this.dataService.salesOrdersTab$$.next(tab);\n this.salesOrdersTableTabFilterService.setTabStatusFilters(tab, this.tableFilterService?.filters);\n }\n }\n\n tableServicesInitialized = output();\n\n presetViews: string;\n\n private tableFilterService: BaseSalesOrdersTableFilterService;\n public dataService: BaseSalesOrdersTableService;\n public exportAllDataService: BaseSalesOrdersExportAllService;\n\n constructor(\n private inj: Injector,\n @Inject(SALES_ORDERS_TABLE_FACTORY_PARAM_TOKEN) private readonly tableFactoryParams: SalesOrdersTableFactoryParams,\n private readonly i18n: TranslateService,\n private readonly productAnalyticsService: ProductAnalyticsService,\n private readonly snackBarService: SnackbarService,\n private readonly translateService: TranslateService,\n private readonly salesOrdersTableTabFilterService: SalesOrdersTableTabFilterService,\n ) {}\n\n ngOnInit(): void {\n const forcedFilters = this?.options?.forcedFilters || {};\n const exportOptions = this?.options?.exportOptions || RequestedExportType.Partner;\n\n this.productAnalyticsService.trackEvent('sales_orders_table_viewed', 'sales_orders', 'viewed');\n\n if (this.tableFactoryParams?.inBusinessCenter) {\n this.tableFilterService = this.inj.get(CustomerSalesOrdersTableFilterService);\n this.dataService = this.inj.get(CustomerSalesOrdersTableService);\n } else {\n this.tableFilterService = this.inj.get(SalesOrdersTableFilterService);\n this.dataService = this.inj.get(SalesOrdersTableService);\n // TODO initialize this outside of the isCustomerTable logic - all centers should be able to export\n this.exportAllDataService = this.inj.get(SalesOrdersExportAllService);\n this.exportAllDataService.initialize(forcedFilters, exportOptions);\n }\n\n this.tableFilterService.initialize(forcedFilters, this.canAccessSalesTeams);\n this.dataService.initialize(forcedFilters);\n this.presetViews = this.dataService.presetViews;\n\n this.tableServicesInitialized.emit();\n }\n\n async handleCustomExportEvent(event: CustomExportEvent): Promise {\n // check the total to prevent excessively large export processing\n firstValueFrom(this.dataService.totalResults$).then((total) => {\n if (total > 500000) {\n this.snackBarService.openErrorSnack(\n this.translateService.instant('FRONTEND.SALES_UI.EXPORT.ERROR_TOO_MANY_ROWS'),\n );\n return;\n } else if (total === 0) {\n this.snackBarService.openErrorSnack(this.translateService.instant('FRONTEND.SALES_UI.EXPORT.ERROR_NO_RESULTS'));\n return;\n } else {\n this.exportAllDataService.exportAllRowsToCSV(event.requestInfo, event.optionId);\n }\n });\n }\n}\n", "
\n \n
\n \n
\n
\n", "import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { LexiconModule } from '@galaxy/lexicon';\nimport baseTranslation from '../../assets/i18n/en_devel.json';\nimport { WEBLATE_COMPONENT_NAME } from '../../shared/constants';\nimport { SalespersonSelectorDialogComponent } from './salesperson-selector-dialog.component';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { GalaxyInfiniteScrollTriggerModule } from '@vendasta/galaxy/infinite-scroll-trigger';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { GalaxyWrapModule } from '@vendasta/galaxy/galaxy-wrap';\nimport { GalaxyLoadingSpinnerModule } from '@vendasta/galaxy/loading-spinner';\n\n@NgModule({\n declarations: [SalespersonSelectorDialogComponent],\n imports: [\n CommonModule,\n RouterModule,\n MatProgressSpinnerModule,\n MatTooltipModule,\n TranslateModule,\n LexiconModule.forChild({\n componentName: WEBLATE_COMPONENT_NAME,\n baseTranslation: baseTranslation,\n }),\n MatMenuModule,\n MatIconModule,\n MatButtonModule,\n MatCardModule,\n MatDividerModule,\n MatDialogModule,\n MatAutocompleteModule,\n GalaxyInfiniteScrollTriggerModule,\n MatChipsModule,\n FormsModule,\n MatFormFieldModule,\n ReactiveFormsModule,\n GalaxyFormFieldModule,\n MatInputModule,\n GalaxyWrapModule,\n GalaxyLoadingSpinnerModule,\n ],\n exports: [SalespersonSelectorDialogComponent],\n})\nexport class SalespersonSelectorDialogModule {}\n", "import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DateFnsAdapter, MAT_DATE_FNS_FORMATS } from '@angular/material-date-fns-adapter';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCardModule } from '@angular/material/card';\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { RouterModule } from '@angular/router';\nimport { AccountGroupService } from '@galaxy/account-group';\nimport { LexiconModule } from '@galaxy/lexicon';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GalaxyBadgeModule } from '@vendasta/galaxy/badge';\nimport { GalaxyAddressPipe } from '@vendasta/galaxy/pipes';\nimport { GalaxyStatisticModule } from '@vendasta/galaxy/statistic';\nimport { getLocale } from '@vendasta/galaxy/utility/locale';\nimport { VaBadgeModule, VaCardsModule } from '@vendasta/uikit';\nimport { Filter2TableModule } from '@vendasta/va-filter2-table';\nimport baseTranslation from '../../assets/i18n/en_devel.json';\nimport { WEBLATE_COMPONENT_NAME } from '../../shared/constants';\nimport { SalespersonSelectorDialogModule } from '../salesperson-selector-dialog/salesperson-selector-dialog.module';\nimport { SalesOrderActionsCellComponent } from './cells/sales-order-actions-cell.component';\nimport { BusinessInfoCellComponent } from './cells/business-info-cell.component';\nimport { DateCellComponent } from './cells/date-cell.component';\nimport { ExpiryCellComponent } from './cells/expiry-cell.component';\nimport { OrderIdCellComponent } from './cells/order-id-cell.component';\nimport { OrderTagsCellComponent } from './cells/order-tags-cell.component';\nimport { SalesOrderTableCustomComponentDirective } from './cells/sales-order-table-custom.component';\nimport { SalespersonCellComponent } from './cells/salesperson-cell.component';\nimport { StatusCellComponent } from './cells/status-cell.component';\nimport { SalesOrdersTableComponent } from './sales-orders-table.component';\nimport { FulfillmentCellComponent } from './cells/fulfillment-cell.component';\nimport { SalesOrderTableStatsComponent } from './sales-order-table-stats/sales-order-table-stats.component';\n\n@NgModule({\n declarations: [\n SalesOrdersTableComponent,\n BusinessInfoCellComponent,\n OrderIdCellComponent,\n OrderTagsCellComponent,\n SalespersonCellComponent,\n DateCellComponent,\n StatusCellComponent,\n FulfillmentCellComponent,\n ExpiryCellComponent,\n SalesOrderActionsCellComponent,\n SalespersonCellComponent,\n SalesOrderTableCustomComponentDirective,\n SalesOrderTableStatsComponent,\n ],\n imports: [\n CommonModule,\n Filter2TableModule,\n RouterModule,\n MatProgressSpinnerModule,\n MatTooltipModule,\n VaBadgeModule,\n TranslateModule,\n LexiconModule.forChild({\n componentName: WEBLATE_COMPONENT_NAME,\n baseTranslation: baseTranslation,\n }),\n MatMenuModule,\n MatIconModule,\n MatButtonModule,\n MatCardModule,\n MatDividerModule,\n VaCardsModule,\n GalaxyStatisticModule,\n GalaxyBadgeModule,\n SalespersonSelectorDialogModule,\n ],\n providers: [\n AccountGroupService,\n GalaxyAddressPipe,\n { provide: MAT_DATE_LOCALE, useValue: getLocale() },\n {\n provide: DateAdapter,\n useClass: DateFnsAdapter,\n deps: [MAT_DATE_LOCALE],\n },\n { provide: MAT_DATE_FORMATS, useValue: MAT_DATE_FNS_FORMATS },\n { provide: 'FULFILLMENT_CELL_LINK_VERSION', useValue: false },\n ],\n exports: [SalesOrdersTableComponent, SalesOrderTableStatsComponent],\n})\nexport class SalesOrdersTableModule {}\n", "import { NgModule } from '@angular/core';\nimport { LexiconModule } from '@galaxy/lexicon';\nimport { WEBLATE_COMPONENT_NAME } from './shared/constants';\nimport baseTranslation from './assets/i18n/en_devel.json';\n\n@NgModule({\n imports: [\n LexiconModule.forChild({\n componentName: WEBLATE_COMPONENT_NAME,\n baseTranslation: baseTranslation,\n }),\n ],\n providers: [],\n})\nexport class SalesUiTranslationsModule {}\n", "import { OpportunityType } from '../interface';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { MatSelectModule } from '@angular/material/select';\nimport { CommonModule } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\n\nexport function getOpportunityTypeFromId(typeId = ''): OpportunityType {\n return OpportunityTypes.find((t) => t.id === typeId);\n}\n\nexport function getDefaultOpportunityType(): OpportunityType {\n return OpportunityTypes.find((t) => t.id === '');\n}\n\nexport const OpportunityTypes: OpportunityType[] = [\n {\n id: '',\n displayName: 'FRONTEND.SALES_OPPORTUNITIES.OPPORTUNITY_TYPE.NOT_SPECIFIED',\n },\n {\n id: 'new-business',\n displayName: 'FRONTEND.SALES_OPPORTUNITIES.OPPORTUNITY_TYPE.NEW_BUSINESS',\n },\n {\n id: 'existing-business',\n displayName: 'FRONTEND.SALES_OPPORTUNITIES.OPPORTUNITY_TYPE.EXISTING_BUSINESS',\n },\n];\n\n@Component({\n imports: [MatSelectModule, CommonModule, TranslateModule, GalaxyFormFieldModule],\n selector: 'sales-ui-type-selector',\n templateUrl: './type-selector.component.html',\n})\nexport class TypeSelectorComponent {\n @Input() set defaultType(type: OpportunityType) {\n this.selectedType$$.next(type);\n }\n\n @Output() typeChanged = new EventEmitter();\n opportunityTypes$$ = new BehaviorSubject(OpportunityTypes);\n opportunityTypes$ = this.opportunityTypes$$.asObservable();\n selectedType$$ = new BehaviorSubject(OpportunityTypes[0]);\n selectedType$ = this.selectedType$$.asObservable();\n\n emitTypeChange(type: string): void {\n this.typeChanged.emit(type);\n }\n}\n", "\n \n {{ 'FRONTEND.SALES_OPPORTUNITIES.OPPORTUNITY_TYPE.PLACEHOLDER' | translate }}\n \n \n {{ type.displayName | translate }}\n \n \n \n\n", "export {\n CURRENT_PIPELINE,\n Pipeline,\n STAGE_PROBABILITY_DELTA,\n USER_PIPELINES_TOKEN,\n USER_PIPELINE_TOKEN,\n} from '@vendasta/sales-common';\nexport { AppCacheService, CacheEntry, ClientOrigin } from './cache/app-cache.service';\nexport { DateFiltersModule } from './filters/date-filters/date-filters.module';\nexport {\n ActualCloseFilterService,\n AssignedDateFilterService,\n CreatedDateFilterService,\n DateFilterServiceInterface,\n ExpectedCloseFilterService,\n} from './filters/date-filters/date-filters.service';\nexport {\n DateRangeSelectorDialogComponent,\n DateRangeSelectorDialogData,\n} from './filters/date-range-selector-dialog/date-range-selector-dialog.component';\nexport { MarketSelectorModule } from './filters/market-selector/market-selector.module';\nexport { MARKET_SELECTOR_SERVICE_TOKEN, MarketSelectorServiceInterface } from './filters/market-selector/tokens';\nexport { DateRangeSelectorDialogModule } from './filters/date-range-selector-dialog/date-range-selector-dialog.module';\nexport { FilterChipsModule } from './filters/filter-chips/filter-chips.module';\nexport { SalesTeamOption } from './filters/filter-options/sales-team-option.model';\nexport { SalespersonOption } from './filters/filter-options/salesperson-option.model';\nexport { PipelineFiltersServiceModule } from './filters/filters-service/pipeline-filters-service.module';\nexport { PipelineFiltersService, PipelineTableFilters } from './filters/filters-service/pipeline-filters.service';\nexport { PipelineFilterPackageSelectionService } from './filters/package-selector/pipeline-filter-package-selection.service';\nexport { PipelineFilterPackageSelectorComponent } from './filters/package-selector/pipeline-filter-package-selector.component';\nexport { PipelineFilterPackageSelectorModule } from './filters/package-selector/pipeline-filter-package-selector.module';\nexport { PipelineFilterPackageStoreService } from './filters/package-selector/pipeline-filter-package-store.service';\nexport { PACKAGE_SELECT_CONFIG_TOKEN, PackageSelectConfig } from './filters/package-selector/tokens';\nexport {\n PipelineDialogData,\n PipelineMultiSelectComponent,\n} from './filters/pipeline-multi-select/pipeline-multi-select.component';\nexport { PipelineMultiSelectModule } from './filters/pipeline-multi-select/pipeline-multi-select.module';\nexport { PipelineMultiSelectService } from './filters/pipeline-multi-select/pipeline-multi-select.service';\nexport { ProductDialogData, ProductSelectorComponent } from './filters/product-selector/product-selector.component';\nexport { ProductSelectorModule } from './filters/product-selector/product-selector.module';\nexport { ProductSelectorService } from './filters/product-selector/product-selector.service';\nexport { PRODUCT_SELECTOR_CONFIG_TOKEN, ProductSelectorConfig } from './filters/product-selector/tokens';\nexport { SalespersonMultiSelectComponent } from './filters/salesperson-multi-select/salesperson-multi-select.component';\nexport { SalespersonMultiSelectModule } from './filters/salesperson-multi-select/salesperson-multi-select.module';\nexport { SalespersonMultiSelectStoreService } from './filters/salesperson-multi-select/salesperson-multi-select.store.service';\nexport {\n SALESPERSON_MULTI_SELECT_CONFIG_TOKEN,\n INIT_WITH_CUR_SALESPERSON_TOKEN,\n SalespersonMultiSelectConfig,\n} from './filters/salesperson-multi-select/tokens';\nexport { SalesTeamMultiSelectStoreService } from './filters/salesteam-multi-select/sales-team-multi-select-store.service';\nexport { SalesTeamMultiSelectComponent } from './filters/salesteam-multi-select/sales-team-multi-select.component';\nexport { SalesTeamMultiSelectModule } from './filters/salesteam-multi-select/sales-team-multi-select.module';\nexport {\n SALES_TEAM_MULTI_SELECT_CONFIG_TOKEN,\n SalesTeamMultiSelectConfig,\n} from './filters/salesteam-multi-select/tokens';\nexport { StatusSelectComponent } from './filters/status-select/status-select.component';\nexport { StatusSelectModule } from './filters/status-select/status-select.module';\nexport { StatusSelectService } from './filters/status-select/status-select.service';\nexport { GetTagsRequest, GetTagsResponse, TagService } from './filters/tag-selector/interface';\nexport { ACCOUNT, MultiSelectTag, OPPORTUNITY } from './filters/tag-selector/tag';\nexport { TagMultiSelectionStoreService } from './filters/tag-selector/tag-multi-selection.service';\nexport { TagMultiSelectComponent } from './filters/tag-selector/tag-multi-selector.component';\nexport { TagMultiSelectModule } from './filters/tag-selector/tag-multi-selector.module';\nexport { TAG_MULTI_SELECT_CONFIG_TOKEN, TagMultiSelectConfig } from './filters/tag-selector/tokens';\nexport { MEDDICScoreSource } from './meddic/meddic-scores/m-e-d-d-i-c-score-source';\nexport { MeddicModule } from './meddic/meddic.module';\nexport { PipelineBoardServiceConfig } from './pipelines/pipeline-board-service/interfaces';\nexport { PipelineBoardServiceModule } from './pipelines/pipeline-board-service/pipeline-board-service.module';\nexport {\n INITIAL_SORT,\n PipelineBoardService,\n SORT_DIRECTIONS,\n} from './pipelines/pipeline-board-service/pipeline-board.service';\nexport { PipelineBoardFilter } from './pipelines/pipeline-board-service/interfaces';\nexport { PIPELINE_BOARD_SERVICE_CONFIG_TOKEN } from './pipelines/pipeline-board-service/tokens';\nexport { PIPELINE_BOARD_FILTER_CHIPS_CONFIG_TOKEN } from './pipelines/pipeline-board/filter/pipeline-board-filter-chips/tokens';\nexport { PipelineBoardFiltersModule } from './pipelines/pipeline-board/filter/pipeline-board-filters.module';\nexport { PipelineBoardConfig, PartnerOverrideConfig } from './pipelines/pipeline-board/interfaces';\nexport { PIPELINE_BOARD_CONFIG_TOKEN, PipelineBoardModule } from './pipelines/pipeline-board/pipeline-board.module';\nexport { PipelineBusinessNameService } from './pipelines/pipeline-business-name/pipeline-business-name.service';\nexport { PipelineCardComponent } from './pipelines/pipeline-card/pipeline-card.component';\nexport { PipelineCardModule } from './pipelines/pipeline-card/pipeline-card.module';\nexport { PIPELINE_CARD_CONFIG_TOKEN, PipelineCardConfig } from './pipelines/pipeline-card/tokens';\nexport { PipelineFilterSaverService } from './pipelines/pipeline-filters-cache/pipeline-filter-saver.service';\nexport { PipelineFiltersCacheModule } from './pipelines/pipeline-filters-cache/pipeline-filters-cache.module';\nexport {\n FILTERS_CACHE_SERVICE_TOKEN,\n FiltersCacheObject,\n PipelineFiltersCacheService,\n} from './pipelines/pipeline-filters-cache/pipeline-filters-cache.service';\nexport { PipelineSavedFiltersModule } from './pipelines/pipeline-saved-filters/pipeline-saved-filters.module';\nexport {\n PIPELINE_TABLE_SAVED_FILTERS_CONFIG_TOKEN,\n PipelineTableSavedFiltersConfig,\n} from './pipelines/pipeline-saved-filters/tokens';\nexport {\n PipelineField,\n PipelineSort,\n SortDirection,\n buildSortOptions,\n convertSortOptionToPipelineSort,\n defaultPipelineSortOption,\n defaultSortOption,\n} from './pipelines/pipeline-sort';\nexport { PipelineStageStats, PipelineStats } from './pipelines/pipeline-stats/pipeline-stats.service';\nexport { PipelineStatusCheckboxComponent } from './pipelines/pipeline-status-checkbox/pipeline-status-checkbox.component';\nexport { PipelineStatusCheckboxModule } from './pipelines/pipeline-status-checkbox/pipeline-status-checkbox.module';\nexport {\n PipelineStatusCheckboxService,\n PipelineStatuses,\n} from './pipelines/pipeline-status-checkbox/pipeline-status-checkbox.service';\nexport { PipelineSwitcherModule } from './pipelines/pipeline-switcher/pipeline-switcher.module';\nexport { PipelineSwitcherService, PipelinePageUrls } from './pipelines/pipeline-switcher/pipeline-switcher.service';\nexport { PipelineTableFilterChipsModule } from './pipelines/pipeline-table-filter-chips/pipeline-table-filter-chips.module';\nexport {\n PIPELINE_TABLE_FILTER_CHIPS_CONFIG_TOKEN,\n PipelineTableFilterChipsConfig,\n} from './pipelines/pipeline-table-filter-chips/tokens';\nexport { PipelineTableServiceModule } from './pipelines/pipeline-table-service/pipeline-table-service.module';\nexport {\n PAGE_SIZE,\n PipelineTableService,\n calculateRevenueInMonth,\n} from './pipelines/pipeline-table-service/pipeline-table.service';\nexport { OpportunityRow } from './pipelines/pipeline-table-service/pipeline-table.service.interface';\nexport {\n ALL_SALESPEOPLE_TOKEN,\n DEFAULT_CURRENCY_TOKEN,\n PIPELINE_TABLE_SERVICE_CONFIG_TOKEN,\n PipelineTableServiceConfig,\n} from './pipelines/pipeline-table-service/tokens';\nexport { PipelineTableConfig } from './pipelines/pipeline-table/interfaces';\nexport { PipelineTableComponent } from './pipelines/pipeline-table/pipeline-table.component';\nexport { PipelineTableModule } from './pipelines/pipeline-table/pipeline-table.module';\nexport { PipelineCacheModule } from './pipelines/pipeline/cache/pipeline-cache.module';\nexport { PipelinePageCacheService } from './pipelines/pipeline/cache/pipeline-page-cache.service';\nexport { SelectedPipelineCacheService } from './pipelines/pipeline/cache/selected-pipeline-cache.service';\nexport { ExportCsvNotificationDialogComponent } from './pipelines/pipeline/csv/export-csv-notification-dialog/export-csv-notification-dialog.component';\nexport { ExportCsvSelectionDialogComponent } from './pipelines/pipeline/csv/export-csv-selection-dialog/export-csv-selection-dialog.component';\nexport { PipelineCSVModule } from './pipelines/pipeline/csv/pipeline-export-csv.module';\nexport { PipelineExportCsvService } from './pipelines/pipeline/csv/pipeline-export-csv/pipeline-export-csv.service';\nexport {\n PIPELINE_SERVICE_INJECTION_TOKEN,\n PipelineServiceInterface,\n PipelineUIFilters,\n SalesPersonOptionValue,\n SalesTeamOptionValue,\n} from './pipelines/pipeline/pipeline-service.interface';\nexport { PotentialRevenueModule } from './pipelines/pipeline/potential-revenue/potential-revenue.module';\nexport { PotentialRevenueService } from './pipelines/pipeline/potential-revenue/potential-revenue.service';\nexport { RevenueDateDropdownModule } from './pipelines/pipeline/potential-revenue/revenue-date-dropdown/revenue-date-dropdown.module';\nexport { REVENUE_DEFAULT_CURRENCY_CODE_TOKEN } from './pipelines/pipeline/potential-revenue/tokens';\nexport { PIPELINE_CONFIG_TOKEN, PipelinesModule } from './pipelines/pipelines.module';\nexport { SearchbarModule } from './pipelines/searchbar/searchbar.module';\nexport { SearchbarService } from './pipelines/searchbar/searchbar.service';\nexport { USER_PIPELINES_SERVICE_CONFIG_TOKEN, UserPipelinesServiceConfig } from './pipelines/user-pipelines/tokens';\nexport { DEFAULT_PIPELINE_ID, UserPipelines } from './pipelines/user-pipelines/user-pipelines';\nexport { UserPipelinesModule } from './pipelines/user-pipelines/user-pipelines.module';\nexport { PIPELINE_SETTINGS_CONFIG_TOKEN } from './pipelines/pipeline-settings/tokens';\nexport { PipelineSettingsModule, PipelineSettingsRoutes } from './pipelines/pipeline-settings/pipeline-settings.module';\nexport {\n CREATE_OPPORTUNITY_URL,\n CreateOpportunityRequest,\n CreateOpportunityResponse,\n GET_TAGS_URL,\n OpportunityPackage,\n SalesOpportunitiesApi,\n UPDATE_TAGS_URL,\n UpdateOpportunityTagsRequest,\n UpdateOpportunityTagsResponse,\n} from './sales-opportunities/interface';\nexport { listOpportunitiesMockResponse } from './sales-opportunities/opportunities.mock';\nexport {\n AccountUrlFunction,\n CompanyUrlFunction,\n DetailsConfig,\n Attachment,\n ClosedLostReason,\n ClosedLostReasonStringMapping,\n GetOpportunityUrl,\n Opportunity,\n OpportunityUrlFunction,\n} from './sales-opportunities/opportunity';\nexport {\n Badge,\n StatusToBadgeMapping,\n appToSalesOrderLineItem,\n packageToSalesOrderLineItem,\n OpportunityToOrderLineItems,\n OrderToOpportunityLineItems,\n} from './sales-orders/conversion-utils';\nexport {\n BUSINESS_ID_TOKEN,\n MARKET_IDS_TOKEN,\n MARKET_ID_TOKEN,\n PARTNER_ID_TOKEN,\n SALESPEOPLE_TOKEN,\n SALES_TEAMS_TOKEN,\n} from './sales-orders/external-dependencies/provider-tokens';\nexport { SalesOpportunityStoreService } from './sales-orders/sales-opportunity-store.service';\nexport { SalesOrderConfirmationComponent } from './sales-orders/sales-order-confirmation/sales-order-confirmation.component';\nexport { SalesOrderConfirmationModule } from './sales-orders/sales-order-confirmation/sales-order-confirmation.module';\nexport {\n AppSdkService,\n PackageApiService,\n UILineItemWithEditionPricing,\n} from './sales-orders/sales-order-confirmation/sales-order-confirmation.service';\nexport { SalesOrderEditPriceComponent } from './sales-orders/sales-order-confirmation/sales-order-edit-price/sales-order-edit-price.component';\nexport {\n SalesOrderLineItemSelectorDialogComponent,\n SalesOrderLineItemSelectorDialogData,\n SalesOrderLineItemSelectorDialogResult,\n} from './sales-orders/sales-order-confirmation/sales-order-line-item-selector-dialog/sales-order-line-item-selector-dialog.component';\nexport { SalesOrderPackageDropdownItemComponent } from './sales-orders/sales-order-contents/package-dropdown/package-dropdown-item/package-dropdown-item.component';\nexport { SalesOrderPackageDropdownComponent } from './sales-orders/sales-order-contents/package-dropdown/package-dropdown.component';\nexport { SalesOrderContentsComponent } from './sales-orders/sales-order-contents/sales-order-contents.component';\nexport { SalesOrderContentsModule } from './sales-orders/sales-order-contents/sales-order-contents.module';\nexport { SalesOrderDeclineDialogComponent } from './sales-orders/sales-order-decline-dialog/sales-order-decline-dialog.component';\nexport { SalesOrderDeclineDialogModule } from './sales-orders/sales-order-decline-dialog/sales-order-decline-dialog.module';\nexport { OrderDetailAgreement } from './sales-orders/sales-order-details-card/order-detail-agreement';\nexport {\n OrderDetailField,\n User,\n userWithEmail,\n userWithName,\n} from './sales-orders/sales-order-details-card/order-detail-field';\nexport { SalesOrderDetailsCardComponent } from './sales-orders/sales-order-details-card/sales-order-details-card.component';\nexport { SalesOrderDetailsCardModule } from './sales-orders/sales-order-details-card/sales-order-details-card.module';\nexport { ContractDurationEnumToKeys } from './sales-orders/sales-order-details-card/sales-order-details-contract-duration/sales-contract-duration';\nexport { SalesOrderDetailsContractDurationComponent } from './sales-orders/sales-order-details-card/sales-order-details-contract-duration/sales-order-details-contract-duration.component';\nexport { SalesOrderDetailsCustomerNotesComponent } from './sales-orders/sales-order-details-card/sales-order-details-customer-notes/sales-order-details-customer-notes.component';\nexport { SalesOrderDetailsNotesComponent } from './sales-orders/sales-order-details-card/sales-order-details-notes/sales-order-details-notes.component';\nexport { SalesOrderDetailsRequestedActivationComponent } from './sales-orders/sales-order-details-card/sales-order-details-requested-activation/sales-order-details-requested-activation.component';\nexport { SalesOrderDetailsTagsComponent } from './sales-orders/sales-order-details-card/sales-order-details-tags/sales-order-details-tags.component';\nexport * from './sales-orders/sales-order-form/interface';\nexport { SalesOrderFormComponent } from './sales-orders/sales-order-form/sales-order-form.component';\nexport { SalesOrderFormModule } from './sales-orders/sales-order-form/sales-order-form.module';\nexport { SalesOrderFormService } from './sales-orders/sales-order-form/sales-order-form.service';\nexport { AppSelectorComponent } from './sales-orders/sales-order-line-item-selector/app-selector/app-selector.component';\nexport { AppNameCellComponent } from './sales-orders/sales-order-line-item-selector/app-selector/cells/app-name-cell.component';\nexport { AppRevenueCellComponent } from './sales-orders/sales-order-line-item-selector/app-selector/cells/app-revenue-cell.component';\nexport { AppRevenueHeaderCellComponent } from './sales-orders/sales-order-line-item-selector/app-selector/cells/app-revenue-header-cell.component';\nexport { AppSelectorCustomComponentDirective } from './sales-orders/sales-order-line-item-selector/app-selector/cells/app-selector-custom.component';\nexport {\n AppWithRetailPricing,\n SalesOrderLineItemSelectorComponent,\n} from './sales-orders/sales-order-line-item-selector/sales-order-line-item-selector.component';\nexport { SalesOrderLineItemSelectorModule } from './sales-orders/sales-order-line-item-selector/sales-order-line-item-selector.module';\nexport { SalesOrderShortListComponent } from './sales-orders/sales-order-short-list/sales-order-short-list.component';\nexport { SalesOrderShortListModule } from './sales-orders/sales-order-short-list/sales-order-short-list.module';\nexport { SalesOrderStoreService } from './sales-orders/sales-order-store.service';\nexport { SalesOrderActionsCellComponent } from './sales-orders/sales-order-table/cells/sales-order-actions-cell.component';\nexport {\n BUSINESS_LINK,\n BusinessInfoCellComponent,\n} from './sales-orders/sales-order-table/cells/business-info-cell.component';\nexport { DateCellComponent } from './sales-orders/sales-order-table/cells/date-cell.component';\nexport { ExpiryCellComponent } from './sales-orders/sales-order-table/cells/expiry-cell.component';\nexport { OrderIdCellComponent } from './sales-orders/sales-order-table/cells/order-id-cell.component';\nexport { ORDER_LINK } from './sales-orders/sales-order-table/cells/order-link';\nexport { OrderTagsCellComponent } from './sales-orders/sales-order-table/cells/order-tags-cell.component';\nexport { SalesOrderTableCustomComponentDirective } from './sales-orders/sales-order-table/cells/sales-order-table-custom.component';\nexport { SalespersonCellComponent } from './sales-orders/sales-order-table/cells/salesperson-cell.component';\nexport { StatusCellComponent } from './sales-orders/sales-order-table/cells/status-cell.component';\nexport * from './sales-orders/sales-order-table/interface';\nexport { Market, Salesperson } from './sales-orders/sales-order-table/interface';\nexport { SalesOrdersTableComponent } from './sales-orders/sales-order-table/sales-orders-table.component';\nexport { SalesOrdersTableModule } from './sales-orders/sales-order-table/sales-orders-table.module';\nexport {\n SALES_ORDERS_ACCESS_SERVICE_TOKEN,\n AccessService,\n} from './sales-orders/sales-order-table/sales-orders-table-access.service';\nexport { SalesOrderTasksComponent } from './sales-orders/sales-order-tasks/sales-order-tasks.component';\nexport { SalesOrderTasksModule } from './sales-orders/sales-order-tasks/sales-order-tasks.module';\nexport { SalespersonSelectorDialogComponent } from './sales-orders/salesperson-selector-dialog/salesperson-selector-dialog.component';\nexport { SalespersonSelectorDialogModule } from './sales-orders/salesperson-selector-dialog/salesperson-selector-dialog.module';\nexport {\n CampaignSidePanelDataInterface,\n SidePanelState,\n SidePanelStateData,\n SidePanelStateDataTypes,\n SidePanelStateService,\n} from './slide-out-panel/side-panel-state.service';\nexport { BadgeInput } from './slide-out-panel/slide-out-panel-header/slide-out-panel-header.component';\nexport { SlideOutPanelModule } from './slide-out-panel/slide-out-panel.module';\nexport { SlideOutPanelService } from './slide-out-panel/slide-out-panel.service';\nexport { SalesUiTranslationsModule } from './sales-ui-translations.module';\nexport { PipelineSidePanelModule } from './pipelines/pipeline-side-panel/pipeline-side-panel.module';\nexport { GeneralBusinessInfo, AccountTag } from './sales-opportunities/interface';\nexport { UpdateTypeSelectorComponent } from './sales-opportunities/type-selector/update-type-selector/update-type-selector.component';\nexport * from './sales-opportunities/type-selector/type-selector.component';\nexport { OrdersUrl, OrdersUrlFunction } from './sales-opportunities/opportunity';\nexport { LocalTimeCardModule } from './localtime/localtime-card.module';\nexport { PARTNER_OVERRIDE_CONFIG_TOKEN } from './pipelines/tokens';\nexport { AccountFilterModule } from './filters/account-filter/account-filter.module';\nexport { OpportunityTypeFilterModule } from './filters/opportunity-type-filter/opportunity-type-filter.module';\nexport {\n SALES_UI_OPPORTUNITY_CONFIG_TOKEN,\n SalesUIOpportunityConfig,\n PIPELINES_TOKEN,\n SALES_PERSON_ID_TOKEN,\n MARKET_ID_OVERRIDE_TOKEN,\n} from './sales-opportunities/tokens';\nexport { OpportunityModule } from './sales-opportunities/opportunity.module';\nexport { OpportunityDetailsComponent } from './sales-opportunities/opportunity-side-panel/opportunity-details/opportunity-details.component';\nexport { OpportunityService } from './sales-opportunities/opportunity.service';\nexport {\n BusinessInfoService,\n OpportunityBusinessService,\n} from './sales-opportunities/opportunity-side-panel/business-service/opportunity-business.service';\nexport { OpportunitySidePanelEventsService } from './sales-opportunities/opportunity-side-panel/opportunity-side-panel-events.service';\nexport { OpportunityDetailsModule } from './sales-opportunities/opportunity-side-panel/opportunity-details/opportunity-details.module';\nexport { OpportunityDetailsService } from './sales-opportunities/opportunity-side-panel/opportunity-details/opportunity-details.service';\nexport { CreateOpportunityService } from './sales-opportunities/opportunity-side-panel/create-opportunity/create-opportunity.service';\nexport { CreateOpportunityPageData } from './sales-opportunities/opportunity-side-panel/create-opportunity/interface';\nexport { CreateOpportunityModule } from './sales-opportunities/opportunity-side-panel/create-opportunity/create-opportunity.module';\nexport { CreateOpportunityComponent } from './sales-opportunities/opportunity-side-panel/create-opportunity/create-opportunity.component';\nexport {\n ACCOUNT_SELECTOR_SERVICE_TOKEN,\n AccountSelectorServiceConfig,\n} from './accounts/account-selector/account-selector-api.service';\nexport { OpportunityServiceModule } from './sales-opportunities/opportunity-service.module';\nexport { convertItemsToAppKeys } from './sales-orders/sales-order-line-item-selector/item-selector-adapter/utils';\nexport { SalesOrderTableStatsComponent } from './sales-orders/sales-order-table/sales-order-table-stats/sales-order-table-stats.component';\nexport { convertLineItemsToBillingSummary, BillingLineItemSummary } from './sales-orders/billing-utils';\nexport { VaProductPageComponent } from './training-resources/product-page/product-page.component';\nexport { VaProductPageModule } from './training-resources/product-page/product-page.module';\nexport { ProductListPageTableViewComponent } from './training-resources/product-page/product-list-page-table-view/product-list-page-table-view.component';\nexport { TRAINING_RESOURCES_CONFIG_TOKEN, TrainingResourcesConfig } from './training-resources/tokens';\nexport { SalesConfiguration } from './training-resources/constants';\nexport { TrainingResourcesModule } from './training-resources/training-resources.module';\n", "export * from './lib/index';\n"], "mappings": "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", "names": ["\u0275\u0275element", "\u0275\u0275property", "ctx_r0", "title", "iconUrl", "\u0275\u0275elementContainerStart", "\u0275\u0275text", "\u0275\u0275advance", "\u0275\u0275textInterpolate1", "editionName", "\u0275\u0275elementStart", "\u0275\u0275elementEnd", "\u0275\u0275pipeBind2", "\u0275\u0275pureFunction1", "_c2", "previousEditionName", "titleDescriptor", "\u0275\u0275elementContainer", "\u0275\u0275template", "SalesOrderPackageDropdownItemComponent_div_14_ng_container_3_Template", "description", "enableDropdown", "dropdownButton_r2", "menu_r3", "statusItem", "failureDetails", "\u0275\u0275sanitizeHtml", "SalesOrderPackageDropdownItemComponent_div_15_span_8_Template", "SalesOrderPackageDropdownItemComponent_div_15_ng_container_9_Template", "calculateClassFromStatus", "status", "\u0275\u0275textInterpolate", "icon", "\u0275\u0275textInterpolate2", "\u0275\u0275pipeBind1", "text", "statusText", "\u0275\u0275listener", "\u0275\u0275restoreView", "_r4", "\u0275\u0275nextContext", "\u0275\u0275resetView", "toggleItem", "\u0275\u0275pureFunction2", "_c3", "toggleValue", "SalesOrderPackageDropdownItemComponent_ng_template_16_button_0_Template", "menuItem_r6", "_r5", "$implicit", "menuItemClick", "SalesOrderPackageDropdownItemComponent_ng_template_18_div_0_button_6_mat_icon_1_Template", "label", "SalesOrderPackageDropdownItemComponent_ng_template_18_div_0_button_6_Template", "menu_r7", "menuItems", "SalesOrderPackageDropdownItemComponent_ng_template_18_div_0_Template", "length", "showMenuItems", "secondaryIconUrl", "secondaryIconName", "ListIndent", "MenuItemEventType", "SalesOrderPackageDropdownItemComponent", "init_package_dropdown_item_component", "__esmMin", "init_core", "init_vendasta_sales_orders", "constructor", "enableMenu", "indent", "INDENT_ZERO", "first", "menuItemClicked", "EventEmitter", "itemToggled", "emit", "ActivationStatus", "ACTIVATED", "IGNORED_ERRORS", "ALREADY_ACTIVATED", "ERRORED", "item", "value", "eventType", "selectors", "viewQuery", "rf", "ctx", "SalesOrderPackageDropdownItemComponent_va_icon_3_Template", "SalesOrderPackageDropdownItemComponent_ng_container_8_Template", "SalesOrderPackageDropdownItemComponent_span_9_Template", "SalesOrderPackageDropdownItemComponent_span_10_Template", "SalesOrderPackageDropdownItemComponent_div_14_Template", "SalesOrderPackageDropdownItemComponent_div_15_Template", "SalesOrderPackageDropdownItemComponent_ng_template_16_Template", "\u0275\u0275templateRefExtractor", "SalesOrderPackageDropdownItemComponent_ng_template_18_Template", "SalesOrderPackageDropdownItemComponent_ng_template_20_Template", "\u0275\u0275classMap", "_c1", "dualIcon_r8", "subtitle", "buildSalesPackages", "packages", "apps", "length", "map", "pkg", "buildSalesPackageFromPackage", "appMap", "Map", "forEach", "app", "set", "key", "appId", "salesProducts", "buildSalesProducts", "addonsWithNoParent", "buildSalesAddonsWithNoParent", "totalAddonsCount", "lineItems", "filter", "li", "parentId", "reduce", "count", "addon", "quantity", "SalesPackage", "size", "productMatch", "get", "id", "addonsInPackage", "multiplyAddonsByTheirQuantity", "il", "buildSalesProductFromProduct", "productItem", "addonLineItems", "addonsArray", "i", "push", "productsInPackageMap", "lineItemsThatAreAddonsThatDontHaveTheParentAppInThePackage", "addonArray", "SalesProduct", "addons", "a", "addStatusesToSalesPackages", "salesPackages", "statuses", "failureDetails", "salesPackage", "newProducts", "product", "addStatusesToSalesProduct", "newAddonsWithNoParent", "productStatuses", "activationStatus", "status", "addonStatuses", "statusList", "reducedList", "concat", "addonsWithNoParentStatuses", "allStatuses", "packageStatus", "aggregateStatuses", "statusNotification", "createStatusNotificationItem", "totalAddons", "activationFailureDetails", "productStatus", "findStatus", "editionId", "uniqueId", "previousEditionId", "isEditionChange", "newSalesAddons", "addMenuItemsToSalesPackages", "addMenuItemsToSalesProduct", "ActivationStatus", "ERRORED", "menuItems", "label", "icon", "value", "eventType", "MenuItemEventType", "IGNORE_ACTIVATION_ERRORS", "statusIndex", "findIndex", "s", "packageItemId", "splice", "ACTIVATED", "text", "ALREADY_ACTIVATED", "IGNORED_ERRORS", "some", "every", "PENDING", "undefined", "init_sales_package", "__esmMin", "init_vendasta_marketplace_packages", "init_src", "init_package_dropdown_item_component", "init_vendasta_sales_orders", "Package", "constructor", "App", "\u0275\u0275elementContainerStart", "\u0275\u0275template", "SalesOrderPackageDropdownComponent_ng_container_0_ng_template_1_Template", "\u0275\u0275advance", "\u0275\u0275property", "content_r1", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "SalesOrderPackageDropdownComponent_ng_template_1_ng_template_6_Template", "\u0275\u0275textInterpolate", "\u0275\u0275pipeBind1", "ctx_r1", "title", "\u0275\u0275listener", "$event", "\u0275\u0275restoreView", "_r6", "\u0275\u0275nextContext", "\u0275\u0275resetView", "menuItemClick", "addon_r7", "sharedMarketingInformation", "name", "iconUrl", "activationStatus", "menuItems", "packageAddonWithProductIndent", "showMenuItems", "_r5", "SalesOrderPackageDropdownComponent_ng_template_3_div_1_mat_list_2_div_1_sales_ui_sales_order_package_dropdown_item_2_Template", "product_r8", "editionName", "getPreviousEditionName", "packageProductIndent", "addons", "_r9", "addon_r10", "\u0275\u0275pipeBind2", "\u0275\u0275pureFunction1", "_c0", "parentRequirements", "parentDetails", "packageAddonWithoutProductIndent", "SalesOrderPackageDropdownComponent_ng_template_3_div_1_mat_list_2_div_1_Template", "SalesOrderPackageDropdownComponent_ng_template_3_div_1_mat_list_2_sales_ui_sales_order_package_dropdown_item_2_Template", "undefined", "package_r11", "salesProducts", "addonsWithNoParent", "packageIndex_r4", "_r3", "index", "togglePackage", "SalesOrderPackageDropdownComponent_ng_template_3_div_1_mat_list_2_Template", "icon", "packageDescription", "length", "packageToggles", "first_r12", "_r13", "first_r15", "product_r14", "standAloneProductWithParentDescription", "enabled", "SalesOrderPackageDropdownComponent_ng_template_3_div_1_Template", "SalesOrderPackageDropdownComponent_ng_template_3_div_2_Template", "salesPackages", "SalesOrderPackageDropdownComponent", "init_package_dropdown_component", "__esmMin", "init_core", "init_sales_package", "init_package_dropdown_item_component", "init_animations", "constructor", "translateService", "compactView", "packages", "appsInPackages", "standAloneApps", "statuses", "menuItemClicked", "EventEmitter", "ListIndent", "INDENT_ONE", "INDENT_TWO", "orderItemLengths", "products", "productToggles", "ngOnChanges", "changes", "currentValue", "addMenuItemsToSalesPackages", "addStatusesToSalesPackages", "buildSalesPackages", "activationFailureDetails", "map", "a", "addMenuItemsToSalesProduct", "addStatusesToSalesProduct", "buildSalesProductFromProduct", "openAllDropdowns", "x", "indexToToggle", "product", "instant", "requirementName", "pkg", "productsCount", "itemCount", "totalAddons", "event", "emit", "isEditionChange", "editionId", "previousEditionId", "editionInformation", "editions", "find", "edition", "appKey", "\u0275\u0275directiveInject", "TranslateService", "selectors", "inputs", "outputs", "standalone", "features", "\u0275\u0275NgOnChangesFeature", "decls", "vars", "consts", "template", "rf", "ctx", "SalesOrderPackageDropdownComponent_ng_container_0_Template", "SalesOrderPackageDropdownComponent_ng_template_1_Template", "\u0275\u0275templateRefExtractor", "SalesOrderPackageDropdownComponent_ng_template_3_Template", "nonCompactView_r16", "trigger", "state", "style", "height", "transition", "animate", "convertActivationsToPackageItemActivationStatuses", "productActivations", "filter", "productActivation", "activationStatus", "ActivationStatus", "PENDING", "map", "packageItemId", "productId", "status", "uniqueId", "editionId", "previousEditionId", "isEditionChange", "init_product_activation", "__esmMin", "init_vendasta_sales_orders", "SalesOrderStoreService", "init_sales_order_store_service", "__esmMin", "init_esm", "init_vendasta_sales_orders", "init_operators", "constructor", "salesOrdersService", "customerSalesOrdersService", "ordersStore", "Map", "buildId", "businessId", "orderId", "join", "getOrderState", "id", "has", "fetchOrder", "get", "pipe", "skipWhile", "o", "undefined", "set", "BehaviorSubject", "order$$", "next", "order", "loading", "currentValue", "getValue", "catchError", "tap", "take", "subscribe", "refreshOrder", "clearOrderStateCache", "clear", "\u0275\u0275inject", "SalesOrdersService", "CustomerSalesOrdersService", "factory", "\u0275fac", "flattenArray", "array", "concat", "quantifyLineItems", "lineItems", "quantifiedLineItems", "map", "lineItem", "replicatedLineItems", "quantity", "i", "push", "SalesOrderContentsService", "init_sales_order_contents_service", "__esmMin", "init_vendasta_marketplace_packages", "init_src", "init_operators", "init_esm", "init_vendasta_sales_orders", "init_product_activation", "constructor", "packageSdk", "appSdk", "salesOrdersSdk", "salesOrderStoreService", "orderId$$", "BehaviorSubject", "orderId$", "asObservable", "specifiedLineItems$$", "specifiedLineItems$", "loading$$", "loading$", "validationErrorMsgs", "Map", "subscriptions", "orderState$", "pipe", "skipWhile", "orderId", "switchMap", "getOrderState", "businessId", "publishReplay", "refCount", "tap", "orderState", "loading", "next", "subscribe", "order$", "filter", "order", "combinedLineItems$", "combineLatest", "packages$", "packageLineItems", "li", "packageId", "length", "getMulti", "of", "packageItemActivationStatus$", "productActivations", "previewOrderActivations", "catchError", "convertActivationsToPackageItemActivationStatuses", "uniqueAppsAndAddons$", "zip", "packages", "appKeys", "appKey", "AppKey", "appId", "editionId", "p", "id", "uniqueAppKeys", "reduce", "unique", "app", "find", "u", "partnerId", "marketId", "apps", "a", "key", "uiPackages$", "uniqueAppsAndAddons", "statuses", "packagesLineItems", "products", "status", "uiProducts$", "nonPackageLineItems", "quantifiedNonPackage", "appType", "AppType", "APP_TYPE_APP", "npli", "uiAddons$", "addons", "APP_TYPE_ADDON", "ngOnDestroy", "forEach", "sub", "unsubscribe", "initialize", "ignoreErrors", "itemId", "ignoreProductActivationError", "refreshOrder", "clearOrderStateCache", "\u0275\u0275inject", "PackageService", "AppPartnerService", "SalesOrdersService", "SalesOrderStoreService", "factory", "\u0275fac", "\u0275\u0275elementContainerStart", "\u0275\u0275element", "\u0275\u0275text", "\u0275\u0275textInterpolate1", "\u0275\u0275pipeBind1", "\u0275\u0275textInterpolate2", "uiPackages_r2", "packages", "length", "\u0275\u0275elementStart", "\u0275\u0275elementEnd", "\u0275\u0275template", "SalesOrderContentsComponent_div_4_ng_container_1_ng_container_1_ng_template_8_Template", "SalesOrderContentsComponent_div_4_ng_container_1_ng_container_1_ng_template_9_Template", "\u0275\u0275listener", "$event", "\u0275\u0275restoreView", "_r1", "ctx_r2", "\u0275\u0275nextContext", "\u0275\u0275resetView", "menuItemClick", "\u0275\u0275advance", "\u0275\u0275property", "compactView", "products", "status", "\u0275\u0275pureFunction0", "_c0", "showMenuItems", "_r4", "SalesOrderContentsComponent_div_4_ng_container_1_ng_container_1_Template", "SalesOrderContentsComponent_div_4_ng_container_1_ng_template_2_Template", "\u0275\u0275templateRefExtractor", "nonCompactPackageView_r5", "SalesOrderContentsComponent_div_4_ng_container_1_Template", "uiProducts_r7", "SalesOrderContentsComponent_div_6_ng_container_1_ng_container_1_ng_template_8_Template", "SalesOrderContentsComponent_div_6_ng_container_1_ng_container_1_ng_template_9_Template", "_r6", "_r8", "SalesOrderContentsComponent_div_6_ng_container_1_ng_container_1_Template", "SalesOrderContentsComponent_div_6_ng_container_1_ng_template_2_Template", "nonCompactPackageView_r9", "SalesOrderContentsComponent_div_6_ng_container_1_Template", "uiAddons_r11", "addons", "SalesOrderContentsComponent_div_8_ng_container_1_ng_container_1_ng_template_8_Template", "SalesOrderContentsComponent_div_8_ng_container_1_ng_container_1_ng_template_9_Template", "_r10", "_r12", "SalesOrderContentsComponent_div_8_ng_container_1_ng_container_1_Template", "SalesOrderContentsComponent_div_8_ng_container_1_ng_template_2_Template", "nonCompactPackageView_r13", "SalesOrderContentsComponent_div_8_ng_container_1_Template", "SalesOrderContentsComponent", "init_sales_order_contents_component", "__esmMin", "init_core", "init_vendasta_sales_orders", "init_esm", "init_package_dropdown_item_component", "init_package_dropdown_component", "init_sales_order_contents_service", "init_expansion", "init_vendasta_order_fulfillment", "init_operators", "constructor", "contentsService", "orderFulfillmentService", "lineItems", "loading", "EventEmitter", "loading$", "subscriptions", "push", "pipe", "tap", "emit", "subscribe", "ngOnInit", "initialize", "partnerId", "marketId", "businessId", "orderId", "packageActivationErrors$", "uiPackages$", "switchMap", "uiPackages", "orderItemIDs", "filter", "ActivationStatus", "ERRORED", "map", "uniqueId", "getMultiActivationErrorsForOrderItems", "take", "catchError", "of", "errorDetails", "productActivationErrors$", "uiProducts$", "uiProducts", "addonsActivationErrors$", "uiAddons$", "uiAddons", "combineLatest", "errDetailsMap", "reduce", "prev", "curr", "set", "orderItemId", "Map", "openDropdownOnError", "forEach", "pckg", "has", "failureDetails", "translateFailureDetails", "get", "prod", "addon", "ngOnDestroy", "sub", "unsubscribe", "clearOrderStateCache", "errorCount", "signalToOpenAllDropdowns", "topExpansionPanels", "panel", "open", "window", "setTimeout", "packageDropdowns", "section", "openAllDropdowns", "event", "eventType", "MenuItemEventType", "IGNORE_ACTIVATION_ERRORS", "ignoreErrors", "value", "activationFailureDetails", "failureReason", "FailureReason", "FAILURE_REASON_VALIDATION_ERROR", "translateValidationError", "details", "FAILURE_REASON_CHARGE_ERROR", "formattedChargeError", "FAILURE_REASON_VENDOR_REJECTED_ERROR", "FAILURE_REASON_ACTIVATION_ERROR", "failureMsg", "detail", "validationMsg", "validationErrorMsgs", "toCapitalize", "split", "line", "toUpperCase", "join", "\u0275\u0275directiveInject", "SalesOrderContentsService", "OrderFulfillmentService", "selectors", "viewQuery", "rf", "ctx", "SalesOrderPackageDropdownComponent", "MatExpansionPanel", "decls", "vars", "consts", "template", "SalesOrderContentsComponent_ng_container_0_Template", "SalesOrderContentsComponent_div_4_Template", "SalesOrderContentsComponent_div_6_Template", "SalesOrderContentsComponent_div_8_Template", "en_devel_default", "init_en_devel", "__esmMin", "WEBLATE_COMPONENT_NAME", "init_constants", "__esmMin", "SalesOrderContentsModule", "init_sales_order_contents_module", "__esmMin", "init_common", "init_button", "init_card", "init_icon", "init_list", "init_menu", "init_progress_spinner", "init_tooltip", "init_ngx_translate_core", "init_src", "init_en_devel", "init_constants", "init_expansion", "CommonModule", "MatCardModule", "MatListModule", "MatIconModule", "MatTooltipModule", "VaIconModule", "VaBadgeModule", "MatMenuModule", "MatButtonModule", "MatProgressSpinnerModule", "TranslateModule", "LexiconModule", "forChild", "componentName", "WEBLATE_COMPONENT_NAME", "baseTranslation", "GalaxyTooltipModule", "MatExpansionModule", "OpportunitySidePanelEventsService", "init_opportunity_side_panel_events_service", "__esmMin", "init_esm", "constructor", "sidePanelCloseEvents$$", "Subject", "sidePanelCloseEvents$", "asObservable", "opportunityCreatedEvents$$", "BehaviorSubject", "opportunityCreatedEvents$", "opportunityUpdatedEvents$$", "opportunityUpdatedEvents$", "sidePanelCloseRequested", "next", "opportunityCreated", "opportunity", "opportunityUpdated", "factory", "\u0275fac", "providedIn", "convertPackagePricingToSalesOrderRevenue", "pricing", "prices", "Revenue", "revenueComponents", "map", "p", "RevenueComponent", "value", "price", "period", "packageFrequencyToSalesOrderPeriod", "frequency", "isStartingRevenue", "isStartingPrice", "f", "Frequency", "DAILY", "RevenuePeriod", "MONTHLY", "ONCE", "ONETIME", "WEEKLY", "YEARLY", "packageCurrencyToCurrencyCode", "currency", "PackageCurrency", "packageToSalesOrderLineItem", "pkg", "LineItem", "packageId", "currencyCode", "currentRevenue", "quantity", "OpportunityToOrderLineItems", "lineItems", "li", "__spreadValues", "convertNegativeRevenueValuesToZero", "lineItem", "forEach", "revenueComponent", "OrderToOpportunityLineItems", "OpportunityLineItem", "appToSalesOrderLineItem", "app", "appKey", "key", "convertMarketplaceFreqToRevenueFreq", "freq", "UnitBillingFrequency", "UNIT_BILLING_FREQUENCY_MONTHLY", "UNIT_BILLING_FREQUENCY_ONETIME", "UNIT_BILLING_FREQUENCY_YEARLY", "convertAppPriceToRevenuePrice", "appPrice", "editionID", "frequencyPrice", "pricesForEditions", "pricesForCurrencies", "pricesForFrequencies", "pricingRules", "setupFee", "push", "StatusToBadgeMapping", "init_conversion_utils", "__esmMin", "init_vendasta_sales_orders", "init_vendasta_marketplace_packages", "init_src", "init_vendasta_sales_opportunities", "Map", "Status", "ACTIVATION_ERRORS", "text", "color", "APPROVED", "DECLINED", "FULFILLED", "PROCESSING", "SUBMITTED", "RESUBMITTED", "DRAFTED", "ARCHIVED", "SUBMITTED_FOR_CUSTOMER_APPROVAL", "CANCELLATION_REQUESTED", "CANCELLED", "SCHEDULED_ACTIVATION", "AWAITING_PAYMENT", "PROCESSING_PAYMENT", "undefined", "PARTNER_ID_TOKEN", "MARKET_ID_TOKEN", "MARKET_IDS_TOKEN", "SALESPEOPLE_TOKEN", "SALES_TEAMS_TOKEN", "init_provider_tokens", "__esmMin", "SalesOpportunityStoreService", "init_sales_opportunity_store_service", "__esmMin", "init_esm", "init_operators", "init_vendasta_sales_opportunities", "constructor", "salesOpportunityService", "opportunityStore", "Map", "buildId", "accountGroupId", "opportunityId", "join", "getOpportunityState", "id", "has", "fetchOpportunity", "get", "pipe", "skipWhile", "o", "undefined", "set", "BehaviorSubject", "next", "opportunity", "loading", "currentValue", "getValue", "tap", "take", "subscribe", "refreshOpportunity", "clearCache", "clear", "\u0275\u0275inject", "SalesOpportunitiesService", "factory", "\u0275fac", "convertLineItemsToBillingSummary", "lineItems", "reduce", "acc", "li", "lineItem", "currentRevenue", "revenueComponents", "forEach", "rev", "billingId", "sku", "amount", "value", "init_billing_utils", "__esmMin", "calculateOpportunityEstimatedTotal", "confirmation", "taxOptions", "currencyCode", "Opportunity", "total", "projectedFirstYearValue", "taxTotal", "reduce", "all", "tax", "percentageMultiplier", "startingPrice", "lineItems", "some", "li", "currentRevenue", "revenueComponents", "rc", "isStartingRevenue", "INVALID_ITEM", "SalesOrderConfirmationService", "init_sales_order_confirmation_service", "__esmMin", "init_src", "init_vendasta_marketplace_packages", "init_vendasta_sales_opportunities", "init_esm", "init_operators", "init_billing_utils", "init_conversion_utils", "name", "iconUrl", "lineItem", "constructor", "packageSdk", "appSdk", "salesOrdersSdk", "salesOrderStoreService", "taxRateService", "salesOpportunityStoreService", "salesOpportunitiesSdk", "opportunitySidePanelEventsService", "orderId$$", "BehaviorSubject", "orderId$", "asObservable", "opportunityId$$", "opportunityId$", "specifiedLineItems$$", "specifiedLineItems$", "loading$$", "loading$", "specifiedContractStartDate$$", "Date", "subscriptions", "orderState$", "pipe", "skipWhile", "orderId", "switchMap", "getOrderState", "businessId", "publishReplay", "refCount", "opportunityState$", "opportunityId", "getOpportunityState", "push", "tap", "orderState", "loading", "next", "subscribe", "oppState", "order$", "filter", "map", "order", "opportunity$", "opportunity", "orderOrigin$", "origin", "confirmation$", "combineLatest", "contractDuration$", "val", "contractDuration", "expectedContractDuration", "cachedContractStartDate$", "requestedActivation", "expectedCloseDate", "getDefaultExpectedCloseDate", "specifiedContractStartDate$", "merge", "startDate", "combinedLineItems$", "concat", "OpportunityToOrderLineItems", "packages$", "packageLineItems", "packageId", "length", "getMulti", "of", "appsAndAddons$", "appsAndAddonsKeys", "appKey", "app", "AppKey", "partnerId", "marketId", "FieldMask", "paths", "apps", "a", "key", "appId", "uiLineItems$", "zip", "packages", "appsAndAddons", "uiLineItem", "pack", "find", "p", "packageToUILineItem", "editionId", "appWithPossibleRevenueToUILineItem", "taxOptions$", "shouldTaxApplyToAllSKUs", "every", "taxRateIds", "opt", "applicableSKUs", "billingId", "includes", "taxRateId", "label", "initialAmount", "applicableSkus", "calculateLineItems", "Object", "values", "convertLineItemsToBillingSummary", "catchError", "err", "console", "error", "response", "appliedTaxes", "rate", "buildApplicableSkus", "lineItemTaxes", "percentage", "amount", "estimatedTotal$", "taxOption", "defaultDisplayCurrency", "ngOnDestroy", "forEach", "sub", "unsubscribe", "clearOrderStateCache", "clearCache", "liTax", "sku", "updateLineItems", "take", "updateLineItemsForOpportunity", "accountGroupId", "salesPersonId", "OrderToOpportunityLineItems", "updatedOpportunity", "refreshOpportunity", "opportunityUpdated", "refreshOrder", "pkg", "packageToSalesOrderLineItem", "icon", "bannerUrl", "headerImageUrl", "isMultiActivatable", "description", "tagline", "appToSalesOrderLineItem", "sharedMarketingInformation", "editionName", "bannerImageUrl", "externalIdentifiers", "appType", "activationInformation", "multipleActivationsEnabled", "retailPricing", "revenue", "parentRequirements", "enabled", "parentIconUrl", "parentDetails", "parentName", "initialize", "addSpecifiedLineItems", "getValue", "add", "months", "updateContractStartDate", "date", "\u0275\u0275inject", "PackageService", "AppPartnerService", "SalesOrdersService", "SalesOrderStoreService", "TaxRateService", "SalesOpportunityStoreService", "SalesOpportunitiesService", "OpportunitySidePanelEventsService", "factory", "\u0275fac", "convertItemsToAppKeys", "items", "map", "item", "AppKey", "appId", "itemId", "editionId", "type", "edition", "undefined", "mapify", "array", "keyFn", "reduce", "set", "Map", "init_utils", "__esmMin", "init_vendasta_marketplace_apps", "ItemSelectorAdapterService", "init_item_selector_adapter_service", "__esmMin", "init_src", "init_vendasta_marketplace_apps", "init_utils", "init_esm", "init_conversion_utils", "constructor", "appPartnerService", "appPricingService", "marketplacePackagesApiService", "convertAppsToItems", "apps", "map", "a", "ToInventoryItem", "convertAppsAndPackagesToItems", "packages", "selectedItems", "push", "p", "getMarketplaceApps", "items", "partnerId", "marketId", "appItems", "filter", "item", "type", "length", "getMulti", "convertItemsToAppKeys", "pipe", "mapify", "app", "key", "appId", "of", "Map", "getMarketplacePackages", "packageIds", "itemId", "getMultiPackages", "resp", "packageContainers", "container", "package", "getRetailPricing", "appIds", "getMultiPricing", "FieldMask", "paths", "appPrices", "ap", "getAppsWithRetailPricing", "itemIds", "combineLatest", "get", "appPrice", "partnerCurrency", "getPartnerCurrency", "pricesForContexts", "appWithRetailPrice", "retailPricing", "currencyCode", "revenue", "convertAppPriceToRevenuePrice", "editionId", "\u0275\u0275inject", "AppPartnerService", "AppPricingService", "MarketplacePackagesApiService", "factory", "\u0275fac", "ItemSelectorAdapterComponent", "init_item_selector_adapter_component", "__esmMin", "init_item_selector_adapter_service", "constructor", "itemSelectorAdapterService", "ngOnInit", "selectedItems", "ItemSelectorAdapterService", "convertAppsAndPackagesToItems", "selectedApps", "selectedPackages", "itemSelectionChanged", "selectionChange", "getAppsWithRetailPricing", "config", "partnerId", "marketId", "getMarketplacePackages", "\u0275\u0275directiveInject", "selectors", "inputs", "standalone", "features", "\u0275\u0275ProvidersFeature", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275elementStart", "\u0275\u0275listener", "$event", "\u0275\u0275elementEnd", "\u0275\u0275property", "SalesOrderLineItemSelectorComponent", "init_sales_order_line_item_selector_component", "__esmMin", "init_esm", "constructor", "preselectedPackages", "preselectedApps", "itemTypesAvailable", "ngOnInit", "hidePackages", "filter", "itemType", "hideSellingStandaloneProducts", "getSelectedAppsWithRetailPricing", "of", "itemSelectorAdapter", "getAppsWithRetailPricing", "getSelectedPackages", "getMarketplacePackages", "selectors", "viewQuery", "rf", "ctx", "\u0275\u0275element", "\u0275\u0275property", "\u0275\u0275pureFunction7", "_c2", "partnerId", "marketId", "hideOwnerName", "wholesalePricing", "hideOrderFormProducts", "SalesOrderLineItemSelectorDialogComponent", "init_sales_order_line_item_selector_dialog_component", "__esmMin", "init_dialog", "init_esm", "init_operators", "init_sales_order_line_item_selector_component", "constructor", "partnerId$", "data", "dialogRef", "marketId", "preselectedPackages", "preselectedApps", "hideSellingStandaloneProducts", "hidePackages", "hideOwnerName", "hideOrderFormProducts", "wholesalePricing", "selectPackages", "combineLatest", "selectorComponent", "getSelectedAppsWithRetailPricing", "getSelectedPackages", "pipe", "take", "subscribe", "apps", "packages", "close", "\u0275\u0275directiveInject", "MAT_DIALOG_DATA", "MatDialogRef", "selectors", "viewQuery", "rf", "ctx", "SalesOrderLineItemSelectorComponent", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275element", "\u0275\u0275listener", "\u0275\u0275advance", "\u0275\u0275textInterpolate", "\u0275\u0275pipeBind1", "\u0275\u0275property", "\u0275\u0275textInterpolate1", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275advance", "\u0275\u0275textInterpolate1", "\u0275\u0275pipeBind1", "\u0275\u0275property", "option_r1", "value", "label", "\u0275\u0275elementContainerStart", "\u0275\u0275template", "SalesOrderEditPriceComponent_ng_container_19_mat_option_1_Template", "ctx_r1", "periodOptions", "option_r3", "SalesOrderEditPriceComponent_ng_container_20_mat_option_1_Template", "oneTimeOnly", "\u0275\u0275listener", "\u0275\u0275restoreView", "_r4", "\u0275\u0275nextContext", "\u0275\u0275resetView", "handleDelete", "SalesOrderEditPriceComponent", "init_sales_order_edit_price_component", "__esmMin", "init_core", "init_vendasta_sales_orders", "constructor", "formatCurrencyPipe", "allowNegativeValues", "canEditPeriod", "errorMessage", "EventEmitter", "delete", "RevenuePeriod", "ONETIME", "MONTHLY", "YEARLY", "ngOnInit", "currencySymbol", "transform", "currencyCode", "charAt", "emit", "revenueComponent", "markAsTouched", "form", "updateValueAndValidity", "i", "controls", "\u0275\u0275directiveInject", "CurrencyPipe", "selectors", "viewQuery", "rf", "ctx", "\u0275\u0275element", "SalesOrderEditPriceComponent_mat_error_10_Template", "SalesOrderEditPriceComponent_mat_error_11_Template", "SalesOrderEditPriceComponent_mat_error_12_Template", "SalesOrderEditPriceComponent_ng_container_19_Template", "SalesOrderEditPriceComponent_ng_container_20_Template", "SalesOrderEditPriceComponent_mat_error_21_Template", "SalesOrderEditPriceComponent_button_23_Template", "\u0275\u0275textInterpolate", "\u0275\u0275propertyInterpolate1", "revenue", "hasError", "period", "allowDelete", "\u0275\u0275elementContainerStart", "\u0275\u0275elementStart", "\u0275\u0275listener", "\u0275\u0275restoreView", "_r1", "ctx_r1", "\u0275\u0275nextContext", "\u0275\u0275resetView", "edit", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275template", "SalesOrderConfirmationComponent_ng_container_1_ng_container_4_Template", "\u0275\u0275element", "\u0275\u0275advance", "\u0275\u0275textInterpolate", "title", "\u0275\u0275property", "editable", "editing", "\u0275\u0275pipeBind1", "uiLineItems$", "orderState_r3", "orderItems", "taxOptions", "duration", "loading", "openExpansionPanel$", "showPricing$", "partnerId", "marketId", "estimatedTotal", "SalesOrderConfirmationComponent_ng_container_3_ng_container_1_Template", "orderState$", "_r5", "liIndex_r6", "index", "deleteLineItem", "SalesOrderConfirmationComponent_ng_template_4_ng_container_1_Conditional_3_mat_icon_0_Template", "editingItems", "length", "\u0275\u0275textInterpolate1", "_r10", "canScheduleActivations_r8", "contractStart_r9", "onAddBillingSchedule", "value", "_r7", "onEditBillingSchedule", "SalesOrderConfirmationComponent_ng_template_4_ng_container_1_Conditional_17_Conditional_5_Conditional_0_button_3_Template", "uiLineItem_r11", "isMultiActivatable", "lineItem", "billingPeriod", "SalesOrderConfirmationComponent_ng_template_4_ng_container_1_Conditional_17_Conditional_5_Conditional_0_Template", "\u0275\u0275conditional", "tmp_11_0", "\u0275\u0275pureFunction1", "_c3", "canScheduleActivations$", "_r12", "SalesOrderConfirmationComponent_ng_template_4_ng_container_1_Conditional_17_Conditional_5_Template", "SalesOrderConfirmationComponent_ng_template_4_ng_container_1_Conditional_17_button_7_Template", "menu_r13", "tmp_10_0", "contractStart$", "$event", "rcIndex_r15", "_r14", "deleteRevenueRow", "SalesOrderConfirmationComponent_ng_template_4_ng_container_1_ng_container_20_ng_container_3_Template", "revenueComponent_r16", "allowNegativeValues", "currencyCode", "defaultDisplayCurrency", "currentRevenue", "revenueComponents", "formForLineItems", "controls", "last_r17", "SalesOrderConfirmationComponent_ng_template_4_ng_container_1_Conditional_3_Template", "SalesOrderConfirmationComponent_ng_template_4_ng_container_1_mat_error_16_Template", "SalesOrderConfirmationComponent_ng_template_4_ng_container_1_Conditional_17_Template", "SalesOrderConfirmationComponent_ng_template_4_ng_container_1_ng_container_20_Template", "SalesOrderConfirmationComponent_ng_template_4_ng_container_1_div_22_Template", "_r4", "addRevenueRow", "SalesOrderConfirmationComponent_ng_template_4_ng_container_1_mat_checkbox_30_Template", "areBillingPeriodsEnabled$", "enableEditBillingSchedule", "\u0275\u0275pureFunction4", "_c1", "name", "editionName", "iconUrl", "period", "\u0275\u0275propertyInterpolate", "quantity", "hasError", "\u0275\u0275pureFunction0", "_c2", "hasNoRevenue", "createRetailSubscriptions", "_r19", "addLineItems", "_r20", "_r22", "save", "valid", "_r21", "cancel", "SalesOrderConfirmationComponent_ng_template_4_div_6_ng_container_4_Template", "SalesOrderConfirmationComponent_ng_template_4_div_6_ng_container_5_Template", "saving", "SalesOrderConfirmationComponent_ng_template_4_ng_container_1_Template", "SalesOrderConfirmationComponent_ng_template_4_div_3_Template", "SalesOrderConfirmationComponent_ng_template_4_ng_template_4_Template", "\u0275\u0275templateRefExtractor", "SalesOrderConfirmationComponent_ng_template_4_div_6_Template", "noLineItems_r23", "orderId", "opportunityId", "SALES_OPPORTUNITIES_BILLING_PERIODS", "UNIFIED_ORDERS_SCHEDULED_ACTIVATIONS", "SalesOrderConfirmationComponent", "init_sales_order_confirmation_component", "__esmMin", "init_core", "init_forms", "init_src", "init_vendasta_marketplace_packages", "init_vendasta_sales_orders", "init_esm", "init_operators", "init_sales_order_confirmation_service", "init_sales_order_line_item_selector_dialog_component", "constructor", "salesOrderConfirmationService", "fb", "cdk", "alertService", "dialog", "salesOrdersService", "featureFlagService", "hidePackages", "startEditing", "bypassQuantityRestrictions", "chargeOrdersEnabled", "allowDuplicateItems", "EventEmitter", "openExpansionPanel$$", "BehaviorSubject", "asObservable", "taxOptions$", "loading$", "order$", "pipe", "map", "order", "origin", "Origin", "PC", "statusHistory", "some", "history", "status", "Status", "SUBMITTED_FOR_CUSTOMER_APPROVAL", "inputDuration$$", "duration$", "switchMap", "inputDuration", "iif", "contractDuration$", "specifiedContractStartDate$", "estimatedTotal$", "combineLatest", "hideSellingStandaloneProducts", "subscriptions", "of", "validateRevenue", "c", "revenueValue", "isNaN", "pattern", "Number", "min", "next", "ngOnInit", "featureFlags$", "batchGetStatus", "featureFlags", "initialize", "lineItems", "businessId", "push", "getConfig", "config", "salespersonOptions", "disableSellingStandaloneProducts", "subscribe", "array", "uiLineItems", "displayItems", "resetEditingItems", "detectChanges", "tap", "loading$$", "emit", "flags", "ngOnChanges", "changes", "contractStartDate", "currentValue", "setDefaultBillingTermStartDate", "updateContractStartDate", "ngOnDestroy", "forEach", "sub", "unsubscribe", "setEditingLineItems", "JSON", "parse", "stringify", "resetFormToEditingItems", "li", "revenueControls", "revenueControlFromLineItemRevenue", "quantityEnabled", "nonBillable", "group", "disabled", "Validators", "shouldInvoice", "revenue", "rc", "required", "undefined", "RevenuePeriod", "ONETIME", "startingAt", "isStartingRevenue", "uiLineItem", "isFormValid", "items", "formatEditingItems", "updateLineItems", "take", "openSuccessSnack", "error", "openErrorSnack", "writeFormValuesToEditingItems", "lineItemFormGroup", "fa", "fg", "RevenueComponent", "Math", "round", "Revenue", "getCurrentLineItems", "markAsTouched", "updateValueAndValidity", "editPriceComponents", "find", "item", "addSpecifiedLineItems", "lineItemIndex", "contractStart", "canScheduleActivations", "revenueComponent", "open", "BillingTermDialogComponent", "data", "itemId", "appKey", "appId", "packageId", "startDate", "endDate", "canAddAnotherTerm", "maxWidth", "maxHeight", "width", "afterClosed", "dialogOutput", "BillingPeriod", "billingFrequency", "patchValue", "addAnotherTerm", "deepCopiedItem", "structuredClone", "splice", "components", "liIndex", "rcIndex", "removeAt", "preselectedPackages", "filter", "Package", "preselectedApps", "App", "key", "editionId", "parentRequirements", "parentDetails", "parentAppId", "parentName", "appType", "SalesOrderLineItemSelectorDialogComponent", "hideOwnerName", "height", "minHeight", "result", "updatedItems", "selectedPackages", "packages", "selectedApps", "apps", "deselectItems", "dedupePackages", "dedupeApps", "concat", "pkg", "packageToUILineItem", "app", "appWithPossibleRevenueToUILineItem", "openDropdown", "uilineItem", "sort", "a", "b", "__spreadValues", "deselectedPackageIds", "selected", "includes", "deselectedAppIds", "addedApps", "reduce", "added", "addedPackages", "\u0275\u0275directiveInject", "SalesOrderConfirmationService", "UntypedFormBuilder", "ChangeDetectorRef", "SnackbarService", "MatDialog", "SalesOrdersService", "FeatureFlagService", "selectors", "viewQuery", "rf", "ctx", "\u0275\u0275NgOnChangesFeature", "decls", "vars", "consts", "template", "SalesOrderConfirmationComponent_ng_container_1_Template", "SalesOrderConfirmationComponent_ng_container_3_Template", "SalesOrderConfirmationComponent_ng_template_4_Template", "removeHeader", "editingTemplate_r24", "SalesOrderLineItemSelectorModule", "init_sales_order_line_item_selector_module", "__esmMin", "init_common", "init_select", "init_tabs", "init_src", "init_ngx_translate_core", "init_badge", "init_en_devel", "init_constants", "init_item_selector_adapter_component", "init_item_selector_adapter_service", "init_sales_order_line_item_selector_component", "ItemSelectorAdapterService", "imports", "CommonModule", "Filter2TableModule", "MatTabsModule", "VaIconModule", "VaPricingModule", "VaBadgeModule", "TranslateModule", "LexiconModule", "forChild", "componentName", "WEBLATE_COMPONENT_NAME", "baseTranslation", "MatSelectModule", "BillingUiModule", "GalaxyBadgeModule", "ItemSelectorModule", "SalesOrderLineItemSelectorComponent", "ItemSelectorAdapterComponent", "SalesOrderConfirmationModule", "init_sales_order_confirmation_module", "__esmMin", "init_common", "init_forms", "init_autocomplete", "init_button", "init_card", "init_checkbox", "init_dialog", "init_grid_list", "init_icon", "init_input", "init_list", "init_menu", "init_progress_spinner", "init_select", "init_tooltip", "init_src", "init_ngx_translate_core", "init_en_devel", "init_constants", "init_sales_opportunity_store_service", "init_sales_order_line_item_selector_module", "init_sales_order_store_service", "CurrencyPipe", "SalesOrderStoreService", "SalesOpportunityStoreService", "imports", "CommonModule", "VaOrderFormModule", "VaOrderSummaryModule", "MatButtonModule", "MatListModule", "VaIconModule", "CoreSharedModule", "TranslateModule", "LexiconModule", "forChild", "componentName", "WEBLATE_COMPONENT_NAME", "baseTranslation", "FormsModule", "MatTooltipModule", "MatInputModule", "MatCheckboxModule", "MatSelectModule", "ReactiveFormsModule", "MatIconModule", "MatProgressSpinnerModule", "MatDialogModule", "SalesOrderLineItemSelectorModule", "MatCardModule", "MatGridListModule", "MatAutocompleteModule", "MatMenuModule", "GalaxyInputModule", "OrderDetailAgreement", "init_order_detail_agreement", "__esmMin", "agreementFromOrderAgreementWithUser", "agreement", "usersMap", "names", "name", "userId", "user", "firstName", "push", "lastName", "join", "email", "term", "agreed", "createFromOrderWithUsers", "salesOrder", "agreements", "map", "a", "constructor", "DurationMapping", "OrderDetailField", "init_order_detail_field", "__esmMin", "init_vendasta_sales_orders", "Map", "DurationPeriod", "DAY", "WEEK", "MONTH", "YEAR", "buildFieldsFromStatusHistory", "historyItems", "usersMap", "fields", "forEach", "historyItem", "index", "status", "field", "buildFieldFromStatusHistory", "push", "length", "childFields", "isChild", "metadata", "getMetadataFromStatusHistoryItem", "userId", "user", "email", "userInfo", "getNormalizedUserInfo", "created", "item", "name", "source", "Source", "SOURCE_SYSTEM", "SOURCE_SYSTEM_ADMIN", "createFromOrderWithUsers", "salesOrder", "statusHistory", "constructor", "date", "ContractDurationKeysToEnum", "ContractDurationEnumToKeys", "init_sales_contract_duration", "__esmMin", "init_vendasta_sales_orders", "key", "value", "DurationPeriod", "DAY", "WEEK", "MONTH", "YEAR", "SalesOrderTagsService", "init_sales_order_details_tags_service", "__esmMin", "init_esm", "init_operators", "constructor", "salesOrderService", "initialize", "businessId", "orderId", "partnerId", "marketId", "tagOptions$", "listTags", "marketIds", "pipe", "switchMap", "tags", "of", "map", "tag", "name", "value", "updateTags", "order", "\u0275\u0275inject", "SalesOrdersService", "factory", "\u0275fac", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275advance", "\u0275\u0275textInterpolate", "tag_r1", "\u0275\u0275template", "SalesOrderDetailsTagsComponent_ng_container_6_div_1_div_1_Template", "\u0275\u0275property", "ctx_r1", "tags", "\u0275\u0275pipeBind1", "\u0275\u0275listener", "\u0275\u0275restoreView", "_r3", "\u0275\u0275nextContext", "\u0275\u0275resetView", "editTags", "\u0275\u0275elementContainerStart", "SalesOrderDetailsTagsComponent_ng_container_6_div_1_Template", "SalesOrderDetailsTagsComponent_ng_container_6_ng_template_2_Template", "\u0275\u0275templateRefExtractor", "SalesOrderDetailsTagsComponent_ng_container_6_button_4_Template", "length", "noTags_r4", "editable", "\u0275\u0275element", "_r5", "sendTags", "\u0275\u0275propertyInterpolate", "options_r6", "maxTags", "editingTags", "\u0275\u0275textInterpolate1", "SalesOrderDetailsTagsComponent_ng_template_7_ng_container_0_ng_container_1_Template", "isSubmittingTags", "loading_r7", "SalesOrderDetailsTagsComponent_ng_template_7_ng_container_0_Template", "SalesOrderDetailsTagsComponent_ng_template_7_ng_template_2_Template", "options$", "SalesOrderDetailsTagsComponent", "init_sales_order_details_tags_component", "__esmMin", "init_src", "init_esm", "init_operators", "init_sales_order_details_tags_service", "content", "vaInputTags", "constructor", "orderTagsService", "cdr", "snackbarService", "ngOnInit", "initialize", "businessId", "orderId", "partnerId", "marketId", "tagOptions$", "isEditing", "overMaxFields", "openErrorSnack", "interpolateTranslateParams", "toString", "newTags", "value", "updateTags", "pipe", "take", "tap", "t", "catchError", "of", "finalize", "detectChanges", "subscribe", "\u0275\u0275directiveInject", "SalesOrderTagsService", "ChangeDetectorRef", "SnackbarService", "selectors", "viewQuery", "rf", "ctx", "GlxyInputTagsComponent", "decls", "vars", "consts", "template", "SalesOrderDetailsTagsComponent_ng_container_6_Template", "SalesOrderDetailsTagsComponent_ng_template_7_Template", "editMode_r8", "\u0275\u0275elementContainerStart", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275twoWayListener", "$event", "\u0275\u0275restoreView", "_r1", "ctx_r1", "\u0275\u0275nextContext", "i0", "\u0275\u0275twoWayBindingSet", "requestedActivation", "\u0275\u0275resetView", "\u0275\u0275listener", "picker_r3", "\u0275\u0275reference", "open", "\u0275\u0275element", "updateRequestedActivation", "\u0275\u0275advance", "\u0275\u0275property", "\u0275\u0275textInterpolate", "\u0275\u0275pipeBind1", "minDate", "\u0275\u0275twoWayProperty", "\u0275\u0275textInterpolate1", "updatingRequestedActivation", "_r4", "edit", "\u0275\u0275template", "SalesOrderDetailsRequestedActivationComponent_ng_template_7_button_2_Template", "formatDate", "editable", "import_moment", "SalesOrderDetailsRequestedActivationComponent", "init_sales_order_details_requested_activation_component", "__esmMin", "init_operators", "constructor", "salesOrdersService", "alertService", "cdk", "isEditing", "Date", "ngOnChanges", "changes", "currentValue", "ngOnInit", "order", "date", "moment", "format", "undefined", "openErrorSnack", "detectChanges", "setHours", "orderId", "businessId", "pipe", "take", "subscribe", "\u0275\u0275directiveInject", "SalesOrdersService", "SnackbarService", "ChangeDetectorRef", "selectors", "inputs", "standalone", "features", "\u0275\u0275NgOnChangesFeature", "decls", "vars", "consts", "template", "rf", "ctx", "SalesOrderDetailsRequestedActivationComponent_ng_container_6_Template", "SalesOrderDetailsRequestedActivationComponent_ng_template_7_Template", "\u0275\u0275templateRefExtractor", "display_r5", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275property", "period_r3", "value", "\u0275\u0275advance", "\u0275\u0275textInterpolate1", "\u0275\u0275pipeBind1", "key", "\u0275\u0275pipeBind2", "\u0275\u0275pureFunction0", "_c0", "\u0275\u0275elementContainerStart", "\u0275\u0275twoWayListener", "$event", "\u0275\u0275restoreView", "_r1", "ctx_r1", "\u0275\u0275nextContext", "i0", "\u0275\u0275twoWayBindingSet", "contractDuration", "\u0275\u0275resetView", "\u0275\u0275listener", "convertDuration", "duration", "\u0275\u0275template", "SalesOrderDetailsContractDurationComponent_ng_container_6_mat_option_15_Template", "SalesOrderDetailsContractDurationComponent_ng_container_6_glxy_error_19_Template", "updateContractDuration", "contractDurationForm", "\u0275\u0275textInterpolate", "\u0275\u0275twoWayProperty", "contractPeriods", "invalidDurationValue", "updating", "_r4", "edit", "SalesOrderDetailsContractDurationComponent_ng_template_7_button_3_Template", "contractDurationText$", "editable", "MIN_CONTRACT_DURATION_REGEX", "SalesOrderDetailsContractDurationComponent", "init_sales_order_details_contract_duration_component", "__esmMin", "init_forms", "init_operators", "init_order_detail_field", "init_sales_contract_duration", "constructor", "salesOrdersService", "alertService", "translateService", "cdk", "isEditing", "ContractDurationKeysToEnum", "ngOnChanges", "changes", "currentValue", "order", "ngOnInit", "UntypedFormGroup", "UntypedFormControl", "Validators", "pattern", "required", "stream", "DurationMapping", "get", "toString", "markAsTouched", "controls", "invalid", "dirty", "invalidDurationPeriod", "orderId", "businessId", "pipe", "take", "subscribe", "detectChanges", "openErrorSnack", "\u0275\u0275directiveInject", "SalesOrdersService", "SnackbarService", "TranslateService", "ChangeDetectorRef", "selectors", "inputs", "standalone", "features", "\u0275\u0275NgOnChangesFeature", "decls", "vars", "consts", "template", "rf", "ctx", "SalesOrderDetailsContractDurationComponent_ng_container_6_Template", "SalesOrderDetailsContractDurationComponent_ng_template_7_Template", "\u0275\u0275templateRefExtractor", "display_r5", "\u0275\u0275elementContainerStart", "\u0275\u0275elementStart", "\u0275\u0275twoWayListener", "$event", "\u0275\u0275restoreView", "_r1", "ctx_r1", "\u0275\u0275nextContext", "i0", "\u0275\u0275twoWayBindingSet", "notes", "\u0275\u0275resetView", "\u0275\u0275elementEnd", "\u0275\u0275text", "\u0275\u0275listener", "updateNotes", "\u0275\u0275advance", "\u0275\u0275property", "\u0275\u0275propertyInterpolate", "\u0275\u0275pipeBind1", "\u0275\u0275twoWayProperty", "\u0275\u0275textInterpolate", "updatingNotes", "\u0275\u0275textInterpolate1", "_r3", "edit", "\u0275\u0275template", "SalesOrderDetailsNotesComponent_ng_template_7_button_2_Template", "editable", "SalesOrderDetailsNotesComponent", "init_sales_order_details_notes_component", "__esmMin", "init_operators", "constructor", "salesOrdersService", "alertService", "cdk", "isEditing", "ngOnChanges", "changes", "currentValue", "ngOnInit", "order", "orderId", "businessId", "pipe", "take", "subscribe", "detectChanges", "openErrorSnack", "\u0275\u0275directiveInject", "SalesOrdersService", "SnackbarService", "ChangeDetectorRef", "selectors", "inputs", "standalone", "features", "\u0275\u0275NgOnChangesFeature", "decls", "vars", "consts", "template", "rf", "ctx", "SalesOrderDetailsNotesComponent_ng_container_6_Template", "SalesOrderDetailsNotesComponent_ng_template_7_Template", "\u0275\u0275templateRefExtractor", "\u0275\u0275element", "display_r4", "\u0275\u0275elementContainerStart", "\u0275\u0275elementStart", "\u0275\u0275twoWayListener", "$event", "\u0275\u0275restoreView", "_r1", "ctx_r1", "\u0275\u0275nextContext", "i0", "\u0275\u0275twoWayBindingSet", "customerNotes", "\u0275\u0275resetView", "\u0275\u0275elementEnd", "\u0275\u0275text", "\u0275\u0275listener", "updateCustomerNotes", "\u0275\u0275advance", "\u0275\u0275property", "\u0275\u0275propertyInterpolate", "\u0275\u0275pipeBind1", "\u0275\u0275twoWayProperty", "\u0275\u0275textInterpolate1", "updatingNotes", "_r3", "edit", "\u0275\u0275template", "SalesOrderDetailsCustomerNotesComponent_ng_template_7_button_2_Template", "\u0275\u0275textInterpolate", "isCustomerDetails", "editable", "\u0275\u0275element", "SalesOrderDetailsCustomerNotesComponent", "init_sales_order_details_customer_notes_component", "__esmMin", "init_operators", "constructor", "salesOrdersService", "alertService", "cdk", "isEditing", "ngOnChanges", "changes", "currentValue", "ngOnInit", "order", "orderId", "businessId", "pipe", "take", "subscribe", "detectChanges", "openErrorSnack", "\u0275\u0275directiveInject", "SalesOrdersService", "SnackbarService", "ChangeDetectorRef", "selectors", "inputs", "standalone", "features", "\u0275\u0275NgOnChangesFeature", "decls", "vars", "consts", "template", "rf", "ctx", "SalesOrderDetailsCustomerNotesComponent_ng_container_6_Template", "SalesOrderDetailsCustomerNotesComponent_ng_template_7_Template", "\u0275\u0275templateRefExtractor", "SalesOrderDetailsCustomerNotesComponent_mat_divider_9_Template", "display_r4", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275advance", "\u0275\u0275textInterpolate1", "\u0275\u0275pipeBind2", "\u0275\u0275pureFunction1", "_c0", "nameOfSubmitter_r1", "\u0275\u0275elementContainerStart", "\u0275\u0275propertyInterpolate", "badgeInfo_r2", "color", "\u0275\u0275pipeBind1", "tranlationKey", "\u0275\u0275template", "SalesOrderDetailsCardComponent_mat_card_subtitle_6_span_3_Template", "SalesOrderDetailsCardComponent_mat_card_subtitle_6_ng_container_4_Template", "\u0275\u0275property", "ctx_r2", "getOrderSubmitterName", "getOrderSubmitterBadgeInfo", "\u0275\u0275textInterpolate2", "salesperson", "firstName", "lastName", "offerExpiryDisplay", "\u0275\u0275elementContainer", "SalesOrderDetailsCardComponent_mat_card_content_10_div_1_ng_container_5_ng_template_2_ng_container_5_ng_container_1_Template", "\u0275\u0275element", "singleStep_r5", "_c2", "child_r4", "SalesOrderDetailsCardComponent_mat_card_content_10_div_1_ng_container_5_ng_template_2_ng_container_3_Template", "SalesOrderDetailsCardComponent_mat_card_content_10_div_1_ng_container_5_ng_template_2_ng_container_5_Template", "_c1", "info_r6", "childFields", "_c3", "compact_r9", "buildDetailName", "info_r7", "isChild_r8", "buildDetailValue", "SalesOrderDetailsCardComponent_mat_card_content_10_div_1_ng_container_5_ng_container_1_Template", "SalesOrderDetailsCardComponent_mat_card_content_10_div_1_ng_container_5_ng_template_2_Template", "\u0275\u0275templateRefExtractor", "SalesOrderDetailsCardComponent_mat_card_content_10_div_1_ng_container_5_ng_template_4_Template", "info_r10", "length", "multiStep_r11", "declinedReason", "\u0275\u0275listener", "$event", "\u0275\u0275restoreView", "_r13", "\u0275\u0275nextContext", "filesUploader_r14", "\u0275\u0275reference", "\u0275\u0275resetView", "deleteFile", "files", "_r12", "handleFileUploadError", "updateFilesUploaded", "SalesOrderDetailsCardComponent_mat_card_content_10_div_1_div_7_ng_container_5_div_5_Template", "updateAttachmentsOnOrder", "attachmentsUploadUrl", "SalesOrderDetailsCardComponent_mat_card_content_10_div_1_div_7_ng_template_7_glxy_uploader_list_2_Template", "_r15", "edit", "SalesOrderDetailsCardComponent_mat_card_content_10_div_1_div_7_ng_container_5_Template", "SalesOrderDetailsCardComponent_mat_card_content_10_div_1_div_7_ng_template_7_Template", "isEditing$$", "display_r16", "agreement_r17", "name", "SalesOrderDetailsCardComponent_mat_card_content_10_div_1_div_8_div_8_Conditional_3_Template", "SalesOrderDetailsCardComponent_mat_card_content_10_div_1_div_8_div_8_Conditional_4_Template", "SalesOrderDetailsCardComponent_mat_card_content_10_div_1_div_8_div_8_div_8_Template", "SalesOrderDetailsCardComponent_mat_card_content_10_div_1_div_8_div_8_mat_divider_10_Template", "\u0275\u0275conditional", "agreed", "term", "\u0275\u0275sanitizeHtml", "isLast_r18", "SalesOrderDetailsCardComponent_mat_card_content_10_div_1_div_8_div_8_Template", "\u0275\u0275textInterpolate", "buildCustomerApprovalNameAndDate", "agreements", "order", "isCustomerDetails", "orderDetailsEditable", "tags", "orderId", "businessId", "partnerId", "marketId", "SalesOrderDetailsCardComponent_mat_card_content_10_div_1_ng_container_1_Template", "SalesOrderDetailsCardComponent_mat_card_content_10_div_1_ng_container_2_Template", "SalesOrderDetailsCardComponent_mat_card_content_10_div_1_ng_container_5_Template", "SalesOrderDetailsCardComponent_mat_card_content_10_div_1_div_6_Template", "SalesOrderDetailsCardComponent_mat_card_content_10_div_1_div_7_Template", "SalesOrderDetailsCardComponent_mat_card_content_10_div_1_div_8_Template", "SalesOrderDetailsCardComponent_mat_card_content_10_div_1_sales_ui_sales_order_details_customer_notes_9_Template", "SalesOrderDetailsCardComponent_mat_card_content_10_div_1_ng_container_10_Template", "editable", "orderDetails", "customerNotes", "SalesOrderDetailsCardComponent_mat_card_content_10_div_1_Template", "isLoading", "loadingOrder_r19", "formatDate", "date", "DatePipe", "transform", "formatDateWithTime", "getDisplayNameForSalesUser", "user", "names", "push", "displayName", "join", "email", "getEventNameTranslationKeyForOrderDetailField", "orderDetailField", "metadata", "event", "id", "UpdatedTagsEvent", "UpdatedNotesEvent", "UpdatedSalespersonEvent", "UpdatedCustomerNotesEvent", "UpdatedRequestedActivationEvent", "UpdateContractDurationEvent", "UpdateEnforceContractTermEvent", "RequestCancellationEvent", "DeclineCancellationEvent", "UpdatedDraftEvent", "UpdatedLineItemsEvent", "status", "Status", "SUBMITTED_FOR_CUSTOMER_APPROVAL", "getCustomerApprovalTranslationKeyForEventID", "eventID", "CustomerApprovalEventSending", "CustomerApprovalEventProcessing", "CustomerApprovalEventDelivered", "CustomerApprovalEventBounced", "CustomerApprovalEventDropped", "CustomerApprovalEventUnsubscribed", "CustomerApprovalEventDeferred", "CustomerApprovalEventSpamReport", "CustomerApprovalEventOpened", "CustomerApprovalEventClicked", "CustomerApprovalEventUpdatedAnswers", "import_moment", "SalesOrderDetailsCardComponent", "init_sales_order_details_card_component", "__esmMin", "init_common", "init_expansion", "init_uploader", "init_vendasta_sales_orders", "init_esm", "init_operators", "init_conversion_utils", "init_sales_contract_duration", "constructor", "translateService", "alertService", "salesOrderService", "userLookupService", "hasError", "BehaviorSubject", "ngOnInit", "getUploadFileUrl", "attachments", "map", "attachment", "url", "FileUploadStatus", "Success", "offerExpiryDate", "getOfferExpiry", "formattedDate", "moment", "isAfter", "instant", "ngOnChanges", "changes", "currentValue", "salespersonId", "userId", "getMultiUsers", "pipe", "users", "take", "subscribe", "err", "console", "error", "customerApproval", "getLastCustomerApproval", "formatDateAndNamePair", "orderDetailsCopy", "reverse", "find", "historyItem", "index", "statusHistory", "origin", "Origin", "SSC", "VBC", "PC", "isChild", "StatusToBadgeMapping", "get", "text", "SUBMITTED", "nameAndDateString", "buildValueFromMetadata", "signalToOpenAllDropdowns", "matAccordions", "forEach", "accordion", "openAll", "file", "updateAttachments", "tap", "next", "openSuccessSnack", "openErrorSnack", "errorMessage", "message", "RequestCancellationMetadata", "NotesMetadata", "CustomerNotesMetadata", "notes", "current", "DeclinedOrderMetadata", "declinedReasons", "UpdatedTagsMetadata", "tagsString", "value", "UpdatedRequestedActivationMetadata", "previous", "fromValue", "toValue", "UpdateContractDurationMetadata", "previousDurationPeriod", "ContractDurationEnumToKeys", "duration", "previousDuration", "currentDurationPeriod", "currentDuration", "\u0275\u0275directiveInject", "TranslateService", "SnackbarService", "SalesOrdersService", "IAMService", "selectors", "viewQuery", "rf", "ctx", "MatAccordion", "SalesOrderDetailsCardComponent_mat_card_subtitle_6_Template", "SalesOrderDetailsCardComponent_mat_card_content_10_Template", "SalesOrderDetailsCardComponent_ng_template_11_Template", "SalesOrderDetailsCardComponent_ng_template_13_Template", "orderErrorMsg_r20", "SalesOrderDetailsCardModule", "init_sales_order_details_card_module", "__esmMin", "init_common", "init_button", "init_card", "init_checkbox", "init_datepicker", "init_expansion", "init_icon", "init_input", "init_list", "init_progress_spinner", "init_select", "init_tooltip", "init_src", "init_sales_order_details_tags_service", "init_forms", "init_ngx_translate_core", "init_en_devel", "init_constants", "init_uploader", "init_badge", "init_form_field", "init_button_loading_indicator", "SalesOrderTagsService", "imports", "CommonModule", "MatCardModule", "MatListModule", "MatProgressSpinnerModule", "EmptyStateModule", "MatExpansionModule", "VaFormsModule", "MatIconModule", "FormsModule", "ReactiveFormsModule", "MatCheckboxModule", "MatTooltipModule", "MatButtonModule", "MatDatepickerModule", "MatInputModule", "MatSelectModule", "TranslateModule", "LexiconModule", "forChild", "componentName", "WEBLATE_COMPONENT_NAME", "baseTranslation", "GalaxyUploaderModule", "GalaxyBadgeModule", "GalaxyFormFieldModule", "GalaxyButtonLoadingIndicatorModule", "init_interface", "__esmMin", "SalesOrderService", "init_sales_order_service", "__esmMin", "init_esm", "init_operators", "init_vendasta_marketplace_packages", "init_vendasta_sales_orders", "init_src", "convertOrderCurrencyToMPCurrency", "orderCurrency", "Currency", "USD", "convertOrderRevenuePeriodToMPFrequency", "revenuePeriod", "undefined", "RevenuePeriod", "ONETIME", "Frequency", "ONCE", "DAILY", "WEEKLY", "MONTHLY", "YEARLY", "BIWEEKLY", "OTHER", "getPricingFromLineItem", "lineItem", "prices", "currentRevenue", "revenueComponents", "map", "c", "Price", "price", "value", "frequency", "period", "Pricing", "currency", "currencyCode", "constructor", "accountGroupService", "salesService", "packageService", "appsService", "salesOrdersService", "salesOrderStoreService", "businessId$$", "BehaviorSubject", "businessId$", "asObservable", "orderId$$", "orderId$", "specifiedLineItems$$", "specifiedLineItems$", "order$", "combineLatest", "pipe", "skipWhile", "orderId", "businessId", "switchMap", "getOrderState", "filter", "orderState", "loading", "order", "publishReplay", "refCount", "business$", "getMulti", "ProjectionFilter", "accountGroupExternalIdentifiers", "napData", "accounts", "ReadFilter", "includeDeleted", "results", "length", "throwError", "Error", "salesperson$", "business", "externalIdentifiers", "salesPersonId", "getSalesperson", "partnerId", "of", "catchError", "orderConfig$", "getConfig", "marketId", "lineItems$", "lineItems", "concat", "packageIds$", "packageId", "standaloneAppKeys$", "appKey", "AppKey", "packages$", "packageIds", "includedAppKeys$", "zip", "packages", "standaloneAppKeys", "packageAppKeys", "pkg", "item", "appId", "id", "editionId", "reduce", "a", "b", "apps$", "includedAppKeys", "uniqueApps$", "apps", "appKeys", "unique", "app", "key", "find", "uniqueKey", "push", "initialize", "next", "\u0275\u0275inject", "AccountGroupService", "SalespersonService", "PackageService", "AppPartnerService", "SalesOrdersService", "SalesOrderStoreService", "factory", "\u0275fac", "SalesOrderFormService", "init_sales_order_form_service", "__esmMin", "init_esm", "init_vendasta_sales_orders", "init_operators", "init_vendasta_marketplace_apps", "constructor", "translateService", "appsApiService", "salesOrderService", "salesOrderSdk", "initialize", "businessId", "orderId", "lineItems", "userOptions", "order$", "mpOrderForms$", "combineLatest", "apps$", "business$", "pipe", "switchMap", "apps", "business", "getMarketplaceOrderForms", "externalIdentifiers", "partnerId", "publishReplay", "refCount", "appQuantityMap$", "zip", "packages$", "lineItems$", "map", "packages", "salesLineItems", "quantityMap", "Map", "allPkgLineItems", "reduce", "items", "pkg", "pkgLineItem", "find", "lineItem", "packageId", "pkgCount", "quantity", "concat", "salesOrderLineItemsFromPackage", "filter", "forEach", "item", "count", "get", "appKey", "appId", "set", "length", "LineItem", "id", "editionId", "appIds", "app", "key", "activationInformation", "orderFormEnabled", "getMultiOrderForms", "resp", "orderFormContainer", "of", "getOrderForms", "options", "uniqueApps$", "orderForms", "appQuantityMap", "forms", "commonFormRequiredFields", "customFields", "activationSpecificUrlEnabled", "unshift", "label", "instant", "type", "required", "showOfficeUseQuestions", "hidden", "regexValidator", "regexErrorMessage", "textboxType", "orderForm", "o", "isTrialUpgrade", "f", "__spreadProps", "__spreadValues", "optionsWithLabels", "addonId", "parentRequirements", "enabled", "appType", "AppType", "APP_TYPE_ADDON", "parentDetails", "createdForm", "footerText", "trim", "push", "multipleActivationsEnabled", "separateOrderForms", "i", "isTrialLineItem", "businessHasActiveTrial", "accounts", "li", "isTrial", "account", "a", "marketplaceAppId", "getNewCommonData", "commonFormData", "salesperson$", "salesperson", "user", "businessAddress", "napData", "address", "city", "state", "join", "user_options", "contact_email", "email", "contact_name", "firstName", "lastName", "contact_phone_number", "phoneNumber", "business_account_group_id", "accountGroupId", "business_name", "companyName", "business_address", "business_phone_number", "workNumber", "business_website", "website", "salesperson_name", "salesperson_email", "salesperson_phone_number", "getCommonData", "order", "commonData", "commonFields", "cf", "fieldAnswer", "field", "answer", "JSON", "parse", "fieldId", "getProductInfo", "productInfoMap", "productInfo", "productId", "addonInfo", "has", "name", "tagline", "icon", "iconUrl", "sharedMarketingInformation", "Array", "from", "values", "getAnswers", "answers", "c", "fieldAnswers", "fields", "productID", "addonKey", "customFieldsAnswers", "getExtraQuestions", "orderConfig$", "config", "extraFields", "getExtraAnswers", "updateAnswers", "customFormData", "hasQuestions", "orderFormOptions", "questions", "hasExtraQuestions", "commonFormHasQuestions", "commonForm", "Object", "some", "form", "hasCommonForm", "hasCommonFormRequiredFields", "hasCustomFields", "\u0275\u0275inject", "TranslateService", "MarketplaceAppsApiService", "SalesOrderService", "SalesOrdersService", "factory", "\u0275fac", "\u0275\u0275elementContainer", "\u0275\u0275elementStart", "\u0275\u0275listener", "\u0275\u0275restoreView", "_r1", "ctx_r1", "\u0275\u0275nextContext", "\u0275\u0275resetView", "clickUpdate", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275property", "submitting", "\u0275\u0275advance", "\u0275\u0275textInterpolate1", "\u0275\u0275pipeBind1", "\u0275\u0275element", "\u0275\u0275template", "SalesOrderFormComponent_ng_template_3_div_0_button_1_Template", "SalesOrderFormComponent_ng_template_3_div_0_div_2_Template", "SalesOrderFormComponent_ng_template_3_div_0_Template", "showSelfSaveButton", "loading$", "orderData_r3", "orderForms", "length", "extraQuestions", "form", "fileUploadUrl", "commonData", "productInfo", "answers", "extraAnswers", "orderFormOptions", "users", "businessId", "SalesOrderFormComponent_ng_template_5_div_0_Template", "orderData$", "loading_r4", "SalesOrderFormComponent_ng_template_7_div_0_Template", "SalesOrderFormComponent", "init_sales_order_form_component", "__esmMin", "init_core", "init_forms", "init_vendasta_sales_orders", "init_esm", "init_operators", "init_lib", "init_sales_order_form_service", "init_sales_order_service", "constructor", "alertService", "salesOrderFormService", "salesOrderStoreService", "cdr", "partnerId$", "loading", "EventEmitter", "hasSalesOrderFormEvent", "loading$$", "BehaviorSubject", "asObservable", "subscriptions", "ngOnInit", "push", "getOrderState", "orderId", "pipe", "tap", "orderState", "next", "orderStatus", "order", "status", "subscribe", "initialize", "lineItems", "userOptions", "UntypedFormGroup", "orderForms$", "getOrderForms", "commonData$", "getCommonData", "productInfo$", "getProductInfo", "extraQuestions$", "getExtraQuestions", "extraAnswers$", "getExtraAnswers", "answers$", "getAnswers", "map", "combineLatest", "zip", "partnerId", "orderData", "emit", "ngOnDestroy", "forEach", "sub", "unsubscribe", "clearOrderStateCache", "getCommonFormData", "orderFormComponent", "getCustomFormData", "getExtraFieldsData", "requiresPartnerInput", "orderFormRequiresPartnerInput", "getLineItems", "li", "LineItem", "changeReadOnly", "readOnly", "validateForm", "valid", "setAsTouched", "openDropdown", "result$", "updateAnswers", "openSuccessSnack", "openErrorSnack", "Status", "DRAFTED", "customFormData", "extraFieldsData", "commonFormData", "take", "detectChanges", "markAsTouched", "controls", "i", "Object", "keys", "UntypedFormControl", "updateValueAndValidity", "\u0275\u0275directiveInject", "SnackbarService", "SalesOrderFormService", "SalesOrderStoreService", "ChangeDetectorRef", "PARTNER_ID_TOKEN", "selectors", "viewQuery", "rf", "ctx", "SalesOrderService", "decls", "vars", "consts", "template", "\u0275\u0275elementContainerStart", "SalesOrderFormComponent_ng_container_1_Template", "SalesOrderFormComponent_ng_container_2_Template", "SalesOrderFormComponent_ng_template_3_Template", "\u0275\u0275templateRefExtractor", "SalesOrderFormComponent_ng_template_5_Template", "SalesOrderFormComponent_ng_template_7_Template", "orderForm_r6", "selfSaveButton_r5", "SalesOrderFormModule", "init_sales_order_form_module", "__esmMin", "init_common", "init_forms", "init_button", "init_card", "init_expansion", "init_progress_spinner", "init_src", "init_v1", "init_ngx_translate_core", "init_en_devel", "init_constants", "init_sales_order_store_service", "init_sales_order_form_service", "init_sales_order_service", "SalesOrderService", "SalesOrderFormService", "SalesOrderStoreService", "provide", "useExisting", "MarketplaceAppsApiService", "imports", "CommonModule", "FormsModule", "ReactiveFormsModule", "VaOrderFormModule", "TranslateModule", "LexiconModule", "forChild", "componentName", "WEBLATE_COMPONENT_NAME", "baseTranslation", "MatButtonModule", "MatCardModule", "MatProgressSpinnerModule", "MatExpansionModule", "\u0275\u0275element", "\u0275\u0275property", "\u0275\u0275elementStart", "\u0275\u0275listener", "\u0275\u0275restoreView", "_r2", "ctx_r2", "\u0275\u0275nextContext", "\u0275\u0275resetView", "unselectSalesperson", "\u0275\u0275text", "\u0275\u0275elementEnd", "user_r4", "\u0275\u0275advance", "\u0275\u0275textInterpolate2", "firstName", "lastName", "\u0275\u0275template", "SalespersonSelectorDialogComponent_Conditional_5_Conditional_7_Template", "SalespersonSelectorDialogComponent_Conditional_5_Conditional_8_Template", "$event", "_r1", "selectSalesperson", "\u0275\u0275repeaterCreate", "SalespersonSelectorDialogComponent_Conditional_5_For_12_Template", "\u0275\u0275repeaterTrackByIdentity", "loadMore", "\u0275\u0275textInterpolate", "\u0275\u0275pipeBind1", "autocomplete_r6", "origin_r5", "searchCtrl", "\u0275\u0275conditional", "loading", "selectedSalesperson", "\u0275\u0275repeater", "ctx", "SalespersonSelectorDialogComponent", "init_salesperson_selector_dialog_component", "__esmMin", "init_forms", "init_dialog", "init_vendasta_iam", "init_esm", "init_operators", "constructor", "userLookupService", "data", "dialogRef", "cdr", "salespersonOptions$$", "BehaviorSubject", "salespersonOptions$", "asObservable", "cursor", "pageSize", "hasMore", "UntypedFormControl", "searchTerm$$", "loadMore$$", "partnerId", "ngOnInit", "previouslySelectedUser", "getMultiUsers", "userId", "pipe", "take", "subscribe", "user", "length", "setSalespersonInputText", "valueChanges", "map", "searchTerm", "next", "debounceTime", "switchMap", "detectChanges", "listUsers", "direction", "SortDirection", "SORT_DIRECTION_ASCENDING", "field", "UserSortField", "USER_SORT_FIELD_FIRST_NAME", "USER_SORT_FIELD_LAST_NAME", "resp", "updateSalespersonOptions", "users", "nextCursor", "withLatestFrom", "currentSalespersonOptions", "event", "option", "value", "setValue", "newSalespersonOptions", "salespersonOptions", "concat", "select", "close", "salesperson", "\u0275\u0275directiveInject", "IAMService", "MAT_DIALOG_DATA", "MatDialogRef", "ChangeDetectorRef", "selectors", "standalone", "decls", "vars", "consts", "template", "rf", "SalespersonSelectorDialogComponent_Conditional_5_Template", "tmp_1_0", "\u0275\u0275textInterpolate1", "ORDER_LINK", "init_order_link", "__esmMin", "init_core", "InjectionToken", "providedIn", "factory", "order", "businessId", "orderId", "SalesOrderTableCustomComponentDirective", "init_sales_order_table_custom_component", "__esmMin", "selectors", "inputs", "columnDefinition", "translateService", "element", "eventEmitter", "standalone", "SALES_ORDERS_ACCESS_SERVICE_TOKEN", "init_sales_orders_table_access_service", "__esmMin", "init_core", "InjectionToken", "\u0275\u0275elementStart", "\u0275\u0275listener", "\u0275\u0275restoreView", "_r2", "ctx_r2", "\u0275\u0275nextContext", "\u0275\u0275resetView", "archive", "\u0275\u0275text", "\u0275\u0275elementEnd", "ignoreErrors", "cancel", "changeSalesperson", "\u0275\u0275property", "element", "status", "PROCESSING", "ARCHIVED", "\u0275\u0275advance", "\u0275\u0275textInterpolate1", "\u0275\u0275pipeBind1", "ACTIVATION_ERRORS", "CANCELLED", "DRAFTED", "isEmpty", "\u0275\u0275pureFunction1", "_c3", "_c2", "_c1", "\u0275\u0275pureFunction2", "_c0", "partnerId", "businessId", "orderId", "\u0275\u0275elementContainerStart", "\u0275\u0275template", "SalesOrderActionsCellComponent_ng_container_1_Conditional_6_Template", "_r1", "duplicateOrder", "SalesOrderActionsCellComponent_ng_container_1_Conditional_11_Template", "menuRef_r4", "\u0275\u0275conditional", "hasPartnerPermissions$", "canEditCustomFields$", "\u0275\u0275element", "SalesOrderActionsCellComponent", "init_sales_order_actions_cell_component", "__esmMin", "init_core", "init_vendasta_sales_orders", "init_esm", "init_operators", "init_salesperson_selector_dialog_component", "init_order_link", "init_sales_order_table_custom_component", "init_sales_orders_table_access_service", "SalesOrderTableCustomComponentDirective", "constructor", "salesOrdersService", "alertService", "cdk", "dialog", "router", "accessService", "Status", "loading", "orderLink", "inject", "ORDER_LINK", "canModifyCustomFields$", "of", "pipe", "switchMap", "hasPermission", "take", "finalize", "detectChanges", "subscribe", "next", "order", "openErrorSnack", "error", "approveCancellation", "ignoreAllProductActivationErrors", "FULFILLED", "duplicate", "map", "orderRow", "url", "navigate", "open", "SalespersonSelectorDialogComponent", "data", "previouslySelectedUser", "salespersonId", "width", "afterClosed", "selectedSalesperson", "updateSalesperson", "salesperson", "userId", "firstName", "lastName", "email", "phoneNumber", "err", "console", "\u0275\u0275directiveInject", "SalesOrdersService", "SnackbarService", "ChangeDetectorRef", "MatDialog", "Router", "SALES_ORDERS_ACCESS_SERVICE_TOKEN", "selectors", "standalone", "features", "\u0275\u0275InheritDefinitionFeature", "decls", "vars", "consts", "template", "rf", "ctx", "SalesOrderActionsCellComponent_ng_container_1_Template", "SalesOrderActionsCellComponent_ng_template_2_Template", "\u0275\u0275templateRefExtractor", "loadingTemplate_r5", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275advance", "\u0275\u0275textInterpolate1", "ctx_r0", "business", "companyName", "\u0275\u0275property", "businessLink", "element", "\u0275\u0275textInterpolate", "\u0275\u0275elementContainerStart", "\u0275\u0275template", "BusinessInfoCellComponent_ng_container_0_div_2_Template", "BusinessInfoCellComponent_ng_container_0_ng_template_6_Template", "\u0275\u0275templateRefExtractor", "deleted", "linkToBusinessDetails_r2", "\u0275\u0275pipeBind1", "address$", "BUSINESS_LINK", "BusinessInfoCellComponent", "init_business_info_cell_component", "__esmMin", "init_core", "init_esm", "init_operators", "init_sales_order_table_custom_component", "InjectionToken", "providedIn", "factory", "order", "businessId", "SalesOrderTableCustomComponentDirective", "constructor", "addressService", "address$$", "BehaviorSubject", "inject", "ngOnInit", "shortAddress$", "address1", "address", "address2", "city", "province", "state", "zip", "country", "pipe", "tap", "next", "\u0275\u0275directiveInject", "AddressService", "selectors", "standalone", "features", "\u0275\u0275InheritDefinitionFeature", "decls", "vars", "consts", "template", "rf", "ctx", "BusinessInfoCellComponent_ng_container_0_Template", "import_moment", "DateCellComponent", "init_date_cell_component", "__esmMin", "constructor", "cellValueService", "ngOnInit", "value", "getCellValue", "columnDefinition", "id", "field", "element", "momentFormatDate", "date", "format", "moment", "\u0275\u0275directiveInject", "CellValueService", "selectors", "inputs", "standalone", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275property", "\u0275\u0275advance", "\u0275\u0275textInterpolate1", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275property", "ctx_r0", "momentFormatDate", "expiryDate", "\u0275\u0275advance", "\u0275\u0275textInterpolate1", "fromNow", "\u0275\u0275pipeBind1", "import_moment", "ExpiryCellComponent", "init_expiry_cell_component", "__esmMin", "init_sales_order_table_custom_component", "SalesOrderTableCustomComponentDirective", "constructor", "showDate", "showExpired", "ngOnInit", "element", "expiryMoment", "moment", "toDate", "isBefore", "date", "format", "__ngFactoryType__", "selectors", "standalone", "features", "\u0275\u0275InheritDefinitionFeature", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275template", "ExpiryCellComponent_span_0_Template", "ExpiryCellComponent_span_1_Template", "OrderIdCellComponent", "init_order_id_cell_component", "__esmMin", "init_core", "init_order_link", "init_sales_order_table_custom_component", "SalesOrderTableCustomComponentDirective", "constructor", "orderLink", "inject", "ORDER_LINK", "__ngFactoryType__", "selectors", "standalone", "features", "\u0275\u0275InheritDefinitionFeature", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275property", "element", "\u0275\u0275advance", "\u0275\u0275textInterpolate", "orderId", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275advance", "\u0275\u0275textInterpolate", "tag_r1", "OrderTagsCellComponent", "init_order_tags_cell_component", "__esmMin", "init_sales_order_table_custom_component", "SalesOrderTableCustomComponentDirective", "ngOnInit", "tags", "element", "__ngFactoryType__", "selectors", "standalone", "features", "\u0275\u0275InheritDefinitionFeature", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275template", "OrderTagsCellComponent_div_1_Template", "\u0275\u0275property", "RequestedExportType", "SALES_ORDERS_TABLE_FACTORY_PARAM_TOKEN", "exportDataFormatModalOption", "BaseSalesOrdersTableFilterService", "SALESPERSON_PROFILE_LINK", "init_interface", "__esmMin", "init_core", "InjectionToken", "\u0275\u0275elementStart", "\u0275\u0275listener", "\u0275\u0275restoreView", "_r1", "ctx_r1", "\u0275\u0275nextContext", "\u0275\u0275resetView", "linkClicked", "element", "\u0275\u0275elementContainer", "\u0275\u0275elementEnd", "\u0275\u0275advance", "\u0275\u0275property", "salespersonDetails_r3", "\u0275\u0275text", "\u0275\u0275textInterpolate1", "salesperson", "firstName", "lastName", "\u0275\u0275template", "SalespersonCellComponent_ng_template_7_Conditional_0_Template", "SalespersonCellComponent_ng_template_7_Conditional_1_Template", "SalespersonCellComponent_ng_template_7_Conditional_2_Template", "\u0275\u0275conditional", "SalespersonCellComponent", "init_salesperson_cell_component", "__esmMin", "init_core", "init_sales_order_table_custom_component", "init_interface", "init_sales_orders_table_access_service", "init_esm", "init_router", "init_snackbar_service", "SalesOrderTableCustomComponentDirective", "constructor", "accessService", "inject", "SALES_ORDERS_ACCESS_SERVICE_TOKEN", "optional", "hasLinkAccess$", "orderTableSalespersonLinkAccess$", "of", "salespersonLink", "SALESPERSON_PROFILE_LINK", "router", "Router", "snackbarService", "SnackbarService", "order", "__async", "firstValueFrom", "navigateByUrl", "openErrorSnack", "__ngFactoryType__", "selectors", "standalone", "features", "\u0275\u0275InheritDefinitionFeature", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275elementContainerStart", "SalespersonCellComponent_Conditional_2_Template", "SalespersonCellComponent_Conditional_4_Template", "SalespersonCellComponent_ng_template_7_Template", "\u0275\u0275templateRefExtractor", "\u0275\u0275pipeBind1", "\u0275\u0275textInterpolate", "email", "StatusCellComponent", "init_status_cell_component", "__esmMin", "init_vendasta_sales_orders", "init_sales_order_table_custom_component", "SalesOrderTableCustomComponentDirective", "constructor", "status", "Status", "getStatusName", "statusName", "element", "__ngFactoryType__", "selectors", "standalone", "features", "\u0275\u0275InheritDefinitionFeature", "decls", "vars", "template", "rf", "ctx", "\u0275\u0275text", "\u0275\u0275textInterpolate", "\u0275\u0275pipeBind1", "SalesOrdersExportAllService", "init_sales_order_export_all_service", "__esmMin", "init_vendasta_sales_orders", "init_src", "init_esm", "init_operators", "init_provider_tokens", "init_interface", "constructor", "salesOrderService", "partnerId$", "salesTeamService", "alertService", "convertSortOptions", "sort", "s", "length", "direction", "SortDirection", "SORT_DIRECTION_ASCENDING", "InitiateOrderExportRequestSortDirection", "ASCENDING", "DESCENDING", "field", "InitiateOrderExportRequestSortField", "STATUS", "REQUESTED_ACTIVATION", "CREATED", "EXPIRY_DATE", "InitiateOrderExportRequestSortOption", "convertFilters", "filters", "filteredTeamSalesPersonIds", "forcedMarkets", "forcedSalesperson", "forcedBusinessId", "f", "statuses", "created", "requestedActivation", "expiryDate", "controls", "value", "push", "Status", "FULFILLED", "ACTIVATION_ERRORS", "APPROVED", "ARCHIVED", "SUBMITTED_FOR_CUSTOMER_APPROVAL", "DECLINED", "SUBMITTED", "PROCESSING", "DRAFTED", "CANCELLATION_REQUESTED", "CANCELLED", "SCHEDULED_ACTIVATION", "beginRange", "endRange", "tags", "untagged", "orderId", "packageIds", "packageId", "marketIds", "marketId", "businessIds", "salespersonIds", "salespersonId", "includes", "InitiateOrderExportRequestFilters", "initialize", "forcedFilterOptions", "exportOptions", "getSelectedDataFormat", "fileFormatSelected", "selectedDataFormat", "InitiateOrderExportRequestDataFormatOption", "ORDERS_PER_ROW", "exportDataFormatModalOption", "PRODUCTS_PER_ROW", "RequestedExportType", "Buyer", "PRODUCTS_PER_ROW_BUYER", "ORDERS_PER_ROW_BUYER", "Sales", "PRODUCTS_PER_ROW_SALES", "ORDERS_PER_ROW_SALES", "exportAllRowsToCSV", "request", "option", "sortOptions", "sortingOptions", "salesPersonIdsBelongingToFilteredTeam$", "of", "getMembers", "id", "pipe", "catchError", "filters$", "map", "salesPersonIdsBelongingToFilteredTeam", "teamSalesPersonIds", "sp", "businessId", "combineLatest", "switchMap", "partnerId", "tableUrlWithFiltersSet", "window", "location", "href", "exportOrderRequest", "InitiateOrderExportRequest", "sortOption", "tryAgainUrl", "initiateOrderExport", "subscribe", "next", "openSuccessSnack", "error", "err", "status", "openErrorSnack", "\u0275\u0275inject", "CustomerSalesOrdersService", "PARTNER_ID_TOKEN", "SalesTeamService", "SnackbarService", "factory", "\u0275fac", "calculateContractDurationMonths", "d", "months", "duration", "DurationPeriod", "MONTH", "value", "YEAR", "init_conversion_utils", "__esmMin", "init_vendasta_sales_orders", "CustomerSalesOrdersTableService", "init_sales_orders_customer_table_service", "__esmMin", "init_esm", "init_operators", "init_src", "init_vendasta_sales_orders", "init_conversion_utils", "init_provider_tokens", "constructor", "salesOrderService", "partnerId$", "totalResults$$", "BehaviorSubject", "totalResults$", "asObservable", "initialize", "forcedFilterOptions", "convertFilters", "filters", "forcedBusiness", "f", "created", "requestedActivation", "expiryDate", "beginRange", "endRange", "businessId", "ListCustomerSalesOrderRequestFilters", "convertSortOptions", "sort", "s", "length", "direction", "SortDirection", "SORT_DIRECTION_ASCENDING", "ListCustomerSalesOrderRequestSortDirection", "ASCENDING", "DESCENDING", "field", "ListCustomerSalesOrderRequestSortField", "STATUS", "REQUESTED_ACTIVATION", "CREATED", "EXPIRY_DATE", "ListCustomerSalesOrderRequestSortOption", "load", "request", "sorting", "sortingOptions", "cursor", "btoa", "pageIndex", "pageSize", "toString", "combineLatest", "pipe", "switchMap", "partnerId", "apiFilters", "list", "take", "map", "results", "next", "totalResults", "o", "orderId", "salespersonId", "salesperson", "business", "marketId", "status", "tags", "contractDurationInMonths", "calculateContractDurationMonths", "contractDuration", "\u0275\u0275inject", "CustomerSalesOrdersService", "PARTNER_ID_TOKEN", "factory", "\u0275fac", "CustomerSalesOrdersTableFilterService", "init_sales_orders_table_customer_filter_service", "__esmMin", "init_src", "init_interface", "init_provider_tokens", "BaseSalesOrdersTableFilterService", "constructor", "partnerId$", "translateService", "filters", "FilterGroup", "initialize", "forcedFilterOptions", "contractStartFromControl", "DateFilterControl", "instant", "contractStartToControl", "submittedDateFromControl", "submittedDateToControl", "expiryDateFromControl", "expiryDateToControl", "addSection", "\u0275\u0275inject", "PARTNER_ID_TOKEN", "TranslateService", "factory", "\u0275fac", "prependStatusFiltersSection", "filters", "translateService", "prependSection", "instant", "CheckboxFilterControl", "appliedValueMapper", "name", "label", "init_filters_utils", "__esmMin", "init_src", "SalesOrdersTableFilterService", "init_sales_orders_table_filter_service", "__esmMin", "init_vendasta_marketplace_packages", "init_src", "init_esm", "init_operators", "init_interface", "init_provider_tokens", "init_filters_utils", "BaseSalesOrdersTableFilterService", "constructor", "partnerId$", "markets$", "salespeople$", "salesTeams$", "alertService", "salesOrdersService", "translateService", "packageService", "accountGroupService", "addressPipe", "filters", "FilterGroup", "destroy$", "Subject", "packageFilterSectionName", "instant", "reduceSalesTeamToMap", "salesTeamMap", "st", "set", "teamName", "convertSalesTeamsToMap", "salesTeams", "reduce", "Map", "ngOnDestroy", "next", "complete", "initialize", "forcedFilterOptions", "canAccessSalesTeams", "marketOptions$", "pipe", "map", "markets", "sort", "a", "b", "aName", "name", "toLowerCase", "bName", "objMap", "market", "catchError", "e", "openErrorSnack", "throwError", "tags", "combineLatest", "switchMap", "partnerId", "marketIds", "getMarketIds", "listTags", "resp", "t", "v", "msg", "adminControls", "TextInputFilterControl", "marketFilterControl", "SelectFilterControl", "appliedValueMapper", "value", "marketLabel", "label", "push", "takeUntil", "subscribe", "availMarkets", "Array", "from", "values", "length", "setValue", "salespersonId", "createSalesPeopleSelectControl", "createSalesTeamsSelectControl", "createAccountSearchControl", "addSection", "contractStartFromControl", "DateFilterControl", "contractStartToControl", "submittedDateFromControl", "submittedDateToControl", "expiryDateFromControl", "expiryDateToControl", "prependStatusFiltersSection", "tagLabel", "CheckboxFilterControl", "take", "addPackageFilterSection", "valueChanges", "removeSection", "marketId", "formatSearchAccountOption", "accountGroup", "address", "napData", "address2", "city", "state", "formattedAddress", "transform", "companyName", "m", "salesPeopleOptions$", "salesPeople", "sp", "salespersonLabel", "salesTeamOptions$", "teams", "salesTeamLabel", "accountGroupProjectionFilter", "accountSearchTerm$$", "BehaviorSubject", "accountGroupIdToCompanyName", "accountOptions$", "searchTerm", "lookup", "projectionFilter", "pageSize", "response", "accountGroupLabelToId", "accountGroups", "forEach", "selectOptionLabel", "accountGroupId", "accountLabel", "accountSearchControl", "SearchSelectFilterControl", "searchDisplay", "accountId", "get", "list", "Status", "PUBLISHED", "packages", "sortedPackages", "p", "\u0275\u0275inject", "PARTNER_ID_TOKEN", "MARKET_IDS_TOKEN", "SALESPEOPLE_TOKEN", "SALES_TEAMS_TOKEN", "SnackbarService", "SalesOrdersService", "TranslateService", "PackageService", "AccountGroupSdkService", "GalaxyAddressPipe", "factory", "\u0275fac", "\u0275\u0275elementContainerStart", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275listener", "\u0275\u0275restoreView", "_r1", "ctx_r1", "\u0275\u0275nextContext", "\u0275\u0275resetView", "handleViewItemsClick", "\u0275\u0275advance", "\u0275\u0275property", "badgeColor", "\u0275\u0275textInterpolate1", "\u0275\u0275pipeBind1", "stringStatus", "\u0275\u0275textInterpolate", "\u0275\u0275template", "FulfillmentCellComponent_ng_template_1_glxy_badge_0_Template", "notApplicableOption_r3", "FulfillmentCellComponent", "init_fulfillment_cell_component", "__esmMin", "init_core", "init_vendasta_sales_orders", "init_src", "init_sales_order_table_custom_component", "init_router", "SalesOrderTableCustomComponentDirective", "constructor", "partnerId$", "fulfillmentCellLinkVersion", "fulfillmentOrderStatus", "FulfillmentOrderStatus", "router", "inject", "Router", "ngOnInit", "element", "orderID", "orderId", "queryParamsLink", "getLinkQueryParams", "hasFulfillment", "statusAsNumber", "convertStringStatusToNumber", "statusColorMap", "get", "WorkOrderPersona", "CP", "Object", "values", "indexOf", "queryParams", "orderIds", "JSON", "stringify", "tab", "navigateToUnifiedTables", "navigate", "queryParamsHandling", "\u0275\u0275directiveInject", "selectors", "standalone", "features", "\u0275\u0275InheritDefinitionFeature", "decls", "vars", "consts", "template", "rf", "ctx", "FulfillmentCellComponent_ng_container_0_Template", "FulfillmentCellComponent_ng_template_1_Template", "\u0275\u0275templateRefExtractor", "FulfillmentCellComponent_ng_template_3_Template", "noLinkVersion_r4", "buildExportModalContent", "translateService", "content", "headerText", "descriptionText", "exportOptions", "combineLatest", "stream", "subscribe", "exportHeaderMessage", "exportDescriptionMessage", "orderPerRowOptionText", "orderPerRowOptionHelpText", "productsPerRowOptionText", "productsPerRowOptionHelpText", "id", "exportDataFormatModalOption", "ORDERS_PER_ROW", "selectionText", "selectionHelpText", "PRODUCTS_PER_ROW", "ORDERS_TABLE_DEF", "salesOrdersActionsCell", "tableDefinitionFactory", "init_sales_orders_table_model", "__esmMin", "init_src", "init_esm", "init_sales_order_actions_cell_component", "init_business_info_cell_component", "init_date_cell_component", "init_expiry_cell_component", "init_fulfillment_cell_component", "init_order_id_cell_component", "init_order_tags_cell_component", "init_salesperson_cell_component", "init_status_cell_component", "init_interface", "columnOrganizerType", "ColumnOrganizerType", "ADVANCED_ORGANIZER", "labels", "noResults", "cancel", "none", "update", "sortBy", "thenSortBy", "addAnotherSortColumn", "chooseColumnToSortBy", "columnSorting", "date", "ascending", "descending", "number", "string", "default", "export", "buttonText", "buttonTooltipBeforeCount", "buttonTooltipAfterCount", "columnSelector", "options", "disableMultiColumnSorting", "tableTitle", "csvExportEnabled", "columns", "displayName", "pinned", "Pinned", "PINNED_LEFT", "type", "ColumnType", "COLUMN_TYPE_STRING", "field", "cellComponent", "OrderIdCellComponent", "BusinessInfoCellComponent", "StatusCellComponent", "sortOptions", "sortable", "FulfillmentCellComponent", "COLUMN_TYPE_DATE", "DateCellComponent", "SalespersonCellComponent", "initialSortDirection", "SortDirection", "SORT_DIRECTION_DESCENDING", "translateCell", "ExpiryCellComponent", "OrderTagsCellComponent", "PINNED_RIGHT", "SalesOrderActionsCellComponent", "filterService", "customerFilterService", "params", "tableDefinition", "showActions", "some", "c", "push", "inBusinessCenter", "removeIds", "filter", "column", "includes", "filters", "exportDialogDefinition", "SalesOrdersTableTab", "SalesOrdersTableService", "init_sales_orders_table_service", "__esmMin", "init_vendasta_sales_orders", "init_src", "init_esm", "init_operators", "init_conversion_utils", "init_provider_tokens", "constructor", "salesOrderService", "partnerId$", "translateService", "salesTeamService", "snackbarService", "totalResults$$", "BehaviorSubject", "totalResults$", "asObservable", "salesOrdersTab$$", "initialize", "forcedFilterOptions", "stats$", "pipe", "switchMap", "partnerId", "getStatusCounts", "marketIds", "salespersonId", "map", "counts", "shareReplay", "currentDate", "Date", "nextDate", "setMonth", "getMonth", "presetViews", "JSON", "stringify", "viewId", "viewName", "instant", "viewDescription", "attributeFiltersJson", "expiryDateFrom", "expiryDateTo", "sortingJson", "convertFilters", "filters", "teamSalesPersonIds", "forcedMarkets", "forcedSalesperson", "f", "statuses", "created", "requestedActivation", "expiryDate", "push", "Status", "FULFILLED", "ACTIVATION_ERRORS", "APPROVED", "ARCHIVED", "SUBMITTED_FOR_CUSTOMER_APPROVAL", "DECLINED", "SUBMITTED", "RESUBMITTED", "PROCESSING", "DRAFTED", "CANCELLATION_REQUESTED", "CANCELLED", "SCHEDULED_ACTIVATION", "marketId", "salespersonIds", "includes", "length", "beginRange", "endRange", "tags", "untagged", "businessId", "orderId", "packageId", "extractSalespersonIds", "salespeople", "sp", "convertSortOptions", "sort", "s", "direction", "SortDirection", "SORT_DIRECTION_ASCENDING", "ListSalesOrderRequestSortDirection", "ASCENDING", "DESCENDING", "field", "ListSalesOrderRequestSortField", "STATUS", "REQUESTED_ACTIVATION", "CREATED", "EXPIRY_DATE", "ListSalesOrderRequestSortOption", "load", "request", "sorting", "sortingOptions", "cursor", "btoa", "pageIndex", "pageSize", "toString", "salesPersonIdsBelongingToTeam$", "salesTeam", "getMembers", "id", "catchError", "of", "combineLatest", "salesPersonIds", "salesOrdersTab", "adjustStatusFiltersForTabs", "apiFilters", "ListSalesOrderRequestFilters", "list", "take", "results", "next", "totalResults", "o", "salesperson", "business", "status", "contractDurationInMonths", "calculateContractDurationMonths", "contractDuration", "fulfillmentOrderStatus", "fulfillmentStatus", "hasFulfillment", "isEmpty", "lineItems", "error", "openErrorSnack", "PENDING", "CANCELLATION_REQUESTS", "ERRORS", "\u0275\u0275inject", "SalesOrdersService", "PARTNER_ID_TOKEN", "TranslateService", "SalesTeamService", "SnackbarService", "factory", "\u0275fac", "SalespersonService", "init_salesperson_service", "__esmMin", "init_operators", "constructor", "salesService", "cache", "getSalesperson", "partnerId", "salespersonId", "pipe", "publishReplay", "refCount", "take", "\u0275\u0275inject", "factory", "\u0275fac", "SalesOrdersTableTab", "SalesOrdersTableTabFilterService", "init_sales_orders_table_tab_filter_service", "__esmMin", "init_src", "init_filters_utils", "constructor", "translateService", "statusSectionName", "instant", "setTabStatusFilters", "selectedTab", "filters", "removeSection", "ALL", "prependStatusFiltersSection", "PENDING", "prependSection", "CheckboxFilterControl", "appliedValueMapper", "name", "label", "patchValue", "__spreadValues", "value", "\u0275\u0275inject", "TranslateService", "factory", "\u0275fac", "providedIn", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275advance", "\u0275\u0275textInterpolate", "stat_r1", "value", "\u0275\u0275element", "\u0275\u0275template", "SalesOrderTableStatsComponent_div_0_div_1_glxy_statistic_value_6_Template", "SalesOrderTableStatsComponent_div_0_div_1_glxy_statistic_value_7_Template", "title", "\u0275\u0275property", "loading", "SalesOrderTableStatsComponent_div_0_div_1_Template", "stats_r2", "SalesOrderTableStatsComponent", "init_sales_order_table_stats_component", "__esmMin", "init_esm", "init_vendasta_sales_orders", "dataService", "stats$", "pipe", "map", "stats", "startCardData", "startWith", "constructor", "i18n", "instant", "statValue", "Object", "values", "Status", "SUBMITTED", "SUBMITTED_FOR_CUSTOMER_APPROVAL", "RESUBMITTED", "CANCELLED", "APPROVED", "SCHEDULED_ACTIVATION", "FULFILLED", "statuses", "reduce", "acc", "status", "\u0275\u0275directiveInject", "TranslateService", "selectors", "inputs", "standalone", "decls", "vars", "consts", "template", "rf", "ctx", "SalesOrderTableStatsComponent_div_0_Template", "\u0275\u0275pipeBind1", "\u0275\u0275element", "\u0275\u0275property", "ctx_r0", "dataService", "SalesOrdersTableComponent", "init_sales_orders_table_component", "__esmMin", "init_core", "init_src", "init_ngx_translate_core", "init_esm", "init_interface", "init_sales_order_export_all_service", "init_sales_orders_customer_table_service", "init_sales_orders_table_customer_filter_service", "init_sales_orders_table_filter_service", "init_sales_orders_table_model", "init_sales_orders_table_service", "init_salesperson_service", "init_sales_orders_table_tab_filter_service", "salesOrdersTab", "tab", "tableFactoryParams", "inBusinessCenter", "salesOrdersTab$$", "next", "salesOrdersTableTabFilterService", "setTabStatusFilters", "tableFilterService", "filters", "constructor", "inj", "i18n", "productAnalyticsService", "snackBarService", "translateService", "options", "showStats", "canAccessSalesTeams", "tableServicesInitialized", "output", "ngOnInit", "forcedFilters", "exportOptions", "RequestedExportType", "Partner", "trackEvent", "get", "CustomerSalesOrdersTableFilterService", "CustomerSalesOrdersTableService", "SalesOrdersTableFilterService", "SalesOrdersTableService", "exportAllDataService", "SalesOrdersExportAllService", "initialize", "presetViews", "emit", "handleCustomExportEvent", "event", "__async", "firstValueFrom", "totalResults$", "then", "total", "openErrorSnack", "instant", "exportAllRowsToCSV", "requestInfo", "optionId", "\u0275\u0275directiveInject", "Injector", "SALES_ORDERS_TABLE_FACTORY_PARAM_TOKEN", "TranslateService", "ProductAnalyticsService", "SnackbarService", "SalesOrdersTableTabFilterService", "selectors", "inputs", "outputs", "standalone", "features", "\u0275\u0275ProvidersFeature", "VaTableSortService", "SalespersonService", "VaFilteredMatTableService", "provide", "TABLE_DEFINITION", "useFactory", "tableDefinitionFactory", "deps", "FeatureFlagService", "PartnerService", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275elementStart", "\u0275\u0275template", "SalesOrdersTableComponent_sales_ui_sales_order_table_stats_1_Template", "\u0275\u0275listener", "$event", "\u0275\u0275elementEnd", "\u0275\u0275advance", "SalespersonSelectorDialogModule", "init_salesperson_selector_dialog_module", "__esmMin", "init_common", "init_router", "init_progress_spinner", "init_tooltip", "init_ngx_translate_core", "init_menu", "init_icon", "init_button", "init_card", "init_divider", "init_src", "init_en_devel", "init_constants", "init_dialog", "init_autocomplete", "init_infinite_scroll_trigger", "init_chips", "init_forms", "init_form_field", "init_input", "init_galaxy_wrap", "init_loading_spinner", "CommonModule", "RouterModule", "MatProgressSpinnerModule", "MatTooltipModule", "TranslateModule", "LexiconModule", "forChild", "componentName", "WEBLATE_COMPONENT_NAME", "baseTranslation", "MatMenuModule", "MatIconModule", "MatButtonModule", "MatCardModule", "MatDividerModule", "MatDialogModule", "MatAutocompleteModule", "GalaxyInfiniteScrollTriggerModule", "MatChipsModule", "FormsModule", "MatFormFieldModule", "ReactiveFormsModule", "GalaxyFormFieldModule", "MatInputModule", "GalaxyWrapModule", "GalaxyLoadingSpinnerModule", "SalesOrdersTableModule", "init_sales_orders_table_module", "__esmMin", "init_common", "init_material_date_fns_adapter", "init_button", "init_card", "init_core", "init_divider", "init_icon", "init_menu", "init_progress_spinner", "init_tooltip", "init_router", "init_src", "init_ngx_translate_core", "init_badge", "init_pipes", "init_statistic", "init_locale", "init_en_devel", "init_constants", "init_salesperson_selector_dialog_module", "AccountGroupService", "GalaxyAddressPipe", "provide", "MAT_DATE_LOCALE", "useValue", "getLocale", "DateAdapter", "useClass", "DateFnsAdapter", "deps", "MAT_DATE_FORMATS", "MAT_DATE_FNS_FORMATS", "imports", "CommonModule", "Filter2TableModule", "RouterModule", "MatProgressSpinnerModule", "MatTooltipModule", "VaBadgeModule", "TranslateModule", "LexiconModule", "forChild", "componentName", "WEBLATE_COMPONENT_NAME", "baseTranslation", "MatMenuModule", "MatIconModule", "MatButtonModule", "MatCardModule", "MatDividerModule", "VaCardsModule", "GalaxyStatisticModule", "GalaxyBadgeModule", "SalespersonSelectorDialogModule", "SalesUiTranslationsModule", "init_sales_ui_translations_module", "__esmMin", "init_src", "init_constants", "init_en_devel", "LexiconModule", "forChild", "componentName", "WEBLATE_COMPONENT_NAME", "baseTranslation", "init_type_selector_component", "__esmMin", "init_lib", "__esmMin", "init_conversion_utils", "init_provider_tokens", "init_sales_order_confirmation_component", "init_sales_order_confirmation_module", "init_sales_order_line_item_selector_dialog_component", "init_sales_order_contents_component", "init_sales_order_contents_module", "init_order_detail_agreement", "init_order_detail_field", "init_sales_order_details_card_module", "init_sales_contract_duration", "init_interface", "init_sales_order_form_module", "init_sales_order_store_service", "init_order_link", "init_sales_orders_table_module", "init_sales_ui_translations_module", "init_type_selector_component", "init_billing_utils", "init_src", "__esmMin", "init_lib"] }