@veloceapps/sdk 7.0.0-9 → 7.0.1-0
Sign up to get free protection for your applications and to get access to all the features.
- package/cms/README.md +45 -0
- package/cms/cms.actions.d.ts +10 -0
- package/cms/components/element-children/element-children.component.d.ts +1 -1
- package/cms/components/element-drop-handle/element-drop-handle.component.d.ts +1 -1
- package/cms/components/element-renderer/element-renderer.component.d.ts +1 -1
- package/cms/components/plugin.component.d.ts +2 -2
- package/cms/components/preview/preview.component.d.ts +4 -3
- package/cms/directives/custom-template.directive.d.ts +1 -1
- package/cms/modules/federated/federated-host.directive.d.ts +8 -0
- package/cms/modules/federated/federated.component.d.ts +5 -7
- package/cms/modules/federated/federated.module.d.ts +4 -3
- package/cms/modules/federated/federated.types.d.ts +1 -5
- package/cms/modules/migrations/types/migrations.types.d.ts +1 -1
- package/cms/plugins/configuration.plugin.d.ts +1 -1
- package/cms/plugins/io.plugin.d.ts +1 -1
- package/cms/plugins/region.plugin.d.ts +1 -1
- package/cms/plugins/script.plugin.d.ts +1 -1
- package/cms/services/templates.service.d.ts +1 -1
- package/cms/types/common.types.d.ts +2 -2
- package/cms/types/elements.types.d.ts +1 -1
- package/cms/types/integration.types.d.ts +1 -1
- package/cms/types/layouts.types.d.ts +1 -1
- package/cms/utils/element.utils.d.ts +2 -2
- package/cms/vendor-map.d.ts +2 -1
- package/core/README.md +5 -0
- package/core/modules/flow-configuration/types/update.types.d.ts +2 -2
- package/core/services/metric-calculation/metric-calculation.types.d.ts +1 -1
- package/core/types/ui-definition.types.d.ts +2 -2
- package/esm2020/cms/cms.actions.mjs +56 -0
- package/esm2020/cms/components/element-children/element-children.component.mjs +35 -0
- package/esm2020/cms/components/element-children/element-children.module.mjs +20 -0
- package/esm2020/cms/components/element-drop-handle/element-drop-handle.component.mjs +28 -0
- package/esm2020/cms/components/element-drop-handle/element-drop-handle.module.mjs +19 -0
- package/esm2020/cms/components/element-renderer/element-renderer.component.mjs +160 -0
- package/{esm2015/cms/components/element-renderer/element-renderer.module.js → esm2020/cms/components/element-renderer/element-renderer.module.mjs} +5 -5
- package/esm2020/cms/components/element.component.mjs +45 -0
- package/esm2020/cms/components/plugin.component.mjs +17 -0
- package/esm2020/cms/components/preview/preview.component.mjs +103 -0
- package/esm2020/cms/components/preview/preview.module.mjs +24 -0
- package/esm2020/cms/directives/custom-template.directive.mjs +26 -0
- package/esm2020/cms/engine/models/entity.mjs +17 -0
- package/esm2020/cms/launcher.module.mjs +24 -0
- package/esm2020/cms/modules/federated/federated-host.directive.mjs +16 -0
- package/esm2020/cms/modules/federated/federated.component.mjs +64 -0
- package/esm2020/cms/modules/federated/federated.module.mjs +20 -0
- package/esm2020/cms/modules/federated/federated.types.mjs +2 -0
- package/esm2020/cms/modules/migrations/migrations.mjs +15 -0
- package/{esm2015/cms/modules/migrations/migrations.module.js → esm2020/cms/modules/migrations/migrations.module.mjs} +5 -5
- package/esm2020/cms/modules/migrations/services/migrations.service.mjs +43 -0
- package/{esm2015/cms/modules/runtime/runtime.module.js → esm2020/cms/modules/runtime/runtime.module.mjs} +6 -6
- package/esm2020/cms/modules/runtime/services/compilation.service.mjs +83 -0
- package/esm2020/cms/modules/runtime/services/runtime-editor.service.mjs +28 -0
- package/esm2020/cms/modules/runtime/services/runtime.service.mjs +74 -0
- package/esm2020/cms/plugins/configuration.plugin.mjs +105 -0
- package/esm2020/cms/plugins/io.plugin.mjs +36 -0
- package/esm2020/cms/plugins/region.plugin.mjs +58 -0
- package/esm2020/cms/plugins/script.plugin.mjs +65 -0
- package/{esm2015/cms/services/element-context.service.js → esm2020/cms/services/element-context.service.mjs} +4 -4
- package/esm2020/cms/services/integration.state.mjs +40 -0
- package/esm2020/cms/services/io-provider.service.mjs +50 -0
- package/esm2020/cms/services/resources.service.mjs +49 -0
- package/{esm2015/cms/services/templates.service.js → esm2020/cms/services/templates.service.mjs} +4 -4
- package/esm2020/cms/utils/element.utils.mjs +160 -0
- package/esm2020/cms/utils/elements-resolver.mjs +189 -0
- package/esm2020/cms/utils/path.utils.mjs +53 -0
- package/esm2020/cms/utils/ui-definition.utils.mjs +87 -0
- package/esm2020/cms/vendor-map.mjs +67 -0
- package/esm2020/core/core.module.mjs +18 -0
- package/{esm2015/core/modules/configuration/configuration.module.js → esm2020/core/modules/configuration/configuration.module.mjs} +6 -6
- package/esm2020/core/modules/configuration/helpers.mjs +18 -0
- package/esm2020/core/modules/configuration/services/configuration-runtime.service.mjs +106 -0
- package/esm2020/core/modules/configuration/services/configuration.service.mjs +183 -0
- package/esm2020/core/modules/configuration/services/runtime-context.service.mjs +50 -0
- package/esm2020/core/modules/flow-configuration/flow-configuration.module.mjs +18 -0
- package/esm2020/core/modules/flow-configuration/services/flow-configuration.service.mjs +150 -0
- package/esm2020/core/modules/flow-configuration/services/flow-update.service.mjs +129 -0
- package/esm2020/core/services/context.service.mjs +64 -0
- package/esm2020/core/services/metric-calculation/metric-calculation.service.mjs +85 -0
- package/esm2020/core/services/product-images.service.mjs +31 -0
- package/esm2020/core/services/quote-draft.service.mjs +232 -0
- package/esm2020/core/utils/line-item.utils.mjs +161 -0
- package/esm2020/core/utils/line-item.worker.mjs +19 -0
- package/esm2020/runtime/components/component-preview/component-preview.component.mjs +125 -0
- package/esm2020/runtime/components/section-renderer/section-renderer.component.mjs +67 -0
- package/esm2020/runtime/components/ui-runtime/runtime.component.mjs +440 -0
- package/esm2020/runtime/components/ui-runtime-preview/runtime-preview.component.mjs +108 -0
- package/esm2020/runtime/execution/components/children-placeholder/children-placeholder.component.mjs +60 -0
- package/esm2020/runtime/execution/components/context-provider/context-provider.component.mjs +39 -0
- package/esm2020/runtime/execution/components/execution-section-renderer/execution-section-renderer.component.mjs +67 -0
- package/esm2020/runtime/execution/components/federated/federated.component.mjs +74 -0
- package/esm2020/runtime/execution/components/velo-attribute/velo-attribute.component.mjs +60 -0
- package/esm2020/runtime/execution/components/velo-multiselect/velo-multiselect.component.mjs +130 -0
- package/esm2020/runtime/execution/components/velo-port-checkbox/velo-port-checkbox.component.mjs +72 -0
- package/esm2020/runtime/execution/components/velo-port-dropdown/velo-port-dropdown.component.mjs +97 -0
- package/esm2020/runtime/execution/components/velo-port-radio/velo-port-radio.component.mjs +142 -0
- package/esm2020/runtime/execution/components/velo-type/velo-type.component.mjs +119 -0
- package/esm2020/runtime/execution/directives/section-script.directive.mjs +247 -0
- package/esm2020/runtime/execution/directives/sf-query.directive.mjs +35 -0
- package/esm2020/runtime/execution/directives/velo-attribute.directive.mjs +88 -0
- package/esm2020/runtime/execution/directives/velo-port.directive.mjs +376 -0
- package/esm2020/runtime/execution/directives/vl-approval.directive.mjs +23 -0
- package/esm2020/runtime/execution/directives/vl-document-attachments.directive.mjs +36 -0
- package/esm2020/runtime/execution/directives/vl-document-templates.directive.mjs +60 -0
- package/esm2020/runtime/execution/directives/vl-quote.directive.mjs +42 -0
- package/esm2020/runtime/execution/directives/vl-ramp.directive.mjs +55 -0
- package/esm2020/runtime/execution/runtime-execution.module.mjs +133 -0
- package/esm2020/runtime/execution/utils/federated.util.mjs +32 -0
- package/esm2020/runtime/runtime.module.mjs +74 -0
- package/esm2020/runtime/services/cart.service.mjs +29 -0
- package/{esm2015/runtime/services/collapsible-state.service.js → esm2020/runtime/services/collapsible-state.service.mjs} +4 -4
- package/esm2020/runtime/services/configuration.service.mjs +119 -0
- package/{esm2015/runtime/services/current-state.service.js → esm2020/runtime/services/current-state.service.mjs} +4 -4
- package/{esm2015/runtime/services/form-scope.service.js → esm2020/runtime/services/form-scope.service.mjs} +4 -4
- package/esm2020/runtime/services/product-model-cache.service.mjs +31 -0
- package/esm2020/runtime/services/runtime-context.service.mjs +57 -0
- package/esm2020/runtime/services/runtime-form.service.mjs +219 -0
- package/esm2020/runtime/services/runtime.service.mjs +115 -0
- package/{esm2015/runtime/services/section-helper.service.js → esm2020/runtime/services/section-helper.service.mjs} +4 -4
- package/{esm2015/runtime/services/section-scope.service.js → esm2020/runtime/services/section-scope.service.mjs} +4 -4
- package/{esm2015/runtime/services/section-store.service.js → esm2020/runtime/services/section-store.service.mjs} +4 -4
- package/esm2020/runtime/services/section.service.mjs +117 -0
- package/esm2020/runtime/types/script-registry.types.mjs +51 -0
- package/esm2020/runtime/utils/line-item.util.mjs +270 -0
- package/esm2020/src/components/dialog/dialog.component.mjs +36 -0
- package/esm2020/src/components/dialog/dialog.module.mjs +19 -0
- package/esm2020/src/components/doc-gen/doc-gen.component.mjs +107 -0
- package/esm2020/src/components/doc-gen/doc-gen.module.mjs +19 -0
- package/esm2020/src/components/header/cart-overlay/cart-preview.component.mjs +120 -0
- package/{esm2015/src/components/header/cart-overlay/cart-preview.module.js → esm2020/src/components/header/cart-overlay/cart-preview.module.mjs} +11 -13
- package/esm2020/src/components/header/header.component.mjs +333 -0
- package/{esm2015/src/components/header/header.module.js → esm2020/src/components/header/header.module.mjs} +12 -14
- package/esm2020/src/components/header/metrics/metrics.component.mjs +227 -0
- package/{esm2015/src/components/header/metrics/metrics.module.js → esm2020/src/components/header/metrics/metrics.module.mjs} +17 -19
- package/{esm2015/src/flow-routing.module.js → esm2020/src/flow-routing.module.mjs} +12 -14
- package/esm2020/src/flow.component.mjs +45 -0
- package/esm2020/src/flow.module.mjs +58 -0
- package/esm2020/src/guards/context.guard.mjs +93 -0
- package/esm2020/src/guards/product-unload.guard.mjs +46 -0
- package/esm2020/src/guards/root.guard.mjs +42 -0
- package/esm2020/src/pages/assets/assets.component.mjs +111 -0
- package/esm2020/src/pages/assets/assets.module.mjs +20 -0
- package/esm2020/src/pages/catalog/catalog.component.mjs +111 -0
- package/esm2020/src/pages/catalog/catalog.module.mjs +20 -0
- package/esm2020/src/pages/debug/debug.component.mjs +62 -0
- package/{esm2015/src/pages/debug/debug.module.js → esm2020/src/pages/debug/debug.module.mjs} +12 -14
- package/esm2020/src/pages/empty-account/empty-account.component.mjs +12 -0
- package/esm2020/src/pages/empty-account/empty-account.module.mjs +20 -0
- package/esm2020/src/pages/legacy-product/legacy-product.component.mjs +137 -0
- package/esm2020/src/pages/legacy-product/legacy-product.module.mjs +19 -0
- package/esm2020/src/pages/product/product.component.mjs +94 -0
- package/esm2020/src/pages/product/product.module.mjs +20 -0
- package/esm2020/src/pages/record-not-found/record-not-found.component.mjs +25 -0
- package/esm2020/src/pages/record-not-found/record-not-found.module.mjs +20 -0
- package/esm2020/src/pages/remote/remote.component.mjs +342 -0
- package/esm2020/src/pages/remote/remote.module.mjs +20 -0
- package/esm2020/src/pages/shopping-cart/shopping-cart.component.mjs +111 -0
- package/esm2020/src/pages/shopping-cart/shopping-cart.module.mjs +20 -0
- package/esm2020/src/resolvers/flow.resolver.mjs +70 -0
- package/esm2020/src/resolvers/quote.resolver.mjs +90 -0
- package/esm2020/src/services/doc-gen.service.mjs +33 -0
- package/esm2020/src/services/flow-dialog.service.mjs +126 -0
- package/esm2020/src/services/flow-router.service.mjs +144 -0
- package/esm2020/src/services/flow.service.mjs +86 -0
- package/esm2020/src/utils/flow.utils.mjs +21 -0
- package/fesm2015/{veloceapps-sdk-cms.js → veloceapps-sdk-cms.mjs} +178 -207
- package/fesm2015/veloceapps-sdk-cms.mjs.map +1 -0
- package/fesm2015/{veloceapps-sdk-core.js → veloceapps-sdk-core.mjs} +76 -76
- package/fesm2015/veloceapps-sdk-core.mjs.map +1 -0
- package/fesm2015/{veloceapps-sdk-runtime.js → veloceapps-sdk-runtime.mjs} +242 -370
- package/fesm2015/veloceapps-sdk-runtime.mjs.map +1 -0
- package/fesm2015/veloceapps-sdk.mjs +2877 -0
- package/fesm2015/veloceapps-sdk.mjs.map +1 -0
- package/fesm2020/veloceapps-sdk-cms.mjs +2036 -0
- package/fesm2020/veloceapps-sdk-cms.mjs.map +1 -0
- package/fesm2020/veloceapps-sdk-core.mjs +1289 -0
- package/fesm2020/veloceapps-sdk-core.mjs.map +1 -0
- package/fesm2020/veloceapps-sdk-runtime.mjs +3764 -0
- package/fesm2020/veloceapps-sdk-runtime.mjs.map +1 -0
- package/fesm2020/veloceapps-sdk.mjs +2857 -0
- package/fesm2020/veloceapps-sdk.mjs.map +1 -0
- package/package.json +59 -33
- package/runtime/README.md +5 -0
- package/runtime/components/component-preview/component-preview.component.d.ts +2 -2
- package/runtime/components/section-renderer/section-renderer.component.d.ts +1 -1
- package/runtime/components/ui-runtime/runtime.component.d.ts +1 -1
- package/runtime/components/ui-runtime-preview/runtime-preview.component.d.ts +1 -1
- package/runtime/execution/components/children-placeholder/children-placeholder.component.d.ts +2 -2
- package/runtime/execution/components/context-provider/context-provider.component.d.ts +1 -1
- package/runtime/execution/components/execution-section-renderer/execution-section-renderer.component.d.ts +1 -1
- package/runtime/execution/components/federated/federated.component.d.ts +1 -1
- package/runtime/execution/components/velo-attribute/velo-attribute.component.d.ts +1 -1
- package/runtime/execution/components/velo-multiselect/velo-multiselect.component.d.ts +1 -1
- package/runtime/execution/components/velo-port-checkbox/velo-port-checkbox.component.d.ts +1 -1
- package/runtime/execution/components/velo-port-dropdown/velo-port-dropdown.component.d.ts +1 -1
- package/runtime/execution/components/velo-port-radio/velo-port-radio.component.d.ts +1 -1
- package/runtime/execution/components/velo-type/velo-type.component.d.ts +1 -1
- package/runtime/execution/directives/section-script.directive.d.ts +1 -1
- package/runtime/execution/directives/sf-query.directive.d.ts +1 -1
- package/runtime/execution/directives/velo-attribute.directive.d.ts +1 -1
- package/runtime/execution/directives/velo-port.directive.d.ts +6 -6
- package/runtime/execution/directives/vl-approval.directive.d.ts +1 -1
- package/runtime/execution/directives/vl-document-attachments.directive.d.ts +1 -1
- package/runtime/execution/directives/vl-document-templates.directive.d.ts +1 -1
- package/runtime/execution/directives/vl-quote.directive.d.ts +1 -1
- package/runtime/execution/directives/vl-ramp.directive.d.ts +1 -1
- package/runtime/execution/runtime-execution.module.d.ts +3 -5
- package/runtime/execution/utils/federated.util.d.ts +1 -1
- package/runtime/runtime.module.d.ts +3 -5
- package/runtime/services/section.service.d.ts +1 -1
- package/src/components/dialog/dialog.component.d.ts +1 -1
- package/src/components/doc-gen/doc-gen.component.d.ts +1 -1
- package/src/components/header/cart-overlay/cart-preview.component.d.ts +2 -2
- package/src/components/header/header.component.d.ts +1 -1
- package/src/components/header/metrics/metrics.component.d.ts +1 -1
- package/src/flow.component.d.ts +1 -1
- package/src/pages/assets/assets.component.d.ts +1 -1
- package/src/pages/catalog/catalog.component.d.ts +1 -1
- package/src/pages/debug/debug.component.d.ts +5 -3
- package/src/pages/empty-account/empty-account.component.d.ts +1 -1
- package/src/pages/legacy-product/legacy-product.component.d.ts +1 -1
- package/src/pages/legacy-product/legacy-product.module.d.ts +1 -2
- package/src/pages/product/product.component.d.ts +1 -1
- package/src/pages/record-not-found/record-not-found.component.d.ts +1 -1
- package/src/pages/remote/remote.component.d.ts +1 -1
- package/src/pages/shopping-cart/shopping-cart.component.d.ts +1 -1
- package/bundles/veloceapps-sdk-cms.umd.js +0 -2531
- package/bundles/veloceapps-sdk-cms.umd.js.map +0 -1
- package/bundles/veloceapps-sdk-core.umd.js +0 -1916
- package/bundles/veloceapps-sdk-core.umd.js.map +0 -1
- package/bundles/veloceapps-sdk-runtime.umd.js +0 -4415
- package/bundles/veloceapps-sdk-runtime.umd.js.map +0 -1
- package/bundles/veloceapps-sdk.umd.js +0 -3583
- package/bundles/veloceapps-sdk.umd.js.map +0 -1
- package/cms/modules/federated/federated.utils.d.ts +0 -1
- package/cms/package.json +0 -10
- package/cms/veloceapps-sdk-cms.d.ts +0 -5
- package/core/package.json +0 -10
- package/core/veloceapps-sdk-core.d.ts +0 -5
- package/esm2015/cms/cms.actions.js +0 -42
- package/esm2015/cms/components/element-children/element-children.component.js +0 -39
- package/esm2015/cms/components/element-children/element-children.module.js +0 -20
- package/esm2015/cms/components/element-drop-handle/element-drop-handle.component.js +0 -32
- package/esm2015/cms/components/element-drop-handle/element-drop-handle.module.js +0 -19
- package/esm2015/cms/components/element-renderer/element-renderer.component.js +0 -169
- package/esm2015/cms/components/element.component.js +0 -44
- package/esm2015/cms/components/plugin.component.js +0 -16
- package/esm2015/cms/components/preview/preview.component.js +0 -93
- package/esm2015/cms/components/preview/preview.module.js +0 -24
- package/esm2015/cms/directives/custom-template.directive.js +0 -25
- package/esm2015/cms/engine/models/entity.js +0 -18
- package/esm2015/cms/launcher.module.js +0 -24
- package/esm2015/cms/modules/federated/federated.component.js +0 -82
- package/esm2015/cms/modules/federated/federated.module.js +0 -19
- package/esm2015/cms/modules/federated/federated.types.js +0 -2
- package/esm2015/cms/modules/federated/federated.utils.js +0 -37
- package/esm2015/cms/modules/migrations/migrations.js +0 -11
- package/esm2015/cms/modules/migrations/services/migrations.service.js +0 -43
- package/esm2015/cms/modules/runtime/services/compilation.service.js +0 -84
- package/esm2015/cms/modules/runtime/services/runtime-editor.service.js +0 -27
- package/esm2015/cms/modules/runtime/services/runtime.service.js +0 -74
- package/esm2015/cms/plugins/configuration.plugin.js +0 -106
- package/esm2015/cms/plugins/io.plugin.js +0 -37
- package/esm2015/cms/plugins/region.plugin.js +0 -58
- package/esm2015/cms/plugins/script.plugin.js +0 -66
- package/esm2015/cms/services/integration.state.js +0 -40
- package/esm2015/cms/services/io-provider.service.js +0 -51
- package/esm2015/cms/services/resources.service.js +0 -50
- package/esm2015/cms/utils/element.utils.js +0 -157
- package/esm2015/cms/utils/elements-resolver.js +0 -163
- package/esm2015/cms/utils/path.utils.js +0 -56
- package/esm2015/cms/utils/ui-definition.utils.js +0 -82
- package/esm2015/cms/vendor-map.js +0 -51
- package/esm2015/core/core.module.js +0 -18
- package/esm2015/core/modules/configuration/helpers.js +0 -10
- package/esm2015/core/modules/configuration/services/configuration-runtime.service.js +0 -87
- package/esm2015/core/modules/configuration/services/configuration.service.js +0 -177
- package/esm2015/core/modules/configuration/services/runtime-context.service.js +0 -51
- package/esm2015/core/modules/flow-configuration/flow-configuration.module.js +0 -18
- package/esm2015/core/modules/flow-configuration/services/flow-configuration.service.js +0 -150
- package/esm2015/core/modules/flow-configuration/services/flow-update.service.js +0 -129
- package/esm2015/core/services/context.service.js +0 -53
- package/esm2015/core/services/metric-calculation/metric-calculation.service.js +0 -83
- package/esm2015/core/services/product-images.service.js +0 -30
- package/esm2015/core/services/quote-draft.service.js +0 -217
- package/esm2015/core/utils/line-item.utils.js +0 -143
- package/esm2015/core/utils/line-item.worker.js +0 -19
- package/esm2015/runtime/components/component-preview/component-preview.component.js +0 -125
- package/esm2015/runtime/components/section-renderer/section-renderer.component.js +0 -71
- package/esm2015/runtime/components/ui-runtime/runtime.component.js +0 -429
- package/esm2015/runtime/components/ui-runtime-preview/runtime-preview.component.js +0 -109
- package/esm2015/runtime/execution/components/children-placeholder/children-placeholder.component.js +0 -68
- package/esm2015/runtime/execution/components/context-provider/context-provider.component.js +0 -36
- package/esm2015/runtime/execution/components/execution-section-renderer/execution-section-renderer.component.js +0 -72
- package/esm2015/runtime/execution/components/federated/federated.component.js +0 -81
- package/esm2015/runtime/execution/components/velo-attribute/velo-attribute.component.js +0 -65
- package/esm2015/runtime/execution/components/velo-multiselect/velo-multiselect.component.js +0 -136
- package/esm2015/runtime/execution/components/velo-port-checkbox/velo-port-checkbox.component.js +0 -80
- package/esm2015/runtime/execution/components/velo-port-dropdown/velo-port-dropdown.component.js +0 -101
- package/esm2015/runtime/execution/components/velo-port-radio/velo-port-radio.component.js +0 -150
- package/esm2015/runtime/execution/components/velo-type/velo-type.component.js +0 -121
- package/esm2015/runtime/execution/directives/section-script.directive.js +0 -242
- package/esm2015/runtime/execution/directives/sf-query.directive.js +0 -34
- package/esm2015/runtime/execution/directives/velo-attribute.directive.js +0 -86
- package/esm2015/runtime/execution/directives/velo-port.directive.js +0 -373
- package/esm2015/runtime/execution/directives/vl-approval.directive.js +0 -22
- package/esm2015/runtime/execution/directives/vl-document-attachments.directive.js +0 -35
- package/esm2015/runtime/execution/directives/vl-document-templates.directive.js +0 -59
- package/esm2015/runtime/execution/directives/vl-quote.directive.js +0 -41
- package/esm2015/runtime/execution/directives/vl-ramp.directive.js +0 -51
- package/esm2015/runtime/execution/runtime-execution.module.js +0 -163
- package/esm2015/runtime/execution/utils/federated.util.js +0 -37
- package/esm2015/runtime/runtime.module.js +0 -104
- package/esm2015/runtime/services/cart.service.js +0 -27
- package/esm2015/runtime/services/configuration.service.js +0 -101
- package/esm2015/runtime/services/product-model-cache.service.js +0 -30
- package/esm2015/runtime/services/runtime-context.service.js +0 -56
- package/esm2015/runtime/services/runtime-form.service.js +0 -224
- package/esm2015/runtime/services/runtime.service.js +0 -108
- package/esm2015/runtime/services/section.service.js +0 -124
- package/esm2015/runtime/types/script-registry.types.js +0 -51
- package/esm2015/runtime/utils/line-item.util.js +0 -273
- package/esm2015/src/components/dialog/dialog.component.js +0 -40
- package/esm2015/src/components/dialog/dialog.module.js +0 -19
- package/esm2015/src/components/doc-gen/doc-gen.component.js +0 -109
- package/esm2015/src/components/doc-gen/doc-gen.module.js +0 -19
- package/esm2015/src/components/header/cart-overlay/cart-preview.component.js +0 -122
- package/esm2015/src/components/header/header.component.js +0 -336
- package/esm2015/src/components/header/metrics/metrics.component.js +0 -232
- package/esm2015/src/flow.component.js +0 -45
- package/esm2015/src/flow.module.js +0 -60
- package/esm2015/src/guards/context.guard.js +0 -84
- package/esm2015/src/guards/product-unload.guard.js +0 -43
- package/esm2015/src/guards/root.guard.js +0 -41
- package/esm2015/src/pages/assets/assets.component.js +0 -117
- package/esm2015/src/pages/assets/assets.module.js +0 -20
- package/esm2015/src/pages/catalog/catalog.component.js +0 -117
- package/esm2015/src/pages/catalog/catalog.module.js +0 -20
- package/esm2015/src/pages/debug/debug.component.js +0 -61
- package/esm2015/src/pages/empty-account/empty-account.component.js +0 -17
- package/esm2015/src/pages/empty-account/empty-account.module.js +0 -20
- package/esm2015/src/pages/legacy-product/legacy-product.component.js +0 -132
- package/esm2015/src/pages/legacy-product/legacy-product.module.js +0 -21
- package/esm2015/src/pages/product/product.component.js +0 -101
- package/esm2015/src/pages/product/product.module.js +0 -20
- package/esm2015/src/pages/record-not-found/record-not-found.component.js +0 -29
- package/esm2015/src/pages/record-not-found/record-not-found.module.js +0 -20
- package/esm2015/src/pages/remote/remote.component.js +0 -350
- package/esm2015/src/pages/remote/remote.module.js +0 -20
- package/esm2015/src/pages/shopping-cart/shopping-cart.component.js +0 -117
- package/esm2015/src/pages/shopping-cart/shopping-cart.module.js +0 -20
- package/esm2015/src/resolvers/flow.resolver.js +0 -62
- package/esm2015/src/resolvers/quote.resolver.js +0 -88
- package/esm2015/src/services/doc-gen.service.js +0 -33
- package/esm2015/src/services/flow-dialog.service.js +0 -124
- package/esm2015/src/services/flow-router.service.js +0 -144
- package/esm2015/src/services/flow.service.js +0 -84
- package/esm2015/src/utils/flow.utils.js +0 -22
- package/fesm2015/veloceapps-sdk-cms.js.map +0 -1
- package/fesm2015/veloceapps-sdk-core.js.map +0 -1
- package/fesm2015/veloceapps-sdk-runtime.js.map +0 -1
- package/fesm2015/veloceapps-sdk.js +0 -2953
- package/fesm2015/veloceapps-sdk.js.map +0 -1
- package/runtime/package.json +0 -10
- package/runtime/veloceapps-sdk-runtime.d.ts +0 -5
- package/veloceapps-sdk.d.ts +0 -5
- /package/{esm2015/cms/cms.default.js → esm2020/cms/cms.default.mjs} +0 -0
- /package/{esm2015/cms/cms.elements.js → esm2020/cms/cms.elements.mjs} +0 -0
- /package/{esm2015/cms/cms.layouts.js → esm2020/cms/cms.layouts.mjs} +0 -0
- /package/{esm2015/cms/components/index.js → esm2020/cms/components/index.mjs} +0 -0
- /package/{esm2015/cms/components/preview/index.js → esm2020/cms/components/preview/index.mjs} +0 -0
- /package/{esm2015/cms/components/preview/preview.types.js → esm2020/cms/components/preview/preview.types.mjs} +0 -0
- /package/{esm2015/cms/decorators/element.decorator.js → esm2020/cms/decorators/element.decorator.mjs} +0 -0
- /package/{esm2015/cms/decorators/index.js → esm2020/cms/decorators/index.mjs} +0 -0
- /package/{esm2015/cms/engine/models/plugin.js → esm2020/cms/engine/models/plugin.mjs} +0 -0
- /package/{esm2015/cms/index.js → esm2020/cms/index.mjs} +0 -0
- /package/{esm2015/cms/injection-tokens.js → esm2020/cms/injection-tokens.mjs} +0 -0
- /package/{esm2015/cms/modules/federated/default-options.js → esm2020/cms/modules/federated/default-options.mjs} +0 -0
- /package/{esm2015/cms/modules/federated/export.js → esm2020/cms/modules/federated/export.mjs} +0 -0
- /package/{esm2015/cms/modules/migrations/index.js → esm2020/cms/modules/migrations/index.mjs} +0 -0
- /package/{esm2015/cms/modules/migrations/types/migrations.types.js → esm2020/cms/modules/migrations/types/migrations.types.mjs} +0 -0
- /package/{esm2015/cms/modules/runtime/index.js → esm2020/cms/modules/runtime/index.mjs} +0 -0
- /package/{esm2015/cms/modules/runtime/tokens.js → esm2020/cms/modules/runtime/tokens.mjs} +0 -0
- /package/{esm2015/cms/modules/runtime/types/compilation.types.js → esm2020/cms/modules/runtime/types/compilation.types.mjs} +0 -0
- /package/{esm2015/cms/modules/runtime/types/runtime.actions.js → esm2020/cms/modules/runtime/types/runtime.actions.mjs} +0 -0
- /package/{esm2015/cms/services/index.js → esm2020/cms/services/index.mjs} +0 -0
- /package/{esm2015/cms/types/common.types.js → esm2020/cms/types/common.types.mjs} +0 -0
- /package/{esm2015/cms/types/configuration.types.js → esm2020/cms/types/configuration.types.mjs} +0 -0
- /package/{esm2015/cms/types/elements.types.js → esm2020/cms/types/elements.types.mjs} +0 -0
- /package/{esm2015/cms/types/index.js → esm2020/cms/types/index.mjs} +0 -0
- /package/{esm2015/cms/types/integration.types.js → esm2020/cms/types/integration.types.mjs} +0 -0
- /package/{esm2015/cms/types/layouts.types.js → esm2020/cms/types/layouts.types.mjs} +0 -0
- /package/{esm2015/cms/types/path.types.js → esm2020/cms/types/path.types.mjs} +0 -0
- /package/{esm2015/cms/utils/index.js → esm2020/cms/utils/index.mjs} +0 -0
- /package/{esm2015/cms/veloceapps-sdk-cms.js → esm2020/cms/veloceapps-sdk-cms.mjs} +0 -0
- /package/{esm2015/core/index.js → esm2020/core/index.mjs} +0 -0
- /package/{esm2015/core/modules/configuration/index.js → esm2020/core/modules/configuration/index.mjs} +0 -0
- /package/{esm2015/core/modules/configuration/types/configuration-runtime.types.js → esm2020/core/modules/configuration/types/configuration-runtime.types.mjs} +0 -0
- /package/{esm2015/core/modules/flow-configuration/index.js → esm2020/core/modules/flow-configuration/index.mjs} +0 -0
- /package/{esm2015/core/modules/flow-configuration/types/update.types.js → esm2020/core/modules/flow-configuration/types/update.types.mjs} +0 -0
- /package/{esm2015/core/modules/index.js → esm2020/core/modules/index.mjs} +0 -0
- /package/{esm2015/core/services/index.js → esm2020/core/services/index.mjs} +0 -0
- /package/{esm2015/core/services/metric-calculation/metric-calculation.types.js → esm2020/core/services/metric-calculation/metric-calculation.types.mjs} +0 -0
- /package/{esm2015/core/services/metric-calculation/metric-calculation.utils.js → esm2020/core/services/metric-calculation/metric-calculation.utils.mjs} +0 -0
- /package/{esm2015/core/types/index.js → esm2020/core/types/index.mjs} +0 -0
- /package/{esm2015/core/types/runtime.types.js → esm2020/core/types/runtime.types.mjs} +0 -0
- /package/{esm2015/core/types/ui-definition.types.js → esm2020/core/types/ui-definition.types.mjs} +0 -0
- /package/{esm2015/core/utils/index.js → esm2020/core/utils/index.mjs} +0 -0
- /package/{esm2015/core/utils/ui-definition.utils.js → esm2020/core/utils/ui-definition.utils.mjs} +0 -0
- /package/{esm2015/core/veloceapps-sdk-core.js → esm2020/core/veloceapps-sdk-core.mjs} +0 -0
- /package/{esm2015/index.js → esm2020/index.mjs} +0 -0
- /package/{esm2015/runtime/components/index.js → esm2020/runtime/components/index.mjs} +0 -0
- /package/{esm2015/runtime/index.js → esm2020/runtime/index.mjs} +0 -0
- /package/{esm2015/runtime/services/index.js → esm2020/runtime/services/index.mjs} +0 -0
- /package/{esm2015/runtime/types/bound-data.types.js → esm2020/runtime/types/bound-data.types.mjs} +0 -0
- /package/{esm2015/runtime/types/index.js → esm2020/runtime/types/index.mjs} +0 -0
- /package/{esm2015/runtime/types/quote-states.types.js → esm2020/runtime/types/quote-states.types.mjs} +0 -0
- /package/{esm2015/runtime/types/runtime.types.js → esm2020/runtime/types/runtime.types.mjs} +0 -0
- /package/{esm2015/runtime/utils/section.utils.js → esm2020/runtime/utils/section.utils.mjs} +0 -0
- /package/{esm2015/runtime/utils/sections-binder.helper.js → esm2020/runtime/utils/sections-binder.helper.mjs} +0 -0
- /package/{esm2015/runtime/veloceapps-sdk-runtime.js → esm2020/runtime/veloceapps-sdk-runtime.mjs} +0 -0
- /package/{esm2015/src/components/dialog/dialog.types.js → esm2020/src/components/dialog/dialog.types.mjs} +0 -0
- /package/{esm2015/src/components/header/header.types.js → esm2020/src/components/header/header.types.mjs} +0 -0
- /package/{esm2015/src/components/header/metrics/index.js → esm2020/src/components/header/metrics/index.mjs} +0 -0
- /package/{esm2015/src/components/header/metrics/metrics.definitions.js → esm2020/src/components/header/metrics/metrics.definitions.mjs} +0 -0
- /package/{esm2015/src/constants.js → esm2020/src/constants.mjs} +0 -0
- /package/{esm2015/src/guards/index.js → esm2020/src/guards/index.mjs} +0 -0
- /package/{esm2015/src/index.js → esm2020/src/index.mjs} +0 -0
- /package/{esm2015/src/pages/remote/remote.types.js → esm2020/src/pages/remote/remote.types.mjs} +0 -0
- /package/{esm2015/src/services/index.js → esm2020/src/services/index.mjs} +0 -0
- /package/{esm2015/src/types/context-route.types.js → esm2020/src/types/context-route.types.mjs} +0 -0
- /package/{esm2015/src/types/flow-customization.types.js → esm2020/src/types/flow-customization.types.mjs} +0 -0
- /package/{esm2015/src/types/index.js → esm2020/src/types/index.mjs} +0 -0
- /package/{esm2015/src/types/metrics.types.js → esm2020/src/types/metrics.types.mjs} +0 -0
- /package/{esm2015/src/types/route.types.js → esm2020/src/types/route.types.mjs} +0 -0
- /package/{esm2015/src/utils/index.js → esm2020/src/utils/index.mjs} +0 -0
- /package/{esm2015/veloceapps-sdk.js → esm2020/veloceapps-sdk.mjs} +0 -0
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"veloceapps-sdk.umd.js","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/services/doc-gen.service.ts","../../../../libs/sdk/src/components/doc-gen/doc-gen.component.ts","../../../../libs/sdk/src/components/doc-gen/doc-gen.component.html","../../../../libs/sdk/src/components/doc-gen/doc-gen.module.ts","../../../../node_modules/tslib/tslib.es6.js","../../../../libs/sdk/src/services/flow-router.service.ts","../../../../libs/sdk/src/components/header/cart-overlay/cart-preview.component.ts","../../../../libs/sdk/src/components/header/cart-overlay/cart-preview.component.html","../../../../libs/sdk/src/components/header/cart-overlay/cart-preview.module.ts","../../../../libs/sdk/src/services/flow-dialog.service.ts","../../../../libs/sdk/src/components/header/metrics/metrics.definitions.ts","../../../../libs/sdk/src/components/header/metrics/metrics.component.ts","../../../../libs/sdk/src/components/header/metrics/metrics.component.html","../../../../libs/sdk/src/components/header/header.component.ts","../../../../libs/sdk/src/components/header/header.component.html","../../../../libs/sdk/src/components/header/metrics/metrics.module.ts","../../../../libs/sdk/src/components/header/header.module.ts","../../../../libs/sdk/src/services/flow.service.ts","../../../../libs/sdk/src/flow.component.ts","../../../../libs/sdk/src/flow.component.html","../../../../libs/sdk/src/utils/flow.utils.ts","../../../../libs/sdk/src/guards/context.guard.ts","../../../../libs/sdk/src/guards/product-unload.guard.ts","../../../../libs/sdk/src/guards/root.guard.ts","../../../../libs/sdk/src/types/flow-customization.types.ts","../../../../libs/sdk/src/pages/assets/assets.component.ts","../../../../libs/sdk/src/pages/assets/assets.component.html","../../../../libs/sdk/src/pages/assets/assets.module.ts","../../../../libs/sdk/src/pages/catalog/catalog.component.ts","../../../../libs/sdk/src/pages/catalog/catalog.component.html","../../../../libs/sdk/src/pages/catalog/catalog.module.ts","../../../../libs/sdk/src/pages/debug/debug.component.ts","../../../../libs/sdk/src/pages/debug/debug.component.html","../../../../libs/sdk/src/pages/debug/debug.module.ts","../../../../libs/sdk/src/pages/empty-account/empty-account.component.ts","../../../../libs/sdk/src/pages/empty-account/empty-account.component.html","../../../../libs/sdk/src/pages/empty-account/empty-account.module.ts","../../../../libs/sdk/src/pages/legacy-product/legacy-product.component.ts","../../../../libs/sdk/src/pages/legacy-product/legacy-product.component.html","../../../../libs/sdk/src/pages/legacy-product/legacy-product.module.ts","../../../../libs/sdk/src/pages/product/product.component.ts","../../../../libs/sdk/src/pages/product/product.component.html","../../../../libs/sdk/src/pages/product/product.module.ts","../../../../libs/sdk/src/pages/record-not-found/record-not-found.component.ts","../../../../libs/sdk/src/pages/record-not-found/record-not-found.component.html","../../../../libs/sdk/src/pages/record-not-found/record-not-found.module.ts","../../../../libs/sdk/src/pages/remote/remote.component.ts","../../../../libs/sdk/src/pages/remote/remote.component.html","../../../../libs/sdk/src/pages/remote/remote.module.ts","../../../../libs/sdk/src/pages/shopping-cart/shopping-cart.component.ts","../../../../libs/sdk/src/pages/shopping-cart/shopping-cart.component.html","../../../../libs/sdk/src/pages/shopping-cart/shopping-cart.module.ts","../../../../libs/sdk/src/resolvers/flow.resolver.ts","../../../../libs/sdk/src/resolvers/quote.resolver.ts","../../../../libs/sdk/src/flow-routing.module.ts","../../../../libs/sdk/src/flow.module.ts","../../../../libs/sdk/veloceapps-sdk.ts"],"sourcesContent":["export const VELOCE_FLOW_ROOT_ROUTE = 'VELOCE_FLOW_ROOT_ROUTE';\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\nimport { FlowDialogConfig } from './dialog.types';\n\n@Component({\n selector: 'vl-flow-dialog',\n templateUrl: './dialog.component.html',\n styleUrls: ['./dialog.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FlowDialogComponent {\n public config: FlowDialogConfig;\n\n constructor(private dialogConfig: DynamicDialogConfig, private ref: DynamicDialogRef) {\n this.config = this.dialogConfig.data.config;\n }\n\n public cancelHandler(): void {\n if (this.config.oppositeButtonActions) {\n this.ref.close(true);\n } else {\n this.ref.close();\n }\n }\n\n public confirmHandler(): void {\n if (this.config.oppositeButtonActions) {\n this.ref.close();\n } else {\n this.ref.close(true);\n }\n }\n}\n","<div *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 { 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 } from '@angular/core';\nimport { UITemplatesApiService } from '@veloceapps/api';\nimport { ToastService, ToastType } from '@veloceapps/components';\nimport {\n ComponentAttachments,\n TemplateComponent,\n UITemplate,\n UITemplateComponentType,\n UITemplateType,\n} from '@veloceapps/core';\nimport { extendElementMetadata, extractElementMetadata } from '@veloceapps/sdk/cms';\nimport { ContextService, QuoteDraftService, UIDefinition } from '@veloceapps/sdk/core';\nimport { BehaviorSubject, catchError, first, map, Observable, of, Subject, switchMap, takeUntil, tap } from 'rxjs';\nimport { FlowDocGenService } from '../../services/doc-gen.service';\n\n@Component({\n selector: 'vl-flow-doc-gen',\n templateUrl: './doc-gen.component.html',\n styleUrls: ['./doc-gen.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DocGenComponent implements OnDestroy {\n public uiDefinition$ = new BehaviorSubject<UIDefinition | null>(null);\n public isVisible$: Observable<boolean>;\n\n private templateApiName = '';\n private destroy$ = new Subject<void>();\n\n constructor(\n private quoteDraftService: QuoteDraftService,\n private contextService: ContextService,\n private templatesApi: UITemplatesApiService,\n private docGenService: FlowDocGenService,\n private toastService: ToastService,\n ) {\n this.isVisible$ = this.docGenService.isVisible$;\n\n // initialize when quote draft requested\n this.quoteDraftService.quoteDraft$\n .pipe(\n first(),\n tap(() => this.initialize()),\n takeUntil(this.destroy$),\n )\n .subscribe();\n }\n\n public ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n private initialize(): void {\n this.templateApiName = this.contextService.resolve().properties.docGenTemplateApiName ?? '';\n\n this.generateUIDefinition$()\n .pipe(\n tap(uiDef => {\n if (!uiDef) {\n throw new Error(`Component with name '${this.templateApiName}' not found.`);\n }\n\n this.uiDefinition$.next(uiDef);\n }),\n catchError(err => {\n const message = 'Failed to resolve DocGen component. ' + (err.message ?? '');\n this.toastService.add({ severity: ToastType.error, summary: message, sticky: true });\n return of();\n }),\n takeUntil(this.destroy$),\n )\n .subscribe();\n }\n\n private getTemplateRootComponent$(template: UITemplate): Observable<TemplateComponent | undefined> {\n return this.templatesApi\n .fetchComponents$(template.id)\n .pipe(map(components => components.find(c => c.type === UITemplateComponentType.ROOT) ?? undefined));\n }\n\n private 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(meta => (meta ? of(meta) : this.getDocGenComponentMeta$())),\n map(meta => {\n if (!meta) {\n return;\n }\n\n const headerId = this.contextService.resolve().properties.Id ?? null;\n let script = meta.js;\n\n if (script) {\n const metadata = extractElementMetadata(script);\n script = extendElementMetadata(script, {\n inputs: {\n ...metadata.inputs,\n Id: headerId ? `\"${headerId}\"` : null,\n },\n });\n }\n\n const uiDef: UIDefinition = {\n name: '',\n createdTimestamp: 0,\n primary: true,\n type: 'DEFAULT',\n version: 2,\n children: [\n {\n children: [],\n template: meta.html && btoa(meta.html),\n script: script && btoa(script),\n styles: meta.css && btoa(meta.css),\n },\n ],\n };\n\n return uiDef;\n }),\n );\n }\n}\n","<ng-container *ngIf=\"isVisible$ | async\">\n <ng-container *ngIf=\"uiDefinition$ | async as uiDefinition\">\n <vl-cms-preview [uiDefinition]=\"uiDefinition\"></vl-cms-preview>\n </ng-container>\n</ng-container>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { PreviewModule } from '@veloceapps/sdk/cms';\nimport { DocGenComponent } from './doc-gen.component';\n\n@NgModule({\n declarations: [DocGenComponent],\n imports: [CommonModule, PreviewModule],\n exports: [DocGenComponent],\n})\nexport class DocGenModule {}\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.push(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.push(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\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 { ContextService } from '@veloceapps/sdk/core';\nimport { distinctUntilChanged, filter, map, Observable, 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(private router: Router, private route: ActivatedRoute, private contextService: ContextService) {\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.router.events.pipe(filter(e => e instanceof NavigationEnd)).subscribe(() => {\n this.urlHistory.push(this.router.url);\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, combineLatest, filter, map, Observable, Subject, 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 = 97;\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.controls[product.id];\n if (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 if (!this.form.controls[item.id]) {\n this.form.addControl(item.id, new FormControl(item.qty, []));\n } else {\n this.form.controls[item.id]?.setValue(item.qty);\n }\n\n if (!isEditMode || item.deleted || item.productId === lockedProductId) {\n this.form.controls[item.id].disable();\n } else {\n this.form.controls[item.id].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=\"navigation-settings-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-icon-close close-icon\" (click)=\"overlayPanel.hide()\"></i>\n </h2>\n\n <p-virtualScroller [value]=\"products\" scrollHeight=\"{{ scrollHeight }}px\" [itemSize]=\"productRowHeight\">\n <ng-template pTemplate=\"header\">\n <div class=\"product header\">\n <span>Product</span>\n <span class=\"text-right\">Qty</span>\n </div>\n </ng-template>\n\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\" [class.line-through]=\"product.deleted\">{{ product.name }}</div>\n <div *ngIf=\"!isReadonlyProduct\">\n <p-button\n label=\"Configure\"\n [disabled]=\"isLockedProduct || !product.configurable || product.hasTerm\"\n styleClass=\"p-button-link p-button-sm p-2 pl-0\"\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-danger p-2 pr-0\"\n (onClick)=\"deleteHandler(product)\"\n ></p-button>\n </div>\n </div>\n </div>\n\n <ng-container *ngIf=\"form.controls[product.id] as control\">\n <span class=\"pt-2\" *ngIf=\"!isReadonlyProduct; else readonlyQty\">\n <p-inputNumber\n class=\"qty-control\"\n [formControl]=\"$any(control)\"\n [min]=\"1\"\n [required]=\"true\"\n (onBlur)=\"controlBlurHandler(product)\"\n ></p-inputNumber>\n </span>\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-icon-no-image no-image-icon\"></i>\n </ng-template>\n\n <div class=\"flex justify-content-end footer\">\n <p-button\n label=\"Clear cart\"\n styleClass=\"p-button-link p-button-sm p-button-danger 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-icon-close close-icon\" (click)=\"overlayPanel.hide()\"></i>\n </h2>\n\n <span class=\"empty-state\">There are no products added to the Shopping Cart yet.</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 } 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 ],\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: true,\n header: config.title,\n width: '440px',\n data: { config },\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} 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 sidebarVisible = false;\n public searchControl: FormControl = new FormControl('');\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 ) {}\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 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 resetToDefault(): void {\n this.collectAvailableMetrics(true);\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)=\"overlayPanel.toggle($event)\">\n <div *ngFor=\"let metric of visibleSelectedMetrics\" class=\"metric\">\n <span class=\"name\" [vlHiddenTextTooltip]=\"metric.name\" tooltipStyleClass=\"metric-tooltip\" tooltipPosition=\"bottom\">\n {{ metric.name }}\n </span>\n <span class=\"filler\"></span>\n <span\n class=\"value\"\n vlHiddenTextTooltip=\"${{ getMetricValue(metric.key) | number: '1.2-2' }}\"\n tooltipStyleClass=\"metric-tooltip\"\n tooltipPosition=\"bottom\"\n >\n ${{ getMetricValue(metric.key) | number: '1.2-2' }}\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 | number: '1.2-2' }}\"\n tooltipStyleClass=\"metric-tooltip\"\n tooltipPosition=\"bottom\"\n >\n ${{ metric.value | number: '1.2-2' }}\n </span>\n </div>\n </ng-container>\n</div>\n\n<p-overlayPanel\n styleClass=\"metrics-overlay-container center 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) | number: '1.2-2' }}\"\n tooltipStyleClass=\"metric-tooltip\"\n tooltipPosition=\"bottom\"\n >\n ${{ getMetricValue(metric.key) | number: '1.2-2' }}\n </span>\n </div>\n </div>\n <button class=\"config\" (click)=\"openSidebar()\">\n Metrics Config\n <i class=\"vl-icon vl-icon-chevron-down\"></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: '360px' }\"\n>\n <div class=\"container\">\n <div class=\"header\">\n Quote Metrics Config\n <i class=\"vl-icon vl-icon-close\" (click)=\"closeSidebar()\"></i>\n </div>\n\n <div class=\"search-container\">\n <input\n data-test-id=\"search\"\n [formControl]=\"searchControl\"\n pInputText\n placeholder=\"Search for metric…\"\n class=\"w-full\"\n />\n </div>\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-icon-reorder\" 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-icon-checkmark\"\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 *ngIf=\"editingMetric?.key !== metric.key\" (click)=\"editMetric(metric)\" class=\"action edit\">\n <i class=\"vl-icon vl-icon-edit-sm\"></i>\n </div>\n <div *ngIf=\"editingMetric?.key === metric.key\" (click)=\"saveMetric()\" class=\"action save\">\n <i class=\"vl-icon vl-icon-checkmark\"></i>\n </div>\n</ng-template>\n","import { ChangeDetectionStrategy, Component, OnDestroy, OnInit } from '@angular/core';\nimport { QuoteApiService, SalesforceApiService, ShoppingCartSettingsApiService } from '@veloceapps/api';\nimport {\n ConfigurationContextMode,\n ContextProperties,\n getSupportedDateFormats,\n LineItem,\n PriceList,\n SearchRequest,\n VlWindow,\n} from '@veloceapps/core';\nimport { IntegrationState, OpenDocGenAction } from '@veloceapps/sdk/cms';\nimport { ContextService, FlowConfigurationService, QuoteDraftService } from '@veloceapps/sdk/core';\nimport { MenuItem } from 'primeng/api';\nimport {\n BehaviorSubject,\n combineLatest,\n distinctUntilChanged,\n filter,\n finalize,\n first,\n map,\n noop,\n Observable,\n of,\n Subject,\n switchMap,\n take,\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 private shoppingCartSettingsApiService: ShoppingCartSettingsApiService,\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 this.shoppingCartSettingsApiService\n .getSettingsMap()\n .pipe(take(1))\n .subscribe(settings => {\n this.dateFormat = getSupportedDateFormats(settings.DATE_FORMAT ?? this.dateFormat).datePipeFormat;\n });\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: '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(OpenDocGenAction())),\n )\n .subscribe();\n }\n\n public saveButtonClickHandler(isCartRoute: boolean): 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$().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 if (!this.isReadonlyMode()) {\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 lineItems.filter(li => li.status !== 'EXIST' || (li.assetId && modifiedAssets?.[li.assetId])),\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 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 = lineItems.find(sub => sub.rampInstanceId === li.id);\n }\n\n if (target && target.productId) {\n return [\n ...result,\n {\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\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-arrow-left\"></i>\n\n <span> Back to {{ objectName$ | async | titlecase }}</span>\n </nav>\n\n <ng-container *ngIf=\"isAccountMode$ | async\">\n <span class=\"dot-separator\"></span>\n\n <nav class=\"account-name\" [pTooltip]=\"contextProperties.Name ?? ''\" tooltipPosition=\"bottom\" [showDelay]=\"1000\">\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=\"dot-separator\"></span>\n\n <span>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-icon-chevron-down icon-with-margin\"></i>\n <i *ngIf=\"quoteDetails.overlayVisible\" class=\"vl-icon vl-icon-chevron-up icon-with-margin\"></i>\n </nav>\n\n <p-overlayPanel styleClass=\"navigation-settings-overlay flow-header-overlay center\" #quoteDetails>\n <ng-template pTemplate>\n <div class=\"flow-header-overlay__wrapper\">\n <h2 class=\"flow-header-overlay__title\">\n <span>Quote Information</span>\n <i class=\"vl-icon vl-icon-close close-icon\" (click)=\"quoteDetails.hide()\"></i>\n </h2>\n\n <ul class=\"info-list\">\n <li class=\"info-list__row\">\n <span>Account Name:</span>\n <a target=\"_blank\" [href]=\"getSalesforceObjectLink(details.accountId)\">\n <span>{{ details.accountName }}</span>\n </a>\n </li>\n <li class=\"info-list__row\">\n <span>Opportunity Name:</span>\n <a target=\"_blank\" [href]=\"getSalesforceObjectLink(details.opportunityId)\">\n <span>{{ details.opportunityName }}</span>\n </a>\n </li>\n <li class=\"info-list__row\">\n <span>Quote Name:</span>\n <a target=\"_blank\" [href]=\"getSalesforceObjectLink(details.quoteId)\">\n <span>{{ details.quoteName }}</span>\n </a>\n </li>\n <li class=\"info-list__row\">\n <span>Quote Number:</span>\n <a target=\"_blank\" [href]=\"getSalesforceObjectLink(details.quoteId)\">\n <span>{{ details.quoteNumber }}</span>\n </a>\n </li>\n </ul>\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 [ngClass]=\"{ active: (isAssetsRoute$ | async), disabled: isReadonlyMode }\"\n (click)=\"navigateToAssets()\"\n >\n Assets ({{ assetsCount$ | async }})\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 class=\"nav-item disabled\" [ngClass]=\"{ active: isConfigurationRoute$ | async }\">Configurator</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 ({{ products.length }})\n </nav>\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-icon-chevron-down icon-with-margin\"></i>\n <i *ngIf=\"cart?.overlayPanel?.overlayVisible\" class=\"vl-icon vl-icon-chevron-up icon-with-margin\"></i>\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>\n <ng-container *vlLet=\"assetPriceLists$ | async as assetPriceLists\">\n <ng-container *ngIf=\"(isAccountMode$ | async) && assetPriceLists.length > 1; else singlePriceList\">\n <nav class=\"nav-item\" (click)=\"priceListsOverlay?.toggle($event)\">\n <span>{{ priceList?.name }}</span>\n <i\n *ngIf=\"!priceListsOverlay?.overlayVisible\"\n class=\"vl-icon vl-icon-chevron-down icon-with-margin\"\n ></i>\n <i *ngIf=\"priceListsOverlay?.overlayVisible\" class=\"vl-icon vl-icon-chevron-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 <p-button\n class=\"doc-gen-button\"\n icon=\"vl-icon vl-icon-doc-gen\"\n [disabled]=\"isReadonlyMode\"\n (onClick)=\"docGenButtonClickHandler(isCartRoute)\"\n pTooltip=\"Generate Document\"\n tooltipPosition=\"bottom\"\n tooltipStyleClass=\"vl-info-tooltip\"\n ></p-button>\n\n <ng-container *vlLet=\"isSaveInProgress$ | async as isSaveInProgress\">\n <ng-container *vlLet=\"isSubmitInProgress$ | async as isSubmitInProgress\">\n <p-splitButton\n *ngIf=\"!isSaveInProgress && !isSubmitInProgress\"\n label=\"Save to Quote\"\n (onClick)=\"saveButtonClickHandler(isCartRoute)\"\n [model]=\"getSplitButtonActions(isCartRoute)\"\n [disabled]=\"isReadonlyMode\"\n styleClass=\"p-button-outlined\"\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 { 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 ],\n exports: [MetricsComponent],\n})\nexport class MetricsModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { LetDirectiveModule } from '@veloceapps/components';\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 ],\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 { map, of, Subject, switchMap, takeUntil, tap } from 'rxjs';\nimport { FlowRouterService } from './flow-router.service';\n\n@Injectable()\nexport class FlowService {\n private cleanup$ = new Subject<void>();\n\n constructor(\n private integrationState: IntegrationState,\n private flowRouterService: FlowRouterService,\n private quoteDraftService: QuoteDraftService,\n private configurationService: ConfigurationService,\n private flowConfigurationService: FlowConfigurationService,\n ) {}\n\n public initSubscriptions(): void {\n this.integrationState\n .listen$<{ lineItemId?: string; productId?: string }>(FlowAction.FLOW_CONFIGURE_PRODUCT)\n .pipe(\n tap(payload => {\n const productId =\n payload.productId ??\n this.quoteDraftService.currentState.find(li => li.id === payload.lineItemId)?.productId;\n\n if (productId) {\n this.flowRouterService.navigateToProductConfiguration(productId, payload.lineItemId);\n } else {\n console.warn(\"Parameter 'productId' is needed to start configuration\");\n }\n }),\n takeUntil(this.cleanup$),\n )\n .subscribe();\n\n this.integrationState\n .listen$<{ id: string }>(FlowAction.FLOW_SWITCH_OBJECT)\n .pipe(\n tap(payload => {\n this.flowRouterService.switchObject(payload.id);\n }),\n takeUntil(this.cleanup$),\n )\n .subscribe();\n\n this.integrationState\n .listen$(FlowAction.FLOW_NAVIGATE_BACK)\n .pipe(\n tap(() => this.flowRouterService.navigateBack()),\n takeUntil(this.cleanup$),\n )\n .subscribe();\n\n this.integrationState\n .listen$(FlowAction.FLOW_NAVIGATE_TO_CATALOG)\n .pipe(\n tap(() => this.flowRouterService.navigateToCatalog()),\n takeUntil(this.cleanup$),\n )\n .subscribe();\n\n this.integrationState\n .listen$(FlowAction.FLOW_APPLY_PRODUCT_CONFIGURATION)\n .pipe(\n switchMap(() => {\n const quoteDraft = this.quoteDraftService.quoteDraft;\n const lineItem = this.configurationService.getSnapshot();\n\n if (!quoteDraft || !lineItem) {\n return of(undefined);\n }\n\n const isNewLineItem = quoteDraft.currentState.every(li => li.id !== lineItem.id);\n\n let updatedState: LineItem[];\n if (isNewLineItem) {\n updatedState = [...quoteDraft.currentState, lineItem];\n } else {\n updatedState = quoteDraft.currentState.map(li => (li.id === lineItem.id ? lineItem : li));\n }\n\n return this.flowConfigurationService.calculate$({ ...quoteDraft, currentState: updatedState });\n }),\n tap(() => {\n this.configurationService.hasUnsavedChanges = false;\n this.flowRouterService.navigateToShoppingCart();\n }),\n takeUntil(this.cleanup$),\n )\n .subscribe();\n\n this.updateFlowPath();\n }\n\n public cleanup(): void {\n this.cleanup$.next();\n }\n\n private updateFlowPath(): void {\n this.flowRouterService\n .getFlowSubpath$()\n .pipe(\n map(path => path.split('/')?.[0]),\n takeUntil(this.cleanup$),\n )\n .subscribe(flowPath => this.integrationState.patchState({ flowPath }));\n }\n}\n","import { ChangeDetectionStrategy, Component, OnDestroy, OnInit } from '@angular/core';\nimport { IntegrationState } from '@veloceapps/sdk/cms';\nimport { QuoteDraftService } from '@veloceapps/sdk/core';\nimport { map, Observable } from 'rxjs';\nimport { FlowService } from './services';\nimport { FlowDocGenService } from './services/doc-gen.service';\nimport { FlowRouterService } from './services/flow-router.service';\n\n@Component({\n selector: 'vl-flow',\n templateUrl: './flow.component.html',\n styleUrls: ['./flow.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FlowComponent implements OnInit, OnDestroy {\n public isLoading$: Observable<boolean>;\n public showHeader$: Observable<boolean>;\n public isStandalone$: Observable<boolean>;\n\n constructor(\n private routerService: FlowRouterService,\n private quoteDraftService: QuoteDraftService,\n private flowService: FlowService,\n private docGenService: FlowDocGenService,\n private integrationState: IntegrationState,\n ) {\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</div>\n\n<ng-container *vlLet=\"isStandalone$ | async as isStandalone\">\n <vl-flow-doc-gen *ngIf=\"!isStandalone\"></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 { ConfigurationContext, ConfigurationContextMode, RpcMessage, VlWindow } from '@veloceapps/core';\nimport { ContextService } from '@veloceapps/sdk/core';\nimport { catchError, from, 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 private router: Router,\n private routerService: FlowRouterService,\n private contextService: ContextService,\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\n return this.contextService.create(headerId, mode).pipe(\n tap((context: ConfigurationContext) => {\n // Update context with queryParams\n this.contextService.update({\n ...context,\n properties: {\n ...context.properties,\n ...(queryParams ?? {}),\n ...getDefaultProperties({ mode }),\n },\n });\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 { map, Observable, 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 { InjectionToken } from '@angular/core';\nimport { TemplateComponentWithAttachments, UIDefinition as LegacyUIDefinition } from '@veloceapps/core';\nimport { UIDefinition } from '@veloceapps/sdk/core';\nimport { Observable } from 'rxjs';\n\nexport const FLOW_CUSTOMIZATION = new InjectionToken<FlowCustomization>('FLOW_CUSTOMIZATION');\n\nexport interface FlowCustomization {\n getUiDefinition?(productId: string): Observable<UIDefinition | null>;\n getLegacyUiDefinition?(productId: string): Observable<LegacyUIDefinition | null>;\n getShoppingCartComponent?(templateName: string): Observable<TemplateComponentWithAttachments | null>;\n getCatalogComponent?(templateName: string): Observable<TemplateComponentWithAttachments | null>;\n getAssetsComponent?(templateName: string): Observable<TemplateComponentWithAttachments | null>;\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, TemplateComponent, UITemplate, UITemplateComponentType } from '@veloceapps/core';\nimport { ContextService, UIDefinition } from '@veloceapps/sdk/core';\nimport { BehaviorSubject, catchError, map, Observable, of, Subject, switchMap, takeUntil, tap } from 'rxjs';\nimport { FlowCustomization, FLOW_CUSTOMIZATION } 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 { ComponentAttachments, TemplateComponent, UITemplate, UITemplateComponentType } from '@veloceapps/core';\nimport { ContextService, UIDefinition } from '@veloceapps/sdk/core';\nimport { BehaviorSubject, catchError, map, Observable, of, Subject, switchMap, takeUntil, tap } from 'rxjs';\nimport { FlowCustomization, FLOW_CUSTOMIZATION } 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 { map, Observable, 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 = getFlowObjectIdPropertyName(id);\n\n if (!id || !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, of, Subject } from 'rxjs';\nimport { first, map, switchMap, take, takeUntil } from 'rxjs/operators';\nimport { FlowCustomization, FLOW_CUSTOMIZATION } 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(uiDef => ({\n ...context,\n uiDefinition: uiDef ?? context.uiDefinition,\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 { TooltipModule } from 'ngx-bootstrap/tooltip';\nimport { LegacyProductComponent } from './legacy-product.component';\n\n@NgModule({\n declarations: [LegacyProductComponent],\n imports: [CommonModule, RuntimeModule, TooltipModule.forRoot()],\n exports: [LegacyProductComponent],\n})\nexport class LegacyProductModule {}\n","import { ChangeDetectionStrategy, Component, Inject, OnDestroy, OnInit, Optional } from '@angular/core';\nimport { QuoteDraft } from '@veloceapps/core';\nimport {\n ConfigurationRuntimeService,\n ConfigurationService,\n ContextService,\n QuoteDraftService,\n UIDefinition,\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 { FlowCustomization, FLOW_CUSTOMIZATION } from '../../types/flow-customization.types';\n\ninterface State {\n loading: boolean;\n failure: boolean;\n}\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 implements OnInit, OnDestroy {\n private destroy$ = new Subject<void>();\n\n public uiDefinition?: UIDefinition;\n public state$ = new BehaviorSubject<State>({ loading: true, failure: false });\n\n constructor(\n private contextService: ContextService,\n private runtimeService: ConfigurationRuntimeService,\n private configurationService: ConfigurationService,\n private quoteDraftService: QuoteDraftService,\n private messageService: MessageService,\n @Optional() @Inject(FLOW_CUSTOMIZATION) private customizationService?: FlowCustomization,\n ) {}\n\n public ngOnInit(): void {\n this.quoteDraftService.quoteDraft$.pipe(first(), takeUntil(this.destroy$)).subscribe(quote => this.init(quote));\n }\n\n public ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n private customize(productId: string): Observable<any> {\n if (!this.customizationService?.getUiDefinition) {\n return of(null);\n }\n\n return this.customizationService.getUiDefinition(productId).pipe(\n tap(uiDef => {\n if (uiDef) {\n this.uiDefinition = uiDef;\n this.runtimeService.uiDefinitionProperties = uiDef.properties ?? {};\n }\n }),\n );\n }\n\n private init(quote: QuoteDraft): void {\n const contextProperties = this.contextService.resolve().properties;\n const productId = contextProperties.productId;\n\n if (!productId) {\n return;\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 this.runtimeService\n .init({ productId, offeringId })\n .pipe(\n tap(context => (this.uiDefinition = context?.uiDefinition)),\n switchMap(() => this.customize(productId)),\n this.throwIfNoUIDefinition(),\n switchMap(() => this.configurationService.configure()),\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.destroy$),\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 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","<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 { 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 { QuoteApiService } from '@veloceapps/api';\nimport {\n ChargeGroupItem,\n ContextProperties,\n LineItem,\n RpcMessage,\n RpcOption,\n RpcOptionConfiguration,\n RpcProduct,\n RpcQuote,\n UUID,\n VlWindow,\n} from '@veloceapps/core';\nimport { FlowAction, IntegrationState } from '@veloceapps/sdk/cms';\nimport {\n ConfigurationRuntimeService,\n ConfigurationService,\n ContextService,\n QuoteDraftService,\n RuntimeContext,\n UIDefinition,\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 quoteApiService: QuoteApiService,\n private runtimeService: ConfigurationRuntimeService,\n private configurationService: ConfigurationService,\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 pricingEnabled = context?.uiDefinition?.properties?.pricingEnabled ? 'true' : 'false';\n const priceListId = context?.uiDefinition?.properties?.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.uiDefinition = context?.uiDefinition;\n\n this.configurationService.setConfigurableRamp(this.createLineItem());\n }),\n this.throwIfNoUIDefinition(),\n switchMap(() => this.configurationService.configure()),\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 { ComponentAttachments, TemplateComponent, UITemplate, UITemplateComponentType } from '@veloceapps/core';\nimport { ContextService, UIDefinition } from '@veloceapps/sdk/core';\nimport { BehaviorSubject, catchError, map, Observable, of, Subject, switchMap, takeUntil, tap } from 'rxjs';\nimport { FlowCustomization, FLOW_CUSTOMIZATION } 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: (): any => DebugModule,\n },\n {\n path: '404',\n loadChildren: (): any => RecordNotFoundModule,\n },\n ],\n};\n\n@NgModule({\n imports: [\n RouterModule.forChild([rootRoute]),\n ProductModule,\n LegacyProductModule,\n ShoppingCartModule,\n CatalogModule,\n AssetsModule,\n RemoteModule,\n EmptyAccountModule,\n ],\n exports: [RouterModule],\n providers: [FlowRouterService, RootGuard, ContextGuard, ProductUnloadGuard, FlowResolver, QuoteResolver],\n})\nexport class FlowRoutingModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ApiModule } from '@veloceapps/api';\nimport { LetDirectiveModule, LoaderModule } from '@veloceapps/components';\nimport { LauncherModule } from '@veloceapps/sdk/cms';\nimport { SdkCoreModule } from '@veloceapps/sdk/core';\nimport { FlowDialogModule } from './components/dialog/dialog.module';\nimport { DocGenModule } from './components/doc-gen/doc-gen.module';\nimport { 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';\n\n@NgModule({\n declarations: [FlowComponent],\n imports: [\n CommonModule,\n FlowRoutingModule,\n ApiModule,\n LauncherModule,\n LoaderModule,\n FlowHeaderModule,\n FlowDialogModule,\n SdkCoreModule,\n DocGenModule,\n LetDirectiveModule,\n ],\n providers: [FlowService, FlowDialogService, FlowDocGenService],\n})\nexport class FlowModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i0","i2","i3","Component","ChangeDetectionStrategy","CommonModule","ButtonModule","NgModule","Subject","BehaviorSubject","FlowAction","tap","takeUntil","Injectable","first","catchError","ToastType","of","map","UITemplateComponentType","UITemplateType","switchMap","extractElementMetadata","extendElementMetadata","i3.FlowDocGenService","i4","i5","i6","PreviewModule","filter","NavigationEnd","shareReplay","startWith","NavigationStart","NavigationCancel","NavigationError","distinctUntilChanged","SalesforceIdUtils","FormGroup","combineLatest","FormControl","i2.FlowRouterService","OverlayPanel","i7","i8","i9","i10","ViewChild","Input","ReactiveFormsModule","OverlayPanelModule","LetDirectiveModule","InputNumberModule","VirtualScrollerModule","requiredValidator","invalidCharactersValidator","standardCharSetWithSpaceRegExp","reservedIdentifierValidator","Validators","withLatestFrom","cloneDeep","moveItemInArray","uniq","i11","i12","ConfigurationContextMode","take","getSupportedDateFormats","OpenDocGenAction","finalize","noop","i3.FlowRouterService","i4.FlowDialogService","i7.CartPreviewComponent","i8.MetricsComponent","i13","i14","FormsModule","DragDropModule","SidebarModule","InputTextModule","CheckboxModule","ErrorTooltipModule","HiddenTextTooltipModule","TooltipModule","SplitButtonModule","i1.FlowRouterService","i3.FlowService","i4.FlowDocGenService","i6.FlowHeaderComponent","i8.DocGenComponent","HttpErrorResponse","from","i3.FlowDialogService","InjectionToken","Optional","Inject","LoaderModule","routes","RadioButtonModule","DropdownModule","RouterModule","EmptyStateModule","EntityUtil","RuntimeOperation","RuntimeModule","throwError","UUID","generateModifiedAssetsMap","ApiModule","LauncherModule","SdkCoreModule"],"mappings":"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"}
|