@veloceapps/sdk 0.0.0-watch
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 +7 -0
- package/cms/cms.actions.d.ts +12 -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 +35 -0
- package/cms/components/element-renderer/element-renderer.module.d.ts +7 -0
- package/cms/components/element.component.d.ts +13 -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 +9 -0
- package/cms/types/common.types.d.ts +103 -0
- package/cms/types/configuration.types.d.ts +17 -0
- package/cms/types/elements.types.d.ts +2 -0
- package/cms/types/index.d.ts +5 -0
- package/cms/types/integration.types.d.ts +4 -0
- package/cms/types/path.types.d.ts +11 -0
- package/cms/utils/element.utils.d.ts +15 -0
- package/cms/utils/elements-resolver.d.ts +20 -0
- package/cms/utils/index.d.ts +3 -0
- package/cms/utils/path.utils.d.ts +5 -0
- package/cms/veloce-sdk-cms.d.ts +5 -0
- package/cms/vendor-map.d.ts +689 -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 +28 -0
- package/core/modules/configuration/services/configuration.service.d.ts +40 -0
- package/core/modules/configuration/services/runtime-context.service.d.ts +14 -0
- package/core/modules/configuration/types/configuration-runtime.types.d.ts +6 -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 +37 -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 +17 -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 +31 -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/veloce-sdk-core.d.ts +5 -0
- package/esm2015/cms/cms.actions.js +17 -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 +143 -0
- package/esm2015/cms/components/element-renderer/element-renderer.module.js +16 -0
- package/esm2015/cms/components/element.component.js +31 -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 +105 -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 +94 -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 +19 -0
- package/esm2015/cms/types/common.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 +6 -0
- package/esm2015/cms/types/integration.types.js +2 -0
- package/esm2015/cms/types/path.types.js +2 -0
- package/esm2015/cms/utils/element.utils.js +149 -0
- package/esm2015/cms/utils/elements-resolver.js +108 -0
- package/esm2015/cms/utils/index.js +4 -0
- package/esm2015/cms/utils/path.utils.js +67 -0
- package/esm2015/cms/veloce-sdk-cms.js +5 -0
- package/esm2015/cms/vendor-map.js +35 -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 +90 -0
- package/esm2015/core/modules/configuration/services/configuration.service.js +153 -0
- package/esm2015/core/modules/configuration/services/runtime-context.service.js +61 -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 +90 -0
- package/esm2015/core/modules/flow-configuration/services/flow-update.service.js +114 -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 +44 -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 +88 -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 +98 -0
- package/esm2015/core/utils/line-item.worker.js +19 -0
- package/esm2015/core/veloce-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 +427 -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 +28 -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/veloce-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/header/cart-overlay/cart-preview.component.js +116 -0
- package/esm2015/src/components/header/cart-overlay/cart-preview.module.js +23 -0
- package/esm2015/src/components/header/header.component.js +196 -0
- package/esm2015/src/components/header/header.module.js +23 -0
- package/esm2015/src/components/header/header.types.js +2 -0
- package/esm2015/src/constants.js +2 -0
- package/esm2015/src/flow-routing.module.js +97 -0
- package/esm2015/src/flow.component.js +35 -0
- package/esm2015/src/flow.module.js +52 -0
- package/esm2015/src/guards/context.guard.js +75 -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 +65 -0
- package/esm2015/src/pages/debug/debug.module.js +48 -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 +95 -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/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 +58 -0
- package/esm2015/src/resolvers/quote.resolver.js +45 -0
- package/esm2015/src/services/flow-dialog.service.js +80 -0
- package/esm2015/src/services/flow-router.service.js +124 -0
- package/esm2015/src/services/flow.service.js +67 -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 +12 -0
- package/esm2015/src/utils/index.js +2 -0
- package/esm2015/veloce-sdk.js +5 -0
- package/fesm2015/veloce-sdk-cms.js +1301 -0
- package/fesm2015/veloce-sdk-cms.js.map +1 -0
- package/fesm2015/veloce-sdk-core.js +837 -0
- package/fesm2015/veloce-sdk-core.js.map +1 -0
- package/fesm2015/veloce-sdk-runtime.js +3895 -0
- package/fesm2015/veloce-sdk-runtime.js.map +1 -0
- package/fesm2015/veloce-sdk.js +1635 -0
- package/fesm2015/veloce-sdk.js.map +1 -0
- package/index.d.ts +1 -0
- package/package.json +49 -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/veloce-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/header/cart-overlay/cart-preview.component.d.ts +31 -0
- package/src/components/header/cart-overlay/cart-preview.module.d.ts +13 -0
- package/src/components/header/header.component.d.ts +48 -0
- package/src/components/header/header.module.d.ts +13 -0
- package/src/components/header/header.types.d.ts +19 -0
- package/src/constants.d.ts +1 -0
- package/src/flow-routing.module.d.ts +11 -0
- package/src/flow.component.d.ts +17 -0
- package/src/flow.module.d.ts +15 -0
- package/src/guards/context.guard.d.ts +18 -0
- package/src/guards/index.d.ts +1 -0
- package/src/guards/product-unload.guard.d.ts +16 -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 +27 -0
- package/src/pages/debug/debug.module.d.ts +14 -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 +30 -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/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 +14 -0
- package/src/resolvers/quote.resolver.d.ts +18 -0
- package/src/services/flow-dialog.service.d.ts +20 -0
- package/src/services/flow-router.service.d.ts +35 -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 +1 -0
- package/src/utils/index.d.ts +1 -0
- package/veloce-sdk.d.ts +5 -0
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "../../../services/form-scope.service";
|
|
4
|
+
import * as i2 from "../../../services/collapsible-state.service";
|
|
5
|
+
import * as i3 from "../../../services/section-scope.service";
|
|
6
|
+
import * as i4 from "primeng/api";
|
|
7
|
+
import * as i5 from "@angular/forms";
|
|
8
|
+
import * as i6 from "@angular/common";
|
|
9
|
+
import * as i7 from "ngx-bootstrap/popover";
|
|
10
|
+
import * as i8 from "@veloce/core";
|
|
11
|
+
export class VeloTypeComponent {
|
|
12
|
+
constructor(formScope, collapsibleState, sectionScope, messageService) {
|
|
13
|
+
var _a, _b;
|
|
14
|
+
this.formScope = formScope;
|
|
15
|
+
this.collapsibleState = collapsibleState;
|
|
16
|
+
this.sectionScope = sectionScope;
|
|
17
|
+
this.messageService = messageService;
|
|
18
|
+
this.messageBucketId = 'ui-runtime';
|
|
19
|
+
this.indent = 1;
|
|
20
|
+
this.prices = [];
|
|
21
|
+
this.form = this.formScope.form;
|
|
22
|
+
this.section = this.sectionScope.section;
|
|
23
|
+
this.indent = this.sectionScope.indent;
|
|
24
|
+
this.controlName = this.section.id;
|
|
25
|
+
this.qtyControlName = this.section.id + 'qty';
|
|
26
|
+
this.displayName =
|
|
27
|
+
(((_a = this.section.model) === null || _a === void 0 ? void 0 : _a.properties) && this.section.model.properties.displayName) || ((_b = this.section.model) === null || _b === void 0 ? void 0 : _b.type) || '';
|
|
28
|
+
}
|
|
29
|
+
ngOnInit() {
|
|
30
|
+
var _a, _b;
|
|
31
|
+
if (this.section.pricingEnabled) {
|
|
32
|
+
this.prices = this.getPrices();
|
|
33
|
+
}
|
|
34
|
+
if (this.section.controlType === 'MESSAGE') {
|
|
35
|
+
this.messageService.clear(this.messageBucketId);
|
|
36
|
+
(_b = (_a = this.section.model) === null || _a === void 0 ? void 0 : _a.messages) === null || _b === void 0 ? void 0 : _b.forEach(message => {
|
|
37
|
+
this.messageService.add({ key: this.messageBucketId, summary: message });
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
handleRemove() {
|
|
42
|
+
const updateData = {
|
|
43
|
+
id: this.section.id,
|
|
44
|
+
action: 'remove',
|
|
45
|
+
};
|
|
46
|
+
this.formScope.publishFormUpdate(updateData);
|
|
47
|
+
}
|
|
48
|
+
handleQuantityUpdate() {
|
|
49
|
+
const updateData = {
|
|
50
|
+
id: this.section.id,
|
|
51
|
+
action: 'qtyUpdate',
|
|
52
|
+
};
|
|
53
|
+
this.formScope.publishFormUpdate(updateData);
|
|
54
|
+
}
|
|
55
|
+
toggleCollapse() {
|
|
56
|
+
if (this.section.model) {
|
|
57
|
+
this.collapsibleState.toggleCollapse(this.section.model.id);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
getPrices() {
|
|
61
|
+
var _a;
|
|
62
|
+
let prices = [];
|
|
63
|
+
if ((_a = this.section.model) === null || _a === void 0 ? void 0 : _a.chargeItems) {
|
|
64
|
+
prices = this.section.model.chargeItems.map(pi => {
|
|
65
|
+
const price = {
|
|
66
|
+
listPrice: pi.listPrice,
|
|
67
|
+
netPrice: pi.netPrice,
|
|
68
|
+
chargeMethod: pi.chargeMethod,
|
|
69
|
+
chargeType: pi.chargeType,
|
|
70
|
+
};
|
|
71
|
+
return price;
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
const oneTime = {
|
|
75
|
+
chargeMethod: 'ONE_TIME',
|
|
76
|
+
netPrice: 0,
|
|
77
|
+
listPrice: 0,
|
|
78
|
+
chargeType: '',
|
|
79
|
+
};
|
|
80
|
+
const recurring = {
|
|
81
|
+
chargeMethod: 'RECURRING',
|
|
82
|
+
netPrice: 0,
|
|
83
|
+
listPrice: 0,
|
|
84
|
+
chargeType: '',
|
|
85
|
+
};
|
|
86
|
+
prices.forEach(p => {
|
|
87
|
+
if (p.chargeMethod === oneTime.chargeMethod) {
|
|
88
|
+
this.add(oneTime, p);
|
|
89
|
+
}
|
|
90
|
+
if (p.chargeMethod === recurring.chargeMethod) {
|
|
91
|
+
this.add(recurring, p);
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
const result = [];
|
|
95
|
+
if (oneTime.listPrice > 0) {
|
|
96
|
+
result.push(oneTime);
|
|
97
|
+
}
|
|
98
|
+
if (recurring.listPrice > 0) {
|
|
99
|
+
result.push(recurring);
|
|
100
|
+
}
|
|
101
|
+
return result;
|
|
102
|
+
}
|
|
103
|
+
add(target, src) {
|
|
104
|
+
target.netPrice = target.netPrice + src.netPrice;
|
|
105
|
+
target.listPrice = target.listPrice + src.listPrice;
|
|
106
|
+
if (src.explanation) {
|
|
107
|
+
target.explanation = src.explanation;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
VeloTypeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: VeloTypeComponent, deps: [{ token: i1.FormScopeService }, { token: i2.CollapsibleStateService }, { token: i3.SectionScopeService }, { token: i4.MessageService }], target: i0.ɵɵFactoryTarget.Component });
|
|
112
|
+
VeloTypeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: VeloTypeComponent, selector: "velo-type", ngImport: i0, template: "<div class=\"container-box div-block collapsed container-box-bordered\" [formGroup]=\"form\">\n <div class=\"box-title\">\n <div class=\"header clearfix\">\n <div>\n <div class=\"header-label div-inline\">\n {{ displayName }}\n <span *ngIf=\"prices.length > 0\">\n <span>${{ prices[0].netPrice }}</span>\n <span *ngIf=\"prices.length > 1\">\n <span>, </span>\n <span>${{ prices[1].netPrice }}</span>\n </span>\n </span>\n </div>\n\n <div class=\"header-qty-container input-form-input\">\n <input\n [id]=\"qtyControlName\"\n [formControlName]=\"qtyControlName\"\n (blur)=\"form.controls[qtyControlName].valid && handleQuantityUpdate()\"\n type=\"text\"\n class=\"form-control\"\n size=\"3\"\n />\n <div class=\"validation-message\">\n <div *ngFor=\"let key of form.controls[qtyControlName].errors | values\">\n <span>\n {{ form.controls[qtyControlName]?.errors?.[key].message }}\n </span>\n </div>\n <span *ngIf=\"form.controls[qtyControlName].valid\"> </span>\n </div>\n <span *ngIf=\"prices.length > 0\">\n <div>{{ prices[0].explanation }}</div>\n <span *ngIf=\"prices.length > 1 && prices[1].explanation\">\n <div>{{ prices[1].explanation }}</div>\n </span>\n </span>\n </div>\n </div>\n </div>\n\n <div class=\"box-actions\">\n <ng-container *ngIf=\"section.controlType !== 'MESSAGE'\">\n <ng-template #msgTemplate>\n <div class=\"runtime-info-message\">\n <ul class=\"message-text\">\n <li *ngFor=\"let message of section.model?.messages\">{{ message }}</li>\n </ul>\n </div>\n </ng-template>\n\n <div\n class=\"box-action-button\"\n *ngIf=\"(section.model?.messages?.length ?? 0) > 0\"\n [popover]=\"msgTemplate\"\n placement=\"left\"\n container=\"body\"\n [isOpen]=\"true\"\n >\n <a href=\"javascript:void(0);\">\n <i class=\"fa fa-info check-icon\"></i>\n </a>\n </div>\n </ng-container>\n\n <div\n class=\"box-action-button\"\n (click)=\"toggleCollapse()\"\n [hidden]=\"!section.children || section.children.length < 1\"\n >\n <a><i class=\"fa fa-chevron-down check-icon\"></i></a>\n </div>\n\n <div class=\"box-action-button\" (click)=\"handleRemove()\">\n <a><i class=\"fa fa-trash-o check-icon\"></i></a>\n </div>\n </div>\n </div>\n\n <ng-content></ng-content>\n</div>\n", directives: [{ type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i5.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i7.PopoverDirective, selector: "[popover]", inputs: ["outsideClick", "containerClass", "isOpen", "adaptivePosition", "popover", "popoverContext", "popoverTitle", "placement", "triggers", "container", "delay"], outputs: ["onShown", "onHidden"], exportAs: ["bs-popover"] }], pipes: { "values": i8.ValuesPipe } });
|
|
113
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: VeloTypeComponent, decorators: [{
|
|
114
|
+
type: Component,
|
|
115
|
+
args: [{
|
|
116
|
+
// eslint-disable-next-line @angular-eslint/component-selector
|
|
117
|
+
selector: 'velo-type',
|
|
118
|
+
templateUrl: 'velo-type.component.html',
|
|
119
|
+
}]
|
|
120
|
+
}], ctorParameters: function () { return [{ type: i1.FormScopeService }, { type: i2.CollapsibleStateService }, { type: i3.SectionScopeService }, { type: i4.MessageService }]; } });
|
|
121
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVsby10eXBlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL3J1bnRpbWUvZXhlY3V0aW9uL2NvbXBvbmVudHMvdmVsby10eXBlL3ZlbG8tdHlwZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9ydW50aW1lL2V4ZWN1dGlvbi9jb21wb25lbnRzL3ZlbG8tdHlwZS92ZWxvLXR5cGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7OztBQWNsRCxNQUFNLE9BQU8saUJBQWlCO0lBYTVCLFlBQ1UsU0FBMkIsRUFDM0IsZ0JBQXlDLEVBQ3pDLFlBQWlDLEVBQ2pDLGNBQThCOztRQUg5QixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQXlCO1FBQ3pDLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtRQUNqQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFoQi9CLG9CQUFlLEdBQUcsWUFBWSxDQUFDO1FBS3hDLFdBQU0sR0FBRyxDQUFDLENBQUM7UUFLWCxXQUFNLEdBQXVCLEVBQUUsQ0FBQztRQVE5QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUM7UUFDekMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQztRQUV2QyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ25DLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEdBQUcsS0FBSyxD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ZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFJlY29tbWVuZGVkUHJpY2UsIFNlY3Rpb24gfSBmcm9tICdAdmVsb2NlL2NvcmUnO1xuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQgeyBDb2xsYXBzaWJsZVN0YXRlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2NvbGxhcHNpYmxlLXN0YXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgRm9ybVNjb3BlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2Zvcm0tc2NvcGUuc2VydmljZSc7XG5pbXBvcnQgeyBTZWN0aW9uU2NvcGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvc2VjdGlvbi1zY29wZS5zZXJ2aWNlJztcbmltcG9ydCB7IFVwZGF0ZURhdGEgfSBmcm9tICcuLi8uLi8uLi90eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICBzZWxlY3RvcjogJ3ZlbG8tdHlwZScsXG4gIHRlbXBsYXRlVXJsOiAndmVsby10eXBlLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgVmVsb1R5cGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICByZWFkb25seSBtZXNzYWdlQnVja2V0SWQgPSAndWktcnVudGltZSc7XG5cbiAgY29udHJvbE5hbWU6IHN0cmluZztcbiAgcXR5Q29udHJvbE5hbWU6IHN0cmluZztcbiAgZGlzcGxheU5hbWU6IHN0cmluZztcbiAgaW5kZW50ID0gMTtcblxuICBmb3JtOiBGb3JtR3JvdXA7XG4gIHNlY3Rpb246IFNlY3Rpb247XG5cbiAgcHJpY2VzOiBSZWNvbW1lbmRlZFByaWNlW10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZvcm1TY29wZTogRm9ybVNjb3BlU2VydmljZSxcbiAgICBwcml2YXRlIGNvbGxhcHNpYmxlU3RhdGU6IENvbGxhcHNpYmxlU3RhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgc2VjdGlvblNjb3BlOiBTZWN0aW9uU2NvcGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLFxuICApIHtcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZvcm1TY29wZS5mb3JtO1xuICAgIHRoaXMuc2VjdGlvbiA9IHRoaXMuc2VjdGlvblNjb3BlLnNlY3Rpb247XG4gICAgdGhpcy5pbmRlbnQgPSB0aGlzLnNlY3Rpb25TY29wZS5pbmRlbnQ7XG5cbiAgICB0aGlzLmNvbnRyb2xOYW1lID0gdGhpcy5zZWN0aW9uLmlkO1xuICAgIHRoaXMucXR5Q29udHJvbE5hbWUgPSB0aGlzLnNlY3Rpb24uaWQgKyAncXR5JztcbiAgICB0aGlzLmRpc3BsYXlOYW1lID1cbiAgICAgICh0aGlzLnNlY3Rpb24ubW9kZWw/LnByb3BlcnRpZXMgJiYgdGhpcy5zZWN0aW9uLm1vZGVsLnByb3BlcnRpZXMuZGlzcGxheU5hbWUpIHx8IHRoaXMuc2VjdGlvbi5tb2RlbD8udHlwZSB8fCAnJztcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnNlY3Rpb24ucHJpY2luZ0VuYWJsZWQpIHtcbiAgICAgIHRoaXMucHJpY2VzID0gdGhpcy5nZXRQcmljZXMoKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zZWN0aW9uLmNvbnRyb2xUeXBlID09PSAnTUVTU0FHRScpIHtcbiAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuY2xlYXIodGhpcy5tZXNzYWdlQnVja2V0SWQpO1xuXG4gICAgICB0aGlzLnNlY3Rpb24ubW9kZWw/Lm1lc3NhZ2VzPy5mb3JFYWNoKG1lc3NhZ2UgPT4ge1xuICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IGtleTogdGhpcy5tZXNzYWdlQnVja2V0SWQsIHN1bW1hcnk6IG1lc3NhZ2UgfSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBoYW5kbGVSZW1vdmUoKTogdm9pZCB7XG4gICAgY29uc3QgdXBkYXRlRGF0YTogVXBkYXRlRGF0YSA9IHtcbiAgICAgIGlkOiB0aGlzLnNlY3Rpb24uaWQsXG4gICAgICBhY3Rpb246ICdyZW1vdmUnLFxuICAgIH07XG5cbiAgICB0aGlzLmZvcm1TY29wZS5wdWJsaXNoRm9ybVVwZGF0ZSh1cGRhdGVEYXRhKTtcbiAgfVxuXG4gIGhhbmRsZVF1YW50aXR5VXBkYXRlKCk6IHZvaWQge1xuICAgIGNvbnN0IHVwZGF0ZURhdGE6IFVwZGF0ZURhdGEgPSB7XG4gICAgICBpZDogdGhpcy5zZWN0aW9uLmlkLFxuICAgICAgYWN0aW9uOiAncXR5VXBkYXRlJyxcbiAgICB9O1xuXG4gICAgdGhpcy5mb3JtU2NvcGUucHVibGlzaEZvcm1VcGRhdGUodXBkYXRlRGF0YSk7XG4gIH1cblxuICB0b2dnbGVDb2xsYXBzZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zZWN0aW9uLm1vZGVsKSB7XG4gICAgICB0aGlzLmNvbGxhcHNpYmxlU3RhdGUudG9nZ2xlQ29sbGFwc2UodGhpcy5zZWN0aW9uLm1vZGVsLmlkKTtcbiAgICB9XG4gIH1cblxuICBnZXRQcmljZXMoKTogUmVjb21tZW5kZWRQcmljZVtdIHtcbiAgICBsZXQgcHJpY2VzOiBSZWNvbW1lbmRlZFByaWNlW10gPSBbXTtcbiAgICBpZiAodGhpcy5zZWN0aW9uLm1vZGVsPy5jaGFyZ2VJdGVtcykge1xuICAgICAgcHJpY2VzID0gdGhpcy5zZWN0aW9uLm1vZGVsLmNoYXJnZUl0ZW1zLm1hcChwaSA9PiB7XG4gICAgICAgIGNvbnN0IHByaWNlOiBSZWNvbW1lbmRlZFByaWNlID0ge1xuICAgICAgICAgIGxpc3RQcmljZTogcGkubGlzdFByaWNlLFxuICAgICAgICAgIG5ldFByaWNlOiBwaS5uZXRQcmljZSxcbiAgICAgICAgICBjaGFyZ2VNZXRob2Q6IHBpLmNoYXJnZU1ldGhvZCxcbiAgICAgICAgICBjaGFyZ2VUeXBlOiBwaS5jaGFyZ2VUeXBlLFxuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiBwcmljZTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbnN0IG9uZVRpbWU6IFJlY29tbWVuZGVkUHJpY2UgPSB7XG4gICAgICBjaGFyZ2VNZXRob2Q6ICdPTkVfVElNRScsXG4gICAgICBuZXRQcmljZTogMCxcbiAgICAgIGxpc3RQcmljZTogMCxcbiAgICAgIGNoYXJnZVR5cGU6ICcnLFxuICAgIH07XG5cbiAgICBjb25zdCByZWN1cnJpbmc6IFJlY29tbWVuZGVkUHJpY2UgPSB7XG4gICAgICBjaGFyZ2VNZXRob2Q6ICdSRUNVUlJJTkcnLFxuICAgICAgbmV0UHJpY2U6IDAsXG4gICAgICBsaXN0UHJpY2U6IDAsXG4gICAgICBjaGFyZ2VUeXBlOiAnJyxcbiAgICB9O1xuXG4gICAgcHJpY2VzLmZvckVhY2gocCA9PiB7XG4gICAgICBpZiAocC5jaGFyZ2VNZXRob2QgPT09IG9uZVRpbWUuY2hhcmdlTWV0aG9kKSB7XG4gICAgICAgIHRoaXMuYWRkKG9uZVRpbWUsIHApO1xuICAgICAgfVxuICAgICAgaWYgKHAuY2hhcmdlTWV0aG9kID09PSByZWN1cnJpbmcuY2hhcmdlTWV0aG9kKSB7XG4gICAgICAgIHRoaXMuYWRkKHJlY3VycmluZywgcCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBjb25zdCByZXN1bHQ6IFJlY29tbWVuZGVkUHJpY2VbXSA9IFtdO1xuICAgIGlmIChvbmVUaW1lLmxpc3RQcmljZSA+IDApIHtcbiAgICAgIHJlc3VsdC5wdXNoKG9uZVRpbWUpO1xuICAgIH1cbiAgICBpZiAocmVjdXJyaW5nLmxpc3RQcmljZSA+IDApIHtcbiAgICAgIHJlc3VsdC5wdXNoKHJlY3VycmluZyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHByaXZhdGUgYWRkKHRhcmdldDogUmVjb21tZW5kZWRQcmljZSwgc3JjOiBSZWNvbW1lbmRlZFByaWNlKTogdm9pZCB7XG4gICAgdGFyZ2V0Lm5ldFByaWNlID0gdGFyZ2V0Lm5ldFByaWNlICsgc3JjLm5ldFByaWNlO1xuICAgIHRhcmdldC5saXN0UHJpY2UgPSB0YXJnZXQubGlzdFByaWNlICsgc3JjLmxpc3RQcmljZTtcbiAgICBpZiAoc3JjLmV4cGxhbmF0aW9uKSB7XG4gICAgICB0YXJnZXQuZXhwbGFuYXRpb24gPSBzcmMuZXhwbGFuYXRpb247XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiY29udGFpbmVyLWJveCBkaXYtYmxvY2sgY29sbGFwc2VkIGNvbnRhaW5lci1ib3gtYm9yZGVyZWRcIiBbZm9ybUdyb3VwXT1cImZvcm1cIj5cbiAgPGRpdiBjbGFzcz1cImJveC10aXRsZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJoZWFkZXIgY2xlYXJmaXhcIj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItbGFiZWwgZGl2LWlubGluZVwiPlxuICAgICAgICAgIHt7IGRpc3BsYXlOYW1lIH19XG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJwcmljZXMubGVuZ3RoID4gMFwiPlxuICAgICAgICAgICAgPHNwYW4+JHt7IHByaWNlc1swXS5uZXRQcmljZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwicHJpY2VzLmxlbmd0aCA+IDFcIj5cbiAgICAgICAgICAgICAgPHNwYW4+LCA8L3NwYW4+XG4gICAgICAgICAgICAgIDxzcGFuPiR7eyBwcmljZXNbMV0ubmV0UHJpY2UgfX08L3NwYW4+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLXF0eS1jb250YWluZXIgaW5wdXQtZm9ybS1pbnB1dFwiPlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgW2lkXT1cInF0eUNvbnRyb2xOYW1lXCJcbiAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwicXR5Q29udHJvbE5hbWVcIlxuICAgICAgICAgICAgKGJsdXIpPVwiZm9ybS5jb250cm9sc1txdHlDb250cm9sTmFtZV0udmFsaWQgJiYgaGFuZGxlUXVhbnRpdHlVcGRhdGUoKVwiXG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICBzaXplPVwiM1wiXG4gICAgICAgICAgLz5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidmFsaWRhdGlvbi1tZXNzYWdlXCI+XG4gICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBrZXkgb2YgZm9ybS5jb250cm9sc1txdHlDb250cm9sTmFtZV0uZXJyb3JzIHwgdmFsdWVzXCI+XG4gICAgICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAgICAgIHt7IGZvcm0uY29udHJvbHNbcXR5Q29udHJvbE5hbWVdPy5lcnJvcnM/LltrZXldLm1lc3NhZ2UgfX1cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cImZvcm0uY29udHJvbHNbcXR5Q29udHJvbE5hbWVdLnZhbGlkXCI+ICZuYnNwOyA8L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJwcmljZXMubGVuZ3RoID4gMFwiPlxuICAgICAgICAgICAgPGRpdj57eyBwcmljZXNbMF0uZXhwbGFuYXRpb24gfX08L2Rpdj5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwicHJpY2VzLmxlbmd0aCA+IDEgJiYgcHJpY2VzWzFdLmV4cGxhbmF0aW9uXCI+XG4gICAgICAgICAgICAgIDxkaXY+e3sgcHJpY2VzWzFdLmV4cGxhbmF0aW9uIH19PC9kaXY+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImJveC1hY3Rpb25zXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2VjdGlvbi5jb250cm9sVHlwZSAhPT0gJ01FU1NBR0UnXCI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjbXNnVGVtcGxhdGU+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJ1bnRpbWUtaW5mby1tZXNzYWdlXCI+XG4gICAgICAgICAgICA8dWwgY2xhc3M9XCJtZXNzYWdlLXRleHRcIj5cbiAgICAgICAgICAgICAgPGxpICpuZ0Zvcj1cImxldCBtZXNzYWdlIG9mIHNlY3Rpb24ubW9kZWw/Lm1lc3NhZ2VzXCI+e3sgbWVzc2FnZSB9fTwvbGk+XG4gICAgICAgICAgICA8L3VsPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cImJveC1hY3Rpb24tYnV0dG9uXCJcbiAgICAgICAgICAqbmdJZj1cIihzZWN0aW9uLm1vZGVsPy5tZXNzYWdlcz8ubGVuZ3RoID8/IDApID4gMFwiXG4gICAgICAgICAgW3BvcG92ZXJdPVwibXNnVGVtcGxhdGVcIlxuICAgICAgICAgIHBsYWNlbWVudD1cImxlZnRcIlxuICAgICAgICAgIGNvbnRhaW5lcj1cImJvZHlcIlxuICAgICAgICAgIFtpc09wZW5dPVwidHJ1ZVwiXG4gICAgICAgID5cbiAgICAgICAgICA8YSBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApO1wiPlxuICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1pbmZvIGNoZWNrLWljb25cIj48L2k+XG4gICAgICAgICAgPC9hPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiYm94LWFjdGlvbi1idXR0b25cIlxuICAgICAgICAoY2xpY2spPVwidG9nZ2xlQ29sbGFwc2UoKVwiXG4gICAgICAgIFtoaWRkZW5dPVwiIXNlY3Rpb24uY2hpbGRyZW4gfHwgc2VjdGlvbi5jaGlsZHJlbi5sZW5ndGggPCAxXCJcbiAgICAgID5cbiAgICAgICAgPGE+PGkgY2xhc3M9XCJmYSBmYS1jaGV2cm9uLWRvd24gY2hlY2staWNvblwiPjwvaT48L2E+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cImJveC1hY3Rpb24tYnV0dG9uXCIgKGNsaWNrKT1cImhhbmRsZVJlbW92ZSgpXCI+XG4gICAgICAgIDxhPjxpIGNsYXNzPVwiZmEgZmEtdHJhc2gtbyBjaGVjay1pY29uXCI+PC9pPjwvYT5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
import { CurrencyPipe, DOCUMENT } from '@angular/common';
|
|
2
|
+
import { Directive, Inject } from '@angular/core';
|
|
3
|
+
import { EntityUtil, PagedEntity, UUID } from '@veloce/core';
|
|
4
|
+
import * as _ from 'lodash';
|
|
5
|
+
import * as moment from 'moment';
|
|
6
|
+
import * as rxjs from 'rxjs';
|
|
7
|
+
import * as rxjsOperators from 'rxjs/operators';
|
|
8
|
+
import { SfQueryDirective } from './sf-query.directive';
|
|
9
|
+
import { LineItemDirective } from './velo-port.directive';
|
|
10
|
+
import { VlApprovalDirective } from './vl-approval.directive';
|
|
11
|
+
import { VlDocumentAttachmentsDirective } from './vl-document-attachments.directive';
|
|
12
|
+
import { VlDocumentTemplatesDirective } from './vl-document-templates.directive';
|
|
13
|
+
import { VlQuoteDirective } from './vl-quote.directive';
|
|
14
|
+
import { VlRampDirective } from './vl-ramp.directive';
|
|
15
|
+
import * as i0 from "@angular/core";
|
|
16
|
+
import * as i1 from "../../services/form-scope.service";
|
|
17
|
+
import * as i2 from "../../services/section-scope.service";
|
|
18
|
+
import * as i3 from "@angular/forms";
|
|
19
|
+
import * as i4 from "../../services/runtime.service";
|
|
20
|
+
import * as i5 from "../../services/cart.service";
|
|
21
|
+
import * as i6 from "@veloce/sdk/core";
|
|
22
|
+
import * as i7 from "../../services/current-state.service";
|
|
23
|
+
import * as i8 from "./sf-query.directive";
|
|
24
|
+
import * as i9 from "./velo-port.directive";
|
|
25
|
+
import * as i10 from "./vl-quote.directive";
|
|
26
|
+
import * as i11 from "./vl-document-templates.directive";
|
|
27
|
+
import * as i12 from "./vl-ramp.directive";
|
|
28
|
+
import * as i13 from "./vl-approval.directive";
|
|
29
|
+
import * as i14 from "./vl-document-attachments.directive";
|
|
30
|
+
const SHA1 = UUID.SHA1();
|
|
31
|
+
const SCRIPT_GLOBAL_NAME = `$velo`;
|
|
32
|
+
export class SectionScriptDirective {
|
|
33
|
+
constructor(_document, sfQueryDirective, lineItemDirective, quoteDirective, documentTemplatesDirective, rampDirective, approvalDirective, documentAttachmentsDirective, formScope, sectionScope, renderer, formBuilder, runtimeService, cdr, cartService, contextService, currentStateService, quoteService) {
|
|
34
|
+
this._document = _document;
|
|
35
|
+
this.sfQueryDirective = sfQueryDirective;
|
|
36
|
+
this.lineItemDirective = lineItemDirective;
|
|
37
|
+
this.quoteDirective = quoteDirective;
|
|
38
|
+
this.documentTemplatesDirective = documentTemplatesDirective;
|
|
39
|
+
this.rampDirective = rampDirective;
|
|
40
|
+
this.approvalDirective = approvalDirective;
|
|
41
|
+
this.documentAttachmentsDirective = documentAttachmentsDirective;
|
|
42
|
+
this.formScope = formScope;
|
|
43
|
+
this.sectionScope = sectionScope;
|
|
44
|
+
this.renderer = renderer;
|
|
45
|
+
this.formBuilder = formBuilder;
|
|
46
|
+
this.runtimeService = runtimeService;
|
|
47
|
+
this.cdr = cdr;
|
|
48
|
+
this.cartService = cartService;
|
|
49
|
+
this.contextService = contextService;
|
|
50
|
+
this.currentStateService = currentStateService;
|
|
51
|
+
this.quoteService = quoteService;
|
|
52
|
+
this.scriptId = '';
|
|
53
|
+
this.sessionScope = {};
|
|
54
|
+
}
|
|
55
|
+
ngOnInit() {
|
|
56
|
+
if (!this.scriptExists()) {
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
this.scriptId = this.generateScriptId();
|
|
60
|
+
this.registry = this.getScriptRegistry();
|
|
61
|
+
this.sessionScope = this.getSessionScope();
|
|
62
|
+
if (!this.registry.exists(this.scriptId)) {
|
|
63
|
+
this.appendScriptElementToDom();
|
|
64
|
+
}
|
|
65
|
+
this.initScript();
|
|
66
|
+
this.registry.doRegister(this.scriptId, this.sectionScope.section.id);
|
|
67
|
+
}
|
|
68
|
+
ngAfterViewInit() {
|
|
69
|
+
var _a;
|
|
70
|
+
const sharedScriptGlobal = (_a = this.registry) === null || _a === void 0 ? void 0 : _a.getGlobalForScript(this.sectionScope.section.id);
|
|
71
|
+
if (sharedScriptGlobal) {
|
|
72
|
+
this.methodApply('afterViewInit', sharedScriptGlobal);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
ngOnDestroy() {
|
|
76
|
+
if (!this.scriptId) {
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
this.registry.unRegister(this.scriptId, this.sectionScope.section.id);
|
|
80
|
+
if (!this.registry.exists(this.scriptId)) {
|
|
81
|
+
this.removeScript();
|
|
82
|
+
this.registry.removeGlobalForScript(this.scriptId);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
get scope() {
|
|
86
|
+
if (!this.scriptId || !this.sectionScope.section) {
|
|
87
|
+
return {};
|
|
88
|
+
}
|
|
89
|
+
return Object.assign({}, this.registry.getGlobalForScript(this.sectionScope.section.id) || {}, this.sessionScope);
|
|
90
|
+
}
|
|
91
|
+
scriptExists() {
|
|
92
|
+
var _a, _b, _c, _d;
|
|
93
|
+
return ((_d = (_c = (_b = (_a = this.sectionScope) === null || _a === void 0 ? void 0 : _a.section) === null || _b === void 0 ? void 0 : _b.script) === null || _c === void 0 ? void 0 : _c.length) !== null && _d !== void 0 ? _d : 0) > 0;
|
|
94
|
+
}
|
|
95
|
+
encodeScriptBody() {
|
|
96
|
+
return this.sectionScope.section.script ? atob(this.sectionScope.section.script) : '';
|
|
97
|
+
}
|
|
98
|
+
generateScriptId() {
|
|
99
|
+
return '_' + SHA1.hex(this.encodeScriptBody());
|
|
100
|
+
}
|
|
101
|
+
getScriptRegistry() {
|
|
102
|
+
return this.formScope.scriptRegistry;
|
|
103
|
+
}
|
|
104
|
+
getSessionScope() {
|
|
105
|
+
return this.formScope.scriptSessionScope;
|
|
106
|
+
}
|
|
107
|
+
initScript() {
|
|
108
|
+
let sharedScriptGlobal = this.registry.getGlobalForScript(this.sectionScope.section.id);
|
|
109
|
+
if (!EntityUtil.isPresent(sharedScriptGlobal)) {
|
|
110
|
+
sharedScriptGlobal = {};
|
|
111
|
+
this.registry.setGlobalForScript(this.sectionScope.section.id, sharedScriptGlobal);
|
|
112
|
+
}
|
|
113
|
+
this.methodApply('init', sharedScriptGlobal);
|
|
114
|
+
}
|
|
115
|
+
removeScript() {
|
|
116
|
+
const sharedScriptGlobal = this.registry.getGlobalForScript(this.sectionScope.section.id);
|
|
117
|
+
this.methodApply('destroy', sharedScriptGlobal);
|
|
118
|
+
this.removeScriptElementFromDom();
|
|
119
|
+
}
|
|
120
|
+
appendScriptElementToDom() {
|
|
121
|
+
const script = this.scriptFromTemplate(this.encodeScriptBody(), this.scriptId, this.sectionScope.section);
|
|
122
|
+
this.scriptElement = this.renderer.createElement('script');
|
|
123
|
+
this.scriptElement.type = `text/javascript`;
|
|
124
|
+
this.scriptElement.text = script;
|
|
125
|
+
this.scriptElement.setAttribute('id', this.scriptId);
|
|
126
|
+
this.renderer.appendChild(this._document.body, this.scriptElement);
|
|
127
|
+
}
|
|
128
|
+
removeScriptElementFromDom() {
|
|
129
|
+
if (!this.scriptElement) {
|
|
130
|
+
this.scriptElement = this._document.getElementById(this.scriptId);
|
|
131
|
+
}
|
|
132
|
+
this.scriptElement.remove();
|
|
133
|
+
}
|
|
134
|
+
scriptFromTemplate(scriptBody, scriptId, section) {
|
|
135
|
+
return `var ${scriptId} = (function (${SCRIPT_GLOBAL_NAME}, form, { section, templates }, sessionScope, formBuilder, runtimeContext, cdr, apis) {
|
|
136
|
+
${SCRIPT_GLOBAL_NAME}["form"] = form;
|
|
137
|
+
${SCRIPT_GLOBAL_NAME}["section"] = section;
|
|
138
|
+
${SCRIPT_GLOBAL_NAME}["templates"] = templates;
|
|
139
|
+
${SCRIPT_GLOBAL_NAME}["sessionScope"] = sessionScope;
|
|
140
|
+
${SCRIPT_GLOBAL_NAME}["formBuilder"] = formBuilder;
|
|
141
|
+
${SCRIPT_GLOBAL_NAME}["runtimeContext"] = runtimeContext;
|
|
142
|
+
${SCRIPT_GLOBAL_NAME}["cdr"] = cdr;
|
|
143
|
+
${SCRIPT_GLOBAL_NAME}["apis"] = apis;
|
|
144
|
+
|
|
145
|
+
${scriptBody}
|
|
146
|
+
return ${SCRIPT_GLOBAL_NAME};
|
|
147
|
+
});
|
|
148
|
+
|
|
149
|
+
//# sourceURL=${_.kebabCase(section.label)}.js`;
|
|
150
|
+
}
|
|
151
|
+
methodApply(methodName, sharedScriptGlobal) {
|
|
152
|
+
const args = [
|
|
153
|
+
sharedScriptGlobal,
|
|
154
|
+
this.formScope.form,
|
|
155
|
+
this.sectionScope,
|
|
156
|
+
this.sessionScope,
|
|
157
|
+
this.formBuilder,
|
|
158
|
+
this.runtimeService.getRuntimeContext(),
|
|
159
|
+
this.cdr,
|
|
160
|
+
this.getExposedApis(),
|
|
161
|
+
];
|
|
162
|
+
const fnInit = window[`${this.scriptId}`](...args);
|
|
163
|
+
fnInit && fnInit[methodName] && fnInit[methodName].apply();
|
|
164
|
+
}
|
|
165
|
+
getExposedApis() {
|
|
166
|
+
return {
|
|
167
|
+
'sf-query': this.sfQueryDirective,
|
|
168
|
+
'line-item': this.lineItemDirective,
|
|
169
|
+
'quote-directive': this.quoteDirective,
|
|
170
|
+
'templates-directive': this.documentTemplatesDirective,
|
|
171
|
+
'attachments-directive': this.documentAttachmentsDirective,
|
|
172
|
+
'ramp-directive': this.rampDirective,
|
|
173
|
+
'approval-directive': this.approvalDirective,
|
|
174
|
+
entityUtil: EntityUtil,
|
|
175
|
+
moment,
|
|
176
|
+
lodash: _,
|
|
177
|
+
rxjs: Object.assign(Object.assign({}, rxjsOperators), rxjs),
|
|
178
|
+
PagedEntity,
|
|
179
|
+
pipes: {
|
|
180
|
+
currency: CurrencyPipe,
|
|
181
|
+
},
|
|
182
|
+
solutionUpdateStarted: this.runtimeService.onSolutionUpdateStartedEvent,
|
|
183
|
+
solutionUpdated: this.runtimeService.onSolutionProcessed,
|
|
184
|
+
cartService: this.cartService,
|
|
185
|
+
configurationContextService: this.contextService,
|
|
186
|
+
quoteDraft: this.quoteService.quoteSnapshot,
|
|
187
|
+
currentStateService: this.currentStateService,
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
SectionScriptDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: SectionScriptDirective, deps: [{ token: DOCUMENT }, { token: SfQueryDirective }, { token: LineItemDirective }, { token: VlQuoteDirective }, { token: VlDocumentTemplatesDirective }, { token: VlRampDirective }, { token: VlApprovalDirective }, { token: VlDocumentAttachmentsDirective }, { token: i1.FormScopeService }, { token: i2.SectionScopeService }, { token: i0.Renderer2 }, { token: i3.FormBuilder }, { token: i4.RuntimeService }, { token: i0.ChangeDetectorRef }, { token: i5.ShoppingCartService }, { token: i6.ContextService }, { token: i7.CurrentStateService }, { token: i6.QuoteDraftService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
192
|
+
SectionScriptDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.15", type: SectionScriptDirective, selector: "section-script", providers: [
|
|
193
|
+
SfQueryDirective,
|
|
194
|
+
LineItemDirective,
|
|
195
|
+
VlQuoteDirective,
|
|
196
|
+
VlDocumentTemplatesDirective,
|
|
197
|
+
VlRampDirective,
|
|
198
|
+
VlApprovalDirective,
|
|
199
|
+
VlDocumentAttachmentsDirective,
|
|
200
|
+
], exportAs: ["scriptApi"], ngImport: i0 });
|
|
201
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: SectionScriptDirective, decorators: [{
|
|
202
|
+
type: Directive,
|
|
203
|
+
args: [{
|
|
204
|
+
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
205
|
+
selector: 'section-script',
|
|
206
|
+
exportAs: 'scriptApi',
|
|
207
|
+
providers: [
|
|
208
|
+
SfQueryDirective,
|
|
209
|
+
LineItemDirective,
|
|
210
|
+
VlQuoteDirective,
|
|
211
|
+
VlDocumentTemplatesDirective,
|
|
212
|
+
VlRampDirective,
|
|
213
|
+
VlApprovalDirective,
|
|
214
|
+
VlDocumentAttachmentsDirective,
|
|
215
|
+
],
|
|
216
|
+
}]
|
|
217
|
+
}], ctorParameters: function () { return [{ type: Document, decorators: [{
|
|
218
|
+
type: Inject,
|
|
219
|
+
args: [DOCUMENT]
|
|
220
|
+
}] }, { type: i8.SfQueryDirective, decorators: [{
|
|
221
|
+
type: Inject,
|
|
222
|
+
args: [SfQueryDirective]
|
|
223
|
+
}] }, { type: i9.LineItemDirective, decorators: [{
|
|
224
|
+
type: Inject,
|
|
225
|
+
args: [LineItemDirective]
|
|
226
|
+
}] }, { type: i10.VlQuoteDirective, decorators: [{
|
|
227
|
+
type: Inject,
|
|
228
|
+
args: [VlQuoteDirective]
|
|
229
|
+
}] }, { type: i11.VlDocumentTemplatesDirective, decorators: [{
|
|
230
|
+
type: Inject,
|
|
231
|
+
args: [VlDocumentTemplatesDirective]
|
|
232
|
+
}] }, { type: i12.VlRampDirective, decorators: [{
|
|
233
|
+
type: Inject,
|
|
234
|
+
args: [VlRampDirective]
|
|
235
|
+
}] }, { type: i13.VlApprovalDirective, decorators: [{
|
|
236
|
+
type: Inject,
|
|
237
|
+
args: [VlApprovalDirective]
|
|
238
|
+
}] }, { type: i14.VlDocumentAttachmentsDirective, decorators: [{
|
|
239
|
+
type: Inject,
|
|
240
|
+
args: [VlDocumentAttachmentsDirective]
|
|
241
|
+
}] }, { type: i1.FormScopeService }, { type: i2.SectionScopeService }, { type: i0.Renderer2 }, { type: i3.FormBuilder }, { type: i4.RuntimeService }, { type: i0.ChangeDetectorRef }, { type: i5.ShoppingCartService }, { type: i6.ContextService }, { type: i7.CurrentStateService }, { type: i6.QuoteDraftService }]; } });
|
|
242
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbi1zY3JpcHQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvcnVudGltZS9leGVjdXRpb24vZGlyZWN0aXZlcy9zZWN0aW9uLXNjcmlwdC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQW9DLFNBQVMsRUFBRSxNQUFNLEVBQWdDLE1BQU0sZUFBZSxDQUFDO0FBRWxILE9BQU8sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFXLElBQUksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUV0RSxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUM1QixPQUFPLEtBQUssTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUNqQyxPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEtBQUssYUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBT2hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztBQUV0RCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7QUFDekIsTUFBTSxrQkFBa0IsR0FBRyxP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aUI7UUFDakIsZ0JBQWdCO1FBQ2hCLDRCQUE0QjtRQUM1QixlQUFlO1FBQ2YsbUJBQW1CO1FBQ25CLDhCQUE4QjtLQUMvQjs0RkFFVSxzQkFBc0I7a0JBZGxDLFNBQVM7bUJBQUM7b0JBQ1QsOERBQThEO29CQUM5RCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixRQUFRLEVBQUUsV0FBVztvQkFDckIsU0FBUyxFQUFFO3dCQUNULGdCQUFnQjt3QkFDaEIsaUJBQWlCO3dCQUNqQixnQkFBZ0I7d0JBQ2hCLDRCQUE0Qjt3QkFDNUIsZUFBZTt3QkFDZixtQkFBbUI7d0JBQ25CLDhCQUE4QjtxQkFDL0I7aUJBQ0Y7MERBUXdDLFFBQVE7MEJBQTVDLE1BQU07MkJBQUMsUUFBUTs7MEJBQ2YsTUFBTTsyQkFBQyxnQkFBZ0I7OzBCQUN2QixNQUFNOzJCQUFDLGlCQUFpQjs7MEJBQ3hCLE1BQU07MkJBQUMsZ0JBQWdCOzswQkFDdkIsTUFBTTsyQkFBQyw0QkFBNEI7OzBCQUNuQyxNQUFNOzJCQUFDLGVBQWU7OzBCQUN0QixNQUFNOzJCQUFDLG1CQUFtQjs7MEJBQzFCLE1BQU07MkJBQUMsOEJBQThCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ3VycmVuY3lQaXBlLCBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3RvclJlZiwgRGlyZWN0aXZlLCBJbmplY3QsIE9uRGVzdHJveSwgT25Jbml0LCBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRW50aXR5VXRpbCwgUGFnZWRFbnRpdHksIFNlY3Rpb24sIFVVSUQgfSBmcm9tICdAdmVsb2NlL2NvcmUnO1xuaW1wb3J0IHsgQ29udGV4dFNlcnZpY2UsIFF1b3RlRHJhZnRTZXJ2aWNlIH0gZnJvbSAnQHZlbG9jZS9zZGsvY29yZSc7XG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgKiBhcyBtb21lbnQgZnJvbSAnbW9tZW50JztcbmltcG9ydCAqIGFzIHJ4anMgZnJvbSAncnhqcyc7XG5pbXBvcnQgKiBhcyByeGpzT3BlcmF0b3JzIGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFNob3BwaW5nQ2FydFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jYXJ0LnNlcnZpY2UnO1xuaW1wb3J0IHsgQ3VycmVudFN0YXRlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2N1cnJlbnQtc3RhdGUuc2VydmljZSc7XG5pbXBvcnQgeyBGb3JtU2NvcGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZm9ybS1zY29wZS5zZXJ2aWNlJztcbmltcG9ydCB7IFJ1bnRpbWVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcnVudGltZS5zZXJ2aWNlJztcbmltcG9ydCB7IFNlY3Rpb25TY29wZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zZWN0aW9uLXNjb3BlLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2NyaXB0UmVnaXN0cnkgfSBmcm9tICcuLi8uLi90eXBlcy9zY3JpcHQtcmVnaXN0cnkudHlwZXMnO1xuaW1wb3J0IHsgU2ZRdWVyeURpcmVjdGl2ZSB9IGZyb20gJy4vc2YtcXVlcnkuZGlyZWN0aXZlJztcbmltcG9ydCB7IExpbmVJdGVtRGlyZWN0aXZlIH0gZnJvbSAnLi92ZWxvLXBvcnQuZGlyZWN0aXZlJztcbmltcG9ydCB7IFZsQXBwcm92YWxEaXJlY3RpdmUgfSBmcm9tICcuL3ZsLWFwcHJvdmFsLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBWbERvY3VtZW50QXR0YWNobWVudHNEaXJlY3RpdmUgfSBmcm9tICcuL3ZsLWRvY3VtZW50LWF0dGFjaG1lbnRzLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBWbERvY3VtZW50VGVtcGxhdGVzRGlyZWN0aXZlIH0gZnJvbSAnLi92bC1kb2N1bWVudC10ZW1wbGF0ZXMuZGlyZWN0aXZlJztcbmltcG9ydCB7IFZsUXVvdGVEaXJlY3RpdmUgfSBmcm9tICcuL3ZsLXF1b3RlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBWbFJhbXBEaXJlY3RpdmUgfSBmcm9tICcuL3ZsLXJhbXAuZGlyZWN0aXZlJztcblxuY29uc3QgU0hBMSA9IFVVSUQuU0hBMSgpO1xuY29uc3QgU0NSSVBUX0dMT0JBTF9OQU1FID0gYCR2ZWxvYDtcblxuQERpcmVjdGl2ZSh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnc2VjdGlvbi1zY3JpcHQnLFxuICBleHBvcnRBczogJ3NjcmlwdEFwaScsXG4gIHByb3ZpZGVyczogW1xuICAgIFNmUXVlcnlEaXJlY3RpdmUsXG4gICAgTGluZUl0ZW1EaXJlY3RpdmUsXG4gICAgVmxRdW90ZURpcmVjdGl2ZSxcbiAgICBWbERvY3VtZW50VGVtcGxhdGVzRGlyZWN0aXZlLFxuICAgIFZsUmFtcERpcmVjdGl2ZSxcbiAgICBWbEFwcHJvdmFsRGlyZWN0aXZlLFxuICAgIFZsRG9jdW1lbnRBdHRhY2htZW50c0RpcmVjdGl2ZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2VjdGlvblNjcmlwdERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBzY3JpcHRFbGVtZW50OiBhbnk7XG4gIHByaXZhdGUgc2NyaXB0SWQgPSAnJztcbiAgcHJpdmF0ZSByZWdpc3RyeSE6IFNjcmlwdFJlZ2lzdHJ5O1xuICBwcml2YXRlIHNlc3Npb25TY29wZTogeyBbaW5kZXg6IHN0cmluZ106IGFueSB9ID0ge307XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBfZG9jdW1lbnQ6IERvY3VtZW50LFxuICAgIEBJbmplY3QoU2ZRdWVyeURpcmVjdGl2ZSkgcHJpdmF0ZSBzZlF1ZXJ5RGlyZWN0aXZlOiBTZlF1ZXJ5RGlyZWN0aXZlLFxuICAgIEBJbmplY3QoTGluZUl0ZW1EaXJlY3RpdmUpIHByaXZhdGUgbGluZUl0ZW1EaXJlY3RpdmU6IExpbmVJdGVtRGlyZWN0aXZlLFxuICAgIEBJbmplY3QoVmxRdW90ZURpcmVjdGl2ZSkgcHJpdmF0ZSBxdW90ZURpcmVjdGl2ZTogVmxRdW90ZURpcmVjdGl2ZSxcbiAgICBASW5qZWN0KFZsRG9jdW1lbnRUZW1wbGF0ZXNEaXJlY3RpdmUpIHByaXZhdGUgZG9jdW1lbnRUZW1wbGF0ZXNEaXJlY3RpdmU6IFZsRG9jdW1lbnRUZW1wbGF0ZXNEaXJlY3RpdmUsXG4gICAgQEluamVjdChWbFJhbXBEaXJlY3RpdmUpIHByaXZhdGUgcmFtcERpcmVjdGl2ZTogVmxSYW1wRGlyZWN0aXZlLFxuICAgIEBJbmplY3QoVmxBcHByb3ZhbERpcmVjdGl2ZSkgcHJpdmF0ZSBhcHByb3ZhbERpcmVjdGl2ZTogVmxBcHByb3ZhbERpcmVjdGl2ZSxcbiAgICBASW5qZWN0KFZsRG9jdW1lbnRBdHRhY2htZW50c0RpcmVjdGl2ZSkgcHJpdmF0ZSBkb2N1bWVudEF0dGFjaG1lbnRzRGlyZWN0aXZlOiBWbERvY3VtZW50QXR0YWNobWVudHNEaXJlY3RpdmUsXG4gICAgcHJpdmF0ZSBmb3JtU2NvcGU6IEZvcm1TY29wZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzZWN0aW9uU2NvcGU6IFNlY3Rpb25TY29wZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHByaXZhdGUgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgcnVudGltZVNlcnZpY2U6IFJ1bnRpbWVTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIGNhcnRTZXJ2aWNlOiBTaG9wcGluZ0NhcnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29udGV4dFNlcnZpY2U6IENvbnRleHRTZXJ2aWNlLFxuICAgIHByaXZhdGUgY3VycmVudFN0YXRlU2VydmljZTogQ3VycmVudFN0YXRlU2VydmljZSxcbiAgICBwcml2YXRlIHF1b3RlU2VydmljZTogUXVvdGVEcmFmdFNlcnZpY2UsXG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuc2NyaXB0RXhpc3RzKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnNjcmlwdElkID0gdGhpcy5nZW5lcmF0ZVNjcmlwdElkKCk7XG4gICAgdGhpcy5yZWdpc3RyeSA9IHRoaXMuZ2V0U2NyaXB0UmVnaXN0cnkoKTtcbiAgICB0aGlzLnNlc3Npb25TY29wZSA9IHRoaXMuZ2V0U2Vzc2lvblNjb3BlKCk7XG5cbiAgICBpZiAoIXRoaXMucmVnaXN0cnkuZXhpc3RzKHRoaXMuc2NyaXB0SWQpKSB7XG4gICAgICB0aGlzLmFwcGVuZFNjcmlwdEVsZW1lbnRUb0RvbSgpO1xuICAgIH1cblxuICAgIHRoaXMuaW5pdFNjcmlwdCgpO1xuXG4gICAgdGhpcy5yZWdpc3RyeS5kb1JlZ2lzdGVyKHRoaXMuc2NyaXB0SWQsIHRoaXMuc2VjdGlvblNjb3BlLnNlY3Rpb24uaWQpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IHNoYXJlZFNjcmlwdEdsb2JhbCA9IHRoaXMucmVnaXN0cnk/LmdldEdsb2JhbEZvclNjcmlwdCh0aGlzLnNlY3Rpb25TY29wZS5zZWN0aW9uLmlkKTtcblxuICAgIGlmIChzaGFyZWRTY3JpcHRHbG9iYWwpIHtcbiAgICAgIHRoaXMubWV0aG9kQXBwbHkoJ2FmdGVyVmlld0luaXQnLCBzaGFyZWRTY3JpcHRHbG9iYWwpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5zY3JpcHRJZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMucmVnaXN0cnkudW5SZWdpc3Rlcih0aGlzLnNjcmlwdElkLCB0aGlzLnNlY3Rpb25TY29wZS5zZWN0aW9uLmlkKTtcblxuICAgIGlmICghdGhpcy5yZWdpc3RyeS5leGlzdHModGhpcy5zY3JpcHRJZCkpIHtcbiAgICAgIHRoaXMucmVtb3ZlU2NyaXB0KCk7XG4gICAgICB0aGlzLnJlZ2lzdHJ5LnJlbW92ZUdsb2JhbEZvclNjcmlwdCh0aGlzLnNjcmlwdElkKTtcbiAgICB9XG4gIH1cblxuICBnZXQgc2NvcGUoKSB7XG4gICAgaWYgKCF0aGlzLnNjcmlwdElkIHx8ICF0aGlzLnNlY3Rpb25TY29wZS5zZWN0aW9uKSB7XG4gICAgICByZXR1cm4ge307XG4gICAgfVxuXG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIHRoaXMucmVnaXN0cnkuZ2V0R2xvYmFsRm9yU2NyaXB0KHRoaXMuc2VjdGlvblNjb3BlLnNlY3Rpb24uaWQpIHx8IHt9LCB0aGlzLnNlc3Npb25TY29wZSk7XG4gIH1cblxuICBwcml2YXRlIHNjcmlwdEV4aXN0cygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKHRoaXMuc2VjdGlvblNjb3BlPy5zZWN0aW9uPy5zY3JpcHQ/Lmxlbmd0aCA/PyAwKSA+IDA7XG4gIH1cblxuICBwcml2YXRlIGVuY29kZVNjcmlwdEJvZHkoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5zZWN0aW9uU2NvcGUuc2VjdGlvbi5zY3JpcHQgPyBhdG9iKHRoaXMuc2VjdGlvblNjb3BlLnNlY3Rpb24uc2NyaXB0KSA6ICcnO1xuICB9XG5cbiAgcHJpdmF0ZSBnZW5lcmF0ZVNjcmlwdElkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICdfJyArIFNIQTEuaGV4KHRoaXMuZW5jb2RlU2NyaXB0Qm9keSgpKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U2NyaXB0UmVnaXN0cnkoKSB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybVNjb3BlLnNjcmlwdFJlZ2lzdHJ5O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRTZXNzaW9uU2NvcGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybVNjb3BlLnNjcmlwdFNlc3Npb25TY29wZTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdFNjcmlwdCgpOiB2b2lkIHtcbiAgICBsZXQgc2hhcmVkU2NyaXB0R2xvYmFsID0gdGhpcy5yZWdpc3RyeS5nZXRHbG9iYWxGb3JTY3JpcHQodGhpcy5zZWN0aW9uU2NvcGUuc2VjdGlvbi5pZCk7XG5cbiAgICBpZiAoIUVudGl0eVV0aWwuaXNQcmVzZW50KHNoYXJlZFNjcmlwdEdsb2JhbCkpIHtcbiAgICAgIHNoYXJlZFNjcmlwdEdsb2JhbCA9IHt9O1xuICAgICAgdGhpcy5yZWdpc3RyeS5zZXRHbG9iYWxGb3JTY3JpcHQodGhpcy5zZWN0aW9uU2NvcGUuc2VjdGlvbi5pZCwgc2hhcmVkU2NyaXB0R2xvYmFsKTtcbiAgICB9XG5cbiAgICB0aGlzLm1ldGhvZEFwcGx5KCdpbml0Jywgc2hhcmVkU2NyaXB0R2xvYmFsKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlU2NyaXB0KCk6IHZvaWQge1xuICAgIGNvbnN0IHNoYXJlZFNjcmlwdEdsb2JhbCA9IHRoaXMucmVnaXN0cnkuZ2V0R2xvYmFsRm9yU2NyaXB0KHRoaXMuc2VjdGlvblNjb3BlLnNlY3Rpb24uaWQpO1xuXG4gICAgdGhpcy5tZXRob2RBcHBseSgnZGVzdHJveScsIHNoYXJlZFNjcmlwdEdsb2JhbCk7XG5cbiAgICB0aGlzLnJlbW92ZVNjcmlwdEVsZW1lbnRGcm9tRG9tKCk7XG4gIH1cblxuICBwcml2YXRlIGFwcGVuZFNjcmlwdEVsZW1lbnRUb0RvbSgpOiB2b2lkIHtcbiAgICBjb25zdCBzY3JpcHQgPSB0aGlzLnNjcmlwdEZyb21UZW1wbGF0ZSh0aGlzLmVuY29kZVNjcmlwdEJvZHkoKSwgdGhpcy5zY3JpcHRJZCwgdGhpcy5zZWN0aW9uU2NvcGUuc2VjdGlvbik7XG5cbiAgICB0aGlzLnNjcmlwdEVsZW1lbnQgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuICAgIHRoaXMuc2NyaXB0RWxlbWVudC50eXBlID0gYHRleHQvamF2YXNjcmlwdGA7XG4gICAgdGhpcy5zY3JpcHRFbGVtZW50LnRleHQgPSBzY3JpcHQ7XG5cbiAgICB0aGlzLnNjcmlwdEVsZW1lbnQuc2V0QXR0cmlidXRlKCdpZCcsIHRoaXMuc2NyaXB0SWQpO1xuXG4gICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLl9kb2N1bWVudC5ib2R5LCB0aGlzLnNjcmlwdEVsZW1lbnQpO1xuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVTY3JpcHRFbGVtZW50RnJvbURvbSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuc2NyaXB0RWxlbWVudCkge1xuICAgICAgdGhpcy5zY3JpcHRFbGVtZW50ID0gdGhpcy5fZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5zY3JpcHRJZCk7XG4gICAgfVxuXG4gICAgdGhpcy5zY3JpcHRFbGVtZW50LnJlbW92ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBzY3JpcHRGcm9tVGVtcGxhdGUoc2NyaXB0Qm9keTogc3RyaW5nLCBzY3JpcHRJZDogc3RyaW5nLCBzZWN0aW9uOiBTZWN0aW9uKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYHZhciAke3NjcmlwdElkfSA9IChmdW5jdGlvbiAoJHtTQ1JJUFRfR0xPQkFMX05BTUV9LCBmb3JtLCB7IHNlY3Rpb24sIHRlbXBsYXRlcyB9LCBzZXNzaW9uU2NvcGUsIGZvcm1CdWlsZGVyLCBydW50aW1lQ29udGV4dCwgY2RyLCBhcGlzKSB7XG4gICAgICAgICAgICAke1NDUklQVF9HTE9CQUxfTkFNRX1bXCJmb3JtXCJdID0gZm9ybTtcbiAgICAgICAgICAgICR7U0NSSVBUX0dMT0JBTF9OQU1FfVtcInNlY3Rpb25cIl0gPSBzZWN0aW9uO1xuICAgICAgICAgICAgJHtTQ1JJUFRfR0xPQkFMX05BTUV9W1widGVtcGxhdGVzXCJdID0gdGVtcGxhdGVzO1xuICAgICAgICAgICAgJHtTQ1JJUFRfR0xPQkFMX05BTUV9W1wic2Vzc2lvblNjb3BlXCJdID0gc2Vzc2lvblNjb3BlO1xuICAgICAgICAgICAgJHtTQ1JJUFRfR0xPQkFMX05BTUV9W1wiZm9ybUJ1aWxkZXJcIl0gPSBmb3JtQnVpbGRlcjtcbiAgICAgICAgICAgICR7U0NSSVBUX0dMT0JBTF9OQU1FfVtcInJ1bnRpbWVDb250ZXh0XCJdID0gcnVudGltZUNvbnRleHQ7XG4gICAgICAgICAgICAke1NDUklQVF9HTE9CQUxfTkFNRX1bXCJjZHJcIl0gPSBjZHI7XG4gICAgICAgICAgICAke1NDUklQVF9HTE9CQUxfTkFNRX1bXCJhcGlzXCJdID0gYXBpcztcblxuICAgICAgICAgICAgJHtzY3JpcHRCb2R5fVxuICAgICAgICAgICAgICAgIHJldHVybiAke1NDUklQVF9HTE9CQUxfTkFNRX07XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgLy8jIHNvdXJjZVVSTD0ke18ua2ViYWJDYXNlKHNlY3Rpb24ubGFiZWwpfS5qc2A7XG4gIH1cblxuICBwcml2YXRlIG1ldGhvZEFwcGx5KG1ldGhvZE5hbWU6IHN0cmluZywgc2hhcmVkU2NyaXB0R2xvYmFsOiBhbnkpIHtcbiAgICBjb25zdCBhcmdzID0gW1xuICAgICAgc2hhcmVkU2NyaXB0R2xvYmFsLFxuICAgICAgdGhpcy5mb3JtU2NvcGUuZm9ybSxcbiAgICAgIHRoaXMuc2VjdGlvblNjb3BlLFxuICAgICAgdGhpcy5zZXNzaW9uU2NvcGUsXG4gICAgICB0aGlzLmZvcm1CdWlsZGVyLFxuICAgICAgdGhpcy5ydW50aW1lU2VydmljZS5nZXRSdW50aW1lQ29udGV4dCgpLFxuICAgICAgdGhpcy5jZHIsXG4gICAgICB0aGlzLmdldEV4cG9zZWRBcGlzKCksXG4gICAgXTtcblxuICAgIGNvbnN0IGZuSW5pdCA9ICh3aW5kb3cgYXMgYW55KVtgJHt0aGlzLnNjcmlwdElkfWBdKC4uLmFyZ3MpO1xuXG4gICAgZm5Jbml0ICYmIGZuSW5pdFttZXRob2ROYW1lXSAmJiBmbkluaXRbbWV0aG9kTmFtZV0uYXBwbHkoKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RXhwb3NlZEFwaXMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICdzZi1xdWVyeSc6IHRoaXMuc2ZRdWVyeURpcmVjdGl2ZSxcbiAgICAgICdsaW5lLWl0ZW0nOiB0aGlzLmxpbmVJdGVtRGlyZWN0aXZlLFxuICAgICAgJ3F1b3RlLWRpcmVjdGl2ZSc6IHRoaXMucXVvdGVEaXJlY3RpdmUsXG4gICAgICAndGVtcGxhdGVzLWRpcmVjdGl2ZSc6IHRoaXMuZG9jdW1lbnRUZW1wbGF0ZXNEaXJlY3RpdmUsXG4gICAgICAnYXR0YWNobWVudHMtZGlyZWN0aXZlJzogdGhpcy5kb2N1bWVudEF0dGFjaG1lbnRzRGlyZWN0aXZlLFxuICAgICAgJ3JhbXAtZGlyZWN0aXZlJzogdGhpcy5yYW1wRGlyZWN0aXZlLFxuICAgICAgJ2FwcHJvdmFsLWRpcmVjdGl2ZSc6IHRoaXMuYXBwcm92YWxEaXJlY3RpdmUsXG4gICAgICBlbnRpdHlVdGlsOiBFbnRpdHlVdGlsLFxuICAgICAgbW9tZW50LFxuICAgICAgbG9kYXNoOiBfLFxuICAgICAgcnhqczogeyAuLi5yeGpzT3BlcmF0b3JzLCAuLi5yeGpzIH0sXG4gICAgICBQYWdlZEVudGl0eSxcbiAgICAgIHBpcGVzOiB7XG4gICAgICAgIGN1cnJlbmN5OiBDdXJyZW5jeVBpcGUsXG4gICAgICB9LFxuICAgICAgc29sdXRpb25VcGRhdGVTdGFydGVkOiB0aGlzLnJ1bnRpbWVTZXJ2aWNlLm9uU29sdXRpb25VcGRhdGVTdGFydGVkRXZlbnQsXG4gICAgICBzb2x1dGlvblVwZGF0ZWQ6IHRoaXMucnVudGltZVNlcnZpY2Uub25Tb2x1dGlvblByb2Nlc3NlZCxcbiAgICAgIGNhcnRTZXJ2aWNlOiB0aGlzLmNhcnRTZXJ2aWNlLFxuICAgICAgY29uZmlndXJhdGlvbkNvbnRleHRTZXJ2aWNlOiB0aGlzLmNvbnRleHRTZXJ2aWNlLFxuICAgICAgcXVvdGVEcmFmdDogdGhpcy5xdW90ZVNlcnZpY2UucXVvdGVTbmFwc2hvdCxcbiAgICAgIGN1cnJlbnRTdGF0ZVNlcnZpY2U6IHRoaXMuY3VycmVudFN0YXRlU2VydmljZSxcbiAgICB9O1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Directive } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@veloce/api";
|
|
4
|
+
export class SfQueryDirective {
|
|
5
|
+
constructor(apiService) {
|
|
6
|
+
this.apiService = apiService;
|
|
7
|
+
}
|
|
8
|
+
query(searchRequest, objectName) {
|
|
9
|
+
return this.apiService.query(searchRequest, objectName).toPromise();
|
|
10
|
+
}
|
|
11
|
+
describe(objectName, fieldName) {
|
|
12
|
+
return this.apiService.describe(objectName, fieldName).toPromise();
|
|
13
|
+
}
|
|
14
|
+
describe2(objectName, fieldsNames) {
|
|
15
|
+
return this.apiService.describe2(objectName, fieldsNames).toPromise();
|
|
16
|
+
}
|
|
17
|
+
apexGetRequest(path, params) {
|
|
18
|
+
return this.apiService.apexGetRequest(path, params).toPromise();
|
|
19
|
+
}
|
|
20
|
+
apexPostRequest(path, body) {
|
|
21
|
+
return this.apiService.apexPostRequest(path, body).toPromise();
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
SfQueryDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: SfQueryDirective, deps: [{ token: i1.SalesforceApiService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
25
|
+
SfQueryDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.15", type: SfQueryDirective, selector: "sf-query", exportAs: ["sfApi"], ngImport: i0 });
|
|
26
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: SfQueryDirective, decorators: [{
|
|
27
|
+
type: Directive,
|
|
28
|
+
args: [{
|
|
29
|
+
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
30
|
+
selector: 'sf-query',
|
|
31
|
+
exportAs: 'sfApi',
|
|
32
|
+
}]
|
|
33
|
+
}], ctorParameters: function () { return [{ type: i1.SalesforceApiService }]; } });
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2YtcXVlcnkuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvcnVudGltZS9leGVjdXRpb24vZGlyZWN0aXZlcy9zZi1xdWVyeS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBUzFDLE1BQU0sT0FBTyxnQkFBZ0I7SUFDM0IsWUFBb0IsVUFBZ0M7UUFBaEMsZUFBVSxHQUFWLFVBQVUsQ0FBc0I7SUFBRyxDQUFDO0lBRXhELEtBQUssQ0FBQyxhQUE0QixFQUFFLFVBQWtCO1FBQ3BELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLFVBQVUsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3RFLENBQUM7SUFFRCxRQUFRLENBQUMsVUFBa0IsRUFBRSxTQUFrQjtRQUM3QyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNyRSxDQUFDO0lBRUQsU0FBUyxDQUFDLFVBQWtCLEVBQUUsV0FBcUI7UUFDakQsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxVQUFVLEVBQUUsV0FBVyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDeEUsQ0FBQztJQUVELGNBQWMsQ0FBYyxJQUFZLEVBQUUsTUFBa0I7UUFDMUQsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBSSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUMsU0FBUyxFQUFnQixDQUFDO0lBQ25GLENBQUM7SUFFRCxlQUFlLENBQTJCLElBQVksRUFBRSxJQUFPO1FBQzdELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQU8sSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFNBQVMsRUFBZ0IsQ0FBQztJQUNyRixDQUFDOzs4R0FyQlUsZ0JBQWdCO2tHQUFoQixnQkFBZ0I7NEZBQWhCLGdCQUFnQjtrQkFMNUIsU0FBUzttQkFBQztvQkFDVCw4REFBOEQ7b0JBQzlELFFBQVEsRUFBRSxVQUFVO29CQUNwQixRQUFRLEVBQUUsT0FBTztpQkFDbEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTYWxlc2ZvcmNlQXBpU2VydmljZSB9IGZyb20gJ0B2ZWxvY2UvYXBpJztcbmltcG9ydCB7IFNlYXJjaFJlcXVlc3QgfSBmcm9tICdAdmVsb2NlL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdzZi1xdWVyeScsXG4gIGV4cG9ydEFzOiAnc2ZBcGknLFxufSlcbmV4cG9ydCBjbGFzcyBTZlF1ZXJ5RGlyZWN0aXZlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhcGlTZXJ2aWNlOiBTYWxlc2ZvcmNlQXBpU2VydmljZSkge31cblxuICBxdWVyeShzZWFyY2hSZXF1ZXN0OiBTZWFyY2hSZXF1ZXN0LCBvYmplY3ROYW1lOiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UucXVlcnkoc2VhcmNoUmVxdWVzdCwgb2JqZWN0TmFtZSkudG9Qcm9taXNlKCk7XG4gIH1cblxuICBkZXNjcmliZShvYmplY3ROYW1lOiBzdHJpbmcsIGZpZWxkTmFtZT86IHN0cmluZyk6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5kZXNjcmliZShvYmplY3ROYW1lLCBmaWVsZE5hbWUpLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgZGVzY3JpYmUyKG9iamVjdE5hbWU6IHN0cmluZywgZmllbGRzTmFtZXM6IHN0cmluZ1tdKTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLmRlc2NyaWJlMihvYmplY3ROYW1lLCBmaWVsZHNOYW1lcykudG9Qcm9taXNlKCk7XG4gIH1cblxuICBhcGV4R2V0UmVxdWVzdDxUID0gdW5rbm93bj4ocGF0aDogc3RyaW5nLCBwYXJhbXM6IEh0dHBQYXJhbXMpOiBQcm9taXNlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLmFwZXhHZXRSZXF1ZXN0PFQ+KHBhdGgsIHBhcmFtcykudG9Qcm9taXNlKCkgYXMgUHJvbWlzZTxUPjtcbiAgfVxuXG4gIGFwZXhQb3N0UmVxdWVzdDxUID0gdW5rbm93biwgUyA9IHVua25vd24+KHBhdGg6IHN0cmluZywgYm9keTogUyk6IFByb21pc2U8VD4ge1xuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UuYXBleFBvc3RSZXF1ZXN0PFQsIFM+KHBhdGgsIGJvZHkpLnRvUHJvbWlzZSgpIGFzIFByb21pc2U8VD47XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { Directive } from '@angular/core';
|
|
2
|
+
import { EntityUtil } from '@veloce/core';
|
|
3
|
+
import { isDate } from 'lodash';
|
|
4
|
+
import { SectionsBinderHelper } from '../../utils/sections-binder.helper';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "../../services/form-scope.service";
|
|
7
|
+
import * as i2 from "../../services/section-scope.service";
|
|
8
|
+
//TODO ALE WE ARE EXTENDING COMPONENT HERE IN PORTS WE ARE EXTENDING DEDICATED CLASS!! TYPES HANDLER IS NO IMPLEMENTED YET
|
|
9
|
+
export class VeloAttributeDirective {
|
|
10
|
+
constructor(formScope, sectionScope) {
|
|
11
|
+
this.formScope = formScope;
|
|
12
|
+
this.sectionScope = sectionScope;
|
|
13
|
+
this.valueQuantities = {};
|
|
14
|
+
this.form = this.formScope.form;
|
|
15
|
+
this.section = this.sectionScope.section;
|
|
16
|
+
}
|
|
17
|
+
ngOnInit() {
|
|
18
|
+
this.initQuantity();
|
|
19
|
+
}
|
|
20
|
+
handleChange(valueOption) {
|
|
21
|
+
const updateData = {
|
|
22
|
+
id: this.section.id,
|
|
23
|
+
action: 'update',
|
|
24
|
+
valueOption,
|
|
25
|
+
};
|
|
26
|
+
this.formScope.publishFormUpdate(updateData);
|
|
27
|
+
}
|
|
28
|
+
handleChangDate(valueOption) {
|
|
29
|
+
const oldValue = this.form.controls[this.section.id].value || '';
|
|
30
|
+
const newValue = isDate(valueOption) ? valueOption.toLocaleDateString('en-us') : '';
|
|
31
|
+
if (oldValue !== newValue) {
|
|
32
|
+
this.handleChange(newValue);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
handleRemove() {
|
|
36
|
+
const updateData = {
|
|
37
|
+
id: this.section.id,
|
|
38
|
+
action: 'remove',
|
|
39
|
+
};
|
|
40
|
+
this.formScope.publishFormUpdate(updateData);
|
|
41
|
+
}
|
|
42
|
+
// TODO ALE THIS IS SPECIFIC STEPPER FUNCTIONS
|
|
43
|
+
nextVal() {
|
|
44
|
+
const currentIndex = this.getCurrentValueIndex();
|
|
45
|
+
const nextValIndex = currentIndex + 1;
|
|
46
|
+
if (currentIndex != -1 &&
|
|
47
|
+
this.section.sectionValue &&
|
|
48
|
+
this.section.sectionValue.valueOptions.length >= nextValIndex) {
|
|
49
|
+
this.handleChange(this.section.sectionValue.valueOptions[nextValIndex]);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
prevVal() {
|
|
53
|
+
const currentIndex = this.getCurrentValueIndex();
|
|
54
|
+
const prevValIndex = currentIndex - 1;
|
|
55
|
+
if (currentIndex != -1 &&
|
|
56
|
+
this.section.sectionValue &&
|
|
57
|
+
this.section.sectionValue.valueOptions.length >= prevValIndex) {
|
|
58
|
+
this.handleChange(this.section.sectionValue.valueOptions[prevValIndex]);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
initQuantity() {
|
|
62
|
+
this.valueQuantities = this.section.model
|
|
63
|
+
? SectionsBinderHelper.getQuantityGroupByValue(this.section.model, this.section.boundData.name)
|
|
64
|
+
: {};
|
|
65
|
+
}
|
|
66
|
+
getCurrentValueIndex() {
|
|
67
|
+
const index = -1;
|
|
68
|
+
const valueOptions = this.section.sectionValue && this.section.sectionValue.valueOptions;
|
|
69
|
+
const currentValue = this.form.controls[this.section.id].value;
|
|
70
|
+
if (valueOptions && EntityUtil.isPresent(currentValue)) {
|
|
71
|
+
return valueOptions.findIndex(valueOption => currentValue === valueOption);
|
|
72
|
+
}
|
|
73
|
+
return index;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
VeloAttributeDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: VeloAttributeDirective, deps: [{ token: i1.FormScopeService }, { token: i2.SectionScopeService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
77
|
+
VeloAttributeDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.15", type: VeloAttributeDirective, selector: "velo-attribute-directive", exportAs: ["attributeApi"], ngImport: i0 });
|
|
78
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: VeloAttributeDirective, decorators: [{
|
|
79
|
+
type: Directive,
|
|
80
|
+
args: [{
|
|
81
|
+
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
82
|
+
selector: 'velo-attribute-directive',
|
|
83
|
+
exportAs: 'attributeApi',
|
|
84
|
+
}]
|
|
85
|
+
}], ctorParameters: function () { return [{ type: i1.FormScopeService }, { type: i2.SectionScopeService }]; } });
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVsby1hdHRyaWJ1dGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvcnVudGltZS9leGVjdXRpb24vZGlyZWN0aXZlcy92ZWxvLWF0dHJpYnV0ZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUVsRCxPQUFPLEVBQUUsVUFBVSxFQUFXLE1BQU0sY0FBYyxDQUFDO0FBQ25ELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFJaEMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7Ozs7QUFFMUUsMEhBQTBIO0FBTTFILE1BQU0sT0FBTyxzQkFBc0I7SUFNakMsWUFBb0IsU0FBMkIsRUFBVSxZQUFpQztRQUF0RSxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUFVLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtRQUwxRixvQkFBZSxHQUFnQyxFQUFFLENBQUM7UUFNaEQsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQztRQUNoQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDO0lBQzNDLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxZQUFZLENBQUMsV0FBaUI7UUFDNUIsTUFBTSxVQUFVLEdBQWU7WUFDN0IsRUFBRSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUNuQixNQUFNLEVBQUUsUUFBUTtZQUNoQixXQUFXO1NBQ1osQ0FBQztRQUVGLElBQUksQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELGVBQWUsQ0FBQyxXQUFnQjtRQUM5QixNQUFN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QUM7b0JBQ1QsOERBQThEO29CQUM5RCxRQUFRLEVBQUUsMEJBQTBCO29CQUNwQyxRQUFRLEVBQUUsY0FBYztpQkFDekIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRW50aXR5VXRpbCwgU2VjdGlvbiB9IGZyb20gJ0B2ZWxvY2UvY29yZSc7XG5pbXBvcnQgeyBpc0RhdGUgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgRm9ybVNjb3BlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2Zvcm0tc2NvcGUuc2VydmljZSc7XG5pbXBvcnQgeyBTZWN0aW9uU2NvcGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc2VjdGlvbi1zY29wZS5zZXJ2aWNlJztcbmltcG9ydCB7IFVwZGF0ZURhdGEgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBTZWN0aW9uc0JpbmRlckhlbHBlciB9IGZyb20gJy4uLy4uL3V0aWxzL3NlY3Rpb25zLWJpbmRlci5oZWxwZXInO1xuXG4vL1RPRE8gQUxFIFdFIEFSRSBFWFRFTkRJTkcgQ09NUE9ORU5UIEhFUkUgSU4gUE9SVFMgV0UgQVJFIEVYVEVORElORyBERURJQ0FURUQgQ0xBU1MhISBUWVBFUyBIQU5ETEVSIElTIE5PIElNUExFTUVOVEVEIFlFVFxuQERpcmVjdGl2ZSh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAndmVsby1hdHRyaWJ1dGUtZGlyZWN0aXZlJyxcbiAgZXhwb3J0QXM6ICdhdHRyaWJ1dGVBcGknLFxufSlcbmV4cG9ydCBjbGFzcyBWZWxvQXR0cmlidXRlRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgdmFsdWVRdWFudGl0aWVzOiB7IFtpbmRleDogc3RyaW5nXTogbnVtYmVyIH0gPSB7fTtcblxuICBmb3JtOiBGb3JtR3JvdXA7XG4gIHNlY3Rpb246IFNlY3Rpb247XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmb3JtU2NvcGU6IEZvcm1TY29wZVNlcnZpY2UsIHByaXZhdGUgc2VjdGlvblNjb3BlOiBTZWN0aW9uU2NvcGVTZXJ2aWNlKSB7XG4gICAgdGhpcy5mb3JtID0gdGhpcy5mb3JtU2NvcGUuZm9ybTtcbiAgICB0aGlzLnNlY3Rpb24gPSB0aGlzLnNlY3Rpb25TY29wZS5zZWN0aW9uO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pbml0UXVhbnRpdHkoKTtcbiAgfVxuXG4gIGhhbmRsZUNoYW5nZSh2YWx1ZU9wdGlvbj86IGFueSk6IHZvaWQge1xuICAgIGNvbnN0IHVwZGF0ZURhdGE6IFVwZGF0ZURhdGEgPSB7XG4gICAgICBpZDogdGhpcy5zZWN0aW9uLmlkLFxuICAgICAgYWN0aW9uOiAndXBkYXRlJyxcbiAgICAgIHZhbHVlT3B0aW9uLFxuICAgIH07XG5cbiAgICB0aGlzLmZvcm1TY29wZS5wdWJsaXNoRm9ybVVwZGF0ZSh1cGRhdGVEYXRhKTtcbiAgfVxuXG4gIGhhbmRsZUNoYW5nRGF0ZSh2YWx1ZU9wdGlvbjogYW55KTogdm9pZCB7XG4gICAgY29uc3Qgb2xkVmFsdWUgPSB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5zZWN0aW9uLmlkXS52YWx1ZSB8fCAnJztcblxuICAgIGNvbnN0IG5ld1ZhbHVlID0gaXNEYXRlKHZhbHVlT3B0aW9uKSA/IHZhbHVlT3B0aW9uLnRvTG9jYWxlRGF0ZVN0cmluZygnZW4tdXMnKSA6ICcnO1xuXG4gICAgaWYgKG9sZFZhbHVlICE9PSBuZXdWYWx1ZSkge1xuICAgICAgdGhpcy5oYW5kbGVDaGFuZ2UobmV3VmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIGhhbmRsZVJlbW92ZSgpOiB2b2lkIHtcbiAgICBjb25zdCB1cGRhdGVEYXRhOiBVcGRhdGVEYXRhID0ge1xuICAgICAgaWQ6IHRoaXMuc2VjdGlvbi5pZCxcbiAgICAgIGFjdGlvbjogJ3JlbW92ZScsXG4gICAgfTtcblxuICAgIHRoaXMuZm9ybVNjb3BlLnB1Ymxpc2hGb3JtVXBkYXRlKHVwZGF0ZURhdGEpO1xuICB9XG5cbiAgLy8gVE9ETyBBTEUgVEhJUyBJUyBTUEVDSUZJQyBTVEVQUEVSIEZVTkNUSU9OU1xuICBuZXh0VmFsKCk6IHZvaWQge1xuICAgIGNvbnN0IGN1cnJlbnRJbmRleCA9IHRoaXMuZ2V0Q3VycmVudFZhbHVlSW5kZXgoKTtcbiAgICBjb25zdCBuZXh0VmFsSW5kZXggPSBjdXJyZW50SW5kZXggKyAxO1xuXG4gICAgaWYgKFxuICAgICAgY3VycmVudEluZGV4ICE9IC0xICYmXG4gICAgICB0aGlzLnNlY3Rpb24uc2VjdGlvblZhbHVlICYmXG4gICAgICB0aGlzLnNlY3Rpb24uc2VjdGlvblZhbHVlLnZhbHVlT3B0aW9ucy5sZW5ndGggPj0gbmV4dFZhbEluZGV4XG4gICAgKSB7XG4gICAgICB0aGlzLmhhbmRsZUNoYW5nZSh0aGlzLnNlY3Rpb24uc2VjdGlvblZhbHVlLnZhbHVlT3B0aW9uc1tuZXh0VmFsSW5kZXhdKTtcbiAgICB9XG4gIH1cblxuICBwcmV2VmFsKCk6IHZvaWQge1xuICAgIGNvbnN0IGN1cnJlbnRJbmRleCA9IHRoaXMuZ2V0Q3VycmVudFZhbHVlSW5kZXgoKTtcbiAgICBjb25zdCBwcmV2VmFsSW5kZXggPSBjdXJyZW50SW5kZXggLSAxO1xuXG4gICAgaWYgKFxuICAgICAgY3VycmVudEluZGV4ICE9IC0xICYmXG4gICAgICB0aGlzLnNlY3Rpb24uc2VjdGlvblZhbHVlICYmXG4gICAgICB0aGlzLnNlY3Rpb24uc2VjdGlvblZhbHVlLnZhbHVlT3B0aW9ucy5sZW5ndGggPj0gcHJldlZhbEluZGV4XG4gICAgKSB7XG4gICAgICB0aGlzLmhhbmRsZUNoYW5nZSh0aGlzLnNlY3Rpb24uc2VjdGlvblZhbHVlLnZhbHVlT3B0aW9uc1twcmV2VmFsSW5kZXhdKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGluaXRRdWFudGl0eSgpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlUXVhbnRpdGllcyA9IHRoaXMuc2VjdGlvbi5tb2RlbFxuICAgICAgPyBTZWN0aW9uc0JpbmRlckhlbHBlci5nZXRRdWFudGl0eUdyb3VwQnlWYWx1ZSh0aGlzLnNlY3Rpb24ubW9kZWwsIHRoaXMuc2VjdGlvbi5ib3VuZERhdGEubmFtZSlcbiAgICAgIDoge307XG4gIH1cblxuICBwcml2YXRlIGdldEN1cnJlbnRWYWx1ZUluZGV4KCk6IG51bWJlciB7XG4gICAgY29uc3QgaW5kZXggPSAtMTtcblxuICAgIGNvbnN0IHZhbHVlT3B0aW9ucyA9IHRoaXMuc2VjdGlvbi5zZWN0aW9uVmFsdWUgJiYgdGhpcy5zZWN0aW9uLnNlY3Rpb25WYWx1ZS52YWx1ZU9wdGlvbnM7XG4gICAgY29uc3QgY3VycmVudFZhbHVlID0gdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMuc2VjdGlvbi5pZF0udmFsdWU7XG5cbiAgICBpZiAodmFsdWVPcHRpb25zICYmIEVudGl0eVV0aWwuaXNQcmVzZW50KGN1cnJlbnRWYWx1ZSkpIHtcbiAgICAgIHJldHVybiB2YWx1ZU9wdGlvbnMuZmluZEluZGV4KHZhbHVlT3B0aW9uID0+IGN1cnJlbnRWYWx1ZSA9PT0gdmFsdWVPcHRpb24pO1xuICAgIH1cblxuICAgIHJldHVybiBpbmRleDtcbiAgfVxufVxuIl19
|