@veloceapps/sdk 8.0.0-20 → 8.0.0-200
Sign up to get free protection for your applications and to get access to all the features.
- package/README.md +0 -1
- package/cms/README.md +0 -20
- package/cms/cms.actions.d.ts +15 -1
- package/cms/components/preview/preview.component.d.ts +2 -3
- package/cms/components/preview/preview.types.d.ts +4 -0
- package/cms/index.d.ts +1 -0
- package/cms/modules/runtime/services/runtime.service.d.ts +1 -1
- package/cms/services/index.d.ts +0 -1
- package/cms/services/resources.service.d.ts +2 -0
- package/cms/types/index.d.ts +0 -1
- package/cms/utils/element-metadata-worker.d.ts +11 -0
- package/cms/utils/elements-resolver.d.ts +0 -2
- package/cms/utils/index.d.ts +3 -0
- package/cms/utils/transpilation-worker.d.ts +13 -0
- package/cms/vendor-map.d.ts +29 -19
- package/core/README.md +20 -0
- package/core/modules/configuration/configuration.module.d.ts +2 -1
- package/core/modules/configuration/helpers.d.ts +4 -3
- package/core/modules/configuration/index.d.ts +1 -1
- package/core/modules/configuration/services/configuration-runtime.service.d.ts +1 -1
- package/core/modules/configuration/services/configuration-state.service.d.ts +54 -0
- package/core/modules/configuration/services/configuration.service.d.ts +11 -6
- package/core/modules/configuration/types/configuration.types.d.ts +4 -0
- package/core/modules/flow-configuration/flow-configuration.module.d.ts +2 -1
- package/core/modules/flow-configuration/services/flow-configuration.service.d.ts +5 -0
- package/core/pipes/action-code.pipe.d.ts +8 -0
- package/core/pipes/date.pipe.d.ts +2 -1
- package/core/pipes/index.d.ts +1 -0
- package/core/pipes/pipes.module.d.ts +2 -1
- package/core/services/context.service.d.ts +4 -0
- package/core/services/flow-info.service.d.ts +29 -0
- package/core/services/flow-state-configuration.service.d.ts +19 -0
- package/core/services/flow-state.service.d.ts +80 -0
- package/core/services/index.d.ts +4 -1
- package/core/services/quote-draft.service.d.ts +12 -28
- package/core/services/runtime-settings.service.d.ts +4 -1
- package/core/types/flow-customization.types.d.ts +22 -0
- package/core/types/flow-state.types.d.ts +11 -0
- package/core/types/formatting-settings.types.d.ts +2 -0
- package/core/types/index.d.ts +3 -0
- package/{cms → core}/types/integration.types.d.ts +1 -1
- package/core/types/pipe.types.d.ts +1 -0
- package/core/utils/line-item.utils.d.ts +1 -3
- package/esm2020/cms/cms.actions.mjs +25 -1
- package/esm2020/cms/components/element-renderer/element-renderer.component.mjs +3 -3
- package/esm2020/cms/components/element-tools-panel/element-tools-panel.component.mjs +3 -3
- package/esm2020/cms/components/preview/preview.component.mjs +10 -10
- package/esm2020/cms/components/preview/preview.module.mjs +2 -2
- package/esm2020/cms/components/preview/preview.types.mjs +1 -1
- package/esm2020/cms/index.mjs +2 -1
- package/esm2020/cms/launcher.module.mjs +4 -4
- package/esm2020/cms/modules/migrations/migrations.mjs +2 -2
- package/esm2020/cms/modules/migrations/services/migrations.service.mjs +6 -2
- package/esm2020/cms/modules/runtime/services/compilation.service.mjs +11 -7
- package/esm2020/cms/modules/runtime/services/runtime.service.mjs +4 -4
- package/esm2020/cms/plugins/configuration.plugin.mjs +8 -4
- package/esm2020/cms/services/index.mjs +1 -2
- package/esm2020/cms/services/io-provider.service.mjs +10 -9
- package/esm2020/cms/services/resources.service.mjs +10 -6
- package/esm2020/cms/services/templates.service.mjs +10 -9
- package/esm2020/cms/types/index.mjs +1 -2
- package/esm2020/cms/utils/element-metadata-worker.mjs +31 -0
- package/esm2020/cms/utils/elements-resolver.mjs +14 -28
- package/esm2020/cms/utils/encoding.utils.mjs +3 -2
- package/esm2020/cms/utils/index.mjs +4 -1
- package/esm2020/cms/utils/path.utils.mjs +3 -3
- package/esm2020/cms/utils/script.utils.mjs +19 -15
- package/esm2020/cms/utils/transpilation-worker.mjs +52 -0
- package/esm2020/cms/vendor-map.mjs +18 -6
- package/esm2020/core/core.module.mjs +12 -5
- package/esm2020/core/modules/configuration/configuration.module.mjs +7 -23
- package/esm2020/core/modules/configuration/helpers.mjs +28 -3
- package/esm2020/core/modules/configuration/index.mjs +2 -2
- package/esm2020/core/modules/configuration/services/configuration-runtime.service.mjs +8 -11
- package/esm2020/core/modules/configuration/services/configuration-state.service.mjs +335 -0
- package/esm2020/core/modules/configuration/services/configuration.service.mjs +77 -52
- package/esm2020/core/modules/configuration/services/runtime-context.service.mjs +6 -6
- package/esm2020/core/modules/configuration/types/configuration.types.mjs +1 -1
- package/esm2020/core/modules/flow-configuration/flow-configuration.module.mjs +6 -6
- package/esm2020/core/modules/flow-configuration/services/flow-configuration.service.mjs +12 -9
- package/esm2020/core/pipes/action-code.pipe.mjs +20 -0
- package/esm2020/core/pipes/date.pipe.mjs +10 -4
- package/esm2020/core/pipes/index.mjs +2 -1
- package/esm2020/core/pipes/pipes.module.mjs +5 -4
- package/esm2020/core/services/context.service.mjs +33 -6
- package/esm2020/core/services/flow-info.service.mjs +99 -0
- package/esm2020/core/services/flow-state-configuration.service.mjs +53 -0
- package/esm2020/core/services/flow-state.service.mjs +512 -0
- package/esm2020/core/services/index.mjs +5 -2
- package/esm2020/core/services/integration.state.mjs +36 -0
- package/esm2020/core/services/product-images.service.mjs +4 -5
- package/esm2020/core/services/quote-draft.service.mjs +40 -91
- package/esm2020/core/services/runtime-settings.service.mjs +22 -5
- package/esm2020/core/types/flow-customization.types.mjs +3 -0
- package/esm2020/core/types/flow-state.types.mjs +2 -0
- package/esm2020/core/types/formatting-settings.types.mjs +1 -1
- package/esm2020/core/types/index.mjs +4 -1
- package/esm2020/core/types/integration.types.mjs +2 -0
- package/esm2020/core/types/pipe.types.mjs +2 -0
- package/esm2020/core/utils/line-item.utils.mjs +33 -32
- package/esm2020/src/components/doc-gen/doc-gen.component.mjs +49 -49
- package/esm2020/src/components/flow-header/flow-header.component.mjs +108 -0
- package/esm2020/src/components/flow-header/flow-header.module.mjs +19 -0
- package/esm2020/src/components/flow-header/index.mjs +2 -0
- package/esm2020/src/components/guided-selling/guided-selling.component.mjs +37 -43
- package/esm2020/src/configure-primeng.mjs +33 -0
- package/esm2020/src/flow-routing.module.mjs +56 -78
- package/esm2020/src/flow.component.mjs +23 -32
- package/esm2020/src/flow.module.mjs +7 -5
- package/esm2020/src/guards/context.guard.mjs +6 -11
- package/esm2020/src/guards/flow.guard.mjs +37 -0
- package/esm2020/src/guards/product-unload.guard.mjs +4 -1
- package/esm2020/src/guards/root.guard.mjs +14 -10
- package/esm2020/src/pages/assets/assets.component.mjs +33 -37
- package/esm2020/src/pages/catalog/catalog.component.mjs +33 -37
- package/esm2020/src/pages/debug/debug.component.mjs +10 -14
- package/esm2020/src/pages/product/product.component.mjs +35 -22
- package/esm2020/src/pages/record-not-found/record-not-found.component.mjs +6 -3
- package/esm2020/src/pages/remote/remote.component.mjs +19 -19
- package/esm2020/src/pages/shopping-cart/shopping-cart.component.mjs +34 -38
- package/esm2020/src/resolvers/flow.resolver.mjs +37 -49
- package/esm2020/src/resolvers/quote.resolver.mjs +55 -63
- package/esm2020/src/services/doc-gen.service.mjs +4 -3
- package/esm2020/src/services/flow-dialog.service.mjs +21 -6
- package/esm2020/src/services/flow-router.service.mjs +57 -16
- package/esm2020/src/services/flow.service.mjs +83 -28
- package/esm2020/src/services/guided-selling.service.mjs +5 -4
- package/esm2020/src/services/index.mjs +3 -1
- package/esm2020/src/types/index.mjs +1 -2
- package/esm2020/src/utils/flow.utils.mjs +6 -2
- package/fesm2015/veloceapps-sdk-cms.mjs +298 -195
- package/fesm2015/veloceapps-sdk-cms.mjs.map +1 -1
- package/fesm2015/veloceapps-sdk-core.mjs +1846 -1023
- package/fesm2015/veloceapps-sdk-core.mjs.map +1 -1
- package/fesm2015/veloceapps-sdk.mjs +756 -1493
- package/fesm2015/veloceapps-sdk.mjs.map +1 -1
- package/fesm2020/veloceapps-sdk-cms.mjs +302 -209
- package/fesm2020/veloceapps-sdk-cms.mjs.map +1 -1
- package/fesm2020/veloceapps-sdk-core.mjs +1596 -811
- package/fesm2020/veloceapps-sdk-core.mjs.map +1 -1
- package/fesm2020/veloceapps-sdk.mjs +819 -1553
- package/fesm2020/veloceapps-sdk.mjs.map +1 -1
- package/package.json +5 -12
- package/src/components/doc-gen/doc-gen.component.d.ts +8 -9
- package/src/components/flow-header/flow-header.component.d.ts +25 -0
- package/src/components/flow-header/flow-header.module.d.ts +9 -0
- package/src/components/flow-header/index.d.ts +1 -0
- package/src/components/guided-selling/guided-selling.component.d.ts +6 -8
- package/src/configure-primeng.d.ts +1 -0
- package/src/flow-routing.module.d.ts +5 -7
- package/src/flow.component.d.ts +7 -11
- package/src/flow.module.d.ts +2 -2
- package/src/guards/context.guard.d.ts +4 -5
- package/src/guards/flow.guard.d.ts +2 -0
- package/src/guards/product-unload.guard.d.ts +2 -2
- package/src/guards/root.guard.d.ts +0 -1
- package/src/pages/assets/assets.component.d.ts +5 -7
- package/src/pages/catalog/catalog.component.d.ts +5 -7
- package/src/pages/debug/debug.component.d.ts +5 -8
- package/src/pages/product/product.component.d.ts +8 -7
- package/src/pages/record-not-found/record-not-found.component.d.ts +2 -0
- package/src/pages/remote/remote.component.d.ts +2 -3
- package/src/pages/shopping-cart/shopping-cart.component.d.ts +5 -7
- package/src/resolvers/flow.resolver.d.ts +6 -7
- package/src/resolvers/quote.resolver.d.ts +7 -12
- package/src/services/doc-gen.service.d.ts +1 -1
- package/src/services/flow-dialog.service.d.ts +5 -2
- package/src/services/flow-router.service.d.ts +7 -3
- package/src/services/flow.service.d.ts +11 -4
- package/src/services/guided-selling.service.d.ts +1 -1
- package/src/services/index.d.ts +2 -0
- package/src/types/index.d.ts +0 -1
- package/core/modules/configuration/services/configuration.state.d.ts +0 -30
- package/core/services/metric-calculation/metric-calculation.service.d.ts +0 -25
- package/core/services/metric-calculation/metric-calculation.types.d.ts +0 -1
- package/core/services/metric-calculation/metric-calculation.utils.d.ts +0 -5
- package/esm2020/cms/services/integration.state.mjs +0 -37
- package/esm2020/cms/types/integration.types.mjs +0 -2
- package/esm2020/core/modules/configuration/services/configuration.state.mjs +0 -142
- package/esm2020/core/services/metric-calculation/metric-calculation.service.mjs +0 -85
- package/esm2020/core/services/metric-calculation/metric-calculation.types.mjs +0 -2
- package/esm2020/core/services/metric-calculation/metric-calculation.utils.mjs +0 -42
- 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/components/header/cart-overlay/cart-preview.component.mjs +0 -119
- package/esm2020/src/components/header/cart-overlay/cart-preview.module.mjs +0 -47
- package/esm2020/src/components/header/header.component.mjs +0 -355
- package/esm2020/src/components/header/header.module.mjs +0 -52
- package/esm2020/src/components/header/header.types.mjs +0 -2
- package/esm2020/src/components/header/metrics/index.mjs +0 -2
- package/esm2020/src/components/header/metrics/metrics.component.mjs +0 -255
- package/esm2020/src/components/header/metrics/metrics.definitions.mjs +0 -2
- package/esm2020/src/components/header/metrics/metrics.module.mjs +0 -69
- package/esm2020/src/pages/empty-account/empty-account.component.mjs +0 -12
- package/esm2020/src/pages/empty-account/empty-account.module.mjs +0 -20
- 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/esm2020/src/types/flow-customization.types.mjs +0 -3
- 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/components/header/cart-overlay/cart-preview.component.d.ts +0 -36
- package/src/components/header/cart-overlay/cart-preview.module.d.ts +0 -14
- package/src/components/header/header.component.d.ts +0 -70
- package/src/components/header/header.module.d.ts +0 -16
- package/src/components/header/header.types.d.ts +0 -20
- package/src/components/header/metrics/index.d.ts +0 -1
- package/src/components/header/metrics/metrics.component.d.ts +0 -67
- package/src/components/header/metrics/metrics.definitions.d.ts +0 -1
- package/src/components/header/metrics/metrics.module.d.ts +0 -18
- package/src/pages/empty-account/empty-account.component.d.ts +0 -5
- package/src/pages/empty-account/empty-account.module.d.ts +0 -10
- package/src/pages/legacy-product/legacy-product.component.d.ts +0 -37
- package/src/pages/legacy-product/legacy-product.module.d.ts +0 -9
- package/src/types/flow-customization.types.d.ts +0 -12
- /package/{cms → core}/services/integration.state.d.ts +0 -0
@@ -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/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/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/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.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 { 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 { 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 { 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","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/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/components/flow-header/flow-header.component.ts","../../../../libs/sdk/src/components/flow-header/flow-header.component.html","../../../../libs/sdk/src/components/flow-header/flow-header.module.ts","../../../../libs/sdk/src/services/flow-router.service.ts","../../../../libs/sdk/src/services/flow-dialog.service.ts","../../../../libs/sdk/src/services/flow.service.ts","../../../../libs/sdk/src/services/guided-selling.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/flow.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/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/doc-gen.service.ts","../../../../libs/sdk/src/configure-primeng.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 { ChangeDetectionStrategy, Component, Inject, OnDestroy, Optional } from '@angular/core';\nimport { UITemplatesApiService } from '@veloceapps/api';\nimport { ToastService, ToastType } from '@veloceapps/components';\nimport { ComponentAttachments, UIDefinition } from '@veloceapps/core';\nimport { btoaSafe, extendElementMetadata, extractElementMetadata } from '@veloceapps/sdk/cms';\nimport {\n ContextService,\n FlowCustomization,\n FlowInfoService,\n FlowStateService,\n FLOW_CUSTOMIZATION,\n} from '@veloceapps/sdk/core';\nimport {\n BehaviorSubject,\n catchError,\n filter,\n first,\n map,\n Observable,\n of,\n Subject,\n switchMap,\n takeUntil,\n tap,\n} from 'rxjs';\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 templatesApi: UITemplatesApiService,\n private contextService: ContextService,\n private flowStateService: FlowStateService,\n private flowInfo: FlowInfoService,\n private toastService: ToastService,\n @Optional() @Inject(FLOW_CUSTOMIZATION) private customizationService?: FlowCustomization,\n ) {\n // wait until flow is initialized\n this.flowStateService\n .isInitialized$()\n .pipe(\n filter(Boolean),\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.flowInfo.flow?.properties.templates?.docGen ?? '';\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 getLocalMeta$(): Observable<ComponentAttachments[] | undefined> {\n if (!this.customizationService?.getTemplateComponents) {\n return of(undefined);\n }\n\n return this.customizationService?.getTemplateComponents(this.templateApiName).pipe(\n map(components => {\n if (!components) {\n return;\n }\n\n return components.map<ComponentAttachments>(component => ({\n html: component.html,\n css: component.css,\n js: component.js,\n json: component.json,\n }));\n }),\n );\n }\n\n private getOrgMeta$(): Observable<ComponentAttachments[] | undefined> {\n const template = this.flowInfo.templates.DOCGEN;\n if (!template) {\n return of(undefined);\n }\n\n return this.templatesApi.fetchComponentsAttachments$(template.id);\n }\n\n private generateUIDefinition$(): Observable<UIDefinition | undefined> {\n return of(undefined).pipe(\n tap(() => {\n if (!this.templateApiName) {\n throw new Error(\"Flow 'docGen' template is not defined.\");\n }\n }),\n switchMap(() => this.getLocalMeta$()),\n switchMap(metaList => (metaList ? of(metaList) : this.getOrgMeta$())),\n map(metaList => {\n if (!metaList) {\n return;\n }\n\n const headerId = this.contextService.resolve().properties.Id ?? null;\n const patchedMetaList = metaList.map(component => {\n if (!component.js) {\n return component;\n }\n\n const metadata = extractElementMetadata(component.js);\n const script = extendElementMetadata(component.js, {\n inputs: {\n ...metadata.inputs,\n Id: headerId ? `\"${headerId}\"` : null,\n },\n });\n\n return {\n ...component,\n js: script,\n };\n });\n\n const uiDef: UIDefinition = {\n name: '',\n createdTimestamp: 0,\n primary: true,\n type: 'DEFAULT',\n version: 2,\n children: patchedMetaList.map(child => ({\n children: [],\n template: child.html && btoaSafe(child.html),\n script: child.js && btoaSafe(child.js),\n styles: child.css && btoaSafe(child.css),\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 { ComponentAttachments, UIDefinition } from '@veloceapps/core';\nimport { btoaSafe } from '@veloceapps/sdk/cms';\nimport { FlowCustomization, FlowInfoService, FlowStateService, FLOW_CUSTOMIZATION } from '@veloceapps/sdk/core';\nimport {\n BehaviorSubject,\n catchError,\n filter,\n first,\n map,\n Observable,\n of,\n Subject,\n switchMap,\n takeUntil,\n tap,\n} from 'rxjs';\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 templatesApi: UITemplatesApiService,\n private flowStateService: FlowStateService,\n private flowInfo: FlowInfoService,\n private toastService: ToastService,\n @Optional() @Inject(FLOW_CUSTOMIZATION) private customizationService?: FlowCustomization,\n ) {\n // wait until flow is initialized\n this.flowStateService\n .isInitialized$()\n .pipe(\n filter(Boolean),\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.flowInfo.flow?.properties.templates?.guidedSelling ?? '';\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 getLocalMeta$(): Observable<ComponentAttachments[] | undefined> {\n if (!this.customizationService?.getTemplateComponents) {\n return of(undefined);\n }\n\n return this.customizationService?.getTemplateComponents(this.templateApiName).pipe(\n map(components => {\n if (!components) {\n return;\n }\n\n return components.map<ComponentAttachments>(component => ({\n html: component.html,\n css: component.css,\n js: component.js,\n json: component.json,\n }));\n }),\n );\n }\n\n private getOrgMeta$(): Observable<ComponentAttachments[] | undefined> {\n const template = this.flowInfo.templates.GUIDED_SELLING;\n if (!template) {\n return of(undefined);\n }\n\n return this.templatesApi.fetchComponentsAttachments$(template.id);\n }\n\n private generateUIDefinition$(): Observable<UIDefinition | undefined> {\n return of(undefined).pipe(\n tap(() => {\n if (!this.templateApiName) {\n throw new Error(\"Flow 'guidedSelling' template is not defined.\");\n }\n }),\n switchMap(() => this.getLocalMeta$()),\n switchMap(metaList => (metaList ? of(metaList) : this.getOrgMeta$())),\n map(metaList => {\n if (!metaList) {\n return;\n }\n\n const uiDef: UIDefinition = {\n name: '',\n createdTimestamp: 0,\n primary: true,\n type: 'DEFAULT',\n version: 2,\n children: metaList.map(meta => ({\n children: [],\n template: meta.html && btoaSafe(meta.html),\n script: meta.js && btoaSafe(meta.js),\n styles: meta.css && btoaSafe(meta.css),\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 { ChangeDetectionStrategy, Component, Inject, OnDestroy, Optional } from '@angular/core';\nimport { UITemplatesApiService } from '@veloceapps/api';\nimport { ToastService, ToastType } from '@veloceapps/components';\nimport { ComponentAttachments, UIDefinition } from '@veloceapps/core';\nimport { btoaSafe } from '@veloceapps/sdk/cms';\nimport { FlowCustomization, FlowInfoService, FlowStateService, FLOW_CUSTOMIZATION } from '@veloceapps/sdk/core';\nimport {\n BehaviorSubject,\n catchError,\n filter,\n first,\n map,\n Observable,\n of,\n Subject,\n switchMap,\n takeUntil,\n tap,\n} from 'rxjs';\n\n@Component({\n selector: 'vl-flow-new-header',\n templateUrl: './flow-header.component.html',\n styleUrls: ['./flow-header.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FlowHeaderComponent 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 templatesApi: UITemplatesApiService,\n private flowStateService: FlowStateService,\n private flowInfo: FlowInfoService,\n private toastService: ToastService,\n @Optional() @Inject(FLOW_CUSTOMIZATION) private customizationService?: FlowCustomization,\n ) {\n // wait until flow is initialized\n this.flowStateService\n .isInitialized$()\n .pipe(\n filter(Boolean),\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.flowInfo.flow?.properties.templates?.flowHeader ?? '';\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 Flow Header 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 getLocalMeta$(): Observable<ComponentAttachments[] | undefined> {\n if (!this.customizationService?.getTemplateComponents) {\n return of(undefined);\n }\n\n return this.customizationService?.getTemplateComponents(this.templateApiName).pipe(\n map(components => {\n if (!components) {\n return;\n }\n\n return components.map<ComponentAttachments>(component => ({\n html: component.html,\n css: component.css,\n js: component.js,\n json: component.json,\n }));\n }),\n );\n }\n\n private getOrgMeta$(): Observable<ComponentAttachments[] | undefined> {\n const template = this.flowInfo.templates.FLOW_HEADER;\n if (!template) {\n return of(undefined);\n }\n\n return this.templatesApi.fetchComponentsAttachments$(template.id);\n }\n\n private generateUIDefinition$(): Observable<UIDefinition | undefined> {\n return of(undefined).pipe(\n tap(() => {\n if (!this.templateApiName) {\n throw new Error(\"Flow 'flowHeader' template is not defined.\");\n }\n }),\n switchMap(() => this.getLocalMeta$()),\n switchMap(metaList => (metaList ? of(metaList) : this.getOrgMeta$())),\n map(metaList => {\n if (!metaList) {\n return;\n }\n\n const uiDef: UIDefinition = {\n name: '',\n createdTimestamp: 0,\n primary: true,\n type: 'DEFAULT',\n version: 2,\n children: metaList.map(meta => ({\n children: [],\n template: meta.html && btoaSafe(meta.html),\n script: meta.js && btoaSafe(meta.js),\n styles: meta.css && btoaSafe(meta.css),\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 { FlowHeaderComponent } from './flow-header.component';\n\n@NgModule({\n declarations: [FlowHeaderComponent],\n imports: [CommonModule, PreviewModule],\n exports: [FlowHeaderComponent],\n})\nexport class FlowNewHeaderModule {}\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, UITemplateType } from '@veloceapps/core';\nimport { FlowAction } from '@veloceapps/sdk/cms';\nimport { ContextService, FlowInfoService, FlowStateService, IntegrationState } from '@veloceapps/sdk/core';\nimport { Observable, distinctUntilChanged, filter, from, map, of, shareReplay, startWith, tap } 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 private flowInfoService: FlowInfoService,\n private flowStateService: FlowStateService,\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 get params(): Params {\n return this.getLastChildParams(this.route.snapshot);\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 navigateTo(path: string, productId?: string, lineItemId?: string): void {\n if (path === 'shopping-cart') {\n this.navigateToShoppingCart();\n } else if (path === 'catalog') {\n this.navigateToCatalog();\n } else if (path === 'assets') {\n this.navigateToAssets();\n } else if (path === 'product' && productId) {\n this.navigateToProductConfiguration(productId, lineItemId);\n }\n }\n\n public navigateToProductConfiguration(productId: string, lineItemId?: string): void {\n let updateContext$;\n if (this.flowInfoService.isLegacy) {\n updateContext$ = of(undefined).pipe(\n tap(() => {\n this.contextService.update({ properties: { productId, lineItemId: lineItemId ?? '' } });\n }),\n );\n } else {\n updateContext$ = this.flowStateService.dispatch$(UITemplateType.FLOW_ENGINE, 'UPDATE_CONTEXT_PROPERTIES', {\n productId,\n lineItemId: lineItemId ?? '',\n });\n }\n updateContext$\n .pipe(\n tap(() => {\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 .subscribe();\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 showErrorPage$(message: string, details?: string[]): Observable<false> {\n const routeSnapshot = this.getLastChildRouteSnapshot(this.route.snapshot);\n const flowRouteUrl = this.getFlowRootPath(routeSnapshot);\n\n return from(\n this.router.navigate([flowRouteUrl, '404'], {\n state: { message, type: 'error', ...(details && { details }) },\n replaceUrl: true,\n }),\n ).pipe(map(() => false));\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 { Injectable } from '@angular/core';\nimport { getMaxRenewalTermsValue, mapShoppingCartSettings } from '@veloceapps/core';\nimport { ContextService, RuntimeSettingsService } 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(\n private dialogService: DialogService,\n private contextService: ContextService,\n private runtimeSettings: RuntimeSettingsService,\n ) {}\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 public showTermsLimitReachedDialog(): Observable<boolean> {\n const shoppingCartSettings = mapShoppingCartSettings(this.runtimeSettings.getShoppingCartSettings() || []);\n const maxRenewalTerms = getMaxRenewalTermsValue(shoppingCartSettings);\n return this.show({\n title: 'Terms Limit Reached',\n description: `You have reached the term quantity limit: ${maxRenewalTerms}. You can increase the limit in the Shopping Cart Settings.`,\n primaryButton: 'Ok',\n });\n }\n\n public showDialog(dialog: keyof Omit<FlowDialogService, 'show' | 'constructor'>): Observable<boolean> {\n const dialogFunction = this[dialog].bind(this);\n return dialogFunction(dialog);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { LineItem, UITemplateType } from '@veloceapps/core';\nimport { FlowAction, IntegrationState } from '@veloceapps/sdk/cms';\nimport {\n ConfigurationService,\n ConfigurationStateService,\n FlowConfigurationService,\n FlowInfoService,\n FlowStateService,\n QuoteDraftService,\n} from '@veloceapps/sdk/core';\nimport { map, Observable, of, Subject, switchMap, take, takeUntil, tap } from 'rxjs';\nimport { FlowDialogService } from './flow-dialog.service';\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 configurationStateService: ConfigurationStateService,\n private flowDialogService: FlowDialogService,\n private flowConfigurationService: FlowConfigurationService,\n private flowInfoService: FlowInfoService,\n private flowStateService: FlowStateService,\n ) {}\n\n public cleanup(): void {\n this.cleanup$.next();\n }\n\n public initSubscriptions(): void {\n this.integrationState\n .listen$<Parameters<typeof FlowAction.ConfigureProductAction>[0]>(FlowAction.FLOW_CONFIGURE_PRODUCT)\n .pipe(\n switchMap(payload => {\n if (this.flowInfoService.isLegacy) {\n const productId =\n payload.productId ??\n this.quoteDraftService.currentState.find(li => li.id === payload.lineItemId)?.productId;\n\n return of({ ...payload, productId });\n }\n\n return this.prepareConfiguration$(payload.lineItemId).pipe(map(() => payload));\n }),\n tap(payload => {\n if (payload.productId) {\n this.flowRouterService.navigateToProductConfiguration(payload.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 switchMap(() => this.configurationStateService.cancelConfiguration()),\n tap(() => this.flowRouterService.navigateBack()),\n takeUntil(this.cleanup$),\n )\n .subscribe();\n\n this.integrationState\n .listen$(FlowAction.FLOW_NAVIGATE_TO)\n .pipe(\n switchMap(payload => this.configurationStateService.cancelConfiguration().pipe(map(() => payload))),\n tap(payload => {\n if (payload.path === 'product') {\n this.integrationState.dispatch(FlowAction.ConfigureProductAction(payload));\n } else {\n this.flowRouterService.navigateTo(payload.path, payload.productId, payload.lineItemId);\n }\n }),\n takeUntil(this.cleanup$),\n )\n .subscribe();\n\n this.integrationState\n .listen$(FlowAction.OPEN_DIALOG)\n .pipe(\n switchMap(payload => this.flowDialogService.showDialog(payload.dialog).pipe(take(1))),\n takeUntil(this.cleanup$),\n )\n .subscribe(dialogResult => {\n this.integrationState.patchState({ dialogResult });\n });\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_NAVIGATE_TO_SHOPPING_CART)\n .pipe(\n tap(() => this.flowRouterService.navigateToShoppingCart()),\n takeUntil(this.cleanup$),\n )\n .subscribe();\n\n this.integrationState\n .listen$(FlowAction.FLOW_APPLY_PRODUCT_CONFIGURATION)\n .pipe(\n switchMap(() => {\n if (this.flowInfoService.isLegacy) {\n return this.legacyApplyConfiguration();\n } else {\n return this.configurationStateService.saveConfiguration('', true).pipe(\n switchMap(() => this.configurationStateService.cancelConfiguration()),\n switchMap(() =>\n this.flowStateService.dispatch$(UITemplateType.FLOW_ENGINE, 'MODIFY_ASSETS', {\n addConfiguringAssetId: true,\n enable: 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.updateFlowParams();\n }\n\n private updateFlowParams(): 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 this.flowRouterService.route$\n .pipe(\n map(path => path.queryParams['productId']),\n takeUntil(this.cleanup$),\n )\n .subscribe(productId => this.integrationState.patchState({ productId }));\n }\n\n private prepareConfiguration$(lineItemId?: string): Observable<void> {\n if (!lineItemId) {\n return of(undefined);\n }\n\n return this.flowStateService.dispatch$(UITemplateType.FLOW_ENGINE, 'UPDATE_PRICE_LIST', {\n lineItemId,\n });\n }\n\n private legacyApplyConfiguration(): Observable<void> {\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}\n","import { Injectable } from '@angular/core';\nimport { FlowAction } from '@veloceapps/sdk/cms';\nimport { IntegrationState } from '@veloceapps/sdk/core';\nimport { BehaviorSubject, Subject, takeUntil, tap } from 'rxjs';\n\n@Injectable()\nexport class FlowGuidedSellingService {\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.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 } from '@angular/core';\nimport { FlowInfoService } from '@veloceapps/sdk/core';\nimport { combineLatest, map, Observable } from 'rxjs';\nimport { FlowService } from './services';\nimport { FlowRouterService } from './services/flow-router.service';\nimport { FlowGuidedSellingService } from './services/guided-selling.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 {\n public isLoading$: Observable<boolean>;\n public showHeader$: Observable<boolean>;\n public isStandalone$: Observable<boolean>;\n public guidedSellingVisible$: Observable<boolean>;\n\n constructor(\n private routerService: FlowRouterService,\n private flowService: FlowService,\n private flowInfo: FlowInfoService,\n private guidedSellingService: FlowGuidedSellingService,\n ) {\n this.isLoading$ = this.routerService.loading$;\n\n this.showHeader$ = combineLatest([this.routerService.route$, this.flowInfo.flow$]).pipe(\n map(([route, flow]) => route.data['showHeader'] && !flow?.properties.standalone),\n );\n\n this.isStandalone$ = this.flowInfo.flow$.pipe(map(flow => Boolean(flow?.properties.standalone)));\n this.guidedSellingVisible$ = this.guidedSellingService.isVisible$;\n\n this.flowService.initSubscriptions();\n }\n}\n","<vl-flow-new-header *ngIf=\"showHeader$ | async\"></vl-flow-new-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 <div class=\"guided-selling\" [ngClass]=\"{ hidden: (guidedSellingVisible$ | async) === false }\">\n <vl-flow-guided-selling *ngIf=\"(isStandalone$ | async) !== true\"></vl-flow-guided-selling>\n </div>\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 let standalone = params.flowParams?.standalone;\n if (params.flowParams?.entryPath.includes('/product') || params.mode === ConfigurationContextMode.REMOTE) {\n standalone = standalone ?? true;\n }\n\n if (standalone != null) {\n properties.standalone = standalone ? 'true' : 'false';\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, extractErrorDetails, isVeloceError, RpcMessage, VlWindow } from '@veloceapps/core';\nimport { ContextService, RuntimeSettingsService } from '@veloceapps/sdk/core';\nimport { catchError, forkJoin, map, Observable, 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 protected router: Router,\n protected routerService: FlowRouterService,\n protected contextService: ContextService,\n protected 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.routerService.showErrorPage$('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 this.contextService.update({\n ...context,\n properties: {\n ...context.properties,\n ...(queryParams ?? {}),\n ...getDefaultProperties({ mode }),\n },\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 const errorDetails = isVeloceError(e.error) ? extractErrorDetails(e.error) : [];\n return this.routerService.showErrorPage$(message, errorDetails);\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","import { HttpErrorResponse } from '@angular/common/http';\nimport { inject } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivateFn, Params } from '@angular/router';\nimport { extractErrorDetails, isVeloceError } from '@veloceapps/core';\nimport {\n ConfigurationService,\n ContextService,\n FlowInfoService,\n FlowStateService,\n IntegrationState,\n QuoteDraftService,\n} from '@veloceapps/sdk/core';\nimport { catchError, map } from 'rxjs';\nimport { FlowRouterService } from '../services/flow-router.service';\n\nexport const keepFlowInitialized: CanActivateFn = (route: ActivatedRouteSnapshot) => {\n const contextService = inject(ContextService);\n const flowState = inject(FlowStateService);\n const flowInfoService = inject(FlowInfoService);\n const routerService = inject(FlowRouterService);\n const quoteDraft = inject(QuoteDraftService);\n const configurationService = inject(ConfigurationService);\n const integrationState = inject(IntegrationState);\n\n const { flowId } = route.queryParams;\n const flow = flowInfoService.flow;\n\n if (flow && flow?.id === flowId) {\n return true;\n }\n\n // Cleanup\n flowState.cleanup();\n quoteDraft.reset();\n configurationService.reset();\n integrationState.clear();\n flowInfoService.cleanup();\n contextService.delete();\n\n if (!flowId) {\n return true;\n }\n\n const params: Params = { ...route.queryParams, ...flow?.properties.queryParams };\n return flowInfoService.init$(flowId, params).pipe(\n map(() => true),\n catchError(e => {\n const message = e instanceof HttpErrorResponse ? e.error.message : e;\n const errorDetails = isVeloceError(e.error) ? extractErrorDetails(e.error) : [];\n return routerService.showErrorPage$(message, errorDetails);\n }),\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, 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\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 const navToRestore = this.router.getCurrentNavigation();\n\n const rootUrl = this.routerService.getFlowRootPath(route);\n this.router\n .navigate([rootUrl], {\n replaceUrl: !navToRestore?.previousNavigation,\n skipLocationChange: true,\n })\n .then(success => {\n if (!success || !navToRestore) {\n return;\n }\n\n setTimeout(() => {\n this.router.navigateByUrl(navToRestore.extractedUrl, navToRestore.extras);\n });\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 { ComponentAttachments, UIDefinition } from '@veloceapps/core';\nimport { btoaSafe } from '@veloceapps/sdk/cms';\nimport { FlowCustomization, FlowInfoService, FLOW_CUSTOMIZATION } from '@veloceapps/sdk/core';\nimport { BehaviorSubject, catchError, map, Observable, of, Subject, switchMap, takeUntil, tap } from 'rxjs';\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 cdr: ChangeDetectorRef,\n private toastService: ToastService,\n private flowInfo: FlowInfoService,\n @Optional() @Inject(FLOW_CUSTOMIZATION) private customizationService?: FlowCustomization,\n ) {\n this.templateApiName = this.flowInfo.flow?.properties.templates?.assets ?? '';\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 getLocalMeta$(): Observable<ComponentAttachments[] | undefined> {\n if (!this.customizationService?.getTemplateComponents) {\n return of(undefined);\n }\n\n return this.customizationService?.getTemplateComponents(this.templateApiName).pipe(\n map(components => {\n if (!components) {\n return;\n }\n\n return components.map<ComponentAttachments>(component => ({\n html: component.html,\n css: component.css,\n js: component.js,\n json: component.json,\n }));\n }),\n );\n }\n\n private getOrgMeta$(): Observable<ComponentAttachments[] | undefined> {\n const template = this.flowInfo.templates.SHOPPING_CART;\n if (!template) {\n return of(undefined);\n }\n\n return this.templatesApi.fetchComponentsAttachments$(template.id);\n }\n\n private generateUIDefinition$(): Observable<UIDefinition | undefined> {\n return of(undefined).pipe(\n tap(() => {\n if (!this.templateApiName) {\n throw new Error(\"Flow 'assets' template is not defined.\");\n }\n }),\n switchMap(() => this.getLocalMeta$()),\n switchMap(metaList => (metaList ? of(metaList) : this.getOrgMeta$())),\n map(metaList => {\n if (!metaList) {\n return;\n }\n\n const uiDef: UIDefinition = {\n name: '',\n createdTimestamp: 0,\n primary: true,\n type: 'DEFAULT',\n version: 2,\n children: metaList.map(meta => ({\n children: [],\n template: meta.html && btoaSafe(meta.html),\n script: meta.js && btoaSafe(meta.js),\n styles: meta.css && btoaSafe(meta.css),\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 { ComponentAttachments, UIDefinition } from '@veloceapps/core';\nimport { btoaSafe } from '@veloceapps/sdk/cms';\nimport { FlowCustomization, FlowInfoService, FLOW_CUSTOMIZATION } from '@veloceapps/sdk/core';\nimport { BehaviorSubject, catchError, map, Observable, of, Subject, switchMap, takeUntil, tap } from 'rxjs';\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 cdr: ChangeDetectorRef,\n private toastService: ToastService,\n private flowInfo: FlowInfoService,\n @Optional() @Inject(FLOW_CUSTOMIZATION) private customizationService?: FlowCustomization,\n ) {\n this.templateApiName = this.flowInfo.flow?.properties.templates?.catalog ?? '';\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 getLocalMeta$(): Observable<ComponentAttachments[] | undefined> {\n if (!this.customizationService?.getTemplateComponents) {\n return of(undefined);\n }\n\n return this.customizationService?.getTemplateComponents(this.templateApiName).pipe(\n map(components => {\n if (!components) {\n return;\n }\n\n return components.map<ComponentAttachments>(component => ({\n html: component.html,\n css: component.css,\n js: component.js,\n json: component.json,\n }));\n }),\n );\n }\n\n private getOrgMeta$(): Observable<ComponentAttachments[] | undefined> {\n const template = this.flowInfo.templates.CATALOG;\n if (!template) {\n return of(undefined);\n }\n\n return this.templatesApi.fetchComponentsAttachments$(template.id);\n }\n\n private generateUIDefinition$(): Observable<UIDefinition | undefined> {\n return of(undefined).pipe(\n tap(() => {\n if (!this.templateApiName) {\n throw new Error(\"Flow 'catalog' template is not defined.\");\n }\n }),\n switchMap(() => this.getLocalMeta$()),\n switchMap(metaList => (metaList ? of(metaList) : this.getOrgMeta$())),\n map(metaList => {\n if (!metaList) {\n return;\n }\n\n const uiDef: UIDefinition = {\n name: '',\n createdTimestamp: 0,\n primary: true,\n type: 'DEFAULT',\n version: 2,\n children: metaList.map(meta => ({\n children: [],\n template: meta.html && btoaSafe(meta.html),\n script: meta.js && btoaSafe(meta.js),\n styles: meta.css && btoaSafe(meta.css),\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 { HttpParams } from '@angular/common/http';\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { ActivatedRoute, Params, Router } from '@angular/router';\nimport { FlowsApiService } from '@veloceapps/api';\nimport { Flow } from '@veloceapps/core';\nimport { ContextService, QuoteDraftService } from '@veloceapps/sdk/core';\nimport { Observable, shareReplay } from 'rxjs';\nimport { getFlowObjectIdPropertyName } from '../../utils';\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?: Flow;\n public flows$: Observable<Flow[]>;\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(shareReplay());\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.properties.queryParams,\n },\n relativeTo: this.activatedRoute,\n });\n }\n\n public getQueryParamsString(params: Params): string {\n return new HttpParams({ fromObject: params }).toString();\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 <th [width]=\"100\">Standalone</th>\n <th [width]=\"100\">Stateful</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.properties.entryPath }}</td>\n <td class=\"cell-query-params\">{{ getQueryParamsString(flow.properties.queryParams) }}</td>\n <td>{{ flow.properties.standalone }}</td>\n <td>{{ flow.properties.stateful }}</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, Inject, Optional } from '@angular/core';\nimport { LineItem, QuoteDraft, UIDefinition } from '@veloceapps/core';\nimport { CMSPreviewConfig } from '@veloceapps/sdk/cms';\nimport {\n ConfigurationRuntimeService,\n ConfigurationService,\n ConfigurationStateService,\n ContextService,\n FlowCustomization,\n FlowInfoService,\n FlowStateService,\n FLOW_CUSTOMIZATION,\n IntegrationState,\n QuoteDraftService,\n} from '@veloceapps/sdk/core';\nimport { BehaviorSubject, first, map, Observable, of, switchMap, tap } from 'rxjs';\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 configurationStateService: ConfigurationStateService,\n private quoteDraftService: QuoteDraftService,\n private flowInfoService: FlowInfoService,\n private flowStateService: FlowStateService,\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 let quoteDraft$: Observable<QuoteDraft | undefined>;\n if (this.flowInfoService.isLegacy || !this.flowInfoService.isStateful) {\n quoteDraft$ = this.quoteDraftService.quoteDraft$;\n } else {\n quoteDraft$ = of(undefined);\n }\n return 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 if (!quote) {\n const offeringId = contextProperties.offeringId;\n return this.configurationRuntimeService.init({ productId, offeringId });\n }\n\n const lineItem = this.getLineItem(quote, productId, contextProperties.lineItemId);\n if (lineItem) {\n this.configurationService.setConfigurableRamp(lineItem);\n }\n\n const { offeringId } = lineItem ?? {};\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.configurationStateService.init$()),\n );\n }\n\n private getLineItem(quote: QuoteDraft, productId: string, lineItemId?: string): LineItem | undefined {\n // search by lineItemId first\n let li: LineItem | undefined = quote.currentState.find(li => li.id === lineItemId);\n\n if (!li && this.quoteDraftService.isStandalone) {\n li = quote.currentState.find(li => li.productId === productId);\n }\n\n // If still not found, is could be an asset\n if (!li) {\n li = this.quoteDraftService.assetsState?.currentState.find(li => li.id === lineItemId);\n }\n\n return li;\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 public type = '';\n public details: string[];\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 this.type = state?.['type'] || '';\n this.details = state?.['details'];\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 *ngIf=\"message; else defaultMessage\">\n <p class=\"text message-text\" [class]=\"type\">{{ message }}</p>\n\n <p *ngIf=\"subMessage\" class=\"text\">{{ subMessage }}</p>\n\n <div *ngIf=\"details && details.length > 0\">\n <div *ngFor=\"let detail of details\" class=\"text\">{{ detail }}</div>\n </div>\n </div>\n\n <ng-template #defaultMessage>Record not found</ng-template>\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 } from '@veloceapps/sdk/cms';\nimport {\n ConfigurationRuntimeService,\n ConfigurationService,\n ConfigurationStateService,\n ContextService,\n IntegrationState,\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: ConfigurationStateService,\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 = item && 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 const bundleOption = bundleOptionsByOptionId[option.configuredProductId];\n if (bundleOption) {\n bundleOption.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 { ComponentAttachments, UIDefinition } from '@veloceapps/core';\nimport { btoaSafe } from '@veloceapps/sdk/cms';\nimport { FlowCustomization, FlowInfoService, FLOW_CUSTOMIZATION } from '@veloceapps/sdk/core';\nimport { BehaviorSubject, catchError, map, Observable, of, Subject, switchMap, takeUntil, tap } from 'rxjs';\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 cdr: ChangeDetectorRef,\n private toastService: ToastService,\n private flowInfo: FlowInfoService,\n @Optional() @Inject(FLOW_CUSTOMIZATION) private customizationService?: FlowCustomization,\n ) {\n this.templateApiName = this.flowInfo.flow?.properties.templates?.shoppingCart ?? '';\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 getLocalMeta$(): Observable<ComponentAttachments[] | undefined> {\n if (!this.customizationService?.getTemplateComponents) {\n return of(undefined);\n }\n\n return this.customizationService?.getTemplateComponents(this.templateApiName).pipe(\n map(components => {\n if (!components) {\n return;\n }\n\n return components.map<ComponentAttachments>(component => ({\n html: component.html,\n css: component.css,\n js: component.js,\n json: component.json,\n }));\n }),\n );\n }\n\n private getOrgMeta$(): Observable<ComponentAttachments[] | undefined> {\n const template = this.flowInfo.templates.SHOPPING_CART;\n if (!template) {\n return of(undefined);\n }\n\n return this.templatesApi.fetchComponentsAttachments$(template.id);\n }\n\n private generateUIDefinition$(): Observable<UIDefinition | undefined> {\n return of(undefined).pipe(\n tap(() => {\n if (!this.templateApiName) {\n throw new Error(\"Flow 'shoppingCart' template is not defined.\");\n }\n }),\n switchMap(() => this.getLocalMeta$()),\n switchMap(metaList => (metaList ? of(metaList) : this.getOrgMeta$())),\n map(metaList => {\n if (!metaList) {\n return;\n }\n\n const uiDef: UIDefinition = {\n name: '',\n createdTimestamp: 0,\n primary: true,\n type: 'DEFAULT',\n version: 2,\n children: metaList.map(meta => ({\n children: [],\n template: meta.html && btoaSafe(meta.html),\n script: meta.js && btoaSafe(meta.js),\n styles: meta.css && btoaSafe(meta.css),\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 { extractErrorDetails, isVeloceError } from '@veloceapps/core';\nimport { ContextService, FlowInfoService } from '@veloceapps/sdk/core';\nimport { Dictionary } from 'lodash';\nimport { from, Observable, of } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\nimport { FlowRouterService } from '../services/flow-router.service';\nimport { getDefaultProperties } from '../utils';\n\n@Injectable()\nexport class FlowResolver implements Resolve<unknown> {\n constructor(\n private router: Router,\n private routerService: FlowRouterService,\n private contextService: ContextService,\n private flowInfo: FlowInfoService,\n ) {}\n\n public resolve(route: ActivatedRouteSnapshot): Observable<boolean> {\n const { queryParams } = route;\n const flow = this.flowInfo.flow;\n\n if (!flow) {\n return of(false);\n }\n\n const { properties } = flow;\n const { queryParams: flowQueryParams, entryPath } = properties;\n const mergedQueryParams = {\n ...queryParams,\n ...flowQueryParams,\n };\n\n const contextProperties = Object.entries({\n ...mergedQueryParams,\n ...getDefaultProperties({ flowParams: properties }),\n }).reduce<Dictionary<string>>((trunk, [key, value]) => ({ ...trunk, [key]: String(value) }), {});\n\n this.contextService.update({ properties: contextProperties });\n this.flowInfo.flow = flow;\n\n const parentUrl = this.routerService.getFlowRootPath(route);\n const entryUrl = String(entryPath ?? '')\n .split('/')\n .filter(Boolean);\n\n return from(\n this.router.navigate([parentUrl, ...entryUrl], {\n queryParams: mergedQueryParams,\n replaceUrl: true,\n }),\n ).pipe(\n catchError(e => {\n const message = e instanceof HttpErrorResponse ? e.error.message : e;\n const errorDetails = isVeloceError(e.error) ? extractErrorDetails(e.error) : [];\n return this.routerService.showErrorPage$(message, errorDetails);\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, extractErrorDetails, isVeloceError, UITemplateType } from '@veloceapps/core';\nimport { ContextService, FlowInfoService, FlowStateService, QuoteDraftService } from '@veloceapps/sdk/core';\n\nimport { catchError, from, map, Observable, of, switchMap } 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 flowInfo: FlowInfoService,\n private flowStateService: FlowStateService,\n ) {}\n\n public resolve(route: ActivatedRouteSnapshot): Observable<boolean> {\n const flow = this.flowInfo.flow;\n if (!flow) {\n return of(false);\n }\n\n if (this.flowStateService.isInitialized()) {\n return of(true);\n }\n\n return this.flowStateService.init$().pipe(\n switchMap(() => this.checkDynamicNavigation$(route)),\n catchError(e => {\n const message = e instanceof HttpErrorResponse ? e.error.message : e;\n const errorDetails = isVeloceError(e.error) ? extractErrorDetails(e.error) : [];\n return this.routerService.showErrorPage$(message, errorDetails);\n }),\n );\n }\n\n private checkDynamicNavigation$(route: ActivatedRouteSnapshot): Observable<boolean> {\n const flow = this.flowInfo.flow;\n if (!flow) {\n return of(true);\n }\n\n if (flow.properties.suppressInitialNavigation || flow.properties.standalone) {\n return of(true);\n }\n\n return this.getNavigateTo().pipe(\n switchMap(navigateTo => {\n if (!navigateTo) {\n return of(true);\n }\n\n const parentUrl = this.routerService.getFlowRootPath(route);\n\n return from(\n this.router.navigate([parentUrl + navigateTo], {\n queryParams: route.queryParams,\n replaceUrl: true,\n }),\n );\n }),\n );\n }\n\n private getNavigateTo(): Observable<string | undefined> {\n const flow = this.flowInfo.flow;\n let navigateTo: string | undefined;\n if (flow?.properties.stateful) {\n return this.flowStateService.select$<string>(UITemplateType.FLOW_ENGINE, 'NAVIGATE_TO').pipe(\n map(r => {\n if (r.success) {\n return r.result;\n }\n return '';\n }),\n );\n } else {\n const isAccountMode = this.contextService.mode === ConfigurationContextMode.ACCOUNT;\n if (isAccountMode || this.quoteDraftService.hasAssets) {\n navigateTo = '/assets';\n } else if (this.quoteDraftService.hasProducts) {\n navigateTo = '/cart';\n }\n }\n\n return of(navigateTo);\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 { keepFlowInitialized } from './guards/flow.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 { 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: '',\n canActivate: [keepFlowInitialized],\n runGuardsAndResolvers: 'always',\n children: [\n {\n path: 'flows',\n runGuardsAndResolvers: 'paramsOrQueryParamsChange',\n resolve: { flow: 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: '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};\n\n@NgModule({\n imports: [\n RouterModule.forChild([rootRoute]),\n ProductModule,\n ShoppingCartModule,\n CatalogModule,\n AssetsModule,\n RemoteModule,\n ],\n exports: [RouterModule],\n providers: [FlowRouterService, RootGuard, ContextGuard, ProductUnloadGuard, FlowResolver, QuoteResolver],\n})\nexport class FlowRoutingModule {}\n","import { Injectable } from '@angular/core';\nimport { FlowAction } from '@veloceapps/sdk/cms';\nimport { IntegrationState } from '@veloceapps/sdk/core';\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 { DomHandler } from 'primeng/dom';\n\nexport const configurePrimengShadowDOM = () => {\n DomHandler.getScrollableParents = (element: any) => {\n const scrollableParents = [];\n\n if (element) {\n const parents = DomHandler.getParents(element).filter((item: any) => !(item instanceof ShadowRoot));\n const overflowRegex = /(auto|scroll)/;\n const overflowCheck = (node: any) => {\n const styleDeclaration = window['getComputedStyle'](node, null);\n return (\n overflowRegex.test(styleDeclaration.getPropertyValue('overflow')) ||\n overflowRegex.test(styleDeclaration.getPropertyValue('overflowX')) ||\n overflowRegex.test(styleDeclaration.getPropertyValue('overflowY'))\n );\n };\n\n for (const parent of parents) {\n const scrollSelectors = parent.nodeType === 1 && parent.dataset['scrollselectors'];\n if (scrollSelectors) {\n const selectors = scrollSelectors.split(',');\n for (const selector of selectors) {\n const el = DomHandler.findSingle(parent, selector);\n if (el && overflowCheck(el)) {\n scrollableParents.push(el);\n }\n }\n }\n\n if (parent.nodeType !== 9 && overflowCheck(parent)) {\n scrollableParents.push(parent);\n }\n }\n }\n\n return scrollableParents;\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 { FlowNewHeaderModule } from './components/flow-header';\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';\nimport { configurePrimengShadowDOM } from './configure-primeng';\n\nconfigurePrimengShadowDOM();\n\n@NgModule({\n declarations: [FlowComponent],\n imports: [\n CommonModule,\n LetDirectiveModule,\n FlowRoutingModule,\n ApiModule,\n LauncherModule,\n LoaderModule,\n FlowNewHeaderModule,\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","i2.FlowRouterService","i3","i4.FlowDialogService","i1.FlowRouterService","i2.FlowService","i4.FlowGuidedSellingService","i5","i6","i7","i8.FlowHeaderComponent","i9.DocGenComponent","i10.GuidedSellingComponent","i3.FlowDialogService","routes","i4","catchError","i3.FlowRouterService"],"mappings":"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"}
|