@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,109 @@
|
|
1
|
+
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
2
|
+
import { ConfigurationContextMode, EntityUtil, RuntimeModel, SectionPathUtil, } from '@veloceapps/core';
|
3
|
+
import { RuntimeMode } from '@veloceapps/sdk/core';
|
4
|
+
import { combineLatest, Subject } from 'rxjs';
|
5
|
+
import { takeUntil } from 'rxjs/operators';
|
6
|
+
import * as i0 from "@angular/core";
|
7
|
+
import * as i1 from "../../services/runtime.service";
|
8
|
+
import * as i2 from "../../services/product-model-cache.service";
|
9
|
+
import * as i3 from "@veloceapps/api";
|
10
|
+
import * as i4 from "@veloceapps/sdk/core";
|
11
|
+
import * as i5 from "../ui-runtime/runtime.component";
|
12
|
+
export class RuntimePreviewComponent {
|
13
|
+
constructor(runtimeService, modelCacheService, configurationApiService, contextService) {
|
14
|
+
this.runtimeService = runtimeService;
|
15
|
+
this.modelCacheService = modelCacheService;
|
16
|
+
this.configurationApiService = configurationApiService;
|
17
|
+
this.contextService = contextService;
|
18
|
+
this.destroy$ = new Subject();
|
19
|
+
}
|
20
|
+
set uiDefinition(value) {
|
21
|
+
this._uiDefinition = value;
|
22
|
+
this.initDefinition(value);
|
23
|
+
}
|
24
|
+
ngOnInit() {
|
25
|
+
if (!this.modelId) {
|
26
|
+
return;
|
27
|
+
}
|
28
|
+
this.modelCacheService
|
29
|
+
.getProductModel(this.modelId)
|
30
|
+
.pipe(takeUntil(this.destroy$))
|
31
|
+
.subscribe(container => {
|
32
|
+
this.productModelContainer = container;
|
33
|
+
if (this._uiDefinition) {
|
34
|
+
this.initDefinition(this._uiDefinition);
|
35
|
+
}
|
36
|
+
});
|
37
|
+
}
|
38
|
+
ngOnDestroy() {
|
39
|
+
this.destroy$.next();
|
40
|
+
this.destroy$.complete();
|
41
|
+
}
|
42
|
+
initDefinition(uiDefinition) {
|
43
|
+
if (!this.productModelContainer) {
|
44
|
+
return;
|
45
|
+
}
|
46
|
+
const initialisedUiDefinition = EntityUtil.clone(uiDefinition);
|
47
|
+
const externals = this.productModelContainer.main.externals;
|
48
|
+
if (externals) {
|
49
|
+
initialisedUiDefinition.externals = externals.reduce((trunk, variable) => {
|
50
|
+
var _a, _b;
|
51
|
+
return Object.assign(Object.assign({}, trunk), { [variable.name]: (_b = (_a = initialisedUiDefinition.externals) === null || _a === void 0 ? void 0 : _a[variable.name]) !== null && _b !== void 0 ? _b : '' });
|
52
|
+
}, {});
|
53
|
+
}
|
54
|
+
else {
|
55
|
+
delete initialisedUiDefinition.externals;
|
56
|
+
}
|
57
|
+
this.initialisedUiDefinition = initialisedUiDefinition;
|
58
|
+
this.launchRuntime();
|
59
|
+
}
|
60
|
+
onSolutionUpdated(lineItem) {
|
61
|
+
this.runtimeService.updateRuntime({ configurableRamp: lineItem });
|
62
|
+
}
|
63
|
+
launchRuntime() {
|
64
|
+
if (!this.modelId || !this.initialisedUiDefinition) {
|
65
|
+
return;
|
66
|
+
}
|
67
|
+
SectionPathUtil.updateSectionsPath(this.initialisedUiDefinition.sections);
|
68
|
+
const uiDefinition = EntityUtil.clone(this.initialisedUiDefinition);
|
69
|
+
combineLatest([
|
70
|
+
this.configurationApiService.getRuntimeDataByModelId(this.modelId),
|
71
|
+
this.contextService.create('TestId', ConfigurationContextMode.TEST),
|
72
|
+
]).subscribe(([runtimeData]) => {
|
73
|
+
var _a;
|
74
|
+
const runtimeModel = RuntimeModel.create(runtimeData.types, runtimeData.products);
|
75
|
+
const rootType = Array.from(runtimeModel.components.values()).find(c => uiDefinition.rootType &&
|
76
|
+
runtimeModel.isEquals(c.typeName, uiDefinition.rootType) &&
|
77
|
+
EntityUtil.isPresent(c.productId));
|
78
|
+
if (rootType === null || rootType === void 0 ? void 0 : rootType.typeName) {
|
79
|
+
uiDefinition.rootType = rootType.typeName;
|
80
|
+
}
|
81
|
+
const contextProductId = rootType ? rootType.productId : undefined;
|
82
|
+
const context = {
|
83
|
+
modelId: (_a = this.modelId) !== null && _a !== void 0 ? _a : '',
|
84
|
+
uiDefinition: uiDefinition,
|
85
|
+
runtimeModel,
|
86
|
+
runtimeMode: RuntimeMode.TEST,
|
87
|
+
productId: contextProductId,
|
88
|
+
properties: uiDefinition.externals,
|
89
|
+
};
|
90
|
+
this.runtimeService.startRuntime(context, {});
|
91
|
+
});
|
92
|
+
}
|
93
|
+
}
|
94
|
+
RuntimePreviewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: RuntimePreviewComponent, deps: [{ token: i1.RuntimeService }, { token: i2.ProductModelCacheService }, { token: i3.ConfigurationApiService }, { token: i4.ContextService }], target: i0.ɵɵFactoryTarget.Component });
|
95
|
+
RuntimePreviewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: RuntimePreviewComponent, selector: "vl-runtime-preview", inputs: { modelId: "modelId", uiDefinition: "uiDefinition" }, ngImport: i0, template: "<vl-runtime (solutionUpdated)=\"onSolutionUpdated($event)\"></vl-runtime>\n", styles: [":host{flex-grow:1}\n"], components: [{ type: i5.RuntimeComponent, selector: "vl-runtime", outputs: ["solutionUpdated"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
96
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: RuntimePreviewComponent, decorators: [{
|
97
|
+
type: Component,
|
98
|
+
args: [{
|
99
|
+
selector: 'vl-runtime-preview',
|
100
|
+
templateUrl: 'runtime-preview.component.html',
|
101
|
+
styleUrls: ['runtime-preview.component.scss'],
|
102
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
103
|
+
}]
|
104
|
+
}], ctorParameters: function () { return [{ type: i1.RuntimeService }, { type: i2.ProductModelCacheService }, { type: i3.ConfigurationApiService }, { type: i4.ContextService }]; }, propDecorators: { modelId: [{
|
105
|
+
type: Input
|
106
|
+
}], uiDefinition: [{
|
107
|
+
type: Input
|
108
|
+
}] } });
|
109
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS1wcmV2aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL3J1bnRpbWUvY29tcG9uZW50cy91aS1ydW50aW1lLXByZXZpZXcvcnVudGltZS1wcmV2aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL3J1bnRpbWUvY29tcG9uZW50cy91aS1ydW50aW1lLXByZXZpZXcvcnVudGltZS1wcmV2aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUU3RixPQUFPLEVBQ0wsd0JBQXdCLEVBQ3hCLFVBQVUsRUFJVixZQUFZLEVBQ1osZUFBZSxHQUVoQixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBa0IsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFbkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDOUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7O0FBVzNDLE1BQU0sT0FBTyx1QkFBdUI7SUFhbEMsWUFDVSxjQUE4QixFQUM5QixpQkFBMkMsRUFDM0MsdUJBQWdELEVBQ2hELGNBQThCO1FBSDlCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQTBCO1FBQzNDLDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBeUI7UUFDaEQsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBTmhDLGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBT3BDLENBQUM7SUFoQkosSUFBYSxZQUFZLENBQUMsS0FBbUI7UUFDM0MsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7UUFDM0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBZU0sUUFBUTtRQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2pCLE9BQU87U0FDUjtRQUVELElBQUksQ0FBQyxpQkFBaUI7YUFDbkIsZUFBZSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7YUFDN0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDOUIsU0FBUyxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQ3JCLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxTQUFTLENBQUM7WUFFdkMsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO2dCQUN0QixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQzthQUN6QztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFTSxjQUFjLENBQUMsWUFBMEI7UUFDOUMsSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsRUFBRTtZQUMvQixPQUFPO1NBQ1I7UUFFRCxNQUFNLHVCQUF1QixHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFL0QsTUFBTSxTQUFTLEdBQTRCLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ3JGLElBQUksU0FBUyxFQUFFO1lBQ2IsdUJBQXVCLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQXFCLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxFQUFFOztnQkFDM0YsdUNBQ0ssS0FBSyxLQUNSLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQUEsTUFBQSx1QkFBdUIsQ0FBQyxTQUFTLDBDQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsbUNBQUksRUFBRSxJQUN6RTtZQUNKLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztTQUNSO2FBQU07WUFDTCxPQUFPLHVCQUF1QixDQUFDLFNBQVMsQ0FBQztTQUMxQztRQUVELElBQUksQ0FBQyx1QkFBdUIsR0FBRyx1QkFBdUIsQ0FBQztRQUV2RCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVNLGlCQUFpQixDQUFDLFFBQWtCO1FBQ3pDLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRU8sYUFBYTtRQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsRUFBRTtZQUNsRCxPQUFPO1NBQ1I7UUFFRCxlQUFlLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRTFFLE1BQU0sWUFBWSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLENBQUM7UUFFcEUsYUFBYSxDQUFDO1lBQ1osSUFBSSxDQUFDLHVCQUF1QixDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7WUFDbEUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLHdCQUF3QixDQUFDLElBQUksQ0FBQztTQUNwRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsRUFBRSxFQUFFOztZQUM3QixNQUFNLFlBQVksR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2xGLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FDaEUsQ0FBQyxDQUFDLEVBQUUsQ0FDRixZQUFZLENBQUMsUUFBUTtnQkFDckIsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLFlBQVksQ0FBQyxRQUFRLENBQUM7Z0JBQ3hELFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUNwQyxDQUFDO1lBRUYsSUFBSSxRQUFRLGFBQVIsUUFBUSx1QkFBUixRQUFRLENBQUUsUUFBUSxFQUFFO2dCQUN0QixZQUFZLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUM7YUFDM0M7WUFFRCxNQUFNLGdCQUFnQixHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1lBRW5FLE1BQU0sT0FBTyxHQUF5QjtnQkFDcEMsT0FBTyxFQUFFLE1BQUEsSUFBSSxDQUFDLE9BQU8sbUNBQUksRUFBRTtnQkFDM0IsWUFBWSxFQUFFLFlBQVk7Z0JBQzFCLFlBQVk7Z0JBQ1osV0FBVyxFQUFFLFdBQVcsQ0FBQyxJQUFJO2dCQUM3QixTQUFTLEVBQUUsZ0JBQWdCO2dCQUMzQixVQUFVLEVBQUUsWUFBWSxDQUFDLFNBQVM7YUFDbkMsQ0FBQztZQUVGLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNoRCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7O3FIQTVHVSx1QkFBdUI7eUdBQXZCLHVCQUF1Qix3SEMxQnBDLDZFQUNBOzRGRHlCYSx1QkFBdUI7a0JBTm5DLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsV0FBVyxFQUFFLGdDQUFnQztvQkFDN0MsU0FBUyxFQUFFLENBQUMsZ0NBQWdDLENBQUM7b0JBQzdDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNoRDsrTUFFVSxPQUFPO3NCQUFmLEtBQUs7Z0JBQ08sWUFBWTtzQkFBeEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29uZmlndXJhdGlvbkFwaVNlcnZpY2UgfSBmcm9tICdAdmVsb2NlYXBwcy9hcGknO1xuaW1wb3J0IHtcbiAgQ29uZmlndXJhdGlvbkNvbnRleHRNb2RlLFxuICBFbnRpdHlVdGlsLFxuICBMaW5lSXRlbSxcbiAgUHJvZHVjdE1vZGVsQXR0cmlidXRlLFxuICBQcm9kdWN0TW9kZWxzQ29udGFpbmVyLFxuICBSdW50aW1lTW9kZWwsXG4gIFNlY3Rpb25QYXRoVXRpbCxcbiAgVUlEZWZpbml0aW9uLFxufSBmcm9tICdAdmVsb2NlYXBwcy9jb3JlJztcbmltcG9ydCB7IENvbnRleHRTZXJ2aWNlLCBSdW50aW1lTW9kZSB9IGZyb20gJ0B2ZWxvY2VhcHBzL3Nkay9jb3JlJztcbmltcG9ydCB7IERpY3Rpb25hcnkgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgUHJvZHVjdE1vZGVsQ2FjaGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcHJvZHVjdC1tb2RlbC1jYWNoZS5zZXJ2aWNlJztcbmltcG9ydCB7IFJ1bnRpbWVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcnVudGltZS5zZXJ2aWNlJztcbmltcG9ydCB7IExlZ2FjeVJ1bnRpbWVDb250ZXh0IH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2bC1ydW50aW1lLXByZXZpZXcnLFxuICB0ZW1wbGF0ZVVybDogJ3J1bnRpbWUtcHJldmlldy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWydydW50aW1lLXByZXZpZXcuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFJ1bnRpbWVQcmV2aWV3Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBtb2RlbElkPzogc3RyaW5nO1xuICBASW5wdXQoKSBzZXQgdWlEZWZpbml0aW9uKHZhbHVlOiBVSURlZmluaXRpb24pIHtcbiAgICB0aGlzLl91aURlZmluaXRpb24gPSB2YWx1ZTtcbiAgICB0aGlzLmluaXREZWZpbml0aW9uKHZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgX3VpRGVmaW5pdGlvbj86IFVJRGVmaW5pdGlvbjtcbiAgcHJpdmF0ZSBpbml0aWFsaXNlZFVpRGVmaW5pdGlvbj86IFVJRGVmaW5pdGlvbjtcbiAgcHJpdmF0ZSBwcm9kdWN0TW9kZWxDb250YWluZXI/OiBQcm9kdWN0TW9kZWxzQ29udGFpbmVyO1xuXG4gIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcnVudGltZVNlcnZpY2U6IFJ1bnRpbWVTZXJ2aWNlLFxuICAgIHByaXZhdGUgbW9kZWxDYWNoZVNlcnZpY2U6IFByb2R1Y3RNb2RlbENhY2hlU2VydmljZSxcbiAgICBwcml2YXRlIGNvbmZpZ3VyYXRpb25BcGlTZXJ2aWNlOiBDb25maWd1cmF0aW9uQXBpU2VydmljZSxcbiAgICBwcml2YXRlIGNvbnRleHRTZXJ2aWNlOiBDb250ZXh0U2VydmljZSxcbiAgKSB7fVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMubW9kZWxJZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMubW9kZWxDYWNoZVNlcnZpY2VcbiAgICAgIC5nZXRQcm9kdWN0TW9kZWwodGhpcy5tb2RlbElkKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZShjb250YWluZXIgPT4ge1xuICAgICAgICB0aGlzLnByb2R1Y3RNb2RlbENvbnRhaW5lciA9IGNvbnRhaW5lcjtcblxuICAgICAgICBpZiAodGhpcy5fdWlEZWZpbml0aW9uKSB7XG4gICAgICAgICAgdGhpcy5pbml0RGVmaW5pdGlvbih0aGlzLl91aURlZmluaXRpb24pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwdWJsaWMgaW5pdERlZmluaXRpb24odWlEZWZpbml0aW9uOiBVSURlZmluaXRpb24pOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMucHJvZHVjdE1vZGVsQ29udGFpbmVyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgaW5pdGlhbGlzZWRVaURlZmluaXRpb24gPSBFbnRpdHlVdGlsLmNsb25lKHVpRGVmaW5pdGlvbik7XG5cbiAgICBjb25zdCBleHRlcm5hbHM6IFByb2R1Y3RNb2RlbEF0dHJpYnV0ZVtdID0gdGhpcy5wcm9kdWN0TW9kZWxDb250YWluZXIubWFpbi5leHRlcm5hbHM7XG4gICAgaWYgKGV4dGVybmFscykge1xuICAgICAgaW5pdGlhbGlzZWRVaURlZmluaXRpb24uZXh0ZXJuYWxzID0gZXh0ZXJuYWxzLnJlZHVjZTxEaWN0aW9uYXJ5PHN0cmluZz4+KCh0cnVuaywgdmFyaWFibGUpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi50cnVuayxcbiAgICAgICAgICBbdmFyaWFibGUubmFtZV06IGluaXRpYWxpc2VkVWlEZWZpbml0aW9uLmV4dGVybmFscz8uW3ZhcmlhYmxlLm5hbWVdID8/ICcnLFxuICAgICAgICB9O1xuICAgICAgfSwge30pO1xuICAgIH0gZWxzZSB7XG4gICAgICBkZWxldGUgaW5pdGlhbGlzZWRVaURlZmluaXRpb24uZXh0ZXJuYWxzO1xuICAgIH1cblxuICAgIHRoaXMuaW5pdGlhbGlzZWRVaURlZmluaXRpb24gPSBpbml0aWFsaXNlZFVpRGVmaW5pdGlvbjtcblxuICAgIHRoaXMubGF1bmNoUnVudGltZSgpO1xuICB9XG5cbiAgcHVibGljIG9uU29sdXRpb25VcGRhdGVkKGxpbmVJdGVtOiBMaW5lSXRlbSk6IHZvaWQge1xuICAgIHRoaXMucnVudGltZVNlcnZpY2UudXBkYXRlUnVudGltZSh7IGNvbmZpZ3VyYWJsZVJhbXA6IGxpbmVJdGVtIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBsYXVuY2hSdW50aW1lKCkge1xuICAgIGlmICghdGhpcy5tb2RlbElkIHx8ICF0aGlzLmluaXRpYWxpc2VkVWlEZWZpbml0aW9uKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgU2VjdGlvblBhdGhVdGlsLnVwZGF0ZVNlY3Rpb25zUGF0aCh0aGlzLmluaXRpYWxpc2VkVWlEZWZpbml0aW9uLnNlY3Rpb25zKTtcblxuICAgIGNvbnN0IHVpRGVmaW5pdGlvbiA9IEVudGl0eVV0aWwuY2xvbmUodGhpcy5pbml0aWFsaXNlZFVpRGVmaW5pdGlvbik7XG5cbiAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuY29uZmlndXJhdGlvbkFwaVNlcnZpY2UuZ2V0UnVudGltZURhdGFCeU1vZGVsSWQodGhpcy5tb2RlbElkKSxcbiAgICAgIHRoaXMuY29udGV4dFNlcnZpY2UuY3JlYXRlKCdUZXN0SWQnLCBDb25maWd1cmF0aW9uQ29udGV4dE1vZGUuVEVTVCksXG4gICAgXSkuc3Vic2NyaWJlKChbcnVudGltZURhdGFdKSA9PiB7XG4gICAgICBjb25zdCBydW50aW1lTW9kZWwgPSBSdW50aW1lTW9kZWwuY3JlYXRlKHJ1bnRpbWVEYXRhLnR5cGVzLCBydW50aW1lRGF0YS5wcm9kdWN0cyk7XG4gICAgICBjb25zdCByb290VHlwZSA9IEFycmF5LmZyb20ocnVudGltZU1vZGVsLmNvbXBvbmVudHMudmFsdWVzKCkpLmZpbmQoXG4gICAgICAgIGMgPT5cbiAgICAgICAgICB1aURlZmluaXRpb24ucm9vdFR5cGUgJiZcbiAgICAgICAgICBydW50aW1lTW9kZWwuaXNFcXVhbHMoYy50eXBlTmFtZSwgdWlEZWZpbml0aW9uLnJvb3RUeXBlKSAmJlxuICAgICAgICAgIEVudGl0eVV0aWwuaXNQcmVzZW50KGMucHJvZHVjdElkKSxcbiAgICAgICk7XG5cbiAgICAgIGlmIChyb290VHlwZT8udHlwZU5hbWUpIHtcbiAgICAgICAgdWlEZWZpbml0aW9uLnJvb3RUeXBlID0gcm9vdFR5cGUudHlwZU5hbWU7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNvbnRleHRQcm9kdWN0SWQgPSByb290VHlwZSA/IHJvb3RUeXBlLnByb2R1Y3RJZCA6IHVuZGVmaW5lZDtcblxuICAgICAgY29uc3QgY29udGV4dDogTGVnYWN5UnVudGltZUNvbnRleHQgPSB7XG4gICAgICAgIG1vZGVsSWQ6IHRoaXMubW9kZWxJZCA/PyAnJyxcbiAgICAgICAgdWlEZWZpbml0aW9uOiB1aURlZmluaXRpb24sXG4gICAgICAgIHJ1bnRpbWVNb2RlbCxcbiAgICAgICAgcnVudGltZU1vZGU6IFJ1bnRpbWVNb2RlLlRFU1QsXG4gICAgICAgIHByb2R1Y3RJZDogY29udGV4dFByb2R1Y3RJZCxcbiAgICAgICAgcHJvcGVydGllczogdWlEZWZpbml0aW9uLmV4dGVybmFscyxcbiAgICAgIH07XG5cbiAgICAgIHRoaXMucnVudGltZVNlcnZpY2Uuc3RhcnRSdW50aW1lKGNvbnRleHQsIHt9KTtcbiAgICB9KTtcbiAgfVxufVxuIiwiPHZsLXJ1bnRpbWUgKHNvbHV0aW9uVXBkYXRlZCk9XCJvblNvbHV0aW9uVXBkYXRlZCgkZXZlbnQpXCI+PC92bC1ydW50aW1lPlxuIl19
|
package/esm2015/runtime/execution/components/children-placeholder/children-placeholder.component.js
ADDED
@@ -0,0 +1,68 @@
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
2
|
+
import { OrderByPipe } from '@veloceapps/core';
|
3
|
+
import * as i0 from "@angular/core";
|
4
|
+
import * as i1 from "../../../services/section-scope.service";
|
5
|
+
import * as i2 from "../../../services/form-scope.service";
|
6
|
+
import * as i3 from "../../../services/collapsible-state.service";
|
7
|
+
import * as i4 from "../execution-section-renderer/execution-section-renderer.component";
|
8
|
+
import * as i5 from "@angular/common";
|
9
|
+
export class ChildrenPlaceholderComponent {
|
10
|
+
constructor(sectionScope, formScope, collapsibleState) {
|
11
|
+
this.sectionScope = sectionScope;
|
12
|
+
this.formScope = formScope;
|
13
|
+
this.collapsibleState = collapsibleState;
|
14
|
+
this._children = [];
|
15
|
+
this.collapsed = false;
|
16
|
+
}
|
17
|
+
ngOnInit() {
|
18
|
+
this.section = this.sectionScope.section;
|
19
|
+
this.form = this.formScope.form;
|
20
|
+
this.collapsed = this.section.model ? this.collapsibleState.isCollapsedSection(this.section.model.id) : true;
|
21
|
+
this.sub = this.collapsibleState.collapseSectionEvent.subscribe(e => {
|
22
|
+
var _a;
|
23
|
+
const lineItemId = e[0];
|
24
|
+
if (((_a = this.section.model) === null || _a === void 0 ? void 0 : _a.id) === lineItemId) {
|
25
|
+
this.collapsed = e[1];
|
26
|
+
}
|
27
|
+
});
|
28
|
+
this.setChildren();
|
29
|
+
}
|
30
|
+
ngOnChanges(changes) {
|
31
|
+
var _a, _b;
|
32
|
+
if (!this.children || ((_a = changes.children) === null || _a === void 0 ? void 0 : _a.currentValue) !== ((_b = changes.children) === null || _b === void 0 ? void 0 : _b.previousValue)) {
|
33
|
+
this.setChildren();
|
34
|
+
}
|
35
|
+
}
|
36
|
+
setChildren() {
|
37
|
+
this._children = this.children ? this.children : this.section.children;
|
38
|
+
}
|
39
|
+
ngOnDestroy() {
|
40
|
+
this.sub.unsubscribe();
|
41
|
+
}
|
42
|
+
}
|
43
|
+
ChildrenPlaceholderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ChildrenPlaceholderComponent, deps: [{ token: i1.SectionScopeService }, { token: i2.FormScopeService }, { token: i3.CollapsibleStateService }], target: i0.ɵɵFactoryTarget.Component });
|
44
|
+
ChildrenPlaceholderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: ChildrenPlaceholderComponent, selector: "children-placeholder", inputs: { children: "children" }, providers: [OrderByPipe], usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"!collapsed\">\n <ng-container *ngFor=\"let child of _children\">\n <section-renderer [section]=\"child\" [form]=\"form\" *ngIf=\"!child.hidden\"></section-renderer>\n </ng-container>\n</ng-container>\n", components: [{ type: i4.ExecutionSectionRendererComponent, selector: "section-renderer", inputs: ["section", "form"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
45
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ChildrenPlaceholderComponent, decorators: [{
|
46
|
+
type: Component,
|
47
|
+
args: [{
|
48
|
+
// eslint-disable-next-line @angular-eslint/component-selector
|
49
|
+
selector: 'children-placeholder',
|
50
|
+
templateUrl: 'children-placeholder.component.html',
|
51
|
+
providers: [OrderByPipe],
|
52
|
+
}]
|
53
|
+
}], ctorParameters: function () { return [{ type: i1.SectionScopeService }, { type: i2.FormScopeService }, { type: i3.CollapsibleStateService }]; }, propDecorators: { children: [{
|
54
|
+
type: Input
|
55
|
+
}] } });
|
56
|
+
export class TemplateComponent extends ChildrenPlaceholderComponent {
|
57
|
+
}
|
58
|
+
TemplateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TemplateComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
59
|
+
TemplateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TemplateComponent, selector: "template-component", usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"!collapsed\">\n <ng-container *ngFor=\"let child of _children\">\n <section-renderer [section]=\"child\" [form]=\"form\" *ngIf=\"!child.hidden\"></section-renderer>\n </ng-container>\n</ng-container>\n", components: [{ type: i4.ExecutionSectionRendererComponent, selector: "section-renderer", inputs: ["section", "form"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
60
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TemplateComponent, decorators: [{
|
61
|
+
type: Component,
|
62
|
+
args: [{
|
63
|
+
// eslint-disable-next-line @angular-eslint/component-selector
|
64
|
+
selector: 'template-component',
|
65
|
+
templateUrl: 'children-placeholder.component.html',
|
66
|
+
}]
|
67
|
+
}] });
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hpbGRyZW4tcGxhY2Vob2xkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvcnVudGltZS9leGVjdXRpb24vY29tcG9uZW50cy9jaGlsZHJlbi1wbGFjZWhvbGRlci9jaGlsZHJlbi1wbGFjZWhvbGRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9ydW50aW1lL2V4ZWN1dGlvbi9jb21wb25lbnRzL2NoaWxkcmVuLXBsYWNlaG9sZGVyL2NoaWxkcmVuLXBsYWNlaG9sZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUErQyxNQUFNLGVBQWUsQ0FBQztBQUU5RixPQUFPLEVBQUUsV0FBVyxFQUFXLE1BQU0sa0JBQWtCLENBQUM7Ozs7Ozs7QUFZeEQsTUFBTSxPQUFPLDRCQUE0QjtJQWN2QyxZQUNVLFlBQWlDLEVBQ2pDLFNBQTJCLEVBQzNCLGdCQUF5QztRQUZ6QyxpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFDakMsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0IscUJBQWdCLEdBQWhCLGdCQUFnQixDQUF5QjtRQWI1QyxjQUFTLEdBQWMsRUFBRSxDQUFDO1FBUWpDLGNBQVMsR0FBRyxLQUFLLENBQUM7SUFNZixDQUFDO0lBRUosUUFBUTtRQUNOLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUM7UUFDekMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQztRQUVoQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUU3RyxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7O1lBQ2xFLE1BQU0sVUFBVSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUV4QixJQUFJLENBQUEsTUFBQSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssMENBQUUsRUFBRSxNQUFLLFVBQVUsRUFBRTtnQkFDekMsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDdkI7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCOztRQUNoQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFBLE1BQUEsT0FBTyxDQUFDLFFBQVEsMENBQUUsWUFBWSxPQUFLLE1BQUEsT0FBTyxDQUFDLFFBQVEsMENBQUUsYUFBYSxDQUFBLEVBQUU7WUFDeEYsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3BCO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO0lBQ3pFLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN6QixDQUFDOzswSEFqRFUsNEJBQTRCOzhHQUE1Qiw0QkFBNEIsaUZBRjVCLENBQUMsV0FBVyxDQUFDLCtDQ1oxQixzT0FLQTs0RkRTYSw0QkFBNEI7a0JBTnhDLFNBQVM7bUJBQUM7b0JBQ1QsOERBQThEO29CQUM5RCxRQUFRLEVBQUUsc0JBQXNCO29CQUNoQyxXQUFXLEVBQUUscUNBQXFDO29CQUNsRCxTQUFTLEVBQUUsQ0FBQyxXQUFXLENBQUM7aUJBQ3pCOytLQUdDLFFBQVE7c0JBRFAsS0FBSzs7QUF3RFIsTUFBTSxPQUFPLGlCQUFrQixTQUFRLDRCQUE0Qjs7K0dBQXRELGlCQUFpQjttR0FBakIsaUJBQWlCLGlGQ3ZFOUIsc09BS0E7NEZEa0VhLGlCQUFpQjtrQkFMN0IsU0FBUzttQkFBQztvQkFDVCw4REFBOEQ7b0JBQzlELFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLFdBQVcsRUFBRSxxQ0FBcUM7aUJBQ25EIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgT3JkZXJCeVBpcGUsIFNlY3Rpb24gfSBmcm9tICdAdmVsb2NlYXBwcy9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ29sbGFwc2libGVTdGF0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9jb2xsYXBzaWJsZS1zdGF0ZS5zZXJ2aWNlJztcbmltcG9ydCB7IEZvcm1TY29wZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9mb3JtLXNjb3BlLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2VjdGlvblNjb3BlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3NlY3Rpb24tc2NvcGUuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICBzZWxlY3RvcjogJ2NoaWxkcmVuLXBsYWNlaG9sZGVyJyxcbiAgdGVtcGxhdGVVcmw6ICdjaGlsZHJlbi1wbGFjZWhvbGRlci5jb21wb25lbnQuaHRtbCcsXG4gIHByb3ZpZGVyczogW09yZGVyQnlQaXBlXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2hpbGRyZW5QbGFjZWhvbGRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKVxuICBjaGlsZHJlbj86IFNlY3Rpb25bXTtcblxuICBwdWJsaWMgX2NoaWxkcmVuOiBTZWN0aW9uW10gPSBbXTtcblxuICBzZWN0aW9uITogU2VjdGlvbjtcblxuICBmb3JtITogRm9ybUdyb3VwO1xuXG4gIHN1YiE6IFN1YnNjcmlwdGlvbjtcblxuICBjb2xsYXBzZWQgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHNlY3Rpb25TY29wZTogU2VjdGlvblNjb3BlU2VydmljZSxcbiAgICBwcml2YXRlIGZvcm1TY29wZTogRm9ybVNjb3BlU2VydmljZSxcbiAgICBwcml2YXRlIGNvbGxhcHNpYmxlU3RhdGU6IENvbGxhcHNpYmxlU3RhdGVTZXJ2aWNlLFxuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZWN0aW9uID0gdGhpcy5zZWN0aW9uU2NvcGUuc2VjdGlvbjtcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZvcm1TY29wZS5mb3JtO1xuXG4gICAgdGhpcy5jb2xsYXBzZWQgPSB0aGlzLnNlY3Rpb24ubW9kZWwgPyB0aGlzLmNvbGxhcHNpYmxlU3RhdGUuaXNDb2xsYXBzZWRTZWN0aW9uKHRoaXMuc2VjdGlvbi5tb2RlbC5pZCkgOiB0cnVlO1xuXG4gICAgdGhpcy5zdWIgPSB0aGlzLmNvbGxhcHNpYmxlU3RhdGUuY29sbGFwc2VTZWN0aW9uRXZlbnQuc3Vic2NyaWJlKGUgPT4ge1xuICAgICAgY29uc3QgbGluZUl0ZW1JZCA9IGVbMF07XG5cbiAgICAgIGlmICh0aGlzLnNlY3Rpb24ubW9kZWw/LmlkID09PSBsaW5lSXRlbUlkKSB7XG4gICAgICAgIHRoaXMuY29sbGFwc2VkID0gZVsxXTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMuc2V0Q2hpbGRyZW4oKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuY2hpbGRyZW4gfHwgY2hhbmdlcy5jaGlsZHJlbj8uY3VycmVudFZhbHVlICE9PSBjaGFuZ2VzLmNoaWxkcmVuPy5wcmV2aW91c1ZhbHVlKSB7XG4gICAgICB0aGlzLnNldENoaWxkcmVuKCk7XG4gICAgfVxuICB9XG5cbiAgc2V0Q2hpbGRyZW4oKTogdm9pZCB7XG4gICAgdGhpcy5fY2hpbGRyZW4gPSB0aGlzLmNoaWxkcmVuID8gdGhpcy5jaGlsZHJlbiA6IHRoaXMuc2VjdGlvbi5jaGlsZHJlbjtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3ViLnVuc3Vic2NyaWJlKCk7XG4gIH1cbn1cblxuQENvbXBvbmVudCh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAndGVtcGxhdGUtY29tcG9uZW50JyxcbiAgdGVtcGxhdGVVcmw6ICdjaGlsZHJlbi1wbGFjZWhvbGRlci5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIFRlbXBsYXRlQ29tcG9uZW50IGV4dGVuZHMgQ2hpbGRyZW5QbGFjZWhvbGRlckNvbXBvbmVudCB7fVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFjb2xsYXBzZWRcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY2hpbGQgb2YgX2NoaWxkcmVuXCI+XG4gICAgPHNlY3Rpb24tcmVuZGVyZXIgW3NlY3Rpb25dPVwiY2hpbGRcIiBbZm9ybV09XCJmb3JtXCIgKm5nSWY9XCIhY2hpbGQuaGlkZGVuXCI+PC9zZWN0aW9uLXJlbmRlcmVyPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctY29udGFpbmVyPlxuIl19
|
@@ -0,0 +1,36 @@
|
|
1
|
+
import { Component, Inject, Input } from '@angular/core';
|
2
|
+
import { RuntimeModel } from '@veloceapps/core';
|
3
|
+
import { RuntimeService } from '../../../services/runtime.service';
|
4
|
+
import * as i0 from "@angular/core";
|
5
|
+
import * as i1 from "../../../services/runtime.service";
|
6
|
+
export class ContextProviderComponent {
|
7
|
+
constructor(runtimeService) {
|
8
|
+
this.runtimeService = runtimeService;
|
9
|
+
this.types = [];
|
10
|
+
this.products = {};
|
11
|
+
}
|
12
|
+
ngOnInit() {
|
13
|
+
const context = this.runtimeService.getRuntimeContext();
|
14
|
+
if (!context) {
|
15
|
+
return;
|
16
|
+
}
|
17
|
+
this.runtimeService.setRuntimeContext(Object.assign(Object.assign({}, context), { runtimeModel: RuntimeModel.create(this.types, this.products) }));
|
18
|
+
}
|
19
|
+
}
|
20
|
+
ContextProviderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ContextProviderComponent, deps: [{ token: RuntimeService }], target: i0.ɵɵFactoryTarget.Component });
|
21
|
+
ContextProviderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: ContextProviderComponent, selector: "vl-context-provider", inputs: { types: "types", products: "products" }, ngImport: i0, template: '', isInline: true });
|
22
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ContextProviderComponent, decorators: [{
|
23
|
+
type: Component,
|
24
|
+
args: [{
|
25
|
+
selector: 'vl-context-provider',
|
26
|
+
template: '',
|
27
|
+
}]
|
28
|
+
}], ctorParameters: function () { return [{ type: i1.RuntimeService, decorators: [{
|
29
|
+
type: Inject,
|
30
|
+
args: [RuntimeService]
|
31
|
+
}] }]; }, propDecorators: { types: [{
|
32
|
+
type: Input
|
33
|
+
}], products: [{
|
34
|
+
type: Input
|
35
|
+
}] } });
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1wcm92aWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9ydW50aW1lL2V4ZWN1dGlvbi9jb21wb25lbnRzL2NvbnRleHQtcHJvdmlkZXIvY29udGV4dC1wcm92aWRlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2pFLE9BQU8sRUFBZSxZQUFZLEVBQStCLE1BQU0sa0JBQWtCLENBQUM7QUFFMUYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOzs7QUFNbkUsTUFBTSxPQUFPLHdCQUF3QjtJQUluQyxZQUE0QyxjQUE4QjtRQUE5QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFIakUsVUFBSyxHQUFrQyxFQUFFLENBQUM7UUFDMUMsYUFBUSxHQUFpQyxFQUFFLENBQUM7SUFFd0IsQ0FBQztJQUU5RSxRQUFRO1FBQ04sTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBRXhELElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDWixPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsY0FBYyxDQUFDLGlCQUFpQixpQ0FDaEMsT0FBTyxLQUNWLFlBQVksRUFBRSxZQUFZLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUM1RCxDQUFDO0lBQ0wsQ0FBQzs7c0hBakJVLHdCQUF3QixrQkFJZixjQUFjOzBHQUp2Qix3QkFBd0IsNkdBRnpCLEVBQUU7NEZBRUQsd0JBQXdCO2tCQUpwQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLFFBQVEsRUFBRSxFQUFFO2lCQUNiOzswQkFLYyxNQUFNOzJCQUFDLGNBQWM7NENBSHpCLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFByb2R1Y3RUeXBlLCBSdW50aW1lTW9kZWwsIFJ1bnRpbWVQcm9kdWN0LCBSdW50aW1lVHlwZSB9IGZyb20gJ0B2ZWxvY2VhcHBzL2NvcmUnO1xuaW1wb3J0IHsgRGljdGlvbmFyeSB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBSdW50aW1lU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3J1bnRpbWUuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZsLWNvbnRleHQtcHJvdmlkZXInLFxuICB0ZW1wbGF0ZTogJycsXG59KVxuZXhwb3J0IGNsYXNzIENvbnRleHRQcm92aWRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHR5cGVzOiAoUnVudGltZVR5cGUgfCBQcm9kdWN0VHlwZSlbXSA9IFtdO1xuICBASW5wdXQoKSBwcm9kdWN0czogRGljdGlvbmFyeTxSdW50aW1lUHJvZHVjdFtdPiA9IHt9O1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoUnVudGltZVNlcnZpY2UpIHByaXZhdGUgcnVudGltZVNlcnZpY2U6IFJ1bnRpbWVTZXJ2aWNlKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLnJ1bnRpbWVTZXJ2aWNlLmdldFJ1bnRpbWVDb250ZXh0KCk7XG5cbiAgICBpZiAoIWNvbnRleHQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnJ1bnRpbWVTZXJ2aWNlLnNldFJ1bnRpbWVDb250ZXh0KHtcbiAgICAgIC4uLmNvbnRleHQsXG4gICAgICBydW50aW1lTW9kZWw6IFJ1bnRpbWVNb2RlbC5jcmVhdGUodGhpcy50eXBlcywgdGhpcy5wcm9kdWN0cyksXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
@@ -0,0 +1,72 @@
|
|
1
|
+
import { Component, Input, ViewChild, ViewContainerRef, } from '@angular/core';
|
2
|
+
import { SectionScopeService } from '../../../services/section-scope.service';
|
3
|
+
import * as i0 from "@angular/core";
|
4
|
+
import * as i1 from "../../../services/section-scope.service";
|
5
|
+
import * as i2 from "../../../services/section-store.service";
|
6
|
+
export class ExecutionSectionRendererComponent {
|
7
|
+
constructor(_injector, _m, sectionScope, sectionStore) {
|
8
|
+
this._injector = _injector;
|
9
|
+
this._m = _m;
|
10
|
+
this.sectionScope = sectionScope;
|
11
|
+
this.sectionStore = sectionStore;
|
12
|
+
this.componentRef = null;
|
13
|
+
}
|
14
|
+
set section(value) {
|
15
|
+
this._section = value;
|
16
|
+
this.sectionScope.section = value;
|
17
|
+
}
|
18
|
+
get section() {
|
19
|
+
return this._section;
|
20
|
+
}
|
21
|
+
ngOnInit() {
|
22
|
+
this.renderSection();
|
23
|
+
}
|
24
|
+
ngAfterViewInit() {
|
25
|
+
var _a, _b;
|
26
|
+
if (this.componentRef) {
|
27
|
+
this.sectionScope.templates.next((_b = (_a = this.componentRef.instance['templates']) === null || _a === void 0 ? void 0 : _a.toArray()) !== null && _b !== void 0 ? _b : []);
|
28
|
+
}
|
29
|
+
}
|
30
|
+
ngOnDestroy() {
|
31
|
+
if (this.componentRef) {
|
32
|
+
this.componentRef.destroy();
|
33
|
+
this.componentRef = null;
|
34
|
+
}
|
35
|
+
}
|
36
|
+
renderSection() {
|
37
|
+
var _a;
|
38
|
+
if (this.componentRef) {
|
39
|
+
this.componentRef.destroy();
|
40
|
+
this.componentRef = null;
|
41
|
+
}
|
42
|
+
const componentFactory = this.sectionStore.getComponentFactory(this._section);
|
43
|
+
if (!componentFactory) {
|
44
|
+
return;
|
45
|
+
}
|
46
|
+
this.componentRef = componentFactory.create(this._injector, [], null, this._m);
|
47
|
+
this.componentRef.location.nativeElement.setAttribute('sectionId', `${(_a = this._section.model) === null || _a === void 0 ? void 0 : _a.id}${this._section.label}`);
|
48
|
+
this.componentRef.instance['form'] = this.form;
|
49
|
+
this.componentRef.instance['section'] = this.section;
|
50
|
+
this.container.insert(this.componentRef.hostView);
|
51
|
+
}
|
52
|
+
}
|
53
|
+
ExecutionSectionRendererComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ExecutionSectionRendererComponent, deps: [{ token: i0.Injector }, { token: i0.NgModuleRef }, { token: i1.SectionScopeService }, { token: i2.SectionStoreService }], target: i0.ɵɵFactoryTarget.Component });
|
54
|
+
ExecutionSectionRendererComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: ExecutionSectionRendererComponent, selector: "section-renderer", inputs: { section: "section", form: "form" }, providers: [SectionScopeService], viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: "<ng-template #container></ng-template>", styles: [":host{display:contents}\n"] });
|
55
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ExecutionSectionRendererComponent, decorators: [{
|
56
|
+
type: Component,
|
57
|
+
args: [{
|
58
|
+
// eslint-disable-next-line @angular-eslint/component-selector
|
59
|
+
selector: 'section-renderer',
|
60
|
+
templateUrl: 'execution-section-renderer.component.html',
|
61
|
+
styleUrls: ['execution-section-renderer.component.scss'],
|
62
|
+
providers: [SectionScopeService],
|
63
|
+
}]
|
64
|
+
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.NgModuleRef }, { type: i1.SectionScopeService }, { type: i2.SectionStoreService }]; }, propDecorators: { section: [{
|
65
|
+
type: Input
|
66
|
+
}], form: [{
|
67
|
+
type: Input
|
68
|
+
}], container: [{
|
69
|
+
type: ViewChild,
|
70
|
+
args: ['container', { read: ViewContainerRef, static: true }]
|
71
|
+
}] } });
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhlY3V0aW9uLXNlY3Rpb24tcmVuZGVyZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvcnVudGltZS9leGVjdXRpb24vY29tcG9uZW50cy9leGVjdXRpb24tc2VjdGlvbi1yZW5kZXJlci9leGVjdXRpb24tc2VjdGlvbi1yZW5kZXJlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9ydW50aW1lL2V4ZWN1dGlvbi9jb21wb25lbnRzL2V4ZWN1dGlvbi1zZWN0aW9uLXJlbmRlcmVyL2V4ZWN1dGlvbi1zZWN0aW9uLXJlbmRlcmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBR1QsS0FBSyxFQUlMLFNBQVMsRUFDVCxnQkFBZ0IsR0FDakIsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUNBQXlDLENBQUM7Ozs7QUFVOUUsTUFBTSxPQUFPLGlDQUFpQztJQWdCNUMsWUFDVSxTQUFtQixFQUNuQixFQUFvQixFQUNwQixZQUFpQyxFQUNqQyxZQUFpQztRQUhqQyxjQUFTLEdBQVQsU0FBUyxDQUFVO1FBQ25CLE9BQUUsR0FBRixFQUFFLENBQWtCO1FBQ3BCLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtRQUNqQyxpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFNbkMsaUJBQVksR0FBNkIsSUFBSSxDQUFDO0lBTG5ELENBQUM7SUFsQkosSUFDSSxPQUFPLENBQUMsS0FBYztRQUN4QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDcEMsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBaUJELFFBQVE7UUFDTixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELGVBQWU7O1FBQ2IsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3JCLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFBLE1BQUEsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLDBDQUFFLE9BQU8sRUFBRSxtQ0FBSSxFQUFFLENBQUMsQ0FBQztTQUM1RjtJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3JCLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7U0FDMUI7SUFDSCxDQUFDO0lBRUQsYUFBYTs7UUFDWCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDckIsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztTQUMxQjtRQUVELE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDOUUsSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3JCLE9BQU87U0FDUjtRQUVELElBQUksQ0FBQyxZQUFZLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDL0UsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FDbkQsV0FBVyxFQUNYLEdBQUcsTUFBQSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssMENBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQ25ELENBQUM7UUFDRixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQy9DLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDckQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNwRCxDQUFDOzsrSEFoRVUsaUNBQWlDO21IQUFqQyxpQ0FBaUMseUZBRmpDLENBQUMsbUJBQW1CLENBQUMsNkdBeUJBLGdCQUFnQiwyQ0MvQ2xELHdDQUFzQzs0RkR3QnpCLGlDQUFpQztrQkFQN0MsU0FBUzttQkFBQztvQkFDVCw4REFBOEQ7b0JBQzlELFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLFdBQVcsRUFBRSwyQ0FBMkM7b0JBQ3hELFNBQVMsRUFBRSxDQUFDLDJDQUEyQyxDQUFDO29CQUN4RCxTQUFTLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztpQkFDakM7NkxBS0ssT0FBTztzQkFEVixLQUFLO2dCQVdOLElBQUk7c0JBREgsS0FBSztnQkFXTixTQUFTO3NCQURSLFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIENvbXBvbmVudFJlZixcbiAgSW5qZWN0b3IsXG4gIElucHV0LFxuICBOZ01vZHVsZVJlZixcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NvbnRhaW5lclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTZWN0aW9uIH0gZnJvbSAnQHZlbG9jZWFwcHMvY29yZSc7XG5pbXBvcnQgeyBTZWN0aW9uU2NvcGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvc2VjdGlvbi1zY29wZS5zZXJ2aWNlJztcbmltcG9ydCB7IFNlY3Rpb25TdG9yZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9zZWN0aW9uLXN0b3JlLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdzZWN0aW9uLXJlbmRlcmVyJyxcbiAgdGVtcGxhdGVVcmw6ICdleGVjdXRpb24tc2VjdGlvbi1yZW5kZXJlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWydleGVjdXRpb24tc2VjdGlvbi1yZW5kZXJlci5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtTZWN0aW9uU2NvcGVTZXJ2aWNlXSxcbn0pXG5leHBvcnQgY2xhc3MgRXhlY3V0aW9uU2VjdGlvblJlbmRlcmVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIF9zZWN0aW9uITogU2VjdGlvbjtcblxuICBASW5wdXQoKVxuICBzZXQgc2VjdGlvbih2YWx1ZTogU2VjdGlvbikge1xuICAgIHRoaXMuX3NlY3Rpb24gPSB2YWx1ZTtcbiAgICB0aGlzLnNlY3Rpb25TY29wZS5zZWN0aW9uID0gdmFsdWU7XG4gIH1cblxuICBnZXQgc2VjdGlvbigpOiBTZWN0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5fc2VjdGlvbjtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIGZvcm0hOiBGb3JtR3JvdXA7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIHByaXZhdGUgX206IE5nTW9kdWxlUmVmPGFueT4sXG4gICAgcHJpdmF0ZSBzZWN0aW9uU2NvcGU6IFNlY3Rpb25TY29wZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzZWN0aW9uU3RvcmU6IFNlY3Rpb25TdG9yZVNlcnZpY2UsXG4gICkge31cblxuICBAVmlld0NoaWxkKCdjb250YWluZXInLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYsIHN0YXRpYzogdHJ1ZSB9KVxuICBjb250YWluZXIhOiBWaWV3Q29udGFpbmVyUmVmO1xuXG4gIHByaXZhdGUgY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8YW55PiB8IG51bGwgPSBudWxsO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMucmVuZGVyU2VjdGlvbigpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIGlmICh0aGlzLmNvbXBvbmVudFJlZikge1xuICAgICAgdGhpcy5zZWN0aW9uU2NvcGUudGVtcGxhdGVzLm5leHQodGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2VbJ3RlbXBsYXRlcyddPy50b0FycmF5KCkgPz8gW10pO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNvbXBvbmVudFJlZikge1xuICAgICAgdGhpcy5jb21wb25lbnRSZWYuZGVzdHJveSgpO1xuICAgICAgdGhpcy5jb21wb25lbnRSZWYgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHJlbmRlclNlY3Rpb24oKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY29tcG9uZW50UmVmKSB7XG4gICAgICB0aGlzLmNvbXBvbmVudFJlZi5kZXN0cm95KCk7XG4gICAgICB0aGlzLmNvbXBvbmVudFJlZiA9IG51bGw7XG4gICAgfVxuXG4gICAgY29uc3QgY29tcG9uZW50RmFjdG9yeSA9IHRoaXMuc2VjdGlvblN0b3JlLmdldENvbXBvbmVudEZhY3RvcnkodGhpcy5fc2VjdGlvbik7XG4gICAgaWYgKCFjb21wb25lbnRGYWN0b3J5KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5jb21wb25lbnRSZWYgPSBjb21wb25lbnRGYWN0b3J5LmNyZWF0ZSh0aGlzLl9pbmplY3RvciwgW10sIG51bGwsIHRoaXMuX20pO1xuICAgIHRoaXMuY29tcG9uZW50UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQuc2V0QXR0cmlidXRlKFxuICAgICAgJ3NlY3Rpb25JZCcsXG4gICAgICBgJHt0aGlzLl9zZWN0aW9uLm1vZGVsPy5pZH0ke3RoaXMuX3NlY3Rpb24ubGFiZWx9YCxcbiAgICApO1xuICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlWydmb3JtJ10gPSB0aGlzLmZvcm07XG4gICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2VbJ3NlY3Rpb24nXSA9IHRoaXMuc2VjdGlvbjtcbiAgICB0aGlzLmNvbnRhaW5lci5pbnNlcnQodGhpcy5jb21wb25lbnRSZWYuaG9zdFZpZXcpO1xuICB9XG59XG4iLCI8bmctdGVtcGxhdGUgI2NvbnRhaW5lcj48L25nLXRlbXBsYXRlPiJdfQ==
|
@@ -0,0 +1,81 @@
|
|
1
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, TemplateRef, ViewChild, ViewContainerRef, } from '@angular/core';
|
2
|
+
import { loadRemoteModule } from '../../utils/federated.util';
|
3
|
+
import * as i0 from "@angular/core";
|
4
|
+
var IntegrationEvent;
|
5
|
+
(function (IntegrationEvent) {
|
6
|
+
IntegrationEvent["Init"] = "Init";
|
7
|
+
})(IntegrationEvent || (IntegrationEvent = {}));
|
8
|
+
export class FederatedComponent {
|
9
|
+
constructor(injector, compiler, appRef, renderer) {
|
10
|
+
this.injector = injector;
|
11
|
+
this.compiler = compiler;
|
12
|
+
this.appRef = appRef;
|
13
|
+
this.renderer = renderer;
|
14
|
+
this.integrationEvent = new EventEmitter();
|
15
|
+
this.moduleReady = false;
|
16
|
+
}
|
17
|
+
ngAfterViewInit() {
|
18
|
+
if (!this.remoteEntry || !this.remoteName || !this.exposedModule) {
|
19
|
+
return;
|
20
|
+
}
|
21
|
+
loadRemoteModule({
|
22
|
+
remoteEntry: this.remoteEntry,
|
23
|
+
remoteName: this.remoteName,
|
24
|
+
exposedModule: this.exposedModule,
|
25
|
+
}).then(federated => {
|
26
|
+
this.compiler.compileModuleAsync(federated[this.exposedModule]).then(moduleFactory => {
|
27
|
+
var _a;
|
28
|
+
const rootModuleRef = moduleFactory.create(this.injector);
|
29
|
+
const rootComponentFactory = rootModuleRef.componentFactoryResolver.resolveComponentFactory(federated[this.exposedModule].rootComponent);
|
30
|
+
const node = document.createElement('div');
|
31
|
+
const { instance, hostView } = rootComponentFactory.create(this.injector, [], node);
|
32
|
+
this.instance = instance;
|
33
|
+
this.instance.data = this.data;
|
34
|
+
this.instance.eventData = this.eventData;
|
35
|
+
this.instance.integrationEvent = this.integrationEvent;
|
36
|
+
this.renderer.appendChild((_a = this.moduleHostRef) === null || _a === void 0 ? void 0 : _a.nativeElement, node);
|
37
|
+
this.appRef.attachView(hostView);
|
38
|
+
});
|
39
|
+
});
|
40
|
+
}
|
41
|
+
ngOnChanges(changes) {
|
42
|
+
if (!this.instance) {
|
43
|
+
return;
|
44
|
+
}
|
45
|
+
this.instance.ngOnChanges(changes);
|
46
|
+
}
|
47
|
+
}
|
48
|
+
FederatedComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FederatedComponent, deps: [{ token: i0.Injector }, { token: i0.Compiler }, { token: i0.ApplicationRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
|
49
|
+
FederatedComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: FederatedComponent, selector: "veloce-host-federated", inputs: { remoteEntry: "remoteEntry", remoteName: "remoteName", exposedModule: "exposedModule", data: "data", eventData: "eventData" }, outputs: { integrationEvent: "integrationEvent" }, viewQueries: [{ propertyName: "federatedComponent", first: true, predicate: ["federatedComponent"], descendants: true, read: ViewContainerRef }, { propertyName: "foo", first: true, predicate: ["foo"], descendants: true, read: TemplateRef }, { propertyName: "moduleHostRef", first: true, predicate: ["moduleHost"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div #moduleHost></div>\n", styles: [":host{display:block}div{height:100%}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
50
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FederatedComponent, decorators: [{
|
51
|
+
type: Component,
|
52
|
+
args: [{
|
53
|
+
// eslint-disable-next-line @angular-eslint/component-selector
|
54
|
+
selector: 'veloce-host-federated',
|
55
|
+
templateUrl: './federated.component.html',
|
56
|
+
styleUrls: ['./federated.component.scss'],
|
57
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
58
|
+
}]
|
59
|
+
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.Compiler }, { type: i0.ApplicationRef }, { type: i0.Renderer2 }]; }, propDecorators: { federatedComponent: [{
|
60
|
+
type: ViewChild,
|
61
|
+
args: ['federatedComponent', { read: ViewContainerRef }]
|
62
|
+
}], foo: [{
|
63
|
+
type: ViewChild,
|
64
|
+
args: ['foo', { read: TemplateRef }]
|
65
|
+
}], moduleHostRef: [{
|
66
|
+
type: ViewChild,
|
67
|
+
args: ['moduleHost', { static: false }]
|
68
|
+
}], remoteEntry: [{
|
69
|
+
type: Input
|
70
|
+
}], remoteName: [{
|
71
|
+
type: Input
|
72
|
+
}], exposedModule: [{
|
73
|
+
type: Input
|
74
|
+
}], data: [{
|
75
|
+
type: Input
|
76
|
+
}], eventData: [{
|
77
|
+
type: Input
|
78
|
+
}], integrationEvent: [{
|
79
|
+
type: Output
|
80
|
+
}] } });
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVkZXJhdGVkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL3J1bnRpbWUvZXhlY3V0aW9uL2NvbXBvbmVudHMvZmVkZXJhdGVkL2ZlZGVyYXRlZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9ydW50aW1lL2V4ZWN1dGlvbi9jb21wb25lbnRzL2ZlZGVyYXRlZC9mZWRlcmF0ZWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLHVCQUF1QixFQUV2QixTQUFTLEVBRVQsWUFBWSxFQUVaLEtBQUssRUFFTCxNQUFNLEVBR04sV0FBVyxFQUNYLFNBQVMsRUFDVCxnQkFBZ0IsR0FDakIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBRTlELElBQUssZ0JBRUo7QUFGRCxXQUFLLGdCQUFnQjtJQUNuQixpQ0FBYSxDQUFBO0FBQ2YsQ0FBQyxFQUZJLGdCQUFnQixLQUFoQixnQkFBZ0IsUUFFcEI7QUF5QkQsTUFBTSxPQUFPLGtCQUFrQjtJQWdCN0IsWUFDVSxRQUFrQixFQUNsQixRQUFrQixFQUNsQixNQUFzQixFQUN0QixRQUFtQjtRQUhuQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFDdEIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQVZYLHFCQUFnQixHQUFHLElBQUksWUFBWSxFQUEyQixDQUFDO1FBRWpGLGdCQUFXLEdBQUcsS0FBSyxDQUFDO0lBU2pCLENBQUM7SUFFSixlQUFlO1FBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUNoRSxPQUFPO1NBQ1I7UUFFRCxnQkFBZ0IsQ0FBQztZQUNmLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM3QixVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7WUFDM0IsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhO1NBQ2xDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDbEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQXVCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRTs7Z0JBQzdGLE1BQU0sYUFBYSxHQUFHLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUMxRCxNQUFNLG9CQUFvQixHQUFHLGFBQWEsQ0FBQyx3QkFBd0IsQ0FBQyx1QkFBdUIsQ0FDekYsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUF1QixDQUFDLENBQUMsYUFBYSxDQUN0RCxDQUFDO2dCQUNGLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzNDLE1BQU0sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEdBQUcsb0JBQW9CLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUVwRixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQXVDLENBQUM7Z0JBQ3hELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7Z0JBQy9CLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7Z0JBQ3pDLElBQUksQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDO2dCQUV2RCxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxNQUFBLElBQUksQ0FBQyxhQUFhLDBDQUFFLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDbkUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDbkMsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDbEIsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDckMsQ0FBQzs7Z0hBMURVLGtCQUFrQjtvR0FBbEIsa0JBQWtCLDZWQUNZLGdCQUFnQixxRkFDL0IsV0FBVyxnSkNsRHZDLDJCQUNBOzRGRCtDYSxrQkFBa0I7a0JBUDlCLFNBQVM7bUJBQUM7b0JBQ1QsOERBQThEO29CQUM5RCxRQUFRLEVBQUUsdUJBQXVCO29CQUNqQyxXQUFXLEVBQUUsNEJBQTRCO29CQUN6QyxTQUFTLEVBQUUsQ0FBQyw0QkFBNEIsQ0FBQztvQkFDekMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEOzJLQUU4RCxrQkFBa0I7c0JBQTlFLFNBQVM7dUJBQUMsb0JBQW9CLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQ2xCLEdBQUc7c0JBQTNDLFNBQVM7dUJBQUMsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtnQkFDSyxhQUFhO3NCQUF4RCxTQUFTO3VCQUFDLFlBQVksRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBRWpDLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNZLGdCQUFnQjtzQkFBakMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIEFwcGxpY2F0aW9uUmVmLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcGlsZXIsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbmplY3RvcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT3V0cHV0LFxuICBSZW5kZXJlcjIsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTGluZUl0ZW0gfSBmcm9tICdAdmVsb2NlYXBwcy9jb3JlJztcbmltcG9ydCB7IGxvYWRSZW1vdGVNb2R1bGUgfSBmcm9tICcuLi8uLi91dGlscy9mZWRlcmF0ZWQudXRpbCc7XG5cbmVudW0gSW50ZWdyYXRpb25FdmVudCB7XG4gIEluaXQgPSAnSW5pdCcsXG59XG5cbmludGVyZmFjZSBJbnB1dERhdGEge1xuICByb290TGluZUl0ZW06IExpbmVJdGVtO1xufVxuXG5pbnRlcmZhY2UgSW50ZWdyYXRpb25FdmVudFBheWxvYWQge1xuICB0eXBlOiBJbnRlZ3JhdGlvbkV2ZW50O1xuICBwYXlsb2FkPzogdW5rbm93bjtcbn1cblxuaW50ZXJmYWNlIEluZWdyYXRpb25Db21wb25lbnRJbnN0YW5jZSBleHRlbmRzIE9uQ2hhbmdlcyB7XG4gIGludGVncmF0aW9uRXZlbnQ6IEV2ZW50RW1pdHRlcjxJbnRlZ3JhdGlvbkV2ZW50UGF5bG9hZD47XG4gIGludGVncmF0aW9uQXBwUmVmOiBBcHBsaWNhdGlvblJlZjtcbiAgZGF0YT86IElucHV0RGF0YTtcbiAgZXZlbnREYXRhPzogSW50ZWdyYXRpb25FdmVudFBheWxvYWQ7XG59XG5cbkBDb21wb25lbnQoe1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICBzZWxlY3RvcjogJ3ZlbG9jZS1ob3N0LWZlZGVyYXRlZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9mZWRlcmF0ZWQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9mZWRlcmF0ZWQuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEZlZGVyYXRlZENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcyB7XG4gIEBWaWV3Q2hpbGQoJ2ZlZGVyYXRlZENvbXBvbmVudCcsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiB9KSBmZWRlcmF0ZWRDb21wb25lbnQ/OiBWaWV3Q29udGFpbmVyUmVmO1xuICBAVmlld0NoaWxkKCdmb28nLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pIGZvbz86IFRlbXBsYXRlUmVmPHVua25vd24+O1xuICBAVmlld0NoaWxkKCdtb2R1bGVIb3N0JywgeyBzdGF0aWM6IGZhbHNlIH0pIG1vZHVsZUhvc3RSZWY/OiBFbGVtZW50UmVmO1xuXG4gIEBJbnB1dCgpIHJlbW90ZUVudHJ5Pzogc3RyaW5nO1xuICBASW5wdXQoKSByZW1vdGVOYW1lPzogc3RyaW5nO1xuICBASW5wdXQoKSBleHBvc2VkTW9kdWxlPzogc3RyaW5nO1xuICBASW5wdXQoKSBkYXRhPzogSW5wdXREYXRhO1xuICBASW5wdXQoKSBldmVudERhdGE/OiBJbnRlZ3JhdGlvbkV2ZW50UGF5bG9hZDtcbiAgQE91dHB1dCgpIHByaXZhdGUgaW50ZWdyYXRpb25FdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8SW50ZWdyYXRpb25FdmVudFBheWxvYWQ+KCk7XG5cbiAgbW9kdWxlUmVhZHkgPSBmYWxzZTtcblxuICBwcml2YXRlIGluc3RhbmNlPzogSW5lZ3JhdGlvbkNvbXBvbmVudEluc3RhbmNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIHByaXZhdGUgY29tcGlsZXI6IENvbXBpbGVyLFxuICAgIHByaXZhdGUgYXBwUmVmOiBBcHBsaWNhdGlvblJlZixcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICkge31cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnJlbW90ZUVudHJ5IHx8ICF0aGlzLnJlbW90ZU5hbWUgfHwgIXRoaXMuZXhwb3NlZE1vZHVsZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxvYWRSZW1vdGVNb2R1bGUoe1xuICAgICAgcmVtb3RlRW50cnk6IHRoaXMucmVtb3RlRW50cnksXG4gICAgICByZW1vdGVOYW1lOiB0aGlzLnJlbW90ZU5hbWUsXG4gICAgICBleHBvc2VkTW9kdWxlOiB0aGlzLmV4cG9zZWRNb2R1bGUsXG4gICAgfSkudGhlbihmZWRlcmF0ZWQgPT4ge1xuICAgICAgdGhpcy5jb21waWxlci5jb21waWxlTW9kdWxlQXN5bmMoZmVkZXJhdGVkW3RoaXMuZXhwb3NlZE1vZHVsZSBhcyBzdHJpbmddKS50aGVuKG1vZHVsZUZhY3RvcnkgPT4ge1xuICAgICAgICBjb25zdCByb290TW9kdWxlUmVmID0gbW9kdWxlRmFjdG9yeS5jcmVhdGUodGhpcy5pbmplY3Rvcik7XG4gICAgICAgIGNvbnN0IHJvb3RDb21wb25lbnRGYWN0b3J5ID0gcm9vdE1vZHVsZVJlZi5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoXG4gICAgICAgICAgZmVkZXJhdGVkW3RoaXMuZXhwb3NlZE1vZHVsZSBhcyBzdHJpbmddLnJvb3RDb21wb25lbnQsXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IG5vZGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgY29uc3QgeyBpbnN0YW5jZSwgaG9zdFZpZXcgfSA9IHJvb3RDb21wb25lbnRGYWN0b3J5LmNyZWF0ZSh0aGlzLmluamVjdG9yLCBbXSwgbm9kZSk7XG5cbiAgICAgICAgdGhpcy5pbnN0YW5jZSA9IGluc3RhbmNlIGFzIEluZWdyYXRpb25Db21wb25lbnRJbnN0YW5jZTtcbiAgICAgICAgdGhpcy5pbnN0YW5jZS5kYXRhID0gdGhpcy5kYXRhO1xuICAgICAgICB0aGlzLmluc3RhbmNlLmV2ZW50RGF0YSA9IHRoaXMuZXZlbnREYXRhO1xuICAgICAgICB0aGlzLmluc3RhbmNlLmludGVncmF0aW9uRXZlbnQgPSB0aGlzLmludGVncmF0aW9uRXZlbnQ7XG5cbiAgICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLm1vZHVsZUhvc3RSZWY/Lm5hdGl2ZUVsZW1lbnQsIG5vZGUpO1xuICAgICAgICB0aGlzLmFwcFJlZi5hdHRhY2hWaWV3KGhvc3RWaWV3KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmICghdGhpcy5pbnN0YW5jZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuaW5zdGFuY2UubmdPbkNoYW5nZXMoY2hhbmdlcyk7XG4gIH1cbn1cbiIsIjxkaXYgI21vZHVsZUhvc3Q+PC9kaXY+XG4iXX0=
|
@@ -0,0 +1,65 @@
|
|
1
|
+
import { Component } from '@angular/core';
|
2
|
+
import { VeloAttributeDirective } from '../../directives/velo-attribute.directive';
|
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 "../velo-multiselect/velo-multiselect.component";
|
7
|
+
import * as i4 from "@angular/forms";
|
8
|
+
import * as i5 from "@angular/common";
|
9
|
+
export class VeloAttributeComponent extends VeloAttributeDirective {
|
10
|
+
constructor(formScope, sectionScope) {
|
11
|
+
var _a, _b;
|
12
|
+
super(formScope, sectionScope);
|
13
|
+
this.controlName = this.section.id;
|
14
|
+
this.displayName = this.getDisplayName();
|
15
|
+
this.isMultiselect =
|
16
|
+
((_b = (_a = this.section.model) === null || _a === void 0 ? void 0 : _a.attributes.find(attr => attr.name === this.section.boundData.entity.name)) === null || _b === void 0 ? void 0 : _b.type) ===
|
17
|
+
'MULTIPLE';
|
18
|
+
}
|
19
|
+
getValueOptions(valueOptions) {
|
20
|
+
return this.isBooleanType(valueOptions) ? [0, 1] : valueOptions;
|
21
|
+
}
|
22
|
+
getValueText(valueOptions, value) {
|
23
|
+
if (this.isBooleanType(valueOptions)) {
|
24
|
+
return value === 0 ? 'False' : 'True';
|
25
|
+
}
|
26
|
+
return value;
|
27
|
+
}
|
28
|
+
handleMultiselectChange(value) {
|
29
|
+
var _a;
|
30
|
+
const formControl = this.form.get(this.controlName);
|
31
|
+
if (!formControl) {
|
32
|
+
return;
|
33
|
+
}
|
34
|
+
const currentValue = (_a = formControl.value) !== null && _a !== void 0 ? _a : [];
|
35
|
+
const newValue = currentValue.includes(value) ? currentValue.filter(v => v !== value) : [...currentValue, value];
|
36
|
+
formControl.setValue(newValue);
|
37
|
+
super.handleChange();
|
38
|
+
}
|
39
|
+
handleMultipleDropdownChange(event) {
|
40
|
+
const formControl = this.form.get(this.controlName);
|
41
|
+
if (!formControl) {
|
42
|
+
return;
|
43
|
+
}
|
44
|
+
formControl.setValue(event);
|
45
|
+
super.handleChange();
|
46
|
+
}
|
47
|
+
isBooleanType(value) {
|
48
|
+
return Array.isArray(value) && value.length === 1 && value[0].min === 0 && value[0].max === 1;
|
49
|
+
}
|
50
|
+
getDisplayName() {
|
51
|
+
var _a, _b;
|
52
|
+
return ((((_a = this.section.model) === null || _a === void 0 ? void 0 : _a.properties) && this.section.model.properties['displayName']) || ((_b = this.section.model) === null || _b === void 0 ? void 0 : _b.type) || '');
|
53
|
+
}
|
54
|
+
}
|
55
|
+
VeloAttributeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: VeloAttributeComponent, deps: [{ token: i1.FormScopeService }, { token: i2.SectionScopeService }], target: i0.ɵɵFactoryTarget.Component });
|
56
|
+
VeloAttributeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: VeloAttributeComponent, selector: "velo-attribute", usesInheritance: true, ngImport: i0, template: "<div class=\"form-group div-inline\" [formGroup]=\"form\">\n <div class=\"input-form-input div-inline\" [class.input-form-input--required]=\"section.required\">\n <label>\n <ng-container *ngIf=\"section.required\"> * </ng-container>\n\n {{ section.label }}\n </label>\n <div [ngSwitch]=\"section.controlType\" class=\"form-control-wrapper\">\n <div *ngSwitchCase=\"'DROPDOWN'\">\n <select\n [id]=\"controlName\"\n [formControlName]=\"controlName\"\n class=\"form-control\"\n (change)=\"handleChange()\"\n [attr.disabled]=\"section.readOnly ? true : null\"\n >\n <option\n *ngFor=\"let valueOption of getValueOptions(section.sectionValue?.valueOptions) || []\"\n [ngValue]=\"valueOption\"\n >\n {{ getValueText(section.sectionValue?.valueOptions, valueOption) }}\n </option>\n </select>\n </div>\n\n <div *ngSwitchCase=\"'MULTISELECT'\">\n <velo-multiselect\n [id]=\"controlName\"\n [formControlName]=\"controlName\"\n [options]=\"getValueOptions(section.sectionValue?.valueOptions)\"\n [attr.disabled]=\"section.readOnly ? true : null\"\n (selectionChange)=\"handleMultipleDropdownChange($event)\"\n ></velo-multiselect>\n </div>\n\n <div *ngSwitchCase=\"'RADIO'\">\n <div\n *ngFor=\"let valueOption of getValueOptions(section.sectionValue?.valueOptions)\"\n class=\"radio-button\"\n [attr.disabled]=\"section.readOnly ? true : null\"\n >\n <label>\n <input\n type=\"radio\"\n [id]=\"controlName\"\n [formControlName]=\"controlName\"\n [value]=\"valueOption\"\n (change)=\"handleChange()\"\n [attr.disabled]=\"section.readOnly ? true : null\"\n />\n <i class=\"input-helper\"></i>\n {{ getValueText(section.sectionValue?.valueOptions, valueOption) }}\n </label>\n </div>\n </div>\n\n <div *ngSwitchCase=\"'CHECKBOX'\">\n <ng-container *ngIf=\"!isMultiselect; else multiselect\">\n <div class=\"checkbox-select\" [attr.disabled]=\"section.readOnly ? true : null\">\n <label>\n <input\n type=\"checkbox\"\n [id]=\"controlName\"\n [formControlName]=\"controlName\"\n [checked]=\"section.sectionValue?.value === 1\"\n (change)=\"handleChange()\"\n [attr.disabled]=\"section.readOnly ? true : null\"\n />\n\n <i class=\"input-helper\"></i>\n \n </label>\n </div>\n </ng-container>\n\n <ng-template #multiselect>\n <div\n *ngFor=\"let valueOption of getValueOptions(section.sectionValue?.valueOptions)\"\n class=\"checkbox-select\"\n [attr.disabled]=\"section.readOnly ? true : null\"\n >\n <label>\n <input\n type=\"checkbox\"\n [id]=\"controlName\"\n [checked]=\"section.sectionValue?.value.includes(valueOption)\"\n (change)=\"handleMultiselectChange(valueOption)\"\n [value]=\"valueOption\"\n [attr.disabled]=\"section.readOnly ? true : null\"\n />\n\n <i class=\"input-helper\"></i>\n {{ valueOption }}\n </label>\n </div>\n </ng-template>\n </div>\n\n <div *ngSwitchCase=\"'DATE'\">\n <input\n type=\"text\"\n class=\"form-control\"\n [id]=\"controlName\"\n [formControlName]=\"controlName\"\n [attr.disabled]=\"section.readOnly ? true : null\"\n (bsValueChange)=\"handleChangDate($event)\"\n bsDatepicker\n />\n </div>\n\n <div *ngSwitchDefault>\n <input\n type=\"text\"\n class=\"form-control\"\n [id]=\"controlName\"\n [formControlName]=\"controlName\"\n (blur)=\"form.controls[controlName].dirty && handleChange()\"\n [attr.disabled]=\"section.readOnly ? true : null\"\n />\n </div>\n\n <!-- Add validation messages -->\n <!-- <div validation-messages [form]=\"form\" [controlId]=\"controlName\" [showForPristine]=\"true\"></div> -->\n </div>\n </div>\n</div>\n", components: [{ type: i3.MultiselectComponent, selector: "velo-multiselect", inputs: ["options"], outputs: ["selectionChange"] }], directives: [{ type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i5.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i4.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i4.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i4.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { type: i4.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: i4.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { type: i5.NgSwitchDefault, selector: "[ngSwitchDefault]" }] });
|
57
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: VeloAttributeComponent, decorators: [{
|
58
|
+
type: Component,
|
59
|
+
args: [{
|
60
|
+
// eslint-disable-next-line @angular-eslint/component-selector
|
61
|
+
selector: 'velo-attribute',
|
62
|
+
templateUrl: 'velo-attribute.component.html',
|
63
|
+
}]
|
64
|
+
}], ctorParameters: function () { return [{ type: i1.FormScopeService }, { type: i2.SectionScopeService }]; } });
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVsby1hdHRyaWJ1dGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvcnVudGltZS9leGVjdXRpb24vY29tcG9uZW50cy92ZWxvLWF0dHJpYnV0ZS92ZWxvLWF0dHJpYnV0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9ydW50aW1lL2V4ZWN1dGlvbi9jb21wb25lbnRzL3ZlbG8tYXR0cmlidXRlL3ZlbG8tYXR0cmlidXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFHbEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7Ozs7Ozs7QUFPbkYsTUFBTSxPQUFPLHNCQUF1QixTQUFRLHNCQUFzQjtJQUtoRSxZQUFZLFNBQTJCLEVBQUUsWUFBaUM7O1FBQ3hFLEtBQUssQ0FBQyxTQUFTLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFFL0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNuQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN6QyxJQUFJLENBQUMsYUFBYTtZQUNoQixDQUFBLE1BQUEsTUFBQSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssMENBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQywwQ0FBRSxJQUFJO2dCQUNuRyxVQUFVLENBQUM7SUFDZixDQUFDO0lBRUQsZUFBZSxDQUFDLFlBQXFCO1FBQ25DLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFFLFlBQXlCLENBQUM7SUFDaEYsQ0FBQztJQUVELFlBQVksQ0FBQyxZQUFxQixFQUFFLEtBQXNCO1FBQ3hELElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsRUFBRTtZQUNwQyxPQUFPLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO1NBQ3ZDO1FBQ0QsT0FBTyxLQUFlLENBQUM7SUFDekIsQ0FBQztJQUVELHVCQUF1QixDQUFDLEtBQXNCOztRQUM1QyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFcEQsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNoQixPQUFPO1NBQ1I7UUFFRCxNQUFNLFlBQVksR0FBd0IsTUFBQSxXQUFXLENBQUMsS0FBSyxtQ0FBSSxFQUFFLENBQUM7UUFDbEUsTUFBTSxRQUFRLEdBQUcsWUFBWSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLFlBQVksRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNqSCxXQUFXLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRS9CLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsNEJBQTRCLENBQUMsS0FBVTtRQUNyQyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFcEQsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNoQixPQUFPO1NBQ1I7UUFFRCxXQUFXLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVCLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRU8sYUFBYSxDQUFDLEtBQVU7UUFDOUIsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDO0lBQ2hHLENBQUM7SUFFTyxjQUFjOztRQUNwQixPQUFPLENBQ0wsQ0FBQyxDQUFBLE1BQUEsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLDBDQUFFLFVBQVUsS0FBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUMsS0FBSSxNQUFBLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSywwQ0FBRSxJQUFJLENBQUEsSUFBSSxFQUFFLENBQ25ILENBQUM7SUFDSixDQUFDOztvSEEzRFUsc0JBQXNCO3dHQUF0QixzQkFBc0IsNkVDVm5DLHU2SUE4SEE7NEZEcEhhLHNCQUFzQjtrQkFMbEMsU0FBUzttQkFBQztvQkFDVCw4REFBOEQ7b0JBQzlELFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLFdBQVcsRUFBRSwrQkFBK0I7aUJBQzdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1TY29wZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9mb3JtLXNjb3BlLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2VjdGlvblNjb3BlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3NlY3Rpb24tc2NvcGUuc2VydmljZSc7XG5pbXBvcnQgeyBWZWxvQXR0cmlidXRlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy92ZWxvLWF0dHJpYnV0ZS5kaXJlY3RpdmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICd2ZWxvLWF0dHJpYnV0ZScsXG4gIHRlbXBsYXRlVXJsOiAndmVsby1hdHRyaWJ1dGUuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBWZWxvQXR0cmlidXRlQ29tcG9uZW50IGV4dGVuZHMgVmVsb0F0dHJpYnV0ZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGNvbnRyb2xOYW1lOiBzdHJpbmc7XG4gIGRpc3BsYXlOYW1lOiBzdHJpbmc7XG4gIGlzTXVsdGlzZWxlY3Q6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IoZm9ybVNjb3BlOiBGb3JtU2NvcGVTZXJ2aWNlLCBzZWN0aW9uU2NvcGU6IFNlY3Rpb25TY29wZVNlcnZpY2UpIHtcbiAgICBzdXBlcihmb3JtU2NvcGUsIHNlY3Rpb25TY29wZSk7XG5cbiAgICB0aGlzLmNvbnRyb2xOYW1lID0gdGhpcy5zZWN0aW9uLmlkO1xuICAgIHRoaXMuZGlzcGxheU5hbWUgPSB0aGlzLmdldERpc3BsYXlOYW1lKCk7XG4gICAgdGhpcy5pc011bHRpc2VsZWN0ID1cbiAgICAgIHRoaXMuc2VjdGlvbi5tb2RlbD8uYXR0cmlidXRlcy5maW5kKGF0dHIgPT4gYXR0ci5uYW1lID09PSB0aGlzLnNlY3Rpb24uYm91bmREYXRhLmVudGl0eS5uYW1lKT8udHlwZSA9PT1cbiAgICAgICdNVUxUSVBMRSc7XG4gIH1cblxuICBnZXRWYWx1ZU9wdGlvbnModmFsdWVPcHRpb25zOiB1bmtub3duKTogKHN0cmluZyB8IG51bWJlcilbXSB7XG4gICAgcmV0dXJuIHRoaXMuaXNCb29sZWFuVHlwZSh2YWx1ZU9wdGlvbnMpID8gWzAsIDFdIDogKHZhbHVlT3B0aW9ucyBhcyBzdHJpbmdbXSk7XG4gIH1cblxuICBnZXRWYWx1ZVRleHQodmFsdWVPcHRpb25zOiB1bmtub3duLCB2YWx1ZTogc3RyaW5nIHwgbnVtYmVyKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5pc0Jvb2xlYW5UeXBlKHZhbHVlT3B0aW9ucykpIHtcbiAgICAgIHJldHVybiB2YWx1ZSA9PT0gMCA/ICdGYWxzZScgOiAnVHJ1ZSc7XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZSBhcyBzdHJpbmc7XG4gIH1cblxuICBoYW5kbGVNdWx0aXNlbGVjdENoYW5nZSh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyKSB7XG4gICAgY29uc3QgZm9ybUNvbnRyb2wgPSB0aGlzLmZvcm0uZ2V0KHRoaXMuY29udHJvbE5hbWUpO1xuXG4gICAgaWYgKCFmb3JtQ29udHJvbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGN1cnJlbnRWYWx1ZTogKHN0cmluZyB8IG51bWJlcilbXSA9IGZvcm1Db250cm9sLnZhbHVlID8/IFtdO1xuICAgIGNvbnN0IG5ld1ZhbHVlID0gY3VycmVudFZhbHVlLmluY2x1ZGVzKHZhbHVlKSA/IGN1cnJlbnRWYWx1ZS5maWx0ZXIodiA9PiB2ICE9PSB2YWx1ZSkgOiBbLi4uY3VycmVudFZhbHVlLCB2YWx1ZV07XG4gICAgZm9ybUNvbnRyb2wuc2V0VmFsdWUobmV3VmFsdWUpO1xuXG4gICAgc3VwZXIuaGFuZGxlQ2hhbmdlKCk7XG4gIH1cblxuICBoYW5kbGVNdWx0aXBsZURyb3Bkb3duQ2hhbmdlKGV2ZW50OiBhbnkpIHtcbiAgICBjb25zdCBmb3JtQ29udHJvbCA9IHRoaXMuZm9ybS5nZXQodGhpcy5jb250cm9sTmFtZSk7XG5cbiAgICBpZiAoIWZvcm1Db250cm9sKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZm9ybUNvbnRyb2wuc2V0VmFsdWUoZXZlbnQpO1xuICAgIHN1cGVyLmhhbmRsZUNoYW5nZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0Jvb2xlYW5UeXBlKHZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgdmFsdWUubGVuZ3RoID09PSAxICYmIHZhbHVlWzBdLm1pbiA9PT0gMCAmJiB2YWx1ZVswXS5tYXggPT09IDE7XG4gIH1cblxuICBwcml2YXRlIGdldERpc3BsYXlOYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIChcbiAgICAgICh0aGlzLnNlY3Rpb24ubW9kZWw/LnByb3BlcnRpZXMgJiYgdGhpcy5zZWN0aW9uLm1vZGVsLnByb3BlcnRpZXNbJ2Rpc3BsYXlOYW1lJ10pIHx8IHRoaXMuc2VjdGlvbi5tb2RlbD8udHlwZSB8fCAnJ1xuICAgICk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwIGRpdi1pbmxpbmVcIiBbZm9ybUdyb3VwXT1cImZvcm1cIj5cbiAgPGRpdiBjbGFzcz1cImlucHV0LWZvcm0taW5wdXQgZGl2LWlubGluZVwiIFtjbGFzcy5pbnB1dC1mb3JtLWlucHV0LS1yZXF1aXJlZF09XCJzZWN0aW9uLnJlcXVpcmVkXCI+XG4gICAgPGxhYmVsPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlY3Rpb24ucmVxdWlyZWRcIj4gKiA8L25nLWNvbnRhaW5lcj5cblxuICAgICAge3sgc2VjdGlvbi5sYWJlbCB9fVxuICAgIDwvbGFiZWw+XG4gICAgPGRpdiBbbmdTd2l0Y2hdPVwic2VjdGlvbi5jb250cm9sVHlwZVwiIGNsYXNzPVwiZm9ybS1jb250cm9sLXdyYXBwZXJcIj5cbiAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidEUk9QRE9XTidcIj5cbiAgICAgICAgPHNlbGVjdFxuICAgICAgICAgIFtpZF09XCJjb250cm9sTmFtZVwiXG4gICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJjb250cm9sTmFtZVwiXG4gICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgIChjaGFuZ2UpPVwiaGFuZGxlQ2hhbmdlKClcIlxuICAgICAgICAgIFthdHRyLmRpc2FibGVkXT1cInNlY3Rpb24ucmVhZE9ubHkgPyB0cnVlIDogbnVsbFwiXG4gICAgICAgID5cbiAgICAgICAgICA8b3B0aW9uXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgdmFsdWVPcHRpb24gb2YgZ2V0VmFsdWVPcHRpb25zKHNlY3Rpb24uc2VjdGlvblZhbHVlPy52YWx1ZU9wdGlvbnMpIHx8IFtdXCJcbiAgICAgICAgICAgIFtuZ1ZhbHVlXT1cInZhbHVlT3B0aW9uXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyBnZXRWYWx1ZVRleHQoc2VjdGlvbi5zZWN0aW9uVmFsdWU/LnZhbHVlT3B0aW9ucywgdmFsdWVPcHRpb24pIH19XG4gICAgICAgICAgPC9vcHRpb24+XG4gICAgICAgIDwvc2VsZWN0PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidNVUxUSVNFTEVDVCdcIj5cbiAgICAgICAgPHZlbG8tbXVsdGlzZWxlY3RcbiAgICAgICAgICBbaWRdPVwiY29udHJvbE5hbWVcIlxuICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiY29udHJvbE5hbWVcIlxuICAgICAgICAgIFtvcHRpb25zXT1cImdldFZhbHVlT3B0aW9ucyhzZWN0aW9uLnNlY3Rpb25WYWx1ZT8udmFsdWVPcHRpb25zKVwiXG4gICAgICAgICAgW2F0dHIuZGlzYWJsZWRdPVwic2VjdGlvbi5yZWFkT25seSA/IHRydWUgOiBudWxsXCJcbiAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cImhhbmRsZU11bHRpcGxlRHJvcGRvd25DaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgID48L3ZlbG8tbXVsdGlzZWxlY3Q+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ1JBRElPJ1wiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgKm5nRm9yPVwibGV0IHZhbHVlT3B0aW9uIG9mIGdldFZhbHVlT3B0aW9ucyhzZWN0aW9uLnNlY3Rpb25WYWx1ZT8udmFsdWVPcHRpb25zKVwiXG4gICAgICAgICAgY2xhc3M9XCJyYWRpby1idXR0b25cIlxuICAgICAgICAgIFthdHRyLmRpc2FibGVkXT1cInNlY3Rpb24ucmVhZE9ubHkgPyB0cnVlIDogbnVsbFwiXG4gICAgICAgID5cbiAgICAgICAgICA8bGFiZWw+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgdHlwZT1cInJhZGlvXCJcbiAgICAgICAgICAgICAgW2lkXT1cImNvbnRyb2xOYW1lXCJcbiAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJjb250cm9sTmFtZVwiXG4gICAgICAgICAgICAgIFt2YWx1ZV09XCJ2YWx1ZU9wdGlvblwiXG4gICAgICAgICAgICAgIChjaGFuZ2UpPVwiaGFuZGxlQ2hhbmdlKClcIlxuICAgICAgICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJzZWN0aW9uLnJlYWRPbmx5ID8gdHJ1ZSA6IG51bGxcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwiaW5wdXQtaGVscGVyXCI+PC9pPlxuICAgICAgICAgICAge3sgZ2V0VmFsdWVUZXh0KHNlY3Rpb24uc2VjdGlvblZhbHVlPy52YWx1ZU9wdGlvbnMsIHZhbHVlT3B0aW9uKSB9fVxuICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidDSEVDS0JPWCdcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc011bHRpc2VsZWN0OyBlbHNlIG11bHRpc2VsZWN0XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrYm94LXNlbGVjdFwiIFthdHRyLmRpc2FibGVkXT1cInNlY3Rpb24ucmVhZE9ubHkgPyB0cnVlIDogbnVsbFwiPlxuICAgICAgICAgICAgPGxhYmVsPlxuICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgICAgIFtpZF09XCJjb250cm9sTmFtZVwiXG4gICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJjb250cm9sTmFtZVwiXG4gICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwic2VjdGlvbi5zZWN0aW9uVmFsdWU/LnZhbHVlID09PSAxXCJcbiAgICAgICAgICAgICAgICAoY2hhbmdlKT1cImhhbmRsZUNoYW5nZSgpXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJzZWN0aW9uLnJlYWRPbmx5ID8gdHJ1ZSA6IG51bGxcIlxuICAgICAgICAgICAgICAvPlxuXG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwiaW5wdXQtaGVscGVyXCI+PC9pPlxuICAgICAgICAgICAgICAmbmJzcDtcbiAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjbXVsdGlzZWxlY3Q+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IHZhbHVlT3B0aW9uIG9mIGdldFZhbHVlT3B0aW9ucyhzZWN0aW9uLnNlY3Rpb25WYWx1ZT8udmFsdWVPcHRpb25zKVwiXG4gICAgICAgICAgICBjbGFzcz1cImNoZWNrYm94LXNlbGVjdFwiXG4gICAgICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJzZWN0aW9uLnJlYWRPbmx5ID8gdHJ1ZSA6IG51bGxcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxsYWJlbD5cbiAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgICAgICBbaWRdPVwiY29udHJvbE5hbWVcIlxuICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cInNlY3Rpb24uc2VjdGlvblZhbHVlPy52YWx1ZS5pbmNsdWRlcyh2YWx1ZU9wdGlvbilcIlxuICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiaGFuZGxlTXVsdGlzZWxlY3RDaGFuZ2UodmFsdWVPcHRpb24pXCJcbiAgICAgICAgICAgICAgICBbdmFsdWVdPVwidmFsdWVPcHRpb25cIlxuICAgICAgICAgICAgICAgIFthdHRyLmRpc2FibGVkXT1cInNlY3Rpb24ucmVhZE9ubHkgPyB0cnVlIDogbnVsbFwiXG4gICAgICAgICAgICAgIC8+XG5cbiAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpbnB1dC1oZWxwZXJcIj48L2k+XG4gICAgICAgICAgICAgIHt7IHZhbHVlT3B0aW9uIH19XG4gICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidEQVRFJ1wiPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgIFtpZF09XCJjb250cm9sTmFtZVwiXG4gICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJjb250cm9sTmFtZVwiXG4gICAgICAgICAgW2F0dHIuZGlzYWJsZWRdPVwic2VjdGlvbi5yZWFkT25seSA/IHRydWUgOiBudWxsXCJcbiAgICAgICAgICAoYnNWYWx1ZUNoYW5nZSk9XCJoYW5kbGVDaGFuZ0RhdGUoJGV2ZW50KVwiXG4gICAgICAgICAgYnNEYXRlcGlja2VyXG4gICAgICAgIC8+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiAqbmdTd2l0Y2hEZWZhdWx0PlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgIFtpZF09XCJjb250cm9sTmFtZVwiXG4gICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJjb250cm9sTmFtZVwiXG4gICAgICAgICAgKGJsdXIpPVwiZm9ybS5jb250cm9sc1tjb250cm9sTmFtZV0uZGlydHkgJiYgaGFuZGxlQ2hhbmdlKClcIlxuICAgICAgICAgIFthdHRyLmRpc2FibGVkXT1cInNlY3Rpb24ucmVhZE9ubHkgPyB0cnVlIDogbnVsbFwiXG4gICAgICAgIC8+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLSBBZGQgdmFsaWRhdGlvbiBtZXNzYWdlcyAtLT5cbiAgICAgIDwhLS0gPGRpdiB2YWxpZGF0aW9uLW1lc3NhZ2VzIFtmb3JtXT1cImZvcm1cIiBbY29udHJvbElkXT1cImNvbnRyb2xOYW1lXCIgW3Nob3dGb3JQcmlzdGluZV09XCJ0cnVlXCI+PC9kaXY+IC0tPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|