@veloceapps/sdk 0.0.0-watch
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -0
- package/cms/cms.actions.d.ts +12 -0
- package/cms/cms.default.d.ts +5 -0
- package/cms/cms.elements.d.ts +4 -0
- package/cms/components/element-children/element-children.component.d.ts +10 -0
- package/cms/components/element-children/element-children.module.d.ts +8 -0
- package/cms/components/element-renderer/element-renderer.component.d.ts +35 -0
- package/cms/components/element-renderer/element-renderer.module.d.ts +7 -0
- package/cms/components/element.component.d.ts +13 -0
- package/cms/components/index.d.ts +1 -0
- package/cms/components/plugin.component.d.ts +15 -0
- package/cms/components/preview/index.d.ts +2 -0
- package/cms/components/preview/preview.component.d.ts +34 -0
- package/cms/components/preview/preview.module.d.ts +11 -0
- package/cms/decorators/element.decorator.d.ts +2 -0
- package/cms/decorators/index.d.ts +1 -0
- package/cms/directives/custom-template.directive.d.ts +12 -0
- package/cms/engine/models/entity.d.ts +11 -0
- package/cms/engine/models/plugin.d.ts +5 -0
- package/cms/index.d.ts +11 -0
- package/cms/injection-tokens.d.ts +11 -0
- package/cms/launcher.module.d.ts +10 -0
- package/cms/modules/federated/default-options.d.ts +4 -0
- package/cms/modules/federated/export.d.ts +1 -0
- package/cms/modules/federated/federated.component.d.ts +26 -0
- package/cms/modules/federated/federated.module.d.ts +9 -0
- package/cms/modules/federated/federated.types.d.ts +30 -0
- package/cms/modules/federated/federated.utils.d.ts +1 -0
- package/cms/package.json +10 -0
- package/cms/plugins/configuration.plugin.d.ts +23 -0
- package/cms/plugins/io.plugin.d.ts +9 -0
- package/cms/plugins/script.plugin.d.ts +13 -0
- package/cms/services/dynamic-module.service.d.ts +15 -0
- package/cms/services/element-context.service.d.ts +8 -0
- package/cms/services/index.d.ts +3 -0
- package/cms/services/integration.state.d.ts +17 -0
- package/cms/services/io-provider.service.d.ts +15 -0
- package/cms/services/launcher.service.d.ts +18 -0
- package/cms/services/templates.service.d.ts +9 -0
- package/cms/types/common.types.d.ts +103 -0
- package/cms/types/configuration.types.d.ts +17 -0
- package/cms/types/elements.types.d.ts +2 -0
- package/cms/types/index.d.ts +5 -0
- package/cms/types/integration.types.d.ts +4 -0
- package/cms/types/path.types.d.ts +11 -0
- package/cms/utils/element.utils.d.ts +15 -0
- package/cms/utils/elements-resolver.d.ts +20 -0
- package/cms/utils/index.d.ts +3 -0
- package/cms/utils/path.utils.d.ts +5 -0
- package/cms/veloce-sdk-cms.d.ts +5 -0
- package/cms/vendor-map.d.ts +689 -0
- package/core/core.module.d.ts +8 -0
- package/core/index.d.ts +6 -0
- package/core/modules/configuration/configuration.module.d.ts +7 -0
- package/core/modules/configuration/helpers.d.ts +3 -0
- package/core/modules/configuration/index.d.ts +4 -0
- package/core/modules/configuration/services/configuration-runtime.service.d.ts +28 -0
- package/core/modules/configuration/services/configuration.service.d.ts +40 -0
- package/core/modules/configuration/services/runtime-context.service.d.ts +14 -0
- package/core/modules/configuration/types/configuration-runtime.types.d.ts +6 -0
- package/core/modules/flow-configuration/flow-configuration.module.d.ts +6 -0
- package/core/modules/flow-configuration/index.d.ts +4 -0
- package/core/modules/flow-configuration/services/flow-configuration.service.d.ts +37 -0
- package/core/modules/flow-configuration/services/flow-update.service.d.ts +12 -0
- package/core/modules/flow-configuration/types/update.types.d.ts +12 -0
- package/core/modules/index.d.ts +2 -0
- package/core/package.json +10 -0
- package/core/services/context.service.d.ts +17 -0
- package/core/services/index.d.ts +3 -0
- package/core/services/product-images.service.d.ts +12 -0
- package/core/services/quote-draft.service.d.ts +31 -0
- package/core/types/index.d.ts +3 -0
- package/core/types/quote-states.types.d.ts +6 -0
- package/core/types/runtime.types.d.ts +31 -0
- package/core/types/ui-definition.types.d.ts +26 -0
- package/core/utils/index.d.ts +2 -0
- package/core/utils/line-item.utils.d.ts +26 -0
- package/core/utils/line-item.worker.d.ts +12 -0
- package/core/veloce-sdk-core.d.ts +5 -0
- package/esm2015/cms/cms.actions.js +17 -0
- package/esm2015/cms/cms.default.js +6 -0
- package/esm2015/cms/cms.elements.js +29 -0
- package/esm2015/cms/components/element-children/element-children.component.js +23 -0
- package/esm2015/cms/components/element-children/element-children.module.js +18 -0
- package/esm2015/cms/components/element-renderer/element-renderer.component.js +143 -0
- package/esm2015/cms/components/element-renderer/element-renderer.module.js +16 -0
- package/esm2015/cms/components/element.component.js +31 -0
- package/esm2015/cms/components/index.js +2 -0
- package/esm2015/cms/components/plugin.component.js +16 -0
- package/esm2015/cms/components/preview/index.js +3 -0
- package/esm2015/cms/components/preview/preview.component.js +105 -0
- package/esm2015/cms/components/preview/preview.module.js +23 -0
- package/esm2015/cms/decorators/element.decorator.js +6 -0
- package/esm2015/cms/decorators/index.js +2 -0
- package/esm2015/cms/directives/custom-template.directive.js +25 -0
- package/esm2015/cms/engine/models/entity.js +18 -0
- package/esm2015/cms/engine/models/plugin.js +6 -0
- package/esm2015/cms/index.js +11 -0
- package/esm2015/cms/injection-tokens.js +8 -0
- package/esm2015/cms/launcher.module.js +23 -0
- package/esm2015/cms/modules/federated/default-options.js +5 -0
- package/esm2015/cms/modules/federated/export.js +2 -0
- package/esm2015/cms/modules/federated/federated.component.js +82 -0
- package/esm2015/cms/modules/federated/federated.module.js +19 -0
- package/esm2015/cms/modules/federated/federated.types.js +2 -0
- package/esm2015/cms/modules/federated/federated.utils.js +37 -0
- package/esm2015/cms/plugins/configuration.plugin.js +94 -0
- package/esm2015/cms/plugins/io.plugin.js +37 -0
- package/esm2015/cms/plugins/script.plugin.js +66 -0
- package/esm2015/cms/services/dynamic-module.service.js +33 -0
- package/esm2015/cms/services/element-context.service.js +10 -0
- package/esm2015/cms/services/index.js +4 -0
- package/esm2015/cms/services/integration.state.js +40 -0
- package/esm2015/cms/services/io-provider.service.js +51 -0
- package/esm2015/cms/services/launcher.service.js +57 -0
- package/esm2015/cms/services/templates.service.js +19 -0
- package/esm2015/cms/types/common.types.js +2 -0
- package/esm2015/cms/types/configuration.types.js +2 -0
- package/esm2015/cms/types/elements.types.js +2 -0
- package/esm2015/cms/types/index.js +6 -0
- package/esm2015/cms/types/integration.types.js +2 -0
- package/esm2015/cms/types/path.types.js +2 -0
- package/esm2015/cms/utils/element.utils.js +149 -0
- package/esm2015/cms/utils/elements-resolver.js +108 -0
- package/esm2015/cms/utils/index.js +4 -0
- package/esm2015/cms/utils/path.utils.js +67 -0
- package/esm2015/cms/veloce-sdk-cms.js +5 -0
- package/esm2015/cms/vendor-map.js +35 -0
- package/esm2015/core/core.module.js +18 -0
- package/esm2015/core/index.js +7 -0
- package/esm2015/core/modules/configuration/configuration.module.js +34 -0
- package/esm2015/core/modules/configuration/helpers.js +10 -0
- package/esm2015/core/modules/configuration/index.js +5 -0
- package/esm2015/core/modules/configuration/services/configuration-runtime.service.js +90 -0
- package/esm2015/core/modules/configuration/services/configuration.service.js +153 -0
- package/esm2015/core/modules/configuration/services/runtime-context.service.js +61 -0
- package/esm2015/core/modules/configuration/types/configuration-runtime.types.js +2 -0
- package/esm2015/core/modules/flow-configuration/flow-configuration.module.js +18 -0
- package/esm2015/core/modules/flow-configuration/index.js +5 -0
- package/esm2015/core/modules/flow-configuration/services/flow-configuration.service.js +90 -0
- package/esm2015/core/modules/flow-configuration/services/flow-update.service.js +114 -0
- package/esm2015/core/modules/flow-configuration/types/update.types.js +2 -0
- package/esm2015/core/modules/index.js +3 -0
- package/esm2015/core/services/context.service.js +44 -0
- package/esm2015/core/services/index.js +4 -0
- package/esm2015/core/services/product-images.service.js +30 -0
- package/esm2015/core/services/quote-draft.service.js +88 -0
- package/esm2015/core/types/index.js +4 -0
- package/esm2015/core/types/quote-states.types.js +2 -0
- package/esm2015/core/types/runtime.types.js +16 -0
- package/esm2015/core/types/ui-definition.types.js +2 -0
- package/esm2015/core/utils/index.js +3 -0
- package/esm2015/core/utils/line-item.utils.js +98 -0
- package/esm2015/core/utils/line-item.worker.js +19 -0
- package/esm2015/core/veloce-sdk-core.js +5 -0
- package/esm2015/index.js +2 -0
- package/esm2015/runtime/components/component-preview/component-preview.component.js +125 -0
- package/esm2015/runtime/components/index.js +5 -0
- package/esm2015/runtime/components/section-renderer/section-renderer.component.js +71 -0
- package/esm2015/runtime/components/ui-runtime/runtime.component.js +427 -0
- package/esm2015/runtime/components/ui-runtime-preview/runtime-preview.component.js +109 -0
- package/esm2015/runtime/execution/components/children-placeholder/children-placeholder.component.js +68 -0
- package/esm2015/runtime/execution/components/context-provider/context-provider.component.js +36 -0
- package/esm2015/runtime/execution/components/execution-section-renderer/execution-section-renderer.component.js +72 -0
- package/esm2015/runtime/execution/components/federated/federated.component.js +81 -0
- package/esm2015/runtime/execution/components/velo-attribute/velo-attribute.component.js +65 -0
- package/esm2015/runtime/execution/components/velo-multiselect/velo-multiselect.component.js +136 -0
- package/esm2015/runtime/execution/components/velo-port-checkbox/velo-port-checkbox.component.js +80 -0
- package/esm2015/runtime/execution/components/velo-port-dropdown/velo-port-dropdown.component.js +101 -0
- package/esm2015/runtime/execution/components/velo-port-radio/velo-port-radio.component.js +150 -0
- package/esm2015/runtime/execution/components/velo-type/velo-type.component.js +121 -0
- package/esm2015/runtime/execution/directives/section-script.directive.js +242 -0
- package/esm2015/runtime/execution/directives/sf-query.directive.js +34 -0
- package/esm2015/runtime/execution/directives/velo-attribute.directive.js +86 -0
- package/esm2015/runtime/execution/directives/velo-port.directive.js +373 -0
- package/esm2015/runtime/execution/directives/vl-approval.directive.js +22 -0
- package/esm2015/runtime/execution/directives/vl-document-attachments.directive.js +35 -0
- package/esm2015/runtime/execution/directives/vl-document-templates.directive.js +59 -0
- package/esm2015/runtime/execution/directives/vl-quote.directive.js +41 -0
- package/esm2015/runtime/execution/directives/vl-ramp.directive.js +51 -0
- package/esm2015/runtime/execution/runtime-execution.module.js +163 -0
- package/esm2015/runtime/execution/utils/federated.util.js +37 -0
- package/esm2015/runtime/index.js +5 -0
- package/esm2015/runtime/runtime.module.js +104 -0
- package/esm2015/runtime/services/cart.service.js +28 -0
- package/esm2015/runtime/services/collapsible-state.service.js +34 -0
- package/esm2015/runtime/services/configuration.service.js +102 -0
- package/esm2015/runtime/services/current-state.service.js +17 -0
- package/esm2015/runtime/services/form-scope.service.js +30 -0
- package/esm2015/runtime/services/index.js +4 -0
- package/esm2015/runtime/services/product-model-cache.service.js +30 -0
- package/esm2015/runtime/services/runtime-context.service.js +56 -0
- package/esm2015/runtime/services/runtime-form.service.js +224 -0
- package/esm2015/runtime/services/runtime.service.js +108 -0
- package/esm2015/runtime/services/section-helper.service.js +27 -0
- package/esm2015/runtime/services/section-scope.service.js +36 -0
- package/esm2015/runtime/services/section-store.service.js +22 -0
- package/esm2015/runtime/services/section.service.js +124 -0
- package/esm2015/runtime/types/bound-data.types.js +7 -0
- package/esm2015/runtime/types/index.js +2 -0
- package/esm2015/runtime/types/runtime.types.js +2 -0
- package/esm2015/runtime/types/script-registry.types.js +51 -0
- package/esm2015/runtime/utils/line-item.util.js +273 -0
- package/esm2015/runtime/utils/section.utils.js +26 -0
- package/esm2015/runtime/utils/sections-binder.helper.js +105 -0
- package/esm2015/runtime/veloce-sdk-runtime.js +5 -0
- package/esm2015/src/components/dialog/dialog.component.js +30 -0
- package/esm2015/src/components/dialog/dialog.module.js +19 -0
- package/esm2015/src/components/dialog/dialog.types.js +2 -0
- package/esm2015/src/components/header/cart-overlay/cart-preview.component.js +116 -0
- package/esm2015/src/components/header/cart-overlay/cart-preview.module.js +23 -0
- package/esm2015/src/components/header/header.component.js +196 -0
- package/esm2015/src/components/header/header.module.js +23 -0
- package/esm2015/src/components/header/header.types.js +2 -0
- package/esm2015/src/constants.js +2 -0
- package/esm2015/src/flow-routing.module.js +97 -0
- package/esm2015/src/flow.component.js +35 -0
- package/esm2015/src/flow.module.js +52 -0
- package/esm2015/src/guards/context.guard.js +75 -0
- package/esm2015/src/guards/index.js +2 -0
- package/esm2015/src/guards/product-unload.guard.js +43 -0
- package/esm2015/src/guards/root.guard.js +41 -0
- package/esm2015/src/index.js +7 -0
- package/esm2015/src/pages/catalog/catalog.component.js +117 -0
- package/esm2015/src/pages/catalog/catalog.module.js +20 -0
- package/esm2015/src/pages/debug/debug.component.js +65 -0
- package/esm2015/src/pages/debug/debug.module.js +48 -0
- package/esm2015/src/pages/legacy-product/legacy-product.component.js +132 -0
- package/esm2015/src/pages/legacy-product/legacy-product.module.js +21 -0
- package/esm2015/src/pages/product/product.component.js +95 -0
- package/esm2015/src/pages/product/product.module.js +20 -0
- package/esm2015/src/pages/record-not-found/record-not-found.component.js +29 -0
- package/esm2015/src/pages/record-not-found/record-not-found.module.js +20 -0
- package/esm2015/src/pages/shopping-cart/shopping-cart.component.js +117 -0
- package/esm2015/src/pages/shopping-cart/shopping-cart.module.js +20 -0
- package/esm2015/src/resolvers/flow.resolver.js +58 -0
- package/esm2015/src/resolvers/quote.resolver.js +45 -0
- package/esm2015/src/services/flow-dialog.service.js +80 -0
- package/esm2015/src/services/flow-router.service.js +124 -0
- package/esm2015/src/services/flow.service.js +67 -0
- package/esm2015/src/services/index.js +2 -0
- package/esm2015/src/types/context-route.types.js +2 -0
- package/esm2015/src/types/flow-customization.types.js +3 -0
- package/esm2015/src/types/index.js +3 -0
- package/esm2015/src/types/route.types.js +2 -0
- package/esm2015/src/utils/flow.utils.js +12 -0
- package/esm2015/src/utils/index.js +2 -0
- package/esm2015/veloce-sdk.js +5 -0
- package/fesm2015/veloce-sdk-cms.js +1301 -0
- package/fesm2015/veloce-sdk-cms.js.map +1 -0
- package/fesm2015/veloce-sdk-core.js +837 -0
- package/fesm2015/veloce-sdk-core.js.map +1 -0
- package/fesm2015/veloce-sdk-runtime.js +3895 -0
- package/fesm2015/veloce-sdk-runtime.js.map +1 -0
- package/fesm2015/veloce-sdk.js +1635 -0
- package/fesm2015/veloce-sdk.js.map +1 -0
- package/index.d.ts +1 -0
- package/package.json +49 -0
- package/runtime/components/component-preview/component-preview.component.d.ts +27 -0
- package/runtime/components/index.d.ts +4 -0
- package/runtime/components/section-renderer/section-renderer.component.d.ts +25 -0
- package/runtime/components/ui-runtime/runtime.component.d.ts +53 -0
- package/runtime/components/ui-runtime-preview/runtime-preview.component.d.ts +27 -0
- package/runtime/execution/components/children-placeholder/children-placeholder.component.d.ts +30 -0
- package/runtime/execution/components/context-provider/context-provider.component.d.ts +14 -0
- package/runtime/execution/components/execution-section-renderer/execution-section-renderer.component.d.ts +25 -0
- package/runtime/execution/components/federated/federated.component.d.ts +36 -0
- package/runtime/execution/components/velo-attribute/velo-attribute.component.d.ts +19 -0
- package/runtime/execution/components/velo-multiselect/velo-multiselect.component.d.ts +35 -0
- package/runtime/execution/components/velo-port-checkbox/velo-port-checkbox.component.d.ts +22 -0
- package/runtime/execution/components/velo-port-dropdown/velo-port-dropdown.component.d.ts +22 -0
- package/runtime/execution/components/velo-port-radio/velo-port-radio.component.d.ts +28 -0
- package/runtime/execution/components/velo-type/velo-type.component.d.ts +31 -0
- package/runtime/execution/directives/section-script.directive.d.ts +59 -0
- package/runtime/execution/directives/sf-query.directive.d.ts +15 -0
- package/runtime/execution/directives/velo-attribute.directive.d.ts +26 -0
- package/runtime/execution/directives/velo-port.directive.d.ts +74 -0
- package/runtime/execution/directives/vl-approval.directive.d.ts +10 -0
- package/runtime/execution/directives/vl-document-attachments.directive.d.ts +15 -0
- package/runtime/execution/directives/vl-document-templates.directive.d.ts +33 -0
- package/runtime/execution/directives/vl-quote.directive.d.ts +14 -0
- package/runtime/execution/directives/vl-ramp.directive.d.ts +15 -0
- package/runtime/execution/runtime-execution.module.d.ts +27 -0
- package/runtime/execution/utils/federated.util.d.ts +6 -0
- package/runtime/index.d.ts +4 -0
- package/runtime/package.json +10 -0
- package/runtime/runtime.module.d.ts +18 -0
- package/runtime/services/cart.service.d.ts +15 -0
- package/runtime/services/collapsible-state.service.d.ts +15 -0
- package/runtime/services/configuration.service.d.ts +19 -0
- package/runtime/services/current-state.service.d.ts +8 -0
- package/runtime/services/form-scope.service.d.ts +20 -0
- package/runtime/services/index.d.ts +3 -0
- package/runtime/services/product-model-cache.service.d.ts +14 -0
- package/runtime/services/runtime-context.service.d.ts +16 -0
- package/runtime/services/runtime-form.service.d.ts +24 -0
- package/runtime/services/runtime.service.d.ts +43 -0
- package/runtime/services/section-helper.service.d.ts +8 -0
- package/runtime/services/section-scope.service.d.ts +14 -0
- package/runtime/services/section-store.service.d.ts +11 -0
- package/runtime/services/section.service.d.ts +30 -0
- package/runtime/types/bound-data.types.d.ts +13 -0
- package/runtime/types/index.d.ts +1 -0
- package/runtime/types/runtime.types.d.ts +19 -0
- package/runtime/types/script-registry.types.d.ts +13 -0
- package/runtime/utils/line-item.util.d.ts +34 -0
- package/runtime/utils/section.utils.d.ts +2 -0
- package/runtime/utils/sections-binder.helper.d.ts +16 -0
- package/runtime/veloce-sdk-runtime.d.ts +5 -0
- package/src/components/dialog/dialog.component.d.ts +13 -0
- package/src/components/dialog/dialog.module.d.ts +9 -0
- package/src/components/dialog/dialog.types.d.ts +6 -0
- package/src/components/header/cart-overlay/cart-preview.component.d.ts +31 -0
- package/src/components/header/cart-overlay/cart-preview.module.d.ts +13 -0
- package/src/components/header/header.component.d.ts +48 -0
- package/src/components/header/header.module.d.ts +13 -0
- package/src/components/header/header.types.d.ts +19 -0
- package/src/constants.d.ts +1 -0
- package/src/flow-routing.module.d.ts +11 -0
- package/src/flow.component.d.ts +17 -0
- package/src/flow.module.d.ts +15 -0
- package/src/guards/context.guard.d.ts +18 -0
- package/src/guards/index.d.ts +1 -0
- package/src/guards/product-unload.guard.d.ts +16 -0
- package/src/guards/root.guard.d.ts +15 -0
- package/src/index.d.ts +6 -0
- package/src/pages/catalog/catalog.component.d.ts +32 -0
- package/src/pages/catalog/catalog.module.d.ts +10 -0
- package/src/pages/debug/debug.component.d.ts +27 -0
- package/src/pages/debug/debug.module.d.ts +14 -0
- package/src/pages/legacy-product/legacy-product.component.d.ts +37 -0
- package/src/pages/legacy-product/legacy-product.module.d.ts +10 -0
- package/src/pages/product/product.component.d.ts +30 -0
- package/src/pages/product/product.module.d.ts +10 -0
- package/src/pages/record-not-found/record-not-found.component.d.ts +11 -0
- package/src/pages/record-not-found/record-not-found.module.d.ts +9 -0
- package/src/pages/shopping-cart/shopping-cart.component.d.ts +32 -0
- package/src/pages/shopping-cart/shopping-cart.module.d.ts +10 -0
- package/src/resolvers/flow.resolver.d.ts +14 -0
- package/src/resolvers/quote.resolver.d.ts +18 -0
- package/src/services/flow-dialog.service.d.ts +20 -0
- package/src/services/flow-router.service.d.ts +35 -0
- package/src/services/flow.service.d.ts +17 -0
- package/src/services/index.d.ts +1 -0
- package/src/types/context-route.types.d.ts +5 -0
- package/src/types/flow-customization.types.d.ts +11 -0
- package/src/types/index.d.ts +2 -0
- package/src/types/route.types.d.ts +9 -0
- package/src/utils/flow.utils.d.ts +1 -0
- package/src/utils/index.d.ts +1 -0
- package/veloce-sdk.d.ts +5 -0
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class SectionStoreService {
|
|
4
|
+
constructor() {
|
|
5
|
+
this._componentFactories = [];
|
|
6
|
+
}
|
|
7
|
+
set componentFactories(data) {
|
|
8
|
+
this._componentFactories = data;
|
|
9
|
+
}
|
|
10
|
+
get componentFactories() {
|
|
11
|
+
return this._componentFactories;
|
|
12
|
+
}
|
|
13
|
+
getComponentFactory(section) {
|
|
14
|
+
return this.componentFactories.find(f => f.selector === section.dynamicSelector);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
SectionStoreService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: SectionStoreService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
18
|
+
SectionStoreService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: SectionStoreService });
|
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: SectionStoreService, decorators: [{
|
|
20
|
+
type: Injectable
|
|
21
|
+
}] });
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbi1zdG9yZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvcnVudGltZS9zZXJ2aWNlcy9zZWN0aW9uLXN0b3JlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFvQixVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSTdELE1BQU0sT0FBTyxtQkFBbUI7SUFEaEM7UUFFVSx3QkFBbUIsR0FBNEIsRUFBRSxDQUFDO0tBYTNEO0lBWEMsSUFBSSxrQkFBa0IsQ0FBQyxJQUE2QjtRQUNsRCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxJQUFJLGtCQUFrQjtRQUNwQixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztJQUNsQyxDQUFDO0lBRUQsbUJBQW1CLENBQUMsT0FBZ0I7UUFDbEMsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsS0FBSyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDbkYsQ0FBQzs7aUhBYlUsbUJBQW1CO3FIQUFuQixtQkFBbUI7NEZBQW5CLG1CQUFtQjtrQkFEL0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudEZhY3RvcnksIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNlY3Rpb24gfSBmcm9tICdAdmVsb2NlL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU2VjdGlvblN0b3JlU2VydmljZSB7XG4gIHByaXZhdGUgX2NvbXBvbmVudEZhY3RvcmllczogQ29tcG9uZW50RmFjdG9yeTxhbnk+W10gPSBbXTtcblxuICBzZXQgY29tcG9uZW50RmFjdG9yaWVzKGRhdGE6IENvbXBvbmVudEZhY3Rvcnk8YW55PltdKSB7XG4gICAgdGhpcy5fY29tcG9uZW50RmFjdG9yaWVzID0gZGF0YTtcbiAgfVxuXG4gIGdldCBjb21wb25lbnRGYWN0b3JpZXMoKTogQ29tcG9uZW50RmFjdG9yeTxhbnk+W10ge1xuICAgIHJldHVybiB0aGlzLl9jb21wb25lbnRGYWN0b3JpZXM7XG4gIH1cblxuICBnZXRDb21wb25lbnRGYWN0b3J5KHNlY3Rpb246IFNlY3Rpb24pOiBDb21wb25lbnRGYWN0b3J5PGFueT4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmNvbXBvbmVudEZhY3Rvcmllcy5maW5kKGYgPT4gZi5zZWxlY3RvciA9PT0gc2VjdGlvbi5keW5hbWljU2VsZWN0b3IpO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { ScrollingModule as ExperimentalScrollingModule } from '@angular/cdk-experimental/scrolling';
|
|
3
|
+
import { ScrollingModule } from '@angular/cdk/scrolling';
|
|
4
|
+
import { CommonModule } from '@angular/common';
|
|
5
|
+
import '@angular/compiler';
|
|
6
|
+
import { Component, Injectable, Input, NgModule, ViewChildren, ViewEncapsulation, } from '@angular/core';
|
|
7
|
+
import { CoreModule, EntityUtil, UUID } from '@veloce/core';
|
|
8
|
+
import { VeloceElementsModule } from '@veloce/elements';
|
|
9
|
+
import { set, values } from 'lodash';
|
|
10
|
+
import { RuntimeExecutionModule } from '../execution/runtime-execution.module';
|
|
11
|
+
import { SectionHelperService } from './section-helper.service';
|
|
12
|
+
import * as i0 from "@angular/core";
|
|
13
|
+
import * as i1 from "./section-store.service";
|
|
14
|
+
const SHA1 = UUID.SHA1();
|
|
15
|
+
export class BaseSectionComponent {
|
|
16
|
+
}
|
|
17
|
+
BaseSectionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: BaseSectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
18
|
+
BaseSectionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: BaseSectionComponent, selector: "ng-component", inputs: { form: "form", section: "section" }, viewQueries: [{ propertyName: "templates", predicate: ["customTemplate"], descendants: true }], ngImport: i0, template: '', isInline: true });
|
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: BaseSectionComponent, decorators: [{
|
|
20
|
+
type: Component,
|
|
21
|
+
args: [{ template: '' }]
|
|
22
|
+
}], propDecorators: { form: [{
|
|
23
|
+
type: Input
|
|
24
|
+
}], section: [{
|
|
25
|
+
type: Input
|
|
26
|
+
}], templates: [{
|
|
27
|
+
type: ViewChildren,
|
|
28
|
+
args: ['customTemplate']
|
|
29
|
+
}] } });
|
|
30
|
+
export class SectionsService {
|
|
31
|
+
constructor(compiler, m, sectionStore) {
|
|
32
|
+
this.compiler = compiler;
|
|
33
|
+
this.m = m;
|
|
34
|
+
this.sectionStore = sectionStore;
|
|
35
|
+
this.moduleType = null;
|
|
36
|
+
this.moduleInstance = null;
|
|
37
|
+
}
|
|
38
|
+
compileModule(sections, isViewEncapsulated) {
|
|
39
|
+
const uniqueSections = this.getUniqueSections(sections);
|
|
40
|
+
this.moduleType = this.getModuleType(uniqueSections, isViewEncapsulated);
|
|
41
|
+
this.moduleInstance = this.compiler.compileModuleAndAllComponentsSync(this.moduleType);
|
|
42
|
+
this.sectionStore.componentFactories = this.moduleInstance.componentFactories;
|
|
43
|
+
}
|
|
44
|
+
destroy() {
|
|
45
|
+
if (this.moduleInstance) {
|
|
46
|
+
this.sectionStore.componentFactories = [];
|
|
47
|
+
this.moduleInstance = null;
|
|
48
|
+
}
|
|
49
|
+
if (this.moduleType) {
|
|
50
|
+
this.compiler.clearCacheFor(this.moduleType);
|
|
51
|
+
this.moduleType = null;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
getDecoratedComponents(sections, isViewEncapsulated = false) {
|
|
55
|
+
const result = [];
|
|
56
|
+
sections.forEach(section => {
|
|
57
|
+
var _a;
|
|
58
|
+
const transpiledTemplate = this.getTranspiledTemplate(section);
|
|
59
|
+
const DynamicComponent = Component({
|
|
60
|
+
selector: section.dynamicSelector,
|
|
61
|
+
template: transpiledTemplate,
|
|
62
|
+
styles: [atob(section.styles || '')],
|
|
63
|
+
providers: [SectionHelperService],
|
|
64
|
+
encapsulation: isViewEncapsulated ? ViewEncapsulation.ShadowDom : ViewEncapsulation.Emulated,
|
|
65
|
+
jit: true,
|
|
66
|
+
})(class C extends BaseSectionComponent {
|
|
67
|
+
});
|
|
68
|
+
this.applySelectorField(DynamicComponent, (_a = section.dynamicSelector) !== null && _a !== void 0 ? _a : '');
|
|
69
|
+
result.push(DynamicComponent);
|
|
70
|
+
});
|
|
71
|
+
return result;
|
|
72
|
+
}
|
|
73
|
+
getModuleType(sections, isViewEncapsulated) {
|
|
74
|
+
const decoratedComponents = this.getDecoratedComponents(sections, isViewEncapsulated);
|
|
75
|
+
let DynamicModule = class DynamicModule {
|
|
76
|
+
};
|
|
77
|
+
DynamicModule = __decorate([
|
|
78
|
+
NgModule({
|
|
79
|
+
imports: [
|
|
80
|
+
CommonModule,
|
|
81
|
+
RuntimeExecutionModule,
|
|
82
|
+
CoreModule,
|
|
83
|
+
VeloceElementsModule,
|
|
84
|
+
ScrollingModule,
|
|
85
|
+
ExperimentalScrollingModule,
|
|
86
|
+
],
|
|
87
|
+
declarations: [decoratedComponents],
|
|
88
|
+
jit: true,
|
|
89
|
+
})
|
|
90
|
+
], DynamicModule);
|
|
91
|
+
return DynamicModule;
|
|
92
|
+
}
|
|
93
|
+
applySelectorField(target, dynamicSelector) {
|
|
94
|
+
set(target, '$$dynamicSelector', dynamicSelector);
|
|
95
|
+
}
|
|
96
|
+
getUniqueSections(sections) {
|
|
97
|
+
const uniqueSections = {};
|
|
98
|
+
sections.forEach(section => {
|
|
99
|
+
section.hash = SHA1.hex(section.template);
|
|
100
|
+
const existingSection = section.hash ? uniqueSections[section.hash] : undefined;
|
|
101
|
+
if (existingSection && existingSection.template === section.template) {
|
|
102
|
+
section.dynamicSelector = existingSection.dynamicSelector;
|
|
103
|
+
}
|
|
104
|
+
else if (section.hash) {
|
|
105
|
+
section.dynamicSelector = `section-${section.id}`;
|
|
106
|
+
uniqueSections[section.hash] = section;
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
return values(uniqueSections);
|
|
110
|
+
}
|
|
111
|
+
getTranspiledTemplate(section) {
|
|
112
|
+
let template = section.template ? atob(section.template) : '';
|
|
113
|
+
if (!EntityUtil.isEmpty(section.script) && template.indexOf('<section-script') === -1) {
|
|
114
|
+
template = `<section-script></section-script>`.concat(template);
|
|
115
|
+
}
|
|
116
|
+
return template;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
SectionsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: SectionsService, deps: [{ token: i0.Compiler }, { token: i0.NgModuleRef }, { token: i1.SectionStoreService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
120
|
+
SectionsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: SectionsService });
|
|
121
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: SectionsService, decorators: [{
|
|
122
|
+
type: Injectable
|
|
123
|
+
}], ctorParameters: function () { return [{ type: i0.Compiler }, { type: i0.NgModuleRef }, { type: i1.SectionStoreService }]; } });
|
|
124
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvcnVudGltZS9zZXJ2aWNlcy9zZWN0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxlQUFlLElBQUksMkJBQTJCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNyRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxFQUVMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsS0FBSyxFQUVMLFFBQVEsRUFLUixZQUFZLEVBQ1osaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFXLElBQUksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNyQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7O0FBR2hFLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztBQUd6QixNQUFNLE9BQU8sb0JBQW9COztrSEFBcEIsb0JBQW9CO3NHQUFwQixvQkFBb0Isa01BRFYsRUFBRTs0RkFDWixvQkFBb0I7a0JBRGhDLFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFOzhCQUd6QixJQUFJO3NCQURILEtBQUs7Z0JBSU4sT0FBTztzQkFETixLQUFLO2dCQUdvQyxTQUFTO3NCQUFsRCxZQUFZO3VC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QUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUV0RSxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksUUFBUSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO1lBQ3JGLFFBQVEsR0FBRyxtQ0FBbUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDakU7UUFFRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDOzs2R0FwR1UsZUFBZTtpSEFBZixlQUFlOzRGQUFmLGVBQWU7a0JBRDNCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTY3JvbGxpbmdNb2R1bGUgYXMgRXhwZXJpbWVudGFsU2Nyb2xsaW5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrLWV4cGVyaW1lbnRhbC9zY3JvbGxpbmcnO1xuaW1wb3J0IHsgU2Nyb2xsaW5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Njcm9sbGluZyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0ICdAYW5ndWxhci9jb21waWxlcic7XG5pbXBvcnQge1xuICBDb21waWxlcixcbiAgQ29tcG9uZW50LFxuICBJbmplY3RhYmxlLFxuICBJbnB1dCxcbiAgTW9kdWxlV2l0aENvbXBvbmVudEZhY3RvcmllcyxcbiAgTmdNb2R1bGUsXG4gIE5nTW9kdWxlUmVmLFxuICBRdWVyeUxpc3QsXG4gIFRlbXBsYXRlUmVmLFxuICBUeXBlLFxuICBWaWV3Q2hpbGRyZW4sXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENvcmVNb2R1bGUsIEVudGl0eVV0aWwsIFNlY3Rpb24sIFVVSUQgfSBmcm9tICdAdmVsb2NlL2NvcmUnO1xuaW1wb3J0IHsgVmVsb2NlRWxlbWVudHNNb2R1bGUgfSBmcm9tICdAdmVsb2NlL2VsZW1lbnRzJztcbmltcG9ydCB7IHNldCwgdmFsdWVzIH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IFJ1bnRpbWVFeGVjdXRpb25Nb2R1bGUgfSBmcm9tICcuLi9leGVjdXRpb24vcnVudGltZS1leGVjdXRpb24ubW9kdWxlJztcbmltcG9ydCB7IFNlY3Rpb25IZWxwZXJTZXJ2aWNlIH0gZnJvbSAnLi9zZWN0aW9uLWhlbHBlci5zZXJ2aWNlJztcbmltcG9ydCB7IFNlY3Rpb25TdG9yZVNlcnZpY2UgfSBmcm9tICcuL3NlY3Rpb24tc3RvcmUuc2VydmljZSc7XG5cbmNvbnN0IFNIQTEgPSBVVUlELlNIQTEoKTtcblxuQENvbXBvbmVudCh7IHRlbXBsYXRlOiAnJyB9KVxuZXhwb3J0IGNsYXNzIEJhc2VTZWN0aW9uQ29tcG9uZW50IHtcbiAgQElucHV0KClcbiAgZm9ybSE6IEZvcm1Hcm91cDtcblxuICBASW5wdXQoKVxuICBzZWN0aW9uITogU2VjdGlvbjtcblxuICBAVmlld0NoaWxkcmVuKCdjdXN0b21UZW1wbGF0ZScpIHByb3RlY3RlZCB0ZW1wbGF0ZXMhOiBRdWVyeUxpc3Q8VGVtcGxhdGVSZWY8YW55Pj47XG5cbiAgLy8gQ3VycmVudGx5IHRoZXJlJ3Mgbm8gd2F5IHRvIGluamVjdCB2aWEgY29uc3RydWN0b3IuIE90aGVyd2lzZSBSdW50aW1lIGp1c3QgY3Jhc2hlc1xuICAvLyBUT0RPOiBpbnZlc3RpZ2F0ZSBob3cgd2UgY2FuIGluamVjdCBzZXJ2aWNlcyBpbnRvIHRoZSBjb21wb25lbnRcblxuICAvLyBjb25zdHJ1Y3RvcihcbiAgLy8gICBASW5qZWN0KEZvcm1TY29wZVNlcnZpY2UpIHByaXZhdGUgZm9ybVNjb3BlOiBGb3JtU2NvcGVTZXJ2aWNlLFxuICAvLyAgIEBJbmplY3QoU2VjdGlvbkhlbHBlclNlcnZpY2UpIHByaXZhdGUgc2VjdGlvbkFwaTogU2VjdGlvbkhlbHBlclNlcnZpY2UsXG4gIC8vICkge31cbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNlY3Rpb25zU2VydmljZSB7XG4gIHByaXZhdGUgbW9kdWxlVHlwZTogVHlwZTxhbnk+IHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgbW9kdWxlSW5zdGFuY2U6IE1vZHVsZVdpdGhDb21wb25lbnRGYWN0b3JpZXM8YW55PiB8IG51bGwgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY29tcGlsZXI6IENvbXBpbGVyLCBwcml2YXRlIG06IE5nTW9kdWxlUmVmPGFueT4sIHByaXZhdGUgc2VjdGlvblN0b3JlOiBTZWN0aW9uU3RvcmVTZXJ2aWNlKSB7fVxuXG4gIGNvbXBpbGVNb2R1bGUoc2VjdGlvbnM6IFNlY3Rpb25bXSwgaXNWaWV3RW5jYXBzdWxhdGVkPzogYm9vbGVhbik6IHZvaWQge1xuICAgIGNvbnN0IHVuaXF1ZVNlY3Rpb25zID0gdGhpcy5nZXRVbmlxdWVTZWN0aW9ucyhzZWN0aW9ucyk7XG5cbiAgICB0aGlzLm1vZHVsZVR5cGUgPSB0aGlzLmdldE1vZHVsZVR5cGUodW5pcXVlU2VjdGlvbnMsIGlzVmlld0VuY2Fwc3VsYXRlZCk7XG4gICAgdGhpcy5tb2R1bGVJbnN0YW5jZSA9IHRoaXMuY29tcGlsZXIuY29tcGlsZU1vZHVsZUFuZEFsbENvbXBvbmVudHNTeW5jKHRoaXMubW9kdWxlVHlwZSk7XG5cbiAgICB0aGlzLnNlY3Rpb25TdG9yZS5jb21wb25lbnRGYWN0b3JpZXMgPSB0aGlzLm1vZHVsZUluc3RhbmNlLmNvbXBvbmVudEZhY3RvcmllcztcbiAgfVxuXG4gIGRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubW9kdWxlSW5zdGFuY2UpIHtcbiAgICAgIHRoaXMuc2VjdGlvblN0b3JlLmNvbXBvbmVudEZhY3RvcmllcyA9IFtdO1xuICAgICAgdGhpcy5tb2R1bGVJbnN0YW5jZSA9IG51bGw7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMubW9kdWxlVHlwZSkge1xuICAgICAgdGhpcy5jb21waWxlci5jbGVhckNhY2hlRm9yKHRoaXMubW9kdWxlVHlwZSk7XG4gICAgICB0aGlzLm1vZHVsZVR5cGUgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0RGVjb3JhdGVkQ29tcG9uZW50cyhzZWN0aW9uczogU2VjdGlvbltdLCBpc1ZpZXdFbmNhcHN1bGF0ZWQ6IGJvb2xlYW4gPSBmYWxzZSk6IGFueVtdIHtcbiAgICBjb25zdCByZXN1bHQ6IGFueVtdID0gW107XG5cbiAgICBzZWN0aW9ucy5mb3JFYWNoKHNlY3Rpb24gPT4ge1xuICAgICAgY29uc3QgdHJhbnNwaWxlZFRlbXBsYXRlID0gdGhpcy5nZXRUcmFuc3BpbGVkVGVtcGxhdGUoc2VjdGlvbik7XG5cbiAgICAgIGNvbnN0IER5bmFtaWNDb21wb25lbnQgPSBDb21wb25lbnQoe1xuICAgICAgICBzZWxlY3Rvcjogc2VjdGlvbi5keW5hbWljU2VsZWN0b3IsXG4gICAgICAgIHRlbXBsYXRlOiB0cmFuc3BpbGVkVGVtcGxhdGUsXG4gICAgICAgIHN0eWxlczogW2F0b2Ioc2VjdGlvbi5zdHlsZXMgfHwgJycpXSxcbiAgICAgICAgcHJvdmlkZXJzOiBbU2VjdGlvbkhlbHBlclNlcnZpY2VdLFxuICAgICAgICBlbmNhcHN1bGF0aW9uOiBpc1ZpZXdFbmNhcHN1bGF0ZWQgPyBWaWV3RW5jYXBzdWxhdGlvbi5TaGFkb3dEb20gOiBWaWV3RW5jYXBzdWxhdGlvbi5FbXVsYXRlZCxcbiAgICAgICAgaml0OiB0cnVlLFxuICAgICAgfSkoY2xhc3MgQyBleHRlbmRzIEJhc2VTZWN0aW9uQ29tcG9uZW50IHt9KTtcblxuICAgICAgdGhpcy5hcHBseVNlbGVjdG9yRmllbGQoRHluYW1pY0NvbXBvbmVudCwgc2VjdGlvbi5keW5hbWljU2VsZWN0b3IgPz8gJycpO1xuICAgICAgcmVzdWx0LnB1c2goRHluYW1pY0NvbXBvbmVudCk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRNb2R1bGVUeXBlKHNlY3Rpb25zOiBTZWN0aW9uW10sIGlzVmlld0VuY2Fwc3VsYXRlZD86IGJvb2xlYW4pOiBUeXBlPGFueT4ge1xuICAgIGNvbnN0IGRlY29yYXRlZENvbXBvbmVudHMgPSB0aGlzLmdldERlY29yYXRlZENvbXBvbmVudHMoc2VjdGlvbnMsIGlzVmlld0VuY2Fwc3VsYXRlZCk7XG5cbiAgICBATmdNb2R1bGUoe1xuICAgICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIFJ1bnRpbWVFeGVjdXRpb25Nb2R1bGUsXG4gICAgICAgIENvcmVNb2R1bGUsXG4gICAgICAgIFZlbG9jZUVsZW1lbnRzTW9kdWxlLFxuICAgICAgICBTY3JvbGxpbmdNb2R1bGUsXG4gICAgICAgIEV4cGVyaW1lbnRhbFNjcm9sbGluZ01vZHVsZSxcbiAgICAgIF0sXG4gICAgICBkZWNsYXJhdGlvbnM6IFtkZWNvcmF0ZWRDb21wb25lbnRzXSxcbiAgICAgIGppdDogdHJ1ZSxcbiAgICB9KVxuICAgIGNsYXNzIER5bmFtaWNNb2R1bGUge31cblxuICAgIHJldHVybiBEeW5hbWljTW9kdWxlO1xuICB9XG5cbiAgcHJpdmF0ZSBhcHBseVNlbGVjdG9yRmllbGQodGFyZ2V0OiBhbnksIGR5bmFtaWNTZWxlY3Rvcjogc3RyaW5nKTogdm9pZCB7XG4gICAgc2V0KHRhcmdldCwgJyQkZHluYW1pY1NlbGVjdG9yJywgZHluYW1pY1NlbGVjdG9yKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VW5pcXVlU2VjdGlvbnMoc2VjdGlvbnM6IFNlY3Rpb25bXSk6IFNlY3Rpb25bXSB7XG4gICAgY29uc3QgdW5pcXVlU2VjdGlvbnM6IHsgW2luZGV4OiBzdHJpbmddOiBTZWN0aW9uIH0gPSB7fTtcblxuICAgIHNlY3Rpb25zLmZvckVhY2goc2VjdGlvbiA9PiB7XG4gICAgICBzZWN0aW9uLmhhc2ggPSBTSEExLmhleChzZWN0aW9uLnRlbXBsYXRlKTtcblxuICAgICAgY29uc3QgZXhpc3RpbmdTZWN0aW9uID0gc2VjdGlvbi5oYXNoID8gdW5pcXVlU2VjdGlvbnNbc2VjdGlvbi5oYXNoXSA6IHVuZGVmaW5lZDtcbiAgICAgIGlmIChleGlzdGluZ1NlY3Rpb24gJiYgZXhpc3RpbmdTZWN0aW9uLnRlbXBsYXRlID09PSBzZWN0aW9uLnRlbXBsYXRlKSB7XG4gICAgICAgIHNlY3Rpb24uZHluYW1pY1NlbGVjdG9yID0gZXhpc3RpbmdTZWN0aW9uLmR5bmFtaWNTZWxlY3RvcjtcbiAgICAgIH0gZWxzZSBpZiAoc2VjdGlvbi5oYXNoKSB7XG4gICAgICAgIHNlY3Rpb24uZHluYW1pY1NlbGVjdG9yID0gYHNlY3Rpb24tJHtzZWN0aW9uLmlkfWA7XG5cbiAgICAgICAgdW5pcXVlU2VjdGlvbnNbc2VjdGlvbi5oYXNoXSA9IHNlY3Rpb247XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gdmFsdWVzKHVuaXF1ZVNlY3Rpb25zKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VHJhbnNwaWxlZFRlbXBsYXRlKHNlY3Rpb246IFNlY3Rpb24pOiBzdHJpbmcge1xuICAgIGxldCB0ZW1wbGF0ZTogc3RyaW5nID0gc2VjdGlvbi50ZW1wbGF0ZSA/IGF0b2Ioc2VjdGlvbi50ZW1wbGF0ZSkgOiAnJztcblxuICAgIGlmICghRW50aXR5VXRpbC5pc0VtcHR5KHNlY3Rpb24uc2NyaXB0KSAmJiB0ZW1wbGF0ZS5pbmRleE9mKCc8c2VjdGlvbi1zY3JpcHQnKSA9PT0gLTEpIHtcbiAgICAgIHRlbXBsYXRlID0gYDxzZWN0aW9uLXNjcmlwdD48L3NlY3Rpb24tc2NyaXB0PmAuY29uY2F0KHRlbXBsYXRlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGVtcGxhdGU7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export var BoundDataType;
|
|
2
|
+
(function (BoundDataType) {
|
|
3
|
+
BoundDataType[BoundDataType["TYPE"] = 0] = "TYPE";
|
|
4
|
+
BoundDataType[BoundDataType["ATTRIBUTE"] = 1] = "ATTRIBUTE";
|
|
5
|
+
BoundDataType[BoundDataType["PORT"] = 2] = "PORT";
|
|
6
|
+
})(BoundDataType || (BoundDataType = {}));
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm91bmQtZGF0YS50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL3J1bnRpbWUvdHlwZXMvYm91bmQtZGF0YS50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLENBQU4sSUFBWSxhQUlYO0FBSkQsV0FBWSxhQUFhO0lBQ3ZCLGlEQUFJLENBQUE7SUFDSiwyREFBUyxDQUFBO0lBQ1QsaURBQUksQ0FBQTtBQUNOLENBQUMsRUFKVyxhQUFhLEtBQWIsYUFBYSxRQUl4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByb2R1Y3RNb2RlbEF0dHJpYnV0ZSwgUHJvZHVjdFBvcnQsIFByb2R1Y3RUeXBlLCBTZWN0aW9uUGF0aCB9IGZyb20gJ0B2ZWxvY2UvY29yZSc7XG5cbmV4cG9ydCBlbnVtIEJvdW5kRGF0YVR5cGUge1xuICBUWVBFLFxuICBBVFRSSUJVVEUsXG4gIFBPUlQsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQm91bmREYXRhIHtcbiAgbmFtZTogc3RyaW5nO1xuICBlbnRpdHk6IFByb2R1Y3RUeXBlIHwgUHJvZHVjdE1vZGVsQXR0cmlidXRlIHwgUHJvZHVjdFBvcnQ7XG4gIGVudGl0eVR5cGU6IHN0cmluZztcbiAgaG9zdD86IHN0cmluZztcbiAgcGF0aDogU2VjdGlvblBhdGg7XG59XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './runtime.types';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9ydW50aW1lL3R5cGVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsaUJBQWlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3J1bnRpbWUudHlwZXMnO1xuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL3J1bnRpbWUvdHlwZXMvcnVudGltZS50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTGluZUl0ZW0sIFVJRGVmaW5pdGlvbiB9IGZyb20gJ0B2ZWxvY2UvY29yZSc7XG5pbXBvcnQgeyBSdW50aW1lQ29udGV4dCB9IGZyb20gJ0B2ZWxvY2Uvc2RrL2NvcmUnO1xuaW1wb3J0IHsgRGljdGlvbmFyeSB9IGZyb20gJ2xvZGFzaCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU29sdXRpb25SZWFkeUF3YXJlIHtcbiAgb25Tb2x1dGlvblJlYWR5KGxpbmVJdGVtOiBMaW5lSXRlbSk6IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU29sdXRpb25VcGRhdGVkQXdhcmUge1xuICBvblNvbHV0aW9uVXBkYXRlZChsaW5lSXRlbTogTGluZUl0ZW0pOiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZURhdGEge1xuICBpZDogc3RyaW5nO1xuICBhY3Rpb246IHN0cmluZztcbiAgdmFsdWVPcHRpb24/OiBzdHJpbmc7XG4gIHNlbGVjdGVkVmFsdWVPcHRpb25zPzogc3RyaW5nW107XG4gIG9wdGlvbnM/OiBEaWN0aW9uYXJ5PGFueT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGVnYWN5UnVudGltZUNvbnRleHQgZXh0ZW5kcyBPbWl0PFJ1bnRpbWVDb250ZXh0LCAndWlEZWZpbml0aW9uJz4ge1xuICB1aURlZmluaXRpb24/OiBVSURlZmluaXRpb247XG59XG4iXX0=
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { EntityUtil } from '@veloce/core';
|
|
2
|
+
export class ScriptRegistry {
|
|
3
|
+
constructor() {
|
|
4
|
+
this.store = new Map();
|
|
5
|
+
this.scope = new Map();
|
|
6
|
+
}
|
|
7
|
+
exists(scriptId) {
|
|
8
|
+
const sectionIds = this.store.get(scriptId);
|
|
9
|
+
return !EntityUtil.isEmpty(sectionIds);
|
|
10
|
+
}
|
|
11
|
+
isRegistered(scriptId, sectionId) {
|
|
12
|
+
const sectionIds = this.store.get(scriptId);
|
|
13
|
+
return !EntityUtil.isEmpty(sectionIds) && (sectionIds === null || sectionIds === void 0 ? void 0 : sectionIds.findIndex(entryId => entryId === sectionId)) !== -1;
|
|
14
|
+
}
|
|
15
|
+
doRegister(scriptId, sectionId) {
|
|
16
|
+
const sectionIds = this.store.get(scriptId);
|
|
17
|
+
if (!EntityUtil.isPresent(sectionIds)) {
|
|
18
|
+
this.store.set(scriptId, [sectionId]);
|
|
19
|
+
}
|
|
20
|
+
else if ((sectionIds === null || sectionIds === void 0 ? void 0 : sectionIds.findIndex(entryId => entryId === sectionId)) === -1) {
|
|
21
|
+
sectionIds.push(sectionId);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
unRegister(scriptId, sectionId) {
|
|
25
|
+
const sectionIds = this.store.get(scriptId);
|
|
26
|
+
if (!sectionIds) {
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
const index = sectionIds === null || sectionIds === void 0 ? void 0 : sectionIds.findIndex(entryId => entryId === sectionId);
|
|
30
|
+
if (index !== -1) {
|
|
31
|
+
sectionIds.splice(index, 1);
|
|
32
|
+
// Remove orphan
|
|
33
|
+
if (sectionIds.length < 1) {
|
|
34
|
+
this.store.delete(scriptId);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
hasGlobalForScript(globalId) {
|
|
39
|
+
return this.scope.has(globalId);
|
|
40
|
+
}
|
|
41
|
+
getGlobalForScript(globalId) {
|
|
42
|
+
return this.scope.get(globalId);
|
|
43
|
+
}
|
|
44
|
+
setGlobalForScript(globalId, globalVariable) {
|
|
45
|
+
this.scope.set(globalId, globalVariable);
|
|
46
|
+
}
|
|
47
|
+
removeGlobalForScript(globalId) {
|
|
48
|
+
this.scope.delete(globalId);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NyaXB0LXJlZ2lzdHJ5LnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvcnVudGltZS90eXBlcy9zY3JpcHQtcmVnaXN0cnkudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUUxQyxNQUFNLE9BQU8sY0FBYztJQUl6QjtRQUNFLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELE1BQU0sQ0FBQyxRQUFnQjtRQUNyQixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUU1QyxPQUFPLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsWUFBWSxDQUFDLFFBQWdCLEVBQUUsU0FBaUI7UUFDOUMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFNUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQSxVQUFVLGFBQVYsVUFBVSx1QkFBVixVQUFVLENBQUUsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQyxNQUFLLENBQUMsQ0FBQyxDQUFDO0lBQzNHLENBQUM7SUFFRCxVQUFVLENBQUMsUUFBZ0IsRUFBRSxTQUFpQjtRQUM1QyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUU1QyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUNyQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1NBQ3ZDO2FBQU0sSUFBSSxDQUFBLFVBQVUsYUFBVixVQUFVLHVCQUFWLFVBQVUsQ0FBRSxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEtBQUssU0FBUyxDQUFDLE1BQUssQ0FBQyxDQUFDLEVBQUU7WUFDekUsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUM1QjtJQUNILENBQUM7SUFFRCxVQUFVLENBQUMsUUFBZ0IsRUFBRSxTQUFpQjtRQUM1QyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUU1QyxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ2YsT0FBTztTQUNSO1FBRUQsTUFBTSxLQUFLLEdBQUcsVUFBVSxhQUFWLFVBQVUsdUJBQVYsVUFBVSxDQUFFLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sS0FBSyxTQUFTLENBQUMsQ0FBQztRQUV0RSxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsRUFBRTtZQUNoQixVQUFVLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztZQUU1QixnQkFBZ0I7WUFDaEIsSUFBSSxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDekIsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDN0I7U0FDRjtJQUNILENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxRQUFnQjtRQUNqQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxRQUFnQjtRQUNqQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxRQUFnQixFQUFFLGNBQW1CO1FBQ3RELElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxjQUFjLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQscUJBQXFCLENBQUMsUUFBZ0I7UUFDcEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDOUIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW50aXR5VXRpbCB9IGZyb20gJ0B2ZWxvY2UvY29yZSc7XG5cbmV4cG9ydCBjbGFzcyBTY3JpcHRSZWdpc3RyeSB7XG4gIHNjb3BlOiBNYXA8c3RyaW5nLCBhbnk+O1xuICBwcml2YXRlIHN0b3JlOiBNYXA8c3RyaW5nLCBzdHJpbmdbXT47XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5zdG9yZSA9IG5ldyBNYXAoKTtcbiAgICB0aGlzLnNjb3BlID0gbmV3IE1hcCgpO1xuICB9XG5cbiAgZXhpc3RzKHNjcmlwdElkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCBzZWN0aW9uSWRzID0gdGhpcy5zdG9yZS5nZXQoc2NyaXB0SWQpO1xuXG4gICAgcmV0dXJuICFFbnRpdHlVdGlsLmlzRW1wdHkoc2VjdGlvbklkcyk7XG4gIH1cblxuICBpc1JlZ2lzdGVyZWQoc2NyaXB0SWQ6IHN0cmluZywgc2VjdGlvbklkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCBzZWN0aW9uSWRzID0gdGhpcy5zdG9yZS5nZXQoc2NyaXB0SWQpO1xuXG4gICAgcmV0dXJuICFFbnRpdHlVdGlsLmlzRW1wdHkoc2VjdGlvbklkcykgJiYgc2VjdGlvbklkcz8uZmluZEluZGV4KGVudHJ5SWQgPT4gZW50cnlJZCA9PT0gc2VjdGlvbklkKSAhPT0gLTE7XG4gIH1cblxuICBkb1JlZ2lzdGVyKHNjcmlwdElkOiBzdHJpbmcsIHNlY3Rpb25JZDogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3Qgc2VjdGlvbklkcyA9IHRoaXMuc3RvcmUuZ2V0KHNjcmlwdElkKTtcblxuICAgIGlmICghRW50aXR5VXRpbC5pc1ByZXNlbnQoc2VjdGlvbklkcykpIHtcbiAgICAgIHRoaXMuc3RvcmUuc2V0KHNjcmlwdElkLCBbc2VjdGlvbklkXSk7XG4gICAgfSBlbHNlIGlmIChzZWN0aW9uSWRzPy5maW5kSW5kZXgoZW50cnlJZCA9PiBlbnRyeUlkID09PSBzZWN0aW9uSWQpID09PSAtMSkge1xuICAgICAgc2VjdGlvbklkcy5wdXNoKHNlY3Rpb25JZCk7XG4gICAgfVxuICB9XG5cbiAgdW5SZWdpc3RlcihzY3JpcHRJZDogc3RyaW5nLCBzZWN0aW9uSWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IHNlY3Rpb25JZHMgPSB0aGlzLnN0b3JlLmdldChzY3JpcHRJZCk7XG5cbiAgICBpZiAoIXNlY3Rpb25JZHMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBpbmRleCA9IHNlY3Rpb25JZHM/LmZpbmRJbmRleChlbnRyeUlkID0+IGVudHJ5SWQgPT09IHNlY3Rpb25JZCk7XG5cbiAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICBzZWN0aW9uSWRzLnNwbGljZShpbmRleCwgMSk7XG5cbiAgICAgIC8vIFJlbW92ZSBvcnBoYW5cbiAgICAgIGlmIChzZWN0aW9uSWRzLmxlbmd0aCA8IDEpIHtcbiAgICAgICAgdGhpcy5zdG9yZS5kZWxldGUoc2NyaXB0SWQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGhhc0dsb2JhbEZvclNjcmlwdChnbG9iYWxJZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc2NvcGUuaGFzKGdsb2JhbElkKTtcbiAgfVxuXG4gIGdldEdsb2JhbEZvclNjcmlwdChnbG9iYWxJZDogc3RyaW5nKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5zY29wZS5nZXQoZ2xvYmFsSWQpO1xuICB9XG5cbiAgc2V0R2xvYmFsRm9yU2NyaXB0KGdsb2JhbElkOiBzdHJpbmcsIGdsb2JhbFZhcmlhYmxlOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnNjb3BlLnNldChnbG9iYWxJZCwgZ2xvYmFsVmFyaWFibGUpO1xuICB9XG5cbiAgcmVtb3ZlR2xvYmFsRm9yU2NyaXB0KGdsb2JhbElkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnNjb3BlLmRlbGV0ZShnbG9iYWxJZCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
import { EntityUtil, UUID } from '@veloce/core';
|
|
2
|
+
export class LineItemPath {
|
|
3
|
+
constructor(path) {
|
|
4
|
+
this._relativePath = '';
|
|
5
|
+
this._relativeAbstractPath = '';
|
|
6
|
+
this._abstractPath = '';
|
|
7
|
+
this.path = path.toLowerCase();
|
|
8
|
+
}
|
|
9
|
+
set relativePath(relativePath) {
|
|
10
|
+
this._relativePath = relativePath.toLowerCase();
|
|
11
|
+
}
|
|
12
|
+
get relativePath() {
|
|
13
|
+
return this._relativePath;
|
|
14
|
+
}
|
|
15
|
+
set abstractPath(abstractPath) {
|
|
16
|
+
this._abstractPath = abstractPath.toLowerCase();
|
|
17
|
+
}
|
|
18
|
+
get abstractPath() {
|
|
19
|
+
return this._abstractPath || this.path;
|
|
20
|
+
}
|
|
21
|
+
set relativeAbstractPath(relativeAbstractPath) {
|
|
22
|
+
this._relativeAbstractPath = relativeAbstractPath.toLowerCase();
|
|
23
|
+
}
|
|
24
|
+
isEqualTo(sectionPath) {
|
|
25
|
+
if (!sectionPath || !this.path || !sectionPath.path) {
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
28
|
+
const otherPath = sectionPath.path.toLowerCase();
|
|
29
|
+
const isEqual = this.path === otherPath || this._relativePath === otherPath || this._relativeAbstractPath === otherPath;
|
|
30
|
+
//TODO ALE SORT OUT SEARCH
|
|
31
|
+
if (!isEqual) {
|
|
32
|
+
const abstractPathMatch = this._abstractPath === sectionPath.abstractPath.toLowerCase();
|
|
33
|
+
const relativePathMatch = this._relativePath
|
|
34
|
+
? this._relativePath === sectionPath.relativePath.toLowerCase()
|
|
35
|
+
: false;
|
|
36
|
+
const relativeAbstractPathMatch = this._relativeAbstractPath && sectionPath.relativeAbstractPath
|
|
37
|
+
? sectionPath.relativeAbstractPath.toLowerCase() === sectionPath.relativePath.toLowerCase() &&
|
|
38
|
+
this._relativeAbstractPath === sectionPath.relativePath.toLowerCase()
|
|
39
|
+
: false;
|
|
40
|
+
return abstractPathMatch && (relativePathMatch || relativeAbstractPathMatch);
|
|
41
|
+
}
|
|
42
|
+
return isEqual;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
export class LineItemUtil {
|
|
46
|
+
static removeDeletedItems(original) {
|
|
47
|
+
var _a;
|
|
48
|
+
const root = EntityUtil.clone(original);
|
|
49
|
+
if (root) {
|
|
50
|
+
let items = [root];
|
|
51
|
+
for (let i = 0; i < items.length; i++) {
|
|
52
|
+
const item = items[i];
|
|
53
|
+
item.lineItems = ((_a = item.lineItems) !== null && _a !== void 0 ? _a : []).filter(l => l.actionCode !== 'DELETE');
|
|
54
|
+
items = items.concat(item.lineItems);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return root;
|
|
58
|
+
}
|
|
59
|
+
static replaceLineItemKeys(rootLineItem) {
|
|
60
|
+
const replaceFn = (item) => {
|
|
61
|
+
item.id = item.id ? 'DUMMY-' + item.id : item.id;
|
|
62
|
+
item.rootId = item.rootId ? 'DUMMY-' + item.rootId : item.rootId;
|
|
63
|
+
item.parentId = item.parentId ? 'DUMMY-' + item.parentId : item.parentId;
|
|
64
|
+
item.offeringInstanceId = item.offeringInstanceId ? 'DUMMY-' + item.offeringInstanceId : void 0;
|
|
65
|
+
item.offeringItemId = item.offeringItemId ? 'DUMMY-' + item.offeringItemId : void 0;
|
|
66
|
+
item.rampInstanceId = item.rampInstanceId ? 'DUMMY-' + item.rampInstanceId : void 0;
|
|
67
|
+
};
|
|
68
|
+
const traverseFn = (lineItem, callbackFn) => {
|
|
69
|
+
if (lineItem.lineItems && lineItem.lineItems.length > 0) {
|
|
70
|
+
lineItem.lineItems.forEach(childLineItem => {
|
|
71
|
+
callbackFn.apply(null, [childLineItem]);
|
|
72
|
+
traverseFn.apply(null, [childLineItem, callbackFn]);
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
replaceFn.apply(null, [rootLineItem]);
|
|
77
|
+
// rootLineItem.rootId = rootLineItem.id;
|
|
78
|
+
traverseFn.apply(null, [rootLineItem, replaceFn]);
|
|
79
|
+
}
|
|
80
|
+
static enrichPricingInfo(source, pricingDto) {
|
|
81
|
+
var _a;
|
|
82
|
+
const result = Object.assign({}, source);
|
|
83
|
+
if (pricingDto) {
|
|
84
|
+
result.productName = ((_a = pricingDto.properties) === null || _a === void 0 ? void 0 : _a.displayName) || pricingDto.productName;
|
|
85
|
+
result.type = pricingDto.type;
|
|
86
|
+
result.rootId = pricingDto.rootId;
|
|
87
|
+
result.assetId = pricingDto.assetId;
|
|
88
|
+
result.openOrderLineItemId = pricingDto.openOrderLineItemId;
|
|
89
|
+
result.activated = pricingDto.activated;
|
|
90
|
+
result.actionCode = pricingDto.actionCode;
|
|
91
|
+
result.serviceStartDate = pricingDto.serviceStartDate;
|
|
92
|
+
result.effectiveDate = pricingDto.effectiveDate;
|
|
93
|
+
result.startDate = pricingDto.startDate;
|
|
94
|
+
result.endDate = pricingDto.endDate;
|
|
95
|
+
result.offeringId = pricingDto.offeringId;
|
|
96
|
+
result.offeringItemId = pricingDto.offeringItemId;
|
|
97
|
+
result.offeringInstanceId = pricingDto.offeringInstanceId;
|
|
98
|
+
result.rampInstanceId = pricingDto.rampInstanceId;
|
|
99
|
+
result.planId = pricingDto.planId;
|
|
100
|
+
if (!result.chargeItems) {
|
|
101
|
+
result.chargeItems = pricingDto.chargeItems;
|
|
102
|
+
}
|
|
103
|
+
result.chargeGroupItems = [];
|
|
104
|
+
}
|
|
105
|
+
if (source.lineItems && source.lineItems.length > 0) {
|
|
106
|
+
result.lineItems = [];
|
|
107
|
+
source.lineItems.forEach((childSource) => {
|
|
108
|
+
const childDto = pricingDto && pricingDto.lineItems && pricingDto.lineItems.find(c => childSource.id === c.id);
|
|
109
|
+
const childItem = LineItemUtil.enrichPricingInfo(childSource, childDto);
|
|
110
|
+
result.lineItems.push(childItem);
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
return result;
|
|
114
|
+
}
|
|
115
|
+
static getLineItemPath(lineItem, rootLineItem) {
|
|
116
|
+
let path;
|
|
117
|
+
if (!lineItem.parentId) {
|
|
118
|
+
path = new LineItemPath('/' + lineItem.type);
|
|
119
|
+
path.abstractPath = path.path;
|
|
120
|
+
path.relativePath = path.path;
|
|
121
|
+
path.relativeAbstractPath = path.path;
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
//TOODO ALE SORT OUT PATENT ITEM
|
|
125
|
+
const parentItem = EntityUtil.findByFieldHierarchically('id', lineItem.parentId, [rootLineItem], 'lineItems');
|
|
126
|
+
const portType = lineItem.port && (parentItem === null || parentItem === void 0 ? void 0 : parentItem.portDomains[lineItem.port].type);
|
|
127
|
+
const parentPath = parentItem && LineItemUtil.getLineItemPath(parentItem, rootLineItem);
|
|
128
|
+
if (parentPath) {
|
|
129
|
+
path = new LineItemPath(parentPath.path + '/ports/' + lineItem.port + '/' + lineItem.type);
|
|
130
|
+
path.abstractPath = parentPath.abstractPath + '/ports/' + (lineItem.port + '/' + portType);
|
|
131
|
+
path.relativePath = '/' + lineItem.type;
|
|
132
|
+
path.relativeAbstractPath = '/' + portType;
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
throw 'Could not construct line item path';
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
return path;
|
|
139
|
+
}
|
|
140
|
+
static findById(parentId, lineItems) {
|
|
141
|
+
return EntityUtil.findByFieldHierarchically('id', parentId, lineItems, 'lineItems');
|
|
142
|
+
}
|
|
143
|
+
static countAttributeValues(scale, attributeDomain) {
|
|
144
|
+
const precision = LineItemUtil.precision(scale);
|
|
145
|
+
let count = 0;
|
|
146
|
+
attributeDomain.forEach(d => (count += d.max - d.min + precision));
|
|
147
|
+
return count;
|
|
148
|
+
}
|
|
149
|
+
static precision(scale) {
|
|
150
|
+
if (!scale) {
|
|
151
|
+
return 1;
|
|
152
|
+
}
|
|
153
|
+
let s = '1';
|
|
154
|
+
while (s.length < scale) {
|
|
155
|
+
s = '0' + s;
|
|
156
|
+
}
|
|
157
|
+
return Number('0.' + s);
|
|
158
|
+
}
|
|
159
|
+
static splitDomainToValues(scale, attributeDomain) {
|
|
160
|
+
const precision = this.precision(scale);
|
|
161
|
+
let values = [];
|
|
162
|
+
attributeDomain.forEach(interval => (values = values.concat(LineItemUtil.splitIntervalToValues(precision, interval))));
|
|
163
|
+
return values;
|
|
164
|
+
}
|
|
165
|
+
static splitIntervalToValues(precision, interval) {
|
|
166
|
+
const values = [];
|
|
167
|
+
for (let i = interval.min; i <= interval.max; i += precision) {
|
|
168
|
+
values.push(i);
|
|
169
|
+
}
|
|
170
|
+
return values;
|
|
171
|
+
}
|
|
172
|
+
static findLineItemsByPath(runtimeModel, lineItem, path) {
|
|
173
|
+
if (!runtimeModel.isEquals(lineItem.type, path.types[0])) {
|
|
174
|
+
return [];
|
|
175
|
+
}
|
|
176
|
+
let lineItems = [lineItem];
|
|
177
|
+
for (let i = 1; i < path.types.length; i++) {
|
|
178
|
+
const portName = path.ports[i - 1];
|
|
179
|
+
const typeName = path.types[i];
|
|
180
|
+
lineItems = LineItemUtil.findLineItemChildren(runtimeModel, lineItems, portName, typeName);
|
|
181
|
+
}
|
|
182
|
+
return lineItems;
|
|
183
|
+
}
|
|
184
|
+
static findLineItemChildren(runtimeModel, lineItems, portName, typeName) {
|
|
185
|
+
var _a;
|
|
186
|
+
const result = [];
|
|
187
|
+
for (const lineItem of lineItems) {
|
|
188
|
+
for (const childItem of lineItem.lineItems) {
|
|
189
|
+
if (((_a = childItem.port) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === portName.toLowerCase() &&
|
|
190
|
+
runtimeModel.isEquals(childItem.type, typeName)) {
|
|
191
|
+
result.push(childItem);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
return result;
|
|
196
|
+
}
|
|
197
|
+
static findLineItemsByType(runtimeModel, lineItem, typeName) {
|
|
198
|
+
const result = [];
|
|
199
|
+
let lineItems = [lineItem];
|
|
200
|
+
for (let i = 0; i < lineItems.length; i++) {
|
|
201
|
+
const lineItem = lineItems[i];
|
|
202
|
+
if (runtimeModel.isEquals(lineItem.type, typeName)) {
|
|
203
|
+
result.push(lineItem);
|
|
204
|
+
}
|
|
205
|
+
lineItems = lineItems.concat(lineItem.lineItems);
|
|
206
|
+
}
|
|
207
|
+
return result;
|
|
208
|
+
}
|
|
209
|
+
static findLineItemForValue(model, valueOption) {
|
|
210
|
+
if (!EntityUtil.isPresent(model) || !EntityUtil.isPresent(model.lineItems)) {
|
|
211
|
+
return;
|
|
212
|
+
}
|
|
213
|
+
return model.lineItems.find(li => li.type && li.type.toLowerCase() === valueOption.toLowerCase());
|
|
214
|
+
}
|
|
215
|
+
// TODO: add Product typings
|
|
216
|
+
static create(product, qty) {
|
|
217
|
+
var _a;
|
|
218
|
+
return {
|
|
219
|
+
id: UUID.UUID(),
|
|
220
|
+
type: product.typeName,
|
|
221
|
+
name: ((_a = product.properties) === null || _a === void 0 ? void 0 : _a.displayName) || product.name,
|
|
222
|
+
productName: product.name,
|
|
223
|
+
productId: product.id,
|
|
224
|
+
cfgStatus: 'User',
|
|
225
|
+
actionCode: 'ADD',
|
|
226
|
+
qty: qty || 1,
|
|
227
|
+
};
|
|
228
|
+
}
|
|
229
|
+
static upsert(value, collection) {
|
|
230
|
+
const index = collection.findIndex(item => item.id === value.id);
|
|
231
|
+
if (index > -1) {
|
|
232
|
+
collection[index] = value;
|
|
233
|
+
}
|
|
234
|
+
else {
|
|
235
|
+
collection.push(value);
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
static compareSortOrder(a, b) {
|
|
239
|
+
const orderA = Number(a.properties['SortOrder']);
|
|
240
|
+
const orderB = Number(b.properties['SortOrder']);
|
|
241
|
+
if (!orderA && !orderB) {
|
|
242
|
+
return LineItemUtil.compareProductName(a, b);
|
|
243
|
+
}
|
|
244
|
+
if (!orderA) {
|
|
245
|
+
return 1;
|
|
246
|
+
}
|
|
247
|
+
else if (!orderB) {
|
|
248
|
+
return -1;
|
|
249
|
+
}
|
|
250
|
+
const result = orderA - orderB;
|
|
251
|
+
if (result === 0) {
|
|
252
|
+
return LineItemUtil.compareProductName(a, b);
|
|
253
|
+
}
|
|
254
|
+
return result;
|
|
255
|
+
}
|
|
256
|
+
static sort(lineItems) {
|
|
257
|
+
if (lineItems) {
|
|
258
|
+
lineItems.sort((a, b) => LineItemUtil.compareSortOrder(a, b));
|
|
259
|
+
lineItems.forEach(i => LineItemUtil.sort(i.lineItems));
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
static compareProductName(a, b) {
|
|
263
|
+
var _a, _b;
|
|
264
|
+
if (a.productName) {
|
|
265
|
+
return ((_a = a.productName) !== null && _a !== void 0 ? _a : '').localeCompare((_b = b.productName) !== null && _b !== void 0 ? _b : '');
|
|
266
|
+
}
|
|
267
|
+
else if (b.productName) {
|
|
268
|
+
return 1;
|
|
269
|
+
}
|
|
270
|
+
return 0;
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZS1pdGVtLnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9ydW50aW1lL3V0aWxzL2xpbmUtaXRlbS51dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQXVDLElBQUksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUVyRixNQUFNLE9BQU8sWUFBWTtJQTBCdkIsWUFBWSxJQUFZO1FBeEJoQixrQkFBYSxHQUFHLEVBQUUsQ0FBQztRQUNuQiwwQkFBcUIsR0FBRyxFQUFFLENBQUM7UUFDM0Isa0JBQWEsR0FBRyxFQUFFLENBQUM7UUF1QnpCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUF0QkQsSUFBSSxZQUFZLENBQUMsWUFBb0I7UUFDbkMsSUFBSSxDQUFDLGFBQWEsR0FBRyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDbEQsQ0FBQztJQUVELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBSSxZQUFZLENBQUMsWUFBb0I7UUFDbkMsSUFBSSxDQUFDLGFBQWEsR0FBRyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDbEQsQ0FBQztJQUVELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ3pDLENBQUM7SUFFRCxJQUFJLG9CQUFvQixDQUFDLG9CQUE0QjtRQUNuRCxJQUFJLENBQUMscUJBQXFCLEdBQUcsb0JBQW9CLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDbEUsQ0FBQztJQU1ELFNBQVMsQ0FBQyxXQUF3QjtRQUNoQyxJQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUU7WUFDbkQsT0FBTyxL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dGl0eVV0aWwsIExpbmVJdGVtLCBSdW50aW1lTW9kZWwsIFNlY3Rpb25QYXRoLCBVVUlEIH0gZnJvbSAnQHZlbG9jZS9jb3JlJztcblxuZXhwb3J0IGNsYXNzIExpbmVJdGVtUGF0aCB7XG4gIHBhdGg6IHN0cmluZztcbiAgcHJpdmF0ZSBfcmVsYXRpdmVQYXRoID0gJyc7XG4gIHByaXZhdGUgX3JlbGF0aXZlQWJzdHJhY3RQYXRoID0gJyc7XG4gIHByaXZhdGUgX2Fic3RyYWN0UGF0aCA9ICcnO1xuXG4gIHNldCByZWxhdGl2ZVBhdGgocmVsYXRpdmVQYXRoOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9yZWxhdGl2ZVBhdGggPSByZWxhdGl2ZVBhdGgudG9Mb3dlckNhc2UoKTtcbiAgfVxuXG4gIGdldCByZWxhdGl2ZVBhdGgoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fcmVsYXRpdmVQYXRoO1xuICB9XG5cbiAgc2V0IGFic3RyYWN0UGF0aChhYnN0cmFjdFBhdGg6IHN0cmluZykge1xuICAgIHRoaXMuX2Fic3RyYWN0UGF0aCA9IGFic3RyYWN0UGF0aC50b0xvd2VyQ2FzZSgpO1xuICB9XG5cbiAgZ2V0IGFic3RyYWN0UGF0aCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9hYnN0cmFjdFBhdGggfHwgdGhpcy5wYXRoO1xuICB9XG5cbiAgc2V0IHJlbGF0aXZlQWJzdHJhY3RQYXRoKHJlbGF0aXZlQWJzdHJhY3RQYXRoOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9yZWxhdGl2ZUFic3RyYWN0UGF0aCA9IHJlbGF0aXZlQWJzdHJhY3RQYXRoLnRvTG93ZXJDYXNlKCk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihwYXRoOiBzdHJpbmcpIHtcbiAgICB0aGlzLnBhdGggPSBwYXRoLnRvTG93ZXJDYXNlKCk7XG4gIH1cblxuICBpc0VxdWFsVG8oc2VjdGlvblBhdGg6IFNlY3Rpb25QYXRoKTogYm9vbGVhbiB7XG4gICAgaWYgKCFzZWN0aW9uUGF0aCB8fCAhdGhpcy5wYXRoIHx8ICFzZWN0aW9uUGF0aC5wYXRoKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3Qgb3RoZXJQYXRoID0gc2VjdGlvblBhdGgucGF0aC50b0xvd2VyQ2FzZSgpO1xuICAgIGNvbnN0IGlzRXF1YWwgPVxuICAgICAgdGhpcy5wYXRoID09PSBvdGhlclBhdGggfHwgdGhpcy5fcmVsYXRpdmVQYXRoID09PSBvdGhlclBhdGggfHwgdGhpcy5fcmVsYXRpdmVBYnN0cmFjdFBhdGggPT09IG90aGVyUGF0aDtcblxuICAgIC8vVE9ETyBBTEUgU09SVCBPVVQgU0VBUkNIXG4gICAgaWYgKCFpc0VxdWFsKSB7XG4gICAgICBjb25zdCBhYnN0cmFjdFBhdGhNYXRjaCA9IHRoaXMuX2Fic3RyYWN0UGF0aCA9PT0gc2VjdGlvblBhdGguYWJzdHJhY3RQYXRoLnRvTG93ZXJDYXNlKCk7XG4gICAgICBjb25zdCByZWxhdGl2ZVBhdGhNYXRjaCA9IHRoaXMuX3JlbGF0aXZlUGF0aFxuICAgICAgICA/IHRoaXMuX3JlbGF0aXZlUGF0aCA9PT0gc2VjdGlvblBhdGgucmVsYXRpdmVQYXRoLnRvTG93ZXJDYXNlKClcbiAgICAgICAgOiBmYWxzZTtcbiAgICAgIGNvbnN0IHJlbGF0aXZlQWJzdHJhY3RQYXRoTWF0Y2ggPVxuICAgICAgICB0aGlzLl9yZWxhdGl2ZUFic3RyYWN0UGF0aCAmJiBzZWN0aW9uUGF0aC5yZWxhdGl2ZUFic3RyYWN0UGF0aFxuICAgICAgICAgID8gc2VjdGlvblBhdGgucmVsYXRpdmVBYnN0cmFjdFBhdGgudG9Mb3dlckNhc2UoKSA9PT0gc2VjdGlvblBhdGgucmVsYXRpdmVQYXRoLnRvTG93ZXJDYXNlKCkgJiZcbiAgICAgICAgICAgIHRoaXMuX3JlbGF0aXZlQWJzdHJhY3RQYXRoID09PSBzZWN0aW9uUGF0aC5yZWxhdGl2ZVBhdGgudG9Mb3dlckNhc2UoKVxuICAgICAgICAgIDogZmFsc2U7XG4gICAgICByZXR1cm4gYWJzdHJhY3RQYXRoTWF0Y2ggJiYgKHJlbGF0aXZlUGF0aE1hdGNoIHx8IHJlbGF0aXZlQWJzdHJhY3RQYXRoTWF0Y2gpO1xuICAgIH1cblxuICAgIHJldHVybiBpc0VxdWFsO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBMaW5lSXRlbVV0aWwge1xuICBzdGF0aWMgcmVtb3ZlRGVsZXRlZEl0ZW1zKG9yaWdpbmFsOiBMaW5lSXRlbSk6IExpbmVJdGVtIHtcbiAgICBjb25zdCByb290ID0gRW50aXR5VXRpbC5jbG9uZShvcmlnaW5hbCk7XG5cbiAgICBpZiAocm9vdCkge1xuICAgICAgbGV0IGl0ZW1zID0gW3Jvb3RdO1xuXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IGl0ZW0gPSBpdGVtc1tpXTtcbiAgICAgICAgaXRlbS5saW5lSXRlbXMgPSAoaXRlbS5saW5lSXRlbXMgPz8gW10pLmZpbHRlcihsID0+IGwuYWN0aW9uQ29kZSAhPT0gJ0RFTEVURScpO1xuICAgICAgICBpdGVtcyA9IGl0ZW1zLmNvbmNhdChpdGVtLmxpbmVJdGVtcyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHJvb3Q7XG4gIH1cblxuICBzdGF0aWMgcmVwbGFjZUxpbmVJdGVtS2V5cyhyb290TGluZUl0ZW06IExpbmVJdGVtKTogdm9pZCB7XG4gICAgY29uc3QgcmVwbGFjZUZuID0gKGl0ZW06IExpbmVJdGVtKSA9PiB7XG4gICAgICBpdGVtLmlkID0gaXRlbS5pZCA/ICdEVU1NWS0nICsgaXRlbS5pZCA6IGl0ZW0uaWQ7XG4gICAgICBpdGVtLnJvb3RJZCA9IGl0ZW0ucm9vdElkID8gJ0RVTU1ZLScgKyBpdGVtLnJvb3RJZCA6IGl0ZW0ucm9vdElkO1xuICAgICAgaXRlbS5wYXJlbnRJZCA9IGl0ZW0ucGFyZW50SWQgPyAnRFVNTVktJyArIGl0ZW0ucGFyZW50SWQgOiBpdGVtLnBhcmVudElkO1xuICAgICAgaXRlbS5vZmZlcmluZ0luc3RhbmNlSWQgPSBpdGVtLm9mZmVyaW5nSW5zdGFuY2VJZCA/ICdEVU1NWS0nICsgaXRlbS5vZmZlcmluZ0luc3RhbmNlSWQgOiB2b2lkIDA7XG4gICAgICBpdGVtLm9mZmVyaW5nSXRlbUlkID0gaXRlbS5vZmZlcmluZ0l0ZW1JZCA/ICdEVU1NWS0nICsgaXRlbS5vZmZlcmluZ0l0ZW1JZCA6IHZvaWQgMDtcbiAgICAgIGl0ZW0ucmFtcEluc3RhbmNlSWQgPSBpdGVtLnJhbXBJbnN0YW5jZUlkID8gJ0RVTU1ZLScgKyBpdGVtLnJhbXBJbnN0YW5jZUlkIDogdm9pZCAwO1xuICAgIH07XG5cbiAgICBjb25zdCB0cmF2ZXJzZUZuID0gKGxpbmVJdGVtOiBMaW5lSXRlbSwgY2FsbGJhY2tGbjogYW55KSA9PiB7XG4gICAgICBpZiAobGluZUl0ZW0ubGluZUl0ZW1zICYmIGxpbmVJdGVtLmxpbmVJdGVtcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGxpbmVJdGVtLmxpbmVJdGVtcy5mb3JFYWNoKGNoaWxkTGluZUl0ZW0gPT4ge1xuICAgICAgICAgIGNhbGxiYWNrRm4uYXBwbHkobnVsbCwgW2NoaWxkTGluZUl0ZW1dKTtcbiAgICAgICAgICB0cmF2ZXJzZUZuLmFwcGx5KG51bGwsIFtjaGlsZExpbmVJdGVtLCBjYWxsYmFja0ZuXSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH07XG5cbiAgICByZXBsYWNlRm4uYXBwbHkobnVsbCwgW3Jvb3RMaW5lSXRlbV0pO1xuICAgIC8vIHJvb3RMaW5lSXRlbS5yb290SWQgPSByb290TGluZUl0ZW0uaWQ7XG5cbiAgICB0cmF2ZXJzZUZuLmFwcGx5KG51bGwsIFtyb290TGluZUl0ZW0sIHJlcGxhY2VGbl0pO1xuICB9XG5cbiAgc3RhdGljIGVucmljaFByaWNpbmdJbmZvKHNvdXJjZTogTGluZUl0ZW0sIHByaWNpbmdEdG8/OiBMaW5lSXRlbSk6IExpbmVJdGVtIHtcbiAgICBjb25zdCByZXN1bHQ6IExpbmVJdGVtID0ge1xuICAgICAgLi4uc291cmNlLFxuICAgIH07XG5cbiAgICBpZiAocHJpY2luZ0R0bykge1xuICAgICAgcmVzdWx0LnByb2R1Y3ROYW1lID0gcHJpY2luZ0R0by5wcm9wZXJ0aWVzPy5kaXNwbGF5TmFtZSB8fCBwcmljaW5nRHRvLnByb2R1Y3ROYW1lO1xuICAgICAgcmVzdWx0LnR5cGUgPSBwcmljaW5nRHRvLnR5cGU7XG4gICAgICByZXN1bHQucm9vdElkID0gcHJpY2luZ0R0by5yb290SWQ7XG4gICAgICByZXN1bHQuYXNzZXRJZCA9IHByaWNpbmdEdG8uYXNzZXRJZDtcbiAgICAgIHJlc3VsdC5vcGVuT3JkZXJMaW5lSXRlbUlkID0gcHJpY2luZ0R0by5vcGVuT3JkZXJMaW5lSXRlbUlkO1xuICAgICAgcmVzdWx0LmFjdGl2YXRlZCA9IHByaWNpbmdEdG8uYWN0aXZhdGVkO1xuICAgICAgcmVzdWx0LmFjdGlvbkNvZGUgPSBwcmljaW5nRHRvLmFjdGlvbkNvZGU7XG4gICAgICByZXN1bHQuc2VydmljZVN0YXJ0RGF0ZSA9IHByaWNpbmdEdG8uc2VydmljZVN0YXJ0RGF0ZTtcbiAgICAgIHJlc3VsdC5lZmZlY3RpdmVEYXRlID0gcHJpY2luZ0R0by5lZmZlY3RpdmVEYXRlO1xuICAgICAgcmVzdWx0LnN0YXJ0RGF0ZSA9IHByaWNpbmdEdG8uc3RhcnREYXRlO1xuICAgICAgcmVzdWx0LmVuZERhdGUgPSBwcmljaW5nRHRvLmVuZERhdGU7XG4gICAgICByZXN1bHQub2ZmZXJpbmdJZCA9IHByaWNpbmdEdG8ub2ZmZXJpbmdJZDtcbiAgICAgIHJlc3VsdC5vZmZlcmluZ0l0ZW1JZCA9IHByaWNpbmdEdG8ub2ZmZXJpbmdJdGVtSWQ7XG4gICAgICByZXN1bHQub2ZmZXJpbmdJbnN0YW5jZUlkID0gcHJpY2luZ0R0by5vZmZlcmluZ0luc3RhbmNlSWQ7XG4gICAgICByZXN1bHQucmFtcEluc3RhbmNlSWQgPSBwcmljaW5nRHRvLnJhbXBJbnN0YW5jZUlkO1xuICAgICAgcmVzdWx0LnBsYW5JZCA9IHByaWNpbmdEdG8ucGxhbklkO1xuXG4gICAgICBpZiAoIXJlc3VsdC5jaGFyZ2VJdGVtcykge1xuICAgICAgICByZXN1bHQuY2hhcmdlSXRlbXMgPSBwcmljaW5nRHRvLmNoYXJnZUl0ZW1zO1xuICAgICAgfVxuICAgICAgcmVzdWx0LmNoYXJnZUdyb3VwSXRlbXMgPSBbXTtcbiAgICB9XG5cbiAgICBpZiAoc291cmNlLmxpbmVJdGVtcyAmJiBzb3VyY2UubGluZUl0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgIHJlc3VsdC5saW5lSXRlbXMgPSBbXTtcblxuICAgICAgc291cmNlLmxpbmVJdGVtcy5mb3JFYWNoKChjaGlsZFNvdXJjZTogTGluZUl0ZW0pID0+IHtcbiAgICAgICAgY29uc3QgY2hpbGREdG8gPSBwcmljaW5nRHRvICYmIHByaWNpbmdEdG8ubGluZUl0ZW1zICYmIHByaWNpbmdEdG8ubGluZUl0ZW1zLmZpbmQoYyA9PiBjaGlsZFNvdXJjZS5pZCA9PT0gYy5pZCk7XG5cbiAgICAgICAgY29uc3QgY2hpbGRJdGVtID0gTGluZUl0ZW1VdGlsLmVucmljaFByaWNpbmdJbmZvKGNoaWxkU291cmNlLCBjaGlsZER0byk7XG5cbiAgICAgICAgcmVzdWx0LmxpbmVJdGVtcy5wdXNoKGNoaWxkSXRlbSk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgc3RhdGljIGdldExpbmVJdGVtUGF0aChsaW5lSXRlbTogTGluZUl0ZW0sIHJvb3RMaW5lSXRlbTogTGluZUl0ZW0pOiBMaW5lSXRlbVBhdGgge1xuICAgIGxldCBwYXRoOiBMaW5lSXRlbVBhdGg7XG5cbiAgICBpZiAoIWxpbmVJdGVtLnBhcmVudElkKSB7XG4gICAgICBwYXRoID0gbmV3IExpbmVJdGVtUGF0aCgnLycgKyBsaW5lSXRlbS50eXBlKTtcblxuICAgICAgcGF0aC5hYnN0cmFjdFBhdGggPSBwYXRoLnBhdGg7XG4gICAgICBwYXRoLnJlbGF0aXZlUGF0aCA9IHBhdGgucGF0aDtcbiAgICAgIHBhdGgucmVsYXRpdmVBYnN0cmFjdFBhdGggPSBwYXRoLnBhdGg7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vVE9PRE8gQUxFIFNPUlQgT1VUIFBBVEVOVCBJVEVNXG4gICAgICBjb25zdCBwYXJlbnRJdGVtID0gRW50aXR5VXRpbC5maW5kQnlGaWVsZEhpZXJhcmNoaWNhbGx5PExpbmVJdGVtPihcbiAgICAgICAgJ2lkJyxcbiAgICAgICAgbGluZUl0ZW0ucGFyZW50SWQsXG4gICAgICAgIFtyb290TGluZUl0ZW1dLFxuICAgICAgICAnbGluZUl0ZW1zJyxcbiAgICAgICk7XG5cbiAgICAgIGNvbnN0IHBvcnRUeXBlID0gbGluZUl0ZW0ucG9ydCAmJiBwYXJlbnRJdGVtPy5wb3J0RG9tYWluc1tsaW5lSXRlbS5wb3J0XS50eXBlO1xuXG4gICAgICBjb25zdCBwYXJlbnRQYXRoID0gcGFyZW50SXRlbSAmJiBMaW5lSXRlbVV0aWwuZ2V0TGluZUl0ZW1QYXRoKHBhcmVudEl0ZW0sIHJvb3RMaW5lSXRlbSk7XG5cbiAgICAgIGlmIChwYXJlbnRQYXRoKSB7XG4gICAgICAgIHBhdGggPSBuZXcgTGluZUl0ZW1QYXRoKHBhcmVudFBhdGgucGF0aCArICcvcG9ydHMvJyArIGxpbmVJdGVtLnBvcnQgKyAnLycgKyBsaW5lSXRlbS50eXBlKTtcblxuICAgICAgICBwYXRoLmFic3RyYWN0UGF0aCA9IHBhcmVudFBhdGguYWJzdHJhY3RQYXRoICsgJy9wb3J0cy8nICsgKGxpbmVJdGVtLnBvcnQgKyAnLycgKyBwb3J0VHlwZSk7XG4gICAgICAgIHBhdGgucmVsYXRpdmVQYXRoID0gJy8nICsgbGluZUl0ZW0udHlwZTtcbiAgICAgICAgcGF0aC5yZWxhdGl2ZUFic3RyYWN0UGF0aCA9ICcvJyArIHBvcnRUeXBlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgJ0NvdWxkIG5vdCBjb25zdHJ1Y3QgbGluZSBpdGVtIHBhdGgnO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBwYXRoO1xuICB9XG5cbiAgc3RhdGljIGZpbmRCeUlkKHBhcmVudElkOiBzdHJpbmcsIGxpbmVJdGVtczogTGluZUl0ZW1bXSk6IExpbmVJdGVtIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gRW50aXR5VXRpbC5maW5kQnlGaWVsZEhpZXJhcmNoaWNhbGx5KCdpZCcsIHBhcmVudElkLCBsaW5lSXRlbXMsICdsaW5lSXRlbXMnKTtcbiAgfVxuXG4gIHN0YXRpYyBjb3VudEF0dHJpYnV0ZVZhbHVlcyhzY2FsZTogbnVtYmVyLCBhdHRyaWJ1dGVEb21haW46IGFueVtdKSB7XG4gICAgY29uc3QgcHJlY2lzaW9uID0gTGluZUl0ZW1VdGlsLnByZWNpc2lvbihzY2FsZSk7XG4gICAgbGV0IGNvdW50ID0gMDtcbiAgICBhdHRyaWJ1dGVEb21haW4uZm9yRWFjaChkID0+IChjb3VudCArPSBkLm1heCAtIGQubWluICsgcHJlY2lzaW9uKSk7XG4gICAgcmV0dXJuIGNvdW50O1xuICB9XG5cbiAgc3RhdGljIHByZWNpc2lvbihzY2FsZTogbnVtYmVyKTogbnVtYmVyIHtcbiAgICBpZiAoIXNjYWxlKSB7XG4gICAgICByZXR1cm4gMTtcbiAgICB9XG4gICAgbGV0IHMgPSAnMSc7XG4gICAgd2hpbGUgKHMubGVuZ3RoIDwgc2NhbGUpIHtcbiAgICAgIHMgPSAnMCcgKyBzO1xuICAgIH1cbiAgICByZXR1cm4gTnVtYmVyKCcwLicgKyBzKTtcbiAgfVxuXG4gIHN0YXRpYyBzcGxpdERvbWFpblRvVmFsdWVzKHNjYWxlOiBudW1iZXIsIGF0dHJpYnV0ZURvbWFpbjogYW55W10pOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgcHJlY2lzaW9uID0gdGhpcy5wcmVjaXNpb24oc2NhbGUpO1xuICAgIGxldCB2YWx1ZXM6IHN0cmluZ1tdID0gW107XG4gICAgYXR0cmlidXRlRG9tYWluLmZvckVhY2goXG4gICAgICBpbnRlcnZhbCA9PiAodmFsdWVzID0gdmFsdWVzLmNvbmNhdChMaW5lSXRlbVV0aWwuc3BsaXRJbnRlcnZhbFRvVmFsdWVzKHByZWNpc2lvbiwgaW50ZXJ2YWwpKSksXG4gICAgKTtcbiAgICByZXR1cm4gdmFsdWVzO1xuICB9XG5cbiAgc3RhdGljIHNwbGl0SW50ZXJ2YWxUb1ZhbHVlcyhwcmVjaXNpb246IG51bWJlciwgaW50ZXJ2YWw6IGFueSkge1xuICAgIGNvbnN0IHZhbHVlcyA9IFtdO1xuICAgIGZvciAobGV0IGkgPSBpbnRlcnZhbC5taW47IGkgPD0gaW50ZXJ2YWwubWF4OyBpICs9IHByZWNpc2lvbikge1xuICAgICAgdmFsdWVzLnB1c2goaSk7XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZXM7XG4gIH1cblxuICBzdGF0aWMgZmluZExpbmVJdGVtc0J5UGF0aChydW50aW1lTW9kZWw6IFJ1bnRpbWVNb2RlbCwgbGluZUl0ZW06IExpbmVJdGVtLCBwYXRoOiBTZWN0aW9uUGF0aCk6IExpbmVJdGVtW10ge1xuICAgIGlmICghcnVudGltZU1vZGVsLmlzRXF1YWxzKGxpbmVJdGVtLnR5cGUsIHBhdGgudHlwZXNbMF0pKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICAgIGxldCBsaW5lSXRlbXMgPSBbbGluZUl0ZW1dO1xuICAgIGZvciAobGV0IGkgPSAxOyBpIDwgcGF0aC50eXBlcy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgcG9ydE5hbWUgPSBwYXRoLnBvcnRzW2kgLSAxXTtcbiAgICAgIGNvbnN0IHR5cGVOYW1lID0gcGF0aC50eXBlc1tpXTtcbiAgICAgIGxpbmVJdGVtcyA9IExpbmVJdGVtVXRpbC5maW5kTGluZUl0ZW1DaGlsZHJlbihydW50aW1lTW9kZWwsIGxpbmVJdGVtcywgcG9ydE5hbWUsIHR5cGVOYW1lKTtcbiAgICB9XG4gICAgcmV0dXJuIGxpbmVJdGVtcztcbiAgfVxuXG4gIHN0YXRpYyBmaW5kTGluZUl0ZW1DaGlsZHJlbihydW50aW1lTW9kZWw6IFJ1bnRpbWVNb2RlbCwgbGluZUl0ZW1zOiBMaW5lSXRlbVtdLCBwb3J0TmFtZTogc3RyaW5nLCB0eXBlTmFtZTogc3RyaW5nKSB7XG4gICAgY29uc3QgcmVzdWx0ID0gW107XG4gICAgZm9yIChjb25zdCBsaW5lSXRlbSBvZiBsaW5lSXRlbXMpIHtcbiAgICAgIGZvciAoY29uc3QgY2hpbGRJdGVtIG9mIGxpbmVJdGVtLmxpbmVJdGVtcykge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgY2hpbGRJdGVtLnBvcnQ/LnRvTG93ZXJDYXNlKCkgPT09IHBvcnROYW1lLnRvTG93ZXJDYXNlKCkgJiZcbiAgICAgICAgICBydW50aW1lTW9kZWwuaXNFcXVhbHMoY2hpbGRJdGVtLnR5cGUsIHR5cGVOYW1lKVxuICAgICAgICApIHtcbiAgICAgICAgICByZXN1bHQucHVzaChjaGlsZEl0ZW0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBzdGF0aWMgZmluZExpbmVJdGVtc0J5VHlwZShydW50aW1lTW9kZWw6IFJ1bnRpbWVNb2RlbCwgbGluZUl0ZW06IExpbmVJdGVtLCB0eXBlTmFtZTogc3RyaW5nKSB7XG4gICAgY29uc3QgcmVzdWx0ID0gW107XG4gICAgbGV0IGxpbmVJdGVtcyA9IFtsaW5lSXRlbV07XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsaW5lSXRlbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IGxpbmVJdGVtID0gbGluZUl0ZW1zW2ldO1xuICAgICAgaWYgKHJ1bnRpbWVNb2RlbC5pc0VxdWFscyhsaW5lSXRlbS50eXBlLCB0eXBlTmFtZSkpIHtcbiAgICAgICAgcmVzdWx0LnB1c2gobGluZUl0ZW0pO1xuICAgICAgfVxuICAgICAgbGluZUl0ZW1zID0gbGluZUl0ZW1zLmNvbmNhdChsaW5lSXRlbS5saW5lSXRlbXMpO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBzdGF0aWMgZmluZExpbmVJdGVtRm9yVmFsdWUobW9kZWw6IExpbmVJdGVtLCB2YWx1ZU9wdGlvbjogc3RyaW5nKTogTGluZUl0ZW0gfCB1bmRlZmluZWQge1xuICAgIGlmICghRW50aXR5VXRpbC5pc1ByZXNlbnQobW9kZWwpIHx8ICFFbnRpdHlVdGlsLmlzUHJlc2VudChtb2RlbC5saW5lSXRlbXMpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgcmV0dXJuIG1vZGVsLmxpbmVJdGVtcy5maW5kKGxpID0+IGxpLnR5cGUgJiYgbGkudHlwZS50b0xvd2VyQ2FzZSgpID09PSB2YWx1ZU9wdGlvbi50b0xvd2VyQ2FzZSgpKTtcbiAgfVxuXG4gIC8vIFRPRE86IGFkZCBQcm9kdWN0IHR5cGluZ3NcbiAgc3RhdGljIGNyZWF0ZShwcm9kdWN0OiBhbnksIHF0eT86IG51bWJlcik6IExpbmVJdGVtIHtcbiAgICByZXR1cm4ge1xuICAgICAgaWQ6IFVVSUQuVVVJRCgpLFxuICAgICAgdHlwZTogcHJvZHVjdC50eXBlTmFtZSxcbiAgICAgIG5hbWU6IHByb2R1Y3QucHJvcGVydGllcz8uZGlzcGxheU5hbWUgfHwgcHJvZHVjdC5uYW1lLFxuICAgICAgcHJvZHVjdE5hbWU6IHByb2R1Y3QubmFtZSxcbiAgICAgIHByb2R1Y3RJZDogcHJvZHVjdC5pZCxcbiAgICAgIGNmZ1N0YXR1czogJ1VzZXInLFxuICAgICAgYWN0aW9uQ29kZTogJ0FERCcsXG4gICAgICBxdHk6IHF0eSB8fCAxLFxuICAgIH0gYXMgTGluZUl0ZW07XG4gIH1cblxuICBzdGF0aWMgdXBzZXJ0KHZhbHVlOiBMaW5lSXRlbSwgY29sbGVjdGlvbjogTGluZUl0ZW1bXSkge1xuICAgIGNvbnN0IGluZGV4ID0gY29sbGVjdGlvbi5maW5kSW5kZXgoaXRlbSA9PiBpdGVtLmlkID09PSB2YWx1ZS5pZCk7XG4gICAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICAgIGNvbGxlY3Rpb25baW5kZXhdID0gdmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbGxlY3Rpb24ucHVzaCh2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIGNvbXBhcmVTb3J0T3JkZXIoYTogTGluZUl0ZW0sIGI6IExpbmVJdGVtKSB7XG4gICAgY29uc3Qgb3JkZXJBID0gTnVtYmVyKGEucHJvcGVydGllc1snU29ydE9yZGVyJ10pO1xuICAgIGNvbnN0IG9yZGVyQiA9IE51bWJlcihiLnByb3BlcnRpZXNbJ1NvcnRPcmRlciddKTtcbiAgICBpZiAoIW9yZGVyQSAmJiAhb3JkZXJCKSB7XG4gICAgICByZXR1cm4gTGluZUl0ZW1VdGlsLmNvbXBhcmVQcm9kdWN0TmFtZShhLCBiKTtcbiAgICB9XG4gICAgaWYgKCFvcmRlckEpIHtcbiAgICAgIHJldHVybiAxO1xuICAgIH0gZWxzZSBpZiAoIW9yZGVyQikge1xuICAgICAgcmV0dXJuIC0xO1xuICAgIH1cbiAgICBjb25zdCByZXN1bHQgPSBvcmRlckEgLSBvcmRlckI7XG4gICAgaWYgKHJlc3VsdCA9PT0gMCkge1xuICAgICAgcmV0dXJuIExpbmVJdGVtVXRpbC5jb21wYXJlUHJvZHVjdE5hbWUoYSwgYik7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBzdGF0aWMgc29ydChsaW5lSXRlbXM6IExpbmVJdGVtW10pIHtcbiAgICBpZiAobGluZUl0ZW1zKSB7XG4gICAgICBsaW5lSXRlbXMuc29ydCgoYSwgYikgPT4gTGluZUl0ZW1VdGlsLmNvbXBhcmVTb3J0T3JkZXIoYSwgYikpO1xuICAgICAgbGluZUl0ZW1zLmZvckVhY2goaSA9PiBMaW5lSXRlbVV0aWwuc29ydChpLmxpbmVJdGVtcykpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGNvbXBhcmVQcm9kdWN0TmFtZShhOiBMaW5lSXRlbSwgYjogTGluZUl0ZW0pIHtcbiAgICBpZiAoYS5wcm9kdWN0TmFtZSkge1xuICAgICAgcmV0dXJuIChhLnByb2R1Y3ROYW1lID8/ICcnKS5sb2NhbGVDb21wYXJlKGIucHJvZHVjdE5hbWUgPz8gJycpO1xuICAgIH0gZWxzZSBpZiAoYi5wcm9kdWN0TmFtZSkge1xuICAgICAgcmV0dXJuIDE7XG4gICAgfVxuICAgIHJldHVybiAwO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { EntityUtil } from '@veloce/core';
|
|
2
|
+
export const getSectionTree = (src) => {
|
|
3
|
+
const sections = EntityUtil.clone(src);
|
|
4
|
+
const sectionIdMap = new Map();
|
|
5
|
+
sections.forEach(section => sectionIdMap.set(section.id, section));
|
|
6
|
+
const sectionTree = [];
|
|
7
|
+
sections.forEach(section => {
|
|
8
|
+
if (section.parentId) {
|
|
9
|
+
const parentSection = sectionIdMap.get(section.parentId);
|
|
10
|
+
if (parentSection) {
|
|
11
|
+
const sectionFromMap = sectionIdMap.get(section.id);
|
|
12
|
+
if (sectionFromMap) {
|
|
13
|
+
parentSection.addChild(sectionFromMap);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
const s = sectionIdMap.get(section.id);
|
|
19
|
+
if (s) {
|
|
20
|
+
sectionTree.push(s);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
return sectionTree;
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbi51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL3J1bnRpbWUvdXRpbHMvc2VjdGlvbi51dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFXLE1BQU0sY0FBYyxDQUFDO0FBRW5ELE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxDQUFDLEdBQWMsRUFBYSxFQUFFO0lBQzFELE1BQU0sUUFBUSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFdkMsTUFBTSxZQUFZLEdBQUcsSUFBSSxHQUFHLEVBQW1CLENBQUM7SUFFaEQsUUFBUSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBRW5FLE1BQU0sV0FBVyxHQUFjLEVBQUUsQ0FBQztJQUNsQyxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ3pCLElBQUksT0FBTyxDQUFDLFFBQVEsRUFBRTtZQUNwQixNQUFNLGFBQWEsR0FBRyxZQUFZLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN6RCxJQUFJLGFBQWEsRUFBRTtnQkFDakIsTUFBTSxjQUFjLEdBQUcsWUFBWSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ3BELElBQUksY0FBYyxFQUFFO29CQUNsQixhQUFhLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDO2lCQUN4QzthQUNGO1NBQ0Y7YUFBTTtZQUNMLE1BQU0sQ0FBQyxHQUFHLFlBQVksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxFQUFFO2dCQUNMLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDckI7U0FDRjtJQUNILENBQUMsQ0FBQyxDQUFDO0lBRUgsT0FBTyxXQUFXLENBQUM7QUFDckIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW50aXR5VXRpbCwgU2VjdGlvbiB9IGZyb20gJ0B2ZWxvY2UvY29yZSc7XG5cbmV4cG9ydCBjb25zdCBnZXRTZWN0aW9uVHJlZSA9IChzcmM6IFNlY3Rpb25bXSk6IFNlY3Rpb25bXSA9PiB7XG4gIGNvbnN0IHNlY3Rpb25zID0gRW50aXR5VXRpbC5jbG9uZShzcmMpO1xuXG4gIGNvbnN0IHNlY3Rpb25JZE1hcCA9IG5ldyBNYXA8c3RyaW5nLCBTZWN0aW9uPigpO1xuXG4gIHNlY3Rpb25zLmZvckVhY2goc2VjdGlvbiA9PiBzZWN0aW9uSWRNYXAuc2V0KHNlY3Rpb24uaWQsIHNlY3Rpb24pKTtcblxuICBjb25zdCBzZWN0aW9uVHJlZTogU2VjdGlvbltdID0gW107XG4gIHNlY3Rpb25zLmZvckVhY2goc2VjdGlvbiA9PiB7XG4gICAgaWYgKHNlY3Rpb24ucGFyZW50SWQpIHtcbiAgICAgIGNvbnN0IHBhcmVudFNlY3Rpb24gPSBzZWN0aW9uSWRNYXAuZ2V0KHNlY3Rpb24ucGFyZW50SWQpO1xuICAgICAgaWYgKHBhcmVudFNlY3Rpb24pIHtcbiAgICAgICAgY29uc3Qgc2VjdGlvbkZyb21NYXAgPSBzZWN0aW9uSWRNYXAuZ2V0KHNlY3Rpb24uaWQpO1xuICAgICAgICBpZiAoc2VjdGlvbkZyb21NYXApIHtcbiAgICAgICAgICBwYXJlbnRTZWN0aW9uLmFkZENoaWxkKHNlY3Rpb25Gcm9tTWFwKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBzID0gc2VjdGlvbklkTWFwLmdldChzZWN0aW9uLmlkKTtcbiAgICAgIGlmIChzKSB7XG4gICAgICAgIHNlY3Rpb25UcmVlLnB1c2gocyk7XG4gICAgICB9XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gc2VjdGlvblRyZWU7XG59O1xuIl19
|