@veloceapps/sdk 11.0.0-2 → 11.0.0-21
Sign up to get free protection for your applications and to get access to all the features.
- package/cms/cms.actions.d.ts +92 -29
- package/cms/components/element-renderer/element-renderer.component.d.ts +3 -10
- package/cms/services/element-context.service.d.ts +0 -1
- package/cms/types/common.types.d.ts +2 -0
- package/cms/types/index.d.ts +0 -1
- package/cms/utils/path.utils.d.ts +1 -2
- package/cms/vendor-map.d.ts +19 -40
- package/core/index.d.ts +0 -1
- package/core/modules/configuration/index.d.ts +1 -4
- package/core/modules/configuration/services/configuration-runtime.service.d.ts +3 -22
- package/core/modules/configuration/services/configuration-state.service.d.ts +8 -8
- package/core/modules/configuration/services/configuration.service.d.ts +23 -47
- package/core/modules/flow-configuration/index.d.ts +0 -3
- package/core/modules/flow-configuration/services/flow-configuration.service.d.ts +10 -39
- package/core/services/catalog-products.service.d.ts +11 -0
- package/core/services/flow-info.service.d.ts +25 -11
- package/core/services/flow-state-configuration.service.d.ts +2 -8
- package/core/services/flow-state.service.d.ts +13 -22
- package/core/services/index.d.ts +2 -3
- package/core/services/integration.state.d.ts +1 -1
- package/core/services/sales-transaction.service.d.ts +30 -0
- package/core/types/flow-state.types.d.ts +2 -2
- package/core/types/index.d.ts +0 -1
- package/core/utils/index.d.ts +2 -2
- package/core/utils/transaction-item.utils.d.ts +7 -0
- package/core/utils/transaction-item.worker.d.ts +8 -0
- package/esm2020/cms/cms.actions.mjs +93 -71
- package/esm2020/cms/cms.default.mjs +2 -3
- package/esm2020/cms/components/element-renderer/element-renderer.component.mjs +7 -64
- package/esm2020/cms/components/preview/preview.component.mjs +3 -3
- package/esm2020/cms/services/element-context.service.mjs +1 -1
- package/esm2020/cms/types/common.types.mjs +1 -1
- package/esm2020/cms/types/index.mjs +1 -2
- package/esm2020/cms/utils/element.utils.mjs +3 -3
- package/esm2020/cms/utils/path.utils.mjs +1 -10
- package/esm2020/cms/vendor-map.mjs +12 -17
- package/esm2020/core/core.module.mjs +9 -7
- package/esm2020/core/index.mjs +1 -2
- package/esm2020/core/modules/configuration/configuration.module.mjs +3 -4
- package/esm2020/core/modules/configuration/index.mjs +2 -5
- package/esm2020/core/modules/configuration/services/configuration-runtime.service.mjs +9 -102
- package/esm2020/core/modules/configuration/services/configuration-state.service.mjs +60 -76
- package/esm2020/core/modules/configuration/services/configuration.service.mjs +96 -225
- package/esm2020/core/modules/flow-configuration/flow-configuration.module.mjs +3 -4
- package/esm2020/core/modules/flow-configuration/index.mjs +1 -4
- package/esm2020/core/modules/flow-configuration/services/flow-configuration.service.mjs +33 -126
- package/esm2020/core/services/catalog-products.service.mjs +25 -0
- package/esm2020/core/services/flow-info.service.mjs +77 -29
- package/esm2020/core/services/flow-state-configuration.service.mjs +10 -25
- package/esm2020/core/services/flow-state.service.mjs +62 -169
- package/esm2020/core/services/index.mjs +3 -4
- package/esm2020/core/services/integration.state.mjs +2 -2
- package/esm2020/core/services/sales-transaction.service.mjs +68 -0
- package/esm2020/core/types/flow-state.types.mjs +1 -1
- package/esm2020/core/types/index.mjs +1 -2
- package/esm2020/core/utils/index.mjs +3 -3
- package/esm2020/core/utils/transaction-item.utils.mjs +60 -0
- package/esm2020/core/utils/transaction-item.worker.mjs +16 -0
- package/esm2020/src/components/flow-header/flow-header.component.mjs +3 -7
- package/esm2020/src/components/guided-selling/guided-selling.component.mjs +3 -7
- package/esm2020/src/flow-routing.module.mjs +11 -41
- package/esm2020/src/flow.component.mjs +5 -5
- package/esm2020/src/guards/flow.guard.mjs +13 -14
- package/esm2020/src/guards/product-unload.guard.mjs +7 -9
- package/esm2020/src/index.mjs +1 -3
- package/esm2020/src/pages/assets/assets.component.mjs +3 -4
- package/esm2020/src/pages/catalog/catalog.component.mjs +3 -4
- package/esm2020/src/pages/debug/debug.component.mjs +12 -21
- package/esm2020/src/pages/product/product.component.mjs +12 -82
- package/esm2020/src/pages/product/product.module.mjs +5 -5
- package/esm2020/src/pages/record-not-found/record-not-found.component.mjs +5 -6
- package/esm2020/src/pages/shopping-cart/shopping-cart.component.mjs +3 -4
- package/esm2020/src/resolvers/flow.resolver.mjs +10 -18
- package/esm2020/src/resolvers/sales-transaction.resolver.mjs +83 -0
- package/esm2020/src/resolvers/ui-definition.resolver.mjs +42 -0
- package/esm2020/src/services/flow-dialog.service.mjs +8 -8
- package/esm2020/src/services/flow-router.service.mjs +16 -33
- package/esm2020/src/services/flow.service.mjs +13 -54
- package/esm2020/src/types/index.mjs +2 -3
- package/esm2020/src/types/route.types.mjs +1 -1
- package/fesm2015/veloceapps-sdk-cms.mjs +126 -268
- package/fesm2015/veloceapps-sdk-cms.mjs.map +1 -1
- package/fesm2015/veloceapps-sdk-core.mjs +712 -1644
- package/fesm2015/veloceapps-sdk-core.mjs.map +1 -1
- package/fesm2015/veloceapps-sdk.mjs +167 -763
- package/fesm2015/veloceapps-sdk.mjs.map +1 -1
- package/fesm2020/veloceapps-sdk-cms.mjs +114 -262
- package/fesm2020/veloceapps-sdk-cms.mjs.map +1 -1
- package/fesm2020/veloceapps-sdk-core.mjs +758 -1725
- package/fesm2020/veloceapps-sdk-core.mjs.map +1 -1
- package/fesm2020/veloceapps-sdk.mjs +167 -757
- package/fesm2020/veloceapps-sdk.mjs.map +1 -1
- package/package.json +1 -1
- package/src/components/flow-header/flow-header.component.d.ts +1 -1
- package/src/components/guided-selling/guided-selling.component.d.ts +1 -1
- package/src/flow-routing.module.d.ts +1 -2
- package/src/flow.component.d.ts +2 -2
- package/src/guards/product-unload.guard.d.ts +5 -6
- package/src/index.d.ts +0 -2
- 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 +1 -4
- package/src/pages/product/product.component.d.ts +5 -14
- package/src/pages/product/product.module.d.ts +1 -1
- package/src/pages/record-not-found/record-not-found.component.d.ts +2 -3
- package/src/pages/shopping-cart/shopping-cart.component.d.ts +1 -1
- package/src/resolvers/flow.resolver.d.ts +5 -6
- package/src/resolvers/sales-transaction.resolver.d.ts +18 -0
- package/src/resolvers/ui-definition.resolver.d.ts +3 -0
- package/src/services/flow-dialog.service.d.ts +5 -4
- package/src/services/flow-router.service.d.ts +4 -6
- package/src/services/flow.service.d.ts +2 -7
- package/src/types/index.d.ts +1 -2
- package/src/types/route.types.d.ts +0 -5
- package/cms/plugins/configuration.plugin.d.ts +0 -23
- package/cms/types/configuration.types.d.ts +0 -21
- package/core/modules/configuration/helpers.d.ts +0 -6
- package/core/modules/configuration/services/runtime-context.service.d.ts +0 -12
- package/core/modules/configuration/types/configuration-runtime.types.d.ts +0 -6
- package/core/modules/flow-configuration/services/flow-update.service.d.ts +0 -13
- package/core/modules/flow-configuration/types/update.types.d.ts +0 -12
- package/core/services/context.service.d.ts +0 -23
- package/core/services/quote-draft.service.d.ts +0 -50
- package/core/types/runtime.types.d.ts +0 -30
- package/core/utils/line-item.utils.d.ts +0 -25
- package/core/utils/line-item.worker.d.ts +0 -9
- package/esm2020/cms/plugins/configuration.plugin.mjs +0 -109
- package/esm2020/cms/types/configuration.types.mjs +0 -2
- package/esm2020/core/modules/configuration/helpers.mjs +0 -73
- package/esm2020/core/modules/configuration/services/runtime-context.service.mjs +0 -43
- package/esm2020/core/modules/configuration/types/configuration-runtime.types.mjs +0 -2
- package/esm2020/core/modules/flow-configuration/services/flow-update.service.mjs +0 -138
- package/esm2020/core/modules/flow-configuration/types/update.types.mjs +0 -2
- package/esm2020/core/services/context.service.mjs +0 -91
- package/esm2020/core/services/quote-draft.service.mjs +0 -192
- package/esm2020/core/types/runtime.types.mjs +0 -16
- package/esm2020/core/utils/line-item.utils.mjs +0 -187
- package/esm2020/core/utils/line-item.worker.mjs +0 -19
- package/esm2020/src/guards/context.guard.mjs +0 -91
- package/esm2020/src/guards/index.mjs +0 -2
- package/esm2020/src/pages/remote/remote.component.mjs +0 -342
- package/esm2020/src/pages/remote/remote.module.mjs +0 -20
- package/esm2020/src/pages/remote/remote.types.mjs +0 -2
- package/esm2020/src/resolvers/quote.resolver.mjs +0 -82
- package/esm2020/src/types/context-route.types.mjs +0 -2
- package/esm2020/src/types/metrics.types.mjs +0 -2
- package/esm2020/src/utils/flow.utils.mjs +0 -25
- package/esm2020/src/utils/index.mjs +0 -2
- package/src/guards/context.guard.d.ts +0 -19
- package/src/guards/index.d.ts +0 -1
- package/src/pages/remote/remote.component.d.ts +0 -46
- package/src/pages/remote/remote.module.d.ts +0 -10
- package/src/pages/remote/remote.types.d.ts +0 -4
- package/src/resolvers/quote.resolver.d.ts +0 -19
- package/src/types/context-route.types.d.ts +0 -5
- package/src/types/metrics.types.d.ts +0 -5
- package/src/utils/flow.utils.d.ts +0 -8
- package/src/utils/index.d.ts +0 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"veloceapps-sdk-cms.mjs","sources":["../../../../libs/sdk/cms/cms.actions.ts","../../../../libs/sdk/cms/cms.layouts.ts","../../../../libs/sdk/cms/injection-tokens.ts","../../../../libs/sdk/cms/engine/models/entity.ts","../../../../libs/sdk/cms/components/element.component.ts","../../../../libs/sdk/cms/utils/ui-definition.utils.ts","../../../../libs/sdk/cms/utils/path.utils.ts","../../../../libs/sdk/cms/modules/runtime/tokens.ts","../../../../libs/sdk/cms/modules/runtime/services/runtime.service.ts","../../../../libs/sdk/cms/services/io-provider.service.ts","../../../../libs/sdk/cms/services/templates.service.ts","../../../../libs/sdk/cms/services/element-context.service.ts","../../../../libs/sdk/cms/components/element-renderer/element-renderer.component.ts","../../../../libs/sdk/cms/components/element-renderer/element-renderer.component.html","../../../../libs/sdk/cms/components/preview/preview.component.ts","../../../../libs/sdk/cms/components/preview/preview.component.html","../../../../libs/sdk/cms/modules/runtime/services/runtime-editor.service.ts","../../../../libs/sdk/cms/components/element-drop-handle/element-drop-handle.component.ts","../../../../libs/sdk/cms/components/element-drop-handle/element-drop-handle.component.html","../../../../libs/sdk/cms/components/element-drop-handle/element-drop-handle.module.ts","../../../../libs/sdk/cms/components/element-renderer/element-renderer.module.ts","../../../../libs/sdk/cms/components/element-children/element-children.component.ts","../../../../libs/sdk/cms/components/element-children/element-children.component.html","../../../../libs/sdk/cms/components/element-children/element-children.module.ts","../../../../libs/sdk/cms/components/element-tools-panel/element-tools-panel.component.ts","../../../../libs/sdk/cms/components/element-tools-panel/element-tools-panel.component.html","../../../../libs/sdk/cms/components/preview/preview.module.ts","../../../../libs/sdk/cms/decorators/element.decorator.ts","../../../../libs/sdk/cms/definitions/ui-builder.definitions.ts","../../../../libs/sdk/cms/directives/custom-template.directive.ts","../../../../libs/sdk/cms/plugins/element-hover.plugin.ts","../../../../libs/sdk/cms/plugins/io.plugin.ts","../../../../libs/sdk/cms/plugins/page.plugin.ts","../../../../libs/sdk/cms/plugins/region.plugin.ts","../../../../libs/sdk/cms/services/resources.service.ts","../../../../libs/sdk/cms/utils/inject.ts","../../../../libs/sdk/cms/vendor-map.ts","../../../../libs/sdk/cms/utils/script.utils.ts","../../../../libs/sdk/cms/plugins/script.plugin.ts","../../../../libs/sdk/cms/cms.elements.ts","../../../../libs/sdk/cms/utils/encoding.utils.ts","../../../../libs/sdk/cms/utils/element.utils.ts","../../../../libs/sdk/cms/utils/element-metadata-worker.ts","../../../../libs/sdk/cms/plugins/configuration.plugin.ts","../../../../libs/sdk/cms/cms.default.ts","../../../../libs/sdk/cms/utils/transpilation-worker.ts","../../../../libs/sdk/cms/utils/elements-resolver.ts","../../../../libs/sdk/cms/utils/ui-builder-layout.utils.ts","../../../../libs/sdk/cms/modules/federated/federated-host.directive.ts","../../../../libs/sdk/cms/modules/federated/default-options.ts","../../../../libs/sdk/cms/modules/federated/federated.component.ts","../../../../libs/sdk/cms/modules/federated/federated.component.html","../../../../libs/sdk/cms/modules/federated/federated.module.ts","../../../../libs/sdk/cms/modules/runtime/services/compilation.service.ts","../../../../libs/sdk/cms/modules/runtime/runtime.module.ts","../../../../libs/sdk/cms/launcher.module.ts","../../../../libs/sdk/cms/modules/migrations/migrations.ts","../../../../libs/sdk/cms/modules/migrations/services/migrations.service.ts","../../../../libs/sdk/cms/modules/migrations/migrations.module.ts","../../../../libs/sdk/cms/veloceapps-sdk-cms.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-namespace */\nimport { CustomizationChanges } from '@veloceapps/core';\nimport { IntegrationAction } from '@veloceapps/sdk/core';\n\nexport namespace FlowAction {\n export const FLOW_CONFIGURE_PRODUCT = '[FLOW]_CONFIGURE_PRODUCT';\n export const FLOW_NAVIGATE_BACK = '[FLOW]_NAVIGATE_BACK';\n export const FLOW_NAVIGATE_TO = '[FLOW]_NAVIGATE_TO';\n export const FLOW_NAVIGATE_TO_CATALOG = '[FLOW]_NAVIGATE_TO_CATALOG';\n export const FLOW_NAVIGATE_TO_SHOPPING_CART = '[FLOW]_NAVIGATE_TO_SHOPPING_CART';\n export const FLOW_APPLY_PRODUCT_CONFIGURATION = '[FLOW]_APPLY_PRODUCT_CONFIGURATION';\n export const FLOW_OPEN_DOC_GEN = '[FLOW]_OPEN_DOC_GEN';\n export const FLOW_CLOSE_DOC_GEN = '[FLOW]_CLOSE_DOC_GEN';\n export const FLOW_SWITCH_OBJECT = '[FLOW]_SWITCH_OBJECT';\n export const REMOTE_APPLY = '[FLOW]_REMOTE_APPLY';\n export const REMOTE_CANCEL = '[FLOW]_REMOTE_CANCEL';\n export const OPEN_GUIDED_SELLING = '[FLOW]_OPEN_GUIDED_SELLING';\n export const SUBMIT_GUIDED_SELLING = '[FLOW]_SUBMIT_GUIDED_SELLING';\n export const CLOSE_GUIDED_SELLING = '[FLOW]_CLOSE_GUIDED_SELLING';\n export const OPEN_DIALOG = '[FLOW]_OPEN_DIALOG';\n\n export const ConfigureProductAction = ({\n lineItemId,\n productId,\n }: {\n lineItemId?: string;\n productId?: string;\n }): IntegrationAction => ({\n type: FlowAction.FLOW_CONFIGURE_PRODUCT,\n payload: { lineItemId, productId },\n });\n\n export const NavigateBackAction = (): IntegrationAction => ({\n type: FlowAction.FLOW_NAVIGATE_BACK,\n });\n\n export const NavigateToAction = (path: string, productId?: string, lineItemId?: string): IntegrationAction => ({\n type: FlowAction.FLOW_NAVIGATE_TO,\n payload: { path, productId, lineItemId },\n });\n\n export const NavigateToCatalogAction = (): IntegrationAction => ({\n type: FlowAction.FLOW_NAVIGATE_TO_CATALOG,\n });\n\n export const NavigateToShoppingCartAction = (): IntegrationAction => ({\n type: FlowAction.FLOW_NAVIGATE_TO_SHOPPING_CART,\n });\n\n export const ApplyProductConfigurationAction = (): IntegrationAction => ({\n type: FlowAction.FLOW_APPLY_PRODUCT_CONFIGURATION,\n });\n\n export const RemoteApplyAction = (): IntegrationAction => ({\n type: FlowAction.REMOTE_APPLY,\n });\n\n export const RemoteCancelAction = (): IntegrationAction => ({\n type: FlowAction.REMOTE_CANCEL,\n });\n\n export const SwitchObjectAction = (payload: { id: string }): IntegrationAction => ({\n type: FlowAction.FLOW_SWITCH_OBJECT,\n payload,\n });\n\n export const OpenGuidedSelling = (payload: { guidedSellingId: string }): IntegrationAction => ({\n type: FlowAction.OPEN_GUIDED_SELLING,\n payload,\n });\n\n export const CloseGuidedSelling = (payload?: { keepState?: boolean }): IntegrationAction => ({\n type: FlowAction.CLOSE_GUIDED_SELLING,\n payload,\n });\n\n export const SubmitGuidedSelling = (payload: { result: Record<string, any> }): IntegrationAction => ({\n type: FlowAction.SUBMIT_GUIDED_SELLING,\n payload,\n });\n\n export const OpenDialog = (dialog: string): IntegrationAction => ({\n type: FlowAction.OPEN_DIALOG,\n payload: { dialog },\n });\n}\n\nexport namespace CmsAction {\n export const GO_TO_PAGE = '[CMS]_GO_TO_PAGE';\n export const UPDATE_CUSTOMIZATION = '[CMS]_UPDATE_CUSTOMIZATION';\n export const EMIT_CUSTOMIZATION_CHANGES = '[CMS]_EMIT_CUSTOMIZATION_CHANGES';\n export const SHOW_OVERLAY = '[CMS]_SHOW_OVERLAY';\n export const HIDE_OVERLAY = '[CMS]_HIDE_OVERLAY';\n export const HIDE_ALL_OVERLAYS = '[CMS]_HIDE_ALL_OVERLAYS';\n\n /**\n * Navigate UI definition to a specific page\n *\n * @param pageName name of the page\n */\n export const GoToPage = (pageName: string): IntegrationAction => ({\n type: GO_TO_PAGE,\n payload: { pageName },\n });\n\n /**\n * Update UI definition customization state\n *\n * @param pageName name of the page\n */\n export const UpdateCustomization = (value: any): IntegrationAction => ({\n type: UPDATE_CUSTOMIZATION,\n payload: { value },\n });\n\n /**\n * Emit customization page changes\n *\n * @param changes - object with customization page changes\n */\n export const EmitCustomizationChanges = (changes: CustomizationChanges): IntegrationAction => ({\n type: EMIT_CUSTOMIZATION_CHANGES,\n payload: { changes },\n });\n\n /**\n * Show an Overlay on the selected page\n *\n * @param name - name of the overlay\n * @returns void\n */\n export const ShowOverlay = (name: string): IntegrationAction => ({\n type: SHOW_OVERLAY,\n payload: { name },\n });\n\n /**\n * Hide an Overlay on the selected page\n *\n * @param name - name of the overlay\n * @returns void\n */\n export const HideOverlay = (name: string): IntegrationAction => ({\n type: HIDE_OVERLAY,\n payload: { name },\n });\n\n /**\n * Hide all Overlays on the selected page\n *\n * @returns void\n */\n export const HideAllOverlays = (): IntegrationAction => ({\n type: HIDE_ALL_OVERLAYS,\n });\n}\n","import { PageLayout, PageLayoutConfig } from './types/layouts.types';\n\nexport const LAYOUT: { [key in PageLayout]: PageLayoutConfig } = {\n LAYOUT_1: {\n hasHeader: true,\n hasFooter: true,\n styles: `\n/* start of LAYOUT_1 styles */\n:host {\n height: 100%;\n display: grid;\n grid:\n \"header\" auto\n \"main\" 1fr\n \"footer\" auto\n / 1fr;\n gap: 16px;\n}\n\n:host ::ng-deep element-children > vl-cms-element-renderer {\n &:nth-child(1) > vl-element {\n min-height: 80px;\n grid-area: header;\n }\n\n &:nth-child(2) > vl-element {\n grid-area: main;\n }\n\n &:nth-child(3) > vl-element {\n min-height: 80px;\n grid-area: footer;\n }\n}\n/* end of LAYOUT_1 styles */\n`,\n },\n LAYOUT_2: {\n hasHeader: true,\n hasFooter: true,\n styles: `\n/* start of LAYOUT_2 styles */\n:host {\n height: 100%;\n display: grid;\n grid:\n \"header header\" auto\n \"left right\" 1fr\n \"footer footer\" auto\n / 1fr 1fr;\n gap: 16px;\n}\n\n:host ::ng-deep element-children > vl-cms-element-renderer {\n &:nth-child(1) > vl-element {\n min-height: 80px;\n grid-area: header;\n }\n\n &:nth-child(2) > vl-element {\n grid-area: left;\n }\n\n &:nth-child(3) > vl-element {\n grid-area: right;\n }\n\n &:nth-child(4) > vl-element {\n min-height: 80px;\n grid-area: footer;\n }\n}\n/* end of LAYOUT_2 styles */\n`,\n },\n LAYOUT_3: {\n hasHeader: false,\n hasFooter: true,\n styles: `\n/* start of LAYOUT_3 styles */\n:host {\n height: 100%;\n display: grid;\n grid:\n \"main\" 1fr\n \"footer\" auto\n / 1fr;\n gap: 16px;\n}\n\n:host ::ng-deep element-children > vl-cms-element-renderer {\n &:nth-child(1) > vl-element {\n grid-area: main;\n }\n\n &:nth-child(2) > vl-element {\n min-height: 80px;\n grid-area: footer;\n }\n}\n/* end of LAYOUT_3 styles */\n`,\n },\n LAYOUT_4: {\n hasHeader: false,\n hasFooter: true,\n styles: `\n/* start of LAYOUT_4 styles */\n:host {\n height: 100%;\n display: grid;\n grid:\n \"left right\" 1fr\n \"footer footer\" auto\n / auto auto;\n gap: 16px;\n}\n\n:host ::ng-deep element-children > vl-cms-element-renderer {\n &:nth-child(1) > vl-element {\n grid-area: left;\n }\n\n &:nth-child(2) > vl-element {\n grid-area: right;\n }\n\n &:nth-child(3) > vl-element {\n min-height: 80px;\n grid-area: footer;\n }\n}\n/* end of LAYOUT_4 styles */\n`,\n },\n LAYOUT_5: {\n hasHeader: true,\n hasFooter: false,\n styles: `\n/* start of LAYOUT_5 styles */\n:host {\n height: 100%;\n display: grid;\n grid:\n \"header\" auto\n \"main\" 1fr\n / 1fr;\n gap: 16px;\n}\n\n:host ::ng-deep element-children > vl-cms-element-renderer {\n &:nth-child(1) > vl-element {\n min-height: 80px;\n grid-area: header;\n }\n\n &:nth-child(2) > vl-element {\n grid-area: main;\n }\n}\n/* end of LAYOUT_5 styles */\n`,\n },\n LAYOUT_6: {\n hasHeader: false,\n hasFooter: false,\n styles: `\n/* start of LAYOUT_6 styles */\n:host {\n height: 100%;\n display: grid;\n grid:\n \"main\" 1fr\n / 1fr;\n gap: 16px;\n}\n\n:host ::ng-deep element-children > vl-cms-element-renderer {\n &:nth-child(1) > vl-element {\n grid-area: main;\n }\n}\n/* end of LAYOUT_6 styles */\n`,\n },\n LAYOUT_7: {\n hasHeader: false,\n hasFooter: false,\n styles: `\n /* start of LAYOUT_7 styles */\n :host {\n position: absolute;\n left: 300px;\n background: #ffffff;\n box-shadow: 0px 4px 20px rgba(0, 41, 87, 0.12);\n display: grid;\n grid: \"left\" 1fr / 1fr;\n gap: 16px;\n justify-content: start;\n min-width: calc(100% / 3);\n height: fill-available;\n height: -webkit-fill-available;\n height: -moz-available;\n }\n :host ::ng-deep element-children > vl-cms-element-renderer {\n &:nth-child(1) > vl-element {\n grid-area: left;\n }\n }\n /* end of LAYOUT_7 styles */\n`,\n },\n LAYOUT_8: {\n hasHeader: false,\n hasFooter: false,\n styles: `\n /* start of LAYOUT_8 styles */\n :host {\n position: absolute;\n right: 0;\n background: #ffffff;\n box-shadow: 0px 4px 20px rgba(0, 41, 87, 0.12);\n display: grid;\n grid: \"right\" 1fr / 1fr;\n gap: 16px;\n justify-content: end;\n min-width: calc(100% / 3);\n height: fill-available;\n height: -webkit-fill-available;\n height: -moz-available;\n }\n :host ::ng-deep element-children > vl-cms-element-renderer {\n &:nth-child(1) > vl-element {\n grid-area: right;\n }\n }\n /* end of LAYOUT_8 styles */\n`,\n },\n};\n","import { InjectionToken } from '@angular/core';\nimport { UIDefinitionMetadata } from '@veloceapps/core';\nimport { Plugin } from './engine/models/plugin';\nimport { ElementConfig, ElementMetadata } from './types/common.types';\n\nexport const DEFAULT_PLUGINS_TOKEN = new InjectionToken<(typeof Plugin)[]>('DEFAULT_PLUGINS_TOKEN');\n\nexport const UI_DEFINITION_METADATA = new InjectionToken<UIDefinitionMetadata>('UI_DEFINITION_METADATA_TOKEN');\nexport const ELEMENT_METADATA = new InjectionToken<ElementMetadata>('ELEMENT_METADATA_TOKEN');\nexport const SHARED_ELEMENT_METADATA = new InjectionToken<ElementMetadata | undefined>('SHARED_ELEMENT_METADATA_TOKEN');\nexport const ELEMENT_CONFIG = new InjectionToken<ElementConfig>('ELEMENT_CONFIG_TOKEN');\n","import { Injector } from '@angular/core';\nimport { DEFAULT_PLUGINS_TOKEN, ELEMENT_CONFIG } from '../../injection-tokens';\nimport { ElementConfig } from '../../types/common.types';\nimport { Plugin } from './plugin';\n\nexport class Entity {\n protected readonly plugins: Plugin[] = [];\n\n private config: ElementConfig;\n private defaultPlugins: typeof Plugin[];\n\n constructor(public injector: Injector) {\n this.config = this.injector.get(ELEMENT_CONFIG);\n this.defaultPlugins = this.injector.get(DEFAULT_PLUGINS_TOKEN);\n }\n\n public initPlugins(): void {\n this.defaultPlugins.forEach(plugin => this.registerPlugin(new plugin(this)));\n this.config.plugins?.forEach(plugin => this.registerPlugin(new plugin(this)));\n }\n\n public registerPlugin(plugin: Plugin): void {\n this.plugins.push(plugin);\n }\n}\n","/* eslint-disable @angular-eslint/no-conflicting-lifecycle */\nimport {\n AfterContentInit,\n AfterViewChecked,\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n DoCheck,\n Inject,\n Injector,\n OnChanges,\n OnDestroy,\n OnInit,\n SimpleChanges,\n} from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { Entity } from '../engine/models/entity';\nimport { IPluginComponent } from './plugin.component';\n\n@Component({\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush,\n jit: true,\n})\nexport class ElementComponent\n extends Entity\n implements OnChanges, OnInit, DoCheck, AfterContentInit, AfterViewInit, AfterViewChecked, OnDestroy\n{\n public readonly model$ = new BehaviorSubject<any | undefined>(undefined);\n public override readonly plugins!: IPluginComponent[];\n\n constructor(@Inject(Injector) public override injector: Injector) {\n super(injector);\n\n super.initPlugins();\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n this.plugins.forEach(plugin => plugin.ngOnChanges?.(changes));\n }\n\n public ngOnInit(): void {\n this.plugins.forEach(plugin => plugin.ngOnInit?.());\n }\n\n public ngDoCheck(): void {\n this.plugins.forEach(plugin => plugin.ngDoCheck?.());\n }\n\n public ngAfterContentInit(): void {\n this.plugins.forEach(plugin => plugin.ngAfterContentInit?.());\n }\n\n public ngAfterViewInit(): void {\n this.plugins.forEach(plugin => plugin.ngAfterViewInit?.());\n }\n\n public ngAfterViewChecked(): void {\n this.plugins.forEach(plugin => plugin.ngAfterViewChecked?.());\n }\n\n public ngOnDestroy(): void {\n this.plugins.forEach(plugin => plugin.ngOnDestroy?.());\n }\n}\n","import { getCollectionUniqueName } from '@veloceapps/core';\nimport { ElementMetadata } from '../types';\n\nconst insertElementAt = (\n source: ElementMetadata[],\n target: ElementMetadata,\n parentPath: string,\n index: number,\n): ElementMetadata[] => {\n const result = [...source];\n const name = getCollectionUniqueName(\n result,\n target.name,\n (name: string) =>\n (el): boolean =>\n el.name === name,\n );\n const path = parentPath ? `${parentPath}/${name}` : name;\n result.splice(index, 0, { ...target, path, name });\n return result;\n};\n\nexport const insertElement = (\n source: ElementMetadata[],\n target: ElementMetadata,\n path: string,\n index: number,\n): ElementMetadata[] => {\n if (!path) {\n return insertElementAt(source, target, '', index);\n }\n\n return source.map(element => {\n if (element.path === path) {\n return { ...element, children: insertElementAt(element.children, target, element.path, index) };\n } else if (element.path?.startsWith(path)) {\n return {\n ...element,\n children: insertElement(element.children, target, path, index),\n };\n } else {\n return element;\n }\n });\n};\n\nexport const removeElement = (source: ElementMetadata[], path: string): ElementMetadata[] => {\n return source.reduce((trunk: ElementMetadata[], element) => {\n if (path === element.path) {\n return trunk;\n }\n\n if (element.path) {\n if (path.startsWith(element.path)) {\n trunk.push({\n ...element,\n children: removeElement(element.children, path),\n });\n } else {\n trunk.push(element);\n }\n }\n\n return trunk;\n }, []);\n};\n\nexport const findElementByPath = (source: ElementMetadata[], path: string): ElementMetadata | undefined => {\n for (const el of source) {\n if (el.path === path) {\n return el;\n }\n\n if (el.path && path.startsWith(el.path)) {\n const found = findElementByPath(el.children, path);\n if (found) {\n return found;\n }\n }\n }\n\n return;\n};\n\nexport const findElementByModule = (\n elements: ElementMetadata[],\n module: string,\n elementName: string,\n): ElementMetadata | undefined => {\n for (const el of elements) {\n if (el.module === module && el.name === elementName) {\n return el;\n }\n\n const child = findElementByModule(el.children, module, elementName);\n if (child) {\n return child;\n }\n }\n\n return;\n};\n\nexport const findElement = (\n source: ElementMetadata[],\n comparatorFn: (el: ElementMetadata) => boolean,\n): ElementMetadata | undefined => {\n for (const el of source) {\n if (comparatorFn(el)) {\n return el;\n }\n\n const found = findElement(el.children, comparatorFn);\n if (found) {\n return found;\n }\n }\n\n return;\n};\n","import { compact } from 'lodash';\nimport { ElementMetadata, ElementPath, PathBlock } from '../types';\nimport { findElementByModule } from './ui-definition.utils';\n\nexport const parseBoundPath = (path: string): PathBlock[] => {\n const regexp = new RegExp(`(?:\\\\/)(?:\\\\w+)(?:\\\\/)(?:ports|attributes)(?:\\\\/)(?:\\\\w+)|(?:\\\\/)(?:\\\\w+)`, 'g');\n const blocks: PathBlock[] =\n path.match(regexp)?.map(match => {\n const [type, property, name] = compact(match.split('/'));\n return { type: type ?? '', property, name };\n }) ?? [];\n\n return blocks;\n};\n\nexport const parsePath = (path: string): ElementPath => {\n const segments = path.split('/');\n let module: string | undefined;\n let variable: string | undefined;\n\n if (segments[0]?.startsWith('@')) {\n module = segments.shift()?.substring(1);\n }\n\n if (segments[segments.length - 1]?.[0] === ':') {\n variable = segments.pop()?.substring(1);\n }\n\n const isAbsolute = !segments[0];\n const nonEmptySegments = segments.filter(Boolean);\n\n if (!isAbsolute && nonEmptySegments[0] === '.') {\n nonEmptySegments.shift();\n }\n\n return {\n isAbsolute,\n segments: nonEmptySegments,\n module,\n variable,\n };\n};\n\nexport const getAbsolutePath = (\n elements: ElementMetadata[],\n subject: ElementMetadata,\n path: ElementPath,\n): string | undefined => {\n if (path.module) {\n return findElementByModule(elements, path.module, path.segments[0] ?? '')?.path;\n }\n\n const subjectSegments = subject.path?.split('/') ?? [];\n const segments = [...path.segments];\n\n if (path.isAbsolute) {\n return segments.join('/');\n }\n\n while (segments.length) {\n const segment = segments.shift();\n\n if (segment === '..') {\n subjectSegments.pop();\n } else if (segment) {\n subjectSegments.push(segment);\n }\n }\n\n return subjectSegments.join('/');\n};\n","import { InjectionToken } from '@angular/core';\nimport type { CompilationService } from './services/compilation.service';\n\nexport const CMS_COMPILATION_SERVICE = new InjectionToken<CompilationService>('VENDOR_MAP');\n","import { ComponentRef, Injectable, Injector, NgModule, NgModuleRef, Type } from '@angular/core';\nimport { UIDefinition } from '@veloceapps/core';\nimport { IntegrationState } from '@veloceapps/sdk/core';\nimport { cloneDeep, Dictionary } from 'lodash';\nimport { applyPatch, Patch } from 'rfc6902';\nimport { AddOperation, RemoveOperation } from 'rfc6902/diff';\nimport { BehaviorSubject, distinctUntilChanged, map, Observable, of, startWith, Subject, switchMap, tap } from 'rxjs';\nimport { CmsAction } from '../../../cms.actions';\nimport { CMSPreviewConfig } from '../../../components/preview/preview.types';\nimport { Entity } from '../../../engine/models/entity';\nimport { ElementMetadata } from '../../../types';\nimport { findElementByPath } from '../../../utils/ui-definition.utils';\nimport { CMS_COMPILATION_SERVICE } from '../tokens';\nimport type { CompilationService } from './compilation.service';\n\n@Injectable()\nexport class RuntimeService {\n public moduleRefs: NgModuleRef<NgModule>[] = [];\n public componentRefs: Dictionary<ComponentRef<Entity> | undefined> = {};\n public componentTypes: Record<string, Type<Entity>> = {};\n public applicationTree: ElementMetadata[] = [];\n public config?: CMSPreviewConfig;\n public isInitialized$ = new BehaviorSubject(false);\n public updated$ = new Subject<void>();\n public selectedPageName$ = new BehaviorSubject<string | null>(null);\n public selectedOverlayNames$ = new BehaviorSubject<string[]>([]);\n\n private compilationService: CompilationService;\n\n constructor(private injector: Injector, private integrationState: IntegrationState) {\n this.compilationService = this.injector.get(CMS_COMPILATION_SERVICE);\n\n this.integrationState\n .listen$<{ pageName: string }>(CmsAction.GO_TO_PAGE)\n .pipe(\n map(({ pageName }) => pageName),\n distinctUntilChanged(),\n )\n .subscribe(pageName => this.selectedPageName$.next(pageName));\n\n this.integrationState\n .listen$<{ name: string }>(CmsAction.SHOW_OVERLAY)\n .pipe(map(({ name }) => name))\n .subscribe(overlayName => {\n const overlayNames = this.selectedOverlayNames$.value;\n if (!overlayNames.includes(overlayName)) {\n this.selectedOverlayNames$.next([...overlayNames, overlayName]);\n }\n });\n\n this.integrationState\n .listen$<{ name: string }>(CmsAction.HIDE_OVERLAY)\n .pipe(map(({ name }) => name))\n .subscribe(overlayName => {\n const overlayNames = this.selectedOverlayNames$.value;\n this.selectedOverlayNames$.next(overlayNames.filter(name => name !== overlayName));\n });\n\n this.integrationState.listen$(CmsAction.HIDE_ALL_OVERLAYS).subscribe(() => this.selectedOverlayNames$.next([]));\n }\n\n public initialize$(uiDefinition?: UIDefinition, config?: CMSPreviewConfig): Observable<ElementMetadata[]> {\n this.config = config;\n\n if (!uiDefinition) {\n return of([]);\n }\n\n return this.compilationService.compileUIDefinition$(uiDefinition, config).pipe(\n map(result => {\n this.applicationTree = result.elements;\n this.componentTypes = {\n ...this.componentTypes,\n ...result.componentTypes,\n };\n this.moduleRefs.push(result.moduleRef);\n return result.elements;\n }),\n tap(() => this.isInitialized$.next(true)),\n );\n }\n\n public applyPatch$(patch: Patch): Observable<void> {\n let observable$: Observable<void> = of(undefined);\n\n patch.forEach(operation => {\n switch (operation.op) {\n case 'add': {\n observable$ = observable$.pipe(switchMap(() => this.addElement$(operation)));\n break;\n }\n case 'remove': {\n observable$ = observable$.pipe(map(() => this.deleteElement(operation)));\n break;\n }\n case 'replace': {\n observable$ = observable$.pipe(\n switchMap(() => {\n this.deleteElement({ op: 'remove', path: operation.path });\n return this.addElement$({ op: 'add', path: operation.path, value: operation.value });\n }),\n );\n break;\n }\n default:\n observable$ = of();\n }\n });\n\n return observable$.pipe(tap(() => this.updated$.next()));\n }\n\n public getCompiledElement$(path: string): Observable<ElementMetadata | undefined> {\n return this.updated$.pipe(\n startWith(undefined),\n map(() => findElementByPath(this.applicationTree, path)),\n distinctUntilChanged(),\n );\n }\n\n public clear(): void {\n this.compilationService.clear();\n this.moduleRefs.forEach(m => m.destroy());\n this.moduleRefs = [];\n this.componentRefs = {};\n this.applicationTree = [];\n this.componentTypes = {};\n this.isInitialized$.next(false);\n }\n\n private addElement$(operation: AddOperation): Observable<void> {\n return this.compilationService.compileElement$(operation.value).pipe(\n map(result => {\n this.componentTypes = {\n ...this.componentTypes,\n ...result.componentTypes,\n };\n this.moduleRefs.push(result.moduleRef);\n applyPatch(this.applicationTree, [{ ...operation, value: cloneDeep(result.elements[0]) }]);\n }),\n );\n }\n\n private deleteElement(operation: RemoveOperation): void {\n applyPatch(this.applicationTree, [operation]);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Dictionary } from 'lodash';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { RuntimeService } from '../modules/runtime/services/runtime.service';\nimport { ElementMetadata } from '../types/common.types';\nimport { getAbsolutePath, parsePath } from '../utils/path.utils';\n\n@Injectable()\nexport class IOProviderService {\n private inputs: Dictionary<Dictionary<BehaviorSubject<any>>> = {};\n\n constructor(private runtimeService: RuntimeService) {}\n\n public connect(el: ElementMetadata, name: string, target?: string | null): Observable<any> | undefined {\n return this.resolveTarget(el, name, target)?.asObservable();\n }\n\n public provide(el: ElementMetadata, name: string, target?: string | null): BehaviorSubject<any> | undefined {\n return this.resolveTarget(el, name, target);\n }\n\n private resolveTarget(el: ElementMetadata, name: string, target?: string | null): BehaviorSubject<any> | undefined {\n const isHost = !target;\n\n if (isHost) {\n return this.createSubjectSafe(el.path ?? '', name);\n }\n\n const pathIsValue = target.startsWith('\"') && target.endsWith('\"');\n if (pathIsValue) {\n return this.createSubjectSafe(el.path, name, new BehaviorSubject(target.slice(1, -1)));\n }\n\n const elPath = parsePath(target);\n const finalName = elPath.variable ?? name;\n const absolutePath = getAbsolutePath(this.runtimeService.applicationTree, el, elPath);\n\n return this.createSubjectSafe(absolutePath ?? '', finalName, undefined);\n }\n\n private createSubjectSafe(path: string, name: string, subject?: BehaviorSubject<any>): BehaviorSubject<any> {\n const pathInputs = this.inputs[path] ?? {};\n if (!this.inputs[path]) {\n this.inputs[path] = pathInputs;\n }\n\n const actual = pathInputs[name] ?? subject ?? new BehaviorSubject<any>(undefined);\n\n if (subject && pathInputs[name]) {\n // push delayed value to workaround 'changed after it was checked' issue\n setTimeout(() => actual.next(subject.value));\n }\n\n if (!pathInputs[name]) {\n pathInputs[name] = actual;\n }\n\n return actual;\n }\n}\n","import { Injectable, TemplateRef } from '@angular/core';\nimport { Dictionary } from 'lodash';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\ntype Template = TemplateRef<any> | undefined;\n\n@Injectable()\nexport class TemplatesService {\n private templates: Dictionary<BehaviorSubject<Template>> = {};\n\n public register(name: string, templateRef: TemplateRef<any>): void {\n this.ensureStorage(name).next(templateRef);\n }\n\n public get(name: string): Template {\n return this.ensureStorage(name).value;\n }\n\n public get$(name: string): Observable<Template> {\n return this.ensureStorage(name).asObservable();\n }\n\n private ensureStorage(name: string): BehaviorSubject<Template> {\n const storage = this.templates[name];\n if (storage) {\n return storage;\n }\n\n const newStorage = new BehaviorSubject<Template>(undefined);\n this.templates[name] = newStorage;\n return newStorage;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ElementMetadata } from '../types/common.types';\n\n@Injectable()\nexport class ElementContextService {\n public metadata?: ElementMetadata;\n public parentModelId?: string;\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentRef,\n ElementRef,\n Injector,\n Input,\n OnDestroy,\n OnInit,\n SkipSelf,\n Type,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { LineItem, UUID } from '@veloceapps/core';\nimport { ConfigurationService } from '@veloceapps/sdk/core';\nimport { Dictionary, isArray, pull } from 'lodash';\nimport { map, Observable, Subject, takeUntil } from 'rxjs';\nimport { Entity } from '../../engine/models/entity';\nimport { RuntimeService } from '../../modules/runtime/services/runtime.service';\nimport { ElementContextService } from '../../services/element-context.service';\nimport { IOProviderService } from '../../services/io-provider.service';\nimport { ElementMetadata } from '../../types/common.types';\nimport { parseBoundPath } from '../../utils/path.utils';\nimport { ElementComponent } from '../element.component';\n\n@Component({\n selector: 'vl-cms-element-renderer',\n templateUrl: './element-renderer.component.html',\n styleUrls: ['./element-renderer.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [ElementContextService],\n})\nexport class ElementRendererComponent implements OnInit, OnDestroy {\n @ViewChild('el', { read: ViewContainerRef, static: true }) public el?: ViewContainerRef;\n\n @Input() public meta!: ElementMetadata;\n\n private type?: Type<Entity>;\n private refs: Dictionary<ComponentRef<Entity> | undefined> = {};\n private destroy$ = new Subject<void>();\n\n constructor(\n @SkipSelf() private parentInjector: Injector,\n private runtimeService: RuntimeService,\n private elementContext: ElementContextService,\n private ioProviderService: IOProviderService,\n private configurationService: ConfigurationService,\n private elementRef: ElementRef,\n private cdr: ChangeDetectorRef,\n ) {}\n\n public ngOnInit(): void {\n if (this.meta.isShared) {\n return;\n }\n\n this.elementContext.metadata = this.meta;\n this.type = this.meta.path ? this.runtimeService.componentTypes[this.meta.path] : undefined;\n\n this.createComponents();\n }\n\n public ngOnDestroy(): void {\n this.destroyComponents();\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n private createComponents(): void {\n const modelMeta = this.meta.model;\n\n if (!modelMeta) {\n this.refs[UUID.UUID()] = this.createComponent();\n return;\n }\n\n if (modelMeta.lineItem) {\n this.createFromLineItem(modelMeta.lineItem);\n } else if (modelMeta.path) {\n this.createFromPath(modelMeta.path);\n }\n }\n\n private createFromPath(path: string): void {\n const array$ = this.ioProviderService.connect(this.meta, 'children$', path);\n\n array$?.pipe(takeUntil(this.destroy$)).subscribe(children => {\n if (!isArray(children)) {\n return;\n }\n\n this.processChildren(children);\n });\n }\n\n private getModelComponent(): ElementRendererComponent | null {\n let component: ElementRendererComponent | null = null;\n let injector = this.parentInjector;\n\n while (!component) {\n const parentComp = injector.get(ElementRendererComponent, null);\n\n if (parentComp?.meta.model) {\n component = parentComp;\n break;\n }\n\n if (parentComp) {\n injector = parentComp.parentInjector;\n } else {\n break;\n }\n }\n\n return component;\n }\n\n private createFromLineItem(path: string): void {\n const parentComp = this.getModelComponent();\n const parentPath = parentComp?.meta.model?.lineItem;\n\n const pathBlocks = parseBoundPath(path).reverse();\n const { property, name } = pathBlocks[1] ?? {};\n const finalPath = pathBlocks[0];\n\n const children$ = this.getParentLineItem$(parentComp).pipe(\n map(model => {\n if (!model) {\n return [];\n }\n\n if (property === 'ports' && !finalPath?.property && parentPath !== path) {\n return model.lineItems.filter(({ port }) => port === name) ?? [];\n }\n\n return [model];\n }),\n );\n\n children$.pipe(takeUntil(this.destroy$)).subscribe(children => {\n this.processChildren(children);\n });\n }\n\n private processChildren(children: any[]): void {\n this.runtimeService.moduleRefs[0]?.injector.runInContext(() => {\n const refs = children.reduce((acc: Dictionary<ComponentRef<Entity>>, data, index) => {\n const key = String(data?.id ?? UUID.UUID());\n const existingRef = this.refs[key];\n\n const ref = existingRef ?? this.createComponent(data, index);\n if (existingRef) {\n this.updateComponent(existingRef, data, index);\n }\n\n return ref ? { ...acc, [key]: ref } : acc;\n }, {});\n\n const existingKeys = Object.keys(this.refs);\n const newKeys = Object.keys(refs);\n\n pull(existingKeys, ...newKeys).forEach(key => {\n this.destroyComponent(key);\n });\n\n this.refs = refs;\n this.cdr.detectChanges();\n });\n }\n\n private getParentLineItem$(parentComp: ElementRendererComponent | null): Observable<LineItem | undefined> {\n const parentRefs = Object.values(parentComp?.refs ?? {});\n const parentRef = parentRefs.find(ref =>\n (ref?.location.nativeElement as HTMLElement)?.contains(this.elementRef.nativeElement),\n );\n\n let parentModel$;\n if (parentRef?.instance instanceof ElementComponent) {\n parentModel$ = parentRef?.instance.model$;\n }\n\n return parentModel$ ?? this.configurationService.get();\n }\n\n private createComponent(data?: unknown, index?: number): ComponentRef<Entity> | undefined {\n if (!this.type) {\n return;\n }\n\n const componentRef = this.el?.createComponent(this.type, { index });\n this.runtimeService.componentRefs[this.meta.path] = componentRef;\n\n if (componentRef) {\n componentRef.location.nativeElement.setAttribute('name', this.meta.name);\n componentRef.location.nativeElement.setAttribute('path', this.meta.path);\n\n if (componentRef.instance instanceof ElementComponent) {\n componentRef.instance.model$.next(data);\n }\n }\n\n return componentRef;\n }\n\n private updateComponent(ref: ComponentRef<Entity>, data: unknown, index: number): void {\n if (ref.instance instanceof ElementComponent) {\n ref.instance.model$.next(data);\n }\n\n if (this.el && this.el.indexOf(ref.hostView) !== index) {\n this.el.move(ref.hostView, index);\n }\n }\n\n private destroyComponent(key: string): void {\n this.refs[key]?.destroy();\n delete this.refs[key];\n }\n\n private destroyComponents(): void {\n Object.values(this.refs).forEach(ref => ref?.destroy());\n this.refs = {};\n }\n}\n","<ng-template #el></ng-template>\n","import { ChangeDetectionStrategy, Component, Input, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core';\nimport { ToastService, ToastType } from '@veloceapps/components';\nimport { UIDefinition } from '@veloceapps/core';\nimport { ConfigurationStateService, IntegrationState } from '@veloceapps/sdk/core';\nimport {\n BehaviorSubject,\n Observable,\n Subject,\n catchError,\n combineLatest,\n map,\n of,\n startWith,\n switchMap,\n takeUntil,\n tap,\n} from 'rxjs';\nimport { RuntimeService } from '../../modules/runtime/services/runtime.service';\nimport { IOProviderService } from '../../services/io-provider.service';\nimport { TemplatesService } from '../../services/templates.service';\nimport { ElementMetadata } from '../../types/common.types';\nimport { CMSPreviewConfig } from './preview.types';\n\ninterface State {\n loading: boolean;\n failure: boolean;\n}\n\n@Component({\n selector: 'vl-cms-preview',\n templateUrl: './preview.component.html',\n styleUrls: ['./preview.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [IOProviderService, TemplatesService],\n // use shadow DOM to prevent UI from being affected by global styles\n encapsulation: ViewEncapsulation.ShadowDom,\n})\nexport class PreviewComponent implements OnInit, OnDestroy {\n @Input() public uiDefinition?: UIDefinition;\n @Input() public config?: CMSPreviewConfig;\n\n public state$ = new BehaviorSubject<State>({ loading: true, failure: false });\n public elements$: Observable<ElementMetadata[]>;\n\n private destroy$ = new Subject<void>();\n\n constructor(\n private runtimeService: RuntimeService,\n private configurationState: ConfigurationStateService,\n private toastService: ToastService,\n private integrationState: IntegrationState,\n ) {\n this.elements$ = combineLatest([this.state$, this.runtimeService.updated$.pipe(startWith(undefined))]).pipe(\n switchMap(([{ loading, failure }]) => {\n if (loading || failure) {\n return of([]);\n }\n\n const elements = this.runtimeService.applicationTree;\n\n // If UI definition contains pages, return page by SelectedPageName\n if (this.uiDefinition?.pages) {\n return this.getPages$(elements);\n }\n\n return of(elements);\n }),\n );\n }\n\n public ngOnInit(): void {\n if (this.config?.clearStateOnInit) {\n this.integrationState.clear();\n }\n\n this.startPreview();\n }\n\n public ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n\n if (!this.config?.persistConfigurationState) {\n this.configurationState.cleanup();\n }\n this.runtimeService.clear();\n }\n\n public trackBy(_: number, el: ElementMetadata): ElementMetadata {\n return el;\n }\n\n private startPreview(): void {\n const customInit$ = this.config?.init$?.() ?? of(undefined);\n\n customInit$\n .pipe(\n switchMap(() => this.runtimeService.initialize$(this.uiDefinition, this.config)),\n tap(() => {\n this.state$.next({ loading: false, failure: false });\n }),\n catchError(error => {\n console.error(error);\n\n // we should show toast if initialization failed\n this.toastService.add({ severity: ToastType.error, summary: error, sticky: true });\n\n this.state$.next({ loading: false, failure: true });\n\n return of();\n }),\n takeUntil(this.destroy$),\n )\n .subscribe();\n }\n\n private getPages$(elements: ElementMetadata[]): Observable<ElementMetadata[]> {\n return combineLatest([this.runtimeService.selectedPageName$, this.runtimeService.selectedOverlayNames$]).pipe(\n map(([pageName, overlayNames]) => {\n const page = elements.find(el => el.name === pageName);\n\n const overlayName = overlayNames.at(-1);\n const overlay = elements.find(el => el.name === overlayName);\n\n return [...(page ? [page] : elements.slice(0, 1)), ...(overlay ? [overlay] : [])];\n }),\n );\n }\n}\n","<ng-container *ngIf=\"state$ | async as state\">\n <vl-loader *ngIf=\"state.loading; else content\" [label]=\"'Loading UI'\"></vl-loader>\n\n <ng-template #content>\n <ng-container *ngIf=\"!state.failure\">\n <vl-cms-element-renderer\n *ngFor=\"let el of elements$ | async; trackBy: trackBy\"\n [meta]=\"el\"\n ></vl-cms-element-renderer>\n </ng-container>\n </ng-template>\n</ng-container>\n","import { Injectable } from '@angular/core';\nimport { Patch } from 'rfc6902';\nimport { BehaviorSubject, Observable, ReplaySubject } from 'rxjs';\nimport { RuntimeElementDeleteEvent, RuntimeElementDropEvent, RuntimeShowSettingsEvent } from '../types/runtime.actions';\nimport { RuntimeService } from './runtime.service';\n\n@Injectable()\nexport class RuntimeEditorService {\n private editorModeSubj$ = new BehaviorSubject(false);\n\n public onElementDropped$ = new ReplaySubject<RuntimeElementDropEvent>();\n public onElementDeleted$ = new ReplaySubject<RuntimeElementDeleteEvent>();\n public onElementSettingsToggled$ = new ReplaySubject<RuntimeShowSettingsEvent>();\n\n public editorMode$: Observable<boolean>;\n public dragMode$ = new BehaviorSubject(false);\n public selectedElementPath$ = new BehaviorSubject<string | null>(null);\n\n constructor(private runtimeService: RuntimeService) {\n this.editorMode$ = this.editorModeSubj$.asObservable();\n this.runtimeService.isInitialized$.subscribe(() =>\n this.editorModeSubj$.next(Boolean(this.runtimeService.config?.uiBuilderMode)),\n );\n }\n\n public applyPatch$(patch: Patch): Observable<void> {\n return this.runtimeService.applyPatch$(patch);\n }\n\n public toggleEditorMode(): void {\n this.editorModeSubj$.next(!this.editorModeSubj$.value);\n }\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { DndDropEvent } from 'ngx-drag-drop';\nimport { RuntimeEditorService } from '../../modules/runtime/services/runtime-editor.service';\nimport { ElementMetadata } from '../../types/common.types';\n\n@Component({\n selector: 'vl-element-drop-handle',\n templateUrl: './element-drop-handle.component.html',\n styleUrls: ['./element-drop-handle.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ElementDropHandleComponent {\n @Input() public index!: number;\n @Input() public parentPath!: string;\n\n constructor(private runtimeService: RuntimeEditorService) {}\n\n public handleDrop(e: DndDropEvent): void {\n this.runtimeService.onElementDropped$.next({\n element: e.data as ElementMetadata,\n index: this.index,\n path: this.parentPath,\n });\n }\n}\n","<div class=\"container\" dndDropzone (dndDrop)=\"handleDrop($event)\">\n <div class=\"handle\"></div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DndModule } from 'ngx-drag-drop';\nimport { ElementDropHandleComponent } from './element-drop-handle.component';\n\n@NgModule({\n declarations: [ElementDropHandleComponent],\n imports: [CommonModule, DndModule],\n exports: [ElementDropHandleComponent],\n})\nexport class ElementDropHandleModule {}\n","import { NgModule } from '@angular/core';\nimport { ElementRendererComponent } from './element-renderer.component';\n\n@NgModule({\n declarations: [ElementRendererComponent],\n exports: [ElementRendererComponent],\n})\nexport class ElementRendererModule {}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnDestroy } from '@angular/core';\nimport { Observable, Subject, combineLatest, map, of, takeUntil } from 'rxjs';\nimport { RuntimeEditorService } from '../../modules/runtime/services/runtime-editor.service';\nimport { RuntimeService } from '../../modules/runtime/services/runtime.service';\nimport { ElementContextService } from '../../services/element-context.service';\nimport { ElementMetadata } from '../../types/common.types';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'element-children',\n templateUrl: 'element-children.component.html',\n styleUrls: ['./element-children.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ElementChildrenComponent implements OnDestroy {\n @Input() public filter?: (elements: ElementMetadata[]) => ElementMetadata[];\n\n public metadata$: Observable<ElementMetadata | undefined>;\n public dragMode$: Observable<boolean>;\n\n private destroyed$ = new Subject<void>();\n\n constructor(\n private elementContext: ElementContextService,\n private runtimeService: RuntimeService,\n private runtimeEditorService: RuntimeEditorService,\n private cdr: ChangeDetectorRef,\n ) {\n const path = this.elementContext?.metadata?.path;\n this.metadata$ = path ? this.runtimeService.getCompiledElement$(path) : of(undefined);\n\n this.dragMode$ = combineLatest([this.runtimeEditorService.editorMode$, this.runtimeEditorService.dragMode$]).pipe(\n map(flags => flags.every(Boolean)),\n );\n this.runtimeService.updated$.pipe(takeUntil(this.destroyed$)).subscribe(() => this.cdr.detectChanges());\n }\n\n public ngOnDestroy(): void {\n this.destroyed$.next();\n this.destroyed$.complete();\n }\n\n public getFilteredChildren(elements: ElementMetadata[]): ElementMetadata[] {\n return this.filter ? this.filter(elements) : elements;\n }\n}\n","<ng-container *ngIf=\"metadata$ | async as metadata\">\n <vl-element-drop-handle *ngIf=\"dragMode$ | async\" [index]=\"0\" [parentPath]=\"metadata.path\"></vl-element-drop-handle>\n <ng-container *ngFor=\"let child of getFilteredChildren(metadata.children); let i = index\">\n <vl-cms-element-renderer [meta]=\"child\"></vl-cms-element-renderer>\n <vl-element-drop-handle\n *ngIf=\"dragMode$ | async\"\n [index]=\"i + 1\"\n [parentPath]=\"metadata.path\"\n ></vl-element-drop-handle>\n </ng-container>\n</ng-container>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { LetDirectiveModule } from '@veloceapps/components';\nimport { ElementDropHandleModule } from '../element-drop-handle/element-drop-handle.module';\nimport { ElementRendererModule } from '../element-renderer/element-renderer.module';\nimport { ElementChildrenComponent } from './element-children.component';\n\n@NgModule({\n declarations: [ElementChildrenComponent],\n imports: [CommonModule, LetDirectiveModule, ElementRendererModule, ElementDropHandleModule],\n exports: [ElementChildrenComponent],\n})\nexport class ElementChildrenModule {}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ElementRef, inject } from '@angular/core';\nimport { merge } from 'lodash';\nimport { ELEMENT_CONFIG, ELEMENT_METADATA } from '../../injection-tokens';\nimport { RuntimeEditorService } from '../../modules/runtime/services/runtime-editor.service';\n\n@Component({\n templateUrl: './element-tools-panel.component.html',\n styleUrls: ['../../../../components/styles/veloce-icons.scss', './element-tools-panel.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [CommonModule],\n})\nexport class ElementToolsPanelComponent {\n private readonly metadata = inject(ELEMENT_METADATA);\n private readonly config = inject(ELEMENT_CONFIG);\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n public runtimeEditorService?: RuntimeEditorService;\n\n public showDeleteButton = !this.config.builder?.suppressRemovable;\n\n constructor() {\n const hostRect = this.elementRef.nativeElement.parentElement?.getBoundingClientRect();\n\n if (hostRect) {\n merge(this.elementRef.nativeElement.style, <CSSStyleDeclaration>{\n width: `${hostRect.width}px`,\n height: `${hostRect.height}px`,\n transform: `translate(${hostRect.left}px, ${hostRect.top}px)`,\n });\n }\n }\n\n public deleteHandler(): void {\n this.runtimeEditorService?.onElementDeleted$.next({ path: this.metadata.path });\n }\n\n public showSettingsHandler(): void {\n this.runtimeEditorService?.onElementSettingsToggled$.next({ path: this.metadata.path });\n }\n}\n","<div class=\"actions-panel\">\n <i class=\"vl-icon vl-icon-sm vl-icon-gear action-button\" (click)=\"showSettingsHandler()\"></i>\n <i *ngIf=\"showDeleteButton\" class=\"vl-icon vl-icon-sm vl-icon-trash action-button\" (click)=\"deleteHandler()\"></i>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { LoaderModule } from '@veloceapps/components';\nimport { IntegrationState } from '@veloceapps/sdk/core';\nimport { ElementChildrenModule } from '../element-children/element-children.module';\nimport { ElementDropHandleModule } from '../element-drop-handle/element-drop-handle.module';\nimport { ElementRendererModule } from '../element-renderer/element-renderer.module';\nimport { ElementToolsPanelComponent } from '../element-tools-panel/element-tools-panel.component';\nimport { PreviewComponent } from './preview.component';\n\n@NgModule({\n declarations: [PreviewComponent],\n imports: [\n CommonModule,\n LoaderModule,\n ElementRendererModule,\n ElementChildrenModule,\n ElementDropHandleModule,\n ElementToolsPanelComponent,\n ],\n providers: [IntegrationState],\n exports: [PreviewComponent],\n})\nexport class PreviewModule {}\n","import { ElementDefaultMetadata } from '../types';\n\nexport function ElementDefinition(definition: ElementDefaultMetadata) {\n return function (constructor: any): any {\n return constructor;\n };\n}\n","import { ElementMetadata, ElementStyleDeclaration, FullPageLayout, PageType } from '../types';\n\nexport const DEFAULT_ELEMENT: Partial<ElementMetadata> = {\n template: '<element-children></element-children>',\n styles: '',\n script: `import { ElementDefinition } from '@veloceapps/sdk/cms';\n\n export class Script {}`,\n};\n\nexport const STARTING_PAGE_NAME = 'Starting Page';\nexport const STARTING_PAGE_TYPE: PageType = 'FULL_PAGE';\nexport const STARTING_PAGE_LAYOUT: FullPageLayout = 'LAYOUT_6';\nexport const STARTING_PAGE_STYLES: ElementStyleDeclaration = {\n padding: '16px 16px 16px 16px',\n backgroundColor: '#FFFFFF',\n border: 'solid',\n borderColor: '#DCE5EF',\n borderWidth: '1px 1px 1px 1px',\n};\n","import { AfterViewInit, Directive, Input, NgModule, TemplateRef } from '@angular/core';\nimport { TemplatesService } from '../services/templates.service';\n\n// eslint-disable-next-line @angular-eslint/directive-selector\n@Directive({ selector: '[customTemplate]' })\nexport class CustomTemplateDirective implements AfterViewInit {\n constructor(private templateRef: TemplateRef<unknown>, private templatesService: TemplatesService) {}\n\n @Input() public customTemplate: string | undefined;\n\n public ngAfterViewInit(): void {\n if (!this.customTemplate) {\n return;\n }\n\n this.templatesService.register(this.customTemplate, this.templateRef);\n }\n}\n\n@NgModule({\n declarations: [CustomTemplateDirective],\n exports: [CustomTemplateDirective],\n})\nexport class CustomTemplateDirectiveModule {}\n","import { DOCUMENT } from '@angular/common';\nimport { ApplicationRef, ElementRef, Injectable, OnDestroy, createComponent, inject } from '@angular/core';\nimport { BehaviorSubject, Subject, combineLatest, takeUntil } from 'rxjs';\nimport { ElementToolsPanelComponent } from '../components/element-tools-panel/element-tools-panel.component';\nimport { ElementComponent } from '../components/element.component';\nimport { PluginComponent } from '../components/plugin.component';\nimport { ELEMENT_METADATA } from '../injection-tokens';\nimport { RuntimeEditorService } from '../modules/runtime/services/runtime-editor.service';\n\n@Injectable()\nexport class ElementHoverPlugin implements PluginComponent, OnDestroy {\n private readonly hoverClassName = 'element-hover';\n\n private readonly metadata = inject(ELEMENT_METADATA);\n private readonly appRef = inject(ApplicationRef);\n private readonly el = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly document = inject(DOCUMENT);\n private readonly runtimeEditorService = inject(RuntimeEditorService);\n\n private overlayEl?: HTMLElement;\n private isHovered$ = new BehaviorSubject(false);\n private isSelected$ = new BehaviorSubject(false);\n private destroyed$ = new Subject<void>();\n private listenersAttached = false;\n\n private mouseOverListenerBound: (e: MouseEvent) => void;\n private mouseLeaveListenerBound: (e: MouseEvent) => void;\n private clickListenerBound: (e: MouseEvent) => void;\n\n constructor(public host: ElementComponent) {\n this.mouseOverListenerBound = this.mouseOverListener.bind(this);\n this.mouseLeaveListenerBound = this.mouseLeaveListener.bind(this);\n this.clickListenerBound = this.clickListener.bind(this);\n\n combineLatest([this.runtimeEditorService.editorMode$, this.isHovered$, this.isSelected$])\n .pipe(takeUntil(this.destroyed$))\n .subscribe(([editorMode]) => {\n if (!editorMode) {\n this.detachListeners();\n this.removeHighlight();\n return;\n }\n\n this.attachListeners();\n this.updateHighlight();\n });\n\n this.runtimeEditorService.selectedElementPath$.pipe(takeUntil(this.destroyed$)).subscribe(path => {\n const isSelected = this.metadata.path === path;\n if (this.isSelected$.value !== isSelected) {\n this.isSelected$.next(isSelected);\n }\n });\n }\n\n public ngOnDestroy(): void {\n this.destroyed$.next();\n this.destroyed$.complete();\n this.detachListeners();\n }\n\n private attachListeners(): void {\n if (this.listenersAttached) {\n return;\n }\n\n this.el.nativeElement.addEventListener('mouseover', this.mouseOverListenerBound);\n this.el.nativeElement.addEventListener('mouseleave', this.mouseLeaveListenerBound);\n this.el.nativeElement.addEventListener('click', this.clickListenerBound);\n this.listenersAttached = true;\n }\n\n private detachListeners(): void {\n if (!this.listenersAttached) {\n return;\n }\n\n this.el.nativeElement.removeEventListener('mouseover', this.mouseOverListenerBound);\n this.el.nativeElement.removeEventListener('mouseleave', this.mouseLeaveListenerBound);\n this.el.nativeElement.removeEventListener('click', this.clickListenerBound);\n this.listenersAttached = false;\n }\n\n private mouseOverListener(e: MouseEvent): void {\n const path = e.composedPath();\n const innerPath = path.slice(0, path.indexOf(this.el.nativeElement));\n const hasChildHovered = innerPath.some(target => {\n const t = target as HTMLElement;\n return t.tagName === 'VL-ELEMENT' && t.classList.contains(this.hoverClassName);\n });\n\n const isHovered = !hasChildHovered;\n\n if (this.isHovered$.value !== isHovered) {\n this.isHovered$.next(isHovered);\n }\n }\n\n private clickListener(e: MouseEvent): void {\n if (this.el.nativeElement === e.target) {\n this.runtimeEditorService.selectedElementPath$.next(this.metadata.path);\n }\n }\n\n private mouseLeaveListener(): void {\n this.isHovered$.next(false);\n }\n\n private addHighlight(): void {\n this.el.nativeElement.classList.add(this.hoverClassName);\n\n this.overlayEl = this.document.createElement('div');\n this.el.nativeElement.appendChild(this.overlayEl);\n\n const ref = createComponent(ElementToolsPanelComponent, {\n environmentInjector: this.appRef.injector,\n hostElement: this.overlayEl,\n elementInjector: this.host.injector,\n });\n\n ref.instance.runtimeEditorService = this.runtimeEditorService;\n ref.changeDetectorRef.detectChanges();\n }\n\n private removeHighlight(): void {\n this.el.nativeElement.classList.remove(this.hoverClassName);\n\n if (this.overlayEl) {\n this.el.nativeElement.removeChild(this.overlayEl);\n this.overlayEl = undefined;\n }\n }\n\n private updateHighlight(): void {\n const hasOverlay = (this.overlayEl && this.el.nativeElement.contains(this.overlayEl)) ?? false;\n\n if ((this.isHovered$.value || this.isSelected$.value) && !hasOverlay) {\n setTimeout(() => this.addHighlight());\n }\n\n if (!this.isHovered$.value && !this.isSelected$.value && hasOverlay) {\n this.removeHighlight();\n }\n }\n}\n","import { Directive, EventEmitter } from '@angular/core';\nimport { ElementComponent } from '../components/element.component';\nimport { PluginComponent } from '../components/plugin.component';\nimport { ELEMENT_METADATA } from '../injection-tokens';\nimport { IOProviderService } from '../services/io-provider.service';\nimport { ElementMetadata } from '../types/common.types';\nimport { isElementAngularIO, toElementAngularIO } from '../utils/element.utils';\n\n@Directive()\nexport class IOPlugin implements PluginComponent {\n constructor(public host: ElementComponent) {\n const elementMetadata: ElementMetadata = this.host.injector.get(ELEMENT_METADATA);\n const inputProvider: IOProviderService = this.host.injector.get(IOProviderService);\n\n const inputs = Object.entries(elementMetadata.inputs ?? {});\n const outputs = Object.entries(elementMetadata.outputs ?? {});\n\n inputs.forEach(([key, path]) => {\n if (isElementAngularIO(key)) {\n return;\n }\n\n if (path && typeof path !== 'string') {\n console.error(`The value of '${key}' input should be a string`);\n }\n\n if (elementMetadata.outputs?.[key] !== undefined) {\n console.warn(\n `'${key}' appears both in inputs and outputs. To prevent inconsistent behavior please keep them unique `,\n );\n }\n\n (this.host as any)[key] = inputProvider.connect(elementMetadata, key, path);\n });\n\n outputs.forEach(([key, path]) => {\n const ngOutput = toElementAngularIO(key);\n if (ngOutput != null) {\n (this.host as any)[ngOutput] = new EventEmitter();\n return;\n }\n\n if (path && typeof path !== 'string') {\n console.error(`The value of '${key}' output should be a string`);\n }\n\n (this.host as any)[key] = inputProvider.provide(elementMetadata, key, path);\n });\n }\n}\n","import { Directive, ElementRef, OnDestroy } from '@angular/core';\nimport { Subject, takeUntil, tap } from 'rxjs';\nimport { ElementComponent } from '../components/element.component';\nimport { PluginComponent } from '../components/plugin.component';\nimport { ELEMENT_METADATA } from '../injection-tokens';\nimport { RuntimeService } from '../modules/runtime/services/runtime.service';\nimport { ElementMetadata } from '../types/common.types';\n\n@Directive()\nexport class PagePlugin implements PluginComponent, OnDestroy {\n private metadata: ElementMetadata;\n private el: ElementRef<HTMLElement>;\n private destroy$ = new Subject<void>();\n\n constructor(public host: ElementComponent) {\n this.metadata = this.host.injector.get(ELEMENT_METADATA);\n this.el = this.host.injector.get(ElementRef);\n\n const runtimeService = this.host.injector.get(RuntimeService);\n\n runtimeService.selectedOverlayNames$\n .pipe(\n tap(overlayNames => {\n if (this.metadata.pageType === 'FULL_PAGE') {\n this.styleFullPage(overlayNames.length > 0);\n }\n }),\n takeUntil(this.destroy$),\n )\n .subscribe();\n }\n\n public ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n private styleFullPage(hasOverlays: boolean): void {\n this.el.nativeElement.style.background = hasOverlays ? '#F5F7FA' : '';\n this.el.nativeElement.style.pointerEvents = hasOverlays ? 'none' : '';\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Directive, ElementRef, OnDestroy } from '@angular/core';\nimport { merge } from 'lodash';\nimport { Subject, takeUntil, tap } from 'rxjs';\nimport { ElementComponent } from '../components/element.component';\nimport { PluginComponent } from '../components/plugin.component';\nimport { ELEMENT_METADATA } from '../injection-tokens';\nimport { RuntimeEditorService } from '../modules/runtime/services/runtime-editor.service';\nimport { ElementMetadata } from '../types';\n\n@Directive()\nexport class RegionPlugin implements PluginComponent, OnDestroy {\n private metadata: ElementMetadata;\n private document: Document;\n private el: ElementRef<HTMLElement>;\n private regionNameEl: HTMLElement | undefined;\n private destroy$ = new Subject<void>();\n\n constructor(public host: ElementComponent) {\n this.metadata = this.host.injector.get(ELEMENT_METADATA);\n this.document = this.host.injector.get(DOCUMENT);\n this.el = this.host.injector.get(ElementRef);\n\n const runtimeEditorService = this.host.injector.get(RuntimeEditorService);\n\n runtimeEditorService.editorMode$\n .pipe(\n tap(editMode => {\n const hasBorder = !!this.metadata.configuredStyles?.border;\n this.el.nativeElement.style.outline = editMode && !hasBorder ? 'dashed 1px #dce5ef' : '';\n\n if (editMode && !this.metadata.children.length) {\n this.addRegionName();\n } else {\n this.regionNameEl?.remove();\n }\n }),\n takeUntil(this.destroy$),\n )\n .subscribe();\n }\n\n public ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n private addRegionName(): void {\n if (this.regionNameEl) {\n this.regionNameEl.remove();\n }\n\n this.regionNameEl = this.document.createElement('div');\n this.regionNameEl.innerHTML = this.metadata.name;\n\n merge(this.regionNameEl.style, <CSSStyleDeclaration>{\n width: '100%',\n height: '100%',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n color: '#AEB5BD',\n pointerEvents: 'none',\n userSelect: 'none',\n });\n\n this.el.nativeElement.append(this.regionNameEl);\n }\n}\n","import { ElementRef, Injectable } from '@angular/core';\nimport { VlWindow } from '@veloceapps/core';\nimport { filter, noop, Observable, of, ReplaySubject, take } from 'rxjs';\nimport { ScriptHost } from '../types';\n\ndeclare const window: VlWindow & {\n define?: {\n amd?: unknown;\n };\n};\n\n@Injectable({ providedIn: 'root' })\nexport class ResourcesService {\n private scripts = new Map<string, boolean>();\n private loaded$ = new ReplaySubject<void>();\n\n /**\n * ngx-monaco-editor adds amd-loader library for loading resources when first time initialized\n * Which breaks further loading of 3rd party libaries.\n *\n * To handle this issue, in case 'amd' is defined, we clear it, and then restore when the script is loaded\n */\n private amd: unknown;\n\n public loadScript(url: string): Observable<void> {\n const loaded = this.scripts.get(url);\n if (loaded === true) {\n return of(noop());\n }\n\n if (loaded == null) {\n this.scripts.set(url, false);\n\n const script = document.createElement('script');\n script.src = url;\n\n // Hacky fix\n this.persistAMDLoader();\n\n script.onload = () => {\n // Hacky fix\n this.restoreAMDLoader();\n\n this.scripts.set(url, true);\n this.loaded$.next();\n };\n document.body.appendChild(script);\n }\n\n return this.loaded$.pipe(\n filter(() => this.scripts.get(url) === true),\n take(1),\n );\n }\n\n public loadStyles(url: string): Observable<void>;\n public loadStyles(host: ScriptHost, url: string): Observable<void>;\n\n public loadStyles(first: string | ScriptHost, second?: string): Observable<void> {\n const url = typeof first === 'string' ? first : typeof second === 'string' ? second : '';\n const host = typeof first !== 'string' ? first : null;\n\n let el = host?.injector.get<ElementRef>(ElementRef)?.nativeElement ?? document.body;\n while (el.parentNode) {\n el = el.parentNode;\n }\n\n return new Observable(subscriber => {\n const link = document.createElement('link');\n link.rel = 'stylesheet';\n link.type = 'text/css';\n link.href = url;\n link.media = 'all';\n link.onload = () => {\n subscriber.next();\n subscriber.complete();\n };\n el.appendChild(link);\n });\n }\n\n private persistAMDLoader(): void {\n // Do nothing if AMD loader is not defined\n if (!window.define?.amd) {\n return;\n }\n\n this.amd = window.define.amd;\n window.define.amd = undefined;\n }\n\n private restoreAMDLoader(): void {\n if (window.define && this.amd) {\n window.define.amd = this.amd;\n this.amd = undefined;\n }\n }\n}\n","import { inject } from '@angular/core';\nimport { ELEMENT_METADATA } from '../injection-tokens';\nimport { RuntimeService } from '../modules/runtime';\nimport { ElementMetadata } from '../types';\nimport { findElement } from './ui-definition.utils';\n\nexport const cmsInject = <T = unknown>(token: string): T => {\n const self = inject(ELEMENT_METADATA);\n const runtimeService = inject(RuntimeService);\n\n const el = findElement(runtimeService.applicationTree, el => el.name === token);\n\n if (!el) {\n throw getError(token, self, 'element not found');\n }\n\n if (el.type !== 'SERVICE') {\n throw getError(token, self, 'only SERVICE elements can be injected');\n }\n\n if (el.model) {\n throw getError(token, self, 'injecting a service with a \"model\" defined is not supported yet');\n }\n\n const componentRef = runtimeService.componentRefs[el.path];\n\n if (!componentRef) {\n throw getError(token, self, 'no instance created yet.');\n }\n\n return componentRef.instance as T;\n};\n\nfunction getError(token: string, self: ElementMetadata, reason: string): Error {\n return new Error(`Injecting \"${token}\" in \"/${self.path}\": ${reason}`);\n}\n","import { DataSource } from '@angular/cdk/collections';\nimport * as angularCore from '@angular/core';\nimport * as angularForms from '@angular/forms';\nimport {\n CatalogApiService,\n ConfigurationSettingsApiService,\n ContractedPriceApiService,\n DeltaApiService,\n DocumentAttachmentApiService,\n GuidedSellingApiService,\n PicklistsApiService,\n PriceApiService,\n QuoteApiService,\n RampApiService,\n SalesforceApiService,\n ShoppingCartSettingsApiService,\n} from '@veloceapps/api';\nimport { ToastService, ToastType } from '@veloceapps/components';\nimport { ConfigurationContextMode, Operator, Predicate, isDefined, parseJsonSafely, parseJwt } from '@veloceapps/core';\nimport {\n ActionCodePipe,\n ConfigurationService,\n ConfigurationStateService,\n ContextService,\n DatePipe,\n FlowConfigurationService,\n FlowStateConfigurationService,\n FlowStateService,\n IntegrationState,\n LineItemWorker,\n NumberPipe,\n PricePipe,\n ProductImagesService,\n QuoteDraftService,\n RuntimeSettingsService,\n lineItemUtils,\n} from '@veloceapps/sdk/core';\nimport lodash from 'lodash';\nimport * as rxjs from 'rxjs';\nimport * as rxjsOperators from 'rxjs/operators';\nimport * as cmsActions from './cms.actions';\nimport * as cmsInjectionTokens from './injection-tokens';\nimport { ResourcesService } from './services/resources.service';\nimport { TemplatesService } from './services/templates.service';\nimport { cmsInject } from './utils/inject';\n\nconst VELOCE_LIBS = {\n '@veloceapps/core': {\n isDefined,\n Operator,\n Predicate,\n parseJsonSafely,\n ConfigurationContextMode,\n parseJwt,\n },\n '@veloceapps/components': {\n ToastService,\n ToastType,\n },\n '@veloceapps/api': {\n SalesforceApiService,\n QuoteApiService,\n DocumentAttachmentApiService,\n RampApiService,\n CatalogApiService,\n DeltaApiService,\n PicklistsApiService,\n PriceApiService,\n ShoppingCartSettingsApiService,\n ConfigurationSettingsApiService,\n GuidedSellingApiService,\n ContractedPriceApiService,\n },\n '@veloceapps/sdk/core': {\n ConfigurationService,\n ConfigurationStateService,\n QuoteDraftService,\n FlowConfigurationService,\n IntegrationState,\n FlowStateService,\n FlowStateConfigurationService,\n LineItemWorker,\n ProductImagesService,\n ContextService,\n RuntimeSettingsService,\n ActionCodePipe,\n DatePipe,\n NumberPipe,\n PricePipe,\n ...lineItemUtils,\n },\n '@veloceapps/sdk/cms': {\n ...cmsInjectionTokens,\n ...cmsActions,\n TemplatesService,\n IntegrationState,\n ResourcesService,\n cmsInject,\n },\n};\n\nconst VELOCE_LIBS_BACKWARDS_COMPATIBLE = Object.entries(VELOCE_LIBS).reduce(\n (trunk, [key, value]) => ({ ...trunk, [key.replace('@veloceapps/', '@veloce/')]: value }),\n {},\n);\n\nexport const vendorMap = {\n ...VELOCE_LIBS,\n\n // TODO: remove when projects/demos are migrated to @veloceapps organization libraries\n ...VELOCE_LIBS_BACKWARDS_COMPATIBLE,\n\n '@angular/core': angularCore,\n '@angular/forms': angularForms,\n '@angular/cdk/collections': {\n DataSource,\n },\n rxjs: rxjs,\n 'rxjs/operators': rxjsOperators,\n lodash: lodash,\n};\n\nexport type VendorMap = typeof vendorMap;\n","import { isDefined, UUID } from '@veloceapps/core';\nimport { ElementMetadata } from '../types';\nimport { vendorMap } from '../vendor-map';\n\nconst importRegexp = new RegExp(`import\\\\s+(?:{[^{}]+}|.*?)\\\\s*(?:from)?\\\\s*['\"].*?['\"]|import\\\\(.*?\\\\)`, 'g');\nconst importPartsRegexp = new RegExp(\n `import ([\\\\n\\\\t]*(?:[^ \\\\n\\\\t\\\\{\\\\}]+[ \\\\n\\\\t]*,?)?(?:[ \\\\n\\\\t]*\\\\{(?:[ \\\\n\\\\t]*[^ \\\\n\\\\t\"'\\\\{\\\\}]+[ \\\\n\\\\t]*,?)+\\\\})?[\\\\n\\\\t]*) from[ \\\\n\\\\t]*(['\"])([^'\"\\\\n]+)(?:['\"])`,\n 'g',\n);\n\nconst normalizeImports = (script: string, elementPath: string): string => {\n return script.replace(importRegexp, match => {\n return match.replace(importPartsRegexp, (_, g1, __, src) => {\n const strObj = (g1 as string).replace(/ as /g, ': ').trim();\n const imports = strObj\n .slice(1, -1)\n .split(',')\n .map(item => item.split(':')[0])\n .filter(isDefined)\n .map(item => item.trim());\n\n imports.forEach(item => {\n if (!(vendorMap as Record<string, any>)[src]?.[item]) {\n throw new Error(`Failed to import ${item} from '${src}' in ${elementPath}/script.ts`);\n }\n });\n\n return `const ${strObj} = vendor['${src}'];`;\n });\n });\n};\n\nexport const getScriptClass = (metadata?: ElementMetadata): object | undefined => {\n if (!metadata?.script) {\n return;\n }\n\n const id = btoa(UUID.UUID());\n const script = document.createElement('script');\n script.type = `text/javascript`;\n\n let scriptContent = normalizeImports(metadata.script, metadata.path);\n\n const classMatch = /export class (\\S+)/.exec(scriptContent);\n const className = classMatch?.[1];\n\n if (!classMatch || !className) {\n console.error(\"Script doesn't have exported class\");\n return;\n }\n\n scriptContent = scriptContent.replace(classMatch[0], `class ${className}`);\n\n script.text = `var ${id} = function(vendor) {${scriptContent}\n return ${className}; };`;\n\n document.body.appendChild(script);\n\n const ScriptClass = (window as any)?.[id]?.(vendorMap);\n\n document.body.removeChild(script);\n\n return ScriptClass;\n};\n","import { Directive } from '@angular/core';\nimport { ElementComponent } from '../components/element.component';\nimport { PluginComponent } from '../components/plugin.component';\nimport { Plugin } from '../engine/models/plugin';\nimport { ELEMENT_METADATA, SHARED_ELEMENT_METADATA } from '../injection-tokens';\nimport { ElementMetadata } from '../types/common.types';\nimport { getScriptClass } from '../utils/script.utils';\n\n@Directive()\nexport class ScriptPlugin implements PluginComponent {\n constructor(public host: ElementComponent) {\n const elementMetadata: ElementMetadata = this.host.injector.get(ELEMENT_METADATA);\n const sharedElementMetadata: ElementMetadata | undefined = this.host.injector.get(SHARED_ELEMENT_METADATA);\n\n this.addScript(sharedElementMetadata);\n this.addScript(elementMetadata);\n }\n\n private addScript(metadata?: ElementMetadata): void {\n if (!metadata?.script) {\n return;\n }\n\n const ScriptClass = getScriptClass(metadata);\n\n if (ScriptClass instanceof Object) {\n const instance: Plugin = new (ScriptClass as any)(this.host);\n this.host.registerPlugin(instance);\n }\n }\n}\n","import { ElementComponent } from './components/element.component';\nimport { ElementHoverPlugin } from './plugins/element-hover.plugin';\nimport { IOPlugin } from './plugins/io.plugin';\nimport { PagePlugin } from './plugins/page.plugin';\nimport { RegionPlugin } from './plugins/region.plugin';\nimport { ScriptPlugin } from './plugins/script.plugin';\nimport { ELEMENT_TYPE, ElementConfig } from './types/common.types';\n\n/*\n * ScriptPlugin must always be the last plugin in the list to make sure user code is running after all pre-initializers.\n */\n\nexport const CONFIG: { [key in ELEMENT_TYPE]: ElementConfig } = {\n CUSTOMIZATION_PAGE: {\n component: ElementComponent,\n plugins: [IOPlugin, ScriptPlugin],\n },\n CUSTOM: {\n component: ElementComponent,\n plugins: [IOPlugin, ElementHoverPlugin, ScriptPlugin],\n },\n CONTAINER: {\n component: ElementComponent,\n defaultTemplate: '<element-children></element-children>',\n plugins: [ScriptPlugin],\n },\n SERVICE: {\n component: ElementComponent,\n plugins: [IOPlugin, ScriptPlugin],\n suppressTemplate: true,\n suppressStyles: true,\n },\n REFERENCE: {\n component: ElementComponent,\n plugins: [IOPlugin, ScriptPlugin],\n suppressTemplate: true,\n },\n PAGE: {\n component: ElementComponent,\n defaultTemplate: '<element-children></element-children>',\n plugins: [IOPlugin, ScriptPlugin, PagePlugin],\n builder: {\n suppressRemovable: true,\n },\n },\n REGION: {\n component: ElementComponent,\n defaultTemplate: '<element-children></element-children>',\n plugins: [IOPlugin, RegionPlugin, ElementHoverPlugin, ScriptPlugin],\n builder: {\n suppressRemovable: true,\n },\n },\n};\n","export function btoaSafe(str?: string): string {\n if (!str) {\n return '';\n }\n try {\n const encoder = new TextEncoder();\n const charCodes = encoder.encode(str);\n const convertedString = charCodes.reduce((r, charCode) => r + String.fromCharCode(charCode), '');\n return window.btoa(convertedString) || '';\n } catch (e) {\n return '';\n }\n}\n\nexport function atobSafe(str?: string): string {\n if (!str) {\n return '';\n }\n try {\n const binary = window.atob(str);\n const bytes = Uint8Array.from({ length: binary.length }, (_, index) => binary.charCodeAt(index));\n const decoder = new TextDecoder('utf-8');\n return decoder.decode(bytes);\n } catch (e) {\n return '';\n }\n}\n","import { UIElement } from '@veloceapps/core';\nimport { flatten, omit } from 'lodash';\nimport { CONFIG } from '../cms.elements';\nimport { IOPlugin } from '../plugins/io.plugin';\nimport { ElementConfig, ElementDefaultMetadata, ElementMetadata, ElementModel, ELEMENT_TYPE } from '../types';\nimport { atobSafe, btoaSafe } from './encoding.utils';\n\nconst EXPORTED_CLASS_REGEX = /export class (\\S+)/;\nconst METADATA_DECORATOR_REGEX = /@ElementDefinition\\(([\\s\\S]+)\\)(\\n|\\r\\n|.)*export class/g;\n\nexport class UiBuildError extends Error {\n public affectedMetadata: ElementMetadata;\n constructor(message: string, affectedMetadata: ElementMetadata) {\n super(message);\n this.name = this.constructor.name;\n this.affectedMetadata = affectedMetadata;\n }\n}\n\nexport const elementToMetadata = (el: UIElement, parentPath?: string): ElementMetadata => {\n const script = atobSafe(el.script);\n const template = atobSafe(el.template);\n const styles = atobSafe(el.styles);\n\n const exportedClassName = script && (EXPORTED_CLASS_REGEX.exec(script) ?? [])[1];\n\n if (!exportedClassName) {\n throw new Error(\"Script doesn't have exported class\");\n }\n\n const elementMetadata = extractElementMetadata(script || '');\n const path = (parentPath ? parentPath + '/' : '') + elementMetadata.name;\n\n return {\n ...elementMetadata,\n path,\n script: script?.replace(METADATA_DECORATOR_REGEX, 'export class'),\n template,\n styles,\n children: el.children.map(child => elementToMetadata(child, path)),\n };\n};\n\nexport const metadataToElement = (metadata: ElementMetadata, recursive: boolean = true): UIElement => {\n const cleanMetadata = omit<ElementMetadata, keyof Omit<ElementMetadata, keyof ElementDefaultMetadata>>(metadata, [\n 'path',\n 'template',\n 'styles',\n 'script',\n 'metadata',\n ]);\n const elMetadata: ElementDefaultMetadata = {\n ...cleanMetadata,\n children: metadata.children.map(({ name }) => name),\n };\n const normalizedElMetadata = normalizeElementMetadata(elMetadata);\n\n if (!metadata.script || !EXPORTED_CLASS_REGEX.test(metadata.script)) {\n throw new UiBuildError(`'${metadata.path}' component script is missing an exported class`, metadata);\n }\n\n const script = btoaSafe(\n metadata.script?.replace(\n EXPORTED_CLASS_REGEX,\n `@ElementDefinition(${stringifyElementMetadata(normalizedElMetadata)})\\nexport class Script`,\n ),\n );\n const template = btoaSafe(metadata.template);\n const styles = btoaSafe(metadata.styles);\n\n return {\n script,\n template,\n styles,\n children: recursive ? metadata.children.map(meta => metadataToElement(meta)) : [],\n };\n};\n\nexport const normalizeElementMetadata = (elementMetadata: ElementDefaultMetadata): ElementDefaultMetadata => {\n const metadata = { ...elementMetadata };\n\n // model\n const { lineItem, path } = metadata.model ?? {};\n const model: ElementModel | undefined = lineItem ? { lineItem } : path ? { path } : undefined;\n if (model) {\n metadata.model = model;\n } else {\n delete metadata.model;\n }\n\n // module\n if (!metadata.module) {\n delete metadata.module;\n }\n\n // reference\n if (!metadata.reference) {\n delete metadata.reference;\n }\n\n // inputs\n const inputs = Object.entries(metadata.inputs ?? {}).reduce((acc, [key, value]) => {\n return { ...acc, [key]: value || null };\n }, {});\n if (inputs && Object.keys(inputs).length > 0) {\n metadata.inputs = inputs;\n } else {\n delete metadata.inputs;\n }\n\n // outputs\n const outputs = Object.entries(metadata.outputs ?? {}).reduce((acc, [key, value]) => {\n return { ...acc, [key]: value || null };\n }, {});\n if (outputs && Object.keys(outputs).length > 0) {\n metadata.outputs = outputs;\n } else {\n delete metadata.outputs;\n }\n\n // children\n if (!metadata.children?.length) {\n delete metadata.children;\n }\n\n // isShared\n if (!metadata.isShared) {\n delete metadata.isShared;\n }\n\n // configuredStyles\n if (!metadata.configuredStyles) {\n delete metadata.configuredStyles;\n }\n\n return metadata;\n};\n\nexport const extractElementMetadata = (script: string): ElementDefaultMetadata => {\n const metadataString = (METADATA_DECORATOR_REGEX.exec(script) ?? [])[1];\n\n // need to reset regex last index to prevent null result for next execution\n METADATA_DECORATOR_REGEX.lastIndex = 0;\n\n return new Function(`return ${metadataString}`)();\n};\n\nexport const extendElementMetadata = (script: string, extend: Partial<ElementDefaultMetadata>): string => {\n const metadataString = (METADATA_DECORATOR_REGEX.exec(script) ?? [])[1];\n\n // need to reset regex last index to prevent null result for next execution\n METADATA_DECORATOR_REGEX.lastIndex = 0;\n\n if (!metadataString) {\n return script;\n }\n\n const updated = { ...new Function(`return ${metadataString}`)(), ...extend };\n return script.replace(metadataString, stringifyElementMetadata(updated));\n};\n\nexport const getElementConfig = (type: ELEMENT_TYPE): ElementConfig => {\n return CONFIG[type];\n};\n\nexport const doesElementSupportIO = (type: ELEMENT_TYPE): boolean => {\n return getElementConfig(type).plugins?.includes(IOPlugin) ?? false;\n};\n\nexport function stringifyElementMetadata(elementMetadata: ElementDefaultMetadata): string {\n const cleaned = JSON.stringify(elementMetadata, null, 2);\n\n return cleaned.replace(/^[\\t ]*\"[^:\\n\\r]+(?<!\\\\)\":/gm, function (match) {\n // Potentially there are more invalid characters which requires object keys to be wrapped in quotes\n if (!match.includes('@')) {\n return match.replace(/\"/g, '');\n }\n\n return match;\n });\n}\n\nexport const isValidScript = (script?: string): boolean => {\n if (!script) {\n return false;\n }\n\n const exportedClassName = script && (EXPORTED_CLASS_REGEX.exec(script) ?? [])[1];\n if (!exportedClassName) {\n return false;\n }\n\n const meta = extractElementMetadata(script);\n if (!meta.name || !meta.type) {\n return false;\n }\n\n return true;\n};\n\nexport function flattenElements(elements: ElementMetadata[]): ElementMetadata[] {\n return flatten(elements.map(el => [el, ...flattenElements(el.children)]));\n}\n\nexport function isSharedElement(el: ElementMetadata): boolean {\n return Boolean(el.isShared) && el.type !== 'REFERENCE';\n}\n\nexport function isElementAngularIO(name: string): boolean {\n return name.startsWith('@');\n}\n\nexport function toElementAngularIO(name: string): string | null {\n if (!isElementAngularIO(name)) {\n return null;\n }\n\n return name.slice(1);\n}\n\nexport function getElementAngularIOs(names: string[]): string[] {\n return names.reduce((trunk: string[], name) => {\n const ngIO = toElementAngularIO(name);\n\n if (ngIO != null) {\n trunk.push(ngIO);\n }\n\n return trunk;\n }, []);\n}\n","import { UIElement } from '@veloceapps/core';\nimport { Observable, from } from 'rxjs';\nimport { ElementMetadata } from '../types/common.types';\nimport { elementToMetadata } from './element.utils';\n\nexport class ElementMetadataWorker {\n constructor(private elements: UIElement[]) {}\n\n public get$(): Observable<ElementMetadata[]> {\n return from((async () => this.processAsync(this.elements))());\n }\n\n private async processAsync(elements: UIElement[]): Promise<ElementMetadata[]> {\n const result: ElementMetadata[] = [];\n await this.processLevelAsync(elements, result);\n return result;\n }\n\n private async processLevelAsync(elements: UIElement[], metadata: ElementMetadata[], parentPath?: string) {\n for (const el of elements) {\n const elMetadata = await this.elementToMetadataAsync(el, parentPath);\n metadata.push(elMetadata);\n await this.processLevelAsync(el.children, elMetadata.children, elMetadata.path);\n }\n }\n\n private elementToMetadataAsync(el: UIElement, parentPath?: string): Promise<ElementMetadata> {\n return new Promise(resolve => {\n setTimeout(() => {\n const metadata = elementToMetadata(\n { script: el.script, template: el.template, styles: el.styles, children: [] },\n parentPath,\n );\n resolve(metadata);\n });\n });\n }\n}\n","import { Directive, OnDestroy } from '@angular/core';\nimport { LineItem } from '@veloceapps/core';\nimport { ConfigurationService, LineItemWorker, generateLineItem, getAttributeValue } from '@veloceapps/sdk/core';\nimport { Observable, Subject, map, takeUntil } from 'rxjs';\nimport { ElementComponent } from '../components/element.component';\nimport { PluginComponent } from '../components/plugin.component';\nimport { ELEMENT_METADATA } from '../injection-tokens';\nimport { AttributeElement, ConfigurationElement, PortElement, TypeElement } from '../types';\nimport { ElementMetadata } from '../types/common.types';\nimport { parseBoundPath } from '../utils/path.utils';\n\n@Directive()\nexport class ConfigurationPlugin implements PluginComponent, OnDestroy {\n private modelSnapshot?: LineItem;\n private destroy$ = new Subject<void>();\n\n private elementMetadata: ElementMetadata;\n private configurationService: ConfigurationService;\n\n constructor(public host: ElementComponent & ConfigurationElement) {\n this.elementMetadata = this.host.injector.get(ELEMENT_METADATA);\n this.configurationService = this.host.injector.get(ConfigurationService);\n\n if (this.elementMetadata.model?.lineItem) {\n this.host.model$.pipe(takeUntil(this.destroy$)).subscribe(model => (this.modelSnapshot = model));\n\n const pathBlocks = parseBoundPath(this.elementMetadata.model?.lineItem);\n const firstPathBlock = pathBlocks.reverse()[0];\n if (!firstPathBlock) {\n return;\n }\n\n const { type, property, name } = firstPathBlock;\n this.host.boundName = name ?? type;\n\n this.register(type, property, name);\n }\n }\n\n public ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n private register(type: string, property?: string, name?: string): void {\n if (!type) {\n return;\n }\n\n if (!property) {\n this.registerType();\n } else if (property === 'ports' && name) {\n this.registerPort(name);\n } else if (property === 'attributes' && name) {\n this.registerAttribute(name);\n }\n }\n\n private registerType(): void {\n const remove = (): void => {\n const rootLineItem = this.configurationService.getSnapshot();\n if (!rootLineItem || !this.modelSnapshot) {\n return;\n }\n this.configurationService.patch(new LineItemWorker(rootLineItem).remove(this.modelSnapshot.id).li);\n };\n\n const updateQty = (qty: number): void => {\n const rootLineItem = this.configurationService.getSnapshot();\n if (!rootLineItem || !this.modelSnapshot) {\n return;\n }\n this.configurationService.patch(new LineItemWorker(rootLineItem).replace({ ...this.modelSnapshot, qty }).li);\n };\n\n this.typeHost.remove = remove;\n this.typeHost.updateQty = updateQty;\n }\n\n private registerPort(name: string): void {\n const model$ = this.host.model$ as Observable<LineItem | undefined>;\n\n const portItems$ = model$.pipe(map(model => model?.lineItems.filter(li => li.port === this.host.boundName) ?? []));\n const portDomain$ = model$.pipe(map(model => model?.portDomains[this.host.boundName]));\n\n const add = (type: string, attributes: { name: string; value: any }[] = []): void => {\n if (!this.modelSnapshot) {\n return;\n }\n\n const portDomain = this.modelSnapshot.portDomains[name];\n if (!portDomain) {\n return;\n }\n\n const generated = generateLineItem(portDomain.name, type, this.modelSnapshot.id, attributes);\n this.configurationService.patch(\n new LineItemWorker(this.modelSnapshot).insert(this.modelSnapshot.id, generated).li,\n );\n };\n\n this.portHost.portItems$ = portItems$;\n this.portHost.portDomain$ = portDomain$;\n this.portHost.addPortItem = add;\n }\n\n private registerAttribute(name: string): void {\n if (!this.host.model$) {\n return;\n }\n\n const value$ = this.host.model$.pipe(map(model => getAttributeValue(model?.attributes ?? [], name)));\n\n const patch = (value: any): void => {\n if (!this.modelSnapshot) {\n return;\n }\n this.configurationService.patch(new LineItemWorker(this.modelSnapshot).patchAttribute([{ name, value }]).li);\n };\n\n this.attributeHost.value$ = value$;\n this.attributeHost.patch = patch;\n }\n\n private get attributeHost(): ElementComponent & AttributeElement {\n return this.host as ElementComponent & AttributeElement;\n }\n\n private get typeHost(): ElementComponent & TypeElement {\n return this.host as ElementComponent & TypeElement;\n }\n\n private get portHost(): ElementComponent & PortElement {\n return this.host as ElementComponent & PortElement;\n }\n}\n","import { UIDefinitionType } from '@veloceapps/core';\nimport { Plugin } from './engine/models/plugin';\nimport { ConfigurationPlugin } from './plugins/configuration.plugin';\n\nexport const DEFAULT_PLUGINS: { [key in UIDefinitionType]: (typeof Plugin)[] } = {\n CONFIGURATION: [ConfigurationPlugin],\n DEFAULT: [],\n};\n","import { transform } from '@babel/standalone';\nimport { Observable, from } from 'rxjs';\nimport { ElementMetadata } from '../types/common.types';\n\nexport class TranspilationWorker {\n constructor(private elements: ElementMetadata[]) {}\n\n public get$(): Observable<ElementMetadata[]> {\n return from((async () => this.transpileScriptsAsync(this.elements))());\n }\n\n public get(): ElementMetadata[] {\n return this.transpileScripts(this.elements);\n }\n\n private transpileScripts(elements: ElementMetadata[]): ElementMetadata[] {\n return elements.map(el => ({\n ...el,\n script: this.transpile(el),\n children: this.transpileScripts(el.children),\n }));\n }\n\n private async transpileScriptsAsync(elements: ElementMetadata[]): Promise<ElementMetadata[]> {\n const result: ElementMetadata[] = [];\n await this.processLevelAsync(elements, result);\n return result;\n }\n\n private async processLevelAsync(elements: ElementMetadata[], result: ElementMetadata[]) {\n for (const el of elements) {\n const elMetadata = await this.transpileMetadataAsync(el);\n result.push(elMetadata);\n await this.processLevelAsync(el.children, elMetadata.children);\n }\n }\n\n private transpileMetadataAsync(el: ElementMetadata): Promise<ElementMetadata> {\n return new Promise(resolve => {\n setTimeout(() => {\n const result = { ...el, script: this.transpile(el), children: [] };\n resolve(result);\n });\n });\n }\n\n private transpile(el: ElementMetadata): string | undefined {\n if (!el.script) {\n return;\n }\n\n const transformed = transform(el.script, {\n filename: el.name + '.ts',\n presets: ['typescript'],\n sourceMaps: 'inline',\n });\n\n return transformed.code ?? undefined;\n }\n}\n","import { Component, Type } from '@angular/core';\nimport { UIDefinitionMetadata, isDefined } from '@veloceapps/core';\nimport { flatten, kebabCase, set } from 'lodash';\nimport * as sass from 'sass';\nimport { DEFAULT_PLUGINS } from '../cms.default';\nimport { CONFIG } from '../cms.elements';\nimport { LAYOUT } from '../cms.layouts';\nimport { CMSPreviewConfig } from '../components/preview';\nimport { Entity } from '../engine/models/entity';\nimport {\n DEFAULT_PLUGINS_TOKEN,\n ELEMENT_CONFIG,\n ELEMENT_METADATA,\n SHARED_ELEMENT_METADATA,\n UI_DEFINITION_METADATA,\n} from '../injection-tokens';\nimport { ElementMetadata, ElementStyleDeclaration } from '../types';\nimport { getElementAngularIOs } from './element.utils';\nimport { getScriptClass } from './script.utils';\nimport { TranspilationWorker } from './transpilation-worker';\n\nexport class ElementsResolver {\n public elements: ElementMetadata[];\n\n private renderableElements: ElementMetadata[] = [];\n private sharedElements: ElementMetadata[] = [];\n private uiDefMetadata: UIDefinitionMetadata;\n\n constructor(\n private uiDef: UIDefinitionMetadata,\n elements: ElementMetadata[],\n sharedElements: ElementMetadata[] = [],\n private config?: CMSPreviewConfig,\n ) {\n this.sharedElements = this.flattenElements(elements)\n .filter(el => this.isSharedElement(el))\n .concat(sharedElements);\n\n this.elements = elements.map(el => this.processElementMetadata(el)).filter(isDefined);\n\n this.renderableElements = this.getRenderableElements(this.elements);\n\n this.uiDefMetadata = {\n ...this.uiDef,\n customization: this.uiDef.customization ?? this.getDefaultCustomizationState(),\n };\n }\n\n public addElement(element: ElementMetadata): void {\n if (element.isShared) {\n return;\n }\n\n const transpiledElements = new TranspilationWorker([element]).get();\n this.elements = transpiledElements.map(el => this.processElementMetadata(el)).filter(isDefined);\n this.renderableElements = this.getRenderableElements(this.elements);\n }\n\n public getNgComponents(): Record<string, Type<Entity>> {\n return [...this.renderableElements, ...this.sharedElements].filter(isDefined).reduce(\n (trunk, el) => ({\n ...trunk,\n [el.path]: this.resolveElement(el),\n }),\n {},\n );\n }\n\n private flattenElements(elements: ElementMetadata[]): ElementMetadata[] {\n return flatten(elements.map(el => [el, ...this.flattenElements(el.children)]));\n }\n\n private isSharedElement(el: ElementMetadata): boolean {\n return Boolean(el.isShared) && el.type !== 'REFERENCE';\n }\n\n private getRenderableElements(elements: ElementMetadata[]): ElementMetadata[] {\n const renderable: ElementMetadata[] = [];\n\n for (const el of elements) {\n // In `customizationMode` render only element with CUSTOMIZATION_PAGE type\n const typePerMode = Boolean(this.config?.customizationMode) === (el.type === 'CUSTOMIZATION_PAGE');\n if (!this.isSharedElement(el) && typePerMode) {\n const children = el.children.filter(child => !this.isSharedElement(child));\n const renderableChildren = this.getRenderableElements(children);\n renderable.push({ ...el, children }, ...renderableChildren);\n }\n }\n\n return renderable;\n }\n\n private getSharedElement(element: ElementMetadata): ElementMetadata | undefined {\n if (!element.reference) {\n return;\n }\n\n return this.sharedElements.find(el => element.reference === el.name);\n }\n\n private resolveElementTemplate(element: ElementMetadata): string {\n const config = CONFIG[element.type];\n const template = !config.suppressTemplate ? element.template : '';\n\n return template || config.defaultTemplate || '';\n }\n\n private resolveElementStyles(element: ElementMetadata): string {\n const config = CONFIG[element.type];\n let styles = !config.suppressStyles ? element.styles ?? '' : '';\n\n const layout = element.layout && LAYOUT[element.layout];\n if (layout?.styles) {\n styles += layout.styles;\n }\n\n return styles;\n }\n\n private processElementMetadata(sourceElement: ElementMetadata): ElementMetadata | undefined {\n let finalElement: ElementMetadata;\n\n if (sourceElement.type === 'REFERENCE') {\n const sharedElement = this.getSharedElement(sourceElement);\n\n if (!sharedElement) {\n console.warn(`Shared element \"${sourceElement.reference}\" not found`);\n return;\n }\n\n finalElement = {\n ...sourceElement,\n children: this.getSharedChildren(sharedElement.children, sourceElement.path),\n type: sharedElement.type,\n template: sharedElement.template,\n styles: (sharedElement.styles ?? '') + '\\n' + (sourceElement.styles ?? ''),\n inputs: {\n ...sharedElement.inputs,\n ...sourceElement.inputs,\n },\n outputs: {\n ...sharedElement.outputs,\n ...sourceElement.outputs,\n },\n };\n } else {\n finalElement = sourceElement;\n delete sourceElement.reference;\n }\n\n finalElement.template = this.resolveElementTemplate(finalElement);\n finalElement.styles = this.resolveElementStyles(finalElement);\n\n return {\n ...finalElement,\n children: finalElement.children.map(child => this.processElementMetadata(child)).filter(isDefined),\n };\n }\n\n private getSharedChildren(children: ElementMetadata[], parentPath?: string): ElementMetadata[] {\n return children.map(c => {\n if (!c.path) {\n return c;\n }\n\n const [elName] = c.path.split('/').reverse();\n const path = parentPath + '/' + elName;\n\n return {\n ...c,\n path,\n children: this.getSharedChildren(c.children, path),\n };\n });\n }\n\n private resolveElement(element: ElementMetadata): Type<Entity> | undefined {\n const config = CONFIG[element.type];\n const defaultPlugins = DEFAULT_PLUGINS[this.uiDefMetadata.type] ?? [];\n\n if (!config) {\n console.warn(`Unknown element type \"${element.type}\"`);\n return;\n }\n\n const styles = this.getElementStyles(element);\n\n const component: Component = {\n selector: element.isShared ? `vlc-${kebabCase(element.name)}` : 'vl-element',\n template: element.template,\n ...(styles ? { styles: [styles] } : {}),\n providers: [\n { provide: DEFAULT_PLUGINS_TOKEN, useValue: defaultPlugins },\n { provide: UI_DEFINITION_METADATA, useValue: this.uiDefMetadata },\n { provide: ELEMENT_METADATA, useValue: element },\n { provide: SHARED_ELEMENT_METADATA, useValue: this.getSharedElement(element) },\n { provide: ELEMENT_CONFIG, useValue: config },\n ],\n inputs: getElementAngularIOs(Object.keys(element.inputs ?? {})),\n outputs: getElementAngularIOs(Object.keys(element.outputs ?? {})),\n };\n\n const cmp = Component(component)(class C extends config.component {});\n\n set(cmp, 'path', element.path);\n\n return cmp;\n }\n\n private getElementStyles(element: ElementMetadata): string | undefined {\n let result = '';\n\n const configuredStyles = this.convertInlineStylesToCSS(element.configuredStyles);\n if (configuredStyles) {\n // order is important: styles written by user in CSS code should has higher priority\n result += configuredStyles;\n }\n\n if (element.styles) {\n try {\n result += sass.compileString(element.styles).css;\n } catch (_) {\n result += element.styles;\n }\n }\n\n return result || undefined;\n }\n\n private convertInlineStylesToCSS(styles?: ElementStyleDeclaration): string {\n if (!styles) {\n return '';\n }\n\n const entries = Object.entries(styles);\n let result = ':host {\\n';\n\n entries.forEach(([style, value]) => {\n result += ` ${kebabCase(style)}:${value};\\n`;\n });\n\n result += '}\\n';\n\n return result;\n }\n\n private getDefaultCustomizationState(): unknown {\n const customizationPage = this.elements.find(el => el.type === 'CUSTOMIZATION_PAGE');\n if (!customizationPage?.script) {\n return;\n }\n\n const c = getScriptClass(customizationPage);\n return c && 'default' in c ? c.default : undefined;\n }\n}\n","import { DEFAULT_ELEMENT } from '../definitions';\nimport { ElementMetadata, ElementStyleDeclaration, PageLayout, PageType } from '../types';\n\nexport const constructPageChildren = (path: string, layout: PageLayout): ElementMetadata[] => {\n switch (layout) {\n case 'LAYOUT_1': // Header, One region, and Footer\n case 'LAYOUT_4': // Two Regions and Footer\n return [constructRegion('Region A', path), constructRegion('Region B', path), constructRegion('Region C', path)];\n case 'LAYOUT_2': // Header, Two Regions, and Footer\n return [\n constructRegion('Region A', path),\n constructRegion('Region B', path),\n constructRegion('Region C', path),\n constructRegion('Region D', path),\n ];\n case 'LAYOUT_3': // One Region and Footer\n case 'LAYOUT_5': // Header and One Region\n return [constructRegion('Region A', path), constructRegion('Region B', path)];\n case 'LAYOUT_6': // One Region\n case 'LAYOUT_7': // Left Sidepanel\n case 'LAYOUT_8': // Right Sidepanel\n return [constructRegion('Region A', path)];\n default:\n return [];\n }\n};\n\nexport const constructRegion = (name: string, parentPath: string): ElementMetadata => {\n return {\n name,\n path: `${parentPath}/${name}`,\n type: 'REGION',\n children: [],\n ...DEFAULT_ELEMENT,\n };\n};\n\nexport const constructPage = (\n name: string,\n pageType: PageType,\n layout: PageLayout,\n configuredStyles?: ElementStyleDeclaration,\n): ElementMetadata => {\n return {\n name,\n path: name,\n type: 'PAGE',\n layout,\n pageType,\n configuredStyles,\n children: constructPageChildren(name, layout),\n ...DEFAULT_ELEMENT,\n };\n};\n","import { Directive, ViewContainerRef } from '@angular/core';\n\n@Directive({\n selector: '[vlFederatedHost]',\n})\nexport class FederatedHostDirective {\n constructor(public viewContainerRef: ViewContainerRef) {}\n}\n","export const defaultOptions = {\n suppressLoading: false,\n loadingLabel: 'LOADING',\n};\n","import { loadRemoteModule } from '@angular-architects/module-federation';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n createNgModule,\n Injector,\n Input,\n OnChanges,\n OnInit,\n SimpleChanges,\n ViewChild,\n} from '@angular/core';\nimport { VlWindow } from '@veloceapps/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { defaultOptions } from './default-options';\nimport { FederatedHostDirective } from './federated-host.directive';\nimport { FederatedComponentInstance, FederatedModuleOptions } from './federated.types';\n\ndeclare const window: VlWindow;\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'veloce-host-federated',\n templateUrl: './federated.component.html',\n styleUrls: ['./federated.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FederatedComponent implements OnInit, AfterViewInit, OnChanges {\n @ViewChild(FederatedHostDirective, { static: true }) public host!: FederatedHostDirective;\n\n @Input() public remoteEntry?: string;\n @Input() public remoteName?: string;\n @Input() public exposedModule?: string;\n @Input() public data?: unknown;\n @Input() public options?: FederatedModuleOptions;\n\n public isLoading$ = new BehaviorSubject(false);\n public suppressLoading = defaultOptions.suppressLoading;\n public loadingLabel = defaultOptions.loadingLabel;\n\n private instance?: FederatedComponentInstance;\n\n constructor(private injector: Injector) {}\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes['data'] && this.instance) {\n this.instance.data = this.data;\n }\n\n if (changes['options']) {\n this.suppressLoading = this.options?.suppressLoading ?? defaultOptions.suppressLoading;\n this.loadingLabel = this.options?.loadingLabel ?? defaultOptions.loadingLabel;\n }\n }\n\n public ngOnInit(): void {\n this.isLoading$.next(true);\n }\n\n public ngAfterViewInit(): void {\n const remoteEntry = this.options?.remoteEntry ?? this.remoteEntry;\n const exposedModule = this.options?.exposedModule ?? this.exposedModule;\n\n if (!remoteEntry || !exposedModule) {\n return;\n }\n\n loadRemoteModule({\n type: 'module',\n remoteEntry: this.normalizeRemoteEntry(remoteEntry),\n exposedModule,\n }).then(federated => {\n const moduleRef = createNgModule(federated[exposedModule], this.injector);\n const componentRef = this.host.viewContainerRef.createComponent<FederatedComponentInstance>(\n federated[exposedModule].rootComponent,\n { ngModuleRef: moduleRef },\n );\n\n componentRef.instance.data = this.data;\n\n this.options?.onReady?.();\n this.isLoading$.next(false);\n });\n }\n\n private normalizeRemoteEntry(value: string): string {\n const { proxyTargetUrl, VELO_API } = window;\n\n if (proxyTargetUrl && VELO_API) {\n return value.replace(proxyTargetUrl, VELO_API);\n }\n\n return value;\n }\n}\n","<ng-template vlFederatedHost></ng-template>\n\n<vl-loader *ngIf=\"!suppressLoading && (isLoading$ | async)\" [label]=\"loadingLabel\"></vl-loader>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { LoaderModule } from '@veloceapps/components';\nimport { FederatedHostDirective } from './federated-host.directive';\nimport { FederatedComponent } from './federated.component';\n\n@NgModule({\n declarations: [FederatedComponent, FederatedHostDirective],\n imports: [CommonModule, LoaderModule],\n exports: [FederatedComponent],\n})\nexport class FederatedModule {}\n","import { DragDropModule } from '@angular/cdk/drag-drop';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nimport { CommonModule } from '@angular/common';\nimport { createNgModule, Injectable, Injector, NgModule, Type } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { ErrorTooltipModule, HiddenTextTooltipModule, LetDirectiveModule } from '@veloceapps/components';\nimport { UIDefinition, UIDefinitionMetadata } from '@veloceapps/core';\nimport { SdkPipesModule } from '@veloceapps/sdk/core';\nimport { DndModule } from 'ngx-drag-drop';\nimport { combineLatest, map, Observable, of, switchMap } from 'rxjs';\nimport { ElementChildrenModule } from '../../../components/element-children/element-children.module';\nimport { ElementDropHandleModule } from '../../../components/element-drop-handle/element-drop-handle.module';\nimport { ElementRendererModule } from '../../../components/element-renderer/element-renderer.module';\nimport { CMSPreviewConfig } from '../../../components/preview';\nimport { CustomTemplateDirectiveModule } from '../../../directives/custom-template.directive';\nimport { Entity } from '../../../engine/models/entity';\nimport { CompilationResult } from '../../../modules/runtime/types/compilation.types';\nimport { ElementMetadata } from '../../../types/common.types';\nimport { ElementMetadataWorker, ElementsResolver, TranspilationWorker } from '../../../utils';\nimport { FederatedModule } from '../../federated/federated.module';\n\n@Injectable()\nexport class CompilationService {\n private uiDefinitionMeta?: UIDefinitionMetadata;\n private elementsResolver?: ElementsResolver;\n\n constructor(private injector: Injector) {}\n\n public compileUIDefinition$(uiDefinition: UIDefinition, config?: CMSPreviewConfig): Observable<CompilationResult> {\n return of([]).pipe(\n map(() => {\n const { children, pages, components, ...uiDefinitionMeta } = uiDefinition;\n this.uiDefinitionMeta = uiDefinitionMeta;\n\n const elements = [...(children ?? []), ...(pages ?? [])];\n const sharedElements = components ?? [];\n return [elements, sharedElements];\n }),\n switchMap(elementsChunks => combineLatest(elementsChunks.map(chunk => new ElementMetadataWorker(chunk).get$()))),\n switchMap(dataChunks => combineLatest(dataChunks.map(chunk => new TranspilationWorker(chunk).get$()))),\n map(([metadata, sharedMetadata]) => {\n this.elementsResolver = new ElementsResolver(uiDefinition, metadata ?? [], sharedMetadata, config);\n const componentTypes = this.elementsResolver.getNgComponents();\n const module = this.getModule(componentTypes);\n\n return {\n moduleRef: createNgModule(module, this.injector),\n elements: this.elementsResolver?.elements ?? [],\n componentTypes,\n };\n }),\n );\n }\n\n public compileElement$(element: ElementMetadata): Observable<CompilationResult> {\n if (!this.uiDefinitionMeta) {\n throw 'No UI Definition context';\n }\n\n return of(this.uiDefinitionMeta).pipe(\n map(uiDefinition => {\n const elementsResolver = this.elementsResolver ?? new ElementsResolver(uiDefinition, []);\n elementsResolver.addElement(element);\n const componentTypes = elementsResolver.getNgComponents();\n const module = this.getModule(componentTypes);\n\n return {\n moduleRef: createNgModule(module, this.injector),\n elements: this.elementsResolver?.elements ?? [],\n componentTypes,\n };\n }),\n );\n }\n\n public clear(): void {\n this.uiDefinitionMeta = undefined;\n }\n\n private getModule(components: Record<string, Type<Entity>>): Type<NgModule> {\n @NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n DragDropModule,\n DndModule,\n ScrollingModule,\n ElementChildrenModule,\n ElementRendererModule,\n ElementDropHandleModule,\n CustomTemplateDirectiveModule,\n FederatedModule,\n SdkPipesModule,\n LetDirectiveModule,\n HiddenTextTooltipModule,\n ErrorTooltipModule,\n ],\n declarations: Object.values(components),\n jit: true,\n })\n class DynamicModule {}\n\n return DynamicModule;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { CoreModule } from '@veloceapps/core';\nimport { DialogService } from 'primeng/dynamicdialog';\nimport { CompilationService } from './services/compilation.service';\nimport { RuntimeEditorService } from './services/runtime-editor.service';\nimport { RuntimeService } from './services/runtime.service';\nimport { CMS_COMPILATION_SERVICE } from './tokens';\n\n@NgModule({\n imports: [CommonModule, CoreModule],\n providers: [\n DialogService,\n RuntimeService,\n RuntimeEditorService,\n { provide: CMS_COMPILATION_SERVICE, useClass: CompilationService },\n ],\n})\nexport class RuntimeModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ApiModule } from '@veloceapps/api';\nimport { CoreModule } from '@veloceapps/core';\nimport { SdkCoreModule } from '@veloceapps/sdk/core';\nimport { DialogService } from 'primeng/dynamicdialog';\nimport { PreviewModule } from './components/preview';\nimport { RuntimeModule } from './modules/runtime';\nimport { ResourcesService } from './services';\n\n@NgModule({\n imports: [CommonModule, CoreModule, ApiModule, SdkCoreModule, RuntimeModule, PreviewModule],\n providers: [DialogService, ResourcesService],\n exports: [PreviewModule],\n})\nexport class LauncherModule {}\n","import { STARTING_PAGE_LAYOUT, STARTING_PAGE_NAME, STARTING_PAGE_STYLES, STARTING_PAGE_TYPE } from '../../definitions';\nimport { constructPage, metadataToElement } from '../../utils';\nimport { UIDefinitionMigrationFn } from './types/migrations.types';\n\nexport const migrations: Record<number, UIDefinitionMigrationFn> = {\n 2: () => {\n throw 'Migration from Legacy UI definition is not possible';\n },\n 3: uiDef => {\n const startingPage = metadataToElement(\n constructPage(STARTING_PAGE_NAME, STARTING_PAGE_TYPE, STARTING_PAGE_LAYOUT, STARTING_PAGE_STYLES),\n );\n\n // overwrite children if provided from the UI Definition\n if (startingPage.children[0] && uiDef.children && uiDef.children.length > 0) {\n // the starting page has the One Region Layout\n startingPage.children[0].children = uiDef.children;\n }\n\n return {\n ...uiDef,\n children: undefined,\n pages: [startingPage],\n version: 3,\n };\n },\n};\n","import { Injectable } from '@angular/core';\nimport { ToastService, ToastType } from '@veloceapps/components';\nimport { UIDefinition } from '@veloceapps/core';\nimport { UI_DEFINITION_VERSION } from '@veloceapps/sdk/core';\nimport { cloneDeep } from 'lodash';\nimport { migrations } from '../migrations';\n\n@Injectable({ providedIn: 'root' })\nexport class MigrationsService {\n constructor(private toastService: ToastService) {}\n\n public migrateUIDefinition(uiDef: UIDefinition): UIDefinition | undefined {\n const currentVersion = uiDef.version;\n const targetVersion = UI_DEFINITION_VERSION;\n\n const migrateVersions = Object.keys(migrations)\n .reduce((acc: number[], version) => {\n const v = Number(version);\n if (v > currentVersion && v <= targetVersion) {\n acc.push(v);\n }\n\n return acc;\n }, [])\n .sort();\n\n try {\n let result = cloneDeep(uiDef);\n\n for (const version of migrateVersions) {\n const migration = migrations[version];\n if (!migration) {\n throw `V=${version} migration strategy is not defined`;\n }\n\n result = migration(result);\n }\n\n return result;\n } catch (e) {\n this.toastService.add({ summary: String(e), severity: ToastType.error });\n return;\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { MigrationsService } from './services/migrations.service';\n\n@NgModule({\n providers: [MigrationsService],\n})\nexport class MigrationsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i1.RuntimeService","i2.ElementContextService","i3.IOProviderService","i4","i5.ElementRendererComponent","i1.RuntimeEditorService","i2","i1.ElementContextService","i2.RuntimeService","i3.RuntimeEditorService","i6.ElementDropHandleComponent","i1.TemplatesService","i1.ElementComponent","angularCore","i3.FederatedHostDirective"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"veloceapps-sdk-cms.mjs","sources":["../../../../libs/sdk/cms/cms.actions.ts","../../../../libs/sdk/cms/cms.layouts.ts","../../../../libs/sdk/cms/injection-tokens.ts","../../../../libs/sdk/cms/engine/models/entity.ts","../../../../libs/sdk/cms/components/element.component.ts","../../../../libs/sdk/cms/utils/ui-definition.utils.ts","../../../../libs/sdk/cms/utils/path.utils.ts","../../../../libs/sdk/cms/modules/runtime/tokens.ts","../../../../libs/sdk/cms/modules/runtime/services/runtime.service.ts","../../../../libs/sdk/cms/services/io-provider.service.ts","../../../../libs/sdk/cms/services/templates.service.ts","../../../../libs/sdk/cms/services/element-context.service.ts","../../../../libs/sdk/cms/components/element-renderer/element-renderer.component.ts","../../../../libs/sdk/cms/components/element-renderer/element-renderer.component.html","../../../../libs/sdk/cms/components/preview/preview.component.ts","../../../../libs/sdk/cms/components/preview/preview.component.html","../../../../libs/sdk/cms/modules/runtime/services/runtime-editor.service.ts","../../../../libs/sdk/cms/components/element-drop-handle/element-drop-handle.component.ts","../../../../libs/sdk/cms/components/element-drop-handle/element-drop-handle.component.html","../../../../libs/sdk/cms/components/element-drop-handle/element-drop-handle.module.ts","../../../../libs/sdk/cms/components/element-renderer/element-renderer.module.ts","../../../../libs/sdk/cms/components/element-children/element-children.component.ts","../../../../libs/sdk/cms/components/element-children/element-children.component.html","../../../../libs/sdk/cms/components/element-children/element-children.module.ts","../../../../libs/sdk/cms/components/element-tools-panel/element-tools-panel.component.ts","../../../../libs/sdk/cms/components/element-tools-panel/element-tools-panel.component.html","../../../../libs/sdk/cms/components/preview/preview.module.ts","../../../../libs/sdk/cms/decorators/element.decorator.ts","../../../../libs/sdk/cms/definitions/ui-builder.definitions.ts","../../../../libs/sdk/cms/directives/custom-template.directive.ts","../../../../libs/sdk/cms/plugins/element-hover.plugin.ts","../../../../libs/sdk/cms/plugins/io.plugin.ts","../../../../libs/sdk/cms/plugins/page.plugin.ts","../../../../libs/sdk/cms/plugins/region.plugin.ts","../../../../libs/sdk/cms/services/resources.service.ts","../../../../libs/sdk/cms/utils/inject.ts","../../../../libs/sdk/cms/vendor-map.ts","../../../../libs/sdk/cms/utils/script.utils.ts","../../../../libs/sdk/cms/plugins/script.plugin.ts","../../../../libs/sdk/cms/cms.elements.ts","../../../../libs/sdk/cms/utils/encoding.utils.ts","../../../../libs/sdk/cms/utils/element.utils.ts","../../../../libs/sdk/cms/utils/element-metadata-worker.ts","../../../../libs/sdk/cms/cms.default.ts","../../../../libs/sdk/cms/utils/transpilation-worker.ts","../../../../libs/sdk/cms/utils/elements-resolver.ts","../../../../libs/sdk/cms/utils/ui-builder-layout.utils.ts","../../../../libs/sdk/cms/modules/federated/federated-host.directive.ts","../../../../libs/sdk/cms/modules/federated/default-options.ts","../../../../libs/sdk/cms/modules/federated/federated.component.ts","../../../../libs/sdk/cms/modules/federated/federated.component.html","../../../../libs/sdk/cms/modules/federated/federated.module.ts","../../../../libs/sdk/cms/modules/runtime/services/compilation.service.ts","../../../../libs/sdk/cms/modules/runtime/runtime.module.ts","../../../../libs/sdk/cms/launcher.module.ts","../../../../libs/sdk/cms/modules/migrations/migrations.ts","../../../../libs/sdk/cms/modules/migrations/services/migrations.service.ts","../../../../libs/sdk/cms/modules/migrations/migrations.module.ts","../../../../libs/sdk/cms/veloceapps-sdk-cms.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-namespace */\nimport { IntegrationAction } from '@veloceapps/sdk/core';\n\nexport namespace FlowAction {\n export const FLOW_CONFIGURE_PRODUCT = '[FLOW]_CONFIGURE_PRODUCT';\n export const FLOW_NAVIGATE_BACK = '[FLOW]_NAVIGATE_BACK';\n export const FLOW_NAVIGATE_TO = '[FLOW]_NAVIGATE_TO';\n export const FLOW_NAVIGATE_TO_CATALOG = '[FLOW]_NAVIGATE_TO_CATALOG';\n export const FLOW_NAVIGATE_TO_SHOPPING_CART = '[FLOW]_NAVIGATE_TO_SHOPPING_CART';\n export const FLOW_APPLY_PRODUCT_CONFIGURATION = '[FLOW]_APPLY_PRODUCT_CONFIGURATION';\n export const FLOW_OPEN_DOC_GEN = '[FLOW]_OPEN_DOC_GEN';\n export const FLOW_CLOSE_DOC_GEN = '[FLOW]_CLOSE_DOC_GEN';\n export const FLOW_SWITCH_OBJECT = '[FLOW]_SWITCH_OBJECT';\n export const REMOTE_APPLY = '[FLOW]_REMOTE_APPLY';\n export const REMOTE_CANCEL = '[FLOW]_REMOTE_CANCEL';\n export const OPEN_GUIDED_SELLING = '[FLOW]_OPEN_GUIDED_SELLING';\n export const SUBMIT_GUIDED_SELLING = '[FLOW]_SUBMIT_GUIDED_SELLING';\n export const CLOSE_GUIDED_SELLING = '[FLOW]_CLOSE_GUIDED_SELLING';\n export const OPEN_DIALOG = '[FLOW]_OPEN_DIALOG';\n\n export const ConfigureProductAction = ({\n transactionItemId,\n productId,\n }: {\n transactionItemId?: string;\n productId?: string;\n }) => {\n return {\n type: FlowAction.FLOW_CONFIGURE_PRODUCT,\n payload: { transactionItemId, productId },\n } satisfies IntegrationAction;\n };\n\n export const NavigateBackAction = () => {\n return {\n type: FlowAction.FLOW_NAVIGATE_BACK,\n } satisfies IntegrationAction;\n };\n\n export const NavigateToAction = (path: string, productId?: string, transactionItemId?: string) =>\n ({\n type: FlowAction.FLOW_NAVIGATE_TO,\n payload: { path, productId, transactionItemId },\n } satisfies IntegrationAction);\n\n export const NavigateToCatalogAction = () =>\n ({\n type: FlowAction.FLOW_NAVIGATE_TO_CATALOG,\n } satisfies IntegrationAction);\n\n export const NavigateToShoppingCartAction = () => {\n return {\n type: FlowAction.FLOW_NAVIGATE_TO_SHOPPING_CART,\n } satisfies IntegrationAction;\n };\n\n export const ApplyProductConfigurationAction = () => {\n return {\n type: FlowAction.FLOW_APPLY_PRODUCT_CONFIGURATION,\n } satisfies IntegrationAction;\n };\n\n export const RemoteApplyAction = () => {\n return {\n type: FlowAction.REMOTE_APPLY,\n } satisfies IntegrationAction;\n };\n\n export const RemoteCancelAction = () => {\n return {\n type: FlowAction.REMOTE_CANCEL,\n } satisfies IntegrationAction;\n };\n\n export const SwitchObjectAction = (payload: { id: string }) => {\n return {\n type: FlowAction.FLOW_SWITCH_OBJECT,\n payload,\n } satisfies IntegrationAction;\n };\n\n export const OpenGuidedSelling = (payload: { guidedSellingId: string }) => {\n return {\n type: FlowAction.OPEN_GUIDED_SELLING,\n payload,\n } satisfies IntegrationAction;\n };\n\n export const CloseGuidedSelling = (payload?: { keepState?: boolean }) => {\n return {\n type: FlowAction.CLOSE_GUIDED_SELLING,\n payload,\n } satisfies IntegrationAction;\n };\n\n export const SubmitGuidedSelling = (payload: { result: Record<string, any> }) => {\n return {\n type: FlowAction.SUBMIT_GUIDED_SELLING,\n payload,\n } satisfies IntegrationAction;\n };\n\n export const OpenDialog = (dialog: string) => {\n return {\n type: FlowAction.OPEN_DIALOG,\n payload: { dialog },\n } satisfies IntegrationAction;\n };\n}\n\ntype A = ReturnType<typeof FlowAction.OpenDialog>['payload'];\n\nexport namespace CmsAction {\n export const GO_TO_PAGE = '[CMS]_GO_TO_PAGE';\n export const UPDATE_CUSTOMIZATION = '[CMS]_UPDATE_CUSTOMIZATION';\n export const SHOW_OVERLAY = '[CMS]_SHOW_OVERLAY';\n export const HIDE_OVERLAY = '[CMS]_HIDE_OVERLAY';\n export const HIDE_ALL_OVERLAYS = '[CMS]_HIDE_ALL_OVERLAYS';\n\n /**\n * Navigate UI definition to a specific page\n *\n * @param pageName name of the page\n */\n export const GoToPage = (pageName: string) => {\n return {\n type: GO_TO_PAGE,\n payload: { pageName },\n } satisfies IntegrationAction;\n };\n\n /**\n * Update UI definition customization state\n *\n * @param pageName name of the page\n */\n export const UpdateCustomization = (value: any) => {\n return {\n type: UPDATE_CUSTOMIZATION,\n payload: { value },\n } satisfies IntegrationAction;\n };\n\n /**\n * Show an Overlay on the selected page\n *\n * @param name - name of the overlay\n * @returns void\n */\n export const ShowOverlay = (name: string) => {\n return {\n type: SHOW_OVERLAY,\n payload: { name },\n } satisfies IntegrationAction;\n };\n\n /**\n * Hide an Overlay on the selected page\n *\n * @param name - name of the overlay\n * @returns void\n */\n export const HideOverlay = (name: string) => {\n return {\n type: HIDE_OVERLAY,\n payload: { name },\n } satisfies IntegrationAction;\n };\n\n /**\n * Hide all Overlays on the selected page\n *\n * @returns void\n */\n export const HideAllOverlays = () => {\n return {\n type: HIDE_ALL_OVERLAYS,\n } satisfies IntegrationAction;\n };\n}\n","import { PageLayout, PageLayoutConfig } from './types/layouts.types';\n\nexport const LAYOUT: { [key in PageLayout]: PageLayoutConfig } = {\n LAYOUT_1: {\n hasHeader: true,\n hasFooter: true,\n styles: `\n/* start of LAYOUT_1 styles */\n:host {\n height: 100%;\n display: grid;\n grid:\n \"header\" auto\n \"main\" 1fr\n \"footer\" auto\n / 1fr;\n gap: 16px;\n}\n\n:host ::ng-deep element-children > vl-cms-element-renderer {\n &:nth-child(1) > vl-element {\n min-height: 80px;\n grid-area: header;\n }\n\n &:nth-child(2) > vl-element {\n grid-area: main;\n }\n\n &:nth-child(3) > vl-element {\n min-height: 80px;\n grid-area: footer;\n }\n}\n/* end of LAYOUT_1 styles */\n`,\n },\n LAYOUT_2: {\n hasHeader: true,\n hasFooter: true,\n styles: `\n/* start of LAYOUT_2 styles */\n:host {\n height: 100%;\n display: grid;\n grid:\n \"header header\" auto\n \"left right\" 1fr\n \"footer footer\" auto\n / 1fr 1fr;\n gap: 16px;\n}\n\n:host ::ng-deep element-children > vl-cms-element-renderer {\n &:nth-child(1) > vl-element {\n min-height: 80px;\n grid-area: header;\n }\n\n &:nth-child(2) > vl-element {\n grid-area: left;\n }\n\n &:nth-child(3) > vl-element {\n grid-area: right;\n }\n\n &:nth-child(4) > vl-element {\n min-height: 80px;\n grid-area: footer;\n }\n}\n/* end of LAYOUT_2 styles */\n`,\n },\n LAYOUT_3: {\n hasHeader: false,\n hasFooter: true,\n styles: `\n/* start of LAYOUT_3 styles */\n:host {\n height: 100%;\n display: grid;\n grid:\n \"main\" 1fr\n \"footer\" auto\n / 1fr;\n gap: 16px;\n}\n\n:host ::ng-deep element-children > vl-cms-element-renderer {\n &:nth-child(1) > vl-element {\n grid-area: main;\n }\n\n &:nth-child(2) > vl-element {\n min-height: 80px;\n grid-area: footer;\n }\n}\n/* end of LAYOUT_3 styles */\n`,\n },\n LAYOUT_4: {\n hasHeader: false,\n hasFooter: true,\n styles: `\n/* start of LAYOUT_4 styles */\n:host {\n height: 100%;\n display: grid;\n grid:\n \"left right\" 1fr\n \"footer footer\" auto\n / auto auto;\n gap: 16px;\n}\n\n:host ::ng-deep element-children > vl-cms-element-renderer {\n &:nth-child(1) > vl-element {\n grid-area: left;\n }\n\n &:nth-child(2) > vl-element {\n grid-area: right;\n }\n\n &:nth-child(3) > vl-element {\n min-height: 80px;\n grid-area: footer;\n }\n}\n/* end of LAYOUT_4 styles */\n`,\n },\n LAYOUT_5: {\n hasHeader: true,\n hasFooter: false,\n styles: `\n/* start of LAYOUT_5 styles */\n:host {\n height: 100%;\n display: grid;\n grid:\n \"header\" auto\n \"main\" 1fr\n / 1fr;\n gap: 16px;\n}\n\n:host ::ng-deep element-children > vl-cms-element-renderer {\n &:nth-child(1) > vl-element {\n min-height: 80px;\n grid-area: header;\n }\n\n &:nth-child(2) > vl-element {\n grid-area: main;\n }\n}\n/* end of LAYOUT_5 styles */\n`,\n },\n LAYOUT_6: {\n hasHeader: false,\n hasFooter: false,\n styles: `\n/* start of LAYOUT_6 styles */\n:host {\n height: 100%;\n display: grid;\n grid:\n \"main\" 1fr\n / 1fr;\n gap: 16px;\n}\n\n:host ::ng-deep element-children > vl-cms-element-renderer {\n &:nth-child(1) > vl-element {\n grid-area: main;\n }\n}\n/* end of LAYOUT_6 styles */\n`,\n },\n LAYOUT_7: {\n hasHeader: false,\n hasFooter: false,\n styles: `\n /* start of LAYOUT_7 styles */\n :host {\n position: absolute;\n left: 300px;\n background: #ffffff;\n box-shadow: 0px 4px 20px rgba(0, 41, 87, 0.12);\n display: grid;\n grid: \"left\" 1fr / 1fr;\n gap: 16px;\n justify-content: start;\n min-width: calc(100% / 3);\n height: fill-available;\n height: -webkit-fill-available;\n height: -moz-available;\n }\n :host ::ng-deep element-children > vl-cms-element-renderer {\n &:nth-child(1) > vl-element {\n grid-area: left;\n }\n }\n /* end of LAYOUT_7 styles */\n`,\n },\n LAYOUT_8: {\n hasHeader: false,\n hasFooter: false,\n styles: `\n /* start of LAYOUT_8 styles */\n :host {\n position: absolute;\n right: 0;\n background: #ffffff;\n box-shadow: 0px 4px 20px rgba(0, 41, 87, 0.12);\n display: grid;\n grid: \"right\" 1fr / 1fr;\n gap: 16px;\n justify-content: end;\n min-width: calc(100% / 3);\n height: fill-available;\n height: -webkit-fill-available;\n height: -moz-available;\n }\n :host ::ng-deep element-children > vl-cms-element-renderer {\n &:nth-child(1) > vl-element {\n grid-area: right;\n }\n }\n /* end of LAYOUT_8 styles */\n`,\n },\n};\n","import { InjectionToken } from '@angular/core';\nimport { UIDefinitionMetadata } from '@veloceapps/core';\nimport { Plugin } from './engine/models/plugin';\nimport { ElementConfig, ElementMetadata } from './types/common.types';\n\nexport const DEFAULT_PLUGINS_TOKEN = new InjectionToken<(typeof Plugin)[]>('DEFAULT_PLUGINS_TOKEN');\n\nexport const UI_DEFINITION_METADATA = new InjectionToken<UIDefinitionMetadata>('UI_DEFINITION_METADATA_TOKEN');\nexport const ELEMENT_METADATA = new InjectionToken<ElementMetadata>('ELEMENT_METADATA_TOKEN');\nexport const SHARED_ELEMENT_METADATA = new InjectionToken<ElementMetadata | undefined>('SHARED_ELEMENT_METADATA_TOKEN');\nexport const ELEMENT_CONFIG = new InjectionToken<ElementConfig>('ELEMENT_CONFIG_TOKEN');\n","import { Injector } from '@angular/core';\nimport { DEFAULT_PLUGINS_TOKEN, ELEMENT_CONFIG } from '../../injection-tokens';\nimport { ElementConfig } from '../../types/common.types';\nimport { Plugin } from './plugin';\n\nexport class Entity {\n protected readonly plugins: Plugin[] = [];\n\n private config: ElementConfig;\n private defaultPlugins: typeof Plugin[];\n\n constructor(public injector: Injector) {\n this.config = this.injector.get(ELEMENT_CONFIG);\n this.defaultPlugins = this.injector.get(DEFAULT_PLUGINS_TOKEN);\n }\n\n public initPlugins(): void {\n this.defaultPlugins.forEach(plugin => this.registerPlugin(new plugin(this)));\n this.config.plugins?.forEach(plugin => this.registerPlugin(new plugin(this)));\n }\n\n public registerPlugin(plugin: Plugin): void {\n this.plugins.push(plugin);\n }\n}\n","/* eslint-disable @angular-eslint/no-conflicting-lifecycle */\nimport {\n AfterContentInit,\n AfterViewChecked,\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n DoCheck,\n Inject,\n Injector,\n OnChanges,\n OnDestroy,\n OnInit,\n SimpleChanges,\n} from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { Entity } from '../engine/models/entity';\nimport { IPluginComponent } from './plugin.component';\n\n@Component({\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush,\n jit: true,\n})\nexport class ElementComponent\n extends Entity\n implements OnChanges, OnInit, DoCheck, AfterContentInit, AfterViewInit, AfterViewChecked, OnDestroy\n{\n public readonly model$ = new BehaviorSubject<any | undefined>(undefined);\n public override readonly plugins!: IPluginComponent[];\n\n constructor(@Inject(Injector) public override injector: Injector) {\n super(injector);\n\n super.initPlugins();\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n this.plugins.forEach(plugin => plugin.ngOnChanges?.(changes));\n }\n\n public ngOnInit(): void {\n this.plugins.forEach(plugin => plugin.ngOnInit?.());\n }\n\n public ngDoCheck(): void {\n this.plugins.forEach(plugin => plugin.ngDoCheck?.());\n }\n\n public ngAfterContentInit(): void {\n this.plugins.forEach(plugin => plugin.ngAfterContentInit?.());\n }\n\n public ngAfterViewInit(): void {\n this.plugins.forEach(plugin => plugin.ngAfterViewInit?.());\n }\n\n public ngAfterViewChecked(): void {\n this.plugins.forEach(plugin => plugin.ngAfterViewChecked?.());\n }\n\n public ngOnDestroy(): void {\n this.plugins.forEach(plugin => plugin.ngOnDestroy?.());\n }\n}\n","import { getCollectionUniqueName } from '@veloceapps/core';\nimport { ElementMetadata } from '../types';\n\nconst insertElementAt = (\n source: ElementMetadata[],\n target: ElementMetadata,\n parentPath: string,\n index: number,\n): ElementMetadata[] => {\n const result = [...source];\n const name = getCollectionUniqueName(\n result,\n target.name,\n (name: string) =>\n (el): boolean =>\n el.name === name,\n );\n const path = parentPath ? `${parentPath}/${name}` : name;\n result.splice(index, 0, { ...target, path, name });\n return result;\n};\n\nexport const insertElement = (\n source: ElementMetadata[],\n target: ElementMetadata,\n path: string,\n index: number,\n): ElementMetadata[] => {\n if (!path) {\n return insertElementAt(source, target, '', index);\n }\n\n return source.map(element => {\n if (element.path === path) {\n return { ...element, children: insertElementAt(element.children, target, element.path, index) };\n } else if (element.path?.startsWith(path)) {\n return {\n ...element,\n children: insertElement(element.children, target, path, index),\n };\n } else {\n return element;\n }\n });\n};\n\nexport const removeElement = (source: ElementMetadata[], path: string): ElementMetadata[] => {\n return source.reduce((trunk: ElementMetadata[], element) => {\n if (path === element.path) {\n return trunk;\n }\n\n if (element.path) {\n if (path.startsWith(element.path)) {\n trunk.push({\n ...element,\n children: removeElement(element.children, path),\n });\n } else {\n trunk.push(element);\n }\n }\n\n return trunk;\n }, []);\n};\n\nexport const findElementByPath = (source: ElementMetadata[], path: string): ElementMetadata | undefined => {\n for (const el of source) {\n if (el.path === path) {\n return el;\n }\n\n if (el.path && path.startsWith(el.path)) {\n const found = findElementByPath(el.children, path);\n if (found) {\n return found;\n }\n }\n }\n\n return;\n};\n\nexport const findElementByModule = (\n elements: ElementMetadata[],\n module: string,\n elementName: string,\n): ElementMetadata | undefined => {\n for (const el of elements) {\n if (el.module === module && el.name === elementName) {\n return el;\n }\n\n const child = findElementByModule(el.children, module, elementName);\n if (child) {\n return child;\n }\n }\n\n return;\n};\n\nexport const findElement = (\n source: ElementMetadata[],\n comparatorFn: (el: ElementMetadata) => boolean,\n): ElementMetadata | undefined => {\n for (const el of source) {\n if (comparatorFn(el)) {\n return el;\n }\n\n const found = findElement(el.children, comparatorFn);\n if (found) {\n return found;\n }\n }\n\n return;\n};\n","import { ElementMetadata, ElementPath } from '../types';\nimport { findElementByModule } from './ui-definition.utils';\n\nexport const parsePath = (path: string): ElementPath => {\n const segments = path.split('/');\n let module: string | undefined;\n let variable: string | undefined;\n\n if (segments[0]?.startsWith('@')) {\n module = segments.shift()?.substring(1);\n }\n\n if (segments[segments.length - 1]?.[0] === ':') {\n variable = segments.pop()?.substring(1);\n }\n\n const isAbsolute = !segments[0];\n const nonEmptySegments = segments.filter(Boolean);\n\n if (!isAbsolute && nonEmptySegments[0] === '.') {\n nonEmptySegments.shift();\n }\n\n return {\n isAbsolute,\n segments: nonEmptySegments,\n module,\n variable,\n };\n};\n\nexport const getAbsolutePath = (\n elements: ElementMetadata[],\n subject: ElementMetadata,\n path: ElementPath,\n): string | undefined => {\n if (path.module) {\n return findElementByModule(elements, path.module, path.segments[0] ?? '')?.path;\n }\n\n const subjectSegments = subject.path?.split('/') ?? [];\n const segments = [...path.segments];\n\n if (path.isAbsolute) {\n return segments.join('/');\n }\n\n while (segments.length) {\n const segment = segments.shift();\n\n if (segment === '..') {\n subjectSegments.pop();\n } else if (segment) {\n subjectSegments.push(segment);\n }\n }\n\n return subjectSegments.join('/');\n};\n","import { InjectionToken } from '@angular/core';\nimport type { CompilationService } from './services/compilation.service';\n\nexport const CMS_COMPILATION_SERVICE = new InjectionToken<CompilationService>('VENDOR_MAP');\n","import { ComponentRef, Injectable, Injector, NgModule, NgModuleRef, Type } from '@angular/core';\nimport { UIDefinition } from '@veloceapps/core';\nimport { IntegrationState } from '@veloceapps/sdk/core';\nimport { cloneDeep, Dictionary } from 'lodash';\nimport { applyPatch, Patch } from 'rfc6902';\nimport { AddOperation, RemoveOperation } from 'rfc6902/diff';\nimport { BehaviorSubject, distinctUntilChanged, map, Observable, of, startWith, Subject, switchMap, tap } from 'rxjs';\nimport { CmsAction } from '../../../cms.actions';\nimport { CMSPreviewConfig } from '../../../components/preview/preview.types';\nimport { Entity } from '../../../engine/models/entity';\nimport { ElementMetadata } from '../../../types';\nimport { findElementByPath } from '../../../utils/ui-definition.utils';\nimport { CMS_COMPILATION_SERVICE } from '../tokens';\nimport type { CompilationService } from './compilation.service';\n\n@Injectable()\nexport class RuntimeService {\n public moduleRefs: NgModuleRef<NgModule>[] = [];\n public componentRefs: Dictionary<ComponentRef<Entity> | undefined> = {};\n public componentTypes: Record<string, Type<Entity>> = {};\n public applicationTree: ElementMetadata[] = [];\n public config?: CMSPreviewConfig;\n public isInitialized$ = new BehaviorSubject(false);\n public updated$ = new Subject<void>();\n public selectedPageName$ = new BehaviorSubject<string | null>(null);\n public selectedOverlayNames$ = new BehaviorSubject<string[]>([]);\n\n private compilationService: CompilationService;\n\n constructor(private injector: Injector, private integrationState: IntegrationState) {\n this.compilationService = this.injector.get(CMS_COMPILATION_SERVICE);\n\n this.integrationState\n .listen$<{ pageName: string }>(CmsAction.GO_TO_PAGE)\n .pipe(\n map(({ pageName }) => pageName),\n distinctUntilChanged(),\n )\n .subscribe(pageName => this.selectedPageName$.next(pageName));\n\n this.integrationState\n .listen$<{ name: string }>(CmsAction.SHOW_OVERLAY)\n .pipe(map(({ name }) => name))\n .subscribe(overlayName => {\n const overlayNames = this.selectedOverlayNames$.value;\n if (!overlayNames.includes(overlayName)) {\n this.selectedOverlayNames$.next([...overlayNames, overlayName]);\n }\n });\n\n this.integrationState\n .listen$<{ name: string }>(CmsAction.HIDE_OVERLAY)\n .pipe(map(({ name }) => name))\n .subscribe(overlayName => {\n const overlayNames = this.selectedOverlayNames$.value;\n this.selectedOverlayNames$.next(overlayNames.filter(name => name !== overlayName));\n });\n\n this.integrationState.listen$(CmsAction.HIDE_ALL_OVERLAYS).subscribe(() => this.selectedOverlayNames$.next([]));\n }\n\n public initialize$(uiDefinition?: UIDefinition, config?: CMSPreviewConfig): Observable<ElementMetadata[]> {\n this.config = config;\n\n if (!uiDefinition) {\n return of([]);\n }\n\n return this.compilationService.compileUIDefinition$(uiDefinition, config).pipe(\n map(result => {\n this.applicationTree = result.elements;\n this.componentTypes = {\n ...this.componentTypes,\n ...result.componentTypes,\n };\n this.moduleRefs.push(result.moduleRef);\n return result.elements;\n }),\n tap(() => this.isInitialized$.next(true)),\n );\n }\n\n public applyPatch$(patch: Patch): Observable<void> {\n let observable$: Observable<void> = of(undefined);\n\n patch.forEach(operation => {\n switch (operation.op) {\n case 'add': {\n observable$ = observable$.pipe(switchMap(() => this.addElement$(operation)));\n break;\n }\n case 'remove': {\n observable$ = observable$.pipe(map(() => this.deleteElement(operation)));\n break;\n }\n case 'replace': {\n observable$ = observable$.pipe(\n switchMap(() => {\n this.deleteElement({ op: 'remove', path: operation.path });\n return this.addElement$({ op: 'add', path: operation.path, value: operation.value });\n }),\n );\n break;\n }\n default:\n observable$ = of();\n }\n });\n\n return observable$.pipe(tap(() => this.updated$.next()));\n }\n\n public getCompiledElement$(path: string): Observable<ElementMetadata | undefined> {\n return this.updated$.pipe(\n startWith(undefined),\n map(() => findElementByPath(this.applicationTree, path)),\n distinctUntilChanged(),\n );\n }\n\n public clear(): void {\n this.compilationService.clear();\n this.moduleRefs.forEach(m => m.destroy());\n this.moduleRefs = [];\n this.componentRefs = {};\n this.applicationTree = [];\n this.componentTypes = {};\n this.isInitialized$.next(false);\n }\n\n private addElement$(operation: AddOperation): Observable<void> {\n return this.compilationService.compileElement$(operation.value).pipe(\n map(result => {\n this.componentTypes = {\n ...this.componentTypes,\n ...result.componentTypes,\n };\n this.moduleRefs.push(result.moduleRef);\n applyPatch(this.applicationTree, [{ ...operation, value: cloneDeep(result.elements[0]) }]);\n }),\n );\n }\n\n private deleteElement(operation: RemoveOperation): void {\n applyPatch(this.applicationTree, [operation]);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Dictionary } from 'lodash';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { RuntimeService } from '../modules/runtime/services/runtime.service';\nimport { ElementMetadata } from '../types/common.types';\nimport { getAbsolutePath, parsePath } from '../utils/path.utils';\n\n@Injectable()\nexport class IOProviderService {\n private inputs: Dictionary<Dictionary<BehaviorSubject<any>>> = {};\n\n constructor(private runtimeService: RuntimeService) {}\n\n public connect(el: ElementMetadata, name: string, target?: string | null): Observable<any> | undefined {\n return this.resolveTarget(el, name, target)?.asObservable();\n }\n\n public provide(el: ElementMetadata, name: string, target?: string | null): BehaviorSubject<any> | undefined {\n return this.resolveTarget(el, name, target);\n }\n\n private resolveTarget(el: ElementMetadata, name: string, target?: string | null): BehaviorSubject<any> | undefined {\n const isHost = !target;\n\n if (isHost) {\n return this.createSubjectSafe(el.path ?? '', name);\n }\n\n const pathIsValue = target.startsWith('\"') && target.endsWith('\"');\n if (pathIsValue) {\n return this.createSubjectSafe(el.path, name, new BehaviorSubject(target.slice(1, -1)));\n }\n\n const elPath = parsePath(target);\n const finalName = elPath.variable ?? name;\n const absolutePath = getAbsolutePath(this.runtimeService.applicationTree, el, elPath);\n\n return this.createSubjectSafe(absolutePath ?? '', finalName, undefined);\n }\n\n private createSubjectSafe(path: string, name: string, subject?: BehaviorSubject<any>): BehaviorSubject<any> {\n const pathInputs = this.inputs[path] ?? {};\n if (!this.inputs[path]) {\n this.inputs[path] = pathInputs;\n }\n\n const actual = pathInputs[name] ?? subject ?? new BehaviorSubject<any>(undefined);\n\n if (subject && pathInputs[name]) {\n // push delayed value to workaround 'changed after it was checked' issue\n setTimeout(() => actual.next(subject.value));\n }\n\n if (!pathInputs[name]) {\n pathInputs[name] = actual;\n }\n\n return actual;\n }\n}\n","import { Injectable, TemplateRef } from '@angular/core';\nimport { Dictionary } from 'lodash';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\ntype Template = TemplateRef<any> | undefined;\n\n@Injectable()\nexport class TemplatesService {\n private templates: Dictionary<BehaviorSubject<Template>> = {};\n\n public register(name: string, templateRef: TemplateRef<any>): void {\n this.ensureStorage(name).next(templateRef);\n }\n\n public get(name: string): Template {\n return this.ensureStorage(name).value;\n }\n\n public get$(name: string): Observable<Template> {\n return this.ensureStorage(name).asObservable();\n }\n\n private ensureStorage(name: string): BehaviorSubject<Template> {\n const storage = this.templates[name];\n if (storage) {\n return storage;\n }\n\n const newStorage = new BehaviorSubject<Template>(undefined);\n this.templates[name] = newStorage;\n return newStorage;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ElementMetadata } from '../types/common.types';\n\n@Injectable()\nexport class ElementContextService {\n public metadata?: ElementMetadata;\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentRef,\n Input,\n OnDestroy,\n OnInit,\n Type,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { UUID } from '@veloceapps/core';\nimport { Dictionary, isArray, pull } from 'lodash';\nimport { Subject, takeUntil } from 'rxjs';\nimport { Entity } from '../../engine/models/entity';\nimport { RuntimeService } from '../../modules/runtime/services/runtime.service';\nimport { ElementContextService } from '../../services/element-context.service';\nimport { IOProviderService } from '../../services/io-provider.service';\nimport { ElementMetadata } from '../../types/common.types';\nimport { ElementComponent } from '../element.component';\n\n@Component({\n selector: 'vl-cms-element-renderer',\n templateUrl: './element-renderer.component.html',\n styleUrls: ['./element-renderer.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [ElementContextService],\n})\nexport class ElementRendererComponent implements OnInit, OnDestroy {\n @ViewChild('el', { read: ViewContainerRef, static: true }) public el?: ViewContainerRef;\n\n @Input() public meta!: ElementMetadata;\n\n private type?: Type<Entity>;\n private refs: Dictionary<ComponentRef<Entity> | undefined> = {};\n private destroy$ = new Subject<void>();\n\n constructor(\n private runtimeService: RuntimeService,\n private elementContext: ElementContextService,\n private ioProviderService: IOProviderService,\n private cdr: ChangeDetectorRef,\n ) {}\n\n public ngOnInit(): void {\n if (this.meta.isShared) {\n return;\n }\n\n this.elementContext.metadata = this.meta;\n this.type = this.meta.path ? this.runtimeService.componentTypes[this.meta.path] : undefined;\n\n this.createComponents();\n }\n\n public ngOnDestroy(): void {\n this.destroyComponents();\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n private createComponents(): void {\n const modelMeta = this.meta.model;\n\n if (!modelMeta) {\n this.refs[UUID.UUID()] = this.createComponent();\n return;\n }\n\n if (modelMeta.path) {\n this.createFromPath(modelMeta.path);\n }\n }\n\n private createFromPath(path: string): void {\n const array$ = this.ioProviderService.connect(this.meta, 'children$', path);\n\n array$?.pipe(takeUntil(this.destroy$)).subscribe(children => {\n if (!isArray(children)) {\n return;\n }\n\n this.processChildren(children);\n });\n }\n\n private processChildren(children: any[]): void {\n this.runtimeService.moduleRefs[0]?.injector.runInContext(() => {\n const refs = children.reduce((acc: Dictionary<ComponentRef<Entity>>, data, index) => {\n const key = String(data?.id ?? UUID.UUID());\n const existingRef = this.refs[key];\n\n const ref = existingRef ?? this.createComponent(data, index);\n if (existingRef) {\n this.updateComponent(existingRef, data, index);\n }\n\n return ref ? { ...acc, [key]: ref } : acc;\n }, {});\n\n const existingKeys = Object.keys(this.refs);\n const newKeys = Object.keys(refs);\n\n pull(existingKeys, ...newKeys).forEach(key => {\n this.destroyComponent(key);\n });\n\n this.refs = refs;\n this.cdr.detectChanges();\n });\n }\n\n private createComponent(data?: unknown, index?: number): ComponentRef<Entity> | undefined {\n if (!this.type) {\n return;\n }\n\n const componentRef = this.el?.createComponent(this.type, { index });\n this.runtimeService.componentRefs[this.meta.path] = componentRef;\n\n if (componentRef) {\n componentRef.location.nativeElement.setAttribute('name', this.meta.name);\n componentRef.location.nativeElement.setAttribute('path', this.meta.path);\n\n if (componentRef.instance instanceof ElementComponent) {\n componentRef.instance.model$.next(data);\n }\n }\n\n return componentRef;\n }\n\n private updateComponent(ref: ComponentRef<Entity>, data: unknown, index: number): void {\n if (ref.instance instanceof ElementComponent) {\n ref.instance.model$.next(data);\n }\n\n if (this.el && this.el.indexOf(ref.hostView) !== index) {\n this.el.move(ref.hostView, index);\n }\n }\n\n private destroyComponent(key: string): void {\n this.refs[key]?.destroy();\n delete this.refs[key];\n }\n\n private destroyComponents(): void {\n Object.values(this.refs).forEach(ref => ref?.destroy());\n this.refs = {};\n }\n}\n","<ng-template #el></ng-template>\n","import { ChangeDetectionStrategy, Component, Input, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core';\nimport { ToastService, ToastType } from '@veloceapps/components';\nimport { UIDefinition } from '@veloceapps/core';\nimport { ConfigurationStateService, IntegrationState } from '@veloceapps/sdk/core';\nimport {\n BehaviorSubject,\n catchError,\n combineLatest,\n map,\n Observable,\n of,\n startWith,\n Subject,\n switchMap,\n takeUntil,\n tap,\n} from 'rxjs';\nimport { RuntimeService } from '../../modules/runtime/services/runtime.service';\nimport { IOProviderService } from '../../services/io-provider.service';\nimport { TemplatesService } from '../../services/templates.service';\nimport { ElementMetadata } from '../../types/common.types';\nimport { CMSPreviewConfig } from './preview.types';\n\ninterface State {\n loading: boolean;\n failure: boolean;\n}\n\n@Component({\n selector: 'vl-cms-preview',\n templateUrl: './preview.component.html',\n styleUrls: ['./preview.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [IOProviderService, TemplatesService],\n // use shadow DOM to prevent UI from being affected by global styles\n encapsulation: ViewEncapsulation.ShadowDom,\n})\nexport class PreviewComponent implements OnInit, OnDestroy {\n @Input() public uiDefinition?: UIDefinition;\n @Input() public config?: CMSPreviewConfig;\n\n public state$ = new BehaviorSubject<State>({ loading: true, failure: false });\n public elements$: Observable<ElementMetadata[]>;\n\n private destroy$ = new Subject<void>();\n\n constructor(\n private runtimeService: RuntimeService,\n private configurationState: ConfigurationStateService,\n private toastService: ToastService,\n private integrationState: IntegrationState,\n ) {\n this.elements$ = combineLatest([this.state$, this.runtimeService.updated$.pipe(startWith(undefined))]).pipe(\n switchMap(([{ loading, failure }]) => {\n if (loading || failure) {\n return of([]);\n }\n\n const elements = this.runtimeService.applicationTree;\n\n // If UI definition contains pages, return page by SelectedPageName\n if (this.uiDefinition?.pages) {\n return this.getPages$(elements);\n }\n\n return of(elements);\n }),\n );\n }\n\n public ngOnInit(): void {\n if (this.config?.clearStateOnInit) {\n this.integrationState.reset();\n }\n\n this.startPreview();\n }\n\n public ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n\n if (!this.config?.persistConfigurationState) {\n this.configurationState.cleanup();\n }\n this.runtimeService.clear();\n }\n\n public trackBy(_: number, el: ElementMetadata): ElementMetadata {\n return el;\n }\n\n private startPreview(): void {\n const customInit$ = this.config?.init$?.() ?? of(undefined);\n\n customInit$\n .pipe(\n switchMap(() => this.runtimeService.initialize$(this.uiDefinition, this.config)),\n tap(() => {\n this.state$.next({ loading: false, failure: false });\n }),\n catchError(error => {\n console.error(error);\n\n // we should show toast if initialization failed\n this.toastService.add({ severity: ToastType.error, summary: error, sticky: true });\n\n this.state$.next({ loading: false, failure: true });\n\n return of();\n }),\n takeUntil(this.destroy$),\n )\n .subscribe();\n }\n\n private getPages$(elements: ElementMetadata[]): Observable<ElementMetadata[]> {\n return combineLatest([this.runtimeService.selectedPageName$, this.runtimeService.selectedOverlayNames$]).pipe(\n map(([pageName, overlayNames]) => {\n const page = elements.find(el => el.name === pageName);\n\n const overlayName = overlayNames.at(-1);\n const overlay = elements.find(el => el.name === overlayName);\n\n return [...(page ? [page] : elements.slice(0, 1)), ...(overlay ? [overlay] : [])];\n }),\n );\n }\n}\n","<ng-container *ngIf=\"state$ | async as state\">\n <vl-loader *ngIf=\"state.loading; else content\" [label]=\"'Loading UI'\"></vl-loader>\n\n <ng-template #content>\n <ng-container *ngIf=\"!state.failure\">\n <vl-cms-element-renderer\n *ngFor=\"let el of elements$ | async; trackBy: trackBy\"\n [meta]=\"el\"\n ></vl-cms-element-renderer>\n </ng-container>\n </ng-template>\n</ng-container>\n","import { Injectable } from '@angular/core';\nimport { Patch } from 'rfc6902';\nimport { BehaviorSubject, Observable, ReplaySubject } from 'rxjs';\nimport { RuntimeElementDeleteEvent, RuntimeElementDropEvent, RuntimeShowSettingsEvent } from '../types/runtime.actions';\nimport { RuntimeService } from './runtime.service';\n\n@Injectable()\nexport class RuntimeEditorService {\n private editorModeSubj$ = new BehaviorSubject(false);\n\n public onElementDropped$ = new ReplaySubject<RuntimeElementDropEvent>();\n public onElementDeleted$ = new ReplaySubject<RuntimeElementDeleteEvent>();\n public onElementSettingsToggled$ = new ReplaySubject<RuntimeShowSettingsEvent>();\n\n public editorMode$: Observable<boolean>;\n public dragMode$ = new BehaviorSubject(false);\n public selectedElementPath$ = new BehaviorSubject<string | null>(null);\n\n constructor(private runtimeService: RuntimeService) {\n this.editorMode$ = this.editorModeSubj$.asObservable();\n this.runtimeService.isInitialized$.subscribe(() =>\n this.editorModeSubj$.next(Boolean(this.runtimeService.config?.uiBuilderMode)),\n );\n }\n\n public applyPatch$(patch: Patch): Observable<void> {\n return this.runtimeService.applyPatch$(patch);\n }\n\n public toggleEditorMode(): void {\n this.editorModeSubj$.next(!this.editorModeSubj$.value);\n }\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { DndDropEvent } from 'ngx-drag-drop';\nimport { RuntimeEditorService } from '../../modules/runtime/services/runtime-editor.service';\nimport { ElementMetadata } from '../../types/common.types';\n\n@Component({\n selector: 'vl-element-drop-handle',\n templateUrl: './element-drop-handle.component.html',\n styleUrls: ['./element-drop-handle.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ElementDropHandleComponent {\n @Input() public index!: number;\n @Input() public parentPath!: string;\n\n constructor(private runtimeService: RuntimeEditorService) {}\n\n public handleDrop(e: DndDropEvent): void {\n this.runtimeService.onElementDropped$.next({\n element: e.data as ElementMetadata,\n index: this.index,\n path: this.parentPath,\n });\n }\n}\n","<div class=\"container\" dndDropzone (dndDrop)=\"handleDrop($event)\">\n <div class=\"handle\"></div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DndModule } from 'ngx-drag-drop';\nimport { ElementDropHandleComponent } from './element-drop-handle.component';\n\n@NgModule({\n declarations: [ElementDropHandleComponent],\n imports: [CommonModule, DndModule],\n exports: [ElementDropHandleComponent],\n})\nexport class ElementDropHandleModule {}\n","import { NgModule } from '@angular/core';\nimport { ElementRendererComponent } from './element-renderer.component';\n\n@NgModule({\n declarations: [ElementRendererComponent],\n exports: [ElementRendererComponent],\n})\nexport class ElementRendererModule {}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnDestroy } from '@angular/core';\nimport { Observable, Subject, combineLatest, map, of, takeUntil } from 'rxjs';\nimport { RuntimeEditorService } from '../../modules/runtime/services/runtime-editor.service';\nimport { RuntimeService } from '../../modules/runtime/services/runtime.service';\nimport { ElementContextService } from '../../services/element-context.service';\nimport { ElementMetadata } from '../../types/common.types';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'element-children',\n templateUrl: 'element-children.component.html',\n styleUrls: ['./element-children.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ElementChildrenComponent implements OnDestroy {\n @Input() public filter?: (elements: ElementMetadata[]) => ElementMetadata[];\n\n public metadata$: Observable<ElementMetadata | undefined>;\n public dragMode$: Observable<boolean>;\n\n private destroyed$ = new Subject<void>();\n\n constructor(\n private elementContext: ElementContextService,\n private runtimeService: RuntimeService,\n private runtimeEditorService: RuntimeEditorService,\n private cdr: ChangeDetectorRef,\n ) {\n const path = this.elementContext?.metadata?.path;\n this.metadata$ = path ? this.runtimeService.getCompiledElement$(path) : of(undefined);\n\n this.dragMode$ = combineLatest([this.runtimeEditorService.editorMode$, this.runtimeEditorService.dragMode$]).pipe(\n map(flags => flags.every(Boolean)),\n );\n this.runtimeService.updated$.pipe(takeUntil(this.destroyed$)).subscribe(() => this.cdr.detectChanges());\n }\n\n public ngOnDestroy(): void {\n this.destroyed$.next();\n this.destroyed$.complete();\n }\n\n public getFilteredChildren(elements: ElementMetadata[]): ElementMetadata[] {\n return this.filter ? this.filter(elements) : elements;\n }\n}\n","<ng-container *ngIf=\"metadata$ | async as metadata\">\n <vl-element-drop-handle *ngIf=\"dragMode$ | async\" [index]=\"0\" [parentPath]=\"metadata.path\"></vl-element-drop-handle>\n <ng-container *ngFor=\"let child of getFilteredChildren(metadata.children); let i = index\">\n <vl-cms-element-renderer [meta]=\"child\"></vl-cms-element-renderer>\n <vl-element-drop-handle\n *ngIf=\"dragMode$ | async\"\n [index]=\"i + 1\"\n [parentPath]=\"metadata.path\"\n ></vl-element-drop-handle>\n </ng-container>\n</ng-container>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { LetDirectiveModule } from '@veloceapps/components';\nimport { ElementDropHandleModule } from '../element-drop-handle/element-drop-handle.module';\nimport { ElementRendererModule } from '../element-renderer/element-renderer.module';\nimport { ElementChildrenComponent } from './element-children.component';\n\n@NgModule({\n declarations: [ElementChildrenComponent],\n imports: [CommonModule, LetDirectiveModule, ElementRendererModule, ElementDropHandleModule],\n exports: [ElementChildrenComponent],\n})\nexport class ElementChildrenModule {}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ElementRef, inject } from '@angular/core';\nimport { merge } from 'lodash';\nimport { ELEMENT_CONFIG, ELEMENT_METADATA } from '../../injection-tokens';\nimport { RuntimeEditorService } from '../../modules/runtime/services/runtime-editor.service';\n\n@Component({\n templateUrl: './element-tools-panel.component.html',\n styleUrls: ['../../../../components/styles/veloce-icons.scss', './element-tools-panel.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [CommonModule],\n})\nexport class ElementToolsPanelComponent {\n private readonly metadata = inject(ELEMENT_METADATA);\n private readonly config = inject(ELEMENT_CONFIG);\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n public runtimeEditorService?: RuntimeEditorService;\n\n public showDeleteButton = !this.config.builder?.suppressRemovable;\n\n constructor() {\n const hostRect = this.elementRef.nativeElement.parentElement?.getBoundingClientRect();\n\n if (hostRect) {\n merge(this.elementRef.nativeElement.style, <CSSStyleDeclaration>{\n width: `${hostRect.width}px`,\n height: `${hostRect.height}px`,\n transform: `translate(${hostRect.left}px, ${hostRect.top}px)`,\n });\n }\n }\n\n public deleteHandler(): void {\n this.runtimeEditorService?.onElementDeleted$.next({ path: this.metadata.path });\n }\n\n public showSettingsHandler(): void {\n this.runtimeEditorService?.onElementSettingsToggled$.next({ path: this.metadata.path });\n }\n}\n","<div class=\"actions-panel\">\n <i class=\"vl-icon vl-icon-sm vl-icon-gear action-button\" (click)=\"showSettingsHandler()\"></i>\n <i *ngIf=\"showDeleteButton\" class=\"vl-icon vl-icon-sm vl-icon-trash action-button\" (click)=\"deleteHandler()\"></i>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { LoaderModule } from '@veloceapps/components';\nimport { IntegrationState } from '@veloceapps/sdk/core';\nimport { ElementChildrenModule } from '../element-children/element-children.module';\nimport { ElementDropHandleModule } from '../element-drop-handle/element-drop-handle.module';\nimport { ElementRendererModule } from '../element-renderer/element-renderer.module';\nimport { ElementToolsPanelComponent } from '../element-tools-panel/element-tools-panel.component';\nimport { PreviewComponent } from './preview.component';\n\n@NgModule({\n declarations: [PreviewComponent],\n imports: [\n CommonModule,\n LoaderModule,\n ElementRendererModule,\n ElementChildrenModule,\n ElementDropHandleModule,\n ElementToolsPanelComponent,\n ],\n providers: [IntegrationState],\n exports: [PreviewComponent],\n})\nexport class PreviewModule {}\n","import { ElementDefaultMetadata } from '../types';\n\nexport function ElementDefinition(definition: ElementDefaultMetadata) {\n return function (constructor: any): any {\n return constructor;\n };\n}\n","import { ElementMetadata, ElementStyleDeclaration, FullPageLayout, PageType } from '../types';\n\nexport const DEFAULT_ELEMENT: Partial<ElementMetadata> = {\n template: '<element-children></element-children>',\n styles: '',\n script: `import { ElementDefinition } from '@veloceapps/sdk/cms';\n\n export class Script {}`,\n};\n\nexport const STARTING_PAGE_NAME = 'Starting Page';\nexport const STARTING_PAGE_TYPE: PageType = 'FULL_PAGE';\nexport const STARTING_PAGE_LAYOUT: FullPageLayout = 'LAYOUT_6';\nexport const STARTING_PAGE_STYLES: ElementStyleDeclaration = {\n padding: '16px 16px 16px 16px',\n backgroundColor: '#FFFFFF',\n border: 'solid',\n borderColor: '#DCE5EF',\n borderWidth: '1px 1px 1px 1px',\n};\n","import { AfterViewInit, Directive, Input, NgModule, TemplateRef } from '@angular/core';\nimport { TemplatesService } from '../services/templates.service';\n\n// eslint-disable-next-line @angular-eslint/directive-selector\n@Directive({ selector: '[customTemplate]' })\nexport class CustomTemplateDirective implements AfterViewInit {\n constructor(private templateRef: TemplateRef<unknown>, private templatesService: TemplatesService) {}\n\n @Input() public customTemplate: string | undefined;\n\n public ngAfterViewInit(): void {\n if (!this.customTemplate) {\n return;\n }\n\n this.templatesService.register(this.customTemplate, this.templateRef);\n }\n}\n\n@NgModule({\n declarations: [CustomTemplateDirective],\n exports: [CustomTemplateDirective],\n})\nexport class CustomTemplateDirectiveModule {}\n","import { DOCUMENT } from '@angular/common';\nimport { ApplicationRef, ElementRef, Injectable, OnDestroy, createComponent, inject } from '@angular/core';\nimport { BehaviorSubject, Subject, combineLatest, takeUntil } from 'rxjs';\nimport { ElementToolsPanelComponent } from '../components/element-tools-panel/element-tools-panel.component';\nimport { ElementComponent } from '../components/element.component';\nimport { PluginComponent } from '../components/plugin.component';\nimport { ELEMENT_METADATA } from '../injection-tokens';\nimport { RuntimeEditorService } from '../modules/runtime/services/runtime-editor.service';\n\n@Injectable()\nexport class ElementHoverPlugin implements PluginComponent, OnDestroy {\n private readonly hoverClassName = 'element-hover';\n\n private readonly metadata = inject(ELEMENT_METADATA);\n private readonly appRef = inject(ApplicationRef);\n private readonly el = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly document = inject(DOCUMENT);\n private readonly runtimeEditorService = inject(RuntimeEditorService);\n\n private overlayEl?: HTMLElement;\n private isHovered$ = new BehaviorSubject(false);\n private isSelected$ = new BehaviorSubject(false);\n private destroyed$ = new Subject<void>();\n private listenersAttached = false;\n\n private mouseOverListenerBound: (e: MouseEvent) => void;\n private mouseLeaveListenerBound: (e: MouseEvent) => void;\n private clickListenerBound: (e: MouseEvent) => void;\n\n constructor(public host: ElementComponent) {\n this.mouseOverListenerBound = this.mouseOverListener.bind(this);\n this.mouseLeaveListenerBound = this.mouseLeaveListener.bind(this);\n this.clickListenerBound = this.clickListener.bind(this);\n\n combineLatest([this.runtimeEditorService.editorMode$, this.isHovered$, this.isSelected$])\n .pipe(takeUntil(this.destroyed$))\n .subscribe(([editorMode]) => {\n if (!editorMode) {\n this.detachListeners();\n this.removeHighlight();\n return;\n }\n\n this.attachListeners();\n this.updateHighlight();\n });\n\n this.runtimeEditorService.selectedElementPath$.pipe(takeUntil(this.destroyed$)).subscribe(path => {\n const isSelected = this.metadata.path === path;\n if (this.isSelected$.value !== isSelected) {\n this.isSelected$.next(isSelected);\n }\n });\n }\n\n public ngOnDestroy(): void {\n this.destroyed$.next();\n this.destroyed$.complete();\n this.detachListeners();\n }\n\n private attachListeners(): void {\n if (this.listenersAttached) {\n return;\n }\n\n this.el.nativeElement.addEventListener('mouseover', this.mouseOverListenerBound);\n this.el.nativeElement.addEventListener('mouseleave', this.mouseLeaveListenerBound);\n this.el.nativeElement.addEventListener('click', this.clickListenerBound);\n this.listenersAttached = true;\n }\n\n private detachListeners(): void {\n if (!this.listenersAttached) {\n return;\n }\n\n this.el.nativeElement.removeEventListener('mouseover', this.mouseOverListenerBound);\n this.el.nativeElement.removeEventListener('mouseleave', this.mouseLeaveListenerBound);\n this.el.nativeElement.removeEventListener('click', this.clickListenerBound);\n this.listenersAttached = false;\n }\n\n private mouseOverListener(e: MouseEvent): void {\n const path = e.composedPath();\n const innerPath = path.slice(0, path.indexOf(this.el.nativeElement));\n const hasChildHovered = innerPath.some(target => {\n const t = target as HTMLElement;\n return t.tagName === 'VL-ELEMENT' && t.classList.contains(this.hoverClassName);\n });\n\n const isHovered = !hasChildHovered;\n\n if (this.isHovered$.value !== isHovered) {\n this.isHovered$.next(isHovered);\n }\n }\n\n private clickListener(e: MouseEvent): void {\n if (this.el.nativeElement === e.target) {\n this.runtimeEditorService.selectedElementPath$.next(this.metadata.path);\n }\n }\n\n private mouseLeaveListener(): void {\n this.isHovered$.next(false);\n }\n\n private addHighlight(): void {\n this.el.nativeElement.classList.add(this.hoverClassName);\n\n this.overlayEl = this.document.createElement('div');\n this.el.nativeElement.appendChild(this.overlayEl);\n\n const ref = createComponent(ElementToolsPanelComponent, {\n environmentInjector: this.appRef.injector,\n hostElement: this.overlayEl,\n elementInjector: this.host.injector,\n });\n\n ref.instance.runtimeEditorService = this.runtimeEditorService;\n ref.changeDetectorRef.detectChanges();\n }\n\n private removeHighlight(): void {\n this.el.nativeElement.classList.remove(this.hoverClassName);\n\n if (this.overlayEl) {\n this.el.nativeElement.removeChild(this.overlayEl);\n this.overlayEl = undefined;\n }\n }\n\n private updateHighlight(): void {\n const hasOverlay = (this.overlayEl && this.el.nativeElement.contains(this.overlayEl)) ?? false;\n\n if ((this.isHovered$.value || this.isSelected$.value) && !hasOverlay) {\n setTimeout(() => this.addHighlight());\n }\n\n if (!this.isHovered$.value && !this.isSelected$.value && hasOverlay) {\n this.removeHighlight();\n }\n }\n}\n","import { Directive, EventEmitter } from '@angular/core';\nimport { ElementComponent } from '../components/element.component';\nimport { PluginComponent } from '../components/plugin.component';\nimport { ELEMENT_METADATA } from '../injection-tokens';\nimport { IOProviderService } from '../services/io-provider.service';\nimport { ElementMetadata } from '../types/common.types';\nimport { isElementAngularIO, toElementAngularIO } from '../utils/element.utils';\n\n@Directive()\nexport class IOPlugin implements PluginComponent {\n constructor(public host: ElementComponent) {\n const elementMetadata: ElementMetadata = this.host.injector.get(ELEMENT_METADATA);\n const inputProvider: IOProviderService = this.host.injector.get(IOProviderService);\n\n const inputs = Object.entries(elementMetadata.inputs ?? {});\n const outputs = Object.entries(elementMetadata.outputs ?? {});\n\n inputs.forEach(([key, path]) => {\n if (isElementAngularIO(key)) {\n return;\n }\n\n if (path && typeof path !== 'string') {\n console.error(`The value of '${key}' input should be a string`);\n }\n\n if (elementMetadata.outputs?.[key] !== undefined) {\n console.warn(\n `'${key}' appears both in inputs and outputs. To prevent inconsistent behavior please keep them unique `,\n );\n }\n\n (this.host as any)[key] = inputProvider.connect(elementMetadata, key, path);\n });\n\n outputs.forEach(([key, path]) => {\n const ngOutput = toElementAngularIO(key);\n if (ngOutput != null) {\n (this.host as any)[ngOutput] = new EventEmitter();\n return;\n }\n\n if (path && typeof path !== 'string') {\n console.error(`The value of '${key}' output should be a string`);\n }\n\n (this.host as any)[key] = inputProvider.provide(elementMetadata, key, path);\n });\n }\n}\n","import { Directive, ElementRef, OnDestroy } from '@angular/core';\nimport { Subject, takeUntil, tap } from 'rxjs';\nimport { ElementComponent } from '../components/element.component';\nimport { PluginComponent } from '../components/plugin.component';\nimport { ELEMENT_METADATA } from '../injection-tokens';\nimport { RuntimeService } from '../modules/runtime/services/runtime.service';\nimport { ElementMetadata } from '../types/common.types';\n\n@Directive()\nexport class PagePlugin implements PluginComponent, OnDestroy {\n private metadata: ElementMetadata;\n private el: ElementRef<HTMLElement>;\n private destroy$ = new Subject<void>();\n\n constructor(public host: ElementComponent) {\n this.metadata = this.host.injector.get(ELEMENT_METADATA);\n this.el = this.host.injector.get(ElementRef);\n\n const runtimeService = this.host.injector.get(RuntimeService);\n\n runtimeService.selectedOverlayNames$\n .pipe(\n tap(overlayNames => {\n if (this.metadata.pageType === 'FULL_PAGE') {\n this.styleFullPage(overlayNames.length > 0);\n }\n }),\n takeUntil(this.destroy$),\n )\n .subscribe();\n }\n\n public ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n private styleFullPage(hasOverlays: boolean): void {\n this.el.nativeElement.style.background = hasOverlays ? '#F5F7FA' : '';\n this.el.nativeElement.style.pointerEvents = hasOverlays ? 'none' : '';\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Directive, ElementRef, OnDestroy } from '@angular/core';\nimport { merge } from 'lodash';\nimport { Subject, takeUntil, tap } from 'rxjs';\nimport { ElementComponent } from '../components/element.component';\nimport { PluginComponent } from '../components/plugin.component';\nimport { ELEMENT_METADATA } from '../injection-tokens';\nimport { RuntimeEditorService } from '../modules/runtime/services/runtime-editor.service';\nimport { ElementMetadata } from '../types';\n\n@Directive()\nexport class RegionPlugin implements PluginComponent, OnDestroy {\n private metadata: ElementMetadata;\n private document: Document;\n private el: ElementRef<HTMLElement>;\n private regionNameEl: HTMLElement | undefined;\n private destroy$ = new Subject<void>();\n\n constructor(public host: ElementComponent) {\n this.metadata = this.host.injector.get(ELEMENT_METADATA);\n this.document = this.host.injector.get(DOCUMENT);\n this.el = this.host.injector.get(ElementRef);\n\n const runtimeEditorService = this.host.injector.get(RuntimeEditorService);\n\n runtimeEditorService.editorMode$\n .pipe(\n tap(editMode => {\n const hasBorder = !!this.metadata.configuredStyles?.border;\n this.el.nativeElement.style.outline = editMode && !hasBorder ? 'dashed 1px #dce5ef' : '';\n\n if (editMode && !this.metadata.children.length) {\n this.addRegionName();\n } else {\n this.regionNameEl?.remove();\n }\n }),\n takeUntil(this.destroy$),\n )\n .subscribe();\n }\n\n public ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n private addRegionName(): void {\n if (this.regionNameEl) {\n this.regionNameEl.remove();\n }\n\n this.regionNameEl = this.document.createElement('div');\n this.regionNameEl.innerHTML = this.metadata.name;\n\n merge(this.regionNameEl.style, <CSSStyleDeclaration>{\n width: '100%',\n height: '100%',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n color: '#AEB5BD',\n pointerEvents: 'none',\n userSelect: 'none',\n });\n\n this.el.nativeElement.append(this.regionNameEl);\n }\n}\n","import { ElementRef, Injectable } from '@angular/core';\nimport { VlWindow } from '@veloceapps/core';\nimport { filter, noop, Observable, of, ReplaySubject, take } from 'rxjs';\nimport { ScriptHost } from '../types';\n\ndeclare const window: VlWindow & {\n define?: {\n amd?: unknown;\n };\n};\n\n@Injectable({ providedIn: 'root' })\nexport class ResourcesService {\n private scripts = new Map<string, boolean>();\n private loaded$ = new ReplaySubject<void>();\n\n /**\n * ngx-monaco-editor adds amd-loader library for loading resources when first time initialized\n * Which breaks further loading of 3rd party libaries.\n *\n * To handle this issue, in case 'amd' is defined, we clear it, and then restore when the script is loaded\n */\n private amd: unknown;\n\n public loadScript(url: string): Observable<void> {\n const loaded = this.scripts.get(url);\n if (loaded === true) {\n return of(noop());\n }\n\n if (loaded == null) {\n this.scripts.set(url, false);\n\n const script = document.createElement('script');\n script.src = url;\n\n // Hacky fix\n this.persistAMDLoader();\n\n script.onload = () => {\n // Hacky fix\n this.restoreAMDLoader();\n\n this.scripts.set(url, true);\n this.loaded$.next();\n };\n document.body.appendChild(script);\n }\n\n return this.loaded$.pipe(\n filter(() => this.scripts.get(url) === true),\n take(1),\n );\n }\n\n public loadStyles(url: string): Observable<void>;\n public loadStyles(host: ScriptHost, url: string): Observable<void>;\n\n public loadStyles(first: string | ScriptHost, second?: string): Observable<void> {\n const url = typeof first === 'string' ? first : typeof second === 'string' ? second : '';\n const host = typeof first !== 'string' ? first : null;\n\n let el = host?.injector.get<ElementRef>(ElementRef)?.nativeElement ?? document.body;\n while (el.parentNode) {\n el = el.parentNode;\n }\n\n return new Observable(subscriber => {\n const link = document.createElement('link');\n link.rel = 'stylesheet';\n link.type = 'text/css';\n link.href = url;\n link.media = 'all';\n link.onload = () => {\n subscriber.next();\n subscriber.complete();\n };\n el.appendChild(link);\n });\n }\n\n private persistAMDLoader(): void {\n // Do nothing if AMD loader is not defined\n if (!window.define?.amd) {\n return;\n }\n\n this.amd = window.define.amd;\n window.define.amd = undefined;\n }\n\n private restoreAMDLoader(): void {\n if (window.define && this.amd) {\n window.define.amd = this.amd;\n this.amd = undefined;\n }\n }\n}\n","import { inject } from '@angular/core';\nimport { ELEMENT_METADATA } from '../injection-tokens';\nimport { RuntimeService } from '../modules/runtime';\nimport { ElementMetadata } from '../types';\nimport { findElement } from './ui-definition.utils';\n\nexport const cmsInject = <T = unknown>(token: string): T => {\n const self = inject(ELEMENT_METADATA);\n const runtimeService = inject(RuntimeService);\n\n const el = findElement(runtimeService.applicationTree, el => el.name === token);\n\n if (!el) {\n throw getError(token, self, 'element not found');\n }\n\n if (el.type !== 'SERVICE') {\n throw getError(token, self, 'only SERVICE elements can be injected');\n }\n\n if (el.model) {\n throw getError(token, self, 'injecting a service with a \"model\" defined is not supported yet');\n }\n\n const componentRef = runtimeService.componentRefs[el.path];\n\n if (!componentRef) {\n throw getError(token, self, 'no instance created yet.');\n }\n\n return componentRef.instance as T;\n};\n\nfunction getError(token: string, self: ElementMetadata, reason: string): Error {\n return new Error(`Injecting \"${token}\" in \"/${self.path}\": ${reason}`);\n}\n","import { DataSource } from '@angular/cdk/collections';\nimport * as angularCore from '@angular/core';\nimport * as angularForms from '@angular/forms';\nimport {\n CatalogApiService,\n ConfigurationSettingsApiService,\n ContractedPriceApiService,\n DeltaApiService,\n DocumentAttachmentApiService,\n GuidedSellingApiService,\n PicklistsApiService,\n PriceApiService,\n RampApiService,\n SalesforceApiService,\n ShoppingCartSettingsApiService,\n} from '@veloceapps/api';\nimport { SalesTransactionApiService } from '@veloceapps/api/v2';\nimport { ToastService, ToastType } from '@veloceapps/components';\nimport { isDefined, Operator, parseJsonSafely, parseJwt, Predicate, TokenInfoService } from '@veloceapps/core';\nimport {\n ActionCodePipe,\n ConfigurationService,\n ConfigurationStateService,\n DatePipe,\n FlowConfigurationService,\n FlowStateConfigurationService,\n FlowStateService,\n IntegrationState,\n NumberPipe,\n PricePipe,\n ProductImagesService,\n RuntimeSettingsService,\n SalesTransactionService,\n TransactionItemWorker,\n} from '@veloceapps/sdk/core';\nimport lodash from 'lodash';\nimport * as rxjs from 'rxjs';\nimport * as rxjsOperators from 'rxjs/operators';\nimport * as cmsActions from './cms.actions';\nimport * as cmsInjectionTokens from './injection-tokens';\nimport { ResourcesService } from './services/resources.service';\nimport { TemplatesService } from './services/templates.service';\nimport { cmsInject } from './utils/inject';\n\nexport const vendorMap = {\n '@veloceapps/core': {\n isDefined,\n Operator,\n Predicate,\n parseJsonSafely,\n parseJwt,\n TokenInfoService,\n },\n '@veloceapps/components': {\n ToastService,\n ToastType,\n },\n '@veloceapps/api': {\n SalesforceApiService,\n DocumentAttachmentApiService,\n RampApiService,\n CatalogApiService,\n DeltaApiService,\n PicklistsApiService,\n PriceApiService,\n ShoppingCartSettingsApiService,\n ConfigurationSettingsApiService,\n GuidedSellingApiService,\n ContractedPriceApiService,\n },\n '@veloceapps/api/v2': {\n SalesTransactionApiService,\n },\n '@veloceapps/sdk/core': {\n ConfigurationService,\n ConfigurationStateService,\n FlowConfigurationService,\n IntegrationState,\n FlowStateService,\n FlowStateConfigurationService,\n TransactionItemWorker,\n ProductImagesService,\n RuntimeSettingsService,\n ActionCodePipe,\n DatePipe,\n NumberPipe,\n PricePipe,\n SalesTransactionService,\n },\n '@veloceapps/sdk/cms': {\n ...cmsInjectionTokens,\n ...cmsActions,\n TemplatesService,\n IntegrationState,\n ResourcesService,\n cmsInject,\n },\n '@angular/core': angularCore,\n '@angular/forms': angularForms,\n '@angular/cdk/collections': {\n DataSource,\n },\n rxjs: rxjs,\n 'rxjs/operators': rxjsOperators,\n lodash: lodash,\n};\n\nexport type VendorMap = typeof vendorMap;\n","import { isDefined, UUID } from '@veloceapps/core';\nimport { ElementMetadata } from '../types';\nimport { vendorMap } from '../vendor-map';\n\nconst importRegexp = new RegExp(`import\\\\s+(?:{[^{}]+}|.*?)\\\\s*(?:from)?\\\\s*['\"].*?['\"]|import\\\\(.*?\\\\)`, 'g');\nconst importPartsRegexp = new RegExp(\n `import ([\\\\n\\\\t]*(?:[^ \\\\n\\\\t\\\\{\\\\}]+[ \\\\n\\\\t]*,?)?(?:[ \\\\n\\\\t]*\\\\{(?:[ \\\\n\\\\t]*[^ \\\\n\\\\t\"'\\\\{\\\\}]+[ \\\\n\\\\t]*,?)+\\\\})?[\\\\n\\\\t]*) from[ \\\\n\\\\t]*(['\"])([^'\"\\\\n]+)(?:['\"])`,\n 'g',\n);\n\nconst normalizeImports = (script: string, elementPath: string): string => {\n return script.replace(importRegexp, match => {\n return match.replace(importPartsRegexp, (_, g1, __, src) => {\n const strObj = (g1 as string).replace(/ as /g, ': ').trim();\n const imports = strObj\n .slice(1, -1)\n .split(',')\n .map(item => item.split(':')[0])\n .filter(isDefined)\n .map(item => item.trim());\n\n imports.forEach(item => {\n if (!(vendorMap as Record<string, any>)[src]?.[item]) {\n throw new Error(`Failed to import ${item} from '${src}' in ${elementPath}/script.ts`);\n }\n });\n\n return `const ${strObj} = vendor['${src}'];`;\n });\n });\n};\n\nexport const getScriptClass = (metadata?: ElementMetadata): object | undefined => {\n if (!metadata?.script) {\n return;\n }\n\n const id = btoa(UUID.UUID());\n const script = document.createElement('script');\n script.type = `text/javascript`;\n\n let scriptContent = normalizeImports(metadata.script, metadata.path);\n\n const classMatch = /export class (\\S+)/.exec(scriptContent);\n const className = classMatch?.[1];\n\n if (!classMatch || !className) {\n console.error(\"Script doesn't have exported class\");\n return;\n }\n\n scriptContent = scriptContent.replace(classMatch[0], `class ${className}`);\n\n script.text = `var ${id} = function(vendor) {${scriptContent}\n return ${className}; };`;\n\n document.body.appendChild(script);\n\n const ScriptClass = (window as any)?.[id]?.(vendorMap);\n\n document.body.removeChild(script);\n\n return ScriptClass;\n};\n","import { Directive } from '@angular/core';\nimport { ElementComponent } from '../components/element.component';\nimport { PluginComponent } from '../components/plugin.component';\nimport { Plugin } from '../engine/models/plugin';\nimport { ELEMENT_METADATA, SHARED_ELEMENT_METADATA } from '../injection-tokens';\nimport { ElementMetadata } from '../types/common.types';\nimport { getScriptClass } from '../utils/script.utils';\n\n@Directive()\nexport class ScriptPlugin implements PluginComponent {\n constructor(public host: ElementComponent) {\n const elementMetadata: ElementMetadata = this.host.injector.get(ELEMENT_METADATA);\n const sharedElementMetadata: ElementMetadata | undefined = this.host.injector.get(SHARED_ELEMENT_METADATA);\n\n this.addScript(sharedElementMetadata);\n this.addScript(elementMetadata);\n }\n\n private addScript(metadata?: ElementMetadata): void {\n if (!metadata?.script) {\n return;\n }\n\n const ScriptClass = getScriptClass(metadata);\n\n if (ScriptClass instanceof Object) {\n const instance: Plugin = new (ScriptClass as any)(this.host);\n this.host.registerPlugin(instance);\n }\n }\n}\n","import { ElementComponent } from './components/element.component';\nimport { ElementHoverPlugin } from './plugins/element-hover.plugin';\nimport { IOPlugin } from './plugins/io.plugin';\nimport { PagePlugin } from './plugins/page.plugin';\nimport { RegionPlugin } from './plugins/region.plugin';\nimport { ScriptPlugin } from './plugins/script.plugin';\nimport { ELEMENT_TYPE, ElementConfig } from './types/common.types';\n\n/*\n * ScriptPlugin must always be the last plugin in the list to make sure user code is running after all pre-initializers.\n */\n\nexport const CONFIG: { [key in ELEMENT_TYPE]: ElementConfig } = {\n CUSTOMIZATION_PAGE: {\n component: ElementComponent,\n plugins: [IOPlugin, ScriptPlugin],\n },\n CUSTOM: {\n component: ElementComponent,\n plugins: [IOPlugin, ElementHoverPlugin, ScriptPlugin],\n },\n CONTAINER: {\n component: ElementComponent,\n defaultTemplate: '<element-children></element-children>',\n plugins: [ScriptPlugin],\n },\n SERVICE: {\n component: ElementComponent,\n plugins: [IOPlugin, ScriptPlugin],\n suppressTemplate: true,\n suppressStyles: true,\n },\n REFERENCE: {\n component: ElementComponent,\n plugins: [IOPlugin, ScriptPlugin],\n suppressTemplate: true,\n },\n PAGE: {\n component: ElementComponent,\n defaultTemplate: '<element-children></element-children>',\n plugins: [IOPlugin, ScriptPlugin, PagePlugin],\n builder: {\n suppressRemovable: true,\n },\n },\n REGION: {\n component: ElementComponent,\n defaultTemplate: '<element-children></element-children>',\n plugins: [IOPlugin, RegionPlugin, ElementHoverPlugin, ScriptPlugin],\n builder: {\n suppressRemovable: true,\n },\n },\n};\n","export function btoaSafe(str?: string): string {\n if (!str) {\n return '';\n }\n try {\n const encoder = new TextEncoder();\n const charCodes = encoder.encode(str);\n const convertedString = charCodes.reduce((r, charCode) => r + String.fromCharCode(charCode), '');\n return window.btoa(convertedString) || '';\n } catch (e) {\n return '';\n }\n}\n\nexport function atobSafe(str?: string): string {\n if (!str) {\n return '';\n }\n try {\n const binary = window.atob(str);\n const bytes = Uint8Array.from({ length: binary.length }, (_, index) => binary.charCodeAt(index));\n const decoder = new TextDecoder('utf-8');\n return decoder.decode(bytes);\n } catch (e) {\n return '';\n }\n}\n","import { UIElement } from '@veloceapps/core';\nimport { flatten, omit } from 'lodash';\nimport { CONFIG } from '../cms.elements';\nimport { IOPlugin } from '../plugins/io.plugin';\nimport { ElementConfig, ElementDefaultMetadata, ElementMetadata, ElementModel, ELEMENT_TYPE } from '../types';\nimport { atobSafe, btoaSafe } from './encoding.utils';\n\nconst EXPORTED_CLASS_REGEX = /export class (\\S+)/;\nconst METADATA_DECORATOR_REGEX = /@ElementDefinition\\(([\\s\\S]+)\\)(\\n|\\r\\n|.)*export class/g;\n\nexport class UiBuildError extends Error {\n public affectedMetadata: ElementMetadata;\n constructor(message: string, affectedMetadata: ElementMetadata) {\n super(message);\n this.name = this.constructor.name;\n this.affectedMetadata = affectedMetadata;\n }\n}\n\nexport const elementToMetadata = (el: UIElement, parentPath?: string): ElementMetadata => {\n const script = atobSafe(el.script);\n const template = atobSafe(el.template);\n const styles = atobSafe(el.styles);\n\n const exportedClassName = script && (EXPORTED_CLASS_REGEX.exec(script) ?? [])[1];\n\n if (!exportedClassName) {\n throw new Error(\"Script doesn't have exported class\");\n }\n\n const elementMetadata = extractElementMetadata(script || '');\n const path = (parentPath ? parentPath + '/' : '') + elementMetadata.name;\n\n return {\n ...elementMetadata,\n path,\n script: script?.replace(METADATA_DECORATOR_REGEX, 'export class'),\n template,\n styles,\n children: el.children.map(child => elementToMetadata(child, path)),\n };\n};\n\nexport const metadataToElement = (metadata: ElementMetadata, recursive: boolean = true): UIElement => {\n const cleanMetadata = omit<ElementMetadata, keyof Omit<ElementMetadata, keyof ElementDefaultMetadata>>(metadata, [\n 'path',\n 'template',\n 'styles',\n 'script',\n 'metadata',\n ]);\n const elMetadata: ElementDefaultMetadata = {\n ...cleanMetadata,\n children: metadata.children.map(({ name }) => name),\n };\n const normalizedElMetadata = normalizeElementMetadata(elMetadata);\n\n if (!metadata.script || !EXPORTED_CLASS_REGEX.test(metadata.script)) {\n throw new UiBuildError(`'${metadata.path}' component script is missing an exported class`, metadata);\n }\n\n const script = btoaSafe(\n metadata.script?.replace(\n EXPORTED_CLASS_REGEX,\n `@ElementDefinition(${stringifyElementMetadata(normalizedElMetadata)})\\nexport class Script`,\n ),\n );\n const template = btoaSafe(metadata.template);\n const styles = btoaSafe(metadata.styles);\n\n return {\n script,\n template,\n styles,\n children: recursive ? metadata.children.map(meta => metadataToElement(meta)) : [],\n };\n};\n\nexport const normalizeElementMetadata = (elementMetadata: ElementDefaultMetadata): ElementDefaultMetadata => {\n const metadata = { ...elementMetadata };\n\n // model\n const { path } = metadata.model ?? {};\n const model: ElementModel | undefined = path ? { path } : undefined;\n if (model) {\n metadata.model = model;\n } else {\n delete metadata.model;\n }\n\n // module\n if (!metadata.module) {\n delete metadata.module;\n }\n\n // reference\n if (!metadata.reference) {\n delete metadata.reference;\n }\n\n // inputs\n const inputs = Object.entries(metadata.inputs ?? {}).reduce((acc, [key, value]) => {\n return { ...acc, [key]: value || null };\n }, {});\n if (inputs && Object.keys(inputs).length > 0) {\n metadata.inputs = inputs;\n } else {\n delete metadata.inputs;\n }\n\n // outputs\n const outputs = Object.entries(metadata.outputs ?? {}).reduce((acc, [key, value]) => {\n return { ...acc, [key]: value || null };\n }, {});\n if (outputs && Object.keys(outputs).length > 0) {\n metadata.outputs = outputs;\n } else {\n delete metadata.outputs;\n }\n\n // children\n if (!metadata.children?.length) {\n delete metadata.children;\n }\n\n // isShared\n if (!metadata.isShared) {\n delete metadata.isShared;\n }\n\n // configuredStyles\n if (!metadata.configuredStyles) {\n delete metadata.configuredStyles;\n }\n\n return metadata;\n};\n\nexport const extractElementMetadata = (script: string): ElementDefaultMetadata => {\n const metadataString = (METADATA_DECORATOR_REGEX.exec(script) ?? [])[1];\n\n // need to reset regex last index to prevent null result for next execution\n METADATA_DECORATOR_REGEX.lastIndex = 0;\n\n return new Function(`return ${metadataString}`)();\n};\n\nexport const extendElementMetadata = (script: string, extend: Partial<ElementDefaultMetadata>): string => {\n const metadataString = (METADATA_DECORATOR_REGEX.exec(script) ?? [])[1];\n\n // need to reset regex last index to prevent null result for next execution\n METADATA_DECORATOR_REGEX.lastIndex = 0;\n\n if (!metadataString) {\n return script;\n }\n\n const updated = { ...new Function(`return ${metadataString}`)(), ...extend };\n return script.replace(metadataString, stringifyElementMetadata(updated));\n};\n\nexport const getElementConfig = (type: ELEMENT_TYPE): ElementConfig => {\n return CONFIG[type];\n};\n\nexport const doesElementSupportIO = (type: ELEMENT_TYPE): boolean => {\n return getElementConfig(type).plugins?.includes(IOPlugin) ?? false;\n};\n\nexport function stringifyElementMetadata(elementMetadata: ElementDefaultMetadata): string {\n const cleaned = JSON.stringify(elementMetadata, null, 2);\n\n return cleaned.replace(/^[\\t ]*\"[^:\\n\\r]+(?<!\\\\)\":/gm, function (match) {\n // Potentially there are more invalid characters which requires object keys to be wrapped in quotes\n if (!match.includes('@')) {\n return match.replace(/\"/g, '');\n }\n\n return match;\n });\n}\n\nexport const isValidScript = (script?: string): boolean => {\n if (!script) {\n return false;\n }\n\n const exportedClassName = script && (EXPORTED_CLASS_REGEX.exec(script) ?? [])[1];\n if (!exportedClassName) {\n return false;\n }\n\n const meta = extractElementMetadata(script);\n if (!meta.name || !meta.type) {\n return false;\n }\n\n return true;\n};\n\nexport function flattenElements(elements: ElementMetadata[]): ElementMetadata[] {\n return flatten(elements.map(el => [el, ...flattenElements(el.children)]));\n}\n\nexport function isSharedElement(el: ElementMetadata): boolean {\n return Boolean(el.isShared) && el.type !== 'REFERENCE';\n}\n\nexport function isElementAngularIO(name: string): boolean {\n return name.startsWith('@');\n}\n\nexport function toElementAngularIO(name: string): string | null {\n if (!isElementAngularIO(name)) {\n return null;\n }\n\n return name.slice(1);\n}\n\nexport function getElementAngularIOs(names: string[]): string[] {\n return names.reduce((trunk: string[], name) => {\n const ngIO = toElementAngularIO(name);\n\n if (ngIO != null) {\n trunk.push(ngIO);\n }\n\n return trunk;\n }, []);\n}\n","import { UIElement } from '@veloceapps/core';\nimport { Observable, from } from 'rxjs';\nimport { ElementMetadata } from '../types/common.types';\nimport { elementToMetadata } from './element.utils';\n\nexport class ElementMetadataWorker {\n constructor(private elements: UIElement[]) {}\n\n public get$(): Observable<ElementMetadata[]> {\n return from((async () => this.processAsync(this.elements))());\n }\n\n private async processAsync(elements: UIElement[]): Promise<ElementMetadata[]> {\n const result: ElementMetadata[] = [];\n await this.processLevelAsync(elements, result);\n return result;\n }\n\n private async processLevelAsync(elements: UIElement[], metadata: ElementMetadata[], parentPath?: string) {\n for (const el of elements) {\n const elMetadata = await this.elementToMetadataAsync(el, parentPath);\n metadata.push(elMetadata);\n await this.processLevelAsync(el.children, elMetadata.children, elMetadata.path);\n }\n }\n\n private elementToMetadataAsync(el: UIElement, parentPath?: string): Promise<ElementMetadata> {\n return new Promise(resolve => {\n setTimeout(() => {\n const metadata = elementToMetadata(\n { script: el.script, template: el.template, styles: el.styles, children: [] },\n parentPath,\n );\n resolve(metadata);\n });\n });\n }\n}\n","import { UIDefinitionType } from '@veloceapps/core';\nimport { Plugin } from './engine/models/plugin';\n\nexport const DEFAULT_PLUGINS: { [key in UIDefinitionType]: (typeof Plugin)[] } = {\n CONFIGURATION: [],\n DEFAULT: [],\n};\n","import { transform } from '@babel/standalone';\nimport { Observable, from } from 'rxjs';\nimport { ElementMetadata } from '../types/common.types';\n\nexport class TranspilationWorker {\n constructor(private elements: ElementMetadata[]) {}\n\n public get$(): Observable<ElementMetadata[]> {\n return from((async () => this.transpileScriptsAsync(this.elements))());\n }\n\n public get(): ElementMetadata[] {\n return this.transpileScripts(this.elements);\n }\n\n private transpileScripts(elements: ElementMetadata[]): ElementMetadata[] {\n return elements.map(el => ({\n ...el,\n script: this.transpile(el),\n children: this.transpileScripts(el.children),\n }));\n }\n\n private async transpileScriptsAsync(elements: ElementMetadata[]): Promise<ElementMetadata[]> {\n const result: ElementMetadata[] = [];\n await this.processLevelAsync(elements, result);\n return result;\n }\n\n private async processLevelAsync(elements: ElementMetadata[], result: ElementMetadata[]) {\n for (const el of elements) {\n const elMetadata = await this.transpileMetadataAsync(el);\n result.push(elMetadata);\n await this.processLevelAsync(el.children, elMetadata.children);\n }\n }\n\n private transpileMetadataAsync(el: ElementMetadata): Promise<ElementMetadata> {\n return new Promise(resolve => {\n setTimeout(() => {\n const result = { ...el, script: this.transpile(el), children: [] };\n resolve(result);\n });\n });\n }\n\n private transpile(el: ElementMetadata): string | undefined {\n if (!el.script) {\n return;\n }\n\n const transformed = transform(el.script, {\n filename: el.name + '.ts',\n presets: ['typescript'],\n sourceMaps: 'inline',\n });\n\n return transformed.code ?? undefined;\n }\n}\n","import { Component, Type } from '@angular/core';\nimport { UIDefinitionMetadata, isDefined } from '@veloceapps/core';\nimport { flatten, kebabCase, set } from 'lodash';\nimport * as sass from 'sass';\nimport { DEFAULT_PLUGINS } from '../cms.default';\nimport { CONFIG } from '../cms.elements';\nimport { LAYOUT } from '../cms.layouts';\nimport { CMSPreviewConfig } from '../components/preview';\nimport { Entity } from '../engine/models/entity';\nimport {\n DEFAULT_PLUGINS_TOKEN,\n ELEMENT_CONFIG,\n ELEMENT_METADATA,\n SHARED_ELEMENT_METADATA,\n UI_DEFINITION_METADATA,\n} from '../injection-tokens';\nimport { ElementMetadata, ElementStyleDeclaration } from '../types';\nimport { getElementAngularIOs } from './element.utils';\nimport { getScriptClass } from './script.utils';\nimport { TranspilationWorker } from './transpilation-worker';\n\nexport class ElementsResolver {\n public elements: ElementMetadata[];\n\n private renderableElements: ElementMetadata[] = [];\n private sharedElements: ElementMetadata[] = [];\n private uiDefMetadata: UIDefinitionMetadata;\n\n constructor(\n private uiDef: UIDefinitionMetadata,\n elements: ElementMetadata[],\n sharedElements: ElementMetadata[] = [],\n private config?: CMSPreviewConfig,\n ) {\n this.sharedElements = this.flattenElements(elements)\n .filter(el => this.isSharedElement(el))\n .concat(sharedElements);\n\n this.elements = elements.map(el => this.processElementMetadata(el)).filter(isDefined);\n\n this.renderableElements = this.getRenderableElements(this.elements);\n\n this.uiDefMetadata = {\n ...this.uiDef,\n customization: this.uiDef.customization ?? this.getDefaultCustomizationState(),\n };\n }\n\n public addElement(element: ElementMetadata): void {\n if (element.isShared) {\n return;\n }\n\n const transpiledElements = new TranspilationWorker([element]).get();\n this.elements = transpiledElements.map(el => this.processElementMetadata(el)).filter(isDefined);\n this.renderableElements = this.getRenderableElements(this.elements);\n }\n\n public getNgComponents(): Record<string, Type<Entity>> {\n return [...this.renderableElements, ...this.sharedElements].filter(isDefined).reduce(\n (trunk, el) => ({\n ...trunk,\n [el.path]: this.resolveElement(el),\n }),\n {},\n );\n }\n\n private flattenElements(elements: ElementMetadata[]): ElementMetadata[] {\n return flatten(elements.map(el => [el, ...this.flattenElements(el.children)]));\n }\n\n private isSharedElement(el: ElementMetadata): boolean {\n return Boolean(el.isShared) && el.type !== 'REFERENCE';\n }\n\n private getRenderableElements(elements: ElementMetadata[]): ElementMetadata[] {\n const renderable: ElementMetadata[] = [];\n\n for (const el of elements) {\n // In `customizationMode` render only element with CUSTOMIZATION_PAGE type\n const typePerMode = Boolean(this.config?.customizationMode) === (el.type === 'CUSTOMIZATION_PAGE');\n if (!this.isSharedElement(el) && typePerMode) {\n const children = el.children.filter(child => !this.isSharedElement(child));\n const renderableChildren = this.getRenderableElements(children);\n renderable.push({ ...el, children }, ...renderableChildren);\n }\n }\n\n return renderable;\n }\n\n private getSharedElement(element: ElementMetadata): ElementMetadata | undefined {\n if (!element.reference) {\n return;\n }\n\n return this.sharedElements.find(el => element.reference === el.name);\n }\n\n private resolveElementTemplate(element: ElementMetadata): string {\n const config = CONFIG[element.type];\n const template = !config.suppressTemplate ? element.template : '';\n\n return template || config.defaultTemplate || '';\n }\n\n private resolveElementStyles(element: ElementMetadata): string {\n const config = CONFIG[element.type];\n let styles = !config.suppressStyles ? element.styles ?? '' : '';\n\n const layout = element.layout && LAYOUT[element.layout];\n if (layout?.styles) {\n styles += layout.styles;\n }\n\n return styles;\n }\n\n private processElementMetadata(sourceElement: ElementMetadata): ElementMetadata | undefined {\n let finalElement: ElementMetadata;\n\n if (sourceElement.type === 'REFERENCE') {\n const sharedElement = this.getSharedElement(sourceElement);\n\n if (!sharedElement) {\n console.warn(`Shared element \"${sourceElement.reference}\" not found`);\n return;\n }\n\n finalElement = {\n ...sourceElement,\n children: this.getSharedChildren(sharedElement.children, sourceElement.path),\n type: sharedElement.type,\n template: sharedElement.template,\n styles: (sharedElement.styles ?? '') + '\\n' + (sourceElement.styles ?? ''),\n inputs: {\n ...sharedElement.inputs,\n ...sourceElement.inputs,\n },\n outputs: {\n ...sharedElement.outputs,\n ...sourceElement.outputs,\n },\n };\n } else {\n finalElement = sourceElement;\n delete sourceElement.reference;\n }\n\n finalElement.template = this.resolveElementTemplate(finalElement);\n finalElement.styles = this.resolveElementStyles(finalElement);\n\n return {\n ...finalElement,\n children: finalElement.children.map(child => this.processElementMetadata(child)).filter(isDefined),\n };\n }\n\n private getSharedChildren(children: ElementMetadata[], parentPath?: string): ElementMetadata[] {\n return children.map(c => {\n if (!c.path) {\n return c;\n }\n\n const [elName] = c.path.split('/').reverse();\n const path = parentPath + '/' + elName;\n\n return {\n ...c,\n path,\n children: this.getSharedChildren(c.children, path),\n };\n });\n }\n\n private resolveElement(element: ElementMetadata): Type<Entity> | undefined {\n const config = CONFIG[element.type];\n const defaultPlugins = DEFAULT_PLUGINS[this.uiDefMetadata.type] ?? [];\n\n if (!config) {\n console.warn(`Unknown element type \"${element.type}\"`);\n return;\n }\n\n const styles = this.getElementStyles(element);\n\n const component: Component = {\n selector: element.isShared ? `vlc-${kebabCase(element.name)}` : 'vl-element',\n template: element.template,\n ...(styles ? { styles: [styles] } : {}),\n providers: [\n { provide: DEFAULT_PLUGINS_TOKEN, useValue: defaultPlugins },\n { provide: UI_DEFINITION_METADATA, useValue: this.uiDefMetadata },\n { provide: ELEMENT_METADATA, useValue: element },\n { provide: SHARED_ELEMENT_METADATA, useValue: this.getSharedElement(element) },\n { provide: ELEMENT_CONFIG, useValue: config },\n ],\n inputs: getElementAngularIOs(Object.keys(element.inputs ?? {})),\n outputs: getElementAngularIOs(Object.keys(element.outputs ?? {})),\n };\n\n const cmp = Component(component)(class C extends config.component {});\n\n set(cmp, 'path', element.path);\n\n return cmp;\n }\n\n private getElementStyles(element: ElementMetadata): string | undefined {\n let result = '';\n\n const configuredStyles = this.convertInlineStylesToCSS(element.configuredStyles);\n if (configuredStyles) {\n // order is important: styles written by user in CSS code should has higher priority\n result += configuredStyles;\n }\n\n if (element.styles) {\n try {\n result += sass.compileString(element.styles).css;\n } catch (_) {\n result += element.styles;\n }\n }\n\n return result || undefined;\n }\n\n private convertInlineStylesToCSS(styles?: ElementStyleDeclaration): string {\n if (!styles) {\n return '';\n }\n\n const entries = Object.entries(styles);\n let result = ':host {\\n';\n\n entries.forEach(([style, value]) => {\n result += ` ${kebabCase(style)}:${value};\\n`;\n });\n\n result += '}\\n';\n\n return result;\n }\n\n private getDefaultCustomizationState(): unknown {\n const customizationPage = this.elements.find(el => el.type === 'CUSTOMIZATION_PAGE');\n if (!customizationPage?.script) {\n return;\n }\n\n const c = getScriptClass(customizationPage);\n return c && 'default' in c ? c.default : undefined;\n }\n}\n","import { DEFAULT_ELEMENT } from '../definitions';\nimport { ElementMetadata, ElementStyleDeclaration, PageLayout, PageType } from '../types';\n\nexport const constructPageChildren = (path: string, layout: PageLayout): ElementMetadata[] => {\n switch (layout) {\n case 'LAYOUT_1': // Header, One region, and Footer\n case 'LAYOUT_4': // Two Regions and Footer\n return [constructRegion('Region A', path), constructRegion('Region B', path), constructRegion('Region C', path)];\n case 'LAYOUT_2': // Header, Two Regions, and Footer\n return [\n constructRegion('Region A', path),\n constructRegion('Region B', path),\n constructRegion('Region C', path),\n constructRegion('Region D', path),\n ];\n case 'LAYOUT_3': // One Region and Footer\n case 'LAYOUT_5': // Header and One Region\n return [constructRegion('Region A', path), constructRegion('Region B', path)];\n case 'LAYOUT_6': // One Region\n case 'LAYOUT_7': // Left Sidepanel\n case 'LAYOUT_8': // Right Sidepanel\n return [constructRegion('Region A', path)];\n default:\n return [];\n }\n};\n\nexport const constructRegion = (name: string, parentPath: string): ElementMetadata => {\n return {\n name,\n path: `${parentPath}/${name}`,\n type: 'REGION',\n children: [],\n ...DEFAULT_ELEMENT,\n };\n};\n\nexport const constructPage = (\n name: string,\n pageType: PageType,\n layout: PageLayout,\n configuredStyles?: ElementStyleDeclaration,\n): ElementMetadata => {\n return {\n name,\n path: name,\n type: 'PAGE',\n layout,\n pageType,\n configuredStyles,\n children: constructPageChildren(name, layout),\n ...DEFAULT_ELEMENT,\n };\n};\n","import { Directive, ViewContainerRef } from '@angular/core';\n\n@Directive({\n selector: '[vlFederatedHost]',\n})\nexport class FederatedHostDirective {\n constructor(public viewContainerRef: ViewContainerRef) {}\n}\n","export const defaultOptions = {\n suppressLoading: false,\n loadingLabel: 'LOADING',\n};\n","import { loadRemoteModule } from '@angular-architects/module-federation';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n createNgModule,\n Injector,\n Input,\n OnChanges,\n OnInit,\n SimpleChanges,\n ViewChild,\n} from '@angular/core';\nimport { VlWindow } from '@veloceapps/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { defaultOptions } from './default-options';\nimport { FederatedHostDirective } from './federated-host.directive';\nimport { FederatedComponentInstance, FederatedModuleOptions } from './federated.types';\n\ndeclare const window: VlWindow;\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'veloce-host-federated',\n templateUrl: './federated.component.html',\n styleUrls: ['./federated.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FederatedComponent implements OnInit, AfterViewInit, OnChanges {\n @ViewChild(FederatedHostDirective, { static: true }) public host!: FederatedHostDirective;\n\n @Input() public remoteEntry?: string;\n @Input() public remoteName?: string;\n @Input() public exposedModule?: string;\n @Input() public data?: unknown;\n @Input() public options?: FederatedModuleOptions;\n\n public isLoading$ = new BehaviorSubject(false);\n public suppressLoading = defaultOptions.suppressLoading;\n public loadingLabel = defaultOptions.loadingLabel;\n\n private instance?: FederatedComponentInstance;\n\n constructor(private injector: Injector) {}\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes['data'] && this.instance) {\n this.instance.data = this.data;\n }\n\n if (changes['options']) {\n this.suppressLoading = this.options?.suppressLoading ?? defaultOptions.suppressLoading;\n this.loadingLabel = this.options?.loadingLabel ?? defaultOptions.loadingLabel;\n }\n }\n\n public ngOnInit(): void {\n this.isLoading$.next(true);\n }\n\n public ngAfterViewInit(): void {\n const remoteEntry = this.options?.remoteEntry ?? this.remoteEntry;\n const exposedModule = this.options?.exposedModule ?? this.exposedModule;\n\n if (!remoteEntry || !exposedModule) {\n return;\n }\n\n loadRemoteModule({\n type: 'module',\n remoteEntry: this.normalizeRemoteEntry(remoteEntry),\n exposedModule,\n }).then(federated => {\n const moduleRef = createNgModule(federated[exposedModule], this.injector);\n const componentRef = this.host.viewContainerRef.createComponent<FederatedComponentInstance>(\n federated[exposedModule].rootComponent,\n { ngModuleRef: moduleRef },\n );\n\n componentRef.instance.data = this.data;\n\n this.options?.onReady?.();\n this.isLoading$.next(false);\n });\n }\n\n private normalizeRemoteEntry(value: string): string {\n const { proxyTargetUrl, VELO_API } = window;\n\n if (proxyTargetUrl && VELO_API) {\n return value.replace(proxyTargetUrl, VELO_API);\n }\n\n return value;\n }\n}\n","<ng-template vlFederatedHost></ng-template>\n\n<vl-loader *ngIf=\"!suppressLoading && (isLoading$ | async)\" [label]=\"loadingLabel\"></vl-loader>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { LoaderModule } from '@veloceapps/components';\nimport { FederatedHostDirective } from './federated-host.directive';\nimport { FederatedComponent } from './federated.component';\n\n@NgModule({\n declarations: [FederatedComponent, FederatedHostDirective],\n imports: [CommonModule, LoaderModule],\n exports: [FederatedComponent],\n})\nexport class FederatedModule {}\n","import { DragDropModule } from '@angular/cdk/drag-drop';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nimport { CommonModule } from '@angular/common';\nimport { createNgModule, Injectable, Injector, NgModule, Type } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { ErrorTooltipModule, HiddenTextTooltipModule, LetDirectiveModule } from '@veloceapps/components';\nimport { UIDefinition, UIDefinitionMetadata } from '@veloceapps/core';\nimport { SdkPipesModule } from '@veloceapps/sdk/core';\nimport { DndModule } from 'ngx-drag-drop';\nimport { combineLatest, map, Observable, of, switchMap } from 'rxjs';\nimport { ElementChildrenModule } from '../../../components/element-children/element-children.module';\nimport { ElementDropHandleModule } from '../../../components/element-drop-handle/element-drop-handle.module';\nimport { ElementRendererModule } from '../../../components/element-renderer/element-renderer.module';\nimport { CMSPreviewConfig } from '../../../components/preview';\nimport { CustomTemplateDirectiveModule } from '../../../directives/custom-template.directive';\nimport { Entity } from '../../../engine/models/entity';\nimport { CompilationResult } from '../../../modules/runtime/types/compilation.types';\nimport { ElementMetadata } from '../../../types/common.types';\nimport { ElementMetadataWorker, ElementsResolver, TranspilationWorker } from '../../../utils';\nimport { FederatedModule } from '../../federated/federated.module';\n\n@Injectable()\nexport class CompilationService {\n private uiDefinitionMeta?: UIDefinitionMetadata;\n private elementsResolver?: ElementsResolver;\n\n constructor(private injector: Injector) {}\n\n public compileUIDefinition$(uiDefinition: UIDefinition, config?: CMSPreviewConfig): Observable<CompilationResult> {\n return of([]).pipe(\n map(() => {\n const { children, pages, components, ...uiDefinitionMeta } = uiDefinition;\n this.uiDefinitionMeta = uiDefinitionMeta;\n\n const elements = [...(children ?? []), ...(pages ?? [])];\n const sharedElements = components ?? [];\n return [elements, sharedElements];\n }),\n switchMap(elementsChunks => combineLatest(elementsChunks.map(chunk => new ElementMetadataWorker(chunk).get$()))),\n switchMap(dataChunks => combineLatest(dataChunks.map(chunk => new TranspilationWorker(chunk).get$()))),\n map(([metadata, sharedMetadata]) => {\n this.elementsResolver = new ElementsResolver(uiDefinition, metadata ?? [], sharedMetadata, config);\n const componentTypes = this.elementsResolver.getNgComponents();\n const module = this.getModule(componentTypes);\n\n return {\n moduleRef: createNgModule(module, this.injector),\n elements: this.elementsResolver?.elements ?? [],\n componentTypes,\n };\n }),\n );\n }\n\n public compileElement$(element: ElementMetadata): Observable<CompilationResult> {\n if (!this.uiDefinitionMeta) {\n throw 'No UI Definition context';\n }\n\n return of(this.uiDefinitionMeta).pipe(\n map(uiDefinition => {\n const elementsResolver = this.elementsResolver ?? new ElementsResolver(uiDefinition, []);\n elementsResolver.addElement(element);\n const componentTypes = elementsResolver.getNgComponents();\n const module = this.getModule(componentTypes);\n\n return {\n moduleRef: createNgModule(module, this.injector),\n elements: this.elementsResolver?.elements ?? [],\n componentTypes,\n };\n }),\n );\n }\n\n public clear(): void {\n this.uiDefinitionMeta = undefined;\n }\n\n private getModule(components: Record<string, Type<Entity>>): Type<NgModule> {\n @NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n DragDropModule,\n DndModule,\n ScrollingModule,\n ElementChildrenModule,\n ElementRendererModule,\n ElementDropHandleModule,\n CustomTemplateDirectiveModule,\n FederatedModule,\n SdkPipesModule,\n LetDirectiveModule,\n HiddenTextTooltipModule,\n ErrorTooltipModule,\n ],\n declarations: Object.values(components),\n jit: true,\n })\n class DynamicModule {}\n\n return DynamicModule;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { CoreModule } from '@veloceapps/core';\nimport { DialogService } from 'primeng/dynamicdialog';\nimport { CompilationService } from './services/compilation.service';\nimport { RuntimeEditorService } from './services/runtime-editor.service';\nimport { RuntimeService } from './services/runtime.service';\nimport { CMS_COMPILATION_SERVICE } from './tokens';\n\n@NgModule({\n imports: [CommonModule, CoreModule],\n providers: [\n DialogService,\n RuntimeService,\n RuntimeEditorService,\n { provide: CMS_COMPILATION_SERVICE, useClass: CompilationService },\n ],\n})\nexport class RuntimeModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ApiModule } from '@veloceapps/api';\nimport { CoreModule } from '@veloceapps/core';\nimport { SdkCoreModule } from '@veloceapps/sdk/core';\nimport { DialogService } from 'primeng/dynamicdialog';\nimport { PreviewModule } from './components/preview';\nimport { RuntimeModule } from './modules/runtime';\nimport { ResourcesService } from './services';\n\n@NgModule({\n imports: [CommonModule, CoreModule, ApiModule, SdkCoreModule, RuntimeModule, PreviewModule],\n providers: [DialogService, ResourcesService],\n exports: [PreviewModule],\n})\nexport class LauncherModule {}\n","import { STARTING_PAGE_LAYOUT, STARTING_PAGE_NAME, STARTING_PAGE_STYLES, STARTING_PAGE_TYPE } from '../../definitions';\nimport { constructPage, metadataToElement } from '../../utils';\nimport { UIDefinitionMigrationFn } from './types/migrations.types';\n\nexport const migrations: Record<number, UIDefinitionMigrationFn> = {\n 2: () => {\n throw 'Migration from Legacy UI definition is not possible';\n },\n 3: uiDef => {\n const startingPage = metadataToElement(\n constructPage(STARTING_PAGE_NAME, STARTING_PAGE_TYPE, STARTING_PAGE_LAYOUT, STARTING_PAGE_STYLES),\n );\n\n // overwrite children if provided from the UI Definition\n if (startingPage.children[0] && uiDef.children && uiDef.children.length > 0) {\n // the starting page has the One Region Layout\n startingPage.children[0].children = uiDef.children;\n }\n\n return {\n ...uiDef,\n children: undefined,\n pages: [startingPage],\n version: 3,\n };\n },\n};\n","import { Injectable } from '@angular/core';\nimport { ToastService, ToastType } from '@veloceapps/components';\nimport { UIDefinition } from '@veloceapps/core';\nimport { UI_DEFINITION_VERSION } from '@veloceapps/sdk/core';\nimport { cloneDeep } from 'lodash';\nimport { migrations } from '../migrations';\n\n@Injectable({ providedIn: 'root' })\nexport class MigrationsService {\n constructor(private toastService: ToastService) {}\n\n public migrateUIDefinition(uiDef: UIDefinition): UIDefinition | undefined {\n const currentVersion = uiDef.version;\n const targetVersion = UI_DEFINITION_VERSION;\n\n const migrateVersions = Object.keys(migrations)\n .reduce((acc: number[], version) => {\n const v = Number(version);\n if (v > currentVersion && v <= targetVersion) {\n acc.push(v);\n }\n\n return acc;\n }, [])\n .sort();\n\n try {\n let result = cloneDeep(uiDef);\n\n for (const version of migrateVersions) {\n const migration = migrations[version];\n if (!migration) {\n throw `V=${version} migration strategy is not defined`;\n }\n\n result = migration(result);\n }\n\n return result;\n } catch (e) {\n this.toastService.add({ summary: String(e), severity: ToastType.error });\n return;\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { MigrationsService } from './services/migrations.service';\n\n@NgModule({\n providers: [MigrationsService],\n})\nexport class MigrationsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i1.RuntimeService","i2.ElementContextService","i3.IOProviderService","i5.ElementRendererComponent","i1.RuntimeEditorService","i2","i1.ElementContextService","i2.RuntimeService","i3.RuntimeEditorService","i6.ElementDropHandleComponent","i1.TemplatesService","i1.ElementComponent","angularCore","i3.FederatedHostDirective"],"mappings":"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"}
|