@veloceapps/sdk 8.0.0-8 → 8.0.0-81
Sign up to get free protection for your applications and to get access to all the features.
- package/README.md +0 -1
- package/cms/utils/element.utils.d.ts +1 -0
- package/cms/vendor-map.d.ts +2 -1
- package/core/modules/configuration/services/configuration-runtime.service.d.ts +1 -1
- package/core/modules/configuration/services/configuration.service.d.ts +6 -1
- package/core/modules/flow-configuration/types/update.types.d.ts +1 -1
- package/core/pipes/action-code.pipe.d.ts +8 -0
- package/core/pipes/index.d.ts +1 -0
- package/core/pipes/pipes.module.d.ts +2 -1
- package/core/services/context.service.d.ts +1 -0
- package/core/services/runtime-settings.service.d.ts +4 -1
- package/core/types/formatting-settings.types.d.ts +2 -0
- package/esm2020/cms/components/element-children/element-children.component.mjs +3 -3
- package/esm2020/cms/components/element-children/element-children.module.mjs +4 -4
- package/esm2020/cms/components/element-drop-handle/element-drop-handle.component.mjs +3 -3
- package/esm2020/cms/components/element-drop-handle/element-drop-handle.module.mjs +4 -4
- package/esm2020/cms/components/element-renderer/element-renderer.component.mjs +3 -3
- package/esm2020/cms/components/element-renderer/element-renderer.module.mjs +4 -4
- package/esm2020/cms/components/element-tools-panel/element-tools-panel.component.mjs +5 -5
- package/esm2020/cms/components/plugin.component.mjs +3 -3
- package/esm2020/cms/components/preview/preview.component.mjs +3 -3
- package/esm2020/cms/components/preview/preview.module.mjs +4 -4
- package/esm2020/cms/directives/custom-template.directive.mjs +7 -7
- package/esm2020/cms/launcher.module.mjs +4 -4
- package/esm2020/cms/modules/federated/federated-host.directive.mjs +3 -3
- package/esm2020/cms/modules/federated/federated.component.mjs +3 -3
- package/esm2020/cms/modules/federated/federated.module.mjs +4 -4
- package/esm2020/cms/modules/migrations/migrations.module.mjs +4 -4
- package/esm2020/cms/modules/migrations/services/migrations.service.mjs +3 -3
- package/esm2020/cms/modules/runtime/runtime.module.mjs +4 -4
- package/esm2020/cms/modules/runtime/services/compilation.service.mjs +3 -3
- package/esm2020/cms/modules/runtime/services/runtime-editor.service.mjs +3 -3
- package/esm2020/cms/modules/runtime/services/runtime.service.mjs +3 -3
- package/esm2020/cms/plugins/configuration.plugin.mjs +3 -3
- package/esm2020/cms/plugins/element-hover.plugin.mjs +3 -3
- package/esm2020/cms/plugins/io.plugin.mjs +8 -7
- package/esm2020/cms/plugins/page.plugin.mjs +3 -3
- package/esm2020/cms/plugins/region.plugin.mjs +3 -3
- package/esm2020/cms/plugins/script.plugin.mjs +3 -3
- package/esm2020/cms/services/element-context.service.mjs +3 -3
- package/esm2020/cms/services/integration.state.mjs +3 -3
- package/esm2020/cms/services/io-provider.service.mjs +3 -3
- package/esm2020/cms/services/resources.service.mjs +3 -3
- package/esm2020/cms/services/templates.service.mjs +3 -3
- package/esm2020/cms/utils/element.utils.mjs +10 -3
- package/esm2020/cms/utils/elements-resolver.mjs +2 -2
- package/esm2020/cms/vendor-map.mjs +3 -2
- package/esm2020/core/core.module.mjs +7 -6
- package/esm2020/core/directives/directives.module.mjs +4 -4
- package/esm2020/core/directives/primeng-calendar.directive.mjs +3 -3
- package/esm2020/core/modules/configuration/configuration.module.mjs +4 -4
- package/esm2020/core/modules/configuration/services/configuration-runtime.service.mjs +11 -14
- package/esm2020/core/modules/configuration/services/configuration.service.mjs +28 -9
- package/esm2020/core/modules/configuration/services/configuration.state.mjs +3 -3
- package/esm2020/core/modules/configuration/services/runtime-context.service.mjs +9 -9
- package/esm2020/core/modules/flow-configuration/flow-configuration.module.mjs +4 -4
- package/esm2020/core/modules/flow-configuration/services/flow-configuration.service.mjs +3 -3
- package/esm2020/core/modules/flow-configuration/services/flow-update.service.mjs +7 -14
- package/esm2020/core/modules/flow-configuration/types/update.types.mjs +1 -1
- package/esm2020/core/pipes/action-code.pipe.mjs +20 -0
- package/esm2020/core/pipes/date.pipe.mjs +3 -3
- package/esm2020/core/pipes/index.mjs +2 -1
- package/esm2020/core/pipes/number.pipe.mjs +3 -3
- package/esm2020/core/pipes/pipes.module.mjs +8 -7
- package/esm2020/core/pipes/price.pipe.mjs +3 -3
- package/esm2020/core/services/context.service.mjs +17 -5
- package/esm2020/core/services/metric-calculation/metric-calculation.service.mjs +3 -3
- package/esm2020/core/services/product-images.service.mjs +3 -3
- package/esm2020/core/services/quote-draft.service.mjs +3 -3
- package/esm2020/core/services/runtime-settings.service.mjs +20 -5
- package/esm2020/core/types/formatting-settings.types.mjs +1 -1
- package/esm2020/src/components/dialog/dialog.component.mjs +3 -3
- package/esm2020/src/components/dialog/dialog.module.mjs +4 -4
- package/esm2020/src/components/doc-gen/doc-gen.component.mjs +11 -15
- package/esm2020/src/components/doc-gen/doc-gen.module.mjs +4 -4
- package/esm2020/src/components/guided-selling/guided-selling.component.mjs +10 -13
- package/esm2020/src/components/guided-selling/guided-selling.module.mjs +4 -4
- package/esm2020/src/components/header/cart-overlay/cart-preview.component.mjs +3 -3
- package/esm2020/src/components/header/cart-overlay/cart-preview.module.mjs +4 -4
- package/esm2020/src/components/header/header.component.mjs +4 -4
- package/esm2020/src/components/header/header.module.mjs +4 -4
- package/esm2020/src/components/header/metrics/metrics.component.mjs +4 -4
- package/esm2020/src/components/header/metrics/metrics.module.mjs +4 -4
- package/esm2020/src/flow-routing.module.mjs +5 -22
- package/esm2020/src/flow.component.mjs +11 -9
- package/esm2020/src/flow.module.mjs +4 -4
- package/esm2020/src/guards/context.guard.mjs +3 -3
- package/esm2020/src/guards/product-unload.guard.mjs +7 -4
- package/esm2020/src/guards/root.guard.mjs +3 -3
- package/esm2020/src/pages/assets/assets.component.mjs +3 -3
- package/esm2020/src/pages/assets/assets.module.mjs +4 -4
- package/esm2020/src/pages/catalog/catalog.component.mjs +3 -3
- package/esm2020/src/pages/catalog/catalog.module.mjs +4 -4
- package/esm2020/src/pages/debug/debug.component.mjs +3 -3
- package/esm2020/src/pages/debug/debug.module.mjs +4 -4
- package/esm2020/src/pages/empty-account/empty-account.component.mjs +3 -3
- package/esm2020/src/pages/empty-account/empty-account.module.mjs +4 -4
- package/esm2020/src/pages/product/product.component.mjs +5 -6
- package/esm2020/src/pages/product/product.module.mjs +4 -4
- package/esm2020/src/pages/record-not-found/record-not-found.component.mjs +3 -3
- package/esm2020/src/pages/record-not-found/record-not-found.module.mjs +4 -4
- package/esm2020/src/pages/remote/remote.component.mjs +8 -9
- package/esm2020/src/pages/remote/remote.module.mjs +4 -4
- package/esm2020/src/pages/shopping-cart/shopping-cart.component.mjs +3 -3
- package/esm2020/src/pages/shopping-cart/shopping-cart.module.mjs +4 -4
- package/esm2020/src/resolvers/flow.resolver.mjs +3 -3
- package/esm2020/src/resolvers/quote.resolver.mjs +3 -3
- package/esm2020/src/services/doc-gen.service.mjs +3 -3
- package/esm2020/src/services/flow-dialog.service.mjs +3 -3
- package/esm2020/src/services/flow-router.service.mjs +5 -5
- package/esm2020/src/services/flow.service.mjs +13 -5
- package/esm2020/src/services/guided-selling.service.mjs +3 -3
- package/fesm2015/veloceapps-sdk-cms.mjs +123 -114
- package/fesm2015/veloceapps-sdk-cms.mjs.map +1 -1
- package/fesm2015/veloceapps-sdk-core.mjs +1053 -1000
- package/fesm2015/veloceapps-sdk-core.mjs.map +1 -1
- package/fesm2015/veloceapps-sdk.mjs +226 -367
- package/fesm2015/veloceapps-sdk.mjs.map +1 -1
- package/fesm2020/veloceapps-sdk-cms.mjs +123 -114
- package/fesm2020/veloceapps-sdk-cms.mjs.map +1 -1
- package/fesm2020/veloceapps-sdk-core.mjs +578 -527
- package/fesm2020/veloceapps-sdk-core.mjs.map +1 -1
- package/fesm2020/veloceapps-sdk.mjs +223 -368
- package/fesm2020/veloceapps-sdk.mjs.map +1 -1
- package/package.json +3 -11
- package/src/components/doc-gen/doc-gen.component.d.ts +3 -6
- package/src/components/guided-selling/guided-selling.component.d.ts +2 -4
- package/src/flow-routing.module.d.ts +6 -7
- package/src/flow.component.d.ts +3 -2
- package/src/guards/product-unload.guard.d.ts +2 -2
- package/esm2020/runtime/components/component-preview/component-preview.component.mjs +0 -125
- package/esm2020/runtime/components/index.mjs +0 -5
- package/esm2020/runtime/components/section-renderer/section-renderer.component.mjs +0 -67
- package/esm2020/runtime/components/ui-runtime/runtime.component.mjs +0 -440
- package/esm2020/runtime/components/ui-runtime-preview/runtime-preview.component.mjs +0 -108
- package/esm2020/runtime/execution/components/children-placeholder/children-placeholder.component.mjs +0 -60
- package/esm2020/runtime/execution/components/context-provider/context-provider.component.mjs +0 -39
- package/esm2020/runtime/execution/components/execution-section-renderer/execution-section-renderer.component.mjs +0 -67
- package/esm2020/runtime/execution/components/federated/federated.component.mjs +0 -74
- package/esm2020/runtime/execution/components/velo-attribute/velo-attribute.component.mjs +0 -60
- package/esm2020/runtime/execution/components/velo-multiselect/velo-multiselect.component.mjs +0 -130
- package/esm2020/runtime/execution/components/velo-port-checkbox/velo-port-checkbox.component.mjs +0 -72
- package/esm2020/runtime/execution/components/velo-port-dropdown/velo-port-dropdown.component.mjs +0 -97
- package/esm2020/runtime/execution/components/velo-port-radio/velo-port-radio.component.mjs +0 -142
- package/esm2020/runtime/execution/components/velo-type/velo-type.component.mjs +0 -119
- package/esm2020/runtime/execution/directives/section-script.directive.mjs +0 -247
- package/esm2020/runtime/execution/directives/sf-query.directive.mjs +0 -35
- package/esm2020/runtime/execution/directives/velo-attribute.directive.mjs +0 -88
- package/esm2020/runtime/execution/directives/velo-port.directive.mjs +0 -376
- package/esm2020/runtime/execution/directives/vl-approval.directive.mjs +0 -23
- package/esm2020/runtime/execution/directives/vl-document-attachments.directive.mjs +0 -36
- package/esm2020/runtime/execution/directives/vl-document-templates.directive.mjs +0 -60
- package/esm2020/runtime/execution/directives/vl-quote.directive.mjs +0 -42
- package/esm2020/runtime/execution/directives/vl-ramp.directive.mjs +0 -55
- package/esm2020/runtime/execution/runtime-execution.module.mjs +0 -133
- package/esm2020/runtime/execution/utils/federated.util.mjs +0 -32
- package/esm2020/runtime/index.mjs +0 -5
- package/esm2020/runtime/runtime.module.mjs +0 -74
- package/esm2020/runtime/services/cart.service.mjs +0 -29
- package/esm2020/runtime/services/collapsible-state.service.mjs +0 -34
- package/esm2020/runtime/services/configuration.service.mjs +0 -119
- package/esm2020/runtime/services/current-state.service.mjs +0 -17
- package/esm2020/runtime/services/form-scope.service.mjs +0 -30
- package/esm2020/runtime/services/index.mjs +0 -4
- package/esm2020/runtime/services/product-model-cache.service.mjs +0 -31
- package/esm2020/runtime/services/runtime-context.service.mjs +0 -60
- package/esm2020/runtime/services/runtime-form.service.mjs +0 -219
- package/esm2020/runtime/services/runtime.service.mjs +0 -115
- package/esm2020/runtime/services/section-helper.service.mjs +0 -27
- package/esm2020/runtime/services/section-scope.service.mjs +0 -36
- package/esm2020/runtime/services/section-store.service.mjs +0 -22
- package/esm2020/runtime/services/section.service.mjs +0 -117
- package/esm2020/runtime/types/bound-data.types.mjs +0 -7
- package/esm2020/runtime/types/index.mjs +0 -3
- package/esm2020/runtime/types/quote-states.types.mjs +0 -2
- package/esm2020/runtime/types/runtime.types.mjs +0 -2
- package/esm2020/runtime/types/script-registry.types.mjs +0 -51
- package/esm2020/runtime/utils/line-item.util.mjs +0 -270
- package/esm2020/runtime/utils/section.utils.mjs +0 -26
- package/esm2020/runtime/utils/sections-binder.helper.mjs +0 -105
- package/esm2020/runtime/veloceapps-sdk-runtime.mjs +0 -5
- package/esm2020/src/pages/legacy-product/legacy-product.component.mjs +0 -137
- package/esm2020/src/pages/legacy-product/legacy-product.module.mjs +0 -19
- package/fesm2015/veloceapps-sdk-runtime.mjs +0 -3770
- package/fesm2015/veloceapps-sdk-runtime.mjs.map +0 -1
- package/fesm2020/veloceapps-sdk-runtime.mjs +0 -3767
- package/fesm2020/veloceapps-sdk-runtime.mjs.map +0 -1
- package/runtime/README.md +0 -5
- package/runtime/components/component-preview/component-preview.component.d.ts +0 -27
- package/runtime/components/index.d.ts +0 -4
- package/runtime/components/section-renderer/section-renderer.component.d.ts +0 -25
- package/runtime/components/ui-runtime/runtime.component.d.ts +0 -53
- package/runtime/components/ui-runtime-preview/runtime-preview.component.d.ts +0 -27
- package/runtime/execution/components/children-placeholder/children-placeholder.component.d.ts +0 -30
- package/runtime/execution/components/context-provider/context-provider.component.d.ts +0 -14
- package/runtime/execution/components/execution-section-renderer/execution-section-renderer.component.d.ts +0 -25
- package/runtime/execution/components/federated/federated.component.d.ts +0 -36
- package/runtime/execution/components/velo-attribute/velo-attribute.component.d.ts +0 -19
- package/runtime/execution/components/velo-multiselect/velo-multiselect.component.d.ts +0 -35
- package/runtime/execution/components/velo-port-checkbox/velo-port-checkbox.component.d.ts +0 -22
- package/runtime/execution/components/velo-port-dropdown/velo-port-dropdown.component.d.ts +0 -22
- package/runtime/execution/components/velo-port-radio/velo-port-radio.component.d.ts +0 -28
- package/runtime/execution/components/velo-type/velo-type.component.d.ts +0 -31
- package/runtime/execution/directives/section-script.directive.d.ts +0 -59
- package/runtime/execution/directives/sf-query.directive.d.ts +0 -15
- package/runtime/execution/directives/velo-attribute.directive.d.ts +0 -26
- package/runtime/execution/directives/velo-port.directive.d.ts +0 -74
- package/runtime/execution/directives/vl-approval.directive.d.ts +0 -10
- package/runtime/execution/directives/vl-document-attachments.directive.d.ts +0 -15
- package/runtime/execution/directives/vl-document-templates.directive.d.ts +0 -33
- package/runtime/execution/directives/vl-quote.directive.d.ts +0 -14
- package/runtime/execution/directives/vl-ramp.directive.d.ts +0 -15
- package/runtime/execution/runtime-execution.module.d.ts +0 -25
- package/runtime/execution/utils/federated.util.d.ts +0 -6
- package/runtime/index.d.ts +0 -4
- package/runtime/runtime.module.d.ts +0 -16
- package/runtime/services/cart.service.d.ts +0 -15
- package/runtime/services/collapsible-state.service.d.ts +0 -15
- package/runtime/services/configuration.service.d.ts +0 -20
- package/runtime/services/current-state.service.d.ts +0 -8
- package/runtime/services/form-scope.service.d.ts +0 -20
- package/runtime/services/index.d.ts +0 -3
- package/runtime/services/product-model-cache.service.d.ts +0 -14
- package/runtime/services/runtime-context.service.d.ts +0 -16
- package/runtime/services/runtime-form.service.d.ts +0 -24
- package/runtime/services/runtime.service.d.ts +0 -44
- package/runtime/services/section-helper.service.d.ts +0 -8
- package/runtime/services/section-scope.service.d.ts +0 -14
- package/runtime/services/section-store.service.d.ts +0 -11
- package/runtime/services/section.service.d.ts +0 -30
- package/runtime/types/bound-data.types.d.ts +0 -13
- package/runtime/types/index.d.ts +0 -2
- package/runtime/types/quote-states.types.d.ts +0 -6
- package/runtime/types/runtime.types.d.ts +0 -19
- package/runtime/types/script-registry.types.d.ts +0 -13
- package/runtime/utils/line-item.util.d.ts +0 -34
- package/runtime/utils/section.utils.d.ts +0 -2
- package/runtime/utils/sections-binder.helper.d.ts +0 -16
- package/src/pages/legacy-product/legacy-product.component.d.ts +0 -37
- package/src/pages/legacy-product/legacy-product.module.d.ts +0 -9
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"veloceapps-sdk.mjs","sources":["../../../../libs/sdk/src/constants.ts","../../../../libs/sdk/src/components/dialog/dialog.component.ts","../../../../libs/sdk/src/components/dialog/dialog.component.html","../../../../libs/sdk/src/components/dialog/dialog.module.ts","../../../../libs/sdk/src/types/flow-customization.types.ts","../../../../libs/sdk/src/services/doc-gen.service.ts","../../../../libs/sdk/src/components/doc-gen/doc-gen.component.ts","../../../../libs/sdk/src/components/doc-gen/doc-gen.component.html","../../../../libs/sdk/src/components/doc-gen/doc-gen.module.ts","../../../../libs/sdk/src/services/guided-selling.service.ts","../../../../libs/sdk/src/components/guided-selling/guided-selling.component.ts","../../../../libs/sdk/src/components/guided-selling/guided-selling.component.html","../../../../libs/sdk/src/components/guided-selling/guided-selling.module.ts","../../../../libs/sdk/src/services/flow-router.service.ts","../../../../libs/sdk/src/components/header/cart-overlay/cart-preview.component.ts","../../../../libs/sdk/src/components/header/cart-overlay/cart-preview.component.html","../../../../libs/sdk/src/components/header/cart-overlay/cart-preview.module.ts","../../../../libs/sdk/src/services/flow-dialog.service.ts","../../../../libs/sdk/src/components/header/metrics/metrics.definitions.ts","../../../../libs/sdk/src/components/header/metrics/metrics.component.ts","../../../../libs/sdk/src/components/header/metrics/metrics.component.html","../../../../libs/sdk/src/components/header/header.component.ts","../../../../libs/sdk/src/components/header/header.component.html","../../../../libs/sdk/src/components/header/metrics/metrics.module.ts","../../../../libs/sdk/src/components/header/header.module.ts","../../../../libs/sdk/src/services/flow.service.ts","../../../../libs/sdk/src/flow.component.ts","../../../../libs/sdk/src/flow.component.html","../../../../libs/sdk/src/utils/flow.utils.ts","../../../../libs/sdk/src/guards/context.guard.ts","../../../../libs/sdk/src/guards/product-unload.guard.ts","../../../../libs/sdk/src/guards/root.guard.ts","../../../../libs/sdk/src/pages/assets/assets.component.ts","../../../../libs/sdk/src/pages/assets/assets.component.html","../../../../libs/sdk/src/pages/assets/assets.module.ts","../../../../libs/sdk/src/pages/catalog/catalog.component.ts","../../../../libs/sdk/src/pages/catalog/catalog.component.html","../../../../libs/sdk/src/pages/catalog/catalog.module.ts","../../../../libs/sdk/src/pages/debug/debug.component.ts","../../../../libs/sdk/src/pages/debug/debug.component.html","../../../../libs/sdk/src/pages/debug/debug.module.ts","../../../../libs/sdk/src/pages/empty-account/empty-account.component.ts","../../../../libs/sdk/src/pages/empty-account/empty-account.component.html","../../../../libs/sdk/src/pages/empty-account/empty-account.module.ts","../../../../libs/sdk/src/pages/legacy-product/legacy-product.component.ts","../../../../libs/sdk/src/pages/legacy-product/legacy-product.component.html","../../../../libs/sdk/src/pages/legacy-product/legacy-product.module.ts","../../../../libs/sdk/src/pages/product/product.component.ts","../../../../libs/sdk/src/pages/product/product.component.html","../../../../libs/sdk/src/pages/product/product.module.ts","../../../../libs/sdk/src/pages/record-not-found/record-not-found.component.ts","../../../../libs/sdk/src/pages/record-not-found/record-not-found.component.html","../../../../libs/sdk/src/pages/record-not-found/record-not-found.module.ts","../../../../libs/sdk/src/pages/remote/remote.component.ts","../../../../libs/sdk/src/pages/remote/remote.component.html","../../../../libs/sdk/src/pages/remote/remote.module.ts","../../../../libs/sdk/src/pages/shopping-cart/shopping-cart.component.ts","../../../../libs/sdk/src/pages/shopping-cart/shopping-cart.component.html","../../../../libs/sdk/src/pages/shopping-cart/shopping-cart.module.ts","../../../../libs/sdk/src/resolvers/flow.resolver.ts","../../../../libs/sdk/src/resolvers/quote.resolver.ts","../../../../libs/sdk/src/flow-routing.module.ts","../../../../libs/sdk/src/flow.module.ts","../../../../libs/sdk/veloceapps-sdk.ts"],"sourcesContent":["export const VELOCE_FLOW_ROOT_ROUTE = 'VELOCE_FLOW_ROOT_ROUTE';\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\nimport { FlowDialogConfig } from './dialog.types';\n\n@Component({\n selector: 'vl-flow-dialog',\n templateUrl: './dialog.component.html',\n styleUrls: ['./dialog.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FlowDialogComponent {\n public config: FlowDialogConfig;\n\n constructor(private dialogConfig: DynamicDialogConfig, private ref: DynamicDialogRef) {\n this.config = this.dialogConfig.data.config;\n }\n\n public cancelHandler(): void {\n if (this.config.oppositeButtonActions) {\n this.ref.close(true);\n } else {\n this.ref.close();\n }\n }\n\n public confirmHandler(): void {\n if (this.config.oppositeButtonActions) {\n this.ref.close();\n } else {\n this.ref.close(true);\n }\n }\n}\n","<div class=\"header\">\n <div class=\"title\">\n {{ config.title }}\n </div>\n\n <i class=\"vl-icon vl-cross\" (click)=\"cancelHandler()\"></i>\n</div>\n\n<div *ngIf=\"config.description\" class=\"description\">\n {{ config.description }}\n</div>\n\n<div class=\"form-actions\">\n <p-button\n *ngIf=\"config.secondaryButton\"\n styleClass=\"p-button-outlined button-text-bold\"\n [label]=\"config.secondaryButton!\"\n (onClick)=\"cancelHandler()\"\n ></p-button>\n <p-button\n styleClass=\"p-button p-button-filled\"\n [label]=\"config.primaryButton\"\n (onClick)=\"confirmHandler()\"\n ></p-button>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ButtonModule } from 'primeng/button';\nimport { FlowDialogComponent } from './dialog.component';\n\n@NgModule({\n declarations: [FlowDialogComponent],\n imports: [CommonModule, ButtonModule],\n exports: [FlowDialogComponent],\n})\nexport class FlowDialogModule {}\n","import { InjectionToken } from '@angular/core';\nimport { TemplateComponentWithAttachments, UIDefinitionContainer } from '@veloceapps/core';\nimport { Observable } from 'rxjs';\n\nexport const FLOW_CUSTOMIZATION = new InjectionToken<FlowCustomization>('FLOW_CUSTOMIZATION');\n\nexport interface FlowCustomization {\n getUiDefinition?(productId: string): Observable<UIDefinitionContainer | null>;\n getLegacyUiDefinition?(productId: string): Observable<UIDefinitionContainer | null>;\n getShoppingCartComponent?(templateName: string): Observable<TemplateComponentWithAttachments | null>;\n getCatalogComponent?(templateName: string): Observable<TemplateComponentWithAttachments | null>;\n getAssetsComponent?(templateName: string): Observable<TemplateComponentWithAttachments | null>;\n\n getTemplateComponent?(templateName: string): Observable<TemplateComponentWithAttachments | null>;\n}\n","import { Injectable } from '@angular/core';\nimport { FlowAction, IntegrationState } from '@veloceapps/sdk/cms';\nimport { BehaviorSubject, Subject, takeUntil, tap } from 'rxjs';\n\n@Injectable()\nexport class FlowDocGenService {\n private cleanup$ = new Subject<void>();\n private isVisibleSubj$ = new BehaviorSubject(false);\n\n public isVisible$ = this.isVisibleSubj$.asObservable();\n\n constructor(private integrationState: IntegrationState) {\n this.initSubscriptions();\n }\n\n public cleanup(): void {\n this.cleanup$.next();\n }\n\n private initSubscriptions(): void {\n this.integrationState\n .listen$(FlowAction.FLOW_OPEN_DOC_GEN)\n .pipe(\n tap(() => this.isVisibleSubj$.next(true)),\n takeUntil(this.cleanup$),\n )\n .subscribe();\n\n this.integrationState\n .listen$(FlowAction.FLOW_CLOSE_DOC_GEN)\n .pipe(\n tap(() => this.isVisibleSubj$.next(false)),\n takeUntil(this.cleanup$),\n )\n .subscribe();\n }\n}\n","import { ChangeDetectionStrategy, Component, Inject, OnDestroy, Optional } from '@angular/core';\nimport { UITemplatesApiService } from '@veloceapps/api';\nimport { ToastService, ToastType } from '@veloceapps/components';\nimport {\n ComponentAttachments,\n TemplateComponent,\n UIDefinition,\n UITemplate,\n UITemplateComponentType,\n UITemplateType,\n} from '@veloceapps/core';\nimport { extendElementMetadata, extractElementMetadata } from '@veloceapps/sdk/cms';\nimport { ContextService, QuoteDraftService } from '@veloceapps/sdk/core';\nimport { BehaviorSubject, Observable, Subject, catchError, first, map, of, switchMap, takeUntil, tap } from 'rxjs';\nimport { FlowDocGenService } from '../../services/doc-gen.service';\nimport { FLOW_CUSTOMIZATION, FlowCustomization } from '../../types';\n\n@Component({\n selector: 'vl-flow-doc-gen',\n templateUrl: './doc-gen.component.html',\n styleUrls: ['./doc-gen.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DocGenComponent implements OnDestroy {\n public uiDefinition$ = new BehaviorSubject<UIDefinition | null>(null);\n public isVisible$: Observable<boolean>;\n\n private templateApiName = '';\n private destroy$ = new Subject<void>();\n\n constructor(\n private quoteDraftService: QuoteDraftService,\n private contextService: ContextService,\n private templatesApi: UITemplatesApiService,\n private docGenService: FlowDocGenService,\n private toastService: ToastService,\n @Optional() @Inject(FLOW_CUSTOMIZATION) private customizationService?: FlowCustomization,\n ) {\n this.isVisible$ = this.docGenService.isVisible$;\n\n // initialize when quote draft requested\n this.quoteDraftService.quoteDraft$\n .pipe(\n first(),\n tap(() => this.initialize()),\n takeUntil(this.destroy$),\n )\n .subscribe();\n }\n\n public ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n private initialize(): void {\n this.templateApiName = this.contextService.resolve().properties.docGenTemplateApiName ?? '';\n\n this.generateUIDefinition$()\n .pipe(\n tap(uiDef => {\n if (!uiDef) {\n throw new Error(`Component with name '${this.templateApiName}' not found.`);\n }\n\n this.uiDefinition$.next(uiDef);\n }),\n catchError(err => {\n const message = 'Failed to resolve DocGen component. ' + (err.message ?? '');\n this.toastService.add({ severity: ToastType.error, summary: message, sticky: true });\n return of();\n }),\n takeUntil(this.destroy$),\n )\n .subscribe();\n }\n\n private getTemplateRootComponent$(template: UITemplate): Observable<TemplateComponent | undefined> {\n return this.templatesApi\n .fetchComponents$(template.id)\n .pipe(map(components => components.find(c => c.type === UITemplateComponentType.ROOT) ?? undefined));\n }\n\n private getLocalTemplateComponentMeta$(): Observable<ComponentAttachments | undefined> {\n if (!this.customizationService?.getTemplateComponent) {\n return of(undefined);\n }\n\n return this.customizationService?.getTemplateComponent(this.templateApiName).pipe(\n map(component => {\n if (!component) {\n return;\n }\n\n return <ComponentAttachments>{\n html: component.html,\n css: component.css,\n js: component.js,\n json: component.json,\n };\n }),\n );\n }\n\n private getDocGenComponentMeta$(): Observable<ComponentAttachments | undefined> {\n return this.templatesApi.fetchTemplates$().pipe(\n map<UITemplate[], UITemplate | undefined>(templates => {\n const template = templates.find(\n template => template.type === UITemplateType.DOCGEN && template.name === this.templateApiName,\n );\n return template ?? templates[0];\n }),\n switchMap(template => (template ? this.getTemplateRootComponent$(template) : of(undefined))),\n switchMap(component =>\n component ? this.templatesApi.fetchComponentAttachments$(component.uiTemplateId, component) : of(undefined),\n ),\n );\n }\n\n private generateUIDefinition$(): Observable<UIDefinition | undefined> {\n return of(undefined).pipe(\n tap(() => {\n if (!this.templateApiName) {\n throw new Error(\"Flow Query parameter 'docGenTemplateApiName' is missing.\");\n }\n }),\n switchMap(() => this.getLocalTemplateComponentMeta$()),\n switchMap(meta => (meta ? of(meta) : this.getDocGenComponentMeta$())),\n map(meta => {\n if (!meta) {\n return;\n }\n\n const headerId = this.contextService.resolve().properties.Id ?? null;\n let script = meta.js;\n\n if (script) {\n const metadata = extractElementMetadata(script);\n script = extendElementMetadata(script, {\n inputs: {\n ...metadata.inputs,\n Id: headerId ? `\"${headerId}\"` : null,\n },\n });\n }\n\n const uiDef: UIDefinition = {\n name: '',\n createdTimestamp: 0,\n primary: true,\n type: 'DEFAULT',\n version: 2,\n children: [\n {\n children: [],\n template: meta.html && btoa(meta.html),\n script: script && btoa(script),\n styles: meta.css && btoa(meta.css),\n },\n ],\n };\n\n return uiDef;\n }),\n );\n }\n}\n","<ng-container *ngIf=\"isVisible$ | async\">\n <ng-container *ngIf=\"uiDefinition$ | async as uiDefinition\">\n <vl-cms-preview [uiDefinition]=\"uiDefinition\"></vl-cms-preview>\n </ng-container>\n</ng-container>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { PreviewModule } from '@veloceapps/sdk/cms';\nimport { DocGenComponent } from './doc-gen.component';\n\n@NgModule({\n declarations: [DocGenComponent],\n imports: [CommonModule, PreviewModule],\n exports: [DocGenComponent],\n})\nexport class DocGenModule {}\n","import { Injectable } from '@angular/core';\nimport { FlowAction, IntegrationState } from '@veloceapps/sdk/cms';\nimport { BehaviorSubject, Subject, takeUntil, tap } from 'rxjs';\n\n@Injectable()\nexport class FlowGuidedSellingService {\n private cleanup$ = new Subject<void>();\n private isVisibleSubj$ = new BehaviorSubject(true);\n\n public isVisible$ = this.isVisibleSubj$.asObservable();\n\n constructor(private integrationState: IntegrationState) {\n this.initSubscriptions();\n }\n\n public cleanup(): void {\n this.cleanup$.next();\n }\n\n private initSubscriptions(): void {\n this.integrationState\n .listen$(FlowAction.OPEN_GUIDED_SELLING)\n .pipe(\n tap(() => this.isVisibleSubj$.next(true)),\n takeUntil(this.cleanup$),\n )\n .subscribe();\n\n this.integrationState\n .listen$(FlowAction.CLOSE_GUIDED_SELLING)\n .pipe(\n tap(() => this.isVisibleSubj$.next(false)),\n takeUntil(this.cleanup$),\n )\n .subscribe();\n }\n}\n","import { ChangeDetectionStrategy, Component, Inject, OnDestroy, Optional } from '@angular/core';\nimport { UITemplatesApiService } from '@veloceapps/api';\nimport { ToastService, ToastType } from '@veloceapps/components';\nimport {\n ComponentAttachments,\n TemplateComponent,\n UIDefinition,\n UITemplate,\n UITemplateComponentType,\n UITemplateType,\n} from '@veloceapps/core';\nimport { ContextService, QuoteDraftService } from '@veloceapps/sdk/core';\nimport { BehaviorSubject, Observable, Subject, catchError, first, map, of, switchMap, takeUntil, tap } from 'rxjs';\nimport { FlowGuidedSellingService } from '../../services/guided-selling.service';\nimport { FLOW_CUSTOMIZATION, FlowCustomization } from '../../types';\n\n@Component({\n selector: 'vl-flow-guided-selling',\n templateUrl: './guided-selling.component.html',\n styleUrls: ['./guided-selling.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class GuidedSellingComponent implements OnDestroy {\n public uiDefinition$ = new BehaviorSubject<UIDefinition | null>(null);\n\n private templateApiName = '';\n private destroy$ = new Subject<void>();\n\n constructor(\n private quoteDraftService: QuoteDraftService,\n private contextService: ContextService,\n private templatesApi: UITemplatesApiService,\n private guidedSellingService: FlowGuidedSellingService,\n private toastService: ToastService,\n @Optional() @Inject(FLOW_CUSTOMIZATION) private customizationService?: FlowCustomization,\n ) {\n // initialize when quote draft requested\n this.quoteDraftService.quoteDraft$\n .pipe(\n first(),\n tap(() => this.initialize()),\n takeUntil(this.destroy$),\n )\n .subscribe();\n }\n\n public ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n private initialize(): void {\n this.templateApiName = this.contextService.resolve().properties.guidedSellingTemplateApiName ?? '';\n\n this.generateUIDefinition$()\n .pipe(\n tap(uiDef => {\n if (!uiDef) {\n throw new Error(`Component with name '${this.templateApiName}' not found.`);\n }\n\n this.uiDefinition$.next(uiDef);\n }),\n catchError(err => {\n const message = 'Failed to resolve Guided Selling component. ' + (err.message ?? '');\n this.toastService.add({ severity: ToastType.error, summary: message, sticky: true });\n return of();\n }),\n takeUntil(this.destroy$),\n )\n .subscribe();\n }\n\n private getTemplateRootComponent$(template: UITemplate): Observable<TemplateComponent | undefined> {\n return this.templatesApi\n .fetchComponents$(template.id)\n .pipe(map(components => components.find(c => c.type === UITemplateComponentType.ROOT) ?? undefined));\n }\n\n private getLocalTemplateComponentMeta$(): Observable<ComponentAttachments | undefined> {\n if (!this.customizationService?.getTemplateComponent) {\n return of(undefined);\n }\n\n return this.customizationService?.getTemplateComponent(this.templateApiName).pipe(\n map(component => {\n if (!component) {\n return;\n }\n\n return <ComponentAttachments>{\n html: component.html,\n css: component.css,\n js: component.js,\n json: component.json,\n };\n }),\n );\n }\n\n private getGuidedSellingComponentMeta$(): Observable<ComponentAttachments | undefined> {\n return this.templatesApi.fetchTemplates$().pipe(\n map<UITemplate[], UITemplate | undefined>(templates => {\n const template = templates.find(\n template => template.type === UITemplateType.GUIDED_SELLING && template.name === this.templateApiName,\n );\n return template ?? templates[0];\n }),\n switchMap(template => (template ? this.getTemplateRootComponent$(template) : of(undefined))),\n switchMap(component =>\n component ? this.templatesApi.fetchComponentAttachments$(component.uiTemplateId, component) : of(undefined),\n ),\n );\n }\n\n private generateUIDefinition$(): Observable<UIDefinition | undefined> {\n return of(undefined).pipe(\n tap(() => {\n if (!this.templateApiName) {\n throw new Error(\"Flow Query parameter 'guidedSellingTemplateApiName' is missing.\");\n }\n }),\n switchMap(() => this.getLocalTemplateComponentMeta$()),\n switchMap(meta => (meta ? of(meta) : this.getGuidedSellingComponentMeta$())),\n map(meta => {\n if (!meta) {\n return;\n }\n\n const uiDef: UIDefinition = {\n name: '',\n createdTimestamp: 0,\n primary: true,\n type: 'DEFAULT',\n version: 2,\n children: [\n {\n children: [],\n template: meta.html && btoa(meta.html),\n script: meta.js && btoa(meta.js),\n styles: meta.css && btoa(meta.css),\n },\n ],\n };\n\n return uiDef;\n }),\n );\n }\n}\n","<ng-container *ngIf=\"uiDefinition$ | async as uiDefinition\">\n <vl-cms-preview [uiDefinition]=\"uiDefinition\"></vl-cms-preview>\n</ng-container>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { PreviewModule } from '@veloceapps/sdk/cms';\nimport { GuidedSellingComponent } from './guided-selling.component';\n\n@NgModule({\n declarations: [GuidedSellingComponent],\n imports: [CommonModule, PreviewModule],\n exports: [GuidedSellingComponent],\n})\nexport class GuidedSellingModule {}\n","import { Injectable } from '@angular/core';\nimport {\n ActivatedRoute,\n ActivatedRouteSnapshot,\n Event,\n NavigationCancel,\n NavigationEnd,\n NavigationError,\n NavigationStart,\n Params,\n Router,\n} from '@angular/router';\nimport { SalesforceIdUtils } from '@veloceapps/core';\nimport { FlowAction, IntegrationState } from '@veloceapps/sdk/cms';\nimport { ContextService } from '@veloceapps/sdk/core';\nimport { Observable, distinctUntilChanged, filter, map, shareReplay, startWith } from 'rxjs';\nimport { VELOCE_FLOW_ROOT_ROUTE } from '../constants';\nimport { RouteWithId } from '../types/route.types';\n\n@Injectable({ providedIn: 'root' })\nexport class FlowRouterService {\n private routeChange$: Observable<Event>;\n private lastChildParams$: Observable<Params>;\n private lastChildRoute$: Observable<ActivatedRouteSnapshot>;\n private urlHistory: string[] = [];\n\n public loading$: Observable<boolean>;\n\n constructor(\n private router: Router,\n private route: ActivatedRoute,\n private contextService: ContextService,\n private integrationState: IntegrationState,\n ) {\n this.routeChange$ = this.router.events.pipe(\n filter(e => e instanceof NavigationEnd),\n shareReplay(),\n );\n\n this.lastChildParams$ = this.watchLastChildParams$(this.route).pipe(\n startWith(this.getLastChildParams(this.route.snapshot)),\n shareReplay(),\n );\n this.lastChildRoute$ = this.watchLastChildRoute$(this.route).pipe(\n startWith(this.getLastChildRouteSnapshot(this.route.snapshot)),\n shareReplay(),\n );\n\n this.loading$ = this.router.events.pipe(\n filter(\n e =>\n e instanceof NavigationStart ||\n e instanceof NavigationCancel ||\n e instanceof NavigationEnd ||\n e instanceof NavigationError,\n ),\n map(e => e instanceof NavigationStart),\n startWith(false),\n distinctUntilChanged(),\n );\n\n this.routeChange$.subscribe(() => {\n this.urlHistory.push(this.router.url);\n\n // Close Guided Selling when user navigates to another flow page\n this.integrationState.dispatch(FlowAction.CloseGuidedSelling({ keepState: true }));\n });\n }\n\n public getFlowRootRoute(route: ActivatedRouteSnapshot): ActivatedRouteSnapshot | undefined {\n const path = [...route.pathFromRoot];\n\n while (path.length) {\n const parent = path.pop();\n\n if (!parent) {\n break;\n }\n\n if ((parent.routeConfig as RouteWithId)?.id === VELOCE_FLOW_ROOT_ROUTE) {\n return parent;\n }\n }\n\n return;\n }\n\n public getFlowRootPath(route: ActivatedRouteSnapshot): string {\n const rootRoute = this.getFlowRootRoute(route);\n if (!rootRoute) {\n return '';\n }\n\n const path = rootRoute.pathFromRoot\n .map(r => r.routeConfig?.path)\n .filter(Boolean)\n .join('/');\n\n return '/' + path;\n }\n\n public get route$(): Observable<ActivatedRouteSnapshot> {\n return this.lastChildRoute$;\n }\n\n public get params$(): Observable<Params> {\n return this.lastChildParams$;\n }\n\n public getLastChildRoute = (route: ActivatedRoute): ActivatedRoute => {\n return route.firstChild ? this.getLastChildRoute(route.firstChild) : route;\n };\n\n public getNthChildRoute = (route: ActivatedRoute, index: number): ActivatedRoute => {\n if (index <= 0) {\n return route;\n }\n\n return route.firstChild ? this.getNthChildRoute(route.firstChild, index - 1) : route;\n };\n\n public getLastChildRouteSnapshot = (route: ActivatedRouteSnapshot): ActivatedRouteSnapshot => {\n return route.firstChild ? this.getLastChildRouteSnapshot(route.firstChild) : route;\n };\n\n public watchLastChildRoute$ = (route: ActivatedRoute): Observable<ActivatedRouteSnapshot> => {\n return this.routeChange$.pipe(map(() => this.getLastChildRouteSnapshot(route.snapshot)));\n };\n\n public getLastChildParams = (route: ActivatedRouteSnapshot): Params => {\n return route.firstChild ? this.getLastChildParams(route.firstChild) : route.params;\n };\n\n public watchLastChildParams$ = (route: ActivatedRoute): Observable<Params> => {\n return this.routeChange$.pipe(map(() => this.getLastChildParams(route.snapshot)));\n };\n\n public getFlowSubpath$ = (): Observable<string> => {\n return this.route$.pipe(\n map(route => {\n const url = route.url.join('/');\n const flowRootUrl = this.getFlowRootPath(route);\n return url.replace(flowRootUrl, '');\n }),\n );\n };\n\n public isConfigurationRoute$(): Observable<boolean> {\n return this.getFlowSubpath$().pipe(map(url => url.startsWith('product')));\n }\n\n public isCartRoute$(): Observable<boolean> {\n return this.getFlowSubpath$().pipe(map(url => url.startsWith('cart')));\n }\n\n public isCatalogRoute$(): Observable<boolean> {\n return this.getFlowSubpath$().pipe(map(url => url.startsWith('catalog')));\n }\n\n public isAssetsRoute$(): Observable<boolean> {\n return this.getFlowSubpath$().pipe(map(url => url.startsWith('assets')));\n }\n\n public navigateBack(): void {\n const prevUrl = this.urlHistory[this.urlHistory.length - 2];\n\n if (prevUrl) {\n this.router.navigateByUrl(prevUrl);\n }\n }\n\n public navigateToProductConfiguration(productId: string, lineItemId?: string): void {\n this.contextService.update({ properties: { productId, lineItemId } });\n\n const routeSnapshot = this.getLastChildRouteSnapshot(this.route.snapshot);\n const flowRouteUrl = this.getFlowRootPath(routeSnapshot);\n\n this.router.navigate([flowRouteUrl, 'product'], {\n queryParams: { ...routeSnapshot.queryParams, productId },\n });\n }\n\n public navigateToShoppingCart(): void {\n const routeSnapshot = this.getLastChildRouteSnapshot(this.route.snapshot);\n const flowRouteUrl = this.getFlowRootPath(routeSnapshot);\n\n this.router.navigate([flowRouteUrl, 'cart'], { queryParams: routeSnapshot.queryParams });\n }\n\n public navigateToCatalog(): void {\n const routeSnapshot = this.getLastChildRouteSnapshot(this.route.snapshot);\n const flowRouteUrl = this.getFlowRootPath(routeSnapshot);\n\n this.router.navigate([flowRouteUrl, 'catalog'], { queryParams: routeSnapshot.queryParams });\n }\n\n public navigateToAssets(): void {\n const routeSnapshot = this.getLastChildRouteSnapshot(this.route.snapshot);\n const flowRouteUrl = this.getFlowRootPath(routeSnapshot);\n\n this.router.navigate([flowRouteUrl, 'assets'], { queryParams: routeSnapshot.queryParams });\n }\n\n public switchObject(id: string): void {\n const routeSnapshot = this.getLastChildRouteSnapshot(this.route.snapshot);\n const route = this.getLastChildRoute(this.route);\n\n const objName = SalesforceIdUtils.getSfObjectNameById(id);\n\n const queryParams = {\n quoteId: objName === 'Quote' ? id : undefined,\n accountId: objName === 'Account' ? id : undefined,\n orderId: objName === 'Order' ? id : undefined,\n };\n this.router.navigate([], { relativeTo: route, queryParams: { ...routeSnapshot.queryParams, ...queryParams } });\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n Input,\n OnChanges,\n OnDestroy,\n SimpleChanges,\n ViewChild,\n} from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { FlowConfigurationService, ProductImagesService, QuoteDraftService } from '@veloceapps/sdk/core';\nimport { OverlayPanel } from 'primeng/overlaypanel';\nimport { BehaviorSubject, Observable, Subject, combineLatest, filter, map, takeUntil } from 'rxjs';\nimport { FlowRouterService } from '../../../services/flow-router.service';\nimport { HeaderProduct } from '../header.types';\n\n@Component({\n selector: 'vl-cart-preview',\n templateUrl: './cart-preview.component.html',\n styleUrls: ['./cart-preview.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CartPreviewComponent implements OnChanges, AfterViewInit, OnDestroy {\n @ViewChild(OverlayPanel) public overlayPanel!: OverlayPanel;\n\n @Input() public products!: HeaderProduct[];\n\n public readonly productRowHeight = 65;\n\n public form = new FormGroup({});\n public lockedProductId$: Observable<string | null>;\n public isEditMode$: Observable<boolean>;\n public hasTermInProducts = false;\n public scrollHeight = 0;\n\n private shouldUpdate$ = new BehaviorSubject(true);\n private destroyed$ = new Subject<void>();\n\n constructor(\n private flowConfiguration: FlowConfigurationService,\n private routerService: FlowRouterService,\n private productImagesService: ProductImagesService,\n private quoteDraftService: QuoteDraftService,\n ) {\n this.lockedProductId$ = combineLatest([this.routerService.route$, this.routerService.isConfigurationRoute$()]).pipe(\n map(([route, isConfigurationRoute]) => {\n if (!isConfigurationRoute) {\n return null;\n }\n\n return route.queryParams['productId'];\n }),\n );\n\n this.isEditMode$ = this.quoteDraftService.isEditMode$();\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n const { products } = changes;\n\n if (products) {\n this.shouldUpdate$.next(true);\n this.scrollHeight = Math.min(this.products.length * this.productRowHeight, 460);\n }\n }\n\n public ngAfterViewInit(): void {\n combineLatest([this.lockedProductId$, this.isEditMode$, this.shouldUpdate$, this.overlayPanel.onShow])\n .pipe(\n filter(() => this.overlayPanel.overlayVisible),\n takeUntil(this.destroyed$),\n )\n .subscribe(([lockedProductId, isEditMode]) => this.updateControls(this.products, isEditMode, lockedProductId));\n }\n\n public ngOnDestroy(): void {\n this.destroyed$.next();\n this.destroyed$.complete();\n }\n\n public getImageUrl(productId: string): Observable<string | null> {\n return this.productImagesService.getImageUrl$(productId);\n }\n\n public navigateToProductConfiguration(productId: string, lineItemId: string): void {\n this.overlayPanel.hide();\n this.routerService.navigateToProductConfiguration(productId, lineItemId);\n }\n\n public controlBlurHandler(product: HeaderProduct): void {\n const control = this.form.get(product.id);\n if (!control || control.invalid) {\n return;\n }\n\n this.flowConfiguration.update([\n {\n dataType: 'LINEITEM',\n attributeType: 'QTY',\n id: product.id,\n newValue: control.value,\n },\n ]);\n }\n\n public deleteHandler(product: HeaderProduct): void {\n this.flowConfiguration.delete([product.id]);\n }\n\n public deleteAllHandler(): void {\n const productIds = this.products.map(product => product.id);\n this.flowConfiguration.delete(productIds);\n }\n\n private updateControls(products: HeaderProduct[], isEditMode: boolean, lockedProductId: string | null): void {\n const ids: string[] = [];\n\n products.forEach(item => {\n if (!item.id) {\n return;\n }\n\n ids.push(item.id);\n\n let control = this.form.get(item.id);\n\n if (!control) {\n control = new FormControl(item.qty, []);\n this.form.addControl(item.id, control);\n } else {\n control.setValue(item.qty);\n }\n\n if (!isEditMode || item.deleted || item.productId === lockedProductId) {\n control.disable();\n } else {\n control.enable();\n }\n });\n\n const removedIds = Object.keys(this.form.controls).filter(id => !ids.includes(id));\n removedIds.forEach(id => this.form.removeControl(id));\n this.hasTermInProducts = products.some((item: HeaderProduct) => item.hasTerm);\n }\n}\n","<p-overlayPanel\n styleClass=\"catalog-overlay flow-header-overlay center no-padding\"\n showTransitionOptions=\"0ms\"\n hideTransitionOptions=\"0ms\"\n>\n <ng-template pTemplate>\n <div class=\"flow-header-overlay__wrapper\" *vlLet=\"lockedProductId$ | async as lockedProductId\">\n <ng-container *vlLet=\"isEditMode$ | async as isEditMode\">\n <ng-container *ngIf=\"products.length > 0; else empty\">\n <h2 class=\"flow-header-overlay__title\">\n <span>Products ({{ products.length }})</span>\n <i class=\"vl-icon vl-cross close-icon\" (click)=\"overlayPanel.hide()\"></i>\n </h2>\n\n <p-virtualScroller [value]=\"products\" scrollHeight=\"{{ scrollHeight }}px\" [itemSize]=\"productRowHeight\">\n <ng-template pTemplate=\"item\" let-product>\n <div\n class=\"product item\"\n *vlLet=\"!isEditMode || product.deleted as isReadonlyProduct\"\n [class.readonly]=\"isReadonlyProduct\"\n [class.deleted]=\"product.deleted\"\n >\n <ng-container *vlLet=\"lockedProductId === product.productId as isLockedProduct\">\n <div class=\"product__info\">\n <div class=\"product__image-wrapper\">\n <div\n *ngIf=\"getImageUrl(product.productId) | async as imageUrl; else noImage\"\n class=\"product__image\"\n [ngStyle]=\"{ 'background-image': 'url(' + imageUrl + ')' }\"\n ></div>\n </div>\n <div class=\"flex flex-column justify-content-center\">\n <div class=\"word-break product-name\" [class.line-through]=\"product.deleted\">\n {{ product.name }}\n </div>\n <div class=\"actions\" *ngIf=\"!isReadonlyProduct\">\n <p-button\n label=\"Configure\"\n [disabled]=\"isLockedProduct || !product.configurable || product.hasTerm\"\n styleClass=\"p-button-link p-button-sm\"\n (onClick)=\"navigateToProductConfiguration(product.productId, product.id)\"\n ></p-button>\n <p-button\n label=\"Delete\"\n [disabled]=\"isLockedProduct || product.hasTerm\"\n styleClass=\"p-button-link p-button-sm p-button-secondary\"\n (onClick)=\"deleteHandler(product)\"\n ></p-button>\n </div>\n </div>\n </div>\n\n <ng-container *ngIf=\"form.get(product.id) as control\">\n <div class=\"qty\" *ngIf=\"!isReadonlyProduct; else readonlyQty\">\n <vl-quantity-control\n [formControl]=\"$any(control)\"\n (valueChange)=\"controlBlurHandler(product)\"\n ></vl-quantity-control>\n </div>\n <ng-template #readonlyQty\n ><span class=\"text-right\">{{ control.value }}</span></ng-template\n >\n </ng-container>\n </ng-container>\n </div>\n </ng-template>\n </p-virtualScroller>\n\n <ng-template #noImage>\n <i class=\"vl-icon vl-no-image no-image-icon\"></i>\n </ng-template>\n\n <div class=\"flex footer\">\n <p-button\n label=\"Clear Cart\"\n styleClass=\"p-button-link p-button-sm pl-0 pr-0\"\n [disabled]=\"!isEditMode || !!lockedProductId || hasTermInProducts\"\n (onClick)=\"deleteAllHandler()\"\n ></p-button>\n </div>\n </ng-container>\n </ng-container>\n\n <ng-template #empty>\n <h2 class=\"flow-header-overlay__title\">\n <span>Empty Cart</span>\n <i class=\"vl-icon vl-cross close-icon\" (click)=\"overlayPanel.hide()\"></i>\n </h2>\n\n <span class=\"empty-state\">\n <i class=\"vl-icon vl-bag\"></i>\n There are no products added to the Shopping Cart yet.\n </span>\n </ng-template>\n </div>\n </ng-template>\n</p-overlayPanel>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { LetDirectiveModule, QuantityControlModule } from '@veloceapps/components';\nimport { ButtonModule } from 'primeng/button';\nimport { InputNumberModule } from 'primeng/inputnumber';\nimport { OverlayPanelModule } from 'primeng/overlaypanel';\nimport { VirtualScrollerModule } from 'primeng/virtualscroller';\nimport { CartPreviewComponent } from './cart-preview.component';\n\n@NgModule({\n declarations: [CartPreviewComponent],\n imports: [\n CommonModule,\n ReactiveFormsModule,\n ButtonModule,\n OverlayPanelModule,\n LetDirectiveModule,\n InputNumberModule,\n VirtualScrollerModule,\n QuantityControlModule,\n ],\n exports: [CartPreviewComponent],\n})\nexport class CartPreviewModule {}\n","import { Injectable } from '@angular/core';\nimport { ContextService } from '@veloceapps/sdk/core';\nimport { DialogService } from 'primeng/dynamicdialog';\nimport { Observable } from 'rxjs';\nimport { FlowDialogComponent } from '../components/dialog/dialog.component';\nimport { FlowDialogConfig } from '../components/dialog/dialog.types';\n\n@Injectable()\nexport class FlowDialogService {\n constructor(private dialogService: DialogService, private contextService: ContextService) {}\n\n public show(config: FlowDialogConfig): Observable<boolean> {\n return this.dialogService.open(FlowDialogComponent, {\n dismissableMask: true,\n closeOnEscape: true,\n closable: true,\n showHeader: false,\n width: '320px',\n data: { config },\n styleClass: 'flow-dialog',\n }).onClose;\n }\n\n public showEmptyCartDialog(): Observable<boolean> {\n return this.show({\n title: 'No Products in Quote',\n description: 'There are no products in your Quote. To save a Quote, add at least one product.',\n primaryButton: 'Ok',\n });\n }\n\n public showReadonlyModeDialog(): Observable<boolean> {\n const ctx = this.contextService.resolve();\n const objectName = ctx.mode ? ctx.mode[0].toUpperCase() + ctx.mode.substring(1).toLowerCase() : 'Object';\n\n return this.show({\n title: 'Error',\n description: `${objectName} Cannot be Saved`,\n primaryButton: 'Ok',\n });\n }\n\n public showQuoteReadonlyModeDialog(): Observable<boolean> {\n return this.show({\n title: 'Quote Cannot be Saved',\n description:\n 'It is only possible to save quotes with the “Draft” status. Please create a new quote to make and save changes.',\n primaryButton: 'Ok',\n });\n }\n\n public showQuoteOutsideShoppingCartDialog(): Observable<boolean> {\n return this.show({\n title: 'Quote Cannot be Saved',\n description: 'It is only possible to save quotes from the Shopping Cart. To proceed, go to the Shopping Cart.',\n primaryButton: 'Ok',\n });\n }\n\n public showAccountNoChangesDialog(): Observable<boolean> {\n return this.show({\n title: 'No Changes to Save',\n description: 'There are no changes since the last update. Please make changes to proceed.',\n primaryButton: 'Ok',\n });\n }\n\n public showUnsavedChangesDialog(): Observable<boolean> {\n return this.show({\n title: 'Unsaved Changes',\n description: 'Are you sure you want to leave this page and discard your unsaved changes?',\n primaryButton: 'Keep Editing',\n secondaryButton: 'Discard Changes',\n oppositeButtonActions: true,\n });\n }\n\n public showReadonlyQuoteSubmitFailureDialog(): Observable<boolean> {\n return this.show({\n title: 'Cannot Submit for Approval',\n description:\n 'It is only possible to submit for approval quotes with the “Draft“ status. Please create a new quote to proceed.',\n primaryButton: 'Ok',\n });\n }\n\n public showOutsideShoppingCartQuoteSubmitFailureDialog(): Observable<boolean> {\n return this.show({\n title: 'Cannot Submit for Approval',\n description:\n 'It is only possible to submit quotes for approval from the Shopping Cart. To proceed, go to the Shopping Cart.',\n primaryButton: 'Ok',\n });\n }\n\n public showAccountSubmitFailureDialog(): Observable<boolean> {\n return this.show({\n title: 'Save Changes',\n description:\n 'To submit for approval, save the quote first, and then submit it for approval from the Shopping Cart.',\n primaryButton: 'Ok',\n });\n }\n\n public showDocgenAccountUnsavedChangesDialog(): Observable<boolean> {\n return this.show({\n title: 'Save Quote',\n description:\n 'To generate a document, save the quote first, and then generate the document from the Shopping Cart.',\n primaryButton: 'Ok',\n });\n }\n\n public showDocgenReadonlyDialog(): Observable<boolean> {\n return this.show({\n title: 'Document Generation is not Available',\n description:\n 'It is only possible to generate documents for quotes with the “Draft” status. Please create a new quote to generate a document.',\n primaryButton: 'Ok',\n });\n }\n\n public showDocgenOutsideShoppingCartDialog(): Observable<boolean> {\n return this.show({\n title: 'Document Generation is not Available',\n description:\n 'It is only possible to generate documents for quotes from the Shopping Cart. To proceed, go to the Shopping Cart.',\n primaryButton: 'Ok',\n });\n }\n\n public showDocgenUnsavedChangesDialog(): Observable<boolean> {\n return this.show({\n title: 'Unsaved Changes',\n description: 'To generate a document, save the quote first.',\n primaryButton: 'Save and proceed',\n secondaryButton: 'Cancel',\n });\n }\n}\n","export const METRICS_STORAGE_KEY = 'vl-metrics';\n","import { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { FormControl, Validators } from '@angular/forms';\nimport { ShoppingCartSettingsApiService } from '@veloceapps/api';\nimport { LineItem, MetricRule } from '@veloceapps/core';\nimport {\n invalidCharactersValidator,\n requiredValidator,\n reservedIdentifierValidator,\n standardCharSetWithSpaceRegExp,\n} from '@veloceapps/core/forms';\nimport {\n ContextService,\n FlowConfigurationService,\n MetricsCalculationService,\n QuoteDraftService,\n RuntimeSettingsService,\n} from '@veloceapps/sdk/core';\nimport { cloneDeep, uniq } from 'lodash';\nimport { OverlayPanel } from 'primeng/overlaypanel';\nimport { Subject, startWith } from 'rxjs';\nimport { takeUntil, tap, withLatestFrom } from 'rxjs/operators';\nimport { Metric } from '../../../types';\nimport { METRICS_STORAGE_KEY } from './metrics.definitions';\n\n@Component({\n selector: 'vl-metrics',\n templateUrl: './metrics.component.html',\n styleUrls: ['./metrics.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MetricsComponent implements OnInit, OnDestroy {\n @ViewChild(OverlayPanel)\n public overlayPanel!: OverlayPanel;\n\n public emptyStateMetrics = [\n { name: 'MRR', value: 0 },\n { name: 'E.MRR', value: 0 },\n { name: 'NRR', value: 0 },\n { name: 'E.NRR', value: 0 },\n ];\n public visibleSelectedMetrics: Metric[] = [];\n public restSelectedMetrics: Metric[] = [];\n public metrics: Metric[] = [];\n public filteredMetrics: Metric[] = [];\n public editingMetric: Metric | undefined;\n public currencySymbol: string;\n public sidebarVisible = false;\n public searchControl: FormControl = new FormControl('');\n public isFocused = false;\n public nameControl: FormControl = new FormControl('', [\n requiredValidator,\n invalidCharactersValidator(standardCharSetWithSpaceRegExp),\n reservedIdentifierValidator,\n Validators.maxLength(80),\n ]);\n\n private activeMetricRules: MetricRule[] = [];\n private activeMetricRuleNames: Metric[] = [];\n private defaultMetricRuleNames: string[] = [];\n private metricKeys: string[] = [];\n private lastSavedMetrics: Metric[] = [];\n private destroyed$ = new Subject<void>();\n\n constructor(\n private contextService: ContextService,\n private quoteDraftService: QuoteDraftService,\n private cdr: ChangeDetectorRef,\n private metricsCalculationService: MetricsCalculationService,\n private flowConfiguration: FlowConfigurationService,\n private shoppingCartSettingsApiService: ShoppingCartSettingsApiService,\n private runtimeSettings: RuntimeSettingsService,\n ) {\n this.currencySymbol = this.runtimeSettings.getCurrencySettings().symbol;\n }\n\n public ngOnInit(): void {\n this.activeMetricRules = this.flowConfiguration.activeMetricsSnapshot.filter(metricRule =>\n metricRule.metrics.some(metric => !!metric.totalName),\n );\n const activeMetricRuleNames = this.activeMetricRules.map(metricRule => metricRule.title);\n\n this.shoppingCartSettingsApiService\n .getSettingsMap()\n .pipe(\n withLatestFrom(this.quoteDraftService.currentState$),\n tap(([settings, lineItems]) => {\n this.defaultMetricRuleNames = (settings?.DEFAULT_HEADER_METRICS || []).filter(ruleName =>\n activeMetricRuleNames.includes(ruleName),\n );\n this.metricKeys = this.collectMetricKeys(lineItems);\n this.activeMetricRuleNames = this.getActiveMetricRuleNames();\n }),\n takeUntil(this.destroyed$),\n )\n .subscribe(() => {\n this.collectAvailableMetrics();\n });\n\n this.searchControl.valueChanges.pipe(takeUntil(this.destroyed$), startWith('')).subscribe(query => {\n this.filteredMetrics = this.metrics.filter(({ name }) => {\n return (name || '').toLowerCase().includes(query?.toLowerCase());\n });\n });\n\n this.metricsCalculationService.onMetricsUpdate$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => this.cdr.detectChanges());\n }\n\n public ngOnDestroy(): void {\n this.destroyed$.next();\n this.destroyed$.complete();\n }\n\n public toggleOverlay(event: MouseEvent, overlay: OverlayPanel, target: HTMLElement): void {\n event.stopPropagation();\n\n if (this.restSelectedMetrics.length) {\n if (!overlay.overlayVisible) {\n document.dispatchEvent(new Event('click'));\n }\n\n overlay.toggle(event, target);\n } else {\n this.openSidebar();\n }\n }\n\n public openSidebar(): void {\n this.overlayPanel.hide();\n this.sidebarVisible = true;\n }\n\n public closeSidebar(): void {\n this.sidebarVisible = false;\n this.metrics = cloneDeep(this.lastSavedMetrics);\n this.editingMetric = undefined;\n this.searchControl.setValue('');\n }\n\n public getMetricValue(key: string): number {\n const context = this.contextService.resolve();\n if (key.startsWith('Effective_')) {\n const correctKey = key.replace('Effective_', '');\n return this.toNumber(context.properties[correctKey]) - this.toNumber(context.properties[`Previous${correctKey}`]);\n } else {\n return this.metricsCalculationService.getMetricValue(key);\n }\n }\n\n public save(): void {\n localStorage.setItem(METRICS_STORAGE_KEY, JSON.stringify(this.metrics));\n this.setMetrics();\n this.lastSavedMetrics = cloneDeep(this.metrics);\n this.closeSidebar();\n }\n\n public changeMetricOrder(event: CdkDragDrop<string[]>): void {\n moveItemInArray(this.metrics, event.previousIndex, event.currentIndex);\n this.filteredMetrics = this.metrics;\n }\n\n public editMetric(metric: Metric): void {\n if (this.editingMetric && this.nameControl.invalid) {\n return;\n }\n this.editingMetric = metric;\n this.nameControl.setValue(metric.name);\n }\n\n public saveMetric(): void {\n if (this.nameControl.invalid) {\n return;\n }\n if (this.editingMetric) {\n this.editingMetric.name = this.nameControl.value?.trim();\n }\n this.editingMetric = undefined;\n }\n\n public cancelMetric(): void {\n this.editingMetric = undefined;\n }\n\n public resetToDefault(): void {\n this.collectAvailableMetrics(true);\n }\n\n onFocus(): void {\n this.isFocused = true;\n }\n\n onBlur(): void {\n this.isFocused = false;\n }\n\n public clearSearch(event: MouseEvent): void {\n event.stopPropagation();\n this.searchControl.setValue('');\n }\n\n private collectMetricKeys(lineItems: LineItem[]): string[] {\n const keys: string[] = [];\n lineItems.forEach(lineItem => {\n keys.push(...Object.keys(lineItem.totalMetrics || {}));\n keys.push(...this.collectMetricKeys(lineItem.lineItems));\n });\n return uniq(keys);\n }\n\n private setMetrics(): void {\n const metrics = cloneDeep(this.metrics.filter(({ visible }) => visible));\n\n this.visibleSelectedMetrics = metrics.slice(0, 4);\n this.restSelectedMetrics = metrics.slice(4);\n }\n\n private collectAvailableMetrics(resetToDefault = false): void {\n const storedMetrics: Metric[] = JSON.parse(localStorage.getItem(METRICS_STORAGE_KEY) || '[]');\n const metricKeys = this.metricKeys.slice();\n const isDefaultConfiguration = !storedMetrics.length || resetToDefault;\n\n this.metrics = (isDefaultConfiguration ? this.activeMetricRuleNames : storedMetrics).reduce((result, metric) => {\n const metricKeyIndex = metricKeys.findIndex(key => key === metric.key);\n\n if (metricKeyIndex >= 0) {\n metricKeys.splice(metricKeyIndex, 1);\n }\n\n if (isDefaultConfiguration && this.defaultMetricRuleNames.includes(metric.name)) {\n metric.visible = true;\n }\n\n return [...result, metric];\n }, [] as Metric[]);\n\n this.metrics = [\n ...this.metrics,\n ...metricKeys.map(metricKey => {\n return { key: metricKey, name: this.getMetricName(metricKey), visible: false };\n }),\n ];\n\n // sort the metrics by the order of default metric rule names from the shopping cart settings\n this.metrics = this.sortMetrics();\n\n this.metrics = cloneDeep(this.metrics);\n this.searchControl.setValue('');\n\n if (!resetToDefault) {\n this.lastSavedMetrics = cloneDeep(this.metrics);\n this.setMetrics();\n }\n\n this.cdr.markForCheck();\n }\n\n private getMetricName(key: string): string {\n return (\n this.activeMetricRules.find(metricRule => metricRule.metrics.find(metric => metric.totalName === key))?.title ||\n key\n );\n }\n\n private toNumber(value: string | undefined): number {\n return +(value || 0);\n }\n\n private getActiveMetricRuleNames(): Metric[] {\n return this.activeMetricRules.reduce((result, metricRule) => {\n const name = metricRule.title;\n const visible = this.defaultMetricRuleNames.includes(name);\n\n metricRule.metrics.forEach(metric => {\n result.push({\n key: metric.totalName || metric.name,\n name,\n visible,\n });\n });\n\n return result;\n }, [] as Metric[]);\n }\n\n /**\n * Sorts the Metrics array by the order of the default metric rule names from the shopping cart settings.\n * If a metric is included in the list of default metrics, it raises the metric to the top of the metrics array.\n */\n private sortMetrics(): Metric[] {\n return this.metrics.slice().sort((a, b) => {\n const indexA = this.defaultMetricRuleNames.indexOf(a.name);\n const indexB = this.defaultMetricRuleNames.indexOf(b.name);\n\n if (indexA === -1 && indexB === -1) {\n return 0;\n }\n\n if (indexA === -1) {\n return 1;\n }\n\n if (indexB === -1) {\n return -1;\n }\n\n return indexA - indexB;\n });\n }\n}\n","<div class=\"header-metrics\" (click)=\"toggleOverlay($event, overlayPanel, metricsTarget)\">\n <div class=\"metrics\">\n <div *ngFor=\"let metric of visibleSelectedMetrics\" class=\"metric\">\n <span\n class=\"name\"\n [vlHiddenTextTooltip]=\"metric.name\"\n tooltipStyleClass=\"metric-tooltip\"\n tooltipPosition=\"bottom\"\n >\n {{ metric.name }}\n </span>\n <span class=\"filler\"></span>\n <span\n class=\"value\"\n vlHiddenTextTooltip=\"{{ getMetricValue(metric.key) | vlPrice }}\"\n tooltipStyleClass=\"metric-tooltip\"\n tooltipPosition=\"bottom\"\n >\n {{ getMetricValue(metric.key) | vlPrice }}\n </span>\n </div>\n\n <ng-container *ngIf=\"!visibleSelectedMetrics.length\">\n <div *ngFor=\"let metric of emptyStateMetrics\" class=\"metric empty-state-metric\">\n <span\n class=\"name\"\n [vlHiddenTextTooltip]=\"metric.name\"\n tooltipStyleClass=\"metric-tooltip\"\n tooltipPosition=\"bottom\"\n >\n {{ metric.name }}\n </span>\n <span class=\"filler\"></span>\n <span\n class=\"value\"\n vlHiddenTextTooltip=\"{{ metric.value | vlPrice }}\"\n tooltipStyleClass=\"metric-tooltip\"\n tooltipPosition=\"bottom\"\n >\n {{ metric.value | vlPrice }}\n </span>\n </div>\n </ng-container>\n </div>\n\n <div #metricsTarget class=\"metrics-overlay-target\" [class.expanded]=\"overlayPanel?.overlayVisible\">\n <i class=\"vl-icon vl-arrow-down\"></i>\n </div>\n</div>\n\n<p-overlayPanel\n styleClass=\"catalog-overlay metrics-overlay-container right no-padding\"\n showTransitionOptions=\"0ms\"\n hideTransitionOptions=\"0ms\"\n>\n <ng-template pTemplate>\n <div class=\"overlay-metrics\">\n <div *ngFor=\"let metric of restSelectedMetrics\" class=\"metric\">\n <span\n class=\"name\"\n [vlHiddenTextTooltip]=\"metric.name\"\n tooltipStyleClass=\"metric-tooltip\"\n tooltipPosition=\"bottom\"\n >\n {{ metric.name }}\n </span>\n <span class=\"filler\"></span>\n <span\n class=\"value\"\n vlHiddenTextTooltip=\"{{ getMetricValue(metric.key) | vlPrice }}\"\n tooltipStyleClass=\"metric-tooltip\"\n tooltipPosition=\"bottom\"\n >\n {{ getMetricValue(metric.key) | vlPrice }}\n </span>\n </div>\n </div>\n <button class=\"config\" (click)=\"openSidebar()\">\n Metrics Config\n <i class=\"vl-icon vl-arrow-right\"></i>\n </button>\n </ng-template>\n</p-overlayPanel>\n\n<p-sidebar\n [visible]=\"sidebarVisible\"\n (visibleChange)=\"closeSidebar()\"\n position=\"right\"\n [baseZIndex]=\"1000\"\n [style]=\"{ width: '300px' }\"\n>\n <div class=\"container\">\n <div class=\"header\">\n Quote Metrics Config\n <i class=\"vl-icon vl-cross\" (click)=\"closeSidebar()\"></i>\n </div>\n\n <label class=\"search-container\" [class.active]=\"searchControl.value || isFocused\">\n <i class=\"vl-icon vl-search\"></i>\n <input\n data-test-id=\"search\"\n [formControl]=\"searchControl\"\n pInputText\n placeholder=\"Search for metric…\"\n class=\"w-full search-input\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"\n />\n <i *ngIf=\"searchControl.value\" class=\"vl-icon vl-cross\" (click)=\"clearSearch($event)\"></i>\n </label>\n\n <div class=\"content\">\n <div class=\"sidebar-metrics\" cdkDropList (cdkDropListDropped)=\"changeMetricOrder($event)\">\n <div\n *ngFor=\"let metric of filteredMetrics\"\n class=\"sidebar-metric\"\n [class.edit]=\"metric.key === editingMetric?.key\"\n cdkDrag\n [cdkDragDisabled]=\"!!searchControl.value\"\n >\n <div class=\"drag-icon\">\n <i class=\"vl-icon vl-drag\" cdkDragHandle></i>\n </div>\n <ng-container\n [ngTemplateOutlet]=\"metricTemplate\"\n [ngTemplateOutletContext]=\"{ metric: metric }\"\n ></ng-container>\n </div>\n </div>\n\n <div class=\"empty-state\" *ngIf=\"!filteredMetrics.length\">There are no items matching your search criteria</div>\n </div>\n <div class=\"footer\">\n <p-button\n label=\"Reset to Default\"\n styleClass=\"p-button-outlined p-button-sm\"\n (onClick)=\"resetToDefault()\"\n ></p-button>\n <p-button label=\"Save\" styleClass=\"p-button p-button-filled p-button-sm\" (onClick)=\"save()\"></p-button>\n </div>\n </div>\n</p-sidebar>\n\n<ng-template #metricTemplate let-metric=\"metric\">\n <div *ngIf=\"editingMetric?.key !== metric.key\" class=\"preview-state\">\n <p-checkbox\n [ngModel]=\"metric.visible\"\n (ngModelChange)=\"metric.visible = !metric.visible\"\n [binary]=\"true\"\n checkboxIcon=\"vl-icon vl-check\"\n ></p-checkbox>\n <div class=\"title\">{{ metric.name }}</div>\n </div>\n\n <div *ngIf=\"editingMetric?.key === metric.key\" class=\"edit-state\">\n <input data-test-id=\"name\" [formControl]=\"nameControl\" pInputText placeholder=\"Metric name\" class=\"w-full\" />\n <vl-error-tooltip [tooltip]=\"nameControl | error : 'name'\" [visible]=\"!!nameControl.errors\"></vl-error-tooltip>\n </div>\n <div class=\"actions\">\n <div *ngIf=\"editingMetric?.key !== metric.key\" (click)=\"editMetric(metric)\" class=\"action edit\">\n <i class=\"vl-icon vl-edit\"></i>\n </div>\n <div *ngIf=\"editingMetric?.key === metric.key\" (click)=\"cancelMetric()\" class=\"action cancel\">\n <i class=\"vl-icon vl-cross\"></i>\n </div>\n <div *ngIf=\"editingMetric?.key === metric.key\" (click)=\"saveMetric()\" class=\"action save\">\n <i class=\"vl-icon vl-check\"></i>\n </div>\n </div>\n</ng-template>\n","import { ChangeDetectionStrategy, Component, OnDestroy, OnInit } from '@angular/core';\nimport { QuoteApiService, SalesforceApiService } from '@veloceapps/api';\nimport {\n ConfigurationContextMode,\n ContextProperties,\n LineItem,\n PriceList,\n SearchRequest,\n VlWindow,\n} from '@veloceapps/core';\nimport { FlowAction, IntegrationState } from '@veloceapps/sdk/cms';\nimport {\n ContextService,\n FlowConfigurationService,\n QuoteDraftService,\n getOriginParent,\n isLineItemModified,\n} from '@veloceapps/sdk/core';\nimport { MenuItem } from 'primeng/api';\nimport {\n BehaviorSubject,\n Observable,\n Subject,\n combineLatest,\n distinctUntilChanged,\n filter,\n finalize,\n first,\n map,\n noop,\n of,\n switchMap,\n takeUntil,\n tap,\n} from 'rxjs';\nimport { FlowDialogService } from '../../services/flow-dialog.service';\nimport { FlowRouterService } from '../../services/flow-router.service';\nimport { CartPreviewComponent } from './cart-overlay/cart-preview.component';\nimport { HeaderObjectDetails, HeaderProduct } from './header.types';\n\ndeclare const window: VlWindow;\n\n@Component({\n selector: 'vl-flow-header',\n templateUrl: './header.component.html',\n styleUrls: ['./header.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FlowHeaderComponent implements OnInit, OnDestroy {\n public objectName$: Observable<string>;\n public contextProperties$: Observable<ContextProperties>;\n public activePriceList$: Observable<PriceList | null>;\n public isReadonlyMode$: Observable<boolean>;\n public status$: Observable<string>;\n public objectDetails$: Observable<HeaderObjectDetails>;\n public assetsCount$: Observable<number>;\n public products$: Observable<HeaderProduct[]>;\n public isConfigurationRoute$: Observable<boolean>;\n public isCartRoute$: Observable<boolean>;\n public isCatalogRoute$: Observable<boolean>;\n public isAssetsRoute$: Observable<boolean>;\n public isEditMode$: Observable<boolean>;\n public isSaveInProgress$ = new BehaviorSubject(false);\n public isSubmitInProgress$ = new BehaviorSubject(false);\n public dateFormat = 'MM.dd.yyyy';\n\n public assetPriceLists$ = new BehaviorSubject<PriceList[]>([]);\n\n private mode$ = new BehaviorSubject<ConfigurationContextMode>(ConfigurationContextMode.TEST);\n private destroyed$ = new Subject<void>();\n\n constructor(\n private contextService: ContextService,\n private quoteDraftService: QuoteDraftService,\n private quoteApiService: QuoteApiService,\n private sfApiService: SalesforceApiService,\n private flowConfiguration: FlowConfigurationService,\n private routerService: FlowRouterService,\n private dialogService: FlowDialogService,\n private integrationState: IntegrationState,\n ) {\n this.contextProperties$ = this.contextService.resolve$().pipe(map(ctx => ctx.properties));\n this.objectName$ = this.mode$.pipe(map(mode => mode?.toLocaleLowerCase() ?? ''));\n\n this.activePriceList$ = this.quoteDraftService.activePriceList$;\n this.isReadonlyMode$ = this.quoteDraftService.hasProducts$.pipe(map(() => this.isReadonlyMode()));\n this.status$ = this.contextService.resolve$().pipe(map(context => context.properties.Status ?? ''));\n this.isEditMode$ = this.quoteDraftService.isEditMode$();\n\n this.assetsCount$ = this.getAssets$().pipe(map(lineItems => lineItems.length));\n this.products$ = this.getDraftItems$().pipe(map(lineItems => this.generateProducts(lineItems)));\n\n this.isConfigurationRoute$ = this.routerService.isConfigurationRoute$();\n this.isCartRoute$ = this.routerService.isCartRoute$();\n this.isCatalogRoute$ = this.routerService.isCatalogRoute$();\n this.isAssetsRoute$ = this.routerService.isAssetsRoute$();\n this.objectDetails$ = this.getObjectDetails$();\n }\n\n public ngOnInit(): void {\n this.contextService\n .resolve$()\n .pipe(takeUntil(this.destroyed$))\n .subscribe(ctx => this.mode$.next(ctx.mode));\n\n // update assetPriceLists on quoteDraft change in ACCOUNT mode\n this.quoteDraftService.quoteDraft$\n .pipe(\n takeUntil(this.destroyed$),\n filter(() => this.isAccountMode),\n )\n .subscribe(() => this.assetPriceLists$.next(this.quoteDraftService.assetPriceLists));\n }\n\n public ngOnDestroy(): void {\n this.destroyed$.next();\n this.destroyed$.complete();\n }\n\n public get isAccountMode(): boolean {\n return this.mode$.value === ConfigurationContextMode.ACCOUNT;\n }\n\n public get isQuoteMode(): boolean {\n return this.mode$.value === ConfigurationContextMode.QUOTE;\n }\n\n public get isAccountMode$(): Observable<boolean> {\n return this.mode$.pipe(map(mode => mode === ConfigurationContextMode.ACCOUNT));\n }\n\n public get isQuoteMode$(): Observable<boolean> {\n return this.mode$.pipe(map(mode => mode === ConfigurationContextMode.QUOTE));\n }\n\n public getSplitButtonActions(isCartRoute: boolean): MenuItem[] {\n return [\n {\n label: 'Save to Quote',\n command: (): void => {\n this.saveButtonClickHandler(isCartRoute);\n },\n },\n {\n label: 'Quick Save',\n command: (): void => {\n this.saveButtonClickHandler(isCartRoute, true);\n },\n },\n {\n label: 'Generate Document',\n command: (): void => {\n this.docGenButtonClickHandler(isCartRoute);\n },\n },\n {\n label: 'Submit For Approval',\n command: (): void => {\n this.submitButtonClickHandler(isCartRoute);\n },\n },\n ];\n }\n\n public back(objectId?: string): void {\n const targetId = objectId ?? this.contextService.resolve().properties.Id;\n\n if (targetId) {\n window.VELO_BACK_FN.apply(null, [targetId]);\n }\n }\n\n public getSalesforceObjectLink(objectId?: string): string {\n if (!objectId) {\n return '';\n }\n\n return `${window.location.origin}/${objectId}`;\n }\n\n public navigateToShoppingCart(): void {\n if (!this.isReadonlyMode()) {\n this.routerService.navigateToShoppingCart();\n }\n }\n\n public navigateToCatalog(): void {\n if (!this.isReadonlyMode()) {\n this.routerService.navigateToCatalog();\n }\n }\n\n public navigateToAssets(): void {\n if (!this.isReadonlyMode()) {\n this.routerService.navigateToAssets();\n }\n }\n\n public docGenButtonClickHandler(isCartRoute: boolean): void {\n if (this.isAccountMode) {\n if (!this.quoteDraftService.hasUnsavedChanges) {\n this.dialogService.showAccountNoChangesDialog().subscribe();\n } else {\n this.dialogService.showDocgenAccountUnsavedChangesDialog().subscribe();\n }\n return;\n }\n\n if (!this.quoteDraftService.isEditMode()) {\n this.dialogService.showDocgenReadonlyDialog().subscribe();\n return;\n }\n\n if (!isCartRoute) {\n this.dialogService.showDocgenOutsideShoppingCartDialog().subscribe();\n return;\n }\n\n let shouldOpen$ = of(true);\n\n if (this.quoteDraftService.hasUnsavedChanges) {\n shouldOpen$ = this.dialogService.showDocgenUnsavedChangesDialog().pipe(\n switchMap(confirmed => {\n if (!confirmed) {\n return of(false);\n }\n return this.saveQuote$(true).pipe(map(() => true));\n }),\n );\n }\n\n shouldOpen$\n .pipe(\n first(),\n tap(shouldOpen => shouldOpen && this.integrationState.dispatch(FlowAction.OpenDocGenAction())),\n )\n .subscribe();\n }\n\n public saveButtonClickHandler(isCartRoute: boolean, stayOnPage: boolean = false): void {\n if (!this.quoteDraftService.isEditMode()) {\n if (this.isQuoteMode) {\n this.dialogService.showQuoteReadonlyModeDialog().subscribe();\n } else {\n this.dialogService.showReadonlyModeDialog().subscribe();\n }\n return;\n }\n\n if (this.isUpsellQuoteWithoutChanges()) {\n this.dialogService.showAccountNoChangesDialog().subscribe();\n return;\n }\n\n if (this.isAccountMode && !this.quoteDraftService.hasUnsavedChanges) {\n this.dialogService.showAccountNoChangesDialog().subscribe();\n return;\n }\n\n if (!isCartRoute) {\n this.dialogService.showQuoteOutsideShoppingCartDialog().subscribe();\n return;\n }\n\n const lineItems = this.flowConfiguration.getSnapshot();\n\n if (!lineItems.length) {\n this.dialogService.showEmptyCartDialog().subscribe();\n return;\n }\n\n this.saveQuote$(stayOnPage).subscribe();\n }\n\n public submitButtonClickHandler(isCartRoute: boolean): void {\n if (this.isQuoteMode && !this.quoteDraftService.isEditMode()) {\n this.dialogService.showReadonlyQuoteSubmitFailureDialog();\n return;\n }\n\n if (this.isUpsellQuoteWithoutChanges()) {\n this.dialogService.showAccountNoChangesDialog().subscribe();\n return;\n }\n\n if (this.isAccountMode) {\n this.dialogService.showAccountSubmitFailureDialog();\n return;\n }\n\n if (!isCartRoute) {\n this.dialogService.showOutsideShoppingCartQuoteSubmitFailureDialog().subscribe();\n return;\n }\n\n const quoteDraft = this.quoteDraftService.quoteDraft;\n if (!quoteDraft) {\n return;\n }\n\n this.isSubmitInProgress$.next(true);\n\n this.quoteApiService\n .submitQuote(quoteDraft)\n .pipe(\n tap(({ quoteId }) => {\n this.quoteDraftService.hasUnsavedChanges = false;\n this.back(quoteId);\n }),\n finalize(() => this.isSubmitInProgress$.next(false)),\n takeUntil(this.destroyed$),\n )\n .subscribe();\n }\n\n public selectPriceList(priceListId: string): void {\n this.quoteDraftService.updateActivePriceList(priceListId);\n }\n\n public toggleCartOverlay(cart: CartPreviewComponent, event: Event): void {\n event.stopPropagation();\n if (!this.isReadonlyMode()) {\n if (!cart.overlayPanel.overlayVisible) {\n document.dispatchEvent(new Event('click'));\n }\n cart?.overlayPanel.toggle(event);\n }\n }\n\n private saveQuote$(stayOnPage = false): Observable<void> {\n const quoteDraft = this.quoteDraftService.quoteDraftForActivePriceList;\n if (!quoteDraft) {\n return of(undefined);\n }\n\n this.isSaveInProgress$.next(true);\n\n return this.quoteApiService.upsertQuote(quoteDraft).pipe(\n tap(({ quoteId }) => {\n this.quoteDraftService.hasUnsavedChanges = false;\n\n if (!stayOnPage) {\n this.back(quoteId);\n }\n }),\n finalize(() => this.isSaveInProgress$.next(false)),\n map(noop),\n takeUntil(this.destroyed$),\n );\n }\n\n private queryName$(objectName: string, id?: string): Observable<string> {\n if (!id) {\n return of('');\n }\n\n const searchRequest: SearchRequest = {\n count: 1,\n rawCondition: `Id = '${id}'`,\n fields: ['Name'],\n };\n\n return this.sfApiService.query<any>(searchRequest, objectName).pipe(\n map(result => result[0]?.Name ?? ''),\n takeUntil(this.destroyed$),\n );\n }\n\n private getObjectDetails$(): Observable<HeaderObjectDetails> {\n return this.contextService.resolve$().pipe(\n distinctUntilChanged((prevCtx, currCtx) => prevCtx.properties.Id === currCtx.properties.Id),\n map(ctx => {\n const isAccountMode = ctx.mode === ConfigurationContextMode.ACCOUNT;\n const isQuoteMode = ctx.mode === ConfigurationContextMode.QUOTE;\n\n return {\n accountId: isAccountMode ? ctx.properties.Id : ctx.properties.AccountId,\n opportunityId: ctx.properties.OpportunityId,\n quoteId: isQuoteMode ? ctx.properties.Id : undefined,\n quoteName: isQuoteMode ? ctx.properties.Name : undefined,\n quoteNumber: isQuoteMode ? ctx.properties.QuoteNumber : undefined,\n };\n }),\n switchMap(details =>\n combineLatest([\n of(details),\n this.queryName$('Account', details.accountId),\n this.queryName$('Opportunity', details.opportunityId),\n ]),\n ),\n map(([details, accountName, opportunityName]) => ({ ...details, accountName, opportunityName })),\n );\n }\n\n private formatMetric(value?: string): string {\n return (value ? Number(value) : 0).toFixed(2);\n }\n\n public getDraftItems$(): Observable<LineItem[]> {\n return combineLatest([\n this.flowConfiguration.get(),\n this.integrationState.state$.pipe(\n map(state => state.modifiedAssets),\n distinctUntilChanged(),\n ),\n ]).pipe(\n map(([lineItems, modifiedAssets]) => {\n const currentTerms = lineItems.reduce((acc: LineItem[], li) => {\n const assetId = li.assetId || li.openOrderLineItemId;\n const isModified = isLineItemModified(li);\n const currentTerm = getOriginParent(lineItems, li) ?? li;\n\n if (isModified || (assetId && modifiedAssets?.[assetId])) {\n acc.push(currentTerm);\n }\n return acc;\n }, []);\n const uniqCurrentTerms = currentTerms.filter((value, index, array) => array.indexOf(value) === index);\n return uniqCurrentTerms;\n }),\n );\n }\n\n public getAssets$(): Observable<LineItem[]> {\n return this.flowConfiguration\n .get()\n .pipe(map(lineItems => lineItems.filter(li => (!!li.assetId || !!li.openOrderLineItemId) && !li.rampInstanceId)));\n }\n\n private generateProducts(lineItems: LineItem[]): HeaderProduct[] {\n const date = new Date();\n date.setHours(0, 0, 0, 0);\n const now = date.getTime();\n const termParentIds = lineItems.map(li => li.rampInstanceId).filter(Boolean);\n\n const lineItemsRampInstanceIdMap = lineItems.reduce((acc: { [key: string]: LineItem }, li) => {\n acc[li.rampInstanceId ?? ''] = li;\n return acc;\n }, {});\n\n return lineItems.reduce((result: HeaderProduct[], li) => {\n // find main term line item\n if (li.rampInstanceId) {\n return result;\n }\n\n // find current term line item\n let target: LineItem | undefined = li;\n while (target && target.endDate && new Date(target.endDate).getTime() <= now) {\n target = lineItemsRampInstanceIdMap[li.id];\n }\n\n if (target && target.productId) {\n result.push({\n id: target.id,\n productId: target.productId,\n name: target.name,\n configurable: target.properties['#configurable'] === 'true',\n deleted: target.actionCode === 'DELETE',\n hasTerm: termParentIds.includes(target.id),\n qty: target.qty,\n mrr: this.formatMetric(target.properties.VDM_Total_MRR),\n nrr: this.formatMetric(target.properties.VDM_Total_NRR),\n });\n }\n\n return result;\n }, []);\n }\n\n private isReadonlyMode(): boolean {\n return (\n this.quoteDraftService.quoteDraft?.context.properties.mode === ConfigurationContextMode.ACCOUNT &&\n !this.quoteDraftService.hasProducts\n );\n }\n\n private isUpsellQuoteWithoutChanges(): boolean {\n const noUpdates = this.quoteDraftService.activeCurrentState.every(lineItem => lineItem.actionCode === 'EXIST');\n const sameNumberOfProducts =\n this.quoteDraftService.getInitialCurrentState().length === this.quoteDraftService.activeCurrentState.length;\n\n return noUpdates && sameNumberOfProducts;\n }\n}\n","<ng-container *ngIf=\"contextProperties$ | async as contextProperties\">\n <ng-container *ngIf=\"objectDetails$ | async as details\">\n <div class=\"flow-info\">\n <nav class=\"nav-item nav-back\" (click)=\"back()\">\n <i class=\"nav-icon vl-icon vl-icon-back\"></i>\n </nav>\n\n <ng-container *ngIf=\"isAccountMode$ | async\">\n <nav\n class=\"account-name nav-item\"\n [pTooltip]=\"contextProperties.Name ?? ''\"\n tooltipPosition=\"bottom\"\n [showDelay]=\"1000\"\n >\n <a target=\"_blank\" [href]=\"getSalesforceObjectLink(contextProperties.Id)\">{{ contextProperties.Name }}</a>\n </nav>\n </ng-container>\n\n <ng-container *ngIf=\"isQuoteMode$ | async\">\n <span class=\"nav-item\">Quote #{{ details.quoteNumber }}</span>\n\n <span class=\"dot-separator\"></span>\n\n <nav class=\"nav-item\" (click)=\"quoteDetails.toggle($event)\">\n <span>{{ status$ | async }}</span>\n\n <i *ngIf=\"!quoteDetails.overlayVisible\" class=\"vl-icon vl-arrow-down icon-with-margin\"></i>\n <i *ngIf=\"quoteDetails.overlayVisible\" class=\"vl-icon vl-arrow-up icon-with-margin\"></i>\n </nav>\n\n <p-overlayPanel styleClass=\"catalog-overlay quote-info-overlay\" #quoteDetails>\n <ng-template pTemplate>\n <div class=\"quote-info\">\n <div class=\"title\">\n <span>Quote Information</span>\n <span class=\"close-action\" (click)=\"quoteDetails.hide()\">\n <i class=\"vl-icon vl-cross\"></i>\n </span>\n </div>\n\n <div class=\"details\">\n <div class=\"details-row\">\n <div class=\"label\">Account Name</div>\n <div class=\"value\">\n <a target=\"_blank\" [href]=\"getSalesforceObjectLink(details.accountId)\">\n {{ details.accountName }}\n </a>\n </div>\n </div>\n <div class=\"details-row\">\n <div class=\"label\">Opportunity Name</div>\n <div class=\"value\">\n <a target=\"_blank\" [href]=\"getSalesforceObjectLink(details.opportunityId)\">\n {{ details.opportunityName }}\n </a>\n </div>\n </div>\n <div class=\"details-row\">\n <div class=\"label\">Quote Name</div>\n <div class=\"value\">\n <a target=\"_blank\" [href]=\"getSalesforceObjectLink(details.quoteId)\">\n {{ details.quoteName }}\n </a>\n </div>\n </div>\n <div class=\"details-row\">\n <div class=\"label\">Quote Number</div>\n <div class=\"value\">\n <a target=\"_blank\" [href]=\"getSalesforceObjectLink(details.quoteId)\">\n {{ details.quoteNumber }}\n </a>\n </div>\n </div>\n </div>\n </div>\n </ng-template>\n </p-overlayPanel>\n </ng-container>\n </div>\n\n <div class=\"flow-navigation\">\n <ng-container *vlLet=\"isReadonlyMode$ | async as isReadonlyMode\">\n <nav\n class=\"nav-item\"\n *vlLet=\"assetsCount$ | async as assetsCount\"\n [ngClass]=\"{ active: (isAssetsRoute$ | async), disabled: isReadonlyMode }\"\n (click)=\"navigateToAssets()\"\n >\n Assets\n <div *ngIf=\"assetsCount\" class=\"counter\">{{ assetsCount }}</div>\n </nav>\n <nav\n class=\"nav-item\"\n [ngClass]=\"{ active: (isCatalogRoute$ | async), disabled: isReadonlyMode }\"\n (click)=\"navigateToCatalog()\"\n >\n Catalog\n </nav>\n <nav\n *vlLet=\"isConfigurationRoute$ | async as isConfigurationRoute\"\n class=\"nav-item\"\n [ngClass]=\"{ active: isConfigurationRoute, disabled: !isConfigurationRoute }\"\n >\n Configurator\n </nav>\n <ng-container *vlLet=\"products$ | async as products\">\n <nav\n class=\"nav-item\"\n [ngClass]=\"{ active: (isCartRoute$ | async), disabled: isReadonlyMode }\"\n (click)=\"navigateToShoppingCart()\"\n >\n Shopping Cart\n <div *ngIf=\"products?.length\" class=\"counter\">{{ products?.length }}</div>\n\n <nav\n class=\"nav-popover-toggle\"\n [ngClass]=\"{ active: (isCartRoute$ | async), disabled: isReadonlyMode }\"\n (click)=\"toggleCartOverlay(cart, $event)\"\n >\n <i *ngIf=\"!cart?.overlayPanel?.overlayVisible\" class=\"vl-icon vl-arrow-down icon-with-margin\"></i>\n <i *ngIf=\"cart?.overlayPanel?.overlayVisible\" class=\"vl-icon vl-arrow-up icon-with-margin\"></i>\n </nav>\n </nav>\n\n <vl-cart-preview #cart [products]=\"products ?? []\"></vl-cart-preview>\n </ng-container>\n </ng-container>\n </div>\n\n <div class=\"flow-controls\">\n <ng-container *ngIf=\"(isReadonlyMode$ | async) === false\">\n <ng-container *vlLet=\"activePriceList$ | async as priceList\">\n <div class=\"price-plan\">\n <ng-container *vlLet=\"assetPriceLists$ | async as assetPriceLists\">\n <ng-container\n *ngIf=\"(isAccountMode$ | async) && assetPriceLists && assetPriceLists.length > 1; else singlePriceList\"\n >\n <nav class=\"nav-item\" (click)=\"priceListsOverlay?.toggle($event)\">\n <span>{{ priceList?.name }}</span>\n <i *ngIf=\"!priceListsOverlay?.overlayVisible\" class=\"vl-icon vl-arrow-down icon-with-margin\"></i>\n <i *ngIf=\"priceListsOverlay?.overlayVisible\" class=\"vl-icon vl-arrow-up icon-with-margin\"></i>\n </nav>\n\n <p-overlayPanel styleClass=\"price-list-overlay\" #priceListsOverlay>\n <ng-template pTemplate>\n <span\n *ngFor=\"let option of assetPriceLists\"\n class=\"price-list-option\"\n [class.active]=\"priceList?.id === option.id\"\n (click)=\"selectPriceList(option.id); priceListsOverlay.hide()\"\n >\n {{ option.name }}\n </span>\n </ng-template>\n </p-overlayPanel>\n </ng-container>\n </ng-container>\n\n <ng-template #singlePriceList>\n <div>{{ priceList?.name }}</div>\n </ng-template>\n\n <div *ngIf=\"contextProperties.StartDate\">{{ contextProperties.StartDate | date : dateFormat }}</div>\n </div>\n </ng-container>\n </ng-container>\n\n <vl-metrics></vl-metrics>\n\n <ng-container *vlLet=\"isCartRoute$ | async as isCartRoute\">\n <ng-container *vlLet=\"isReadonlyMode$ | async as isReadonlyMode\">\n <ng-container *vlLet=\"isSaveInProgress$ | async as isSaveInProgress\">\n <ng-container *vlLet=\"isSubmitInProgress$ | async as isSubmitInProgress\">\n <p-splitButton\n *ngIf=\"!isSaveInProgress && !isSubmitInProgress\"\n #splitButton\n label=\"Save to Quote\"\n (onClick)=\"saveButtonClickHandler(isCartRoute === true)\"\n [model]=\"getSplitButtonActions(isCartRoute === true)\"\n [disabled]=\"isReadonlyMode === true\"\n styleClass=\"catalog-split-button p-button-outlined\"\n [class.opened]=\"splitButton?.menu?.visible\"\n icon=\"vl-icon vl-arrow-down\"\n [menuStyle]=\"{ width: '144px' }\"\n >\n </p-splitButton>\n\n <p-button\n *ngIf=\"isSaveInProgress\"\n class=\"save-button\"\n styleClass=\"p-button\"\n label=\"Saving\"\n [loading]=\"true\"\n ></p-button>\n\n <p-button\n *ngIf=\"isSubmitInProgress\"\n class=\"submit-button\"\n styleClass=\"p-button\"\n label=\"Submitting\"\n [loading]=\"true\"\n ></p-button>\n </ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n </ng-container>\n</ng-container>\n","import { DragDropModule } from '@angular/cdk/drag-drop';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { ErrorTooltipModule, HiddenTextTooltipModule, LetDirectiveModule } from '@veloceapps/components';\nimport { SdkPipesModule } from '@veloceapps/sdk/core';\nimport { ButtonModule } from 'primeng/button';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { OverlayPanelModule } from 'primeng/overlaypanel';\nimport { SidebarModule } from 'primeng/sidebar';\nimport { VirtualScrollerModule } from 'primeng/virtualscroller';\nimport { MetricsComponent } from './metrics.component';\n\n@NgModule({\n declarations: [MetricsComponent],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n DragDropModule,\n ButtonModule,\n OverlayPanelModule,\n SidebarModule,\n InputTextModule,\n CheckboxModule,\n LetDirectiveModule,\n VirtualScrollerModule,\n ErrorTooltipModule,\n HiddenTextTooltipModule,\n SdkPipesModule,\n ],\n exports: [MetricsComponent],\n})\nexport class MetricsModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { LetDirectiveModule } from '@veloceapps/components';\nimport { SdkPipesModule } from '@veloceapps/sdk/core';\nimport { ButtonModule } from 'primeng/button';\nimport { OverlayPanelModule } from 'primeng/overlaypanel';\nimport { SplitButtonModule } from 'primeng/splitbutton';\nimport { TooltipModule } from 'primeng/tooltip';\nimport { CartPreviewModule } from './cart-overlay/cart-preview.module';\nimport { FlowHeaderComponent } from './header.component';\nimport { MetricsModule } from './metrics';\n\n@NgModule({\n declarations: [FlowHeaderComponent],\n imports: [\n CommonModule,\n OverlayPanelModule,\n LetDirectiveModule,\n TooltipModule,\n ButtonModule,\n CartPreviewModule,\n SplitButtonModule,\n MetricsModule,\n SdkPipesModule,\n ],\n exports: [FlowHeaderComponent],\n})\nexport class FlowHeaderModule {}\n","import { Injectable } from '@angular/core';\nimport { LineItem } from '@veloceapps/core';\nimport { FlowAction, IntegrationState } from '@veloceapps/sdk/cms';\nimport { ConfigurationService, FlowConfigurationService, QuoteDraftService } from '@veloceapps/sdk/core';\nimport { Subject, map, of, switchMap, takeUntil, tap } from 'rxjs';\nimport { FlowRouterService } from './flow-router.service';\n\n@Injectable()\nexport class FlowService {\n private cleanup$ = new Subject<void>();\n\n constructor(\n private integrationState: IntegrationState,\n private flowRouterService: FlowRouterService,\n private quoteDraftService: QuoteDraftService,\n private configurationService: ConfigurationService,\n private flowConfigurationService: FlowConfigurationService,\n ) {}\n\n public initSubscriptions(): void {\n this.integrationState\n .listen$<{ lineItemId?: string; productId?: string }>(FlowAction.FLOW_CONFIGURE_PRODUCT)\n .pipe(\n tap(payload => {\n const productId =\n payload.productId ??\n this.quoteDraftService.currentState.find(li => li.id === payload.lineItemId)?.productId;\n\n if (productId) {\n this.flowRouterService.navigateToProductConfiguration(productId, payload.lineItemId);\n } else {\n console.warn(\"Parameter 'productId' is needed to start configuration\");\n }\n }),\n takeUntil(this.cleanup$),\n )\n .subscribe();\n\n this.integrationState\n .listen$<{ id: string }>(FlowAction.FLOW_SWITCH_OBJECT)\n .pipe(\n tap(payload => {\n this.flowRouterService.switchObject(payload.id);\n }),\n takeUntil(this.cleanup$),\n )\n .subscribe();\n\n this.integrationState\n .listen$(FlowAction.FLOW_NAVIGATE_BACK)\n .pipe(\n tap(() => this.flowRouterService.navigateBack()),\n takeUntil(this.cleanup$),\n )\n .subscribe();\n\n this.integrationState\n .listen$(FlowAction.FLOW_NAVIGATE_TO_CATALOG)\n .pipe(\n tap(() => this.flowRouterService.navigateToCatalog()),\n takeUntil(this.cleanup$),\n )\n .subscribe();\n\n this.integrationState\n .listen$(FlowAction.FLOW_APPLY_PRODUCT_CONFIGURATION)\n .pipe(\n switchMap(() => {\n const quoteDraft = this.quoteDraftService.quoteDraft;\n const lineItem = this.configurationService.getSnapshot();\n\n if (!quoteDraft || !lineItem) {\n return of(undefined);\n }\n\n const isNewLineItem = quoteDraft.currentState.every(li => li.id !== lineItem.id);\n\n let updatedState: LineItem[];\n if (isNewLineItem) {\n updatedState = [...quoteDraft.currentState, lineItem];\n } else {\n updatedState = quoteDraft.currentState.map(li => (li.id === lineItem.id ? lineItem : li));\n }\n\n return this.flowConfigurationService.calculate$({ ...quoteDraft, currentState: updatedState });\n }),\n tap(() => {\n this.configurationService.hasUnsavedChanges = false;\n this.flowRouterService.navigateToShoppingCart();\n }),\n takeUntil(this.cleanup$),\n )\n .subscribe();\n\n this.updateFlowPath();\n }\n\n public cleanup(): void {\n this.cleanup$.next();\n }\n\n private updateFlowPath(): void {\n this.flowRouterService\n .getFlowSubpath$()\n .pipe(\n map(path => path.split('/')?.[0]),\n takeUntil(this.cleanup$),\n )\n .subscribe(flowPath => this.integrationState.patchState({ flowPath }));\n }\n}\n","import { ChangeDetectionStrategy, Component, OnDestroy, OnInit } from '@angular/core';\nimport { IntegrationState } from '@veloceapps/sdk/cms';\nimport { QuoteDraftService } from '@veloceapps/sdk/core';\nimport { Observable, map } from 'rxjs';\nimport { FlowService } from './services';\nimport { FlowDocGenService } from './services/doc-gen.service';\nimport { FlowRouterService } from './services/flow-router.service';\n\n@Component({\n selector: 'vl-flow',\n templateUrl: './flow.component.html',\n styleUrls: ['./flow.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FlowComponent implements OnInit, OnDestroy {\n public isLoading$: Observable<boolean>;\n public showHeader$: Observable<boolean>;\n public isStandalone$: Observable<boolean>;\n\n constructor(\n private routerService: FlowRouterService,\n private quoteDraftService: QuoteDraftService,\n private flowService: FlowService,\n private docGenService: FlowDocGenService,\n private integrationState: IntegrationState,\n ) {\n this.isLoading$ = this.routerService.loading$;\n\n this.showHeader$ = this.routerService.route$.pipe(\n map(route => route.data['showHeader'] && !this.quoteDraftService.isStandalone),\n );\n\n this.isStandalone$ = this.quoteDraftService.isStandalone$;\n\n this.flowService.initSubscriptions();\n }\n\n public ngOnInit(): void {\n this.integrationState.clear();\n }\n\n public ngOnDestroy(): void {\n this.flowService.cleanup();\n this.docGenService.cleanup();\n }\n}\n","<vl-flow-header *ngIf=\"showHeader$ | async\"></vl-flow-header>\n\n<div class=\"flow-content\">\n <div class=\"loading-overlay\" *ngIf=\"isLoading$ | async\">\n <vl-loader label=\"LOADING\"></vl-loader>\n </div>\n\n <router-outlet></router-outlet>\n\n <vl-flow-guided-selling *ngIf=\"(isStandalone$ | async) !== true\"></vl-flow-guided-selling>\n</div>\n\n<ng-container *ngIf=\"(isStandalone$ | async) !== true\">\n <vl-flow-doc-gen></vl-flow-doc-gen>\n</ng-container>\n","import { ConfigurationContextMode, ContextProperties, FlowProperties, SalesforceIdUtils } from '@veloceapps/core';\n\nexport const getFlowObjectIdPropertyName = (id: string): string => {\n const objectName = SalesforceIdUtils.getSfObjectNameById(id);\n\n switch (objectName) {\n case 'Account':\n return 'accountId';\n case 'Order':\n return 'orderId';\n case 'Quote':\n default:\n return 'quoteId';\n }\n};\n\ninterface DefaultPropertiesFnParams {\n mode?: ConfigurationContextMode;\n flowParams?: FlowProperties;\n}\n\nexport const getDefaultProperties = (params: DefaultPropertiesFnParams): ContextProperties => {\n const properties: ContextProperties = {};\n\n if (params.flowParams?.entryPath.includes('/product') || params.mode === ConfigurationContextMode.REMOTE) {\n properties.standalone = params.flowParams?.queryParams?.['standalone'] ?? 'true';\n }\n\n return properties;\n};\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, CanActivateChild, Router } from '@angular/router';\nimport { ConfigurationContextMode, RpcMessage, VlWindow } from '@veloceapps/core';\nimport { ContextService, RuntimeSettingsService } from '@veloceapps/sdk/core';\nimport { Observable, catchError, forkJoin, from, map, of, tap } from 'rxjs';\nimport { FlowRouterService } from '../services/flow-router.service';\nimport { getDefaultProperties } from '../utils';\n\ndeclare const window: VlWindow;\n\n@Injectable()\nexport class ContextGuard implements CanActivate, CanActivateChild {\n constructor(\n private router: Router,\n private routerService: FlowRouterService,\n private contextService: ContextService,\n private runtimeSettingsService: RuntimeSettingsService,\n ) {}\n\n public checkActivation(route: ActivatedRouteSnapshot): Observable<boolean> {\n const { queryParams } = route;\n const { accountId, quoteId, orderId } = queryParams;\n const rpcMessage = window.RPC_MESSAGE;\n const mode = this.getConfigurationContextMode(accountId, quoteId, orderId, rpcMessage);\n\n // Restrict if mode is not defined\n if (mode == null) {\n return this.handleError(route, 'Mode is undefined');\n }\n\n const headerId = accountId || quoteId || orderId || this.rpcMessageId || 'empty-for-test-mode';\n\n // Allow if context is already initialized with the same headerId\n if (this.contextService.isInitialized) {\n const currentContext = this.contextService.resolve();\n\n if (headerId && currentContext.headerId === headerId) {\n return of(true);\n }\n }\n\n // Initialize context and runtime settings\n return forkJoin([this.contextService.create(headerId, mode), this.runtimeSettingsService.create()]).pipe(\n tap(([context]) => {\n // Update context with queryParams\n this.contextService.update({\n ...context,\n properties: {\n ...context.properties,\n ...(queryParams ?? {}),\n ...getDefaultProperties({ mode }),\n },\n });\n // Init currency settings\n this.runtimeSettingsService.initCurrency(context.properties['CurrencyIsoCode']);\n }),\n map(() => true),\n catchError(e => {\n const message = e instanceof HttpErrorResponse ? e.error.message : e;\n return this.handleError(route, message);\n }),\n );\n }\n\n public canActivate(route: ActivatedRouteSnapshot): Observable<boolean> | Promise<boolean> | boolean {\n return this.checkActivation(route);\n }\n\n public canActivateChild(childRoute: ActivatedRouteSnapshot): Observable<boolean> | Promise<boolean> | boolean {\n return this.checkActivation(childRoute);\n }\n\n private get rpcMessageId(): string | undefined {\n if (!window.RPC_MESSAGE) {\n return;\n }\n\n const rpcMessage: RpcMessage = JSON.parse(window.RPC_MESSAGE);\n const veloceReferenceId = rpcMessage.configuration?.VeloceReferenceId;\n const quoteId = rpcMessage.quote?.Id;\n\n return veloceReferenceId || quoteId;\n }\n\n private getConfigurationContextMode(\n accountId?: string,\n quoteId?: string,\n orderId?: string,\n rpcMessage?: string,\n ): ConfigurationContextMode | undefined {\n if (accountId) {\n return ConfigurationContextMode.ACCOUNT;\n }\n\n if (quoteId) {\n return ConfigurationContextMode.QUOTE;\n }\n\n if (orderId) {\n return ConfigurationContextMode.ORDER;\n }\n\n if (rpcMessage) {\n return ConfigurationContextMode.REMOTE;\n }\n\n return;\n }\n\n private handleError(route: ActivatedRouteSnapshot, message: string): Observable<boolean> {\n this.contextService.delete();\n const parentUrl = this.routerService.getFlowRootPath(route);\n return from(this.router.navigate([parentUrl, '404'], { state: { message } })).pipe(map(() => false));\n }\n}\n","import { Component, Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanDeactivate, Router, RouterStateSnapshot } from '@angular/router';\nimport { ConfigurationService, ContextService, QuoteDraftService } from '@veloceapps/sdk/core';\nimport { Observable, map, of } from 'rxjs';\nimport { FlowDialogService } from '../services/flow-dialog.service';\n\n@Injectable()\nexport class ProductUnloadGuard implements CanDeactivate<any> {\n constructor(\n private router: Router,\n private contextService: ContextService,\n private quoteDraftService: QuoteDraftService,\n private configurationService: ConfigurationService,\n private flowDialogService: FlowDialogService,\n ) {}\n\n public canDeactivate(\n _: Component,\n route: ActivatedRouteSnapshot,\n currentState: RouterStateSnapshot,\n nextState?: RouterStateSnapshot,\n ): Observable<boolean> {\n let observable = of(true);\n\n if (!this.quoteDraftService.isStandalone && this.configurationService.hasUnsavedChanges) {\n observable = this.flowDialogService.showUnsavedChangesDialog();\n }\n\n return observable.pipe(\n map(unload => {\n if (unload) {\n this.configurationService.reset();\n this.contextService.update({ properties: { productId: undefined, lineItemId: undefined } });\n\n if (!nextState || currentState.url === nextState.url) {\n return true;\n }\n\n // clear obsolete queryParams\n const urlTree = this.router.parseUrl(nextState.url);\n delete urlTree.queryParams['productId'];\n\n // replace url after deactivation has finished\n setTimeout(() => this.router.navigateByUrl(urlTree.toString(), { replaceUrl: true }));\n\n return true;\n }\n\n return false;\n }),\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, CanDeactivate, Navigation, Router } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { FlowRouterService } from '../services/flow-router.service';\n\n@Injectable({ providedIn: 'root' })\nexport class RootGuard implements CanActivate, CanDeactivate<any> {\n private initialized = false;\n private navToRestore: Navigation | null = null;\n\n constructor(private router: Router, private routerService: FlowRouterService) {}\n\n public canActivate(route: ActivatedRouteSnapshot): Observable<boolean> | Promise<boolean> | boolean {\n // We always need to initialize root component first, and only then start checking guards/resolvers\n\n if (!this.initialized) {\n this.initialized = true;\n this.navToRestore = this.router.getCurrentNavigation();\n\n const rootUrl = this.routerService.getFlowRootPath(route);\n this.router.navigate([rootUrl], { replaceUrl: !this.navToRestore?.previousNavigation });\n } else if (this.navToRestore) {\n const nav = this.navToRestore;\n setTimeout(() => {\n this.router.navigateByUrl(nav.extractedUrl, nav.extras);\n\n this.navToRestore = null;\n });\n }\n\n return true;\n }\n\n public canDeactivate(): boolean {\n this.initialized = false;\n return true;\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Inject,\n OnDestroy,\n OnInit,\n Optional,\n} from '@angular/core';\nimport { UITemplatesApiService } from '@veloceapps/api';\nimport { ToastService, ToastType } from '@veloceapps/components';\nimport {\n ComponentAttachments,\n TemplateComponent,\n UIDefinition,\n UITemplate,\n UITemplateComponentType,\n} from '@veloceapps/core';\nimport { ContextService } from '@veloceapps/sdk/core';\nimport { BehaviorSubject, Observable, Subject, catchError, map, of, switchMap, takeUntil, tap } from 'rxjs';\nimport { FLOW_CUSTOMIZATION, FlowCustomization } from '../../types';\n\ninterface State {\n loading: boolean;\n failure: boolean;\n}\n\n@Component({\n selector: 'vl-flow-assets',\n templateUrl: './assets.component.html',\n styleUrls: ['./assets.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AssetsComponent implements OnInit, OnDestroy {\n public uiDefinition?: UIDefinition = undefined;\n public state$ = new BehaviorSubject<State>({ loading: true, failure: false });\n\n private templateApiName = '';\n private destroyed$ = new Subject<void>();\n\n constructor(\n private templatesApi: UITemplatesApiService,\n private contextService: ContextService,\n private cdr: ChangeDetectorRef,\n private toastService: ToastService,\n @Optional() @Inject(FLOW_CUSTOMIZATION) private customizationService?: FlowCustomization,\n ) {\n this.templateApiName = this.contextService.resolve().properties['assetsTemplateApiName'] ?? '';\n }\n\n public ngOnInit(): void {\n this.generateUIDefinition$()\n .pipe(\n tap(uiDef => {\n if (!uiDef) {\n throw new Error(`Component with name '${this.templateApiName}' not found.`);\n }\n\n this.uiDefinition = uiDef;\n this.state$.next({ loading: false, failure: false });\n }),\n catchError(err => {\n const message = 'Failed to resolve Assets component. ' + (err.message ?? '');\n this.toastService.add({ severity: ToastType.error, summary: message, sticky: true });\n\n this.uiDefinition = undefined;\n this.state$.next({ loading: false, failure: true });\n return of();\n }),\n takeUntil(this.destroyed$),\n )\n .subscribe(() => this.cdr.detectChanges());\n }\n\n public ngOnDestroy(): void {\n this.destroyed$.next();\n this.destroyed$.complete();\n }\n\n private getTemplateRootComponent$(template: UITemplate): Observable<TemplateComponent | undefined> {\n return this.templatesApi\n .fetchComponents$(template.id)\n .pipe(map(components => components.find(c => c.type === UITemplateComponentType.ROOT) ?? undefined));\n }\n\n private getLocalAssetsComponentMeta$(): Observable<ComponentAttachments | undefined> {\n if (!this.customizationService?.getAssetsComponent) {\n return of(undefined);\n }\n\n return this.customizationService?.getAssetsComponent(this.templateApiName).pipe(\n map(component => {\n if (!component) {\n return;\n }\n\n return <ComponentAttachments>{\n html: component.html,\n css: component.css,\n js: component.js,\n json: component.json,\n };\n }),\n );\n }\n\n private getAssetsComponentMeta$(): Observable<ComponentAttachments | undefined> {\n return this.templatesApi.fetchTemplates$().pipe(\n map<UITemplate[], UITemplate | undefined>(templates =>\n templates.find(template => template.name === this.templateApiName),\n ),\n switchMap(template => (template ? this.getTemplateRootComponent$(template) : of(undefined))),\n switchMap(component =>\n component ? this.templatesApi.fetchComponentAttachments$(component.uiTemplateId, component) : of(undefined),\n ),\n );\n }\n\n private generateUIDefinition$(): Observable<UIDefinition | undefined> {\n return of(undefined).pipe(\n tap(() => {\n if (!this.templateApiName) {\n throw new Error(\"Flow Query parameter 'assetsTemplateApiName' is missing.\");\n }\n }),\n switchMap(() => this.getLocalAssetsComponentMeta$()),\n switchMap(meta => (meta ? of(meta) : this.getAssetsComponentMeta$())),\n map(meta => {\n if (!meta) {\n return;\n }\n\n const uiDef: UIDefinition = {\n name: '',\n createdTimestamp: 0,\n primary: true,\n type: 'DEFAULT',\n version: 2,\n children: [\n {\n children: [],\n template: meta.html && btoa(meta.html),\n script: meta.js && btoa(meta.js),\n styles: meta.css && btoa(meta.css),\n },\n ],\n };\n\n return uiDef;\n }),\n );\n }\n}\n","<ng-container *ngIf=\"state$ | async as state\">\n <vl-loader *ngIf=\"state.loading; else content\" [label]=\"'Loading UI'\"></vl-loader>\n\n <ng-template #content>\n <ng-container *ngIf=\"!state.failure\">\n <vl-cms-preview [uiDefinition]=\"uiDefinition\"></vl-cms-preview>\n </ng-container>\n </ng-template>\n</ng-container>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { LoaderModule } from '@veloceapps/components';\nimport { PreviewModule } from '@veloceapps/sdk/cms';\nimport { AssetsComponent } from './assets.component';\n\n@NgModule({\n declarations: [AssetsComponent],\n imports: [CommonModule, PreviewModule, LoaderModule],\n exports: [AssetsComponent],\n})\nexport class AssetsModule {}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Inject,\n OnDestroy,\n OnInit,\n Optional,\n} from '@angular/core';\nimport { UITemplatesApiService } from '@veloceapps/api';\nimport { ToastService, ToastType } from '@veloceapps/components';\nimport {\n ComponentAttachments,\n TemplateComponent,\n UIDefinition,\n UITemplate,\n UITemplateComponentType,\n} from '@veloceapps/core';\nimport { ContextService } from '@veloceapps/sdk/core';\nimport { BehaviorSubject, Observable, Subject, catchError, map, of, switchMap, takeUntil, tap } from 'rxjs';\nimport { FLOW_CUSTOMIZATION, FlowCustomization } from '../../types';\n\ninterface State {\n loading: boolean;\n failure: boolean;\n}\n\n@Component({\n selector: 'vl-flow-catalog',\n templateUrl: './catalog.component.html',\n styleUrls: ['./catalog.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CatalogComponent implements OnInit, OnDestroy {\n public uiDefinition?: UIDefinition = undefined;\n public state$ = new BehaviorSubject<State>({ loading: true, failure: false });\n\n private templateApiName = '';\n private destroyed$ = new Subject<void>();\n\n constructor(\n private templatesApi: UITemplatesApiService,\n private contextService: ContextService,\n private cdr: ChangeDetectorRef,\n private toastService: ToastService,\n @Optional() @Inject(FLOW_CUSTOMIZATION) private customizationService?: FlowCustomization,\n ) {\n this.templateApiName = this.contextService.resolve().properties.catalogTemplateApiName ?? '';\n }\n\n public ngOnInit(): void {\n this.generateUIDefinition$()\n .pipe(\n tap(uiDef => {\n if (!uiDef) {\n throw new Error(`Component with name '${this.templateApiName}' not found.`);\n }\n\n this.uiDefinition = uiDef;\n this.state$.next({ loading: false, failure: false });\n }),\n catchError(err => {\n const message = 'Failed to resolve Catalog component. ' + (err.message ?? '');\n this.toastService.add({ severity: ToastType.error, summary: message, sticky: true });\n\n this.uiDefinition = undefined;\n this.state$.next({ loading: false, failure: true });\n return of();\n }),\n takeUntil(this.destroyed$),\n )\n .subscribe(() => this.cdr.detectChanges());\n }\n\n public ngOnDestroy(): void {\n this.destroyed$.next();\n this.destroyed$.complete();\n }\n\n private getTemplateRootComponent$(template: UITemplate): Observable<TemplateComponent | undefined> {\n return this.templatesApi\n .fetchComponents$(template.id)\n .pipe(map(components => components.find(c => c.type === UITemplateComponentType.ROOT) ?? undefined));\n }\n\n private getLocalCatalogComponentMeta$(): Observable<ComponentAttachments | undefined> {\n if (!this.customizationService?.getCatalogComponent) {\n return of(undefined);\n }\n\n return this.customizationService?.getCatalogComponent(this.templateApiName).pipe(\n map(component => {\n if (!component) {\n return;\n }\n\n return <ComponentAttachments>{\n html: component.html,\n css: component.css,\n js: component.js,\n json: component.json,\n };\n }),\n );\n }\n\n private getCatalogComponentMeta$(): Observable<ComponentAttachments | undefined> {\n return this.templatesApi.fetchTemplates$().pipe(\n map<UITemplate[], UITemplate | undefined>(templates =>\n templates.find(template => template.name === this.templateApiName),\n ),\n switchMap(template => (template ? this.getTemplateRootComponent$(template) : of(undefined))),\n switchMap(component =>\n component ? this.templatesApi.fetchComponentAttachments$(component.uiTemplateId, component) : of(undefined),\n ),\n );\n }\n\n private generateUIDefinition$(): Observable<UIDefinition | undefined> {\n return of(undefined).pipe(\n tap(() => {\n if (!this.templateApiName) {\n throw new Error(\"Flow Query parameter 'catalogTemplateApiName' is missing.\");\n }\n }),\n switchMap(() => this.getLocalCatalogComponentMeta$()),\n switchMap(meta => (meta ? of(meta) : this.getCatalogComponentMeta$())),\n map(meta => {\n if (!meta) {\n return;\n }\n\n const uiDef: UIDefinition = {\n name: '',\n createdTimestamp: 0,\n primary: true,\n type: 'DEFAULT',\n version: 2,\n children: [\n {\n children: [],\n template: meta.html && btoa(meta.html),\n script: meta.js && btoa(meta.js),\n styles: meta.css && btoa(meta.css),\n },\n ],\n };\n\n return uiDef;\n }),\n );\n }\n}\n","<ng-container *ngIf=\"state$ | async as state\">\n <vl-loader *ngIf=\"state.loading; else content\" [label]=\"'Loading UI'\"></vl-loader>\n\n <ng-template #content>\n <ng-container *ngIf=\"!state.failure\">\n <vl-cms-preview [uiDefinition]=\"uiDefinition\"></vl-cms-preview>\n </ng-container>\n </ng-template>\n</ng-container>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { LoaderModule } from '@veloceapps/components';\nimport { PreviewModule } from '@veloceapps/sdk/cms';\nimport { CatalogComponent } from './catalog.component';\n\n@NgModule({\n declarations: [CatalogComponent],\n imports: [CommonModule, PreviewModule, LoaderModule],\n exports: [CatalogComponent],\n})\nexport class CatalogModule {}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { ActivatedRoute, Params, Router } from '@angular/router';\nimport { FlowsApiService } from '@veloceapps/api';\nimport { FlowProperties } from '@veloceapps/core';\nimport { ContextService, QuoteDraftService } from '@veloceapps/sdk/core';\nimport { Observable, map, shareReplay } from 'rxjs';\nimport { getFlowObjectIdPropertyName } from '../../utils';\n\ninterface FlowPropertiesExt extends FlowProperties {\n queryParamsStr: string;\n}\n\n@Component({\n selector: 'vl-flow-debug',\n templateUrl: './debug.component.html',\n styleUrls: ['./debug.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DebugComponent {\n public form = new FormGroup({\n id: new FormControl(''),\n });\n\n public selectedFlow?: FlowPropertiesExt;\n public flows$: Observable<FlowPropertiesExt[]>;\n\n constructor(\n private flowsApiService: FlowsApiService,\n private router: Router,\n private activatedRoute: ActivatedRoute,\n private context: ContextService,\n private quoteDraftService: QuoteDraftService,\n ) {\n this.flows$ = this.flowsApiService.fetchFlows().pipe(\n map(flows =>\n flows.map<FlowPropertiesExt>(flow => {\n const queryParams: Params = flow?.properties?.queryParams ?? {};\n return {\n id: flow.id,\n entryPath: flow?.properties?.entryPath,\n queryParams,\n queryParamsStr: JSON.stringify(queryParams),\n };\n }),\n ),\n shareReplay(),\n );\n }\n\n public runFlow(): void {\n const { id } = this.form.value;\n const objectPropertyName = id && getFlowObjectIdPropertyName(id);\n\n if (!id || !objectPropertyName || !this.selectedFlow) {\n return;\n }\n\n // Delete context before starting a new flow\n this.context.delete();\n this.quoteDraftService.reset();\n\n this.router.navigate(['..', 'flows'], {\n queryParams: {\n flowId: this.selectedFlow.id,\n [objectPropertyName]: id,\n ...this.selectedFlow.queryParams,\n },\n relativeTo: this.activatedRoute,\n });\n }\n}\n","<form [formGroup]=\"form\">\n <div class=\"fields-container\">\n <div class=\"field\">\n <label>SF Object ID</label>\n <input formControlName=\"id\" pInputText type=\"text\" />\n </div>\n </div>\n\n <p-button\n styleClass=\"p-button-primary\"\n label=\"Run Flow\"\n [disabled]=\"!form.value.id || !selectedFlow\"\n (onClick)=\"runFlow()\"\n ></p-button>\n</form>\n\n<table>\n <thead>\n <tr>\n <th [width]=\"30\"></th>\n <th [width]=\"160\">ID</th>\n <th [width]=\"160\">Entry Path</th>\n <th>QueryParams</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let flow of flows$ | async\" (click)=\"selectedFlow = flow\">\n <td><p-radioButton [inputId]=\"flow.id\" name=\"flow\" [value]=\"flow\" [(ngModel)]=\"selectedFlow\"></p-radioButton></td>\n <td>{{ flow.id }}</td>\n <td>{{ flow.entryPath }}</td>\n <td>{{ flow.queryParamsStr }}</td>\n </tr>\n </tbody>\n</table>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { RouterModule, Routes } from '@angular/router';\nimport { ButtonModule } from 'primeng/button';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { RadioButtonModule } from 'primeng/radiobutton';\nimport { DebugComponent } from './debug.component';\n\nconst routes: Routes = [{ path: '', component: DebugComponent }];\n\n@NgModule({\n declarations: [DebugComponent],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n RouterModule.forChild(routes),\n RadioButtonModule,\n ButtonModule,\n InputTextModule,\n DropdownModule,\n ],\n})\nexport class DebugModule {}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'vl-empty-account',\n templateUrl: './empty-account.component.html',\n styleUrls: ['./empty-account.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class EmptyAccountComponent {}\n","<vl-empty-state\n primaryText=\"No Orders in your Account\"\n secondaryText=\"To proceed, go to the Shopping Cart from a Quote.\"\n>\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"400\" height=\"281\" viewBox=\"0 0 400 281\" fill=\"none\">\n <path d=\"M264.214 26.9277H70.8805V128.186H264.214V26.9277Z\" fill=\"#0466C8\" />\n <path\n d=\"M143 56.5H136.217C128.166 64.4791 120.051 72.5209 112 80.5H118.783C126.834 72.5209 134.949 64.5419 143 56.5Z\"\n fill=\"white\"\n />\n <path\n d=\"M242.932 57.5681V79.4319H128.575L133.724 74.2801L150.429 57.5681H242.932ZM244 56.5H149.989C142.014 64.4791 133.976 72.5209 126 80.5H244V56.5Z\"\n fill=\"white\"\n />\n <path d=\"M129 56.5H81V80.5H104.969C112.958 72.5209 120.948 64.5419 129 56.5Z\" fill=\"white\" />\n <path\n d=\"M82.3 23.2016C82.2366 23.2016 82.1732 23.2644 82.1098 23.2644C81.3494 23.5785 80.5889 23.5785 79.8918 23.2644C79.765 23.2016 79.6383 23.1387 79.4482 23.0759C78.9412 22.7618 78.561 22.322 78.3075 21.7565C77.6104 20.2487 78.1173 18.6151 79.6383 17.8612C81.1592 17.1073 82.9971 17.547 83.6942 19.0549C84.3913 20.6256 83.8843 22.3848 82.3 23.2016Z\"\n fill=\"#B4D1EF\"\n />\n <path\n d=\"M92.2716 23.2016C92.2086 23.2016 92.1457 23.2644 92.0827 23.2644C91.3273 23.5785 90.5718 23.5785 89.8793 23.2644C89.7534 23.2016 89.6275 23.1387 89.4386 23.0759C88.935 22.7618 88.5573 22.322 88.3054 21.7565C87.6129 20.2487 88.1166 18.6151 89.6275 17.8612C91.1384 17.1073 92.9641 17.547 93.6566 19.0549C94.412 20.6256 93.9084 22.3848 92.2716 23.2016Z\"\n fill=\"#B4D1EF\"\n />\n <path\n d=\"M102.3 23.2016C102.237 23.2016 102.173 23.2644 102.11 23.2644C101.349 23.5785 100.589 23.5785 99.8918 23.2644C99.765 23.2016 99.6383 23.1387 99.4482 23.0759C98.9412 22.7618 98.561 22.322 98.3075 21.7565C97.6104 20.2487 98.1174 18.6151 99.6383 17.8612C101.159 17.1073 102.997 17.547 103.694 19.0549C104.391 20.6256 103.884 22.3848 102.3 23.2016Z\"\n fill=\"#B4D1EF\"\n />\n <path\n d=\"M210.126 91.0156H130.44C129.748 91.0156 129.748 92.0848 130.44 92.0848H210.126C210.818 92.0848 210.818 91.0156 210.126 91.0156Z\"\n fill=\"white\"\n />\n <path\n d=\"M197.484 97.5566H142.013C141.321 97.5566 141.321 98.6258 142.013 98.6258H197.484C198.176 98.6258 198.176 97.5566 197.484 97.5566Z\"\n fill=\"white\"\n />\n <path\n d=\"M229.436 35.5H61.5553C60.8149 35.5 60.8149 36.5 61.5553 36.5H229.503C230.176 36.5 230.176 35.5 229.436 35.5Z\"\n fill=\"#002957\"\n />\n <path\n d=\"M270.44 35.3555H256.226C256.163 35.3555 256.163 36.4246 256.226 36.4246H270.44C270.503 36.4246 270.503 35.3555 270.44 35.3555Z\"\n fill=\"#002957\"\n />\n <path\n d=\"M332.704 212.022C332.642 212.022 332.579 212.022 332.516 211.959L280.566 191.582C280.377 191.519 280.252 191.33 280.252 191.141C280.252 190.953 280.314 190.764 280.44 190.638C292.83 181.33 333.333 150.953 335.346 150.953C335.472 150.953 335.66 151.016 335.723 151.141C335.849 151.267 335.849 151.393 335.849 151.519L333.208 211.456C333.208 211.644 333.082 211.77 332.956 211.896C332.893 211.959 332.767 212.022 332.704 212.022ZM281.824 190.953L332.138 210.701L334.717 152.336C329.811 155.166 301.321 176.299 281.824 190.953Z\"\n fill=\"#E5ECF4\"\n />\n <path\n d=\"M366.289 231.015C366.226 231.015 366.226 231.015 366.164 231.015L349.371 227.053C349.182 226.99 349.057 226.927 348.994 226.739C348.931 226.613 348.931 226.424 348.994 226.236L357.736 211.141C357.862 210.953 358.05 210.89 358.239 210.89C358.428 210.89 358.616 211.015 358.679 211.204C366.918 229.758 366.792 230.324 366.792 230.512C366.792 230.638 366.667 230.764 366.541 230.89C366.478 230.953 366.415 231.015 366.289 231.015ZM350.314 226.173L365.472 229.758C364.465 227.116 360.755 218.626 358.113 212.651L350.314 226.173Z\"\n fill=\"#E5ECF4\"\n />\n <path\n d=\"M199.686 248.751C192.516 229.38 177.799 213.909 159.497 205.67V205.607C159.748 193.343 154.528 181.141 144.654 173.657C133.396 165.104 118.365 162.902 104.591 164.034C78.1132 166.236 53.0189 181.456 38.805 203.846C36.9811 206.739 35.3459 209.758 33.8365 212.839C33.522 213.468 34.4654 214.034 34.7799 213.405C45.4088 191.015 66.1635 174.16 90 167.682C113.711 161.267 146.981 164.726 156.226 191.519C157.736 195.921 158.491 200.575 158.428 205.229C150.943 201.959 142.893 199.946 134.465 199.254C121.447 198.248 103.522 199.506 95.283 211.204C91.761 216.236 90.8805 222.525 93.5849 228.122C96.2893 233.72 101.761 237.745 107.421 239.946C118.868 244.475 132.39 242.462 142.642 235.858C152.642 229.38 158.679 218.688 159.371 206.865C177.17 215.041 191.572 230.072 198.616 249.066C198.931 249.695 199.937 249.443 199.686 248.751ZM152.075 225.481C145.094 235.355 133.019 241.141 121.006 241.267C109.434 241.393 92.7044 234.6 93.0189 220.701C93.2076 213.217 98.9937 207.305 105.346 204.286C112.013 201.141 119.748 200.198 127.044 200.072C137.987 199.883 148.616 202.148 158.302 206.361C158.113 213.154 156.038 219.883 152.075 225.481Z\"\n fill=\"#E5ECF4\"\n />\n <path\n d=\"M341.447 271.204H322.767C322.075 271.204 322.075 272.273 322.767 272.273H341.447C342.138 272.336 342.138 271.204 341.447 271.204Z\"\n fill=\"#E5ECF4\"\n />\n <path\n d=\"M233.522 75.4814C230.881 89.3179 229.245 103.154 224.025 110.576C213.962 124.915 185.975 137.117 178.428 143.972C170.881 150.764 171.95 151.142 173.019 152.588C173.648 153.469 177.862 151.771 181.132 150.261C177.421 152.211 172.579 155.23 173.711 157.242C174.654 159.003 178.679 157.808 182.201 156.362C178.994 158.123 175.786 160.387 176.981 161.959C178.365 163.783 183.585 161.897 187.107 160.387C184.088 162.022 180.314 164.475 181.635 166.299C183.774 169.192 235.849 149.758 245.157 120.702C248.805 109.318 250.881 94.6009 252.013 80.8274C245.786 79.3808 239.623 77.494 233.522 75.4814Z\"\n fill=\"#D4E8F7\"\n />\n <path\n d=\"M182.327 148.437C179.497 150.576 176.226 151.645 172.704 151.582C172.013 151.582 172.013 152.651 172.704 152.651C176.415 152.714 179.937 151.582 182.893 149.318C183.396 148.941 182.893 147.997 182.327 148.437Z\"\n fill=\"#002957\"\n />\n <path\n d=\"M184.906 154.852C183.27 155.607 181.635 156.173 179.937 156.676C178.302 157.117 175.723 158.06 174.151 157.117C173.522 156.802 173.019 157.683 173.585 158.06C175.157 158.94 176.918 158.5 178.553 158.123C180.943 157.62 183.145 156.802 185.346 155.796C186.101 155.481 185.535 154.538 184.906 154.852Z\"\n fill=\"#002957\"\n />\n <path\n d=\"M186.163 158.185C184.277 159.946 180.189 163.217 177.421 161.833C176.792 161.519 176.226 162.462 176.855 162.777C180.252 164.412 184.528 161.141 186.855 158.94C187.421 158.437 186.667 157.682 186.163 158.185Z\"\n fill=\"#002957\"\n />\n <path\n d=\"M253.522 46.0474C253.522 47.1166 253.522 48.3115 253.522 49.6323C253.459 57.3052 253.145 69.1291 252.013 81.6449C251.95 82.148 251.95 82.6512 251.887 83.1543C245.472 82.148 236.981 79.2549 230.629 78.1857C232.893 65.7958 237.736 54.2864 244.151 45.4185C245.157 44.0348 246.226 42.7769 247.421 41.6449L253.522 40.5757C253.522 40.5757 253.522 41.3933 253.585 42.8398C253.522 43.6574 253.522 44.7266 253.522 46.0474Z\"\n fill=\"#F2F7FC\"\n />\n <path\n d=\"M184.687 136.932C179.875 137.121 175.253 138.637 170.631 139.837C165.565 141.101 160.5 142.174 155.371 143.122C134.602 146.975 113.264 148.238 92.1786 146.849C74.7659 145.712 55.3904 142.238 43.2332 128.531C32.469 116.403 28.9865 98.1477 34.9384 82.9879C40.7638 68.0807 55.3271 57.6583 70.9668 55.5738V54.5C58.6197 56.0792 46.969 62.7748 39.4341 72.755C29.9996 85.325 28.6066 102.317 34.6218 116.719C41.0804 132.257 55.2004 141.227 71.1568 145.017C80.2747 147.165 89.6458 147.923 98.9537 148.302C109.718 148.744 120.545 148.428 131.246 147.544C143.087 146.533 154.801 144.638 166.388 142.048C172.403 140.658 178.545 138.321 184.687 138.132C190.576 137.942 197.604 140.974 197.921 147.607C197.984 148.302 199.061 148.302 198.997 147.607C198.617 140.216 191.209 136.679 184.687 136.932Z\"\n fill=\"#002957\"\n />\n <path\n d=\"M190 164.091V172.909C190 173.697 191 173.697 191 172.909V164.091C191 163.303 190 163.303 190 164.091Z\"\n fill=\"#002957\"\n />\n <path\n d=\"M199 164.037V172.963C199 173.679 200 173.679 200 172.963V164.037C200 163.321 199 163.321 199 164.037Z\"\n fill=\"#002957\"\n />\n <path\n d=\"M182 166.5V155.275C182 148.205 187.792 142.5 194.969 142.5C202.145 142.5 207.937 148.205 207.937 155.275L208 166.5H182Z\"\n fill=\"#0466C8\"\n />\n <path\n d=\"M209.483 165.5H180.517C179.828 165.5 179.828 166.5 180.517 166.5H209.483C210.172 166.5 210.172 165.5 209.483 165.5Z\"\n fill=\"#0466C8\"\n />\n <path\n d=\"M203.711 151.519V161.582C203.711 162.274 204.78 162.274 204.78 161.582V151.519C204.843 150.827 203.711 150.827 203.711 151.519Z\"\n fill=\"white\"\n />\n <path\n d=\"M196.73 134.601C187.421 142.148 183.648 152.274 187.233 153.343C190.818 154.412 203.208 135.67 203.208 135.67L196.73 134.601Z\"\n fill=\"#D4E8F7\"\n />\n <path\n d=\"M199.748 139.632C196.855 144.098 193.396 148.374 189.182 151.708L188.239 152.399C187.358 152.84 186.352 152.148 186.478 150.953C186.541 150.45 187.233 149.066 187.421 148.689C187.925 147.557 188.491 146.425 189.057 145.292C190.377 142.777 191.824 140.387 193.459 138.06C193.836 137.494 192.893 136.928 192.516 137.494C191.195 139.443 181.824 152.399 186.855 153.594C189.245 154.16 191.824 150.827 193.27 149.381C196.038 146.55 198.491 143.469 200.692 140.135C201.069 139.569 200.126 139.066 199.748 139.632Z\"\n fill=\"#002957\"\n />\n <path\n d=\"M211.132 135.984C207.736 139.003 203.648 140.89 199.057 141.33C198.365 141.393 198.365 142.462 199.057 142.399C203.899 141.896 208.239 139.947 211.887 136.739C212.39 136.299 211.635 135.544 211.132 135.984Z\"\n fill=\"#002957\"\n />\n <path\n d=\"M238.176 254.224C250.692 253.783 263.208 255.607 275.723 255.796C275.157 254.475 274.654 253.217 274.088 251.897C273.774 251.205 273.459 250.513 273.145 249.821C270.377 243.658 267.484 237.809 264.717 232.274C254.906 235.859 245.031 239.129 234.843 241.331C237.547 246.928 239.12 251.393 238.176 254.224Z\"\n fill=\"#D4E8F7\"\n />\n <path\n d=\"M273.899 253.595C276.101 253.783 278.365 253.783 280.566 253.72C284.717 253.658 288.805 253.72 292.956 253.72C299.12 253.783 305.283 253.532 311.384 253.091C307.17 244.161 302.767 235.796 298.553 228.06C289.057 230.639 279.56 232.966 269.937 235.104C273.145 242.525 275.031 249.003 273.899 253.595Z\"\n fill=\"#D4E8F7\"\n />\n <path\n d=\"M274.214 250.828C273.836 255.104 271.069 257.997 267.107 259.57C256.352 263.909 259.937 272.84 259.937 272.84H319.874C316.918 265.167 313.648 257.809 310.314 250.765H274.214V250.828Z\"\n fill=\"#002957\"\n />\n <path\n d=\"M307.296 229.758C293.459 203.783 276.289 186.299 281.447 173.72C297.233 135.419 300.818 107.997 291.887 84.3494L267.484 80.0098C267.484 80.0098 269.623 91.5192 268.553 112.337C267.484 133.154 252.201 152.022 250.252 182.337C249.182 199.129 259.937 225.985 266.415 241.582C275.912 238.437 297.547 232.085 307.296 229.758Z\"\n fill=\"#002957\"\n />\n <path\n d=\"M265.786 234.475C252.516 207.934 240.063 187.683 246.415 172.714C263.145 133.406 281.069 109.884 272.075 86.1733C272.075 86.1733 254.843 72.5255 253.774 93.3431C252.704 114.161 218.05 153.846 214.088 183.972C211.321 204.915 223.962 230.513 230.252 245.356C240.252 242.337 256.352 238.815 265.786 234.475Z\"\n fill=\"#002957\"\n />\n <path\n d=\"M282.201 272.84H222.264C222.264 272.84 222.264 260.45 234.654 257.243C237.17 256.614 238.302 255.104 238.491 252.966H274.591C277.296 259.255 279.874 265.922 282.201 272.84Z\"\n fill=\"#002957\"\n />\n <path\n d=\"M274.088 251.896C274.025 252.274 273.962 252.588 273.836 252.966C273.082 255.67 271.195 258.123 268.428 259.444C264.151 261.519 259.119 261.456 256.289 265.922C254.969 268.06 254.402 270.45 254.34 272.84H253.333C253.522 268.311 254.906 264.098 259.182 261.708C262.704 259.758 267.233 259.821 270.252 256.991C271.447 255.922 272.264 254.475 272.704 252.966C273.019 251.959 273.145 250.89 273.082 249.884C273.459 250.513 273.774 251.205 274.088 251.896Z\"\n fill=\"white\"\n />\n <path\n d=\"M281.195 256.739C279.497 255.67 277.799 254.601 276.101 253.532C275.535 253.154 274.969 254.098 275.535 254.475C277.233 255.544 278.931 256.614 280.629 257.683C281.258 258.06 281.761 257.117 281.195 256.739Z\"\n fill=\"white\"\n />\n <path\n d=\"M244.717 257.809C242.893 257.242 241.132 256.739 239.308 256.173C238.616 255.985 238.365 256.991 238.994 257.243C240.818 257.809 242.579 258.312 244.403 258.878C245.094 259.066 245.346 258.06 244.717 257.809Z\"\n fill=\"white\"\n />\n <path\n d=\"M262.516 231.267C261.069 227.682 259.623 224.098 258.239 220.513C257.987 219.884 256.918 220.135 257.17 220.827C258.616 224.412 260.063 227.997 261.447 231.582C261.698 232.211 262.767 231.959 262.516 231.267Z\"\n fill=\"white\"\n />\n <path\n d=\"M268.616 110.073C268.491 110.513 268.365 110.953 268.302 111.394C265.786 121.645 263.208 131.897 260.692 142.148C260.503 142.84 259.497 142.526 259.623 141.834C262.264 131.331 264.843 120.765 267.484 110.262C267.61 109.821 267.736 109.381 267.799 108.878C268.05 109.318 268.365 109.696 268.616 110.073Z\"\n fill=\"white\"\n />\n <path\n d=\"M268.616 110.073C268.491 110.513 268.365 110.953 268.302 111.393C268.05 111.016 267.736 110.639 267.484 110.261C266.478 108.878 265.409 107.494 264.402 106.11C263.962 105.544 264.906 105.041 265.346 105.544C266.163 106.676 266.981 107.808 267.862 108.878C268.05 109.318 268.365 109.695 268.616 110.073Z\"\n fill=\"white\"\n />\n <path\n d=\"M251.698 43.0913C238.994 45.7328 251.509 69.5693 253.836 93.3429L291.887 84.3492C291.887 84.3492 276.415 37.997 251.698 43.0913Z\"\n fill=\"#F2F7FC\"\n />\n <path\n d=\"M251.384 79.8839C249.308 73.6574 247.296 67.4939 245.22 61.2675C245.031 60.6386 243.962 60.8901 244.151 61.582C246.226 67.8084 248.239 73.9719 250.314 80.1983C250.566 80.8273 251.572 80.5128 251.384 79.8839Z\"\n fill=\"#002957\"\n />\n <path\n d=\"M332.075 57.431C322.39 48.3744 311.447 43.5945 299.811 41.2046C297.673 46.9908 295.723 52.9027 293.962 58.8147C295.66 59.3807 297.359 60.0096 298.994 60.6386C323.396 69.6323 326.667 87.1794 330.566 97.6197C334.528 108.06 322.642 122.777 326.604 124.538C330.566 126.362 336.289 113.028 336.289 113.028C336.289 113.028 334.843 135.481 337.736 136.173C340.377 136.865 341.698 131.016 342.264 126.488C342.076 130.764 342.327 136.047 344.906 135.859C347.17 135.67 347.862 131.456 347.987 127.494C348.365 130.764 349.245 133.909 351.384 134.098C354.088 134.349 353.962 128.626 353.522 124.349C354.277 128.123 355.66 132.777 358.05 131.896C362.075 130.513 353.962 77.8713 332.075 57.431Z\"\n fill=\"#D4E8F7\"\n />\n <path\n d=\"M302.453 41.7707C300.314 47.7455 296.667 58.8147 295.157 64.9782C287.61 60.6386 279.245 57.1795 273.082 53.6575C265.723 49.5065 258.742 47.5569 254.717 46.3619C254.277 46.2361 253.836 46.1103 253.459 46.0474C251.572 45.5443 250.566 45.2298 250.566 45.2298L251.95 43.0286L253.459 40.5757C254.717 40.4499 255.912 40.3871 257.17 40.2613C272.704 38.9405 288.176 38.3745 302.453 41.7707Z\"\n fill=\"#F2F7FC\"\n />\n <path\n d=\"M341.761 123.846C341.384 127.117 341.887 134.853 337.673 135.67C336.981 135.796 337.296 136.865 337.987 136.739C339.874 136.362 341.069 134.915 341.572 133.154C342.453 130.261 342.453 126.928 342.83 123.909C342.956 123.154 341.824 123.154 341.761 123.846Z\"\n fill=\"#002957\"\n />\n <path\n d=\"M346.981 122.966C346.918 124.852 346.855 126.739 346.73 128.626C346.667 129.884 347.107 135.544 344.78 135.041C344.088 134.915 343.837 135.922 344.466 136.11C346.352 136.488 347.296 135.104 347.61 133.406C348.176 130.073 347.925 126.362 348.05 122.966C348.113 122.274 347.044 122.274 346.981 122.966Z\"\n fill=\"#002957\"\n />\n <path\n d=\"M353.648 122.022C353.648 121.33 352.579 121.33 352.579 122.022C352.642 124.035 353.774 132.337 351.132 133.029C350.44 133.217 350.755 134.224 351.447 134.098C353.019 133.657 353.648 132.525 353.774 130.953C354.088 128.06 353.711 124.978 353.648 122.022Z\"\n fill=\"#002957\"\n />\n <path\n d=\"M358.868 119.129C358.805 118.437 357.736 118.5 357.799 119.192C357.987 120.953 360.126 130.639 357.547 131.142C356.855 131.267 357.17 132.274 357.862 132.148C359.56 131.834 360 130.387 360 128.815C359.937 125.67 359.245 122.337 358.868 119.129Z\"\n fill=\"#002957\"\n />\n <path\n d=\"M275.346 54.3493C274.088 53.8462 272.83 53.4059 271.635 52.9028C271.006 52.6512 270.692 53.7204 271.321 53.972C272.579 54.4751 273.836 54.9154 275.031 55.4185C275.723 55.6701 276.038 54.6009 275.346 54.3493Z\"\n fill=\"#002957\"\n />\n <path\n d=\"M256.164 41.9592C254.277 37.4938 251.509 31.2045 251.132 31.1416L241.006 33.28C241.006 33.28 245.849 42.9655 248.113 47.5567C250.629 45.4812 253.333 43.6573 256.164 41.9592Z\"\n fill=\"#D4E8F7\"\n />\n <path\n d=\"M252.704 28.4372C252.704 28.7517 252.642 29.0661 252.579 29.3806C252.516 29.6951 252.453 30.0095 252.39 30.2611C252.39 30.324 252.327 30.3869 252.327 30.4498C252.264 30.7013 252.201 30.9529 252.138 31.2045C250.943 35.041 247.862 38.0598 243.082 38.1856C233.899 38.3743 230.252 30.7013 231.384 24.412C232.138 20.1982 235.094 16.5504 239.937 16.173C240.126 16.173 240.377 16.1102 240.566 16.1102C245.031 16.0473 248.176 17.6825 250.189 20.0724C250.503 20.5127 250.818 20.9529 251.132 21.3932C251.321 21.7076 251.447 22.0221 251.635 22.3366C251.887 22.8397 252.075 23.3429 252.201 23.846C252.641 25.3554 252.83 26.9278 252.704 28.4372Z\"\n fill=\"#D4E8F7\"\n />\n <path d=\"M236.478 29.3179L238.679 34.9782L234.528 35.2298L236.478 29.3179Z\" fill=\"#002957\" />\n <path\n d=\"M239.182 28.0601L239.434 28.8148C239.686 29.4438 238.616 29.6953 238.365 29.0664L238.113 28.3117C237.924 27.6827 238.994 27.4312 239.182 28.0601Z\"\n fill=\"#002957\"\n />\n <path\n d=\"M233.27 28.9406L233.522 29.6954C233.774 30.3243 232.704 30.5759 232.453 29.9469L232.201 29.1922C232.013 28.5004 233.082 28.2488 233.27 28.9406Z\"\n fill=\"#002957\"\n />\n <path\n d=\"M247.044 27.1166C246.918 27.6827 246.855 28.3116 246.73 28.8776C246.604 29.5695 247.673 29.8839 247.736 29.1921C247.862 28.6261 247.924 27.9971 248.05 27.4311C248.176 26.7393 247.17 26.4877 247.044 27.1166Z\"\n fill=\"#0466C8\"\n />\n <path\n d=\"M252.201 23.8461C252.013 23.343 251.824 22.8399 251.635 22.3367C251.509 22.0222 251.321 21.7078 251.132 21.3933C250.88 20.9531 250.566 20.5128 250.189 20.0726C248.176 17.6197 245.031 15.9845 240.566 16.1103C240.377 16.1103 240.126 16.1103 239.937 16.1732C238.491 16.299 234.465 16.9279 232.956 18.8147C228.616 20.1355 225.157 23.909 229.308 25.4814C232.453 26.8021 238.176 25.7958 240.88 24.4751C241.132 25.6072 242.83 28.7518 244.151 28.626C245.723 28.4373 245.472 26.6763 244.969 25.6072C244.906 25.4814 244.843 25.3556 244.78 25.2298C245.094 25.0411 245.409 24.8524 245.786 24.7267C247.925 23.7204 250.818 24.6638 251.509 27.1166C251.824 28.3744 251.698 29.7581 250.943 30.7015C250.88 30.8273 251.824 31.2046 252.138 31.2675C252.201 31.016 252.264 30.7644 252.327 30.5128C252.327 30.4499 252.327 30.387 252.39 30.3241C252.453 30.0097 252.516 29.7581 252.579 29.4436C252.642 29.1292 252.641 28.8147 252.704 28.5002C252.767 26.9279 252.641 25.3556 252.201 23.8461Z\"\n fill=\"#002957\"\n />\n <path\n d=\"M257.17 40.2612L256.226 42.7141L254.78 46.3619L253.522 49.5694L251.635 54.4122L246.478 48.1858L244.151 45.4185C245.157 44.0348 246.226 42.777 247.421 41.6449L253.522 40.5757C254.717 40.4499 255.912 40.3241 257.17 40.2612Z\"\n fill=\"#D4E8F7\"\n />\n </svg>\n</vl-empty-state>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { EmptyStateModule, LoaderModule } from '@veloceapps/components';\nimport { PreviewModule } from '@veloceapps/sdk/cms';\nimport { EmptyAccountComponent } from './empty-account.component';\n\n@NgModule({\n declarations: [EmptyAccountComponent],\n imports: [CommonModule, PreviewModule, LoaderModule, EmptyStateModule],\n exports: [EmptyAccountComponent],\n})\nexport class EmptyAccountModule {}\n","import { Component, Inject, OnDestroy, OnInit, Optional } from '@angular/core';\nimport { ActivatedRoute, Params } from '@angular/router';\nimport { QuoteApiService } from '@veloceapps/api';\nimport { EntityUtil, LineItem, QuoteDraft, VlWindow } from '@veloceapps/core';\nimport { ContextService, QuoteDraftService, RuntimeOperation } from '@veloceapps/sdk/core';\nimport {\n CurrentStateService,\n LegacyRuntimeContext,\n QuoteStates,\n RuntimeContextService,\n RuntimeService,\n SolutionReadyAware,\n SolutionUpdatedAware,\n} from '@veloceapps/sdk/runtime';\nimport { Observable, Subject, of } from 'rxjs';\nimport { first, map, switchMap, take, takeUntil } from 'rxjs/operators';\nimport { FLOW_CUSTOMIZATION, FlowCustomization } from '../../types';\n\ndeclare const window: VlWindow;\n\n@Component({\n templateUrl: './legacy-product.component.html',\n styleUrls: ['./legacy-product.component.scss'],\n})\nexport class LegacyProductComponent implements OnInit, OnDestroy, SolutionUpdatedAware, SolutionReadyAware {\n private destroyed$ = new Subject<void>();\n\n private assets?: LineItem[];\n\n constructor(\n private route: ActivatedRoute,\n private quoteDraftService: QuoteDraftService,\n private quoteApiService: QuoteApiService,\n private contextService: ContextService,\n private runtimeContextService: RuntimeContextService,\n private runtimeService: RuntimeService,\n private currentStateService: CurrentStateService,\n @Optional() @Inject(FLOW_CUSTOMIZATION) private customizationService?: FlowCustomization,\n ) {}\n\n public ngOnInit(): void {\n this.quoteDraftService.quoteDraft$\n .pipe(first(), takeUntil(this.destroyed$))\n .subscribe(quote => this.init(quote, this.route.snapshot.queryParams));\n\n this.runtimeService.onSolutionStopEvent.pipe(take(1)).subscribe(lineItem => this.onSolutionStop(lineItem));\n\n this.runtimeService.onSolutionReadyEvent.pipe(take(1)).subscribe(event => this.onSolutionReady(event));\n\n this.runtimeService.onSolutionCancelEvent.pipe(take(1)).subscribe(() => this.onSolutionCancel());\n }\n\n public ngOnDestroy(): void {\n this.destroyed$.next();\n this.destroyed$.complete();\n }\n\n public onSolutionReady(lineItem: LineItem): void {\n lineItem.actionCode = lineItem.actionCode ?? 'ADD';\n }\n\n public onSolutionCancel(): void {\n this.quoteDraftService.quoteDraft$.pipe(first(), takeUntil(this.destroyed$)).subscribe(quote => {\n window['VELO_BACK_FN'].apply(null, [quote.quoteId]);\n });\n }\n\n public onSolutionUpdated(lineItem: LineItem): void {\n const states: QuoteStates = {\n configurableRamp: lineItem,\n currentState: this.currentStateService.currentState,\n asset: this.getAsset(lineItem),\n };\n\n this.runtimeService.updateRuntime(states);\n }\n\n public onSolutionStop(lineItem: LineItem): void {\n this.quoteDraftService.quoteDraft$.pipe(first(), takeUntil(this.destroyed$)).subscribe(quote => {\n const quoteToUpsert: QuoteDraft = {\n ...quote,\n context: this.contextService.resolve(),\n currentState: [...(this.currentStateService.currentState || []).filter(li => li.id !== lineItem.id), lineItem],\n };\n\n this.quoteApiService\n .upsertQuote(quoteToUpsert)\n .pipe(take(1))\n .subscribe(quote => {\n window['VELO_BACK_FN'].apply(null, [quote.quoteId]);\n });\n });\n }\n\n private init(quote: QuoteDraft, queryParams: Params): void {\n const productId = queryParams['productId'];\n const lineItemId = this.getLineItemId(quote, queryParams);\n this.assets = quote.initialState;\n\n lineItemId && quote.currentState ? this.reConfigure(lineItemId, quote.currentState) : this.configure(productId);\n }\n\n private getLineItemId(quote: QuoteDraft, queryParams: Params): string | undefined {\n if (EntityUtil.isPresent(queryParams['lineItemId'])) {\n return queryParams['lineItemId'];\n }\n\n return quote.currentState\n .filter(lineItem => lineItem.productId === queryParams['productId'])\n .map(lineItem => lineItem.id)\n .find(id => id);\n }\n\n private configure(productId: string): void {\n const runtimeContext = this.getRuntimeContext(productId, '', RuntimeOperation.INIT);\n\n this.startRuntime({}, runtimeContext);\n }\n\n private reConfigure(lineItemId: string, currentState: LineItem[]): void {\n const currentStateItem = EntityUtil.findById(lineItemId, currentState);\n const runtimeContext = this.getRuntimeContext(\n currentStateItem.productId,\n currentStateItem.offeringId,\n RuntimeOperation.UPDATE,\n );\n\n const states: QuoteStates = {\n configurableRamp: currentStateItem,\n currentState,\n asset: this.getAsset(currentStateItem),\n };\n\n this.currentStateService.update(currentState);\n this.startRuntime(states, runtimeContext);\n }\n\n private getAsset(lineItem: LineItem): LineItem | undefined {\n return this.assets && this.assets.find(a => a.id === lineItem.openOrderLineItemId || a.id === lineItem.assetId);\n }\n\n private startRuntime(states: QuoteStates, runtimeContext$: Observable<LegacyRuntimeContext>): void {\n runtimeContext$\n .pipe(\n take(1),\n map(runtimeContext => {\n this.runtimeService.startRuntime(runtimeContext, states);\n }),\n )\n .subscribe();\n }\n\n private customizeContext(productId: string, context: LegacyRuntimeContext): Observable<LegacyRuntimeContext> {\n if (!this.customizationService?.getLegacyUiDefinition) {\n return of(context);\n }\n\n return this.customizationService.getLegacyUiDefinition(productId).pipe(\n map(uiDefinitionContainer => ({\n ...context,\n uiDefinitionContainer: uiDefinitionContainer ?? undefined,\n })),\n );\n }\n\n private getRuntimeContext(\n productId: string,\n offeringId: string,\n runtimeOperation: RuntimeOperation,\n ): Observable<LegacyRuntimeContext> {\n return this.runtimeContextService.getRuntimeContext(productId, offeringId).pipe(\n map(runtimeContext => {\n runtimeContext.invocationContext = { runtimeOperation: RuntimeOperation[runtimeOperation] };\n return runtimeContext;\n }),\n switchMap(runtimeContext => this.customizeContext(productId, runtimeContext)),\n );\n }\n}\n","<vl-runtime #runtimeView (solutionUpdated)=\"onSolutionUpdated($event)\"></vl-runtime>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RuntimeModule } from '@veloceapps/sdk/runtime';\nimport { LegacyProductComponent } from './legacy-product.component';\n\n@NgModule({\n declarations: [LegacyProductComponent],\n imports: [CommonModule, RuntimeModule],\n exports: [LegacyProductComponent],\n})\nexport class LegacyProductModule {}\n","import { ChangeDetectionStrategy, Component, Inject, Optional } from '@angular/core';\nimport { QuoteDraft, UIDefinition, isLegacyUIDefinition } from '@veloceapps/core';\nimport { CMSPreviewConfig, IntegrationState } from '@veloceapps/sdk/cms';\nimport {\n ConfigurationRuntimeService,\n ConfigurationService,\n ConfigurationState,\n ContextService,\n QuoteDraftService,\n} from '@veloceapps/sdk/core';\nimport { BehaviorSubject, Observable, first, map, of, switchMap, tap } from 'rxjs';\nimport { FLOW_CUSTOMIZATION, FlowCustomization } from '../../types/flow-customization.types';\n\n@Component({\n selector: 'vl-flow-product',\n templateUrl: './product.component.html',\n styleUrls: ['./product.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ProductComponent {\n public config: CMSPreviewConfig;\n public uiDefinition$ = new BehaviorSubject<UIDefinition | undefined>(undefined);\n\n constructor(\n private contextService: ContextService,\n private configurationRuntimeService: ConfigurationRuntimeService,\n private configurationService: ConfigurationService,\n private configurationState: ConfigurationState,\n private quoteDraftService: QuoteDraftService,\n private integrationState: IntegrationState,\n @Optional() @Inject(FLOW_CUSTOMIZATION) private customizationService?: FlowCustomization,\n ) {\n this.config = {\n init$: () => this.init$(),\n };\n }\n\n private customizeUI$(): Observable<void> {\n const { productId } = this.configurationRuntimeService.runtimeContext ?? {};\n if (!productId || !this.customizationService?.getUiDefinition) {\n return of(undefined);\n }\n\n return this.customizationService.getUiDefinition(productId).pipe(\n map(uiDefinitionContainer => {\n if (uiDefinitionContainer) {\n this.configurationRuntimeService.overrideUIDefinition(uiDefinitionContainer);\n }\n }),\n );\n }\n\n private init$(): Observable<void> {\n return this.quoteDraftService.quoteDraft$.pipe(\n first(),\n switchMap(quote => {\n const contextProperties = this.contextService.resolve().properties;\n const productId = contextProperties.productId;\n\n if (!productId) {\n throw new Error(`Unable to start configuration for 'productId == null'`);\n }\n\n const lineItemId = this.getLineItemId(quote, productId, contextProperties.lineItemId);\n const currentStateItem = quote.currentState.find(({ id }) => id === lineItemId);\n\n if (currentStateItem) {\n this.configurationService.setConfigurableRamp(currentStateItem);\n }\n\n const { offeringId } = currentStateItem ?? {};\n\n return this.configurationRuntimeService.init({ productId, offeringId });\n }),\n switchMap(() => this.customizeUI$()),\n tap(() => {\n const uiDefinition = this.configurationRuntimeService.runtimeContext?.uiDefinitionContainer?.source;\n if (uiDefinition && !isLegacyUIDefinition(uiDefinition)) {\n this.uiDefinition$.next(uiDefinition);\n } else {\n throw new Error('Product does not have Configuration UI');\n }\n }),\n tap(() => {\n if (this.configurationRuntimeService.initializationProps) {\n this.configurationRuntimeService.initializationProps.attributesMap =\n this.integrationState.state.guidedSelling;\n }\n }),\n switchMap(() => this.configurationState.init$()),\n );\n }\n\n private getLineItemId(quote: QuoteDraft, productId: string, lineItemId?: string): string | undefined {\n // search by lineItemId first\n let id: string | undefined = quote.currentState.find(li => li.id === lineItemId)?.id;\n\n if (!id && this.quoteDraftService.isStandalone) {\n id = quote.currentState.find(li => li.productId === productId)?.id;\n }\n\n return id;\n }\n}\n","<vl-cms-preview [uiDefinition]=\"$any(uiDefinition$ | async)\" [config]=\"config\"></vl-cms-preview>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { LoaderModule } from '@veloceapps/components';\nimport { PreviewModule } from '@veloceapps/sdk/cms';\nimport { ProductComponent } from './product.component';\n\n@NgModule({\n declarations: [ProductComponent],\n imports: [CommonModule, PreviewModule, LoaderModule],\n exports: [ProductComponent],\n})\nexport class ProductModule {}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\n\n@Component({\n selector: 'vl-flow-record-not-found',\n templateUrl: './record-not-found.component.html',\n styleUrls: ['./record-not-found.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RecordNotFoundComponent {\n public message: string;\n public subMessage = '';\n\n constructor(private router: Router, private route: ActivatedRoute) {\n const navigation = this.router.getCurrentNavigation();\n const { state } = navigation?.extras || {};\n\n this.message = state?.['message'];\n if (typeof this.message === 'string') {\n this.subMessage = this.message.includes('/describe') ? 'A potential problem with permissions' : '';\n }\n }\n}\n","<div class=\"row\">\n <div class=\"col-md-12\">\n <div class=\"message-wrapper\">\n <div class=\"msg\">\n <div *ngIf=\"message; else defaultMessage\" class=\"message-title\">\n <p>{{ message }}</p>\n\n <p *ngIf=\"subMessage\" class=\"message-title\">{{ subMessage }}</p>\n </div>\n\n <ng-template #defaultMessage>Record not found</ng-template>\n </div>\n </div>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { RecordNotFoundComponent } from './record-not-found.component';\n\nconst routes: Routes = [{ path: '', component: RecordNotFoundComponent }];\n\n@NgModule({\n declarations: [RecordNotFoundComponent],\n imports: [CommonModule, RouterModule.forChild(routes)],\n})\nexport class RecordNotFoundModule {}\n","import { Location } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, OnDestroy } from '@angular/core';\nimport {\n ChargeGroupItem,\n ContextProperties,\n LineItem,\n RpcMessage,\n RpcOption,\n RpcOptionConfiguration,\n RpcProduct,\n RpcQuote,\n UIDefinition,\n UUID,\n VlWindow,\n getUIDefinitionProperties,\n isLegacyUIDefinition,\n} from '@veloceapps/core';\nimport { FlowAction, IntegrationState } from '@veloceapps/sdk/cms';\nimport {\n ConfigurationRuntimeService,\n ConfigurationService,\n ConfigurationState,\n ContextService,\n QuoteDraftService,\n RuntimeContext,\n} from '@veloceapps/sdk/core';\nimport { MessageService } from 'primeng/api';\nimport {\n BehaviorSubject,\n Observable,\n Subject,\n catchError,\n first,\n of,\n switchMap,\n takeUntil,\n tap,\n throwError,\n} from 'rxjs';\nimport { LineItemWithParent } from './remote.types';\n\ndeclare const window: VlWindow;\n\ninterface State {\n loading: boolean;\n failure: boolean;\n}\n\n@Component({\n selector: 'vl-flow-remote',\n templateUrl: './remote.component.html',\n styleUrls: ['./remote.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RemoteComponent implements OnDestroy {\n public uiDefinition?: UIDefinition;\n public state$ = new BehaviorSubject<State>({ loading: true, failure: false });\n\n private readonly DYNAMIC_OPTION_PRODUCTS_KEY = 'Dynamic';\n\n private rpcMessage: RpcMessage;\n private destroyed$ = new Subject<void>();\n\n constructor(\n private contextService: ContextService,\n private quoteDraftService: QuoteDraftService,\n private runtimeService: ConfigurationRuntimeService,\n private configurationService: ConfigurationService,\n private configurationState: ConfigurationState,\n private messageService: MessageService,\n private integrationState: IntegrationState,\n private location: Location,\n ) {\n this.rpcMessage = JSON.parse(window.RPC_MESSAGE as string);\n this.rpcMessage.options.sort((a, b) => (a.featureNumber ?? 99999) - (b.featureNumber ?? 99999));\n this.updateHasChildrenFlag(this.rpcMessage.product.configuredProductId);\n\n // update context properties\n if (this.rpcMessage.quote) {\n const properties: ContextProperties = {};\n\n if (this.rpcMessage.quote['SBQQ__Opportunity2__c']) {\n properties.OpportunityId = this.rpcMessage.quote['SBQQ__Opportunity2__c'];\n }\n\n Object.entries(this.rpcMessage.quote).forEach(([key, value]) => {\n if (value !== undefined && !(value instanceof Object)) {\n properties[key] = value;\n }\n });\n\n this.contextService.update({ properties });\n }\n\n this.initSubscriptions();\n this.initConfiguration();\n }\n\n public ngOnDestroy(): void {\n this.destroyed$.next();\n this.destroyed$.complete();\n }\n\n private initConfiguration(): void {\n const productId = this.rpcMessage.product.configuredProductId;\n const quote = this.quoteDraftService.quoteDraft;\n\n if (!productId || !quote) {\n return;\n }\n\n this.runtimeService\n .init({ productId })\n .pipe(\n first(),\n tap(context => {\n const uiDefinitionProperties = getUIDefinitionProperties(context.uiDefinitionContainer);\n const uiDefinition = context.uiDefinitionContainer?.source;\n this.uiDefinition = uiDefinition && !isLegacyUIDefinition(uiDefinition) ? uiDefinition : undefined;\n\n const pricingEnabled = uiDefinitionProperties.pricingEnabled ? 'true' : 'false';\n const priceListId = uiDefinitionProperties.priceList;\n\n const runtimeContextProperties = this.runtimeService.runtimeContext?.properties;\n if (runtimeContextProperties) {\n runtimeContextProperties.PriceListId = priceListId;\n runtimeContextProperties.PricingEnabled = pricingEnabled;\n }\n\n this.contextService.update({\n properties: {\n ModelId: context.modelId,\n RuntimeMode: 'TEST',\n PricingEnabled: pricingEnabled,\n PriceListId: priceListId,\n },\n });\n\n this.configurationService.setConfigurableRamp(this.createLineItem());\n }),\n this.throwIfNoUIDefinition(),\n switchMap(() => this.configurationState.init$()),\n tap(() => this.state$.next({ loading: false, failure: false })),\n catchError(error => {\n if (!this.uiDefinition?.properties?.suppressToastMessages) {\n this.messageService.add({ severity: 'error', summary: error });\n }\n\n this.state$.next({ loading: false, failure: true });\n return of();\n }),\n takeUntil(this.destroyed$),\n )\n .subscribe();\n }\n\n private throwIfNoUIDefinition() {\n return <T>(source$: Observable<T>): Observable<T> => {\n return source$.pipe(\n switchMap(() => {\n if (!this.uiDefinition) {\n return throwError(() => 'Product does not have Configuration UI');\n }\n\n return source$;\n }),\n );\n };\n }\n\n private initSubscriptions(): void {\n this.integrationState\n .listen$(FlowAction.REMOTE_CANCEL)\n .pipe(\n tap(() => this.location.back()),\n takeUntil(this.destroyed$),\n )\n .subscribe();\n\n this.integrationState\n .listen$(FlowAction.REMOTE_APPLY)\n .pipe(\n tap(() => this.saveRpcMessage()),\n takeUntil(this.destroyed$),\n )\n .subscribe();\n }\n\n private createLineItem(): LineItem {\n const [quoteDraftLineItem] = this.quoteDraftService.quoteDraft?.currentState ?? [];\n if (quoteDraftLineItem && (quoteDraftLineItem.attributes.length > 0 || quoteDraftLineItem.lineItems.length > 0)) {\n return quoteDraftLineItem;\n }\n\n const lineItem = this.createRootLineItem();\n const dynamicOptionProducts = this.rpcMessage.product.optionConfigurations[this.DYNAMIC_OPTION_PRODUCTS_KEY];\n\n if (dynamicOptionProducts) {\n const options = this.toParentChildMap(dynamicOptionProducts);\n let items = [lineItem];\n for (let i = 0; i < items.length; i++) {\n const item = items[i];\n const children = options.get(item.id);\n if (children) {\n item.lineItems = children;\n items = items.concat(children);\n }\n }\n }\n return lineItem;\n }\n\n private createRootLineItem(): LineItem {\n const product = this.rpcMessage.product;\n const runtimeContext = this.runtimeService.runtimeContext as RuntimeContext;\n const veloceInstanceId = product.configurationAttributes['VeloceInstanceId__c'];\n const quoteId = this.quoteDraftService.quoteDraft?.currentState[0]?.id;\n\n return {\n id: quoteId || veloceInstanceId || UUID.UUID(),\n type: runtimeContext.productType ?? '',\n name: runtimeContext.properties?.['displayName'] || runtimeContext.productName,\n productName: runtimeContext.productName,\n productId: runtimeContext.productId,\n cfgStatus: 'Default',\n actionCode: 'ADD',\n qty: 1,\n } as LineItem;\n }\n\n private toParentChildMap(remoteOptionProducts: RpcOptionConfiguration[]): Map<string, LineItem[]> {\n const result = new Map<string, LineItem[]>();\n\n for (const option of remoteOptionProducts) {\n const configurationData = option?.readOnly?.line;\n const id = configurationData?.VeloceInstanceId__c;\n const parentId = configurationData?.VeloceParentInstanceId__c;\n\n if (!option.selected || !configurationData || !id || !parentId) {\n continue;\n }\n\n const productId = option.productId;\n const lineItem = {\n id,\n productId,\n parentId,\n type: configurationData.ModelType__c,\n port: configurationData.ModelPort__c,\n cfgStatus: configurationData.ConfigurationStatus__c,\n actionCode: configurationData.ActionCode__c,\n qty: option.Quantity,\n } as LineItem;\n\n let siblings = result.get(productId);\n if (!siblings) {\n result.set(parentId, (siblings = []));\n }\n\n siblings.push(lineItem);\n }\n return result;\n }\n\n private saveRpcMessage(): void {\n const quote = this.quoteDraftService.quoteDraft;\n const lineItem = this.configurationService.getSnapshot();\n\n if (!quote || !lineItem) {\n return;\n }\n\n this.rpcMessage.VeloceReferenceId = quote.quoteId;\n this.rpcMessage.product.configurationData.VeloceInstanceId__c = lineItem.id;\n const childItems = this.flattenChildLineItems(lineItem);\n const savingMode = window.SavingMode;\n\n this.updateContentData(this.rpcMessage.product, lineItem);\n this.rpcMessage.quote = this.mapAttributesTo('Quote', lineItem) as RpcQuote;\n\n if (savingMode === 'ALL') {\n const optionConfigurations = this.getOptionConfigurations(this.rpcMessage.product);\n const rootProductOptions = this.rpcMessage.options.filter(po => po.configuredProductId === lineItem.productId);\n\n childItems.forEach(lineItem => {\n const rootOption = rootProductOptions.find(po => po.optionalProductId === lineItem.productId);\n if (rootOption) {\n const featureOptions =\n optionConfigurations[rootOption.featureName] ?? (optionConfigurations[rootOption.featureName] = []);\n const originOption = !rootOption.hasChildren\n ? optionConfigurations[rootOption.featureName].find(({ optionId }) => optionId === rootOption.optionId)\n : undefined;\n const option: RpcOptionConfiguration = originOption ?? ({} as RpcOptionConfiguration);\n\n option.optionId = option.optionId ?? rootOption.optionId;\n this.updateContentData(option, lineItem);\n option.index = option.index ?? featureOptions.length;\n option.selected = true;\n\n if (!originOption) {\n featureOptions.push(option);\n }\n\n if (lineItem.parentLineItem) {\n const nestedProductOption = this.rpcMessage.options.find(\n po =>\n po.configuredProductId === lineItem.parentLineItem?.productId &&\n po.optionalProductId === lineItem.productId,\n );\n\n if (nestedProductOption) {\n option.configurationData = {\n ...option.configurationData,\n VeloceParentInstanceId__c: lineItem.parentLineItem.id,\n VeloceNestedOptionId__c: nestedProductOption.optionId,\n VeloceNestedFeatureId__c: nestedProductOption.featureId,\n };\n }\n }\n } else {\n this.rpcMessage.dynamicFeatures.forEach(feature => {\n const featureOptions = optionConfigurations[feature.name] ?? (optionConfigurations[feature.name] = []);\n const originOption = featureOptions.find(({ productId }) => productId === lineItem.productId);\n const option: RpcOptionConfiguration = originOption ?? ({} as RpcOptionConfiguration);\n\n this.updateContentData(option, lineItem);\n option.index = option.index ?? featureOptions.length;\n option.selected = true;\n\n if (!originOption) {\n featureOptions.push(option);\n }\n });\n }\n });\n\n this.rpcMessage.product = { ...this.rpcMessage.product, optionConfigurations };\n }\n\n window.RPC_BROADCAST?.apply(null, [this.rpcMessage]);\n }\n\n private updateHasChildrenFlag(bundleProductId: string): void {\n const bundleOptionsByOptionId: Record<string, RpcOption> = {};\n const notBundleOptions: RpcOption[] = [];\n for (const productOption of this.rpcMessage.options) {\n if (productOption.configuredProductId === bundleProductId) {\n bundleOptionsByOptionId[productOption.optionalProductId] = productOption;\n } else {\n notBundleOptions.push(productOption);\n }\n }\n for (const option of notBundleOptions) {\n if (bundleOptionsByOptionId[option.configuredProductId]) {\n bundleOptionsByOptionId[option.configuredProductId].hasChildren = true;\n }\n }\n }\n\n private flattenChildLineItems(lineItem: LineItem): LineItemWithParent[] {\n let items = lineItem.lineItems ?? [];\n for (let i = 0; i < items.length; i++) {\n const item = items[i];\n if (item.lineItems) {\n items = items.concat(item.lineItems.map(li => ({ ...li, parentLineItem: item })));\n }\n }\n return items;\n }\n\n private updateContentData(entity: RpcProduct | RpcOptionConfiguration, lineItem: LineItem): void {\n if (lineItem.productId) {\n entity.productId = lineItem.productId;\n }\n\n const quantityAttribute = lineItem.properties['quantityAttribute'];\n entity.Quantity = quantityAttribute\n ? lineItem.attributes.find(attribute => attribute.name === quantityAttribute)?.value ?? 1\n : lineItem.qty;\n\n const totalPrice = this.computeNetPrice(lineItem);\n const targetTotalPriceField = lineItem.properties['TargetTotalPriceField'] || 'TotalPrice__c';\n entity.configurationData[targetTotalPriceField] = entity.configurationData[targetTotalPriceField]\n ? entity.configurationData[targetTotalPriceField] + totalPrice\n : totalPrice;\n\n const targetPriceField = lineItem.properties['TargetPriceField'] || 'SBQQ__ListPrice__c';\n const price = entity.Quantity != null ? entity.configurationData[targetTotalPriceField] / entity.Quantity || 0 : 0;\n const targetPriceValue = Number(entity.configurationData[targetPriceField]) || 0;\n entity.configurationData[targetPriceField] = targetPriceValue\n ? (targetPriceValue + price).toFixed(2)\n : price.toFixed(2);\n\n entity.configurationAttributes = this.mapAttributesTo('Attribute', lineItem);\n entity.configurationData = {\n ...entity.configurationData,\n ...this.mapAttributesTo('Field', lineItem),\n ...this.mapAttributesTo('', lineItem),\n VeloceInstanceId__c: lineItem.id,\n };\n }\n\n private computeNetPrice(lineItem: LineItem): number {\n if (lineItem.properties['GroupCharges']) {\n return this.sumNetPrice(lineItem.chargeGroupItems, this.getChargeNameSet(lineItem.properties['GroupCharges']));\n }\n\n return this.sumNetPrice(lineItem.chargeItems, this.getChargeNameSet(lineItem.properties['Charges']));\n }\n\n private getChargeNameSet(property?: string): Set<string> {\n if (property && property.length > 0) {\n return new Set(property.split(','));\n }\n\n return new Set();\n }\n\n private sumNetPrice(chargeItems: ChargeGroupItem[], charges: Set<string>): number {\n let netPrice = 0;\n\n for (const chargeItem of chargeItems) {\n if (!charges || charges.has(chargeItem.chargeType)) {\n netPrice += chargeItem.netPrice ?? 0;\n }\n }\n\n return netPrice;\n }\n\n private mapAttributesTo(target: string, lineItem: LineItem): Record<string, any> {\n const result: Record<string, any> = {};\n const component = this.runtimeService.runtimeModel?.components.get(lineItem.type);\n\n if (!component) {\n return result;\n }\n\n const propertyName = 'mapTo' + target;\n component.attributes\n .filter(a => a.properties && a.properties[propertyName])\n .forEach(mapping => {\n const attribute = lineItem.attributes.find(a => a.name === mapping.name);\n\n if (attribute) {\n new Set(mapping.properties[propertyName].split(',')).forEach(k => (result[k] = attribute.value));\n }\n });\n\n return result;\n }\n\n private getOptionConfigurations(product: RpcProduct): Record<string, RpcOptionConfiguration[]> {\n const optionConfigurations: Record<string, RpcOptionConfiguration[]> = {};\n const requestOptionConfigurations = product.optionConfigurations ?? {};\n\n Object.keys(requestOptionConfigurations).forEach(k => {\n optionConfigurations[k] = (requestOptionConfigurations[k] ?? []).map(opt => {\n return { ...opt, selected: false };\n });\n });\n\n return optionConfigurations;\n }\n}\n","<ng-container *ngIf=\"state$ | async as state\">\n <vl-loader *ngIf=\"state.loading; else content\" [label]=\"'Loading UI'\"></vl-loader>\n\n <ng-template #content>\n <ng-container *ngIf=\"!state.failure\">\n <vl-cms-preview [uiDefinition]=\"uiDefinition\"></vl-cms-preview>\n </ng-container>\n </ng-template>\n</ng-container>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { LoaderModule } from '@veloceapps/components';\nimport { PreviewModule } from '@veloceapps/sdk/cms';\nimport { RemoteComponent } from './remote.component';\n\n@NgModule({\n declarations: [RemoteComponent],\n imports: [CommonModule, PreviewModule, LoaderModule],\n exports: [RemoteComponent],\n})\nexport class RemoteModule {}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Inject,\n OnDestroy,\n OnInit,\n Optional,\n} from '@angular/core';\nimport { UITemplatesApiService } from '@veloceapps/api';\nimport { ToastService, ToastType } from '@veloceapps/components';\nimport {\n ComponentAttachments,\n TemplateComponent,\n UIDefinition,\n UITemplate,\n UITemplateComponentType,\n} from '@veloceapps/core';\nimport { ContextService } from '@veloceapps/sdk/core';\nimport { BehaviorSubject, Observable, Subject, catchError, map, of, switchMap, takeUntil, tap } from 'rxjs';\nimport { FLOW_CUSTOMIZATION, FlowCustomization } from '../../types';\n\ninterface State {\n loading: boolean;\n failure: boolean;\n}\n\n@Component({\n selector: 'vl-flow-shopping-cart',\n templateUrl: './shopping-cart.component.html',\n styleUrls: ['./shopping-cart.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ShoppingCartComponent implements OnInit, OnDestroy {\n public uiDefinition?: UIDefinition = undefined;\n public state$ = new BehaviorSubject<State>({ loading: true, failure: false });\n\n private templateApiName = '';\n private destroyed$ = new Subject<void>();\n\n constructor(\n private templatesApi: UITemplatesApiService,\n private contextService: ContextService,\n private cdr: ChangeDetectorRef,\n private toastService: ToastService,\n @Optional() @Inject(FLOW_CUSTOMIZATION) private customizationService?: FlowCustomization,\n ) {\n this.templateApiName = this.contextService.resolve().properties.cartTemplateApiName ?? '';\n }\n\n public ngOnInit(): void {\n this.generateUIDefinition$()\n .pipe(\n tap(uiDef => {\n if (!uiDef) {\n throw new Error(`Component with name '${this.templateApiName}' not found.`);\n }\n\n this.uiDefinition = uiDef;\n this.state$.next({ loading: false, failure: false });\n }),\n catchError(err => {\n const message = 'Failed to resolve Shopping cart component. ' + (err.message ?? '');\n this.toastService.add({ severity: ToastType.error, summary: message, sticky: true });\n\n this.uiDefinition = undefined;\n this.state$.next({ loading: false, failure: true });\n return of();\n }),\n takeUntil(this.destroyed$),\n )\n .subscribe(() => this.cdr.detectChanges());\n }\n\n public ngOnDestroy(): void {\n this.destroyed$.next();\n this.destroyed$.complete();\n }\n\n private getTemplateRootComponent$(template: UITemplate): Observable<TemplateComponent | undefined> {\n return this.templatesApi\n .fetchComponents$(template.id)\n .pipe(map(components => components.find(c => c.type === UITemplateComponentType.ROOT) ?? undefined));\n }\n\n private getLocalShoppingCartComponentMeta$(): Observable<ComponentAttachments | undefined> {\n if (!this.customizationService?.getShoppingCartComponent) {\n return of(undefined);\n }\n\n return this.customizationService?.getShoppingCartComponent(this.templateApiName).pipe(\n map(component => {\n if (!component) {\n return;\n }\n\n return <ComponentAttachments>{\n html: component.html,\n css: component.css,\n js: component.js,\n json: component.json,\n };\n }),\n );\n }\n\n private getShoppingCartComponentMeta$(): Observable<ComponentAttachments | undefined> {\n return this.templatesApi.fetchTemplates$().pipe(\n map<UITemplate[], UITemplate | undefined>(templates =>\n templates.find(template => template.name === this.templateApiName),\n ),\n switchMap(template => (template ? this.getTemplateRootComponent$(template) : of(undefined))),\n switchMap(component =>\n component ? this.templatesApi.fetchComponentAttachments$(component.uiTemplateId, component) : of(undefined),\n ),\n );\n }\n\n private generateUIDefinition$(): Observable<UIDefinition | undefined> {\n return of(undefined).pipe(\n tap(() => {\n if (!this.templateApiName) {\n throw new Error(\"Flow Query parameter 'cartTemplateApiName' is missing.\");\n }\n }),\n switchMap(() => this.getLocalShoppingCartComponentMeta$()),\n switchMap(meta => (meta ? of(meta) : this.getShoppingCartComponentMeta$())),\n map(meta => {\n if (!meta) {\n return;\n }\n\n const uiDef: UIDefinition = {\n name: '',\n createdTimestamp: 0,\n primary: true,\n type: 'DEFAULT',\n version: 2,\n children: [\n {\n children: [],\n template: meta.html && btoa(meta.html),\n script: meta.js && btoa(meta.js),\n styles: meta.css && btoa(meta.css),\n },\n ],\n };\n\n return uiDef;\n }),\n );\n }\n}\n","<ng-container *ngIf=\"state$ | async as state\">\n <vl-loader *ngIf=\"state.loading; else content\" [label]=\"'Loading UI'\"></vl-loader>\n\n <ng-template #content>\n <ng-container *ngIf=\"!state.failure\">\n <vl-cms-preview [uiDefinition]=\"uiDefinition\"></vl-cms-preview>\n </ng-container>\n </ng-template>\n</ng-container>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { LoaderModule } from '@veloceapps/components';\nimport { PreviewModule } from '@veloceapps/sdk/cms';\nimport { ShoppingCartComponent } from './shopping-cart.component';\n\n@NgModule({\n declarations: [ShoppingCartComponent],\n imports: [CommonModule, PreviewModule, LoaderModule],\n exports: [ShoppingCartComponent],\n})\nexport class ShoppingCartModule {}\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, Resolve, Router } from '@angular/router';\nimport { FlowsApiService } from '@veloceapps/api';\nimport { ContextService } from '@veloceapps/sdk/core';\nimport { Dictionary } from 'lodash';\nimport { map } from 'rxjs/operators';\nimport { FlowRouterService } from '../services/flow-router.service';\nimport { getDefaultProperties } from '../utils';\n\n@Injectable()\nexport class FlowResolver implements Resolve<Promise<boolean>> {\n constructor(\n private router: Router,\n private flowsApiService: FlowsApiService,\n private routerService: FlowRouterService,\n private contextService: ContextService,\n ) {}\n\n private handleError(\n route: ActivatedRouteSnapshot,\n message?: string,\n queryParams?: Dictionary<any>,\n ): Promise<boolean> {\n const parentUrl = this.routerService.getFlowRootPath(route);\n return this.router.navigate([parentUrl, '404'], {\n queryParams,\n state: {\n message: message,\n },\n });\n }\n\n public resolve(route: ActivatedRouteSnapshot): any {\n const { queryParams } = route;\n const { flowId } = queryParams;\n\n if (!flowId) {\n return this.handleError(route);\n }\n\n return this.flowsApiService.getFlow(flowId).pipe(\n map(flow => {\n if (!flow) {\n return this.handleError(route, `Flow with flowId=${flowId} is not defined`);\n }\n\n const { properties } = flow;\n const { queryParams: flowQueryParams, entryPath } = properties;\n const mergedParams = {\n ...queryParams,\n ...flowQueryParams,\n ...getDefaultProperties({ flowParams: properties }),\n };\n\n const contextProperties = Object.entries(mergedParams).reduce<Dictionary<string>>(\n (trunk, [key, value]) => ({ ...trunk, [key]: String(value) }),\n {},\n );\n\n this.contextService.update({ properties: contextProperties });\n\n const parentUrl = this.routerService.getFlowRootPath(route);\n const entryUrl = String(entryPath ?? '')\n .split('/')\n .filter(Boolean);\n\n return this.router\n .navigate([parentUrl, ...entryUrl], {\n queryParams: mergedParams,\n replaceUrl: true,\n })\n .catch(e => {\n const message = e instanceof HttpErrorResponse ? e.error.message : e;\n return this.handleError(route, message, mergedParams);\n });\n }),\n );\n }\n}\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, Resolve, Router } from '@angular/router';\nimport { ConfigurationContextMode, FlowRouteParams } from '@veloceapps/core';\nimport { IntegrationState } from '@veloceapps/sdk/cms';\nimport {\n ContextService,\n FlowConfigurationService,\n QuoteDraftService,\n generateModifiedAssetsMap,\n} from '@veloceapps/sdk/core';\nimport { Observable, catchError, from, of, switchMap, tap } from 'rxjs';\nimport { FlowRouterService } from '../services/flow-router.service';\n\n@Injectable()\nexport class QuoteResolver implements Resolve<void | boolean> {\n constructor(\n private router: Router,\n private quoteDraftService: QuoteDraftService,\n private routerService: FlowRouterService,\n private contextService: ContextService,\n private flowConfiguration: FlowConfigurationService,\n private integrationState: IntegrationState,\n ) {}\n\n private handleError(route: ActivatedRouteSnapshot, message: string): Observable<boolean> {\n const parentUrl = this.routerService.getFlowRootPath(route);\n return from(this.router.navigate([parentUrl, '404'], { state: { message } }));\n }\n\n private calculate$(): Observable<void> {\n const quoteDraft = this.quoteDraftService.quoteDraft;\n\n if (!this.quoteDraftService.isStandalone && quoteDraft && !this.accountHasNotAssets()) {\n return this.flowConfiguration.calculate$(quoteDraft);\n }\n\n return of(undefined);\n }\n\n public resolve(route: ActivatedRouteSnapshot): Observable<void | boolean> {\n const { headerId } = this.contextService.resolve();\n const quote = this.quoteDraftService.quoteDraft;\n\n if (quote && quote.quoteId === headerId) {\n return of(true);\n }\n\n const queryParams = route.queryParams as FlowRouteParams;\n\n return this.quoteDraftService.init(headerId, queryParams).pipe(\n switchMap(() => this.calculate$()),\n tap(() => {\n if (!this.quoteDraftService.isStandalone && queryParams.suppressInitialNavigation !== 'true') {\n if (this.shouldNavigateToAssets()) {\n this.changeNavigation('/assets', route);\n } else if (!this.quoteDraftService.isInitialized && this.quoteDraftService.hasProducts) {\n this.changeNavigation('/cart', route);\n }\n }\n\n this.initializeModifiedAssetsMap();\n this.quoteDraftService.isInitialized = true;\n this.quoteDraftService.hasUnsavedChanges = false;\n }),\n catchError(e => {\n const message = e instanceof HttpErrorResponse ? e.error.message : e;\n return this.handleError(route, message);\n }),\n );\n }\n\n private changeNavigation(path: string, route: ActivatedRouteSnapshot): void {\n const parentUrl = this.routerService.getFlowRootPath(route);\n\n this.router\n .navigate([parentUrl + path], {\n queryParams: route.queryParams,\n replaceUrl: true,\n })\n .catch(e => {\n const message = e instanceof HttpErrorResponse ? e.error.message : e;\n return this.handleError(route, message);\n });\n }\n\n private shouldNavigateToAssets(): boolean {\n if (this.contextService.mode === ConfigurationContextMode.ACCOUNT) {\n return true;\n }\n\n return this.quoteDraftService.quoteDraft?.currentState.some(li => !!li.assetId) ?? false;\n }\n\n private accountHasNotAssets(): boolean {\n return this.contextService.mode === ConfigurationContextMode.ACCOUNT && !this.quoteDraftService.hasProducts;\n }\n\n private initializeModifiedAssetsMap(): void {\n this.integrationState.patchState({\n modifiedAssets: generateModifiedAssetsMap(this.quoteDraftService.currentState),\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { VELOCE_FLOW_ROOT_ROUTE } from './constants';\nimport { FlowComponent } from './flow.component';\nimport { ContextGuard } from './guards/context.guard';\nimport { ProductUnloadGuard } from './guards/product-unload.guard';\nimport { RootGuard } from './guards/root.guard';\nimport { AssetsComponent } from './pages/assets/assets.component';\nimport { AssetsModule } from './pages/assets/assets.module';\nimport { CatalogComponent } from './pages/catalog/catalog.component';\nimport { CatalogModule } from './pages/catalog/catalog.module';\nimport { DebugModule } from './pages/debug/debug.module';\nimport { EmptyAccountComponent } from './pages/empty-account/empty-account.component';\nimport { EmptyAccountModule } from './pages/empty-account/empty-account.module';\nimport { LegacyProductComponent } from './pages/legacy-product/legacy-product.component';\nimport { LegacyProductModule } from './pages/legacy-product/legacy-product.module';\nimport { ProductComponent } from './pages/product/product.component';\nimport { ProductModule } from './pages/product/product.module';\nimport { RecordNotFoundModule } from './pages/record-not-found/record-not-found.module';\nimport { RemoteComponent } from './pages/remote/remote.component';\nimport { RemoteModule } from './pages/remote/remote.module';\nimport { ShoppingCartComponent } from './pages/shopping-cart/shopping-cart.component';\nimport { ShoppingCartModule } from './pages/shopping-cart/shopping-cart.module';\nimport { FlowResolver } from './resolvers/flow.resolver';\nimport { QuoteResolver } from './resolvers/quote.resolver';\nimport { FlowRouterService } from './services/flow-router.service';\nimport { RouteWithId } from './types/route.types';\n\nconst rootRoute: RouteWithId = {\n id: VELOCE_FLOW_ROOT_ROUTE,\n path: '',\n component: FlowComponent,\n canActivate: [RootGuard],\n canDeactivate: [RootGuard],\n children: [\n {\n path: 'flows',\n runGuardsAndResolvers: 'paramsOrQueryParamsChange',\n resolve: { quote: FlowResolver },\n canActivate: [ContextGuard],\n children: [],\n },\n {\n path: 'legacy',\n children: [\n {\n path: 'product',\n component: LegacyProductComponent,\n runGuardsAndResolvers: 'paramsOrQueryParamsChange',\n resolve: { quote: QuoteResolver },\n canActivate: [ContextGuard],\n },\n ],\n },\n {\n path: 'product',\n component: ProductComponent,\n runGuardsAndResolvers: 'paramsOrQueryParamsChange',\n resolve: { quote: QuoteResolver },\n canActivate: [ContextGuard],\n canDeactivate: [ProductUnloadGuard],\n data: { showHeader: true },\n },\n {\n path: 'cart',\n component: ShoppingCartComponent,\n runGuardsAndResolvers: 'paramsOrQueryParamsChange',\n resolve: { quote: QuoteResolver },\n canActivate: [ContextGuard],\n data: { showHeader: true },\n },\n {\n path: 'catalog',\n component: CatalogComponent,\n runGuardsAndResolvers: 'paramsOrQueryParamsChange',\n resolve: { quote: QuoteResolver },\n canActivate: [ContextGuard],\n data: { showHeader: true },\n },\n {\n path: 'assets',\n component: AssetsComponent,\n runGuardsAndResolvers: 'paramsOrQueryParamsChange',\n resolve: { quote: QuoteResolver },\n canActivate: [ContextGuard],\n data: { showHeader: true },\n },\n {\n path: 'empty',\n component: EmptyAccountComponent,\n runGuardsAndResolvers: 'paramsOrQueryParamsChange',\n resolve: { quote: QuoteResolver },\n canActivate: [ContextGuard],\n data: { showHeader: true },\n },\n {\n path: 'remote',\n component: RemoteComponent,\n runGuardsAndResolvers: 'paramsOrQueryParamsChange',\n resolve: { quote: QuoteResolver },\n canActivate: [ContextGuard],\n },\n {\n path: 'debug',\n loadChildren: () => DebugModule,\n },\n {\n path: '404',\n loadChildren: () => RecordNotFoundModule,\n },\n ],\n};\n\n@NgModule({\n imports: [\n RouterModule.forChild([rootRoute]),\n ProductModule,\n LegacyProductModule,\n ShoppingCartModule,\n CatalogModule,\n AssetsModule,\n RemoteModule,\n EmptyAccountModule,\n ],\n exports: [RouterModule],\n providers: [FlowRouterService, RootGuard, ContextGuard, ProductUnloadGuard, FlowResolver, QuoteResolver],\n})\nexport class FlowRoutingModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ApiModule } from '@veloceapps/api';\nimport { LetDirectiveModule, LoaderModule } from '@veloceapps/components';\nimport { LauncherModule } from '@veloceapps/sdk/cms';\nimport { SdkCoreModule } from '@veloceapps/sdk/core';\nimport { FlowDialogModule } from './components/dialog/dialog.module';\nimport { DocGenModule } from './components/doc-gen/doc-gen.module';\nimport { GuidedSellingModule } from './components/guided-selling/guided-selling.module';\nimport { FlowHeaderModule } from './components/header/header.module';\nimport { FlowRoutingModule } from './flow-routing.module';\nimport { FlowComponent } from './flow.component';\nimport { FlowService } from './services';\nimport { FlowDocGenService } from './services/doc-gen.service';\nimport { FlowDialogService } from './services/flow-dialog.service';\nimport { FlowGuidedSellingService } from './services/guided-selling.service';\n\n@NgModule({\n declarations: [FlowComponent],\n imports: [\n CommonModule,\n LetDirectiveModule,\n FlowRoutingModule,\n ApiModule,\n LauncherModule,\n LoaderModule,\n FlowHeaderModule,\n FlowDialogModule,\n SdkCoreModule,\n DocGenModule,\n GuidedSellingModule,\n ],\n providers: [FlowService, FlowDialogService, FlowDocGenService, FlowGuidedSellingService],\n})\nexport class FlowModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2","i1","i5","i6","i3","i2.FlowRouterService","i4","i7","i8","tap","takeUntil","i9","i12","i3.FlowRouterService","i4.FlowDialogService","i10","i11","i12.CartPreviewComponent","i14.MetricsComponent","i1.FlowRouterService","i3.FlowService","i4.FlowDocGenService","i9.FlowHeaderComponent","i10.DocGenComponent","i11.GuidedSellingComponent","i3.FlowDialogService","routes","first","map","switchMap"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"veloceapps-sdk.mjs","sources":["../../../../libs/sdk/src/constants.ts","../../../../libs/sdk/src/components/dialog/dialog.component.ts","../../../../libs/sdk/src/components/dialog/dialog.component.html","../../../../libs/sdk/src/components/dialog/dialog.module.ts","../../../../libs/sdk/src/types/flow-customization.types.ts","../../../../libs/sdk/src/components/doc-gen/doc-gen.component.ts","../../../../libs/sdk/src/components/doc-gen/doc-gen.component.html","../../../../libs/sdk/src/components/doc-gen/doc-gen.module.ts","../../../../libs/sdk/src/components/guided-selling/guided-selling.component.ts","../../../../libs/sdk/src/components/guided-selling/guided-selling.component.html","../../../../libs/sdk/src/components/guided-selling/guided-selling.module.ts","../../../../libs/sdk/src/services/flow-router.service.ts","../../../../libs/sdk/src/components/header/cart-overlay/cart-preview.component.ts","../../../../libs/sdk/src/components/header/cart-overlay/cart-preview.component.html","../../../../libs/sdk/src/components/header/cart-overlay/cart-preview.module.ts","../../../../libs/sdk/src/services/flow-dialog.service.ts","../../../../libs/sdk/src/components/header/metrics/metrics.definitions.ts","../../../../libs/sdk/src/components/header/metrics/metrics.component.ts","../../../../libs/sdk/src/components/header/metrics/metrics.component.html","../../../../libs/sdk/src/components/header/header.component.ts","../../../../libs/sdk/src/components/header/header.component.html","../../../../libs/sdk/src/components/header/metrics/metrics.module.ts","../../../../libs/sdk/src/components/header/header.module.ts","../../../../libs/sdk/src/services/flow.service.ts","../../../../libs/sdk/src/services/doc-gen.service.ts","../../../../libs/sdk/src/flow.component.ts","../../../../libs/sdk/src/flow.component.html","../../../../libs/sdk/src/utils/flow.utils.ts","../../../../libs/sdk/src/guards/context.guard.ts","../../../../libs/sdk/src/guards/product-unload.guard.ts","../../../../libs/sdk/src/guards/root.guard.ts","../../../../libs/sdk/src/pages/assets/assets.component.ts","../../../../libs/sdk/src/pages/assets/assets.component.html","../../../../libs/sdk/src/pages/assets/assets.module.ts","../../../../libs/sdk/src/pages/catalog/catalog.component.ts","../../../../libs/sdk/src/pages/catalog/catalog.component.html","../../../../libs/sdk/src/pages/catalog/catalog.module.ts","../../../../libs/sdk/src/pages/debug/debug.component.ts","../../../../libs/sdk/src/pages/debug/debug.component.html","../../../../libs/sdk/src/pages/debug/debug.module.ts","../../../../libs/sdk/src/pages/empty-account/empty-account.component.ts","../../../../libs/sdk/src/pages/empty-account/empty-account.component.html","../../../../libs/sdk/src/pages/empty-account/empty-account.module.ts","../../../../libs/sdk/src/pages/product/product.component.ts","../../../../libs/sdk/src/pages/product/product.component.html","../../../../libs/sdk/src/pages/product/product.module.ts","../../../../libs/sdk/src/pages/record-not-found/record-not-found.component.ts","../../../../libs/sdk/src/pages/record-not-found/record-not-found.component.html","../../../../libs/sdk/src/pages/record-not-found/record-not-found.module.ts","../../../../libs/sdk/src/pages/remote/remote.component.ts","../../../../libs/sdk/src/pages/remote/remote.component.html","../../../../libs/sdk/src/pages/remote/remote.module.ts","../../../../libs/sdk/src/pages/shopping-cart/shopping-cart.component.ts","../../../../libs/sdk/src/pages/shopping-cart/shopping-cart.component.html","../../../../libs/sdk/src/pages/shopping-cart/shopping-cart.module.ts","../../../../libs/sdk/src/resolvers/flow.resolver.ts","../../../../libs/sdk/src/resolvers/quote.resolver.ts","../../../../libs/sdk/src/flow-routing.module.ts","../../../../libs/sdk/src/services/guided-selling.service.ts","../../../../libs/sdk/src/flow.module.ts","../../../../libs/sdk/veloceapps-sdk.ts"],"sourcesContent":["export const VELOCE_FLOW_ROOT_ROUTE = 'VELOCE_FLOW_ROOT_ROUTE';\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\nimport { FlowDialogConfig } from './dialog.types';\n\n@Component({\n selector: 'vl-flow-dialog',\n templateUrl: './dialog.component.html',\n styleUrls: ['./dialog.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FlowDialogComponent {\n public config: FlowDialogConfig;\n\n constructor(private dialogConfig: DynamicDialogConfig, private ref: DynamicDialogRef) {\n this.config = this.dialogConfig.data.config;\n }\n\n public cancelHandler(): void {\n if (this.config.oppositeButtonActions) {\n this.ref.close(true);\n } else {\n this.ref.close();\n }\n }\n\n public confirmHandler(): void {\n if (this.config.oppositeButtonActions) {\n this.ref.close();\n } else {\n this.ref.close(true);\n }\n }\n}\n","<div class=\"header\">\n <div class=\"title\">\n {{ config.title }}\n </div>\n\n <i class=\"vl-icon vl-cross\" (click)=\"cancelHandler()\"></i>\n</div>\n\n<div *ngIf=\"config.description\" class=\"description\">\n {{ config.description }}\n</div>\n\n<div class=\"form-actions\">\n <p-button\n *ngIf=\"config.secondaryButton\"\n styleClass=\"p-button-outlined button-text-bold\"\n [label]=\"config.secondaryButton!\"\n (onClick)=\"cancelHandler()\"\n ></p-button>\n <p-button\n styleClass=\"p-button p-button-filled\"\n [label]=\"config.primaryButton\"\n (onClick)=\"confirmHandler()\"\n ></p-button>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ButtonModule } from 'primeng/button';\nimport { FlowDialogComponent } from './dialog.component';\n\n@NgModule({\n declarations: [FlowDialogComponent],\n imports: [CommonModule, ButtonModule],\n exports: [FlowDialogComponent],\n})\nexport class FlowDialogModule {}\n","import { InjectionToken } from '@angular/core';\nimport { TemplateComponentWithAttachments, UIDefinitionContainer } from '@veloceapps/core';\nimport { Observable } from 'rxjs';\n\nexport const FLOW_CUSTOMIZATION = new InjectionToken<FlowCustomization>('FLOW_CUSTOMIZATION');\n\nexport interface FlowCustomization {\n getUiDefinition?(productId: string): Observable<UIDefinitionContainer | null>;\n getLegacyUiDefinition?(productId: string): Observable<UIDefinitionContainer | null>;\n getShoppingCartComponent?(templateName: string): Observable<TemplateComponentWithAttachments | null>;\n getCatalogComponent?(templateName: string): Observable<TemplateComponentWithAttachments | null>;\n getAssetsComponent?(templateName: string): Observable<TemplateComponentWithAttachments | null>;\n\n getTemplateComponent?(templateName: string): Observable<TemplateComponentWithAttachments | null>;\n}\n","import { ChangeDetectionStrategy, Component, Inject, OnDestroy, Optional } from '@angular/core';\nimport { UITemplatesApiService } from '@veloceapps/api';\nimport { ToastService, ToastType } from '@veloceapps/components';\nimport {\n ComponentAttachments,\n TemplateComponent,\n UIDefinition,\n UITemplate,\n UITemplateComponentType,\n UITemplateType,\n} from '@veloceapps/core';\nimport { extendElementMetadata, extractElementMetadata } from '@veloceapps/sdk/cms';\nimport { ContextService, QuoteDraftService } from '@veloceapps/sdk/core';\nimport { BehaviorSubject, catchError, first, map, Observable, of, Subject, switchMap, takeUntil, tap } from 'rxjs';\nimport { FlowCustomization, FLOW_CUSTOMIZATION } from '../../types';\n\n@Component({\n selector: 'vl-flow-doc-gen',\n templateUrl: './doc-gen.component.html',\n styleUrls: ['./doc-gen.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DocGenComponent implements OnDestroy {\n public uiDefinition$ = new BehaviorSubject<UIDefinition | null>(null);\n\n private templateApiName = '';\n private destroy$ = new Subject<void>();\n\n constructor(\n private quoteDraftService: QuoteDraftService,\n private contextService: ContextService,\n private templatesApi: UITemplatesApiService,\n private toastService: ToastService,\n @Optional() @Inject(FLOW_CUSTOMIZATION) private customizationService?: FlowCustomization,\n ) {\n // initialize when quote draft requested\n this.quoteDraftService.quoteDraft$\n .pipe(\n first(),\n tap(() => this.initialize()),\n takeUntil(this.destroy$),\n )\n .subscribe();\n }\n\n public ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n private initialize(): void {\n this.templateApiName = this.contextService.resolve().properties.docGenTemplateApiName ?? '';\n\n this.generateUIDefinition$()\n .pipe(\n tap(uiDef => {\n if (!uiDef) {\n throw new Error(`Component with name '${this.templateApiName}' not found.`);\n }\n\n this.uiDefinition$.next(uiDef);\n }),\n catchError(err => {\n const message = 'Failed to resolve DocGen component. ' + (err.message ?? '');\n this.toastService.add({ severity: ToastType.error, summary: message, sticky: true });\n return of();\n }),\n takeUntil(this.destroy$),\n )\n .subscribe();\n }\n\n private getTemplateRootComponent$(template: UITemplate): Observable<TemplateComponent | undefined> {\n return this.templatesApi\n .fetchComponents$(template.id)\n .pipe(map(components => components.find(c => c.type === UITemplateComponentType.ROOT) ?? undefined));\n }\n\n private getLocalTemplateComponentMeta$(): Observable<ComponentAttachments | undefined> {\n if (!this.customizationService?.getTemplateComponent) {\n return of(undefined);\n }\n\n return this.customizationService?.getTemplateComponent(this.templateApiName).pipe(\n map(component => {\n if (!component) {\n return;\n }\n\n return <ComponentAttachments>{\n html: component.html,\n css: component.css,\n js: component.js,\n json: component.json,\n };\n }),\n );\n }\n\n private getDocGenComponentMeta$(): Observable<ComponentAttachments | undefined> {\n return this.templatesApi.fetchTemplates$().pipe(\n map<UITemplate[], UITemplate | undefined>(templates => {\n const template = templates.find(\n template => template.type === UITemplateType.DOCGEN && template.name === this.templateApiName,\n );\n return template ?? templates[0];\n }),\n switchMap(template => (template ? this.getTemplateRootComponent$(template) : of(undefined))),\n switchMap(component =>\n component ? this.templatesApi.fetchComponentAttachments$(component.uiTemplateId, component) : of(undefined),\n ),\n );\n }\n\n private generateUIDefinition$(): Observable<UIDefinition | undefined> {\n return of(undefined).pipe(\n tap(() => {\n if (!this.templateApiName) {\n throw new Error(\"Flow Query parameter 'docGenTemplateApiName' is missing.\");\n }\n }),\n switchMap(() => this.getLocalTemplateComponentMeta$()),\n switchMap(meta => (meta ? of(meta) : this.getDocGenComponentMeta$())),\n map(meta => {\n if (!meta) {\n return;\n }\n\n const headerId = this.contextService.resolve().properties.Id ?? null;\n let script = meta.js;\n\n if (script) {\n const metadata = extractElementMetadata(script);\n script = extendElementMetadata(script, {\n inputs: {\n ...metadata.inputs,\n Id: headerId ? `\"${headerId}\"` : null,\n },\n });\n }\n\n const uiDef: UIDefinition = {\n name: '',\n createdTimestamp: 0,\n primary: true,\n type: 'DEFAULT',\n version: 2,\n children: [\n {\n children: [],\n template: meta.html && btoa(meta.html),\n script: script && btoa(script),\n styles: meta.css && btoa(meta.css),\n },\n ],\n };\n\n return uiDef;\n }),\n );\n }\n}\n","<ng-container *ngIf=\"uiDefinition$ | async as uiDefinition\">\n <vl-cms-preview [uiDefinition]=\"uiDefinition\"></vl-cms-preview>\n</ng-container>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { PreviewModule } from '@veloceapps/sdk/cms';\nimport { DocGenComponent } from './doc-gen.component';\n\n@NgModule({\n declarations: [DocGenComponent],\n imports: [CommonModule, PreviewModule],\n exports: [DocGenComponent],\n})\nexport class DocGenModule {}\n","import { ChangeDetectionStrategy, Component, Inject, OnDestroy, Optional } from '@angular/core';\nimport { UITemplatesApiService } from '@veloceapps/api';\nimport { ToastService, ToastType } from '@veloceapps/components';\nimport {\n ComponentAttachments,\n TemplateComponent,\n UIDefinition,\n UITemplate,\n UITemplateComponentType,\n UITemplateType,\n} from '@veloceapps/core';\nimport { ContextService, QuoteDraftService } from '@veloceapps/sdk/core';\nimport { BehaviorSubject, catchError, first, map, Observable, of, Subject, switchMap, takeUntil, tap } from 'rxjs';\nimport { FlowCustomization, FLOW_CUSTOMIZATION } from '../../types';\n\n@Component({\n selector: 'vl-flow-guided-selling',\n templateUrl: './guided-selling.component.html',\n styleUrls: ['./guided-selling.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class GuidedSellingComponent implements OnDestroy {\n public uiDefinition$ = new BehaviorSubject<UIDefinition | null>(null);\n\n private templateApiName = '';\n private destroy$ = new Subject<void>();\n\n constructor(\n private quoteDraftService: QuoteDraftService,\n private contextService: ContextService,\n private templatesApi: UITemplatesApiService,\n private toastService: ToastService,\n @Optional() @Inject(FLOW_CUSTOMIZATION) private customizationService?: FlowCustomization,\n ) {\n // initialize when quote draft requested\n this.quoteDraftService.quoteDraft$\n .pipe(\n first(),\n tap(() => this.initialize()),\n takeUntil(this.destroy$),\n )\n .subscribe();\n }\n\n public ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n private initialize(): void {\n this.templateApiName = this.contextService.resolve().properties.guidedSellingTemplateApiName ?? '';\n\n this.generateUIDefinition$()\n .pipe(\n tap(uiDef => {\n if (!uiDef) {\n throw new Error(`Component with name '${this.templateApiName}' not found.`);\n }\n\n this.uiDefinition$.next(uiDef);\n }),\n catchError(err => {\n const message = 'Failed to resolve Guided Selling component. ' + (err.message ?? '');\n this.toastService.add({ severity: ToastType.error, summary: message, sticky: true });\n return of();\n }),\n takeUntil(this.destroy$),\n )\n .subscribe();\n }\n\n private getTemplateRootComponent$(template: UITemplate): Observable<TemplateComponent | undefined> {\n return this.templatesApi\n .fetchComponents$(template.id)\n .pipe(map(components => components.find(c => c.type === UITemplateComponentType.ROOT) ?? undefined));\n }\n\n private getLocalTemplateComponentMeta$(): Observable<ComponentAttachments | undefined> {\n if (!this.customizationService?.getTemplateComponent) {\n return of(undefined);\n }\n\n return this.customizationService?.getTemplateComponent(this.templateApiName).pipe(\n map(component => {\n if (!component) {\n return;\n }\n\n return <ComponentAttachments>{\n html: component.html,\n css: component.css,\n js: component.js,\n json: component.json,\n };\n }),\n );\n }\n\n private getGuidedSellingComponentMeta$(): Observable<ComponentAttachments | undefined> {\n return this.templatesApi.fetchTemplates$().pipe(\n map<UITemplate[], UITemplate | undefined>(templates => {\n const template = templates.find(\n template => template.type === UITemplateType.GUIDED_SELLING && template.name === this.templateApiName,\n );\n return template ?? templates[0];\n }),\n switchMap(template => (template ? this.getTemplateRootComponent$(template) : of(undefined))),\n switchMap(component =>\n component ? this.templatesApi.fetchComponentAttachments$(component.uiTemplateId, component) : of(undefined),\n ),\n );\n }\n\n private generateUIDefinition$(): Observable<UIDefinition | undefined> {\n return of(undefined).pipe(\n tap(() => {\n if (!this.templateApiName) {\n throw new Error(\"Flow Query parameter 'guidedSellingTemplateApiName' is missing.\");\n }\n }),\n switchMap(() => this.getLocalTemplateComponentMeta$()),\n switchMap(meta => (meta ? of(meta) : this.getGuidedSellingComponentMeta$())),\n map(meta => {\n if (!meta) {\n return;\n }\n\n const uiDef: UIDefinition = {\n name: '',\n createdTimestamp: 0,\n primary: true,\n type: 'DEFAULT',\n version: 2,\n children: [\n {\n children: [],\n template: meta.html && btoa(meta.html),\n script: meta.js && btoa(meta.js),\n styles: meta.css && btoa(meta.css),\n },\n ],\n };\n\n return uiDef;\n }),\n );\n }\n}\n","<ng-container *ngIf=\"uiDefinition$ | async as uiDefinition\">\n <vl-cms-preview [uiDefinition]=\"uiDefinition\"></vl-cms-preview>\n</ng-container>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { PreviewModule } from '@veloceapps/sdk/cms';\nimport { GuidedSellingComponent } from './guided-selling.component';\n\n@NgModule({\n declarations: [GuidedSellingComponent],\n imports: [CommonModule, PreviewModule],\n exports: [GuidedSellingComponent],\n})\nexport class GuidedSellingModule {}\n","import { Injectable } from '@angular/core';\nimport {\n ActivatedRoute,\n ActivatedRouteSnapshot,\n Event,\n NavigationCancel,\n NavigationEnd,\n NavigationError,\n NavigationStart,\n Params,\n Router,\n} from '@angular/router';\nimport { SalesforceIdUtils } from '@veloceapps/core';\nimport { FlowAction, IntegrationState } from '@veloceapps/sdk/cms';\nimport { ContextService } from '@veloceapps/sdk/core';\nimport { Observable, distinctUntilChanged, filter, map, shareReplay, startWith } from 'rxjs';\nimport { VELOCE_FLOW_ROOT_ROUTE } from '../constants';\nimport { RouteWithId } from '../types/route.types';\n\n@Injectable({ providedIn: 'root' })\nexport class FlowRouterService {\n private routeChange$: Observable<Event>;\n private lastChildParams$: Observable<Params>;\n private lastChildRoute$: Observable<ActivatedRouteSnapshot>;\n private urlHistory: string[] = [];\n\n public loading$: Observable<boolean>;\n\n constructor(\n private router: Router,\n private route: ActivatedRoute,\n private contextService: ContextService,\n private integrationState: IntegrationState,\n ) {\n this.routeChange$ = this.router.events.pipe(\n filter(e => e instanceof NavigationEnd),\n shareReplay(),\n );\n\n this.lastChildParams$ = this.watchLastChildParams$(this.route).pipe(\n startWith(this.getLastChildParams(this.route.snapshot)),\n shareReplay(),\n );\n this.lastChildRoute$ = this.watchLastChildRoute$(this.route).pipe(\n startWith(this.getLastChildRouteSnapshot(this.route.snapshot)),\n shareReplay(),\n );\n\n this.loading$ = this.router.events.pipe(\n filter(\n e =>\n e instanceof NavigationStart ||\n e instanceof NavigationCancel ||\n e instanceof NavigationEnd ||\n e instanceof NavigationError,\n ),\n map(e => e instanceof NavigationStart),\n startWith(false),\n distinctUntilChanged(),\n );\n\n this.routeChange$.subscribe(() => {\n this.urlHistory.push(this.router.url);\n\n // Close Guided Selling when user navigates to another flow page\n this.integrationState.dispatch(FlowAction.CloseGuidedSelling({ keepState: true }));\n });\n }\n\n public getFlowRootRoute(route: ActivatedRouteSnapshot): ActivatedRouteSnapshot | undefined {\n const path = [...route.pathFromRoot];\n\n while (path.length) {\n const parent = path.pop();\n\n if (!parent) {\n break;\n }\n\n if ((parent.routeConfig as RouteWithId)?.id === VELOCE_FLOW_ROOT_ROUTE) {\n return parent;\n }\n }\n\n return;\n }\n\n public getFlowRootPath(route: ActivatedRouteSnapshot): string {\n const rootRoute = this.getFlowRootRoute(route);\n if (!rootRoute) {\n return '';\n }\n\n const path = rootRoute.pathFromRoot\n .map(r => r.url[0])\n .filter(Boolean)\n .join('/');\n\n return '/' + path;\n }\n\n public get route$(): Observable<ActivatedRouteSnapshot> {\n return this.lastChildRoute$;\n }\n\n public get params$(): Observable<Params> {\n return this.lastChildParams$;\n }\n\n public getLastChildRoute = (route: ActivatedRoute): ActivatedRoute => {\n return route.firstChild ? this.getLastChildRoute(route.firstChild) : route;\n };\n\n public getNthChildRoute = (route: ActivatedRoute, index: number): ActivatedRoute => {\n if (index <= 0) {\n return route;\n }\n\n return route.firstChild ? this.getNthChildRoute(route.firstChild, index - 1) : route;\n };\n\n public getLastChildRouteSnapshot = (route: ActivatedRouteSnapshot): ActivatedRouteSnapshot => {\n return route.firstChild ? this.getLastChildRouteSnapshot(route.firstChild) : route;\n };\n\n public watchLastChildRoute$ = (route: ActivatedRoute): Observable<ActivatedRouteSnapshot> => {\n return this.routeChange$.pipe(map(() => this.getLastChildRouteSnapshot(route.snapshot)));\n };\n\n public getLastChildParams = (route: ActivatedRouteSnapshot): Params => {\n return route.firstChild ? this.getLastChildParams(route.firstChild) : route.params;\n };\n\n public watchLastChildParams$ = (route: ActivatedRoute): Observable<Params> => {\n return this.routeChange$.pipe(map(() => this.getLastChildParams(route.snapshot)));\n };\n\n public getFlowSubpath$ = (): Observable<string> => {\n return this.route$.pipe(\n map(route => {\n const url = route.url.join('/');\n const flowRootUrl = this.getFlowRootPath(route);\n return url.replace(flowRootUrl, '');\n }),\n );\n };\n\n public isConfigurationRoute$(): Observable<boolean> {\n return this.getFlowSubpath$().pipe(map(url => url.startsWith('product')));\n }\n\n public isCartRoute$(): Observable<boolean> {\n return this.getFlowSubpath$().pipe(map(url => url.startsWith('cart')));\n }\n\n public isCatalogRoute$(): Observable<boolean> {\n return this.getFlowSubpath$().pipe(map(url => url.startsWith('catalog')));\n }\n\n public isAssetsRoute$(): Observable<boolean> {\n return this.getFlowSubpath$().pipe(map(url => url.startsWith('assets')));\n }\n\n public navigateBack(): void {\n const prevUrl = this.urlHistory[this.urlHistory.length - 2];\n\n if (prevUrl) {\n this.router.navigateByUrl(prevUrl);\n }\n }\n\n public navigateToProductConfiguration(productId: string, lineItemId?: string): void {\n this.contextService.update({ properties: { productId, lineItemId } });\n\n const routeSnapshot = this.getLastChildRouteSnapshot(this.route.snapshot);\n const flowRouteUrl = this.getFlowRootPath(routeSnapshot);\n\n this.router.navigate([flowRouteUrl, 'product'], {\n queryParams: { ...routeSnapshot.queryParams, productId },\n });\n }\n\n public navigateToShoppingCart(): void {\n const routeSnapshot = this.getLastChildRouteSnapshot(this.route.snapshot);\n const flowRouteUrl = this.getFlowRootPath(routeSnapshot);\n\n this.router.navigate([flowRouteUrl, 'cart'], { queryParams: routeSnapshot.queryParams });\n }\n\n public navigateToCatalog(): void {\n const routeSnapshot = this.getLastChildRouteSnapshot(this.route.snapshot);\n const flowRouteUrl = this.getFlowRootPath(routeSnapshot);\n\n this.router.navigate([flowRouteUrl, 'catalog'], { queryParams: routeSnapshot.queryParams });\n }\n\n public navigateToAssets(): void {\n const routeSnapshot = this.getLastChildRouteSnapshot(this.route.snapshot);\n const flowRouteUrl = this.getFlowRootPath(routeSnapshot);\n\n this.router.navigate([flowRouteUrl, 'assets'], { queryParams: routeSnapshot.queryParams });\n }\n\n public switchObject(id: string): void {\n const routeSnapshot = this.getLastChildRouteSnapshot(this.route.snapshot);\n const route = this.getLastChildRoute(this.route);\n\n const objName = SalesforceIdUtils.getSfObjectNameById(id);\n\n const queryParams = {\n quoteId: objName === 'Quote' ? id : undefined,\n accountId: objName === 'Account' ? id : undefined,\n orderId: objName === 'Order' ? id : undefined,\n };\n this.router.navigate([], { relativeTo: route, queryParams: { ...routeSnapshot.queryParams, ...queryParams } });\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n Input,\n OnChanges,\n OnDestroy,\n SimpleChanges,\n ViewChild,\n} from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { FlowConfigurationService, ProductImagesService, QuoteDraftService } from '@veloceapps/sdk/core';\nimport { OverlayPanel } from 'primeng/overlaypanel';\nimport { BehaviorSubject, Observable, Subject, combineLatest, filter, map, takeUntil } from 'rxjs';\nimport { FlowRouterService } from '../../../services/flow-router.service';\nimport { HeaderProduct } from '../header.types';\n\n@Component({\n selector: 'vl-cart-preview',\n templateUrl: './cart-preview.component.html',\n styleUrls: ['./cart-preview.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CartPreviewComponent implements OnChanges, AfterViewInit, OnDestroy {\n @ViewChild(OverlayPanel) public overlayPanel!: OverlayPanel;\n\n @Input() public products!: HeaderProduct[];\n\n public readonly productRowHeight = 65;\n\n public form = new FormGroup({});\n public lockedProductId$: Observable<string | null>;\n public isEditMode$: Observable<boolean>;\n public hasTermInProducts = false;\n public scrollHeight = 0;\n\n private shouldUpdate$ = new BehaviorSubject(true);\n private destroyed$ = new Subject<void>();\n\n constructor(\n private flowConfiguration: FlowConfigurationService,\n private routerService: FlowRouterService,\n private productImagesService: ProductImagesService,\n private quoteDraftService: QuoteDraftService,\n ) {\n this.lockedProductId$ = combineLatest([this.routerService.route$, this.routerService.isConfigurationRoute$()]).pipe(\n map(([route, isConfigurationRoute]) => {\n if (!isConfigurationRoute) {\n return null;\n }\n\n return route.queryParams['productId'];\n }),\n );\n\n this.isEditMode$ = this.quoteDraftService.isEditMode$();\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n const { products } = changes;\n\n if (products) {\n this.shouldUpdate$.next(true);\n this.scrollHeight = Math.min(this.products.length * this.productRowHeight, 460);\n }\n }\n\n public ngAfterViewInit(): void {\n combineLatest([this.lockedProductId$, this.isEditMode$, this.shouldUpdate$, this.overlayPanel.onShow])\n .pipe(\n filter(() => this.overlayPanel.overlayVisible),\n takeUntil(this.destroyed$),\n )\n .subscribe(([lockedProductId, isEditMode]) => this.updateControls(this.products, isEditMode, lockedProductId));\n }\n\n public ngOnDestroy(): void {\n this.destroyed$.next();\n this.destroyed$.complete();\n }\n\n public getImageUrl(productId: string): Observable<string | null> {\n return this.productImagesService.getImageUrl$(productId);\n }\n\n public navigateToProductConfiguration(productId: string, lineItemId: string): void {\n this.overlayPanel.hide();\n this.routerService.navigateToProductConfiguration(productId, lineItemId);\n }\n\n public controlBlurHandler(product: HeaderProduct): void {\n const control = this.form.get(product.id);\n if (!control || control.invalid) {\n return;\n }\n\n this.flowConfiguration.update([\n {\n dataType: 'LINEITEM',\n attributeType: 'QTY',\n id: product.id,\n newValue: control.value,\n },\n ]);\n }\n\n public deleteHandler(product: HeaderProduct): void {\n this.flowConfiguration.delete([product.id]);\n }\n\n public deleteAllHandler(): void {\n const productIds = this.products.map(product => product.id);\n this.flowConfiguration.delete(productIds);\n }\n\n private updateControls(products: HeaderProduct[], isEditMode: boolean, lockedProductId: string | null): void {\n const ids: string[] = [];\n\n products.forEach(item => {\n if (!item.id) {\n return;\n }\n\n ids.push(item.id);\n\n let control = this.form.get(item.id);\n\n if (!control) {\n control = new FormControl(item.qty, []);\n this.form.addControl(item.id, control);\n } else {\n control.setValue(item.qty);\n }\n\n if (!isEditMode || item.deleted || item.productId === lockedProductId) {\n control.disable();\n } else {\n control.enable();\n }\n });\n\n const removedIds = Object.keys(this.form.controls).filter(id => !ids.includes(id));\n removedIds.forEach(id => this.form.removeControl(id));\n this.hasTermInProducts = products.some((item: HeaderProduct) => item.hasTerm);\n }\n}\n","<p-overlayPanel\n styleClass=\"catalog-overlay flow-header-overlay center no-padding\"\n showTransitionOptions=\"0ms\"\n hideTransitionOptions=\"0ms\"\n>\n <ng-template pTemplate>\n <div class=\"flow-header-overlay__wrapper\" *vlLet=\"lockedProductId$ | async as lockedProductId\">\n <ng-container *vlLet=\"isEditMode$ | async as isEditMode\">\n <ng-container *ngIf=\"products.length > 0; else empty\">\n <h2 class=\"flow-header-overlay__title\">\n <span>Products ({{ products.length }})</span>\n <i class=\"vl-icon vl-cross close-icon\" (click)=\"overlayPanel.hide()\"></i>\n </h2>\n\n <p-virtualScroller [value]=\"products\" scrollHeight=\"{{ scrollHeight }}px\" [itemSize]=\"productRowHeight\">\n <ng-template pTemplate=\"item\" let-product>\n <div\n class=\"product item\"\n *vlLet=\"!isEditMode || product.deleted as isReadonlyProduct\"\n [class.readonly]=\"isReadonlyProduct\"\n [class.deleted]=\"product.deleted\"\n >\n <ng-container *vlLet=\"lockedProductId === product.productId as isLockedProduct\">\n <div class=\"product__info\">\n <div class=\"product__image-wrapper\">\n <div\n *ngIf=\"getImageUrl(product.productId) | async as imageUrl; else noImage\"\n class=\"product__image\"\n [ngStyle]=\"{ 'background-image': 'url(' + imageUrl + ')' }\"\n ></div>\n </div>\n <div class=\"flex flex-column justify-content-center\">\n <div class=\"word-break product-name\" [class.line-through]=\"product.deleted\">\n {{ product.name }}\n </div>\n <div class=\"actions\" *ngIf=\"!isReadonlyProduct\">\n <p-button\n label=\"Configure\"\n [disabled]=\"isLockedProduct || !product.configurable || product.hasTerm\"\n styleClass=\"p-button-link p-button-sm\"\n (onClick)=\"navigateToProductConfiguration(product.productId, product.id)\"\n ></p-button>\n <p-button\n label=\"Delete\"\n [disabled]=\"isLockedProduct || product.hasTerm\"\n styleClass=\"p-button-link p-button-sm p-button-secondary\"\n (onClick)=\"deleteHandler(product)\"\n ></p-button>\n </div>\n </div>\n </div>\n\n <ng-container *ngIf=\"form.get(product.id) as control\">\n <div class=\"qty\" *ngIf=\"!isReadonlyProduct; else readonlyQty\">\n <vl-quantity-control\n [formControl]=\"$any(control)\"\n (valueChange)=\"controlBlurHandler(product)\"\n ></vl-quantity-control>\n </div>\n <ng-template #readonlyQty\n ><span class=\"text-right\">{{ control.value }}</span></ng-template\n >\n </ng-container>\n </ng-container>\n </div>\n </ng-template>\n </p-virtualScroller>\n\n <ng-template #noImage>\n <i class=\"vl-icon vl-no-image no-image-icon\"></i>\n </ng-template>\n\n <div class=\"flex footer\">\n <p-button\n label=\"Clear Cart\"\n styleClass=\"p-button-link p-button-sm pl-0 pr-0\"\n [disabled]=\"!isEditMode || !!lockedProductId || hasTermInProducts\"\n (onClick)=\"deleteAllHandler()\"\n ></p-button>\n </div>\n </ng-container>\n </ng-container>\n\n <ng-template #empty>\n <h2 class=\"flow-header-overlay__title\">\n <span>Empty Cart</span>\n <i class=\"vl-icon vl-cross close-icon\" (click)=\"overlayPanel.hide()\"></i>\n </h2>\n\n <span class=\"empty-state\">\n <i class=\"vl-icon vl-bag\"></i>\n There are no products added to the Shopping Cart yet.\n </span>\n </ng-template>\n </div>\n </ng-template>\n</p-overlayPanel>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { LetDirectiveModule, QuantityControlModule } from '@veloceapps/components';\nimport { ButtonModule } from 'primeng/button';\nimport { InputNumberModule } from 'primeng/inputnumber';\nimport { OverlayPanelModule } from 'primeng/overlaypanel';\nimport { VirtualScrollerModule } from 'primeng/virtualscroller';\nimport { CartPreviewComponent } from './cart-preview.component';\n\n@NgModule({\n declarations: [CartPreviewComponent],\n imports: [\n CommonModule,\n ReactiveFormsModule,\n ButtonModule,\n OverlayPanelModule,\n LetDirectiveModule,\n InputNumberModule,\n VirtualScrollerModule,\n QuantityControlModule,\n ],\n exports: [CartPreviewComponent],\n})\nexport class CartPreviewModule {}\n","import { Injectable } from '@angular/core';\nimport { ContextService } from '@veloceapps/sdk/core';\nimport { DialogService } from 'primeng/dynamicdialog';\nimport { Observable } from 'rxjs';\nimport { FlowDialogComponent } from '../components/dialog/dialog.component';\nimport { FlowDialogConfig } from '../components/dialog/dialog.types';\n\n@Injectable()\nexport class FlowDialogService {\n constructor(private dialogService: DialogService, private contextService: ContextService) {}\n\n public show(config: FlowDialogConfig): Observable<boolean> {\n return this.dialogService.open(FlowDialogComponent, {\n dismissableMask: true,\n closeOnEscape: true,\n closable: true,\n showHeader: false,\n width: '320px',\n data: { config },\n styleClass: 'flow-dialog',\n }).onClose;\n }\n\n public showEmptyCartDialog(): Observable<boolean> {\n return this.show({\n title: 'No Products in Quote',\n description: 'There are no products in your Quote. To save a Quote, add at least one product.',\n primaryButton: 'Ok',\n });\n }\n\n public showReadonlyModeDialog(): Observable<boolean> {\n const ctx = this.contextService.resolve();\n const objectName = ctx.mode ? ctx.mode[0].toUpperCase() + ctx.mode.substring(1).toLowerCase() : 'Object';\n\n return this.show({\n title: 'Error',\n description: `${objectName} Cannot be Saved`,\n primaryButton: 'Ok',\n });\n }\n\n public showQuoteReadonlyModeDialog(): Observable<boolean> {\n return this.show({\n title: 'Quote Cannot be Saved',\n description:\n 'It is only possible to save quotes with the “Draft” status. Please create a new quote to make and save changes.',\n primaryButton: 'Ok',\n });\n }\n\n public showQuoteOutsideShoppingCartDialog(): Observable<boolean> {\n return this.show({\n title: 'Quote Cannot be Saved',\n description: 'It is only possible to save quotes from the Shopping Cart. To proceed, go to the Shopping Cart.',\n primaryButton: 'Ok',\n });\n }\n\n public showAccountNoChangesDialog(): Observable<boolean> {\n return this.show({\n title: 'No Changes to Save',\n description: 'There are no changes since the last update. Please make changes to proceed.',\n primaryButton: 'Ok',\n });\n }\n\n public showUnsavedChangesDialog(): Observable<boolean> {\n return this.show({\n title: 'Unsaved Changes',\n description: 'Are you sure you want to leave this page and discard your unsaved changes?',\n primaryButton: 'Keep Editing',\n secondaryButton: 'Discard Changes',\n oppositeButtonActions: true,\n });\n }\n\n public showReadonlyQuoteSubmitFailureDialog(): Observable<boolean> {\n return this.show({\n title: 'Cannot Submit for Approval',\n description:\n 'It is only possible to submit for approval quotes with the “Draft“ status. Please create a new quote to proceed.',\n primaryButton: 'Ok',\n });\n }\n\n public showOutsideShoppingCartQuoteSubmitFailureDialog(): Observable<boolean> {\n return this.show({\n title: 'Cannot Submit for Approval',\n description:\n 'It is only possible to submit quotes for approval from the Shopping Cart. To proceed, go to the Shopping Cart.',\n primaryButton: 'Ok',\n });\n }\n\n public showAccountSubmitFailureDialog(): Observable<boolean> {\n return this.show({\n title: 'Save Changes',\n description:\n 'To submit for approval, save the quote first, and then submit it for approval from the Shopping Cart.',\n primaryButton: 'Ok',\n });\n }\n\n public showDocgenAccountUnsavedChangesDialog(): Observable<boolean> {\n return this.show({\n title: 'Save Quote',\n description:\n 'To generate a document, save the quote first, and then generate the document from the Shopping Cart.',\n primaryButton: 'Ok',\n });\n }\n\n public showDocgenReadonlyDialog(): Observable<boolean> {\n return this.show({\n title: 'Document Generation is not Available',\n description:\n 'It is only possible to generate documents for quotes with the “Draft” status. Please create a new quote to generate a document.',\n primaryButton: 'Ok',\n });\n }\n\n public showDocgenOutsideShoppingCartDialog(): Observable<boolean> {\n return this.show({\n title: 'Document Generation is not Available',\n description:\n 'It is only possible to generate documents for quotes from the Shopping Cart. To proceed, go to the Shopping Cart.',\n primaryButton: 'Ok',\n });\n }\n\n public showDocgenUnsavedChangesDialog(): Observable<boolean> {\n return this.show({\n title: 'Unsaved Changes',\n description: 'To generate a document, save the quote first.',\n primaryButton: 'Save and proceed',\n secondaryButton: 'Cancel',\n });\n }\n}\n","export const METRICS_STORAGE_KEY = 'vl-metrics';\n","import { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { FormControl, Validators } from '@angular/forms';\nimport { ShoppingCartSettingsApiService } from '@veloceapps/api';\nimport { LineItem, MetricRule } from '@veloceapps/core';\nimport {\n invalidCharactersValidator,\n requiredValidator,\n reservedIdentifierValidator,\n standardCharSetWithSpaceRegExp,\n} from '@veloceapps/core/forms';\nimport {\n ContextService,\n FlowConfigurationService,\n MetricsCalculationService,\n QuoteDraftService,\n RuntimeSettingsService,\n} from '@veloceapps/sdk/core';\nimport { cloneDeep, uniq } from 'lodash';\nimport { OverlayPanel } from 'primeng/overlaypanel';\nimport { Subject, startWith } from 'rxjs';\nimport { takeUntil, tap, withLatestFrom } from 'rxjs/operators';\nimport { Metric } from '../../../types';\nimport { METRICS_STORAGE_KEY } from './metrics.definitions';\n\n@Component({\n selector: 'vl-metrics',\n templateUrl: './metrics.component.html',\n styleUrls: ['./metrics.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MetricsComponent implements OnInit, OnDestroy {\n @ViewChild(OverlayPanel)\n public overlayPanel!: OverlayPanel;\n\n public emptyStateMetrics = [\n { name: 'MRR', value: 0 },\n { name: 'E.MRR', value: 0 },\n { name: 'NRR', value: 0 },\n { name: 'E.NRR', value: 0 },\n ];\n public visibleSelectedMetrics: Metric[] = [];\n public restSelectedMetrics: Metric[] = [];\n public metrics: Metric[] = [];\n public filteredMetrics: Metric[] = [];\n public editingMetric: Metric | undefined;\n public currencySymbol: string;\n public sidebarVisible = false;\n public searchControl: FormControl = new FormControl('');\n public isFocused = false;\n public nameControl: FormControl = new FormControl('', [\n requiredValidator,\n invalidCharactersValidator(standardCharSetWithSpaceRegExp),\n reservedIdentifierValidator,\n Validators.maxLength(80),\n ]);\n\n private activeMetricRules: MetricRule[] = [];\n private activeMetricRuleNames: Metric[] = [];\n private defaultMetricRuleNames: string[] = [];\n private metricKeys: string[] = [];\n private lastSavedMetrics: Metric[] = [];\n private destroyed$ = new Subject<void>();\n\n constructor(\n private contextService: ContextService,\n private quoteDraftService: QuoteDraftService,\n private cdr: ChangeDetectorRef,\n private metricsCalculationService: MetricsCalculationService,\n private flowConfiguration: FlowConfigurationService,\n private shoppingCartSettingsApiService: ShoppingCartSettingsApiService,\n private runtimeSettings: RuntimeSettingsService,\n ) {\n this.currencySymbol = this.runtimeSettings.getCurrencySettings().symbol;\n }\n\n public ngOnInit(): void {\n this.activeMetricRules = this.flowConfiguration.activeMetricsSnapshot.filter(metricRule =>\n metricRule.metrics.some(metric => !!metric.totalName),\n );\n const activeMetricRuleNames = this.activeMetricRules.map(metricRule => metricRule.title);\n\n this.shoppingCartSettingsApiService\n .getSettingsMap()\n .pipe(\n withLatestFrom(this.quoteDraftService.currentState$),\n tap(([settings, lineItems]) => {\n this.defaultMetricRuleNames = (settings?.DEFAULT_HEADER_METRICS || []).filter(ruleName =>\n activeMetricRuleNames.includes(ruleName),\n );\n this.metricKeys = this.collectMetricKeys(lineItems);\n this.activeMetricRuleNames = this.getActiveMetricRuleNames();\n }),\n takeUntil(this.destroyed$),\n )\n .subscribe(() => {\n this.collectAvailableMetrics();\n });\n\n this.searchControl.valueChanges.pipe(takeUntil(this.destroyed$), startWith('')).subscribe(query => {\n this.filteredMetrics = this.metrics.filter(({ name }) => {\n return (name || '').toLowerCase().includes(query?.toLowerCase());\n });\n });\n\n this.metricsCalculationService.onMetricsUpdate$\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => this.cdr.detectChanges());\n }\n\n public ngOnDestroy(): void {\n this.destroyed$.next();\n this.destroyed$.complete();\n }\n\n public toggleOverlay(event: MouseEvent, overlay: OverlayPanel, target: HTMLElement): void {\n event.stopPropagation();\n\n if (this.restSelectedMetrics.length) {\n if (!overlay.overlayVisible) {\n document.dispatchEvent(new Event('click'));\n }\n\n overlay.toggle(event, target);\n } else {\n this.openSidebar();\n }\n }\n\n public openSidebar(): void {\n this.overlayPanel.hide();\n this.sidebarVisible = true;\n }\n\n public closeSidebar(): void {\n this.sidebarVisible = false;\n this.metrics = cloneDeep(this.lastSavedMetrics);\n this.editingMetric = undefined;\n this.searchControl.setValue('');\n }\n\n public getMetricValue(key: string): number {\n const context = this.contextService.resolve();\n if (key.startsWith('Effective_')) {\n const correctKey = key.replace('Effective_', '');\n return this.toNumber(context.properties[correctKey]) - this.toNumber(context.properties[`Previous${correctKey}`]);\n } else {\n return this.metricsCalculationService.getMetricValue(key);\n }\n }\n\n public save(): void {\n localStorage.setItem(METRICS_STORAGE_KEY, JSON.stringify(this.metrics));\n this.setMetrics();\n this.lastSavedMetrics = cloneDeep(this.metrics);\n this.closeSidebar();\n }\n\n public changeMetricOrder(event: CdkDragDrop<string[]>): void {\n moveItemInArray(this.metrics, event.previousIndex, event.currentIndex);\n this.filteredMetrics = this.metrics;\n }\n\n public editMetric(metric: Metric): void {\n if (this.editingMetric && this.nameControl.invalid) {\n return;\n }\n this.editingMetric = metric;\n this.nameControl.setValue(metric.name);\n }\n\n public saveMetric(): void {\n if (this.nameControl.invalid) {\n return;\n }\n if (this.editingMetric) {\n this.editingMetric.name = this.nameControl.value?.trim();\n }\n this.editingMetric = undefined;\n }\n\n public cancelMetric(): void {\n this.editingMetric = undefined;\n }\n\n public resetToDefault(): void {\n this.collectAvailableMetrics(true);\n }\n\n onFocus(): void {\n this.isFocused = true;\n }\n\n onBlur(): void {\n this.isFocused = false;\n }\n\n public clearSearch(event: MouseEvent): void {\n event.stopPropagation();\n this.searchControl.setValue('');\n }\n\n private collectMetricKeys(lineItems: LineItem[]): string[] {\n const keys: string[] = [];\n lineItems.forEach(lineItem => {\n keys.push(...Object.keys(lineItem.totalMetrics || {}));\n keys.push(...this.collectMetricKeys(lineItem.lineItems));\n });\n return uniq(keys);\n }\n\n private setMetrics(): void {\n const metrics = cloneDeep(this.metrics.filter(({ visible }) => visible));\n\n this.visibleSelectedMetrics = metrics.slice(0, 4);\n this.restSelectedMetrics = metrics.slice(4);\n }\n\n private collectAvailableMetrics(resetToDefault = false): void {\n const storedMetrics: Metric[] = JSON.parse(localStorage.getItem(METRICS_STORAGE_KEY) || '[]');\n const metricKeys = this.metricKeys.slice();\n const isDefaultConfiguration = !storedMetrics.length || resetToDefault;\n\n this.metrics = (isDefaultConfiguration ? this.activeMetricRuleNames : storedMetrics).reduce((result, metric) => {\n const metricKeyIndex = metricKeys.findIndex(key => key === metric.key);\n\n if (metricKeyIndex >= 0) {\n metricKeys.splice(metricKeyIndex, 1);\n }\n\n if (isDefaultConfiguration && this.defaultMetricRuleNames.includes(metric.name)) {\n metric.visible = true;\n }\n\n return [...result, metric];\n }, [] as Metric[]);\n\n this.metrics = [\n ...this.metrics,\n ...metricKeys.map(metricKey => {\n return { key: metricKey, name: this.getMetricName(metricKey), visible: false };\n }),\n ];\n\n // sort the metrics by the order of default metric rule names from the shopping cart settings\n this.metrics = this.sortMetrics();\n\n this.metrics = cloneDeep(this.metrics);\n this.searchControl.setValue('');\n\n if (!resetToDefault) {\n this.lastSavedMetrics = cloneDeep(this.metrics);\n this.setMetrics();\n }\n\n this.cdr.markForCheck();\n }\n\n private getMetricName(key: string): string {\n return (\n this.activeMetricRules.find(metricRule => metricRule.metrics.find(metric => metric.totalName === key))?.title ||\n key\n );\n }\n\n private toNumber(value: string | undefined): number {\n return +(value || 0);\n }\n\n private getActiveMetricRuleNames(): Metric[] {\n return this.activeMetricRules.reduce((result, metricRule) => {\n const name = metricRule.title;\n const visible = this.defaultMetricRuleNames.includes(name);\n\n metricRule.metrics.forEach(metric => {\n result.push({\n key: metric.totalName || metric.name,\n name,\n visible,\n });\n });\n\n return result;\n }, [] as Metric[]);\n }\n\n /**\n * Sorts the Metrics array by the order of the default metric rule names from the shopping cart settings.\n * If a metric is included in the list of default metrics, it raises the metric to the top of the metrics array.\n */\n private sortMetrics(): Metric[] {\n return this.metrics.slice().sort((a, b) => {\n const indexA = this.defaultMetricRuleNames.indexOf(a.name);\n const indexB = this.defaultMetricRuleNames.indexOf(b.name);\n\n if (indexA === -1 && indexB === -1) {\n return 0;\n }\n\n if (indexA === -1) {\n return 1;\n }\n\n if (indexB === -1) {\n return -1;\n }\n\n return indexA - indexB;\n });\n }\n}\n","<div class=\"header-metrics\" (click)=\"toggleOverlay($event, overlayPanel, metricsTarget)\">\n <div class=\"metrics\">\n <div *ngFor=\"let metric of visibleSelectedMetrics\" class=\"metric\">\n <span\n class=\"name\"\n [vlHiddenTextTooltip]=\"metric.name\"\n tooltipStyleClass=\"metric-tooltip\"\n tooltipPosition=\"bottom\"\n >\n {{ metric.name }}\n </span>\n <span class=\"filler\"></span>\n <span\n class=\"value\"\n vlHiddenTextTooltip=\"{{ getMetricValue(metric.key) | vlPrice }}\"\n tooltipStyleClass=\"metric-tooltip\"\n tooltipPosition=\"bottom\"\n >\n {{ getMetricValue(metric.key) | vlPrice }}\n </span>\n </div>\n\n <ng-container *ngIf=\"!visibleSelectedMetrics.length\">\n <div *ngFor=\"let metric of emptyStateMetrics\" class=\"metric empty-state-metric\">\n <span\n class=\"name\"\n [vlHiddenTextTooltip]=\"metric.name\"\n tooltipStyleClass=\"metric-tooltip\"\n tooltipPosition=\"bottom\"\n >\n {{ metric.name }}\n </span>\n <span class=\"filler\"></span>\n <span\n class=\"value\"\n vlHiddenTextTooltip=\"{{ metric.value | vlPrice }}\"\n tooltipStyleClass=\"metric-tooltip\"\n tooltipPosition=\"bottom\"\n >\n {{ metric.value | vlPrice }}\n </span>\n </div>\n </ng-container>\n </div>\n\n <div #metricsTarget class=\"metrics-overlay-target\" [class.expanded]=\"overlayPanel?.overlayVisible\">\n <i class=\"vl-icon vl-arrow-down\"></i>\n </div>\n</div>\n\n<p-overlayPanel\n styleClass=\"catalog-overlay metrics-overlay-container right no-padding\"\n showTransitionOptions=\"0ms\"\n hideTransitionOptions=\"0ms\"\n>\n <ng-template pTemplate>\n <div class=\"overlay-metrics\">\n <div *ngFor=\"let metric of restSelectedMetrics\" class=\"metric\">\n <span\n class=\"name\"\n [vlHiddenTextTooltip]=\"metric.name\"\n tooltipStyleClass=\"metric-tooltip\"\n tooltipPosition=\"bottom\"\n >\n {{ metric.name }}\n </span>\n <span class=\"filler\"></span>\n <span\n class=\"value\"\n vlHiddenTextTooltip=\"{{ getMetricValue(metric.key) | vlPrice }}\"\n tooltipStyleClass=\"metric-tooltip\"\n tooltipPosition=\"bottom\"\n >\n {{ getMetricValue(metric.key) | vlPrice }}\n </span>\n </div>\n </div>\n <button class=\"config\" (click)=\"openSidebar()\">\n Metrics Config\n <i class=\"vl-icon vl-arrow-right\"></i>\n </button>\n </ng-template>\n</p-overlayPanel>\n\n<p-sidebar\n [visible]=\"sidebarVisible\"\n (visibleChange)=\"closeSidebar()\"\n position=\"right\"\n [baseZIndex]=\"1000\"\n [style]=\"{ width: '300px' }\"\n>\n <div class=\"container\">\n <div class=\"header\">\n Quote Metrics Config\n <i class=\"vl-icon vl-cross\" (click)=\"closeSidebar()\"></i>\n </div>\n\n <label class=\"search-container\" [class.active]=\"searchControl.value || isFocused\">\n <i class=\"vl-icon vl-search\"></i>\n <input\n data-test-id=\"search\"\n [formControl]=\"searchControl\"\n pInputText\n placeholder=\"Search for metric…\"\n class=\"w-full search-input\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"\n />\n <i *ngIf=\"searchControl.value\" class=\"vl-icon vl-cross\" (click)=\"clearSearch($event)\"></i>\n </label>\n\n <div class=\"content\">\n <div class=\"sidebar-metrics\" cdkDropList (cdkDropListDropped)=\"changeMetricOrder($event)\">\n <div\n *ngFor=\"let metric of filteredMetrics\"\n class=\"sidebar-metric\"\n [class.edit]=\"metric.key === editingMetric?.key\"\n cdkDrag\n [cdkDragDisabled]=\"!!searchControl.value\"\n >\n <div class=\"drag-icon\">\n <i class=\"vl-icon vl-drag\" cdkDragHandle></i>\n </div>\n <ng-container\n [ngTemplateOutlet]=\"metricTemplate\"\n [ngTemplateOutletContext]=\"{ metric: metric }\"\n ></ng-container>\n </div>\n </div>\n\n <div class=\"empty-state\" *ngIf=\"!filteredMetrics.length\">There are no items matching your search criteria</div>\n </div>\n <div class=\"footer\">\n <p-button\n label=\"Reset to Default\"\n styleClass=\"p-button-outlined p-button-sm\"\n (onClick)=\"resetToDefault()\"\n ></p-button>\n <p-button label=\"Save\" styleClass=\"p-button p-button-filled p-button-sm\" (onClick)=\"save()\"></p-button>\n </div>\n </div>\n</p-sidebar>\n\n<ng-template #metricTemplate let-metric=\"metric\">\n <div *ngIf=\"editingMetric?.key !== metric.key\" class=\"preview-state\">\n <p-checkbox\n [ngModel]=\"metric.visible\"\n (ngModelChange)=\"metric.visible = !metric.visible\"\n [binary]=\"true\"\n checkboxIcon=\"vl-icon vl-check\"\n ></p-checkbox>\n <div class=\"title\">{{ metric.name }}</div>\n </div>\n\n <div *ngIf=\"editingMetric?.key === metric.key\" class=\"edit-state\">\n <input data-test-id=\"name\" [formControl]=\"nameControl\" pInputText placeholder=\"Metric name\" class=\"w-full\" />\n <vl-error-tooltip [tooltip]=\"nameControl | error : 'name'\" [visible]=\"!!nameControl.errors\"></vl-error-tooltip>\n </div>\n <div class=\"actions\">\n <div *ngIf=\"editingMetric?.key !== metric.key\" (click)=\"editMetric(metric)\" class=\"action edit\">\n <i class=\"vl-icon vl-edit\"></i>\n </div>\n <div *ngIf=\"editingMetric?.key === metric.key\" (click)=\"cancelMetric()\" class=\"action cancel\">\n <i class=\"vl-icon vl-cross\"></i>\n </div>\n <div *ngIf=\"editingMetric?.key === metric.key\" (click)=\"saveMetric()\" class=\"action save\">\n <i class=\"vl-icon vl-check\"></i>\n </div>\n </div>\n</ng-template>\n","import { ChangeDetectionStrategy, Component, OnDestroy, OnInit } from '@angular/core';\nimport { QuoteApiService, SalesforceApiService } from '@veloceapps/api';\nimport {\n ConfigurationContextMode,\n ContextProperties,\n LineItem,\n PriceList,\n SearchRequest,\n VlWindow,\n} from '@veloceapps/core';\nimport { FlowAction, IntegrationState } from '@veloceapps/sdk/cms';\nimport {\n ContextService,\n FlowConfigurationService,\n QuoteDraftService,\n getOriginParent,\n isLineItemModified,\n} from '@veloceapps/sdk/core';\nimport { MenuItem } from 'primeng/api';\nimport {\n BehaviorSubject,\n Observable,\n Subject,\n combineLatest,\n distinctUntilChanged,\n filter,\n finalize,\n first,\n map,\n noop,\n of,\n switchMap,\n takeUntil,\n tap,\n} from 'rxjs';\nimport { FlowDialogService } from '../../services/flow-dialog.service';\nimport { FlowRouterService } from '../../services/flow-router.service';\nimport { CartPreviewComponent } from './cart-overlay/cart-preview.component';\nimport { HeaderObjectDetails, HeaderProduct } from './header.types';\n\ndeclare const window: VlWindow;\n\n@Component({\n selector: 'vl-flow-header',\n templateUrl: './header.component.html',\n styleUrls: ['./header.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FlowHeaderComponent implements OnInit, OnDestroy {\n public objectName$: Observable<string>;\n public contextProperties$: Observable<ContextProperties>;\n public activePriceList$: Observable<PriceList | null>;\n public isReadonlyMode$: Observable<boolean>;\n public status$: Observable<string>;\n public objectDetails$: Observable<HeaderObjectDetails>;\n public assetsCount$: Observable<number>;\n public products$: Observable<HeaderProduct[]>;\n public isConfigurationRoute$: Observable<boolean>;\n public isCartRoute$: Observable<boolean>;\n public isCatalogRoute$: Observable<boolean>;\n public isAssetsRoute$: Observable<boolean>;\n public isEditMode$: Observable<boolean>;\n public isSaveInProgress$ = new BehaviorSubject(false);\n public isSubmitInProgress$ = new BehaviorSubject(false);\n public dateFormat = 'MM.dd.yyyy';\n\n public assetPriceLists$ = new BehaviorSubject<PriceList[]>([]);\n\n private mode$ = new BehaviorSubject<ConfigurationContextMode>(ConfigurationContextMode.TEST);\n private destroyed$ = new Subject<void>();\n\n constructor(\n private contextService: ContextService,\n private quoteDraftService: QuoteDraftService,\n private quoteApiService: QuoteApiService,\n private sfApiService: SalesforceApiService,\n private flowConfiguration: FlowConfigurationService,\n private routerService: FlowRouterService,\n private dialogService: FlowDialogService,\n private integrationState: IntegrationState,\n ) {\n this.contextProperties$ = this.contextService.resolve$().pipe(map(ctx => ctx.properties));\n this.objectName$ = this.mode$.pipe(map(mode => mode?.toLocaleLowerCase() ?? ''));\n\n this.activePriceList$ = this.quoteDraftService.activePriceList$;\n this.isReadonlyMode$ = this.quoteDraftService.hasProducts$.pipe(map(() => this.isReadonlyMode()));\n this.status$ = this.contextService.resolve$().pipe(map(context => context.properties.Status ?? ''));\n this.isEditMode$ = this.quoteDraftService.isEditMode$();\n\n this.assetsCount$ = this.getAssets$().pipe(map(lineItems => lineItems.length));\n this.products$ = this.getDraftItems$().pipe(map(lineItems => this.generateProducts(lineItems)));\n\n this.isConfigurationRoute$ = this.routerService.isConfigurationRoute$();\n this.isCartRoute$ = this.routerService.isCartRoute$();\n this.isCatalogRoute$ = this.routerService.isCatalogRoute$();\n this.isAssetsRoute$ = this.routerService.isAssetsRoute$();\n this.objectDetails$ = this.getObjectDetails$();\n }\n\n public ngOnInit(): void {\n this.contextService\n .resolve$()\n .pipe(takeUntil(this.destroyed$))\n .subscribe(ctx => this.mode$.next(ctx.mode));\n\n // update assetPriceLists on quoteDraft change in ACCOUNT mode\n this.quoteDraftService.quoteDraft$\n .pipe(\n takeUntil(this.destroyed$),\n filter(() => this.isAccountMode),\n )\n .subscribe(() => this.assetPriceLists$.next(this.quoteDraftService.assetPriceLists));\n }\n\n public ngOnDestroy(): void {\n this.destroyed$.next();\n this.destroyed$.complete();\n }\n\n public get isAccountMode(): boolean {\n return this.mode$.value === ConfigurationContextMode.ACCOUNT;\n }\n\n public get isQuoteMode(): boolean {\n return this.mode$.value === ConfigurationContextMode.QUOTE;\n }\n\n public get isAccountMode$(): Observable<boolean> {\n return this.mode$.pipe(map(mode => mode === ConfigurationContextMode.ACCOUNT));\n }\n\n public get isQuoteMode$(): Observable<boolean> {\n return this.mode$.pipe(map(mode => mode === ConfigurationContextMode.QUOTE));\n }\n\n public getSplitButtonActions(isCartRoute: boolean): MenuItem[] {\n return [\n {\n label: 'Save to Quote',\n command: (): void => {\n this.saveButtonClickHandler(isCartRoute);\n },\n },\n {\n label: 'Quick Save',\n command: (): void => {\n this.saveButtonClickHandler(isCartRoute, true);\n },\n },\n {\n label: 'Generate Document',\n command: (): void => {\n this.docGenButtonClickHandler(isCartRoute);\n },\n },\n {\n label: 'Submit For Approval',\n command: (): void => {\n this.submitButtonClickHandler(isCartRoute);\n },\n },\n ];\n }\n\n public back(objectId?: string): void {\n const targetId = objectId ?? this.contextService.resolve().properties.Id;\n\n if (targetId) {\n window.VELO_BACK_FN.apply(null, [targetId]);\n }\n }\n\n public getSalesforceObjectLink(objectId?: string): string {\n if (!objectId) {\n return '';\n }\n\n return `${window.location.origin}/${objectId}`;\n }\n\n public navigateToShoppingCart(): void {\n if (!this.isReadonlyMode()) {\n this.routerService.navigateToShoppingCart();\n }\n }\n\n public navigateToCatalog(): void {\n if (!this.isReadonlyMode()) {\n this.routerService.navigateToCatalog();\n }\n }\n\n public navigateToAssets(): void {\n if (!this.isReadonlyMode()) {\n this.routerService.navigateToAssets();\n }\n }\n\n public docGenButtonClickHandler(isCartRoute: boolean): void {\n if (this.isAccountMode) {\n if (!this.quoteDraftService.hasUnsavedChanges) {\n this.dialogService.showAccountNoChangesDialog().subscribe();\n } else {\n this.dialogService.showDocgenAccountUnsavedChangesDialog().subscribe();\n }\n return;\n }\n\n if (!this.quoteDraftService.isEditMode()) {\n this.dialogService.showDocgenReadonlyDialog().subscribe();\n return;\n }\n\n if (!isCartRoute) {\n this.dialogService.showDocgenOutsideShoppingCartDialog().subscribe();\n return;\n }\n\n let shouldOpen$ = of(true);\n\n if (this.quoteDraftService.hasUnsavedChanges) {\n shouldOpen$ = this.dialogService.showDocgenUnsavedChangesDialog().pipe(\n switchMap(confirmed => {\n if (!confirmed) {\n return of(false);\n }\n return this.saveQuote$(true).pipe(map(() => true));\n }),\n );\n }\n\n shouldOpen$\n .pipe(\n first(),\n tap(shouldOpen => shouldOpen && this.integrationState.dispatch(FlowAction.OpenDocGenAction())),\n )\n .subscribe();\n }\n\n public saveButtonClickHandler(isCartRoute: boolean, stayOnPage: boolean = false): void {\n if (!this.quoteDraftService.isEditMode()) {\n if (this.isQuoteMode) {\n this.dialogService.showQuoteReadonlyModeDialog().subscribe();\n } else {\n this.dialogService.showReadonlyModeDialog().subscribe();\n }\n return;\n }\n\n if (this.isUpsellQuoteWithoutChanges()) {\n this.dialogService.showAccountNoChangesDialog().subscribe();\n return;\n }\n\n if (this.isAccountMode && !this.quoteDraftService.hasUnsavedChanges) {\n this.dialogService.showAccountNoChangesDialog().subscribe();\n return;\n }\n\n if (!isCartRoute) {\n this.dialogService.showQuoteOutsideShoppingCartDialog().subscribe();\n return;\n }\n\n const lineItems = this.flowConfiguration.getSnapshot();\n\n if (!lineItems.length) {\n this.dialogService.showEmptyCartDialog().subscribe();\n return;\n }\n\n this.saveQuote$(stayOnPage).subscribe();\n }\n\n public submitButtonClickHandler(isCartRoute: boolean): void {\n if (this.isQuoteMode && !this.quoteDraftService.isEditMode()) {\n this.dialogService.showReadonlyQuoteSubmitFailureDialog();\n return;\n }\n\n if (this.isUpsellQuoteWithoutChanges()) {\n this.dialogService.showAccountNoChangesDialog().subscribe();\n return;\n }\n\n if (this.isAccountMode) {\n this.dialogService.showAccountSubmitFailureDialog();\n return;\n }\n\n if (!isCartRoute) {\n this.dialogService.showOutsideShoppingCartQuoteSubmitFailureDialog().subscribe();\n return;\n }\n\n const quoteDraft = this.quoteDraftService.quoteDraft;\n if (!quoteDraft) {\n return;\n }\n\n this.isSubmitInProgress$.next(true);\n\n this.quoteApiService\n .submitQuote(quoteDraft)\n .pipe(\n tap(({ quoteId }) => {\n this.quoteDraftService.hasUnsavedChanges = false;\n this.back(quoteId);\n }),\n finalize(() => this.isSubmitInProgress$.next(false)),\n takeUntil(this.destroyed$),\n )\n .subscribe();\n }\n\n public selectPriceList(priceListId: string): void {\n this.quoteDraftService.updateActivePriceList(priceListId);\n }\n\n public toggleCartOverlay(cart: CartPreviewComponent, event: Event): void {\n event.stopPropagation();\n if (!this.isReadonlyMode()) {\n if (!cart.overlayPanel.overlayVisible) {\n document.dispatchEvent(new Event('click'));\n }\n cart?.overlayPanel.toggle(event);\n }\n }\n\n private saveQuote$(stayOnPage = false): Observable<void> {\n const quoteDraft = this.quoteDraftService.quoteDraftForActivePriceList;\n if (!quoteDraft) {\n return of(undefined);\n }\n\n this.isSaveInProgress$.next(true);\n\n return this.quoteApiService.upsertQuote(quoteDraft).pipe(\n tap(({ quoteId }) => {\n this.quoteDraftService.hasUnsavedChanges = false;\n\n if (!stayOnPage) {\n this.back(quoteId);\n }\n }),\n finalize(() => this.isSaveInProgress$.next(false)),\n map(noop),\n takeUntil(this.destroyed$),\n );\n }\n\n private queryName$(objectName: string, id?: string): Observable<string> {\n if (!id) {\n return of('');\n }\n\n const searchRequest: SearchRequest = {\n count: 1,\n rawCondition: `Id = '${id}'`,\n fields: ['Name'],\n };\n\n return this.sfApiService.query<any>(searchRequest, objectName).pipe(\n map(result => result[0]?.Name ?? ''),\n takeUntil(this.destroyed$),\n );\n }\n\n private getObjectDetails$(): Observable<HeaderObjectDetails> {\n return this.contextService.resolve$().pipe(\n distinctUntilChanged((prevCtx, currCtx) => prevCtx.properties.Id === currCtx.properties.Id),\n map(ctx => {\n const isAccountMode = ctx.mode === ConfigurationContextMode.ACCOUNT;\n const isQuoteMode = ctx.mode === ConfigurationContextMode.QUOTE;\n\n return {\n accountId: isAccountMode ? ctx.properties.Id : ctx.properties.AccountId,\n opportunityId: ctx.properties.OpportunityId,\n quoteId: isQuoteMode ? ctx.properties.Id : undefined,\n quoteName: isQuoteMode ? ctx.properties.Name : undefined,\n quoteNumber: isQuoteMode ? ctx.properties.QuoteNumber : undefined,\n };\n }),\n switchMap(details =>\n combineLatest([\n of(details),\n this.queryName$('Account', details.accountId),\n this.queryName$('Opportunity', details.opportunityId),\n ]),\n ),\n map(([details, accountName, opportunityName]) => ({ ...details, accountName, opportunityName })),\n );\n }\n\n private formatMetric(value?: string): string {\n return (value ? Number(value) : 0).toFixed(2);\n }\n\n public getDraftItems$(): Observable<LineItem[]> {\n return combineLatest([\n this.flowConfiguration.get(),\n this.integrationState.state$.pipe(\n map(state => state.modifiedAssets),\n distinctUntilChanged(),\n ),\n ]).pipe(\n map(([lineItems, modifiedAssets]) => {\n const currentTerms = lineItems.reduce((acc: LineItem[], li) => {\n const assetId = li.assetId || li.openOrderLineItemId;\n const isModified = isLineItemModified(li);\n const currentTerm = getOriginParent(lineItems, li) ?? li;\n\n if (isModified || (assetId && modifiedAssets?.[assetId])) {\n acc.push(currentTerm);\n }\n return acc;\n }, []);\n const uniqCurrentTerms = currentTerms.filter((value, index, array) => array.indexOf(value) === index);\n return uniqCurrentTerms;\n }),\n );\n }\n\n public getAssets$(): Observable<LineItem[]> {\n return this.flowConfiguration\n .get()\n .pipe(map(lineItems => lineItems.filter(li => (!!li.assetId || !!li.openOrderLineItemId) && !li.rampInstanceId)));\n }\n\n private generateProducts(lineItems: LineItem[]): HeaderProduct[] {\n const date = new Date();\n date.setHours(0, 0, 0, 0);\n const now = date.getTime();\n const termParentIds = lineItems.map(li => li.rampInstanceId).filter(Boolean);\n\n const lineItemsRampInstanceIdMap = lineItems.reduce((acc: { [key: string]: LineItem }, li) => {\n acc[li.rampInstanceId ?? ''] = li;\n return acc;\n }, {});\n\n return lineItems.reduce((result: HeaderProduct[], li) => {\n // find main term line item\n if (li.rampInstanceId) {\n return result;\n }\n\n // find current term line item\n let target: LineItem | undefined = li;\n while (target && target.endDate && new Date(target.endDate).getTime() <= now) {\n target = lineItemsRampInstanceIdMap[li.id];\n }\n\n if (target && target.productId) {\n result.push({\n id: target.id,\n productId: target.productId,\n name: target.name,\n configurable: target.properties['#configurable'] === 'true',\n deleted: target.actionCode === 'DELETE',\n hasTerm: termParentIds.includes(target.id),\n qty: target.qty,\n mrr: this.formatMetric(target.properties.VDM_Total_MRR),\n nrr: this.formatMetric(target.properties.VDM_Total_NRR),\n });\n }\n\n return result;\n }, []);\n }\n\n private isReadonlyMode(): boolean {\n return (\n this.quoteDraftService.quoteDraft?.context.properties.mode === ConfigurationContextMode.ACCOUNT &&\n !this.quoteDraftService.hasProducts\n );\n }\n\n private isUpsellQuoteWithoutChanges(): boolean {\n const noUpdates = this.quoteDraftService.activeCurrentState.every(lineItem => lineItem.actionCode === 'EXIST');\n const sameNumberOfProducts =\n this.quoteDraftService.getInitialCurrentState().length === this.quoteDraftService.activeCurrentState.length;\n\n return noUpdates && sameNumberOfProducts;\n }\n}\n","<ng-container *ngIf=\"contextProperties$ | async as contextProperties\">\n <ng-container *ngIf=\"objectDetails$ | async as details\">\n <div class=\"flow-info\">\n <nav class=\"nav-item nav-back\" (click)=\"back()\">\n <i class=\"nav-icon vl-icon vl-icon-back\"></i>\n </nav>\n\n <ng-container *ngIf=\"isAccountMode$ | async\">\n <nav\n class=\"account-name nav-item\"\n [pTooltip]=\"contextProperties.Name ?? ''\"\n tooltipPosition=\"bottom\"\n [showDelay]=\"1000\"\n >\n <a target=\"_blank\" [href]=\"getSalesforceObjectLink(contextProperties.Id)\">{{ contextProperties.Name }}</a>\n </nav>\n </ng-container>\n\n <ng-container *ngIf=\"isQuoteMode$ | async\">\n <span class=\"nav-item\">Quote #{{ details.quoteNumber }}</span>\n\n <span class=\"dot-separator\"></span>\n\n <nav class=\"nav-item\" (click)=\"quoteDetails.toggle($event)\">\n <span>{{ status$ | async }}</span>\n\n <i *ngIf=\"!quoteDetails.overlayVisible\" class=\"vl-icon vl-arrow-down icon-with-margin\"></i>\n <i *ngIf=\"quoteDetails.overlayVisible\" class=\"vl-icon vl-arrow-up icon-with-margin\"></i>\n </nav>\n\n <p-overlayPanel styleClass=\"catalog-overlay quote-info-overlay\" #quoteDetails>\n <ng-template pTemplate>\n <div class=\"quote-info\">\n <div class=\"title\">\n <span>Quote Information</span>\n <span class=\"close-action\" (click)=\"quoteDetails.hide()\">\n <i class=\"vl-icon vl-cross\"></i>\n </span>\n </div>\n\n <div class=\"details\">\n <div class=\"details-row\">\n <div class=\"label\">Account Name</div>\n <div class=\"value\">\n <a target=\"_blank\" [href]=\"getSalesforceObjectLink(details.accountId)\">\n {{ details.accountName }}\n </a>\n </div>\n </div>\n <div class=\"details-row\">\n <div class=\"label\">Opportunity Name</div>\n <div class=\"value\">\n <a target=\"_blank\" [href]=\"getSalesforceObjectLink(details.opportunityId)\">\n {{ details.opportunityName }}\n </a>\n </div>\n </div>\n <div class=\"details-row\">\n <div class=\"label\">Quote Name</div>\n <div class=\"value\">\n <a target=\"_blank\" [href]=\"getSalesforceObjectLink(details.quoteId)\">\n {{ details.quoteName }}\n </a>\n </div>\n </div>\n <div class=\"details-row\">\n <div class=\"label\">Quote Number</div>\n <div class=\"value\">\n <a target=\"_blank\" [href]=\"getSalesforceObjectLink(details.quoteId)\">\n {{ details.quoteNumber }}\n </a>\n </div>\n </div>\n </div>\n </div>\n </ng-template>\n </p-overlayPanel>\n </ng-container>\n </div>\n\n <div class=\"flow-navigation\">\n <ng-container *vlLet=\"isReadonlyMode$ | async as isReadonlyMode\">\n <nav\n class=\"nav-item\"\n *vlLet=\"assetsCount$ | async as assetsCount\"\n [ngClass]=\"{ active: (isAssetsRoute$ | async), disabled: isReadonlyMode }\"\n (click)=\"navigateToAssets()\"\n >\n Assets\n <div *ngIf=\"assetsCount\" class=\"counter\">{{ assetsCount }}</div>\n </nav>\n <nav\n class=\"nav-item\"\n [ngClass]=\"{ active: (isCatalogRoute$ | async), disabled: isReadonlyMode }\"\n (click)=\"navigateToCatalog()\"\n >\n Catalog\n </nav>\n <nav\n *vlLet=\"isConfigurationRoute$ | async as isConfigurationRoute\"\n class=\"nav-item\"\n [ngClass]=\"{ active: isConfigurationRoute, disabled: !isConfigurationRoute }\"\n >\n Configurator\n </nav>\n <ng-container *vlLet=\"products$ | async as products\">\n <nav\n class=\"nav-item\"\n [ngClass]=\"{ active: (isCartRoute$ | async), disabled: isReadonlyMode }\"\n (click)=\"navigateToShoppingCart()\"\n >\n Shopping Cart\n <div *ngIf=\"products?.length\" class=\"counter\">{{ products?.length }}</div>\n\n <nav\n class=\"nav-popover-toggle\"\n [ngClass]=\"{ active: (isCartRoute$ | async), disabled: isReadonlyMode }\"\n (click)=\"toggleCartOverlay(cart, $event)\"\n >\n <i *ngIf=\"!cart?.overlayPanel?.overlayVisible\" class=\"vl-icon vl-arrow-down icon-with-margin\"></i>\n <i *ngIf=\"cart?.overlayPanel?.overlayVisible\" class=\"vl-icon vl-arrow-up icon-with-margin\"></i>\n </nav>\n </nav>\n\n <vl-cart-preview #cart [products]=\"products ?? []\"></vl-cart-preview>\n </ng-container>\n </ng-container>\n </div>\n\n <div class=\"flow-controls\">\n <ng-container *ngIf=\"(isReadonlyMode$ | async) === false\">\n <ng-container *vlLet=\"activePriceList$ | async as priceList\">\n <div class=\"price-plan\">\n <ng-container *vlLet=\"assetPriceLists$ | async as assetPriceLists\">\n <ng-container\n *ngIf=\"(isAccountMode$ | async) && assetPriceLists && assetPriceLists.length > 1; else singlePriceList\"\n >\n <nav class=\"nav-item\" (click)=\"priceListsOverlay?.toggle($event)\">\n <span>{{ priceList?.name }}</span>\n <i *ngIf=\"!priceListsOverlay?.overlayVisible\" class=\"vl-icon vl-arrow-down icon-with-margin\"></i>\n <i *ngIf=\"priceListsOverlay?.overlayVisible\" class=\"vl-icon vl-arrow-up icon-with-margin\"></i>\n </nav>\n\n <p-overlayPanel styleClass=\"price-list-overlay\" #priceListsOverlay>\n <ng-template pTemplate>\n <span\n *ngFor=\"let option of assetPriceLists\"\n class=\"price-list-option\"\n [class.active]=\"priceList?.id === option.id\"\n (click)=\"selectPriceList(option.id); priceListsOverlay.hide()\"\n >\n {{ option.name }}\n </span>\n </ng-template>\n </p-overlayPanel>\n </ng-container>\n </ng-container>\n\n <ng-template #singlePriceList>\n <div>{{ priceList?.name }}</div>\n </ng-template>\n\n <div *ngIf=\"contextProperties.StartDate\">{{ contextProperties.StartDate | date : dateFormat }}</div>\n </div>\n </ng-container>\n </ng-container>\n\n <vl-metrics></vl-metrics>\n\n <ng-container *vlLet=\"isCartRoute$ | async as isCartRoute\">\n <ng-container *vlLet=\"isReadonlyMode$ | async as isReadonlyMode\">\n <ng-container *vlLet=\"isSaveInProgress$ | async as isSaveInProgress\">\n <ng-container *vlLet=\"isSubmitInProgress$ | async as isSubmitInProgress\">\n <p-splitButton\n *ngIf=\"!isSaveInProgress && !isSubmitInProgress\"\n #splitButton\n label=\"Save to Quote\"\n (onClick)=\"saveButtonClickHandler(isCartRoute === true)\"\n [model]=\"getSplitButtonActions(isCartRoute === true)\"\n [disabled]=\"isReadonlyMode === true\"\n styleClass=\"catalog-split-button p-button-outlined\"\n [class.opened]=\"splitButton?.menu?.visible\"\n icon=\"vl-icon vl-arrow-down\"\n [menuStyle]=\"{ width: '144px' }\"\n >\n </p-splitButton>\n\n <p-button\n *ngIf=\"isSaveInProgress\"\n class=\"save-button\"\n styleClass=\"p-button\"\n label=\"Saving\"\n [loading]=\"true\"\n ></p-button>\n\n <p-button\n *ngIf=\"isSubmitInProgress\"\n class=\"submit-button\"\n styleClass=\"p-button\"\n label=\"Submitting\"\n [loading]=\"true\"\n ></p-button>\n </ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n </ng-container>\n</ng-container>\n","import { DragDropModule } from '@angular/cdk/drag-drop';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { ErrorTooltipModule, HiddenTextTooltipModule, LetDirectiveModule } from '@veloceapps/components';\nimport { SdkPipesModule } from '@veloceapps/sdk/core';\nimport { ButtonModule } from 'primeng/button';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { OverlayPanelModule } from 'primeng/overlaypanel';\nimport { SidebarModule } from 'primeng/sidebar';\nimport { VirtualScrollerModule } from 'primeng/virtualscroller';\nimport { MetricsComponent } from './metrics.component';\n\n@NgModule({\n declarations: [MetricsComponent],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n DragDropModule,\n ButtonModule,\n OverlayPanelModule,\n SidebarModule,\n InputTextModule,\n CheckboxModule,\n LetDirectiveModule,\n VirtualScrollerModule,\n ErrorTooltipModule,\n HiddenTextTooltipModule,\n SdkPipesModule,\n ],\n exports: [MetricsComponent],\n})\nexport class MetricsModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { LetDirectiveModule } from '@veloceapps/components';\nimport { SdkPipesModule } from '@veloceapps/sdk/core';\nimport { ButtonModule } from 'primeng/button';\nimport { OverlayPanelModule } from 'primeng/overlaypanel';\nimport { SplitButtonModule } from 'primeng/splitbutton';\nimport { TooltipModule } from 'primeng/tooltip';\nimport { CartPreviewModule } from './cart-overlay/cart-preview.module';\nimport { FlowHeaderComponent } from './header.component';\nimport { MetricsModule } from './metrics';\n\n@NgModule({\n declarations: [FlowHeaderComponent],\n imports: [\n CommonModule,\n OverlayPanelModule,\n LetDirectiveModule,\n TooltipModule,\n ButtonModule,\n CartPreviewModule,\n SplitButtonModule,\n MetricsModule,\n SdkPipesModule,\n ],\n exports: [FlowHeaderComponent],\n})\nexport class FlowHeaderModule {}\n","import { Injectable } from '@angular/core';\nimport { LineItem } from '@veloceapps/core';\nimport { FlowAction, IntegrationState } from '@veloceapps/sdk/cms';\nimport { ConfigurationService, FlowConfigurationService, QuoteDraftService } from '@veloceapps/sdk/core';\nimport { Subject, map, of, switchMap, takeUntil, tap } from 'rxjs';\nimport { FlowRouterService } from './flow-router.service';\n\n@Injectable()\nexport class FlowService {\n private cleanup$ = new Subject<void>();\n\n constructor(\n private integrationState: IntegrationState,\n private flowRouterService: FlowRouterService,\n private quoteDraftService: QuoteDraftService,\n private configurationService: ConfigurationService,\n private flowConfigurationService: FlowConfigurationService,\n ) {}\n\n public initSubscriptions(): void {\n this.integrationState\n .listen$<{ lineItemId?: string; productId?: string }>(FlowAction.FLOW_CONFIGURE_PRODUCT)\n .pipe(\n tap(payload => {\n const productId =\n payload.productId ??\n this.quoteDraftService.currentState.find(li => li.id === payload.lineItemId)?.productId;\n\n if (productId) {\n this.flowRouterService.navigateToProductConfiguration(productId, payload.lineItemId);\n } else {\n console.warn(\"Parameter 'productId' is needed to start configuration\");\n }\n }),\n takeUntil(this.cleanup$),\n )\n .subscribe();\n\n this.integrationState\n .listen$<{ id: string }>(FlowAction.FLOW_SWITCH_OBJECT)\n .pipe(\n tap(payload => {\n this.flowRouterService.switchObject(payload.id);\n }),\n takeUntil(this.cleanup$),\n )\n .subscribe();\n\n this.integrationState\n .listen$(FlowAction.FLOW_NAVIGATE_BACK)\n .pipe(\n tap(() => this.flowRouterService.navigateBack()),\n takeUntil(this.cleanup$),\n )\n .subscribe();\n\n this.integrationState\n .listen$(FlowAction.FLOW_NAVIGATE_TO_CATALOG)\n .pipe(\n tap(() => this.flowRouterService.navigateToCatalog()),\n takeUntil(this.cleanup$),\n )\n .subscribe();\n\n this.integrationState\n .listen$(FlowAction.FLOW_APPLY_PRODUCT_CONFIGURATION)\n .pipe(\n switchMap(() => {\n const quoteDraft = this.quoteDraftService.quoteDraft;\n const lineItem = this.configurationService.getSnapshot();\n\n if (!quoteDraft || !lineItem) {\n return of(undefined);\n }\n\n const isNewLineItem = quoteDraft.currentState.every(li => li.id !== lineItem.id);\n const assetId = lineItem.assetId || lineItem.openOrderLineItemId;\n\n let updatedState: LineItem[];\n if (isNewLineItem) {\n updatedState = [...quoteDraft.currentState, lineItem];\n } else {\n updatedState = quoteDraft.currentState.map(li => (li.id === lineItem.id ? lineItem : li));\n }\n\n return this.flowConfigurationService.calculate$({ ...quoteDraft, currentState: updatedState }).pipe(\n tap(() => {\n if (assetId) {\n const modifiedAssets = this.integrationState.state.modifiedAssets ?? {};\n this.integrationState.patchState({\n modifiedAssets: { ...modifiedAssets, [assetId]: true },\n });\n }\n }),\n );\n }),\n tap(() => {\n this.configurationService.hasUnsavedChanges = false;\n this.flowRouterService.navigateToShoppingCart();\n }),\n takeUntil(this.cleanup$),\n )\n .subscribe();\n\n this.updateFlowPath();\n }\n\n public cleanup(): void {\n this.cleanup$.next();\n }\n\n private updateFlowPath(): void {\n this.flowRouterService\n .getFlowSubpath$()\n .pipe(\n map(path => path.split('/')?.[0]),\n takeUntil(this.cleanup$),\n )\n .subscribe(flowPath => this.integrationState.patchState({ flowPath }));\n }\n}\n","import { Injectable } from '@angular/core';\nimport { FlowAction, IntegrationState } from '@veloceapps/sdk/cms';\nimport { BehaviorSubject, Subject, takeUntil, tap } from 'rxjs';\n\n@Injectable()\nexport class FlowDocGenService {\n private cleanup$ = new Subject<void>();\n private isVisibleSubj$ = new BehaviorSubject(false);\n\n public isVisible$ = this.isVisibleSubj$.asObservable();\n\n constructor(private integrationState: IntegrationState) {\n this.initSubscriptions();\n }\n\n public cleanup(): void {\n this.cleanup$.next();\n }\n\n private initSubscriptions(): void {\n this.integrationState\n .listen$(FlowAction.FLOW_OPEN_DOC_GEN)\n .pipe(\n tap(() => this.isVisibleSubj$.next(true)),\n takeUntil(this.cleanup$),\n )\n .subscribe();\n\n this.integrationState\n .listen$(FlowAction.FLOW_CLOSE_DOC_GEN)\n .pipe(\n tap(() => this.isVisibleSubj$.next(false)),\n takeUntil(this.cleanup$),\n )\n .subscribe();\n }\n}\n","import { ChangeDetectionStrategy, Component, OnDestroy, OnInit } from '@angular/core';\nimport { IntegrationState } from '@veloceapps/sdk/cms';\nimport { ContextService, QuoteDraftService } from '@veloceapps/sdk/core';\nimport { combineLatest, map, Observable } from 'rxjs';\nimport { FlowService } from './services';\nimport { FlowDocGenService } from './services/doc-gen.service';\nimport { FlowRouterService } from './services/flow-router.service';\n\n@Component({\n selector: 'vl-flow',\n templateUrl: './flow.component.html',\n styleUrls: ['./flow.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FlowComponent implements OnInit, OnDestroy {\n public isLoading$: Observable<boolean>;\n public showHeader$: Observable<boolean>;\n public isStandalone$: Observable<boolean>;\n\n constructor(\n private routerService: FlowRouterService,\n private quoteDraftService: QuoteDraftService,\n private flowService: FlowService,\n private docGenService: FlowDocGenService,\n private integrationState: IntegrationState,\n private contextService: ContextService,\n ) {\n this.isLoading$ = this.routerService.loading$;\n\n this.showHeader$ = combineLatest([this.routerService.route$, this.quoteDraftService.isStandalone$]).pipe(\n map(([route, isStandalone]) => route.data['showHeader'] && !isStandalone),\n );\n\n this.isStandalone$ = this.quoteDraftService.isStandalone$;\n\n this.flowService.initSubscriptions();\n }\n\n public ngOnInit(): void {\n this.integrationState.clear();\n }\n\n public ngOnDestroy(): void {\n this.flowService.cleanup();\n this.docGenService.cleanup();\n this.contextService.delete();\n }\n}\n","<vl-flow-header *ngIf=\"showHeader$ | async\"></vl-flow-header>\n\n<div class=\"flow-content\">\n <div class=\"loading-overlay\" *ngIf=\"isLoading$ | async\">\n <vl-loader label=\"LOADING\"></vl-loader>\n </div>\n\n <router-outlet></router-outlet>\n\n <vl-flow-guided-selling *ngIf=\"(isStandalone$ | async) !== true\"></vl-flow-guided-selling>\n</div>\n\n<ng-container *ngIf=\"(isStandalone$ | async) !== true\">\n <vl-flow-doc-gen></vl-flow-doc-gen>\n</ng-container>\n","import { ConfigurationContextMode, ContextProperties, FlowProperties, SalesforceIdUtils } from '@veloceapps/core';\n\nexport const getFlowObjectIdPropertyName = (id: string): string => {\n const objectName = SalesforceIdUtils.getSfObjectNameById(id);\n\n switch (objectName) {\n case 'Account':\n return 'accountId';\n case 'Order':\n return 'orderId';\n case 'Quote':\n default:\n return 'quoteId';\n }\n};\n\ninterface DefaultPropertiesFnParams {\n mode?: ConfigurationContextMode;\n flowParams?: FlowProperties;\n}\n\nexport const getDefaultProperties = (params: DefaultPropertiesFnParams): ContextProperties => {\n const properties: ContextProperties = {};\n\n if (params.flowParams?.entryPath.includes('/product') || params.mode === ConfigurationContextMode.REMOTE) {\n properties.standalone = params.flowParams?.queryParams?.['standalone'] ?? 'true';\n }\n\n return properties;\n};\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, CanActivateChild, Router } from '@angular/router';\nimport { ConfigurationContextMode, RpcMessage, VlWindow } from '@veloceapps/core';\nimport { ContextService, RuntimeSettingsService } from '@veloceapps/sdk/core';\nimport { Observable, catchError, forkJoin, from, map, of, tap } from 'rxjs';\nimport { FlowRouterService } from '../services/flow-router.service';\nimport { getDefaultProperties } from '../utils';\n\ndeclare const window: VlWindow;\n\n@Injectable()\nexport class ContextGuard implements CanActivate, CanActivateChild {\n constructor(\n private router: Router,\n private routerService: FlowRouterService,\n private contextService: ContextService,\n private runtimeSettingsService: RuntimeSettingsService,\n ) {}\n\n public checkActivation(route: ActivatedRouteSnapshot): Observable<boolean> {\n const { queryParams } = route;\n const { accountId, quoteId, orderId } = queryParams;\n const rpcMessage = window.RPC_MESSAGE;\n const mode = this.getConfigurationContextMode(accountId, quoteId, orderId, rpcMessage);\n\n // Restrict if mode is not defined\n if (mode == null) {\n return this.handleError(route, 'Mode is undefined');\n }\n\n const headerId = accountId || quoteId || orderId || this.rpcMessageId || 'empty-for-test-mode';\n\n // Allow if context is already initialized with the same headerId\n if (this.contextService.isInitialized) {\n const currentContext = this.contextService.resolve();\n\n if (headerId && currentContext.headerId === headerId) {\n return of(true);\n }\n }\n\n // Initialize context and runtime settings\n return forkJoin([this.contextService.create(headerId, mode), this.runtimeSettingsService.create()]).pipe(\n tap(([context]) => {\n // Update context with queryParams\n this.contextService.update({\n ...context,\n properties: {\n ...context.properties,\n ...(queryParams ?? {}),\n ...getDefaultProperties({ mode }),\n },\n });\n // Init currency settings\n this.runtimeSettingsService.initCurrency(context.properties['CurrencyIsoCode']);\n }),\n map(() => true),\n catchError(e => {\n const message = e instanceof HttpErrorResponse ? e.error.message : e;\n return this.handleError(route, message);\n }),\n );\n }\n\n public canActivate(route: ActivatedRouteSnapshot): Observable<boolean> | Promise<boolean> | boolean {\n return this.checkActivation(route);\n }\n\n public canActivateChild(childRoute: ActivatedRouteSnapshot): Observable<boolean> | Promise<boolean> | boolean {\n return this.checkActivation(childRoute);\n }\n\n private get rpcMessageId(): string | undefined {\n if (!window.RPC_MESSAGE) {\n return;\n }\n\n const rpcMessage: RpcMessage = JSON.parse(window.RPC_MESSAGE);\n const veloceReferenceId = rpcMessage.configuration?.VeloceReferenceId;\n const quoteId = rpcMessage.quote?.Id;\n\n return veloceReferenceId || quoteId;\n }\n\n private getConfigurationContextMode(\n accountId?: string,\n quoteId?: string,\n orderId?: string,\n rpcMessage?: string,\n ): ConfigurationContextMode | undefined {\n if (accountId) {\n return ConfigurationContextMode.ACCOUNT;\n }\n\n if (quoteId) {\n return ConfigurationContextMode.QUOTE;\n }\n\n if (orderId) {\n return ConfigurationContextMode.ORDER;\n }\n\n if (rpcMessage) {\n return ConfigurationContextMode.REMOTE;\n }\n\n return;\n }\n\n private handleError(route: ActivatedRouteSnapshot, message: string): Observable<boolean> {\n this.contextService.delete();\n const parentUrl = this.routerService.getFlowRootPath(route);\n return from(this.router.navigate([parentUrl, '404'], { state: { message } })).pipe(map(() => false));\n }\n}\n","import { Component, Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanDeactivate, Router, RouterStateSnapshot, UrlTree } from '@angular/router';\nimport { ConfigurationService, ContextService, QuoteDraftService } from '@veloceapps/sdk/core';\nimport { Observable, map, of } from 'rxjs';\nimport { FlowDialogService } from '../services/flow-dialog.service';\n\n@Injectable()\nexport class ProductUnloadGuard implements CanDeactivate<any> {\n constructor(\n private router: Router,\n private contextService: ContextService,\n private quoteDraftService: QuoteDraftService,\n private configurationService: ConfigurationService,\n private flowDialogService: FlowDialogService,\n ) {}\n\n public canDeactivate(\n _: Component,\n route: ActivatedRouteSnapshot,\n currentState: RouterStateSnapshot,\n nextState?: RouterStateSnapshot,\n ): Observable<boolean | UrlTree> {\n let observable = of(true);\n\n if (!this.quoteDraftService.isStandalone && this.configurationService.hasUnsavedChanges) {\n observable = this.flowDialogService.showUnsavedChangesDialog();\n }\n\n return observable.pipe(\n map(unload => {\n if (unload) {\n this.configurationService.reset();\n this.contextService.update({ properties: { productId: undefined, lineItemId: undefined } });\n\n if (!nextState || currentState.url === nextState.url) {\n return true;\n }\n\n // clear obsolete queryParams\n const urlTree = this.router.parseUrl(nextState.url);\n\n if (!urlTree.queryParams['productId']) {\n return true;\n }\n\n delete urlTree.queryParams['productId'];\n\n // replace url after deactivation has finished\n setTimeout(() => this.router.navigateByUrl(urlTree.toString(), { replaceUrl: true }));\n\n return true;\n }\n\n return false;\n }),\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, CanDeactivate, Navigation, Router } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { FlowRouterService } from '../services/flow-router.service';\n\n@Injectable({ providedIn: 'root' })\nexport class RootGuard implements CanActivate, CanDeactivate<any> {\n private initialized = false;\n private navToRestore: Navigation | null = null;\n\n constructor(private router: Router, private routerService: FlowRouterService) {}\n\n public canActivate(route: ActivatedRouteSnapshot): Observable<boolean> | Promise<boolean> | boolean {\n // We always need to initialize root component first, and only then start checking guards/resolvers\n\n if (!this.initialized) {\n this.initialized = true;\n this.navToRestore = this.router.getCurrentNavigation();\n\n const rootUrl = this.routerService.getFlowRootPath(route);\n this.router.navigate([rootUrl], { replaceUrl: !this.navToRestore?.previousNavigation });\n } else if (this.navToRestore) {\n const nav = this.navToRestore;\n setTimeout(() => {\n this.router.navigateByUrl(nav.extractedUrl, nav.extras);\n\n this.navToRestore = null;\n });\n }\n\n return true;\n }\n\n public canDeactivate(): boolean {\n this.initialized = false;\n return true;\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Inject,\n OnDestroy,\n OnInit,\n Optional,\n} from '@angular/core';\nimport { UITemplatesApiService } from '@veloceapps/api';\nimport { ToastService, ToastType } from '@veloceapps/components';\nimport {\n ComponentAttachments,\n TemplateComponent,\n UIDefinition,\n UITemplate,\n UITemplateComponentType,\n} from '@veloceapps/core';\nimport { ContextService } from '@veloceapps/sdk/core';\nimport { BehaviorSubject, Observable, Subject, catchError, map, of, switchMap, takeUntil, tap } from 'rxjs';\nimport { FLOW_CUSTOMIZATION, FlowCustomization } from '../../types';\n\ninterface State {\n loading: boolean;\n failure: boolean;\n}\n\n@Component({\n selector: 'vl-flow-assets',\n templateUrl: './assets.component.html',\n styleUrls: ['./assets.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AssetsComponent implements OnInit, OnDestroy {\n public uiDefinition?: UIDefinition = undefined;\n public state$ = new BehaviorSubject<State>({ loading: true, failure: false });\n\n private templateApiName = '';\n private destroyed$ = new Subject<void>();\n\n constructor(\n private templatesApi: UITemplatesApiService,\n private contextService: ContextService,\n private cdr: ChangeDetectorRef,\n private toastService: ToastService,\n @Optional() @Inject(FLOW_CUSTOMIZATION) private customizationService?: FlowCustomization,\n ) {\n this.templateApiName = this.contextService.resolve().properties['assetsTemplateApiName'] ?? '';\n }\n\n public ngOnInit(): void {\n this.generateUIDefinition$()\n .pipe(\n tap(uiDef => {\n if (!uiDef) {\n throw new Error(`Component with name '${this.templateApiName}' not found.`);\n }\n\n this.uiDefinition = uiDef;\n this.state$.next({ loading: false, failure: false });\n }),\n catchError(err => {\n const message = 'Failed to resolve Assets component. ' + (err.message ?? '');\n this.toastService.add({ severity: ToastType.error, summary: message, sticky: true });\n\n this.uiDefinition = undefined;\n this.state$.next({ loading: false, failure: true });\n return of();\n }),\n takeUntil(this.destroyed$),\n )\n .subscribe(() => this.cdr.detectChanges());\n }\n\n public ngOnDestroy(): void {\n this.destroyed$.next();\n this.destroyed$.complete();\n }\n\n private getTemplateRootComponent$(template: UITemplate): Observable<TemplateComponent | undefined> {\n return this.templatesApi\n .fetchComponents$(template.id)\n .pipe(map(components => components.find(c => c.type === UITemplateComponentType.ROOT) ?? undefined));\n }\n\n private getLocalAssetsComponentMeta$(): Observable<ComponentAttachments | undefined> {\n if (!this.customizationService?.getAssetsComponent) {\n return of(undefined);\n }\n\n return this.customizationService?.getAssetsComponent(this.templateApiName).pipe(\n map(component => {\n if (!component) {\n return;\n }\n\n return <ComponentAttachments>{\n html: component.html,\n css: component.css,\n js: component.js,\n json: component.json,\n };\n }),\n );\n }\n\n private getAssetsComponentMeta$(): Observable<ComponentAttachments | undefined> {\n return this.templatesApi.fetchTemplates$().pipe(\n map<UITemplate[], UITemplate | undefined>(templates =>\n templates.find(template => template.name === this.templateApiName),\n ),\n switchMap(template => (template ? this.getTemplateRootComponent$(template) : of(undefined))),\n switchMap(component =>\n component ? this.templatesApi.fetchComponentAttachments$(component.uiTemplateId, component) : of(undefined),\n ),\n );\n }\n\n private generateUIDefinition$(): Observable<UIDefinition | undefined> {\n return of(undefined).pipe(\n tap(() => {\n if (!this.templateApiName) {\n throw new Error(\"Flow Query parameter 'assetsTemplateApiName' is missing.\");\n }\n }),\n switchMap(() => this.getLocalAssetsComponentMeta$()),\n switchMap(meta => (meta ? of(meta) : this.getAssetsComponentMeta$())),\n map(meta => {\n if (!meta) {\n return;\n }\n\n const uiDef: UIDefinition = {\n name: '',\n createdTimestamp: 0,\n primary: true,\n type: 'DEFAULT',\n version: 2,\n children: [\n {\n children: [],\n template: meta.html && btoa(meta.html),\n script: meta.js && btoa(meta.js),\n styles: meta.css && btoa(meta.css),\n },\n ],\n };\n\n return uiDef;\n }),\n );\n }\n}\n","<ng-container *ngIf=\"state$ | async as state\">\n <vl-loader *ngIf=\"state.loading; else content\" [label]=\"'Loading UI'\"></vl-loader>\n\n <ng-template #content>\n <ng-container *ngIf=\"!state.failure\">\n <vl-cms-preview [uiDefinition]=\"uiDefinition\"></vl-cms-preview>\n </ng-container>\n </ng-template>\n</ng-container>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { LoaderModule } from '@veloceapps/components';\nimport { PreviewModule } from '@veloceapps/sdk/cms';\nimport { AssetsComponent } from './assets.component';\n\n@NgModule({\n declarations: [AssetsComponent],\n imports: [CommonModule, PreviewModule, LoaderModule],\n exports: [AssetsComponent],\n})\nexport class AssetsModule {}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Inject,\n OnDestroy,\n OnInit,\n Optional,\n} from '@angular/core';\nimport { UITemplatesApiService } from '@veloceapps/api';\nimport { ToastService, ToastType } from '@veloceapps/components';\nimport {\n ComponentAttachments,\n TemplateComponent,\n UIDefinition,\n UITemplate,\n UITemplateComponentType,\n} from '@veloceapps/core';\nimport { ContextService } from '@veloceapps/sdk/core';\nimport { BehaviorSubject, Observable, Subject, catchError, map, of, switchMap, takeUntil, tap } from 'rxjs';\nimport { FLOW_CUSTOMIZATION, FlowCustomization } from '../../types';\n\ninterface State {\n loading: boolean;\n failure: boolean;\n}\n\n@Component({\n selector: 'vl-flow-catalog',\n templateUrl: './catalog.component.html',\n styleUrls: ['./catalog.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CatalogComponent implements OnInit, OnDestroy {\n public uiDefinition?: UIDefinition = undefined;\n public state$ = new BehaviorSubject<State>({ loading: true, failure: false });\n\n private templateApiName = '';\n private destroyed$ = new Subject<void>();\n\n constructor(\n private templatesApi: UITemplatesApiService,\n private contextService: ContextService,\n private cdr: ChangeDetectorRef,\n private toastService: ToastService,\n @Optional() @Inject(FLOW_CUSTOMIZATION) private customizationService?: FlowCustomization,\n ) {\n this.templateApiName = this.contextService.resolve().properties.catalogTemplateApiName ?? '';\n }\n\n public ngOnInit(): void {\n this.generateUIDefinition$()\n .pipe(\n tap(uiDef => {\n if (!uiDef) {\n throw new Error(`Component with name '${this.templateApiName}' not found.`);\n }\n\n this.uiDefinition = uiDef;\n this.state$.next({ loading: false, failure: false });\n }),\n catchError(err => {\n const message = 'Failed to resolve Catalog component. ' + (err.message ?? '');\n this.toastService.add({ severity: ToastType.error, summary: message, sticky: true });\n\n this.uiDefinition = undefined;\n this.state$.next({ loading: false, failure: true });\n return of();\n }),\n takeUntil(this.destroyed$),\n )\n .subscribe(() => this.cdr.detectChanges());\n }\n\n public ngOnDestroy(): void {\n this.destroyed$.next();\n this.destroyed$.complete();\n }\n\n private getTemplateRootComponent$(template: UITemplate): Observable<TemplateComponent | undefined> {\n return this.templatesApi\n .fetchComponents$(template.id)\n .pipe(map(components => components.find(c => c.type === UITemplateComponentType.ROOT) ?? undefined));\n }\n\n private getLocalCatalogComponentMeta$(): Observable<ComponentAttachments | undefined> {\n if (!this.customizationService?.getCatalogComponent) {\n return of(undefined);\n }\n\n return this.customizationService?.getCatalogComponent(this.templateApiName).pipe(\n map(component => {\n if (!component) {\n return;\n }\n\n return <ComponentAttachments>{\n html: component.html,\n css: component.css,\n js: component.js,\n json: component.json,\n };\n }),\n );\n }\n\n private getCatalogComponentMeta$(): Observable<ComponentAttachments | undefined> {\n return this.templatesApi.fetchTemplates$().pipe(\n map<UITemplate[], UITemplate | undefined>(templates =>\n templates.find(template => template.name === this.templateApiName),\n ),\n switchMap(template => (template ? this.getTemplateRootComponent$(template) : of(undefined))),\n switchMap(component =>\n component ? this.templatesApi.fetchComponentAttachments$(component.uiTemplateId, component) : of(undefined),\n ),\n );\n }\n\n private generateUIDefinition$(): Observable<UIDefinition | undefined> {\n return of(undefined).pipe(\n tap(() => {\n if (!this.templateApiName) {\n throw new Error(\"Flow Query parameter 'catalogTemplateApiName' is missing.\");\n }\n }),\n switchMap(() => this.getLocalCatalogComponentMeta$()),\n switchMap(meta => (meta ? of(meta) : this.getCatalogComponentMeta$())),\n map(meta => {\n if (!meta) {\n return;\n }\n\n const uiDef: UIDefinition = {\n name: '',\n createdTimestamp: 0,\n primary: true,\n type: 'DEFAULT',\n version: 2,\n children: [\n {\n children: [],\n template: meta.html && btoa(meta.html),\n script: meta.js && btoa(meta.js),\n styles: meta.css && btoa(meta.css),\n },\n ],\n };\n\n return uiDef;\n }),\n );\n }\n}\n","<ng-container *ngIf=\"state$ | async as state\">\n <vl-loader *ngIf=\"state.loading; else content\" [label]=\"'Loading UI'\"></vl-loader>\n\n <ng-template #content>\n <ng-container *ngIf=\"!state.failure\">\n <vl-cms-preview [uiDefinition]=\"uiDefinition\"></vl-cms-preview>\n </ng-container>\n </ng-template>\n</ng-container>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { LoaderModule } from '@veloceapps/components';\nimport { PreviewModule } from '@veloceapps/sdk/cms';\nimport { CatalogComponent } from './catalog.component';\n\n@NgModule({\n declarations: [CatalogComponent],\n imports: [CommonModule, PreviewModule, LoaderModule],\n exports: [CatalogComponent],\n})\nexport class CatalogModule {}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { ActivatedRoute, Params, Router } from '@angular/router';\nimport { FlowsApiService } from '@veloceapps/api';\nimport { FlowProperties } from '@veloceapps/core';\nimport { ContextService, QuoteDraftService } from '@veloceapps/sdk/core';\nimport { Observable, map, shareReplay } from 'rxjs';\nimport { getFlowObjectIdPropertyName } from '../../utils';\n\ninterface FlowPropertiesExt extends FlowProperties {\n queryParamsStr: string;\n}\n\n@Component({\n selector: 'vl-flow-debug',\n templateUrl: './debug.component.html',\n styleUrls: ['./debug.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DebugComponent {\n public form = new FormGroup({\n id: new FormControl(''),\n });\n\n public selectedFlow?: FlowPropertiesExt;\n public flows$: Observable<FlowPropertiesExt[]>;\n\n constructor(\n private flowsApiService: FlowsApiService,\n private router: Router,\n private activatedRoute: ActivatedRoute,\n private context: ContextService,\n private quoteDraftService: QuoteDraftService,\n ) {\n this.flows$ = this.flowsApiService.fetchFlows().pipe(\n map(flows =>\n flows.map<FlowPropertiesExt>(flow => {\n const queryParams: Params = flow?.properties?.queryParams ?? {};\n return {\n id: flow.id,\n entryPath: flow?.properties?.entryPath,\n queryParams,\n queryParamsStr: JSON.stringify(queryParams),\n };\n }),\n ),\n shareReplay(),\n );\n }\n\n public runFlow(): void {\n const { id } = this.form.value;\n const objectPropertyName = id && getFlowObjectIdPropertyName(id);\n\n if (!id || !objectPropertyName || !this.selectedFlow) {\n return;\n }\n\n // Delete context before starting a new flow\n this.context.delete();\n this.quoteDraftService.reset();\n\n this.router.navigate(['..', 'flows'], {\n queryParams: {\n flowId: this.selectedFlow.id,\n [objectPropertyName]: id,\n ...this.selectedFlow.queryParams,\n },\n relativeTo: this.activatedRoute,\n });\n }\n}\n","<form [formGroup]=\"form\">\n <div class=\"fields-container\">\n <div class=\"field\">\n <label>SF Object ID</label>\n <input formControlName=\"id\" pInputText type=\"text\" />\n </div>\n </div>\n\n <p-button\n styleClass=\"p-button-primary\"\n label=\"Run Flow\"\n [disabled]=\"!form.value.id || !selectedFlow\"\n (onClick)=\"runFlow()\"\n ></p-button>\n</form>\n\n<table>\n <thead>\n <tr>\n <th [width]=\"30\"></th>\n <th [width]=\"160\">ID</th>\n <th [width]=\"160\">Entry Path</th>\n <th>QueryParams</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let flow of flows$ | async\" (click)=\"selectedFlow = flow\">\n <td><p-radioButton [inputId]=\"flow.id\" name=\"flow\" [value]=\"flow\" [(ngModel)]=\"selectedFlow\"></p-radioButton></td>\n <td>{{ flow.id }}</td>\n <td>{{ flow.entryPath }}</td>\n <td>{{ flow.queryParamsStr }}</td>\n </tr>\n </tbody>\n</table>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { RouterModule, Routes } from '@angular/router';\nimport { ButtonModule } from 'primeng/button';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { RadioButtonModule } from 'primeng/radiobutton';\nimport { DebugComponent } from './debug.component';\n\nconst routes: Routes = [{ path: '', component: DebugComponent }];\n\n@NgModule({\n declarations: [DebugComponent],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n RouterModule.forChild(routes),\n RadioButtonModule,\n ButtonModule,\n InputTextModule,\n DropdownModule,\n ],\n})\nexport class DebugModule {}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'vl-empty-account',\n templateUrl: './empty-account.component.html',\n styleUrls: ['./empty-account.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class EmptyAccountComponent {}\n","<vl-empty-state\n primaryText=\"No Orders in your Account\"\n secondaryText=\"To proceed, go to the Shopping Cart from a Quote.\"\n>\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"400\" height=\"281\" viewBox=\"0 0 400 281\" fill=\"none\">\n <path d=\"M264.214 26.9277H70.8805V128.186H264.214V26.9277Z\" fill=\"#0466C8\" />\n <path\n d=\"M143 56.5H136.217C128.166 64.4791 120.051 72.5209 112 80.5H118.783C126.834 72.5209 134.949 64.5419 143 56.5Z\"\n fill=\"white\"\n />\n <path\n d=\"M242.932 57.5681V79.4319H128.575L133.724 74.2801L150.429 57.5681H242.932ZM244 56.5H149.989C142.014 64.4791 133.976 72.5209 126 80.5H244V56.5Z\"\n fill=\"white\"\n />\n <path d=\"M129 56.5H81V80.5H104.969C112.958 72.5209 120.948 64.5419 129 56.5Z\" fill=\"white\" />\n <path\n d=\"M82.3 23.2016C82.2366 23.2016 82.1732 23.2644 82.1098 23.2644C81.3494 23.5785 80.5889 23.5785 79.8918 23.2644C79.765 23.2016 79.6383 23.1387 79.4482 23.0759C78.9412 22.7618 78.561 22.322 78.3075 21.7565C77.6104 20.2487 78.1173 18.6151 79.6383 17.8612C81.1592 17.1073 82.9971 17.547 83.6942 19.0549C84.3913 20.6256 83.8843 22.3848 82.3 23.2016Z\"\n fill=\"#B4D1EF\"\n />\n <path\n d=\"M92.2716 23.2016C92.2086 23.2016 92.1457 23.2644 92.0827 23.2644C91.3273 23.5785 90.5718 23.5785 89.8793 23.2644C89.7534 23.2016 89.6275 23.1387 89.4386 23.0759C88.935 22.7618 88.5573 22.322 88.3054 21.7565C87.6129 20.2487 88.1166 18.6151 89.6275 17.8612C91.1384 17.1073 92.9641 17.547 93.6566 19.0549C94.412 20.6256 93.9084 22.3848 92.2716 23.2016Z\"\n fill=\"#B4D1EF\"\n />\n <path\n d=\"M102.3 23.2016C102.237 23.2016 102.173 23.2644 102.11 23.2644C101.349 23.5785 100.589 23.5785 99.8918 23.2644C99.765 23.2016 99.6383 23.1387 99.4482 23.0759C98.9412 22.7618 98.561 22.322 98.3075 21.7565C97.6104 20.2487 98.1174 18.6151 99.6383 17.8612C101.159 17.1073 102.997 17.547 103.694 19.0549C104.391 20.6256 103.884 22.3848 102.3 23.2016Z\"\n fill=\"#B4D1EF\"\n />\n <path\n d=\"M210.126 91.0156H130.44C129.748 91.0156 129.748 92.0848 130.44 92.0848H210.126C210.818 92.0848 210.818 91.0156 210.126 91.0156Z\"\n fill=\"white\"\n />\n <path\n d=\"M197.484 97.5566H142.013C141.321 97.5566 141.321 98.6258 142.013 98.6258H197.484C198.176 98.6258 198.176 97.5566 197.484 97.5566Z\"\n fill=\"white\"\n />\n <path\n d=\"M229.436 35.5H61.5553C60.8149 35.5 60.8149 36.5 61.5553 36.5H229.503C230.176 36.5 230.176 35.5 229.436 35.5Z\"\n fill=\"#002957\"\n />\n <path\n d=\"M270.44 35.3555H256.226C256.163 35.3555 256.163 36.4246 256.226 36.4246H270.44C270.503 36.4246 270.503 35.3555 270.44 35.3555Z\"\n fill=\"#002957\"\n />\n <path\n d=\"M332.704 212.022C332.642 212.022 332.579 212.022 332.516 211.959L280.566 191.582C280.377 191.519 280.252 191.33 280.252 191.141C280.252 190.953 280.314 190.764 280.44 190.638C292.83 181.33 333.333 150.953 335.346 150.953C335.472 150.953 335.66 151.016 335.723 151.141C335.849 151.267 335.849 151.393 335.849 151.519L333.208 211.456C333.208 211.644 333.082 211.77 332.956 211.896C332.893 211.959 332.767 212.022 332.704 212.022ZM281.824 190.953L332.138 210.701L334.717 152.336C329.811 155.166 301.321 176.299 281.824 190.953Z\"\n fill=\"#E5ECF4\"\n />\n <path\n d=\"M366.289 231.015C366.226 231.015 366.226 231.015 366.164 231.015L349.371 227.053C349.182 226.99 349.057 226.927 348.994 226.739C348.931 226.613 348.931 226.424 348.994 226.236L357.736 211.141C357.862 210.953 358.05 210.89 358.239 210.89C358.428 210.89 358.616 211.015 358.679 211.204C366.918 229.758 366.792 230.324 366.792 230.512C366.792 230.638 366.667 230.764 366.541 230.89C366.478 230.953 366.415 231.015 366.289 231.015ZM350.314 226.173L365.472 229.758C364.465 227.116 360.755 218.626 358.113 212.651L350.314 226.173Z\"\n fill=\"#E5ECF4\"\n />\n <path\n d=\"M199.686 248.751C192.516 229.38 177.799 213.909 159.497 205.67V205.607C159.748 193.343 154.528 181.141 144.654 173.657C133.396 165.104 118.365 162.902 104.591 164.034C78.1132 166.236 53.0189 181.456 38.805 203.846C36.9811 206.739 35.3459 209.758 33.8365 212.839C33.522 213.468 34.4654 214.034 34.7799 213.405C45.4088 191.015 66.1635 174.16 90 167.682C113.711 161.267 146.981 164.726 156.226 191.519C157.736 195.921 158.491 200.575 158.428 205.229C150.943 201.959 142.893 199.946 134.465 199.254C121.447 198.248 103.522 199.506 95.283 211.204C91.761 216.236 90.8805 222.525 93.5849 228.122C96.2893 233.72 101.761 237.745 107.421 239.946C118.868 244.475 132.39 242.462 142.642 235.858C152.642 229.38 158.679 218.688 159.371 206.865C177.17 215.041 191.572 230.072 198.616 249.066C198.931 249.695 199.937 249.443 199.686 248.751ZM152.075 225.481C145.094 235.355 133.019 241.141 121.006 241.267C109.434 241.393 92.7044 234.6 93.0189 220.701C93.2076 213.217 98.9937 207.305 105.346 204.286C112.013 201.141 119.748 200.198 127.044 200.072C137.987 199.883 148.616 202.148 158.302 206.361C158.113 213.154 156.038 219.883 152.075 225.481Z\"\n fill=\"#E5ECF4\"\n />\n <path\n d=\"M341.447 271.204H322.767C322.075 271.204 322.075 272.273 322.767 272.273H341.447C342.138 272.336 342.138 271.204 341.447 271.204Z\"\n fill=\"#E5ECF4\"\n />\n <path\n d=\"M233.522 75.4814C230.881 89.3179 229.245 103.154 224.025 110.576C213.962 124.915 185.975 137.117 178.428 143.972C170.881 150.764 171.95 151.142 173.019 152.588C173.648 153.469 177.862 151.771 181.132 150.261C177.421 152.211 172.579 155.23 173.711 157.242C174.654 159.003 178.679 157.808 182.201 156.362C178.994 158.123 175.786 160.387 176.981 161.959C178.365 163.783 183.585 161.897 187.107 160.387C184.088 162.022 180.314 164.475 181.635 166.299C183.774 169.192 235.849 149.758 245.157 120.702C248.805 109.318 250.881 94.6009 252.013 80.8274C245.786 79.3808 239.623 77.494 233.522 75.4814Z\"\n fill=\"#D4E8F7\"\n />\n <path\n d=\"M182.327 148.437C179.497 150.576 176.226 151.645 172.704 151.582C172.013 151.582 172.013 152.651 172.704 152.651C176.415 152.714 179.937 151.582 182.893 149.318C183.396 148.941 182.893 147.997 182.327 148.437Z\"\n fill=\"#002957\"\n />\n <path\n d=\"M184.906 154.852C183.27 155.607 181.635 156.173 179.937 156.676C178.302 157.117 175.723 158.06 174.151 157.117C173.522 156.802 173.019 157.683 173.585 158.06C175.157 158.94 176.918 158.5 178.553 158.123C180.943 157.62 183.145 156.802 185.346 155.796C186.101 155.481 185.535 154.538 184.906 154.852Z\"\n fill=\"#002957\"\n />\n <path\n d=\"M186.163 158.185C184.277 159.946 180.189 163.217 177.421 161.833C176.792 161.519 176.226 162.462 176.855 162.777C180.252 164.412 184.528 161.141 186.855 158.94C187.421 158.437 186.667 157.682 186.163 158.185Z\"\n fill=\"#002957\"\n />\n <path\n d=\"M253.522 46.0474C253.522 47.1166 253.522 48.3115 253.522 49.6323C253.459 57.3052 253.145 69.1291 252.013 81.6449C251.95 82.148 251.95 82.6512 251.887 83.1543C245.472 82.148 236.981 79.2549 230.629 78.1857C232.893 65.7958 237.736 54.2864 244.151 45.4185C245.157 44.0348 246.226 42.7769 247.421 41.6449L253.522 40.5757C253.522 40.5757 253.522 41.3933 253.585 42.8398C253.522 43.6574 253.522 44.7266 253.522 46.0474Z\"\n fill=\"#F2F7FC\"\n />\n <path\n d=\"M184.687 136.932C179.875 137.121 175.253 138.637 170.631 139.837C165.565 141.101 160.5 142.174 155.371 143.122C134.602 146.975 113.264 148.238 92.1786 146.849C74.7659 145.712 55.3904 142.238 43.2332 128.531C32.469 116.403 28.9865 98.1477 34.9384 82.9879C40.7638 68.0807 55.3271 57.6583 70.9668 55.5738V54.5C58.6197 56.0792 46.969 62.7748 39.4341 72.755C29.9996 85.325 28.6066 102.317 34.6218 116.719C41.0804 132.257 55.2004 141.227 71.1568 145.017C80.2747 147.165 89.6458 147.923 98.9537 148.302C109.718 148.744 120.545 148.428 131.246 147.544C143.087 146.533 154.801 144.638 166.388 142.048C172.403 140.658 178.545 138.321 184.687 138.132C190.576 137.942 197.604 140.974 197.921 147.607C197.984 148.302 199.061 148.302 198.997 147.607C198.617 140.216 191.209 136.679 184.687 136.932Z\"\n fill=\"#002957\"\n />\n <path\n d=\"M190 164.091V172.909C190 173.697 191 173.697 191 172.909V164.091C191 163.303 190 163.303 190 164.091Z\"\n fill=\"#002957\"\n />\n <path\n d=\"M199 164.037V172.963C199 173.679 200 173.679 200 172.963V164.037C200 163.321 199 163.321 199 164.037Z\"\n fill=\"#002957\"\n />\n <path\n d=\"M182 166.5V155.275C182 148.205 187.792 142.5 194.969 142.5C202.145 142.5 207.937 148.205 207.937 155.275L208 166.5H182Z\"\n fill=\"#0466C8\"\n />\n <path\n d=\"M209.483 165.5H180.517C179.828 165.5 179.828 166.5 180.517 166.5H209.483C210.172 166.5 210.172 165.5 209.483 165.5Z\"\n fill=\"#0466C8\"\n />\n <path\n d=\"M203.711 151.519V161.582C203.711 162.274 204.78 162.274 204.78 161.582V151.519C204.843 150.827 203.711 150.827 203.711 151.519Z\"\n fill=\"white\"\n />\n <path\n d=\"M196.73 134.601C187.421 142.148 183.648 152.274 187.233 153.343C190.818 154.412 203.208 135.67 203.208 135.67L196.73 134.601Z\"\n fill=\"#D4E8F7\"\n />\n <path\n d=\"M199.748 139.632C196.855 144.098 193.396 148.374 189.182 151.708L188.239 152.399C187.358 152.84 186.352 152.148 186.478 150.953C186.541 150.45 187.233 149.066 187.421 148.689C187.925 147.557 188.491 146.425 189.057 145.292C190.377 142.777 191.824 140.387 193.459 138.06C193.836 137.494 192.893 136.928 192.516 137.494C191.195 139.443 181.824 152.399 186.855 153.594C189.245 154.16 191.824 150.827 193.27 149.381C196.038 146.55 198.491 143.469 200.692 140.135C201.069 139.569 200.126 139.066 199.748 139.632Z\"\n fill=\"#002957\"\n />\n <path\n d=\"M211.132 135.984C207.736 139.003 203.648 140.89 199.057 141.33C198.365 141.393 198.365 142.462 199.057 142.399C203.899 141.896 208.239 139.947 211.887 136.739C212.39 136.299 211.635 135.544 211.132 135.984Z\"\n fill=\"#002957\"\n />\n <path\n d=\"M238.176 254.224C250.692 253.783 263.208 255.607 275.723 255.796C275.157 254.475 274.654 253.217 274.088 251.897C273.774 251.205 273.459 250.513 273.145 249.821C270.377 243.658 267.484 237.809 264.717 232.274C254.906 235.859 245.031 239.129 234.843 241.331C237.547 246.928 239.12 251.393 238.176 254.224Z\"\n fill=\"#D4E8F7\"\n />\n <path\n d=\"M273.899 253.595C276.101 253.783 278.365 253.783 280.566 253.72C284.717 253.658 288.805 253.72 292.956 253.72C299.12 253.783 305.283 253.532 311.384 253.091C307.17 244.161 302.767 235.796 298.553 228.06C289.057 230.639 279.56 232.966 269.937 235.104C273.145 242.525 275.031 249.003 273.899 253.595Z\"\n fill=\"#D4E8F7\"\n />\n <path\n d=\"M274.214 250.828C273.836 255.104 271.069 257.997 267.107 259.57C256.352 263.909 259.937 272.84 259.937 272.84H319.874C316.918 265.167 313.648 257.809 310.314 250.765H274.214V250.828Z\"\n fill=\"#002957\"\n />\n <path\n d=\"M307.296 229.758C293.459 203.783 276.289 186.299 281.447 173.72C297.233 135.419 300.818 107.997 291.887 84.3494L267.484 80.0098C267.484 80.0098 269.623 91.5192 268.553 112.337C267.484 133.154 252.201 152.022 250.252 182.337C249.182 199.129 259.937 225.985 266.415 241.582C275.912 238.437 297.547 232.085 307.296 229.758Z\"\n fill=\"#002957\"\n />\n <path\n d=\"M265.786 234.475C252.516 207.934 240.063 187.683 246.415 172.714C263.145 133.406 281.069 109.884 272.075 86.1733C272.075 86.1733 254.843 72.5255 253.774 93.3431C252.704 114.161 218.05 153.846 214.088 183.972C211.321 204.915 223.962 230.513 230.252 245.356C240.252 242.337 256.352 238.815 265.786 234.475Z\"\n fill=\"#002957\"\n />\n <path\n d=\"M282.201 272.84H222.264C222.264 272.84 222.264 260.45 234.654 257.243C237.17 256.614 238.302 255.104 238.491 252.966H274.591C277.296 259.255 279.874 265.922 282.201 272.84Z\"\n fill=\"#002957\"\n />\n <path\n d=\"M274.088 251.896C274.025 252.274 273.962 252.588 273.836 252.966C273.082 255.67 271.195 258.123 268.428 259.444C264.151 261.519 259.119 261.456 256.289 265.922C254.969 268.06 254.402 270.45 254.34 272.84H253.333C253.522 268.311 254.906 264.098 259.182 261.708C262.704 259.758 267.233 259.821 270.252 256.991C271.447 255.922 272.264 254.475 272.704 252.966C273.019 251.959 273.145 250.89 273.082 249.884C273.459 250.513 273.774 251.205 274.088 251.896Z\"\n fill=\"white\"\n />\n <path\n d=\"M281.195 256.739C279.497 255.67 277.799 254.601 276.101 253.532C275.535 253.154 274.969 254.098 275.535 254.475C277.233 255.544 278.931 256.614 280.629 257.683C281.258 258.06 281.761 257.117 281.195 256.739Z\"\n fill=\"white\"\n />\n <path\n d=\"M244.717 257.809C242.893 257.242 241.132 256.739 239.308 256.173C238.616 255.985 238.365 256.991 238.994 257.243C240.818 257.809 242.579 258.312 244.403 258.878C245.094 259.066 245.346 258.06 244.717 257.809Z\"\n fill=\"white\"\n />\n <path\n d=\"M262.516 231.267C261.069 227.682 259.623 224.098 258.239 220.513C257.987 219.884 256.918 220.135 257.17 220.827C258.616 224.412 260.063 227.997 261.447 231.582C261.698 232.211 262.767 231.959 262.516 231.267Z\"\n fill=\"white\"\n />\n <path\n d=\"M268.616 110.073C268.491 110.513 268.365 110.953 268.302 111.394C265.786 121.645 263.208 131.897 260.692 142.148C260.503 142.84 259.497 142.526 259.623 141.834C262.264 131.331 264.843 120.765 267.484 110.262C267.61 109.821 267.736 109.381 267.799 108.878C268.05 109.318 268.365 109.696 268.616 110.073Z\"\n fill=\"white\"\n />\n <path\n d=\"M268.616 110.073C268.491 110.513 268.365 110.953 268.302 111.393C268.05 111.016 267.736 110.639 267.484 110.261C266.478 108.878 265.409 107.494 264.402 106.11C263.962 105.544 264.906 105.041 265.346 105.544C266.163 106.676 266.981 107.808 267.862 108.878C268.05 109.318 268.365 109.695 268.616 110.073Z\"\n fill=\"white\"\n />\n <path\n d=\"M251.698 43.0913C238.994 45.7328 251.509 69.5693 253.836 93.3429L291.887 84.3492C291.887 84.3492 276.415 37.997 251.698 43.0913Z\"\n fill=\"#F2F7FC\"\n />\n <path\n d=\"M251.384 79.8839C249.308 73.6574 247.296 67.4939 245.22 61.2675C245.031 60.6386 243.962 60.8901 244.151 61.582C246.226 67.8084 248.239 73.9719 250.314 80.1983C250.566 80.8273 251.572 80.5128 251.384 79.8839Z\"\n fill=\"#002957\"\n />\n <path\n d=\"M332.075 57.431C322.39 48.3744 311.447 43.5945 299.811 41.2046C297.673 46.9908 295.723 52.9027 293.962 58.8147C295.66 59.3807 297.359 60.0096 298.994 60.6386C323.396 69.6323 326.667 87.1794 330.566 97.6197C334.528 108.06 322.642 122.777 326.604 124.538C330.566 126.362 336.289 113.028 336.289 113.028C336.289 113.028 334.843 135.481 337.736 136.173C340.377 136.865 341.698 131.016 342.264 126.488C342.076 130.764 342.327 136.047 344.906 135.859C347.17 135.67 347.862 131.456 347.987 127.494C348.365 130.764 349.245 133.909 351.384 134.098C354.088 134.349 353.962 128.626 353.522 124.349C354.277 128.123 355.66 132.777 358.05 131.896C362.075 130.513 353.962 77.8713 332.075 57.431Z\"\n fill=\"#D4E8F7\"\n />\n <path\n d=\"M302.453 41.7707C300.314 47.7455 296.667 58.8147 295.157 64.9782C287.61 60.6386 279.245 57.1795 273.082 53.6575C265.723 49.5065 258.742 47.5569 254.717 46.3619C254.277 46.2361 253.836 46.1103 253.459 46.0474C251.572 45.5443 250.566 45.2298 250.566 45.2298L251.95 43.0286L253.459 40.5757C254.717 40.4499 255.912 40.3871 257.17 40.2613C272.704 38.9405 288.176 38.3745 302.453 41.7707Z\"\n fill=\"#F2F7FC\"\n />\n <path\n d=\"M341.761 123.846C341.384 127.117 341.887 134.853 337.673 135.67C336.981 135.796 337.296 136.865 337.987 136.739C339.874 136.362 341.069 134.915 341.572 133.154C342.453 130.261 342.453 126.928 342.83 123.909C342.956 123.154 341.824 123.154 341.761 123.846Z\"\n fill=\"#002957\"\n />\n <path\n d=\"M346.981 122.966C346.918 124.852 346.855 126.739 346.73 128.626C346.667 129.884 347.107 135.544 344.78 135.041C344.088 134.915 343.837 135.922 344.466 136.11C346.352 136.488 347.296 135.104 347.61 133.406C348.176 130.073 347.925 126.362 348.05 122.966C348.113 122.274 347.044 122.274 346.981 122.966Z\"\n fill=\"#002957\"\n />\n <path\n d=\"M353.648 122.022C353.648 121.33 352.579 121.33 352.579 122.022C352.642 124.035 353.774 132.337 351.132 133.029C350.44 133.217 350.755 134.224 351.447 134.098C353.019 133.657 353.648 132.525 353.774 130.953C354.088 128.06 353.711 124.978 353.648 122.022Z\"\n fill=\"#002957\"\n />\n <path\n d=\"M358.868 119.129C358.805 118.437 357.736 118.5 357.799 119.192C357.987 120.953 360.126 130.639 357.547 131.142C356.855 131.267 357.17 132.274 357.862 132.148C359.56 131.834 360 130.387 360 128.815C359.937 125.67 359.245 122.337 358.868 119.129Z\"\n fill=\"#002957\"\n />\n <path\n d=\"M275.346 54.3493C274.088 53.8462 272.83 53.4059 271.635 52.9028C271.006 52.6512 270.692 53.7204 271.321 53.972C272.579 54.4751 273.836 54.9154 275.031 55.4185C275.723 55.6701 276.038 54.6009 275.346 54.3493Z\"\n fill=\"#002957\"\n />\n <path\n d=\"M256.164 41.9592C254.277 37.4938 251.509 31.2045 251.132 31.1416L241.006 33.28C241.006 33.28 245.849 42.9655 248.113 47.5567C250.629 45.4812 253.333 43.6573 256.164 41.9592Z\"\n fill=\"#D4E8F7\"\n />\n <path\n d=\"M252.704 28.4372C252.704 28.7517 252.642 29.0661 252.579 29.3806C252.516 29.6951 252.453 30.0095 252.39 30.2611C252.39 30.324 252.327 30.3869 252.327 30.4498C252.264 30.7013 252.201 30.9529 252.138 31.2045C250.943 35.041 247.862 38.0598 243.082 38.1856C233.899 38.3743 230.252 30.7013 231.384 24.412C232.138 20.1982 235.094 16.5504 239.937 16.173C240.126 16.173 240.377 16.1102 240.566 16.1102C245.031 16.0473 248.176 17.6825 250.189 20.0724C250.503 20.5127 250.818 20.9529 251.132 21.3932C251.321 21.7076 251.447 22.0221 251.635 22.3366C251.887 22.8397 252.075 23.3429 252.201 23.846C252.641 25.3554 252.83 26.9278 252.704 28.4372Z\"\n fill=\"#D4E8F7\"\n />\n <path d=\"M236.478 29.3179L238.679 34.9782L234.528 35.2298L236.478 29.3179Z\" fill=\"#002957\" />\n <path\n d=\"M239.182 28.0601L239.434 28.8148C239.686 29.4438 238.616 29.6953 238.365 29.0664L238.113 28.3117C237.924 27.6827 238.994 27.4312 239.182 28.0601Z\"\n fill=\"#002957\"\n />\n <path\n d=\"M233.27 28.9406L233.522 29.6954C233.774 30.3243 232.704 30.5759 232.453 29.9469L232.201 29.1922C232.013 28.5004 233.082 28.2488 233.27 28.9406Z\"\n fill=\"#002957\"\n />\n <path\n d=\"M247.044 27.1166C246.918 27.6827 246.855 28.3116 246.73 28.8776C246.604 29.5695 247.673 29.8839 247.736 29.1921C247.862 28.6261 247.924 27.9971 248.05 27.4311C248.176 26.7393 247.17 26.4877 247.044 27.1166Z\"\n fill=\"#0466C8\"\n />\n <path\n d=\"M252.201 23.8461C252.013 23.343 251.824 22.8399 251.635 22.3367C251.509 22.0222 251.321 21.7078 251.132 21.3933C250.88 20.9531 250.566 20.5128 250.189 20.0726C248.176 17.6197 245.031 15.9845 240.566 16.1103C240.377 16.1103 240.126 16.1103 239.937 16.1732C238.491 16.299 234.465 16.9279 232.956 18.8147C228.616 20.1355 225.157 23.909 229.308 25.4814C232.453 26.8021 238.176 25.7958 240.88 24.4751C241.132 25.6072 242.83 28.7518 244.151 28.626C245.723 28.4373 245.472 26.6763 244.969 25.6072C244.906 25.4814 244.843 25.3556 244.78 25.2298C245.094 25.0411 245.409 24.8524 245.786 24.7267C247.925 23.7204 250.818 24.6638 251.509 27.1166C251.824 28.3744 251.698 29.7581 250.943 30.7015C250.88 30.8273 251.824 31.2046 252.138 31.2675C252.201 31.016 252.264 30.7644 252.327 30.5128C252.327 30.4499 252.327 30.387 252.39 30.3241C252.453 30.0097 252.516 29.7581 252.579 29.4436C252.642 29.1292 252.641 28.8147 252.704 28.5002C252.767 26.9279 252.641 25.3556 252.201 23.8461Z\"\n fill=\"#002957\"\n />\n <path\n d=\"M257.17 40.2612L256.226 42.7141L254.78 46.3619L253.522 49.5694L251.635 54.4122L246.478 48.1858L244.151 45.4185C245.157 44.0348 246.226 42.777 247.421 41.6449L253.522 40.5757C254.717 40.4499 255.912 40.3241 257.17 40.2612Z\"\n fill=\"#D4E8F7\"\n />\n </svg>\n</vl-empty-state>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { EmptyStateModule, LoaderModule } from '@veloceapps/components';\nimport { PreviewModule } from '@veloceapps/sdk/cms';\nimport { EmptyAccountComponent } from './empty-account.component';\n\n@NgModule({\n declarations: [EmptyAccountComponent],\n imports: [CommonModule, PreviewModule, LoaderModule, EmptyStateModule],\n exports: [EmptyAccountComponent],\n})\nexport class EmptyAccountModule {}\n","import { ChangeDetectionStrategy, Component, Inject, Optional } from '@angular/core';\nimport { QuoteDraft, UIDefinition } from '@veloceapps/core';\nimport { CMSPreviewConfig, IntegrationState } from '@veloceapps/sdk/cms';\nimport {\n ConfigurationRuntimeService,\n ConfigurationService,\n ConfigurationState,\n ContextService,\n QuoteDraftService,\n} from '@veloceapps/sdk/core';\nimport { BehaviorSubject, first, map, Observable, of, switchMap, tap } from 'rxjs';\nimport { FlowCustomization, FLOW_CUSTOMIZATION } from '../../types/flow-customization.types';\n\n@Component({\n selector: 'vl-flow-product',\n templateUrl: './product.component.html',\n styleUrls: ['./product.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ProductComponent {\n public config: CMSPreviewConfig;\n public uiDefinition$ = new BehaviorSubject<UIDefinition | undefined>(undefined);\n\n constructor(\n private contextService: ContextService,\n private configurationRuntimeService: ConfigurationRuntimeService,\n private configurationService: ConfigurationService,\n private configurationState: ConfigurationState,\n private quoteDraftService: QuoteDraftService,\n private integrationState: IntegrationState,\n @Optional() @Inject(FLOW_CUSTOMIZATION) private customizationService?: FlowCustomization,\n ) {\n this.config = {\n init$: () => this.init$(),\n };\n }\n\n private customizeUI$(): Observable<void> {\n const { productId } = this.configurationRuntimeService.runtimeContext ?? {};\n if (!productId || !this.customizationService?.getUiDefinition) {\n return of(undefined);\n }\n\n return this.customizationService.getUiDefinition(productId).pipe(\n map(uiDefinitionContainer => {\n if (uiDefinitionContainer) {\n this.configurationRuntimeService.overrideUIDefinition(uiDefinitionContainer);\n }\n }),\n );\n }\n\n private init$(): Observable<void> {\n return this.quoteDraftService.quoteDraft$.pipe(\n first(),\n switchMap(quote => {\n const contextProperties = this.contextService.resolve().properties;\n const productId = contextProperties.productId;\n\n if (!productId) {\n throw new Error(`Unable to start configuration for 'productId == null'`);\n }\n\n const lineItemId = this.getLineItemId(quote, productId, contextProperties.lineItemId);\n const currentStateItem = quote.currentState.find(({ id }) => id === lineItemId);\n\n if (currentStateItem) {\n this.configurationService.setConfigurableRamp(currentStateItem);\n }\n\n const { offeringId } = currentStateItem ?? {};\n\n return this.configurationRuntimeService.init({ productId, offeringId });\n }),\n switchMap(() => this.customizeUI$()),\n tap(() => {\n const uiDefinition = this.configurationRuntimeService.runtimeContext?.uiDefinitionContainer?.source;\n if (uiDefinition) {\n this.uiDefinition$.next(uiDefinition);\n } else {\n throw new Error('Product does not have Configuration UI');\n }\n }),\n tap(() => {\n if (this.configurationRuntimeService.initializationProps) {\n this.configurationRuntimeService.initializationProps.attributesMap =\n this.integrationState.state.guidedSelling;\n }\n }),\n switchMap(() => this.configurationState.init$()),\n );\n }\n\n private getLineItemId(quote: QuoteDraft, productId: string, lineItemId?: string): string | undefined {\n // search by lineItemId first\n let id: string | undefined = quote.currentState.find(li => li.id === lineItemId)?.id;\n\n if (!id && this.quoteDraftService.isStandalone) {\n id = quote.currentState.find(li => li.productId === productId)?.id;\n }\n\n return id;\n }\n}\n","<vl-cms-preview [uiDefinition]=\"$any(uiDefinition$ | async)\" [config]=\"config\"></vl-cms-preview>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { LoaderModule } from '@veloceapps/components';\nimport { PreviewModule } from '@veloceapps/sdk/cms';\nimport { ProductComponent } from './product.component';\n\n@NgModule({\n declarations: [ProductComponent],\n imports: [CommonModule, PreviewModule, LoaderModule],\n exports: [ProductComponent],\n})\nexport class ProductModule {}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\n\n@Component({\n selector: 'vl-flow-record-not-found',\n templateUrl: './record-not-found.component.html',\n styleUrls: ['./record-not-found.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RecordNotFoundComponent {\n public message: string;\n public subMessage = '';\n\n constructor(private router: Router, private route: ActivatedRoute) {\n const navigation = this.router.getCurrentNavigation();\n const { state } = navigation?.extras || {};\n\n this.message = state?.['message'];\n if (typeof this.message === 'string') {\n this.subMessage = this.message.includes('/describe') ? 'A potential problem with permissions' : '';\n }\n }\n}\n","<div class=\"row\">\n <div class=\"col-md-12\">\n <div class=\"message-wrapper\">\n <div class=\"msg\">\n <div *ngIf=\"message; else defaultMessage\" class=\"message-title\">\n <p>{{ message }}</p>\n\n <p *ngIf=\"subMessage\" class=\"message-title\">{{ subMessage }}</p>\n </div>\n\n <ng-template #defaultMessage>Record not found</ng-template>\n </div>\n </div>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { RecordNotFoundComponent } from './record-not-found.component';\n\nconst routes: Routes = [{ path: '', component: RecordNotFoundComponent }];\n\n@NgModule({\n declarations: [RecordNotFoundComponent],\n imports: [CommonModule, RouterModule.forChild(routes)],\n})\nexport class RecordNotFoundModule {}\n","import { Location } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, OnDestroy } from '@angular/core';\nimport {\n ChargeGroupItem,\n ContextProperties,\n LineItem,\n RpcMessage,\n RpcOption,\n RpcOptionConfiguration,\n RpcProduct,\n RpcQuote,\n UIDefinition,\n UUID,\n VlWindow,\n} from '@veloceapps/core';\nimport { FlowAction, IntegrationState } from '@veloceapps/sdk/cms';\nimport {\n ConfigurationRuntimeService,\n ConfigurationService,\n ConfigurationState,\n ContextService,\n QuoteDraftService,\n RuntimeContext,\n} from '@veloceapps/sdk/core';\nimport { MessageService } from 'primeng/api';\nimport {\n BehaviorSubject,\n catchError,\n first,\n Observable,\n of,\n Subject,\n switchMap,\n takeUntil,\n tap,\n throwError,\n} from 'rxjs';\nimport { LineItemWithParent } from './remote.types';\n\ndeclare const window: VlWindow;\n\ninterface State {\n loading: boolean;\n failure: boolean;\n}\n\n@Component({\n selector: 'vl-flow-remote',\n templateUrl: './remote.component.html',\n styleUrls: ['./remote.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RemoteComponent implements OnDestroy {\n public uiDefinition?: UIDefinition;\n public state$ = new BehaviorSubject<State>({ loading: true, failure: false });\n\n private readonly DYNAMIC_OPTION_PRODUCTS_KEY = 'Dynamic';\n\n private rpcMessage: RpcMessage;\n private destroyed$ = new Subject<void>();\n\n constructor(\n private contextService: ContextService,\n private quoteDraftService: QuoteDraftService,\n private runtimeService: ConfigurationRuntimeService,\n private configurationService: ConfigurationService,\n private configurationState: ConfigurationState,\n private messageService: MessageService,\n private integrationState: IntegrationState,\n private location: Location,\n ) {\n this.rpcMessage = JSON.parse(window.RPC_MESSAGE as string);\n this.rpcMessage.options.sort((a, b) => (a.featureNumber ?? 99999) - (b.featureNumber ?? 99999));\n this.updateHasChildrenFlag(this.rpcMessage.product.configuredProductId);\n\n // update context properties\n if (this.rpcMessage.quote) {\n const properties: ContextProperties = {};\n\n if (this.rpcMessage.quote['SBQQ__Opportunity2__c']) {\n properties.OpportunityId = this.rpcMessage.quote['SBQQ__Opportunity2__c'];\n }\n\n Object.entries(this.rpcMessage.quote).forEach(([key, value]) => {\n if (value !== undefined && !(value instanceof Object)) {\n properties[key] = value;\n }\n });\n\n this.contextService.update({ properties });\n }\n\n this.initSubscriptions();\n this.initConfiguration();\n }\n\n public ngOnDestroy(): void {\n this.destroyed$.next();\n this.destroyed$.complete();\n }\n\n private initConfiguration(): void {\n const productId = this.rpcMessage.product.configuredProductId;\n const quote = this.quoteDraftService.quoteDraft;\n\n if (!productId || !quote) {\n return;\n }\n\n this.runtimeService\n .init({ productId })\n .pipe(\n first(),\n tap(context => {\n const uiDefinitionProperties = context.uiDefinitionContainer?.source.properties ?? {};\n this.uiDefinition = context.uiDefinitionContainer?.source;\n\n const pricingEnabled = uiDefinitionProperties.pricingEnabled ? 'true' : 'false';\n const priceListId = uiDefinitionProperties.priceList;\n\n const runtimeContextProperties = this.runtimeService.runtimeContext?.properties;\n if (runtimeContextProperties) {\n runtimeContextProperties.PriceListId = priceListId;\n runtimeContextProperties.PricingEnabled = pricingEnabled;\n }\n\n this.contextService.update({\n properties: {\n ModelId: context.modelId,\n RuntimeMode: 'TEST',\n PricingEnabled: pricingEnabled,\n PriceListId: priceListId,\n },\n });\n\n this.configurationService.setConfigurableRamp(this.createLineItem());\n }),\n this.throwIfNoUIDefinition(),\n switchMap(() => this.configurationState.init$()),\n tap(() => this.state$.next({ loading: false, failure: false })),\n catchError(error => {\n if (!this.uiDefinition?.properties?.suppressToastMessages) {\n this.messageService.add({ severity: 'error', summary: error });\n }\n\n this.state$.next({ loading: false, failure: true });\n return of();\n }),\n takeUntil(this.destroyed$),\n )\n .subscribe();\n }\n\n private throwIfNoUIDefinition() {\n return <T>(source$: Observable<T>): Observable<T> => {\n return source$.pipe(\n switchMap(() => {\n if (!this.uiDefinition) {\n return throwError(() => 'Product does not have Configuration UI');\n }\n\n return source$;\n }),\n );\n };\n }\n\n private initSubscriptions(): void {\n this.integrationState\n .listen$(FlowAction.REMOTE_CANCEL)\n .pipe(\n tap(() => this.location.back()),\n takeUntil(this.destroyed$),\n )\n .subscribe();\n\n this.integrationState\n .listen$(FlowAction.REMOTE_APPLY)\n .pipe(\n tap(() => this.saveRpcMessage()),\n takeUntil(this.destroyed$),\n )\n .subscribe();\n }\n\n private createLineItem(): LineItem {\n const [quoteDraftLineItem] = this.quoteDraftService.quoteDraft?.currentState ?? [];\n if (quoteDraftLineItem && (quoteDraftLineItem.attributes.length > 0 || quoteDraftLineItem.lineItems.length > 0)) {\n return quoteDraftLineItem;\n }\n\n const lineItem = this.createRootLineItem();\n const dynamicOptionProducts = this.rpcMessage.product.optionConfigurations[this.DYNAMIC_OPTION_PRODUCTS_KEY];\n\n if (dynamicOptionProducts) {\n const options = this.toParentChildMap(dynamicOptionProducts);\n let items = [lineItem];\n for (let i = 0; i < items.length; i++) {\n const item = items[i];\n const children = options.get(item.id);\n if (children) {\n item.lineItems = children;\n items = items.concat(children);\n }\n }\n }\n return lineItem;\n }\n\n private createRootLineItem(): LineItem {\n const product = this.rpcMessage.product;\n const runtimeContext = this.runtimeService.runtimeContext as RuntimeContext;\n const veloceInstanceId = product.configurationAttributes['VeloceInstanceId__c'];\n const quoteId = this.quoteDraftService.quoteDraft?.currentState[0]?.id;\n\n return {\n id: quoteId || veloceInstanceId || UUID.UUID(),\n type: runtimeContext.productType ?? '',\n name: runtimeContext.properties?.['displayName'] || runtimeContext.productName,\n productName: runtimeContext.productName,\n productId: runtimeContext.productId,\n cfgStatus: 'Default',\n actionCode: 'ADD',\n qty: 1,\n } as LineItem;\n }\n\n private toParentChildMap(remoteOptionProducts: RpcOptionConfiguration[]): Map<string, LineItem[]> {\n const result = new Map<string, LineItem[]>();\n\n for (const option of remoteOptionProducts) {\n const configurationData = option?.readOnly?.line;\n const id = configurationData?.VeloceInstanceId__c;\n const parentId = configurationData?.VeloceParentInstanceId__c;\n\n if (!option.selected || !configurationData || !id || !parentId) {\n continue;\n }\n\n const productId = option.productId;\n const lineItem = {\n id,\n productId,\n parentId,\n type: configurationData.ModelType__c,\n port: configurationData.ModelPort__c,\n cfgStatus: configurationData.ConfigurationStatus__c,\n actionCode: configurationData.ActionCode__c,\n qty: option.Quantity,\n } as LineItem;\n\n let siblings = result.get(productId);\n if (!siblings) {\n result.set(parentId, (siblings = []));\n }\n\n siblings.push(lineItem);\n }\n return result;\n }\n\n private saveRpcMessage(): void {\n const quote = this.quoteDraftService.quoteDraft;\n const lineItem = this.configurationService.getSnapshot();\n\n if (!quote || !lineItem) {\n return;\n }\n\n this.rpcMessage.VeloceReferenceId = quote.quoteId;\n this.rpcMessage.product.configurationData.VeloceInstanceId__c = lineItem.id;\n const childItems = this.flattenChildLineItems(lineItem);\n const savingMode = window.SavingMode;\n\n this.updateContentData(this.rpcMessage.product, lineItem);\n this.rpcMessage.quote = this.mapAttributesTo('Quote', lineItem) as RpcQuote;\n\n if (savingMode === 'ALL') {\n const optionConfigurations = this.getOptionConfigurations(this.rpcMessage.product);\n const rootProductOptions = this.rpcMessage.options.filter(po => po.configuredProductId === lineItem.productId);\n\n childItems.forEach(lineItem => {\n const rootOption = rootProductOptions.find(po => po.optionalProductId === lineItem.productId);\n if (rootOption) {\n const featureOptions =\n optionConfigurations[rootOption.featureName] ?? (optionConfigurations[rootOption.featureName] = []);\n const originOption = !rootOption.hasChildren\n ? optionConfigurations[rootOption.featureName].find(({ optionId }) => optionId === rootOption.optionId)\n : undefined;\n const option: RpcOptionConfiguration = originOption ?? ({} as RpcOptionConfiguration);\n\n option.optionId = option.optionId ?? rootOption.optionId;\n this.updateContentData(option, lineItem);\n option.index = option.index ?? featureOptions.length;\n option.selected = true;\n\n if (!originOption) {\n featureOptions.push(option);\n }\n\n if (lineItem.parentLineItem) {\n const nestedProductOption = this.rpcMessage.options.find(\n po =>\n po.configuredProductId === lineItem.parentLineItem?.productId &&\n po.optionalProductId === lineItem.productId,\n );\n\n if (nestedProductOption) {\n option.configurationData = {\n ...option.configurationData,\n VeloceParentInstanceId__c: lineItem.parentLineItem.id,\n VeloceNestedOptionId__c: nestedProductOption.optionId,\n VeloceNestedFeatureId__c: nestedProductOption.featureId,\n };\n }\n }\n } else {\n this.rpcMessage.dynamicFeatures.forEach(feature => {\n const featureOptions = optionConfigurations[feature.name] ?? (optionConfigurations[feature.name] = []);\n const originOption = featureOptions.find(({ productId }) => productId === lineItem.productId);\n const option: RpcOptionConfiguration = originOption ?? ({} as RpcOptionConfiguration);\n\n this.updateContentData(option, lineItem);\n option.index = option.index ?? featureOptions.length;\n option.selected = true;\n\n if (!originOption) {\n featureOptions.push(option);\n }\n });\n }\n });\n\n this.rpcMessage.product = { ...this.rpcMessage.product, optionConfigurations };\n }\n\n window.RPC_BROADCAST?.apply(null, [this.rpcMessage]);\n }\n\n private updateHasChildrenFlag(bundleProductId: string): void {\n const bundleOptionsByOptionId: Record<string, RpcOption> = {};\n const notBundleOptions: RpcOption[] = [];\n for (const productOption of this.rpcMessage.options) {\n if (productOption.configuredProductId === bundleProductId) {\n bundleOptionsByOptionId[productOption.optionalProductId] = productOption;\n } else {\n notBundleOptions.push(productOption);\n }\n }\n for (const option of notBundleOptions) {\n if (bundleOptionsByOptionId[option.configuredProductId]) {\n bundleOptionsByOptionId[option.configuredProductId].hasChildren = true;\n }\n }\n }\n\n private flattenChildLineItems(lineItem: LineItem): LineItemWithParent[] {\n let items = lineItem.lineItems ?? [];\n for (let i = 0; i < items.length; i++) {\n const item = items[i];\n if (item.lineItems) {\n items = items.concat(item.lineItems.map(li => ({ ...li, parentLineItem: item })));\n }\n }\n return items;\n }\n\n private updateContentData(entity: RpcProduct | RpcOptionConfiguration, lineItem: LineItem): void {\n if (lineItem.productId) {\n entity.productId = lineItem.productId;\n }\n\n const quantityAttribute = lineItem.properties['quantityAttribute'];\n entity.Quantity = quantityAttribute\n ? lineItem.attributes.find(attribute => attribute.name === quantityAttribute)?.value ?? 1\n : lineItem.qty;\n\n const totalPrice = this.computeNetPrice(lineItem);\n const targetTotalPriceField = lineItem.properties['TargetTotalPriceField'] || 'TotalPrice__c';\n entity.configurationData[targetTotalPriceField] = entity.configurationData[targetTotalPriceField]\n ? entity.configurationData[targetTotalPriceField] + totalPrice\n : totalPrice;\n\n const targetPriceField = lineItem.properties['TargetPriceField'] || 'SBQQ__ListPrice__c';\n const price = entity.Quantity != null ? entity.configurationData[targetTotalPriceField] / entity.Quantity || 0 : 0;\n const targetPriceValue = Number(entity.configurationData[targetPriceField]) || 0;\n entity.configurationData[targetPriceField] = targetPriceValue\n ? (targetPriceValue + price).toFixed(2)\n : price.toFixed(2);\n\n entity.configurationAttributes = this.mapAttributesTo('Attribute', lineItem);\n entity.configurationData = {\n ...entity.configurationData,\n ...this.mapAttributesTo('Field', lineItem),\n ...this.mapAttributesTo('', lineItem),\n VeloceInstanceId__c: lineItem.id,\n };\n }\n\n private computeNetPrice(lineItem: LineItem): number {\n if (lineItem.properties['GroupCharges']) {\n return this.sumNetPrice(lineItem.chargeGroupItems, this.getChargeNameSet(lineItem.properties['GroupCharges']));\n }\n\n return this.sumNetPrice(lineItem.chargeItems, this.getChargeNameSet(lineItem.properties['Charges']));\n }\n\n private getChargeNameSet(property?: string): Set<string> {\n if (property && property.length > 0) {\n return new Set(property.split(','));\n }\n\n return new Set();\n }\n\n private sumNetPrice(chargeItems: ChargeGroupItem[], charges: Set<string>): number {\n let netPrice = 0;\n\n for (const chargeItem of chargeItems) {\n if (!charges || charges.has(chargeItem.chargeType)) {\n netPrice += chargeItem.netPrice ?? 0;\n }\n }\n\n return netPrice;\n }\n\n private mapAttributesTo(target: string, lineItem: LineItem): Record<string, any> {\n const result: Record<string, any> = {};\n const component = this.runtimeService.runtimeModel?.components.get(lineItem.type);\n\n if (!component) {\n return result;\n }\n\n const propertyName = 'mapTo' + target;\n component.attributes\n .filter(a => a.properties && a.properties[propertyName])\n .forEach(mapping => {\n const attribute = lineItem.attributes.find(a => a.name === mapping.name);\n\n if (attribute) {\n new Set(mapping.properties[propertyName].split(',')).forEach(k => (result[k] = attribute.value));\n }\n });\n\n return result;\n }\n\n private getOptionConfigurations(product: RpcProduct): Record<string, RpcOptionConfiguration[]> {\n const optionConfigurations: Record<string, RpcOptionConfiguration[]> = {};\n const requestOptionConfigurations = product.optionConfigurations ?? {};\n\n Object.keys(requestOptionConfigurations).forEach(k => {\n optionConfigurations[k] = (requestOptionConfigurations[k] ?? []).map(opt => {\n return { ...opt, selected: false };\n });\n });\n\n return optionConfigurations;\n }\n}\n","<ng-container *ngIf=\"state$ | async as state\">\n <vl-loader *ngIf=\"state.loading; else content\" [label]=\"'Loading UI'\"></vl-loader>\n\n <ng-template #content>\n <ng-container *ngIf=\"!state.failure\">\n <vl-cms-preview [uiDefinition]=\"uiDefinition\"></vl-cms-preview>\n </ng-container>\n </ng-template>\n</ng-container>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { LoaderModule } from '@veloceapps/components';\nimport { PreviewModule } from '@veloceapps/sdk/cms';\nimport { RemoteComponent } from './remote.component';\n\n@NgModule({\n declarations: [RemoteComponent],\n imports: [CommonModule, PreviewModule, LoaderModule],\n exports: [RemoteComponent],\n})\nexport class RemoteModule {}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Inject,\n OnDestroy,\n OnInit,\n Optional,\n} from '@angular/core';\nimport { UITemplatesApiService } from '@veloceapps/api';\nimport { ToastService, ToastType } from '@veloceapps/components';\nimport {\n ComponentAttachments,\n TemplateComponent,\n UIDefinition,\n UITemplate,\n UITemplateComponentType,\n} from '@veloceapps/core';\nimport { ContextService } from '@veloceapps/sdk/core';\nimport { BehaviorSubject, Observable, Subject, catchError, map, of, switchMap, takeUntil, tap } from 'rxjs';\nimport { FLOW_CUSTOMIZATION, FlowCustomization } from '../../types';\n\ninterface State {\n loading: boolean;\n failure: boolean;\n}\n\n@Component({\n selector: 'vl-flow-shopping-cart',\n templateUrl: './shopping-cart.component.html',\n styleUrls: ['./shopping-cart.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ShoppingCartComponent implements OnInit, OnDestroy {\n public uiDefinition?: UIDefinition = undefined;\n public state$ = new BehaviorSubject<State>({ loading: true, failure: false });\n\n private templateApiName = '';\n private destroyed$ = new Subject<void>();\n\n constructor(\n private templatesApi: UITemplatesApiService,\n private contextService: ContextService,\n private cdr: ChangeDetectorRef,\n private toastService: ToastService,\n @Optional() @Inject(FLOW_CUSTOMIZATION) private customizationService?: FlowCustomization,\n ) {\n this.templateApiName = this.contextService.resolve().properties.cartTemplateApiName ?? '';\n }\n\n public ngOnInit(): void {\n this.generateUIDefinition$()\n .pipe(\n tap(uiDef => {\n if (!uiDef) {\n throw new Error(`Component with name '${this.templateApiName}' not found.`);\n }\n\n this.uiDefinition = uiDef;\n this.state$.next({ loading: false, failure: false });\n }),\n catchError(err => {\n const message = 'Failed to resolve Shopping cart component. ' + (err.message ?? '');\n this.toastService.add({ severity: ToastType.error, summary: message, sticky: true });\n\n this.uiDefinition = undefined;\n this.state$.next({ loading: false, failure: true });\n return of();\n }),\n takeUntil(this.destroyed$),\n )\n .subscribe(() => this.cdr.detectChanges());\n }\n\n public ngOnDestroy(): void {\n this.destroyed$.next();\n this.destroyed$.complete();\n }\n\n private getTemplateRootComponent$(template: UITemplate): Observable<TemplateComponent | undefined> {\n return this.templatesApi\n .fetchComponents$(template.id)\n .pipe(map(components => components.find(c => c.type === UITemplateComponentType.ROOT) ?? undefined));\n }\n\n private getLocalShoppingCartComponentMeta$(): Observable<ComponentAttachments | undefined> {\n if (!this.customizationService?.getShoppingCartComponent) {\n return of(undefined);\n }\n\n return this.customizationService?.getShoppingCartComponent(this.templateApiName).pipe(\n map(component => {\n if (!component) {\n return;\n }\n\n return <ComponentAttachments>{\n html: component.html,\n css: component.css,\n js: component.js,\n json: component.json,\n };\n }),\n );\n }\n\n private getShoppingCartComponentMeta$(): Observable<ComponentAttachments | undefined> {\n return this.templatesApi.fetchTemplates$().pipe(\n map<UITemplate[], UITemplate | undefined>(templates =>\n templates.find(template => template.name === this.templateApiName),\n ),\n switchMap(template => (template ? this.getTemplateRootComponent$(template) : of(undefined))),\n switchMap(component =>\n component ? this.templatesApi.fetchComponentAttachments$(component.uiTemplateId, component) : of(undefined),\n ),\n );\n }\n\n private generateUIDefinition$(): Observable<UIDefinition | undefined> {\n return of(undefined).pipe(\n tap(() => {\n if (!this.templateApiName) {\n throw new Error(\"Flow Query parameter 'cartTemplateApiName' is missing.\");\n }\n }),\n switchMap(() => this.getLocalShoppingCartComponentMeta$()),\n switchMap(meta => (meta ? of(meta) : this.getShoppingCartComponentMeta$())),\n map(meta => {\n if (!meta) {\n return;\n }\n\n const uiDef: UIDefinition = {\n name: '',\n createdTimestamp: 0,\n primary: true,\n type: 'DEFAULT',\n version: 2,\n children: [\n {\n children: [],\n template: meta.html && btoa(meta.html),\n script: meta.js && btoa(meta.js),\n styles: meta.css && btoa(meta.css),\n },\n ],\n };\n\n return uiDef;\n }),\n );\n }\n}\n","<ng-container *ngIf=\"state$ | async as state\">\n <vl-loader *ngIf=\"state.loading; else content\" [label]=\"'Loading UI'\"></vl-loader>\n\n <ng-template #content>\n <ng-container *ngIf=\"!state.failure\">\n <vl-cms-preview [uiDefinition]=\"uiDefinition\"></vl-cms-preview>\n </ng-container>\n </ng-template>\n</ng-container>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { LoaderModule } from '@veloceapps/components';\nimport { PreviewModule } from '@veloceapps/sdk/cms';\nimport { ShoppingCartComponent } from './shopping-cart.component';\n\n@NgModule({\n declarations: [ShoppingCartComponent],\n imports: [CommonModule, PreviewModule, LoaderModule],\n exports: [ShoppingCartComponent],\n})\nexport class ShoppingCartModule {}\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, Resolve, Router } from '@angular/router';\nimport { FlowsApiService } from '@veloceapps/api';\nimport { ContextService } from '@veloceapps/sdk/core';\nimport { Dictionary } from 'lodash';\nimport { map } from 'rxjs/operators';\nimport { FlowRouterService } from '../services/flow-router.service';\nimport { getDefaultProperties } from '../utils';\n\n@Injectable()\nexport class FlowResolver implements Resolve<Promise<boolean>> {\n constructor(\n private router: Router,\n private flowsApiService: FlowsApiService,\n private routerService: FlowRouterService,\n private contextService: ContextService,\n ) {}\n\n private handleError(\n route: ActivatedRouteSnapshot,\n message?: string,\n queryParams?: Dictionary<any>,\n ): Promise<boolean> {\n const parentUrl = this.routerService.getFlowRootPath(route);\n return this.router.navigate([parentUrl, '404'], {\n queryParams,\n state: {\n message: message,\n },\n });\n }\n\n public resolve(route: ActivatedRouteSnapshot): any {\n const { queryParams } = route;\n const { flowId } = queryParams;\n\n if (!flowId) {\n return this.handleError(route);\n }\n\n return this.flowsApiService.getFlow(flowId).pipe(\n map(flow => {\n if (!flow) {\n return this.handleError(route, `Flow with flowId=${flowId} is not defined`);\n }\n\n const { properties } = flow;\n const { queryParams: flowQueryParams, entryPath } = properties;\n const mergedParams = {\n ...queryParams,\n ...flowQueryParams,\n ...getDefaultProperties({ flowParams: properties }),\n };\n\n const contextProperties = Object.entries(mergedParams).reduce<Dictionary<string>>(\n (trunk, [key, value]) => ({ ...trunk, [key]: String(value) }),\n {},\n );\n\n this.contextService.update({ properties: contextProperties });\n\n const parentUrl = this.routerService.getFlowRootPath(route);\n const entryUrl = String(entryPath ?? '')\n .split('/')\n .filter(Boolean);\n\n return this.router\n .navigate([parentUrl, ...entryUrl], {\n queryParams: mergedParams,\n replaceUrl: true,\n })\n .catch(e => {\n const message = e instanceof HttpErrorResponse ? e.error.message : e;\n return this.handleError(route, message, mergedParams);\n });\n }),\n );\n }\n}\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, Resolve, Router } from '@angular/router';\nimport { ConfigurationContextMode, FlowRouteParams } from '@veloceapps/core';\nimport { IntegrationState } from '@veloceapps/sdk/cms';\nimport {\n ContextService,\n FlowConfigurationService,\n QuoteDraftService,\n generateModifiedAssetsMap,\n} from '@veloceapps/sdk/core';\nimport { Observable, catchError, from, of, switchMap, tap } from 'rxjs';\nimport { FlowRouterService } from '../services/flow-router.service';\n\n@Injectable()\nexport class QuoteResolver implements Resolve<void | boolean> {\n constructor(\n private router: Router,\n private quoteDraftService: QuoteDraftService,\n private routerService: FlowRouterService,\n private contextService: ContextService,\n private flowConfiguration: FlowConfigurationService,\n private integrationState: IntegrationState,\n ) {}\n\n private handleError(route: ActivatedRouteSnapshot, message: string): Observable<boolean> {\n const parentUrl = this.routerService.getFlowRootPath(route);\n return from(this.router.navigate([parentUrl, '404'], { state: { message } }));\n }\n\n private calculate$(): Observable<void> {\n const quoteDraft = this.quoteDraftService.quoteDraft;\n\n if (!this.quoteDraftService.isStandalone && quoteDraft && !this.accountHasNotAssets()) {\n return this.flowConfiguration.calculate$(quoteDraft);\n }\n\n return of(undefined);\n }\n\n public resolve(route: ActivatedRouteSnapshot): Observable<void | boolean> {\n const { headerId } = this.contextService.resolve();\n const quote = this.quoteDraftService.quoteDraft;\n\n if (quote && quote.quoteId === headerId) {\n return of(true);\n }\n\n const queryParams = route.queryParams as FlowRouteParams;\n\n return this.quoteDraftService.init(headerId, queryParams).pipe(\n switchMap(() => this.calculate$()),\n tap(() => {\n if (!this.quoteDraftService.isStandalone && queryParams.suppressInitialNavigation !== 'true') {\n if (this.shouldNavigateToAssets()) {\n this.changeNavigation('/assets', route);\n } else if (!this.quoteDraftService.isInitialized && this.quoteDraftService.hasProducts) {\n this.changeNavigation('/cart', route);\n }\n }\n\n this.initializeModifiedAssetsMap();\n this.quoteDraftService.isInitialized = true;\n this.quoteDraftService.hasUnsavedChanges = false;\n }),\n catchError(e => {\n const message = e instanceof HttpErrorResponse ? e.error.message : e;\n return this.handleError(route, message);\n }),\n );\n }\n\n private changeNavigation(path: string, route: ActivatedRouteSnapshot): void {\n const parentUrl = this.routerService.getFlowRootPath(route);\n\n this.router\n .navigate([parentUrl + path], {\n queryParams: route.queryParams,\n replaceUrl: true,\n })\n .catch(e => {\n const message = e instanceof HttpErrorResponse ? e.error.message : e;\n return this.handleError(route, message);\n });\n }\n\n private shouldNavigateToAssets(): boolean {\n if (this.contextService.mode === ConfigurationContextMode.ACCOUNT) {\n return true;\n }\n\n return this.quoteDraftService.quoteDraft?.currentState.some(li => !!li.assetId) ?? false;\n }\n\n private accountHasNotAssets(): boolean {\n return this.contextService.mode === ConfigurationContextMode.ACCOUNT && !this.quoteDraftService.hasProducts;\n }\n\n private initializeModifiedAssetsMap(): void {\n this.integrationState.patchState({\n modifiedAssets: generateModifiedAssetsMap(this.quoteDraftService.currentState),\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { VELOCE_FLOW_ROOT_ROUTE } from './constants';\nimport { FlowComponent } from './flow.component';\nimport { ContextGuard } from './guards/context.guard';\nimport { ProductUnloadGuard } from './guards/product-unload.guard';\nimport { RootGuard } from './guards/root.guard';\nimport { AssetsComponent } from './pages/assets/assets.component';\nimport { AssetsModule } from './pages/assets/assets.module';\nimport { CatalogComponent } from './pages/catalog/catalog.component';\nimport { CatalogModule } from './pages/catalog/catalog.module';\nimport { DebugModule } from './pages/debug/debug.module';\nimport { EmptyAccountComponent } from './pages/empty-account/empty-account.component';\nimport { EmptyAccountModule } from './pages/empty-account/empty-account.module';\nimport { ProductComponent } from './pages/product/product.component';\nimport { ProductModule } from './pages/product/product.module';\nimport { RecordNotFoundModule } from './pages/record-not-found/record-not-found.module';\nimport { RemoteComponent } from './pages/remote/remote.component';\nimport { RemoteModule } from './pages/remote/remote.module';\nimport { ShoppingCartComponent } from './pages/shopping-cart/shopping-cart.component';\nimport { ShoppingCartModule } from './pages/shopping-cart/shopping-cart.module';\nimport { FlowResolver } from './resolvers/flow.resolver';\nimport { QuoteResolver } from './resolvers/quote.resolver';\nimport { FlowRouterService } from './services/flow-router.service';\nimport { RouteWithId } from './types/route.types';\n\nconst rootRoute: RouteWithId = {\n id: VELOCE_FLOW_ROOT_ROUTE,\n path: '',\n component: FlowComponent,\n canActivate: [RootGuard],\n canDeactivate: [RootGuard],\n children: [\n {\n path: 'flows',\n runGuardsAndResolvers: 'paramsOrQueryParamsChange',\n resolve: { quote: FlowResolver },\n canActivate: [ContextGuard],\n children: [],\n },\n {\n path: 'product',\n component: ProductComponent,\n runGuardsAndResolvers: 'paramsOrQueryParamsChange',\n resolve: { quote: QuoteResolver },\n canActivate: [ContextGuard],\n canDeactivate: [ProductUnloadGuard],\n data: { showHeader: true },\n },\n {\n path: 'cart',\n component: ShoppingCartComponent,\n runGuardsAndResolvers: 'paramsOrQueryParamsChange',\n resolve: { quote: QuoteResolver },\n canActivate: [ContextGuard],\n data: { showHeader: true },\n },\n {\n path: 'catalog',\n component: CatalogComponent,\n runGuardsAndResolvers: 'paramsOrQueryParamsChange',\n resolve: { quote: QuoteResolver },\n canActivate: [ContextGuard],\n data: { showHeader: true },\n },\n {\n path: 'assets',\n component: AssetsComponent,\n runGuardsAndResolvers: 'paramsOrQueryParamsChange',\n resolve: { quote: QuoteResolver },\n canActivate: [ContextGuard],\n data: { showHeader: true },\n },\n {\n path: 'empty',\n component: EmptyAccountComponent,\n runGuardsAndResolvers: 'paramsOrQueryParamsChange',\n resolve: { quote: QuoteResolver },\n canActivate: [ContextGuard],\n data: { showHeader: true },\n },\n {\n path: 'remote',\n component: RemoteComponent,\n runGuardsAndResolvers: 'paramsOrQueryParamsChange',\n resolve: { quote: QuoteResolver },\n canActivate: [ContextGuard],\n },\n {\n path: 'debug',\n loadChildren: () => DebugModule,\n },\n {\n path: '404',\n loadChildren: () => RecordNotFoundModule,\n },\n ],\n};\n\n@NgModule({\n imports: [\n RouterModule.forChild([rootRoute]),\n ProductModule,\n ShoppingCartModule,\n CatalogModule,\n AssetsModule,\n RemoteModule,\n EmptyAccountModule,\n ],\n exports: [RouterModule],\n providers: [FlowRouterService, RootGuard, ContextGuard, ProductUnloadGuard, FlowResolver, QuoteResolver],\n})\nexport class FlowRoutingModule {}\n","import { Injectable } from '@angular/core';\nimport { FlowAction, IntegrationState } from '@veloceapps/sdk/cms';\nimport { BehaviorSubject, Subject, takeUntil, tap } from 'rxjs';\n\n@Injectable()\nexport class FlowGuidedSellingService {\n private cleanup$ = new Subject<void>();\n private isVisibleSubj$ = new BehaviorSubject(true);\n\n public isVisible$ = this.isVisibleSubj$.asObservable();\n\n constructor(private integrationState: IntegrationState) {\n this.initSubscriptions();\n }\n\n public cleanup(): void {\n this.cleanup$.next();\n }\n\n private initSubscriptions(): void {\n this.integrationState\n .listen$(FlowAction.OPEN_GUIDED_SELLING)\n .pipe(\n tap(() => this.isVisibleSubj$.next(true)),\n takeUntil(this.cleanup$),\n )\n .subscribe();\n\n this.integrationState\n .listen$(FlowAction.CLOSE_GUIDED_SELLING)\n .pipe(\n tap(() => this.isVisibleSubj$.next(false)),\n takeUntil(this.cleanup$),\n )\n .subscribe();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ApiModule } from '@veloceapps/api';\nimport { LetDirectiveModule, LoaderModule } from '@veloceapps/components';\nimport { LauncherModule } from '@veloceapps/sdk/cms';\nimport { SdkCoreModule } from '@veloceapps/sdk/core';\nimport { FlowDialogModule } from './components/dialog/dialog.module';\nimport { DocGenModule } from './components/doc-gen/doc-gen.module';\nimport { GuidedSellingModule } from './components/guided-selling/guided-selling.module';\nimport { FlowHeaderModule } from './components/header/header.module';\nimport { FlowRoutingModule } from './flow-routing.module';\nimport { FlowComponent } from './flow.component';\nimport { FlowService } from './services';\nimport { FlowDocGenService } from './services/doc-gen.service';\nimport { FlowDialogService } from './services/flow-dialog.service';\nimport { FlowGuidedSellingService } from './services/guided-selling.service';\n\n@NgModule({\n declarations: [FlowComponent],\n imports: [\n CommonModule,\n LetDirectiveModule,\n FlowRoutingModule,\n ApiModule,\n LauncherModule,\n LoaderModule,\n FlowHeaderModule,\n FlowDialogModule,\n SdkCoreModule,\n DocGenModule,\n GuidedSellingModule,\n ],\n providers: [FlowService, FlowDialogService, FlowDocGenService, FlowGuidedSellingService],\n})\nexport class FlowModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2","i1","i3","i2.FlowRouterService","i4","i5","i6","i7","i8","tap","takeUntil","i9","i12","i3.FlowRouterService","i4.FlowDialogService","i10","i11","i12.CartPreviewComponent","i14.MetricsComponent","i1.FlowRouterService","i3.FlowService","i4.FlowDocGenService","i9.FlowHeaderComponent","i10.DocGenComponent","i11.GuidedSellingComponent","i3.FlowDialogService","routes","map"],"mappings":"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"}
|