@veloceapps/sdk 4.0.21-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 +1946 -0
- package/bundles/veloceapps-sdk-cms.umd.js.map +1 -0
- package/bundles/veloceapps-sdk-core.umd.js +1671 -0
- package/bundles/veloceapps-sdk-core.umd.js.map +1 -0
- package/bundles/veloceapps-sdk-runtime.umd.js +4414 -0
- package/bundles/veloceapps-sdk-runtime.umd.js.map +1 -0
- package/bundles/veloceapps-sdk.umd.js +3043 -0
- package/bundles/veloceapps-sdk.umd.js.map +1 -0
- package/cms/cms.actions.d.ts +22 -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 +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 +103 -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 +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/veloceapps-sdk-cms.d.ts +5 -0
- package/cms/vendor-map.d.ts +707 -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 +60 -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 +37 -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 +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 +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 +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/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/veloceapps-sdk-cms.js +5 -0
- package/esm2015/cms/vendor-map.js +39 -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 +201 -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 +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 +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 +284 -0
- package/esm2015/src/components/header/header.module.js +46 -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 +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 +124 -0
- package/esm2015/src/services/flow.service.js +71 -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 +1357 -0
- package/fesm2015/veloceapps-sdk-cms.js.map +1 -0
- package/fesm2015/veloceapps-sdk-core.js +1029 -0
- package/fesm2015/veloceapps-sdk-core.js.map +1 -0
- package/fesm2015/veloceapps-sdk-runtime.js +3894 -0
- package/fesm2015/veloceapps-sdk-runtime.js.map +1 -0
- package/fesm2015/veloceapps-sdk.js +2449 -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 +63 -0
- package/src/components/header/header.module.d.ts +14 -0
- package/src/components/header/header.types.d.ts +20 -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 +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 +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 +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 +8 -0
- package/src/utils/index.d.ts +1 -0
- package/veloceapps-sdk.d.ts +5 -0
@@ -0,0 +1,136 @@
|
|
1
|
+
import { TemplatePortal } from '@angular/cdk/portal';
|
2
|
+
import { Component, EventEmitter, HostBinding, Input, Output, ViewChild, } from '@angular/core';
|
3
|
+
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
4
|
+
import { merge, of } from 'rxjs';
|
5
|
+
import * as i0 from "@angular/core";
|
6
|
+
import * as i1 from "@angular/cdk/overlay";
|
7
|
+
import * as i2 from "@angular/common";
|
8
|
+
export class MultiselectComponent {
|
9
|
+
constructor(elRef, viewContainerRef, overlay) {
|
10
|
+
this.elRef = elRef;
|
11
|
+
this.viewContainerRef = viewContainerRef;
|
12
|
+
this.overlay = overlay;
|
13
|
+
this.selectionChange = new EventEmitter();
|
14
|
+
this.selected = [];
|
15
|
+
this.displayValue = '';
|
16
|
+
this.touched = false;
|
17
|
+
this.disabled = false;
|
18
|
+
this.opened = false;
|
19
|
+
this.onChange = () => {
|
20
|
+
return;
|
21
|
+
};
|
22
|
+
this.onTouched = () => {
|
23
|
+
return;
|
24
|
+
};
|
25
|
+
}
|
26
|
+
ngOnDestroy() {
|
27
|
+
this.destroyDropdown();
|
28
|
+
}
|
29
|
+
writeValue(selected) {
|
30
|
+
this.selected = selected;
|
31
|
+
this.getDisplayValue();
|
32
|
+
}
|
33
|
+
registerOnChange(onChange) {
|
34
|
+
this.onChange = onChange;
|
35
|
+
}
|
36
|
+
registerOnTouched(onTouched) {
|
37
|
+
this.onTouched = onTouched;
|
38
|
+
}
|
39
|
+
setDisabledState(disabled) {
|
40
|
+
this.disabled = disabled;
|
41
|
+
}
|
42
|
+
handleSelection(value) {
|
43
|
+
const selectedItem = this.selected.find(item => item === value);
|
44
|
+
if (selectedItem) {
|
45
|
+
this.selected = this.selected.filter(item => item !== value);
|
46
|
+
}
|
47
|
+
else {
|
48
|
+
this.selected = [...this.selected, value];
|
49
|
+
}
|
50
|
+
this.getDisplayValue();
|
51
|
+
this.selectionChange.emit(this.selected);
|
52
|
+
this.onChange(this.selected);
|
53
|
+
}
|
54
|
+
toggleOpened() {
|
55
|
+
this.opened ? this.destroyDropdown() : this.openDropdown();
|
56
|
+
}
|
57
|
+
getDisplayValue() {
|
58
|
+
const joinedValue = this.selected.join(', ');
|
59
|
+
this.displayValue = joinedValue.length > 24 ? `${this.selected.length} options selected` : joinedValue;
|
60
|
+
}
|
61
|
+
openDropdown() {
|
62
|
+
this.opened = true;
|
63
|
+
this.overlayRef = this.overlay.create({
|
64
|
+
hasBackdrop: true,
|
65
|
+
backdropClass: 'cdk-overlay-transparent-backdrop',
|
66
|
+
scrollStrategy: this.overlay.scrollStrategies.close(),
|
67
|
+
positionStrategy: this.overlay
|
68
|
+
.position()
|
69
|
+
.flexibleConnectedTo(this.elRef)
|
70
|
+
.withPositions([
|
71
|
+
{
|
72
|
+
originX: 'end',
|
73
|
+
originY: 'bottom',
|
74
|
+
overlayX: 'end',
|
75
|
+
overlayY: 'top',
|
76
|
+
offsetY: 8,
|
77
|
+
},
|
78
|
+
]),
|
79
|
+
});
|
80
|
+
const templatePortal = new TemplatePortal(this.overlayTemplate, this.viewContainerRef);
|
81
|
+
this.overlayRef.attach(templatePortal);
|
82
|
+
this.dropdownClosingActionsSub = this.dropdownClosingActions().subscribe(() => this.destroyDropdown());
|
83
|
+
}
|
84
|
+
dropdownClosingActions() {
|
85
|
+
if (!this.overlayRef) {
|
86
|
+
return of();
|
87
|
+
}
|
88
|
+
const backdropClick$ = this.overlayRef.backdropClick();
|
89
|
+
const detachment$ = this.overlayRef.detachments();
|
90
|
+
return merge(backdropClick$, detachment$);
|
91
|
+
}
|
92
|
+
destroyDropdown() {
|
93
|
+
var _a;
|
94
|
+
if (!this.overlayRef || !this.opened) {
|
95
|
+
return;
|
96
|
+
}
|
97
|
+
(_a = this.dropdownClosingActionsSub) === null || _a === void 0 ? void 0 : _a.unsubscribe();
|
98
|
+
this.opened = false;
|
99
|
+
this.overlayRef.detach();
|
100
|
+
}
|
101
|
+
}
|
102
|
+
MultiselectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: MultiselectComponent, deps: [{ token: i0.ElementRef }, { token: i0.ViewContainerRef }, { token: i1.Overlay }], target: i0.ɵɵFactoryTarget.Component });
|
103
|
+
MultiselectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: MultiselectComponent, selector: "velo-multiselect", inputs: { options: "options" }, outputs: { selectionChange: "selectionChange" }, host: { properties: { "class.opened": "this.opened" } }, providers: [
|
104
|
+
{
|
105
|
+
provide: NG_VALUE_ACCESSOR,
|
106
|
+
multi: true,
|
107
|
+
useExisting: MultiselectComponent,
|
108
|
+
},
|
109
|
+
], viewQueries: [{ propertyName: "overlayTemplate", first: true, predicate: ["overlayTemplate"], descendants: true }], ngImport: i0, template: "<div class=\"value-wrapper\" (click)=\"toggleOpened()\">\n <span class=\"value\">{{ displayValue }}</span>\n <i class=\"fa fa-chevron-down\"></i>\n</div>\n\n<ng-template #overlayTemplate>\n <div class=\"dropdown\">\n <div class=\"checkbox-select\" *ngFor=\"let option of options\">\n <label>\n <input\n type=\"checkbox\"\n [checked]=\"selected.includes(option)\"\n (change)=\"handleSelection(option)\"\n [value]=\"option\"\n />\n\n <i class=\"input-helper\"></i>\n {{ option }}\n </label>\n </div>\n </div>\n</ng-template>\n", styles: [":host{display:block;width:172px}:host[disabled] .value-wrapper{pointer-events:none;background:rgba(0,0,0,.06);border-color:#0003}:host.opened .value-wrapper{border-color:#0e8fff}:host.opened i{transform:rotate(180deg)}:host .value-wrapper{cursor:pointer;display:flex;align-items:center;justify-content:space-between;height:34px;padding:0 10px;border:1px solid #ddd;border-radius:3px;background:#fff}:host .value-wrapper .value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dropdown{width:172px;max-height:200px;background:#fff;border:1px solid #ddd;border-radius:3px;overflow:auto}.dropdown .checkbox-select{padding:0 10px;width:100%}.dropdown .checkbox-select label{width:100%;height:36px;line-height:36px}.dropdown .checkbox-select .input-helper:before{top:10px}.dropdown .checkbox-select .input-helper:after{top:12px}.dropdown .checkbox-select:hover{background:#d5dddf}\n"], directives: [{ type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
110
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: MultiselectComponent, decorators: [{
|
111
|
+
type: Component,
|
112
|
+
args: [{
|
113
|
+
// eslint-disable-next-line @angular-eslint/component-selector
|
114
|
+
selector: 'velo-multiselect',
|
115
|
+
templateUrl: 'velo-multiselect.component.html',
|
116
|
+
styleUrls: ['./velo-multiselect.component.scss'],
|
117
|
+
providers: [
|
118
|
+
{
|
119
|
+
provide: NG_VALUE_ACCESSOR,
|
120
|
+
multi: true,
|
121
|
+
useExisting: MultiselectComponent,
|
122
|
+
},
|
123
|
+
],
|
124
|
+
}]
|
125
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ViewContainerRef }, { type: i1.Overlay }]; }, propDecorators: { options: [{
|
126
|
+
type: Input
|
127
|
+
}], selectionChange: [{
|
128
|
+
type: Output
|
129
|
+
}], overlayTemplate: [{
|
130
|
+
type: ViewChild,
|
131
|
+
args: ['overlayTemplate']
|
132
|
+
}], opened: [{
|
133
|
+
type: HostBinding,
|
134
|
+
args: ['class.opened']
|
135
|
+
}] } });
|
136
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVsby1tdWx0aXNlbGVjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9ydW50aW1lL2V4ZWN1dGlvbi9jb21wb25lbnRzL3ZlbG8tbXVsdGlzZWxlY3QvdmVsby1tdWx0aXNlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9ydW50aW1lL2V4ZWN1dGlvbi9jb21wb25lbnRzL3ZlbG8tbXVsdGlzZWxlY3QvdmVsby1tdWx0aXNlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUNMLFNBQVMsRUFFVCxZQUFZLEVBQ1osV0FBVyxFQUNYLEtBQUssRUFFTCxNQUFNLEVBRU4sU0FBUyxHQUVWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsS0FBSyxFQUFjLEVBQUUsRUFBZ0IsTUFBTSxNQUFNLENBQUM7Ozs7QUFlM0QsTUFBTSxPQUFPLG9CQUFvQjtJQXVCL0IsWUFBb0IsS0FBaUIsRUFBVSxnQkFBa0MsRUFBVSxPQUFnQjtRQUF2RixVQUFLLEdBQUwsS0FBSyxDQUFZO1FBQVUscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUFVLFlBQU8sR0FBUCxPQUFPLENBQVM7UUFyQmpHLG9CQUFlLEdBQTJCLElBQUksWUFBWSxFQUFZLENBQUM7UUFDakYsYUFBUSxHQUFhLEVBQUUsQ0FBQztRQUN4QixpQkFBWSxHQUFHLEVBQUUsQ0FBQztRQUNsQixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFLakIsV0FBTSxHQUFHLEtBQUssQ0FBQztRQUtmLGFBQVEsR0FBaUMsR0FBRyxF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aEQsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLEtBQUssRUFBRSxJQUFJOzRCQUNYLFdBQVcsc0JBQXNCO3lCQUNsQztxQkFDRjtpQkFDRjtzSkFFVSxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0ksZUFBZTtzQkFBeEIsTUFBTTtnQkFNdUIsZUFBZTtzQkFBNUMsU0FBUzt1QkFBQyxpQkFBaUI7Z0JBRzVCLE1BQU07c0JBREwsV0FBVzt1QkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT3ZlcmxheSwgT3ZlcmxheVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IFRlbXBsYXRlUG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NvbnRhaW5lclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBtZXJnZSwgT2JzZXJ2YWJsZSwgb2YsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICd2ZWxvLW11bHRpc2VsZWN0JyxcbiAgdGVtcGxhdGVVcmw6ICd2ZWxvLW11bHRpc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdmVsby1tdWx0aXNlbGVjdC5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgdXNlRXhpc3Rpbmc6IE11bHRpc2VsZWN0Q29tcG9uZW50LFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIE11bHRpc2VsZWN0Q29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIG9wdGlvbnM/OiBhbnlbXTtcbiAgQE91dHB1dCgpIHNlbGVjdGlvbkNoYW5nZTogRXZlbnRFbWl0dGVyPHN0cmluZ1tdPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nW10+KCk7XG4gIHNlbGVjdGVkOiBzdHJpbmdbXSA9IFtdO1xuICBkaXNwbGF5VmFsdWUgPSAnJztcbiAgdG91Y2hlZCA9IGZhbHNlO1xuICBkaXNhYmxlZCA9IGZhbHNlO1xuXG4gIEBWaWV3Q2hpbGQoJ292ZXJsYXlUZW1wbGF0ZScpIG92ZXJsYXlUZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5vcGVuZWQnKVxuICBvcGVuZWQgPSBmYWxzZTtcblxuICBwcml2YXRlIG92ZXJsYXlSZWY/OiBPdmVybGF5UmVmO1xuICBwcml2YXRlIGRyb3Bkb3duQ2xvc2luZ0FjdGlvbnNTdWI/OiBTdWJzY3JpcHRpb247XG5cbiAgb25DaGFuZ2U6IChzZWxlY3RlZDogc3RyaW5nW10pID0+IHZvaWQgPSAoKSA9PiB7XG4gICAgcmV0dXJuO1xuICB9O1xuICBvblRvdWNoZWQ6ICgpID0+IHZvaWQgPSAoKSA9PiB7XG4gICAgcmV0dXJuO1xuICB9O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxSZWY6IEVsZW1lbnRSZWYsIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZiwgcHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5KSB7fVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuZGVzdHJveURyb3Bkb3duKCk7XG4gIH1cblxuICB3cml0ZVZhbHVlKHNlbGVjdGVkOiBzdHJpbmdbXSkge1xuICAgIHRoaXMuc2VsZWN0ZWQgPSBzZWxlY3RlZDtcblxuICAgIHRoaXMuZ2V0RGlzcGxheVZhbHVlKCk7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKG9uQ2hhbmdlOiBhbnkpIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gb25DaGFuZ2U7XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChvblRvdWNoZWQ6IGFueSkge1xuICAgIHRoaXMub25Ub3VjaGVkID0gb25Ub3VjaGVkO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShkaXNhYmxlZDogYm9vbGVhbikge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBkaXNhYmxlZDtcbiAgfVxuXG4gIGhhbmRsZVNlbGVjdGlvbih2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgY29uc3Qgc2VsZWN0ZWRJdGVtID0gdGhpcy5zZWxlY3RlZC5maW5kKGl0ZW0gPT4gaXRlbSA9PT0gdmFsdWUpO1xuXG4gICAgaWYgKHNlbGVjdGVkSXRlbSkge1xuICAgICAgdGhpcy5zZWxlY3RlZCA9IHRoaXMuc2VsZWN0ZWQuZmlsdGVyKGl0ZW0gPT4gaXRlbSAhPT0gdmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbGVjdGVkID0gWy4uLnRoaXMuc2VsZWN0ZWQsIHZhbHVlXTtcbiAgICB9XG5cbiAgICB0aGlzLmdldERpc3BsYXlWYWx1ZSgpO1xuICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlLmVtaXQodGhpcy5zZWxlY3RlZCk7XG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLnNlbGVjdGVkKTtcbiAgfVxuXG4gIHB1YmxpYyB0b2dnbGVPcGVuZWQoKTogdm9pZCB7XG4gICAgdGhpcy5vcGVuZWQgPyB0aGlzLmRlc3Ryb3lEcm9wZG93bigpIDogdGhpcy5vcGVuRHJvcGRvd24oKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RGlzcGxheVZhbHVlKCk6IHZvaWQge1xuICAgIGNvbnN0IGpvaW5lZFZhbHVlID0gdGhpcy5zZWxlY3RlZC5qb2luKCcsICcpO1xuICAgIHRoaXMuZGlzcGxheVZhbHVlID0gam9pbmVkVmFsdWUubGVuZ3RoID4gMjQgPyBgJHt0aGlzLnNlbGVjdGVkLmxlbmd0aH0gb3B0aW9ucyBzZWxlY3RlZGAgOiBqb2luZWRWYWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgb3BlbkRyb3Bkb3duKCk6IHZvaWQge1xuICAgIHRoaXMub3BlbmVkID0gdHJ1ZTtcbiAgICB0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKHtcbiAgICAgIGhhc0JhY2tkcm9wOiB0cnVlLFxuICAgICAgYmFja2Ryb3BDbGFzczogJ2Nkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wJyxcbiAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5jbG9zZSgpLFxuICAgICAgcG9zaXRpb25TdHJhdGVneTogdGhpcy5vdmVybGF5XG4gICAgICAgIC5wb3NpdGlvbigpXG4gICAgICAgIC5mbGV4aWJsZUNvbm5lY3RlZFRvKHRoaXMuZWxSZWYpXG4gICAgICAgIC53aXRoUG9zaXRpb25zKFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBvcmlnaW5YOiAnZW5kJyxcbiAgICAgICAgICAgIG9yaWdpblk6ICdib3R0b20nLFxuICAgICAgICAgICAgb3ZlcmxheVg6ICdlbmQnLFxuICAgICAgICAgICAgb3ZlcmxheVk6ICd0b3AnLFxuICAgICAgICAgICAgb2Zmc2V0WTogOCxcbiAgICAgICAgICB9LFxuICAgICAgICBdKSxcbiAgICB9KTtcblxuICAgIGNvbnN0IHRlbXBsYXRlUG9ydGFsID0gbmV3IFRlbXBsYXRlUG9ydGFsKHRoaXMub3ZlcmxheVRlbXBsYXRlLCB0aGlzLnZpZXdDb250YWluZXJSZWYpO1xuICAgIHRoaXMub3ZlcmxheVJlZi5hdHRhY2godGVtcGxhdGVQb3J0YWwpO1xuXG4gICAgdGhpcy5kcm9wZG93bkNsb3NpbmdBY3Rpb25zU3ViID0gdGhpcy5kcm9wZG93bkNsb3NpbmdBY3Rpb25zKCkuc3Vic2NyaWJlKCgpID0+IHRoaXMuZGVzdHJveURyb3Bkb3duKCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBkcm9wZG93bkNsb3NpbmdBY3Rpb25zKCk6IE9ic2VydmFibGU8TW91c2VFdmVudCB8IHZvaWQ+IHtcbiAgICBpZiAoIXRoaXMub3ZlcmxheVJlZikge1xuICAgICAgcmV0dXJuIG9mKCk7XG4gICAgfVxuXG4gICAgY29uc3QgYmFja2Ryb3BDbGljayQgPSB0aGlzLm92ZXJsYXlSZWYuYmFja2Ryb3BDbGljaygpO1xuICAgIGNvbnN0IGRldGFjaG1lbnQkID0gdGhpcy5vdmVybGF5UmVmLmRldGFjaG1lbnRzKCk7XG5cbiAgICByZXR1cm4gbWVyZ2UoYmFja2Ryb3BDbGljayQsIGRldGFjaG1lbnQkKTtcbiAgfVxuXG4gIHByaXZhdGUgZGVzdHJveURyb3Bkb3duKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5vdmVybGF5UmVmIHx8ICF0aGlzLm9wZW5lZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuZHJvcGRvd25DbG9zaW5nQWN0aW9uc1N1Yj8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLm9wZW5lZCA9IGZhbHNlO1xuICAgIHRoaXMub3ZlcmxheVJlZi5kZXRhY2goKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInZhbHVlLXdyYXBwZXJcIiAoY2xpY2spPVwidG9nZ2xlT3BlbmVkKClcIj5cbiAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiPnt7IGRpc3BsYXlWYWx1ZSB9fTwvc3Bhbj5cbiAgPGkgY2xhc3M9XCJmYSBmYS1jaGV2cm9uLWRvd25cIj48L2k+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNvdmVybGF5VGVtcGxhdGU+XG4gIDxkaXYgY2xhc3M9XCJkcm9wZG93blwiPlxuICAgIDxkaXYgY2xhc3M9XCJjaGVja2JveC1zZWxlY3RcIiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIG9wdGlvbnNcIj5cbiAgICAgIDxsYWJlbD5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICBbY2hlY2tlZF09XCJzZWxlY3RlZC5pbmNsdWRlcyhvcHRpb24pXCJcbiAgICAgICAgICAoY2hhbmdlKT1cImhhbmRsZVNlbGVjdGlvbihvcHRpb24pXCJcbiAgICAgICAgICBbdmFsdWVdPVwib3B0aW9uXCJcbiAgICAgICAgLz5cblxuICAgICAgICA8aSBjbGFzcz1cImlucHV0LWhlbHBlclwiPjwvaT5cbiAgICAgICAge3sgb3B0aW9uIH19XG4gICAgICA8L2xhYmVsPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
package/esm2015/runtime/execution/components/velo-port-checkbox/velo-port-checkbox.component.js
ADDED
@@ -0,0 +1,80 @@
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
2
|
+
import { SectionsBinderHelper } from '../../../utils/sections-binder.helper';
|
3
|
+
import * as i0 from "@angular/core";
|
4
|
+
import * as i1 from "../../../services/form-scope.service";
|
5
|
+
import * as i2 from "../../../services/section-scope.service";
|
6
|
+
import * as i3 from "@angular/forms";
|
7
|
+
import * as i4 from "@angular/common";
|
8
|
+
import * as i5 from "ngx-bootstrap/popover";
|
9
|
+
export class VeloPortCheckBoxComponent {
|
10
|
+
constructor(formScope, sectionScope) {
|
11
|
+
var _a;
|
12
|
+
this.formScope = formScope;
|
13
|
+
this.sectionScope = sectionScope;
|
14
|
+
this.showSelectAll = false;
|
15
|
+
this.form = this.formScope.form;
|
16
|
+
this.section = this.sectionScope.section;
|
17
|
+
this.controlName = this.section.id;
|
18
|
+
(_a = this.section.sectionValue) === null || _a === void 0 ? void 0 : _a.valueOptions.forEach(item => {
|
19
|
+
if (this.hasValueFor(item)) {
|
20
|
+
this.form.controls[this.controlName].setValue(item);
|
21
|
+
}
|
22
|
+
});
|
23
|
+
}
|
24
|
+
handleChange(valueOption) {
|
25
|
+
const updateData = {
|
26
|
+
id: this.section.id,
|
27
|
+
action: this.hasValueFor(valueOption)
|
28
|
+
? 'remove'
|
29
|
+
: this.section.model && SectionsBinderHelper.isAddAllowed(this.section.model, this.section.boundData.name)
|
30
|
+
? 'create'
|
31
|
+
: 'update',
|
32
|
+
valueOption,
|
33
|
+
};
|
34
|
+
this.formScope.publishFormUpdate(updateData);
|
35
|
+
}
|
36
|
+
hasValueFor(valueOption) {
|
37
|
+
return !!this.findLineItemForValue(valueOption);
|
38
|
+
}
|
39
|
+
selectAllChange() {
|
40
|
+
var _a;
|
41
|
+
const portDomain = (_a = this.section.model) === null || _a === void 0 ? void 0 : _a.portDomains[this.section.boundData.name];
|
42
|
+
const updateData = {
|
43
|
+
id: this.section.id,
|
44
|
+
action: 'upsert',
|
45
|
+
selectedValueOptions: this.isAllSelected() ? [] : portDomain ? portDomain.domainTypes.map(t => t.name) : [],
|
46
|
+
};
|
47
|
+
this.formScope.publishFormUpdate(updateData);
|
48
|
+
}
|
49
|
+
isAllSelected() {
|
50
|
+
var _a, _b;
|
51
|
+
const selected = (_a = this.section.model) === null || _a === void 0 ? void 0 : _a.lineItems.filter(li => li.port && li.port === this.section.boundData.name);
|
52
|
+
const portDomain = (_b = this.section.model) === null || _b === void 0 ? void 0 : _b.portDomains[this.section.boundData.name];
|
53
|
+
return portDomain ? portDomain.domainTypes.length === (selected === null || selected === void 0 ? void 0 : selected.length) : false;
|
54
|
+
}
|
55
|
+
getMessages(valueOption) {
|
56
|
+
var _a, _b, _c;
|
57
|
+
if ((_a = this.section.model) === null || _a === void 0 ? void 0 : _a.lineItems) {
|
58
|
+
return (_c = (_b = this.findLineItemForValue(valueOption)) === null || _b === void 0 ? void 0 : _b.messages) !== null && _c !== void 0 ? _c : [];
|
59
|
+
}
|
60
|
+
return [];
|
61
|
+
}
|
62
|
+
findLineItemForValue(valueOption) {
|
63
|
+
var _a;
|
64
|
+
return (((_a = this.section.model) === null || _a === void 0 ? void 0 : _a.lineItems) &&
|
65
|
+
this.section.model.lineItems.find(li => li.type && li.type.toLowerCase() === valueOption.toLowerCase()));
|
66
|
+
}
|
67
|
+
}
|
68
|
+
VeloPortCheckBoxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: VeloPortCheckBoxComponent, deps: [{ token: i1.FormScopeService }, { token: i2.SectionScopeService }], target: i0.ɵɵFactoryTarget.Component });
|
69
|
+
VeloPortCheckBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: VeloPortCheckBoxComponent, selector: "velo-port-checkbox", inputs: { showSelectAll: "showSelectAll" }, ngImport: i0, template: "<div [formGroup]=\"form\">\n <!--TODO ALE replace divs with ng-templates-->\n <div *ngIf=\"showSelectAll\">\n <div class=\"row no-gutter clearfix\">\n <div class=\"col-md-12\">\n <div class=\"content\">\n <div class=\"container-box container-box-bordered container-box-checkbox collapsed\">\n <div class=\"box-title\">\n <div class=\"header clearfix\">\n <div class=\"checkbox-select\">\n <label>\n <input type=\"checkbox\" (change)=\"selectAllChange()\" [checked]=\"isAllSelected()\" />\n\n <i class=\"input-helper\"></i>\n Select All\n </label>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div *ngFor=\"let valueOption of section.sectionValue?.valueOptions\">\n <div class=\"unchecked\">\n <div class=\"row no-gutter clearfix\">\n <div class=\"col-md-12\">\n <div class=\"content\">\n <div class=\"container-box container-box-bordered container-box-checkbox collapsed\">\n <div class=\"box-title\" (click)=\"handleChange(valueOption)\">\n <div class=\"header clearfix\">\n <div class=\"checkbox-select\">\n <label>\n <input\n type=\"checkbox\"\n [class.checkbox--checked]=\"valueOption === form.controls[controlName].value\"\n />\n\n <i class=\"input-helper\"></i>\n {{section.sectionValue?.displayValues?.[valueOption] || valueOption}}\n </label>\n </div>\n </div>\n\n <div class=\"box-actions\" *ngIf=\"hasValueFor(valueOption)\">\n <ng-template #msgTemplate>\n <div class=\"runtime-info-message\">\n <ul class=\"message-text\">\n <li *ngFor=\"let message of getMessages(valueOption)\">{{ message }}</li>\n </ul>\n </div>\n </ng-template>\n <div\n class=\"box-action-button\"\n *ngIf=\"getMessages(valueOption).length > 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 </div>\n </div>\n <div class=\"box-content-wrapper\">\n <div class=\"box-content\"> </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n<ng-content></ng-content>\n", directives: [{ type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5.PopoverDirective, selector: "[popover]", inputs: ["outsideClick", "containerClass", "isOpen", "adaptivePosition", "popover", "popoverContext", "popoverTitle", "placement", "triggers", "container", "delay"], outputs: ["onShown", "onHidden"], exportAs: ["bs-popover"] }] });
|
70
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: VeloPortCheckBoxComponent, decorators: [{
|
71
|
+
type: Component,
|
72
|
+
args: [{
|
73
|
+
// eslint-disable-next-line @angular-eslint/component-selector
|
74
|
+
selector: 'velo-port-checkbox',
|
75
|
+
templateUrl: 'velo-port-checkbox.component.html',
|
76
|
+
}]
|
77
|
+
}], ctorParameters: function () { return [{ type: i1.FormScopeService }, { type: i2.SectionScopeService }]; }, propDecorators: { showSelectAll: [{
|
78
|
+
type: Input
|
79
|
+
}] } });
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVsby1wb3J0LWNoZWNrYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL3J1bnRpbWUvZXhlY3V0aW9uL2NvbXBvbmVudHMvdmVsby1wb3J0LWNoZWNrYm94L3ZlbG8tcG9ydC1jaGVja2JveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9ydW50aW1lL2V4ZWN1dGlvbi9jb21wb25lbnRzL3ZlbG8tcG9ydC1jaGVja2JveC92ZWxvLXBvcnQtY2hlY2tib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFNakQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7Ozs7Ozs7QUFPN0UsTUFBTSxPQUFPLHlCQUF5QjtJQVFwQyxZQUFvQixTQUEyQixFQUFVLFlBQWlDOztRQUF0RSxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUFVLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtRQUZqRixrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUc3QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUM7UUFFekMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUVuQyxNQUFBLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSwwQ0FBRSxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3JELElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMs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QUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxLQUFLLFdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUN4RyxDQUFDO0lBQ0osQ0FBQzs7dUhBekVVLHlCQUF5QjsyR0FBekIseUJBQXlCLHNHQ2J0QyxrOUZBOEVBOzRGRGpFYSx5QkFBeUI7a0JBTHJDLFNBQVM7bUJBQUM7b0JBQ1QsOERBQThEO29CQUM5RCxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixXQUFXLEVBQUUsbUNBQW1DO2lCQUNqRDt5SUFPVSxhQUFhO3NCQUFyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTGluZUl0ZW0sIFNlY3Rpb24gfSBmcm9tICdAdmVsb2NlYXBwcy9jb3JlJztcbmltcG9ydCB7IEZvcm1TY29wZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9mb3JtLXNjb3BlLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2VjdGlvblNjb3BlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3NlY3Rpb24tc2NvcGUuc2VydmljZSc7XG5pbXBvcnQgeyBVcGRhdGVEYXRhIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgU2VjdGlvbnNCaW5kZXJIZWxwZXIgfSBmcm9tICcuLi8uLi8uLi91dGlscy9zZWN0aW9ucy1iaW5kZXIuaGVscGVyJztcblxuQENvbXBvbmVudCh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAndmVsby1wb3J0LWNoZWNrYm94JyxcbiAgdGVtcGxhdGVVcmw6ICd2ZWxvLXBvcnQtY2hlY2tib3guY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBWZWxvUG9ydENoZWNrQm94Q29tcG9uZW50IHtcbiAgY29udHJvbE5hbWU6IHN0cmluZztcblxuICBmb3JtOiBGb3JtR3JvdXA7XG4gIHNlY3Rpb246IFNlY3Rpb247XG5cbiAgQElucHV0KCkgc2hvd1NlbGVjdEFsbCA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZm9ybVNjb3BlOiBGb3JtU2NvcGVTZXJ2aWNlLCBwcml2YXRlIHNlY3Rpb25TY29wZTogU2VjdGlvblNjb3BlU2VydmljZSkge1xuICAgIHRoaXMuZm9ybSA9IHRoaXMuZm9ybVNjb3BlLmZvcm07XG4gICAgdGhpcy5zZWN0aW9uID0gdGhpcy5zZWN0aW9uU2NvcGUuc2VjdGlvbjtcblxuICAgIHRoaXMuY29udHJvbE5hbWUgPSB0aGlzLnNlY3Rpb24uaWQ7XG5cbiAgICB0aGlzLnNlY3Rpb24uc2VjdGlvblZhbHVlPy52YWx1ZU9wdGlvbnMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgIGlmICh0aGlzLmhhc1ZhbHVlRm9yKGl0ZW0pKSB7XG4gICAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLmNvbnRyb2xOYW1lXS5zZXRWYWx1ZShpdGVtKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGhhbmRsZUNoYW5nZSh2YWx1ZU9wdGlvbjogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgdXBkYXRlRGF0YTogVXBkYXRlRGF0YSA9IHtcbiAgICAgIGlkOiB0aGlzLnNlY3Rpb24uaWQsXG4gICAgICBhY3Rpb246IHRoaXMuaGFzVmFsdWVGb3IodmFsdWVPcHRpb24pXG4gICAgICAgID8gJ3JlbW92ZSdcbiAgICAgICAgOiB0aGlzLnNlY3Rpb24ubW9kZWwgJiYgU2VjdGlvbnNCaW5kZXJIZWxwZXIuaXNBZGRBbGxvd2VkKHRoaXMuc2VjdGlvbi5tb2RlbCwgdGhpcy5zZWN0aW9uLmJvdW5kRGF0YS5uYW1lKVxuICAgICAgICA/ICdjcmVhdGUnXG4gICAgICAgIDogJ3VwZGF0ZScsXG4gICAgICB2YWx1ZU9wdGlvbixcbiAgICB9O1xuXG4gICAgdGhpcy5mb3JtU2NvcGUucHVibGlzaEZvcm1VcGRhdGUodXBkYXRlRGF0YSk7XG4gIH1cblxuICBoYXNWYWx1ZUZvcih2YWx1ZU9wdGlvbjogc3RyaW5nKSB7XG4gICAgcmV0dXJuICEhdGhpcy5maW5kTGluZUl0ZW1Gb3JWYWx1ZSh2YWx1ZU9wdGlvbik7XG4gIH1cblxuICBzZWxlY3RBbGxDaGFuZ2UoKSB7XG4gICAgY29uc3QgcG9ydERvbWFpbiA9IHRoaXMuc2VjdGlvbi5tb2RlbD8ucG9ydERvbWFpbnNbdGhpcy5zZWN0aW9uLmJvdW5kRGF0YS5uYW1lXTtcblxuICAgIGNvbnN0IHVwZGF0ZURhdGE6IFVwZGF0ZURhdGEgPSB7XG4gICAgICBpZDogdGhpcy5zZWN0aW9uLmlkLFxuICAgICAgYWN0aW9uOiAndXBzZXJ0JyxcbiAgICAgIHNlbGVjdGVkVmFsdWVPcHRpb25zOiB0aGlzLmlzQWxsU2VsZWN0ZWQoKSA/IFtdIDogcG9ydERvbWFpbiA/IHBvcnREb21haW4uZG9tYWluVHlwZXMubWFwKHQgPT4gdC5uYW1lKSA6IFtdLFxuICAgIH07XG5cbiAgICB0aGlzLmZvcm1TY29wZS5wdWJsaXNoRm9ybVVwZGF0ZSh1cGRhdGVEYXRhKTtcbiAgfVxuXG4gIGlzQWxsU2VsZWN0ZWQoKTogYm9vbGVhbiB7XG4gICAgY29uc3Qgc2VsZWN0ZWQ6IExpbmVJdGVtW10gfCB1bmRlZmluZWQgPSB0aGlzLnNlY3Rpb24ubW9kZWw/LmxpbmVJdGVtcy5maWx0ZXIoXG4gICAgICBsaSA9PiBsaS5wb3J0ICYmIGxpLnBvcnQgPT09IHRoaXMuc2VjdGlvbi5ib3VuZERhdGEubmFtZSxcbiAgICApO1xuXG4gICAgY29uc3QgcG9ydERvbWFpbiA9IHRoaXMuc2VjdGlvbi5tb2RlbD8ucG9ydERvbWFpbnNbdGhpcy5zZWN0aW9uLmJvdW5kRGF0YS5uYW1lXTtcblxuICAgIHJldHVybiBwb3J0RG9tYWluID8gcG9ydERvbWFpbi5kb21haW5UeXBlcy5sZW5ndGggPT09IHNlbGVjdGVkPy5sZW5ndGggOiBmYWxzZTtcbiAgfVxuXG4gIGdldE1lc3NhZ2VzKHZhbHVlT3B0aW9uOiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5zZWN0aW9uLm1vZGVsPy5saW5lSXRlbXMpIHtcbiAgICAgIHJldHVybiB0aGlzLmZpbmRMaW5lSXRlbUZvclZhbHVlKHZhbHVlT3B0aW9uKT8ubWVzc2FnZXMgPz8gW107XG4gICAgfVxuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIHByaXZhdGUgZmluZExpbmVJdGVtRm9yVmFsdWUodmFsdWVPcHRpb246IHN0cmluZykge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLnNlY3Rpb24ubW9kZWw/LmxpbmVJdGVtcyAmJlxuICAgICAgdGhpcy5zZWN0aW9uLm1vZGVsLmxpbmVJdGVtcy5maW5kKGxpID0+IGxpLnR5cGUgJiYgbGkudHlwZS50b0xvd2VyQ2FzZSgpID09PSB2YWx1ZU9wdGlvbi50b0xvd2VyQ2FzZSgpKVxuICAgICk7XG4gIH1cbn1cbiIsIjxkaXYgW2Zvcm1Hcm91cF09XCJmb3JtXCI+XG4gIDwhLS1UT0RPIEFMRSByZXBsYWNlIGRpdnMgd2l0aCBuZy10ZW1wbGF0ZXMtLT5cbiAgPGRpdiAqbmdJZj1cInNob3dTZWxlY3RBbGxcIj5cbiAgICA8ZGl2IGNsYXNzPVwicm93IG5vLWd1dHRlciBjbGVhcmZpeFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXItYm94IGNvbnRhaW5lci1ib3gtYm9yZGVyZWQgY29udGFpbmVyLWJveC1jaGVja2JveCBjb2xsYXBzZWRcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3gtdGl0bGVcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlciBjbGVhcmZpeFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja2JveC1zZWxlY3RcIj5cbiAgICAgICAgICAgICAgICAgIDxsYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIChjaGFuZ2UpPVwic2VsZWN0QWxsQ2hhbmdlKClcIiBbY2hlY2tlZF09XCJpc0FsbFNlbGVjdGVkKClcIiAvPlxuXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaW5wdXQtaGVscGVyXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICBTZWxlY3QgQWxsXG4gICAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiAqbmdGb3I9XCJsZXQgdmFsdWVPcHRpb24gb2Ygc2VjdGlvbi5zZWN0aW9uVmFsdWU/LnZhbHVlT3B0aW9uc1wiPlxuICAgIDxkaXYgY2xhc3M9XCJ1bmNoZWNrZWRcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbm8tZ3V0dGVyIGNsZWFyZml4XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lci1ib3ggY29udGFpbmVyLWJveC1ib3JkZXJlZCBjb250YWluZXItYm94LWNoZWNrYm94IGNvbGxhcHNlZFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm94LXRpdGxlXCIgKGNsaWNrKT1cImhhbmRsZUNoYW5nZSh2YWx1ZU9wdGlvbilcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyIGNsZWFyZml4XCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tib3gtc2VsZWN0XCI+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuY2hlY2tib3gtLWNoZWNrZWRdPVwidmFsdWVPcHRpb24gPT09IGZvcm0uY29udHJvbHNbY29udHJvbE5hbWVdLnZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAvPlxuXG4gICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpbnB1dC1oZWxwZXJcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgICAge3tzZWN0aW9uLnNlY3Rpb25WYWx1ZT8uZGlzcGxheVZhbHVlcz8uW3ZhbHVlT3B0aW9uXSB8fCB2YWx1ZU9wdGlvbn19XG4gICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3gtYWN0aW9uc1wiICpuZ0lmPVwiaGFzVmFsdWVGb3IodmFsdWVPcHRpb24pXCI+XG4gICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI21zZ1RlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicnVudGltZS1pbmZvLW1lc3NhZ2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJtZXNzYWdlLXRleHRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgbWVzc2FnZSBvZiBnZXRNZXNzYWdlcyh2YWx1ZU9wdGlvbilcIj57eyBtZXNzYWdlIH19PC9saT5cbiAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYm94LWFjdGlvbi1idXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImdldE1lc3NhZ2VzKHZhbHVlT3B0aW9uKS5sZW5ndGggPiAwXCJcbiAgICAgICAgICAgICAgICAgICAgW3BvcG92ZXJdPVwibXNnVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJsZWZ0XCJcbiAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyPVwiYm9keVwiXG4gICAgICAgICAgICAgICAgICAgIFtpc09wZW5dPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMCk7XCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1pbmZvIGNoZWNrLWljb25cIj48L2k+XG4gICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJveC1jb250ZW50LXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm94LWNvbnRlbnRcIj4mbmJzcDs8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbjxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiJdfQ==
|
package/esm2015/runtime/execution/components/velo-port-dropdown/velo-port-dropdown.component.js
ADDED
@@ -0,0 +1,101 @@
|
|
1
|
+
import { Component } from '@angular/core';
|
2
|
+
import { EntityUtil } from '@veloceapps/core';
|
3
|
+
import { SectionsBinderHelper } from '../../../utils/sections-binder.helper';
|
4
|
+
import * as i0 from "@angular/core";
|
5
|
+
import * as i1 from "../../../services/form-scope.service";
|
6
|
+
import * as i2 from "../../../services/section-scope.service";
|
7
|
+
import * as i3 from "@angular/forms";
|
8
|
+
import * as i4 from "@angular/common";
|
9
|
+
import * as i5 from "@veloceapps/core";
|
10
|
+
export class VeloPortDropdownComponent {
|
11
|
+
constructor(formScope, sectionScope) {
|
12
|
+
var _a;
|
13
|
+
this.formScope = formScope;
|
14
|
+
this.sectionScope = sectionScope;
|
15
|
+
this.prices = {};
|
16
|
+
this.form = this.formScope.form;
|
17
|
+
this.section = this.sectionScope.section;
|
18
|
+
this.controlName = this.section.id;
|
19
|
+
this.qtyControlName = this.section.id + 'qty';
|
20
|
+
if (this.section.pricingEnabled) {
|
21
|
+
(_a = this.section.sectionValue) === null || _a === void 0 ? void 0 : _a.valueOptions.forEach(valueOption => {
|
22
|
+
this.prices[valueOption] = this.findPriceItemsForValue(valueOption);
|
23
|
+
});
|
24
|
+
}
|
25
|
+
}
|
26
|
+
isAddAllowed() {
|
27
|
+
if (!EntityUtil.isPresent(this.form.controls[this.controlName].value)) {
|
28
|
+
return false;
|
29
|
+
}
|
30
|
+
return this.section.model
|
31
|
+
? SectionsBinderHelper.isAddAllowed(this.section.model, this.section.boundData.name)
|
32
|
+
: false;
|
33
|
+
}
|
34
|
+
handleCreate() {
|
35
|
+
if (this.form.invalid || !this.isAddAllowed()) {
|
36
|
+
return;
|
37
|
+
}
|
38
|
+
const updateData = {
|
39
|
+
id: this.section.id,
|
40
|
+
action: 'create',
|
41
|
+
};
|
42
|
+
this.formScope.publishFormUpdate(updateData);
|
43
|
+
}
|
44
|
+
findPriceItemsForValue(valueOption) {
|
45
|
+
var _a;
|
46
|
+
let prices = [];
|
47
|
+
if (valueOption) {
|
48
|
+
const portDomain = (_a = this.section.model) === null || _a === void 0 ? void 0 : _a.portDomains[this.section.boundData.name];
|
49
|
+
const domainType = portDomain === null || portDomain === void 0 ? void 0 : portDomain.domainTypes.find(d => d.name.toLowerCase() === valueOption.toLowerCase());
|
50
|
+
if (domainType && domainType.recommendedPrices) {
|
51
|
+
prices = domainType.recommendedPrices;
|
52
|
+
}
|
53
|
+
}
|
54
|
+
const oneTime = {
|
55
|
+
chargeMethod: 'ONE_TIME',
|
56
|
+
netPrice: 0,
|
57
|
+
listPrice: 0,
|
58
|
+
chargeType: '',
|
59
|
+
};
|
60
|
+
const recurring = {
|
61
|
+
chargeMethod: 'RECURRING',
|
62
|
+
netPrice: 0,
|
63
|
+
listPrice: 0,
|
64
|
+
chargeType: '',
|
65
|
+
};
|
66
|
+
prices.forEach(p => {
|
67
|
+
if (p.chargeMethod === oneTime.chargeMethod) {
|
68
|
+
this.add(oneTime, p);
|
69
|
+
}
|
70
|
+
if (p.chargeMethod === recurring.chargeMethod) {
|
71
|
+
this.add(recurring, p);
|
72
|
+
}
|
73
|
+
});
|
74
|
+
const result = [];
|
75
|
+
if (oneTime.listPrice > 0) {
|
76
|
+
result.push(oneTime);
|
77
|
+
}
|
78
|
+
if (recurring.listPrice > 0) {
|
79
|
+
result.push(recurring);
|
80
|
+
}
|
81
|
+
return result;
|
82
|
+
}
|
83
|
+
add(target, src) {
|
84
|
+
target.netPrice = target.netPrice + src.netPrice;
|
85
|
+
target.listPrice = target.listPrice + src.listPrice;
|
86
|
+
if (src.explanation) {
|
87
|
+
target.explanation = src.explanation;
|
88
|
+
}
|
89
|
+
}
|
90
|
+
}
|
91
|
+
VeloPortDropdownComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: VeloPortDropdownComponent, deps: [{ token: i1.FormScopeService }, { token: i2.SectionScopeService }], target: i0.ɵɵFactoryTarget.Component });
|
92
|
+
VeloPortDropdownComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: VeloPortDropdownComponent, selector: "velo-port-dropdown", ngImport: i0, template: "<div class=\"form-group col-md-12\" [formGroup]=\"form\">\n <div class=\"input-form-input div-inline\">\n <label [for]=\"controlName\">{{ section.label }}</label>\n <div class=\"form-control-wrapper\">\n <select [id]=\"controlName\" [formControlName]=\"controlName\" class=\"form-control\">\n <option *ngFor=\"let valueOption of section.sectionValue?.valueOptions\" [ngValue]=\"valueOption\">\n {{section.sectionValue?.displayValues?.[valueOption] || valueOption}}\n <span *ngIf=\"prices[valueOption] && prices[valueOption].length > 0\">\n <span>${{ prices[valueOption][0].netPrice }}</span>\n <span *ngIf=\"prices[valueOption].length > 1\">\n <span>, </span>\n <span>${{ prices[valueOption][1].netPrice }}</span>\n </span>\n </span>\n </option>\n </select>\n </div>\n </div>\n <div class=\"input-form-input div-inline quantity-form-input\">\n <label [for]=\"qtyControlName\"> Quantity </label>\n <div class=\"form-control-wrapper\">\n <input [id]=\"qtyControlName\" [formControlName]=\"qtyControlName\" type=\"text\" class=\"form-control\" size=\"3\" />\n\n <div\n class=\"validation-message\"\n [hidden]=\"form.controls[qtyControlName].valid || form.controls[qtyControlName].pristine\"\n >\n <div *ngFor=\"let key of form.controls[qtyControlName].errors | values\">\n <span> {{form.controls[qtyControlName]?.errors?.[key].message}}</span>\n </div>\n </div>\n\n <a href=\"javascript:void(0);\" (click)=\"handleCreate()\">\n <div class=\"add-config-control\" [attr.disabled]=\"form.valid && isAddAllowed() ? null : true\">\n <i class=\"fa fa-plus plus-icon\"></i>\n </div>\n </a>\n </div>\n </div>\n</div>\n<ng-content></ng-content>\n", directives: [{ type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i3.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i3.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }], pipes: { "values": i5.ValuesPipe } });
|
93
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: VeloPortDropdownComponent, decorators: [{
|
94
|
+
type: Component,
|
95
|
+
args: [{
|
96
|
+
// eslint-disable-next-line @angular-eslint/component-selector
|
97
|
+
selector: 'velo-port-dropdown',
|
98
|
+
templateUrl: 'velo-port-dropdown.component.html',
|
99
|
+
}]
|
100
|
+
}], ctorParameters: function () { return [{ type: i1.FormScopeService }, { type: i2.SectionScopeService }]; } });
|
101
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVsby1wb3J0LWRyb3Bkb3duLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL3J1bnRpbWUvZXhlY3V0aW9uL2NvbXBvbmVudHMvdmVsby1wb3J0LWRyb3Bkb3duL3ZlbG8tcG9ydC1kcm9wZG93bi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9ydW50aW1lL2V4ZWN1dGlvbi9jb21wb25lbnRzL3ZlbG8tcG9ydC1kcm9wZG93bi92ZWxvLXBvcnQtZHJvcGRvd24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxQyxPQUFPLEVBQUUsVUFBVSxFQUE2QixNQUFNLGtCQUFrQixDQUFDO0FBS3pFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDOzs7Ozs7O0FBTzdFLE1BQU0sT0FBTyx5QkFBeUI7SUFRcEMsWUFBb0IsU0FBMkIsRUFBVSxZQUFpQzs7UUFBdEUsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFBVSxpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFGbkYsV0FBTSxHQUFvQixFQUFFLENBQUM7UUFHbEMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQztRQUNoQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDO1FBRXpDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDbkMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsR0FBRyxLQUFLLENBQUM7UUFFOUMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRTtZQUMvQixNQUFBLElBQUksQ0FB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QUN0QjtRQUNELElBQUksU0FBUyxDQUFDLFNBQVMsR0FBRyxDQUFDLEVBQUU7WUFDM0IsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUN4QjtRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFTyxHQUFHLENBQUMsTUFBd0IsRUFBRSxHQUFxQjtRQUN6RCxNQUFNLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQztRQUNqRCxNQUFNLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDLFNBQVMsQ0FBQztRQUNwRCxJQUFJLEdBQUcsQ0FBQyxXQUFXLEVBQUU7WUFDbkIsTUFBTSxDQUFDLFdBQVcsR0FBRyxHQUFHLENBQUMsV0FBVyxDQUFDO1NBQ3RDO0lBQ0gsQ0FBQzs7dUhBL0ZVLHlCQUF5QjsyR0FBekIseUJBQXlCLDBEQ2R0QyxrMERBeUNBOzRGRDNCYSx5QkFBeUI7a0JBTHJDLFNBQVM7bUJBQUM7b0JBQ1QsOERBQThEO29CQUM5RCxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixXQUFXLEVBQUUsbUNBQW1DO2lCQUNqRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRW50aXR5VXRpbCwgUmVjb21tZW5kZWRQcmljZSwgU2VjdGlvbiB9IGZyb20gJ0B2ZWxvY2VhcHBzL2NvcmUnO1xuaW1wb3J0IHsgRGljdGlvbmFyeSB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBGb3JtU2NvcGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZm9ybS1zY29wZS5zZXJ2aWNlJztcbmltcG9ydCB7IFNlY3Rpb25TY29wZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9zZWN0aW9uLXNjb3BlLnNlcnZpY2UnO1xuaW1wb3J0IHsgVXBkYXRlRGF0YSB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IFNlY3Rpb25zQmluZGVySGVscGVyIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvc2VjdGlvbnMtYmluZGVyLmhlbHBlcic7XG5cbkBDb21wb25lbnQoe1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICBzZWxlY3RvcjogJ3ZlbG8tcG9ydC1kcm9wZG93bicsXG4gIHRlbXBsYXRlVXJsOiAndmVsby1wb3J0LWRyb3Bkb3duLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgVmVsb1BvcnREcm9wZG93bkNvbXBvbmVudCB7XG4gIGNvbnRyb2xOYW1lOiBzdHJpbmc7XG4gIHF0eUNvbnRyb2xOYW1lOiBzdHJpbmc7XG5cbiAgZm9ybTogRm9ybUdyb3VwO1xuICBzZWN0aW9uOiBTZWN0aW9uO1xuICBwdWJsaWMgcHJpY2VzOiBEaWN0aW9uYXJ5PGFueT4gPSB7fTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZvcm1TY29wZTogRm9ybVNjb3BlU2VydmljZSwgcHJpdmF0ZSBzZWN0aW9uU2NvcGU6IFNlY3Rpb25TY29wZVNlcnZpY2UpIHtcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZvcm1TY29wZS5mb3JtO1xuICAgIHRoaXMuc2VjdGlvbiA9IHRoaXMuc2VjdGlvblNjb3BlLnNlY3Rpb247XG5cbiAgICB0aGlzLmNvbnRyb2xOYW1lID0gdGhpcy5zZWN0aW9uLmlkO1xuICAgIHRoaXMucXR5Q29udHJvbE5hbWUgPSB0aGlzLnNlY3Rpb24uaWQgKyAncXR5JztcblxuICAgIGlmICh0aGlzLnNlY3Rpb24ucHJpY2luZ0VuYWJsZWQpIHtcbiAgICAgIHRoaXMuc2VjdGlvbi5zZWN0aW9uVmFsdWU/LnZhbHVlT3B0aW9ucy5mb3JFYWNoKHZhbHVlT3B0aW9uID0+IHtcbiAgICAgICAgdGhpcy5wcmljZXNbdmFsdWVPcHRpb25dID0gdGhpcy5maW5kUHJpY2VJdGVtc0ZvclZhbHVlKHZhbHVlT3B0aW9uKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGlzQWRkQWxsb3dlZCgpOiBib29sZWFuIHtcbiAgICBpZiAoIUVudGl0eVV0aWwuaXNQcmVzZW50KHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLmNvbnRyb2xOYW1lXS52YWx1ZSkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5zZWN0aW9uLm1vZGVsXG4gICAgICA/IFNlY3Rpb25zQmluZGVySGVscGVyLmlzQWRkQWxsb3dlZCh0aGlzLnNlY3Rpb24ubW9kZWwsIHRoaXMuc2VjdGlvbi5ib3VuZERhdGEubmFtZSlcbiAgICAgIDogZmFsc2U7XG4gIH1cblxuICBoYW5kbGVDcmVhdGUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZm9ybS5pbnZhbGlkIHx8ICF0aGlzLmlzQWRkQWxsb3dlZCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgdXBkYXRlRGF0YTogVXBkYXRlRGF0YSA9IHtcbiAgICAgIGlkOiB0aGlzLnNlY3Rpb24uaWQsXG4gICAgICBhY3Rpb246ICdjcmVhdGUnLFxuICAgIH07XG5cbiAgICB0aGlzLmZvcm1TY29wZS5wdWJsaXNoRm9ybVVwZGF0ZSh1cGRhdGVEYXRhKTtcbiAgfVxuXG4gIHByaXZhdGUgZmluZFByaWNlSXRlbXNGb3JWYWx1ZSh2YWx1ZU9wdGlvbjogc3RyaW5nKTogUmVjb21tZW5kZWRQcmljZVtdIHtcbiAgICBsZXQgcHJpY2VzOiBSZWNvbW1lbmRlZFByaWNlW10gPSBbXTtcbiAgICBpZiAodmFsdWVPcHRpb24pIHtcbiAgICAgIGNvbnN0IHBvcnREb21haW4gPSB0aGlzLnNlY3Rpb24ubW9kZWw/LnBvcnREb21haW5zW3RoaXMuc2VjdGlvbi5ib3VuZERhdGEubmFtZV07XG4gICAgICBjb25zdCBkb21haW5UeXBlID0gcG9ydERvbWFpbj8uZG9tYWluVHlwZXMuZmluZChkID0+IGQubmFtZS50b0xvd2VyQ2FzZSgpID09PSB2YWx1ZU9wdGlvbi50b0xvd2VyQ2FzZSgpKTtcbiAgICAgIGlmIChkb21haW5UeXBlICYmIGRvbWFpblR5cGUucmVjb21tZW5kZWRQcmljZXMpIHtcbiAgICAgICAgcHJpY2VzID0gZG9tYWluVHlwZS5yZWNvbW1lbmRlZFByaWNlcztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBvbmVUaW1lOiBSZWNvbW1lbmRlZFByaWNlID0ge1xuICAgICAgY2hhcmdlTWV0aG9kOiAnT05FX1RJTUUnLFxuICAgICAgbmV0UHJpY2U6IDAsXG4gICAgICBsaXN0UHJpY2U6IDAsXG4gICAgICBjaGFyZ2VUeXBlOiAnJyxcbiAgICB9O1xuXG4gICAgY29uc3QgcmVjdXJyaW5nOiBSZWNvbW1lbmRlZFByaWNlID0ge1xuICAgICAgY2hhcmdlTWV0aG9kOiAnUkVDVVJSSU5HJyxcbiAgICAgIG5ldFByaWNlOiAwLFxuICAgICAgbGlzdFByaWNlOiAwLFxuICAgICAgY2hhcmdlVHlwZTogJycsXG4gICAgfTtcblxuICAgIHByaWNlcy5mb3JFYWNoKHAgPT4ge1xuICAgICAgaWYgKHAuY2hhcmdlTWV0aG9kID09PSBvbmVUaW1lLmNoYXJnZU1ldGhvZCkge1xuICAgICAgICB0aGlzLmFkZChvbmVUaW1lLCBwKTtcbiAgICAgIH1cbiAgICAgIGlmIChwLmNoYXJnZU1ldGhvZCA9PT0gcmVjdXJyaW5nLmNoYXJnZU1ldGhvZCkge1xuICAgICAgICB0aGlzLmFkZChyZWN1cnJpbmcsIHApO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgY29uc3QgcmVzdWx0OiBSZWNvbW1lbmRlZFByaWNlW10gPSBbXTtcbiAgICBpZiAob25lVGltZS5saXN0UHJpY2UgPiAwKSB7XG4gICAgICByZXN1bHQucHVzaChvbmVUaW1lKTtcbiAgICB9XG4gICAgaWYgKHJlY3VycmluZy5saXN0UHJpY2UgPiAwKSB7XG4gICAgICByZXN1bHQucHVzaChyZWN1cnJpbmcpO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwcml2YXRlIGFkZCh0YXJnZXQ6IFJlY29tbWVuZGVkUHJpY2UsIHNyYzogUmVjb21tZW5kZWRQcmljZSkge1xuICAgIHRhcmdldC5uZXRQcmljZSA9IHRhcmdldC5uZXRQcmljZSArIHNyYy5uZXRQcmljZTtcbiAgICB0YXJnZXQubGlzdFByaWNlID0gdGFyZ2V0Lmxpc3RQcmljZSArIHNyYy5saXN0UHJpY2U7XG4gICAgaWYgKHNyYy5leHBsYW5hdGlvbikge1xuICAgICAgdGFyZ2V0LmV4cGxhbmF0aW9uID0gc3JjLmV4cGxhbmF0aW9uO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgY29sLW1kLTEyXCIgW2Zvcm1Hcm91cF09XCJmb3JtXCI+XG4gIDxkaXYgY2xhc3M9XCJpbnB1dC1mb3JtLWlucHV0IGRpdi1pbmxpbmVcIj5cbiAgICA8bGFiZWwgW2Zvcl09XCJjb250cm9sTmFtZVwiPnt7IHNlY3Rpb24ubGFiZWwgfX08L2xhYmVsPlxuICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNvbnRyb2wtd3JhcHBlclwiPlxuICAgICAgPHNlbGVjdCBbaWRdPVwiY29udHJvbE5hbWVcIiBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbnRyb2xOYW1lXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIj5cbiAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgdmFsdWVPcHRpb24gb2Ygc2VjdGlvbi5zZWN0aW9uVmFsdWU/LnZhbHVlT3B0aW9uc1wiIFtuZ1ZhbHVlXT1cInZhbHVlT3B0aW9uXCI+XG4gICAgICAgICAge3tzZWN0aW9uLnNlY3Rpb25WYWx1ZT8uZGlzcGxheVZhbHVlcz8uW3ZhbHVlT3B0aW9uXSB8fCB2YWx1ZU9wdGlvbn19XG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJwcmljZXNbdmFsdWVPcHRpb25dICYmIHByaWNlc1t2YWx1ZU9wdGlvbl0ubGVuZ3RoID4gMFwiPlxuICAgICAgICAgICAgPHNwYW4+JHt7IHByaWNlc1t2YWx1ZU9wdGlvbl1bMF0ubmV0UHJpY2UgfX08L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cInByaWNlc1t2YWx1ZU9wdGlvbl0ubGVuZ3RoID4gMVwiPlxuICAgICAgICAgICAgICA8c3Bhbj4sIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4+JHt7IHByaWNlc1t2YWx1ZU9wdGlvbl1bMV0ubmV0UHJpY2UgfX08L3NwYW4+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L29wdGlvbj5cbiAgICAgIDwvc2VsZWN0PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImlucHV0LWZvcm0taW5wdXQgZGl2LWlubGluZSBxdWFudGl0eS1mb3JtLWlucHV0XCI+XG4gICAgPGxhYmVsIFtmb3JdPVwicXR5Q29udHJvbE5hbWVcIj4gUXVhbnRpdHkgPC9sYWJlbD5cbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jb250cm9sLXdyYXBwZXJcIj5cbiAgICAgIDxpbnB1dCBbaWRdPVwicXR5Q29udHJvbE5hbWVcIiBbZm9ybUNvbnRyb2xOYW1lXT1cInF0eUNvbnRyb2xOYW1lXCIgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIHNpemU9XCIzXCIgLz5cblxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cInZhbGlkYXRpb24tbWVzc2FnZVwiXG4gICAgICAgIFtoaWRkZW5dPVwiZm9ybS5jb250cm9sc1txdHlDb250cm9sTmFtZV0udmFsaWQgfHwgZm9ybS5jb250cm9sc1txdHlDb250cm9sTmFtZV0ucHJpc3RpbmVcIlxuICAgICAgPlxuICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBrZXkgb2YgZm9ybS5jb250cm9sc1txdHlDb250cm9sTmFtZV0uZXJyb3JzIHwgdmFsdWVzXCI+XG4gICAgICAgICAgPHNwYW4+IHt7Zm9ybS5jb250cm9sc1txdHlDb250cm9sTmFtZV0/LmVycm9ycz8uW2tleV0ubWVzc2FnZX19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8YSBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApO1wiIChjbGljayk9XCJoYW5kbGVDcmVhdGUoKVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWRkLWNvbmZpZy1jb250cm9sXCIgW2F0dHIuZGlzYWJsZWRdPVwiZm9ybS52YWxpZCAmJiBpc0FkZEFsbG93ZWQoKSA/IG51bGwgOiB0cnVlXCI+XG4gICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1wbHVzIHBsdXMtaWNvblwiPjwvaT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2E+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG48bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4iXX0=
|
@@ -0,0 +1,150 @@
|
|
1
|
+
import { Component } from '@angular/core';
|
2
|
+
import { LineItemUtil } from '../../../utils/line-item.util';
|
3
|
+
import * as i0 from "@angular/core";
|
4
|
+
import * as i1 from "../../../services/form-scope.service";
|
5
|
+
import * as i2 from "../../../services/section-scope.service";
|
6
|
+
import * as i3 from "@angular/forms";
|
7
|
+
import * as i4 from "@angular/common";
|
8
|
+
export class VeloPortRadioComponent {
|
9
|
+
constructor(formScope, sectionScope) {
|
10
|
+
this.formScope = formScope;
|
11
|
+
this.sectionScope = sectionScope;
|
12
|
+
this.prices = {};
|
13
|
+
this.form = this.formScope.form;
|
14
|
+
this.section = this.sectionScope.section;
|
15
|
+
this.controlName = this.section.id;
|
16
|
+
}
|
17
|
+
ngOnInit() {
|
18
|
+
var _a;
|
19
|
+
this.initPriceItems();
|
20
|
+
(_a = this.section.sectionValue) === null || _a === void 0 ? void 0 : _a.valueOptions.forEach(item => {
|
21
|
+
if (this.hasValueFor(item)) {
|
22
|
+
this.form.controls[this.controlName].setValue(item);
|
23
|
+
}
|
24
|
+
});
|
25
|
+
}
|
26
|
+
handleChange(event, valueOption) {
|
27
|
+
event.preventDefault();
|
28
|
+
event.stopPropagation();
|
29
|
+
const updateData = {
|
30
|
+
id: this.section.id,
|
31
|
+
action: this.hasPreviousValue() ? 'update' : 'create',
|
32
|
+
valueOption,
|
33
|
+
};
|
34
|
+
this.form.controls[this.controlName].setValue(valueOption);
|
35
|
+
this.form.controls[this.controlName].markAsDirty();
|
36
|
+
this.formScope.publishFormUpdate(updateData);
|
37
|
+
}
|
38
|
+
hasValueFor(valueOption) {
|
39
|
+
return !!this.findLineItemForValue(valueOption);
|
40
|
+
}
|
41
|
+
getMessages(valueOption) {
|
42
|
+
var _a;
|
43
|
+
const lineItem = this.findLineItemForValue(valueOption);
|
44
|
+
if (((_a = this.section.model) === null || _a === void 0 ? void 0 : _a.lineItems) && lineItem) {
|
45
|
+
return lineItem.messages;
|
46
|
+
}
|
47
|
+
return [];
|
48
|
+
}
|
49
|
+
toString(price) {
|
50
|
+
let result = '';
|
51
|
+
if (price.listPrice > price.netPrice) {
|
52
|
+
result += '<strike>' + price.listPrice + '</strike>';
|
53
|
+
}
|
54
|
+
result += price.netPrice;
|
55
|
+
if (price.explanation) {
|
56
|
+
result += '(' + price.explanation + ')';
|
57
|
+
}
|
58
|
+
return result;
|
59
|
+
}
|
60
|
+
hasPreviousValue() {
|
61
|
+
var _a;
|
62
|
+
const previous = (_a = this.section.model) === null || _a === void 0 ? void 0 : _a.lineItems.filter(li => li.port && li.port === this.section.boundData.name);
|
63
|
+
return previous ? previous.length > 0 : false;
|
64
|
+
}
|
65
|
+
findLineItemForValue(valueOption) {
|
66
|
+
return this.section.model ? LineItemUtil.findLineItemForValue(this.section.model, valueOption) : undefined;
|
67
|
+
}
|
68
|
+
initPriceItems() {
|
69
|
+
var _a;
|
70
|
+
this.prices = {};
|
71
|
+
if (this.section.pricingEnabled) {
|
72
|
+
(_a = this.section.sectionValue) === null || _a === void 0 ? void 0 : _a.valueOptions.forEach(valueOption => {
|
73
|
+
this.prices[valueOption] = this.findPriceItemsForValue(valueOption);
|
74
|
+
});
|
75
|
+
}
|
76
|
+
}
|
77
|
+
findPriceItemsForValue(valueOption) {
|
78
|
+
var _a, _b;
|
79
|
+
let prices = [];
|
80
|
+
if (valueOption) {
|
81
|
+
const lineItem = ((_a = this.section.model) === null || _a === void 0 ? void 0 : _a.lineItems) &&
|
82
|
+
this.section.model.lineItems.find(li => li.type && li.type.toLowerCase() === valueOption.toLowerCase());
|
83
|
+
if (lineItem && lineItem.chargeItems) {
|
84
|
+
prices = lineItem.chargeItems.map(pi => {
|
85
|
+
const price = {
|
86
|
+
listPrice: pi.listPrice,
|
87
|
+
netPrice: pi.netPrice,
|
88
|
+
chargeMethod: pi.chargeMethod,
|
89
|
+
chargeType: pi.chargeType,
|
90
|
+
};
|
91
|
+
return price;
|
92
|
+
});
|
93
|
+
}
|
94
|
+
else {
|
95
|
+
const portDomain = (_b = this.section.model) === null || _b === void 0 ? void 0 : _b.portDomains[this.section.boundData.name];
|
96
|
+
const domainType = portDomain === null || portDomain === void 0 ? void 0 : portDomain.domainTypes.find(d => d.name.toLowerCase() === valueOption.toLowerCase());
|
97
|
+
if (domainType && domainType.recommendedPrices) {
|
98
|
+
prices = domainType.recommendedPrices;
|
99
|
+
}
|
100
|
+
}
|
101
|
+
}
|
102
|
+
const oneTime = {
|
103
|
+
chargeMethod: 'ONE_TIME',
|
104
|
+
netPrice: 0,
|
105
|
+
listPrice: 0,
|
106
|
+
chargeType: '',
|
107
|
+
};
|
108
|
+
const recurring = {
|
109
|
+
chargeMethod: 'RECURRING',
|
110
|
+
netPrice: 0,
|
111
|
+
listPrice: 0,
|
112
|
+
chargeType: '',
|
113
|
+
};
|
114
|
+
prices.forEach(p => {
|
115
|
+
if (p.chargeMethod === oneTime.chargeMethod) {
|
116
|
+
this.add(oneTime, p);
|
117
|
+
}
|
118
|
+
if (p.chargeMethod === recurring.chargeMethod) {
|
119
|
+
this.add(recurring, p);
|
120
|
+
}
|
121
|
+
});
|
122
|
+
const result = [];
|
123
|
+
if (oneTime.listPrice > 0) {
|
124
|
+
result.push(oneTime);
|
125
|
+
}
|
126
|
+
if (recurring.listPrice > 0) {
|
127
|
+
result.push(recurring);
|
128
|
+
}
|
129
|
+
return result;
|
130
|
+
}
|
131
|
+
add(target, src) {
|
132
|
+
target.netPrice = target.netPrice + src.netPrice;
|
133
|
+
target.listPrice = target.listPrice + src.listPrice;
|
134
|
+
if (src.explanation) {
|
135
|
+
target.explanation = src.explanation;
|
136
|
+
}
|
137
|
+
}
|
138
|
+
}
|
139
|
+
VeloPortRadioComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: VeloPortRadioComponent, deps: [{ token: i1.FormScopeService }, { token: i2.SectionScopeService }], target: i0.ɵɵFactoryTarget.Component });
|
140
|
+
VeloPortRadioComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: VeloPortRadioComponent, selector: "velo-port-radio", ngImport: i0, template: "<div [formGroup]=\"form\">\n <!--TODO ALE replace divs with ng-templates-->\n <ng-container *ngFor=\"let valueOption of section.sectionValue?.valueOptions\">\n <div class=\"unchecked\">\n <div class=\"row no-gutter clearfix\">\n <div class=\"col-md-12\">\n <div class=\"content\">\n <div class=\"container-box container-box-bordered container-box-radio\">\n <div class=\"box-title\" (click)=\"handleChange($event, valueOption)\">\n <div class=\"header clearfix\">\n <div class=\"radio-button\">\n <label>\n <input type=\"radio\" [id]=\"controlName\" [value]=\"valueOption\" [formControlName]=\"controlName\" />\n\n <i class=\"input-helper\"></i>\n\n {{ section.sectionValue?.displayValues?.[valueOption] || valueOption }}\n\n <span *ngIf=\"prices[valueOption] && prices[valueOption].length > 0\">\n <span>${{ prices[valueOption][0].netPrice }}</span>\n\n <span *ngIf=\"prices[valueOption].length > 1\">\n <span>, </span>\n\n <span>${{ prices[valueOption][1].netPrice }}</span>\n </span>\n </span>\n </label>\n <span *ngIf=\"prices[valueOption] && prices[valueOption].length > 0\">\n <div>{{ prices[valueOption][0].explanation }}</div>\n\n <span *ngIf=\"prices[valueOption].length > 1 && prices[valueOption][1].explanation\">\n <div>{{ prices[valueOption][1].explanation }}</div>\n </span>\n </span>\n </div>\n </div>\n </div>\n </div>\n\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n</div>\n<ng-content></ng-content>\n", directives: [{ type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
141
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: VeloPortRadioComponent, decorators: [{
|
142
|
+
type: Component,
|
143
|
+
args: [{
|
144
|
+
// tslint:disable-next-line:component-selector
|
145
|
+
// eslint-disable-next-line @angular-eslint/component-selector
|
146
|
+
selector: 'velo-port-radio',
|
147
|
+
templateUrl: 'velo-port-radio.component.html',
|
148
|
+
}]
|
149
|
+
}], ctorParameters: function () { return [{ type: i1.FormScopeService }, { type: i2.SectionScopeService }]; } });
|
150
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVsby1wb3J0LXJhZGlvLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL3J1bnRpbWUvZXhlY3V0aW9uL2NvbXBvbmVudHMvdmVsby1wb3J0LXJhZGlvL3ZlbG8tcG9ydC1yYWRpby5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9ydW50aW1lL2V4ZWN1dGlvbi9jb21wb25lbnRzL3ZlbG8tcG9ydC1yYWRpby92ZWxvLXBvcnQtcmFkaW8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQU9sRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sK0JBQStCLENBQUM7Ozs7OztBQVE3RCxNQUFNLE9BQU8sc0JBQXNCO0lBUWpDLFlBQW9CLFNBQTJCLEVBQVUsWUFBaUM7UUFBdEUsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFBVSxpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFGMUYsV0FBTSxHQUFvQixFQUFFLENBQUM7UUFHM0IsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQztRQUNoQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDO1FBRXpDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7SUFDckMsQ0FBQztJQUVELFFBQVE7O1FBQ04sSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBRXRCLE1BQUEsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLDBDQUFFLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDckQsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ3JEO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQVUsRUFBRSxXQUFnQjtRQUN2QyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBRXhCLE1BQU0sVUFBVSxHQUFlO1lBQzdCLEVBQUUsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDbkIsTUFBTSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVE7WUFDckQsV0FBVztTQUNaLENBQUM7UUFFRixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzNELElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUVuRCxJQUFJLENBQUMsU0FBUyxDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxXQUFXLENBQUMsV0FBbUI7UUFDN0IsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCxXQUFXLENBQUMsV0FBbUI7O1FBQzdCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUV4RCxJQUFJLENBQUEsTUFBQSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssMENBQUUsU0FBUyxLQUFJLFFBQVEsRUFBRTtZQUM3QyxPQUFPLFFBQVEsQ0FBQyxRQUFRLENBQUM7U0FDMUI7UUFFRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxRQUFRLENBQUMsS0FBdUI7UUFDOUIsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLElBQUksS0FBSyxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFFO1lBQ3BDLE1BQU0sSUFBSSxVQUFVLEdBQUcsS0FBSyxDQUFDLFNBQVMsR0FBRyxXQUFXLENBQUM7U0FDdEQ7UUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQztRQUN6QixJQUFJLEtBQUssQ0FBQyxXQUFXLEVBQUU7WUFDckIsTUFBTSxJQUFJLEdBQUcsR0FBRyxLQUFLLENBQUMsV0FBVyxHQUFHLEdBQUcsQ0FBQztTQUN6QztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFTyxnQkFBZ0I7O1FBQ3RCLE1BQU0sUUFBUSxHQUFHLE1BQUEsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLDBDQUFFLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFaEgsT0FBTyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDaEQsQ0FBQztJQUVPLG9CQUFvQixDQUFDLFdBQW1CO1FBQzlDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQzdHLENBQUM7SUFFTyxjQUFjOztRQUNwQixJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNqQixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFO1lBQy9CLE1BQUEsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLDBDQUFFLFlBQVksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEVBQUU7Z0JBQzVELElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3RFLENBQUMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0lBRU8sc0JBQXNCLENBQUMsV0FBbUI7O1FBQ2hELElBQUksTUFBTSxHQUF1QixFQUFFLENBQUM7UUFDcEMsSUFBSSxXQUFXLEVBQUU7WUFDZixNQUFNLFFBQVEsR0FDWixDQUFBLE1BQUEsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLDBDQUFFLFNBQVM7Z0JBQzdCLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEtBQUssV0FBVyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7WUFDMUcsSUFBSSxRQUFRLElBQUksUUFBUSxDQUFDLFdBQVcsRUFBRTtnQkFDcEMsTUFBTSxHQUFHLFFBQVEsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFO29CQUNyQyxNQUFNLEtBQUssR0FBcUI7d0JBQzlCLFNBQVMsRUFBRSxFQUFFLENBQUMsU0FBUzt3QkFDdkIsUUFBUSxFQUFFLEVBQUUsQ0FBQyxRQUFRO3dCQUNyQixZQUFZLEVBQUUsRUFBRSxDQUFDLFlBQVk7d0JBQzdCLFVBQVUsRUFBRSxFQUFFLENBQUMsVUFBVTtxQkFDMUIsQ0FBQztvQkFDRixPQUFPLEtBQUssQ0FBQztnQkFDZixDQUFDLENBQUMsQ0FBQzthQUNKO2lCQUFNO2dCQUNMLE1BQU0sVUFBVSxHQUFHLE1BQUEsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLDBDQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDaEYsTUFBTSxVQUFVLEdBQUcsVUFBVSxhQUFWLFVBQVUsdUJBQVYsVUFBVSxDQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxLQUFLLFdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO2dCQUN6RyxJQUFJLFVBQVUsSUFBSSxVQUFVLENBQUMsaUJBQWlCLEVBQUU7b0JBQzlDLE1BQU0sR0FBRyxVQUFVLENBQUMsaUJBQWlCLENBQUM7aUJBQ3ZDO2FBQ0Y7U0FDRjtRQUVELE1BQU0sT0FBTyxHQUFxQjtZQUNoQyxZQUFZLEVBQUUsVUFBVTtZQUN4QixRQUFRLEVBQUUsQ0FBQztZQUNYLFNBQVMsRUFBRSxDQUFDO1lBQ1osVUFBVSxFQUFFLEVBQUU7U0FDZixDQUFDO1FBRUYsTUFBTSxTQUFTLEdBQXFCO1lBQ2xDLFlBQVksRUFBRSxXQUFXO1lBQ3pCLFFBQVEsRUFBRSxDQUFDO1lBQ1gsU0FBUyxFQUFFLENBQUM7WUFDWixVQUFVLEVBQUUsRUFBRTtTQUNmLENBQUM7UUFFRixNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ2pCLElBQUksQ0FBQyxDQUFDLFlBQVksS0FBSyxPQUFPLENBQUMsWUFBWSxFQUFFO2dCQUMzQyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQzthQUN0QjtZQUNELElBQUksQ0FBQyxDQUFDLFlBQVksS0FBSyxTQUFTLENBQUMsWUFBWSxFQUFFO2dCQUM3QyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQzthQUN4QjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxNQUFNLEdBQXVCLEVBQUUsQ0FBQztRQUN0QyxJQUFJLE9BQU8sQ0FBQyxTQUFTLEdBQUcsQ0FBQyxFQUFFO1lBQ3pCLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDdEI7UUFDRCxJQUFJLFNBQVMsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxFQUFFO1lBQzNCLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDeEI7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRU8sR0FBRyxDQUFDLE1BQXdCLEVBQUUsR0FBcUI7UUFDekQsTUFBTSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUM7UUFDakQsTUFBTSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxHQUFHLEdBQUcsQ0FBQyxTQUFTLENBQUM7UUFDcEQsSUFBSSxHQUFHLENBQUMsV0FBVyxFQUFFO1lBQ25CLE1BQU0sQ0FBQyxXQUFXLEdBQUcsR0FBRyxDQUFDLFdBQVcsQ0FBQztTQUN0QztJQUNILENBQUM7O29IQXRKVSxzQkFBc0I7d0dBQXRCLHNCQUFzQix1RENmbkMsaStEQWdEQTs0RkRqQ2Esc0JBQXNCO2tCQU5sQyxTQUFTO21CQUFDO29CQUNULDhDQUE4QztvQkFDOUMsOERBQThEO29CQUM5RCxRQUFRLEVBQUUsaUJBQWlCO29CQUMzQixXQUFXLEVBQUUsZ0NBQWdDO2lCQUM5QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBMaW5lSXRlbSwgUmVjb21tZW5kZWRQcmljZSwgU2VjdGlvbiB9IGZyb20gJ0B2ZWxvY2VhcHBzL2NvcmUnO1xuaW1wb3J0IHsgRGljdGlvbmFyeSB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBGb3JtU2NvcGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZm9ybS1zY29wZS5zZXJ2aWNlJztcbmltcG9ydCB7IFNlY3Rpb25TY29wZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9zZWN0aW9uLXNjb3BlLnNlcnZpY2UnO1xuaW1wb3J0IHsgVXBkYXRlRGF0YSB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IExpbmVJdGVtVXRpbCB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2xpbmUtaXRlbS51dGlsJztcblxuQENvbXBvbmVudCh7XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpjb21wb25lbnQtc2VsZWN0b3JcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICd2ZWxvLXBvcnQtcmFkaW8nLFxuICB0ZW1wbGF0ZVVybDogJ3ZlbG8tcG9ydC1yYWRpby5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIFZlbG9Qb3J0UmFkaW9Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBjb250cm9sTmFtZTogc3RyaW5nO1xuXG4gIGZvcm06IEZvcm1Hcm91cDtcbiAgc2VjdGlvbjogU2VjdGlvbjtcblxuICBwcmljZXM6IERpY3Rpb25hcnk8YW55PiA9IHt9O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZm9ybVNjb3BlOiBGb3JtU2NvcGVTZXJ2aWNlLCBwcml2YXRlIHNlY3Rpb25TY29wZTogU2VjdGlvblNjb3BlU2VydmljZSkge1xuICAgIHRoaXMuZm9ybSA9IHRoaXMuZm9ybVNjb3BlLmZvcm07XG4gICAgdGhpcy5zZWN0aW9uID0gdGhpcy5zZWN0aW9uU2NvcGUuc2VjdGlvbjtcblxuICAgIHRoaXMuY29udHJvbE5hbWUgPSB0aGlzLnNlY3Rpb24uaWQ7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmluaXRQcmljZUl0ZW1zKCk7XG5cbiAgICB0aGlzLnNlY3Rpb24uc2VjdGlvblZhbHVlPy52YWx1ZU9wdGlvbnMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgIGlmICh0aGlzLmhhc1ZhbHVlRm9yKGl0ZW0pKSB7XG4gICAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLmNvbnRyb2xOYW1lXS5zZXRWYWx1ZShpdGVtKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGhhbmRsZUNoYW5nZShldmVudDogYW55LCB2YWx1ZU9wdGlvbjogYW55KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgIGNvbnN0IHVwZGF0ZURhdGE6IFVwZGF0ZURhdGEgPSB7XG4gICAgICBpZDogdGhpcy5zZWN0aW9uLmlkLFxuICAgICAgYWN0aW9uOiB0aGlzLmhhc1ByZXZpb3VzVmFsdWUoKSA/ICd1cGRhdGUnIDogJ2NyZWF0ZScsXG4gICAgICB2YWx1ZU9wdGlvbixcbiAgICB9O1xuXG4gICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMuY29udHJvbE5hbWVdLnNldFZhbHVlKHZhbHVlT3B0aW9uKTtcbiAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5jb250cm9sTmFtZV0ubWFya0FzRGlydHkoKTtcblxuICAgIHRoaXMuZm9ybVNjb3BlLnB1Ymxpc2hGb3JtVXBkYXRlKHVwZGF0ZURhdGEpO1xuICB9XG5cbiAgaGFzVmFsdWVGb3IodmFsdWVPcHRpb246IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuZmluZExpbmVJdGVtRm9yVmFsdWUodmFsdWVPcHRpb24pO1xuICB9XG5cbiAgZ2V0TWVzc2FnZXModmFsdWVPcHRpb246IHN0cmluZyk6IExpbmVJdGVtWydtZXNzYWdlcyddIHtcbiAgICBjb25zdCBsaW5lSXRlbSA9IHRoaXMuZmluZExpbmVJdGVtRm9yVmFsdWUodmFsdWVPcHRpb24pO1xuXG4gICAgaWYgKHRoaXMuc2VjdGlvbi5tb2RlbD8ubGluZUl0ZW1zICYmIGxpbmVJdGVtKSB7XG4gICAgICByZXR1cm4gbGluZUl0ZW0ubWVzc2FnZXM7XG4gICAgfVxuXG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgdG9TdHJpbmcocHJpY2U6IFJlY29tbWVuZGVkUHJpY2UpOiBzdHJpbmcge1xuICAgIGxldCByZXN1bHQgPSAnJztcbiAgICBpZiAocHJpY2UubGlzdFByaWNlID4gcHJpY2UubmV0UHJpY2UpIHtcbiAgICAgIHJlc3VsdCArPSAnPHN0cmlrZT4nICsgcHJpY2UubGlzdFByaWNlICsgJzwvc3RyaWtlPic7XG4gICAgfVxuICAgIHJlc3VsdCArPSBwcmljZS5uZXRQcmljZTtcbiAgICBpZiAocHJpY2UuZXhwbGFuYXRpb24pIHtcbiAgICAgIHJlc3VsdCArPSAnKCcgKyBwcmljZS5leHBsYW5hdGlvbiArICcpJztcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHByaXZhdGUgaGFzUHJldmlvdXNWYWx1ZSgpOiBib29sZWFuIHtcbiAgICBjb25zdCBwcmV2aW91cyA9IHRoaXMuc2VjdGlvbi5tb2RlbD8ubGluZUl0ZW1zLmZpbHRlcihsaSA9PiBsaS5wb3J0ICYmIGxpLnBvcnQgPT09IHRoaXMuc2VjdGlvbi5ib3VuZERhdGEubmFtZSk7XG5cbiAgICByZXR1cm4gcHJldmlvdXMgPyBwcmV2aW91cy5sZW5ndGggPiAwIDogZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGZpbmRMaW5lSXRlbUZvclZhbHVlKHZhbHVlT3B0aW9uOiBzdHJpbmcpOiBMaW5lSXRlbSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuc2VjdGlvbi5tb2RlbCA/IExpbmVJdGVtVXRpbC5maW5kTGluZUl0ZW1Gb3JWYWx1ZSh0aGlzLnNlY3Rpb24ubW9kZWwsIHZhbHVlT3B0aW9uKSA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdFByaWNlSXRlbXMoKTogdm9pZCB7XG4gICAgdGhpcy5wcmljZXMgPSB7fTtcbiAgICBpZiAodGhpcy5zZWN0aW9uLnByaWNpbmdFbmFibGVkKSB7XG4gICAgICB0aGlzLnNlY3Rpb24uc2VjdGlvblZhbHVlPy52YWx1ZU9wdGlvbnMuZm9yRWFjaCh2YWx1ZU9wdGlvbiA9PiB7XG4gICAgICAgIHRoaXMucHJpY2VzW3ZhbHVlT3B0aW9uXSA9IHRoaXMuZmluZFByaWNlSXRlbXNGb3JWYWx1ZSh2YWx1ZU9wdGlvbik7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGZpbmRQcmljZUl0ZW1zRm9yVmFsdWUodmFsdWVPcHRpb246IHN0cmluZyk6IFJlY29tbWVuZGVkUHJpY2VbXSB7XG4gICAgbGV0IHByaWNlczogUmVjb21tZW5kZWRQcmljZVtdID0gW107XG4gICAgaWYgKHZhbHVlT3B0aW9uKSB7XG4gICAgICBjb25zdCBsaW5lSXRlbSA9XG4gICAgICAgIHRoaXMuc2VjdGlvbi5tb2RlbD8ubGluZUl0ZW1zICYmXG4gICAgICAgIHRoaXMuc2VjdGlvbi5tb2RlbC5saW5lSXRlbXMuZmluZChsaSA9PiBsaS50eXBlICYmIGxpLnR5cGUudG9Mb3dlckNhc2UoKSA9PT0gdmFsdWVPcHRpb24udG9Mb3dlckNhc2UoKSk7XG4gICAgICBpZiAobGluZUl0ZW0gJiYgbGluZUl0ZW0uY2hhcmdlSXRlbXMpIHtcbiAgICAgICAgcHJpY2VzID0gbGluZUl0ZW0uY2hhcmdlSXRlbXMubWFwKHBpID0+IHtcbiAgICAgICAgICBjb25zdCBwcmljZTogUmVjb21tZW5kZWRQcmljZSA9IHtcbiAgICAgICAgICAgIGxpc3RQcmljZTogcGkubGlzdFByaWNlLFxuICAgICAgICAgICAgbmV0UHJpY2U6IHBpLm5ldFByaWNlLFxuICAgICAgICAgICAgY2hhcmdlTWV0aG9kOiBwaS5jaGFyZ2VNZXRob2QsXG4gICAgICAgICAgICBjaGFyZ2VUeXBlOiBwaS5jaGFyZ2VUeXBlLFxuICAgICAgICAgIH07XG4gICAgICAgICAgcmV0dXJuIHByaWNlO1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHBvcnREb21haW4gPSB0aGlzLnNlY3Rpb24ubW9kZWw/LnBvcnREb21haW5zW3RoaXMuc2VjdGlvbi5ib3VuZERhdGEubmFtZV07XG4gICAgICAgIGNvbnN0IGRvbWFpblR5cGUgPSBwb3J0RG9tYWluPy5kb21haW5UeXBlcy5maW5kKGQgPT4gZC5uYW1lLnRvTG93ZXJDYXNlKCkgPT09IHZhbHVlT3B0aW9uLnRvTG93ZXJDYXNlKCkpO1xuICAgICAgICBpZiAoZG9tYWluVHlwZSAmJiBkb21haW5UeXBlLnJlY29tbWVuZGVkUHJpY2VzKSB7XG4gICAgICAgICAgcHJpY2VzID0gZG9tYWluVHlwZS5yZWNvbW1lbmRlZFByaWNlcztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IG9uZVRpbWU6IFJlY29tbWVuZGVkUHJpY2UgPSB7XG4gICAgICBjaGFyZ2VNZXRob2Q6ICdPTkVfVElNRScsXG4gICAgICBuZXRQcmljZTogMCxcbiAgICAgIGxpc3RQcmljZTogMCxcbiAgICAgIGNoYXJnZVR5cGU6ICcnLFxuICAgIH07XG5cbiAgICBjb25zdCByZWN1cnJpbmc6IFJlY29tbWVuZGVkUHJpY2UgPSB7XG4gICAgICBjaGFyZ2VNZXRob2Q6ICdSRUNVUlJJTkcnLFxuICAgICAgbmV0UHJpY2U6IDAsXG4gICAgICBsaXN0UHJpY2U6IDAsXG4gICAgICBjaGFyZ2VUeXBlOiAnJyxcbiAgICB9O1xuXG4gICAgcHJpY2VzLmZvckVhY2gocCA9PiB7XG4gICAgICBpZiAocC5jaGFyZ2VNZXRob2QgPT09IG9uZVRpbWUuY2hhcmdlTWV0aG9kKSB7XG4gICAgICAgIHRoaXMuYWRkKG9uZVRpbWUsIHApO1xuICAgICAgfVxuICAgICAgaWYgKHAuY2hhcmdlTWV0aG9kID09PSByZWN1cnJpbmcuY2hhcmdlTWV0aG9kKSB7XG4gICAgICAgIHRoaXMuYWRkKHJlY3VycmluZywgcCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBjb25zdCByZXN1bHQ6IFJlY29tbWVuZGVkUHJpY2VbXSA9IFtdO1xuICAgIGlmIChvbmVUaW1lLmxpc3RQcmljZSA+IDApIHtcbiAgICAgIHJlc3VsdC5wdXNoKG9uZVRpbWUpO1xuICAgIH1cbiAgICBpZiAocmVjdXJyaW5nLmxpc3RQcmljZSA+IDApIHtcbiAgICAgIHJlc3VsdC5wdXNoKHJlY3VycmluZyk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwcml2YXRlIGFkZCh0YXJnZXQ6IFJlY29tbWVuZGVkUHJpY2UsIHNyYzogUmVjb21tZW5kZWRQcmljZSk6IHZvaWQge1xuICAgIHRhcmdldC5uZXRQcmljZSA9IHRhcmdldC5uZXRQcmljZSArIHNyYy5uZXRQcmljZTtcbiAgICB0YXJnZXQubGlzdFByaWNlID0gdGFyZ2V0Lmxpc3RQcmljZSArIHNyYy5saXN0UHJpY2U7XG4gICAgaWYgKHNyYy5leHBsYW5hdGlvbikge1xuICAgICAgdGFyZ2V0LmV4cGxhbmF0aW9uID0gc3JjLmV4cGxhbmF0aW9uO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBbZm9ybUdyb3VwXT1cImZvcm1cIj5cbiAgPCEtLVRPRE8gQUxFIHJlcGxhY2UgZGl2cyB3aXRoIG5nLXRlbXBsYXRlcy0tPlxuICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCB2YWx1ZU9wdGlvbiBvZiBzZWN0aW9uLnNlY3Rpb25WYWx1ZT8udmFsdWVPcHRpb25zXCI+XG4gICAgPGRpdiBjbGFzcz1cInVuY2hlY2tlZFwiPlxuICAgICAgPGRpdiBjbGFzcz1cInJvdyBuby1ndXR0ZXIgY2xlYXJmaXhcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLWJveCBjb250YWluZXItYm94LWJvcmRlcmVkIGNvbnRhaW5lci1ib3gtcmFkaW9cIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJveC10aXRsZVwiIChjbGljayk9XCJoYW5kbGVDaGFuZ2UoJGV2ZW50LCB2YWx1ZU9wdGlvbilcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyIGNsZWFyZml4XCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmFkaW8tYnV0dG9uXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInJhZGlvXCIgW2lkXT1cImNvbnRyb2xOYW1lXCIgW3ZhbHVlXT1cInZhbHVlT3B0aW9uXCIgW2Zvcm1Db250cm9sTmFtZV09XCJjb250cm9sTmFtZVwiIC8+XG5cbiAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImlucHV0LWhlbHBlclwiPjwvaT5cblxuICAgICAgICAgICAgICAgICAgICAgIHt7IHNlY3Rpb24uc2VjdGlvblZhbHVlPy5kaXNwbGF5VmFsdWVzPy5bdmFsdWVPcHRpb25dIHx8IHZhbHVlT3B0aW9uIH19XG5cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInByaWNlc1t2YWx1ZU9wdGlvbl0gJiYgcHJpY2VzW3ZhbHVlT3B0aW9uXS5sZW5ndGggPiAwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj4ke3sgcHJpY2VzW3ZhbHVlT3B0aW9uXVswXS5uZXRQcmljZSB9fTwvc3Bhbj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJwcmljZXNbdmFsdWVPcHRpb25dLmxlbmd0aCA+IDFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+LCA8L3NwYW4+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+JHt7IHByaWNlc1t2YWx1ZU9wdGlvbl1bMV0ubmV0UHJpY2UgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInByaWNlc1t2YWx1ZU9wdGlvbl0gJiYgcHJpY2VzW3ZhbHVlT3B0aW9uXS5sZW5ndGggPiAwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdj57eyBwcmljZXNbdmFsdWVPcHRpb25dWzBdLmV4cGxhbmF0aW9uIH19PC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInByaWNlc1t2YWx1ZU9wdGlvbl0ubGVuZ3RoID4gMSAmJiBwcmljZXNbdmFsdWVPcHRpb25dWzFdLmV4cGxhbmF0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2Pnt7IHByaWNlc1t2YWx1ZU9wdGlvbl1bMV0uZXhwbGFuYXRpb24gfX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuPC9kaXY+XG48bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4iXX0=
|