@veloceapps/sdk 7.0.0-8 → 7.0.1-0
Sign up to get free protection for your applications and to get access to all the features.
- package/cms/README.md +45 -0
- package/cms/cms.actions.d.ts +10 -0
- package/cms/components/element-children/element-children.component.d.ts +1 -1
- package/cms/components/element-drop-handle/element-drop-handle.component.d.ts +1 -1
- package/cms/components/element-renderer/element-renderer.component.d.ts +1 -1
- package/cms/components/plugin.component.d.ts +2 -2
- package/cms/components/preview/preview.component.d.ts +4 -3
- package/cms/directives/custom-template.directive.d.ts +1 -1
- package/cms/modules/federated/federated-host.directive.d.ts +8 -0
- package/cms/modules/federated/federated.component.d.ts +5 -7
- package/cms/modules/federated/federated.module.d.ts +4 -3
- package/cms/modules/federated/federated.types.d.ts +1 -5
- package/cms/modules/migrations/types/migrations.types.d.ts +1 -1
- package/cms/plugins/configuration.plugin.d.ts +1 -1
- package/cms/plugins/io.plugin.d.ts +1 -1
- package/cms/plugins/region.plugin.d.ts +1 -1
- package/cms/plugins/script.plugin.d.ts +1 -1
- package/cms/services/templates.service.d.ts +1 -1
- package/cms/types/common.types.d.ts +2 -2
- package/cms/types/elements.types.d.ts +1 -1
- package/cms/types/integration.types.d.ts +1 -1
- package/cms/types/layouts.types.d.ts +1 -1
- package/cms/utils/element.utils.d.ts +2 -2
- package/cms/vendor-map.d.ts +2 -1
- package/core/README.md +5 -0
- package/core/modules/flow-configuration/types/update.types.d.ts +2 -2
- package/core/services/metric-calculation/metric-calculation.types.d.ts +1 -1
- package/core/types/ui-definition.types.d.ts +2 -2
- package/esm2020/cms/cms.actions.mjs +56 -0
- package/esm2020/cms/components/element-children/element-children.component.mjs +35 -0
- package/esm2020/cms/components/element-children/element-children.module.mjs +20 -0
- package/esm2020/cms/components/element-drop-handle/element-drop-handle.component.mjs +28 -0
- package/esm2020/cms/components/element-drop-handle/element-drop-handle.module.mjs +19 -0
- package/esm2020/cms/components/element-renderer/element-renderer.component.mjs +160 -0
- package/{esm2015/cms/components/element-renderer/element-renderer.module.js → esm2020/cms/components/element-renderer/element-renderer.module.mjs} +5 -5
- package/esm2020/cms/components/element.component.mjs +45 -0
- package/esm2020/cms/components/plugin.component.mjs +17 -0
- package/esm2020/cms/components/preview/preview.component.mjs +103 -0
- package/esm2020/cms/components/preview/preview.module.mjs +24 -0
- package/esm2020/cms/directives/custom-template.directive.mjs +26 -0
- package/esm2020/cms/engine/models/entity.mjs +17 -0
- package/esm2020/cms/launcher.module.mjs +24 -0
- package/esm2020/cms/modules/federated/federated-host.directive.mjs +16 -0
- package/esm2020/cms/modules/federated/federated.component.mjs +64 -0
- package/esm2020/cms/modules/federated/federated.module.mjs +20 -0
- package/esm2020/cms/modules/federated/federated.types.mjs +2 -0
- package/esm2020/cms/modules/migrations/migrations.mjs +15 -0
- package/{esm2015/cms/modules/migrations/migrations.module.js → esm2020/cms/modules/migrations/migrations.module.mjs} +5 -5
- package/esm2020/cms/modules/migrations/services/migrations.service.mjs +43 -0
- package/{esm2015/cms/modules/runtime/runtime.module.js → esm2020/cms/modules/runtime/runtime.module.mjs} +6 -6
- package/esm2020/cms/modules/runtime/services/compilation.service.mjs +83 -0
- package/esm2020/cms/modules/runtime/services/runtime-editor.service.mjs +28 -0
- package/esm2020/cms/modules/runtime/services/runtime.service.mjs +74 -0
- package/esm2020/cms/plugins/configuration.plugin.mjs +105 -0
- package/esm2020/cms/plugins/io.plugin.mjs +36 -0
- package/esm2020/cms/plugins/region.plugin.mjs +58 -0
- package/esm2020/cms/plugins/script.plugin.mjs +65 -0
- package/{esm2015/cms/services/element-context.service.js → esm2020/cms/services/element-context.service.mjs} +4 -4
- package/esm2020/cms/services/integration.state.mjs +40 -0
- package/esm2020/cms/services/io-provider.service.mjs +50 -0
- package/esm2020/cms/services/resources.service.mjs +49 -0
- package/{esm2015/cms/services/templates.service.js → esm2020/cms/services/templates.service.mjs} +4 -4
- package/esm2020/cms/utils/element.utils.mjs +160 -0
- package/esm2020/cms/utils/elements-resolver.mjs +189 -0
- package/esm2020/cms/utils/path.utils.mjs +53 -0
- package/esm2020/cms/utils/ui-definition.utils.mjs +87 -0
- package/esm2020/cms/vendor-map.mjs +67 -0
- package/esm2020/core/core.module.mjs +18 -0
- package/{esm2015/core/modules/configuration/configuration.module.js → esm2020/core/modules/configuration/configuration.module.mjs} +6 -6
- package/esm2020/core/modules/configuration/helpers.mjs +18 -0
- package/esm2020/core/modules/configuration/services/configuration-runtime.service.mjs +106 -0
- package/esm2020/core/modules/configuration/services/configuration.service.mjs +183 -0
- package/esm2020/core/modules/configuration/services/runtime-context.service.mjs +50 -0
- package/esm2020/core/modules/flow-configuration/flow-configuration.module.mjs +18 -0
- package/esm2020/core/modules/flow-configuration/services/flow-configuration.service.mjs +150 -0
- package/esm2020/core/modules/flow-configuration/services/flow-update.service.mjs +129 -0
- package/esm2020/core/services/context.service.mjs +64 -0
- package/esm2020/core/services/metric-calculation/metric-calculation.service.mjs +85 -0
- package/esm2020/core/services/product-images.service.mjs +31 -0
- package/esm2020/core/services/quote-draft.service.mjs +232 -0
- package/esm2020/core/utils/line-item.utils.mjs +161 -0
- package/esm2020/core/utils/line-item.worker.mjs +19 -0
- package/esm2020/runtime/components/component-preview/component-preview.component.mjs +125 -0
- package/esm2020/runtime/components/section-renderer/section-renderer.component.mjs +67 -0
- package/esm2020/runtime/components/ui-runtime/runtime.component.mjs +440 -0
- package/esm2020/runtime/components/ui-runtime-preview/runtime-preview.component.mjs +108 -0
- package/esm2020/runtime/execution/components/children-placeholder/children-placeholder.component.mjs +60 -0
- package/esm2020/runtime/execution/components/context-provider/context-provider.component.mjs +39 -0
- package/esm2020/runtime/execution/components/execution-section-renderer/execution-section-renderer.component.mjs +67 -0
- package/esm2020/runtime/execution/components/federated/federated.component.mjs +74 -0
- package/esm2020/runtime/execution/components/velo-attribute/velo-attribute.component.mjs +60 -0
- package/esm2020/runtime/execution/components/velo-multiselect/velo-multiselect.component.mjs +130 -0
- package/esm2020/runtime/execution/components/velo-port-checkbox/velo-port-checkbox.component.mjs +72 -0
- package/esm2020/runtime/execution/components/velo-port-dropdown/velo-port-dropdown.component.mjs +97 -0
- package/esm2020/runtime/execution/components/velo-port-radio/velo-port-radio.component.mjs +142 -0
- package/esm2020/runtime/execution/components/velo-type/velo-type.component.mjs +119 -0
- package/esm2020/runtime/execution/directives/section-script.directive.mjs +247 -0
- package/esm2020/runtime/execution/directives/sf-query.directive.mjs +35 -0
- package/esm2020/runtime/execution/directives/velo-attribute.directive.mjs +88 -0
- package/esm2020/runtime/execution/directives/velo-port.directive.mjs +376 -0
- package/esm2020/runtime/execution/directives/vl-approval.directive.mjs +23 -0
- package/esm2020/runtime/execution/directives/vl-document-attachments.directive.mjs +36 -0
- package/esm2020/runtime/execution/directives/vl-document-templates.directive.mjs +60 -0
- package/esm2020/runtime/execution/directives/vl-quote.directive.mjs +42 -0
- package/esm2020/runtime/execution/directives/vl-ramp.directive.mjs +55 -0
- package/esm2020/runtime/execution/runtime-execution.module.mjs +133 -0
- package/esm2020/runtime/execution/utils/federated.util.mjs +32 -0
- package/esm2020/runtime/runtime.module.mjs +74 -0
- package/esm2020/runtime/services/cart.service.mjs +29 -0
- package/{esm2015/runtime/services/collapsible-state.service.js → esm2020/runtime/services/collapsible-state.service.mjs} +4 -4
- package/esm2020/runtime/services/configuration.service.mjs +119 -0
- package/{esm2015/runtime/services/current-state.service.js → esm2020/runtime/services/current-state.service.mjs} +4 -4
- package/{esm2015/runtime/services/form-scope.service.js → esm2020/runtime/services/form-scope.service.mjs} +4 -4
- package/esm2020/runtime/services/product-model-cache.service.mjs +31 -0
- package/esm2020/runtime/services/runtime-context.service.mjs +57 -0
- package/esm2020/runtime/services/runtime-form.service.mjs +219 -0
- package/esm2020/runtime/services/runtime.service.mjs +115 -0
- package/{esm2015/runtime/services/section-helper.service.js → esm2020/runtime/services/section-helper.service.mjs} +4 -4
- package/{esm2015/runtime/services/section-scope.service.js → esm2020/runtime/services/section-scope.service.mjs} +4 -4
- package/{esm2015/runtime/services/section-store.service.js → esm2020/runtime/services/section-store.service.mjs} +4 -4
- package/esm2020/runtime/services/section.service.mjs +117 -0
- package/esm2020/runtime/types/script-registry.types.mjs +51 -0
- package/esm2020/runtime/utils/line-item.util.mjs +270 -0
- package/esm2020/src/components/dialog/dialog.component.mjs +36 -0
- package/esm2020/src/components/dialog/dialog.module.mjs +19 -0
- package/esm2020/src/components/doc-gen/doc-gen.component.mjs +107 -0
- package/esm2020/src/components/doc-gen/doc-gen.module.mjs +19 -0
- package/esm2020/src/components/header/cart-overlay/cart-preview.component.mjs +120 -0
- package/{esm2015/src/components/header/cart-overlay/cart-preview.module.js → esm2020/src/components/header/cart-overlay/cart-preview.module.mjs} +11 -13
- package/esm2020/src/components/header/header.component.mjs +333 -0
- package/{esm2015/src/components/header/header.module.js → esm2020/src/components/header/header.module.mjs} +12 -14
- package/esm2020/src/components/header/metrics/metrics.component.mjs +227 -0
- package/{esm2015/src/components/header/metrics/metrics.module.js → esm2020/src/components/header/metrics/metrics.module.mjs} +17 -19
- package/{esm2015/src/flow-routing.module.js → esm2020/src/flow-routing.module.mjs} +12 -14
- package/esm2020/src/flow.component.mjs +45 -0
- package/esm2020/src/flow.module.mjs +58 -0
- package/esm2020/src/guards/context.guard.mjs +93 -0
- package/esm2020/src/guards/product-unload.guard.mjs +46 -0
- package/esm2020/src/guards/root.guard.mjs +42 -0
- package/esm2020/src/pages/assets/assets.component.mjs +111 -0
- package/esm2020/src/pages/assets/assets.module.mjs +20 -0
- package/esm2020/src/pages/catalog/catalog.component.mjs +111 -0
- package/esm2020/src/pages/catalog/catalog.module.mjs +20 -0
- package/esm2020/src/pages/debug/debug.component.mjs +62 -0
- package/{esm2015/src/pages/debug/debug.module.js → esm2020/src/pages/debug/debug.module.mjs} +12 -14
- package/esm2020/src/pages/empty-account/empty-account.component.mjs +12 -0
- package/esm2020/src/pages/empty-account/empty-account.module.mjs +20 -0
- package/esm2020/src/pages/legacy-product/legacy-product.component.mjs +137 -0
- package/esm2020/src/pages/legacy-product/legacy-product.module.mjs +19 -0
- package/esm2020/src/pages/product/product.component.mjs +94 -0
- package/esm2020/src/pages/product/product.module.mjs +20 -0
- package/esm2020/src/pages/record-not-found/record-not-found.component.mjs +25 -0
- package/esm2020/src/pages/record-not-found/record-not-found.module.mjs +20 -0
- package/esm2020/src/pages/remote/remote.component.mjs +342 -0
- package/esm2020/src/pages/remote/remote.module.mjs +20 -0
- package/esm2020/src/pages/shopping-cart/shopping-cart.component.mjs +111 -0
- package/esm2020/src/pages/shopping-cart/shopping-cart.module.mjs +20 -0
- package/esm2020/src/resolvers/flow.resolver.mjs +70 -0
- package/esm2020/src/resolvers/quote.resolver.mjs +90 -0
- package/esm2020/src/services/doc-gen.service.mjs +33 -0
- package/esm2020/src/services/flow-dialog.service.mjs +126 -0
- package/esm2020/src/services/flow-router.service.mjs +144 -0
- package/esm2020/src/services/flow.service.mjs +86 -0
- package/esm2020/src/utils/flow.utils.mjs +21 -0
- package/fesm2015/{veloceapps-sdk-cms.js → veloceapps-sdk-cms.mjs} +178 -207
- package/fesm2015/veloceapps-sdk-cms.mjs.map +1 -0
- package/fesm2015/{veloceapps-sdk-core.js → veloceapps-sdk-core.mjs} +76 -76
- package/fesm2015/veloceapps-sdk-core.mjs.map +1 -0
- package/fesm2015/{veloceapps-sdk-runtime.js → veloceapps-sdk-runtime.mjs} +242 -370
- package/fesm2015/veloceapps-sdk-runtime.mjs.map +1 -0
- package/fesm2015/veloceapps-sdk.mjs +2877 -0
- package/fesm2015/veloceapps-sdk.mjs.map +1 -0
- package/fesm2020/veloceapps-sdk-cms.mjs +2036 -0
- package/fesm2020/veloceapps-sdk-cms.mjs.map +1 -0
- package/fesm2020/veloceapps-sdk-core.mjs +1289 -0
- package/fesm2020/veloceapps-sdk-core.mjs.map +1 -0
- package/fesm2020/veloceapps-sdk-runtime.mjs +3764 -0
- package/fesm2020/veloceapps-sdk-runtime.mjs.map +1 -0
- package/fesm2020/veloceapps-sdk.mjs +2857 -0
- package/fesm2020/veloceapps-sdk.mjs.map +1 -0
- package/package.json +59 -33
- package/runtime/README.md +5 -0
- package/runtime/components/component-preview/component-preview.component.d.ts +2 -2
- package/runtime/components/section-renderer/section-renderer.component.d.ts +1 -1
- package/runtime/components/ui-runtime/runtime.component.d.ts +1 -1
- package/runtime/components/ui-runtime-preview/runtime-preview.component.d.ts +1 -1
- package/runtime/execution/components/children-placeholder/children-placeholder.component.d.ts +2 -2
- package/runtime/execution/components/context-provider/context-provider.component.d.ts +1 -1
- package/runtime/execution/components/execution-section-renderer/execution-section-renderer.component.d.ts +1 -1
- package/runtime/execution/components/federated/federated.component.d.ts +1 -1
- package/runtime/execution/components/velo-attribute/velo-attribute.component.d.ts +1 -1
- package/runtime/execution/components/velo-multiselect/velo-multiselect.component.d.ts +1 -1
- package/runtime/execution/components/velo-port-checkbox/velo-port-checkbox.component.d.ts +1 -1
- package/runtime/execution/components/velo-port-dropdown/velo-port-dropdown.component.d.ts +1 -1
- package/runtime/execution/components/velo-port-radio/velo-port-radio.component.d.ts +1 -1
- package/runtime/execution/components/velo-type/velo-type.component.d.ts +1 -1
- package/runtime/execution/directives/section-script.directive.d.ts +1 -1
- package/runtime/execution/directives/sf-query.directive.d.ts +1 -1
- package/runtime/execution/directives/velo-attribute.directive.d.ts +1 -1
- package/runtime/execution/directives/velo-port.directive.d.ts +6 -6
- package/runtime/execution/directives/vl-approval.directive.d.ts +1 -1
- package/runtime/execution/directives/vl-document-attachments.directive.d.ts +1 -1
- package/runtime/execution/directives/vl-document-templates.directive.d.ts +1 -1
- package/runtime/execution/directives/vl-quote.directive.d.ts +1 -1
- package/runtime/execution/directives/vl-ramp.directive.d.ts +1 -1
- package/runtime/execution/runtime-execution.module.d.ts +3 -5
- package/runtime/execution/utils/federated.util.d.ts +1 -1
- package/runtime/runtime.module.d.ts +3 -5
- package/runtime/services/section.service.d.ts +1 -1
- package/src/components/dialog/dialog.component.d.ts +1 -1
- package/src/components/doc-gen/doc-gen.component.d.ts +1 -1
- package/src/components/header/cart-overlay/cart-preview.component.d.ts +2 -2
- package/src/components/header/header.component.d.ts +1 -1
- package/src/components/header/metrics/metrics.component.d.ts +1 -1
- package/src/flow.component.d.ts +1 -1
- package/src/pages/assets/assets.component.d.ts +1 -1
- package/src/pages/catalog/catalog.component.d.ts +1 -1
- package/src/pages/debug/debug.component.d.ts +5 -3
- package/src/pages/empty-account/empty-account.component.d.ts +1 -1
- package/src/pages/legacy-product/legacy-product.component.d.ts +1 -1
- package/src/pages/legacy-product/legacy-product.module.d.ts +1 -2
- package/src/pages/product/product.component.d.ts +1 -1
- package/src/pages/record-not-found/record-not-found.component.d.ts +1 -1
- package/src/pages/remote/remote.component.d.ts +1 -1
- package/src/pages/shopping-cart/shopping-cart.component.d.ts +1 -1
- package/bundles/veloceapps-sdk-cms.umd.js +0 -2531
- package/bundles/veloceapps-sdk-cms.umd.js.map +0 -1
- package/bundles/veloceapps-sdk-core.umd.js +0 -1916
- package/bundles/veloceapps-sdk-core.umd.js.map +0 -1
- package/bundles/veloceapps-sdk-runtime.umd.js +0 -4415
- package/bundles/veloceapps-sdk-runtime.umd.js.map +0 -1
- package/bundles/veloceapps-sdk.umd.js +0 -3583
- package/bundles/veloceapps-sdk.umd.js.map +0 -1
- package/cms/modules/federated/federated.utils.d.ts +0 -1
- package/cms/package.json +0 -10
- package/cms/veloceapps-sdk-cms.d.ts +0 -5
- package/core/package.json +0 -10
- package/core/veloceapps-sdk-core.d.ts +0 -5
- package/esm2015/cms/cms.actions.js +0 -42
- package/esm2015/cms/components/element-children/element-children.component.js +0 -39
- package/esm2015/cms/components/element-children/element-children.module.js +0 -20
- package/esm2015/cms/components/element-drop-handle/element-drop-handle.component.js +0 -32
- package/esm2015/cms/components/element-drop-handle/element-drop-handle.module.js +0 -19
- package/esm2015/cms/components/element-renderer/element-renderer.component.js +0 -169
- package/esm2015/cms/components/element.component.js +0 -44
- package/esm2015/cms/components/plugin.component.js +0 -16
- package/esm2015/cms/components/preview/preview.component.js +0 -93
- package/esm2015/cms/components/preview/preview.module.js +0 -24
- package/esm2015/cms/directives/custom-template.directive.js +0 -25
- package/esm2015/cms/engine/models/entity.js +0 -18
- package/esm2015/cms/launcher.module.js +0 -24
- package/esm2015/cms/modules/federated/federated.component.js +0 -82
- package/esm2015/cms/modules/federated/federated.module.js +0 -19
- package/esm2015/cms/modules/federated/federated.types.js +0 -2
- package/esm2015/cms/modules/federated/federated.utils.js +0 -37
- package/esm2015/cms/modules/migrations/migrations.js +0 -11
- package/esm2015/cms/modules/migrations/services/migrations.service.js +0 -43
- package/esm2015/cms/modules/runtime/services/compilation.service.js +0 -84
- package/esm2015/cms/modules/runtime/services/runtime-editor.service.js +0 -27
- package/esm2015/cms/modules/runtime/services/runtime.service.js +0 -74
- package/esm2015/cms/plugins/configuration.plugin.js +0 -106
- package/esm2015/cms/plugins/io.plugin.js +0 -37
- package/esm2015/cms/plugins/region.plugin.js +0 -58
- package/esm2015/cms/plugins/script.plugin.js +0 -66
- package/esm2015/cms/services/integration.state.js +0 -40
- package/esm2015/cms/services/io-provider.service.js +0 -51
- package/esm2015/cms/services/resources.service.js +0 -50
- package/esm2015/cms/utils/element.utils.js +0 -157
- package/esm2015/cms/utils/elements-resolver.js +0 -163
- package/esm2015/cms/utils/path.utils.js +0 -56
- package/esm2015/cms/utils/ui-definition.utils.js +0 -82
- package/esm2015/cms/vendor-map.js +0 -51
- package/esm2015/core/core.module.js +0 -18
- package/esm2015/core/modules/configuration/helpers.js +0 -10
- package/esm2015/core/modules/configuration/services/configuration-runtime.service.js +0 -87
- package/esm2015/core/modules/configuration/services/configuration.service.js +0 -177
- package/esm2015/core/modules/configuration/services/runtime-context.service.js +0 -51
- package/esm2015/core/modules/flow-configuration/flow-configuration.module.js +0 -18
- package/esm2015/core/modules/flow-configuration/services/flow-configuration.service.js +0 -150
- package/esm2015/core/modules/flow-configuration/services/flow-update.service.js +0 -129
- package/esm2015/core/services/context.service.js +0 -53
- package/esm2015/core/services/metric-calculation/metric-calculation.service.js +0 -83
- package/esm2015/core/services/product-images.service.js +0 -30
- package/esm2015/core/services/quote-draft.service.js +0 -217
- package/esm2015/core/utils/line-item.utils.js +0 -143
- package/esm2015/core/utils/line-item.worker.js +0 -19
- package/esm2015/runtime/components/component-preview/component-preview.component.js +0 -125
- package/esm2015/runtime/components/section-renderer/section-renderer.component.js +0 -71
- package/esm2015/runtime/components/ui-runtime/runtime.component.js +0 -429
- package/esm2015/runtime/components/ui-runtime-preview/runtime-preview.component.js +0 -109
- package/esm2015/runtime/execution/components/children-placeholder/children-placeholder.component.js +0 -68
- package/esm2015/runtime/execution/components/context-provider/context-provider.component.js +0 -36
- package/esm2015/runtime/execution/components/execution-section-renderer/execution-section-renderer.component.js +0 -72
- package/esm2015/runtime/execution/components/federated/federated.component.js +0 -81
- package/esm2015/runtime/execution/components/velo-attribute/velo-attribute.component.js +0 -65
- package/esm2015/runtime/execution/components/velo-multiselect/velo-multiselect.component.js +0 -136
- package/esm2015/runtime/execution/components/velo-port-checkbox/velo-port-checkbox.component.js +0 -80
- package/esm2015/runtime/execution/components/velo-port-dropdown/velo-port-dropdown.component.js +0 -101
- package/esm2015/runtime/execution/components/velo-port-radio/velo-port-radio.component.js +0 -150
- package/esm2015/runtime/execution/components/velo-type/velo-type.component.js +0 -121
- package/esm2015/runtime/execution/directives/section-script.directive.js +0 -242
- package/esm2015/runtime/execution/directives/sf-query.directive.js +0 -34
- package/esm2015/runtime/execution/directives/velo-attribute.directive.js +0 -86
- package/esm2015/runtime/execution/directives/velo-port.directive.js +0 -373
- package/esm2015/runtime/execution/directives/vl-approval.directive.js +0 -22
- package/esm2015/runtime/execution/directives/vl-document-attachments.directive.js +0 -35
- package/esm2015/runtime/execution/directives/vl-document-templates.directive.js +0 -59
- package/esm2015/runtime/execution/directives/vl-quote.directive.js +0 -41
- package/esm2015/runtime/execution/directives/vl-ramp.directive.js +0 -51
- package/esm2015/runtime/execution/runtime-execution.module.js +0 -163
- package/esm2015/runtime/execution/utils/federated.util.js +0 -37
- package/esm2015/runtime/runtime.module.js +0 -104
- package/esm2015/runtime/services/cart.service.js +0 -27
- package/esm2015/runtime/services/configuration.service.js +0 -101
- package/esm2015/runtime/services/product-model-cache.service.js +0 -30
- package/esm2015/runtime/services/runtime-context.service.js +0 -56
- package/esm2015/runtime/services/runtime-form.service.js +0 -224
- package/esm2015/runtime/services/runtime.service.js +0 -108
- package/esm2015/runtime/services/section.service.js +0 -124
- package/esm2015/runtime/types/script-registry.types.js +0 -51
- package/esm2015/runtime/utils/line-item.util.js +0 -273
- package/esm2015/src/components/dialog/dialog.component.js +0 -40
- package/esm2015/src/components/dialog/dialog.module.js +0 -19
- package/esm2015/src/components/doc-gen/doc-gen.component.js +0 -109
- package/esm2015/src/components/doc-gen/doc-gen.module.js +0 -19
- package/esm2015/src/components/header/cart-overlay/cart-preview.component.js +0 -122
- package/esm2015/src/components/header/header.component.js +0 -336
- package/esm2015/src/components/header/metrics/metrics.component.js +0 -232
- package/esm2015/src/flow.component.js +0 -45
- package/esm2015/src/flow.module.js +0 -60
- package/esm2015/src/guards/context.guard.js +0 -84
- package/esm2015/src/guards/product-unload.guard.js +0 -43
- package/esm2015/src/guards/root.guard.js +0 -41
- package/esm2015/src/pages/assets/assets.component.js +0 -117
- package/esm2015/src/pages/assets/assets.module.js +0 -20
- package/esm2015/src/pages/catalog/catalog.component.js +0 -117
- package/esm2015/src/pages/catalog/catalog.module.js +0 -20
- package/esm2015/src/pages/debug/debug.component.js +0 -61
- package/esm2015/src/pages/empty-account/empty-account.component.js +0 -17
- package/esm2015/src/pages/empty-account/empty-account.module.js +0 -20
- package/esm2015/src/pages/legacy-product/legacy-product.component.js +0 -132
- package/esm2015/src/pages/legacy-product/legacy-product.module.js +0 -21
- package/esm2015/src/pages/product/product.component.js +0 -101
- package/esm2015/src/pages/product/product.module.js +0 -20
- package/esm2015/src/pages/record-not-found/record-not-found.component.js +0 -29
- package/esm2015/src/pages/record-not-found/record-not-found.module.js +0 -20
- package/esm2015/src/pages/remote/remote.component.js +0 -350
- package/esm2015/src/pages/remote/remote.module.js +0 -20
- package/esm2015/src/pages/shopping-cart/shopping-cart.component.js +0 -117
- package/esm2015/src/pages/shopping-cart/shopping-cart.module.js +0 -20
- package/esm2015/src/resolvers/flow.resolver.js +0 -62
- package/esm2015/src/resolvers/quote.resolver.js +0 -88
- package/esm2015/src/services/doc-gen.service.js +0 -33
- package/esm2015/src/services/flow-dialog.service.js +0 -124
- package/esm2015/src/services/flow-router.service.js +0 -144
- package/esm2015/src/services/flow.service.js +0 -84
- package/esm2015/src/utils/flow.utils.js +0 -22
- package/fesm2015/veloceapps-sdk-cms.js.map +0 -1
- package/fesm2015/veloceapps-sdk-core.js.map +0 -1
- package/fesm2015/veloceapps-sdk-runtime.js.map +0 -1
- package/fesm2015/veloceapps-sdk.js +0 -2953
- package/fesm2015/veloceapps-sdk.js.map +0 -1
- package/runtime/package.json +0 -10
- package/runtime/veloceapps-sdk-runtime.d.ts +0 -5
- package/veloceapps-sdk.d.ts +0 -5
- /package/{esm2015/cms/cms.default.js → esm2020/cms/cms.default.mjs} +0 -0
- /package/{esm2015/cms/cms.elements.js → esm2020/cms/cms.elements.mjs} +0 -0
- /package/{esm2015/cms/cms.layouts.js → esm2020/cms/cms.layouts.mjs} +0 -0
- /package/{esm2015/cms/components/index.js → esm2020/cms/components/index.mjs} +0 -0
- /package/{esm2015/cms/components/preview/index.js → esm2020/cms/components/preview/index.mjs} +0 -0
- /package/{esm2015/cms/components/preview/preview.types.js → esm2020/cms/components/preview/preview.types.mjs} +0 -0
- /package/{esm2015/cms/decorators/element.decorator.js → esm2020/cms/decorators/element.decorator.mjs} +0 -0
- /package/{esm2015/cms/decorators/index.js → esm2020/cms/decorators/index.mjs} +0 -0
- /package/{esm2015/cms/engine/models/plugin.js → esm2020/cms/engine/models/plugin.mjs} +0 -0
- /package/{esm2015/cms/index.js → esm2020/cms/index.mjs} +0 -0
- /package/{esm2015/cms/injection-tokens.js → esm2020/cms/injection-tokens.mjs} +0 -0
- /package/{esm2015/cms/modules/federated/default-options.js → esm2020/cms/modules/federated/default-options.mjs} +0 -0
- /package/{esm2015/cms/modules/federated/export.js → esm2020/cms/modules/federated/export.mjs} +0 -0
- /package/{esm2015/cms/modules/migrations/index.js → esm2020/cms/modules/migrations/index.mjs} +0 -0
- /package/{esm2015/cms/modules/migrations/types/migrations.types.js → esm2020/cms/modules/migrations/types/migrations.types.mjs} +0 -0
- /package/{esm2015/cms/modules/runtime/index.js → esm2020/cms/modules/runtime/index.mjs} +0 -0
- /package/{esm2015/cms/modules/runtime/tokens.js → esm2020/cms/modules/runtime/tokens.mjs} +0 -0
- /package/{esm2015/cms/modules/runtime/types/compilation.types.js → esm2020/cms/modules/runtime/types/compilation.types.mjs} +0 -0
- /package/{esm2015/cms/modules/runtime/types/runtime.actions.js → esm2020/cms/modules/runtime/types/runtime.actions.mjs} +0 -0
- /package/{esm2015/cms/services/index.js → esm2020/cms/services/index.mjs} +0 -0
- /package/{esm2015/cms/types/common.types.js → esm2020/cms/types/common.types.mjs} +0 -0
- /package/{esm2015/cms/types/configuration.types.js → esm2020/cms/types/configuration.types.mjs} +0 -0
- /package/{esm2015/cms/types/elements.types.js → esm2020/cms/types/elements.types.mjs} +0 -0
- /package/{esm2015/cms/types/index.js → esm2020/cms/types/index.mjs} +0 -0
- /package/{esm2015/cms/types/integration.types.js → esm2020/cms/types/integration.types.mjs} +0 -0
- /package/{esm2015/cms/types/layouts.types.js → esm2020/cms/types/layouts.types.mjs} +0 -0
- /package/{esm2015/cms/types/path.types.js → esm2020/cms/types/path.types.mjs} +0 -0
- /package/{esm2015/cms/utils/index.js → esm2020/cms/utils/index.mjs} +0 -0
- /package/{esm2015/cms/veloceapps-sdk-cms.js → esm2020/cms/veloceapps-sdk-cms.mjs} +0 -0
- /package/{esm2015/core/index.js → esm2020/core/index.mjs} +0 -0
- /package/{esm2015/core/modules/configuration/index.js → esm2020/core/modules/configuration/index.mjs} +0 -0
- /package/{esm2015/core/modules/configuration/types/configuration-runtime.types.js → esm2020/core/modules/configuration/types/configuration-runtime.types.mjs} +0 -0
- /package/{esm2015/core/modules/flow-configuration/index.js → esm2020/core/modules/flow-configuration/index.mjs} +0 -0
- /package/{esm2015/core/modules/flow-configuration/types/update.types.js → esm2020/core/modules/flow-configuration/types/update.types.mjs} +0 -0
- /package/{esm2015/core/modules/index.js → esm2020/core/modules/index.mjs} +0 -0
- /package/{esm2015/core/services/index.js → esm2020/core/services/index.mjs} +0 -0
- /package/{esm2015/core/services/metric-calculation/metric-calculation.types.js → esm2020/core/services/metric-calculation/metric-calculation.types.mjs} +0 -0
- /package/{esm2015/core/services/metric-calculation/metric-calculation.utils.js → esm2020/core/services/metric-calculation/metric-calculation.utils.mjs} +0 -0
- /package/{esm2015/core/types/index.js → esm2020/core/types/index.mjs} +0 -0
- /package/{esm2015/core/types/runtime.types.js → esm2020/core/types/runtime.types.mjs} +0 -0
- /package/{esm2015/core/types/ui-definition.types.js → esm2020/core/types/ui-definition.types.mjs} +0 -0
- /package/{esm2015/core/utils/index.js → esm2020/core/utils/index.mjs} +0 -0
- /package/{esm2015/core/utils/ui-definition.utils.js → esm2020/core/utils/ui-definition.utils.mjs} +0 -0
- /package/{esm2015/core/veloceapps-sdk-core.js → esm2020/core/veloceapps-sdk-core.mjs} +0 -0
- /package/{esm2015/index.js → esm2020/index.mjs} +0 -0
- /package/{esm2015/runtime/components/index.js → esm2020/runtime/components/index.mjs} +0 -0
- /package/{esm2015/runtime/index.js → esm2020/runtime/index.mjs} +0 -0
- /package/{esm2015/runtime/services/index.js → esm2020/runtime/services/index.mjs} +0 -0
- /package/{esm2015/runtime/types/bound-data.types.js → esm2020/runtime/types/bound-data.types.mjs} +0 -0
- /package/{esm2015/runtime/types/index.js → esm2020/runtime/types/index.mjs} +0 -0
- /package/{esm2015/runtime/types/quote-states.types.js → esm2020/runtime/types/quote-states.types.mjs} +0 -0
- /package/{esm2015/runtime/types/runtime.types.js → esm2020/runtime/types/runtime.types.mjs} +0 -0
- /package/{esm2015/runtime/utils/section.utils.js → esm2020/runtime/utils/section.utils.mjs} +0 -0
- /package/{esm2015/runtime/utils/sections-binder.helper.js → esm2020/runtime/utils/sections-binder.helper.mjs} +0 -0
- /package/{esm2015/runtime/veloceapps-sdk-runtime.js → esm2020/runtime/veloceapps-sdk-runtime.mjs} +0 -0
- /package/{esm2015/src/components/dialog/dialog.types.js → esm2020/src/components/dialog/dialog.types.mjs} +0 -0
- /package/{esm2015/src/components/header/header.types.js → esm2020/src/components/header/header.types.mjs} +0 -0
- /package/{esm2015/src/components/header/metrics/index.js → esm2020/src/components/header/metrics/index.mjs} +0 -0
- /package/{esm2015/src/components/header/metrics/metrics.definitions.js → esm2020/src/components/header/metrics/metrics.definitions.mjs} +0 -0
- /package/{esm2015/src/constants.js → esm2020/src/constants.mjs} +0 -0
- /package/{esm2015/src/guards/index.js → esm2020/src/guards/index.mjs} +0 -0
- /package/{esm2015/src/index.js → esm2020/src/index.mjs} +0 -0
- /package/{esm2015/src/pages/remote/remote.types.js → esm2020/src/pages/remote/remote.types.mjs} +0 -0
- /package/{esm2015/src/services/index.js → esm2020/src/services/index.mjs} +0 -0
- /package/{esm2015/src/types/context-route.types.js → esm2020/src/types/context-route.types.mjs} +0 -0
- /package/{esm2015/src/types/flow-customization.types.js → esm2020/src/types/flow-customization.types.mjs} +0 -0
- /package/{esm2015/src/types/index.js → esm2020/src/types/index.mjs} +0 -0
- /package/{esm2015/src/types/metrics.types.js → esm2020/src/types/metrics.types.mjs} +0 -0
- /package/{esm2015/src/types/route.types.js → esm2020/src/types/route.types.mjs} +0 -0
- /package/{esm2015/src/utils/index.js → esm2020/src/utils/index.mjs} +0 -0
- /package/{esm2015/veloceapps-sdk.js → esm2020/veloceapps-sdk.mjs} +0 -0
@@ -0,0 +1,36 @@
|
|
1
|
+
import { Directive } from '@angular/core';
|
2
|
+
import { ElementComponent } from '../components/element.component';
|
3
|
+
import { ELEMENT_METADATA } from '../injection-tokens';
|
4
|
+
import { IOProviderService } from '../services/io-provider.service';
|
5
|
+
import * as i0 from "@angular/core";
|
6
|
+
import * as i1 from "../components/element.component";
|
7
|
+
export class IOPlugin {
|
8
|
+
constructor(host) {
|
9
|
+
this.host = host;
|
10
|
+
const elementMetadata = this.host.injector.get(ELEMENT_METADATA);
|
11
|
+
const inputProvider = this.host.injector.get(IOProviderService);
|
12
|
+
const inputs = Object.entries(elementMetadata.inputs ?? {});
|
13
|
+
const outputs = Object.entries(elementMetadata.outputs ?? {});
|
14
|
+
inputs.forEach(([key, path]) => {
|
15
|
+
if (path && typeof path !== 'string') {
|
16
|
+
console.error(`The value of '${key}' input should be a string`);
|
17
|
+
}
|
18
|
+
if (elementMetadata.outputs?.[key] !== undefined) {
|
19
|
+
console.warn(`'${key}' appears both in inputs and outputs. To prevent inconsistent behavior please keep them unique `);
|
20
|
+
}
|
21
|
+
this.host[key] = inputProvider.connect(elementMetadata, key, path);
|
22
|
+
});
|
23
|
+
outputs.forEach(([key, path]) => {
|
24
|
+
if (path && typeof path !== 'string') {
|
25
|
+
console.error(`The value of '${key}' output should be a string`);
|
26
|
+
}
|
27
|
+
this.host[key] = inputProvider.provide(elementMetadata, key, path);
|
28
|
+
});
|
29
|
+
}
|
30
|
+
}
|
31
|
+
IOPlugin.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: IOPlugin, deps: [{ token: i1.ElementComponent }], target: i0.ɵɵFactoryTarget.Directive });
|
32
|
+
IOPlugin.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.8", type: IOPlugin, ngImport: i0 });
|
33
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: IOPlugin, decorators: [{
|
34
|
+
type: Directive
|
35
|
+
}], ctorParameters: function () { return [{ type: i1.ElementComponent }]; } });
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW8ucGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvY21zL3BsdWdpbnMvaW8ucGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFbkUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUNBQWlDLENBQUM7OztBQUlwRSxNQUFNLE9BQU8sUUFBUTtJQUNuQixZQUFtQixJQUFzQjtRQUF0QixTQUFJLEdBQUosSUFBSSxDQUFrQjtRQUN2QyxNQUFNLGVBQWUsR0FBb0IsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDbEYsTUFBTSxhQUFhLEdBQXNCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBRW5GLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsQ0FBQztRQUM1RCxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLENBQUM7UUFFOUQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUU7WUFDN0IsSUFBSSxJQUFJLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFO2dCQUNwQyxPQUFPLENBQUMsS0FBSyxDQUFDLGlCQUFpQixHQUFHLDRCQUE0QixDQUFDLENBQUM7YUFDakU7WUFFRCxJQUFJLGVBQWUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxTQUFTLEVBQUU7Z0JBQ2hELE9BQU8sQ0FBQyxJQUFJLENBQ1YsSUFBSSxHQUFHLGlHQUFpRyxDQUN6RyxDQUFDO2FBQ0g7WUFFQSxJQUFJLENBQUMsSUFBWSxDQUFDLEdBQUcsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM5RSxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFO1lBQzlCLElBQUksSUFBSSxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRTtnQkFDcEMsT0FBTyxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsR0FBRyw2QkFBNkIsQ0FBQyxDQUFDO2FBQ2xFO1lBRUEsSUFBSSxDQUFDLElBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxhQUFhLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDOUUsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOztxR0E3QlUsUUFBUTt5RkFBUixRQUFROzJGQUFSLFFBQVE7a0JBRHBCLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEVsZW1lbnRDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL2VsZW1lbnQuY29tcG9uZW50JztcbmltcG9ydCB7IFBsdWdpbkNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvcGx1Z2luLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFTEVNRU5UX01FVEFEQVRBIH0gZnJvbSAnLi4vaW5qZWN0aW9uLXRva2Vucyc7XG5pbXBvcnQgeyBJT1Byb3ZpZGVyU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2lvLXByb3ZpZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgRWxlbWVudE1ldGFkYXRhIH0gZnJvbSAnLi4vdHlwZXMvY29tbW9uLnR5cGVzJztcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgSU9QbHVnaW4gaW1wbGVtZW50cyBQbHVnaW5Db21wb25lbnQge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgaG9zdDogRWxlbWVudENvbXBvbmVudCkge1xuICAgIGNvbnN0IGVsZW1lbnRNZXRhZGF0YTogRWxlbWVudE1ldGFkYXRhID0gdGhpcy5ob3N0LmluamVjdG9yLmdldChFTEVNRU5UX01FVEFEQVRBKTtcbiAgICBjb25zdCBpbnB1dFByb3ZpZGVyOiBJT1Byb3ZpZGVyU2VydmljZSA9IHRoaXMuaG9zdC5pbmplY3Rvci5nZXQoSU9Qcm92aWRlclNlcnZpY2UpO1xuXG4gICAgY29uc3QgaW5wdXRzID0gT2JqZWN0LmVudHJpZXMoZWxlbWVudE1ldGFkYXRhLmlucHV0cyA/PyB7fSk7XG4gICAgY29uc3Qgb3V0cHV0cyA9IE9iamVjdC5lbnRyaWVzKGVsZW1lbnRNZXRhZGF0YS5vdXRwdXRzID8/IHt9KTtcblxuICAgIGlucHV0cy5mb3JFYWNoKChba2V5LCBwYXRoXSkgPT4ge1xuICAgICAgaWYgKHBhdGggJiYgdHlwZW9mIHBhdGggIT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYFRoZSB2YWx1ZSBvZiAnJHtrZXl9JyBpbnB1dCBzaG91bGQgYmUgYSBzdHJpbmdgKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGVsZW1lbnRNZXRhZGF0YS5vdXRwdXRzPy5ba2V5XSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICBgJyR7a2V5fScgYXBwZWFycyBib3RoIGluIGlucHV0cyBhbmQgb3V0cHV0cy4gVG8gcHJldmVudCBpbmNvbnNpc3RlbnQgYmVoYXZpb3IgcGxlYXNlIGtlZXAgdGhlbSB1bmlxdWUgYCxcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgKHRoaXMuaG9zdCBhcyBhbnkpW2tleV0gPSBpbnB1dFByb3ZpZGVyLmNvbm5lY3QoZWxlbWVudE1ldGFkYXRhLCBrZXksIHBhdGgpO1xuICAgIH0pO1xuXG4gICAgb3V0cHV0cy5mb3JFYWNoKChba2V5LCBwYXRoXSkgPT4ge1xuICAgICAgaWYgKHBhdGggJiYgdHlwZW9mIHBhdGggIT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYFRoZSB2YWx1ZSBvZiAnJHtrZXl9JyBvdXRwdXQgc2hvdWxkIGJlIGEgc3RyaW5nYCk7XG4gICAgICB9XG5cbiAgICAgICh0aGlzLmhvc3QgYXMgYW55KVtrZXldID0gaW5wdXRQcm92aWRlci5wcm92aWRlKGVsZW1lbnRNZXRhZGF0YSwga2V5LCBwYXRoKTtcbiAgICB9KTtcbiAgfVxufVxuIl19
|
@@ -0,0 +1,58 @@
|
|
1
|
+
import { DOCUMENT } from '@angular/common';
|
2
|
+
import { Directive, ElementRef } from '@angular/core';
|
3
|
+
import { merge } from 'lodash';
|
4
|
+
import { Subject, takeUntil, tap } from 'rxjs';
|
5
|
+
import { ElementComponent } from '../components/element.component';
|
6
|
+
import { ELEMENT_METADATA } from '../injection-tokens';
|
7
|
+
import { RuntimeEditorService } from '../modules/runtime/services/runtime-editor.service';
|
8
|
+
import * as i0 from "@angular/core";
|
9
|
+
import * as i1 from "../components/element.component";
|
10
|
+
export class RegionPlugin {
|
11
|
+
constructor(host) {
|
12
|
+
this.host = host;
|
13
|
+
this.destroy$ = new Subject();
|
14
|
+
this.metadata = this.host.injector.get(ELEMENT_METADATA);
|
15
|
+
this.document = this.host.injector.get(DOCUMENT);
|
16
|
+
this.el = this.host.injector.get(ElementRef);
|
17
|
+
const runtimeEditorService = this.host.injector.get(RuntimeEditorService);
|
18
|
+
runtimeEditorService.editorMode$
|
19
|
+
.pipe(tap(editMode => {
|
20
|
+
this.el.nativeElement.style.outline = editMode ? 'solid 1px #dce5ef' : '';
|
21
|
+
if (editMode && !this.metadata.children.length) {
|
22
|
+
this.addRegionName();
|
23
|
+
}
|
24
|
+
else {
|
25
|
+
this.regionNameEl?.remove();
|
26
|
+
}
|
27
|
+
}), takeUntil(this.destroy$))
|
28
|
+
.subscribe();
|
29
|
+
}
|
30
|
+
ngOnDestroy() {
|
31
|
+
this.destroy$.next();
|
32
|
+
this.destroy$.complete();
|
33
|
+
}
|
34
|
+
addRegionName() {
|
35
|
+
if (this.regionNameEl) {
|
36
|
+
this.regionNameEl.remove();
|
37
|
+
}
|
38
|
+
this.regionNameEl = this.document.createElement('div');
|
39
|
+
this.regionNameEl.innerHTML = this.metadata.name;
|
40
|
+
merge(this.regionNameEl.style, {
|
41
|
+
width: '100%',
|
42
|
+
height: '100%',
|
43
|
+
display: 'flex',
|
44
|
+
justifyContent: 'center',
|
45
|
+
alignItems: 'center',
|
46
|
+
color: '#AEB5BD',
|
47
|
+
pointerEvents: 'none',
|
48
|
+
userSelect: 'none',
|
49
|
+
});
|
50
|
+
this.el.nativeElement.append(this.regionNameEl);
|
51
|
+
}
|
52
|
+
}
|
53
|
+
RegionPlugin.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: RegionPlugin, deps: [{ token: i1.ElementComponent }], target: i0.ɵɵFactoryTarget.Directive });
|
54
|
+
RegionPlugin.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.8", type: RegionPlugin, ngImport: i0 });
|
55
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: RegionPlugin, decorators: [{
|
56
|
+
type: Directive
|
57
|
+
}], ctorParameters: function () { return [{ type: i1.ElementComponent }]; } });
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaW9uLnBsdWdpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2Ntcy9wbHVnaW5zL3JlZ2lvbi5wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDL0IsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRW5FLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9EQUFvRCxDQUFDOzs7QUFJMUYsTUFBTSxPQUFPLFlBQVk7SUFPdkIsWUFBbUIsSUFBc0I7UUFBdEIsU0FBSSxHQUFKLElBQUksQ0FBa0I7UUFGakMsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFHckMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUN6RCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUU3QyxNQUFNLG9CQUFvQixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBRTFFLG9CQUFvQixDQUFDLFdBQVc7YUFDN0IsSUFBSSxDQUNILEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUNiLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBRTFFLElBQUksUUFBUSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFO2dCQUM5QyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7YUFDdEI7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLFlBQVksRUFBRSxNQUFNLEVBQUUsQ0FBQzthQUM3QjtRQUNILENBQUMsQ0FBQyxFQUNGLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQ3pCO2FBQ0EsU0FBUyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFTyxhQUFhO1FBQ25CLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNyQixJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQzVCO1FBRUQsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2RCxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztRQUVqRCxLQUFLLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQXVCO1lBQ2xELEtBQUssRUFBRSxNQUFNO1lBQ2IsTUFBTSxFQUFFLE1BQU07WUFDZCxPQUFPLEVBQUUsTUFBTTtZQUNmLGNBQWMsRUFBRSxRQUFRO1lBQ3hCLFVBQVUsRUFBRSxRQUFRO1lBQ3BCLEtBQUssRUFBRSxTQUFTO1lBQ2hCLGFBQWEsRUFBRSxNQUFNO1lBQ3JCLFVBQVUsRUFBRSxNQUFNO1NBQ25CLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDbEQsQ0FBQzs7eUdBdkRVLFlBQVk7NkZBQVosWUFBWTsyRkFBWixZQUFZO2tCQUR4QixTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IG1lcmdlIH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBFbGVtZW50Q29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9lbGVtZW50LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQbHVnaW5Db21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL3BsdWdpbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgRUxFTUVOVF9NRVRBREFUQSB9IGZyb20gJy4uL2luamVjdGlvbi10b2tlbnMnO1xuaW1wb3J0IHsgUnVudGltZUVkaXRvclNlcnZpY2UgfSBmcm9tICcuLi9tb2R1bGVzL3J1bnRpbWUvc2VydmljZXMvcnVudGltZS1lZGl0b3Iuc2VydmljZSc7XG5pbXBvcnQgeyBFbGVtZW50TWV0YWRhdGEgfSBmcm9tICcuLi90eXBlcyc7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGNsYXNzIFJlZ2lvblBsdWdpbiBpbXBsZW1lbnRzIFBsdWdpbkNvbXBvbmVudCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBtZXRhZGF0YTogRWxlbWVudE1ldGFkYXRhO1xuICBwcml2YXRlIGRvY3VtZW50OiBEb2N1bWVudDtcbiAgcHJpdmF0ZSBlbDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG4gIHByaXZhdGUgcmVnaW9uTmFtZUVsOiBIVE1MRWxlbWVudCB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGhvc3Q6IEVsZW1lbnRDb21wb25lbnQpIHtcbiAgICB0aGlzLm1ldGFkYXRhID0gdGhpcy5ob3N0LmluamVjdG9yLmdldChFTEVNRU5UX01FVEFEQVRBKTtcbiAgICB0aGlzLmRvY3VtZW50ID0gdGhpcy5ob3N0LmluamVjdG9yLmdldChET0NVTUVOVCk7XG4gICAgdGhpcy5lbCA9IHRoaXMuaG9zdC5pbmplY3Rvci5nZXQoRWxlbWVudFJlZik7XG5cbiAgICBjb25zdCBydW50aW1lRWRpdG9yU2VydmljZSA9IHRoaXMuaG9zdC5pbmplY3Rvci5nZXQoUnVudGltZUVkaXRvclNlcnZpY2UpO1xuXG4gICAgcnVudGltZUVkaXRvclNlcnZpY2UuZWRpdG9yTW9kZSRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoZWRpdE1vZGUgPT4ge1xuICAgICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5vdXRsaW5lID0gZWRpdE1vZGUgPyAnc29saWQgMXB4ICNkY2U1ZWYnIDogJyc7XG5cbiAgICAgICAgICBpZiAoZWRpdE1vZGUgJiYgIXRoaXMubWV0YWRhdGEuY2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLmFkZFJlZ2lvbk5hbWUoKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5yZWdpb25OYW1lRWw/LnJlbW92ZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwcml2YXRlIGFkZFJlZ2lvbk5hbWUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmVnaW9uTmFtZUVsKSB7XG4gICAgICB0aGlzLnJlZ2lvbk5hbWVFbC5yZW1vdmUoKTtcbiAgICB9XG5cbiAgICB0aGlzLnJlZ2lvbk5hbWVFbCA9IHRoaXMuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgdGhpcy5yZWdpb25OYW1lRWwuaW5uZXJIVE1MID0gdGhpcy5tZXRhZGF0YS5uYW1lO1xuXG4gICAgbWVyZ2UodGhpcy5yZWdpb25OYW1lRWwuc3R5bGUsIDxDU1NTdHlsZURlY2xhcmF0aW9uPntcbiAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICBoZWlnaHQ6ICcxMDAlJyxcbiAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcbiAgICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgICAgY29sb3I6ICcjQUVCNUJEJyxcbiAgICAgIHBvaW50ZXJFdmVudHM6ICdub25lJyxcbiAgICAgIHVzZXJTZWxlY3Q6ICdub25lJyxcbiAgICB9KTtcblxuICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5hcHBlbmQodGhpcy5yZWdpb25OYW1lRWwpO1xuICB9XG59XG4iXX0=
|
@@ -0,0 +1,65 @@
|
|
1
|
+
import { DOCUMENT } from '@angular/common';
|
2
|
+
import { Directive } from '@angular/core';
|
3
|
+
import { UUID } from '@veloceapps/core';
|
4
|
+
import { ElementComponent } from '../components/element.component';
|
5
|
+
import { ELEMENT_METADATA, SHARED_ELEMENT_METADATA, VENDOR_MAP } from '../injection-tokens';
|
6
|
+
import * as i0 from "@angular/core";
|
7
|
+
import * as i1 from "../components/element.component";
|
8
|
+
export class ScriptPlugin {
|
9
|
+
constructor(host) {
|
10
|
+
this.host = host;
|
11
|
+
this.normalizeImports = (script, elementPath) => {
|
12
|
+
const regexp = new RegExp(`import([ \\n\\t]*(?:[^ \\n\\t\\{\\}]+[ \\n\\t]*,?)?(?:[ \\n\\t]*\\{(?:[ \\n\\t]*[^ \\n\\t"'\\{\\}]+[ \\n\\t]*,?)+\\})?[ \\n\\t]*)from[ \\n\\t]*(['"])([^'"\\n]+)(?:['"]);`, 'g');
|
13
|
+
const result = script.replace(regexp, (match, g1, g2, src) => {
|
14
|
+
const imports = g1
|
15
|
+
.trim()
|
16
|
+
.slice(1, -1)
|
17
|
+
.split(',')
|
18
|
+
.map(item => item.trim());
|
19
|
+
imports.forEach(item => {
|
20
|
+
if (!this.vendorMap[src]?.[item]) {
|
21
|
+
throw new Error(`Failed to import ${item} from '${src}' in ${elementPath}/script.ts`);
|
22
|
+
}
|
23
|
+
});
|
24
|
+
return `const ${g1} = vendor['${src}'];`;
|
25
|
+
});
|
26
|
+
return result;
|
27
|
+
};
|
28
|
+
this.document = this.host.injector.get(DOCUMENT);
|
29
|
+
this.vendorMap = this.host.injector.get(VENDOR_MAP);
|
30
|
+
const elementMetadata = this.host.injector.get(ELEMENT_METADATA);
|
31
|
+
const sharedElementMetadata = this.host.injector.get(SHARED_ELEMENT_METADATA);
|
32
|
+
this.addScript(sharedElementMetadata);
|
33
|
+
this.addScript(elementMetadata);
|
34
|
+
}
|
35
|
+
addScript(metadata) {
|
36
|
+
if (!metadata?.script) {
|
37
|
+
return;
|
38
|
+
}
|
39
|
+
const id = btoa(UUID.UUID());
|
40
|
+
const script = this.document.createElement('script');
|
41
|
+
script.type = `text/javascript`;
|
42
|
+
let scriptContent = this.normalizeImports(metadata.script, metadata.path ?? metadata.name);
|
43
|
+
const classMatch = /export class (\S+)/.exec(scriptContent);
|
44
|
+
const className = classMatch?.[1];
|
45
|
+
if (!classMatch || !className) {
|
46
|
+
console.error("Script doesn't have exported class");
|
47
|
+
return;
|
48
|
+
}
|
49
|
+
scriptContent = scriptContent.replace(classMatch[0], `class ${className}`);
|
50
|
+
script.text = `var ${id} = function(vendor) {${scriptContent}
|
51
|
+
return ${className}; };`;
|
52
|
+
this.document.body.appendChild(script);
|
53
|
+
const ScriptClass = window[id](this.vendorMap);
|
54
|
+
if (ScriptClass instanceof Object) {
|
55
|
+
this.host.registerPlugin(new ScriptClass(this.host));
|
56
|
+
}
|
57
|
+
this.document.body.removeChild(script);
|
58
|
+
}
|
59
|
+
}
|
60
|
+
ScriptPlugin.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ScriptPlugin, deps: [{ token: i1.ElementComponent }], target: i0.ɵɵFactoryTarget.Directive });
|
61
|
+
ScriptPlugin.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.8", type: ScriptPlugin, ngImport: i0 });
|
62
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ScriptPlugin, decorators: [{
|
63
|
+
type: Directive
|
64
|
+
}], ctorParameters: function () { return [{ type: i1.ElementComponent }]; } });
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NyaXB0LnBsdWdpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2Ntcy9wbHVnaW5zL3NjcmlwdC5wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRXhDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRW5FLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSx1QkFBdUIsRUFBRSxVQUFVLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7O0FBSTVGLE1BQU0sT0FBTyxZQUFZO0lBSXZCLFlBQW1CLElBQXNCO1FBQXRCLFNBQUksR0FBSixJQUFJLENBQWtCO1FBNENqQyxxQkFBZ0IsR0FBRyxDQUFDLE1BQWMsRUFBRSxXQUFtQixFQUFVLEVBQUU7WUFDekUsTUFBTSxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQ3ZCLDJLQUEySyxFQUMzSyxHQUFHLENBQ0osQ0FBQztZQUNGLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUU7Z0JBQzNELE1BQU0sT0FBTyxHQUFJLEVBQWE7cUJBQzNCLElBQUksRUFBRTtxQkFDTixLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO3FCQUNaLEtBQUssQ0FBQyxHQUFHLENBQUM7cUJBQ1YsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7Z0JBRTVCLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7b0JBQ3JCLElBQUks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QGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVVVJRCB9IGZyb20gJ0B2ZWxvY2VhcHBzL2NvcmUnO1xuaW1wb3J0IHsgRGljdGlvbmFyeSB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBFbGVtZW50Q29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9lbGVtZW50LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQbHVnaW5Db21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL3BsdWdpbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgRUxFTUVOVF9NRVRBREFUQSwgU0hBUkVEX0VMRU1FTlRfTUVUQURBVEEsIFZFTkRPUl9NQVAgfSBmcm9tICcuLi9pbmplY3Rpb24tdG9rZW5zJztcbmltcG9ydCB7IEVsZW1lbnRNZXRhZGF0YSB9IGZyb20gJy4uL3R5cGVzL2NvbW1vbi50eXBlcyc7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGNsYXNzIFNjcmlwdFBsdWdpbiBpbXBsZW1lbnRzIFBsdWdpbkNvbXBvbmVudCB7XG4gIHByaXZhdGUgZG9jdW1lbnQ6IERvY3VtZW50O1xuICBwcml2YXRlIHZlbmRvck1hcDogRGljdGlvbmFyeTxhbnk+O1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBob3N0OiBFbGVtZW50Q29tcG9uZW50KSB7XG4gICAgdGhpcy5kb2N1bWVudCA9IHRoaXMuaG9zdC5pbmplY3Rvci5nZXQoRE9DVU1FTlQpO1xuICAgIHRoaXMudmVuZG9yTWFwID0gdGhpcy5ob3N0LmluamVjdG9yLmdldChWRU5ET1JfTUFQKTtcbiAgICBjb25zdCBlbGVtZW50TWV0YWRhdGE6IEVsZW1lbnRNZXRhZGF0YSA9IHRoaXMuaG9zdC5pbmplY3Rvci5nZXQoRUxFTUVOVF9NRVRBREFUQSk7XG4gICAgY29uc3Qgc2hhcmVkRWxlbWVudE1ldGFkYXRhOiBFbGVtZW50TWV0YWRhdGEgfCB1bmRlZmluZWQgPSB0aGlzLmhvc3QuaW5qZWN0b3IuZ2V0KFNIQVJFRF9FTEVNRU5UX01FVEFEQVRBKTtcblxuICAgIHRoaXMuYWRkU2NyaXB0KHNoYXJlZEVsZW1lbnRNZXRhZGF0YSk7XG4gICAgdGhpcy5hZGRTY3JpcHQoZWxlbWVudE1ldGFkYXRhKTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkU2NyaXB0KG1ldGFkYXRhPzogRWxlbWVudE1ldGFkYXRhKTogdm9pZCB7XG4gICAgaWYgKCFtZXRhZGF0YT8uc2NyaXB0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgaWQgPSBidG9hKFVVSUQuVVVJRCgpKTtcbiAgICBjb25zdCBzY3JpcHQgPSB0aGlzLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuICAgIHNjcmlwdC50eXBlID0gYHRleHQvamF2YXNjcmlwdGA7XG5cbiAgICBsZXQgc2NyaXB0Q29udGVudCA9IHRoaXMubm9ybWFsaXplSW1wb3J0cyhtZXRhZGF0YS5zY3JpcHQsIG1ldGFkYXRhLnBhdGggPz8gbWV0YWRhdGEubmFtZSk7XG5cbiAgICBjb25zdCBjbGFzc01hdGNoID0gL2V4cG9ydCBjbGFzcyAoXFxTKykvLmV4ZWMoc2NyaXB0Q29udGVudCk7XG4gICAgY29uc3QgY2xhc3NOYW1lID0gY2xhc3NNYXRjaD8uWzFdO1xuXG4gICAgaWYgKCFjbGFzc01hdGNoIHx8ICFjbGFzc05hbWUpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoXCJTY3JpcHQgZG9lc24ndCBoYXZlIGV4cG9ydGVkIGNsYXNzXCIpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHNjcmlwdENvbnRlbnQgPSBzY3JpcHRDb250ZW50LnJlcGxhY2UoY2xhc3NNYXRjaFswXSwgYGNsYXNzICR7Y2xhc3NOYW1lfWApO1xuXG4gICAgc2NyaXB0LnRleHQgPSBgdmFyICR7aWR9ID0gZnVuY3Rpb24odmVuZG9yKSB7JHtzY3JpcHRDb250ZW50fVxuICAgICAgICByZXR1cm4gJHtjbGFzc05hbWV9OyB9O2A7XG5cbiAgICB0aGlzLmRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc2NyaXB0KTtcblxuICAgIGNvbnN0IFNjcmlwdENsYXNzID0gKHdpbmRvdyBhcyBhbnkpW2lkXSh0aGlzLnZlbmRvck1hcCk7XG4gICAgaWYgKFNjcmlwdENsYXNzIGluc3RhbmNlb2YgT2JqZWN0KSB7XG4gICAgICB0aGlzLmhvc3QucmVnaXN0ZXJQbHVnaW4obmV3IFNjcmlwdENsYXNzKHRoaXMuaG9zdCkpO1xuICAgIH1cblxuICAgIHRoaXMuZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChzY3JpcHQpO1xuICB9XG5cbiAgcHJpdmF0ZSBub3JtYWxpemVJbXBvcnRzID0gKHNjcmlwdDogc3RyaW5nLCBlbGVtZW50UGF0aDogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgICBjb25zdCByZWdleHAgPSBuZXcgUmVnRXhwKFxuICAgICAgYGltcG9ydChbIFxcXFxuXFxcXHRdKig/OlteIFxcXFxuXFxcXHRcXFxce1xcXFx9XStbIFxcXFxuXFxcXHRdKiw/KT8oPzpbIFxcXFxuXFxcXHRdKlxcXFx7KD86WyBcXFxcblxcXFx0XSpbXiBcXFxcblxcXFx0XCInXFxcXHtcXFxcfV0rWyBcXFxcblxcXFx0XSosPykrXFxcXH0pP1sgXFxcXG5cXFxcdF0qKWZyb21bIFxcXFxuXFxcXHRdKihbJ1wiXSkoW14nXCJcXFxcbl0rKSg/OlsnXCJdKTtgLFxuICAgICAgJ2cnLFxuICAgICk7XG4gICAgY29uc3QgcmVzdWx0ID0gc2NyaXB0LnJlcGxhY2UocmVnZXhwLCAobWF0Y2gsIGcxLCBnMiwgc3JjKSA9PiB7XG4gICAgICBjb25zdCBpbXBvcnRzID0gKGcxIGFzIHN0cmluZylcbiAgICAgICAgLnRyaW0oKVxuICAgICAgICAuc2xpY2UoMSwgLTEpXG4gICAgICAgIC5zcGxpdCgnLCcpXG4gICAgICAgIC5tYXAoaXRlbSA9PiBpdGVtLnRyaW0oKSk7XG5cbiAgICAgIGltcG9ydHMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLnZlbmRvck1hcFtzcmNdPy5baXRlbV0pIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCB0byBpbXBvcnQgJHtpdGVtfSBmcm9tICcke3NyY30nIGluICR7ZWxlbWVudFBhdGh9L3NjcmlwdC50c2ApO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIGBjb25zdCAke2cxfSA9IHZlbmRvclsnJHtzcmN9J107YDtcbiAgICB9KTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9O1xufVxuIl19
|
@@ -2,9 +2,9 @@ import { Injectable } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
3
3
|
export class ElementContextService {
|
4
4
|
}
|
5
|
-
ElementContextService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
6
|
-
ElementContextService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
7
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
5
|
+
ElementContextService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ElementContextService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
6
|
+
ElementContextService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ElementContextService });
|
7
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ElementContextService, decorators: [{
|
8
8
|
type: Injectable
|
9
9
|
}] });
|
10
|
-
//# sourceMappingURL=data:application/json;base64,
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC1jb250ZXh0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jbXMvc2VydmljZXMvZWxlbWVudC1jb250ZXh0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFJM0MsTUFBTSxPQUFPLHFCQUFxQjs7a0hBQXJCLHFCQUFxQjtzSEFBckIscUJBQXFCOzJGQUFyQixxQkFBcUI7a0JBRGpDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFbGVtZW50TWV0YWRhdGEgfSBmcm9tICcuLi90eXBlcy9jb21tb24udHlwZXMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRWxlbWVudENvbnRleHRTZXJ2aWNlIHtcbiAgcHVibGljIG1ldGFkYXRhPzogRWxlbWVudE1ldGFkYXRhO1xuICBwdWJsaWMgcGFyZW50TW9kZWxJZD86IHN0cmluZztcbn1cbiJdfQ==
|
@@ -0,0 +1,40 @@
|
|
1
|
+
import { Injectable } from '@angular/core';
|
2
|
+
import { BehaviorSubject, filter, map } from 'rxjs';
|
3
|
+
import * as i0 from "@angular/core";
|
4
|
+
const InitAction = { type: 'INIT' };
|
5
|
+
const ClearAction = { type: 'CLEAR' };
|
6
|
+
export class IntegrationState {
|
7
|
+
constructor() {
|
8
|
+
this.stateSubj$ = new BehaviorSubject({});
|
9
|
+
this.action$ = new BehaviorSubject(InitAction);
|
10
|
+
}
|
11
|
+
get state$() {
|
12
|
+
return this.stateSubj$.asObservable();
|
13
|
+
}
|
14
|
+
get state() {
|
15
|
+
return this.stateSubj$.getValue();
|
16
|
+
}
|
17
|
+
patchState(update) {
|
18
|
+
this.stateSubj$.next({ ...this.stateSubj$.getValue(), ...update });
|
19
|
+
}
|
20
|
+
dispatch(action) {
|
21
|
+
this.action$.next(action);
|
22
|
+
}
|
23
|
+
listen$(actionType) {
|
24
|
+
return this.action$.pipe(filter(action => action.type === actionType), map(action => action.payload));
|
25
|
+
}
|
26
|
+
listenAll$() {
|
27
|
+
return this.action$.asObservable();
|
28
|
+
}
|
29
|
+
clear() {
|
30
|
+
this.stateSubj$.next({});
|
31
|
+
this.action$.next(ClearAction);
|
32
|
+
}
|
33
|
+
}
|
34
|
+
IntegrationState.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: IntegrationState, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
35
|
+
IntegrationState.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: IntegrationState, providedIn: 'root' });
|
36
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: IntegrationState, decorators: [{
|
37
|
+
type: Injectable,
|
38
|
+
args: [{ providedIn: 'root' }]
|
39
|
+
}] });
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWdyYXRpb24uc3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jbXMvc2VydmljZXMvaW50ZWdyYXRpb24uc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQWMsTUFBTSxNQUFNLENBQUM7O0FBR2hFLE1BQU0sVUFBVSxHQUFzQixFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQztBQUN2RCxNQUFNLFdBQVcsR0FBc0IsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUM7QUFHekQsTUFBTSxPQUFPLGdCQUFnQjtJQUQ3QjtRQUVtQixlQUFVLEdBQUcsSUFBSSxlQUFlLENBQUksRUFBTyxDQUFDLENBQUM7UUFDN0MsWUFBTyxHQUFHLElBQUksZUFBZSxDQUFvQixVQUFVLENBQUMsQ0FBQztLQWlDL0U7SUEvQkMsSUFBVyxNQUFNO1FBQ2YsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFFRCxJQUFXLEtBQUs7UUFDZCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVNLFVBQVUsQ0FBQyxNQUFrQjtRQUNsQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsRUFBRSxHQUFHLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVNLFFBQVEsQ0FBQyxNQUF5QjtRQUN2QyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRU0sT0FBTyxDQUFVLFVBQWtCO1FBQ3hDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQ3RCLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssVUFBVSxDQUFDLEVBQzVDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFZLENBQUMsQ0FDbkMsQ0FBQztJQUNKLENBQUM7SUFFTSxVQUFVO1FBQ2YsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBbUIsQ0FBQztJQUN0RCxDQUFDO0lBRU0sS0FBSztRQUNWLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQU8sQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7OzZHQWxDVSxnQkFBZ0I7aUhBQWhCLGdCQUFnQixjQURILE1BQU07MkZBQ25CLGdCQUFnQjtrQkFENUIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGZpbHRlciwgbWFwLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJbnRlZ3JhdGlvbkFjdGlvbiwgSW50ZWdyYXRpb25TdGF0ZU1vZGVsIH0gZnJvbSAnLi4vdHlwZXMvaW50ZWdyYXRpb24udHlwZXMnO1xuXG5jb25zdCBJbml0QWN0aW9uOiBJbnRlZ3JhdGlvbkFjdGlvbiA9IHsgdHlwZTogJ0lOSVQnIH07XG5jb25zdCBDbGVhckFjdGlvbjogSW50ZWdyYXRpb25BY3Rpb24gPSB7IHR5cGU6ICdDTEVBUicgfTtcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBJbnRlZ3JhdGlvblN0YXRlPFMgPSBJbnRlZ3JhdGlvblN0YXRlTW9kZWw+IHtcbiAgcHJpdmF0ZSByZWFkb25seSBzdGF0ZVN1YmokID0gbmV3IEJlaGF2aW9yU3ViamVjdDxTPih7fSBhcyBTKTtcbiAgcHJpdmF0ZSByZWFkb25seSBhY3Rpb24kID0gbmV3IEJlaGF2aW9yU3ViamVjdDxJbnRlZ3JhdGlvbkFjdGlvbj4oSW5pdEFjdGlvbik7XG5cbiAgcHVibGljIGdldCBzdGF0ZSQoKTogT2JzZXJ2YWJsZTxTPiB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGVTdWJqJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc3RhdGUoKTogUyB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGVTdWJqJC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgcHVibGljIHBhdGNoU3RhdGUodXBkYXRlOiBQYXJ0aWFsPFM+KTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZVN1YmokLm5leHQoeyAuLi50aGlzLnN0YXRlU3ViaiQuZ2V0VmFsdWUoKSwgLi4udXBkYXRlIH0pO1xuICB9XG5cbiAgcHVibGljIGRpc3BhdGNoKGFjdGlvbjogSW50ZWdyYXRpb25BY3Rpb24pOiB2b2lkIHtcbiAgICB0aGlzLmFjdGlvbiQubmV4dChhY3Rpb24pO1xuICB9XG5cbiAgcHVibGljIGxpc3RlbiQ8UCA9IGFueT4oYWN0aW9uVHlwZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxQPiB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aW9uJC5waXBlKFxuICAgICAgZmlsdGVyKGFjdGlvbiA9PiBhY3Rpb24udHlwZSA9PT0gYWN0aW9uVHlwZSksXG4gICAgICBtYXAoYWN0aW9uID0+IGFjdGlvbi5wYXlsb2FkIGFzIFApLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgbGlzdGVuQWxsJDxUIGV4dGVuZHMgSW50ZWdyYXRpb25BY3Rpb24+KCk6IE9ic2VydmFibGU8VD4ge1xuICAgIHJldHVybiB0aGlzLmFjdGlvbiQuYXNPYnNlcnZhYmxlKCkgYXMgT2JzZXJ2YWJsZTxUPjtcbiAgfVxuXG4gIHB1YmxpYyBjbGVhcigpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlU3ViaiQubmV4dCh7fSBhcyBTKTtcbiAgICB0aGlzLmFjdGlvbiQubmV4dChDbGVhckFjdGlvbik7XG4gIH1cbn1cbiJdfQ==
|
@@ -0,0 +1,50 @@
|
|
1
|
+
import { Injectable } from '@angular/core';
|
2
|
+
import { BehaviorSubject } from 'rxjs';
|
3
|
+
import { RuntimeService } from '../modules/runtime/services/runtime.service';
|
4
|
+
import { getAbsolutePath, parsePath } from '../utils/path.utils';
|
5
|
+
import * as i0 from "@angular/core";
|
6
|
+
import * as i1 from "../modules/runtime/services/runtime.service";
|
7
|
+
export class IOProviderService {
|
8
|
+
constructor(runtimeService) {
|
9
|
+
this.runtimeService = runtimeService;
|
10
|
+
this.inputs = {};
|
11
|
+
}
|
12
|
+
connect(el, name, target) {
|
13
|
+
return this.resolveTarget(el, name, target)?.asObservable();
|
14
|
+
}
|
15
|
+
provide(el, name, target) {
|
16
|
+
return this.resolveTarget(el, name, target);
|
17
|
+
}
|
18
|
+
resolveTarget(el, name, target) {
|
19
|
+
const isHost = !target;
|
20
|
+
if (isHost) {
|
21
|
+
return this.createSubjectSafe(el.path ?? '', name);
|
22
|
+
}
|
23
|
+
const elPath = parsePath(target);
|
24
|
+
const pathIsValue = elPath.segments.length === 1 && elPath.segments[0].startsWith('"') && elPath.segments[0].endsWith('"');
|
25
|
+
const finalName = elPath.variable ?? name;
|
26
|
+
const value = pathIsValue ? new BehaviorSubject(elPath.segments[0].slice(1, -1)) : undefined;
|
27
|
+
const absolutePath = !pathIsValue ? getAbsolutePath(this.runtimeService.applicationTree, el, elPath) : el.path;
|
28
|
+
return this.createSubjectSafe(absolutePath ?? '', finalName, value);
|
29
|
+
}
|
30
|
+
createSubjectSafe(path, name, subject) {
|
31
|
+
if (!this.inputs[path]) {
|
32
|
+
this.inputs[path] = {};
|
33
|
+
}
|
34
|
+
const subjectAlreadyExists = Boolean(this.inputs[path][name]);
|
35
|
+
if (!this.inputs[path][name]) {
|
36
|
+
this.inputs[path][name] = subject ?? new BehaviorSubject(undefined);
|
37
|
+
}
|
38
|
+
if (subject && subjectAlreadyExists) {
|
39
|
+
// push delayed value to workaround 'changed after it was checked' issue
|
40
|
+
setTimeout(() => this.inputs[path][name].next(subject.value));
|
41
|
+
}
|
42
|
+
return this.inputs[path][name];
|
43
|
+
}
|
44
|
+
}
|
45
|
+
IOProviderService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: IOProviderService, deps: [{ token: i1.RuntimeService }], target: i0.ɵɵFactoryTarget.Injectable });
|
46
|
+
IOProviderService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: IOProviderService });
|
47
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: IOProviderService, decorators: [{
|
48
|
+
type: Injectable
|
49
|
+
}], ctorParameters: function () { return [{ type: i1.RuntimeService }]; } });
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW8tcHJvdmlkZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2Ntcy9zZXJ2aWNlcy9pby1wcm92aWRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFFN0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7O0FBR2pFLE1BQU0sT0FBTyxpQkFBaUI7SUFHNUIsWUFBb0IsY0FBOEI7UUFBOUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBRjFDLFdBQU0sR0FBaUQsRUFBRSxDQUFDO0lBRWIsQ0FBQztJQUUvQyxPQUFPLENBQUMsRUFBbUIsRUFBRSxJQUFZLEVBQUUsTUFBc0I7UUFDdEUsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLEVBQUUsWUFBWSxFQUFFLENBQUM7SUFDOUQsQ0FBQztJQUVNLE9BQU8sQ0FBQyxFQUFtQixFQUFFLElBQVksRUFBRSxNQUFzQjtRQUN0RSxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRU8sYUFBYSxDQUFDLEVBQW1CLEVBQUUsSUFBWSxFQUFFLE1BQXNCO1FBQzdFLE1BQU0sTUFBTSxHQUFHLENBQUMsTUFBTSxDQUFDO1FBRXZCLElBQUksTUFBTSxFQUFFO1lBQ1YsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDLElBQUksSUFBSSxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7U0FDcEQ7UUFFRCxNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsTUFBZ0IsQ0FBQyxDQUFDO1FBQzNDLE1BQU0sV0FBVyxHQUNmLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUV6RyxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQztRQUMxQyxNQUFNLEtBQUssR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksZUFBZSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUU3RixNQUFNLFlBQVksR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsZUFBZSxFQUFFLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQztRQUMvRyxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLElBQUksRUFBRSxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRU8saUJBQWlCLENBQUMsSUFBWSxFQUFFLElBQVksRUFBRSxPQUE4QjtRQUNsRixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN0QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztTQUN4QjtRQUVELE1BQU0sb0JBQW9CLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUU5RCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUM1QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLE9BQU8sSUFBSSxJQUFJLGVBQWUsQ0FBTSxTQUFTLENBQUMsQ0FBQztTQUMxRTtRQUVELElBQUksT0FBTyxJQUFJLG9CQUFvQixFQUFFO1lBQ25DLHdFQUF3RTtZQUN4RSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7U0FDL0Q7UUFFRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDakMsQ0FBQzs7OEdBaERVLGlCQUFpQjtrSEFBakIsaUJBQWlCOzJGQUFqQixpQkFBaUI7a0JBRDdCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEaWN0aW9uYXJ5IH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUnVudGltZVNlcnZpY2UgfSBmcm9tICcuLi9tb2R1bGVzL3J1bnRpbWUvc2VydmljZXMvcnVudGltZS5zZXJ2aWNlJztcbmltcG9ydCB7IEVsZW1lbnRNZXRhZGF0YSB9IGZyb20gJy4uL3R5cGVzL2NvbW1vbi50eXBlcyc7XG5pbXBvcnQgeyBnZXRBYnNvbHV0ZVBhdGgsIHBhcnNlUGF0aCB9IGZyb20gJy4uL3V0aWxzL3BhdGgudXRpbHMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgSU9Qcm92aWRlclNlcnZpY2Uge1xuICBwcml2YXRlIGlucHV0czogRGljdGlvbmFyeTxEaWN0aW9uYXJ5PEJlaGF2aW9yU3ViamVjdDxhbnk+Pj4gPSB7fTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJ1bnRpbWVTZXJ2aWNlOiBSdW50aW1lU2VydmljZSkge31cblxuICBwdWJsaWMgY29ubmVjdChlbDogRWxlbWVudE1ldGFkYXRhLCBuYW1lOiBzdHJpbmcsIHRhcmdldD86IHN0cmluZyB8IG51bGwpOiBPYnNlcnZhYmxlPGFueT4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnJlc29sdmVUYXJnZXQoZWwsIG5hbWUsIHRhcmdldCk/LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIHByb3ZpZGUoZWw6IEVsZW1lbnRNZXRhZGF0YSwgbmFtZTogc3RyaW5nLCB0YXJnZXQ/OiBzdHJpbmcgfCBudWxsKTogQmVoYXZpb3JTdWJqZWN0PGFueT4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnJlc29sdmVUYXJnZXQoZWwsIG5hbWUsIHRhcmdldCk7XG4gIH1cblxuICBwcml2YXRlIHJlc29sdmVUYXJnZXQoZWw6IEVsZW1lbnRNZXRhZGF0YSwgbmFtZTogc3RyaW5nLCB0YXJnZXQ/OiBzdHJpbmcgfCBudWxsKTogQmVoYXZpb3JTdWJqZWN0PGFueT4gfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGlzSG9zdCA9ICF0YXJnZXQ7XG5cbiAgICBpZiAoaXNIb3N0KSB7XG4gICAgICByZXR1cm4gdGhpcy5jcmVhdGVTdWJqZWN0U2FmZShlbC5wYXRoID8/ICcnLCBuYW1lKTtcbiAgICB9XG5cbiAgICBjb25zdCBlbFBhdGggPSBwYXJzZVBhdGgodGFyZ2V0IGFzIHN0cmluZyk7XG4gICAgY29uc3QgcGF0aElzVmFsdWUgPVxuICAgICAgZWxQYXRoLnNlZ21lbnRzLmxlbmd0aCA9PT0gMSAmJiBlbFBhdGguc2VnbWVudHNbMF0uc3RhcnRzV2l0aCgnXCInKSAmJiBlbFBhdGguc2VnbWVudHNbMF0uZW5kc1dpdGgoJ1wiJyk7XG5cbiAgICBjb25zdCBmaW5hbE5hbWUgPSBlbFBhdGgudmFyaWFibGUgPz8gbmFtZTtcbiAgICBjb25zdCB2YWx1ZSA9IHBhdGhJc1ZhbHVlID8gbmV3IEJlaGF2aW9yU3ViamVjdChlbFBhdGguc2VnbWVudHNbMF0uc2xpY2UoMSwgLTEpKSA6IHVuZGVmaW5lZDtcblxuICAgIGNvbnN0IGFic29sdXRlUGF0aCA9ICFwYXRoSXNWYWx1ZSA/IGdldEFic29sdXRlUGF0aCh0aGlzLnJ1bnRpbWVTZXJ2aWNlLmFwcGxpY2F0aW9uVHJlZSwgZWwsIGVsUGF0aCkgOiBlbC5wYXRoO1xuICAgIHJldHVybiB0aGlzLmNyZWF0ZVN1YmplY3RTYWZlKGFic29sdXRlUGF0aCA/PyAnJywgZmluYWxOYW1lLCB2YWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVN1YmplY3RTYWZlKHBhdGg6IHN0cmluZywgbmFtZTogc3RyaW5nLCBzdWJqZWN0PzogQmVoYXZpb3JTdWJqZWN0PGFueT4pOiBCZWhhdmlvclN1YmplY3Q8YW55PiB7XG4gICAgaWYgKCF0aGlzLmlucHV0c1twYXRoXSkge1xuICAgICAgdGhpcy5pbnB1dHNbcGF0aF0gPSB7fTtcbiAgICB9XG5cbiAgICBjb25zdCBzdWJqZWN0QWxyZWFkeUV4aXN0cyA9IEJvb2xlYW4odGhpcy5pbnB1dHNbcGF0aF1bbmFtZV0pO1xuXG4gICAgaWYgKCF0aGlzLmlucHV0c1twYXRoXVtuYW1lXSkge1xuICAgICAgdGhpcy5pbnB1dHNbcGF0aF1bbmFtZV0gPSBzdWJqZWN0ID8/IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55Pih1bmRlZmluZWQpO1xuICAgIH1cblxuICAgIGlmIChzdWJqZWN0ICYmIHN1YmplY3RBbHJlYWR5RXhpc3RzKSB7XG4gICAgICAvLyBwdXNoIGRlbGF5ZWQgdmFsdWUgdG8gd29ya2Fyb3VuZCAnY2hhbmdlZCBhZnRlciBpdCB3YXMgY2hlY2tlZCcgaXNzdWVcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5pbnB1dHNbcGF0aF1bbmFtZV0ubmV4dChzdWJqZWN0LnZhbHVlKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuaW5wdXRzW3BhdGhdW25hbWVdO1xuICB9XG59XG4iXX0=
|
@@ -0,0 +1,49 @@
|
|
1
|
+
import { Injectable } from '@angular/core';
|
2
|
+
import { filter, noop, Observable, of, ReplaySubject, take } from 'rxjs';
|
3
|
+
import * as i0 from "@angular/core";
|
4
|
+
export class ResourcesService {
|
5
|
+
constructor() {
|
6
|
+
this.scripts = new Map();
|
7
|
+
this.loaded$ = new ReplaySubject();
|
8
|
+
}
|
9
|
+
loadScript(url) {
|
10
|
+
const loaded = this.scripts.get(url);
|
11
|
+
if (loaded === true) {
|
12
|
+
return of(noop());
|
13
|
+
}
|
14
|
+
if (loaded == null) {
|
15
|
+
this.scripts.set(url, false);
|
16
|
+
const script = document.createElement('script');
|
17
|
+
script.src = url;
|
18
|
+
script.onload = () => {
|
19
|
+
this.scripts.set(url, true);
|
20
|
+
this.loaded$.next();
|
21
|
+
};
|
22
|
+
document.body.appendChild(script);
|
23
|
+
}
|
24
|
+
return this.loaded$.pipe(filter(() => this.scripts.get(url) === true), take(1));
|
25
|
+
}
|
26
|
+
loadStyles(url) {
|
27
|
+
const previewEl = document.querySelector('vl-cms-preview');
|
28
|
+
const rootEl = previewEl?.shadowRoot ?? previewEl ?? document.body;
|
29
|
+
return new Observable(subscriber => {
|
30
|
+
const link = document.createElement('link');
|
31
|
+
link.rel = 'stylesheet';
|
32
|
+
link.type = 'text/css';
|
33
|
+
link.href = url;
|
34
|
+
link.media = 'all';
|
35
|
+
link.onload = () => {
|
36
|
+
subscriber.next();
|
37
|
+
subscriber.complete();
|
38
|
+
};
|
39
|
+
rootEl.appendChild(link);
|
40
|
+
});
|
41
|
+
}
|
42
|
+
}
|
43
|
+
ResourcesService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ResourcesService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
44
|
+
ResourcesService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ResourcesService, providedIn: 'root' });
|
45
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: ResourcesService, decorators: [{
|
46
|
+
type: Injectable,
|
47
|
+
args: [{ providedIn: 'root' }]
|
48
|
+
}] });
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2VzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jbXMvc2VydmljZXMvcmVzb3VyY2VzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBR3pFLE1BQU0sT0FBTyxnQkFBZ0I7SUFEN0I7UUFFVSxZQUFPLEdBQUcsSUFBSSxHQUFHLEVBQW1CLENBQUM7UUFDckMsWUFBTyxHQUFHLElBQUksYUFBYSxFQUFRLENBQUM7S0EyQzdDO0lBekNRLFVBQVUsQ0FBQyxHQUFXO1FBQzNCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3JDLElBQUksTUFBTSxLQUFLLElBQUksRUFBRTtZQUNuQixPQUFPLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1NBQ25CO1FBRUQsSUFBSSxNQUFNLElBQUksSUFBSSxFQUFFO1lBQ2xCLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUU3QixNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2hELE1BQU0sQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1lBQ2pCLE1BQU0sQ0FBQyxNQUFNLEdBQUcsR0FBRyxFQUFFO2dCQUNuQixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQzVCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDdEIsQ0FBQyxDQUFDO1lBQ0YsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDbkM7UUFFRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUN0QixNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssSUFBSSxDQUFDLEVBQzVDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FDUixDQUFDO0lBQ0osQ0FBQztJQUVNLFVBQVUsQ0FBQyxHQUFXO1FBQzNCLE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUMzRCxNQUFNLE1BQU0sR0FBRyxTQUFTLEVBQUUsVUFBVSxJQUFJLFNBQVMsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDO1FBRW5FLE9BQU8sSUFBSSxVQUFVLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDakMsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM1QyxJQUFJLENBQUMsR0FBRyxHQUFHLFlBQVksQ0FBQztZQUN4QixJQUFJLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQztZQUN2QixJQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQztZQUNoQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztZQUNuQixJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsRUFBRTtnQkFDakIsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNsQixVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDeEIsQ0FBQyxDQUFDO1lBQ0YsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OzZHQTVDVSxnQkFBZ0I7aUhBQWhCLGdCQUFnQixjQURILE1BQU07MkZBQ25CLGdCQUFnQjtrQkFENUIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBmaWx0ZXIsIG5vb3AsIE9ic2VydmFibGUsIG9mLCBSZXBsYXlTdWJqZWN0LCB0YWtlIH0gZnJvbSAncnhqcyc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgUmVzb3VyY2VzU2VydmljZSB7XG4gIHByaXZhdGUgc2NyaXB0cyA9IG5ldyBNYXA8c3RyaW5nLCBib29sZWFuPigpO1xuICBwcml2YXRlIGxvYWRlZCQgPSBuZXcgUmVwbGF5U3ViamVjdDx2b2lkPigpO1xuXG4gIHB1YmxpYyBsb2FkU2NyaXB0KHVybDogc3RyaW5nKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgY29uc3QgbG9hZGVkID0gdGhpcy5zY3JpcHRzLmdldCh1cmwpO1xuICAgIGlmIChsb2FkZWQgPT09IHRydWUpIHtcbiAgICAgIHJldHVybiBvZihub29wKCkpO1xuICAgIH1cblxuICAgIGlmIChsb2FkZWQgPT0gbnVsbCkge1xuICAgICAgdGhpcy5zY3JpcHRzLnNldCh1cmwsIGZhbHNlKTtcblxuICAgICAgY29uc3Qgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XG4gICAgICBzY3JpcHQuc3JjID0gdXJsO1xuICAgICAgc2NyaXB0Lm9ubG9hZCA9ICgpID0+IHtcbiAgICAgICAgdGhpcy5zY3JpcHRzLnNldCh1cmwsIHRydWUpO1xuICAgICAgICB0aGlzLmxvYWRlZCQubmV4dCgpO1xuICAgICAgfTtcbiAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc2NyaXB0KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5sb2FkZWQkLnBpcGUoXG4gICAgICBmaWx0ZXIoKCkgPT4gdGhpcy5zY3JpcHRzLmdldCh1cmwpID09PSB0cnVlKSxcbiAgICAgIHRha2UoMSksXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBsb2FkU3R5bGVzKHVybDogc3RyaW5nKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgY29uc3QgcHJldmlld0VsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigndmwtY21zLXByZXZpZXcnKTtcbiAgICBjb25zdCByb290RWwgPSBwcmV2aWV3RWw/LnNoYWRvd1Jvb3QgPz8gcHJldmlld0VsID8/IGRvY3VtZW50LmJvZHk7XG5cbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoc3Vic2NyaWJlciA9PiB7XG4gICAgICBjb25zdCBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGluaycpO1xuICAgICAgbGluay5yZWwgPSAnc3R5bGVzaGVldCc7XG4gICAgICBsaW5rLnR5cGUgPSAndGV4dC9jc3MnO1xuICAgICAgbGluay5ocmVmID0gdXJsO1xuICAgICAgbGluay5tZWRpYSA9ICdhbGwnO1xuICAgICAgbGluay5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgIHN1YnNjcmliZXIubmV4dCgpO1xuICAgICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7XG4gICAgICB9O1xuICAgICAgcm9vdEVsLmFwcGVuZENoaWxkKGxpbmspO1xuICAgIH0pO1xuICB9XG59XG4iXX0=
|
package/{esm2015/cms/services/templates.service.js → esm2020/cms/services/templates.service.mjs}
RENAMED
@@ -23,9 +23,9 @@ export class TemplatesService {
|
|
23
23
|
}
|
24
24
|
}
|
25
25
|
}
|
26
|
-
TemplatesService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
27
|
-
TemplatesService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
28
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
26
|
+
TemplatesService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: TemplatesService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
27
|
+
TemplatesService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: TemplatesService });
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: TemplatesService, decorators: [{
|
29
29
|
type: Injectable
|
30
30
|
}] });
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGVzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jbXMvc2VydmljZXMvdGVtcGxhdGVzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBZSxNQUFNLGVBQWUsQ0FBQztBQUV4RCxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDOztBQUtuRCxNQUFNLE9BQU8sZ0JBQWdCO0lBRDdCO1FBRVUsY0FBUyxHQUEwQyxFQUFFLENBQUM7S0FzQi9EO0lBcEJRLFFBQVEsQ0FBQyxJQUFZLEVBQUUsV0FBNkI7UUFDekQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRU0sR0FBRyxDQUFDLElBQVk7UUFDckIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ3BDLENBQUM7SUFFTSxJQUFJLENBQUMsSUFBWTtRQUN0QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM3QyxDQUFDO0lBRU8sYUFBYSxDQUFDLElBQVk7UUFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDekIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLGVBQWUsQ0FBVyxTQUFTLENBQUMsQ0FBQztTQUNqRTtJQUNILENBQUM7OzZHQXRCVSxnQkFBZ0I7aUhBQWhCLGdCQUFnQjsyRkFBaEIsZ0JBQWdCO2tCQUQ1QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERpY3Rpb25hcnkgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbnR5cGUgVGVtcGxhdGUgPSBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVGVtcGxhdGVzU2VydmljZSB7XG4gIHByaXZhdGUgdGVtcGxhdGVzOiBEaWN0aW9uYXJ5PEJlaGF2aW9yU3ViamVjdDxUZW1wbGF0ZT4+ID0ge307XG5cbiAgcHVibGljIHJlZ2lzdGVyKG5hbWU6IHN0cmluZywgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT4pOiB2b2lkIHtcbiAgICB0aGlzLmVuc3VyZVN0b3JhZ2UobmFtZSk7XG4gICAgdGhpcy50ZW1wbGF0ZXNbbmFtZV0ubmV4dCh0ZW1wbGF0ZVJlZik7XG4gIH1cblxuICBwdWJsaWMgZ2V0KG5hbWU6IHN0cmluZyk6IFRlbXBsYXRlIHtcbiAgICB0aGlzLmVuc3VyZVN0b3JhZ2UobmFtZSk7XG4gICAgcmV0dXJuIHRoaXMudGVtcGxhdGVzW25hbWVdLnZhbHVlO1xuICB9XG5cbiAgcHVibGljIGdldCQobmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxUZW1wbGF0ZT4ge1xuICAgIHRoaXMuZW5zdXJlU3RvcmFnZShuYW1lKTtcbiAgICByZXR1cm4gdGhpcy50ZW1wbGF0ZXNbbmFtZV0uYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwcml2YXRlIGVuc3VyZVN0b3JhZ2UobmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnRlbXBsYXRlc1tuYW1lXSkge1xuICAgICAgdGhpcy50ZW1wbGF0ZXNbbmFtZV0gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRlbXBsYXRlPih1bmRlZmluZWQpO1xuICAgIH1cbiAgfVxufVxuIl19
|
@@ -0,0 +1,160 @@
|
|
1
|
+
import { flatten, omit } from 'lodash';
|
2
|
+
import { CONFIG } from '../cms.elements';
|
3
|
+
import { IOPlugin } from '../plugins/io.plugin';
|
4
|
+
const EXPORTED_CLASS_REGEX = /export class (\S+)/;
|
5
|
+
const METADATA_DECORATOR_REGEX = /@ElementDefinition\(([\s\S]+)\)(\n|\r\n|.)*export class/g;
|
6
|
+
export class UiBuildError extends Error {
|
7
|
+
constructor(message, affectedMetadata) {
|
8
|
+
super(message);
|
9
|
+
this.name = this.constructor.name;
|
10
|
+
this.affectedMetadata = affectedMetadata;
|
11
|
+
}
|
12
|
+
}
|
13
|
+
export const elementToMetadata = (el, parentPath) => {
|
14
|
+
const script = el.script && window.atob(el.script);
|
15
|
+
const template = el.template && window.atob(el.template);
|
16
|
+
const styles = el.styles && window.atob(el.styles);
|
17
|
+
const exportedClassName = script && (EXPORTED_CLASS_REGEX.exec(script) ?? [])[1];
|
18
|
+
if (!exportedClassName) {
|
19
|
+
throw new Error("Script doesn't have exported class");
|
20
|
+
}
|
21
|
+
const elementMetadata = extractElementMetadata(script || '');
|
22
|
+
const path = (parentPath ? parentPath + '/' : '') + elementMetadata.name;
|
23
|
+
return {
|
24
|
+
...elementMetadata,
|
25
|
+
path,
|
26
|
+
script: script?.replace(METADATA_DECORATOR_REGEX, 'export class'),
|
27
|
+
template,
|
28
|
+
styles,
|
29
|
+
children: el.children.map(child => elementToMetadata(child, path)),
|
30
|
+
};
|
31
|
+
};
|
32
|
+
export const metadataToElement = (metadata, recursive = true) => {
|
33
|
+
const cleanMetadata = omit(metadata, [
|
34
|
+
'path',
|
35
|
+
'template',
|
36
|
+
'styles',
|
37
|
+
'script',
|
38
|
+
'metadata',
|
39
|
+
]);
|
40
|
+
const elMetadata = {
|
41
|
+
...cleanMetadata,
|
42
|
+
children: metadata.children.map(({ name }) => name),
|
43
|
+
};
|
44
|
+
const normalizedElMetadata = normalizeElementMetadata(elMetadata);
|
45
|
+
if (!metadata.script || !EXPORTED_CLASS_REGEX.test(metadata.script)) {
|
46
|
+
throw new UiBuildError(`'${metadata.name}' component script is missing an exported class`, metadata);
|
47
|
+
}
|
48
|
+
const script = metadata.script &&
|
49
|
+
window.btoa(metadata.script.replace(EXPORTED_CLASS_REGEX, `@ElementDefinition(${stringifyElementMetadata(normalizedElMetadata)})\nexport class Script`));
|
50
|
+
const template = metadata.template && window.btoa(metadata.template);
|
51
|
+
const styles = metadata.styles && window.btoa(metadata.styles);
|
52
|
+
return {
|
53
|
+
script,
|
54
|
+
template,
|
55
|
+
styles,
|
56
|
+
children: recursive ? metadata.children.map(meta => metadataToElement(meta)) : [],
|
57
|
+
};
|
58
|
+
};
|
59
|
+
export const normalizeElementMetadata = (elementMetadata) => {
|
60
|
+
const metadata = { ...elementMetadata };
|
61
|
+
// model
|
62
|
+
const { lineItem, path } = metadata.model ?? {};
|
63
|
+
const model = lineItem ? { lineItem } : path ? { path } : undefined;
|
64
|
+
if (model) {
|
65
|
+
metadata.model = model;
|
66
|
+
}
|
67
|
+
else {
|
68
|
+
delete metadata.model;
|
69
|
+
}
|
70
|
+
// module
|
71
|
+
if (!metadata.module) {
|
72
|
+
delete metadata.module;
|
73
|
+
}
|
74
|
+
// reference
|
75
|
+
if (!metadata.reference) {
|
76
|
+
delete metadata.reference;
|
77
|
+
}
|
78
|
+
// inputs
|
79
|
+
const inputs = Object.entries(metadata.inputs ?? {}).reduce((acc, [key, value]) => {
|
80
|
+
return { ...acc, [key]: value || null };
|
81
|
+
}, {});
|
82
|
+
if (inputs && Object.keys(inputs).length > 0) {
|
83
|
+
metadata.inputs = inputs;
|
84
|
+
}
|
85
|
+
else {
|
86
|
+
delete metadata.inputs;
|
87
|
+
}
|
88
|
+
// outputs
|
89
|
+
const outputs = Object.entries(metadata.outputs ?? {}).reduce((acc, [key, value]) => {
|
90
|
+
return { ...acc, [key]: value || null };
|
91
|
+
}, {});
|
92
|
+
if (outputs && Object.keys(outputs).length > 0) {
|
93
|
+
metadata.outputs = outputs;
|
94
|
+
}
|
95
|
+
else {
|
96
|
+
delete metadata.outputs;
|
97
|
+
}
|
98
|
+
// children
|
99
|
+
if (!metadata.children?.length) {
|
100
|
+
delete metadata.children;
|
101
|
+
}
|
102
|
+
// isShared
|
103
|
+
if (!metadata.isShared) {
|
104
|
+
delete metadata.isShared;
|
105
|
+
}
|
106
|
+
// configuredStyles
|
107
|
+
if (!metadata.configuredStyles) {
|
108
|
+
delete metadata.configuredStyles;
|
109
|
+
}
|
110
|
+
return metadata;
|
111
|
+
};
|
112
|
+
export const extractElementMetadata = (script) => {
|
113
|
+
const metadataString = (METADATA_DECORATOR_REGEX.exec(script) ?? [])[1];
|
114
|
+
// need to reset regex last index to prevent null result for next execution
|
115
|
+
METADATA_DECORATOR_REGEX.lastIndex = 0;
|
116
|
+
return new Function(`return ${metadataString}`)();
|
117
|
+
};
|
118
|
+
export const extendElementMetadata = (script, extend) => {
|
119
|
+
const metadataString = (METADATA_DECORATOR_REGEX.exec(script) ?? [])[1];
|
120
|
+
// need to reset regex last index to prevent null result for next execution
|
121
|
+
METADATA_DECORATOR_REGEX.lastIndex = 0;
|
122
|
+
if (!metadataString) {
|
123
|
+
return script;
|
124
|
+
}
|
125
|
+
const updated = { ...new Function(`return ${metadataString}`)(), ...extend };
|
126
|
+
return script.replace(metadataString, stringifyElementMetadata(updated));
|
127
|
+
};
|
128
|
+
export const getElementConfig = (type) => {
|
129
|
+
return CONFIG[type];
|
130
|
+
};
|
131
|
+
export const doesElementSupportIO = (type) => {
|
132
|
+
return getElementConfig(type).plugins?.includes(IOPlugin) ?? false;
|
133
|
+
};
|
134
|
+
export function stringifyElementMetadata(elementMetadata) {
|
135
|
+
const cleaned = JSON.stringify(elementMetadata, null, 2);
|
136
|
+
return cleaned.replace(/^[\t ]*"[^:\n\r]+(?<!\\)":/gm, function (match) {
|
137
|
+
return match.replace(/"/g, '');
|
138
|
+
});
|
139
|
+
}
|
140
|
+
export const isValidScript = (script) => {
|
141
|
+
if (!script) {
|
142
|
+
return false;
|
143
|
+
}
|
144
|
+
const exportedClassName = script && (EXPORTED_CLASS_REGEX.exec(script) ?? [])[1];
|
145
|
+
if (!exportedClassName) {
|
146
|
+
return false;
|
147
|
+
}
|
148
|
+
const meta = extractElementMetadata(script);
|
149
|
+
if (!meta.name || !meta.type) {
|
150
|
+
return false;
|
151
|
+
}
|
152
|
+
return true;
|
153
|
+
};
|
154
|
+
export function flattenElements(elements) {
|
155
|
+
return flatten(elements.map(el => [el, ...flattenElements(el.children)]));
|
156
|
+
}
|
157
|
+
export function isSharedElement(el) {
|
158
|
+
return Boolean(el.isShared) && el.type !== 'REFERENCE';
|
159
|
+
}
|
160
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2Ntcy91dGlscy9lbGVtZW50LnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFHaEQsTUFBTSxvQkFBb0IsR0FBRyxvQkFBb0IsQ0FBQztBQUNsRCxNQUFNLHdCQUF3QixHQUFHLDBEQUEwRCxDQUFDO0FBRTVGLE1BQU0sT0FBTyxZQUFhLFNBQVEsS0FBSztJQUVyQyxZQUFZLE9BQWUsRUFBRSxnQkFBaUM7UUFDNUQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztRQUNsQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUM7SUFDM0MsQ0FBQztDQUNGO0FBRUQsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxFQUFhLEVBQUUsVUFBbUIsRUFBbUIsRUFBRTtJQUN2RixNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ25ELE1BQU0sUUFBUSxHQUFHLEVBQUUsQ0FBQyxRQUFRLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDekQsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUVuRCxNQUFNLGlCQUFpQixHQUFHLE1BQU0sSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUVqRixJQUFJLENBQUMsaUJBQWlCLEVBQUU7UUFDdEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO0tBQ3ZEO0lBRUQsTUFBTSxlQUFlLEdBQUcsc0JBQXNCLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzdELE1BQU0sSUFBSSxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDO0lBRXpFLE9BQU87UUFDTCxHQUFHLGVBQWU7UUFDbEIsSUFBSTtRQUNKLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLHdCQUF3QixFQUFFLGNBQWMsQ0FBQztRQUNqRSxRQUFRO1FBQ1IsTUFBTTtRQUNOLFFBQVEsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztLQUNuRSxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxRQUF5QixFQUFFLFlBQXFCLElBQUksRUFBYSxFQUFFO0lBQ25HLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBNkUsUUFBUSxFQUFFO1FBQy9HLE1BQU07UUFDTixVQUFVO1FBQ1YsUUFBUTtRQUNSLFFBQVE7UUFDUixVQUFVO0tBQ1gsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxVQUFVLEdBQTJCO1FBQ3pDLEdBQUcsYUFBYTtRQUNoQixRQUFRLEVBQUUsUUFBUSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUM7S0FDcEQsQ0FBQztJQUNGLE1BQU0sb0JBQW9CLEdBQUcsd0JBQXdCLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFbEUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1FBQ25FLE1BQU0sSUFBSSxZQUFZLENBQUMsSUFBSSxRQUFRLENBQUMsSUFBSSxpREFBaUQsRUFBRSxRQUFRLENBQUMsQ0FBQztLQUN0RztJQUVELE1BQU0sTUFBTSxHQUNWLFFBQVEsQ0FBQyxNQUFNO1FBQ2YsTUFBTSxDQUFDLElBQUksQ0FDVCxRQUFRLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FDckIsb0JBQW9CLEVBQ3BCLHNCQUFzQix3QkFBd0IsQ0FBQyxvQkFBb0IsQ0FBQyx3QkFBd0IsQ0FDN0YsQ0FDRixDQUFDO0lBQ0osTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLFFBQVEsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNyRSxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRS9ELE9BQU87UUFDTCxNQUFNO1FBQ04sUUFBUTtRQUNSLE1BQU07UUFDTixRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7S0FDbEYsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLENBQUMsZUFBdUMsRUFBMEIsRUFBRTtJQUMxRyxNQUFNLFFBQVEsR0FBRyxFQUFFLEdBQUcsZUFBZSxFQUFFLENBQUM7SUFFeEMsUUFBUTtJQUNSLE1BQU0sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLEdBQUcsUUFBUSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7SUFDaEQsTUFBTSxLQUFLLEdBQTZCLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDOUYsSUFBSSxLQUFLLEVBQUU7UUFDVCxRQUFRLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztLQUN4QjtTQUFNO1FBQ0wsT0FBTyxRQUFRLENBQUMsS0FBSyxDQUFDO0tBQ3ZCO0lBRUQsU0FBUztJQUNULElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFO1FBQ3BCLE9BQU8sUUFBUSxDQUFDLE1BQU0sQ0FBQztLQUN4QjtJQUVELFlBQVk7SUFDWixJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRTtRQUN2QixPQUFPLFFBQVEsQ0FBQyxTQUFTLENBQUM7S0FDM0I7SUFFRCxTQUFTO0lBQ1QsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFO1FBQ2hGLE9BQU8sRUFBRSxHQUFHLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssSUFBSSxJQUFJLEVBQUUsQ0FBQztJQUMxQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDUCxJQUFJLE1BQU0sSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7UUFDNUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7S0FDMUI7U0FBTTtRQUNMLE9BQU8sUUFBUSxDQUFDLE1BQU0sQ0FBQztLQUN4QjtJQUVELFVBQVU7SUFDVixNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUU7UUFDbEYsT0FBTyxFQUFFLEdBQUcsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxJQUFJLElBQUksRUFBRSxDQUFDO0lBQzFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNQLElBQUksT0FBTyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtRQUM5QyxRQUFRLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztLQUM1QjtTQUFNO1FBQ0wsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDO0tBQ3pCO0lBRUQsV0FBVztJQUNYLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRTtRQUM5QixPQUFPLFFBQVEsQ0FBQyxRQUFRLENBQUM7S0FDMUI7SUFFRCxXQUFXO0lBQ1gsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUU7UUFDdEIsT0FBTyxRQUFRLENBQUMsUUFBUSxDQUFDO0tBQzFCO0lBRUQsbUJBQW1CO0lBQ25CLElBQUksQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLEVBQUU7UUFDOUIsT0FBTyxRQUFRLENBQUMsZ0JBQWdCLENBQUM7S0FDbEM7SUFFRCxPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxDQUFDLE1BQWMsRUFBMEIsRUFBRTtJQUMvRSxNQUFNLGNBQWMsR0FBRyxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUV4RSwyRUFBMkU7SUFDM0Usd0JBQXdCLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQztJQUV2QyxPQUFPLElBQUksUUFBUSxDQUFDLFVBQVUsY0FBYyxFQUFFLENBQUMsRUFBRSxDQUFDO0FBQ3BELENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLENBQUMsTUFBYyxFQUFFLE1BQXVDLEVBQVUsRUFBRTtJQUN2RyxNQUFNLGNBQWMsR0FBRyxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUV4RSwyRUFBMkU7SUFDM0Usd0JBQXdCLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQztJQUV2QyxJQUFJLENBQUMsY0FBYyxFQUFFO1FBQ25CLE9BQU8sTUFBTSxDQUFDO0tBQ2Y7SUFFRCxNQUFNLE9BQU8sR0FBRyxFQUFFLEdBQUcsSUFBSSxRQUFRLENBQUMsVUFBVSxjQUFjLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxNQUFNLEVBQUUsQ0FBQztJQUM3RSxPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLHdCQUF3QixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7QUFDM0UsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxJQUFrQixFQUFpQixFQUFFO0lBQ3BFLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3RCLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLENBQUMsSUFBa0IsRUFBVyxFQUFFO0lBQ2xFLE9BQU8sZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxLQUFLLENBQUM7QUFDckUsQ0FBQyxDQUFDO0FBRUYsTUFBTSxVQUFVLHdCQUF3QixDQUFDLGVBQXVDO0lBQzlFLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUV6RCxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsOEJBQThCLEVBQUUsVUFBVSxLQUFLO1FBQ3BFLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDakMsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQUMsTUFBZSxFQUFXLEVBQUU7SUFDeEQsSUFBSSxDQUFDLE1BQU0sRUFBRTtRQUNYLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7SUFFRCxNQUFNLGlCQUFpQixHQUFHLE1BQU0sSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqRixJQUFJLENBQUMsaUJBQWlCLEVBQUU7UUFDdEIsT0FBTyxLQUFLLENBQUM7S0FDZDtJQUVELE1BQU0sSUFBSSxHQUFHLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzVDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRTtRQUM1QixPQUFPLEtBQUssQ0FBQztLQUNkO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDLENBQUM7QUFFRixNQUFNLFVBQVUsZUFBZSxDQUFDLFFBQTJCO0lBQ3pELE9BQU8sT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFHLGVBQWUsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDNUUsQ0FBQztBQUVELE1BQU0sVUFBVSxlQUFlLENBQUMsRUFBbUI7SUFDakQsT0FBTyxPQUFPLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLEtBQUssV0FBVyxDQUFDO0FBQ3pELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBVSUVsZW1lbnQgfSBmcm9tICdAdmVsb2NlYXBwcy9zZGsvY29yZSc7XG5pbXBvcnQgeyBmbGF0dGVuLCBvbWl0IH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IENPTkZJRyB9IGZyb20gJy4uL2Ntcy5lbGVtZW50cyc7XG5pbXBvcnQgeyBJT1BsdWdpbiB9IGZyb20gJy4uL3BsdWdpbnMvaW8ucGx1Z2luJztcbmltcG9ydCB7IEVMRU1FTlRfVFlQRSwgRWxlbWVudENvbmZpZywgRWxlbWVudERlZmF1bHRNZXRhZGF0YSwgRWxlbWVudE1ldGFkYXRhLCBFbGVtZW50TW9kZWwgfSBmcm9tICcuLi90eXBlcyc7XG5cbmNvbnN0IEVYUE9SVEVEX0NMQVNTX1JFR0VYID0gL2V4cG9ydCBjbGFzcyAoXFxTKykvO1xuY29uc3QgTUVUQURBVEFfREVDT1JBVE9SX1JFR0VYID0gL0BFbGVtZW50RGVmaW5pdGlvblxcKChbXFxzXFxTXSspXFwpKFxcbnxcXHJcXG58LikqZXhwb3J0IGNsYXNzL2c7XG5cbmV4cG9ydCBjbGFzcyBVaUJ1aWxkRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIHB1YmxpYyBhZmZlY3RlZE1ldGFkYXRhOiBFbGVtZW50TWV0YWRhdGE7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZywgYWZmZWN0ZWRNZXRhZGF0YTogRWxlbWVudE1ldGFkYXRhKSB7XG4gICAgc3VwZXIobWVzc2FnZSk7XG4gICAgdGhpcy5uYW1lID0gdGhpcy5jb25zdHJ1Y3Rvci5uYW1lO1xuICAgIHRoaXMuYWZmZWN0ZWRNZXRhZGF0YSA9IGFmZmVjdGVkTWV0YWRhdGE7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGVsZW1lbnRUb01ldGFkYXRhID0gKGVsOiBVSUVsZW1lbnQsIHBhcmVudFBhdGg/OiBzdHJpbmcpOiBFbGVtZW50TWV0YWRhdGEgPT4ge1xuICBjb25zdCBzY3JpcHQgPSBlbC5zY3JpcHQgJiYgd2luZG93LmF0b2IoZWwuc2NyaXB0KTtcbiAgY29uc3QgdGVtcGxhdGUgPSBlbC50ZW1wbGF0ZSAmJiB3aW5kb3cuYXRvYihlbC50ZW1wbGF0ZSk7XG4gIGNvbnN0IHN0eWxlcyA9IGVsLnN0eWxlcyAmJiB3aW5kb3cuYXRvYihlbC5zdHlsZXMpO1xuXG4gIGNvbnN0IGV4cG9ydGVkQ2xhc3NOYW1lID0gc2NyaXB0ICYmIChFWFBPUlRFRF9DTEFTU19SRUdFWC5leGVjKHNjcmlwdCkgPz8gW10pWzFdO1xuXG4gIGlmICghZXhwb3J0ZWRDbGFzc05hbWUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJTY3JpcHQgZG9lc24ndCBoYXZlIGV4cG9ydGVkIGNsYXNzXCIpO1xuICB9XG5cbiAgY29uc3QgZWxlbWVudE1ldGFkYXRhID0gZXh0cmFjdEVsZW1lbnRNZXRhZGF0YShzY3JpcHQgfHwgJycpO1xuICBjb25zdCBwYXRoID0gKHBhcmVudFBhdGggPyBwYXJlbnRQYXRoICsgJy8nIDogJycpICsgZWxlbWVudE1ldGFkYXRhLm5hbWU7XG5cbiAgcmV0dXJuIHtcbiAgICAuLi5lbGVtZW50TWV0YWRhdGEsXG4gICAgcGF0aCxcbiAgICBzY3JpcHQ6IHNjcmlwdD8ucmVwbGFjZShNRVRBREFUQV9ERUNPUkFUT1JfUkVHRVgsICdleHBvcnQgY2xhc3MnKSxcbiAgICB0ZW1wbGF0ZSxcbiAgICBzdHlsZXMsXG4gICAgY2hpbGRyZW46IGVsLmNoaWxkcmVuLm1hcChjaGlsZCA9PiBlbGVtZW50VG9NZXRhZGF0YShjaGlsZCwgcGF0aCkpLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IG1ldGFkYXRhVG9FbGVtZW50ID0gKG1ldGFkYXRhOiBFbGVtZW50TWV0YWRhdGEsIHJlY3Vyc2l2ZTogYm9vbGVhbiA9IHRydWUpOiBVSUVsZW1lbnQgPT4ge1xuICBjb25zdCBjbGVhbk1ldGFkYXRhID0gb21pdDxFbGVtZW50TWV0YWRhdGEsIGtleW9mIE9taXQ8RWxlbWVudE1ldGFkYXRhLCBrZXlvZiBFbGVtZW50RGVmYXVsdE1ldGFkYXRhPj4obWV0YWRhdGEsIFtcbiAgICAncGF0aCcsXG4gICAgJ3RlbXBsYXRlJyxcbiAgICAnc3R5bGVzJyxcbiAgICAnc2NyaXB0JyxcbiAgICAnbWV0YWRhdGEnLFxuICBdKTtcbiAgY29uc3QgZWxNZXRhZGF0YTogRWxlbWVudERlZmF1bHRNZXRhZGF0YSA9IHtcbiAgICAuLi5jbGVhbk1ldGFkYXRhLFxuICAgIGNoaWxkcmVuOiBtZXRhZGF0YS5jaGlsZHJlbi5tYXAoKHsgbmFtZSB9KSA9PiBuYW1lKSxcbiAgfTtcbiAgY29uc3Qgbm9ybWFsaXplZEVsTWV0YWRhdGEgPSBub3JtYWxpemVFbGVtZW50TWV0YWRhdGEoZWxNZXRhZGF0YSk7XG5cbiAgaWYgKCFtZXRhZGF0YS5zY3JpcHQgfHwgIUVYUE9SVEVEX0NMQVNTX1JFR0VYLnRlc3QobWV0YWRhdGEuc2NyaXB0KSkge1xuICAgIHRocm93IG5ldyBVaUJ1aWxkRXJyb3IoYCcke21ldGFkYXRhLm5hbWV9JyBjb21wb25lbnQgc2NyaXB0IGlzIG1pc3NpbmcgYW4gZXhwb3J0ZWQgY2xhc3NgLCBtZXRhZGF0YSk7XG4gIH1cblxuICBjb25zdCBzY3JpcHQgPVxuICAgIG1ldGFkYXRhLnNjcmlwdCAmJlxuICAgIHdpbmRvdy5idG9hKFxuICAgICAgbWV0YWRhdGEuc2NyaXB0LnJlcGxhY2UoXG4gICAgICAgIEVYUE9SVEVEX0NMQVNTX1JFR0VYLFxuICAgICAgICBgQEVsZW1lbnREZWZpbml0aW9uKCR7c3RyaW5naWZ5RWxlbWVudE1ldGFkYXRhKG5vcm1hbGl6ZWRFbE1ldGFkYXRhKX0pXFxuZXhwb3J0IGNsYXNzIFNjcmlwdGAsXG4gICAgICApLFxuICAgICk7XG4gIGNvbnN0IHRlbXBsYXRlID0gbWV0YWRhdGEudGVtcGxhdGUgJiYgd2luZG93LmJ0b2EobWV0YWRhdGEudGVtcGxhdGUpO1xuICBjb25zdCBzdHlsZXMgPSBtZXRhZGF0YS5zdHlsZXMgJiYgd2luZG93LmJ0b2EobWV0YWRhdGEuc3R5bGVzKTtcblxuICByZXR1cm4ge1xuICAgIHNjcmlwdCxcbiAgICB0ZW1wbGF0ZSxcbiAgICBzdHlsZXMsXG4gICAgY2hpbGRyZW46IHJlY3Vyc2l2ZSA/IG1ldGFkYXRhLmNoaWxkcmVuLm1hcChtZXRhID0+IG1ldGFkYXRhVG9FbGVtZW50KG1ldGEpKSA6IFtdLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IG5vcm1hbGl6ZUVsZW1lbnRNZXRhZGF0YSA9IChlbGVtZW50TWV0YWRhdGE6IEVsZW1lbnREZWZhdWx0TWV0YWRhdGEpOiBFbGVtZW50RGVmYXVsdE1ldGFkYXRhID0+IHtcbiAgY29uc3QgbWV0YWRhdGEgPSB7IC4uLmVsZW1lbnRNZXRhZGF0YSB9O1xuXG4gIC8vIG1vZGVsXG4gIGNvbnN0IHsgbGluZUl0ZW0sIHBhdGggfSA9IG1ldGFkYXRhLm1vZGVsID8/IHt9O1xuICBjb25zdCBtb2RlbDogRWxlbWVudE1vZGVsIHwgdW5kZWZpbmVkID0gbGluZUl0ZW0gPyB7IGxpbmVJdGVtIH0gOiBwYXRoID8geyBwYXRoIH0gOiB1bmRlZmluZWQ7XG4gIGlmIChtb2RlbCkge1xuICAgIG1ldGFkYXRhLm1vZGVsID0gbW9kZWw7XG4gIH0gZWxzZSB7XG4gICAgZGVsZXRlIG1ldGFkYXRhLm1vZGVsO1xuICB9XG5cbiAgLy8gbW9kdWxlXG4gIGlmICghbWV0YWRhdGEubW9kdWxlKSB7XG4gICAgZGVsZXRlIG1ldGFkYXRhLm1vZHVsZTtcbiAgfVxuXG4gIC8vIHJlZmVyZW5jZVxuICBpZiAoIW1ldGFkYXRhLnJlZmVyZW5jZSkge1xuICAgIGRlbGV0ZSBtZXRhZGF0YS5yZWZlcmVuY2U7XG4gIH1cblxuICAvLyBpbnB1dHNcbiAgY29uc3QgaW5wdXRzID0gT2JqZWN0LmVudHJpZXMobWV0YWRhdGEuaW5wdXRzID8/IHt9KS5yZWR1Y2UoKGFjYywgW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgcmV0dXJuIHsgLi4uYWNjLCBba2V5XTogdmFsdWUgfHwgbnVsbCB9O1xuICB9LCB7fSk7XG4gIGlmIChpbnB1dHMgJiYgT2JqZWN0LmtleXMoaW5wdXRzKS5sZW5ndGggPiAwKSB7XG4gICAgbWV0YWRhdGEuaW5wdXRzID0gaW5wdXRzO1xuICB9IGVsc2Uge1xuICAgIGRlbGV0ZSBtZXRhZGF0YS5pbnB1dHM7XG4gIH1cblxuICAvLyBvdXRwdXRzXG4gIGNvbnN0IG91dHB1dHMgPSBPYmplY3QuZW50cmllcyhtZXRhZGF0YS5vdXRwdXRzID8/IHt9KS5yZWR1Y2UoKGFjYywgW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgcmV0dXJuIHsgLi4uYWNjLCBba2V5XTogdmFsdWUgfHwgbnVsbCB9O1xuICB9LCB7fSk7XG4gIGlmIChvdXRwdXRzICYmIE9iamVjdC5rZXlzKG91dHB1dHMpLmxlbmd0aCA+IDApIHtcbiAgICBtZXRhZGF0YS5vdXRwdXRzID0gb3V0cHV0cztcbiAgfSBlbHNlIHtcbiAgICBkZWxldGUgbWV0YWRhdGEub3V0cHV0cztcbiAgfVxuXG4gIC8vIGNoaWxkcmVuXG4gIGlmICghbWV0YWRhdGEuY2hpbGRyZW4/Lmxlbmd0aCkge1xuICAgIGRlbGV0ZSBtZXRhZGF0YS5jaGlsZHJlbjtcbiAgfVxuXG4gIC8vIGlzU2hhcmVkXG4gIGlmICghbWV0YWRhdGEuaXNTaGFyZWQpIHtcbiAgICBkZWxldGUgbWV0YWRhdGEuaXNTaGFyZWQ7XG4gIH1cblxuICAvLyBjb25maWd1cmVkU3R5bGVzXG4gIGlmICghbWV0YWRhdGEuY29uZmlndXJlZFN0eWxlcykge1xuICAgIGRlbGV0ZSBtZXRhZGF0YS5jb25maWd1cmVkU3R5bGVzO1xuICB9XG5cbiAgcmV0dXJuIG1ldGFkYXRhO1xufTtcblxuZXhwb3J0IGNvbnN0IGV4dHJhY3RFbGVtZW50TWV0YWRhdGEgPSAoc2NyaXB0OiBzdHJpbmcpOiBFbGVtZW50RGVmYXVsdE1ldGFkYXRhID0+IHtcbiAgY29uc3QgbWV0YWRhdGFTdHJpbmcgPSAoTUVUQURBVEFfREVDT1JBVE9SX1JFR0VYLmV4ZWMoc2NyaXB0KSA/PyBbXSlbMV07XG5cbiAgLy8gbmVlZCB0byByZXNldCByZWdleCBsYXN0IGluZGV4IHRvIHByZXZlbnQgbnVsbCByZXN1bHQgZm9yIG5leHQgZXhlY3V0aW9uXG4gIE1FVEFEQVRBX0RFQ09SQVRPUl9SRUdFWC5sYXN0SW5kZXggPSAwO1xuXG4gIHJldHVybiBuZXcgRnVuY3Rpb24oYHJldHVybiAke21ldGFkYXRhU3RyaW5nfWApKCk7XG59O1xuXG5leHBvcnQgY29uc3QgZXh0ZW5kRWxlbWVudE1ldGFkYXRhID0gKHNjcmlwdDogc3RyaW5nLCBleHRlbmQ6IFBhcnRpYWw8RWxlbWVudERlZmF1bHRNZXRhZGF0YT4pOiBzdHJpbmcgPT4ge1xuICBjb25zdCBtZXRhZGF0YVN0cmluZyA9IChNRVRBREFUQV9ERUNPUkFUT1JfUkVHRVguZXhlYyhzY3JpcHQpID8/IFtdKVsxXTtcblxuICAvLyBuZWVkIHRvIHJlc2V0IHJlZ2V4IGxhc3QgaW5kZXggdG8gcHJldmVudCBudWxsIHJlc3VsdCBmb3IgbmV4dCBleGVjdXRpb25cbiAgTUVUQURBVEFfREVDT1JBVE9SX1JFR0VYLmxhc3RJbmRleCA9IDA7XG5cbiAgaWYgKCFtZXRhZGF0YVN0cmluZykge1xuICAgIHJldHVybiBzY3JpcHQ7XG4gIH1cblxuICBjb25zdCB1cGRhdGVkID0geyAuLi5uZXcgRnVuY3Rpb24oYHJldHVybiAke21ldGFkYXRhU3RyaW5nfWApKCksIC4uLmV4dGVuZCB9O1xuICByZXR1cm4gc2NyaXB0LnJlcGxhY2UobWV0YWRhdGFTdHJpbmcsIHN0cmluZ2lmeUVsZW1lbnRNZXRhZGF0YSh1cGRhdGVkKSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0RWxlbWVudENvbmZpZyA9ICh0eXBlOiBFTEVNRU5UX1RZUEUpOiBFbGVtZW50Q29uZmlnID0+IHtcbiAgcmV0dXJuIENPTkZJR1t0eXBlXTtcbn07XG5cbmV4cG9ydCBjb25zdCBkb2VzRWxlbWVudFN1cHBvcnRJTyA9ICh0eXBlOiBFTEVNRU5UX1RZUEUpOiBib29sZWFuID0+IHtcbiAgcmV0dXJuIGdldEVsZW1lbnRDb25maWcodHlwZSkucGx1Z2lucz8uaW5jbHVkZXMoSU9QbHVnaW4pID8/IGZhbHNlO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIHN0cmluZ2lmeUVsZW1lbnRNZXRhZGF0YShlbGVtZW50TWV0YWRhdGE6IEVsZW1lbnREZWZhdWx0TWV0YWRhdGEpOiBzdHJpbmcge1xuICBjb25zdCBjbGVhbmVkID0gSlNPTi5zdHJpbmdpZnkoZWxlbWVudE1ldGFkYXRhLCBudWxsLCAyKTtcblxuICByZXR1cm4gY2xlYW5lZC5yZXBsYWNlKC9eW1xcdCBdKlwiW146XFxuXFxyXSsoPzwhXFxcXClcIjovZ20sIGZ1bmN0aW9uIChtYXRjaCkge1xuICAgIHJldHVybiBtYXRjaC5yZXBsYWNlKC9cIi9nLCAnJyk7XG4gIH0pO1xufVxuXG5leHBvcnQgY29uc3QgaXNWYWxpZFNjcmlwdCA9IChzY3JpcHQ/OiBzdHJpbmcpOiBib29sZWFuID0+IHtcbiAgaWYgKCFzY3JpcHQpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCBleHBvcnRlZENsYXNzTmFtZSA9IHNjcmlwdCAmJiAoRVhQT1JURURfQ0xBU1NfUkVHRVguZXhlYyhzY3JpcHQpID8/IFtdKVsxXTtcbiAgaWYgKCFleHBvcnRlZENsYXNzTmFtZSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IG1ldGEgPSBleHRyYWN0RWxlbWVudE1ldGFkYXRhKHNjcmlwdCk7XG4gIGlmICghbWV0YS5uYW1lIHx8ICFtZXRhLnR5cGUpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBmbGF0dGVuRWxlbWVudHMoZWxlbWVudHM6IEVsZW1lbnRNZXRhZGF0YVtdKTogRWxlbWVudE1ldGFkYXRhW10ge1xuICByZXR1cm4gZmxhdHRlbihlbGVtZW50cy5tYXAoZWwgPT4gW2VsLCAuLi5mbGF0dGVuRWxlbWVudHMoZWwuY2hpbGRyZW4pXSkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNTaGFyZWRFbGVtZW50KGVsOiBFbGVtZW50TWV0YWRhdGEpOiBib29sZWFuIHtcbiAgcmV0dXJuIEJvb2xlYW4oZWwuaXNTaGFyZWQpICYmIGVsLnR5cGUgIT09ICdSRUZFUkVOQ0UnO1xufVxuIl19
|