@veloceapps/sdk 2.0.12 → 2.0.13

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.
Files changed (95) hide show
  1. package/bundles/veloce-sdk-cms.umd.js +94 -78
  2. package/bundles/veloce-sdk-cms.umd.js.map +1 -1
  3. package/bundles/veloce-sdk-runtime.umd.js +143 -143
  4. package/bundles/veloce-sdk-runtime.umd.js.map +1 -1
  5. package/bundles/veloce-sdk.umd.js +60 -60
  6. package/bundles/veloce-sdk.umd.js.map +1 -1
  7. package/esm2015/cms/components/element-children/element-children.component.js +3 -3
  8. package/esm2015/cms/components/element-children/element-children.module.js +4 -4
  9. package/esm2015/cms/components/element-renderer/element-renderer.component.js +3 -3
  10. package/esm2015/cms/components/element-renderer/element-renderer.module.js +4 -4
  11. package/esm2015/cms/components/federated/federated.component.js +3 -3
  12. package/esm2015/cms/components/federated/federated.module.js +4 -4
  13. package/esm2015/cms/components/plugin.component.js +3 -3
  14. package/esm2015/cms/components/preview/preview.component.js +3 -3
  15. package/esm2015/cms/components/preview/preview.module.js +4 -4
  16. package/esm2015/cms/directives/custom-template.directive.js +3 -3
  17. package/esm2015/cms/launcher.module.js +21 -7
  18. package/esm2015/cms/modules/configuration/configuration.module.js +4 -4
  19. package/esm2015/cms/modules/configuration/services/configuration-runtime.service.js +3 -3
  20. package/esm2015/cms/modules/configuration/services/configuration.service.js +3 -3
  21. package/esm2015/cms/modules/configuration/services/runtime-context.service.js +3 -3
  22. package/esm2015/cms/plugins/configuration.plugin.js +3 -3
  23. package/esm2015/cms/plugins/io.plugin.js +3 -3
  24. package/esm2015/cms/plugins/script.plugin.js +3 -3
  25. package/esm2015/cms/services/dynamic-module.service.js +3 -3
  26. package/esm2015/cms/services/element-context.service.js +3 -3
  27. package/esm2015/cms/services/io-provider.service.js +3 -3
  28. package/esm2015/cms/services/launcher.service.js +7 -6
  29. package/esm2015/cms/services/templates.service.js +3 -3
  30. package/esm2015/cms/vendor-map.js +4 -2
  31. package/esm2015/runtime/components/component-preview/component-preview.component.js +3 -3
  32. package/esm2015/runtime/components/section-renderer/section-renderer.component.js +3 -3
  33. package/esm2015/runtime/components/ui-runtime/runtime.component.js +3 -3
  34. package/esm2015/runtime/components/ui-runtime-preview/runtime-preview.component.js +3 -3
  35. package/esm2015/runtime/execution/components/children-placeholder/children-placeholder.component.js +6 -6
  36. package/esm2015/runtime/execution/components/context-provider/context-provider.component.js +3 -3
  37. package/esm2015/runtime/execution/components/execution-section-renderer/execution-section-renderer.component.js +3 -3
  38. package/esm2015/runtime/execution/components/federated/federated.component.js +3 -3
  39. package/esm2015/runtime/execution/components/velo-attribute/velo-attribute.component.js +3 -3
  40. package/esm2015/runtime/execution/components/velo-multiselect/velo-multiselect.component.js +3 -3
  41. package/esm2015/runtime/execution/components/velo-port-checkbox/velo-port-checkbox.component.js +3 -3
  42. package/esm2015/runtime/execution/components/velo-port-dropdown/velo-port-dropdown.component.js +3 -3
  43. package/esm2015/runtime/execution/components/velo-port-radio/velo-port-radio.component.js +3 -3
  44. package/esm2015/runtime/execution/components/velo-type/velo-type.component.js +3 -3
  45. package/esm2015/runtime/execution/directives/section-script.directive.js +3 -3
  46. package/esm2015/runtime/execution/directives/sf-query.directive.js +3 -3
  47. package/esm2015/runtime/execution/directives/velo-attribute.directive.js +3 -3
  48. package/esm2015/runtime/execution/directives/velo-port.directive.js +18 -18
  49. package/esm2015/runtime/execution/directives/vl-approval.directive.js +3 -3
  50. package/esm2015/runtime/execution/directives/vl-document-attachments.directive.js +3 -3
  51. package/esm2015/runtime/execution/directives/vl-document-templates.directive.js +3 -3
  52. package/esm2015/runtime/execution/directives/vl-quote.directive.js +3 -3
  53. package/esm2015/runtime/execution/directives/vl-ramp.directive.js +3 -3
  54. package/esm2015/runtime/execution/runtime-execution.module.js +4 -4
  55. package/esm2015/runtime/runtime.module.js +4 -4
  56. package/esm2015/runtime/services/cart.service.js +3 -3
  57. package/esm2015/runtime/services/collapsible-state.service.js +3 -3
  58. package/esm2015/runtime/services/configuration.service.js +3 -3
  59. package/esm2015/runtime/services/context.service.js +3 -3
  60. package/esm2015/runtime/services/current-state.service.js +3 -3
  61. package/esm2015/runtime/services/form-scope.service.js +3 -3
  62. package/esm2015/runtime/services/product-model-cache.service.js +3 -3
  63. package/esm2015/runtime/services/quote.service.js +3 -3
  64. package/esm2015/runtime/services/runtime-context.service.js +3 -3
  65. package/esm2015/runtime/services/runtime-form.service.js +3 -3
  66. package/esm2015/runtime/services/runtime.service.js +3 -3
  67. package/esm2015/runtime/services/section-helper.service.js +3 -3
  68. package/esm2015/runtime/services/section-scope.service.js +3 -3
  69. package/esm2015/runtime/services/section-store.service.js +3 -3
  70. package/esm2015/runtime/services/section.service.js +6 -6
  71. package/esm2015/src/flow-routing.module.js +4 -4
  72. package/esm2015/src/flow.component.js +3 -3
  73. package/esm2015/src/flow.module.js +4 -4
  74. package/esm2015/src/guards/context.guard.js +3 -3
  75. package/esm2015/src/guards/root.guard.js +3 -3
  76. package/esm2015/src/pages/debug/debug.component.js +3 -3
  77. package/esm2015/src/pages/debug/debug.module.js +4 -4
  78. package/esm2015/src/pages/legacy-product/legacy-product.component.js +3 -3
  79. package/esm2015/src/pages/legacy-product/legacy-product.module.js +4 -4
  80. package/esm2015/src/pages/product/product.component.js +3 -3
  81. package/esm2015/src/pages/product/product.module.js +4 -4
  82. package/esm2015/src/pages/record-not-found/record-not-found.component.js +3 -3
  83. package/esm2015/src/pages/record-not-found/record-not-found.module.js +4 -4
  84. package/esm2015/src/resolvers/context.resolver.js +3 -3
  85. package/esm2015/src/resolvers/flow.resolver.js +3 -3
  86. package/esm2015/src/resolvers/quote.resolver.js +3 -3
  87. package/esm2015/src/services/flow.service.js +3 -3
  88. package/esm2015/src/services/router.service.js +3 -3
  89. package/fesm2015/veloce-sdk-cms.js +93 -76
  90. package/fesm2015/veloce-sdk-cms.js.map +1 -1
  91. package/fesm2015/veloce-sdk-runtime.js +143 -143
  92. package/fesm2015/veloce-sdk-runtime.js.map +1 -1
  93. package/fesm2015/veloce-sdk.js +60 -60
  94. package/fesm2015/veloce-sdk.js.map +1 -1
  95. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"veloce-sdk-cms.js","sources":["../../../../libs/sdk/cms/injection-tokens.ts","../../../../libs/sdk/cms/engine/models/entity.ts","../../../../libs/sdk/cms/components/element.component.ts","../../../../libs/sdk/cms/utils/path.utils.ts","../../../../libs/sdk/cms/services/dynamic-module.service.ts","../../../../libs/sdk/cms/services/io-provider.service.ts","../../../../libs/sdk/cms/services/templates.service.ts","../../../../libs/sdk/cms/plugins/io.plugin.ts","../../../../libs/sdk/cms/plugins/script.plugin.ts","../../../../libs/sdk/cms/cms.elements.ts","../../../../libs/sdk/cms/utils/element.utils.ts","../../../../libs/sdk/cms/services/element-context.service.ts","../../../../libs/sdk/cms/utils/line-item.utils.ts","../../../../libs/sdk/cms/types/line-item.types.ts","../../../../libs/sdk/cms/modules/configuration/helpers.ts","../../../../libs/sdk/cms/modules/configuration/services/runtime-context.service.ts","../../../../libs/sdk/cms/modules/configuration/services/configuration-runtime.service.ts","../../../../libs/sdk/cms/modules/configuration/services/configuration.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/element-children/element-children.component.ts","../../../../libs/sdk/cms/components/element-children/element-children.component.html","../../../../libs/sdk/cms/utils/federated.util.ts","../../../../libs/sdk/cms/components/federated/federated.component.ts","../../../../libs/sdk/cms/components/federated/federated.component.html","../../../../libs/sdk/cms/components/federated/federated.module.ts","../../../../libs/sdk/cms/directives/custom-template.directive.ts","../../../../libs/sdk/cms/plugins/configuration.plugin.ts","../../../../libs/sdk/cms/cms.default.ts","../../../../libs/sdk/cms/vendor-map.ts","../../../../libs/sdk/cms/utils/elements-resolver.ts","../../../../libs/sdk/cms/services/launcher.service.ts","../../../../libs/sdk/cms/components/preview/preview.component.ts","../../../../libs/sdk/cms/components/preview/preview.component.html","../../../../libs/sdk/cms/components/element-renderer/element-renderer.module.ts","../../../../libs/sdk/cms/components/element-children/element-children.module.ts","../../../../libs/sdk/cms/components/preview/preview.module.ts","../../../../libs/sdk/cms/decorators/element.decorator.ts","../../../../libs/sdk/cms/modules/configuration/configuration.module.ts","../../../../libs/sdk/cms/launcher.module.ts","../../../../libs/sdk/cms/veloce-sdk-cms.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { Dictionary } from 'lodash';\nimport { Plugin } from './engine/models/plugin';\nimport { ElementConfig, ElementMetadata } from './types/common.types';\nimport { UIDefinitionMetadata } from './types/ui-definition.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>('SHARED_ELEMENT_METADATA_TOKEN');\nexport const ELEMENT_CONFIG = new InjectionToken<ElementConfig>('ELEMENT_CONFIG_TOKEN');\nexport const VENDOR_MAP = new InjectionToken<Dictionary<any>>('VENDOR_MAP');\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() {\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) {\n this.plugins.push(plugin);\n }\n}\n","import { AfterViewInit, ChangeDetectionStrategy, Component, Inject, Injector, OnDestroy, OnInit } 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 extends Entity implements OnInit, AfterViewInit, OnDestroy {\n public readonly model$ = new BehaviorSubject<any | undefined>(undefined);\n public readonly plugins!: IPluginComponent[];\n\n constructor(@Inject(Injector) public injector: Injector) {\n super(injector);\n\n super.initPlugins();\n }\n\n ngOnInit(): void {\n this.plugins.forEach(plugin => plugin.ngOnInit?.());\n }\n\n ngAfterViewInit() {\n this.plugins.forEach(plugin => plugin.ngAfterViewInit?.());\n }\n\n ngOnDestroy(): void {\n this.plugins.forEach(plugin => plugin.ngOnDestroy?.());\n }\n}\n","import { ElementMetadata, ElementPath } from '../types';\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 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 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 { ComponentFactory, Injectable } from '@angular/core';\nimport { ElementMetadata } from '../types/common.types';\n\n@Injectable()\nexport class DynamicModuleService {\n private _elementsTree: ElementMetadata[] = [];\n private _componentFactories: ComponentFactory<any>[] = [];\n\n set componentFactories(data: ComponentFactory<any>[]) {\n this._componentFactories = data;\n }\n\n get componentFactories(): ComponentFactory<any>[] {\n return this._componentFactories;\n }\n\n getComponentFactory(element: ElementMetadata): ComponentFactory<any> | undefined {\n return this.componentFactories.find(f => (f.componentType as any).path === element.path);\n }\n\n get elementsTree(): ElementMetadata[] {\n return this._elementsTree;\n }\n\n set elementsTree(tree: ElementMetadata[]) {\n this._elementsTree = tree;\n }\n\n clear() {\n this._elementsTree = [];\n this.componentFactories = [];\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Dictionary } from 'lodash';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { ElementMetadata } from '../types/common.types';\nimport { getAbsolutePath, parsePath } from '../utils/path.utils';\nimport { DynamicModuleService } from './dynamic-module.service';\n\n@Injectable()\nexport class IOProviderService {\n private inputs: Dictionary<Dictionary<BehaviorSubject<any>>> = {};\n\n constructor(private dynamicModuleService: DynamicModuleService) {}\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 elPath = parsePath(target as string);\n const pathIsValue =\n elPath.segments.length === 1 && elPath.segments[0].startsWith('\"') && elPath.segments[0].endsWith('\"');\n\n const finalName = elPath.variable ?? name;\n const value = pathIsValue ? new BehaviorSubject(elPath.segments[0].slice(1, -1)) : undefined;\n\n const absolutePath = !pathIsValue ? getAbsolutePath(this.dynamicModuleService.elementsTree, el, elPath) : el.path;\n return this.createSubjectSafe(absolutePath ?? '', finalName, value);\n }\n\n private createSubjectSafe(path: string, name: string, subject?: BehaviorSubject<any>): BehaviorSubject<any> {\n if (!this.inputs[path]) {\n this.inputs[path] = {};\n }\n\n const subjectAlreadyExists = Boolean(this.inputs[path][name]);\n\n if (!this.inputs[path][name]) {\n this.inputs[path][name] = subject ?? new BehaviorSubject<any>(undefined);\n }\n\n if (subject && subjectAlreadyExists) {\n // push delayed value to workaround 'changed after it was checked' issue\n setTimeout(() => this.inputs[path][name].next(subject.value));\n }\n\n return this.inputs[path][name];\n }\n}\n","import { Injectable, TemplateRef } from '@angular/core';\nimport { Dictionary } from 'lodash';\n\n@Injectable()\nexport class TemplatesService {\n private templates: Dictionary<TemplateRef<any>> = {};\n\n public register(name: string, templateRef: TemplateRef<any>) {\n this.templates[name] = templateRef;\n }\n\n public get(name: string): TemplateRef<any> | undefined {\n return this.templates[name];\n }\n}\n","import { Directive } 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';\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 (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 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 { DOCUMENT } from '@angular/common';\nimport { Directive } from '@angular/core';\nimport { UUID } from '@veloce/core';\nimport { Dictionary } from 'lodash';\nimport { ElementComponent } from '../components/element.component';\nimport { PluginComponent } from '../components/plugin.component';\nimport { ELEMENT_METADATA, SHARED_ELEMENT_METADATA, VENDOR_MAP } from '../injection-tokens';\nimport { ElementMetadata } from '../types/common.types';\n\nconst normalizeImports = (script: string) => {\n const regexp = 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 const result = script.replace(regexp, (match, g1, g2, src) => `const ${g1} = vendor['${src}'];`);\n return result;\n};\n\n@Directive()\nexport class ScriptPlugin implements PluginComponent {\n private document: Document;\n private vendorMap: Dictionary<any>;\n\n constructor(public host: ElementComponent) {\n this.document = this.host.injector.get(DOCUMENT);\n this.vendorMap = this.host.injector.get(VENDOR_MAP);\n const elementMetadata: ElementMetadata = this.host.injector.get(ELEMENT_METADATA);\n const sharedElementMetadata: ElementMetadata | undefined = this.host.injector.get(SHARED_ELEMENT_METADATA);\n\n if (sharedElementMetadata?.script) {\n this.addScript(sharedElementMetadata.script);\n }\n\n if (elementMetadata.script) {\n this.addScript(elementMetadata.script);\n }\n }\n\n private addScript(scriptStr: string) {\n const id = btoa(UUID.UUID());\n const script = this.document.createElement('script');\n script.type = `text/javascript`;\n\n let scriptContent = normalizeImports(scriptStr);\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 this.document.body.appendChild(script);\n\n const ScriptClass = (window as any)[id](this.vendorMap);\n if (ScriptClass instanceof Object) {\n this.host.registerPlugin(new ScriptClass(this.host));\n }\n\n this.document.body.removeChild(script);\n }\n}\n","import { ElementComponent } from './components/element.component';\nimport { IOPlugin } from './plugins/io.plugin';\nimport { ScriptPlugin } from './plugins/script.plugin';\nimport { ElementConfig, ELEMENT_TYPE } 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 CUSTOM: {\n component: ElementComponent,\n plugins: [IOPlugin, 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};\n","import { CONFIG } from '../cms.elements';\nimport { IOPlugin } from '../plugins/io.plugin';\nimport { ElementConfig, ElementMetadata, ELEMENT_TYPE, UIElement, UIElementMetadata, UIElementModel } from '../types';\n\nconst EXPORTED_CLASS_REGEX = /export class (\\S+)/;\nconst METADATA_DECORATOR_REGEX = /@ElementDefinition\\(([\\s\\S]+)\\)(\\n|.)*export class/g;\n\nexport const elementToMetadata = (el: UIElement, parentPath?: string): ElementMetadata => {\n const script = el.script && window.atob(el.script);\n const template = el.template && window.atob(el.template);\n const styles = el.styles && window.atob(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): UIElement => {\n const elMetadata: UIElementMetadata = {\n name: metadata.name,\n isShared: metadata.isShared,\n type: metadata.type,\n model: metadata.model,\n module: metadata.module,\n reference: metadata.reference,\n inputs: metadata.inputs,\n outputs: metadata.outputs,\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 Error(`'${metadata.name}' element script doesn't have exported class`);\n }\n\n const script =\n metadata.script &&\n window.btoa(\n metadata.script.replace(\n EXPORTED_CLASS_REGEX,\n `@ElementDefinition(${stringifyElementMetadata(normalizedElMetadata)})\\nexport class Script`,\n ),\n );\n const template = metadata.template && window.btoa(metadata.template);\n const styles = metadata.styles && window.btoa(metadata.styles);\n\n return {\n script,\n template,\n styles,\n children: metadata.children.map(meta => metadataToElement(meta)),\n };\n};\n\nexport const normalizeElementMetadata = (elementMetadata: UIElementMetadata): UIElementMetadata => {\n const metadata = { ...elementMetadata };\n\n // model\n const { lineItem, path } = metadata.model ?? {};\n const model: UIElementModel | undefined = lineItem ? { lineItem } : path ? { path } : undefined;\n if (model) {\n metadata.model = model;\n } else {\n delete metadata.model;\n }\n\n // module\n if (!metadata.module) {\n delete metadata.module;\n }\n\n // reference\n if (!metadata.reference) {\n delete metadata.reference;\n }\n\n // inputs\n const inputs = Object.entries(metadata.inputs ?? {}).reduce((acc, [key, value]) => {\n return { ...acc, [key]: value || null };\n }, {});\n if (inputs && Object.keys(inputs).length > 0) {\n metadata.inputs = inputs;\n } else {\n delete metadata.inputs;\n }\n\n // outputs\n const outputs = Object.entries(metadata.outputs ?? {}).reduce((acc, [key, value]) => {\n return { ...acc, [key]: value || null };\n }, {});\n if (outputs && Object.keys(outputs).length > 0) {\n metadata.outputs = outputs;\n } else {\n delete metadata.outputs;\n }\n\n // children\n if (!metadata.children?.length) {\n delete metadata.children;\n }\n\n // isShared\n if (!metadata.isShared) {\n delete metadata.isShared;\n }\n\n return metadata;\n};\n\nexport const extractElementMetadata = (script: string): UIElementMetadata => {\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 eval(`(${metadataString})`);\n};\n\nexport const extendElementMetadata = (script: string, extend: Partial<UIElementMetadata>): 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 = { ...eval(`(${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: UIElementMetadata) {\n const cleaned = JSON.stringify(elementMetadata, null, 2);\n\n return cleaned.replace(/^[\\t ]*\"[^:\\n\\r]+(?<!\\\\)\":/gm, function (match) {\n return match.replace(/\"/g, '');\n });\n}\n","import { Injectable } from '@angular/core';\nimport { ElementMetadata } from '../types/common.types';\n\n@Injectable()\nexport class ElementContextService {\n metadata?: ElementMetadata;\n parentModelId?: string;\n}\n","import { Attribute, CfgStatus, EntityUtil, LineItem, PortDomain } from '@veloce/core';\nimport { compact, Dictionary, sortBy } from 'lodash';\nimport { PathBlock } from '../types/configuration.types';\n\nexport const parseBoundPath = (path: string): PathBlock[] => {\n const regexp = new RegExp(`(?:\\\\/)(?:\\\\w+)(?:\\\\/)(?:ports|attributes)(?:\\\\/)(?:\\\\w+)|(?:\\\\/)(?:\\\\w+)`, 'g');\n const blocks: PathBlock[] =\n path.match(regexp)?.map(match => {\n const [type, property, name] = compact(match.split('/'));\n return { type, property, name };\n }) ?? [];\n\n return blocks;\n};\n\nexport const findLineItem = (id: string, lineItems: LineItem[]): LineItem | undefined => {\n return EntityUtil.findByFieldHierarchically('id', id, lineItems, 'lineItems');\n};\n\nexport const insertLineItem = (lineItem: LineItem, parentId: string, toInsert: LineItem): LineItem => {\n const insertData = lineItem.id === parentId ? [toInsert] : [];\n return {\n ...lineItem,\n lineItems: [\n ...insertData,\n ...lineItem.lineItems.map(li => {\n return insertLineItem(li, parentId, toInsert);\n }),\n ],\n };\n};\n\nexport const removeLineItem = (lineItem: LineItem, idToRemove: string): LineItem => {\n return {\n ...lineItem,\n lineItems: lineItem.lineItems\n .map(li => {\n if (li.id === idToRemove) {\n return;\n } else if (li.lineItems.length) {\n return removeLineItem(li, idToRemove);\n }\n return li;\n })\n .filter(r => !!r) as LineItem[],\n };\n};\n\nexport const replaceLineItem = (lineItem: LineItem, replaceTo: LineItem): LineItem => {\n if (lineItem.id === replaceTo.id) {\n return { ...replaceTo };\n }\n\n return {\n ...lineItem,\n lineItems: lineItem.lineItems.map(li => {\n if (li.id === replaceTo.id) {\n return replaceTo;\n } else if (li.lineItems.length) {\n return replaceLineItem(li, replaceTo);\n }\n return li;\n }),\n };\n};\n\nexport const mapAttributes = (attributes: Attribute[]): Dictionary<any> => {\n return attributes.reduce((acc, { name, value }) => ({ ...acc, [name]: value }), {});\n};\n\nexport const getAttributes = (attributes: Attribute[], names: string[] = []) => {\n const filtered = attributes.filter(({ name }) => names.includes(name));\n return sortBy(filtered, [({ name }) => names.indexOf(name)]);\n};\n\nexport const upsertAttributes = (\n originalAttributes: Attribute[],\n attributesToUpsert: { name: string; value: any }[],\n) => {\n return attributesToUpsert.reduce((acc, { name, value }) => {\n const [origAttr] = getAttributes(acc, [name]);\n return [\n ...acc.filter(attr => attr.name !== name),\n { ...(origAttr ?? { name }), cfgStatus: 'User' as CfgStatus, value },\n ];\n }, originalAttributes);\n};\n\nexport const patchAttributes = (rootLineItem: LineItem, id: string, attrs: { name: string; value: any }[]) => {\n const lineItem = findLineItem(id, [rootLineItem]);\n\n if (!lineItem) {\n return rootLineItem;\n }\n\n const attributes = upsertAttributes(lineItem.attributes, attrs);\n return replaceLineItem(rootLineItem, { ...lineItem, attributes });\n};\n\nexport const getAttributeValue = (attributes: Attribute[], name: string): any =>\n attributes.find(attr => attr.name === name)?.value;\n\nexport const generateLineItem = (\n port: string,\n type: string,\n parentId: string,\n attributes: { name: string; value: any }[] = [],\n lineItems: LineItem[] = [],\n): LineItem => {\n return {\n port,\n type,\n actionCode: 'ADD',\n cfgStatus: 'New',\n attributes: attributes.map(({ name, value }) => ({ cfgStatus: 'User', name, value })),\n lineItems,\n parentId,\n qty: 1,\n } as LineItem;\n};\n\nexport const getRecommendedPrices = (portDomain: PortDomain, type: string): { net: number; list: number } => {\n const domainType = portDomain.domainTypes.find(({ name }) => name === type);\n\n const [net, list] = domainType?.recommendedPrices\n ?.filter(({ chargeMethod }) => chargeMethod === 'ONE_TIME')\n .reduce(\n (acc, rp) => {\n const [netPrice, listPrice] = acc;\n return [netPrice + rp.netPrice, listPrice + rp.listPrice];\n },\n [0, 0],\n ) ?? [0, 0];\n\n return { net, list };\n};\n","import { LineItem } from '@veloce/core';\nimport { insertLineItem, patchAttributes, removeLineItem, replaceLineItem } from '../utils/line-item.utils';\n\nexport class LineItemWorker {\n public li: LineItem;\n\n constructor(src: LineItem) {\n this.li = { ...src };\n }\n\n public insert(parentId: string, toInsert: LineItem): LineItemWorker {\n return new LineItemWorker(insertLineItem(this.li, parentId, toInsert));\n }\n\n public remove(id: string): LineItemWorker {\n return new LineItemWorker(removeLineItem(this.li, id));\n }\n\n public replace(toReplace: LineItem): LineItemWorker {\n return new LineItemWorker(replaceLineItem(this.li, toReplace));\n }\n\n public patchAttribute(attrs: { name: string; value: any }[], id?: string): LineItemWorker {\n return new LineItemWorker(patchAttributes(this.li, id ?? this.li.id, attrs));\n }\n}\n","import { LineItem, UUID } from '@veloce/core';\nimport { UIDefinitionProps } from '../../types/ui-definition.types';\nimport { RuntimeContext } from './types/configuration.types';\n\nexport const getDefaultLineItem = (context: RuntimeContext, uiDefinitionProperties: UIDefinitionProps): LineItem => {\n const id = UUID.UUID();\n\n const lineItem: LineItem = {\n id,\n type: uiDefinitionProperties.rootType ?? '',\n cfgStatus: 'Default',\n qty: 1,\n productName: context.properties?.displayName || context.productName,\n productId: context.productId ?? '',\n ...(context.offeringId\n ? { offeringId: context.offeringId, offeringInstanceId: context.offeringInstanceId || id }\n : {}),\n } as LineItem;\n\n return lineItem;\n};\n","import { Injectable } from '@angular/core';\nimport { ConfigurationApiService } from '@veloce/api';\nimport { RuntimeData, RuntimeModel, UIDefinition as LegacyUiDefinition } from '@veloce/core';\nimport { RuntimeMode } from '@veloce/sdk/runtime';\nimport { MessageService } from 'primeng/api';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { UIDefinition } from '../../../types';\nimport { RuntimeContext } from '../types/configuration.types';\n\n@Injectable()\nexport class RuntimeContextService {\n constructor(private configurationApiService: ConfigurationApiService, private messageService: MessageService) {}\n\n getRuntimeContext(productId: string, offeringId?: string): Observable<RuntimeContext> {\n return this.configurationApiService.getRuntimeDataByProductId(productId, offeringId).pipe(\n map(runtimeData => {\n const uiDefinition = this.getUIDefinition(runtimeData);\n const runtimeModel = RuntimeModel.create(runtimeData.types, runtimeData.products);\n const { productName, properties } =\n Array.from(runtimeModel.components.values()).find(c => c.productId === productId) ?? {};\n\n return {\n modelId: runtimeData.modelId,\n uiDefinition: uiDefinition,\n runtimeModel: runtimeModel,\n runtimeMode: RuntimeMode.PROD,\n productId: productId,\n productType: properties?.displayName || productName,\n offeringId: offeringId,\n priceListId: uiDefinition?.properties?.priceList,\n properties: {\n PricingEnabled: uiDefinition?.properties?.pricingEnabled,\n PriceListId: uiDefinition?.properties?.priceList,\n },\n };\n }),\n );\n }\n\n private getUIDefinition(runtimeData: RuntimeData): UIDefinition | undefined {\n let rawUiDefinitions: Array<UIDefinition | LegacyUiDefinition>;\n try {\n rawUiDefinitions = JSON.parse(runtimeData.uiDefinitionsSource);\n } catch (e) {\n return;\n }\n\n const uiDefinitions = rawUiDefinitions.filter(uiDef => (uiDef as UIDefinition).version) as UIDefinition[];\n const uiDefinition = uiDefinitions.find(uiDef => uiDef.primary) ?? uiDefinitions[0];\n\n if (!uiDefinition) {\n const errMsg = `Unable to find Default UI`;\n\n this.messageService.add({\n severity: 'error',\n summary: 'ERROR',\n });\n throw new Error(errMsg);\n }\n\n return uiDefinition;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ConfigurationApiService } from '@veloce/api';\nimport { ConfigurationContextMode, LineItem, RuntimeModel, SalesforceIdUtils } from '@veloce/core';\nimport { ContextService, RuntimeMode } from '@veloce/sdk/runtime';\nimport { Dictionary } from 'lodash';\nimport { combineLatest, Observable, of } from 'rxjs';\nimport { first, tap } from 'rxjs/operators';\nimport { UIDefinitionProps } from '../../../types/ui-definition.types';\nimport { RuntimeInitializationProps } from '../types/configuration-runtime.types';\nimport { RuntimeContext } from '../types/configuration.types';\nimport { RuntimeContextService } from './runtime-context.service';\n\n@Injectable()\nexport class ConfigurationRuntimeService {\n private _runtimeContext?: RuntimeContext;\n private _assets?: LineItem[];\n private _isInitialized = false;\n\n public uiDefinitionProperties: UIDefinitionProps = {};\n\n constructor(\n private apiService: ConfigurationApiService,\n private contextService: ContextService,\n private runtimeContextService: RuntimeContextService,\n ) {}\n\n public reset() {\n this._isInitialized = false;\n this._runtimeContext = undefined;\n this._assets = undefined;\n this.uiDefinitionProperties = {};\n }\n\n public initTestMode(modelId: string, uiDefinitionProperties: UIDefinitionProps) {\n this.uiDefinitionProperties = uiDefinitionProperties;\n\n return combineLatest([\n this.apiService.getRuntimeDataByModelId(modelId),\n this.contextService.create('TestId', ConfigurationContextMode.TEST),\n ]).pipe(\n first(),\n tap(([runtimeData, configurationContext]) => {\n this._runtimeContext = {\n modelId: modelId,\n runtimeModel: RuntimeModel.create(runtimeData.types, runtimeData.products),\n runtimeMode: RuntimeMode.TEST,\n };\n\n this.contextService.update({\n priceListId: uiDefinitionProperties.priceList,\n properties: {\n ...this.runtimeContext?.properties,\n ...configurationContext.properties,\n ModelId: modelId,\n RuntimeMode: ConfigurationContextMode.TEST,\n PricingEnabled: String(uiDefinitionProperties.pricingEnabled),\n StartDate: new Date().toISOString().substring(0, 10),\n PriceListId: uiDefinitionProperties.priceList,\n },\n });\n\n this._isInitialized = true;\n }),\n );\n }\n\n public init(props: RuntimeInitializationProps): Observable<RuntimeContext | undefined> {\n this._assets = props.assets;\n const configurationContext = this.contextService.resolve();\n\n if (!configurationContext) {\n return of();\n }\n\n return this.runtimeContextService.getRuntimeContext(props.productId, props.offeringId).pipe(\n tap(runtimeContext => {\n this.uiDefinitionProperties = runtimeContext.uiDefinition?.properties ?? {};\n\n const mergeContext: RuntimeContext = {\n ...runtimeContext,\n properties: {\n ...runtimeContext.properties,\n ...configurationContext.properties,\n },\n };\n\n this.id15to18('AccountId', mergeContext.properties);\n this._runtimeContext = mergeContext;\n\n if (configurationContext.properties && runtimeContext.properties?.StartDate) {\n this.contextService.update({\n priceListId: this.uiDefinitionProperties.priceList,\n properties: {\n ...runtimeContext.properties,\n ...configurationContext.properties,\n PricingEnabled: String(this.uiDefinitionProperties.pricingEnabled),\n PriceListId: this.uiDefinitionProperties.priceList,\n },\n });\n }\n\n this._isInitialized = true;\n }),\n );\n }\n\n private id15to18(propertyName: string, source?: Dictionary<any>) {\n if (!source) {\n return;\n }\n\n const value = source[propertyName];\n\n if (typeof value === 'string' && value.length === 15) {\n source[propertyName] = SalesforceIdUtils.generateId18FromId15(value);\n }\n }\n\n public getAsset(lineItem: LineItem): LineItem | undefined {\n return this._assets && this._assets.find(a => a.id === lineItem.openOrderLineItemId || a.id === lineItem.assetId);\n }\n\n public get isInitialized() {\n return this._isInitialized;\n }\n\n public get runtimeModel() {\n return this.runtimeContext?.runtimeModel;\n }\n\n public get runtimeContext() {\n return this._runtimeContext;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ConfigurationApiService } from '@veloce/api';\nimport {\n ConfigurationContext,\n ConfigurationMode,\n ConfigurationRequest,\n LineItem,\n PricePlanCharge,\n RuntimeModel,\n} from '@veloce/core';\nimport { ContextService, QuoteStates, RuntimeStep } from '@veloce/sdk/runtime';\nimport { Dictionary } from 'lodash';\nimport { MessageService } from 'primeng/api';\nimport { BehaviorSubject, Observable, of, shareReplay, throwError } from 'rxjs';\nimport { catchError, map, tap } from 'rxjs/operators';\nimport { LineItemWorker } from '../../../types/line-item.types';\nimport { getDefaultLineItem } from '../helpers';\nimport { RuntimeContext } from '../types/configuration.types';\nimport { ConfigurationRuntimeService } from './configuration-runtime.service';\n\n@Injectable()\nexport class ConfigurationService {\n private mode = ConfigurationMode.SEARCH;\n private states: QuoteStates = {};\n\n private lineItem = new BehaviorSubject<LineItem | undefined>(undefined);\n private charges = new BehaviorSubject<Dictionary<PricePlanCharge>>({});\n\n constructor(\n private runtimeService: ConfigurationRuntimeService,\n private contextService: ContextService,\n private configurationApiService: ConfigurationApiService,\n private messageService: MessageService,\n ) {}\n\n public reset() {\n this.runtimeService.reset();\n\n this.states = {};\n this.lineItem.next(undefined);\n this.charges.next({});\n }\n\n public patch(lineItem: LineItem): void {\n if (!this.lineItem.value) {\n return;\n }\n\n this.states.configurableRamp = new LineItemWorker(this.lineItem.value).replace(lineItem).li;\n this.states.asset = this.states.configurableRamp\n ? this.runtimeService.getAsset(this.states.configurableRamp)\n : undefined;\n\n this.configure()\n .pipe(\n catchError(error => {\n this.messageService.add({\n severity: 'error',\n summary: error,\n });\n\n // bounce back if configuration call has failed\n this.lineItem.next(this.lineItem.value ? { ...this.lineItem.value } : undefined);\n return of();\n }),\n )\n .subscribe();\n }\n\n public updateCurrentStates(update: Partial<QuoteStates>) {\n this.states = {\n ...this.states,\n ...update,\n };\n }\n\n public get(): Observable<LineItem | undefined> {\n return this.lineItem.asObservable().pipe(shareReplay());\n }\n\n public getSnapshot(): LineItem | undefined {\n return this.lineItem.value ? { ...this.lineItem.value } : undefined;\n }\n\n public getRuntimeModel(): RuntimeModel | undefined {\n return this.runtimeService.runtimeModel;\n }\n public getRuntimeContext(): RuntimeContext | undefined {\n return this.runtimeService.runtimeContext;\n }\n\n public get charges$(): Observable<Dictionary<PricePlanCharge>> {\n return this.charges.asObservable();\n }\n\n public get chargesSnapshot(): Dictionary<PricePlanCharge> {\n return this.charges.value;\n }\n\n public configure(): Observable<LineItem | undefined> {\n const runtimeContext = this.getRuntimeContext();\n const runtimeModel = this.getRuntimeModel();\n if (!runtimeContext || !runtimeModel) {\n return of(undefined);\n }\n\n const uiDefinitionProperties = {\n ...(runtimeContext.uiDefinition?.properties ?? {}),\n ...(this.runtimeService.uiDefinitionProperties ?? {}),\n };\n const lineItem = this.states.configurableRamp ?? getDefaultLineItem(runtimeContext, uiDefinitionProperties);\n const configurationRequest = this.createRequest(lineItem);\n configurationRequest.lineItems = this.states.currentState || [];\n configurationRequest.asset = this.states.asset;\n\n let request$: Observable<LineItem>;\n if (uiDefinitionProperties.pricingEnabled) {\n request$ = this.configurationApiService.configureAndPriceLineItem(configurationRequest, runtimeModel).pipe(\n map(({ lineItem, context, charges }) => {\n if (context) {\n this.contextService.update({ properties: context.properties });\n }\n this.charges.next(charges ?? {});\n\n return lineItem;\n }),\n );\n } else {\n request$ = this.configurationApiService.configureLineItem(configurationRequest, runtimeModel);\n }\n\n return request$.pipe(\n tap(lineItem => lineItem && this.lineItem.next(lineItem)),\n catchError(error => throwError(() => new Error(error.error?.message || error.message || JSON.stringify(error)))),\n );\n }\n\n private createRequest(lineItem: LineItem): ConfigurationRequest {\n return {\n lineItem,\n mode: this.mode,\n step: !this.lineItem.value ? RuntimeStep.START : RuntimeStep.UPDATE,\n attributeDomainMode: 'ALL',\n context: this.contextService.resolve() as ConfigurationContext,\n };\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentFactory,\n ComponentRef,\n ElementRef,\n Injector,\n Input,\n OnDestroy,\n OnInit,\n SkipSelf,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { LineItem, UUID } from '@veloce/core';\nimport { Dictionary, isArray, pull } from 'lodash';\nimport { map, Observable, Subject, takeUntil } from 'rxjs';\nimport { ConfigurationService } from '../../modules/configuration/services/configuration.service';\nimport { DynamicModuleService } from '../../services/dynamic-module.service';\nimport { ElementContextService } from '../../services/element-context.service';\nimport { IOProviderService } from '../../services/io-provider.service';\nimport { ElementMetadata } from '../../types/common.types';\nimport { parseBoundPath } from '../../utils/line-item.utils';\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 }) el?: ViewContainerRef;\n\n @Input() meta!: ElementMetadata;\n\n private factory?: ComponentFactory<any>;\n private refs: Dictionary<ComponentRef<any> | undefined> = {};\n private destroy$ = new Subject<void>();\n\n constructor(\n @SkipSelf() private parentInjector: Injector,\n private dynamicModuleService: DynamicModuleService,\n private elementContext: ElementContextService,\n private ioProviderService: IOProviderService,\n private configurationService: ConfigurationService,\n private elementRef: ElementRef,\n private cdr: ChangeDetectorRef,\n ) {}\n\n ngOnInit() {\n this.elementContext.metadata = this.meta;\n this.factory = this.dynamicModuleService.getComponentFactory(this.meta);\n\n this.createComponents();\n }\n\n ngOnDestroy(): void {\n this.destroyComponents();\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n private createComponents(): void {\n const modelMeta = this.meta.model;\n\n if (!modelMeta) {\n this.refs[UUID.UUID()] = this.createComponent();\n return;\n }\n\n if (modelMeta.lineItem) {\n this.createFromLineItem(modelMeta.lineItem);\n } else if (modelMeta.path) {\n this.createFromPath(modelMeta.path);\n }\n }\n\n private createFromPath(path: string): void {\n const array$ = this.ioProviderService.connect(this.meta, 'children$', path);\n\n array$?.pipe(takeUntil(this.destroy$)).subscribe(children => {\n if (!isArray(children)) {\n return;\n }\n\n this.processChildren(children);\n });\n }\n\n private createFromLineItem(path: string): void {\n const parentComp = this.parentInjector.get(ElementRendererComponent, null);\n const parentPath = parentComp?.meta.model?.lineItem;\n\n const pathBlocks = parseBoundPath(path).reverse();\n const { property, name } = pathBlocks[1] ?? {};\n const finalPath = pathBlocks[0];\n\n const children$ = this.getParentLineItem$(parentComp).pipe(\n map(model => {\n if (property === 'ports' && !finalPath.property && parentPath !== path) {\n return model.lineItems.filter(({ port }) => port === name) ?? [];\n }\n return [model];\n }),\n );\n\n children$.pipe(takeUntil(this.destroy$)).subscribe(children => {\n this.processChildren(children);\n });\n }\n\n private processChildren(children: any[]): void {\n const refs = children.reduce((acc, data) => {\n const key = String(data?.id ?? UUID.UUID());\n const ref = this.refs[key] ? this.updateComponent(key, data) : this.createComponent(data);\n\n return ref ? { ...acc, [key]: ref } : acc;\n }, {} as Dictionary<ComponentRef<any>>);\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 private getParentLineItem$(parentComp: ElementRendererComponent | null): Observable<LineItem> {\n const parentRefs = Object.values(parentComp?.refs ?? {});\n const parentRef = parentRefs.find(ref =>\n (ref?.location.nativeElement as HTMLElement)?.contains(this.elementRef.nativeElement),\n );\n\n const parentModel$ = parentRef?.instance.model$;\n\n return parentModel$ ?? this.configurationService.get();\n }\n\n private createComponent(data?: any): ComponentRef<any> | undefined {\n if (!this.factory) {\n return;\n }\n\n const componentRef = this.el?.createComponent(this.factory);\n\n if (componentRef) {\n componentRef.location.nativeElement.setAttribute('name', this.meta.name);\n componentRef.location.nativeElement.setAttribute('path', this.meta.path);\n componentRef.instance?.model$.next(data);\n }\n\n return componentRef;\n }\n\n private updateComponent(key: string, data?: any): ComponentRef<any> | undefined {\n const ref = this.refs[key];\n ref?.instance.model$.next(data);\n\n return ref;\n }\n\n private destroyComponent(key: string) {\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 } from '@angular/core';\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 {\n public metadata?: ElementMetadata;\n\n constructor(private elementContext: ElementContextService) {\n this.metadata = this.elementContext.metadata;\n }\n}\n","<ng-container *ngIf=\"metadata?.children.length\">\n <ng-container *ngFor=\"let child of metadata.children\">\n <vl-cms-element-renderer [meta]=\"child\"></vl-cms-element-renderer>\n </ng-container>\n</ng-container>\n","import { Dictionary } from 'lodash';\n\ntype Scope = unknown;\ntype Factory = () => any;\n\ntype Container = {\n init(shareScope: Scope): void;\n get(module: string): Factory;\n};\n\ndeclare const __webpack_init_sharing__: (shareScope: string) => Promise<void>;\ndeclare const __webpack_share_scopes__: { default: Scope };\n\nconst moduleMap: Dictionary<boolean> = {};\n\nfunction loadRemoteEntry(remoteEntry: string): Promise<void> {\n return new Promise<void>((resolve, reject) => {\n if (moduleMap[remoteEntry]) {\n resolve();\n return;\n }\n\n const script = document.createElement('script');\n script.src = remoteEntry;\n\n script.onerror = reject;\n\n script.onload = () => {\n moduleMap[remoteEntry] = true;\n resolve(); // window is the global namespace\n };\n\n document.body.append(script);\n });\n}\n\nasync function lookupExposedModule<T>(remoteName: string, exposedModule: string): Promise<T> {\n // Initializes the share scope. This fills it with known provided modules from this build and all remotes\n await __webpack_init_sharing__('default');\n const container = (window as any)[remoteName] as Container; // or get the container somewhere else\n // Initialize the container, it may provide shared modules\n\n await container.init(__webpack_share_scopes__.default);\n const factory = await container.get(exposedModule);\n const Module = factory();\n return Module as T;\n}\n\nexport type LoadRemoteModuleOptions = {\n remoteEntry: string;\n remoteName: string;\n exposedModule: string;\n};\n\nexport async function loadRemoteModule(options: LoadRemoteModuleOptions): Promise<any> {\n await loadRemoteEntry(options.remoteEntry);\n\n return await lookupExposedModule<any>(options.remoteName, options.exposedModule);\n}\n","import {\n AfterViewInit,\n ApplicationRef,\n ChangeDetectionStrategy,\n Compiler,\n Component,\n ElementRef,\n EventEmitter,\n Injector,\n Input,\n OnChanges,\n Output,\n Renderer2,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { loadRemoteModule } from '../../utils/federated.util';\nimport { LineItem } from '@veloce/core';\n\nenum IntegrationEvent {\n Init = 'Init',\n}\n\ninterface InputData {\n rootLineItem: LineItem;\n}\n\ninterface IntegrationEventPayload {\n type: IntegrationEvent;\n payload?: unknown;\n}\n\ninterface InegrationComponentInstance extends OnChanges {\n integrationEvent: EventEmitter<IntegrationEventPayload>;\n integrationAppRef: ApplicationRef;\n data?: InputData;\n eventData?: IntegrationEventPayload;\n}\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 AfterViewInit, OnChanges {\n @ViewChild('federatedComponent', { read: ViewContainerRef }) federatedComponent?: ViewContainerRef;\n @ViewChild('foo', { read: TemplateRef }) foo?: TemplateRef<unknown>;\n @ViewChild('moduleHost', { static: false }) moduleHostRef?: ElementRef;\n\n @Input() remoteEntry?: string;\n @Input() remoteName?: string;\n @Input() exposedModule?: string;\n @Input() data?: InputData;\n @Input() eventData?: IntegrationEventPayload;\n @Output() private integrationEvent = new EventEmitter<IntegrationEventPayload>();\n\n moduleReady = false;\n\n private instance?: InegrationComponentInstance;\n\n constructor(\n private injector: Injector,\n private compiler: Compiler,\n private appRef: ApplicationRef,\n private renderer: Renderer2,\n ) {}\n\n ngAfterViewInit(): void {\n if (!this.remoteEntry || !this.remoteName || !this.exposedModule) {\n return;\n }\n\n loadRemoteModule({\n remoteEntry: this.remoteEntry,\n remoteName: this.remoteName,\n exposedModule: this.exposedModule,\n }).then(federated => {\n this.compiler.compileModuleAsync(federated[this.exposedModule as string]).then(moduleFactory => {\n const rootModuleRef = moduleFactory.create(this.injector);\n const rootComponentFactory = rootModuleRef.componentFactoryResolver.resolveComponentFactory(\n federated[this.exposedModule as string].rootComponent,\n );\n const node = document.createElement('div');\n const { instance, hostView } = rootComponentFactory.create(this.injector, [], node);\n\n this.instance = instance as InegrationComponentInstance;\n this.instance.data = this.data;\n this.instance.eventData = this.eventData;\n this.instance.integrationEvent = this.integrationEvent;\n\n this.renderer.appendChild(this.moduleHostRef?.nativeElement, node);\n this.appRef.attachView(hostView);\n });\n });\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (!this.instance) {\n return;\n }\n\n this.instance.ngOnChanges(changes);\n }\n}\n","<div #moduleHost></div>\n","import { NgModule } from '@angular/core';\nimport { FederatedComponent } from './federated.component';\n\n@NgModule({\n declarations: [FederatedComponent],\n exports: [FederatedComponent],\n})\nexport class FederatedModule {}\n","import { AfterViewInit, Directive, Input, 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<any>, private templatesService: TemplatesService) {}\n\n @Input() customTemplate: string | undefined;\n\n ngAfterViewInit(): void {\n if (!this.customTemplate) {\n return;\n }\n\n this.templatesService.register(this.customTemplate, this.templateRef);\n }\n}\n","import { Directive, OnDestroy } from '@angular/core';\nimport { LineItem } from '@veloce/core';\nimport { map, Subject, takeUntil } from 'rxjs';\nimport { ElementComponent } from '../components/element.component';\nimport { PluginComponent } from '../components/plugin.component';\nimport { ELEMENT_METADATA } from '../injection-tokens';\nimport { ConfigurationService } from '../modules/configuration/services/configuration.service';\nimport { AttributeElement, ConfigurationElement, PortElement, TypeElement } from '../types';\nimport { ElementMetadata } from '../types/common.types';\nimport { LineItemWorker } from '../types/line-item.types';\nimport { generateLineItem, getAttributeValue, parseBoundPath } from '../utils/line-item.utils';\n\n@Directive()\nexport class ConfigurationPlugin implements PluginComponent, OnDestroy {\n private modelSnapshot?: LineItem;\n private destroy$ = new Subject<void>();\n\n private elementMetadata: ElementMetadata;\n private configurationService: ConfigurationService;\n\n constructor(public host: ElementComponent & ConfigurationElement) {\n this.elementMetadata = this.host.injector.get(ELEMENT_METADATA);\n this.configurationService = this.host.injector.get(ConfigurationService);\n\n if (this.elementMetadata.model?.lineItem) {\n this.host.model$.pipe(takeUntil(this.destroy$)).subscribe(model => (this.modelSnapshot = model));\n\n const pathBlocks = parseBoundPath(this.elementMetadata.model?.lineItem);\n const { type, property, name } = pathBlocks.reverse()[0];\n\n this.host.boundName = name ?? type;\n\n this.register(type, property, name);\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n private register(type?: string, property?: string, name?: string) {\n if (!type) {\n return;\n }\n\n if (!property) {\n this.registerType();\n } else if (property === 'ports' && name) {\n this.registerPort(name);\n } else if (property === 'attributes' && name) {\n this.registerAttribute(name);\n }\n }\n\n private registerType(): void {\n const remove = (id: string): void => {\n const rootLineItem = this.configurationService.getSnapshot();\n if (!rootLineItem) {\n return;\n }\n this.configurationService.patch(new LineItemWorker(rootLineItem).remove(id).li);\n };\n\n this.typeHost.remove = remove;\n }\n\n private registerPort(name: string): void {\n const add = (type: string, attributes: { name: string; value: any }[] = []): void => {\n if (!this.modelSnapshot) {\n return;\n }\n\n const portDomain = this.modelSnapshot.portDomains[name];\n if (!portDomain) {\n return;\n }\n\n const generated = generateLineItem(portDomain.name, type, this.modelSnapshot.id, attributes);\n this.configurationService.patch(\n new LineItemWorker(this.modelSnapshot).insert(this.modelSnapshot.id, generated).li,\n );\n };\n\n this.portHost.addPortItem = add;\n }\n\n private registerAttribute(name: string): void {\n if (!this.host.model$) {\n return;\n }\n\n const value$ = this.host.model$?.pipe(map(model => getAttributeValue(model?.attributes ?? [], name)));\n\n const patch = (value: any) => {\n if (!this.modelSnapshot) {\n return;\n }\n this.configurationService.patch(new LineItemWorker(this.modelSnapshot).patchAttribute([{ name, value }]).li);\n };\n\n this.attributeHost.value$ = value$;\n this.attributeHost.patch = patch;\n }\n\n private get attributeHost() {\n return this.host as ElementComponent & AttributeElement;\n }\n\n private get typeHost() {\n return this.host as ElementComponent & TypeElement;\n }\n\n private get portHost() {\n return this.host as ElementComponent & PortElement;\n }\n}\n","import { Plugin } from './engine/models/plugin';\nimport { ConfigurationPlugin } from './plugins/configuration.plugin';\nimport { UIDefinitionType } from './types/ui-definition.types';\n\nexport const DEFAULT_PLUGINS: { [key in UIDefinitionType]: typeof Plugin[] } = {\n CONFIGURATION: [ConfigurationPlugin],\n DEFAULT: [],\n};\n","import * as angularCore from '@angular/core';\nimport * as angularForms from '@angular/forms';\nimport { QuoteApiService, SalesforceApiService } from '@veloce/api';\nimport * as lodash from 'lodash';\nimport { Dictionary } from 'lodash';\nimport * as rxjs from 'rxjs';\nimport * as rxjsOperators from 'rxjs/operators';\nimport * as vlInjectionTokens from './injection-tokens';\nimport * as vlCmsModules from './modules';\nimport { TemplatesService } from './services/templates.service';\nimport * as vlCmsLineItemTypes from './types/line-item.types';\nimport * as vlCmsUtils from './utils';\n\nexport const vendorMap: Dictionary<any> = {\n '@veloce/sdk/cms': {\n ...vlCmsModules,\n ...vlCmsUtils,\n ...vlCmsLineItemTypes,\n ...vlInjectionTokens,\n TemplatesService,\n },\n '@veloce/api': {\n SalesforceApiService,\n QuoteApiService,\n },\n '@angular/core': angularCore,\n '@angular/forms': angularForms,\n rxjs: rxjs,\n 'rxjs/operators': rxjsOperators,\n lodash: lodash,\n};\n","import { Component, Type } from '@angular/core';\nimport { transform } from '@babel/standalone';\nimport { flatten, set } from 'lodash';\nimport { DEFAULT_PLUGINS } from '../cms.default';\nimport { CONFIG } from '../cms.elements';\nimport {\n DEFAULT_PLUGINS_TOKEN,\n ELEMENT_CONFIG,\n ELEMENT_METADATA,\n SHARED_ELEMENT_METADATA,\n UI_DEFINITION_METADATA,\n VENDOR_MAP,\n} from '../injection-tokens';\nimport { ElementMetadata, UIDefinitionMetadata } from '../types';\nimport { vendorMap } from '../vendor-map';\n\nexport class ElementsResolver {\n public readonly elements: ElementMetadata[];\n\n private renderableElements: ElementMetadata[] = [];\n private sharedElements: ElementMetadata[] = [];\n\n constructor(private uiDef: UIDefinitionMetadata, elements: ElementMetadata[]) {\n this.elements = this.transpileScripts(elements);\n\n const flatElements = this.flattenElements(this.elements);\n\n for (const el of flatElements) {\n if (this.isSharedElement(el)) {\n this.sharedElements.push(el);\n } else {\n this.renderableElements.push(el);\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 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 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 getSharedElement(element: ElementMetadata): ElementMetadata | undefined {\n if (element.type !== '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 return !config.suppressStyles ? element.styles ?? '' : '';\n }\n\n private processElementMetadata(sourceElement: ElementMetadata): ElementMetadata | undefined {\n const sharedElement = this.getSharedElement(sourceElement);\n let finalElement: ElementMetadata;\n\n if (sourceElement.type === 'REFERENCE') {\n if (!sharedElement) {\n console.warn(`Shared element \"${sourceElement.reference}\" not found`);\n return;\n }\n\n finalElement = {\n ...sourceElement,\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 }\n\n finalElement.template = this.resolveElementTemplate(finalElement);\n finalElement.styles = this.resolveElementStyles(finalElement);\n\n return finalElement;\n }\n\n private resolveElement(sourceElement: ElementMetadata): Type<any> | undefined {\n const element = this.processElementMetadata(sourceElement);\n if (!element) {\n return;\n }\n\n const config = CONFIG[element.type];\n const defaultPlugins = DEFAULT_PLUGINS[this.uiDef.type];\n\n if (!config) {\n console.warn(`Unknown element type \"${element.type}\"`);\n return;\n }\n\n const component: Component = {\n selector: 'vl-element',\n template: element.template,\n ...(element.styles ? { styles: [element.styles] } : {}),\n providers: [\n { provide: DEFAULT_PLUGINS_TOKEN, useValue: defaultPlugins },\n { provide: UI_DEFINITION_METADATA, useValue: this.uiDef },\n { provide: ELEMENT_METADATA, useValue: element },\n { provide: SHARED_ELEMENT_METADATA, useValue: this.getSharedElement(sourceElement) },\n { provide: ELEMENT_CONFIG, useValue: config },\n { provide: VENDOR_MAP, useValue: vendorMap },\n ],\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 public getNgComponents(): Type<any>[] {\n return this.renderableElements.map(el => this.resolveElement(el)).filter(Boolean) as Type<any>[];\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Compiler, Injectable, ModuleWithComponentFactories, NgModule, Type } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { from, Observable, tap } from 'rxjs';\nimport { ElementChildrenComponent } from '../components/element-children/element-children.component';\nimport { ElementRendererComponent } from '../components/element-renderer/element-renderer.component';\nimport { FederatedModule } from '../components/federated/federated.module';\nimport { CustomTemplateDirective } from '../directives/custom-template.directive';\nimport { ElementMetadata } from '../types';\nimport { UIDefinitionMetadata } from '../types/ui-definition.types';\nimport { ElementsResolver } from '../utils/elements-resolver';\nimport { DynamicModuleService } from './dynamic-module.service';\n\n@Injectable()\nexport class LauncherService {\n private module?: Type<NgModule>;\n private moduleInstance?: ModuleWithComponentFactories<NgModule>;\n\n constructor(private compiler: Compiler, private dynamicModuleService: DynamicModuleService) {}\n\n public compileModule(\n elements: ElementMetadata[],\n uiDefs: UIDefinitionMetadata,\n ): Observable<ModuleWithComponentFactories<NgModule>> {\n this.module = this.getModule(elements, uiDefs);\n return from(this.compiler.compileModuleAndAllComponentsAsync(this.module)).pipe(\n tap(m => {\n this.dynamicModuleService.componentFactories = m.componentFactories;\n this.moduleInstance = m;\n }),\n );\n }\n\n public destroy() {\n if (this.moduleInstance) {\n this.dynamicModuleService.clear();\n this.moduleInstance = undefined;\n }\n\n if (this.module) {\n this.compiler.clearCacheFor(this.module);\n this.module = undefined;\n }\n }\n\n private getModule(elements: ElementMetadata[], uiDef: UIDefinitionMetadata): Type<NgModule> {\n const staticComponents = [ElementChildrenComponent, ElementRendererComponent, CustomTemplateDirective];\n const elementsResolver = new ElementsResolver(uiDef, elements);\n this.dynamicModuleService.elementsTree = elementsResolver.elements;\n\n @NgModule({\n imports: [CommonModule, ReactiveFormsModule, FederatedModule],\n declarations: [...staticComponents, ...elementsResolver.getNgComponents()],\n jit: true,\n })\n class DynamicModule {}\n\n return DynamicModule;\n }\n}\n","import { ChangeDetectionStrategy, Component, Input, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core';\nimport { MessageService } from 'primeng/api';\nimport { BehaviorSubject, catchError, forkJoin, Observable, of, Subject, switchMap, takeUntil, tap } from 'rxjs';\nimport { ConfigurationRuntimeService } from '../../modules/configuration/services/configuration-runtime.service';\nimport { ConfigurationService } from '../../modules/configuration/services/configuration.service';\nimport { IOProviderService } from '../../services/io-provider.service';\nimport { LauncherService } from '../../services/launcher.service';\nimport { TemplatesService } from '../../services/templates.service';\nimport { ElementMetadata } from '../../types/common.types';\nimport { UIDefinition, UIDefinitionProps, UIElement } from '../../types/ui-definition.types';\nimport { elementToMetadata } from '../../utils/element.utils';\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() modelId?: string;\n @Input() uiDefinition?: UIDefinition;\n\n public state$ = new BehaviorSubject<State>({ loading: true, failure: false });\n public elements: ElementMetadata[] = [];\n\n private destroy$ = new Subject<void>();\n\n constructor(\n private launcherService: LauncherService,\n private configurationService: ConfigurationService,\n private messageService: MessageService,\n private runtimeService: ConfigurationRuntimeService,\n ) {}\n\n ngOnInit() {\n this.startPreview();\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n\n this.configurationService.reset();\n }\n\n private initializeConfiguration$(): Observable<any> {\n const isAlreadyInitialized = this.runtimeService.isInitialized;\n if (!this.uiDefinition || this.uiDefinition.type !== 'CONFIGURATION' || isAlreadyInitialized) {\n return of({});\n }\n\n if (!this.modelId) {\n console.warn(`No modelId is given for uiDefinition with '${this.uiDefinition.type}' type`);\n return of({});\n }\n\n // If still not initialized - init configuration in Test mode\n const uiDefinitionProps: UIDefinitionProps = this.uiDefinition.properties ?? {};\n return this.runtimeService\n .initTestMode(this.modelId, uiDefinitionProps)\n .pipe(switchMap(() => this.configurationService.configure()));\n }\n\n private elementToMetadataSafe(elements: UIElement[]): ElementMetadata[] {\n try {\n return elements.map(element => elementToMetadata(element));\n } catch (e) {\n console.error(e);\n this.messageService.add({ severity: 'error', summary: String(e) });\n return [];\n }\n }\n\n private startPreview() {\n if (!this.uiDefinition) {\n return;\n }\n\n const { children, ...uiDefinitionMeta } = this.uiDefinition;\n this.elements = this.elementToMetadataSafe(children);\n\n const compilation$ = this.launcherService.compileModule(this.elements, uiDefinitionMeta);\n\n forkJoin([compilation$, this.initializeConfiguration$()])\n .pipe(\n tap(() => this.state$.next({ loading: false, failure: false })),\n catchError(error => {\n this.messageService.add({\n severity: 'error',\n summary: error,\n });\n this.state$.next({ loading: false, failure: true });\n return of();\n }),\n takeUntil(this.destroy$),\n )\n .subscribe();\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 *ngFor=\"let el of elements\" [meta]=\"el\"></vl-cms-element-renderer>\n </ng-container>\n </ng-template>\n</ng-container>\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 { NgModule } from '@angular/core';\nimport { ElementRendererModule } from '../element-renderer/element-renderer.module';\nimport { ElementChildrenComponent } from './element-children.component';\n\n@NgModule({\n declarations: [ElementChildrenComponent],\n imports: [ElementRendererModule],\n exports: [ElementChildrenComponent],\n})\nexport class ElementChildrenModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { LoaderModule } from '@veloce/components';\nimport { ElementChildrenModule } from '../element-children/element-children.module';\nimport { ElementRendererModule } from '../element-renderer/element-renderer.module';\nimport { PreviewComponent } from './preview.component';\n\n@NgModule({\n declarations: [PreviewComponent],\n imports: [CommonModule, LoaderModule, ElementRendererModule, ElementChildrenModule],\n exports: [PreviewComponent],\n})\nexport class PreviewModule {}\n","import { UIElementMetadata } from '../types';\n\nexport function ElementDefinition(definition: UIElementMetadata) {\n return function (constructor: any) {\n return constructor;\n };\n}\n","import { NgModule } from '@angular/core';\nimport { ConfigurationApiService, ContextApiService, ProductModelApiService } from '@veloce/api';\nimport { ContextService } from '@veloce/sdk/runtime';\nimport { ConfigurationRuntimeService } from './services/configuration-runtime.service';\nimport { ConfigurationService } from './services/configuration.service';\nimport { RuntimeContextService } from './services/runtime-context.service';\n\n@NgModule({\n providers: [\n ContextService,\n ContextApiService,\n ProductModelApiService,\n ConfigurationApiService,\n ConfigurationRuntimeService,\n RuntimeContextService,\n ConfigurationService,\n ],\n})\nexport class ConfigurationModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { CoreModule } from '@veloce/core';\nimport { ConfigurationModule } from './modules/configuration/configuration.module';\nimport { DynamicModuleService } from './services/dynamic-module.service';\nimport { LauncherService } from './services/launcher.service';\nimport { QuoteApiService, SalesforceApiService } from '@veloce/api';\n\n@NgModule({\n imports: [CommonModule, CoreModule, ConfigurationModule],\n providers: [LauncherService, DynamicModuleService, SalesforceApiService, QuoteApiService],\n})\nexport class LauncherModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.DynamicModuleService","i1.ElementComponent","i2","i3.RuntimeContextService","i1.ConfigurationRuntimeService","i3","i4","map","i2.ElementContextService","i3.IOProviderService","i4.ConfigurationService","i1.ElementContextService","i2.ElementRendererComponent","i1.TemplatesService","angularCore","tap","catchError","i1.LauncherService","i2.ConfigurationService","i4.ConfigurationRuntimeService","i6.ElementRendererComponent"],"mappings":"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"}
