@veloceapps/sdk 11.0.0-18 → 11.0.0-19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cms/cms.actions.d.ts +0 -13
- package/esm2020/cms/cms.actions.mjs +1 -13
- package/esm2020/core/services/flow-state.service.mjs +4 -4
- package/fesm2015/veloceapps-sdk-cms.mjs +0 -12
- package/fesm2015/veloceapps-sdk-cms.mjs.map +1 -1
- package/fesm2015/veloceapps-sdk-core.mjs +3 -3
- package/fesm2015/veloceapps-sdk-core.mjs.map +1 -1
- package/fesm2020/veloceapps-sdk-cms.mjs +0 -12
- package/fesm2020/veloceapps-sdk-cms.mjs.map +1 -1
- package/fesm2020/veloceapps-sdk-core.mjs +3 -3
- package/fesm2020/veloceapps-sdk-core.mjs.map +1 -1
- package/package.json +1 -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/modules/runtime/tokens.ts","../../../../libs/sdk/cms/modules/runtime/services/runtime.service.ts","../../../../libs/sdk/cms/utils/path.utils.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/types/layouts.types.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 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 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) => {\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 * Emit customization page changes\n *\n * @param changes - object with customization page changes\n */\n export const EmitCustomizationChanges = (changes: CustomizationChanges) => {\n return {\n type: EMIT_CUSTOMIZATION_CHANGES,\n payload: { changes },\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 { 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 { 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 { 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 * List of available layouts for Full Page Type:\n *\n LAYOUT_1\n +-------------------------+\n | 1. HEADER |\n |-------------------------|\n | |\n | 2. CONTAINER |\n | |\n |-------------------------|\n | 3. FOOTER |\n +-------------------------+\n\n LAYOUT_2\n +-------------------------+\n | 1. HEADER |\n |------------+------------|\n | | |\n | 2. LEFT | 3. RIGHT |\n | | |\n |------------+------------|\n | 4. FOOTER |\n +-------------------------+\n\n LAYOUT_3\n +-------------------------+\n | |\n | |\n | 1. CONTAINER |\n | |\n | |\n |-------------------------|\n | 2. FOOTER |\n +-------------------------+\n\n LAYOUT_4\n +-------------------------+\n | | |\n | | |\n | 1. LEFT | 2. RIGHT |\n | | |\n | | |\n |------------+------------|\n | 3. FOOTER |\n +-------------------------+\n\n LAYOUT_5\n +-------------------------+\n | 1. HEADER |\n |-------------------------|\n | |\n | |\n | 2. CONTAINER |\n | |\n | |\n +-------------------------+\n\n LAYOUT_6\n +-------------------------+\n | |\n | |\n | |\n | 1. CONTAINER |\n | |\n | |\n | |\n +-------------------------+\n */\n\n/**\n * List of available layouts for Sidepanel Page Type:\n *\n LAYOUT_7\n +-------------------------+\n | | |\n | | |\n | LEFT | DISABLED |\n | SIDE | PAGE |\n | PANEL | |\n | | |\n | | |\n +-------------------------+\n\n LAYOUT_8\n +-------------------------+\n | | |\n | | |\n | DISABLED | RIGHT |\n | PAGE | SIDE |\n | | PANEL |\n | | |\n | | |\n +-------------------------+\n */\n\nexport type FullPageLayout = 'LAYOUT_1' | 'LAYOUT_2' | 'LAYOUT_3' | 'LAYOUT_4' | 'LAYOUT_5' | 'LAYOUT_6';\nexport type SidepanelPageLayout = 'LAYOUT_7' | 'LAYOUT_8';\nexport type PageLayout = FullPageLayout | SidepanelPageLayout;\n\nexport interface PageLayoutConfig {\n hasHeader: boolean;\n hasFooter: boolean;\n styles?: string;\n}\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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"}
|
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/modules/runtime/tokens.ts","../../../../libs/sdk/cms/modules/runtime/services/runtime.service.ts","../../../../libs/sdk/cms/utils/path.utils.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/types/layouts.types.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 { 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 { 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 { 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 * List of available layouts for Full Page Type:\n *\n LAYOUT_1\n +-------------------------+\n | 1. HEADER |\n |-------------------------|\n | |\n | 2. CONTAINER |\n | |\n |-------------------------|\n | 3. FOOTER |\n +-------------------------+\n\n LAYOUT_2\n +-------------------------+\n | 1. HEADER |\n |------------+------------|\n | | |\n | 2. LEFT | 3. RIGHT |\n | | |\n |------------+------------|\n | 4. FOOTER |\n +-------------------------+\n\n LAYOUT_3\n +-------------------------+\n | |\n | |\n | 1. CONTAINER |\n | |\n | |\n |-------------------------|\n | 2. FOOTER |\n +-------------------------+\n\n LAYOUT_4\n +-------------------------+\n | | |\n | | |\n | 1. LEFT | 2. RIGHT |\n | | |\n | | |\n |------------+------------|\n | 3. FOOTER |\n +-------------------------+\n\n LAYOUT_5\n +-------------------------+\n | 1. HEADER |\n |-------------------------|\n | |\n | |\n | 2. CONTAINER |\n | |\n | |\n +-------------------------+\n\n LAYOUT_6\n +-------------------------+\n | |\n | |\n | |\n | 1. CONTAINER |\n | |\n | |\n | |\n +-------------------------+\n */\n\n/**\n * List of available layouts for Sidepanel Page Type:\n *\n LAYOUT_7\n +-------------------------+\n | | |\n | | |\n | LEFT | DISABLED |\n | SIDE | PAGE |\n | PANEL | |\n | | |\n | | |\n +-------------------------+\n\n LAYOUT_8\n +-------------------------+\n | | |\n | | |\n | DISABLED | RIGHT |\n | PAGE | SIDE |\n | | PANEL |\n | | |\n | | |\n +-------------------------+\n */\n\nexport type FullPageLayout = 'LAYOUT_1' | 'LAYOUT_2' | 'LAYOUT_3' | 'LAYOUT_4' | 'LAYOUT_5' | 'LAYOUT_6';\nexport type SidepanelPageLayout = 'LAYOUT_7' | 'LAYOUT_8';\nexport type PageLayout = FullPageLayout | SidepanelPageLayout;\n\nexport interface PageLayoutConfig {\n hasHeader: boolean;\n hasFooter: boolean;\n styles?: string;\n}\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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"}
|