@veloceapps/sdk 12.0.0-12 → 12.0.0-14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cms/index.d.ts +921 -15
- package/core/index.d.ts +525 -8
- package/fesm2022/veloceapps-sdk-cms.mjs +2617 -0
- package/fesm2022/veloceapps-sdk-cms.mjs.map +1 -0
- package/{fesm2020 → fesm2022}/veloceapps-sdk-core.mjs +117 -112
- package/fesm2022/veloceapps-sdk-core.mjs.map +1 -0
- package/{fesm2020 → fesm2022}/veloceapps-sdk.mjs +170 -170
- package/fesm2022/veloceapps-sdk.mjs.map +1 -0
- package/index.d.ts +330 -1
- package/package.json +17 -34
- package/cms/cms.actions.d.ts +0 -154
- package/cms/cms.default.d.ts +0 -5
- package/cms/cms.elements.d.ts +0 -4
- package/cms/cms.layouts.d.ts +0 -4
- package/cms/components/element-children/element-children.component.d.ts +0 -22
- package/cms/components/element-children/element-children.module.d.ts +0 -11
- package/cms/components/element-drop-handle/element-drop-handle.component.d.ts +0 -12
- package/cms/components/element-drop-handle/element-drop-handle.module.d.ts +0 -9
- package/cms/components/element-renderer/element-renderer.component.d.ts +0 -29
- package/cms/components/element-renderer/element-renderer.module.d.ts +0 -7
- package/cms/components/element-tools-panel/element-tools-panel.component.d.ts +0 -14
- package/cms/components/element.component.d.ts +0 -17
- package/cms/components/index.d.ts +0 -1
- package/cms/components/plugin.component.d.ts +0 -15
- package/cms/components/preview/index.d.ts +0 -3
- package/cms/components/preview/preview.component.d.ts +0 -32
- package/cms/components/preview/preview.module.d.ts +0 -13
- package/cms/components/preview/preview.types.d.ts +0 -20
- package/cms/decorators/element.decorator.d.ts +0 -2
- package/cms/decorators/index.d.ts +0 -1
- package/cms/definitions/index.d.ts +0 -1
- package/cms/definitions/ui-builder.definitions.d.ts +0 -6
- package/cms/directives/custom-template.directive.d.ts +0 -17
- package/cms/engine/models/entity.d.ts +0 -11
- package/cms/engine/models/plugin.d.ts +0 -5
- package/cms/injection-tokens.d.ts +0 -9
- package/cms/launcher.module.d.ts +0 -12
- package/cms/modules/federated/default-options.d.ts +0 -4
- package/cms/modules/federated/export.d.ts +0 -1
- package/cms/modules/federated/federated-host.directive.d.ts +0 -8
- package/cms/modules/federated/federated.component.d.ts +0 -25
- package/cms/modules/federated/federated.module.d.ts +0 -10
- package/cms/modules/federated/federated.types.d.ts +0 -26
- package/cms/modules/migrations/index.d.ts +0 -2
- package/cms/modules/migrations/migrations.d.ts +0 -2
- package/cms/modules/migrations/migrations.module.d.ts +0 -6
- package/cms/modules/migrations/services/migrations.service.d.ts +0 -10
- package/cms/modules/migrations/types/migrations.types.d.ts +0 -2
- package/cms/modules/runtime/index.d.ts +0 -3
- package/cms/modules/runtime/runtime.module.d.ts +0 -8
- package/cms/modules/runtime/services/compilation.service.d.ts +0 -19
- package/cms/modules/runtime/services/runtime-editor.service.d.ts +0 -20
- package/cms/modules/runtime/services/runtime.service.d.ts +0 -33
- package/cms/modules/runtime/tokens.d.ts +0 -3
- package/cms/modules/runtime/types/compilation.types.d.ts +0 -8
- package/cms/modules/runtime/types/runtime.actions.d.ts +0 -12
- package/cms/plugins/element-hover.plugin.d.ts +0 -33
- package/cms/plugins/io.plugin.d.ts +0 -9
- package/cms/plugins/page.plugin.d.ts +0 -15
- package/cms/plugins/region.plugin.d.ts +0 -17
- package/cms/plugins/script.plugin.d.ts +0 -10
- package/cms/services/element-context.service.d.ts +0 -7
- package/cms/services/index.d.ts +0 -2
- package/cms/services/io-provider.service.d.ts +0 -15
- package/cms/services/resources.service.d.ts +0 -21
- package/cms/services/templates.service.d.ts +0 -14
- package/cms/types/common.types.d.ts +0 -130
- package/cms/types/elements.types.d.ts +0 -2
- package/cms/types/index.d.ts +0 -6
- package/cms/types/layouts.types.d.ts +0 -102
- package/cms/types/pages.types.d.ts +0 -1
- package/cms/types/path.types.d.ts +0 -11
- package/cms/utils/element-metadata-worker.d.ts +0 -11
- package/cms/utils/element.utils.d.ts +0 -20
- package/cms/utils/elements-resolver.d.ts +0 -28
- package/cms/utils/encoding.utils.d.ts +0 -2
- package/cms/utils/index.d.ts +0 -9
- package/cms/utils/inject.d.ts +0 -1
- package/cms/utils/path.utils.d.ts +0 -3
- package/cms/utils/script.utils.d.ts +0 -2
- package/cms/utils/transpilation-worker.d.ts +0 -13
- package/cms/utils/ui-builder-layout.utils.d.ts +0 -4
- package/cms/utils/ui-definition.utils.d.ts +0 -6
- package/cms/vendor-map.d.ts +0 -86
- package/core/core.module.d.ts +0 -10
- package/core/directives/directives.module.d.ts +0 -7
- package/core/directives/index.d.ts +0 -2
- package/core/directives/primeng-calendar.directive.d.ts +0 -14
- package/core/modules/configuration/configuration.module.d.ts +0 -8
- package/core/modules/configuration/index.d.ts +0 -6
- package/core/modules/configuration/services/configuration-runtime.service.d.ts +0 -19
- package/core/modules/configuration/services/configuration-state.service.d.ts +0 -60
- package/core/modules/configuration/services/configuration.service.d.ts +0 -38
- package/core/modules/configuration/services/guided-selling.service.d.ts +0 -15
- package/core/modules/configuration/services/test-mode-configuration.service.d.ts +0 -26
- package/core/modules/configuration/types/configuration-runtime.types.d.ts +0 -3
- package/core/modules/configuration/types/configuration.types.d.ts +0 -20
- package/core/modules/configuration/types/index.d.ts +0 -2
- package/core/modules/flow-configuration/flow-configuration.module.d.ts +0 -7
- package/core/modules/flow-configuration/index.d.ts +0 -1
- package/core/modules/flow-configuration/services/flow-configuration.service.d.ts +0 -23
- package/core/modules/index.d.ts +0 -2
- package/core/operators/filter-successful-execute.operator.d.ts +0 -3
- package/core/operators/index.d.ts +0 -1
- package/core/pipes/action-code.pipe.d.ts +0 -8
- package/core/pipes/date.pipe.d.ts +0 -13
- package/core/pipes/index.d.ts +0 -5
- package/core/pipes/number.pipe.d.ts +0 -10
- package/core/pipes/pipes.module.d.ts +0 -10
- package/core/pipes/price.pipe.d.ts +0 -10
- package/core/services/catalog-products.service.d.ts +0 -11
- package/core/services/flow-info.service.d.ts +0 -44
- package/core/services/flow-state-configuration.service.d.ts +0 -25
- package/core/services/flow-state.service.d.ts +0 -70
- package/core/services/index.d.ts +0 -8
- package/core/services/integration.state.d.ts +0 -16
- package/core/services/product-images.service.d.ts +0 -12
- package/core/services/runtime-settings.service.d.ts +0 -24
- package/core/services/sales-transaction.service.d.ts +0 -27
- package/core/types/flow-customization.types.d.ts +0 -10
- package/core/types/flow-state.types.d.ts +0 -12
- package/core/types/formatting-settings.types.d.ts +0 -13
- package/core/types/index.d.ts +0 -5
- package/core/types/integration.types.d.ts +0 -10
- package/core/types/pipe.types.d.ts +0 -1
- package/core/types/ui-definition.types.d.ts +0 -1
- package/core/utils/index.d.ts +0 -4
- package/core/utils/pcm.utils.d.ts +0 -5
- package/core/utils/transaction-item.utils.d.ts +0 -10
- package/core/utils/transaction-item.worker.d.ts +0 -8
- package/core/utils/ui-definition.utils.d.ts +0 -2
- package/esm2020/cms/cms.actions.mjs +0 -151
- package/esm2020/cms/cms.default.mjs +0 -5
- package/esm2020/cms/cms.elements.mjs +0 -52
- package/esm2020/cms/cms.layouts.mjs +0 -239
- package/esm2020/cms/components/element-children/element-children.component.mjs +0 -41
- package/esm2020/cms/components/element-children/element-children.module.mjs +0 -21
- package/esm2020/cms/components/element-drop-handle/element-drop-handle.component.mjs +0 -28
- package/esm2020/cms/components/element-drop-handle/element-drop-handle.module.mjs +0 -19
- package/esm2020/cms/components/element-renderer/element-renderer.component.mjs +0 -117
- package/esm2020/cms/components/element-renderer/element-renderer.module.mjs +0 -16
- package/esm2020/cms/components/element-tools-panel/element-tools-panel.component.mjs +0 -35
- package/esm2020/cms/components/element.component.mjs +0 -45
- package/esm2020/cms/components/index.mjs +0 -2
- package/esm2020/cms/components/plugin.component.mjs +0 -17
- package/esm2020/cms/components/preview/index.mjs +0 -4
- package/esm2020/cms/components/preview/preview.component.mjs +0 -75
- package/esm2020/cms/components/preview/preview.module.mjs +0 -42
- package/esm2020/cms/components/preview/preview.types.mjs +0 -2
- package/esm2020/cms/decorators/element.decorator.mjs +0 -6
- package/esm2020/cms/decorators/index.mjs +0 -2
- package/esm2020/cms/definitions/index.mjs +0 -2
- package/esm2020/cms/definitions/ui-builder.definitions.mjs +0 -18
- package/esm2020/cms/directives/custom-template.directive.mjs +0 -38
- package/esm2020/cms/engine/models/entity.mjs +0 -17
- package/esm2020/cms/engine/models/plugin.mjs +0 -6
- package/esm2020/cms/index.mjs +0 -16
- package/esm2020/cms/injection-tokens.mjs +0 -7
- package/esm2020/cms/launcher.module.mjs +0 -24
- package/esm2020/cms/modules/federated/default-options.mjs +0 -5
- package/esm2020/cms/modules/federated/export.mjs +0 -2
- package/esm2020/cms/modules/federated/federated-host.directive.mjs +0 -16
- package/esm2020/cms/modules/federated/federated.component.mjs +0 -74
- package/esm2020/cms/modules/federated/federated.module.mjs +0 -20
- package/esm2020/cms/modules/federated/federated.types.mjs +0 -2
- package/esm2020/cms/modules/migrations/index.mjs +0 -3
- package/esm2020/cms/modules/migrations/migrations.mjs +0 -22
- package/esm2020/cms/modules/migrations/migrations.module.mjs +0 -15
- package/esm2020/cms/modules/migrations/services/migrations.service.mjs +0 -47
- package/esm2020/cms/modules/migrations/types/migrations.types.mjs +0 -2
- package/esm2020/cms/modules/runtime/index.mjs +0 -4
- package/esm2020/cms/modules/runtime/runtime.module.mjs +0 -32
- package/esm2020/cms/modules/runtime/services/compilation.service.mjs +0 -93
- package/esm2020/cms/modules/runtime/services/runtime-editor.service.mjs +0 -30
- package/esm2020/cms/modules/runtime/services/runtime.service.mjs +0 -117
- package/esm2020/cms/modules/runtime/tokens.mjs +0 -3
- package/esm2020/cms/modules/runtime/types/compilation.types.mjs +0 -2
- package/esm2020/cms/modules/runtime/types/runtime.actions.mjs +0 -2
- package/esm2020/cms/plugins/element-hover.plugin.mjs +0 -121
- package/esm2020/cms/plugins/io.plugin.mjs +0 -45
- package/esm2020/cms/plugins/page.plugin.mjs +0 -37
- package/esm2020/cms/plugins/region.plugin.mjs +0 -59
- package/esm2020/cms/plugins/script.plugin.mjs +0 -31
- package/esm2020/cms/services/element-context.service.mjs +0 -10
- package/esm2020/cms/services/index.mjs +0 -3
- package/esm2020/cms/services/io-provider.service.mjs +0 -53
- package/esm2020/cms/services/resources.service.mjs +0 -71
- package/esm2020/cms/services/templates.service.mjs +0 -32
- package/esm2020/cms/types/common.types.mjs +0 -2
- package/esm2020/cms/types/elements.types.mjs +0 -2
- package/esm2020/cms/types/index.mjs +0 -7
- package/esm2020/cms/types/layouts.types.mjs +0 -71
- package/esm2020/cms/types/pages.types.mjs +0 -2
- package/esm2020/cms/types/path.types.mjs +0 -2
- package/esm2020/cms/utils/element-metadata-worker.mjs +0 -31
- package/esm2020/cms/utils/element.utils.mjs +0 -182
- package/esm2020/cms/utils/elements-resolver.mjs +0 -206
- package/esm2020/cms/utils/encoding.utils.mjs +0 -29
- package/esm2020/cms/utils/index.mjs +0 -10
- package/esm2020/cms/utils/inject.mjs +0 -27
- package/esm2020/cms/utils/path.utils.mjs +0 -44
- package/esm2020/cms/utils/script.utils.mjs +0 -46
- package/esm2020/cms/utils/transpilation-worker.mjs +0 -52
- package/esm2020/cms/utils/ui-builder-layout.utils.mjs +0 -46
- package/esm2020/cms/utils/ui-definition.utils.mjs +0 -85
- package/esm2020/cms/veloceapps-sdk-cms.mjs +0 -5
- package/esm2020/cms/vendor-map.mjs +0 -83
- package/esm2020/core/core.module.mjs +0 -54
- package/esm2020/core/directives/directives.module.mjs +0 -16
- package/esm2020/core/directives/index.mjs +0 -3
- package/esm2020/core/directives/primeng-calendar.directive.mjs +0 -41
- package/esm2020/core/index.mjs +0 -9
- package/esm2020/core/modules/configuration/configuration.module.mjs +0 -34
- package/esm2020/core/modules/configuration/index.mjs +0 -7
- package/esm2020/core/modules/configuration/services/configuration-runtime.service.mjs +0 -38
- package/esm2020/core/modules/configuration/services/configuration-state.service.mjs +0 -381
- package/esm2020/core/modules/configuration/services/configuration.service.mjs +0 -172
- package/esm2020/core/modules/configuration/services/guided-selling.service.mjs +0 -62
- package/esm2020/core/modules/configuration/services/test-mode-configuration.service.mjs +0 -97
- package/esm2020/core/modules/configuration/types/configuration-runtime.types.mjs +0 -2
- package/esm2020/core/modules/configuration/types/configuration.types.mjs +0 -2
- package/esm2020/core/modules/configuration/types/index.mjs +0 -3
- package/esm2020/core/modules/flow-configuration/flow-configuration.module.mjs +0 -17
- package/esm2020/core/modules/flow-configuration/index.mjs +0 -2
- package/esm2020/core/modules/flow-configuration/services/flow-configuration.service.mjs +0 -80
- package/esm2020/core/modules/index.mjs +0 -3
- package/esm2020/core/operators/filter-successful-execute.operator.mjs +0 -5
- package/esm2020/core/operators/index.mjs +0 -2
- package/esm2020/core/pipes/action-code.pipe.mjs +0 -20
- package/esm2020/core/pipes/date.pipe.mjs +0 -44
- package/esm2020/core/pipes/index.mjs +0 -6
- package/esm2020/core/pipes/number.pipe.mjs +0 -27
- package/esm2020/core/pipes/pipes.module.mjs +0 -19
- package/esm2020/core/pipes/price.pipe.mjs +0 -30
- package/esm2020/core/services/catalog-products.service.mjs +0 -25
- package/esm2020/core/services/flow-info.service.mjs +0 -146
- package/esm2020/core/services/flow-state-configuration.service.mjs +0 -120
- package/esm2020/core/services/flow-state.service.mjs +0 -417
- package/esm2020/core/services/index.mjs +0 -9
- package/esm2020/core/services/integration.state.mjs +0 -36
- package/esm2020/core/services/product-images.service.mjs +0 -30
- package/esm2020/core/services/runtime-settings.service.mjs +0 -112
- package/esm2020/core/services/sales-transaction.service.mjs +0 -67
- package/esm2020/core/types/flow-customization.types.mjs +0 -3
- package/esm2020/core/types/flow-state.types.mjs +0 -2
- package/esm2020/core/types/formatting-settings.types.mjs +0 -3
- package/esm2020/core/types/index.mjs +0 -6
- package/esm2020/core/types/integration.types.mjs +0 -2
- package/esm2020/core/types/pipe.types.mjs +0 -2
- package/esm2020/core/types/ui-definition.types.mjs +0 -2
- package/esm2020/core/utils/index.mjs +0 -5
- package/esm2020/core/utils/pcm.utils.mjs +0 -15
- package/esm2020/core/utils/transaction-item.utils.mjs +0 -144
- package/esm2020/core/utils/transaction-item.worker.mjs +0 -16
- package/esm2020/core/utils/ui-definition.utils.mjs +0 -9
- package/esm2020/core/veloceapps-sdk-core.mjs +0 -5
- package/esm2020/index.mjs +0 -2
- package/esm2020/src/components/dialog/dialog.component.mjs +0 -36
- package/esm2020/src/components/dialog/dialog.module.mjs +0 -19
- package/esm2020/src/components/dialog/dialog.types.mjs +0 -2
- package/esm2020/src/components/flow-header/flow-header.component.mjs +0 -107
- package/esm2020/src/components/flow-header/flow-header.module.mjs +0 -19
- package/esm2020/src/components/flow-header/index.mjs +0 -2
- package/esm2020/src/components/guided-selling/guided-selling.component.mjs +0 -107
- package/esm2020/src/components/guided-selling/guided-selling.module.mjs +0 -19
- package/esm2020/src/configure-primeng.mjs +0 -33
- package/esm2020/src/constants.mjs +0 -2
- package/esm2020/src/flow-routing.module.mjs +0 -97
- package/esm2020/src/flow.component.mjs +0 -39
- package/esm2020/src/flow.module.mjs +0 -60
- package/esm2020/src/guards/flow.guard.mjs +0 -35
- package/esm2020/src/guards/product-unload.guard.mjs +0 -49
- package/esm2020/src/guards/root.guard.mjs +0 -46
- package/esm2020/src/index.mjs +0 -5
- package/esm2020/src/pages/assets/assets.component.mjs +0 -106
- package/esm2020/src/pages/assets/assets.module.mjs +0 -20
- package/esm2020/src/pages/catalog/catalog.component.mjs +0 -106
- package/esm2020/src/pages/catalog/catalog.module.mjs +0 -20
- package/esm2020/src/pages/debug/debug.component.mjs +0 -49
- package/esm2020/src/pages/debug/debug.module.mjs +0 -46
- package/esm2020/src/pages/product/product.component.mjs +0 -55
- package/esm2020/src/pages/product/product.module.mjs +0 -20
- package/esm2020/src/pages/record-not-found/record-not-found.component.mjs +0 -27
- package/esm2020/src/pages/record-not-found/record-not-found.module.mjs +0 -20
- package/esm2020/src/pages/shopping-cart/shopping-cart.component.mjs +0 -106
- package/esm2020/src/pages/shopping-cart/shopping-cart.module.mjs +0 -20
- package/esm2020/src/resolvers/flow.resolver.mjs +0 -50
- package/esm2020/src/resolvers/pcm-model.resolver.mjs +0 -12
- package/esm2020/src/resolvers/sales-transaction.resolver.mjs +0 -64
- package/esm2020/src/resolvers/ui-definition.resolver.mjs +0 -44
- package/esm2020/src/services/flow-dialog.service.mjs +0 -91
- package/esm2020/src/services/flow-router.service.mjs +0 -173
- package/esm2020/src/services/flow.service.mjs +0 -102
- package/esm2020/src/services/guided-selling.service.mjs +0 -34
- package/esm2020/src/services/index.mjs +0 -4
- package/esm2020/src/types/index.mjs +0 -2
- package/esm2020/src/types/route.types.mjs +0 -2
- package/esm2020/veloceapps-sdk.mjs +0 -5
- package/fesm2015/veloceapps-sdk-cms.mjs +0 -2514
- package/fesm2015/veloceapps-sdk-cms.mjs.map +0 -1
- package/fesm2015/veloceapps-sdk-core.mjs +0 -2104
- package/fesm2015/veloceapps-sdk-core.mjs.map +0 -1
- package/fesm2015/veloceapps-sdk.mjs +0 -1598
- package/fesm2015/veloceapps-sdk.mjs.map +0 -1
- package/fesm2020/veloceapps-sdk-cms.mjs +0 -2613
- package/fesm2020/veloceapps-sdk-cms.mjs.map +0 -1
- package/fesm2020/veloceapps-sdk-core.mjs.map +0 -1
- package/fesm2020/veloceapps-sdk.mjs.map +0 -1
- package/src/components/dialog/dialog.component.d.ts +0 -13
- package/src/components/dialog/dialog.module.d.ts +0 -9
- package/src/components/dialog/dialog.types.d.ts +0 -7
- package/src/components/flow-header/flow-header.component.d.ts +0 -25
- package/src/components/flow-header/flow-header.module.d.ts +0 -9
- package/src/components/flow-header/index.d.ts +0 -1
- package/src/components/guided-selling/guided-selling.component.d.ts +0 -25
- package/src/components/guided-selling/guided-selling.module.d.ts +0 -9
- package/src/configure-primeng.d.ts +0 -1
- package/src/constants.d.ts +0 -1
- package/src/flow-routing.module.d.ts +0 -11
- package/src/flow.component.d.ts +0 -21
- package/src/flow.module.d.ts +0 -16
- package/src/guards/flow.guard.d.ts +0 -2
- package/src/guards/product-unload.guard.d.ts +0 -16
- package/src/guards/root.guard.d.ts +0 -14
- package/src/index.d.ts +0 -4
- package/src/pages/assets/assets.component.d.ts +0 -31
- package/src/pages/assets/assets.module.d.ts +0 -10
- package/src/pages/catalog/catalog.component.d.ts +0 -31
- package/src/pages/catalog/catalog.module.d.ts +0 -10
- package/src/pages/debug/debug.component.d.ts +0 -21
- package/src/pages/debug/debug.module.d.ts +0 -14
- package/src/pages/product/product.component.d.ts +0 -24
- package/src/pages/product/product.module.d.ts +0 -10
- package/src/pages/record-not-found/record-not-found.component.d.ts +0 -12
- package/src/pages/record-not-found/record-not-found.module.d.ts +0 -9
- package/src/pages/shopping-cart/shopping-cart.component.d.ts +0 -31
- package/src/pages/shopping-cart/shopping-cart.module.d.ts +0 -10
- package/src/resolvers/flow.resolver.d.ts +0 -14
- package/src/resolvers/pcm-model.resolver.d.ts +0 -3
- package/src/resolvers/sales-transaction.resolver.d.ts +0 -18
- package/src/resolvers/ui-definition.resolver.d.ts +0 -3
- package/src/services/flow-dialog.service.d.ts +0 -23
- package/src/services/flow-router.service.d.ts +0 -42
- package/src/services/flow.service.d.ts +0 -21
- package/src/services/guided-selling.service.d.ts +0 -13
- package/src/services/index.d.ts +0 -3
- package/src/types/index.d.ts +0 -1
- package/src/types/route.types.d.ts +0 -4
@@ -1,15 +0,0 @@
|
|
1
|
-
import { NgModule } from '@angular/core';
|
2
|
-
import { MigrationsService } from './services/migrations.service';
|
3
|
-
import * as i0 from "@angular/core";
|
4
|
-
export class MigrationsModule {
|
5
|
-
}
|
6
|
-
MigrationsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: MigrationsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
7
|
-
MigrationsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: MigrationsModule });
|
8
|
-
MigrationsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: MigrationsModule, providers: [MigrationsService] });
|
9
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: MigrationsModule, decorators: [{
|
10
|
-
type: NgModule,
|
11
|
-
args: [{
|
12
|
-
providers: [MigrationsService],
|
13
|
-
}]
|
14
|
-
}] });
|
15
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlncmF0aW9ucy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jbXMvbW9kdWxlcy9taWdyYXRpb25zL21pZ3JhdGlvbnMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7O0FBS2xFLE1BQU0sT0FBTyxnQkFBZ0I7OzZHQUFoQixnQkFBZ0I7OEdBQWhCLGdCQUFnQjs4R0FBaEIsZ0JBQWdCLGFBRmhCLENBQUMsaUJBQWlCLENBQUM7MkZBRW5CLGdCQUFnQjtrQkFINUIsUUFBUTttQkFBQztvQkFDUixTQUFTLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztpQkFDL0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWlncmF0aW9uc1NlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL21pZ3JhdGlvbnMuc2VydmljZSc7XG5cbkBOZ01vZHVsZSh7XG4gIHByb3ZpZGVyczogW01pZ3JhdGlvbnNTZXJ2aWNlXSxcbn0pXG5leHBvcnQgY2xhc3MgTWlncmF0aW9uc01vZHVsZSB7fVxuIl19
|
@@ -1,47 +0,0 @@
|
|
1
|
-
import { Injectable } from '@angular/core';
|
2
|
-
import { ToastService, ToastType } from '@veloceapps/components';
|
3
|
-
import { UI_DEFINITION_VERSION } from '@veloceapps/sdk/core';
|
4
|
-
import { cloneDeep } from 'lodash';
|
5
|
-
import { migrations } from '../migrations';
|
6
|
-
import * as i0 from "@angular/core";
|
7
|
-
import * as i1 from "@veloceapps/components";
|
8
|
-
export class MigrationsService {
|
9
|
-
constructor(toastService) {
|
10
|
-
this.toastService = toastService;
|
11
|
-
}
|
12
|
-
migrateUIDefinition(uiDef) {
|
13
|
-
const currentVersion = uiDef.version;
|
14
|
-
const targetVersion = UI_DEFINITION_VERSION;
|
15
|
-
const migrateVersions = Object.keys(migrations)
|
16
|
-
.reduce((acc, version) => {
|
17
|
-
const v = Number(version);
|
18
|
-
if (v > currentVersion && v <= targetVersion) {
|
19
|
-
acc.push(v);
|
20
|
-
}
|
21
|
-
return acc;
|
22
|
-
}, [])
|
23
|
-
.sort();
|
24
|
-
try {
|
25
|
-
let result = cloneDeep(uiDef);
|
26
|
-
for (const version of migrateVersions) {
|
27
|
-
const migration = migrations[version];
|
28
|
-
if (!migration) {
|
29
|
-
throw `V=${version} migration strategy is not defined`;
|
30
|
-
}
|
31
|
-
result = migration(result);
|
32
|
-
}
|
33
|
-
return result;
|
34
|
-
}
|
35
|
-
catch (e) {
|
36
|
-
this.toastService.add({ summary: String(e), severity: ToastType.error });
|
37
|
-
return;
|
38
|
-
}
|
39
|
-
}
|
40
|
-
}
|
41
|
-
MigrationsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: MigrationsService, deps: [{ token: i1.ToastService }], target: i0.ɵɵFactoryTarget.Injectable });
|
42
|
-
MigrationsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: MigrationsService, providedIn: 'root' });
|
43
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: MigrationsService, decorators: [{
|
44
|
-
type: Injectable,
|
45
|
-
args: [{ providedIn: 'root' }]
|
46
|
-
}], ctorParameters: function () { return [{ type: i1.ToastService }]; } });
|
47
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlncmF0aW9ucy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvY21zL21vZHVsZXMvbWlncmF0aW9ucy9zZXJ2aWNlcy9taWdyYXRpb25zLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRWpFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzdELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDbkMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBRzNDLE1BQU0sT0FBTyxpQkFBaUI7SUFDNUIsWUFBb0IsWUFBMEI7UUFBMUIsaUJBQVksR0FBWixZQUFZLENBQWM7SUFBRyxDQUFDO0lBRTNDLG1CQUFtQixDQUFDLEtBQW1CO1FBQzVDLE1BQU0sY0FBYyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFDckMsTUFBTSxhQUFhLEdBQUcscUJBQXFCLENBQUM7UUFFNUMsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7YUFDNUMsTUFBTSxDQUFDLENBQUMsR0FBYSxFQUFFLE9BQU8sRUFBRSxFQUFFO1lBQ2pDLE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUMxQixJQUFJLENBQUMsR0FBRyxjQUFjLElBQUksQ0FBQyxJQUFJLGFBQWEsRUFBRTtnQkFDNUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNiO1lBRUQsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDLEVBQUUsRUFBRSxDQUFDO2FBQ0wsSUFBSSxFQUFFLENBQUM7UUFFVixJQUFJO1lBQ0YsSUFBSSxNQUFNLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRTlCLEtBQUssTUFBTSxPQUFPLElBQUksZUFBZSxFQUFFO2dCQUNyQyxNQUFNLFNBQVMsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ3RDLElBQUksQ0FBQyxTQUFTLEVBQUU7b0JBQ2QsTUFBTSxLQUFLLE9BQU8sb0NBQW9DLENBQUM7aUJBQ3hEO2dCQUVELE1BQU0sR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDNUI7WUFFRCxPQUFPLE1BQU0sQ0FBQztTQUNmO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDVixJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBQ3pFLE9BQU87U0FDUjtJQUNILENBQUM7OzhHQW5DVSxpQkFBaUI7a0hBQWpCLGlCQUFpQixjQURKLE1BQU07MkZBQ25CLGlCQUFpQjtrQkFEN0IsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UsIFRvYXN0VHlwZSB9IGZyb20gJ0B2ZWxvY2VhcHBzL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgVUlEZWZpbml0aW9uIH0gZnJvbSAnQHZlbG9jZWFwcHMvY29yZSc7XG5pbXBvcnQgeyBVSV9ERUZJTklUSU9OX1ZFUlNJT04gfSBmcm9tICdAdmVsb2NlYXBwcy9zZGsvY29yZSc7XG5pbXBvcnQgeyBjbG9uZURlZXAgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgbWlncmF0aW9ucyB9IGZyb20gJy4uL21pZ3JhdGlvbnMnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIE1pZ3JhdGlvbnNTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSB0b2FzdFNlcnZpY2U6IFRvYXN0U2VydmljZSkge31cblxuICBwdWJsaWMgbWlncmF0ZVVJRGVmaW5pdGlvbih1aURlZjogVUlEZWZpbml0aW9uKTogVUlEZWZpbml0aW9uIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBjdXJyZW50VmVyc2lvbiA9IHVpRGVmLnZlcnNpb247XG4gICAgY29uc3QgdGFyZ2V0VmVyc2lvbiA9IFVJX0RFRklOSVRJT05fVkVSU0lPTjtcblxuICAgIGNvbnN0IG1pZ3JhdGVWZXJzaW9ucyA9IE9iamVjdC5rZXlzKG1pZ3JhdGlvbnMpXG4gICAgICAucmVkdWNlKChhY2M6IG51bWJlcltdLCB2ZXJzaW9uKSA9PiB7XG4gICAgICAgIGNvbnN0IHYgPSBOdW1iZXIodmVyc2lvbik7XG4gICAgICAgIGlmICh2ID4gY3VycmVudFZlcnNpb24gJiYgdiA8PSB0YXJnZXRWZXJzaW9uKSB7XG4gICAgICAgICAgYWNjLnB1c2godik7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgfSwgW10pXG4gICAgICAuc29ydCgpO1xuXG4gICAgdHJ5IHtcbiAgICAgIGxldCByZXN1bHQgPSBjbG9uZURlZXAodWlEZWYpO1xuXG4gICAgICBmb3IgKGNvbnN0IHZlcnNpb24gb2YgbWlncmF0ZVZlcnNpb25zKSB7XG4gICAgICAgIGNvbnN0IG1pZ3JhdGlvbiA9IG1pZ3JhdGlvbnNbdmVyc2lvbl07XG4gICAgICAgIGlmICghbWlncmF0aW9uKSB7XG4gICAgICAgICAgdGhyb3cgYFY9JHt2ZXJzaW9ufSBtaWdyYXRpb24gc3RyYXRlZ3kgaXMgbm90IGRlZmluZWRgO1xuICAgICAgICB9XG5cbiAgICAgICAgcmVzdWx0ID0gbWlncmF0aW9uKHJlc3VsdCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhpcy50b2FzdFNlcnZpY2UuYWRkKHsgc3VtbWFyeTogU3RyaW5nKGUpLCBzZXZlcml0eTogVG9hc3RUeXBlLmVycm9yIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxufVxuIl19
|
@@ -1,2 +0,0 @@
|
|
1
|
-
export {};
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlncmF0aW9ucy50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2Ntcy9tb2R1bGVzL21pZ3JhdGlvbnMvdHlwZXMvbWlncmF0aW9ucy50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVUlEZWZpbml0aW9uIH0gZnJvbSAnQHZlbG9jZWFwcHMvY29yZSc7XG5cbmV4cG9ydCB0eXBlIFVJRGVmaW5pdGlvbk1pZ3JhdGlvbkZuID0gKHVpRGVmOiBVSURlZmluaXRpb24pID0+IFVJRGVmaW5pdGlvbjtcbiJdfQ==
|
@@ -1,4 +0,0 @@
|
|
1
|
-
export * from './runtime.module';
|
2
|
-
export * from './services/runtime-editor.service';
|
3
|
-
export * from './services/runtime.service';
|
4
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jbXMvbW9kdWxlcy9ydW50aW1lL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLDRCQUE0QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9ydW50aW1lLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL3J1bnRpbWUtZWRpdG9yLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9ydW50aW1lLnNlcnZpY2UnO1xuIl19
|
@@ -1,32 +0,0 @@
|
|
1
|
-
import { CommonModule } from '@angular/common';
|
2
|
-
import { NgModule } from '@angular/core';
|
3
|
-
import { CoreModule } from '@veloceapps/core';
|
4
|
-
import { DialogService } from 'primeng/dynamicdialog';
|
5
|
-
import { CompilationService } from './services/compilation.service';
|
6
|
-
import { RuntimeEditorService } from './services/runtime-editor.service';
|
7
|
-
import { RuntimeService } from './services/runtime.service';
|
8
|
-
import { CMS_COMPILATION_SERVICE } from './tokens';
|
9
|
-
import * as i0 from "@angular/core";
|
10
|
-
export class RuntimeModule {
|
11
|
-
}
|
12
|
-
RuntimeModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: RuntimeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
13
|
-
RuntimeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: RuntimeModule, imports: [CommonModule, CoreModule] });
|
14
|
-
RuntimeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: RuntimeModule, providers: [
|
15
|
-
DialogService,
|
16
|
-
RuntimeService,
|
17
|
-
RuntimeEditorService,
|
18
|
-
{ provide: CMS_COMPILATION_SERVICE, useClass: CompilationService },
|
19
|
-
], imports: [CommonModule, CoreModule] });
|
20
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: RuntimeModule, decorators: [{
|
21
|
-
type: NgModule,
|
22
|
-
args: [{
|
23
|
-
imports: [CommonModule, CoreModule],
|
24
|
-
providers: [
|
25
|
-
DialogService,
|
26
|
-
RuntimeService,
|
27
|
-
RuntimeEditorService,
|
28
|
-
{ provide: CMS_COMPILATION_SERVICE, useClass: CompilationService },
|
29
|
-
],
|
30
|
-
}]
|
31
|
-
}] });
|
32
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jbXMvbW9kdWxlcy9ydW50aW1lL3J1bnRpbWUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDekUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzVELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLFVBQVUsQ0FBQzs7QUFXbkQsTUFBTSxPQUFPLGFBQWE7OzBHQUFiLGFBQWE7MkdBQWIsYUFBYSxZQVJkLFlBQVksRUFBRSxVQUFVOzJHQVF2QixhQUFhLGFBUGI7UUFDVCxhQUFhO1FBQ2IsY0FBYztRQUNkLG9CQUFvQjtRQUNwQixFQUFFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxRQUFRLEVBQUUsa0JBQWtCLEVBQUU7S0FDbkUsWUFOUyxZQUFZLEVBQUUsVUFBVTsyRkFRdkIsYUFBYTtrQkFUekIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsVUFBVSxDQUFDO29CQUNuQyxTQUFTLEVBQUU7d0JBQ1QsYUFBYTt3QkFDYixjQUFjO3dCQUNkLG9CQUFvQjt3QkFDcEIsRUFBRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixFQUFFO3FCQUNuRTtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29yZU1vZHVsZSB9IGZyb20gJ0B2ZWxvY2VhcHBzL2NvcmUnO1xuaW1wb3J0IHsgRGlhbG9nU2VydmljZSB9IGZyb20gJ3ByaW1lbmcvZHluYW1pY2RpYWxvZyc7XG5pbXBvcnQgeyBDb21waWxhdGlvblNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2NvbXBpbGF0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgUnVudGltZUVkaXRvclNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3J1bnRpbWUtZWRpdG9yLnNlcnZpY2UnO1xuaW1wb3J0IHsgUnVudGltZVNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3J1bnRpbWUuc2VydmljZSc7XG5pbXBvcnQgeyBDTVNfQ09NUElMQVRJT05fU0VSVklDRSB9IGZyb20gJy4vdG9rZW5zJztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgQ29yZU1vZHVsZV0sXG4gIHByb3ZpZGVyczogW1xuICAgIERpYWxvZ1NlcnZpY2UsXG4gICAgUnVudGltZVNlcnZpY2UsXG4gICAgUnVudGltZUVkaXRvclNlcnZpY2UsXG4gICAgeyBwcm92aWRlOiBDTVNfQ09NUElMQVRJT05fU0VSVklDRSwgdXNlQ2xhc3M6IENvbXBpbGF0aW9uU2VydmljZSB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBSdW50aW1lTW9kdWxlIHt9XG4iXX0=
|
@@ -1,93 +0,0 @@
|
|
1
|
-
import { __decorate } from "tslib";
|
2
|
-
import { DragDropModule } from '@angular/cdk/drag-drop';
|
3
|
-
import { ScrollingModule } from '@angular/cdk/scrolling';
|
4
|
-
import { CommonModule } from '@angular/common';
|
5
|
-
import { createNgModule, Injectable, Injector, NgModule } from '@angular/core';
|
6
|
-
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
7
|
-
import { ErrorTooltipModule, HiddenTextTooltipModule, LetDirectiveModule } from '@veloceapps/components';
|
8
|
-
import { SdkPipesModule } from '@veloceapps/sdk/core';
|
9
|
-
import { DndModule } from 'ngx-drag-drop';
|
10
|
-
import { combineLatest, map, of, switchMap } from 'rxjs';
|
11
|
-
import { ElementChildrenModule } from '../../../components/element-children/element-children.module';
|
12
|
-
import { ElementDropHandleModule } from '../../../components/element-drop-handle/element-drop-handle.module';
|
13
|
-
import { ElementRendererModule } from '../../../components/element-renderer/element-renderer.module';
|
14
|
-
import { CustomTemplateDirectiveModule } from '../../../directives/custom-template.directive';
|
15
|
-
import { ElementMetadataWorker, ElementsResolver, TranspilationWorker } from '../../../utils';
|
16
|
-
import { FederatedModule } from '../../federated/federated.module';
|
17
|
-
import * as i0 from "@angular/core";
|
18
|
-
export class CompilationService {
|
19
|
-
constructor(injector) {
|
20
|
-
this.injector = injector;
|
21
|
-
}
|
22
|
-
compileUIDefinition$(uiDefinition, config) {
|
23
|
-
return of([]).pipe(map(() => {
|
24
|
-
const { children, pages, components, ...uiDefinitionMeta } = uiDefinition;
|
25
|
-
this.uiDefinitionMeta = uiDefinitionMeta;
|
26
|
-
const elements = [...(children ?? []), ...(pages ?? [])];
|
27
|
-
const sharedElements = components ?? [];
|
28
|
-
return [elements, sharedElements];
|
29
|
-
}), switchMap(elementsChunks => combineLatest(elementsChunks.map(chunk => new ElementMetadataWorker(chunk).get$()))), switchMap(dataChunks => combineLatest(dataChunks.map(chunk => new TranspilationWorker(chunk).get$()))), map(([metadata, sharedMetadata]) => {
|
30
|
-
this.elementsResolver = new ElementsResolver(uiDefinition, metadata ?? [], sharedMetadata, config);
|
31
|
-
const componentTypes = this.elementsResolver.getNgComponents();
|
32
|
-
const module = this.getModule(componentTypes);
|
33
|
-
return {
|
34
|
-
moduleRef: createNgModule(module, this.injector),
|
35
|
-
elements: this.elementsResolver?.elements ?? [],
|
36
|
-
componentTypes,
|
37
|
-
};
|
38
|
-
}));
|
39
|
-
}
|
40
|
-
compileElement$(element) {
|
41
|
-
if (!this.uiDefinitionMeta) {
|
42
|
-
throw 'No UI Definition context';
|
43
|
-
}
|
44
|
-
return of(this.uiDefinitionMeta).pipe(map(uiDefinition => {
|
45
|
-
const elementsResolver = this.elementsResolver ?? new ElementsResolver(uiDefinition, []);
|
46
|
-
elementsResolver.addElement(element);
|
47
|
-
const componentTypes = elementsResolver.getNgComponents();
|
48
|
-
const module = this.getModule(componentTypes);
|
49
|
-
return {
|
50
|
-
moduleRef: createNgModule(module, this.injector),
|
51
|
-
elements: this.elementsResolver?.elements ?? [],
|
52
|
-
componentTypes,
|
53
|
-
};
|
54
|
-
}));
|
55
|
-
}
|
56
|
-
clear() {
|
57
|
-
this.uiDefinitionMeta = undefined;
|
58
|
-
}
|
59
|
-
getModule(components) {
|
60
|
-
let DynamicModule = class DynamicModule {
|
61
|
-
};
|
62
|
-
DynamicModule = __decorate([
|
63
|
-
NgModule({
|
64
|
-
imports: [
|
65
|
-
CommonModule,
|
66
|
-
FormsModule,
|
67
|
-
ReactiveFormsModule,
|
68
|
-
DragDropModule,
|
69
|
-
DndModule,
|
70
|
-
ScrollingModule,
|
71
|
-
ElementChildrenModule,
|
72
|
-
ElementRendererModule,
|
73
|
-
ElementDropHandleModule,
|
74
|
-
CustomTemplateDirectiveModule,
|
75
|
-
FederatedModule,
|
76
|
-
SdkPipesModule,
|
77
|
-
LetDirectiveModule,
|
78
|
-
HiddenTextTooltipModule,
|
79
|
-
ErrorTooltipModule,
|
80
|
-
],
|
81
|
-
declarations: Object.values(components),
|
82
|
-
jit: true,
|
83
|
-
})
|
84
|
-
], DynamicModule);
|
85
|
-
return DynamicModule;
|
86
|
-
}
|
87
|
-
}
|
88
|
-
CompilationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CompilationService, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
|
89
|
-
CompilationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CompilationService });
|
90
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CompilationService, decorators: [{
|
91
|
-
type: Injectable
|
92
|
-
}], ctorParameters: function () { return [{ type: i0.Injector }]; } });
|
93
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGlsYXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2Ntcy9tb2R1bGVzL3J1bnRpbWUvc2VydmljZXMvY29tcGlsYXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBUSxNQUFNLGVBQWUsQ0FBQztBQUNyRixPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLHVCQUF1QixFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFekcsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxHQUFHLEVBQWMsRUFBRSxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUNyRyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxvRUFBb0UsQ0FBQztBQUM3RyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUVyRyxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUk5RixPQUFPLEVBQUUscUJBQXFCLEVBQUUsZ0JBQWdCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxn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QUFJLEVBQUU7Z0JBQy9DLGNBQWM7YUFDZixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFTSxLQUFLO1FBQ1YsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFNBQVMsQ0FBQztJQUNwQyxDQUFDO0lBRU8sU0FBUyxDQUFDLFVBQXdDO1FBc0J4RCxJQUFNLGFBQWEsR0FBbkIsTUFBTSxhQUFhO1NBQUcsQ0FBQTtRQUFoQixhQUFhO1lBckJsQixRQUFRLENBQUM7Z0JBQ1IsT0FBTyxFQUFFO29CQUNQLFlBQVk7b0JBQ1osV0FBVztvQkFDWCxtQkFBbUI7b0JBQ25CLGNBQWM7b0JBQ2QsU0FBUztvQkFDVCxlQUFlO29CQUNmLHFCQUFxQjtvQkFDckIscUJBQXFCO29CQUNyQix1QkFBdUI7b0JBQ3ZCLDZCQUE2QjtvQkFDN0IsZUFBZTtvQkFDZixjQUFjO29CQUNkLGtCQUFrQjtvQkFDbEIsdUJBQXVCO29CQUN2QixrQkFBa0I7aUJBQ25CO2dCQUNELFlBQVksRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQztnQkFDdkMsR0FBRyxFQUFFLElBQUk7YUFDVixDQUFDO1dBQ0ksYUFBYSxDQUFHO1FBRXRCLE9BQU8sYUFBYSxDQUFDO0lBQ3ZCLENBQUM7OytHQWxGVSxrQkFBa0I7bUhBQWxCLGtCQUFrQjsyRkFBbEIsa0JBQWtCO2tCQUQ5QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRHJhZ0Ryb3BNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcbmltcG9ydCB7IFNjcm9sbGluZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9zY3JvbGxpbmcnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IGNyZWF0ZU5nTW9kdWxlLCBJbmplY3RhYmxlLCBJbmplY3RvciwgTmdNb2R1bGUsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRXJyb3JUb29sdGlwTW9kdWxlLCBIaWRkZW5UZXh0VG9vbHRpcE1vZHVsZSwgTGV0RGlyZWN0aXZlTW9kdWxlIH0gZnJvbSAnQHZlbG9jZWFwcHMvY29tcG9uZW50cyc7XG5pbXBvcnQgeyBVSURlZmluaXRpb24sIFVJRGVmaW5pdGlvbk1ldGFkYXRhIH0gZnJvbSAnQHZlbG9jZWFwcHMvY29yZSc7XG5pbXBvcnQgeyBTZGtQaXBlc01vZHVsZSB9IGZyb20gJ0B2ZWxvY2VhcHBzL3Nkay9jb3JlJztcbmltcG9ydCB7IERuZE1vZHVsZSB9IGZyb20gJ25neC1kcmFnLWRyb3AnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgbWFwLCBPYnNlcnZhYmxlLCBvZiwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBFbGVtZW50Q2hpbGRyZW5Nb2R1bGUgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL2VsZW1lbnQtY2hpbGRyZW4vZWxlbWVudC1jaGlsZHJlbi5tb2R1bGUnO1xuaW1wb3J0IHsgRWxlbWVudERyb3BIYW5kbGVNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL2VsZW1lbnQtZHJvcC1oYW5kbGUvZWxlbWVudC1kcm9wLWhhbmRsZS5tb2R1bGUnO1xuaW1wb3J0IHsgRWxlbWVudFJlbmRlcmVyTW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9lbGVtZW50LXJlbmRlcmVyL2VsZW1lbnQtcmVuZGVyZXIubW9kdWxlJztcbmltcG9ydCB7IENNU1ByZXZpZXdDb25maWcgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL3ByZXZpZXcnO1xuaW1wb3J0IHsgQ3VzdG9tVGVtcGxhdGVEaXJlY3RpdmVNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmVzL2N1c3RvbS10ZW1wbGF0ZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRW50aXR5IH0gZnJvbSAnLi4vLi4vLi4vZW5naW5lL21vZGVscy9lbnRpdHknO1xuaW1wb3J0IHsgQ29tcGlsYXRpb25SZXN1bHQgfSBmcm9tICcuLi8uLi8uLi9tb2R1bGVzL3J1bnRpbWUvdHlwZXMvY29tcGlsYXRpb24udHlwZXMnO1xuaW1wb3J0IHsgRWxlbWVudE1ldGFkYXRhIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvY29tbW9uLnR5cGVzJztcbmltcG9ydCB7IEVsZW1lbnRNZXRhZGF0YVdvcmtlciwgRWxlbWVudHNSZXNvbHZlciwgVHJhbnNwaWxhdGlvbldvcmtlciB9IGZyb20gJy4uLy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IEZlZGVyYXRlZE1vZHVsZSB9IGZyb20gJy4uLy4uL2ZlZGVyYXRlZC9mZWRlcmF0ZWQubW9kdWxlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENvbXBpbGF0aW9uU2VydmljZSB7XG4gIHByaXZhdGUgdWlEZWZpbml0aW9uTWV0YT86IFVJRGVmaW5pdGlvbk1ldGFkYXRhO1xuICBwcml2YXRlIGVsZW1lbnRzUmVzb2x2ZXI/OiBFbGVtZW50c1Jlc29sdmVyO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yKSB7fVxuXG4gIHB1YmxpYyBjb21waWxlVUlEZWZpbml0aW9uJCh1aURlZmluaXRpb246IFVJRGVmaW5pdGlvbiwgY29uZmlnPzogQ01TUHJldmlld0NvbmZpZyk6IE9ic2VydmFibGU8Q29tcGlsYXRpb25SZXN1bHQ+IHtcbiAgICByZXR1cm4gb2YoW10pLnBpcGUoXG4gICAgICBtYXAoKCkgPT4ge1xuICAgICAgICBjb25zdCB7IGNoaWxkcmVuLCBwYWdlcywgY29tcG9uZW50cywgLi4udWlEZWZpbml0aW9uTWV0YSB9ID0gdWlEZWZpbml0aW9uO1xuICAgICAgICB0aGlzLnVpRGVmaW5pdGlvbk1ldGEgPSB1aURlZmluaXRpb25NZXRhO1xuXG4gICAgICAgIGNvbnN0IGVsZW1lbnRzID0gWy4uLihjaGlsZHJlbiA/PyBbXSksIC4uLihwYWdlcyA/PyBbXSldO1xuICAgICAgICBjb25zdCBzaGFyZWRFbGVtZW50cyA9IGNvbXBvbmVudHMgPz8gW107XG4gICAgICAgIHJldHVybiBbZWxlbWVudHMsIHNoYXJlZEVsZW1lbnRzXTtcbiAgICAgIH0pLFxuICAgICAgc3dpdGNoTWFwKGVsZW1lbnRzQ2h1bmtzID0+IGNvbWJpbmVMYXRlc3QoZWxlbWVudHNDaHVua3MubWFwKGNodW5rID0+IG5ldyBFbGVtZW50TWV0YWRhdGFXb3JrZXIoY2h1bmspLmdldCQoKSkpKSxcbiAgICAgIHN3aXRjaE1hcChkYXRhQ2h1bmtzID0+IGNvbWJpbmVMYXRlc3QoZGF0YUNodW5rcy5tYXAoY2h1bmsgPT4gbmV3IFRyYW5zcGlsYXRpb25Xb3JrZXIoY2h1bmspLmdldCQoKSkpKSxcbiAgICAgIG1hcCgoW21ldGFkYXRhLCBzaGFyZWRNZXRhZGF0YV0pID0+IHtcbiAgICAgICAgdGhpcy5lbGVtZW50c1Jlc29sdmVyID0gbmV3IEVsZW1lbnRzUmVzb2x2ZXIodWlEZWZpbml0aW9uLCBtZXRhZGF0YSA/PyBbXSwgc2hhcmVkTWV0YWRhdGEsIGNvbmZpZyk7XG4gICAgICAgIGNvbnN0IGNvbXBvbmVudFR5cGVzID0gdGhpcy5lbGVtZW50c1Jlc29sdmVyLmdldE5nQ29tcG9uZW50cygpO1xuICAgICAgICBjb25zdCBtb2R1bGUgPSB0aGlzLmdldE1vZHVsZShjb21wb25lbnRUeXBlcyk7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBtb2R1bGVSZWY6IGNyZWF0ZU5nTW9kdWxlKG1vZHVsZSwgdGhpcy5pbmplY3RvciksXG4gICAgICAgICAgZWxlbWVudHM6IHRoaXMuZWxlbWVudHNSZXNvbHZlcj8uZWxlbWVudHMgPz8gW10sXG4gICAgICAgICAgY29tcG9uZW50VHlwZXMsXG4gICAgICAgIH07XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGNvbXBpbGVFbGVtZW50JChlbGVtZW50OiBFbGVtZW50TWV0YWRhdGEpOiBPYnNlcnZhYmxlPENvbXBpbGF0aW9uUmVzdWx0PiB7XG4gICAgaWYgKCF0aGlzLnVpRGVmaW5pdGlvbk1ldGEpIHtcbiAgICAgIHRocm93ICdObyBVSSBEZWZpbml0aW9uIGNvbnRleHQnO1xuICAgIH1cblxuICAgIHJldHVybiBvZih0aGlzLnVpRGVmaW5pdGlvbk1ldGEpLnBpcGUoXG4gICAgICBtYXAodWlEZWZpbml0aW9uID0+IHtcbiAgICAgICAgY29uc3QgZWxlbWVudHNSZXNvbHZlciA9IHRoaXMuZWxlbWVudHNSZXNvbHZlciA/PyBuZXcgRWxlbWVudHNSZXNvbHZlcih1aURlZmluaXRpb24sIFtdKTtcbiAgICAgICAgZWxlbWVudHNSZXNvbHZlci5hZGRFbGVtZW50KGVsZW1lbnQpO1xuICAgICAgICBjb25zdCBjb21wb25lbnRUeXBlcyA9IGVsZW1lbnRzUmVzb2x2ZXIuZ2V0TmdDb21wb25lbnRzKCk7XG4gICAgICAgIGNvbnN0IG1vZHVsZSA9IHRoaXMuZ2V0TW9kdWxlKGNvbXBvbmVudFR5cGVzKTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIG1vZHVsZVJlZjogY3JlYXRlTmdNb2R1bGUobW9kdWxlLCB0aGlzLmluamVjdG9yKSxcbiAgICAgICAgICBlbGVtZW50czogdGhpcy5lbGVtZW50c1Jlc29sdmVyPy5lbGVtZW50cyA/PyBbXSxcbiAgICAgICAgICBjb21wb25lbnRUeXBlcyxcbiAgICAgICAgfTtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgY2xlYXIoKTogdm9pZCB7XG4gICAgdGhpcy51aURlZmluaXRpb25NZXRhID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRNb2R1bGUoY29tcG9uZW50czogUmVjb3JkPHN0cmluZywgVHlwZTxFbnRpdHk+Pik6IFR5cGU8TmdNb2R1bGU+IHtcbiAgICBATmdNb2R1bGUoe1xuICAgICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgICAgICBEcmFnRHJvcE1vZHVsZSxcbiAgICAgICAgRG5kTW9kdWxlLFxuICAgICAgICBTY3JvbGxpbmdNb2R1bGUsXG4gICAgICAgIEVsZW1lbnRDaGlsZHJlbk1vZHVsZSxcbiAgICAgICAgRWxlbWVudFJlbmRlcmVyTW9kdWxlLFxuICAgICAgICBFbGVtZW50RHJvcEhhbmRsZU1vZHVsZSxcbiAgICAgICAgQ3VzdG9tVGVtcGxhdGVEaXJlY3RpdmVNb2R1bGUsXG4gICAgICAgIEZlZGVyYXRlZE1vZHVsZSxcbiAgICAgICAgU2RrUGlwZXNNb2R1bGUsXG4gICAgICAgIExldERpcmVjdGl2ZU1vZHVsZSxcbiAgICAgICAgSGlkZGVuVGV4dFRvb2x0aXBNb2R1bGUsXG4gICAgICAgIEVycm9yVG9vbHRpcE1vZHVsZSxcbiAgICAgIF0sXG4gICAgICBkZWNsYXJhdGlvbnM6IE9iamVjdC52YWx1ZXMoY29tcG9uZW50cyksXG4gICAgICBqaXQ6IHRydWUsXG4gICAgfSlcbiAgICBjbGFzcyBEeW5hbWljTW9kdWxlIHt9XG5cbiAgICByZXR1cm4gRHluYW1pY01vZHVsZTtcbiAgfVxufVxuIl19
|
@@ -1,30 +0,0 @@
|
|
1
|
-
import { Injectable } from '@angular/core';
|
2
|
-
import { BehaviorSubject, ReplaySubject } from 'rxjs';
|
3
|
-
import { RuntimeService } from './runtime.service';
|
4
|
-
import * as i0 from "@angular/core";
|
5
|
-
import * as i1 from "./runtime.service";
|
6
|
-
export class RuntimeEditorService {
|
7
|
-
constructor(runtimeService) {
|
8
|
-
this.runtimeService = runtimeService;
|
9
|
-
this.editorModeSubj$ = new BehaviorSubject(false);
|
10
|
-
this.onElementDropped$ = new ReplaySubject();
|
11
|
-
this.onElementDeleted$ = new ReplaySubject();
|
12
|
-
this.onElementSettingsToggled$ = new ReplaySubject();
|
13
|
-
this.dragMode$ = new BehaviorSubject(false);
|
14
|
-
this.selectedElementPath$ = new BehaviorSubject(null);
|
15
|
-
this.editorMode$ = this.editorModeSubj$.asObservable();
|
16
|
-
this.runtimeService.isInitialized$.subscribe(() => this.editorModeSubj$.next(Boolean(this.runtimeService.config?.uiBuilderMode)));
|
17
|
-
}
|
18
|
-
applyPatch$(patch) {
|
19
|
-
return this.runtimeService.applyPatch$(patch);
|
20
|
-
}
|
21
|
-
toggleEditorMode() {
|
22
|
-
this.editorModeSubj$.next(!this.editorModeSubj$.value);
|
23
|
-
}
|
24
|
-
}
|
25
|
-
RuntimeEditorService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: RuntimeEditorService, deps: [{ token: i1.RuntimeService }], target: i0.ɵɵFactoryTarget.Injectable });
|
26
|
-
RuntimeEditorService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: RuntimeEditorService });
|
27
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: RuntimeEditorService, decorators: [{
|
28
|
-
type: Injectable
|
29
|
-
}], ctorParameters: function () { return [{ type: i1.RuntimeService }]; } });
|
30
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS1lZGl0b3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2RrL2Ntcy9tb2R1bGVzL3J1bnRpbWUvc2VydmljZXMvcnVudGltZS1lZGl0b3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxlQUFlLEVBQWMsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRWxFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7O0FBR25ELE1BQU0sT0FBTyxvQkFBb0I7SUFXL0IsWUFBb0IsY0FBOEI7UUFBOUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBVjFDLG9CQUFlLEdBQUcsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFOUMsc0JBQWlCLEdBQUcsSUFBSSxhQUFhLEVBQTJCLENBQUM7UUFDakUsc0JBQWlCLEdBQUcsSUFBSSxhQUFhLEVBQTZCLENBQUM7UUFDbkUsOEJBQXlCLEdBQUcsSUFBSSxhQUFhLEVBQTRCLENBQUM7UUFHMUUsY0FBUyxHQUFHLElBQUksZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZDLHlCQUFvQixHQUFHLElBQUksZUFBZSxDQUFnQixJQUFJLENBQUMsQ0FBQztRQUdyRSxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdkQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUNoRCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FDOUUsQ0FBQztJQUNKLENBQUM7SUFFTSxXQUFXLENBQUMsS0FBWTtRQUM3QixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFTSxnQkFBZ0I7UUFDckIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pELENBQUM7O2lIQXhCVSxvQkFBb0I7cUhBQXBCLG9CQUFvQjsyRkFBcEIsb0JBQW9CO2tCQURoQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUGF0Y2ggfSBmcm9tICdyZmM2OTAyJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUnVudGltZUVsZW1lbnREZWxldGVFdmVudCwgUnVudGltZUVsZW1lbnREcm9wRXZlbnQsIFJ1bnRpbWVTaG93U2V0dGluZ3NFdmVudCB9IGZyb20gJy4uL3R5cGVzL3J1bnRpbWUuYWN0aW9ucyc7XG5pbXBvcnQgeyBSdW50aW1lU2VydmljZSB9IGZyb20gJy4vcnVudGltZS5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFJ1bnRpbWVFZGl0b3JTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBlZGl0b3JNb2RlU3ViaiQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcblxuICBwdWJsaWMgb25FbGVtZW50RHJvcHBlZCQgPSBuZXcgUmVwbGF5U3ViamVjdDxSdW50aW1lRWxlbWVudERyb3BFdmVudD4oKTtcbiAgcHVibGljIG9uRWxlbWVudERlbGV0ZWQkID0gbmV3IFJlcGxheVN1YmplY3Q8UnVudGltZUVsZW1lbnREZWxldGVFdmVudD4oKTtcbiAgcHVibGljIG9uRWxlbWVudFNldHRpbmdzVG9nZ2xlZCQgPSBuZXcgUmVwbGF5U3ViamVjdDxSdW50aW1lU2hvd1NldHRpbmdzRXZlbnQ+KCk7XG5cbiAgcHVibGljIGVkaXRvck1vZGUkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBwdWJsaWMgZHJhZ01vZGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG4gIHB1YmxpYyBzZWxlY3RlZEVsZW1lbnRQYXRoJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBydW50aW1lU2VydmljZTogUnVudGltZVNlcnZpY2UpIHtcbiAgICB0aGlzLmVkaXRvck1vZGUkID0gdGhpcy5lZGl0b3JNb2RlU3ViaiQuYXNPYnNlcnZhYmxlKCk7XG4gICAgdGhpcy5ydW50aW1lU2VydmljZS5pc0luaXRpYWxpemVkJC5zdWJzY3JpYmUoKCkgPT5cbiAgICAgIHRoaXMuZWRpdG9yTW9kZVN1YmokLm5leHQoQm9vbGVhbih0aGlzLnJ1bnRpbWVTZXJ2aWNlLmNvbmZpZz8udWlCdWlsZGVyTW9kZSkpLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgYXBwbHlQYXRjaCQocGF0Y2g6IFBhdGNoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMucnVudGltZVNlcnZpY2UuYXBwbHlQYXRjaCQocGF0Y2gpO1xuICB9XG5cbiAgcHVibGljIHRvZ2dsZUVkaXRvck1vZGUoKTogdm9pZCB7XG4gICAgdGhpcy5lZGl0b3JNb2RlU3ViaiQubmV4dCghdGhpcy5lZGl0b3JNb2RlU3ViaiQudmFsdWUpO1xuICB9XG59XG4iXX0=
|
@@ -1,117 +0,0 @@
|
|
1
|
-
import { Injectable, Injector } from '@angular/core';
|
2
|
-
import { IntegrationState } from '@veloceapps/sdk/core';
|
3
|
-
import { cloneDeep } from 'lodash';
|
4
|
-
import { applyPatch } from 'rfc6902';
|
5
|
-
import { BehaviorSubject, distinctUntilChanged, map, of, startWith, Subject, switchMap, tap } from 'rxjs';
|
6
|
-
import { CmsAction } from '../../../cms.actions';
|
7
|
-
import { findElementByPath } from '../../../utils/ui-definition.utils';
|
8
|
-
import { CMS_COMPILATION_SERVICE } from '../tokens';
|
9
|
-
import * as i0 from "@angular/core";
|
10
|
-
import * as i1 from "@veloceapps/sdk/core";
|
11
|
-
export class RuntimeService {
|
12
|
-
constructor(injector, integrationState) {
|
13
|
-
this.injector = injector;
|
14
|
-
this.integrationState = integrationState;
|
15
|
-
this.moduleRefs = [];
|
16
|
-
this.componentRefs = {};
|
17
|
-
this.componentTypes = {};
|
18
|
-
this.applicationTree = [];
|
19
|
-
this.isInitialized$ = new BehaviorSubject(false);
|
20
|
-
this.updated$ = new Subject();
|
21
|
-
this.selectedPageName$ = new BehaviorSubject(null);
|
22
|
-
this.selectedOverlayNames$ = new BehaviorSubject([]);
|
23
|
-
this.compilationService = this.injector.get(CMS_COMPILATION_SERVICE);
|
24
|
-
this.integrationState
|
25
|
-
.listen$(CmsAction.GO_TO_PAGE)
|
26
|
-
.pipe(map(({ pageName }) => pageName), distinctUntilChanged())
|
27
|
-
.subscribe(pageName => this.selectedPageName$.next(pageName));
|
28
|
-
this.integrationState
|
29
|
-
.listen$(CmsAction.SHOW_OVERLAY)
|
30
|
-
.pipe(map(({ name }) => name))
|
31
|
-
.subscribe(overlayName => {
|
32
|
-
const overlayNames = this.selectedOverlayNames$.value;
|
33
|
-
if (!overlayNames.includes(overlayName)) {
|
34
|
-
this.selectedOverlayNames$.next([...overlayNames, overlayName]);
|
35
|
-
}
|
36
|
-
});
|
37
|
-
this.integrationState
|
38
|
-
.listen$(CmsAction.HIDE_OVERLAY)
|
39
|
-
.pipe(map(({ name }) => name))
|
40
|
-
.subscribe(overlayName => {
|
41
|
-
const overlayNames = this.selectedOverlayNames$.value;
|
42
|
-
this.selectedOverlayNames$.next(overlayNames.filter(name => name !== overlayName));
|
43
|
-
});
|
44
|
-
this.integrationState.listen$(CmsAction.HIDE_ALL_OVERLAYS).subscribe(() => this.selectedOverlayNames$.next([]));
|
45
|
-
}
|
46
|
-
initialize$(uiDefinition, config) {
|
47
|
-
this.config = config;
|
48
|
-
if (!uiDefinition) {
|
49
|
-
return of([]);
|
50
|
-
}
|
51
|
-
return this.compilationService.compileUIDefinition$(uiDefinition, config).pipe(map(result => {
|
52
|
-
this.applicationTree = result.elements;
|
53
|
-
this.componentTypes = {
|
54
|
-
...this.componentTypes,
|
55
|
-
...result.componentTypes,
|
56
|
-
};
|
57
|
-
this.moduleRefs.push(result.moduleRef);
|
58
|
-
return result.elements;
|
59
|
-
}), tap(() => this.isInitialized$.next(true)));
|
60
|
-
}
|
61
|
-
applyPatch$(patch) {
|
62
|
-
let observable$ = of(undefined);
|
63
|
-
patch.forEach(operation => {
|
64
|
-
switch (operation.op) {
|
65
|
-
case 'add': {
|
66
|
-
observable$ = observable$.pipe(switchMap(() => this.addElement$(operation)));
|
67
|
-
break;
|
68
|
-
}
|
69
|
-
case 'remove': {
|
70
|
-
observable$ = observable$.pipe(map(() => this.deleteElement(operation)));
|
71
|
-
break;
|
72
|
-
}
|
73
|
-
case 'replace': {
|
74
|
-
observable$ = observable$.pipe(switchMap(() => {
|
75
|
-
this.deleteElement({ op: 'remove', path: operation.path });
|
76
|
-
return this.addElement$({ op: 'add', path: operation.path, value: operation.value });
|
77
|
-
}));
|
78
|
-
break;
|
79
|
-
}
|
80
|
-
default:
|
81
|
-
observable$ = of();
|
82
|
-
}
|
83
|
-
});
|
84
|
-
return observable$.pipe(tap(() => this.updated$.next()));
|
85
|
-
}
|
86
|
-
getCompiledElement$(path) {
|
87
|
-
return this.updated$.pipe(startWith(undefined), map(() => findElementByPath(this.applicationTree, path)), distinctUntilChanged());
|
88
|
-
}
|
89
|
-
clear() {
|
90
|
-
this.compilationService.clear();
|
91
|
-
this.moduleRefs.forEach(m => m.destroy());
|
92
|
-
this.moduleRefs = [];
|
93
|
-
this.componentRefs = {};
|
94
|
-
this.applicationTree = [];
|
95
|
-
this.componentTypes = {};
|
96
|
-
this.isInitialized$.next(false);
|
97
|
-
}
|
98
|
-
addElement$(operation) {
|
99
|
-
return this.compilationService.compileElement$(operation.value).pipe(map(result => {
|
100
|
-
this.componentTypes = {
|
101
|
-
...this.componentTypes,
|
102
|
-
...result.componentTypes,
|
103
|
-
};
|
104
|
-
this.moduleRefs.push(result.moduleRef);
|
105
|
-
applyPatch(this.applicationTree, [{ ...operation, value: cloneDeep(result.elements[0]) }]);
|
106
|
-
}));
|
107
|
-
}
|
108
|
-
deleteElement(operation) {
|
109
|
-
applyPatch(this.applicationTree, [operation]);
|
110
|
-
}
|
111
|
-
}
|
112
|
-
RuntimeService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: RuntimeService, deps: [{ token: i0.Injector }, { token: i1.IntegrationState }], target: i0.ɵɵFactoryTarget.Injectable });
|
113
|
-
RuntimeService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: RuntimeService });
|
114
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: RuntimeService, decorators: [{
|
115
|
-
type: Injectable
|
116
|
-
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.IntegrationState }]; } });
|
117
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvY21zL21vZHVsZXMvcnVudGltZS9zZXJ2aWNlcy9ydW50aW1lLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixVQUFVLEVBQUUsUUFBUSxFQUErQixNQUFNLGVBQWUsQ0FBQztBQUVoRyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsU0FBUyxFQUFjLE1BQU0sUUFBUSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxVQUFVLEVBQVMsTUFBTSxTQUFTLENBQUM7QUFFNUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQWMsRUFBRSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0SCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFJakQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDdkUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sV0FBVyxDQUFDOzs7QUFJcEQsTUFBTSxPQUFPLGNBQWM7SUFhekIsWUFBb0IsUUFBa0IsRUFBVSxnQkFBa0M7UUFBOUQsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUFVLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFaM0UsZUFBVSxHQUE0QixFQUFFLENBQUM7UUFDekMsa0JBQWEsR0FBaUQsRUFBRSxDQUFDO1FBQ2pFLG1CQUFjLEdBQWlDLEVBQUUsQ0FBQztRQUNsRCxvQkFBZSxHQUFzQixFQUFFLENBQUM7UUFFeEMsbUJBQWMsR0FBRyxJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1QyxhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FB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Q0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUN2QyxVQUFVLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLEVBQUUsR0FBRyxTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDN0YsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFTyxhQUFhLENBQUMsU0FBMEI7UUFDOUMsVUFBVSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQ2hELENBQUM7OzJHQWpJVSxjQUFjOytHQUFkLGNBQWM7MkZBQWQsY0FBYztrQkFEMUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudFJlZiwgSW5qZWN0YWJsZSwgSW5qZWN0b3IsIE5nTW9kdWxlLCBOZ01vZHVsZVJlZiwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVUlEZWZpbml0aW9uIH0gZnJvbSAnQHZlbG9jZWFwcHMvY29yZSc7XG5pbXBvcnQgeyBJbnRlZ3JhdGlvblN0YXRlIH0gZnJvbSAnQHZlbG9jZWFwcHMvc2RrL2NvcmUnO1xuaW1wb3J0IHsgY2xvbmVEZWVwLCBEaWN0aW9uYXJ5IH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IGFwcGx5UGF0Y2gsIFBhdGNoIH0gZnJvbSAncmZjNjkwMic7XG5pbXBvcnQgeyBBZGRPcGVyYXRpb24sIFJlbW92ZU9wZXJhdGlvbiB9IGZyb20gJ3JmYzY5MDIvZGlmZic7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIE9ic2VydmFibGUsIG9mLCBzdGFydFdpdGgsIFN1YmplY3QsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDbXNBY3Rpb24gfSBmcm9tICcuLi8uLi8uLi9jbXMuYWN0aW9ucyc7XG5pbXBvcnQgeyBDTVNQcmV2aWV3Q29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9wcmV2aWV3L3ByZXZpZXcudHlwZXMnO1xuaW1wb3J0IHsgRW50aXR5IH0gZnJvbSAnLi4vLi4vLi4vZW5naW5lL21vZGVscy9lbnRpdHknO1xuaW1wb3J0IHsgRWxlbWVudE1ldGFkYXRhIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgZmluZEVsZW1lbnRCeVBhdGggfSBmcm9tICcuLi8uLi8uLi91dGlscy91aS1kZWZpbml0aW9uLnV0aWxzJztcbmltcG9ydCB7IENNU19DT01QSUxBVElPTl9TRVJWSUNFIH0gZnJvbSAnLi4vdG9rZW5zJztcbmltcG9ydCB0eXBlIHsgQ29tcGlsYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9jb21waWxhdGlvbi5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFJ1bnRpbWVTZXJ2aWNlIHtcbiAgcHVibGljIG1vZHVsZVJlZnM6IE5nTW9kdWxlUmVmPE5nTW9kdWxlPltdID0gW107XG4gIHB1YmxpYyBjb21wb25lbnRSZWZzOiBEaWN0aW9uYXJ5PENvbXBvbmVudFJlZjxFbnRpdHk+IHwgdW5kZWZpbmVkPiA9IHt9O1xuICBwdWJsaWMgY29tcG9uZW50VHlwZXM6IFJlY29yZDxzdHJpbmcsIFR5cGU8RW50aXR5Pj4gPSB7fTtcbiAgcHVibGljIGFwcGxpY2F0aW9uVHJlZTogRWxlbWVudE1ldGFkYXRhW10gPSBbXTtcbiAgcHVibGljIGNvbmZpZz86IENNU1ByZXZpZXdDb25maWc7XG4gIHB1YmxpYyBpc0luaXRpYWxpemVkJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuICBwdWJsaWMgdXBkYXRlZCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwdWJsaWMgc2VsZWN0ZWRQYWdlTmFtZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZyB8IG51bGw+KG51bGwpO1xuICBwdWJsaWMgc2VsZWN0ZWRPdmVybGF5TmFtZXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmdbXT4oW10pO1xuXG4gIHByaXZhdGUgY29tcGlsYXRpb25TZXJ2aWNlOiBDb21waWxhdGlvblNlcnZpY2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsIHByaXZhdGUgaW50ZWdyYXRpb25TdGF0ZTogSW50ZWdyYXRpb25TdGF0ZSkge1xuICAgIHRoaXMuY29tcGlsYXRpb25TZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQoQ01TX0NPTVBJTEFUSU9OX1NFUlZJQ0UpO1xuXG4gICAgdGhpcy5pbnRlZ3JhdGlvblN0YXRlXG4gICAgICAubGlzdGVuJDx7IHBhZ2VOYW1lOiBzdHJpbmcgfT4oQ21zQWN0aW9uLkdPX1RPX1BBR0UpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKCh7IHBhZ2VOYW1lIH0pID0+IHBhZ2VOYW1lKSxcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUocGFnZU5hbWUgPT4gdGhpcy5zZWxlY3RlZFBhZ2VOYW1lJC5uZXh0KHBhZ2VOYW1lKSk7XG5cbiAgICB0aGlzLmludGVncmF0aW9uU3RhdGVcbiAgICAgIC5saXN0ZW4kPHsgbmFtZTogc3RyaW5nIH0+KENtc0FjdGlvbi5TSE9XX09WRVJMQVkpXG4gICAgICAucGlwZShtYXAoKHsgbmFtZSB9KSA9PiBuYW1lKSlcbiAgICAgIC5zdWJzY3JpYmUob3ZlcmxheU5hbWUgPT4ge1xuICAgICAgICBjb25zdCBvdmVybGF5TmFtZXMgPSB0aGlzLnNlbGVjdGVkT3ZlcmxheU5hbWVzJC52YWx1ZTtcbiAgICAgICAgaWYgKCFvdmVybGF5TmFtZXMuaW5jbHVkZXMob3ZlcmxheU5hbWUpKSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZE92ZXJsYXlOYW1lcyQubmV4dChbLi4ub3ZlcmxheU5hbWVzLCBvdmVybGF5TmFtZV0pO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIHRoaXMuaW50ZWdyYXRpb25TdGF0ZVxuICAgICAgLmxpc3RlbiQ8eyBuYW1lOiBzdHJpbmcgfT4oQ21zQWN0aW9uLkhJREVfT1ZFUkxBWSlcbiAgICAgIC5waXBlKG1hcCgoeyBuYW1lIH0pID0+IG5hbWUpKVxuICAgICAgLnN1YnNjcmliZShvdmVybGF5TmFtZSA9PiB7XG4gICAgICAgIGNvbnN0IG92ZXJsYXlOYW1lcyA9IHRoaXMuc2VsZWN0ZWRPdmVybGF5TmFtZXMkLnZhbHVlO1xuICAgICAgICB0aGlzLnNlbGVjdGVkT3ZlcmxheU5hbWVzJC5uZXh0KG92ZXJsYXlOYW1lcy5maWx0ZXIobmFtZSA9PiBuYW1lICE9PSBvdmVybGF5TmFtZSkpO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLmludGVncmF0aW9uU3RhdGUubGlzdGVuJChDbXNBY3Rpb24uSElERV9BTExfT1ZFUkxBWVMpLnN1YnNjcmliZSgoKSA9PiB0aGlzLnNlbGVjdGVkT3ZlcmxheU5hbWVzJC5uZXh0KFtdKSk7XG4gIH1cblxuICBwdWJsaWMgaW5pdGlhbGl6ZSQodWlEZWZpbml0aW9uPzogVUlEZWZpbml0aW9uLCBjb25maWc/OiBDTVNQcmV2aWV3Q29uZmlnKTogT2JzZXJ2YWJsZTxFbGVtZW50TWV0YWRhdGFbXT4ge1xuICAgIHRoaXMuY29uZmlnID0gY29uZmlnO1xuXG4gICAgaWYgKCF1aURlZmluaXRpb24pIHtcbiAgICAgIHJldHVybiBvZihbXSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuY29tcGlsYXRpb25TZXJ2aWNlLmNvbXBpbGVVSURlZmluaXRpb24kKHVpRGVmaW5pdGlvbiwgY29uZmlnKS5waXBlKFxuICAgICAgbWFwKHJlc3VsdCA9PiB7XG4gICAgICAgIHRoaXMuYXBwbGljYXRpb25UcmVlID0gcmVzdWx0LmVsZW1lbnRzO1xuICAgICAgICB0aGlzLmNvbXBvbmVudFR5cGVzID0ge1xuICAgICAgICAgIC4uLnRoaXMuY29tcG9uZW50VHlwZXMsXG4gICAgICAgICAgLi4ucmVzdWx0LmNvbXBvbmVudFR5cGVzLFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLm1vZHVsZVJlZnMucHVzaChyZXN1bHQubW9kdWxlUmVmKTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdC5lbGVtZW50cztcbiAgICAgIH0pLFxuICAgICAgdGFwKCgpID0+IHRoaXMuaXNJbml0aWFsaXplZCQubmV4dCh0cnVlKSksXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBhcHBseVBhdGNoJChwYXRjaDogUGF0Y2gpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICBsZXQgb2JzZXJ2YWJsZSQ6IE9ic2VydmFibGU8dm9pZD4gPSBvZih1bmRlZmluZWQpO1xuXG4gICAgcGF0Y2guZm9yRWFjaChvcGVyYXRpb24gPT4ge1xuICAgICAgc3dpdGNoIChvcGVyYXRpb24ub3ApIHtcbiAgICAgICAgY2FzZSAnYWRkJzoge1xuICAgICAgICAgIG9ic2VydmFibGUkID0gb2JzZXJ2YWJsZSQucGlwZShzd2l0Y2hNYXAoKCkgPT4gdGhpcy5hZGRFbGVtZW50JChvcGVyYXRpb24pKSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAncmVtb3ZlJzoge1xuICAgICAgICAgIG9ic2VydmFibGUkID0gb2JzZXJ2YWJsZSQucGlwZShtYXAoKCkgPT4gdGhpcy5kZWxldGVFbGVtZW50KG9wZXJhdGlvbikpKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICdyZXBsYWNlJzoge1xuICAgICAgICAgIG9ic2VydmFibGUkID0gb2JzZXJ2YWJsZSQucGlwZShcbiAgICAgICAgICAgIHN3aXRjaE1hcCgoKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuZGVsZXRlRWxlbWVudCh7IG9wOiAncmVtb3ZlJywgcGF0aDogb3BlcmF0aW9uLnBhdGggfSk7XG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLmFkZEVsZW1lbnQkKHsgb3A6ICdhZGQnLCBwYXRoOiBvcGVyYXRpb24ucGF0aCwgdmFsdWU6IG9wZXJhdGlvbi52YWx1ZSB9KTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBvYnNlcnZhYmxlJCA9IG9mKCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gb2JzZXJ2YWJsZSQucGlwZSh0YXAoKCkgPT4gdGhpcy51cGRhdGVkJC5uZXh0KCkpKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDb21waWxlZEVsZW1lbnQkKHBhdGg6IHN0cmluZyk6IE9ic2VydmFibGU8RWxlbWVudE1ldGFkYXRhIHwgdW5kZWZpbmVkPiB7XG4gICAgcmV0dXJuIHRoaXMudXBkYXRlZCQucGlwZShcbiAgICAgIHN0YXJ0V2l0aCh1bmRlZmluZWQpLFxuICAgICAgbWFwKCgpID0+IGZpbmRFbGVtZW50QnlQYXRoKHRoaXMuYXBwbGljYXRpb25UcmVlLCBwYXRoKSksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgY2xlYXIoKTogdm9pZCB7XG4gICAgdGhpcy5jb21waWxhdGlvblNlcnZpY2UuY2xlYXIoKTtcbiAgICB0aGlzLm1vZHVsZVJlZnMuZm9yRWFjaChtID0+IG0uZGVzdHJveSgpKTtcbiAgICB0aGlzLm1vZHVsZVJlZnMgPSBbXTtcbiAgICB0aGlzLmNvbXBvbmVudFJlZnMgPSB7fTtcbiAgICB0aGlzLmFwcGxpY2F0aW9uVHJlZSA9IFtdO1xuICAgIHRoaXMuY29tcG9uZW50VHlwZXMgPSB7fTtcbiAgICB0aGlzLmlzSW5pdGlhbGl6ZWQkLm5leHQoZmFsc2UpO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRFbGVtZW50JChvcGVyYXRpb246IEFkZE9wZXJhdGlvbik6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmNvbXBpbGF0aW9uU2VydmljZS5jb21waWxlRWxlbWVudCQob3BlcmF0aW9uLnZhbHVlKS5waXBlKFxuICAgICAgbWFwKHJlc3VsdCA9PiB7XG4gICAgICAgIHRoaXMuY29tcG9uZW50VHlwZXMgPSB7XG4gICAgICAgICAgLi4udGhpcy5jb21wb25lbnRUeXBlcyxcbiAgICAgICAgICAuLi5yZXN1bHQuY29tcG9uZW50VHlwZXMsXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMubW9kdWxlUmVmcy5wdXNoKHJlc3VsdC5tb2R1bGVSZWYpO1xuICAgICAgICBhcHBseVBhdGNoKHRoaXMuYXBwbGljYXRpb25UcmVlLCBbeyAuLi5vcGVyYXRpb24sIHZhbHVlOiBjbG9uZURlZXAocmVzdWx0LmVsZW1lbnRzWzBdKSB9XSk7XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBkZWxldGVFbGVtZW50KG9wZXJhdGlvbjogUmVtb3ZlT3BlcmF0aW9uKTogdm9pZCB7XG4gICAgYXBwbHlQYXRjaCh0aGlzLmFwcGxpY2F0aW9uVHJlZSwgW29wZXJhdGlvbl0pO1xuICB9XG59XG4iXX0=
|
@@ -1,3 +0,0 @@
|
|
1
|
-
import { InjectionToken } from '@angular/core';
|
2
|
-
export const CMS_COMPILATION_SERVICE = new InjectionToken('VENDOR_MAP');
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvY21zL21vZHVsZXMvcnVudGltZS90b2tlbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUcvQyxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxJQUFJLGNBQWMsQ0FBcUIsWUFBWSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHR5cGUgeyBDb21waWxhdGlvblNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2NvbXBpbGF0aW9uLnNlcnZpY2UnO1xuXG5leHBvcnQgY29uc3QgQ01TX0NPTVBJTEFUSU9OX1NFUlZJQ0UgPSBuZXcgSW5qZWN0aW9uVG9rZW48Q29tcGlsYXRpb25TZXJ2aWNlPignVkVORE9SX01BUCcpO1xuIl19
|
@@ -1,2 +0,0 @@
|
|
1
|
-
export {};
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGlsYXRpb24udHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jbXMvbW9kdWxlcy9ydW50aW1lL3R5cGVzL2NvbXBpbGF0aW9uLnR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSwgTmdNb2R1bGVSZWYsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEVudGl0eSB9IGZyb20gJy4uLy4uLy4uL2VuZ2luZS9tb2RlbHMvZW50aXR5JztcbmltcG9ydCB7IEVsZW1lbnRNZXRhZGF0YSB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL2NvbW1vbi50eXBlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcGlsYXRpb25SZXN1bHQge1xuICBlbGVtZW50czogRWxlbWVudE1ldGFkYXRhW107XG4gIG1vZHVsZVJlZjogTmdNb2R1bGVSZWY8TmdNb2R1bGU+O1xuICBjb21wb25lbnRUeXBlczogUmVjb3JkPHN0cmluZywgVHlwZTxFbnRpdHk+Pjtcbn1cbiJdfQ==
|
@@ -1,2 +0,0 @@
|
|
1
|
-
export {};
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS5hY3Rpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvY21zL21vZHVsZXMvcnVudGltZS90eXBlcy9ydW50aW1lLmFjdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVsZW1lbnRNZXRhZGF0YSB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJztcblxuZXhwb3J0IGludGVyZmFjZSBSdW50aW1lRWxlbWVudERyb3BFdmVudCB7XG4gIGVsZW1lbnQ6IEVsZW1lbnRNZXRhZGF0YTtcbiAgcGF0aDogc3RyaW5nO1xuICBpbmRleDogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJ1bnRpbWVFbGVtZW50RGVsZXRlRXZlbnQge1xuICBwYXRoOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUnVudGltZVNob3dTZXR0aW5nc0V2ZW50IHtcbiAgcGF0aDogc3RyaW5nO1xufVxuIl19
|
@@ -1,121 +0,0 @@
|
|
1
|
-
import { DOCUMENT } from '@angular/common';
|
2
|
-
import { ApplicationRef, ElementRef, Injectable, createComponent, inject } from '@angular/core';
|
3
|
-
import { BehaviorSubject, Subject, combineLatest, takeUntil } from 'rxjs';
|
4
|
-
import { ElementToolsPanelComponent } from '../components/element-tools-panel/element-tools-panel.component';
|
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 ElementHoverPlugin {
|
11
|
-
constructor(host) {
|
12
|
-
this.host = host;
|
13
|
-
this.hoverClassName = 'element-hover';
|
14
|
-
this.metadata = inject(ELEMENT_METADATA);
|
15
|
-
this.appRef = inject(ApplicationRef);
|
16
|
-
this.el = inject(ElementRef);
|
17
|
-
this.document = inject(DOCUMENT);
|
18
|
-
this.runtimeEditorService = inject(RuntimeEditorService);
|
19
|
-
this.isHovered$ = new BehaviorSubject(false);
|
20
|
-
this.isSelected$ = new BehaviorSubject(false);
|
21
|
-
this.destroyed$ = new Subject();
|
22
|
-
this.listenersAttached = false;
|
23
|
-
this.mouseOverListenerBound = this.mouseOverListener.bind(this);
|
24
|
-
this.mouseLeaveListenerBound = this.mouseLeaveListener.bind(this);
|
25
|
-
this.clickListenerBound = this.clickListener.bind(this);
|
26
|
-
combineLatest([this.runtimeEditorService.editorMode$, this.isHovered$, this.isSelected$])
|
27
|
-
.pipe(takeUntil(this.destroyed$))
|
28
|
-
.subscribe(([editorMode]) => {
|
29
|
-
if (!editorMode) {
|
30
|
-
this.detachListeners();
|
31
|
-
this.removeHighlight();
|
32
|
-
return;
|
33
|
-
}
|
34
|
-
this.attachListeners();
|
35
|
-
this.updateHighlight();
|
36
|
-
});
|
37
|
-
this.runtimeEditorService.selectedElementPath$.pipe(takeUntil(this.destroyed$)).subscribe(path => {
|
38
|
-
const isSelected = this.metadata.path === path;
|
39
|
-
if (this.isSelected$.value !== isSelected) {
|
40
|
-
this.isSelected$.next(isSelected);
|
41
|
-
}
|
42
|
-
});
|
43
|
-
}
|
44
|
-
ngOnDestroy() {
|
45
|
-
this.destroyed$.next();
|
46
|
-
this.destroyed$.complete();
|
47
|
-
this.detachListeners();
|
48
|
-
}
|
49
|
-
attachListeners() {
|
50
|
-
if (this.listenersAttached) {
|
51
|
-
return;
|
52
|
-
}
|
53
|
-
this.el.nativeElement.addEventListener('mouseover', this.mouseOverListenerBound);
|
54
|
-
this.el.nativeElement.addEventListener('mouseleave', this.mouseLeaveListenerBound);
|
55
|
-
this.el.nativeElement.addEventListener('click', this.clickListenerBound);
|
56
|
-
this.listenersAttached = true;
|
57
|
-
}
|
58
|
-
detachListeners() {
|
59
|
-
if (!this.listenersAttached) {
|
60
|
-
return;
|
61
|
-
}
|
62
|
-
this.el.nativeElement.removeEventListener('mouseover', this.mouseOverListenerBound);
|
63
|
-
this.el.nativeElement.removeEventListener('mouseleave', this.mouseLeaveListenerBound);
|
64
|
-
this.el.nativeElement.removeEventListener('click', this.clickListenerBound);
|
65
|
-
this.listenersAttached = false;
|
66
|
-
}
|
67
|
-
mouseOverListener(e) {
|
68
|
-
const path = e.composedPath();
|
69
|
-
const innerPath = path.slice(0, path.indexOf(this.el.nativeElement));
|
70
|
-
const hasChildHovered = innerPath.some(target => {
|
71
|
-
const t = target;
|
72
|
-
return t.tagName === 'VL-ELEMENT' && t.classList.contains(this.hoverClassName);
|
73
|
-
});
|
74
|
-
const isHovered = !hasChildHovered;
|
75
|
-
if (this.isHovered$.value !== isHovered) {
|
76
|
-
this.isHovered$.next(isHovered);
|
77
|
-
}
|
78
|
-
}
|
79
|
-
clickListener(e) {
|
80
|
-
if (this.el.nativeElement === e.target) {
|
81
|
-
this.runtimeEditorService.selectedElementPath$.next(this.metadata.path);
|
82
|
-
}
|
83
|
-
}
|
84
|
-
mouseLeaveListener() {
|
85
|
-
this.isHovered$.next(false);
|
86
|
-
}
|
87
|
-
addHighlight() {
|
88
|
-
this.el.nativeElement.classList.add(this.hoverClassName);
|
89
|
-
this.overlayEl = this.document.createElement('div');
|
90
|
-
this.el.nativeElement.appendChild(this.overlayEl);
|
91
|
-
const ref = createComponent(ElementToolsPanelComponent, {
|
92
|
-
environmentInjector: this.appRef.injector,
|
93
|
-
hostElement: this.overlayEl,
|
94
|
-
elementInjector: this.host.injector,
|
95
|
-
});
|
96
|
-
ref.instance.runtimeEditorService = this.runtimeEditorService;
|
97
|
-
ref.changeDetectorRef.detectChanges();
|
98
|
-
}
|
99
|
-
removeHighlight() {
|
100
|
-
this.el.nativeElement.classList.remove(this.hoverClassName);
|
101
|
-
if (this.overlayEl) {
|
102
|
-
this.el.nativeElement.removeChild(this.overlayEl);
|
103
|
-
this.overlayEl = undefined;
|
104
|
-
}
|
105
|
-
}
|
106
|
-
updateHighlight() {
|
107
|
-
const hasOverlay = (this.overlayEl && this.el.nativeElement.contains(this.overlayEl)) ?? false;
|
108
|
-
if ((this.isHovered$.value || this.isSelected$.value) && !hasOverlay) {
|
109
|
-
setTimeout(() => this.addHighlight());
|
110
|
-
}
|
111
|
-
if (!this.isHovered$.value && !this.isSelected$.value && hasOverlay) {
|
112
|
-
this.removeHighlight();
|
113
|
-
}
|
114
|
-
}
|
115
|
-
}
|
116
|
-
ElementHoverPlugin.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ElementHoverPlugin, deps: [{ token: i1.ElementComponent }], target: i0.ɵɵFactoryTarget.Injectable });
|
117
|
-
ElementHoverPlugin.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ElementHoverPlugin });
|
118
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ElementHoverPlugin, decorators: [{
|
119
|
-
type: Injectable
|
120
|
-
}], ctorParameters: function () { return [{ type: i1.ElementComponent }]; } });
|
121
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC1ob3Zlci5wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jbXMvcGx1Z2lucy9lbGVtZW50LWhvdmVyLnBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFhLGVBQWUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0csT0FBTyxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxpRUFBaUUsQ0FBQztBQUM3RyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUVuRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxvREFBb0QsQ0FBQzs7O0FBRzFGLE1BQU0sT0FBTyxrQkFBa0I7SUFtQjdCLFlBQW1CLElBQXNCO1FBQXRCLFNBQUksR0FBSixJQUFJLENBQWtCO1FBbEJ4QixtQkFBYyxHQUFHLGVBQWUsQ0FBQztRQUVqQyxhQUFRLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDcEMsV0FBTSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNoQyxPQUFFLEdBQUcsTUFBTSxDQUEwQixVQUFVLENBQUMsQ0FBQztRQUNqRCxhQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzVCLHlCQUFvQixHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBRzdELGVBQVUsR0FBRyxJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4Qyxn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SSxDQUFDLFVBQVUsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNwRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7U0FDdkM7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssSUFBSSxVQUFVLEVBQUU7WUFDbkUsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1NBQ3hCO0lBQ0gsQ0FBQzs7K0dBcklVLGtCQUFrQjttSEFBbEIsa0JBQWtCOzJGQUFsQixrQkFBa0I7a0JBRDlCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBBcHBsaWNhdGlvblJlZiwgRWxlbWVudFJlZiwgSW5qZWN0YWJsZSwgT25EZXN0cm95LCBjcmVhdGVDb21wb25lbnQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEVsZW1lbnRUb29sc1BhbmVsQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9lbGVtZW50LXRvb2xzLXBhbmVsL2VsZW1lbnQtdG9vbHMtcGFuZWwuY29tcG9uZW50JztcbmltcG9ydCB7IEVsZW1lbnRDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL2VsZW1lbnQuY29tcG9uZW50JztcbmltcG9ydCB7IFBsdWdpbkNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvcGx1Z2luLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFTEVNRU5UX01FVEFEQVRBIH0gZnJvbSAnLi4vaW5qZWN0aW9uLXRva2Vucyc7XG5pbXBvcnQgeyBSdW50aW1lRWRpdG9yU2VydmljZSB9IGZyb20gJy4uL21vZHVsZXMvcnVudGltZS9zZXJ2aWNlcy9ydW50aW1lLWVkaXRvci5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEVsZW1lbnRIb3ZlclBsdWdpbiBpbXBsZW1lbnRzIFBsdWdpbkNvbXBvbmVudCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSByZWFkb25seSBob3ZlckNsYXNzTmFtZSA9ICdlbGVtZW50LWhvdmVyJztcblxuICBwcml2YXRlIHJlYWRvbmx5IG1ldGFkYXRhID0gaW5qZWN0KEVMRU1FTlRfTUVUQURBVEEpO1xuICBwcml2YXRlIHJlYWRvbmx5IGFwcFJlZiA9IGluamVjdChBcHBsaWNhdGlvblJlZik7XG4gIHByaXZhdGUgcmVhZG9ubHkgZWwgPSBpbmplY3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KEVsZW1lbnRSZWYpO1xuICBwcml2YXRlIHJlYWRvbmx5IGRvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcbiAgcHJpdmF0ZSByZWFkb25seSBydW50aW1lRWRpdG9yU2VydmljZSA9IGluamVjdChSdW50aW1lRWRpdG9yU2VydmljZSk7XG5cbiAgcHJpdmF0ZSBvdmVybGF5RWw/OiBIVE1MRWxlbWVudDtcbiAgcHJpdmF0ZSBpc0hvdmVyZWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG4gIHByaXZhdGUgaXNTZWxlY3RlZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcbiAgcHJpdmF0ZSBkZXN0cm95ZWQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJpdmF0ZSBsaXN0ZW5lcnNBdHRhY2hlZCA9IGZhbHNlO1xuXG4gIHByaXZhdGUgbW91c2VPdmVyTGlzdGVuZXJCb3VuZDogKGU6IE1vdXNlRXZlbnQpID0+IHZvaWQ7XG4gIHByaXZhdGUgbW91c2VMZWF2ZUxpc3RlbmVyQm91bmQ6IChlOiBNb3VzZUV2ZW50KSA9PiB2b2lkO1xuICBwcml2YXRlIGNsaWNrTGlzdGVuZXJCb3VuZDogKGU6IE1vdXNlRXZlbnQpID0+IHZvaWQ7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGhvc3Q6IEVsZW1lbnRDb21wb25lbnQpIHtcbiAgICB0aGlzLm1vdXNlT3Zlckxpc3RlbmVyQm91bmQgPSB0aGlzLm1vdXNlT3Zlckxpc3RlbmVyLmJpbmQodGhpcyk7XG4gICAgdGhpcy5tb3VzZUxlYXZlTGlzdGVuZXJCb3VuZCA9IHRoaXMubW91c2VMZWF2ZUxpc3RlbmVyLmJpbmQodGhpcyk7XG4gICAgdGhpcy5jbGlja0xpc3RlbmVyQm91bmQgPSB0aGlzLmNsaWNrTGlzdGVuZXIuYmluZCh0aGlzKTtcblxuICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMucnVudGltZUVkaXRvclNlcnZpY2UuZWRpdG9yTW9kZSQsIHRoaXMuaXNIb3ZlcmVkJCwgdGhpcy5pc1NlbGVjdGVkJF0pXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSlcbiAgICAgIC5zdWJzY3JpYmUoKFtlZGl0b3JNb2RlXSkgPT4ge1xuICAgICAgICBpZiAoIWVkaXRvck1vZGUpIHtcbiAgICAgICAgICB0aGlzLmRldGFjaExpc3RlbmVycygpO1xuICAgICAgICAgIHRoaXMucmVtb3ZlSGlnaGxpZ2h0KCk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5hdHRhY2hMaXN0ZW5lcnMoKTtcbiAgICAgICAgdGhpcy51cGRhdGVIaWdobGlnaHQoKTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5ydW50aW1lRWRpdG9yU2VydmljZS5zZWxlY3RlZEVsZW1lbnRQYXRoJC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpKS5zdWJzY3JpYmUocGF0aCA9PiB7XG4gICAgICBjb25zdCBpc1NlbGVjdGVkID0gdGhpcy5tZXRhZGF0YS5wYXRoID09PSBwYXRoO1xuICAgICAgaWYgKHRoaXMuaXNTZWxlY3RlZCQudmFsdWUgIT09IGlzU2VsZWN0ZWQpIHtcbiAgICAgICAgdGhpcy5pc1NlbGVjdGVkJC5uZXh0KGlzU2VsZWN0ZWQpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveWVkJC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95ZWQkLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5kZXRhY2hMaXN0ZW5lcnMoKTtcbiAgfVxuXG4gIHByaXZhdGUgYXR0YWNoTGlzdGVuZXJzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmxpc3RlbmVyc0F0dGFjaGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlb3ZlcicsIHRoaXMubW91c2VPdmVyTGlzdGVuZXJCb3VuZCk7XG4gICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbGVhdmUnLCB0aGlzLm1vdXNlTGVhdmVMaXN0ZW5lckJvdW5kKTtcbiAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLmNsaWNrTGlzdGVuZXJCb3VuZCk7XG4gICAgdGhpcy5saXN0ZW5lcnNBdHRhY2hlZCA9IHRydWU7XG4gIH1cblxuICBwcml2YXRlIGRldGFjaExpc3RlbmVycygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMubGlzdGVuZXJzQXR0YWNoZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2VvdmVyJywgdGhpcy5tb3VzZU92ZXJMaXN0ZW5lckJvdW5kKTtcbiAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScsIHRoaXMubW91c2VMZWF2ZUxpc3RlbmVyQm91bmQpO1xuICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMuY2xpY2tMaXN0ZW5lckJvdW5kKTtcbiAgICB0aGlzLmxpc3RlbmVyc0F0dGFjaGVkID0gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIG1vdXNlT3Zlckxpc3RlbmVyKGU6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBwYXRoID0gZS5jb21wb3NlZFBhdGgoKTtcbiAgICBjb25zdCBpbm5lclBhdGggPSBwYXRoLnNsaWNlKDAsIHBhdGguaW5kZXhPZih0aGlzLmVsLm5hdGl2ZUVsZW1lbnQpKTtcbiAgICBjb25zdCBoYXNDaGlsZEhvdmVyZWQgPSBpbm5lclBhdGguc29tZSh0YXJnZXQgPT4ge1xuICAgICAgY29uc3QgdCA9IHRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICAgIHJldHVybiB0LnRhZ05hbWUgPT09ICdWTC1FTEVNRU5UJyAmJiB0LmNsYXNzTGlzdC5jb250YWlucyh0aGlzLmhvdmVyQ2xhc3NOYW1lKTtcbiAgICB9KTtcblxuICAgIGNvbnN0IGlzSG92ZXJlZCA9ICFoYXNDaGlsZEhvdmVyZWQ7XG5cbiAgICBpZiAodGhpcy5pc0hvdmVyZWQkLnZhbHVlICE9PSBpc0hvdmVyZWQpIHtcbiAgICAgIHRoaXMuaXNIb3ZlcmVkJC5uZXh0KGlzSG92ZXJlZCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjbGlja0xpc3RlbmVyKGU6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5lbC5uYXRpdmVFbGVtZW50ID09PSBlLnRhcmdldCkge1xuICAgICAgdGhpcy5ydW50aW1lRWRpdG9yU2VydmljZS5zZWxlY3RlZEVsZW1lbnRQYXRoJC5uZXh0KHRoaXMubWV0YWRhdGEucGF0aCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBtb3VzZUxlYXZlTGlzdGVuZXIoKTogdm9pZCB7XG4gICAgdGhpcy5pc0hvdmVyZWQkLm5leHQoZmFsc2UpO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRIaWdobGlnaHQoKTogdm9pZCB7XG4gICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQodGhpcy5ob3ZlckNsYXNzTmFtZSk7XG5cbiAgICB0aGlzLm92ZXJsYXlFbCA9IHRoaXMuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMub3ZlcmxheUVsKTtcblxuICAgIGNvbnN0IHJlZiA9IGNyZWF0ZUNvbXBvbmVudChFbGVtZW50VG9vbHNQYW5lbENvbXBvbmVudCwge1xuICAgICAgZW52aXJvbm1lbnRJbmplY3RvcjogdGhpcy5hcHBSZWYuaW5qZWN0b3IsXG4gICAgICBob3N0RWxlbWVudDogdGhpcy5vdmVybGF5RWwsXG4gICAgICBlbGVtZW50SW5qZWN0b3I6IHRoaXMuaG9zdC5pbmplY3RvcixcbiAgICB9KTtcblxuICAgIHJlZi5pbnN0YW5jZS5ydW50aW1lRWRpdG9yU2VydmljZSA9IHRoaXMucnVudGltZUVkaXRvclNlcnZpY2U7XG4gICAgcmVmLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlSGlnaGxpZ2h0KCk6IHZvaWQge1xuICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKHRoaXMuaG92ZXJDbGFzc05hbWUpO1xuXG4gICAgaWYgKHRoaXMub3ZlcmxheUVsKSB7XG4gICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucmVtb3ZlQ2hpbGQodGhpcy5vdmVybGF5RWwpO1xuICAgICAgdGhpcy5vdmVybGF5RWwgPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVIaWdobGlnaHQoKTogdm9pZCB7XG4gICAgY29uc3QgaGFzT3ZlcmxheSA9ICh0aGlzLm92ZXJsYXlFbCAmJiB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuY29udGFpbnModGhpcy5vdmVybGF5RWwpKSA/PyBmYWxzZTtcblxuICAgIGlmICgodGhpcy5pc0hvdmVyZWQkLnZhbHVlIHx8IHRoaXMuaXNTZWxlY3RlZCQudmFsdWUpICYmICFoYXNPdmVybGF5KSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuYWRkSGlnaGxpZ2h0KCkpO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5pc0hvdmVyZWQkLnZhbHVlICYmICF0aGlzLmlzU2VsZWN0ZWQkLnZhbHVlICYmIGhhc092ZXJsYXkpIHtcbiAgICAgIHRoaXMucmVtb3ZlSGlnaGxpZ2h0KCk7XG4gICAgfVxuICB9XG59XG4iXX0=
|