1
+ {"version":3,"file":"veloce-sdk-cms.js","sources":["../../../../libs/sdk/cms/injection-tokens.ts","../../../../libs/sdk/cms/engine/models/entity.ts","../../../../libs/sdk/cms/components/element.component.ts","../../../../libs/sdk/cms/utils/path.utils.ts","../../../../libs/sdk/cms/services/dynamic-module.service.ts","../../../../libs/sdk/cms/services/io-provider.service.ts","../../../../libs/sdk/cms/services/templates.service.ts","../../../../libs/sdk/cms/plugins/io.plugin.ts","../../../../libs/sdk/cms/plugins/script.plugin.ts","../../../../libs/sdk/cms/cms.elements.ts","../../../../libs/sdk/cms/utils/element.utils.ts","../../../../libs/sdk/cms/services/element-context.service.ts","../../../../libs/sdk/cms/utils/line-item.utils.ts","../../../../libs/sdk/cms/types/line-item.types.ts","../../../../libs/sdk/cms/modules/configuration/helpers.ts","../../../../libs/sdk/cms/modules/configuration/services/runtime-context.service.ts","../../../../libs/sdk/cms/modules/configuration/services/configuration-runtime.service.ts","../../../../libs/sdk/cms/modules/configuration/services/configuration.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/element-children/element-children.component.ts","../../../../libs/sdk/cms/components/element-children/element-children.component.html","../../../../libs/sdk/cms/utils/federated.util.ts","../../../../libs/sdk/cms/components/federated/federated.component.ts","../../../../libs/sdk/cms/components/federated/federated.component.html","../../../../libs/sdk/cms/components/federated/federated.module.ts","../../../../libs/sdk/cms/directives/custom-template.directive.ts","../../../../libs/sdk/cms/plugins/configuration.plugin.ts","../../../../libs/sdk/cms/cms.default.ts","../../../../libs/sdk/cms/vendor-map.ts","../../../../libs/sdk/cms/utils/elements-resolver.ts","../../../../libs/sdk/cms/services/launcher.service.ts","../../../../libs/sdk/cms/components/preview/preview.component.ts","../../../../libs/sdk/cms/components/preview/preview.component.html","../../../../libs/sdk/cms/components/element-renderer/element-renderer.module.ts","../../../../libs/sdk/cms/components/element-children/element-children.module.ts","../../../../libs/sdk/cms/components/preview/preview.module.ts","../../../../libs/sdk/cms/decorators/element.decorator.ts","../../../../libs/sdk/cms/modules/configuration/configuration.module.ts","../../../../libs/sdk/cms/launcher.module.ts","../../../../libs/sdk/cms/veloce-sdk-cms.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { Dictionary } from 'lodash';\nimport { Plugin } from './engine/models/plugin';\nimport { ElementConfig, ElementMetadata } from './types/common.types';\nimport { UIDefinitionMetadata } from './types/ui-definition.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>('SHARED_ELEMENT_METADATA_TOKEN');\nexport const ELEMENT_CONFIG = new InjectionToken<ElementConfig>('ELEMENT_CONFIG_TOKEN');\nexport const VENDOR_MAP = new InjectionToken<Dictionary<any>>('VENDOR_MAP');\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() {\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) {\n this.plugins.push(plugin);\n }\n}\n","import { AfterViewInit, ChangeDetectionStrategy, Component, Inject, Injector, OnDestroy, OnInit } 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 extends Entity implements OnInit, AfterViewInit, OnDestroy {\n public readonly model$ = new BehaviorSubject<any | undefined>(undefined);\n public readonly plugins!: IPluginComponent[];\n\n constructor(@Inject(Injector) public injector: Injector) {\n super(injector);\n\n super.initPlugins();\n }\n\n ngOnInit(): void {\n this.plugins.forEach(plugin => plugin.ngOnInit?.());\n }\n\n ngAfterViewInit() {\n this.plugins.forEach(plugin => plugin.ngAfterViewInit?.());\n }\n\n ngOnDestroy(): void {\n this.plugins.forEach(plugin => plugin.ngOnDestroy?.());\n }\n}\n","import { ElementMetadata, ElementPath } from '../types';\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 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 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 { ComponentFactory, Injectable } from '@angular/core';\nimport { ElementMetadata } from '../types/common.types';\n\n@Injectable()\nexport class DynamicModuleService {\n private _elementsTree: ElementMetadata[] = [];\n private _componentFactories: ComponentFactory<any>[] = [];\n\n set componentFactories(data: ComponentFactory<any>[]) {\n this._componentFactories = data;\n }\n\n get componentFactories(): ComponentFactory<any>[] {\n return this._componentFactories;\n }\n\n getComponentFactory(element: ElementMetadata): ComponentFactory<any> | undefined {\n return this.componentFactories.find(f => (f.componentType as any).path === element.path);\n }\n\n get elementsTree(): ElementMetadata[] {\n return this._elementsTree;\n }\n\n set elementsTree(tree: ElementMetadata[]) {\n this._elementsTree = tree;\n }\n\n clear() {\n this._elementsTree = [];\n this.componentFactories = [];\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Dictionary } from 'lodash';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { ElementMetadata } from '../types/common.types';\nimport { getAbsolutePath, parsePath } from '../utils/path.utils';\nimport { DynamicModuleService } from './dynamic-module.service';\n\n@Injectable()\nexport class IOProviderService {\n private inputs: Dictionary<Dictionary<BehaviorSubject<any>>> = {};\n\n constructor(private dynamicModuleService: DynamicModuleService) {}\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 elPath = parsePath(target as string);\n const pathIsValue =\n elPath.segments.length === 1 && elPath.segments[0].startsWith('\"') && elPath.segments[0].endsWith('\"');\n\n const finalName = elPath.variable ?? name;\n const value = pathIsValue ? new BehaviorSubject(elPath.segments[0].slice(1, -1)) : undefined;\n\n const absolutePath = !pathIsValue ? getAbsolutePath(this.dynamicModuleService.elementsTree, el, elPath) : el.path;\n return this.createSubjectSafe(absolutePath ?? '', finalName, value);\n }\n\n private createSubjectSafe(path: string, name: string, subject?: BehaviorSubject<any>): BehaviorSubject<any> {\n if (!this.inputs[path]) {\n this.inputs[path] = {};\n }\n\n const subjectAlreadyExists = Boolean(this.inputs[path][name]);\n\n if (!this.inputs[path][name]) {\n this.inputs[path][name] = subject ?? new BehaviorSubject<any>(undefined);\n }\n\n if (subject && subjectAlreadyExists) {\n // push delayed value to workaround 'changed after it was checked' issue\n setTimeout(() => this.inputs[path][name].next(subject.value));\n }\n\n return this.inputs[path][name];\n }\n}\n","import { Injectable, TemplateRef } from '@angular/core';\nimport { Dictionary } from 'lodash';\n\n@Injectable()\nexport class TemplatesService {\n private templates: Dictionary<TemplateRef<any>> = {};\n\n public register(name: string, templateRef: TemplateRef<any>) {\n this.templates[name] = templateRef;\n }\n\n public get(name: string): TemplateRef<any> | undefined {\n return this.templates[name];\n }\n}\n","import { Directive } 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';\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 (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 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 { DOCUMENT } from '@angular/common';\nimport { Directive } from '@angular/core';\nimport { UUID } from '@veloce/core';\nimport { Dictionary } from 'lodash';\nimport { ElementComponent } from '../components/element.component';\nimport { PluginComponent } from '../components/plugin.component';\nimport { ELEMENT_METADATA, SHARED_ELEMENT_METADATA, VENDOR_MAP } from '../injection-tokens';\nimport { ElementMetadata } from '../types/common.types';\n\nconst normalizeImports = (script: string) => {\n const regexp = 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 const result = script.replace(regexp, (match, g1, g2, src) => `const ${g1} = vendor['${src}'];`);\n return result;\n};\n\n@Directive()\nexport class ScriptPlugin implements PluginComponent {\n private document: Document;\n private vendorMap: Dictionary<any>;\n\n constructor(public host: ElementComponent) {\n this.document = this.host.injector.get(DOCUMENT);\n this.vendorMap = this.host.injector.get(VENDOR_MAP);\n const elementMetadata: ElementMetadata = this.host.injector.get(ELEMENT_METADATA);\n const sharedElementMetadata: ElementMetadata | undefined = this.host.injector.get(SHARED_ELEMENT_METADATA);\n\n if (sharedElementMetadata?.script) {\n this.addScript(sharedElementMetadata.script);\n }\n\n if (elementMetadata.script) {\n this.addScript(elementMetadata.script);\n }\n }\n\n private addScript(scriptStr: string) {\n const id = btoa(UUID.UUID());\n const script = this.document.createElement('script');\n script.type = `text/javascript`;\n\n let scriptContent = normalizeImports(scriptStr);\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 this.document.body.appendChild(script);\n\n const ScriptClass = (window as any)[id](this.vendorMap);\n if (ScriptClass instanceof Object) {\n this.host.registerPlugin(new ScriptClass(this.host));\n }\n\n this.document.body.removeChild(script);\n }\n}\n","import { ElementComponent } from './components/element.component';\nimport { IOPlugin } from './plugins/io.plugin';\nimport { ScriptPlugin } from './plugins/script.plugin';\nimport { ElementConfig, ELEMENT_TYPE } 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 CUSTOM: {\n component: ElementComponent,\n plugins: [IOPlugin, 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};\n","import { CONFIG } from '../cms.elements';\nimport { IOPlugin } from '../plugins/io.plugin';\nimport { ElementConfig, ElementMetadata, ELEMENT_TYPE, UIElement, UIElementMetadata, UIElementModel } from '../types';\n\nconst EXPORTED_CLASS_REGEX = /export class (\\S+)/;\nconst METADATA_DECORATOR_REGEX = /@ElementDefinition\\(([\\s\\S]+)\\)(\\n|.)*export class/g;\n\nexport const elementToMetadata = (el: UIElement, parentPath?: string): ElementMetadata => {\n const script = el.script && window.atob(el.script);\n const template = el.template && window.atob(el.template);\n const styles = el.styles && window.atob(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): UIElement => {\n const elMetadata: UIElementMetadata = {\n name: metadata.name,\n isShared: metadata.isShared,\n type: metadata.type,\n model: metadata.model,\n module: metadata.module,\n reference: metadata.reference,\n inputs: metadata.inputs,\n outputs: metadata.outputs,\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 Error(`'${metadata.name}' element script doesn't have exported class`);\n }\n\n const script =\n metadata.script &&\n window.btoa(\n metadata.script.replace(\n EXPORTED_CLASS_REGEX,\n `@ElementDefinition(${stringifyElementMetadata(normalizedElMetadata)})\\nexport class Script`,\n ),\n );\n const template = metadata.template && window.btoa(metadata.template);\n const styles = metadata.styles && window.btoa(metadata.styles);\n\n return {\n script,\n template,\n styles,\n children: metadata.children.map(meta => metadataToElement(meta)),\n };\n};\n\nexport const normalizeElementMetadata = (elementMetadata: UIElementMetadata): UIElementMetadata => {\n const metadata = { ...elementMetadata };\n\n // model\n const { lineItem, path } = metadata.model ?? {};\n const model: UIElementModel | undefined = lineItem ? { lineItem } : path ? { path } : undefined;\n if (model) {\n metadata.model = model;\n } else {\n delete metadata.model;\n }\n\n // module\n if (!metadata.module) {\n delete metadata.module;\n }\n\n // reference\n if (!metadata.reference) {\n delete metadata.reference;\n }\n\n // inputs\n const inputs = Object.entries(metadata.inputs ?? {}).reduce((acc, [key, value]) => {\n return { ...acc, [key]: value || null };\n }, {});\n if (inputs && Object.keys(inputs).length > 0) {\n metadata.inputs = inputs;\n } else {\n delete metadata.inputs;\n }\n\n // outputs\n const outputs = Object.entries(metadata.outputs ?? {}).reduce((acc, [key, value]) => {\n return { ...acc, [key]: value || null };\n }, {});\n if (outputs && Object.keys(outputs).length > 0) {\n metadata.outputs = outputs;\n } else {\n delete metadata.outputs;\n }\n\n // children\n if (!metadata.children?.length) {\n delete metadata.children;\n }\n\n // isShared\n if (!metadata.isShared) {\n delete metadata.isShared;\n }\n\n return metadata;\n};\n\nexport const extractElementMetadata = (script: string): UIElementMetadata => {\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 eval(`(${metadataString})`);\n};\n\nexport const extendElementMetadata = (script: string, extend: Partial<UIElementMetadata>): 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 = { ...eval(`(${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: UIElementMetadata) {\n const cleaned = JSON.stringify(elementMetadata, null, 2);\n\n return cleaned.replace(/^[\\t ]*\"[^:\\n\\r]+(?<!\\\\)\":/gm, function (match) {\n return match.replace(/\"/g, '');\n });\n}\n","import { Injectable } from '@angular/core';\nimport { ElementMetadata } from '../types/common.types';\n\n@Injectable()\nexport class ElementContextService {\n metadata?: ElementMetadata;\n parentModelId?: string;\n}\n","import { Attribute, CfgStatus, EntityUtil, LineItem, PortDomain } from '@veloce/core';\nimport { compact, Dictionary, sortBy } from 'lodash';\nimport { PathBlock } from '../types/configuration.types';\n\nexport const parseBoundPath = (path: string): PathBlock[] => {\n const regexp = new RegExp(`(?:\\\\/)(?:\\\\w+)(?:\\\\/)(?:ports|attributes)(?:\\\\/)(?:\\\\w+)|(?:\\\\/)(?:\\\\w+)`, 'g');\n const blocks: PathBlock[] =\n path.match(regexp)?.map(match => {\n const [type, property, name] = compact(match.split('/'));\n return { type, property, name };\n }) ?? [];\n\n return blocks;\n};\n\nexport const findLineItem = (id: string, lineItems: LineItem[]): LineItem | undefined => {\n return EntityUtil.findByFieldHierarchically('id', id, lineItems, 'lineItems');\n};\n\nexport const insertLineItem = (lineItem: LineItem, parentId: string, toInsert: LineItem): LineItem => {\n const insertData = lineItem.id === parentId ? [toInsert] : [];\n return {\n ...lineItem,\n lineItems: [\n ...insertData,\n ...lineItem.lineItems.map(li => {\n return insertLineItem(li, parentId, toInsert);\n }),\n ],\n };\n};\n\nexport const removeLineItem = (lineItem: LineItem, idToRemove: string): LineItem => {\n return {\n ...lineItem,\n lineItems: lineItem.lineItems\n .map(li => {\n if (li.id === idToRemove) {\n return;\n } else if (li.lineItems.length) {\n return removeLineItem(li, idToRemove);\n }\n return li;\n })\n .filter(r => !!r) as LineItem[],\n };\n};\n\nexport const replaceLineItem = (lineItem: LineItem, replaceTo: LineItem): LineItem => {\n if (lineItem.id === replaceTo.id) {\n return { ...replaceTo };\n }\n\n return {\n ...lineItem,\n lineItems: lineItem.lineItems.map(li => {\n if (li.id === replaceTo.id) {\n return replaceTo;\n } else if (li.lineItems.length) {\n return replaceLineItem(li, replaceTo);\n }\n return li;\n }),\n };\n};\n\nexport const mapAttributes = (attributes: Attribute[]): Dictionary<any> => {\n return attributes.reduce((acc, { name, value }) => ({ ...acc, [name]: value }), {});\n};\n\nexport const getAttributes = (attributes: Attribute[], names: string[] = []) => {\n const filtered = attributes.filter(({ name }) => names.includes(name));\n return sortBy(filtered, [({ name }) => names.indexOf(name)]);\n};\n\nexport const upsertAttributes = (\n originalAttributes: Attribute[],\n attributesToUpsert: { name: string; value: any }[],\n) => {\n return attributesToUpsert.reduce((acc, { name, value }) => {\n const [origAttr] = getAttributes(acc, [name]);\n return [\n ...acc.filter(attr => attr.name !== name),\n { ...(origAttr ?? { name }), cfgStatus: 'User' as CfgStatus, value },\n ];\n }, originalAttributes);\n};\n\nexport const patchAttributes = (rootLineItem: LineItem, id: string, attrs: { name: string; value: any }[]) => {\n const lineItem = findLineItem(id, [rootLineItem]);\n\n if (!lineItem) {\n return rootLineItem;\n }\n\n const attributes = upsertAttributes(lineItem.attributes, attrs);\n return replaceLineItem(rootLineItem, { ...lineItem, attributes });\n};\n\nexport const getAttributeValue = (attributes: Attribute[], name: string): any =>\n attributes.find(attr => attr.name === name)?.value;\n\nexport const generateLineItem = (\n port: string,\n type: string,\n parentId: string,\n attributes: { name: string; value: any }[] = [],\n lineItems: LineItem[] = [],\n): LineItem => {\n return {\n port,\n type,\n actionCode: 'ADD',\n cfgStatus: 'New',\n attributes: attributes.map(({ name, value }) => ({ cfgStatus: 'User', name, value })),\n lineItems,\n parentId,\n qty: 1,\n } as LineItem;\n};\n\nexport const getRecommendedPrices = (portDomain: PortDomain, type: string): { net: number; list: number } => {\n const domainType = portDomain.domainTypes.find(({ name }) => name === type);\n\n const [net, list] = domainType?.recommendedPrices\n ?.filter(({ chargeMethod }) => chargeMethod === 'ONE_TIME')\n .reduce(\n (acc, rp) => {\n const [netPrice, listPrice] = acc;\n return [netPrice + rp.netPrice, listPrice + rp.listPrice];\n },\n [0, 0],\n ) ?? [0, 0];\n\n return { net, list };\n};\n","import { LineItem } from '@veloce/core';\nimport { insertLineItem, patchAttributes, removeLineItem, replaceLineItem } from '../utils/line-item.utils';\n\nexport class LineItemWorker {\n public li: LineItem;\n\n constructor(src: LineItem) {\n this.li = { ...src };\n }\n\n public insert(parentId: string, toInsert: LineItem): LineItemWorker {\n return new LineItemWorker(insertLineItem(this.li, parentId, toInsert));\n }\n\n public remove(id: string): LineItemWorker {\n return new LineItemWorker(removeLineItem(this.li, id));\n }\n\n public replace(toReplace: LineItem): LineItemWorker {\n return new LineItemWorker(replaceLineItem(this.li, toReplace));\n }\n\n public patchAttribute(attrs: { name: string; value: any }[], id?: string): LineItemWorker {\n return new LineItemWorker(patchAttributes(this.li, id ?? this.li.id, attrs));\n }\n}\n","import { LineItem, UUID } from '@veloce/core';\nimport { UIDefinitionProps } from '../../types/ui-definition.types';\nimport { RuntimeContext } from './types/configuration.types';\n\nexport const getDefaultLineItem = (context: RuntimeContext, uiDefinitionProperties: UIDefinitionProps): LineItem => {\n const id = UUID.UUID();\n\n const lineItem: LineItem = {\n id,\n type: uiDefinitionProperties.rootType ?? '',\n cfgStatus: 'Default',\n qty: 1,\n productName: context.properties?.displayName || context.productName,\n productId: context.productId ?? '',\n ...(context.offeringId\n ? { offeringId: context.offeringId, offeringInstanceId: context.offeringInstanceId || id }\n : {}),\n } as LineItem;\n\n return lineItem;\n};\n","import { Injectable } from '@angular/core';\nimport { ConfigurationApiService } from '@veloce/api';\nimport { RuntimeData, RuntimeModel, UIDefinition as LegacyUiDefinition } from '@veloce/core';\nimport { RuntimeMode } from '@veloce/sdk/runtime';\nimport { MessageService } from 'primeng/api';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { UIDefinition } from '../../../types';\nimport { RuntimeContext } from '../types/configuration.types';\n\n@Injectable()\nexport class RuntimeContextService {\n constructor(private configurationApiService: ConfigurationApiService, private messageService: MessageService) {}\n\n getRuntimeContext(productId: string, offeringId?: string): Observable<RuntimeContext> {\n return this.configurationApiService.getRuntimeDataByProductId(productId, offeringId).pipe(\n map(runtimeData => {\n const uiDefinition = this.getUIDefinition(runtimeData);\n const runtimeModel = RuntimeModel.create(runtimeData.types, runtimeData.products);\n const { productName, properties } =\n Array.from(runtimeModel.components.values()).find(c => c.productId === productId) ?? {};\n\n return {\n modelId: runtimeData.modelId,\n uiDefinition: uiDefinition,\n runtimeModel: runtimeModel,\n runtimeMode: RuntimeMode.PROD,\n productId: productId,\n productType: properties?.displayName || productName,\n offeringId: offeringId,\n priceListId: uiDefinition?.properties?.priceList,\n properties: {\n PricingEnabled: uiDefinition?.properties?.pricingEnabled,\n PriceListId: uiDefinition?.properties?.priceList,\n },\n };\n }),\n );\n }\n\n private getUIDefinition(runtimeData: RuntimeData): UIDefinition | undefined {\n let rawUiDefinitions: Array<UIDefinition | LegacyUiDefinition>;\n try {\n rawUiDefinitions = JSON.parse(runtimeData.uiDefinitionsSource);\n } catch (e) {\n return;\n }\n\n const uiDefinitions = rawUiDefinitions.filter(uiDef => (uiDef as UIDefinition).version) as UIDefinition[];\n const uiDefinition = uiDefinitions.find(uiDef => uiDef.primary) ?? uiDefinitions[0];\n\n if (!uiDefinition) {\n const errMsg = `Unable to find Default UI`;\n\n this.messageService.add({\n severity: 'error',\n summary: 'ERROR',\n });\n throw new Error(errMsg);\n }\n\n return uiDefinition;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ConfigurationApiService } from '@veloce/api';\nimport { ConfigurationContextMode, LineItem, RuntimeModel, SalesforceIdUtils } from '@veloce/core';\nimport { ContextService, RuntimeMode } from '@veloce/sdk/runtime';\nimport { Dictionary } from 'lodash';\nimport { combineLatest, Observable, of } from 'rxjs';\nimport { first, tap } from 'rxjs/operators';\nimport { UIDefinitionProps } from '../../../types/ui-definition.types';\nimport { RuntimeInitializationProps } from '../types/configuration-runtime.types';\nimport { RuntimeContext } from '../types/configuration.types';\nimport { RuntimeContextService } from './runtime-context.service';\n\n@Injectable()\nexport class ConfigurationRuntimeService {\n private _runtimeContext?: RuntimeContext;\n private _assets?: LineItem[];\n private _isInitialized = false;\n\n public uiDefinitionProperties: UIDefinitionProps = {};\n\n constructor(\n private apiService: ConfigurationApiService,\n private contextService: ContextService,\n private runtimeContextService: RuntimeContextService,\n ) {}\n\n public reset() {\n this._isInitialized = false;\n this._runtimeContext = undefined;\n this._assets = undefined;\n this.uiDefinitionProperties = {};\n }\n\n public initTestMode(modelId: string, uiDefinitionProperties: UIDefinitionProps) {\n this.uiDefinitionProperties = uiDefinitionProperties;\n\n return combineLatest([\n this.apiService.getRuntimeDataByModelId(modelId),\n this.contextService.create('TestId', ConfigurationContextMode.TEST),\n ]).pipe(\n first(),\n tap(([runtimeData, configurationContext]) => {\n this._runtimeContext = {\n modelId: modelId,\n runtimeModel: RuntimeModel.create(runtimeData.types, runtimeData.products),\n runtimeMode: RuntimeMode.TEST,\n };\n\n this.contextService.update({\n priceListId: uiDefinitionProperties.priceList,\n properties: {\n ...this.runtimeContext?.properties,\n ...configurationContext.properties,\n ModelId: modelId,\n RuntimeMode: ConfigurationContextMode.TEST,\n PricingEnabled: String(uiDefinitionProperties.pricingEnabled),\n StartDate: new Date().toISOString().substring(0, 10),\n PriceListId: uiDefinitionProperties.priceList,\n },\n });\n\n this._isInitialized = true;\n }),\n );\n }\n\n public init(props: RuntimeInitializationProps): Observable<RuntimeContext | undefined> {\n this._assets = props.assets;\n const configurationContext = this.contextService.resolve();\n\n if (!configurationContext) {\n return of();\n }\n\n return this.runtimeContextService.getRuntimeContext(props.productId, props.offeringId).pipe(\n tap(runtimeContext => {\n this.uiDefinitionProperties = runtimeContext.uiDefinition?.properties ?? {};\n\n const mergeContext: RuntimeContext = {\n ...runtimeContext,\n properties: {\n ...runtimeContext.properties,\n ...configurationContext.properties,\n },\n };\n\n this.id15to18('AccountId', mergeContext.properties);\n this._runtimeContext = mergeContext;\n\n if (configurationContext.properties && runtimeContext.properties?.StartDate) {\n this.contextService.update({\n priceListId: this.uiDefinitionProperties.priceList,\n properties: {\n ...runtimeContext.properties,\n ...configurationContext.properties,\n PricingEnabled: String(this.uiDefinitionProperties.pricingEnabled),\n PriceListId: this.uiDefinitionProperties.priceList,\n },\n });\n }\n\n this._isInitialized = true;\n }),\n );\n }\n\n private id15to18(propertyName: string, source?: Dictionary<any>) {\n if (!source) {\n return;\n }\n\n const value = source[propertyName];\n\n if (typeof value === 'string' && value.length === 15) {\n source[propertyName] = SalesforceIdUtils.generateId18FromId15(value);\n }\n }\n\n public getAsset(lineItem: LineItem): LineItem | undefined {\n return this._assets && this._assets.find(a => a.id === lineItem.openOrderLineItemId || a.id === lineItem.assetId);\n }\n\n public get isInitialized() {\n return this._isInitialized;\n }\n\n public get runtimeModel() {\n return this.runtimeContext?.runtimeModel;\n }\n\n public get runtimeContext() {\n return this._runtimeContext;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ConfigurationApiService } from '@veloce/api';\nimport {\n ConfigurationContext,\n ConfigurationMode,\n ConfigurationRequest,\n LineItem,\n PricePlanCharge,\n RuntimeModel,\n} from '@veloce/core';\nimport { ContextService, QuoteStates, RuntimeStep } from '@veloce/sdk/runtime';\nimport { Dictionary } from 'lodash';\nimport { MessageService } from 'primeng/api';\nimport { BehaviorSubject, Observable, of, shareReplay, throwError } from 'rxjs';\nimport { catchError, map, tap } from 'rxjs/operators';\nimport { LineItemWorker } from '../../../types/line-item.types';\nimport { getDefaultLineItem } from '../helpers';\nimport { RuntimeContext } from '../types/configuration.types';\nimport { ConfigurationRuntimeService } from './configuration-runtime.service';\n\n@Injectable()\nexport class ConfigurationService {\n private mode = ConfigurationMode.SEARCH;\n private states: QuoteStates = {};\n\n private lineItem = new BehaviorSubject<LineItem | undefined>(undefined);\n private charges = new BehaviorSubject<Dictionary<PricePlanCharge>>({});\n\n constructor(\n private runtimeService: ConfigurationRuntimeService,\n private contextService: ContextService,\n private configurationApiService: ConfigurationApiService,\n private messageService: MessageService,\n ) {}\n\n public reset() {\n this.runtimeService.reset();\n\n this.states = {};\n this.lineItem.next(undefined);\n this.charges.next({});\n }\n\n public patch(lineItem: LineItem): void {\n if (!this.lineItem.value) {\n return;\n }\n\n this.states.configurableRamp = new LineItemWorker(this.lineItem.value).replace(lineItem).li;\n this.states.asset = this.states.configurableRamp\n ? this.runtimeService.getAsset(this.states.configurableRamp)\n : undefined;\n\n this.configure()\n .pipe(\n catchError(error => {\n this.messageService.add({\n severity: 'error',\n summary: error,\n });\n\n // bounce back if configuration call has failed\n this.lineItem.next(this.lineItem.value ? { ...this.lineItem.value } : undefined);\n return of();\n }),\n )\n .subscribe();\n }\n\n public updateCurrentStates(update: Partial<QuoteStates>) {\n this.states = {\n ...this.states,\n ...update,\n };\n }\n\n public get(): Observable<LineItem | undefined> {\n return this.lineItem.asObservable().pipe(shareReplay());\n }\n\n public getSnapshot(): LineItem | undefined {\n return this.lineItem.value ? { ...this.lineItem.value } : undefined;\n }\n\n public getRuntimeModel(): RuntimeModel | undefined {\n return this.runtimeService.runtimeModel;\n }\n public getRuntimeContext(): RuntimeContext | undefined {\n return this.runtimeService.runtimeContext;\n }\n\n public get charges$(): Observable<Dictionary<PricePlanCharge>> {\n return this.charges.asObservable();\n }\n\n public get chargesSnapshot(): Dictionary<PricePlanCharge> {\n return this.charges.value;\n }\n\n public configure(): Observable<LineItem | undefined> {\n const runtimeContext = this.getRuntimeContext();\n const runtimeModel = this.getRuntimeModel();\n if (!runtimeContext || !runtimeModel) {\n return of(undefined);\n }\n\n const uiDefinitionProperties = {\n ...(runtimeContext.uiDefinition?.properties ?? {}),\n ...(this.runtimeService.uiDefinitionProperties ?? {}),\n };\n const lineItem = this.states.configurableRamp ?? getDefaultLineItem(runtimeContext, uiDefinitionProperties);\n const configurationRequest = this.createRequest(lineItem);\n configurationRequest.lineItems = this.states.currentState || [];\n configurationRequest.asset = this.states.asset;\n\n let request$: Observable<LineItem>;\n if (uiDefinitionProperties.pricingEnabled) {\n request$ = this.configurationApiService.configureAndPriceLineItem(configurationRequest, runtimeModel).pipe(\n map(({ lineItem, context, charges }) => {\n if (context) {\n this.contextService.update({ properties: context.properties });\n }\n this.charges.next(charges ?? {});\n\n return lineItem;\n }),\n );\n } else {\n request$ = this.configurationApiService.configureLineItem(configurationRequest, runtimeModel);\n }\n\n return request$.pipe(\n tap(lineItem => lineItem && this.lineItem.next(lineItem)),\n catchError(error => throwError(() => new Error(error.error?.message || error.message || JSON.stringify(error)))),\n );\n }\n\n private createRequest(lineItem: LineItem): ConfigurationRequest {\n return {\n lineItem,\n mode: this.mode,\n step: !this.lineItem.value ? RuntimeStep.START : RuntimeStep.UPDATE,\n attributeDomainMode: 'ALL',\n context: this.contextService.resolve() as ConfigurationContext,\n };\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentFactory,\n ComponentRef,\n ElementRef,\n Injector,\n Input,\n OnDestroy,\n OnInit,\n SkipSelf,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { LineItem, UUID } from '@veloce/core';\nimport { Dictionary, isArray, pull } from 'lodash';\nimport { map, Observable, Subject, takeUntil } from 'rxjs';\nimport { ConfigurationService } from '../../modules/configuration/services/configuration.service';\nimport { DynamicModuleService } from '../../services/dynamic-module.service';\nimport { ElementContextService } from '../../services/element-context.service';\nimport { IOProviderService } from '../../services/io-provider.service';\nimport { ElementMetadata } from '../../types/common.types';\nimport { parseBoundPath } from '../../utils/line-item.utils';\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 }) el?: ViewContainerRef;\n\n @Input() meta!: ElementMetadata;\n\n private factory?: ComponentFactory<any>;\n private refs: Dictionary<ComponentRef<any> | undefined> = {};\n private destroy$ = new Subject<void>();\n\n constructor(\n @SkipSelf() private parentInjector: Injector,\n private dynamicModuleService: DynamicModuleService,\n private elementContext: ElementContextService,\n private ioProviderService: IOProviderService,\n private configurationService: ConfigurationService,\n private elementRef: ElementRef,\n private cdr: ChangeDetectorRef,\n ) {}\n\n ngOnInit() {\n this.elementContext.metadata = this.meta;\n this.factory = this.dynamicModuleService.getComponentFactory(this.meta);\n\n this.createComponents();\n }\n\n ngOnDestroy(): void {\n this.destroyComponents();\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n private createComponents(): void {\n const modelMeta = this.meta.model;\n\n if (!modelMeta) {\n this.refs[UUID.UUID()] = this.createComponent();\n return;\n }\n\n if (modelMeta.lineItem) {\n this.createFromLineItem(modelMeta.lineItem);\n } else if (modelMeta.path) {\n this.createFromPath(modelMeta.path);\n }\n }\n\n private createFromPath(path: string): void {\n const array$ = this.ioProviderService.connect(this.meta, 'children$', path);\n\n array$?.pipe(takeUntil(this.destroy$)).subscribe(children => {\n if (!isArray(children)) {\n return;\n }\n\n this.processChildren(children);\n });\n }\n\n private createFromLineItem(path: string): void {\n const parentComp = this.parentInjector.get(ElementRendererComponent, null);\n const parentPath = parentComp?.meta.model?.lineItem;\n\n const pathBlocks = parseBoundPath(path).reverse();\n const { property, name } = pathBlocks[1] ?? {};\n const finalPath = pathBlocks[0];\n\n const children$ = this.getParentLineItem$(parentComp).pipe(\n map(model => {\n if (property === 'ports' && !finalPath.property && parentPath !== path) {\n return model.lineItems.filter(({ port }) => port === name) ?? [];\n }\n return [model];\n }),\n );\n\n children$.pipe(takeUntil(this.destroy$)).subscribe(children => {\n this.processChildren(children);\n });\n }\n\n private processChildren(children: any[]): void {\n const refs = children.reduce((acc, data) => {\n const key = String(data?.id ?? UUID.UUID());\n const ref = this.refs[key] ? this.updateComponent(key, data) : this.createComponent(data);\n\n return ref ? { ...acc, [key]: ref } : acc;\n }, {} as Dictionary<ComponentRef<any>>);\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 private getParentLineItem$(parentComp: ElementRendererComponent | null): Observable<LineItem> {\n const parentRefs = Object.values(parentComp?.refs ?? {});\n const parentRef = parentRefs.find(ref =>\n (ref?.location.nativeElement as HTMLElement)?.contains(this.elementRef.nativeElement),\n );\n\n const parentModel$ = parentRef?.instance.model$;\n\n return parentModel$ ?? this.configurationService.get();\n }\n\n private createComponent(data?: any): ComponentRef<any> | undefined {\n if (!this.factory) {\n return;\n }\n\n const componentRef = this.el?.createComponent(this.factory);\n\n if (componentRef) {\n componentRef.location.nativeElement.setAttribute('name', this.meta.name);\n componentRef.location.nativeElement.setAttribute('path', this.meta.path);\n componentRef.instance?.model$.next(data);\n }\n\n return componentRef;\n }\n\n private updateComponent(key: string, data?: any): ComponentRef<any> | undefined {\n const ref = this.refs[key];\n ref?.instance.model$.next(data);\n\n return ref;\n }\n\n private destroyComponent(key: string) {\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 } from '@angular/core';\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 {\n public metadata?: ElementMetadata;\n\n constructor(private elementContext: ElementContextService) {\n this.metadata = this.elementContext.metadata;\n }\n}\n","<ng-container *ngIf=\"metadata?.children.length\">\n <ng-container *ngFor=\"let child of metadata.children\">\n <vl-cms-element-renderer [meta]=\"child\"></vl-cms-element-renderer>\n </ng-container>\n</ng-container>\n","import { Dictionary } from 'lodash';\n\ntype Scope = unknown;\ntype Factory = () => any;\n\ntype Container = {\n init(shareScope: Scope): void;\n get(module: string): Factory;\n};\n\ndeclare const __webpack_init_sharing__: (shareScope: string) => Promise<void>;\ndeclare const __webpack_share_scopes__: { default: Scope };\n\nconst moduleMap: Dictionary<boolean> = {};\n\nfunction loadRemoteEntry(remoteEntry: string): Promise<void> {\n return new Promise<void>((resolve, reject) => {\n if (moduleMap[remoteEntry]) {\n resolve();\n return;\n }\n\n const script = document.createElement('script');\n script.src = remoteEntry;\n\n script.onerror = reject;\n\n script.onload = () => {\n moduleMap[remoteEntry] = true;\n resolve(); // window is the global namespace\n };\n\n document.body.append(script);\n });\n}\n\nasync function lookupExposedModule<T>(remoteName: string, exposedModule: string): Promise<T> {\n // Initializes the share scope. This fills it with known provided modules from this build and all remotes\n await __webpack_init_sharing__('default');\n const container = (window as any)[remoteName] as Container; // or get the container somewhere else\n // Initialize the container, it may provide shared modules\n\n await container.init(__webpack_share_scopes__.default);\n const factory = await container.get(exposedModule);\n const Module = factory();\n return Module as T;\n}\n\nexport type LoadRemoteModuleOptions = {\n remoteEntry: string;\n remoteName: string;\n exposedModule: string;\n};\n\nexport async function loadRemoteModule(options: LoadRemoteModuleOptions): Promise<any> {\n await loadRemoteEntry(options.remoteEntry);\n\n return await lookupExposedModule<any>(options.remoteName, options.exposedModule);\n}\n","import {\n AfterViewInit,\n ApplicationRef,\n ChangeDetectionStrategy,\n Compiler,\n Component,\n ElementRef,\n EventEmitter,\n Injector,\n Input,\n OnChanges,\n Output,\n Renderer2,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { loadRemoteModule } from '../../utils/federated.util';\nimport { LineItem } from '@veloce/core';\n\nenum IntegrationEvent {\n Init = 'Init',\n}\n\ninterface InputData {\n rootLineItem: LineItem;\n}\n\ninterface IntegrationEventPayload {\n type: IntegrationEvent;\n payload?: unknown;\n}\n\ninterface InegrationComponentInstance extends OnChanges {\n integrationEvent: EventEmitter<IntegrationEventPayload>;\n integrationAppRef: ApplicationRef;\n data?: InputData;\n eventData?: IntegrationEventPayload;\n}\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 AfterViewInit, OnChanges {\n @ViewChild('federatedComponent', { read: ViewContainerRef }) federatedComponent?: ViewContainerRef;\n @ViewChild('foo', { read: TemplateRef }) foo?: TemplateRef<unknown>;\n @ViewChild('moduleHost', { static: false }) moduleHostRef?: ElementRef;\n\n @Input() remoteEntry?: string;\n @Input() remoteName?: string;\n @Input() exposedModule?: string;\n @Input() data?: InputData;\n @Input() eventData?: IntegrationEventPayload;\n @Output() private integrationEvent = new EventEmitter<IntegrationEventPayload>();\n\n moduleReady = false;\n\n private instance?: InegrationComponentInstance;\n\n constructor(\n private injector: Injector,\n private compiler: Compiler,\n private appRef: ApplicationRef,\n private renderer: Renderer2,\n ) {}\n\n ngAfterViewInit(): void {\n if (!this.remoteEntry || !this.remoteName || !this.exposedModule) {\n return;\n }\n\n loadRemoteModule({\n remoteEntry: this.remoteEntry,\n remoteName: this.remoteName,\n exposedModule: this.exposedModule,\n }).then(federated => {\n this.compiler.compileModuleAsync(federated[this.exposedModule as string]).then(moduleFactory => {\n const rootModuleRef = moduleFactory.create(this.injector);\n const rootComponentFactory = rootModuleRef.componentFactoryResolver.resolveComponentFactory(\n federated[this.exposedModule as string].rootComponent,\n );\n const node = document.createElement('div');\n const { instance, hostView } = rootComponentFactory.create(this.injector, [], node);\n\n this.instance = instance as InegrationComponentInstance;\n this.instance.data = this.data;\n this.instance.eventData = this.eventData;\n this.instance.integrationEvent = this.integrationEvent;\n\n this.renderer.appendChild(this.moduleHostRef?.nativeElement, node);\n this.appRef.attachView(hostView);\n });\n });\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (!this.instance) {\n return;\n }\n\n this.instance.ngOnChanges(changes);\n }\n}\n","<div #moduleHost></div>\n","import { NgModule } from '@angular/core';\nimport { FederatedComponent } from './federated.component';\n\n@NgModule({\n declarations: [FederatedComponent],\n exports: [FederatedComponent],\n})\nexport class FederatedModule {}\n","import { AfterViewInit, Directive, Input, 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<any>, private templatesService: TemplatesService) {}\n\n @Input() customTemplate: string | undefined;\n\n ngAfterViewInit(): void {\n if (!this.customTemplate) {\n return;\n }\n\n this.templatesService.register(this.customTemplate, this.templateRef);\n }\n}\n","import { Directive, OnDestroy } from '@angular/core';\nimport { LineItem } from '@veloce/core';\nimport { map, Subject, takeUntil } from 'rxjs';\nimport { ElementComponent } from '../components/element.component';\nimport { PluginComponent } from '../components/plugin.component';\nimport { ELEMENT_METADATA } from '../injection-tokens';\nimport { ConfigurationService } from '../modules/configuration/services/configuration.service';\nimport { AttributeElement, ConfigurationElement, PortElement, TypeElement } from '../types';\nimport { ElementMetadata } from '../types/common.types';\nimport { LineItemWorker } from '../types/line-item.types';\nimport { generateLineItem, getAttributeValue, parseBoundPath } from '../utils/line-item.utils';\n\n@Directive()\nexport class ConfigurationPlugin implements PluginComponent, OnDestroy {\n private modelSnapshot?: LineItem;\n private destroy$ = new Subject<void>();\n\n private elementMetadata: ElementMetadata;\n private configurationService: ConfigurationService;\n\n constructor(public host: ElementComponent & ConfigurationElement) {\n this.elementMetadata = this.host.injector.get(ELEMENT_METADATA);\n this.configurationService = this.host.injector.get(ConfigurationService);\n\n if (this.elementMetadata.model?.lineItem) {\n this.host.model$.pipe(takeUntil(this.destroy$)).subscribe(model => (this.modelSnapshot = model));\n\n const pathBlocks = parseBoundPath(this.elementMetadata.model?.lineItem);\n const { type, property, name } = pathBlocks.reverse()[0];\n\n this.host.boundName = name ?? type;\n\n this.register(type, property, name);\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n private register(type?: string, property?: string, name?: string) {\n if (!type) {\n return;\n }\n\n if (!property) {\n this.registerType();\n } else if (property === 'ports' && name) {\n this.registerPort(name);\n } else if (property === 'attributes' && name) {\n this.registerAttribute(name);\n }\n }\n\n private registerType(): void {\n const remove = (id: string): void => {\n const rootLineItem = this.configurationService.getSnapshot();\n if (!rootLineItem) {\n return;\n }\n this.configurationService.patch(new LineItemWorker(rootLineItem).remove(id).li);\n };\n\n this.typeHost.remove = remove;\n }\n\n private registerPort(name: string): void {\n const add = (type: string, attributes: { name: string; value: any }[] = []): void => {\n if (!this.modelSnapshot) {\n return;\n }\n\n const portDomain = this.modelSnapshot.portDomains[name];\n if (!portDomain) {\n return;\n }\n\n const generated = generateLineItem(portDomain.name, type, this.modelSnapshot.id, attributes);\n this.configurationService.patch(\n new LineItemWorker(this.modelSnapshot).insert(this.modelSnapshot.id, generated).li,\n );\n };\n\n this.portHost.addPortItem = add;\n }\n\n private registerAttribute(name: string): void {\n if (!this.host.model$) {\n return;\n }\n\n const value$ = this.host.model$?.pipe(map(model => getAttributeValue(model?.attributes ?? [], name)));\n\n const patch = (value: any) => {\n if (!this.modelSnapshot) {\n return;\n }\n this.configurationService.patch(new LineItemWorker(this.modelSnapshot).patchAttribute([{ name, value }]).li);\n };\n\n this.attributeHost.value$ = value$;\n this.attributeHost.patch = patch;\n }\n\n private get attributeHost() {\n return this.host as ElementComponent & AttributeElement;\n }\n\n private get typeHost() {\n return this.host as ElementComponent & TypeElement;\n }\n\n private get portHost() {\n return this.host as ElementComponent & PortElement;\n }\n}\n","import { Plugin } from './engine/models/plugin';\nimport { ConfigurationPlugin } from './plugins/configuration.plugin';\nimport { UIDefinitionType } from './types/ui-definition.types';\n\nexport const DEFAULT_PLUGINS: { [key in UIDefinitionType]: typeof Plugin[] } = {\n CONFIGURATION: [ConfigurationPlugin],\n DEFAULT: [],\n};\n","import * as angularCore from '@angular/core';\nimport * as angularForms from '@angular/forms';\nimport {\n DocumentAttachmentApiService,\n DocumentTemplatesApiService,\n QuoteApiService,\n SalesforceApiService,\n} from '@veloce/api';\nimport * as lodash from 'lodash';\nimport { Dictionary } from 'lodash';\nimport * as rxjs from 'rxjs';\nimport * as rxjsOperators from 'rxjs/operators';\nimport * as vlInjectionTokens from './injection-tokens';\nimport * as vlCmsModules from './modules';\nimport { TemplatesService } from './services/templates.service';\nimport * as vlCmsLineItemTypes from './types/line-item.types';\nimport * as vlCmsUtils from './utils';\n\nexport const vendorMap: Dictionary<any> = {\n '@veloce/sdk/cms': {\n ...vlCmsModules,\n ...vlCmsUtils,\n ...vlCmsLineItemTypes,\n ...vlInjectionTokens,\n TemplatesService,\n },\n '@veloce/api': {\n SalesforceApiService,\n QuoteApiService,\n DocumentTemplatesApiService,\n DocumentAttachmentApiService,\n },\n '@angular/core': angularCore,\n '@angular/forms': angularForms,\n rxjs: rxjs,\n 'rxjs/operators': rxjsOperators,\n lodash: lodash,\n};\n","import { Component, Type } from '@angular/core';\nimport { transform } from '@babel/standalone';\nimport { flatten, set } from 'lodash';\nimport { DEFAULT_PLUGINS } from '../cms.default';\nimport { CONFIG } from '../cms.elements';\nimport {\n DEFAULT_PLUGINS_TOKEN,\n ELEMENT_CONFIG,\n ELEMENT_METADATA,\n SHARED_ELEMENT_METADATA,\n UI_DEFINITION_METADATA,\n VENDOR_MAP,\n} from '../injection-tokens';\nimport { ElementMetadata, UIDefinitionMetadata } from '../types';\nimport { vendorMap } from '../vendor-map';\n\nexport class ElementsResolver {\n public readonly elements: ElementMetadata[];\n\n private renderableElements: ElementMetadata[] = [];\n private sharedElements: ElementMetadata[] = [];\n\n constructor(private uiDef: UIDefinitionMetadata, elements: ElementMetadata[]) {\n this.elements = this.transpileScripts(elements);\n\n const flatElements = this.flattenElements(this.elements);\n\n for (const el of flatElements) {\n if (this.isSharedElement(el)) {\n this.sharedElements.push(el);\n } else {\n this.renderableElements.push(el);\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 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 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 getSharedElement(element: ElementMetadata): ElementMetadata | undefined {\n if (element.type !== '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 return !config.suppressStyles ? element.styles ?? '' : '';\n }\n\n private processElementMetadata(sourceElement: ElementMetadata): ElementMetadata | undefined {\n const sharedElement = this.getSharedElement(sourceElement);\n let finalElement: ElementMetadata;\n\n if (sourceElement.type === 'REFERENCE') {\n if (!sharedElement) {\n console.warn(`Shared element \"${sourceElement.reference}\" not found`);\n return;\n }\n\n finalElement = {\n ...sourceElement,\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 }\n\n finalElement.template = this.resolveElementTemplate(finalElement);\n finalElement.styles = this.resolveElementStyles(finalElement);\n\n return finalElement;\n }\n\n private resolveElement(sourceElement: ElementMetadata): Type<any> | undefined {\n const element = this.processElementMetadata(sourceElement);\n if (!element) {\n return;\n }\n\n const config = CONFIG[element.type];\n const defaultPlugins = DEFAULT_PLUGINS[this.uiDef.type];\n\n if (!config) {\n console.warn(`Unknown element type \"${element.type}\"`);\n return;\n }\n\n const component: Component = {\n selector: 'vl-element',\n template: element.template,\n ...(element.styles ? { styles: [element.styles] } : {}),\n providers: [\n { provide: DEFAULT_PLUGINS_TOKEN, useValue: defaultPlugins },\n { provide: UI_DEFINITION_METADATA, useValue: this.uiDef },\n { provide: ELEMENT_METADATA, useValue: element },\n { provide: SHARED_ELEMENT_METADATA, useValue: this.getSharedElement(sourceElement) },\n { provide: ELEMENT_CONFIG, useValue: config },\n { provide: VENDOR_MAP, useValue: vendorMap },\n ],\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 public getNgComponents(): Type<any>[] {\n return this.renderableElements.map(el => this.resolveElement(el)).filter(Boolean) as Type<any>[];\n }\n}\n","import { DragDropModule } from '@angular/cdk/drag-drop';\nimport { CommonModule } from '@angular/common';\nimport { Compiler, Injectable, ModuleWithComponentFactories, NgModule, Type } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { from, Observable, tap } from 'rxjs';\nimport { ElementChildrenComponent } from '../components/element-children/element-children.component';\nimport { ElementRendererComponent } from '../components/element-renderer/element-renderer.component';\nimport { FederatedModule } from '../components/federated/federated.module';\nimport { CustomTemplateDirective } from '../directives/custom-template.directive';\nimport { ElementMetadata } from '../types';\nimport { UIDefinitionMetadata } from '../types/ui-definition.types';\nimport { ElementsResolver } from '../utils/elements-resolver';\nimport { DynamicModuleService } from './dynamic-module.service';\n\n@Injectable()\nexport class LauncherService {\n private module?: Type<NgModule>;\n private moduleInstance?: ModuleWithComponentFactories<NgModule>;\n\n constructor(private compiler: Compiler, private dynamicModuleService: DynamicModuleService) {}\n\n public compileModule(\n elements: ElementMetadata[],\n uiDefs: UIDefinitionMetadata,\n ): Observable<ModuleWithComponentFactories<NgModule>> {\n this.module = this.getModule(elements, uiDefs);\n return from(this.compiler.compileModuleAndAllComponentsAsync(this.module)).pipe(\n tap(m => {\n this.dynamicModuleService.componentFactories = m.componentFactories;\n this.moduleInstance = m;\n }),\n );\n }\n\n public destroy() {\n if (this.moduleInstance) {\n this.dynamicModuleService.clear();\n this.moduleInstance = undefined;\n }\n\n if (this.module) {\n this.compiler.clearCacheFor(this.module);\n this.module = undefined;\n }\n }\n\n private getModule(elements: ElementMetadata[], uiDef: UIDefinitionMetadata): Type<NgModule> {\n const staticComponents = [ElementChildrenComponent, ElementRendererComponent, CustomTemplateDirective];\n const elementsResolver = new ElementsResolver(uiDef, elements);\n this.dynamicModuleService.elementsTree = elementsResolver.elements;\n\n @NgModule({\n imports: [CommonModule, FormsModule, ReactiveFormsModule, FederatedModule, DragDropModule],\n declarations: [...staticComponents, ...elementsResolver.getNgComponents()],\n jit: true,\n })\n class DynamicModule {}\n\n return DynamicModule;\n }\n}\n","import { ChangeDetectionStrategy, Component, Input, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core';\nimport { MessageService } from 'primeng/api';\nimport { BehaviorSubject, catchError, forkJoin, Observable, of, Subject, switchMap, takeUntil, tap } from 'rxjs';\nimport { ConfigurationRuntimeService } from '../../modules/configuration/services/configuration-runtime.service';\nimport { ConfigurationService } from '../../modules/configuration/services/configuration.service';\nimport { IOProviderService } from '../../services/io-provider.service';\nimport { LauncherService } from '../../services/launcher.service';\nimport { TemplatesService } from '../../services/templates.service';\nimport { ElementMetadata } from '../../types/common.types';\nimport { UIDefinition, UIDefinitionProps, UIElement } from '../../types/ui-definition.types';\nimport { elementToMetadata } from '../../utils/element.utils';\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() modelId?: string;\n @Input() uiDefinition?: UIDefinition;\n\n public state$ = new BehaviorSubject<State>({ loading: true, failure: false });\n public elements: ElementMetadata[] = [];\n\n private destroy$ = new Subject<void>();\n\n constructor(\n private launcherService: LauncherService,\n private configurationService: ConfigurationService,\n private messageService: MessageService,\n private runtimeService: ConfigurationRuntimeService,\n ) {}\n\n ngOnInit() {\n this.startPreview();\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n\n this.configurationService.reset();\n }\n\n private initializeConfiguration$(): Observable<any> {\n const isAlreadyInitialized = this.runtimeService.isInitialized;\n if (!this.uiDefinition || this.uiDefinition.type !== 'CONFIGURATION' || isAlreadyInitialized) {\n return of({});\n }\n\n if (!this.modelId) {\n console.warn(`No modelId is given for uiDefinition with '${this.uiDefinition.type}' type`);\n return of({});\n }\n\n // If still not initialized - init configuration in Test mode\n const uiDefinitionProps: UIDefinitionProps = this.uiDefinition.properties ?? {};\n return this.runtimeService\n .initTestMode(this.modelId, uiDefinitionProps)\n .pipe(switchMap(() => this.configurationService.configure()));\n }\n\n private elementToMetadataSafe(elements: UIElement[]): ElementMetadata[] {\n try {\n return elements.map(element => elementToMetadata(element));\n } catch (e) {\n console.error(e);\n this.messageService.add({ severity: 'error', summary: String(e) });\n return [];\n }\n }\n\n private startPreview() {\n if (!this.uiDefinition) {\n return;\n }\n\n const { children, ...uiDefinitionMeta } = this.uiDefinition;\n this.elements = this.elementToMetadataSafe(children);\n\n const compilation$ = this.launcherService.compileModule(this.elements, uiDefinitionMeta);\n\n forkJoin([compilation$, this.initializeConfiguration$()])\n .pipe(\n tap(() => this.state$.next({ loading: false, failure: false })),\n catchError(error => {\n this.messageService.add({\n severity: 'error',\n summary: error,\n });\n this.state$.next({ loading: false, failure: true });\n return of();\n }),\n takeUntil(this.destroy$),\n )\n .subscribe();\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 *ngFor=\"let el of elements\" [meta]=\"el\"></vl-cms-element-renderer>\n </ng-container>\n </ng-template>\n</ng-container>\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 { NgModule } from '@angular/core';\nimport { ElementRendererModule } from '../element-renderer/element-renderer.module';\nimport { ElementChildrenComponent } from './element-children.component';\n\n@NgModule({\n declarations: [ElementChildrenComponent],\n imports: [ElementRendererModule],\n exports: [ElementChildrenComponent],\n})\nexport class ElementChildrenModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { LoaderModule } from '@veloce/components';\nimport { ElementChildrenModule } from '../element-children/element-children.module';\nimport { ElementRendererModule } from '../element-renderer/element-renderer.module';\nimport { PreviewComponent } from './preview.component';\n\n@NgModule({\n declarations: [PreviewComponent],\n imports: [CommonModule, LoaderModule, ElementRendererModule, ElementChildrenModule],\n exports: [PreviewComponent],\n})\nexport class PreviewModule {}\n","import { UIElementMetadata } from '../types';\n\nexport function ElementDefinition(definition: UIElementMetadata) {\n return function (constructor: any) {\n return constructor;\n };\n}\n","import { NgModule } from '@angular/core';\nimport { ConfigurationApiService, ContextApiService, ProductModelApiService } from '@veloce/api';\nimport { ContextService } from '@veloce/sdk/runtime';\nimport { ConfigurationRuntimeService } from './services/configuration-runtime.service';\nimport { ConfigurationService } from './services/configuration.service';\nimport { RuntimeContextService } from './services/runtime-context.service';\n\n@NgModule({\n providers: [\n ContextService,\n ContextApiService,\n ProductModelApiService,\n ConfigurationApiService,\n ConfigurationRuntimeService,\n RuntimeContextService,\n ConfigurationService,\n ],\n})\nexport class ConfigurationModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport {\n DocumentAttachmentApiService,\n DocumentTemplatesApiService,\n QuoteApiService,\n SalesforceApiService,\n} from '@veloce/api';\nimport { CoreModule } from '@veloce/core';\nimport { ConfigurationModule } from './modules/configuration/configuration.module';\nimport { DynamicModuleService } from './services/dynamic-module.service';\nimport { LauncherService } from './services/launcher.service';\n\n@NgModule({\n imports: [CommonModule, CoreModule, ConfigurationModule],\n providers: [\n LauncherService,\n DynamicModuleService,\n SalesforceApiService,\n QuoteApiService,\n DocumentTemplatesApiService,\n DocumentAttachmentApiService,\n ],\n})\nexport class LauncherModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["map","angularCore","tap","catchError"],"mappings":"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"}