@veloceapps/sdk 5.0.13-0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -0
- package/bundles/veloceapps-sdk-cms.umd.js +1975 -0
- package/bundles/veloceapps-sdk-cms.umd.js.map +1 -0
- package/bundles/veloceapps-sdk-core.umd.js +1610 -0
- package/bundles/veloceapps-sdk-core.umd.js.map +1 -0
- package/bundles/veloceapps-sdk-runtime.umd.js +4349 -0
- package/bundles/veloceapps-sdk-runtime.umd.js.map +1 -0
- package/bundles/veloceapps-sdk.umd.js +3307 -0
- package/bundles/veloceapps-sdk.umd.js.map +1 -0
- package/cms/cms.actions.d.ts +28 -0
- package/cms/cms.default.d.ts +5 -0
- package/cms/cms.elements.d.ts +4 -0
- package/cms/components/element-children/element-children.component.d.ts +10 -0
- package/cms/components/element-children/element-children.module.d.ts +8 -0
- package/cms/components/element-renderer/element-renderer.component.d.ts +36 -0
- package/cms/components/element-renderer/element-renderer.module.d.ts +7 -0
- package/cms/components/element.component.d.ts +17 -0
- package/cms/components/index.d.ts +1 -0
- package/cms/components/plugin.component.d.ts +15 -0
- package/cms/components/preview/index.d.ts +2 -0
- package/cms/components/preview/preview.component.d.ts +34 -0
- package/cms/components/preview/preview.module.d.ts +11 -0
- package/cms/decorators/element.decorator.d.ts +2 -0
- package/cms/decorators/index.d.ts +1 -0
- package/cms/directives/custom-template.directive.d.ts +12 -0
- package/cms/engine/models/entity.d.ts +11 -0
- package/cms/engine/models/plugin.d.ts +5 -0
- package/cms/index.d.ts +11 -0
- package/cms/injection-tokens.d.ts +11 -0
- package/cms/launcher.module.d.ts +10 -0
- package/cms/modules/federated/default-options.d.ts +4 -0
- package/cms/modules/federated/export.d.ts +1 -0
- package/cms/modules/federated/federated.component.d.ts +26 -0
- package/cms/modules/federated/federated.module.d.ts +9 -0
- package/cms/modules/federated/federated.types.d.ts +30 -0
- package/cms/modules/federated/federated.utils.d.ts +1 -0
- package/cms/package.json +10 -0
- package/cms/plugins/configuration.plugin.d.ts +23 -0
- package/cms/plugins/io.plugin.d.ts +9 -0
- package/cms/plugins/script.plugin.d.ts +13 -0
- package/cms/services/dynamic-module.service.d.ts +15 -0
- package/cms/services/element-context.service.d.ts +8 -0
- package/cms/services/index.d.ts +3 -0
- package/cms/services/integration.state.d.ts +17 -0
- package/cms/services/io-provider.service.d.ts +15 -0
- package/cms/services/launcher.service.d.ts +18 -0
- package/cms/services/templates.service.d.ts +14 -0
- package/cms/types/common.types.d.ts +108 -0
- package/cms/types/compilation.types.d.ts +6 -0
- package/cms/types/configuration.types.d.ts +20 -0
- package/cms/types/elements.types.d.ts +2 -0
- package/cms/types/index.d.ts +7 -0
- package/cms/types/integration.types.d.ts +4 -0
- package/cms/types/metrics.types.d.ts +5 -0
- package/cms/types/path.types.d.ts +11 -0
- package/cms/utils/element.utils.d.ts +17 -0
- package/cms/utils/elements-resolver.d.ts +24 -0
- package/cms/utils/index.d.ts +3 -0
- package/cms/utils/path.utils.d.ts +5 -0
- package/cms/veloceapps-sdk-cms.d.ts +5 -0
- package/cms/vendor-map.d.ts +708 -0
- package/core/core.module.d.ts +8 -0
- package/core/index.d.ts +6 -0
- package/core/modules/configuration/configuration.module.d.ts +7 -0
- package/core/modules/configuration/helpers.d.ts +3 -0
- package/core/modules/configuration/index.d.ts +4 -0
- package/core/modules/configuration/services/configuration-runtime.service.d.ts +29 -0
- package/core/modules/configuration/services/configuration.service.d.ts +45 -0
- package/core/modules/configuration/services/runtime-context.service.d.ts +12 -0
- package/core/modules/configuration/types/configuration-runtime.types.d.ts +7 -0
- package/core/modules/flow-configuration/flow-configuration.module.d.ts +6 -0
- package/core/modules/flow-configuration/index.d.ts +4 -0
- package/core/modules/flow-configuration/services/flow-configuration.service.d.ts +38 -0
- package/core/modules/flow-configuration/services/flow-update.service.d.ts +12 -0
- package/core/modules/flow-configuration/types/update.types.d.ts +12 -0
- package/core/modules/index.d.ts +2 -0
- package/core/package.json +10 -0
- package/core/services/context.service.d.ts +18 -0
- package/core/services/index.d.ts +3 -0
- package/core/services/product-images.service.d.ts +12 -0
- package/core/services/quote-draft.service.d.ts +62 -0
- package/core/types/index.d.ts +3 -0
- package/core/types/quote-states.types.d.ts +6 -0
- package/core/types/runtime.types.d.ts +31 -0
- package/core/types/ui-definition.types.d.ts +26 -0
- package/core/utils/index.d.ts +2 -0
- package/core/utils/line-item.utils.d.ts +26 -0
- package/core/utils/line-item.worker.d.ts +12 -0
- package/core/veloceapps-sdk-core.d.ts +5 -0
- package/esm2015/cms/cms.actions.js +47 -0
- package/esm2015/cms/cms.default.js +6 -0
- package/esm2015/cms/cms.elements.js +29 -0
- package/esm2015/cms/components/element-children/element-children.component.js +23 -0
- package/esm2015/cms/components/element-children/element-children.module.js +18 -0
- package/esm2015/cms/components/element-renderer/element-renderer.component.js +169 -0
- package/esm2015/cms/components/element-renderer/element-renderer.module.js +16 -0
- package/esm2015/cms/components/element.component.js +44 -0
- package/esm2015/cms/components/index.js +2 -0
- package/esm2015/cms/components/plugin.component.js +16 -0
- package/esm2015/cms/components/preview/index.js +3 -0
- package/esm2015/cms/components/preview/preview.component.js +108 -0
- package/esm2015/cms/components/preview/preview.module.js +23 -0
- package/esm2015/cms/decorators/element.decorator.js +6 -0
- package/esm2015/cms/decorators/index.js +2 -0
- package/esm2015/cms/directives/custom-template.directive.js +25 -0
- package/esm2015/cms/engine/models/entity.js +18 -0
- package/esm2015/cms/engine/models/plugin.js +6 -0
- package/esm2015/cms/index.js +11 -0
- package/esm2015/cms/injection-tokens.js +8 -0
- package/esm2015/cms/launcher.module.js +23 -0
- package/esm2015/cms/modules/federated/default-options.js +5 -0
- package/esm2015/cms/modules/federated/export.js +2 -0
- package/esm2015/cms/modules/federated/federated.component.js +82 -0
- package/esm2015/cms/modules/federated/federated.module.js +19 -0
- package/esm2015/cms/modules/federated/federated.types.js +2 -0
- package/esm2015/cms/modules/federated/federated.utils.js +37 -0
- package/esm2015/cms/plugins/configuration.plugin.js +98 -0
- package/esm2015/cms/plugins/io.plugin.js +37 -0
- package/esm2015/cms/plugins/script.plugin.js +66 -0
- package/esm2015/cms/services/dynamic-module.service.js +33 -0
- package/esm2015/cms/services/element-context.service.js +10 -0
- package/esm2015/cms/services/index.js +4 -0
- package/esm2015/cms/services/integration.state.js +40 -0
- package/esm2015/cms/services/io-provider.service.js +51 -0
- package/esm2015/cms/services/launcher.service.js +57 -0
- package/esm2015/cms/services/templates.service.js +31 -0
- package/esm2015/cms/types/common.types.js +2 -0
- package/esm2015/cms/types/compilation.types.js +2 -0
- package/esm2015/cms/types/configuration.types.js +2 -0
- package/esm2015/cms/types/elements.types.js +2 -0
- package/esm2015/cms/types/index.js +8 -0
- package/esm2015/cms/types/integration.types.js +2 -0
- package/esm2015/cms/types/metrics.types.js +2 -0
- package/esm2015/cms/types/path.types.js +2 -0
- package/esm2015/cms/utils/element.utils.js +161 -0
- package/esm2015/cms/utils/elements-resolver.js +147 -0
- package/esm2015/cms/utils/index.js +4 -0
- package/esm2015/cms/utils/path.utils.js +67 -0
- package/esm2015/cms/veloceapps-sdk-cms.js +5 -0
- package/esm2015/cms/vendor-map.js +34 -0
- package/esm2015/core/core.module.js +18 -0
- package/esm2015/core/index.js +7 -0
- package/esm2015/core/modules/configuration/configuration.module.js +34 -0
- package/esm2015/core/modules/configuration/helpers.js +10 -0
- package/esm2015/core/modules/configuration/index.js +5 -0
- package/esm2015/core/modules/configuration/services/configuration-runtime.service.js +92 -0
- package/esm2015/core/modules/configuration/services/configuration.service.js +173 -0
- package/esm2015/core/modules/configuration/services/runtime-context.service.js +51 -0
- package/esm2015/core/modules/configuration/types/configuration-runtime.types.js +2 -0
- package/esm2015/core/modules/flow-configuration/flow-configuration.module.js +18 -0
- package/esm2015/core/modules/flow-configuration/index.js +5 -0
- package/esm2015/core/modules/flow-configuration/services/flow-configuration.service.js +135 -0
- package/esm2015/core/modules/flow-configuration/services/flow-update.service.js +129 -0
- package/esm2015/core/modules/flow-configuration/types/update.types.js +2 -0
- package/esm2015/core/modules/index.js +3 -0
- package/esm2015/core/services/context.service.js +50 -0
- package/esm2015/core/services/index.js +4 -0
- package/esm2015/core/services/product-images.service.js +30 -0
- package/esm2015/core/services/quote-draft.service.js +207 -0
- package/esm2015/core/types/index.js +4 -0
- package/esm2015/core/types/quote-states.types.js +2 -0
- package/esm2015/core/types/runtime.types.js +16 -0
- package/esm2015/core/types/ui-definition.types.js +2 -0
- package/esm2015/core/utils/index.js +3 -0
- package/esm2015/core/utils/line-item.utils.js +100 -0
- package/esm2015/core/utils/line-item.worker.js +19 -0
- package/esm2015/core/veloceapps-sdk-core.js +5 -0
- package/esm2015/index.js +2 -0
- package/esm2015/runtime/components/component-preview/component-preview.component.js +125 -0
- package/esm2015/runtime/components/index.js +5 -0
- package/esm2015/runtime/components/section-renderer/section-renderer.component.js +71 -0
- package/esm2015/runtime/components/ui-runtime/runtime.component.js +429 -0
- package/esm2015/runtime/components/ui-runtime-preview/runtime-preview.component.js +109 -0
- package/esm2015/runtime/execution/components/children-placeholder/children-placeholder.component.js +68 -0
- package/esm2015/runtime/execution/components/context-provider/context-provider.component.js +36 -0
- package/esm2015/runtime/execution/components/execution-section-renderer/execution-section-renderer.component.js +72 -0
- package/esm2015/runtime/execution/components/federated/federated.component.js +81 -0
- package/esm2015/runtime/execution/components/velo-attribute/velo-attribute.component.js +65 -0
- package/esm2015/runtime/execution/components/velo-multiselect/velo-multiselect.component.js +136 -0
- package/esm2015/runtime/execution/components/velo-port-checkbox/velo-port-checkbox.component.js +80 -0
- package/esm2015/runtime/execution/components/velo-port-dropdown/velo-port-dropdown.component.js +101 -0
- package/esm2015/runtime/execution/components/velo-port-radio/velo-port-radio.component.js +150 -0
- package/esm2015/runtime/execution/components/velo-type/velo-type.component.js +121 -0
- package/esm2015/runtime/execution/directives/section-script.directive.js +242 -0
- package/esm2015/runtime/execution/directives/sf-query.directive.js +34 -0
- package/esm2015/runtime/execution/directives/velo-attribute.directive.js +86 -0
- package/esm2015/runtime/execution/directives/velo-port.directive.js +373 -0
- package/esm2015/runtime/execution/directives/vl-approval.directive.js +22 -0
- package/esm2015/runtime/execution/directives/vl-document-attachments.directive.js +35 -0
- package/esm2015/runtime/execution/directives/vl-document-templates.directive.js +59 -0
- package/esm2015/runtime/execution/directives/vl-quote.directive.js +41 -0
- package/esm2015/runtime/execution/directives/vl-ramp.directive.js +51 -0
- package/esm2015/runtime/execution/runtime-execution.module.js +163 -0
- package/esm2015/runtime/execution/utils/federated.util.js +37 -0
- package/esm2015/runtime/index.js +5 -0
- package/esm2015/runtime/runtime.module.js +104 -0
- package/esm2015/runtime/services/cart.service.js +27 -0
- package/esm2015/runtime/services/collapsible-state.service.js +34 -0
- package/esm2015/runtime/services/configuration.service.js +102 -0
- package/esm2015/runtime/services/current-state.service.js +17 -0
- package/esm2015/runtime/services/form-scope.service.js +30 -0
- package/esm2015/runtime/services/index.js +4 -0
- package/esm2015/runtime/services/product-model-cache.service.js +30 -0
- package/esm2015/runtime/services/runtime-context.service.js +56 -0
- package/esm2015/runtime/services/runtime-form.service.js +224 -0
- package/esm2015/runtime/services/runtime.service.js +108 -0
- package/esm2015/runtime/services/section-helper.service.js +27 -0
- package/esm2015/runtime/services/section-scope.service.js +36 -0
- package/esm2015/runtime/services/section-store.service.js +22 -0
- package/esm2015/runtime/services/section.service.js +124 -0
- package/esm2015/runtime/types/bound-data.types.js +7 -0
- package/esm2015/runtime/types/index.js +2 -0
- package/esm2015/runtime/types/runtime.types.js +2 -0
- package/esm2015/runtime/types/script-registry.types.js +51 -0
- package/esm2015/runtime/utils/line-item.util.js +273 -0
- package/esm2015/runtime/utils/section.utils.js +26 -0
- package/esm2015/runtime/utils/sections-binder.helper.js +105 -0
- package/esm2015/runtime/veloceapps-sdk-runtime.js +5 -0
- package/esm2015/src/components/dialog/dialog.component.js +30 -0
- package/esm2015/src/components/dialog/dialog.module.js +19 -0
- package/esm2015/src/components/dialog/dialog.types.js +2 -0
- package/esm2015/src/components/doc-gen/doc-gen.component.js +109 -0
- package/esm2015/src/components/doc-gen/doc-gen.module.js +19 -0
- package/esm2015/src/components/header/cart-overlay/cart-preview.component.js +122 -0
- package/esm2015/src/components/header/cart-overlay/cart-preview.module.js +46 -0
- package/esm2015/src/components/header/header.component.js +310 -0
- package/esm2015/src/components/header/header.module.js +50 -0
- package/esm2015/src/components/header/header.types.js +2 -0
- package/esm2015/src/components/header/metrics/index.js +2 -0
- package/esm2015/src/components/header/metrics/metrics.component.js +216 -0
- package/esm2015/src/components/header/metrics/metrics.definitions.js +9 -0
- package/esm2015/src/components/header/metrics/metrics.module.js +67 -0
- package/esm2015/src/constants.js +2 -0
- package/esm2015/src/flow-routing.module.js +137 -0
- package/esm2015/src/flow.component.js +45 -0
- package/esm2015/src/flow.module.js +60 -0
- package/esm2015/src/guards/context.guard.js +84 -0
- package/esm2015/src/guards/index.js +2 -0
- package/esm2015/src/guards/product-unload.guard.js +43 -0
- package/esm2015/src/guards/root.guard.js +41 -0
- package/esm2015/src/index.js +7 -0
- package/esm2015/src/pages/catalog/catalog.component.js +117 -0
- package/esm2015/src/pages/catalog/catalog.module.js +20 -0
- package/esm2015/src/pages/debug/debug.component.js +61 -0
- package/esm2015/src/pages/debug/debug.module.js +48 -0
- package/esm2015/src/pages/empty-account/empty-account.component.js +17 -0
- package/esm2015/src/pages/empty-account/empty-account.module.js +20 -0
- package/esm2015/src/pages/legacy-product/legacy-product.component.js +132 -0
- package/esm2015/src/pages/legacy-product/legacy-product.module.js +21 -0
- package/esm2015/src/pages/product/product.component.js +108 -0
- package/esm2015/src/pages/product/product.module.js +20 -0
- package/esm2015/src/pages/record-not-found/record-not-found.component.js +29 -0
- package/esm2015/src/pages/record-not-found/record-not-found.module.js +20 -0
- package/esm2015/src/pages/remote/remote.component.js +353 -0
- package/esm2015/src/pages/remote/remote.module.js +20 -0
- package/esm2015/src/pages/remote/remote.types.js +2 -0
- package/esm2015/src/pages/shopping-cart/shopping-cart.component.js +117 -0
- package/esm2015/src/pages/shopping-cart/shopping-cart.module.js +20 -0
- package/esm2015/src/resolvers/flow.resolver.js +62 -0
- package/esm2015/src/resolvers/quote.resolver.js +74 -0
- package/esm2015/src/services/doc-gen.service.js +33 -0
- package/esm2015/src/services/flow-dialog.service.js +123 -0
- package/esm2015/src/services/flow-router.service.js +136 -0
- package/esm2015/src/services/flow.service.js +77 -0
- package/esm2015/src/services/index.js +2 -0
- package/esm2015/src/types/context-route.types.js +2 -0
- package/esm2015/src/types/flow-customization.types.js +3 -0
- package/esm2015/src/types/index.js +3 -0
- package/esm2015/src/types/route.types.js +2 -0
- package/esm2015/src/utils/flow.utils.js +22 -0
- package/esm2015/src/utils/index.js +2 -0
- package/esm2015/veloceapps-sdk.js +5 -0
- package/fesm2015/veloceapps-sdk-cms.js +1443 -0
- package/fesm2015/veloceapps-sdk-cms.js.map +1 -0
- package/fesm2015/veloceapps-sdk-core.js +1035 -0
- package/fesm2015/veloceapps-sdk-core.js.map +1 -0
- package/fesm2015/veloceapps-sdk-runtime.js +3896 -0
- package/fesm2015/veloceapps-sdk-runtime.js.map +1 -0
- package/fesm2015/veloceapps-sdk.js +2758 -0
- package/fesm2015/veloceapps-sdk.js.map +1 -0
- package/index.d.ts +1 -0
- package/package.json +50 -0
- package/runtime/components/component-preview/component-preview.component.d.ts +27 -0
- package/runtime/components/index.d.ts +4 -0
- package/runtime/components/section-renderer/section-renderer.component.d.ts +25 -0
- package/runtime/components/ui-runtime/runtime.component.d.ts +53 -0
- package/runtime/components/ui-runtime-preview/runtime-preview.component.d.ts +27 -0
- package/runtime/execution/components/children-placeholder/children-placeholder.component.d.ts +30 -0
- package/runtime/execution/components/context-provider/context-provider.component.d.ts +14 -0
- package/runtime/execution/components/execution-section-renderer/execution-section-renderer.component.d.ts +25 -0
- package/runtime/execution/components/federated/federated.component.d.ts +36 -0
- package/runtime/execution/components/velo-attribute/velo-attribute.component.d.ts +19 -0
- package/runtime/execution/components/velo-multiselect/velo-multiselect.component.d.ts +35 -0
- package/runtime/execution/components/velo-port-checkbox/velo-port-checkbox.component.d.ts +22 -0
- package/runtime/execution/components/velo-port-dropdown/velo-port-dropdown.component.d.ts +22 -0
- package/runtime/execution/components/velo-port-radio/velo-port-radio.component.d.ts +28 -0
- package/runtime/execution/components/velo-type/velo-type.component.d.ts +31 -0
- package/runtime/execution/directives/section-script.directive.d.ts +59 -0
- package/runtime/execution/directives/sf-query.directive.d.ts +15 -0
- package/runtime/execution/directives/velo-attribute.directive.d.ts +26 -0
- package/runtime/execution/directives/velo-port.directive.d.ts +74 -0
- package/runtime/execution/directives/vl-approval.directive.d.ts +10 -0
- package/runtime/execution/directives/vl-document-attachments.directive.d.ts +15 -0
- package/runtime/execution/directives/vl-document-templates.directive.d.ts +33 -0
- package/runtime/execution/directives/vl-quote.directive.d.ts +14 -0
- package/runtime/execution/directives/vl-ramp.directive.d.ts +15 -0
- package/runtime/execution/runtime-execution.module.d.ts +27 -0
- package/runtime/execution/utils/federated.util.d.ts +6 -0
- package/runtime/index.d.ts +4 -0
- package/runtime/package.json +10 -0
- package/runtime/runtime.module.d.ts +18 -0
- package/runtime/services/cart.service.d.ts +15 -0
- package/runtime/services/collapsible-state.service.d.ts +15 -0
- package/runtime/services/configuration.service.d.ts +19 -0
- package/runtime/services/current-state.service.d.ts +8 -0
- package/runtime/services/form-scope.service.d.ts +20 -0
- package/runtime/services/index.d.ts +3 -0
- package/runtime/services/product-model-cache.service.d.ts +14 -0
- package/runtime/services/runtime-context.service.d.ts +16 -0
- package/runtime/services/runtime-form.service.d.ts +24 -0
- package/runtime/services/runtime.service.d.ts +43 -0
- package/runtime/services/section-helper.service.d.ts +8 -0
- package/runtime/services/section-scope.service.d.ts +14 -0
- package/runtime/services/section-store.service.d.ts +11 -0
- package/runtime/services/section.service.d.ts +30 -0
- package/runtime/types/bound-data.types.d.ts +13 -0
- package/runtime/types/index.d.ts +1 -0
- package/runtime/types/runtime.types.d.ts +19 -0
- package/runtime/types/script-registry.types.d.ts +13 -0
- package/runtime/utils/line-item.util.d.ts +34 -0
- package/runtime/utils/section.utils.d.ts +2 -0
- package/runtime/utils/sections-binder.helper.d.ts +16 -0
- package/runtime/veloceapps-sdk-runtime.d.ts +5 -0
- package/src/components/dialog/dialog.component.d.ts +13 -0
- package/src/components/dialog/dialog.module.d.ts +9 -0
- package/src/components/dialog/dialog.types.d.ts +6 -0
- package/src/components/doc-gen/doc-gen.component.d.ts +26 -0
- package/src/components/doc-gen/doc-gen.module.d.ts +9 -0
- package/src/components/header/cart-overlay/cart-preview.component.d.ts +36 -0
- package/src/components/header/cart-overlay/cart-preview.module.d.ts +14 -0
- package/src/components/header/header.component.d.ts +64 -0
- package/src/components/header/header.module.d.ts +15 -0
- package/src/components/header/header.types.d.ts +20 -0
- package/src/components/header/metrics/index.d.ts +1 -0
- package/src/components/header/metrics/metrics.component.d.ts +49 -0
- package/src/components/header/metrics/metrics.definitions.d.ts +4 -0
- package/src/components/header/metrics/metrics.module.d.ts +17 -0
- package/src/constants.d.ts +1 -0
- package/src/flow-routing.module.d.ts +13 -0
- package/src/flow.component.d.ts +23 -0
- package/src/flow.module.d.ts +16 -0
- package/src/guards/context.guard.d.ts +19 -0
- package/src/guards/index.d.ts +1 -0
- package/src/guards/product-unload.guard.d.ts +17 -0
- package/src/guards/root.guard.d.ts +15 -0
- package/src/index.d.ts +6 -0
- package/src/pages/catalog/catalog.component.d.ts +32 -0
- package/src/pages/catalog/catalog.module.d.ts +10 -0
- package/src/pages/debug/debug.component.d.ts +25 -0
- package/src/pages/debug/debug.module.d.ts +14 -0
- package/src/pages/empty-account/empty-account.component.d.ts +5 -0
- package/src/pages/empty-account/empty-account.module.d.ts +10 -0
- package/src/pages/legacy-product/legacy-product.component.d.ts +37 -0
- package/src/pages/legacy-product/legacy-product.module.d.ts +10 -0
- package/src/pages/product/product.component.d.ts +32 -0
- package/src/pages/product/product.module.d.ts +10 -0
- package/src/pages/record-not-found/record-not-found.component.d.ts +11 -0
- package/src/pages/record-not-found/record-not-found.module.d.ts +9 -0
- package/src/pages/remote/remote.component.d.ts +47 -0
- package/src/pages/remote/remote.module.d.ts +10 -0
- package/src/pages/remote/remote.types.d.ts +4 -0
- package/src/pages/shopping-cart/shopping-cart.component.d.ts +32 -0
- package/src/pages/shopping-cart/shopping-cart.module.d.ts +10 -0
- package/src/resolvers/flow.resolver.d.ts +16 -0
- package/src/resolvers/quote.resolver.d.ts +20 -0
- package/src/services/doc-gen.service.d.ts +13 -0
- package/src/services/flow-dialog.service.d.ts +26 -0
- package/src/services/flow-router.service.d.ts +36 -0
- package/src/services/flow.service.d.ts +17 -0
- package/src/services/index.d.ts +1 -0
- package/src/types/context-route.types.d.ts +5 -0
- package/src/types/flow-customization.types.d.ts +11 -0
- package/src/types/index.d.ts +2 -0
- package/src/types/route.types.d.ts +9 -0
- package/src/utils/flow.utils.d.ts +8 -0
- package/src/utils/index.d.ts +1 -0
- package/veloceapps-sdk.d.ts +5 -0
@@ -0,0 +1,20 @@
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
2
|
+
import { NgModule } from '@angular/core';
|
3
|
+
import { LoaderModule } from '@veloceapps/components';
|
4
|
+
import { PreviewModule } from '@veloceapps/sdk/cms';
|
5
|
+
import { ShoppingCartComponent } from './shopping-cart.component';
|
6
|
+
import * as i0 from "@angular/core";
|
7
|
+
export class ShoppingCartModule {
|
8
|
+
}
|
9
|
+
ShoppingCartModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: ShoppingCartModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
10
|
+
ShoppingCartModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: ShoppingCartModule, declarations: [ShoppingCartComponent], imports: [CommonModule, PreviewModule, LoaderModule], exports: [ShoppingCartComponent] });
|
11
|
+
ShoppingCartModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: ShoppingCartModule, imports: [[CommonModule, PreviewModule, LoaderModule]] });
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: ShoppingCartModule, decorators: [{
|
13
|
+
type: NgModule,
|
14
|
+
args: [{
|
15
|
+
declarations: [ShoppingCartComponent],
|
16
|
+
imports: [CommonModule, PreviewModule, LoaderModule],
|
17
|
+
exports: [ShoppingCartComponent],
|
18
|
+
}]
|
19
|
+
}] });
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvcHBpbmctY2FydC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9zcmMvcGFnZXMvc2hvcHBpbmctY2FydC9zaG9wcGluZy1jYXJ0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDOztBQU9sRSxNQUFNLE9BQU8sa0JBQWtCOztnSEFBbEIsa0JBQWtCO2lIQUFsQixrQkFBa0IsaUJBSmQscUJBQXFCLGFBQzFCLFlBQVksRUFBRSxhQUFhLEVBQUUsWUFBWSxhQUN6QyxxQkFBcUI7aUhBRXBCLGtCQUFrQixZQUhwQixDQUFDLFlBQVksRUFBRSxhQUFhLEVBQUUsWUFBWSxDQUFDOzRGQUd6QyxrQkFBa0I7a0JBTDlCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMscUJBQXFCLENBQUM7b0JBQ3JDLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxhQUFhLEVBQUUsWUFBWSxDQUFDO29CQUNwRCxPQUFPLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztpQkFDakMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExvYWRlck1vZHVsZSB9IGZyb20gJ0B2ZWxvY2VhcHBzL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgUHJldmlld01vZHVsZSB9IGZyb20gJ0B2ZWxvY2VhcHBzL3Nkay9jbXMnO1xuaW1wb3J0IHsgU2hvcHBpbmdDYXJ0Q29tcG9uZW50IH0gZnJvbSAnLi9zaG9wcGluZy1jYXJ0LmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1Nob3BwaW5nQ2FydENvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFByZXZpZXdNb2R1bGUsIExvYWRlck1vZHVsZV0sXG4gIGV4cG9ydHM6IFtTaG9wcGluZ0NhcnRDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBTaG9wcGluZ0NhcnRNb2R1bGUge31cbiJdfQ==
|
@@ -0,0 +1,62 @@
|
|
1
|
+
import { HttpErrorResponse } from '@angular/common/http';
|
2
|
+
import { Injectable } from '@angular/core';
|
3
|
+
import { map } from 'rxjs/operators';
|
4
|
+
import { getDefaultProperties } from '../utils';
|
5
|
+
import * as i0 from "@angular/core";
|
6
|
+
import * as i1 from "@angular/router";
|
7
|
+
import * as i2 from "@veloceapps/api";
|
8
|
+
import * as i3 from "../services/flow-router.service";
|
9
|
+
import * as i4 from "@veloceapps/sdk/core";
|
10
|
+
export class FlowResolver {
|
11
|
+
constructor(router, flowsApiService, routerService, contextService) {
|
12
|
+
this.router = router;
|
13
|
+
this.flowsApiService = flowsApiService;
|
14
|
+
this.routerService = routerService;
|
15
|
+
this.contextService = contextService;
|
16
|
+
}
|
17
|
+
handleError(route, message, queryParams) {
|
18
|
+
const parentUrl = this.routerService.getFlowRootPath(route);
|
19
|
+
return this.router.navigate([parentUrl, '404'], {
|
20
|
+
queryParams,
|
21
|
+
state: {
|
22
|
+
message: message,
|
23
|
+
},
|
24
|
+
});
|
25
|
+
}
|
26
|
+
resolve(route) {
|
27
|
+
const { queryParams } = route;
|
28
|
+
const { flowId } = queryParams;
|
29
|
+
if (!flowId) {
|
30
|
+
return this.handleError(route);
|
31
|
+
}
|
32
|
+
return this.flowsApiService.getFlow(flowId).pipe(map(flow => {
|
33
|
+
if (!flow) {
|
34
|
+
return this.handleError(route, `Flow with flowId=${flowId} is not defined`);
|
35
|
+
}
|
36
|
+
const { properties } = flow;
|
37
|
+
const { queryParams: flowQueryParams, entryPath } = properties;
|
38
|
+
const mergedParams = Object.assign(Object.assign(Object.assign({}, queryParams), flowQueryParams), getDefaultProperties({ flowParams: properties }));
|
39
|
+
const contextProperties = Object.entries(mergedParams).reduce((trunk, [key, value]) => (Object.assign(Object.assign({}, trunk), { [key]: String(value) })), {});
|
40
|
+
this.contextService.update({ properties: contextProperties });
|
41
|
+
const parentUrl = this.routerService.getFlowRootPath(route);
|
42
|
+
const entryUrl = String(entryPath !== null && entryPath !== void 0 ? entryPath : '')
|
43
|
+
.split('/')
|
44
|
+
.filter(Boolean);
|
45
|
+
return this.router
|
46
|
+
.navigate([parentUrl, ...entryUrl], {
|
47
|
+
queryParams: mergedParams,
|
48
|
+
replaceUrl: true,
|
49
|
+
})
|
50
|
+
.catch(e => {
|
51
|
+
const message = e instanceof HttpErrorResponse ? e.error.message : e;
|
52
|
+
return this.handleError(route, message, mergedParams);
|
53
|
+
});
|
54
|
+
}));
|
55
|
+
}
|
56
|
+
}
|
57
|
+
FlowResolver.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: FlowResolver, deps: [{ token: i1.Router }, { token: i2.FlowsApiService }, { token: i3.FlowRouterService }, { token: i4.ContextService }], target: i0.ɵɵFactoryTarget.Injectable });
|
58
|
+
FlowResolver.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: FlowResolver });
|
59
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: FlowResolver, decorators: [{
|
60
|
+
type: Injectable
|
61
|
+
}], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.FlowsApiService }, { type: i3.FlowRouterService }, { type: i4.ContextService }]; } });
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvdy5yZXNvbHZlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL3NyYy9yZXNvbHZlcnMvZmxvdy5yZXNvbHZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSzNDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxVQUFVLENBQUM7Ozs7OztBQUdoRCxNQUFNLE9BQU8sWUFBWTtJQUN2QixZQUNVLE1BQWMsRUFDZCxlQUFnQyxFQUNoQyxhQUFnQyxFQUNoQyxjQUE4QjtRQUg5QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2Qsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLGtCQUFhLEdBQWIsYUFBYSxDQUFtQjtRQUNoQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7SUFDckMsQ0FBQztJQUVJLFdBQVcsQ0FDakIsS0FBNkIsRUFDN0IsT0FBZ0IsRUFDaEIsV0FBNkI7UUFFN0IsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsRUFBRTtZQUM5QyxXQUFXO1lBQ1gsS0FBSyxFQUFFO2dCQUNMLE9BQU8sRUFBRSxPQUFPO2FBQ2pCO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLE9BQU8sQ0FBQyxLQUE2QjtRQUMxQyxNQUFNLEVBQUUsV0FBVyxFQUFFLEdBQUcsS0FBSyxDQUFDO1FBQzlCLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxXQUFXLENBQUM7UUFFL0IsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNYLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNoQztRQUVELE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUM5QyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDVCxJQUFJLENBQUMsSUFBSSxFQUFFO2dCQUNULE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsb0JBQW9CLE1BQU0saUJBQWlCLENBQUMsQ0FBQzthQUM3RTtZQUVELE1BQU0sRUFBRSxVQUFVLEVBQUUsR0FBRyxJQUFJLENBQUM7WUFDNUIsTUFBTSxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLEdBQUcsVUFBVSxDQUFDO1lBQy9ELE1BQU0sWUFBWSxpREFDYixXQUFXLEdBQ1gsZUFBZSxHQUNmLG9CQUFvQixDQUFDLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQ3BELENBQUM7WUFFRixNQUFNLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsTUFBTSxDQUMzRCxDQUFDLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsaUNBQU0sS0FBSyxLQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFHLEVBQzdELEVBQUUsQ0FDSCxDQUFDO1lBRUYsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsRUFBRSxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDO1lBRTlELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzVELE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxTQUFTLGFBQVQsU0FBUyxjQUFULFNBQVMsR0FBSSxFQUFFLENBQUM7aUJBQ3JDLEtBQUssQ0FBQyxHQUFHLENBQUM7aUJBQ1YsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBRW5CLE9BQU8sSUFBSSxDQUFDLE1BQU07aUJBQ2YsUUFBUSxDQUFDLENBQUMsU0FBUyxFQUFFLEdBQUcsUUFBUSxDQUFDLEVBQUU7Z0JBQ2xDLFdBQVcsRUFBRSxZQUFZO2dCQUN6QixVQUFVLEVBQUUsSUFBSTthQUNqQixDQUFDO2lCQUNELEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDVCxNQUFNLE9BQU8sR0FBRyxDQUFDLFlBQVksaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3JFLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLFlBQVksQ0FBQyxDQUFDO1lBQ3hELENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7OzBHQW5FVSxZQUFZOzhHQUFaLFlBQVk7NEZBQVosWUFBWTtrQkFEeEIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgUmVzb2x2ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEZsb3dzQXBpU2VydmljZSB9IGZyb20gJ0B2ZWxvY2VhcHBzL2FwaSc7XG5pbXBvcnQgeyBDb250ZXh0U2VydmljZSB9IGZyb20gJ0B2ZWxvY2VhcHBzL3Nkay9jb3JlJztcbmltcG9ydCB7IERpY3Rpb25hcnkgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRmxvd1JvdXRlclNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9mbG93LXJvdXRlci5zZXJ2aWNlJztcbmltcG9ydCB7IGdldERlZmF1bHRQcm9wZXJ0aWVzIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRmxvd1Jlc29sdmVyIGltcGxlbWVudHMgUmVzb2x2ZTxQcm9taXNlPGJvb2xlYW4+PiB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBmbG93c0FwaVNlcnZpY2U6IEZsb3dzQXBpU2VydmljZSxcbiAgICBwcml2YXRlIHJvdXRlclNlcnZpY2U6IEZsb3dSb3V0ZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29udGV4dFNlcnZpY2U6IENvbnRleHRTZXJ2aWNlLFxuICApIHt9XG5cbiAgcHJpdmF0ZSBoYW5kbGVFcnJvcihcbiAgICByb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCxcbiAgICBtZXNzYWdlPzogc3RyaW5nLFxuICAgIHF1ZXJ5UGFyYW1zPzogRGljdGlvbmFyeTxhbnk+LFxuICApOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCBwYXJlbnRVcmwgPSB0aGlzLnJvdXRlclNlcnZpY2UuZ2V0Rmxvd1Jvb3RQYXRoKHJvdXRlKTtcbiAgICByZXR1cm4gdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3BhcmVudFVybCwgJzQwNCddLCB7XG4gICAgICBxdWVyeVBhcmFtcyxcbiAgICAgIHN0YXRlOiB7XG4gICAgICAgIG1lc3NhZ2U6IG1lc3NhZ2UsXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHJlc29sdmUocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QpOiBhbnkge1xuICAgIGNvbnN0IHsgcXVlcnlQYXJhbXMgfSA9IHJvdXRlO1xuICAgIGNvbnN0IHsgZmxvd0lkIH0gPSBxdWVyeVBhcmFtcztcblxuICAgIGlmICghZmxvd0lkKSB7XG4gICAgICByZXR1cm4gdGhpcy5oYW5kbGVFcnJvcihyb3V0ZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuZmxvd3NBcGlTZXJ2aWNlLmdldEZsb3coZmxvd0lkKS5waXBlKFxuICAgICAgbWFwKGZsb3cgPT4ge1xuICAgICAgICBpZiAoIWZsb3cpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5oYW5kbGVFcnJvcihyb3V0ZSwgYEZsb3cgd2l0aCBmbG93SWQ9JHtmbG93SWR9IGlzIG5vdCBkZWZpbmVkYCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB7IHByb3BlcnRpZXMgfSA9IGZsb3c7XG4gICAgICAgIGNvbnN0IHsgcXVlcnlQYXJhbXM6IGZsb3dRdWVyeVBhcmFtcywgZW50cnlQYXRoIH0gPSBwcm9wZXJ0aWVzO1xuICAgICAgICBjb25zdCBtZXJnZWRQYXJhbXMgPSB7XG4gICAgICAgICAgLi4ucXVlcnlQYXJhbXMsXG4gICAgICAgICAgLi4uZmxvd1F1ZXJ5UGFyYW1zLFxuICAgICAgICAgIC4uLmdldERlZmF1bHRQcm9wZXJ0aWVzKHsgZmxvd1BhcmFtczogcHJvcGVydGllcyB9KSxcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBjb250ZXh0UHJvcGVydGllcyA9IE9iamVjdC5lbnRyaWVzKG1lcmdlZFBhcmFtcykucmVkdWNlPERpY3Rpb25hcnk8c3RyaW5nPj4oXG4gICAgICAgICAgKHRydW5rLCBba2V5LCB2YWx1ZV0pID0+ICh7IC4uLnRydW5rLCBba2V5XTogU3RyaW5nKHZhbHVlKSB9KSxcbiAgICAgICAgICB7fSxcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLmNvbnRleHRTZXJ2aWNlLnVwZGF0ZSh7IHByb3BlcnRpZXM6IGNvbnRleHRQcm9wZXJ0aWVzIH0pO1xuXG4gICAgICAgIGNvbnN0IHBhcmVudFVybCA9IHRoaXMucm91dGVyU2VydmljZS5nZXRGbG93Um9vdFBhdGgocm91dGUpO1xuICAgICAgICBjb25zdCBlbnRyeVVybCA9IFN0cmluZyhlbnRyeVBhdGggPz8gJycpXG4gICAgICAgICAgLnNwbGl0KCcvJylcbiAgICAgICAgICAuZmlsdGVyKEJvb2xlYW4pO1xuXG4gICAgICAgIHJldHVybiB0aGlzLnJvdXRlclxuICAgICAgICAgIC5uYXZpZ2F0ZShbcGFyZW50VXJsLCAuLi5lbnRyeVVybF0sIHtcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1zOiBtZXJnZWRQYXJhbXMsXG4gICAgICAgICAgICByZXBsYWNlVXJsOiB0cnVlLFxuICAgICAgICAgIH0pXG4gICAgICAgICAgLmNhdGNoKGUgPT4ge1xuICAgICAgICAgICAgY29uc3QgbWVzc2FnZSA9IGUgaW5zdGFuY2VvZiBIdHRwRXJyb3JSZXNwb25zZSA/IGUuZXJyb3IubWVzc2FnZSA6IGU7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5oYW5kbGVFcnJvcihyb3V0ZSwgbWVzc2FnZSwgbWVyZ2VkUGFyYW1zKTtcbiAgICAgICAgICB9KTtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
|
@@ -0,0 +1,74 @@
|
|
1
|
+
import { HttpErrorResponse } from '@angular/common/http';
|
2
|
+
import { Injectable } from '@angular/core';
|
3
|
+
import { ConfigurationContextMode } from '@veloceapps/core';
|
4
|
+
import { catchError, from, of, switchMap, tap } from 'rxjs';
|
5
|
+
import * as i0 from "@angular/core";
|
6
|
+
import * as i1 from "@angular/router";
|
7
|
+
import * as i2 from "@veloceapps/sdk/core";
|
8
|
+
import * as i3 from "../services/flow-router.service";
|
9
|
+
export class QuoteResolver {
|
10
|
+
constructor(router, quoteDraftService, routerService, contextService, flowConfiguration) {
|
11
|
+
this.router = router;
|
12
|
+
this.quoteDraftService = quoteDraftService;
|
13
|
+
this.routerService = routerService;
|
14
|
+
this.contextService = contextService;
|
15
|
+
this.flowConfiguration = flowConfiguration;
|
16
|
+
}
|
17
|
+
handleError(route, message) {
|
18
|
+
const parentUrl = this.routerService.getFlowRootPath(route);
|
19
|
+
return from(this.router.navigate([parentUrl, '404'], { state: { message } }));
|
20
|
+
}
|
21
|
+
calculate$() {
|
22
|
+
const quoteDraft = this.quoteDraftService.quoteDraft;
|
23
|
+
if (!this.quoteDraftService.isStandalone && quoteDraft && !this.accountHasNotAssets()) {
|
24
|
+
return this.flowConfiguration.calculate$(quoteDraft);
|
25
|
+
}
|
26
|
+
return of(undefined);
|
27
|
+
}
|
28
|
+
resolve(route) {
|
29
|
+
const { headerId } = this.contextService.resolve();
|
30
|
+
const quote = this.quoteDraftService.quoteDraft;
|
31
|
+
if (quote && quote.quoteId === headerId) {
|
32
|
+
return of(true);
|
33
|
+
}
|
34
|
+
const { queryParams } = route;
|
35
|
+
return this.quoteDraftService.init(headerId, queryParams).pipe(switchMap(() => this.calculate$()), tap(() => {
|
36
|
+
if (this.quoteDraftService.isStandalone) {
|
37
|
+
return;
|
38
|
+
}
|
39
|
+
if (this.accountHasNotAssets()) {
|
40
|
+
this.changeNavigation('/empty', route);
|
41
|
+
}
|
42
|
+
else if (!this.quoteDraftService.isInitialized && this.quoteDraftService.hasAssets) {
|
43
|
+
this.changeNavigation('/cart', route);
|
44
|
+
}
|
45
|
+
this.quoteDraftService.isInitialized = true;
|
46
|
+
}), catchError(e => {
|
47
|
+
const message = e instanceof HttpErrorResponse ? e.error.message : e;
|
48
|
+
return this.handleError(route, message);
|
49
|
+
}));
|
50
|
+
}
|
51
|
+
changeNavigation(path, route) {
|
52
|
+
const parentUrl = this.routerService.getFlowRootPath(route);
|
53
|
+
this.router
|
54
|
+
.navigate([parentUrl + path], {
|
55
|
+
queryParams: route.queryParams,
|
56
|
+
replaceUrl: true,
|
57
|
+
})
|
58
|
+
.catch(e => {
|
59
|
+
const message = e instanceof HttpErrorResponse ? e.error.message : e;
|
60
|
+
return this.handleError(route, message);
|
61
|
+
});
|
62
|
+
}
|
63
|
+
accountHasNotAssets() {
|
64
|
+
var _a;
|
65
|
+
return (((_a = this.quoteDraftService.quoteDraft) === null || _a === void 0 ? void 0 : _a.context.properties.mode) === ConfigurationContextMode.ACCOUNT &&
|
66
|
+
!this.quoteDraftService.hasAssets);
|
67
|
+
}
|
68
|
+
}
|
69
|
+
QuoteResolver.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: QuoteResolver, deps: [{ token: i1.Router }, { token: i2.QuoteDraftService }, { token: i3.FlowRouterService }, { token: i2.ContextService }, { token: i2.FlowConfigurationService }], target: i0.ɵɵFactoryTarget.Injectable });
|
70
|
+
QuoteResolver.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: QuoteResolver });
|
71
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: QuoteResolver, decorators: [{
|
72
|
+
type: Injectable
|
73
|
+
}], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.QuoteDraftService }, { type: i3.FlowRouterService }, { type: i2.ContextService }, { type: i2.FlowConfigurationService }]; } });
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVvdGUucmVzb2x2ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9zcmMvcmVzb2x2ZXJzL3F1b3RlLnJlc29sdmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFNUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQWMsRUFBRSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7O0FBSXhFLE1BQU0sT0FBTyxhQUFhO0lBQ3hCLFlBQ1UsTUFBYyxFQUNkLGlCQUFvQyxFQUNwQyxhQUFnQyxFQUNoQyxjQUE4QixFQUM5QixpQkFBMkM7UUFKM0MsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsa0JBQWEsR0FBYixhQUFhLENBQW1CO1FBQ2hDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQTBCO0lBQ2xELENBQUM7SUFFSSxXQUFXLENBQUMsS0FBNkIsRUFBRSxPQUFlO1FBQ2hFLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDaEYsQ0FBQztJQUVPLFVBQVU7UUFDaEIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFD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QUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUNsQyxDQUFDO0lBQ0osQ0FBQzs7MkdBM0VVLGFBQWE7K0dBQWIsYUFBYTs0RkFBYixhQUFhO2tCQUR6QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBSZXNvbHZlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQ29uZmlndXJhdGlvbkNvbnRleHRNb2RlIH0gZnJvbSAnQHZlbG9jZWFwcHMvY29yZSc7XG5pbXBvcnQgeyBDb250ZXh0U2VydmljZSwgRmxvd0NvbmZpZ3VyYXRpb25TZXJ2aWNlLCBRdW90ZURyYWZ0U2VydmljZSB9IGZyb20gJ0B2ZWxvY2VhcHBzL3Nkay9jb3JlJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGZyb20sIE9ic2VydmFibGUsIG9mLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRmxvd1JvdXRlclNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9mbG93LXJvdXRlci5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFF1b3RlUmVzb2x2ZXIgaW1wbGVtZW50cyBSZXNvbHZlPHZvaWQgfCBib29sZWFuPiB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBxdW90ZURyYWZ0U2VydmljZTogUXVvdGVEcmFmdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZXJTZXJ2aWNlOiBGbG93Um91dGVyU2VydmljZSxcbiAgICBwcml2YXRlIGNvbnRleHRTZXJ2aWNlOiBDb250ZXh0U2VydmljZSxcbiAgICBwcml2YXRlIGZsb3dDb25maWd1cmF0aW9uOiBGbG93Q29uZmlndXJhdGlvblNlcnZpY2UsXG4gICkge31cblxuICBwcml2YXRlIGhhbmRsZUVycm9yKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBtZXNzYWdlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICBjb25zdCBwYXJlbnRVcmwgPSB0aGlzLnJvdXRlclNlcnZpY2UuZ2V0Rmxvd1Jvb3RQYXRoKHJvdXRlKTtcbiAgICByZXR1cm4gZnJvbSh0aGlzLnJvdXRlci5uYXZpZ2F0ZShbcGFyZW50VXJsLCAnNDA0J10sIHsgc3RhdGU6IHsgbWVzc2FnZSB9IH0pKTtcbiAgfVxuXG4gIHByaXZhdGUgY2FsY3VsYXRlJCgpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICBjb25zdCBxdW90ZURyYWZ0ID0gdGhpcy5xdW90ZURyYWZ0U2VydmljZS5xdW90ZURyYWZ0O1xuXG4gICAgaWYgKCF0aGlzLnF1b3RlRHJhZnRTZXJ2aWNlLmlzU3RhbmRhbG9uZSAmJiBxdW90ZURyYWZ0ICYmICF0aGlzLmFjY291bnRIYXNOb3RBc3NldHMoKSkge1xuICAgICAgcmV0dXJuIHRoaXMuZmxvd0NvbmZpZ3VyYXRpb24uY2FsY3VsYXRlJChxdW90ZURyYWZ0KTtcbiAgICB9XG5cbiAgICByZXR1cm4gb2YodW5kZWZpbmVkKTtcbiAgfVxuXG4gIHB1YmxpYyByZXNvbHZlKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KTogT2JzZXJ2YWJsZTx2b2lkIHwgYm9vbGVhbj4ge1xuICAgIGNvbnN0IHsgaGVhZGVySWQgfSA9IHRoaXMuY29udGV4dFNlcnZpY2UucmVzb2x2ZSgpO1xuICAgIGNvbnN0IHF1b3RlID0gdGhpcy5xdW90ZURyYWZ0U2VydmljZS5xdW90ZURyYWZ0O1xuXG4gICAgaWYgKHF1b3RlICYmIHF1b3RlLnF1b3RlSWQgPT09IGhlYWRlcklkKSB7XG4gICAgICByZXR1cm4gb2YodHJ1ZSk7XG4gICAgfVxuXG4gICAgY29uc3QgeyBxdWVyeVBhcmFtcyB9ID0gcm91dGU7XG5cbiAgICByZXR1cm4gdGhpcy5xdW90ZURyYWZ0U2VydmljZS5pbml0KGhlYWRlcklkLCBxdWVyeVBhcmFtcykucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLmNhbGN1bGF0ZSQoKSksXG4gICAgICB0YXAoKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5xdW90ZURyYWZ0U2VydmljZS5pc1N0YW5kYWxvbmUpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5hY2NvdW50SGFzTm90QXNzZXRzKCkpIHtcbiAgICAgICAgICB0aGlzLmNoYW5nZU5hdmlnYXRpb24oJy9lbXB0eScsIHJvdXRlKTtcbiAgICAgICAgfSBlbHNlIGlmICghdGhpcy5xdW90ZURyYWZ0U2VydmljZS5pc0luaXRpYWxpemVkICYmIHRoaXMucXVvdGVEcmFmdFNlcnZpY2UuaGFzQXNzZXRzKSB7XG4gICAgICAgICAgdGhpcy5jaGFuZ2VOYXZpZ2F0aW9uKCcvY2FydCcsIHJvdXRlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucXVvdGVEcmFmdFNlcnZpY2UuaXNJbml0aWFsaXplZCA9IHRydWU7XG4gICAgICB9KSxcbiAgICAgIGNhdGNoRXJyb3IoZSA9PiB7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBlIGluc3RhbmNlb2YgSHR0cEVycm9yUmVzcG9uc2UgPyBlLmVycm9yLm1lc3NhZ2UgOiBlO1xuICAgICAgICByZXR1cm4gdGhpcy5oYW5kbGVFcnJvcihyb3V0ZSwgbWVzc2FnZSk7XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBjaGFuZ2VOYXZpZ2F0aW9uKHBhdGg6IHN0cmluZywgcm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QpOiB2b2lkIHtcbiAgICBjb25zdCBwYXJlbnRVcmwgPSB0aGlzLnJvdXRlclNlcnZpY2UuZ2V0Rmxvd1Jvb3RQYXRoKHJvdXRlKTtcblxuICAgIHRoaXMucm91dGVyXG4gICAgICAubmF2aWdhdGUoW3BhcmVudFVybCArIHBhdGhdLCB7XG4gICAgICAgIHF1ZXJ5UGFyYW1zOiByb3V0ZS5xdWVyeVBhcmFtcyxcbiAgICAgICAgcmVwbGFjZVVybDogdHJ1ZSxcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goZSA9PiB7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBlIGluc3RhbmNlb2YgSHR0cEVycm9yUmVzcG9uc2UgPyBlLmVycm9yLm1lc3NhZ2UgOiBlO1xuICAgICAgICByZXR1cm4gdGhpcy5oYW5kbGVFcnJvcihyb3V0ZSwgbWVzc2FnZSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYWNjb3VudEhhc05vdEFzc2V0cygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5xdW90ZURyYWZ0U2VydmljZS5xdW90ZURyYWZ0Py5jb250ZXh0LnByb3BlcnRpZXMubW9kZSA9PT0gQ29uZmlndXJhdGlvbkNvbnRleHRNb2RlLkFDQ09VTlQgJiZcbiAgICAgICF0aGlzLnF1b3RlRHJhZnRTZXJ2aWNlLmhhc0Fzc2V0c1xuICAgICk7XG4gIH1cbn1cbiJdfQ==
|
@@ -0,0 +1,33 @@
|
|
1
|
+
import { Injectable } from '@angular/core';
|
2
|
+
import { FlowAction } from '@veloceapps/sdk/cms';
|
3
|
+
import { BehaviorSubject, Subject, takeUntil, tap } from 'rxjs';
|
4
|
+
import * as i0 from "@angular/core";
|
5
|
+
import * as i1 from "@veloceapps/sdk/cms";
|
6
|
+
export class FlowDocGenService {
|
7
|
+
constructor(integrationState) {
|
8
|
+
this.integrationState = integrationState;
|
9
|
+
this.cleanup$ = new Subject();
|
10
|
+
this.isVisibleSubj$ = new BehaviorSubject(false);
|
11
|
+
this.isVisible$ = this.isVisibleSubj$.asObservable();
|
12
|
+
this.initSubscriptions();
|
13
|
+
}
|
14
|
+
cleanup() {
|
15
|
+
this.cleanup$.next();
|
16
|
+
}
|
17
|
+
initSubscriptions() {
|
18
|
+
this.integrationState
|
19
|
+
.listen$(FlowAction.FLOW_OPEN_DOC_GEN)
|
20
|
+
.pipe(tap(() => this.isVisibleSubj$.next(true)), takeUntil(this.cleanup$))
|
21
|
+
.subscribe();
|
22
|
+
this.integrationState
|
23
|
+
.listen$(FlowAction.FLOW_CLOSE_DOC_GEN)
|
24
|
+
.pipe(tap(() => this.isVisibleSubj$.next(false)), takeUntil(this.cleanup$))
|
25
|
+
.subscribe();
|
26
|
+
}
|
27
|
+
}
|
28
|
+
FlowDocGenService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: FlowDocGenService, deps: [{ token: i1.IntegrationState }], target: i0.ɵɵFactoryTarget.Injectable });
|
29
|
+
FlowDocGenService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: FlowDocGenService });
|
30
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: FlowDocGenService, decorators: [{
|
31
|
+
type: Injectable
|
32
|
+
}], ctorParameters: function () { return [{ type: i1.IntegrationState }]; } });
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jLWdlbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvc3JjL3NlcnZpY2VzL2RvYy1nZW4uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQW9CLE1BQU0scUJBQXFCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7O0FBR2hFLE1BQU0sT0FBTyxpQkFBaUI7SUFNNUIsWUFBb0IsZ0JBQWtDO1FBQWxDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFMOUMsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDL0IsbUJBQWMsR0FBRyxJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUU3QyxlQUFVLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUdyRCxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRU0sT0FBTztRQUNaLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVPLGlCQUFpQjtRQUN2QixJQUFJLENBQUMsZ0JBQWdCO2FBQ2xCLE9BQU8sQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUM7YUFDckMsSUFBSSxDQUNILEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUN6QyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUN6QjthQUNBLFNBQVMsRUFBRSxDQUFDO1FBRWYsSUFBSSxDQUFDLGdCQUFnQjthQUNsQixPQUFPLENBQUMsVUFBVSxDQUFDLGtCQUFrQixDQUFDO2FBQ3RDLElBQUksQ0FDSCxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFDMUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FDekI7YUFDQSxTQUFTLEVBQUUsQ0FBQztJQUNqQixDQUFDOzsrR0E5QlUsaUJBQWlCO21IQUFqQixpQkFBaUI7NEZBQWpCLGlCQUFpQjtrQkFEN0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZsb3dBY3Rpb24sIEludGVncmF0aW9uU3RhdGUgfSBmcm9tICdAdmVsb2NlYXBwcy9zZGsvY21zJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3ViamVjdCwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEZsb3dEb2NHZW5TZXJ2aWNlIHtcbiAgcHJpdmF0ZSBjbGVhbnVwJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByaXZhdGUgaXNWaXNpYmxlU3ViaiQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcblxuICBwdWJsaWMgaXNWaXNpYmxlJCA9IHRoaXMuaXNWaXNpYmxlU3ViaiQuYXNPYnNlcnZhYmxlKCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBpbnRlZ3JhdGlvblN0YXRlOiBJbnRlZ3JhdGlvblN0YXRlKSB7XG4gICAgdGhpcy5pbml0U3Vic2NyaXB0aW9ucygpO1xuICB9XG5cbiAgcHVibGljIGNsZWFudXAoKTogdm9pZCB7XG4gICAgdGhpcy5jbGVhbnVwJC5uZXh0KCk7XG4gIH1cblxuICBwcml2YXRlIGluaXRTdWJzY3JpcHRpb25zKCk6IHZvaWQge1xuICAgIHRoaXMuaW50ZWdyYXRpb25TdGF0ZVxuICAgICAgLmxpc3RlbiQoRmxvd0FjdGlvbi5GTE9XX09QRU5fRE9DX0dFTilcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoKCkgPT4gdGhpcy5pc1Zpc2libGVTdWJqJC5uZXh0KHRydWUpKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuY2xlYW51cCQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgdGhpcy5pbnRlZ3JhdGlvblN0YXRlXG4gICAgICAubGlzdGVuJChGbG93QWN0aW9uLkZMT1dfQ0xPU0VfRE9DX0dFTilcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoKCkgPT4gdGhpcy5pc1Zpc2libGVTdWJqJC5uZXh0KGZhbHNlKSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmNsZWFudXAkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxufVxuIl19
|
@@ -0,0 +1,123 @@
|
|
1
|
+
import { Injectable } from '@angular/core';
|
2
|
+
import { FlowDialogComponent } from '../components/dialog/dialog.component';
|
3
|
+
import * as i0 from "@angular/core";
|
4
|
+
import * as i1 from "primeng/dynamicdialog";
|
5
|
+
import * as i2 from "@veloceapps/sdk/core";
|
6
|
+
export class FlowDialogService {
|
7
|
+
constructor(dialogService, contextService) {
|
8
|
+
this.dialogService = dialogService;
|
9
|
+
this.contextService = contextService;
|
10
|
+
}
|
11
|
+
show(config) {
|
12
|
+
return this.dialogService.open(FlowDialogComponent, {
|
13
|
+
dismissableMask: true,
|
14
|
+
closeOnEscape: true,
|
15
|
+
closable: true,
|
16
|
+
showHeader: true,
|
17
|
+
header: config.title,
|
18
|
+
width: '440px',
|
19
|
+
data: { config },
|
20
|
+
}).onClose;
|
21
|
+
}
|
22
|
+
showEmptyCartDialog() {
|
23
|
+
return this.show({
|
24
|
+
title: 'No Products in Quote',
|
25
|
+
description: 'There are no products in your Quote. To save a Quote, add at least one product.',
|
26
|
+
primaryButton: 'OK',
|
27
|
+
});
|
28
|
+
}
|
29
|
+
showReadonlyModeDialog() {
|
30
|
+
const ctx = this.contextService.resolve();
|
31
|
+
const objectName = ctx.mode ? ctx.mode[0].toUpperCase() + ctx.mode.substring(1).toLowerCase() : 'Object';
|
32
|
+
return this.show({
|
33
|
+
title: 'Error',
|
34
|
+
description: `${objectName} Cannot be Saved`,
|
35
|
+
primaryButton: 'OK',
|
36
|
+
});
|
37
|
+
}
|
38
|
+
showQuoteReadonlyModeDialog() {
|
39
|
+
return this.show({
|
40
|
+
title: 'Quote Cannot be Saved',
|
41
|
+
description: 'It is only possible to save quotes with the “Draft” status. Please create a new quote to make and save changes.',
|
42
|
+
primaryButton: 'OK',
|
43
|
+
});
|
44
|
+
}
|
45
|
+
showQuoteOutsideShoppingCartDialog() {
|
46
|
+
return this.show({
|
47
|
+
title: 'Quote Cannot be Saved',
|
48
|
+
description: 'It is only possible to save quotes from the Shopping Cart. To proceed, go to the Shopping Cart.',
|
49
|
+
primaryButton: 'OK',
|
50
|
+
});
|
51
|
+
}
|
52
|
+
showAccountNoChangesDialog() {
|
53
|
+
return this.show({
|
54
|
+
title: 'No Changes to Save',
|
55
|
+
description: 'There are no changes since the last update. Please make changes to proceed.',
|
56
|
+
primaryButton: 'OK',
|
57
|
+
});
|
58
|
+
}
|
59
|
+
showUnsavedChangesDialog() {
|
60
|
+
return this.show({
|
61
|
+
title: 'Unsaved Changes',
|
62
|
+
description: 'Are you sure you want to leave this page and discard your unsaved changes?',
|
63
|
+
primaryButton: 'Keep Editing',
|
64
|
+
secondaryButton: 'Discard Changes',
|
65
|
+
});
|
66
|
+
}
|
67
|
+
showReadonlyQuoteSubmitFailureDialog() {
|
68
|
+
return this.show({
|
69
|
+
title: 'Cannot Submit for Approval',
|
70
|
+
description: 'It is only possible to submit for approval quotes with the “Draft“ status. Please create a new quote to proceed.',
|
71
|
+
primaryButton: 'OK',
|
72
|
+
});
|
73
|
+
}
|
74
|
+
showOutsideShoppingCartQuoteSubmitFailureDialog() {
|
75
|
+
return this.show({
|
76
|
+
title: 'Cannot Submit for Approval',
|
77
|
+
description: 'It is only possible to submit quotes for approval from the Shopping Cart. To proceed, go to the Shopping Cart.',
|
78
|
+
primaryButton: 'OK',
|
79
|
+
});
|
80
|
+
}
|
81
|
+
showAccountSubmitFailureDialog() {
|
82
|
+
return this.show({
|
83
|
+
title: 'Save Changes',
|
84
|
+
description: 'To submit for approval, save the quote first, and then submit it for approval from the Shopping Cart.',
|
85
|
+
primaryButton: 'OK',
|
86
|
+
});
|
87
|
+
}
|
88
|
+
showDocgenAccountUnsavedChangesDialog() {
|
89
|
+
return this.show({
|
90
|
+
title: 'Save Quote',
|
91
|
+
description: 'To generate a document, save the quote first, and then generate the document from the Shopping Cart.',
|
92
|
+
primaryButton: 'OK',
|
93
|
+
});
|
94
|
+
}
|
95
|
+
showDocgenReadonlyDialog() {
|
96
|
+
return this.show({
|
97
|
+
title: 'Document Generation is not Available',
|
98
|
+
description: 'It is only possible to generate documents for quotes with the “Draft” status. Please create a new quote to generate a document.',
|
99
|
+
primaryButton: 'OK',
|
100
|
+
});
|
101
|
+
}
|
102
|
+
showDocgenOutsideShoppingCartDialog() {
|
103
|
+
return this.show({
|
104
|
+
title: 'Document Generation is not Available',
|
105
|
+
description: 'It is only possible to generate documents for quotes from the Shopping Cart. To proceed, go to the Shopping Cart.',
|
106
|
+
primaryButton: 'OK',
|
107
|
+
});
|
108
|
+
}
|
109
|
+
showDocgenUnsavedChangesDialog() {
|
110
|
+
return this.show({
|
111
|
+
title: 'Unsaved Changes',
|
112
|
+
description: 'To generate a document, save the quote first.',
|
113
|
+
primaryButton: 'Save and proceed',
|
114
|
+
secondaryButton: 'Cancel',
|
115
|
+
});
|
116
|
+
}
|
117
|
+
}
|
118
|
+
FlowDialogService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: FlowDialogService, deps: [{ token: i1.DialogService }, { token: i2.ContextService }], target: i0.ɵɵFactoryTarget.Injectable });
|
119
|
+
FlowDialogService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: FlowDialogService });
|
120
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: FlowDialogService, decorators: [{
|
121
|
+
type: Injectable
|
122
|
+
}], ctorParameters: function () { return [{ type: i1.DialogService }, { type: i2.ContextService }]; } });
|
123
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvdy1kaWFsb2cuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL3NyYy9zZXJ2aWNlcy9mbG93LWRpYWxvZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJM0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7Ozs7QUFJNUUsTUFBTSxPQUFPLGlCQUFpQjtJQUM1QixZQUFvQixhQUE0QixFQUFVLGNBQThCO1FBQXBFLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQVUsbUJBQWMsR0FBZCxjQUFjLENBQWdCO0lBQUcsQ0FBQztJQUVyRixJQUFJLENBQUMsTUFBd0I7UUFDbEMsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRTtZQUNsRCxlQUFlLEVBQUUsSUFBSTtZQUNyQixhQUFhLEVBQUUsSUFBSTtZQUNuQixRQUFRLEVBQUUsSUFBSTtZQUNkLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLE1BQU0sRUFBRSxNQUFNLENBQUMsS0FBSztZQUNwQixLQUFLLEVBQUUsT0FBTztZQUNkLElBQUksRUFBRSxFQUFFLE1BQU0sRUFBRTtTQUNqQixDQUFDLENBQUMsT0FBTyxDQUFDO0lBQ2IsQ0FBQztJQUVNLG1CQUFtQjtRQUN4QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDZixLQUFLLEVBQUUsc0JBQXNCO1lBQzdCLFdBQVcsRUFBRSxpRkFBaUY7WUFDOUYsYUFBYSxFQUFFLElBQUk7U0FDcEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLHNCQUFzQjtRQUMzQixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzFDLE1BQU0sVUFBVSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcs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QWpCLGlCQUFpQjs0RkFBakIsaUJBQWlCO2tCQUQ3QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udGV4dFNlcnZpY2UgfSBmcm9tICdAdmVsb2NlYXBwcy9zZGsvY29yZSc7XG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAncHJpbWVuZy9keW5hbWljZGlhbG9nJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZsb3dEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL2RpYWxvZy9kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IEZsb3dEaWFsb2dDb25maWcgfSBmcm9tICcuLi9jb21wb25lbnRzL2RpYWxvZy9kaWFsb2cudHlwZXMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRmxvd0RpYWxvZ1NlcnZpY2Uge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UsIHByaXZhdGUgY29udGV4dFNlcnZpY2U6IENvbnRleHRTZXJ2aWNlKSB7fVxuXG4gIHB1YmxpYyBzaG93KGNvbmZpZzogRmxvd0RpYWxvZ0NvbmZpZyk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLmRpYWxvZ1NlcnZpY2Uub3BlbihGbG93RGlhbG9nQ29tcG9uZW50LCB7XG4gICAgICBkaXNtaXNzYWJsZU1hc2s6IHRydWUsXG4gICAgICBjbG9zZU9uRXNjYXBlOiB0cnVlLFxuICAgICAgY2xvc2FibGU6IHRydWUsXG4gICAgICBzaG93SGVhZGVyOiB0cnVlLFxuICAgICAgaGVhZGVyOiBjb25maWcudGl0bGUsXG4gICAgICB3aWR0aDogJzQ0MHB4JyxcbiAgICAgIGRhdGE6IHsgY29uZmlnIH0sXG4gICAgfSkub25DbG9zZTtcbiAgfVxuXG4gIHB1YmxpYyBzaG93RW1wdHlDYXJ0RGlhbG9nKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLnNob3coe1xuICAgICAgdGl0bGU6ICdObyBQcm9kdWN0cyBpbiBRdW90ZScsXG4gICAgICBkZXNjcmlwdGlvbjogJ1RoZXJlIGFyZSBubyBwcm9kdWN0cyBpbiB5b3VyIFF1b3RlLiBUbyBzYXZlIGEgUXVvdGUsIGFkZCBhdCBsZWFzdCBvbmUgcHJvZHVjdC4nLFxuICAgICAgcHJpbWFyeUJ1dHRvbjogJ09LJyxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzaG93UmVhZG9ubHlNb2RlRGlhbG9nKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IGN0eCA9IHRoaXMuY29udGV4dFNlcnZpY2UucmVzb2x2ZSgpO1xuICAgIGNvbnN0IG9iamVjdE5hbWUgPSBjdHgubW9kZSA/IGN0eC5tb2RlWzBdLnRvVXBwZXJDYXNlKCkgKyBjdHgubW9kZS5zdWJzdHJpbmcoMSkudG9Mb3dlckNhc2UoKSA6ICdPYmplY3QnO1xuXG4gICAgcmV0dXJuIHRoaXMuc2hvdyh7XG4gICAgICB0aXRsZTogJ0Vycm9yJyxcbiAgICAgIGRlc2NyaXB0aW9uOiBgJHtvYmplY3ROYW1lfSBDYW5ub3QgYmUgU2F2ZWRgLFxuICAgICAgcHJpbWFyeUJ1dHRvbjogJ09LJyxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzaG93UXVvdGVSZWFkb25seU1vZGVEaWFsb2coKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuc2hvdyh7XG4gICAgICB0aXRsZTogJ1F1b3RlIENhbm5vdCBiZSBTYXZlZCcsXG4gICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgJ0l0IGlzIG9ubHkgcG9zc2libGUgdG8gc2F2ZSBxdW90ZXMgd2l0aCB0aGUg4oCcRHJhZnTigJ0gc3RhdHVzLiBQbGVhc2UgY3JlYXRlIGEgbmV3IHF1b3RlIHRvIG1ha2UgYW5kIHNhdmUgY2hhbmdlcy4nLFxuICAgICAgcHJpbWFyeUJ1dHRvbjogJ09LJyxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzaG93UXVvdGVPdXRzaWRlU2hvcHBpbmdDYXJ0RGlhbG9nKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLnNob3coe1xuICAgICAgdGl0bGU6ICdRdW90ZSBDYW5ub3QgYmUgU2F2ZWQnLFxuICAgICAgZGVzY3JpcHRpb246ICdJdCBpcyBvbmx5IHBvc3NpYmxlIHRvIHNhdmUgcXVvdGVzIGZyb20gdGhlIFNob3BwaW5nIENhcnQuIFRvIHByb2NlZWQsIGdvIHRvIHRoZSBTaG9wcGluZyBDYXJ0LicsXG4gICAgICBwcmltYXJ5QnV0dG9uOiAnT0snLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHNob3dBY2NvdW50Tm9DaGFuZ2VzRGlhbG9nKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLnNob3coe1xuICAgICAgdGl0bGU6ICdObyBDaGFuZ2VzIHRvIFNhdmUnLFxuICAgICAgZGVzY3JpcHRpb246ICdUaGVyZSBhcmUgbm8gY2hhbmdlcyBzaW5jZSB0aGUgbGFzdCB1cGRhdGUuIFBsZWFzZSBtYWtlIGNoYW5nZXMgdG8gcHJvY2VlZC4nLFxuICAgICAgcHJpbWFyeUJ1dHRvbjogJ09LJyxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzaG93VW5zYXZlZENoYW5nZXNEaWFsb2coKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuc2hvdyh7XG4gICAgICB0aXRsZTogJ1Vuc2F2ZWQgQ2hhbmdlcycsXG4gICAgICBkZXNjcmlwdGlvbjogJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBsZWF2ZSB0aGlzIHBhZ2UgYW5kIGRpc2NhcmQgeW91ciB1bnNhdmVkIGNoYW5nZXM/JyxcbiAgICAgIHByaW1hcnlCdXR0b246ICdLZWVwIEVkaXRpbmcnLFxuICAgICAgc2Vjb25kYXJ5QnV0dG9uOiAnRGlzY2FyZCBDaGFuZ2VzJyxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzaG93UmVhZG9ubHlRdW90ZVN1Ym1pdEZhaWx1cmVEaWFsb2coKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuc2hvdyh7XG4gICAgICB0aXRsZTogJ0Nhbm5vdCBTdWJtaXQgZm9yIEFwcHJvdmFsJyxcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAnSXQgaXMgb25seSBwb3NzaWJsZSB0byBzdWJtaXQgZm9yIGFwcHJvdmFsIHF1b3RlcyB3aXRoIHRoZSDigJxEcmFmdOKAnCBzdGF0dXMuIFBsZWFzZSBjcmVhdGUgYSBuZXcgcXVvdGUgdG8gcHJvY2VlZC4nLFxuICAgICAgcHJpbWFyeUJ1dHRvbjogJ09LJyxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzaG93T3V0c2lkZVNob3BwaW5nQ2FydFF1b3RlU3VibWl0RmFpbHVyZURpYWxvZygpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5zaG93KHtcbiAgICAgIHRpdGxlOiAnQ2Fubm90IFN1Ym1pdCBmb3IgQXBwcm92YWwnLFxuICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICdJdCBpcyBvbmx5IHBvc3NpYmxlIHRvIHN1Ym1pdCBxdW90ZXMgZm9yIGFwcHJvdmFsIGZyb20gdGhlIFNob3BwaW5nIENhcnQuIFRvIHByb2NlZWQsIGdvIHRvIHRoZSBTaG9wcGluZyBDYXJ0LicsXG4gICAgICBwcmltYXJ5QnV0dG9uOiAnT0snLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHNob3dBY2NvdW50U3VibWl0RmFpbHVyZURpYWxvZygpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5zaG93KHtcbiAgICAgIHRpdGxlOiAnU2F2ZSBDaGFuZ2VzJyxcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAnVG8gc3VibWl0IGZvciBhcHByb3ZhbCwgc2F2ZSB0aGUgcXVvdGUgZmlyc3QsIGFuZCB0aGVuIHN1Ym1pdCBpdCBmb3IgYXBwcm92YWwgZnJvbSB0aGUgU2hvcHBpbmcgQ2FydC4nLFxuICAgICAgcHJpbWFyeUJ1dHRvbjogJ09LJyxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzaG93RG9jZ2VuQWNjb3VudFVuc2F2ZWRDaGFuZ2VzRGlhbG9nKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLnNob3coe1xuICAgICAgdGl0bGU6ICdTYXZlIFF1b3RlJyxcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAnVG8gZ2VuZXJhdGUgYSBkb2N1bWVudCwgc2F2ZSB0aGUgcXVvdGUgZmlyc3QsIGFuZCB0aGVuIGdlbmVyYXRlIHRoZSBkb2N1bWVudCBmcm9tIHRoZSBTaG9wcGluZyBDYXJ0LicsXG4gICAgICBwcmltYXJ5QnV0dG9uOiAnT0snLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHNob3dEb2NnZW5SZWFkb25seURpYWxvZygpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5zaG93KHtcbiAgICAgIHRpdGxlOiAnRG9jdW1lbnQgR2VuZXJhdGlvbiBpcyBub3QgQXZhaWxhYmxlJyxcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAnSXQgaXMgb25seSBwb3NzaWJsZSB0byBnZW5lcmF0ZSBkb2N1bWVudHMgZm9yIHF1b3RlcyB3aXRoIHRoZSDigJxEcmFmdOKAnSBzdGF0dXMuIFBsZWFzZSBjcmVhdGUgYSBuZXcgcXVvdGUgdG8gZ2VuZXJhdGUgYSBkb2N1bWVudC4nLFxuICAgICAgcHJpbWFyeUJ1dHRvbjogJ09LJyxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzaG93RG9jZ2VuT3V0c2lkZVNob3BwaW5nQ2FydERpYWxvZygpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5zaG93KHtcbiAgICAgIHRpdGxlOiAnRG9jdW1lbnQgR2VuZXJhdGlvbiBpcyBub3QgQXZhaWxhYmxlJyxcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAnSXQgaXMgb25seSBwb3NzaWJsZSB0byBnZW5lcmF0ZSBkb2N1bWVudHMgZm9yIHF1b3RlcyBmcm9tIHRoZSBTaG9wcGluZyBDYXJ0LiBUbyBwcm9jZWVkLCBnbyB0byB0aGUgU2hvcHBpbmcgQ2FydC4nLFxuICAgICAgcHJpbWFyeUJ1dHRvbjogJ09LJyxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzaG93RG9jZ2VuVW5zYXZlZENoYW5nZXNEaWFsb2coKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuc2hvdyh7XG4gICAgICB0aXRsZTogJ1Vuc2F2ZWQgQ2hhbmdlcycsXG4gICAgICBkZXNjcmlwdGlvbjogJ1RvIGdlbmVyYXRlIGEgZG9jdW1lbnQsIHNhdmUgdGhlIHF1b3RlIGZpcnN0LicsXG4gICAgICBwcmltYXJ5QnV0dG9uOiAnU2F2ZSBhbmQgcHJvY2VlZCcsXG4gICAgICBzZWNvbmRhcnlCdXR0b246ICdDYW5jZWwnLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
@@ -0,0 +1,136 @@
|
|
1
|
+
import { Injectable } from '@angular/core';
|
2
|
+
import { NavigationCancel, NavigationEnd, NavigationError, NavigationStart, } from '@angular/router';
|
3
|
+
import { SalesforceIdUtils } from '@veloceapps/core';
|
4
|
+
import { distinctUntilChanged, filter, map, shareReplay, startWith } from 'rxjs';
|
5
|
+
import { VELOCE_FLOW_ROOT_ROUTE } from '../constants';
|
6
|
+
import * as i0 from "@angular/core";
|
7
|
+
import * as i1 from "@angular/router";
|
8
|
+
import * as i2 from "@veloceapps/sdk/core";
|
9
|
+
export class FlowRouterService {
|
10
|
+
constructor(router, route, contextService) {
|
11
|
+
this.router = router;
|
12
|
+
this.route = route;
|
13
|
+
this.contextService = contextService;
|
14
|
+
this.urlHistory = [];
|
15
|
+
this.getLastChildRoute = (route) => {
|
16
|
+
return route.firstChild ? this.getLastChildRoute(route.firstChild) : route;
|
17
|
+
};
|
18
|
+
this.getNthChildRoute = (route, index) => {
|
19
|
+
if (index <= 0) {
|
20
|
+
return route;
|
21
|
+
}
|
22
|
+
return route.firstChild ? this.getNthChildRoute(route.firstChild, index - 1) : route;
|
23
|
+
};
|
24
|
+
this.getLastChildRouteSnapshot = (route) => {
|
25
|
+
return route.firstChild ? this.getLastChildRouteSnapshot(route.firstChild) : route;
|
26
|
+
};
|
27
|
+
this.watchLastChildRoute$ = (route) => {
|
28
|
+
return this.routeChange$.pipe(map(() => this.getLastChildRouteSnapshot(route.snapshot)));
|
29
|
+
};
|
30
|
+
this.getLastChildParams = (route) => {
|
31
|
+
return route.firstChild ? this.getLastChildParams(route.firstChild) : route.params;
|
32
|
+
};
|
33
|
+
this.watchLastChildParams$ = (route) => {
|
34
|
+
return this.routeChange$.pipe(map(() => this.getLastChildParams(route.snapshot)));
|
35
|
+
};
|
36
|
+
this.getFlowSubpath$ = () => {
|
37
|
+
return this.route$.pipe(map(route => {
|
38
|
+
const url = route.url.join('/');
|
39
|
+
const flowRootUrl = this.getFlowRootPath(route);
|
40
|
+
return url.replace(flowRootUrl, '');
|
41
|
+
}));
|
42
|
+
};
|
43
|
+
this.routeChange$ = this.router.events.pipe(filter(e => e instanceof NavigationEnd), shareReplay());
|
44
|
+
this.lastChildParams$ = this.watchLastChildParams$(this.route).pipe(startWith(this.getLastChildParams(this.route.snapshot)), shareReplay());
|
45
|
+
this.lastChildRoute$ = this.watchLastChildRoute$(this.route).pipe(startWith(this.getLastChildRouteSnapshot(this.route.snapshot)), shareReplay());
|
46
|
+
this.loading$ = this.router.events.pipe(filter(e => e instanceof NavigationStart ||
|
47
|
+
e instanceof NavigationCancel ||
|
48
|
+
e instanceof NavigationEnd ||
|
49
|
+
e instanceof NavigationError), map(e => e instanceof NavigationStart), startWith(false), distinctUntilChanged());
|
50
|
+
this.router.events.pipe(filter(e => e instanceof NavigationEnd)).subscribe(() => {
|
51
|
+
this.urlHistory.push(this.router.url);
|
52
|
+
});
|
53
|
+
}
|
54
|
+
getFlowRootRoute(route) {
|
55
|
+
var _a;
|
56
|
+
const path = [...route.pathFromRoot];
|
57
|
+
while (path.length) {
|
58
|
+
const parent = path.pop();
|
59
|
+
if (!parent) {
|
60
|
+
break;
|
61
|
+
}
|
62
|
+
if (((_a = parent.routeConfig) === null || _a === void 0 ? void 0 : _a.id) === VELOCE_FLOW_ROOT_ROUTE) {
|
63
|
+
return parent;
|
64
|
+
}
|
65
|
+
}
|
66
|
+
return;
|
67
|
+
}
|
68
|
+
getFlowRootPath(route) {
|
69
|
+
const rootRoute = this.getFlowRootRoute(route);
|
70
|
+
if (!rootRoute) {
|
71
|
+
return '';
|
72
|
+
}
|
73
|
+
const path = rootRoute.pathFromRoot
|
74
|
+
.map(r => { var _a; return (_a = r.routeConfig) === null || _a === void 0 ? void 0 : _a.path; })
|
75
|
+
.filter(Boolean)
|
76
|
+
.join('/');
|
77
|
+
return '/' + path;
|
78
|
+
}
|
79
|
+
get route$() {
|
80
|
+
return this.lastChildRoute$;
|
81
|
+
}
|
82
|
+
get params$() {
|
83
|
+
return this.lastChildParams$;
|
84
|
+
}
|
85
|
+
isConfigurationRoute$() {
|
86
|
+
return this.getFlowSubpath$().pipe(map(url => url.startsWith('product')));
|
87
|
+
}
|
88
|
+
isCartRoute$() {
|
89
|
+
return this.getFlowSubpath$().pipe(map(url => url.startsWith('cart')));
|
90
|
+
}
|
91
|
+
isCatalogRoute$() {
|
92
|
+
return this.getFlowSubpath$().pipe(map(url => url.startsWith('catalog')));
|
93
|
+
}
|
94
|
+
navigateBack() {
|
95
|
+
const prevUrl = this.urlHistory[this.urlHistory.length - 2];
|
96
|
+
if (prevUrl) {
|
97
|
+
this.router.navigateByUrl(prevUrl);
|
98
|
+
}
|
99
|
+
}
|
100
|
+
navigateToProductConfiguration(productId, lineItemId) {
|
101
|
+
this.contextService.update({ properties: { productId, lineItemId } });
|
102
|
+
const routeSnapshot = this.getLastChildRouteSnapshot(this.route.snapshot);
|
103
|
+
const flowRouteUrl = this.getFlowRootPath(routeSnapshot);
|
104
|
+
this.router.navigate([flowRouteUrl, 'product'], {
|
105
|
+
queryParams: Object.assign(Object.assign({}, routeSnapshot.queryParams), { productId }),
|
106
|
+
});
|
107
|
+
}
|
108
|
+
navigateToShoppingCart() {
|
109
|
+
const routeSnapshot = this.getLastChildRouteSnapshot(this.route.snapshot);
|
110
|
+
const flowRouteUrl = this.getFlowRootPath(routeSnapshot);
|
111
|
+
this.router.navigate([flowRouteUrl, 'cart'], { queryParams: routeSnapshot.queryParams });
|
112
|
+
}
|
113
|
+
navigateToCatalog() {
|
114
|
+
const routeSnapshot = this.getLastChildRouteSnapshot(this.route.snapshot);
|
115
|
+
const flowRouteUrl = this.getFlowRootPath(routeSnapshot);
|
116
|
+
this.router.navigate([flowRouteUrl, 'catalog'], { queryParams: routeSnapshot.queryParams });
|
117
|
+
}
|
118
|
+
switchObject(id) {
|
119
|
+
const routeSnapshot = this.getLastChildRouteSnapshot(this.route.snapshot);
|
120
|
+
const route = this.getLastChildRoute(this.route);
|
121
|
+
const objName = SalesforceIdUtils.getSfObjectNameById(id);
|
122
|
+
const queryParams = {
|
123
|
+
quoteId: objName === 'Quote' ? id : undefined,
|
124
|
+
accountId: objName === 'Account' ? id : undefined,
|
125
|
+
orderId: objName === 'Order' ? id : undefined,
|
126
|
+
};
|
127
|
+
this.router.navigate([], { relativeTo: route, queryParams: Object.assign(Object.assign({}, routeSnapshot.queryParams), queryParams) });
|
128
|
+
}
|
129
|
+
}
|
130
|
+
FlowRouterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: FlowRouterService, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }, { token: i2.ContextService }], target: i0.ɵɵFactoryTarget.Injectable });
|
131
|
+
FlowRouterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: FlowRouterService, providedIn: 'root' });
|
132
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: FlowRouterService, decorators: [{
|
133
|
+
type: Injectable,
|
134
|
+
args: [{ providedIn: 'root' }]
|
135
|
+
}], ctorParameters: function () { return [{ type: i1.Router }, { type: i1.ActivatedRoute }, { type: i2.ContextService }]; } });
|
136
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvdy1yb3V0ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL3NyYy9zZXJ2aWNlcy9mbG93LXJvdXRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUlMLGdCQUFnQixFQUNoQixhQUFhLEVBQ2IsZUFBZSxFQUNmLGVBQWUsR0FHaEIsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVyRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBYyxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7OztBQUl0RCxNQUFNLE9BQU8saUJBQWlCO0lBUTVCLFlBQW9CLE1BQWMsRUFBVSxLQUFxQixFQUFVLGNBQThCO1FBQXJGLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBVSxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUFVLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUpqRyxlQUFVLEdBQWEsRUFBRSxDQUFDO1FBNkUzQixzQkFBaUIsR0FBRyxDQUFDLEtBQXFCLEVBQWtCLEVBQUU7WUFDbkUsT0FBTyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDN0UsQ0FBQyxDQUFDO1FBRUsscUJBQWdCLEdBQUcsQ0FBQyxLQUFxQixFQUFFLEtBQWEsRUFBa0IsRUFBRTtZQUNqRixJQUFJLEtBQUssSUFBSSxDQUFDLEVBQUU7Z0JBQ2QsT0FBTyxLQUFLLENBQUM7YUFDZDtZQUVELE9BQU8s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UUFDNUIsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDMUUsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVqRCxNQUFNLE9BQU8sR0FBRyxpQkFBaUIsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUUxRCxNQUFNLFdBQVcsR0FBRztZQUNsQixPQUFPLEVBQUUsT0FBTyxLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTO1lBQzdDLFNBQVMsRUFBRSxPQUFPLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVM7WUFDakQsT0FBTyxFQUFFLE9BQU8sS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUztTQUM5QyxDQUFDO1FBQ0YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxXQUFXLGtDQUFPLGFBQWEsQ0FBQyxXQUFXLEdBQUssV0FBVyxDQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ2pILENBQUM7OytHQWhMVSxpQkFBaUI7bUhBQWpCLGlCQUFpQixjQURKLE1BQU07NEZBQ25CLGlCQUFpQjtrQkFEN0IsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBY3RpdmF0ZWRSb3V0ZSxcbiAgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCxcbiAgRXZlbnQsXG4gIE5hdmlnYXRpb25DYW5jZWwsXG4gIE5hdmlnYXRpb25FbmQsXG4gIE5hdmlnYXRpb25FcnJvcixcbiAgTmF2aWdhdGlvblN0YXJ0LFxuICBQYXJhbXMsXG4gIFJvdXRlcixcbn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFNhbGVzZm9yY2VJZFV0aWxzIH0gZnJvbSAnQHZlbG9jZWFwcHMvY29yZSc7XG5pbXBvcnQgeyBDb250ZXh0U2VydmljZSB9IGZyb20gJ0B2ZWxvY2VhcHBzL3Nkay9jb3JlJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIG1hcCwgT2JzZXJ2YWJsZSwgc2hhcmVSZXBsYXksIHN0YXJ0V2l0aCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVkVMT0NFX0ZMT1dfUk9PVF9ST1VURSB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBSb3V0ZVdpdGhJZCB9IGZyb20gJy4uL3R5cGVzL3JvdXRlLnR5cGVzJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBGbG93Um91dGVyU2VydmljZSB7XG4gIHByaXZhdGUgcm91dGVDaGFuZ2UkOiBPYnNlcnZhYmxlPEV2ZW50PjtcbiAgcHJpdmF0ZSBsYXN0Q2hpbGRQYXJhbXMkOiBPYnNlcnZhYmxlPFBhcmFtcz47XG4gIHByaXZhdGUgbGFzdENoaWxkUm91dGUkOiBPYnNlcnZhYmxlPEFjdGl2YXRlZFJvdXRlU25hcHNob3Q+O1xuICBwcml2YXRlIHVybEhpc3Rvcnk6IHN0cmluZ1tdID0gW107XG5cbiAgcHVibGljIGxvYWRpbmckOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLCBwcml2YXRlIGNvbnRleHRTZXJ2aWNlOiBDb250ZXh0U2VydmljZSkge1xuICAgIHRoaXMucm91dGVDaGFuZ2UkID0gdGhpcy5yb3V0ZXIuZXZlbnRzLnBpcGUoXG4gICAgICBmaWx0ZXIoZSA9PiBlIGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCksXG4gICAgICBzaGFyZVJlcGxheSgpLFxuICAgICk7XG5cbiAgICB0aGlzLmxhc3RDaGlsZFBhcmFtcyQgPSB0aGlzLndhdGNoTGFzdENoaWxkUGFyYW1zJCh0aGlzLnJvdXRlKS5waXBlKFxuICAgICAgc3RhcnRXaXRoKHRoaXMuZ2V0TGFzdENoaWxkUGFyYW1zKHRoaXMucm91dGUuc25hcHNob3QpKSxcbiAgICAgIHNoYXJlUmVwbGF5KCksXG4gICAgKTtcbiAgICB0aGlzLmxhc3RDaGlsZFJvdXRlJCA9IHRoaXMud2F0Y2hMYXN0Q2hpbGRSb3V0ZSQodGhpcy5yb3V0ZSkucGlwZShcbiAgICAgIHN0YXJ0V2l0aCh0aGlzLmdldExhc3RDaGlsZFJvdXRlU25hcHNob3QodGhpcy5yb3V0ZS5zbmFwc2hvdCkpLFxuICAgICAgc2hhcmVSZXBsYXkoKSxcbiAgICApO1xuXG4gICAgdGhpcy5sb2FkaW5nJCA9IHRoaXMucm91dGVyLmV2ZW50cy5waXBlKFxuICAgICAgZmlsdGVyKFxuICAgICAgICBlID0+XG4gICAgICAgICAgZSBpbnN0YW5jZW9mIE5hdmlnYXRpb25TdGFydCB8fFxuICAgICAgICAgIGUgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uQ2FuY2VsIHx8XG4gICAgICAgICAgZSBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQgfHxcbiAgICAgICAgICBlIGluc3RhbmNlb2YgTmF2aWdhdGlvbkVycm9yLFxuICAgICAgKSxcbiAgICAgIG1hcChlID0+IGUgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uU3RhcnQpLFxuICAgICAgc3RhcnRXaXRoKGZhbHNlKSxcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgKTtcblxuICAgIHRoaXMucm91dGVyLmV2ZW50cy5waXBlKGZpbHRlcihlID0+IGUgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMudXJsSGlzdG9yeS5wdXNoKHRoaXMucm91dGVyLnVybCk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0Rmxvd1Jvb3RSb3V0ZShyb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCk6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IHBhdGggPSBbLi4ucm91dGUucGF0aEZyb21Sb290XTtcblxuICAgIHdoaWxlIChwYXRoLmxlbmd0aCkge1xuICAgICAgY29uc3QgcGFyZW50ID0gcGF0aC5wb3AoKTtcblxuICAgICAgaWYgKCFwYXJlbnQpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGlmICgocGFyZW50LnJvdXRlQ29uZmlnIGFzIFJvdXRlV2l0aElkKT8uaWQgPT09IFZFTE9DRV9GTE9XX1JPT1RfUk9VVEUpIHtcbiAgICAgICAgcmV0dXJuIHBhcmVudDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm47XG4gIH1cblxuICBwdWJsaWMgZ2V0Rmxvd1Jvb3RQYXRoKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KTogc3RyaW5nIHtcbiAgICBjb25zdCByb290Um91dGUgPSB0aGlzLmdldEZsb3dSb290Um91dGUocm91dGUpO1xuICAgIGlmICghcm9vdFJvdXRlKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgY29uc3QgcGF0aCA9IHJvb3RSb3V0ZS5wYXRoRnJvbVJvb3RcbiAgICAgIC5tYXAociA9PiByLnJvdXRlQ29uZmlnPy5wYXRoKVxuICAgICAgLmZpbHRlcihCb29sZWFuKVxuICAgICAgLmpvaW4oJy8nKTtcblxuICAgIHJldHVybiAnLycgKyBwYXRoO1xuICB9XG5cbiAgcHVibGljIGdldCByb3V0ZSQoKTogT2JzZXJ2YWJsZTxBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90PiB7XG4gICAgcmV0dXJuIHRoaXMubGFzdENoaWxkUm91dGUkO1xuICB9XG5cbiAgcHVibGljIGdldCBwYXJhbXMkKCk6IE9ic2VydmFibGU8UGFyYW1zPiB7XG4gICAgcmV0dXJuIHRoaXMubGFzdENoaWxkUGFyYW1zJDtcbiAgfVxuXG4gIHB1YmxpYyBnZXRMYXN0Q2hpbGRSb3V0ZSA9IChyb3V0ZTogQWN0aXZhdGVkUm91dGUpOiBBY3RpdmF0ZWRSb3V0ZSA9PiB7XG4gICAgcmV0dXJuIHJvdXRlLmZpcnN0Q2hpbGQgPyB0aGlzLmdldExhc3RDaGlsZFJvdXRlKHJvdXRlLmZpcnN0Q2hpbGQpIDogcm91dGU7XG4gIH07XG5cbiAgcHVibGljIGdldE50aENoaWxkUm91dGUgPSAocm91dGU6IEFjdGl2YXRlZFJvdXRlLCBpbmRleDogbnVtYmVyKTogQWN0aXZhdGVkUm91dGUgPT4ge1xuICAgIGlmIChpbmRleCA8PSAwKSB7XG4gICAgICByZXR1cm4gcm91dGU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJvdXRlLmZpcnN0Q2hpbGQgPyB0aGlzLmdldE50aENoaWxkUm91dGUocm91dGUuZmlyc3RDaGlsZCwgaW5kZXggLSAxKSA6IHJvdXRlO1xuICB9O1xuXG4gIHB1YmxpYyBnZXRMYXN0Q2hpbGRSb3V0ZVNuYXBzaG90ID0gKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCA9PiB7XG4gICAgcmV0dXJuIHJvdXRlLmZpcnN0Q2hpbGQgPyB0aGlzLmdldExhc3RDaGlsZFJvdXRlU25hcHNob3Qocm91dGUuZmlyc3RDaGlsZCkgOiByb3V0ZTtcbiAgfTtcblxuICBwdWJsaWMgd2F0Y2hMYXN0Q2hpbGRSb3V0ZSQgPSAocm91dGU6IEFjdGl2YXRlZFJvdXRlKTogT2JzZXJ2YWJsZTxBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90PiA9PiB7XG4gICAgcmV0dXJuIHRoaXMucm91dGVDaGFuZ2UkLnBpcGUobWFwKCgpID0+IHRoaXMuZ2V0TGFzdENoaWxkUm91dGVTbmFwc2hvdChyb3V0ZS5zbmFwc2hvdCkpKTtcbiAgfTtcblxuICBwdWJsaWMgZ2V0TGFzdENoaWxkUGFyYW1zID0gKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KTogUGFyYW1zID0+IHtcbiAgICByZXR1cm4gcm91dGUuZmlyc3RDaGlsZCA/IHRoaXMuZ2V0TGFzdENoaWxkUGFyYW1zKHJvdXRlLmZpcnN0Q2hpbGQpIDogcm91dGUucGFyYW1zO1xuICB9O1xuXG4gIHB1YmxpYyB3YXRjaExhc3RDaGlsZFBhcmFtcyQgPSAocm91dGU6IEFjdGl2YXRlZFJvdXRlKTogT2JzZXJ2YWJsZTxQYXJhbXM+ID0+IHtcbiAgICByZXR1cm4gdGhpcy5yb3V0ZUNoYW5nZSQucGlwZShtYXAoKCkgPT4gdGhpcy5nZXRMYXN0Q2hpbGRQYXJhbXMocm91dGUuc25hcHNob3QpKSk7XG4gIH07XG5cbiAgcHVibGljIGdldEZsb3dTdWJwYXRoJCA9ICgpOiBPYnNlcnZhYmxlPHN0cmluZz4gPT4ge1xuICAgIHJldHVybiB0aGlzLnJvdXRlJC5waXBlKFxuICAgICAgbWFwKHJvdXRlID0+IHtcbiAgICAgICAgY29uc3QgdXJsID0gcm91dGUudXJsLmpvaW4oJy8nKTtcbiAgICAgICAgY29uc3QgZmxvd1Jvb3RVcmwgPSB0aGlzLmdldEZsb3dSb290UGF0aChyb3V0ZSk7XG4gICAgICAgIHJldHVybiB1cmwucmVwbGFjZShmbG93Um9vdFVybCwgJycpO1xuICAgICAgfSksXG4gICAgKTtcbiAgfTtcblxuICBwdWJsaWMgaXNDb25maWd1cmF0aW9uUm91dGUkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLmdldEZsb3dTdWJwYXRoJCgpLnBpcGUobWFwKHVybCA9PiB1cmwuc3RhcnRzV2l0aCgncHJvZHVjdCcpKSk7XG4gIH1cblxuICBwdWJsaWMgaXNDYXJ0Um91dGUkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLmdldEZsb3dTdWJwYXRoJCgpLnBpcGUobWFwKHVybCA9PiB1cmwuc3RhcnRzV2l0aCgnY2FydCcpKSk7XG4gIH1cblxuICBwdWJsaWMgaXNDYXRhbG9nUm91dGUkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLmdldEZsb3dTdWJwYXRoJCgpLnBpcGUobWFwKHVybCA9PiB1cmwuc3RhcnRzV2l0aCgnY2F0YWxvZycpKSk7XG4gIH1cblxuICBwdWJsaWMgbmF2aWdhdGVCYWNrKCk6IHZvaWQge1xuICAgIGNvbnN0IHByZXZVcmwgPSB0aGlzLnVybEhpc3RvcnlbdGhpcy51cmxIaXN0b3J5Lmxlbmd0aCAtIDJdO1xuXG4gICAgaWYgKHByZXZVcmwpIHtcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwocHJldlVybCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5hdmlnYXRlVG9Qcm9kdWN0Q29uZmlndXJhdGlvbihwcm9kdWN0SWQ6IHN0cmluZywgbGluZUl0ZW1JZD86IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuY29udGV4dFNlcnZpY2UudXBkYXRlKHsgcHJvcGVydGllczogeyBwcm9kdWN0SWQsIGxpbmVJdGVtSWQgfSB9KTtcblxuICAgIGNvbnN0IHJvdXRlU25hcHNob3QgPSB0aGlzLmdldExhc3RDaGlsZFJvdXRlU25hcHNob3QodGhpcy5yb3V0ZS5zbmFwc2hvdCk7XG4gICAgY29uc3QgZmxvd1JvdXRlVXJsID0gdGhpcy5nZXRGbG93Um9vdFBhdGgocm91dGVTbmFwc2hvdCk7XG5cbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbZmxvd1JvdXRlVXJsLCAncHJvZHVjdCddLCB7XG4gICAgICBxdWVyeVBhcmFtczogeyAuLi5yb3V0ZVNuYXBzaG90LnF1ZXJ5UGFyYW1zLCBwcm9kdWN0SWQgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuYXZpZ2F0ZVRvU2hvcHBpbmdDYXJ0KCk6IHZvaWQge1xuICAgIGNvbnN0IHJvdXRlU25hcHNob3QgPSB0aGlzLmdldExhc3RDaGlsZFJvdXRlU25hcHNob3QodGhpcy5yb3V0ZS5zbmFwc2hvdCk7XG4gICAgY29uc3QgZmxvd1JvdXRlVXJsID0gdGhpcy5nZXRGbG93Um9vdFBhdGgocm91dGVTbmFwc2hvdCk7XG5cbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbZmxvd1JvdXRlVXJsLCAnY2FydCddLCB7IHF1ZXJ5UGFyYW1zOiByb3V0ZVNuYXBzaG90LnF1ZXJ5UGFyYW1zIH0pO1xuICB9XG5cbiAgcHVibGljIG5hdmlnYXRlVG9DYXRhbG9nKCk6IHZvaWQge1xuICAgIGNvbnN0IHJvdXRlU25hcHNob3QgPSB0aGlzLmdldExhc3RDaGlsZFJvdXRlU25hcHNob3QodGhpcy5yb3V0ZS5zbmFwc2hvdCk7XG4gICAgY29uc3QgZmxvd1JvdXRlVXJsID0gdGhpcy5nZXRGbG93Um9vdFBhdGgocm91dGVTbmFwc2hvdCk7XG5cbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbZmxvd1JvdXRlVXJsLCAnY2F0YWxvZyddLCB7IHF1ZXJ5UGFyYW1zOiByb3V0ZVNuYXBzaG90LnF1ZXJ5UGFyYW1zIH0pO1xuICB9XG5cbiAgcHVibGljIHN3aXRjaE9iamVjdChpZDogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3Qgcm91dGVTbmFwc2hvdCA9IHRoaXMuZ2V0TGFzdENoaWxkUm91dGVTbmFwc2hvdCh0aGlzLnJvdXRlLnNuYXBzaG90KTtcbiAgICBjb25zdCByb3V0ZSA9IHRoaXMuZ2V0TGFzdENoaWxkUm91dGUodGhpcy5yb3V0ZSk7XG5cbiAgICBjb25zdCBvYmpOYW1lID0gU2FsZXNmb3JjZUlkVXRpbHMuZ2V0U2ZPYmplY3ROYW1lQnlJZChpZCk7XG5cbiAgICBjb25zdCBxdWVyeVBhcmFtcyA9IHtcbiAgICAgIHF1b3RlSWQ6IG9iak5hbWUgPT09ICdRdW90ZScgPyBpZCA6IHVuZGVmaW5lZCxcbiAgICAgIGFjY291bnRJZDogb2JqTmFtZSA9PT0gJ0FjY291bnQnID8gaWQgOiB1bmRlZmluZWQsXG4gICAgICBvcmRlcklkOiBvYmpOYW1lID09PSAnT3JkZXInID8gaWQgOiB1bmRlZmluZWQsXG4gICAgfTtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXSwgeyByZWxhdGl2ZVRvOiByb3V0ZSwgcXVlcnlQYXJhbXM6IHsgLi4ucm91dGVTbmFwc2hvdC5xdWVyeVBhcmFtcywgLi4ucXVlcnlQYXJhbXMgfSB9KTtcbiAgfVxufVxuIl19
|