@veloceapps/sdk 6.0.0-90 → 6.0.0-92

Sign up to get free protection for your applications and to get access to all the features.
@@ -1 +1 @@
1
- {"version":3,"file":"veloceapps-sdk-cms.umd.js","sources":["../../../../libs/sdk/cms/cms.actions.ts","../../../../node_modules/tslib/tslib.es6.js","../../../../libs/sdk/cms/injection-tokens.ts","../../../../libs/sdk/cms/engine/models/entity.ts","../../../../libs/sdk/cms/components/element.component.ts","../../../../libs/sdk/cms/utils/ui-definition.utils.ts","../../../../libs/sdk/cms/utils/path.utils.ts","../../../../libs/sdk/cms/modules/runtime/tokens.ts","../../../../libs/sdk/cms/modules/runtime/services/runtime.service.ts","../../../../libs/sdk/cms/services/io-provider.service.ts","../../../../libs/sdk/cms/services/templates.service.ts","../../../../libs/sdk/cms/services/integration.state.ts","../../../../libs/sdk/cms/services/resources.service.ts","../../../../libs/sdk/cms/services/element-context.service.ts","../../../../libs/sdk/cms/components/element-renderer/element-renderer.component.ts","../../../../libs/sdk/cms/components/element-renderer/element-renderer.component.html","../../../../libs/sdk/cms/components/preview/preview.component.ts","../../../../libs/sdk/cms/components/preview/preview.component.html","../../../../libs/sdk/cms/modules/runtime/services/runtime-editor.service.ts","../../../../libs/sdk/cms/components/element-drop-handle/element-drop-handle.component.ts","../../../../libs/sdk/cms/components/element-drop-handle/element-drop-handle.component.html","../../../../libs/sdk/cms/components/element-drop-handle/element-drop-handle.module.ts","../../../../libs/sdk/cms/components/element-renderer/element-renderer.module.ts","../../../../libs/sdk/cms/components/element-children/element-children.component.ts","../../../../libs/sdk/cms/components/element-children/element-children.component.html","../../../../libs/sdk/cms/components/element-children/element-children.module.ts","../../../../libs/sdk/cms/components/preview/preview.module.ts","../../../../libs/sdk/cms/decorators/element.decorator.ts","../../../../libs/sdk/cms/directives/custom-template.directive.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/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/modules/federated/default-options.ts","../../../../libs/sdk/cms/modules/federated/federated.utils.ts","../../../../libs/sdk/cms/modules/federated/federated.component.ts","../../../../libs/sdk/cms/modules/federated/federated.component.html","../../../../libs/sdk/cms/modules/federated/federated.module.ts","../../../../libs/sdk/cms/modules/runtime/services/compilation.service.ts","../../../../libs/sdk/cms/modules/runtime/runtime.module.ts","../../../../libs/sdk/cms/launcher.module.ts","../../../../libs/sdk/cms/modules/migrations/migrations.ts","../../../../libs/sdk/cms/modules/migrations/services/migrations.service.ts","../../../../libs/sdk/cms/modules/migrations/migrations.module.ts","../../../../libs/sdk/cms/veloceapps-sdk-cms.ts"],"sourcesContent":["import { IntegrationAction } from './types';\n\nexport enum FlowAction {\n FLOW_CONFIGURE_PRODUCT = 'FLOW_CONFIGURE_PRODUCT',\n FLOW_NAVIGATE_BACK = 'FLOW_NAVIGATE_BACK',\n FLOW_NAVIGATE_TO_CATALOG = 'FLOW_NAVIGATE_TO_CATALOG',\n FLOW_APPLY_PRODUCT_CONFIGURATION = 'FLOW_APPLY_PRODUCT_CONFIGURATION',\n FLOW_OPEN_DOC_GEN = 'FLOW_OPEN_DOC_GEN',\n FLOW_CLOSE_DOC_GEN = 'FLOW_CLOSE_DOC_GEN',\n FLOW_SWITCH_OBJECT = 'FLOW_SWITCH_OBJECT',\n REMOTE_APPLY = 'REMOTE_APPLY',\n REMOTE_CANCEL = 'REMOTE_CANCEL',\n}\n\nexport const ConfigureProductAction = ({\n lineItemId,\n productId,\n}: {\n lineItemId?: string;\n productId?: string;\n}): IntegrationAction => ({\n type: FlowAction.FLOW_CONFIGURE_PRODUCT,\n payload: { lineItemId, productId },\n});\n\nexport const NavigateBackAction = (): IntegrationAction => ({\n type: FlowAction.FLOW_NAVIGATE_BACK,\n});\n\nexport const NavigateToCatalogAction = (): IntegrationAction => ({\n type: FlowAction.FLOW_NAVIGATE_TO_CATALOG,\n});\n\nexport const ApplyProductConfigurationAction = (): IntegrationAction => ({\n type: FlowAction.FLOW_APPLY_PRODUCT_CONFIGURATION,\n});\n\nexport const OpenDocGenAction = (): IntegrationAction => ({\n type: FlowAction.FLOW_OPEN_DOC_GEN,\n});\n\nexport const CloseDocGenAction = (): IntegrationAction => ({\n type: FlowAction.FLOW_CLOSE_DOC_GEN,\n});\n\nexport const RemoteApplyAction = (): IntegrationAction => ({\n type: FlowAction.REMOTE_APPLY,\n});\n\nexport const RemoteCancelAction = (): IntegrationAction => ({\n type: FlowAction.REMOTE_CANCEL,\n});\n\nexport const SwitchObjectAction = (payload: { id: string }): IntegrationAction => ({\n type: FlowAction.FLOW_SWITCH_OBJECT,\n payload,\n});\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.push(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.push(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","import { InjectionToken } from '@angular/core';\nimport { UIDefinitionMetadata } from '@veloceapps/sdk/core';\nimport { Dictionary } from 'lodash';\nimport { Plugin } from './engine/models/plugin';\nimport { ElementConfig, ElementMetadata } from './types/common.types';\n\nexport const DEFAULT_PLUGINS_TOKEN = new InjectionToken<typeof Plugin[]>('DEFAULT_PLUGINS_TOKEN');\n\nexport const UI_DEFINITION_METADATA = new InjectionToken<UIDefinitionMetadata>('UI_DEFINITION_METADATA_TOKEN');\nexport const ELEMENT_METADATA = new InjectionToken<ElementMetadata>('ELEMENT_METADATA_TOKEN');\nexport const SHARED_ELEMENT_METADATA = new InjectionToken<ElementMetadata>('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(): void {\n this.defaultPlugins.forEach(plugin => this.registerPlugin(new plugin(this)));\n this.config.plugins?.forEach(plugin => this.registerPlugin(new plugin(this)));\n }\n\n public registerPlugin(plugin: Plugin): void {\n this.plugins.push(plugin);\n }\n}\n","/* eslint-disable @angular-eslint/no-conflicting-lifecycle */\nimport {\n AfterContentInit,\n AfterViewChecked,\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n DoCheck,\n Inject,\n Injector,\n OnChanges,\n OnDestroy,\n OnInit,\n SimpleChanges,\n} from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { Entity } from '../engine/models/entity';\nimport { IPluginComponent } from './plugin.component';\n\n@Component({\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush,\n jit: true,\n})\nexport class ElementComponent\n extends Entity\n implements OnChanges, OnInit, DoCheck, AfterContentInit, AfterViewInit, AfterViewChecked, OnDestroy\n{\n public readonly model$ = new BehaviorSubject<any | undefined>(undefined);\n public readonly plugins!: IPluginComponent[];\n\n constructor(@Inject(Injector) public injector: Injector) {\n super(injector);\n\n super.initPlugins();\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n this.plugins.forEach(plugin => plugin.ngOnChanges?.(changes));\n }\n\n public ngOnInit(): void {\n this.plugins.forEach(plugin => plugin.ngOnInit?.());\n }\n\n public ngDoCheck(): void {\n this.plugins.forEach(plugin => plugin.ngDoCheck?.());\n }\n\n public ngAfterContentInit(): void {\n this.plugins.forEach(plugin => plugin.ngAfterContentInit?.());\n }\n\n public ngAfterViewInit(): void {\n this.plugins.forEach(plugin => plugin.ngAfterViewInit?.());\n }\n\n public ngAfterViewChecked(): void {\n this.plugins.forEach(plugin => plugin.ngAfterViewChecked?.());\n }\n\n public ngOnDestroy(): void {\n this.plugins.forEach(plugin => plugin.ngOnDestroy?.());\n }\n}\n","import { ElementMetadata } from '../types';\n\nexport function getElementUniqueName<T>(\n collection: T[],\n name: string,\n comparator: (name: string) => (value: T, index?: number, array?: T[]) => boolean,\n): string {\n let result = '';\n let index = 0;\n\n while (!result) {\n const candidate = name + (index ? ` (${index})` : '');\n const exists = collection.some(comparator(candidate));\n\n if (!exists) {\n result = candidate;\n } else {\n index++;\n }\n }\n\n return result;\n}\n\nconst insertElementAt = (\n source: ElementMetadata[],\n target: ElementMetadata,\n parentPath: string,\n index: number,\n): ElementMetadata[] => {\n const result = [...source];\n const name = getElementUniqueName(\n result,\n target.name,\n (name: string) =>\n (el): boolean =>\n el.name === name,\n );\n const path = parentPath ? `${parentPath}/${name}` : name;\n result.splice(index, 0, { ...target, path, name });\n return result;\n};\n\nexport const insertElement = (\n source: ElementMetadata[],\n target: ElementMetadata,\n path: string,\n index: number,\n): ElementMetadata[] => {\n if (!path) {\n return insertElementAt(source, target, '', index);\n }\n\n return source.map(element => {\n if (element.path === path) {\n return { ...element, children: insertElementAt(element.children, target, element.path, index) };\n } else if (element.path?.startsWith(path)) {\n return {\n ...element,\n children: insertElement(element.children, target, path, index),\n };\n } else {\n return element;\n }\n });\n};\n\nexport const removeElement = (source: ElementMetadata[], path: string): ElementMetadata[] => {\n return source.reduce((trunk: ElementMetadata[], element) => {\n if (path === element.path) {\n return trunk;\n }\n\n if (element.path) {\n if (path.startsWith(element.path)) {\n trunk.push({\n ...element,\n children: removeElement(element.children, path),\n });\n } else {\n trunk.push(element);\n }\n }\n\n return trunk;\n }, []);\n};\n\nexport const findElementByPath = (source: ElementMetadata[], path: string): ElementMetadata | undefined => {\n for (const el of source) {\n if (el.path === path) {\n return el;\n }\n\n if (el.path && path.startsWith(el.path)) {\n const found = findElementByPath(el.children, path);\n if (found) {\n return found;\n }\n }\n }\n\n return;\n};\n\nexport const findElementByModule = (\n elements: ElementMetadata[],\n module: string,\n elementName: string,\n): ElementMetadata | undefined => {\n for (const el of elements) {\n if (el.module === module && el.name === elementName) {\n return el;\n }\n\n const child = findElementByModule(el.children, module, elementName);\n if (child) {\n return child;\n }\n }\n\n return;\n};\n","import { compact } from 'lodash';\nimport { ElementMetadata, ElementPath, PathBlock } from '../types';\nimport { findElementByModule } from './ui-definition.utils';\n\nexport const parseBoundPath = (path: string): PathBlock[] => {\n const regexp = new RegExp(`(?:\\\\/)(?:\\\\w+)(?:\\\\/)(?:ports|attributes)(?:\\\\/)(?:\\\\w+)|(?:\\\\/)(?:\\\\w+)`, 'g');\n const blocks: PathBlock[] =\n path.match(regexp)?.map(match => {\n const [type, property, name] = compact(match.split('/'));\n return { type, property, name };\n }) ?? [];\n\n return blocks;\n};\n\nexport const parsePath = (path: string): ElementPath => {\n const segments = path.split('/');\n let module: string | undefined;\n let variable: string | undefined;\n\n if (segments[0]?.startsWith('@')) {\n module = segments.shift()?.substring(1);\n }\n\n if (segments[segments.length - 1]?.[0] === ':') {\n variable = segments.pop()?.substring(1);\n }\n\n const isAbsolute = !segments[0];\n const nonEmptySegments = segments.filter(Boolean);\n\n if (!isAbsolute && nonEmptySegments[0] === '.') {\n nonEmptySegments.shift();\n }\n\n return {\n isAbsolute,\n segments: nonEmptySegments,\n module,\n variable,\n };\n};\n\nexport const getAbsolutePath = (\n elements: ElementMetadata[],\n subject: ElementMetadata,\n path: ElementPath,\n): string | undefined => {\n if (path.module) {\n return findElementByModule(elements, path.module, path.segments[0])?.path;\n }\n\n const subjectSegments = subject.path?.split('/') ?? [];\n const segments = [...path.segments];\n\n if (path.isAbsolute) {\n return segments.join('/');\n }\n\n while (segments.length) {\n const segment = segments.shift();\n\n if (segment === '..') {\n subjectSegments.pop();\n } else if (segment) {\n subjectSegments.push(segment);\n }\n }\n\n return subjectSegments.join('/');\n};\n","import { InjectionToken } from '@angular/core';\nimport type { CompilationService } from './services/compilation.service';\n\nexport const CMS_COMPILATION_SERVICE = new InjectionToken<CompilationService>('VENDOR_MAP');\n","import { ComponentFactory, Injectable, Injector, NgModule, Type } from '@angular/core';\nimport { UIDefinition } from '@veloceapps/sdk/core';\nimport { applyPatch, Patch } from 'rfc6902';\nimport { AddOperation, RemoveOperation } from 'rfc6902/diff';\nimport { BehaviorSubject, distinctUntilChanged, map, Observable, of, startWith, Subject, switchMap, tap } from 'rxjs';\nimport { CMSPreviewConfig } from '../../../components/preview/preview.types';\nimport { ElementMetadata } from '../../../types';\nimport { findElementByPath } from '../../../utils/ui-definition.utils';\nimport { CMS_COMPILATION_SERVICE } from '../tokens';\nimport type { CompilationService } from './compilation.service';\n\n@Injectable()\nexport class RuntimeService {\n public modules: Type<NgModule>[] = [];\n public componentFactories: Record<string, ComponentFactory<any>> = {};\n public applicationTree: ElementMetadata[] = [];\n public config?: CMSPreviewConfig;\n public isInitialized$ = new BehaviorSubject(false);\n public updated$ = new Subject<void>();\n\n private compilationService: CompilationService;\n\n constructor(private injector: Injector) {\n this.compilationService = this.injector.get(CMS_COMPILATION_SERVICE);\n }\n\n public initialize$(uiDefinition?: UIDefinition, config?: CMSPreviewConfig): Observable<ElementMetadata[]> {\n this.config = config;\n\n if (!uiDefinition) {\n return of([]);\n }\n\n return this.compilationService.compileUIDefinition$(uiDefinition).pipe(\n map(result => {\n this.applicationTree = result.elements;\n this.addComponentFactories(result.module.componentFactories);\n return result.elements;\n }),\n tap(() => this.isInitialized$.next(true)),\n );\n }\n\n public applyPatch$(patch: Patch): Observable<void> {\n let observable$: Observable<any> = of(undefined);\n\n patch.forEach(operation => {\n switch (operation.op) {\n case 'add': {\n observable$ = observable$.pipe(switchMap(() => this.addElement$(operation)));\n break;\n }\n case 'remove': {\n observable$ = observable$.pipe(map(() => this.deleteElement(operation)));\n break;\n }\n default:\n observable$ = of();\n }\n });\n\n return observable$.pipe(tap(() => this.updated$.next()));\n }\n\n public getCompiledElement$(path: string): Observable<ElementMetadata | undefined> {\n return this.updated$.pipe(\n startWith(undefined),\n map(() => findElementByPath(this.applicationTree, path)),\n distinctUntilChanged(),\n );\n }\n\n public clear(): void {\n this.compilationService.clearModuleCache(this.modules);\n this.modules = [];\n this.applicationTree = [];\n this.componentFactories = {};\n this.isInitialized$.next(false);\n }\n\n private addElement$(operation: AddOperation): Observable<void> {\n return this.compilationService.compileElement$(operation.value).pipe(\n map(result => {\n this.addComponentFactories(result.module.componentFactories);\n applyPatch(this.applicationTree, [{ ...operation, value: result.elements[0] }]);\n }),\n );\n }\n\n private deleteElement(operation: RemoveOperation): void {\n applyPatch(this.applicationTree, [operation]);\n }\n\n private addComponentFactories(list: ComponentFactory<any>[]): void {\n list.forEach(item => (this.componentFactories[(item.componentType as any).path] = item));\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Dictionary } from 'lodash';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { RuntimeService } from '../modules/runtime/services/runtime.service';\nimport { ElementMetadata } from '../types/common.types';\nimport { getAbsolutePath, parsePath } from '../utils/path.utils';\n\n@Injectable()\nexport class IOProviderService {\n private inputs: Dictionary<Dictionary<BehaviorSubject<any>>> = {};\n\n constructor(private runtimeService: RuntimeService) {}\n\n public connect(el: ElementMetadata, name: string, target?: string | null): Observable<any> | undefined {\n return this.resolveTarget(el, name, target)?.asObservable();\n }\n\n public provide(el: ElementMetadata, name: string, target?: string | null): BehaviorSubject<any> | undefined {\n return this.resolveTarget(el, name, target);\n }\n\n private resolveTarget(el: ElementMetadata, name: string, target?: string | null): BehaviorSubject<any> | undefined {\n const isHost = !target;\n\n if (isHost) {\n return this.createSubjectSafe(el.path ?? '', name);\n }\n\n const 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.runtimeService.applicationTree, 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';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\ntype Template = TemplateRef<any> | undefined;\n\n@Injectable()\nexport class TemplatesService {\n private templates: Dictionary<BehaviorSubject<Template>> = {};\n\n public register(name: string, templateRef: TemplateRef<any>): void {\n this.ensureStorage(name);\n this.templates[name].next(templateRef);\n }\n\n public get(name: string): Template {\n this.ensureStorage(name);\n return this.templates[name].value;\n }\n\n public get$(name: string): Observable<Template> {\n this.ensureStorage(name);\n return this.templates[name].asObservable();\n }\n\n private ensureStorage(name: string): void {\n if (!this.templates[name]) {\n this.templates[name] = new BehaviorSubject<Template>(undefined);\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Dictionary } from 'lodash';\nimport { BehaviorSubject, filter, map, Observable } from 'rxjs';\nimport { IntegrationAction } from '../types/integration.types';\n\nconst InitAction: IntegrationAction = { type: 'INIT' };\nconst ClearAction: IntegrationAction = { type: 'CLEAR' };\n\n@Injectable({ providedIn: 'root' })\nexport class IntegrationState<S = Dictionary<any>> {\n private readonly stateSubj$ = new BehaviorSubject<S>({} as S);\n private readonly action$ = new BehaviorSubject<IntegrationAction>(InitAction);\n\n public get state$(): Observable<S> {\n return this.stateSubj$.asObservable();\n }\n\n public get state(): S {\n return this.stateSubj$.getValue();\n }\n\n public patchState(update: Partial<S>): void {\n this.stateSubj$.next({ ...this.stateSubj$.getValue(), ...update });\n }\n\n public dispatch(action: IntegrationAction): void {\n this.action$.next(action);\n }\n\n public listen$<P = any>(actionType: string): Observable<P> {\n return this.action$.pipe(\n filter(action => action.type === actionType),\n map(action => action.payload as P),\n );\n }\n\n public listenAll$<T extends IntegrationAction>(): Observable<T> {\n return this.action$.asObservable() as Observable<T>;\n }\n\n public clear(): void {\n this.stateSubj$.next({} as S);\n this.action$.next(ClearAction);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { filter, noop, Observable, of, ReplaySubject, take } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class ResourcesService {\n private scripts = new Map<string, boolean>();\n private loaded$ = new ReplaySubject<void>();\n\n public loadScript(url: string): Observable<void> {\n const loaded = this.scripts.get(url);\n if (loaded === true) {\n return of(noop());\n }\n\n if (loaded == null) {\n this.scripts.set(url, false);\n\n const script = document.createElement('script');\n script.src = url;\n script.onload = () => {\n this.scripts.set(url, true);\n this.loaded$.next();\n };\n document.body.appendChild(script);\n }\n\n return this.loaded$.pipe(\n filter(() => this.scripts.get(url) === true),\n take(1),\n );\n }\n\n public loadStyles(url: string): Observable<void> {\n const previewEl = document.querySelector('vl-cms-preview');\n const rootEl = previewEl?.shadowRoot ?? previewEl ?? document.body;\n\n return new Observable(subscriber => {\n const link = document.createElement('link');\n link.rel = 'stylesheet';\n link.type = 'text/css';\n link.href = url;\n link.media = 'all';\n link.onload = () => {\n subscriber.next();\n subscriber.complete();\n };\n rootEl.appendChild(link);\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ElementMetadata } from '../types/common.types';\n\n@Injectable()\nexport class ElementContextService {\n public metadata?: ElementMetadata;\n public parentModelId?: string;\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n 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 '@veloceapps/core';\nimport { ConfigurationService } from '@veloceapps/sdk/core';\nimport { Dictionary, isArray, pull } from 'lodash';\nimport { map, Observable, Subject, takeUntil } from 'rxjs';\nimport { RuntimeService } from '../../modules/runtime/services/runtime.service';\nimport { ElementContextService } from '../../services/element-context.service';\nimport { IOProviderService } from '../../services/io-provider.service';\nimport { ElementMetadata } from '../../types/common.types';\nimport { parseBoundPath } from '../../utils/path.utils';\n\n@Component({\n selector: 'vl-cms-element-renderer',\n templateUrl: './element-renderer.component.html',\n styleUrls: ['./element-renderer.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [ElementContextService],\n})\nexport class ElementRendererComponent implements OnInit, OnDestroy {\n @ViewChild('el', { read: ViewContainerRef, static: true }) public el?: ViewContainerRef;\n\n @Input() public meta!: ElementMetadata;\n\n private 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 runtimeService: RuntimeService,\n private elementContext: ElementContextService,\n private ioProviderService: IOProviderService,\n private configurationService: ConfigurationService,\n private elementRef: ElementRef,\n private cdr: ChangeDetectorRef,\n ) {}\n\n public ngOnInit(): void {\n this.elementContext.metadata = this.meta;\n this.factory = this.meta.path ? this.runtimeService.componentFactories[this.meta.path] : undefined;\n\n this.createComponents();\n }\n\n public ngOnDestroy(): void {\n this.destroyComponents();\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n private createComponents(): void {\n const modelMeta = this.meta.model;\n\n if (!modelMeta) {\n this.refs[UUID.UUID()] = this.createComponent();\n return;\n }\n\n if (modelMeta.lineItem) {\n this.createFromLineItem(modelMeta.lineItem);\n } else if (modelMeta.path) {\n this.createFromPath(modelMeta.path);\n }\n }\n\n private createFromPath(path: string): void {\n const array$ = this.ioProviderService.connect(this.meta, 'children$', path);\n\n array$?.pipe(takeUntil(this.destroy$)).subscribe(children => {\n if (!isArray(children)) {\n return;\n }\n\n this.processChildren(children);\n });\n }\n\n private getModelComponent(): ElementRendererComponent | null {\n let component: ElementRendererComponent | null = null;\n let injector = this.parentInjector;\n\n while (!component) {\n const parentComp = injector.get(ElementRendererComponent, null);\n\n if (parentComp?.meta.model) {\n component = parentComp;\n break;\n }\n\n if (parentComp) {\n injector = parentComp.parentInjector;\n } else {\n break;\n }\n }\n\n return component;\n }\n\n private createFromLineItem(path: string): void {\n const parentComp = this.getModelComponent();\n const parentPath = parentComp?.meta.model?.lineItem;\n\n const pathBlocks = parseBoundPath(path).reverse();\n const { property, name } = pathBlocks[1] ?? {};\n const finalPath = pathBlocks[0];\n\n const children$ = this.getParentLineItem$(parentComp).pipe(\n map(model => {\n if (!model) {\n return [];\n }\n\n if (property === 'ports' && !finalPath.property && parentPath !== path) {\n return model.lineItems.filter(({ port }) => port === name) ?? [];\n }\n\n return [model];\n }),\n );\n\n children$.pipe(takeUntil(this.destroy$)).subscribe(children => {\n this.processChildren(children);\n });\n }\n\n private processChildren(children: any[]): void {\n const refs = children.reduce((acc, data, index) => {\n const key = String(data?.id ?? UUID.UUID());\n const existingRef = this.refs[key];\n\n const ref = existingRef ?? this.createComponent(data, index);\n if (existingRef) {\n this.updateComponent(existingRef, data, index);\n }\n\n return ref ? { ...acc, [key]: ref } : acc;\n }, {} 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 | undefined> {\n const parentRefs = Object.values(parentComp?.refs ?? {});\n const parentRef = parentRefs.find(ref =>\n (ref?.location.nativeElement as HTMLElement)?.contains(this.elementRef.nativeElement),\n );\n\n const parentModel$ = parentRef?.instance.model$;\n\n return parentModel$ ?? this.configurationService.get();\n }\n\n private createComponent(data?: any, index?: number): ComponentRef<any> | undefined {\n if (!this.factory) {\n return;\n }\n\n const componentRef = this.el?.createComponent(this.factory, index);\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(ref: ComponentRef<any>, data: any, index: number): void {\n ref.instance.model$.next(data);\n\n if (this.el && this.el.indexOf(ref.hostView) !== index) {\n this.el.move(ref.hostView, index);\n }\n }\n\n private destroyComponent(key: string): void {\n this.refs[key]?.destroy();\n delete this.refs[key];\n }\n\n private destroyComponents(): void {\n Object.values(this.refs).forEach(ref => ref?.destroy());\n this.refs = {};\n }\n}\n","<ng-template #el></ng-template>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Input,\n OnDestroy,\n OnInit,\n ViewEncapsulation,\n} from '@angular/core';\nimport { ConfigurationRuntimeService, ConfigurationService, UIDefinition } from '@veloceapps/sdk/core';\nimport { MessageService } from 'primeng/api';\nimport { BehaviorSubject, catchError, forkJoin, Observable, of, Subject, switchMap, takeUntil, tap } from 'rxjs';\nimport { RuntimeService } from '../../modules/runtime/services/runtime.service';\nimport { IntegrationState } from '../../services';\nimport { IOProviderService } from '../../services/io-provider.service';\nimport { TemplatesService } from '../../services/templates.service';\nimport { ElementMetadata } from '../../types/common.types';\nimport { CMSPreviewConfig } from './preview.types';\n\ninterface State {\n loading: boolean;\n failure: boolean;\n}\n\n@Component({\n selector: 'vl-cms-preview',\n templateUrl: './preview.component.html',\n styleUrls: ['./preview.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [IOProviderService, TemplatesService],\n // use shadow DOM to prevent UI from being affected by global styles\n encapsulation: ViewEncapsulation.ShadowDom,\n})\nexport class PreviewComponent implements OnInit, OnDestroy {\n @Input() public modelId?: string;\n @Input() public uiDefinition?: UIDefinition;\n @Input() public config?: CMSPreviewConfig;\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 runtimeService: RuntimeService,\n private configurationService: ConfigurationService,\n private messageService: MessageService,\n private configurationRuntimeService: ConfigurationRuntimeService,\n private integrationState: IntegrationState,\n private cdr: ChangeDetectorRef,\n ) {\n this.runtimeService.updated$.pipe(takeUntil(this.destroy$)).subscribe(() => this.cdr.detectChanges());\n }\n\n public ngOnInit(): void {\n if (!this.config?.suppressClearState) {\n this.integrationState.clear();\n }\n\n this.startPreview();\n }\n\n public ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n\n this.configurationService.reset();\n this.runtimeService.clear();\n }\n\n private initializeConfiguration$(): Observable<any> {\n const isAlreadyInitialized = this.configurationRuntimeService.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 return this.configurationRuntimeService\n .initTestMode(this.modelId, this.uiDefinition)\n .pipe(switchMap(() => this.configurationService.configure()));\n }\n\n private startPreview(): void {\n if (!this.uiDefinition) {\n return;\n }\n\n forkJoin([this.runtimeService.initialize$(this.uiDefinition, this.config), this.initializeConfiguration$()])\n .pipe(\n tap(([elements]) => {\n this.elements = elements;\n this.state$.next({ loading: false, failure: false });\n }),\n catchError(error => {\n console.error(error);\n\n if (!this.uiDefinition?.properties?.suppressToastMessages) {\n this.messageService.add({ severity: 'error', summary: error });\n }\n\n this.state$.next({ loading: false, failure: true });\n\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 { Injectable } from '@angular/core';\nimport { Patch } from 'rfc6902';\nimport { BehaviorSubject, Observable, ReplaySubject } from 'rxjs';\nimport { RuntimeElementDeleted, RuntimeElementDropped } from '../types/runtime.actions';\nimport { RuntimeService } from './runtime.service';\n\n@Injectable()\nexport class RuntimeEditorService {\n private editorModeSubj$ = new BehaviorSubject(false);\n\n public dragMode$ = new BehaviorSubject(false);\n public elementDropped$ = new ReplaySubject<RuntimeElementDropped>();\n public elementDeleted$ = new ReplaySubject<RuntimeElementDeleted>();\n\n public editorMode$: Observable<boolean>;\n\n constructor(private runtimeService: RuntimeService) {\n this.editorMode$ = this.editorModeSubj$.asObservable();\n this.runtimeService.isInitialized$.subscribe(() =>\n this.editorModeSubj$.next(Boolean(this.runtimeService.config?.uiBuilderMode)),\n );\n }\n\n public applyPatch$(patch: Patch): Observable<void> {\n return this.runtimeService.applyPatch$(patch);\n }\n\n public toggleEditorMode(): void {\n this.editorModeSubj$.next(!this.editorModeSubj$.value);\n }\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { DndDropEvent } from 'ngx-drag-drop';\nimport { RuntimeEditorService } from '../../modules/runtime/services/runtime-editor.service';\nimport { ElementMetadata } from '../../types/common.types';\n\n@Component({\n selector: 'vl-element-drop-handle',\n templateUrl: './element-drop-handle.component.html',\n styleUrls: ['./element-drop-handle.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ElementDropHandleComponent {\n @Input() public index!: number;\n @Input() public parentPath!: string;\n\n constructor(private runtimeService: RuntimeEditorService) {}\n\n public handleDrop(e: DndDropEvent): void {\n this.runtimeService.elementDropped$.next({\n element: e.data as ElementMetadata,\n index: this.index,\n path: this.parentPath,\n });\n }\n}\n","<div class=\"container\" dndDropzone (dndDrop)=\"handleDrop($event)\">\n <div class=\"handle\"></div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DndModule } from 'ngx-drag-drop';\nimport { ElementDropHandleComponent } from './element-drop-handle.component';\n\n@NgModule({\n declarations: [ElementDropHandleComponent],\n imports: [CommonModule, DndModule],\n exports: [ElementDropHandleComponent],\n})\nexport class ElementDropHandleModule {}\n","import { NgModule } from '@angular/core';\nimport { ElementRendererComponent } from './element-renderer.component';\n\n@NgModule({\n declarations: [ElementRendererComponent],\n exports: [ElementRendererComponent],\n})\nexport class ElementRendererModule {}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy } from '@angular/core';\nimport { combineLatest, map, Observable, of, Subject, takeUntil } from 'rxjs';\nimport { RuntimeEditorService } from '../../modules/runtime/services/runtime-editor.service';\nimport { RuntimeService } from '../../modules/runtime/services/runtime.service';\nimport { ElementContextService } from '../../services/element-context.service';\nimport { ElementMetadata } from '../../types/common.types';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'element-children',\n templateUrl: 'element-children.component.html',\n styleUrls: ['./element-children.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ElementChildrenComponent implements OnDestroy {\n public metadata$: Observable<ElementMetadata | undefined>;\n public dragMode$: Observable<boolean>;\n\n private destroyed$ = new Subject<void>();\n\n constructor(\n private elementContext: ElementContextService,\n private runtimeService: RuntimeService,\n private runtimeEditorService: RuntimeEditorService,\n private cdr: ChangeDetectorRef,\n ) {\n const path = this.elementContext?.metadata?.path;\n this.metadata$ = path ? this.runtimeService.getCompiledElement$(path) : of(undefined);\n\n this.dragMode$ = combineLatest([this.runtimeEditorService.editorMode$, this.runtimeEditorService.dragMode$]).pipe(\n map(flags => flags.every(Boolean)),\n );\n this.runtimeService.updated$.pipe(takeUntil(this.destroyed$)).subscribe(() => this.cdr.detectChanges());\n }\n\n public ngOnDestroy(): void {\n this.destroyed$.next();\n this.destroyed$.complete();\n }\n}\n","<ng-container *ngIf=\"metadata$ | async as metadata\">\n <vl-element-drop-handle *ngIf=\"dragMode$ | async\" [index]=\"0\" [parentPath]=\"metadata.path\"></vl-element-drop-handle>\n <ng-container *ngFor=\"let child of metadata.children; let i = index\">\n <vl-cms-element-renderer [meta]=\"child\"></vl-cms-element-renderer>\n <vl-element-drop-handle\n *ngIf=\"dragMode$ | async\"\n [index]=\"i + 1\"\n [parentPath]=\"metadata.path\"\n ></vl-element-drop-handle>\n </ng-container>\n</ng-container>\n","import { NgModule } from '@angular/core';\nimport { LetDirectiveModule } from '@veloceapps/components';\nimport { ElementDropHandleModule } from '../element-drop-handle/element-drop-handle.module';\nimport { ElementRendererModule } from '../element-renderer/element-renderer.module';\nimport { ElementChildrenComponent } from './element-children.component';\n\n@NgModule({\n declarations: [ElementChildrenComponent],\n imports: [LetDirectiveModule, ElementRendererModule, ElementDropHandleModule],\n exports: [ElementChildrenComponent],\n})\nexport class ElementChildrenModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { LoaderModule } from '@veloceapps/components';\nimport { IntegrationState } from '../../services';\nimport { ElementChildrenModule } from '../element-children/element-children.module';\nimport { ElementDropHandleModule } from '../element-drop-handle/element-drop-handle.module';\nimport { ElementRendererModule } from '../element-renderer/element-renderer.module';\nimport { PreviewComponent } from './preview.component';\n\n@NgModule({\n declarations: [PreviewComponent],\n imports: [CommonModule, LoaderModule, ElementRendererModule, ElementChildrenModule, ElementDropHandleModule],\n providers: [IntegrationState],\n exports: [PreviewComponent],\n})\nexport class PreviewModule {}\n","import { ElementDefaultMetadata } from '../types';\n\nexport function ElementDefinition(definition: ElementDefaultMetadata) {\n return function (constructor: any): any {\n return constructor;\n };\n}\n","import { 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() public customTemplate: string | undefined;\n\n public ngAfterViewInit(): void {\n if (!this.customTemplate) {\n return;\n }\n\n this.templatesService.register(this.customTemplate, this.templateRef);\n }\n}\n","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 '@veloceapps/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\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 this.addScript(sharedElementMetadata);\n this.addScript(elementMetadata);\n }\n\n private addScript(metadata?: ElementMetadata): void {\n if (!metadata?.script) {\n return;\n }\n\n const id = btoa(UUID.UUID());\n const script = this.document.createElement('script');\n script.type = `text/javascript`;\n\n let scriptContent = this.normalizeImports(metadata.script, metadata.path ?? metadata.name);\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 private normalizeImports = (script: string, elementPath: string): 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) => {\n const imports = (g1 as string)\n .trim()\n .slice(1, -1)\n .split(',')\n .map(item => item.trim());\n\n imports.forEach(item => {\n if (!this.vendorMap[src]?.[item]) {\n throw new Error(`Failed to import ${item} from '${src}' in ${elementPath}/script.ts`);\n }\n });\n\n return `const ${g1} = vendor['${src}'];`;\n });\n return result;\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 { UIElement } from '@veloceapps/sdk/core';\nimport { flatten } from 'lodash';\nimport { CONFIG } from '../cms.elements';\nimport { IOPlugin } from '../plugins/io.plugin';\nimport { ElementConfig, ElementDefaultMetadata, ElementMetadata, ElementModel, ELEMENT_TYPE } from '../types';\n\nconst EXPORTED_CLASS_REGEX = /export class (\\S+)/;\nconst METADATA_DECORATOR_REGEX = /@ElementDefinition\\(([\\s\\S]+)\\)(\\n|\\r\\n|.)*export class/g;\n\nexport class UiBuildError extends Error {\n public affectedMetadata: ElementMetadata;\n constructor(message: string, affectedMetadata: ElementMetadata) {\n super(message);\n this.name = this.constructor.name;\n this.affectedMetadata = affectedMetadata;\n }\n}\n\nexport const elementToMetadata = (el: UIElement, parentPath?: string): ElementMetadata => {\n const script = 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, recursive: boolean = true): UIElement => {\n const elMetadata: ElementDefaultMetadata = {\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 configuredStyles: metadata.configuredStyles,\n };\n const normalizedElMetadata = normalizeElementMetadata(elMetadata);\n\n if (!metadata.script || !EXPORTED_CLASS_REGEX.test(metadata.script)) {\n throw new UiBuildError(`'${metadata.name}' component script is missing an exported class`, metadata);\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: recursive ? metadata.children.map(meta => metadataToElement(meta)) : [],\n };\n};\n\nexport const normalizeElementMetadata = (elementMetadata: ElementDefaultMetadata): ElementDefaultMetadata => {\n const metadata = { ...elementMetadata };\n\n // model\n const { lineItem, path } = metadata.model ?? {};\n const model: ElementModel | undefined = lineItem ? { lineItem } : path ? { path } : undefined;\n if (model) {\n metadata.model = model;\n } else {\n delete metadata.model;\n }\n\n // module\n if (!metadata.module) {\n delete metadata.module;\n }\n\n // reference\n if (!metadata.reference) {\n delete metadata.reference;\n }\n\n // inputs\n const inputs = Object.entries(metadata.inputs ?? {}).reduce((acc, [key, value]) => {\n return { ...acc, [key]: value || null };\n }, {});\n if (inputs && Object.keys(inputs).length > 0) {\n metadata.inputs = inputs;\n } else {\n delete metadata.inputs;\n }\n\n // outputs\n const outputs = Object.entries(metadata.outputs ?? {}).reduce((acc, [key, value]) => {\n return { ...acc, [key]: value || null };\n }, {});\n if (outputs && Object.keys(outputs).length > 0) {\n metadata.outputs = outputs;\n } else {\n delete metadata.outputs;\n }\n\n // children\n if (!metadata.children?.length) {\n delete metadata.children;\n }\n\n // isShared\n if (!metadata.isShared) {\n delete metadata.isShared;\n }\n\n // configuredStyles\n if (!metadata.configuredStyles) {\n delete metadata.configuredStyles;\n }\n\n return metadata;\n};\n\nexport const extractElementMetadata = (script: string): ElementDefaultMetadata => {\n const metadataString = (METADATA_DECORATOR_REGEX.exec(script) ?? [])[1];\n\n // need to reset regex last index to prevent null result for next execution\n METADATA_DECORATOR_REGEX.lastIndex = 0;\n\n return new Function(`return ${metadataString}`)();\n};\n\nexport const extendElementMetadata = (script: string, extend: Partial<ElementDefaultMetadata>): string => {\n const metadataString = (METADATA_DECORATOR_REGEX.exec(script) ?? [])[1];\n\n // need to reset regex last index to prevent null result for next execution\n METADATA_DECORATOR_REGEX.lastIndex = 0;\n\n if (!metadataString) {\n return script;\n }\n\n const updated = { ...new Function(`return ${metadataString}`)(), ...extend };\n return script.replace(metadataString, stringifyElementMetadata(updated));\n};\n\nexport const getElementConfig = (type: ELEMENT_TYPE): ElementConfig => {\n return CONFIG[type];\n};\n\nexport const doesElementSupportIO = (type: ELEMENT_TYPE): boolean => {\n return getElementConfig(type).plugins?.includes(IOPlugin) ?? false;\n};\n\nexport function stringifyElementMetadata(elementMetadata: ElementDefaultMetadata): string {\n const cleaned = JSON.stringify(elementMetadata, null, 2);\n\n return cleaned.replace(/^[\\t ]*\"[^:\\n\\r]+(?<!\\\\)\":/gm, function (match) {\n return match.replace(/\"/g, '');\n });\n}\n\nexport const isValidScript = (script?: string): boolean => {\n if (!script) {\n return false;\n }\n\n const exportedClassName = script && (EXPORTED_CLASS_REGEX.exec(script) ?? [])[1];\n if (!exportedClassName) {\n return false;\n }\n\n const meta = extractElementMetadata(script);\n if (!meta.name || !meta.type) {\n return false;\n }\n\n return true;\n};\n\nexport function flattenElements(elements: ElementMetadata[]): ElementMetadata[] {\n return flatten(elements.map(el => [el, ...flattenElements(el.children)]));\n}\n\nexport function isSharedElement(el: ElementMetadata): boolean {\n return Boolean(el.isShared) && el.type !== 'REFERENCE';\n}\n","import { Directive, OnDestroy } from '@angular/core';\nimport { LineItem } from '@veloceapps/core';\nimport { ConfigurationService, generateLineItem, getAttributeValue, LineItemWorker } from '@veloceapps/sdk/core';\nimport { map, Observable, Subject, takeUntil } from 'rxjs';\nimport { ElementComponent } from '../components/element.component';\nimport { PluginComponent } from '../components/plugin.component';\nimport { ELEMENT_METADATA } from '../injection-tokens';\nimport { AttributeElement, ConfigurationElement, PortElement, TypeElement } from '../types';\nimport { ElementMetadata } from '../types/common.types';\nimport { parseBoundPath } from '../utils/path.utils';\n\n@Directive()\nexport class ConfigurationPlugin implements PluginComponent, OnDestroy {\n private modelSnapshot?: LineItem;\n private destroy$ = new Subject<void>();\n\n private elementMetadata: ElementMetadata;\n private configurationService: ConfigurationService;\n\n constructor(public host: ElementComponent & ConfigurationElement) {\n this.elementMetadata = this.host.injector.get(ELEMENT_METADATA);\n this.configurationService = this.host.injector.get(ConfigurationService);\n\n if (this.elementMetadata.model?.lineItem) {\n this.host.model$.pipe(takeUntil(this.destroy$)).subscribe(model => (this.modelSnapshot = model));\n\n const pathBlocks = parseBoundPath(this.elementMetadata.model?.lineItem);\n const { type, property, name } = pathBlocks.reverse()[0];\n\n this.host.boundName = name ?? type;\n\n this.register(type, property, name);\n }\n }\n\n public ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n private register(type?: string, property?: string, name?: string): void {\n if (!type) {\n return;\n }\n\n if (!property) {\n this.registerType();\n } else if (property === 'ports' && name) {\n this.registerPort(name);\n } else if (property === 'attributes' && name) {\n this.registerAttribute(name);\n }\n }\n\n private registerType(): void {\n const remove = (): void => {\n const rootLineItem = this.configurationService.getSnapshot();\n if (!rootLineItem || !this.modelSnapshot) {\n return;\n }\n this.configurationService.patch(new LineItemWorker(rootLineItem).remove(this.modelSnapshot.id).li);\n };\n\n const updateQty = (qty: number): void => {\n const rootLineItem = this.configurationService.getSnapshot();\n if (!rootLineItem || !this.modelSnapshot) {\n return;\n }\n this.configurationService.patch(new LineItemWorker(rootLineItem).replace({ ...this.modelSnapshot, qty }).li);\n };\n\n this.typeHost.remove = remove;\n this.typeHost.updateQty = updateQty;\n }\n\n private registerPort(name: string): void {\n const model$ = this.host.model$ as Observable<LineItem | undefined>;\n\n const portItems$ = model$.pipe(map(model => model?.lineItems.filter(li => li.port === this.host.boundName) ?? []));\n const portDomain$ = model$.pipe(map(model => model?.portDomains[this.host.boundName]));\n\n const add = (type: string, attributes: { name: string; value: any }[] = []): void => {\n if (!this.modelSnapshot) {\n return;\n }\n\n const portDomain = this.modelSnapshot.portDomains[name];\n if (!portDomain) {\n return;\n }\n\n const generated = generateLineItem(portDomain.name, type, this.modelSnapshot.id, attributes);\n this.configurationService.patch(\n new LineItemWorker(this.modelSnapshot).insert(this.modelSnapshot.id, generated).li,\n );\n };\n\n this.portHost.portItems$ = portItems$;\n this.portHost.portDomain$ = portDomain$;\n this.portHost.addPortItem = add;\n }\n\n private registerAttribute(name: string): void {\n if (!this.host.model$) {\n return;\n }\n\n const value$ = this.host.model$.pipe(map(model => getAttributeValue(model?.attributes ?? [], name)));\n\n const patch = (value: any): void => {\n if (!this.modelSnapshot) {\n return;\n }\n this.configurationService.patch(new LineItemWorker(this.modelSnapshot).patchAttribute([{ name, value }]).li);\n };\n\n this.attributeHost.value$ = value$;\n this.attributeHost.patch = patch;\n }\n\n private get attributeHost(): ElementComponent & AttributeElement {\n return this.host as ElementComponent & AttributeElement;\n }\n\n private get typeHost(): ElementComponent & TypeElement {\n return this.host as ElementComponent & TypeElement;\n }\n\n private get portHost(): ElementComponent & PortElement {\n return this.host as ElementComponent & PortElement;\n }\n}\n","import { UIDefinitionType } from '@veloceapps/sdk/core';\nimport { Plugin } from './engine/models/plugin';\nimport { ConfigurationPlugin } from './plugins/configuration.plugin';\n\nexport const DEFAULT_PLUGINS: { [key in UIDefinitionType]: typeof Plugin[] } = {\n CONFIGURATION: [ConfigurationPlugin],\n DEFAULT: [],\n};\n","import * as angularCore from '@angular/core';\nimport * as angularForms from '@angular/forms';\nimport {\n CatalogApiService,\n ConfigurationSettingsApiService,\n DeltaApiService,\n DocumentAttachmentApiService,\n DocumentTemplatesApiService,\n GuidedSellingApiService,\n PicklistsApiService,\n PriceApiService,\n QuoteApiService,\n RampApiService,\n SalesforceApiService,\n ShoppingCartSettingsApiService,\n} from '@veloceapps/api';\nimport { ToastService } from '@veloceapps/components';\nimport { Operator, Predicate, isDefined } from '@veloceapps/core';\nimport {\n ConfigurationService,\n ContextService,\n FlowConfigurationService,\n LineItemWorker,\n ProductImagesService,\n QuoteDraftService,\n lineItemUtils,\n} from '@veloceapps/sdk/core';\nimport * as lodash from 'lodash';\nimport * as rxjs from 'rxjs';\nimport * as rxjsOperators from 'rxjs/operators';\nimport * as cmsActions from './cms.actions';\nimport * as cmsInjectionTokens from './injection-tokens';\nimport { IntegrationState } from './services/integration.state';\nimport { ResourcesService } from './services/resources.service';\nimport { TemplatesService } from './services/templates.service';\n\nconst VELOCE_LIBS = {\n '@veloceapps/core': {\n isDefined,\n Operator,\n Predicate,\n },\n '@veloceapps/components': {\n ToastService,\n },\n '@veloceapps/api': {\n SalesforceApiService,\n QuoteApiService,\n DocumentTemplatesApiService,\n DocumentAttachmentApiService,\n RampApiService,\n CatalogApiService,\n DeltaApiService,\n PicklistsApiService,\n PriceApiService,\n ShoppingCartSettingsApiService,\n ConfigurationSettingsApiService,\n GuidedSellingApiService,\n },\n '@veloceapps/sdk/core': {\n ConfigurationService,\n QuoteDraftService,\n FlowConfigurationService,\n LineItemWorker,\n ProductImagesService,\n ContextService,\n ...lineItemUtils,\n },\n '@veloceapps/sdk/cms': {\n ...cmsInjectionTokens,\n ...cmsActions,\n TemplatesService,\n IntegrationState,\n ResourcesService,\n },\n};\n\nconst VELOCE_LIBS_BACKWARDS_COMPATIBLE = Object.entries(VELOCE_LIBS).reduce(\n (trunk, [key, value]) => ({ ...trunk, [key.replace('@veloceapps/', '@veloce/')]: value }),\n {},\n);\n\nexport const vendorMap = {\n ...VELOCE_LIBS,\n\n // TODO: remove when projects/demos are migrated to @veloceapps organization libraries\n ...VELOCE_LIBS_BACKWARDS_COMPATIBLE,\n\n '@angular/core': angularCore,\n '@angular/forms': angularForms,\n rxjs: rxjs,\n 'rxjs/operators': rxjsOperators,\n lodash: lodash,\n};\n\nexport type VendorMap = typeof vendorMap;\n","import { Component, Type } from '@angular/core';\nimport { transform } from '@babel/standalone';\nimport { isDefined } from '@veloceapps/core';\nimport { UIDefinitionMetadata } from '@veloceapps/sdk/core';\nimport { flatten, kebabCase, 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, ElementStyleDeclaration } from '../types';\nimport { vendorMap } from '../vendor-map';\n\nexport class ElementsResolver {\n public elements: ElementMetadata[];\n\n private renderableElements: ElementMetadata[] = [];\n private sharedElements: ElementMetadata[] = [];\n\n constructor(\n private uiDef: UIDefinitionMetadata,\n elements: ElementMetadata[],\n sharedElements: ElementMetadata[] = [],\n ) {\n const transpiledElements = this.transpileScripts(elements);\n const transpiledSharedElements = this.transpileScripts(sharedElements);\n\n this.sharedElements = this.flattenElements(transpiledElements)\n .filter(el => this.isSharedElement(el))\n .concat(transpiledSharedElements);\n\n this.elements = transpiledElements.map(el => this.processElementMetadata(el)).filter(isDefined);\n\n this.renderableElements = this.getRenderableElements(this.elements);\n }\n\n public addElement(element: ElementMetadata): void {\n if (element.isShared) {\n return;\n }\n\n const transpiledElements = this.transpileScripts([element]);\n this.elements = transpiledElements.map(el => this.processElementMetadata(el)).filter(isDefined);\n this.renderableElements = this.getRenderableElements(this.elements);\n }\n\n public getNgComponents(): Type<any>[] {\n return this.renderableElements.map(el => this.resolveElement(el)).filter(isDefined);\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 getRenderableElements(elements: ElementMetadata[]): ElementMetadata[] {\n const renderable: ElementMetadata[] = [];\n\n for (const el of elements) {\n if (!this.isSharedElement(el)) {\n const children = el.children.filter(child => !this.isSharedElement(child));\n const renderableChildren = this.getRenderableElements(children);\n renderable.push({ ...el, children }, ...renderableChildren);\n }\n }\n\n return renderable;\n }\n\n private getSharedElement(element: ElementMetadata): ElementMetadata | undefined {\n if (!element.reference) {\n return;\n }\n\n return this.sharedElements.find(el => element.reference === el.name);\n }\n\n private resolveElementTemplate(element: ElementMetadata): string {\n const config = CONFIG[element.type];\n const template = !config.suppressTemplate ? element.template : '';\n\n return template || config.defaultTemplate || '';\n }\n\n private resolveElementStyles(element: ElementMetadata): string {\n const config = CONFIG[element.type];\n return !config.suppressStyles ? element.styles ?? '' : '';\n }\n\n private processElementMetadata(sourceElement: ElementMetadata): ElementMetadata | undefined {\n let finalElement: ElementMetadata;\n\n if (sourceElement.type === 'REFERENCE') {\n const sharedElement = this.getSharedElement(sourceElement);\n\n if (!sharedElement) {\n console.warn(`Shared element \"${sourceElement.reference}\" not found`);\n return;\n }\n\n finalElement = {\n ...sourceElement,\n children: this.getSharedChildren(sharedElement.children, sourceElement.path),\n type: sharedElement.type,\n template: sharedElement.template,\n styles: (sharedElement.styles ?? '') + '\\n' + (sourceElement.styles ?? ''),\n inputs: {\n ...sharedElement.inputs,\n ...sourceElement.inputs,\n },\n outputs: {\n ...sharedElement.outputs,\n ...sourceElement.outputs,\n },\n };\n } else {\n finalElement = sourceElement;\n delete sourceElement.reference;\n }\n\n finalElement.template = this.resolveElementTemplate(finalElement);\n finalElement.styles = this.resolveElementStyles(finalElement);\n\n return {\n ...finalElement,\n children: finalElement.children.map(child => this.processElementMetadata(child)).filter(isDefined),\n };\n }\n\n private getSharedChildren(children: ElementMetadata[], parentPath?: string): ElementMetadata[] {\n return children.map(c => {\n if (!c.path) {\n return c;\n }\n\n const [elName] = c.path.split('/').reverse();\n const path = parentPath + '/' + elName;\n\n return {\n ...c,\n path,\n children: this.getSharedChildren(c.children, path),\n };\n });\n }\n\n private resolveElement(element: ElementMetadata): Type<any> | undefined {\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 styles = this.getElementStyles(element);\n\n const component: Component = {\n selector: 'vl-element',\n template: element.template,\n ...(styles ? { styles: [styles] } : {}),\n providers: [\n { provide: DEFAULT_PLUGINS_TOKEN, useValue: defaultPlugins },\n { provide: UI_DEFINITION_METADATA, useValue: this.uiDef },\n { provide: ELEMENT_METADATA, useValue: element },\n { provide: SHARED_ELEMENT_METADATA, useValue: this.getSharedElement(element) },\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 private getElementStyles(element: ElementMetadata): string | undefined {\n let result = '';\n\n const configuredStyles = this.convertInlineStylesToCSS(element.configuredStyles);\n if (configuredStyles) {\n // order is important: styles written by user in CSS code should has higher priority\n result += configuredStyles;\n }\n\n if (element.styles) {\n result += element.styles;\n }\n\n return result || undefined;\n }\n\n private convertInlineStylesToCSS(styles?: ElementStyleDeclaration): string {\n if (!styles) {\n return '';\n }\n\n const entries = Object.entries(styles);\n let result = ':host {\\n';\n\n entries.forEach(([style, value]) => {\n result += ` ${kebabCase(style)}:${value};\\n`;\n });\n\n result += '}\\n';\n\n return result;\n }\n}\n","export const defaultOptions = {\n suppressLoading: false,\n loadingLabel: 'LOADING',\n};\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 = (): void => {\n moduleMap[remoteEntry] = true;\n resolve(); // window is the global namespace\n };\n\n document.body.append(script);\n });\n}\n\nasync function lookupExposedModule(remoteName: string, exposedModule: string): Promise<any> {\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;\n}\n\nexport async function loadRemoteModule(remoteEntry: string, remoteName: string, exposedModule: string): Promise<any> {\n await loadRemoteEntry(remoteEntry);\n\n return await lookupExposedModule(remoteName, exposedModule);\n}\n","import {\n AfterViewInit,\n ApplicationRef,\n ChangeDetectionStrategy,\n Compiler,\n Component,\n ElementRef,\n Injector,\n Input,\n OnChanges,\n OnInit,\n Renderer2,\n SimpleChanges,\n ViewChild,\n} from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { defaultOptions } from './default-options';\nimport { FederatedComponentInstance, FederatedModuleOptions } from './federated.types';\nimport { loadRemoteModule } from './federated.utils';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'veloce-host-federated',\n templateUrl: './federated.component.html',\n styleUrls: ['./federated.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FederatedComponent implements OnInit, AfterViewInit, OnChanges {\n @ViewChild('moduleHost', { static: false }) public moduleHostRef?: ElementRef;\n\n @Input() public remoteEntry?: string;\n @Input() public remoteName?: string;\n @Input() public exposedModule?: string;\n @Input() public data?: any;\n @Input() public options?: FederatedModuleOptions;\n\n public isLoading$ = new BehaviorSubject(false);\n\n // configs\n public suppressLoading = defaultOptions.suppressLoading;\n public loadingLabel = defaultOptions.loadingLabel;\n\n private instance?: FederatedComponentInstance;\n\n constructor(\n private injector: Injector,\n private compiler: Compiler,\n private appRef: ApplicationRef,\n private renderer: Renderer2,\n ) {}\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes.data && this.instance) {\n this.instance.data = this.data;\n }\n\n if (changes.options) {\n this.suppressLoading = this.options?.suppressLoading ?? defaultOptions.suppressLoading;\n this.loadingLabel = this.options?.loadingLabel ?? defaultOptions.loadingLabel;\n }\n }\n\n public ngOnInit(): void {\n this.isLoading$.next(true);\n }\n\n public ngAfterViewInit(): void {\n const remoteEntry = this.options?.remoteEntry ?? this.remoteEntry;\n const remoteName = this.options?.remoteName ?? this.remoteName;\n const exposedModule = this.options?.exposedModule ?? this.exposedModule;\n\n if (!remoteEntry || !remoteName || !exposedModule) {\n return;\n }\n\n loadRemoteModule(remoteEntry, remoteName, exposedModule).then(federated => {\n this.compiler.compileModuleAsync(federated[exposedModule as string]).then(moduleFactory => {\n const rootModuleRef = moduleFactory.create(this.injector);\n const rootComponentFactory = rootModuleRef.componentFactoryResolver.resolveComponentFactory(\n federated[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 FederatedComponentInstance;\n this.instance.data = this.data;\n\n this.renderer.appendChild(this.moduleHostRef?.nativeElement, node);\n this.appRef.attachView(hostView);\n\n this.options?.onReady?.();\n this.isLoading$.next(false);\n });\n });\n }\n}\n","<div #moduleHost></div>\n\n<vl-loader *ngIf=\"!suppressLoading && (isLoading$ | async)\" [label]=\"loadingLabel\"></vl-loader>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { LoaderModule } from '@veloceapps/components';\nimport { FederatedComponent } from './federated.component';\n\n@NgModule({\n declarations: [FederatedComponent],\n imports: [CommonModule, LoaderModule],\n exports: [FederatedComponent],\n})\nexport class FederatedModule {}\n","import { DragDropModule } from '@angular/cdk/drag-drop';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nimport { CommonModule } from '@angular/common';\nimport { Compiler, Injectable, NgModule, Type } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { UIDefinition, UIDefinitionMetadata } from '@veloceapps/sdk/core';\nimport { DndModule } from 'ngx-drag-drop';\nimport { combineLatest, from, map, Observable, of, switchMap } from 'rxjs';\nimport { ElementChildrenComponent } from '../../../components/element-children/element-children.component';\nimport { ElementDropHandleComponent } from '../../../components/element-drop-handle/element-drop-handle.component';\nimport { ElementRendererComponent } from '../../../components/element-renderer/element-renderer.component';\nimport { CustomTemplateDirective } from '../../../directives/custom-template.directive';\nimport { CompilationResult } from '../../../modules/runtime/types/compilation.types';\nimport { ElementMetadata } from '../../../types/common.types';\nimport { ElementsResolver, elementToMetadata } from '../../../utils';\nimport { FederatedModule } from '../../federated/federated.module';\n\n@Injectable()\nexport class CompilationService {\n private uiDefinitionMeta?: UIDefinitionMetadata;\n private elementsResolver?: ElementsResolver;\n\n constructor(private compiler: Compiler) {}\n\n public compileUIDefinition$(uiDefinition: UIDefinition): Observable<CompilationResult> {\n return of([]).pipe(\n switchMap(() => {\n const { children, pages, components, ...uiDefinitionMeta } = uiDefinition;\n this.uiDefinitionMeta = uiDefinitionMeta;\n\n const elements = [...(children ?? []), ...(pages ?? [])];\n const sharedElements = components ?? [];\n\n const metadata = elements.map(element => elementToMetadata(element));\n const sharedMetadata = sharedElements.map(element => elementToMetadata(element));\n\n this.elementsResolver = new ElementsResolver(uiDefinition, metadata, sharedMetadata);\n const module = this.getModule(this.elementsResolver.getNgComponents());\n\n return combineLatest([\n from(this.compiler.compileModuleAndAllComponentsAsync(module)),\n of(this.elementsResolver),\n ]);\n }),\n map(([module, elementsResolver]) => ({ module, elements: elementsResolver.elements })),\n );\n }\n\n public compileElement$(element: ElementMetadata): Observable<CompilationResult> {\n if (!this.uiDefinitionMeta) {\n throw 'No UI Definition context';\n }\n\n return of(this.uiDefinitionMeta).pipe(\n switchMap(uiDefinition => {\n const elementsResolver = this.elementsResolver ?? new ElementsResolver(uiDefinition, []);\n elementsResolver.addElement(element);\n const module = this.getModule(elementsResolver.getNgComponents());\n\n return combineLatest([from(this.compiler.compileModuleAndAllComponentsAsync(module)), of(elementsResolver)]);\n }),\n map(([module, elementsResolver]) => ({ module, elements: elementsResolver.elements })),\n );\n }\n\n public clearModuleCache(modules: Type<NgModule>[]): void {\n modules.forEach(module => this.compiler.clearCacheFor(module));\n this.uiDefinitionMeta = undefined;\n }\n\n private getModule(components: Type<any>[]): Type<NgModule> {\n const staticComponents = [\n ElementChildrenComponent,\n ElementRendererComponent,\n ElementDropHandleComponent,\n CustomTemplateDirective,\n ];\n\n @NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n FederatedModule,\n DragDropModule,\n DndModule,\n ScrollingModule,\n ],\n declarations: [...staticComponents, ...components],\n jit: true,\n })\n class DynamicModule {}\n\n return DynamicModule;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { CoreModule } from '@veloceapps/core';\nimport { DialogService } from 'primeng/dynamicdialog';\nimport { CompilationService } from './services/compilation.service';\nimport { RuntimeEditorService } from './services/runtime-editor.service';\nimport { RuntimeService } from './services/runtime.service';\nimport { CMS_COMPILATION_SERVICE } from './tokens';\n\n@NgModule({\n imports: [CommonModule, CoreModule],\n providers: [\n DialogService,\n RuntimeService,\n RuntimeEditorService,\n { provide: CMS_COMPILATION_SERVICE, useClass: CompilationService },\n ],\n})\nexport class RuntimeModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ApiModule } from '@veloceapps/api';\nimport { CoreModule } from '@veloceapps/core';\nimport { SdkCoreModule } from '@veloceapps/sdk/core';\nimport { DialogService } from 'primeng/dynamicdialog';\nimport { PreviewModule } from './components/preview';\nimport { RuntimeModule } from './modules/runtime';\nimport { IntegrationState, ResourcesService } from './services';\n\n@NgModule({\n imports: [CommonModule, CoreModule, ApiModule, SdkCoreModule, RuntimeModule, PreviewModule],\n providers: [IntegrationState, DialogService, ResourcesService],\n exports: [PreviewModule],\n})\nexport class LauncherModule {}\n","import { UIDefinitionMigrationFn } from './types/migrations.types';\n\nexport const migrations: Record<number, UIDefinitionMigrationFn> = {\n 2: () => {\n throw 'Migration from Legacy UI definition is not possible';\n },\n 3: uiDef => {\n const children = uiDef.children ?? [];\n\n return {\n ...uiDef,\n children: undefined,\n pages: children,\n version: 3,\n };\n },\n};\n","import { Injectable } from '@angular/core';\nimport { ToastService, ToastType } from '@veloceapps/components';\nimport { UIDefinition, UI_DEFINITION_VERSION } from '@veloceapps/sdk/core';\nimport { cloneDeep } from 'lodash';\nimport { migrations } from '../migrations';\n\n@Injectable({ providedIn: 'root' })\nexport class MigrationsService {\n constructor(private toastService: ToastService) {}\n\n public migrateUIDefinition(uiDef: UIDefinition): UIDefinition | undefined {\n const currentVersion = uiDef.version;\n const targetVersion = UI_DEFINITION_VERSION;\n\n const migrateVersions = Object.keys(migrations)\n .reduce((acc: number[], version) => {\n const v = Number(version);\n if (v > currentVersion && v <= targetVersion) {\n acc.push(v);\n }\n\n return acc;\n }, [])\n .sort();\n\n try {\n let result = cloneDeep(uiDef);\n\n for (const version of migrateVersions) {\n result = migrations[version](result);\n }\n\n return result;\n } catch (e) {\n this.toastService.add({ summary: String(e), severity: ToastType.error });\n return;\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { MigrationsService } from './services/migrations.service';\n\n@NgModule({\n providers: [MigrationsService],\n})\nexport class MigrationsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["FlowAction","InjectionToken","ElementComponent","BehaviorSubject","Component","ChangeDetectionStrategy","Inject","Injector","compact","Subject","of","map","tap","switchMap","startWith","distinctUntilChanged","applyPatch","i0","Injectable","i1.RuntimeService","filter","ReplaySubject","noop","take","Observable","UUID","takeUntil","isArray","pull","i2.ElementContextService","i3.IOProviderService","i4","ViewContainerRef","SkipSelf","ViewChild","Input","forkJoin","catchError","i2","i3","i4.IntegrationState","i5","i6.ElementRendererComponent","i7","ViewEncapsulation","i1.RuntimeEditorService","CommonModule","DndModule","NgModule","combineLatest","i1.ElementContextService","i2.RuntimeService","i3.RuntimeEditorService","i4.ElementDropHandleComponent","i5.ElementRendererComponent","LetDirectiveModule","LoaderModule","i1.TemplatesService","Directive","i1.ElementComponent","DOCUMENT","flatten","ConfigurationService","LineItemWorker","generateLineItem","getAttributeValue","isDefined","Operator","Predicate","ToastService","SalesforceApiService","QuoteApiService","DocumentTemplatesApiService","DocumentAttachmentApiService","RampApiService","CatalogApiService","DeltaApiService","PicklistsApiService","PriceApiService","ShoppingCartSettingsApiService","ConfigurationSettingsApiService","GuidedSellingApiService","QuoteDraftService","ProductImagesService","ContextService","lineItemUtils","angularCore","angularForms","rxjs","rxjsOperators","lodash","transform","set","kebabCase","i1","from","FormsModule","ReactiveFormsModule","DragDropModule","ScrollingModule","CoreModule","DialogService","ApiModule","SdkCoreModule","UI_DEFINITION_VERSION","cloneDeep","ToastType"],"mappings":"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"}
1
+ {"version":3,"file":"veloceapps-sdk-cms.umd.js","sources":["../../../../libs/sdk/cms/cms.actions.ts","../../../../node_modules/tslib/tslib.es6.js","../../../../libs/sdk/cms/injection-tokens.ts","../../../../libs/sdk/cms/engine/models/entity.ts","../../../../libs/sdk/cms/components/element.component.ts","../../../../libs/sdk/cms/utils/ui-definition.utils.ts","../../../../libs/sdk/cms/utils/path.utils.ts","../../../../libs/sdk/cms/modules/runtime/tokens.ts","../../../../libs/sdk/cms/modules/runtime/services/runtime.service.ts","../../../../libs/sdk/cms/services/io-provider.service.ts","../../../../libs/sdk/cms/services/templates.service.ts","../../../../libs/sdk/cms/services/integration.state.ts","../../../../libs/sdk/cms/services/resources.service.ts","../../../../libs/sdk/cms/services/element-context.service.ts","../../../../libs/sdk/cms/components/element-renderer/element-renderer.component.ts","../../../../libs/sdk/cms/components/element-renderer/element-renderer.component.html","../../../../libs/sdk/cms/components/preview/preview.component.ts","../../../../libs/sdk/cms/components/preview/preview.component.html","../../../../libs/sdk/cms/modules/runtime/services/runtime-editor.service.ts","../../../../libs/sdk/cms/components/element-drop-handle/element-drop-handle.component.ts","../../../../libs/sdk/cms/components/element-drop-handle/element-drop-handle.component.html","../../../../libs/sdk/cms/components/element-drop-handle/element-drop-handle.module.ts","../../../../libs/sdk/cms/components/element-renderer/element-renderer.module.ts","../../../../libs/sdk/cms/components/element-children/element-children.component.ts","../../../../libs/sdk/cms/components/element-children/element-children.component.html","../../../../libs/sdk/cms/components/element-children/element-children.module.ts","../../../../libs/sdk/cms/components/preview/preview.module.ts","../../../../libs/sdk/cms/decorators/element.decorator.ts","../../../../libs/sdk/cms/directives/custom-template.directive.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/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/modules/federated/default-options.ts","../../../../libs/sdk/cms/modules/federated/federated.utils.ts","../../../../libs/sdk/cms/modules/federated/federated.component.ts","../../../../libs/sdk/cms/modules/federated/federated.component.html","../../../../libs/sdk/cms/modules/federated/federated.module.ts","../../../../libs/sdk/cms/modules/runtime/services/compilation.service.ts","../../../../libs/sdk/cms/modules/runtime/runtime.module.ts","../../../../libs/sdk/cms/launcher.module.ts","../../../../libs/sdk/cms/modules/migrations/migrations.ts","../../../../libs/sdk/cms/modules/migrations/services/migrations.service.ts","../../../../libs/sdk/cms/modules/migrations/migrations.module.ts","../../../../libs/sdk/cms/veloceapps-sdk-cms.ts"],"sourcesContent":["import { IntegrationAction } from './types';\n\nexport enum FlowAction {\n FLOW_CONFIGURE_PRODUCT = 'FLOW_CONFIGURE_PRODUCT',\n FLOW_NAVIGATE_BACK = 'FLOW_NAVIGATE_BACK',\n FLOW_NAVIGATE_TO_CATALOG = 'FLOW_NAVIGATE_TO_CATALOG',\n FLOW_APPLY_PRODUCT_CONFIGURATION = 'FLOW_APPLY_PRODUCT_CONFIGURATION',\n FLOW_OPEN_DOC_GEN = 'FLOW_OPEN_DOC_GEN',\n FLOW_CLOSE_DOC_GEN = 'FLOW_CLOSE_DOC_GEN',\n FLOW_SWITCH_OBJECT = 'FLOW_SWITCH_OBJECT',\n REMOTE_APPLY = 'REMOTE_APPLY',\n REMOTE_CANCEL = 'REMOTE_CANCEL',\n}\n\nexport const ConfigureProductAction = ({\n lineItemId,\n productId,\n}: {\n lineItemId?: string;\n productId?: string;\n}): IntegrationAction => ({\n type: FlowAction.FLOW_CONFIGURE_PRODUCT,\n payload: { lineItemId, productId },\n});\n\nexport const NavigateBackAction = (): IntegrationAction => ({\n type: FlowAction.FLOW_NAVIGATE_BACK,\n});\n\nexport const NavigateToCatalogAction = (): IntegrationAction => ({\n type: FlowAction.FLOW_NAVIGATE_TO_CATALOG,\n});\n\nexport const ApplyProductConfigurationAction = (): IntegrationAction => ({\n type: FlowAction.FLOW_APPLY_PRODUCT_CONFIGURATION,\n});\n\nexport const OpenDocGenAction = (): IntegrationAction => ({\n type: FlowAction.FLOW_OPEN_DOC_GEN,\n});\n\nexport const CloseDocGenAction = (): IntegrationAction => ({\n type: FlowAction.FLOW_CLOSE_DOC_GEN,\n});\n\nexport const RemoteApplyAction = (): IntegrationAction => ({\n type: FlowAction.REMOTE_APPLY,\n});\n\nexport const RemoteCancelAction = (): IntegrationAction => ({\n type: FlowAction.REMOTE_CANCEL,\n});\n\nexport const SwitchObjectAction = (payload: { id: string }): IntegrationAction => ({\n type: FlowAction.FLOW_SWITCH_OBJECT,\n payload,\n});\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.push(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.push(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","import { InjectionToken } from '@angular/core';\nimport { UIDefinitionMetadata } from '@veloceapps/sdk/core';\nimport { Dictionary } from 'lodash';\nimport { Plugin } from './engine/models/plugin';\nimport { ElementConfig, ElementMetadata } from './types/common.types';\n\nexport const DEFAULT_PLUGINS_TOKEN = new InjectionToken<typeof Plugin[]>('DEFAULT_PLUGINS_TOKEN');\n\nexport const UI_DEFINITION_METADATA = new InjectionToken<UIDefinitionMetadata>('UI_DEFINITION_METADATA_TOKEN');\nexport const ELEMENT_METADATA = new InjectionToken<ElementMetadata>('ELEMENT_METADATA_TOKEN');\nexport const SHARED_ELEMENT_METADATA = new InjectionToken<ElementMetadata>('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(): void {\n this.defaultPlugins.forEach(plugin => this.registerPlugin(new plugin(this)));\n this.config.plugins?.forEach(plugin => this.registerPlugin(new plugin(this)));\n }\n\n public registerPlugin(plugin: Plugin): void {\n this.plugins.push(plugin);\n }\n}\n","/* eslint-disable @angular-eslint/no-conflicting-lifecycle */\nimport {\n AfterContentInit,\n AfterViewChecked,\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n DoCheck,\n Inject,\n Injector,\n OnChanges,\n OnDestroy,\n OnInit,\n SimpleChanges,\n} from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { Entity } from '../engine/models/entity';\nimport { IPluginComponent } from './plugin.component';\n\n@Component({\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush,\n jit: true,\n})\nexport class ElementComponent\n extends Entity\n implements OnChanges, OnInit, DoCheck, AfterContentInit, AfterViewInit, AfterViewChecked, OnDestroy\n{\n public readonly model$ = new BehaviorSubject<any | undefined>(undefined);\n public readonly plugins!: IPluginComponent[];\n\n constructor(@Inject(Injector) public injector: Injector) {\n super(injector);\n\n super.initPlugins();\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n this.plugins.forEach(plugin => plugin.ngOnChanges?.(changes));\n }\n\n public ngOnInit(): void {\n this.plugins.forEach(plugin => plugin.ngOnInit?.());\n }\n\n public ngDoCheck(): void {\n this.plugins.forEach(plugin => plugin.ngDoCheck?.());\n }\n\n public ngAfterContentInit(): void {\n this.plugins.forEach(plugin => plugin.ngAfterContentInit?.());\n }\n\n public ngAfterViewInit(): void {\n this.plugins.forEach(plugin => plugin.ngAfterViewInit?.());\n }\n\n public ngAfterViewChecked(): void {\n this.plugins.forEach(plugin => plugin.ngAfterViewChecked?.());\n }\n\n public ngOnDestroy(): void {\n this.plugins.forEach(plugin => plugin.ngOnDestroy?.());\n }\n}\n","import { ElementMetadata } from '../types';\n\nexport function getElementUniqueName<T>(\n collection: T[],\n name: string,\n comparator: (name: string) => (value: T, index?: number, array?: T[]) => boolean,\n): string {\n let result = '';\n let index = 0;\n\n while (!result) {\n const candidate = name + (index ? ` (${index})` : '');\n const exists = collection.some(comparator(candidate));\n\n if (!exists) {\n result = candidate;\n } else {\n index++;\n }\n }\n\n return result;\n}\n\nconst insertElementAt = (\n source: ElementMetadata[],\n target: ElementMetadata,\n parentPath: string,\n index: number,\n): ElementMetadata[] => {\n const result = [...source];\n const name = getElementUniqueName(\n result,\n target.name,\n (name: string) =>\n (el): boolean =>\n el.name === name,\n );\n const path = parentPath ? `${parentPath}/${name}` : name;\n result.splice(index, 0, { ...target, path, name });\n return result;\n};\n\nexport const insertElement = (\n source: ElementMetadata[],\n target: ElementMetadata,\n path: string,\n index: number,\n): ElementMetadata[] => {\n if (!path) {\n return insertElementAt(source, target, '', index);\n }\n\n return source.map(element => {\n if (element.path === path) {\n return { ...element, children: insertElementAt(element.children, target, element.path, index) };\n } else if (element.path?.startsWith(path)) {\n return {\n ...element,\n children: insertElement(element.children, target, path, index),\n };\n } else {\n return element;\n }\n });\n};\n\nexport const removeElement = (source: ElementMetadata[], path: string): ElementMetadata[] => {\n return source.reduce((trunk: ElementMetadata[], element) => {\n if (path === element.path) {\n return trunk;\n }\n\n if (element.path) {\n if (path.startsWith(element.path)) {\n trunk.push({\n ...element,\n children: removeElement(element.children, path),\n });\n } else {\n trunk.push(element);\n }\n }\n\n return trunk;\n }, []);\n};\n\nexport const findElementByPath = (source: ElementMetadata[], path: string): ElementMetadata | undefined => {\n for (const el of source) {\n if (el.path === path) {\n return el;\n }\n\n if (el.path && path.startsWith(el.path)) {\n const found = findElementByPath(el.children, path);\n if (found) {\n return found;\n }\n }\n }\n\n return;\n};\n\nexport const findElementByModule = (\n elements: ElementMetadata[],\n module: string,\n elementName: string,\n): ElementMetadata | undefined => {\n for (const el of elements) {\n if (el.module === module && el.name === elementName) {\n return el;\n }\n\n const child = findElementByModule(el.children, module, elementName);\n if (child) {\n return child;\n }\n }\n\n return;\n};\n","import { compact } from 'lodash';\nimport { ElementMetadata, ElementPath, PathBlock } from '../types';\nimport { findElementByModule } from './ui-definition.utils';\n\nexport const parseBoundPath = (path: string): PathBlock[] => {\n const regexp = new RegExp(`(?:\\\\/)(?:\\\\w+)(?:\\\\/)(?:ports|attributes)(?:\\\\/)(?:\\\\w+)|(?:\\\\/)(?:\\\\w+)`, 'g');\n const blocks: PathBlock[] =\n path.match(regexp)?.map(match => {\n const [type, property, name] = compact(match.split('/'));\n return { type, property, name };\n }) ?? [];\n\n return blocks;\n};\n\nexport const parsePath = (path: string): ElementPath => {\n const segments = path.split('/');\n let module: string | undefined;\n let variable: string | undefined;\n\n if (segments[0]?.startsWith('@')) {\n module = segments.shift()?.substring(1);\n }\n\n if (segments[segments.length - 1]?.[0] === ':') {\n variable = segments.pop()?.substring(1);\n }\n\n const isAbsolute = !segments[0];\n const nonEmptySegments = segments.filter(Boolean);\n\n if (!isAbsolute && nonEmptySegments[0] === '.') {\n nonEmptySegments.shift();\n }\n\n return {\n isAbsolute,\n segments: nonEmptySegments,\n module,\n variable,\n };\n};\n\nexport const getAbsolutePath = (\n elements: ElementMetadata[],\n subject: ElementMetadata,\n path: ElementPath,\n): string | undefined => {\n if (path.module) {\n return findElementByModule(elements, path.module, path.segments[0])?.path;\n }\n\n const subjectSegments = subject.path?.split('/') ?? [];\n const segments = [...path.segments];\n\n if (path.isAbsolute) {\n return segments.join('/');\n }\n\n while (segments.length) {\n const segment = segments.shift();\n\n if (segment === '..') {\n subjectSegments.pop();\n } else if (segment) {\n subjectSegments.push(segment);\n }\n }\n\n return subjectSegments.join('/');\n};\n","import { InjectionToken } from '@angular/core';\nimport type { CompilationService } from './services/compilation.service';\n\nexport const CMS_COMPILATION_SERVICE = new InjectionToken<CompilationService>('VENDOR_MAP');\n","import { ComponentFactory, Injectable, Injector, NgModule, Type } from '@angular/core';\nimport { UIDefinition } from '@veloceapps/sdk/core';\nimport { applyPatch, Patch } from 'rfc6902';\nimport { AddOperation, RemoveOperation } from 'rfc6902/diff';\nimport { BehaviorSubject, distinctUntilChanged, map, Observable, of, startWith, Subject, switchMap, tap } from 'rxjs';\nimport { CMSPreviewConfig } from '../../../components/preview/preview.types';\nimport { ElementMetadata } from '../../../types';\nimport { findElementByPath } from '../../../utils/ui-definition.utils';\nimport { CMS_COMPILATION_SERVICE } from '../tokens';\nimport type { CompilationService } from './compilation.service';\n\n@Injectable()\nexport class RuntimeService {\n public modules: Type<NgModule>[] = [];\n public componentFactories: Record<string, ComponentFactory<any>> = {};\n public applicationTree: ElementMetadata[] = [];\n public config?: CMSPreviewConfig;\n public isInitialized$ = new BehaviorSubject(false);\n public updated$ = new Subject<void>();\n\n private compilationService: CompilationService;\n\n constructor(private injector: Injector) {\n this.compilationService = this.injector.get(CMS_COMPILATION_SERVICE);\n }\n\n public initialize$(uiDefinition?: UIDefinition, config?: CMSPreviewConfig): Observable<ElementMetadata[]> {\n this.config = config;\n\n if (!uiDefinition) {\n return of([]);\n }\n\n return this.compilationService.compileUIDefinition$(uiDefinition).pipe(\n map(result => {\n this.applicationTree = result.elements;\n this.addComponentFactories(result.module.componentFactories);\n return result.elements;\n }),\n tap(() => this.isInitialized$.next(true)),\n );\n }\n\n public applyPatch$(patch: Patch): Observable<void> {\n let observable$: Observable<any> = of(undefined);\n\n patch.forEach(operation => {\n switch (operation.op) {\n case 'add': {\n observable$ = observable$.pipe(switchMap(() => this.addElement$(operation)));\n break;\n }\n case 'remove': {\n observable$ = observable$.pipe(map(() => this.deleteElement(operation)));\n break;\n }\n default:\n observable$ = of();\n }\n });\n\n return observable$.pipe(tap(() => this.updated$.next()));\n }\n\n public getCompiledElement$(path: string): Observable<ElementMetadata | undefined> {\n return this.updated$.pipe(\n startWith(undefined),\n map(() => findElementByPath(this.applicationTree, path)),\n distinctUntilChanged(),\n );\n }\n\n public clear(): void {\n this.compilationService.clearModuleCache(this.modules);\n this.modules = [];\n this.applicationTree = [];\n this.componentFactories = {};\n this.isInitialized$.next(false);\n }\n\n private addElement$(operation: AddOperation): Observable<void> {\n return this.compilationService.compileElement$(operation.value).pipe(\n map(result => {\n this.addComponentFactories(result.module.componentFactories);\n applyPatch(this.applicationTree, [{ ...operation, value: result.elements[0] }]);\n }),\n );\n }\n\n private deleteElement(operation: RemoveOperation): void {\n applyPatch(this.applicationTree, [operation]);\n }\n\n private addComponentFactories(list: ComponentFactory<any>[]): void {\n list.forEach(item => (this.componentFactories[(item.componentType as any).path] = item));\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Dictionary } from 'lodash';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { RuntimeService } from '../modules/runtime/services/runtime.service';\nimport { ElementMetadata } from '../types/common.types';\nimport { getAbsolutePath, parsePath } from '../utils/path.utils';\n\n@Injectable()\nexport class IOProviderService {\n private inputs: Dictionary<Dictionary<BehaviorSubject<any>>> = {};\n\n constructor(private runtimeService: RuntimeService) {}\n\n public connect(el: ElementMetadata, name: string, target?: string | null): Observable<any> | undefined {\n return this.resolveTarget(el, name, target)?.asObservable();\n }\n\n public provide(el: ElementMetadata, name: string, target?: string | null): BehaviorSubject<any> | undefined {\n return this.resolveTarget(el, name, target);\n }\n\n private resolveTarget(el: ElementMetadata, name: string, target?: string | null): BehaviorSubject<any> | undefined {\n const isHost = !target;\n\n if (isHost) {\n return this.createSubjectSafe(el.path ?? '', name);\n }\n\n const 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.runtimeService.applicationTree, 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';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\ntype Template = TemplateRef<any> | undefined;\n\n@Injectable()\nexport class TemplatesService {\n private templates: Dictionary<BehaviorSubject<Template>> = {};\n\n public register(name: string, templateRef: TemplateRef<any>): void {\n this.ensureStorage(name);\n this.templates[name].next(templateRef);\n }\n\n public get(name: string): Template {\n this.ensureStorage(name);\n return this.templates[name].value;\n }\n\n public get$(name: string): Observable<Template> {\n this.ensureStorage(name);\n return this.templates[name].asObservable();\n }\n\n private ensureStorage(name: string): void {\n if (!this.templates[name]) {\n this.templates[name] = new BehaviorSubject<Template>(undefined);\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Dictionary } from 'lodash';\nimport { BehaviorSubject, filter, map, Observable } from 'rxjs';\nimport { IntegrationAction } from '../types/integration.types';\n\nconst InitAction: IntegrationAction = { type: 'INIT' };\nconst ClearAction: IntegrationAction = { type: 'CLEAR' };\n\n@Injectable({ providedIn: 'root' })\nexport class IntegrationState<S = Dictionary<any>> {\n private readonly stateSubj$ = new BehaviorSubject<S>({} as S);\n private readonly action$ = new BehaviorSubject<IntegrationAction>(InitAction);\n\n public get state$(): Observable<S> {\n return this.stateSubj$.asObservable();\n }\n\n public get state(): S {\n return this.stateSubj$.getValue();\n }\n\n public patchState(update: Partial<S>): void {\n this.stateSubj$.next({ ...this.stateSubj$.getValue(), ...update });\n }\n\n public dispatch(action: IntegrationAction): void {\n this.action$.next(action);\n }\n\n public listen$<P = any>(actionType: string): Observable<P> {\n return this.action$.pipe(\n filter(action => action.type === actionType),\n map(action => action.payload as P),\n );\n }\n\n public listenAll$<T extends IntegrationAction>(): Observable<T> {\n return this.action$.asObservable() as Observable<T>;\n }\n\n public clear(): void {\n this.stateSubj$.next({} as S);\n this.action$.next(ClearAction);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { filter, noop, Observable, of, ReplaySubject, take } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class ResourcesService {\n private scripts = new Map<string, boolean>();\n private loaded$ = new ReplaySubject<void>();\n\n public loadScript(url: string): Observable<void> {\n const loaded = this.scripts.get(url);\n if (loaded === true) {\n return of(noop());\n }\n\n if (loaded == null) {\n this.scripts.set(url, false);\n\n const script = document.createElement('script');\n script.src = url;\n script.onload = () => {\n this.scripts.set(url, true);\n this.loaded$.next();\n };\n document.body.appendChild(script);\n }\n\n return this.loaded$.pipe(\n filter(() => this.scripts.get(url) === true),\n take(1),\n );\n }\n\n public loadStyles(url: string): Observable<void> {\n const previewEl = document.querySelector('vl-cms-preview');\n const rootEl = previewEl?.shadowRoot ?? previewEl ?? document.body;\n\n return new Observable(subscriber => {\n const link = document.createElement('link');\n link.rel = 'stylesheet';\n link.type = 'text/css';\n link.href = url;\n link.media = 'all';\n link.onload = () => {\n subscriber.next();\n subscriber.complete();\n };\n rootEl.appendChild(link);\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ElementMetadata } from '../types/common.types';\n\n@Injectable()\nexport class ElementContextService {\n public metadata?: ElementMetadata;\n public parentModelId?: string;\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n 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 '@veloceapps/core';\nimport { ConfigurationService } from '@veloceapps/sdk/core';\nimport { Dictionary, isArray, pull } from 'lodash';\nimport { map, Observable, Subject, takeUntil } from 'rxjs';\nimport { RuntimeService } from '../../modules/runtime/services/runtime.service';\nimport { ElementContextService } from '../../services/element-context.service';\nimport { IOProviderService } from '../../services/io-provider.service';\nimport { ElementMetadata } from '../../types/common.types';\nimport { parseBoundPath } from '../../utils/path.utils';\n\n@Component({\n selector: 'vl-cms-element-renderer',\n templateUrl: './element-renderer.component.html',\n styleUrls: ['./element-renderer.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [ElementContextService],\n})\nexport class ElementRendererComponent implements OnInit, OnDestroy {\n @ViewChild('el', { read: ViewContainerRef, static: true }) public el?: ViewContainerRef;\n\n @Input() public meta!: ElementMetadata;\n\n private 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 runtimeService: RuntimeService,\n private elementContext: ElementContextService,\n private ioProviderService: IOProviderService,\n private configurationService: ConfigurationService,\n private elementRef: ElementRef,\n private cdr: ChangeDetectorRef,\n ) {}\n\n public ngOnInit(): void {\n this.elementContext.metadata = this.meta;\n this.factory = this.meta.path ? this.runtimeService.componentFactories[this.meta.path] : undefined;\n\n this.createComponents();\n }\n\n public ngOnDestroy(): void {\n this.destroyComponents();\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n private createComponents(): void {\n const modelMeta = this.meta.model;\n\n if (!modelMeta) {\n this.refs[UUID.UUID()] = this.createComponent();\n return;\n }\n\n if (modelMeta.lineItem) {\n this.createFromLineItem(modelMeta.lineItem);\n } else if (modelMeta.path) {\n this.createFromPath(modelMeta.path);\n }\n }\n\n private createFromPath(path: string): void {\n const array$ = this.ioProviderService.connect(this.meta, 'children$', path);\n\n array$?.pipe(takeUntil(this.destroy$)).subscribe(children => {\n if (!isArray(children)) {\n return;\n }\n\n this.processChildren(children);\n });\n }\n\n private getModelComponent(): ElementRendererComponent | null {\n let component: ElementRendererComponent | null = null;\n let injector = this.parentInjector;\n\n while (!component) {\n const parentComp = injector.get(ElementRendererComponent, null);\n\n if (parentComp?.meta.model) {\n component = parentComp;\n break;\n }\n\n if (parentComp) {\n injector = parentComp.parentInjector;\n } else {\n break;\n }\n }\n\n return component;\n }\n\n private createFromLineItem(path: string): void {\n const parentComp = this.getModelComponent();\n const parentPath = parentComp?.meta.model?.lineItem;\n\n const pathBlocks = parseBoundPath(path).reverse();\n const { property, name } = pathBlocks[1] ?? {};\n const finalPath = pathBlocks[0];\n\n const children$ = this.getParentLineItem$(parentComp).pipe(\n map(model => {\n if (!model) {\n return [];\n }\n\n if (property === 'ports' && !finalPath.property && parentPath !== path) {\n return model.lineItems.filter(({ port }) => port === name) ?? [];\n }\n\n return [model];\n }),\n );\n\n children$.pipe(takeUntil(this.destroy$)).subscribe(children => {\n this.processChildren(children);\n });\n }\n\n private processChildren(children: any[]): void {\n const refs = children.reduce((acc, data, index) => {\n const key = String(data?.id ?? UUID.UUID());\n const existingRef = this.refs[key];\n\n const ref = existingRef ?? this.createComponent(data, index);\n if (existingRef) {\n this.updateComponent(existingRef, data, index);\n }\n\n return ref ? { ...acc, [key]: ref } : acc;\n }, {} 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 | undefined> {\n const parentRefs = Object.values(parentComp?.refs ?? {});\n const parentRef = parentRefs.find(ref =>\n (ref?.location.nativeElement as HTMLElement)?.contains(this.elementRef.nativeElement),\n );\n\n const parentModel$ = parentRef?.instance.model$;\n\n return parentModel$ ?? this.configurationService.get();\n }\n\n private createComponent(data?: any, index?: number): ComponentRef<any> | undefined {\n if (!this.factory) {\n return;\n }\n\n const componentRef = this.el?.createComponent(this.factory, index);\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(ref: ComponentRef<any>, data: any, index: number): void {\n ref.instance.model$.next(data);\n\n if (this.el && this.el.indexOf(ref.hostView) !== index) {\n this.el.move(ref.hostView, index);\n }\n }\n\n private destroyComponent(key: string): void {\n this.refs[key]?.destroy();\n delete this.refs[key];\n }\n\n private destroyComponents(): void {\n Object.values(this.refs).forEach(ref => ref?.destroy());\n this.refs = {};\n }\n}\n","<ng-template #el></ng-template>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Input,\n OnDestroy,\n OnInit,\n ViewEncapsulation,\n} from '@angular/core';\nimport { ConfigurationRuntimeService, ConfigurationService, UIDefinition } from '@veloceapps/sdk/core';\nimport { MessageService } from 'primeng/api';\nimport { BehaviorSubject, catchError, forkJoin, Observable, of, Subject, switchMap, takeUntil, tap } from 'rxjs';\nimport { RuntimeService } from '../../modules/runtime/services/runtime.service';\nimport { IntegrationState } from '../../services';\nimport { IOProviderService } from '../../services/io-provider.service';\nimport { TemplatesService } from '../../services/templates.service';\nimport { ElementMetadata } from '../../types/common.types';\nimport { CMSPreviewConfig } from './preview.types';\n\ninterface State {\n loading: boolean;\n failure: boolean;\n}\n\n@Component({\n selector: 'vl-cms-preview',\n templateUrl: './preview.component.html',\n styleUrls: ['./preview.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [IOProviderService, TemplatesService],\n // use shadow DOM to prevent UI from being affected by global styles\n encapsulation: ViewEncapsulation.ShadowDom,\n})\nexport class PreviewComponent implements OnInit, OnDestroy {\n @Input() public modelId?: string;\n @Input() public uiDefinition?: UIDefinition;\n @Input() public config?: CMSPreviewConfig;\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 runtimeService: RuntimeService,\n private configurationService: ConfigurationService,\n private messageService: MessageService,\n private configurationRuntimeService: ConfigurationRuntimeService,\n private integrationState: IntegrationState,\n private cdr: ChangeDetectorRef,\n ) {\n this.runtimeService.updated$.pipe(takeUntil(this.destroy$)).subscribe(() => this.cdr.detectChanges());\n }\n\n public ngOnInit(): void {\n if (!this.config?.suppressClearState) {\n this.integrationState.clear();\n }\n\n this.startPreview();\n }\n\n public ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n\n this.configurationService.reset();\n this.runtimeService.clear();\n }\n\n private initializeConfiguration$(): Observable<any> {\n const isAlreadyInitialized = this.configurationRuntimeService.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 return this.configurationRuntimeService\n .initTestMode(this.modelId, this.uiDefinition)\n .pipe(switchMap(() => this.configurationService.configure()));\n }\n\n private startPreview(): void {\n if (!this.uiDefinition) {\n return;\n }\n\n forkJoin([this.runtimeService.initialize$(this.uiDefinition, this.config), this.initializeConfiguration$()])\n .pipe(\n tap(([elements]) => {\n this.elements = elements;\n this.state$.next({ loading: false, failure: false });\n }),\n catchError(error => {\n console.error(error);\n\n if (!this.uiDefinition?.properties?.suppressToastMessages) {\n this.messageService.add({ severity: 'error', summary: error });\n }\n\n this.state$.next({ loading: false, failure: true });\n\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 { Injectable } from '@angular/core';\nimport { Patch } from 'rfc6902';\nimport { BehaviorSubject, Observable, ReplaySubject } from 'rxjs';\nimport { RuntimeElementDeleted, RuntimeElementDropped } from '../types/runtime.actions';\nimport { RuntimeService } from './runtime.service';\n\n@Injectable()\nexport class RuntimeEditorService {\n private editorModeSubj$ = new BehaviorSubject(false);\n\n public dragMode$ = new BehaviorSubject(false);\n public elementDropped$ = new ReplaySubject<RuntimeElementDropped>();\n public elementDeleted$ = new ReplaySubject<RuntimeElementDeleted>();\n\n public editorMode$: Observable<boolean>;\n\n constructor(private runtimeService: RuntimeService) {\n this.editorMode$ = this.editorModeSubj$.asObservable();\n this.runtimeService.isInitialized$.subscribe(() =>\n this.editorModeSubj$.next(Boolean(this.runtimeService.config?.uiBuilderMode)),\n );\n }\n\n public applyPatch$(patch: Patch): Observable<void> {\n return this.runtimeService.applyPatch$(patch);\n }\n\n public toggleEditorMode(): void {\n this.editorModeSubj$.next(!this.editorModeSubj$.value);\n }\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { DndDropEvent } from 'ngx-drag-drop';\nimport { RuntimeEditorService } from '../../modules/runtime/services/runtime-editor.service';\nimport { ElementMetadata } from '../../types/common.types';\n\n@Component({\n selector: 'vl-element-drop-handle',\n templateUrl: './element-drop-handle.component.html',\n styleUrls: ['./element-drop-handle.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ElementDropHandleComponent {\n @Input() public index!: number;\n @Input() public parentPath!: string;\n\n constructor(private runtimeService: RuntimeEditorService) {}\n\n public handleDrop(e: DndDropEvent): void {\n this.runtimeService.elementDropped$.next({\n element: e.data as ElementMetadata,\n index: this.index,\n path: this.parentPath,\n });\n }\n}\n","<div class=\"container\" dndDropzone (dndDrop)=\"handleDrop($event)\">\n <div class=\"handle\"></div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DndModule } from 'ngx-drag-drop';\nimport { ElementDropHandleComponent } from './element-drop-handle.component';\n\n@NgModule({\n declarations: [ElementDropHandleComponent],\n imports: [CommonModule, DndModule],\n exports: [ElementDropHandleComponent],\n})\nexport class ElementDropHandleModule {}\n","import { NgModule } from '@angular/core';\nimport { ElementRendererComponent } from './element-renderer.component';\n\n@NgModule({\n declarations: [ElementRendererComponent],\n exports: [ElementRendererComponent],\n})\nexport class ElementRendererModule {}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy } from '@angular/core';\nimport { combineLatest, map, Observable, of, Subject, takeUntil } from 'rxjs';\nimport { RuntimeEditorService } from '../../modules/runtime/services/runtime-editor.service';\nimport { RuntimeService } from '../../modules/runtime/services/runtime.service';\nimport { ElementContextService } from '../../services/element-context.service';\nimport { ElementMetadata } from '../../types/common.types';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'element-children',\n templateUrl: 'element-children.component.html',\n styleUrls: ['./element-children.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ElementChildrenComponent implements OnDestroy {\n public metadata$: Observable<ElementMetadata | undefined>;\n public dragMode$: Observable<boolean>;\n\n private destroyed$ = new Subject<void>();\n\n constructor(\n private elementContext: ElementContextService,\n private runtimeService: RuntimeService,\n private runtimeEditorService: RuntimeEditorService,\n private cdr: ChangeDetectorRef,\n ) {\n const path = this.elementContext?.metadata?.path;\n this.metadata$ = path ? this.runtimeService.getCompiledElement$(path) : of(undefined);\n\n this.dragMode$ = combineLatest([this.runtimeEditorService.editorMode$, this.runtimeEditorService.dragMode$]).pipe(\n map(flags => flags.every(Boolean)),\n );\n this.runtimeService.updated$.pipe(takeUntil(this.destroyed$)).subscribe(() => this.cdr.detectChanges());\n }\n\n public ngOnDestroy(): void {\n this.destroyed$.next();\n this.destroyed$.complete();\n }\n}\n","<ng-container *ngIf=\"metadata$ | async as metadata\">\n <vl-element-drop-handle *ngIf=\"dragMode$ | async\" [index]=\"0\" [parentPath]=\"metadata.path\"></vl-element-drop-handle>\n <ng-container *ngFor=\"let child of metadata.children; let i = index\">\n <vl-cms-element-renderer [meta]=\"child\"></vl-cms-element-renderer>\n <vl-element-drop-handle\n *ngIf=\"dragMode$ | async\"\n [index]=\"i + 1\"\n [parentPath]=\"metadata.path\"\n ></vl-element-drop-handle>\n </ng-container>\n</ng-container>\n","import { NgModule } from '@angular/core';\nimport { LetDirectiveModule } from '@veloceapps/components';\nimport { ElementDropHandleModule } from '../element-drop-handle/element-drop-handle.module';\nimport { ElementRendererModule } from '../element-renderer/element-renderer.module';\nimport { ElementChildrenComponent } from './element-children.component';\n\n@NgModule({\n declarations: [ElementChildrenComponent],\n imports: [LetDirectiveModule, ElementRendererModule, ElementDropHandleModule],\n exports: [ElementChildrenComponent],\n})\nexport class ElementChildrenModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { LoaderModule } from '@veloceapps/components';\nimport { IntegrationState } from '../../services';\nimport { ElementChildrenModule } from '../element-children/element-children.module';\nimport { ElementDropHandleModule } from '../element-drop-handle/element-drop-handle.module';\nimport { ElementRendererModule } from '../element-renderer/element-renderer.module';\nimport { PreviewComponent } from './preview.component';\n\n@NgModule({\n declarations: [PreviewComponent],\n imports: [CommonModule, LoaderModule, ElementRendererModule, ElementChildrenModule, ElementDropHandleModule],\n providers: [IntegrationState],\n exports: [PreviewComponent],\n})\nexport class PreviewModule {}\n","import { ElementDefaultMetadata } from '../types';\n\nexport function ElementDefinition(definition: ElementDefaultMetadata) {\n return function (constructor: any): any {\n return constructor;\n };\n}\n","import { 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() public customTemplate: string | undefined;\n\n public ngAfterViewInit(): void {\n if (!this.customTemplate) {\n return;\n }\n\n this.templatesService.register(this.customTemplate, this.templateRef);\n }\n}\n","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 '@veloceapps/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\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 this.addScript(sharedElementMetadata);\n this.addScript(elementMetadata);\n }\n\n private addScript(metadata?: ElementMetadata): void {\n if (!metadata?.script) {\n return;\n }\n\n const id = btoa(UUID.UUID());\n const script = this.document.createElement('script');\n script.type = `text/javascript`;\n\n let scriptContent = this.normalizeImports(metadata.script, metadata.path ?? metadata.name);\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 private normalizeImports = (script: string, elementPath: string): 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) => {\n const imports = (g1 as string)\n .trim()\n .slice(1, -1)\n .split(',')\n .map(item => item.trim());\n\n imports.forEach(item => {\n if (!this.vendorMap[src]?.[item]) {\n throw new Error(`Failed to import ${item} from '${src}' in ${elementPath}/script.ts`);\n }\n });\n\n return `const ${g1} = vendor['${src}'];`;\n });\n return result;\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 { UIElement } from '@veloceapps/sdk/core';\nimport { flatten } from 'lodash';\nimport { CONFIG } from '../cms.elements';\nimport { IOPlugin } from '../plugins/io.plugin';\nimport { ElementConfig, ElementDefaultMetadata, ElementMetadata, ElementModel, ELEMENT_TYPE } from '../types';\n\nconst EXPORTED_CLASS_REGEX = /export class (\\S+)/;\nconst METADATA_DECORATOR_REGEX = /@ElementDefinition\\(([\\s\\S]+)\\)(\\n|\\r\\n|.)*export class/g;\n\nexport class UiBuildError extends Error {\n public affectedMetadata: ElementMetadata;\n constructor(message: string, affectedMetadata: ElementMetadata) {\n super(message);\n this.name = this.constructor.name;\n this.affectedMetadata = affectedMetadata;\n }\n}\n\nexport const elementToMetadata = (el: UIElement, parentPath?: string): ElementMetadata => {\n const script = 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, recursive: boolean = true): UIElement => {\n const elMetadata: ElementDefaultMetadata = {\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 configuredStyles: metadata.configuredStyles,\n };\n const normalizedElMetadata = normalizeElementMetadata(elMetadata);\n\n if (!metadata.script || !EXPORTED_CLASS_REGEX.test(metadata.script)) {\n throw new UiBuildError(`'${metadata.name}' component script is missing an exported class`, metadata);\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: recursive ? metadata.children.map(meta => metadataToElement(meta)) : [],\n };\n};\n\nexport const normalizeElementMetadata = (elementMetadata: ElementDefaultMetadata): ElementDefaultMetadata => {\n const metadata = { ...elementMetadata };\n\n // model\n const { lineItem, path } = metadata.model ?? {};\n const model: ElementModel | undefined = lineItem ? { lineItem } : path ? { path } : undefined;\n if (model) {\n metadata.model = model;\n } else {\n delete metadata.model;\n }\n\n // module\n if (!metadata.module) {\n delete metadata.module;\n }\n\n // reference\n if (!metadata.reference) {\n delete metadata.reference;\n }\n\n // inputs\n const inputs = Object.entries(metadata.inputs ?? {}).reduce((acc, [key, value]) => {\n return { ...acc, [key]: value || null };\n }, {});\n if (inputs && Object.keys(inputs).length > 0) {\n metadata.inputs = inputs;\n } else {\n delete metadata.inputs;\n }\n\n // outputs\n const outputs = Object.entries(metadata.outputs ?? {}).reduce((acc, [key, value]) => {\n return { ...acc, [key]: value || null };\n }, {});\n if (outputs && Object.keys(outputs).length > 0) {\n metadata.outputs = outputs;\n } else {\n delete metadata.outputs;\n }\n\n // children\n if (!metadata.children?.length) {\n delete metadata.children;\n }\n\n // isShared\n if (!metadata.isShared) {\n delete metadata.isShared;\n }\n\n // configuredStyles\n if (!metadata.configuredStyles) {\n delete metadata.configuredStyles;\n }\n\n return metadata;\n};\n\nexport const extractElementMetadata = (script: string): ElementDefaultMetadata => {\n const metadataString = (METADATA_DECORATOR_REGEX.exec(script) ?? [])[1];\n\n // need to reset regex last index to prevent null result for next execution\n METADATA_DECORATOR_REGEX.lastIndex = 0;\n\n return new Function(`return ${metadataString}`)();\n};\n\nexport const extendElementMetadata = (script: string, extend: Partial<ElementDefaultMetadata>): string => {\n const metadataString = (METADATA_DECORATOR_REGEX.exec(script) ?? [])[1];\n\n // need to reset regex last index to prevent null result for next execution\n METADATA_DECORATOR_REGEX.lastIndex = 0;\n\n if (!metadataString) {\n return script;\n }\n\n const updated = { ...new Function(`return ${metadataString}`)(), ...extend };\n return script.replace(metadataString, stringifyElementMetadata(updated));\n};\n\nexport const getElementConfig = (type: ELEMENT_TYPE): ElementConfig => {\n return CONFIG[type];\n};\n\nexport const doesElementSupportIO = (type: ELEMENT_TYPE): boolean => {\n return getElementConfig(type).plugins?.includes(IOPlugin) ?? false;\n};\n\nexport function stringifyElementMetadata(elementMetadata: ElementDefaultMetadata): string {\n const cleaned = JSON.stringify(elementMetadata, null, 2);\n\n return cleaned.replace(/^[\\t ]*\"[^:\\n\\r]+(?<!\\\\)\":/gm, function (match) {\n return match.replace(/\"/g, '');\n });\n}\n\nexport const isValidScript = (script?: string): boolean => {\n if (!script) {\n return false;\n }\n\n const exportedClassName = script && (EXPORTED_CLASS_REGEX.exec(script) ?? [])[1];\n if (!exportedClassName) {\n return false;\n }\n\n const meta = extractElementMetadata(script);\n if (!meta.name || !meta.type) {\n return false;\n }\n\n return true;\n};\n\nexport function flattenElements(elements: ElementMetadata[]): ElementMetadata[] {\n return flatten(elements.map(el => [el, ...flattenElements(el.children)]));\n}\n\nexport function isSharedElement(el: ElementMetadata): boolean {\n return Boolean(el.isShared) && el.type !== 'REFERENCE';\n}\n","import { Directive, OnDestroy } from '@angular/core';\nimport { LineItem } from '@veloceapps/core';\nimport { ConfigurationService, generateLineItem, getAttributeValue, LineItemWorker } from '@veloceapps/sdk/core';\nimport { map, Observable, Subject, takeUntil } from 'rxjs';\nimport { ElementComponent } from '../components/element.component';\nimport { PluginComponent } from '../components/plugin.component';\nimport { ELEMENT_METADATA } from '../injection-tokens';\nimport { AttributeElement, ConfigurationElement, PortElement, TypeElement } from '../types';\nimport { ElementMetadata } from '../types/common.types';\nimport { parseBoundPath } from '../utils/path.utils';\n\n@Directive()\nexport class ConfigurationPlugin implements PluginComponent, OnDestroy {\n private modelSnapshot?: LineItem;\n private destroy$ = new Subject<void>();\n\n private elementMetadata: ElementMetadata;\n private configurationService: ConfigurationService;\n\n constructor(public host: ElementComponent & ConfigurationElement) {\n this.elementMetadata = this.host.injector.get(ELEMENT_METADATA);\n this.configurationService = this.host.injector.get(ConfigurationService);\n\n if (this.elementMetadata.model?.lineItem) {\n this.host.model$.pipe(takeUntil(this.destroy$)).subscribe(model => (this.modelSnapshot = model));\n\n const pathBlocks = parseBoundPath(this.elementMetadata.model?.lineItem);\n const { type, property, name } = pathBlocks.reverse()[0];\n\n this.host.boundName = name ?? type;\n\n this.register(type, property, name);\n }\n }\n\n public ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n private register(type?: string, property?: string, name?: string): void {\n if (!type) {\n return;\n }\n\n if (!property) {\n this.registerType();\n } else if (property === 'ports' && name) {\n this.registerPort(name);\n } else if (property === 'attributes' && name) {\n this.registerAttribute(name);\n }\n }\n\n private registerType(): void {\n const remove = (): void => {\n const rootLineItem = this.configurationService.getSnapshot();\n if (!rootLineItem || !this.modelSnapshot) {\n return;\n }\n this.configurationService.patch(new LineItemWorker(rootLineItem).remove(this.modelSnapshot.id).li);\n };\n\n const updateQty = (qty: number): void => {\n const rootLineItem = this.configurationService.getSnapshot();\n if (!rootLineItem || !this.modelSnapshot) {\n return;\n }\n this.configurationService.patch(new LineItemWorker(rootLineItem).replace({ ...this.modelSnapshot, qty }).li);\n };\n\n this.typeHost.remove = remove;\n this.typeHost.updateQty = updateQty;\n }\n\n private registerPort(name: string): void {\n const model$ = this.host.model$ as Observable<LineItem | undefined>;\n\n const portItems$ = model$.pipe(map(model => model?.lineItems.filter(li => li.port === this.host.boundName) ?? []));\n const portDomain$ = model$.pipe(map(model => model?.portDomains[this.host.boundName]));\n\n const add = (type: string, attributes: { name: string; value: any }[] = []): void => {\n if (!this.modelSnapshot) {\n return;\n }\n\n const portDomain = this.modelSnapshot.portDomains[name];\n if (!portDomain) {\n return;\n }\n\n const generated = generateLineItem(portDomain.name, type, this.modelSnapshot.id, attributes);\n this.configurationService.patch(\n new LineItemWorker(this.modelSnapshot).insert(this.modelSnapshot.id, generated).li,\n );\n };\n\n this.portHost.portItems$ = portItems$;\n this.portHost.portDomain$ = portDomain$;\n this.portHost.addPortItem = add;\n }\n\n private registerAttribute(name: string): void {\n if (!this.host.model$) {\n return;\n }\n\n const value$ = this.host.model$.pipe(map(model => getAttributeValue(model?.attributes ?? [], name)));\n\n const patch = (value: any): void => {\n if (!this.modelSnapshot) {\n return;\n }\n this.configurationService.patch(new LineItemWorker(this.modelSnapshot).patchAttribute([{ name, value }]).li);\n };\n\n this.attributeHost.value$ = value$;\n this.attributeHost.patch = patch;\n }\n\n private get attributeHost(): ElementComponent & AttributeElement {\n return this.host as ElementComponent & AttributeElement;\n }\n\n private get typeHost(): ElementComponent & TypeElement {\n return this.host as ElementComponent & TypeElement;\n }\n\n private get portHost(): ElementComponent & PortElement {\n return this.host as ElementComponent & PortElement;\n }\n}\n","import { UIDefinitionType } from '@veloceapps/sdk/core';\nimport { Plugin } from './engine/models/plugin';\nimport { ConfigurationPlugin } from './plugins/configuration.plugin';\n\nexport const DEFAULT_PLUGINS: { [key in UIDefinitionType]: typeof Plugin[] } = {\n CONFIGURATION: [ConfigurationPlugin],\n DEFAULT: [],\n};\n","import * as angularCore from '@angular/core';\nimport * as angularForms from '@angular/forms';\nimport {\n CatalogApiService,\n ConfigurationSettingsApiService,\n DeltaApiService,\n DocumentAttachmentApiService,\n DocumentTemplatesApiService,\n GuidedSellingApiService,\n PicklistsApiService,\n PriceApiService,\n QuoteApiService,\n RampApiService,\n SalesforceApiService,\n ShoppingCartSettingsApiService,\n} from '@veloceapps/api';\nimport { ToastService } from '@veloceapps/components';\nimport { Operator, Predicate, isDefined, parseJsonSafely } from '@veloceapps/core';\nimport {\n ConfigurationService,\n ContextService,\n FlowConfigurationService,\n LineItemWorker,\n ProductImagesService,\n QuoteDraftService,\n lineItemUtils,\n} from '@veloceapps/sdk/core';\nimport * as lodash from 'lodash';\nimport * as rxjs from 'rxjs';\nimport * as rxjsOperators from 'rxjs/operators';\nimport * as cmsActions from './cms.actions';\nimport * as cmsInjectionTokens from './injection-tokens';\nimport { IntegrationState } from './services/integration.state';\nimport { ResourcesService } from './services/resources.service';\nimport { TemplatesService } from './services/templates.service';\n\nconst VELOCE_LIBS = {\n '@veloceapps/core': {\n isDefined,\n Operator,\n Predicate,\n parseJsonSafely,\n },\n '@veloceapps/components': {\n ToastService,\n },\n '@veloceapps/api': {\n SalesforceApiService,\n QuoteApiService,\n DocumentTemplatesApiService,\n DocumentAttachmentApiService,\n RampApiService,\n CatalogApiService,\n DeltaApiService,\n PicklistsApiService,\n PriceApiService,\n ShoppingCartSettingsApiService,\n ConfigurationSettingsApiService,\n GuidedSellingApiService,\n },\n '@veloceapps/sdk/core': {\n ConfigurationService,\n QuoteDraftService,\n FlowConfigurationService,\n LineItemWorker,\n ProductImagesService,\n ContextService,\n ...lineItemUtils,\n },\n '@veloceapps/sdk/cms': {\n ...cmsInjectionTokens,\n ...cmsActions,\n TemplatesService,\n IntegrationState,\n ResourcesService,\n },\n};\n\nconst VELOCE_LIBS_BACKWARDS_COMPATIBLE = Object.entries(VELOCE_LIBS).reduce(\n (trunk, [key, value]) => ({ ...trunk, [key.replace('@veloceapps/', '@veloce/')]: value }),\n {},\n);\n\nexport const vendorMap = {\n ...VELOCE_LIBS,\n\n // TODO: remove when projects/demos are migrated to @veloceapps organization libraries\n ...VELOCE_LIBS_BACKWARDS_COMPATIBLE,\n\n '@angular/core': angularCore,\n '@angular/forms': angularForms,\n rxjs: rxjs,\n 'rxjs/operators': rxjsOperators,\n lodash: lodash,\n};\n\nexport type VendorMap = typeof vendorMap;\n","import { Component, Type } from '@angular/core';\nimport { transform } from '@babel/standalone';\nimport { isDefined } from '@veloceapps/core';\nimport { UIDefinitionMetadata } from '@veloceapps/sdk/core';\nimport { flatten, kebabCase, 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, ElementStyleDeclaration } from '../types';\nimport { vendorMap } from '../vendor-map';\n\nexport class ElementsResolver {\n public elements: ElementMetadata[];\n\n private renderableElements: ElementMetadata[] = [];\n private sharedElements: ElementMetadata[] = [];\n\n constructor(\n private uiDef: UIDefinitionMetadata,\n elements: ElementMetadata[],\n sharedElements: ElementMetadata[] = [],\n ) {\n const transpiledElements = this.transpileScripts(elements);\n const transpiledSharedElements = this.transpileScripts(sharedElements);\n\n this.sharedElements = this.flattenElements(transpiledElements)\n .filter(el => this.isSharedElement(el))\n .concat(transpiledSharedElements);\n\n this.elements = transpiledElements.map(el => this.processElementMetadata(el)).filter(isDefined);\n\n this.renderableElements = this.getRenderableElements(this.elements);\n }\n\n public addElement(element: ElementMetadata): void {\n if (element.isShared) {\n return;\n }\n\n const transpiledElements = this.transpileScripts([element]);\n this.elements = transpiledElements.map(el => this.processElementMetadata(el)).filter(isDefined);\n this.renderableElements = this.getRenderableElements(this.elements);\n }\n\n public getNgComponents(): Type<any>[] {\n return this.renderableElements.map(el => this.resolveElement(el)).filter(isDefined);\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 getRenderableElements(elements: ElementMetadata[]): ElementMetadata[] {\n const renderable: ElementMetadata[] = [];\n\n for (const el of elements) {\n if (!this.isSharedElement(el)) {\n const children = el.children.filter(child => !this.isSharedElement(child));\n const renderableChildren = this.getRenderableElements(children);\n renderable.push({ ...el, children }, ...renderableChildren);\n }\n }\n\n return renderable;\n }\n\n private getSharedElement(element: ElementMetadata): ElementMetadata | undefined {\n if (!element.reference) {\n return;\n }\n\n return this.sharedElements.find(el => element.reference === el.name);\n }\n\n private resolveElementTemplate(element: ElementMetadata): string {\n const config = CONFIG[element.type];\n const template = !config.suppressTemplate ? element.template : '';\n\n return template || config.defaultTemplate || '';\n }\n\n private resolveElementStyles(element: ElementMetadata): string {\n const config = CONFIG[element.type];\n return !config.suppressStyles ? element.styles ?? '' : '';\n }\n\n private processElementMetadata(sourceElement: ElementMetadata): ElementMetadata | undefined {\n let finalElement: ElementMetadata;\n\n if (sourceElement.type === 'REFERENCE') {\n const sharedElement = this.getSharedElement(sourceElement);\n\n if (!sharedElement) {\n console.warn(`Shared element \"${sourceElement.reference}\" not found`);\n return;\n }\n\n finalElement = {\n ...sourceElement,\n children: this.getSharedChildren(sharedElement.children, sourceElement.path),\n type: sharedElement.type,\n template: sharedElement.template,\n styles: (sharedElement.styles ?? '') + '\\n' + (sourceElement.styles ?? ''),\n inputs: {\n ...sharedElement.inputs,\n ...sourceElement.inputs,\n },\n outputs: {\n ...sharedElement.outputs,\n ...sourceElement.outputs,\n },\n };\n } else {\n finalElement = sourceElement;\n delete sourceElement.reference;\n }\n\n finalElement.template = this.resolveElementTemplate(finalElement);\n finalElement.styles = this.resolveElementStyles(finalElement);\n\n return {\n ...finalElement,\n children: finalElement.children.map(child => this.processElementMetadata(child)).filter(isDefined),\n };\n }\n\n private getSharedChildren(children: ElementMetadata[], parentPath?: string): ElementMetadata[] {\n return children.map(c => {\n if (!c.path) {\n return c;\n }\n\n const [elName] = c.path.split('/').reverse();\n const path = parentPath + '/' + elName;\n\n return {\n ...c,\n path,\n children: this.getSharedChildren(c.children, path),\n };\n });\n }\n\n private resolveElement(element: ElementMetadata): Type<any> | undefined {\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 styles = this.getElementStyles(element);\n\n const component: Component = {\n selector: 'vl-element',\n template: element.template,\n ...(styles ? { styles: [styles] } : {}),\n providers: [\n { provide: DEFAULT_PLUGINS_TOKEN, useValue: defaultPlugins },\n { provide: UI_DEFINITION_METADATA, useValue: this.uiDef },\n { provide: ELEMENT_METADATA, useValue: element },\n { provide: SHARED_ELEMENT_METADATA, useValue: this.getSharedElement(element) },\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 private getElementStyles(element: ElementMetadata): string | undefined {\n let result = '';\n\n const configuredStyles = this.convertInlineStylesToCSS(element.configuredStyles);\n if (configuredStyles) {\n // order is important: styles written by user in CSS code should has higher priority\n result += configuredStyles;\n }\n\n if (element.styles) {\n result += element.styles;\n }\n\n return result || undefined;\n }\n\n private convertInlineStylesToCSS(styles?: ElementStyleDeclaration): string {\n if (!styles) {\n return '';\n }\n\n const entries = Object.entries(styles);\n let result = ':host {\\n';\n\n entries.forEach(([style, value]) => {\n result += ` ${kebabCase(style)}:${value};\\n`;\n });\n\n result += '}\\n';\n\n return result;\n }\n}\n","export const defaultOptions = {\n suppressLoading: false,\n loadingLabel: 'LOADING',\n};\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 = (): void => {\n moduleMap[remoteEntry] = true;\n resolve(); // window is the global namespace\n };\n\n document.body.append(script);\n });\n}\n\nasync function lookupExposedModule(remoteName: string, exposedModule: string): Promise<any> {\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;\n}\n\nexport async function loadRemoteModule(remoteEntry: string, remoteName: string, exposedModule: string): Promise<any> {\n await loadRemoteEntry(remoteEntry);\n\n return await lookupExposedModule(remoteName, exposedModule);\n}\n","import {\n AfterViewInit,\n ApplicationRef,\n ChangeDetectionStrategy,\n Compiler,\n Component,\n ElementRef,\n Injector,\n Input,\n OnChanges,\n OnInit,\n Renderer2,\n SimpleChanges,\n ViewChild,\n} from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { defaultOptions } from './default-options';\nimport { FederatedComponentInstance, FederatedModuleOptions } from './federated.types';\nimport { loadRemoteModule } from './federated.utils';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'veloce-host-federated',\n templateUrl: './federated.component.html',\n styleUrls: ['./federated.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FederatedComponent implements OnInit, AfterViewInit, OnChanges {\n @ViewChild('moduleHost', { static: false }) public moduleHostRef?: ElementRef;\n\n @Input() public remoteEntry?: string;\n @Input() public remoteName?: string;\n @Input() public exposedModule?: string;\n @Input() public data?: any;\n @Input() public options?: FederatedModuleOptions;\n\n public isLoading$ = new BehaviorSubject(false);\n\n // configs\n public suppressLoading = defaultOptions.suppressLoading;\n public loadingLabel = defaultOptions.loadingLabel;\n\n private instance?: FederatedComponentInstance;\n\n constructor(\n private injector: Injector,\n private compiler: Compiler,\n private appRef: ApplicationRef,\n private renderer: Renderer2,\n ) {}\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes.data && this.instance) {\n this.instance.data = this.data;\n }\n\n if (changes.options) {\n this.suppressLoading = this.options?.suppressLoading ?? defaultOptions.suppressLoading;\n this.loadingLabel = this.options?.loadingLabel ?? defaultOptions.loadingLabel;\n }\n }\n\n public ngOnInit(): void {\n this.isLoading$.next(true);\n }\n\n public ngAfterViewInit(): void {\n const remoteEntry = this.options?.remoteEntry ?? this.remoteEntry;\n const remoteName = this.options?.remoteName ?? this.remoteName;\n const exposedModule = this.options?.exposedModule ?? this.exposedModule;\n\n if (!remoteEntry || !remoteName || !exposedModule) {\n return;\n }\n\n loadRemoteModule(remoteEntry, remoteName, exposedModule).then(federated => {\n this.compiler.compileModuleAsync(federated[exposedModule as string]).then(moduleFactory => {\n const rootModuleRef = moduleFactory.create(this.injector);\n const rootComponentFactory = rootModuleRef.componentFactoryResolver.resolveComponentFactory(\n federated[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 FederatedComponentInstance;\n this.instance.data = this.data;\n\n this.renderer.appendChild(this.moduleHostRef?.nativeElement, node);\n this.appRef.attachView(hostView);\n\n this.options?.onReady?.();\n this.isLoading$.next(false);\n });\n });\n }\n}\n","<div #moduleHost></div>\n\n<vl-loader *ngIf=\"!suppressLoading && (isLoading$ | async)\" [label]=\"loadingLabel\"></vl-loader>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { LoaderModule } from '@veloceapps/components';\nimport { FederatedComponent } from './federated.component';\n\n@NgModule({\n declarations: [FederatedComponent],\n imports: [CommonModule, LoaderModule],\n exports: [FederatedComponent],\n})\nexport class FederatedModule {}\n","import { DragDropModule } from '@angular/cdk/drag-drop';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nimport { CommonModule } from '@angular/common';\nimport { Compiler, Injectable, NgModule, Type } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { UIDefinition, UIDefinitionMetadata } from '@veloceapps/sdk/core';\nimport { DndModule } from 'ngx-drag-drop';\nimport { combineLatest, from, map, Observable, of, switchMap } from 'rxjs';\nimport { ElementChildrenComponent } from '../../../components/element-children/element-children.component';\nimport { ElementDropHandleComponent } from '../../../components/element-drop-handle/element-drop-handle.component';\nimport { ElementRendererComponent } from '../../../components/element-renderer/element-renderer.component';\nimport { CustomTemplateDirective } from '../../../directives/custom-template.directive';\nimport { CompilationResult } from '../../../modules/runtime/types/compilation.types';\nimport { ElementMetadata } from '../../../types/common.types';\nimport { ElementsResolver, elementToMetadata } from '../../../utils';\nimport { FederatedModule } from '../../federated/federated.module';\n\n@Injectable()\nexport class CompilationService {\n private uiDefinitionMeta?: UIDefinitionMetadata;\n private elementsResolver?: ElementsResolver;\n\n constructor(private compiler: Compiler) {}\n\n public compileUIDefinition$(uiDefinition: UIDefinition): Observable<CompilationResult> {\n return of([]).pipe(\n switchMap(() => {\n const { children, pages, components, ...uiDefinitionMeta } = uiDefinition;\n this.uiDefinitionMeta = uiDefinitionMeta;\n\n const elements = [...(children ?? []), ...(pages ?? [])];\n const sharedElements = components ?? [];\n\n const metadata = elements.map(element => elementToMetadata(element));\n const sharedMetadata = sharedElements.map(element => elementToMetadata(element));\n\n this.elementsResolver = new ElementsResolver(uiDefinition, metadata, sharedMetadata);\n const module = this.getModule(this.elementsResolver.getNgComponents());\n\n return combineLatest([\n from(this.compiler.compileModuleAndAllComponentsAsync(module)),\n of(this.elementsResolver),\n ]);\n }),\n map(([module, elementsResolver]) => ({ module, elements: elementsResolver.elements })),\n );\n }\n\n public compileElement$(element: ElementMetadata): Observable<CompilationResult> {\n if (!this.uiDefinitionMeta) {\n throw 'No UI Definition context';\n }\n\n return of(this.uiDefinitionMeta).pipe(\n switchMap(uiDefinition => {\n const elementsResolver = this.elementsResolver ?? new ElementsResolver(uiDefinition, []);\n elementsResolver.addElement(element);\n const module = this.getModule(elementsResolver.getNgComponents());\n\n return combineLatest([from(this.compiler.compileModuleAndAllComponentsAsync(module)), of(elementsResolver)]);\n }),\n map(([module, elementsResolver]) => ({ module, elements: elementsResolver.elements })),\n );\n }\n\n public clearModuleCache(modules: Type<NgModule>[]): void {\n modules.forEach(module => this.compiler.clearCacheFor(module));\n this.uiDefinitionMeta = undefined;\n }\n\n private getModule(components: Type<any>[]): Type<NgModule> {\n const staticComponents = [\n ElementChildrenComponent,\n ElementRendererComponent,\n ElementDropHandleComponent,\n CustomTemplateDirective,\n ];\n\n @NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n FederatedModule,\n DragDropModule,\n DndModule,\n ScrollingModule,\n ],\n declarations: [...staticComponents, ...components],\n jit: true,\n })\n class DynamicModule {}\n\n return DynamicModule;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { CoreModule } from '@veloceapps/core';\nimport { DialogService } from 'primeng/dynamicdialog';\nimport { CompilationService } from './services/compilation.service';\nimport { RuntimeEditorService } from './services/runtime-editor.service';\nimport { RuntimeService } from './services/runtime.service';\nimport { CMS_COMPILATION_SERVICE } from './tokens';\n\n@NgModule({\n imports: [CommonModule, CoreModule],\n providers: [\n DialogService,\n RuntimeService,\n RuntimeEditorService,\n { provide: CMS_COMPILATION_SERVICE, useClass: CompilationService },\n ],\n})\nexport class RuntimeModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ApiModule } from '@veloceapps/api';\nimport { CoreModule } from '@veloceapps/core';\nimport { SdkCoreModule } from '@veloceapps/sdk/core';\nimport { DialogService } from 'primeng/dynamicdialog';\nimport { PreviewModule } from './components/preview';\nimport { RuntimeModule } from './modules/runtime';\nimport { IntegrationState, ResourcesService } from './services';\n\n@NgModule({\n imports: [CommonModule, CoreModule, ApiModule, SdkCoreModule, RuntimeModule, PreviewModule],\n providers: [IntegrationState, DialogService, ResourcesService],\n exports: [PreviewModule],\n})\nexport class LauncherModule {}\n","import { UIDefinitionMigrationFn } from './types/migrations.types';\n\nexport const migrations: Record<number, UIDefinitionMigrationFn> = {\n 2: () => {\n throw 'Migration from Legacy UI definition is not possible';\n },\n 3: uiDef => {\n const children = uiDef.children ?? [];\n\n return {\n ...uiDef,\n children: undefined,\n pages: children,\n version: 3,\n };\n },\n};\n","import { Injectable } from '@angular/core';\nimport { ToastService, ToastType } from '@veloceapps/components';\nimport { UIDefinition, UI_DEFINITION_VERSION } from '@veloceapps/sdk/core';\nimport { cloneDeep } from 'lodash';\nimport { migrations } from '../migrations';\n\n@Injectable({ providedIn: 'root' })\nexport class MigrationsService {\n constructor(private toastService: ToastService) {}\n\n public migrateUIDefinition(uiDef: UIDefinition): UIDefinition | undefined {\n const currentVersion = uiDef.version;\n const targetVersion = UI_DEFINITION_VERSION;\n\n const migrateVersions = Object.keys(migrations)\n .reduce((acc: number[], version) => {\n const v = Number(version);\n if (v > currentVersion && v <= targetVersion) {\n acc.push(v);\n }\n\n return acc;\n }, [])\n .sort();\n\n try {\n let result = cloneDeep(uiDef);\n\n for (const version of migrateVersions) {\n result = migrations[version](result);\n }\n\n return result;\n } catch (e) {\n this.toastService.add({ summary: String(e), severity: ToastType.error });\n return;\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { MigrationsService } from './services/migrations.service';\n\n@NgModule({\n providers: [MigrationsService],\n})\nexport class MigrationsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["FlowAction","InjectionToken","ElementComponent","BehaviorSubject","Component","ChangeDetectionStrategy","Inject","Injector","compact","Subject","of","map","tap","switchMap","startWith","distinctUntilChanged","applyPatch","i0","Injectable","i1.RuntimeService","filter","ReplaySubject","noop","take","Observable","UUID","takeUntil","isArray","pull","i2.ElementContextService","i3.IOProviderService","i4","ViewContainerRef","SkipSelf","ViewChild","Input","forkJoin","catchError","i2","i3","i4.IntegrationState","i5","i6.ElementRendererComponent","i7","ViewEncapsulation","i1.RuntimeEditorService","CommonModule","DndModule","NgModule","combineLatest","i1.ElementContextService","i2.RuntimeService","i3.RuntimeEditorService","i4.ElementDropHandleComponent","i5.ElementRendererComponent","LetDirectiveModule","LoaderModule","i1.TemplatesService","Directive","i1.ElementComponent","DOCUMENT","flatten","ConfigurationService","LineItemWorker","generateLineItem","getAttributeValue","isDefined","Operator","Predicate","parseJsonSafely","ToastService","SalesforceApiService","QuoteApiService","DocumentTemplatesApiService","DocumentAttachmentApiService","RampApiService","CatalogApiService","DeltaApiService","PicklistsApiService","PriceApiService","ShoppingCartSettingsApiService","ConfigurationSettingsApiService","GuidedSellingApiService","QuoteDraftService","ProductImagesService","ContextService","lineItemUtils","angularCore","angularForms","rxjs","rxjsOperators","lodash","transform","set","kebabCase","i1","from","FormsModule","ReactiveFormsModule","DragDropModule","ScrollingModule","CoreModule","DialogService","ApiModule","SdkCoreModule","UI_DEFINITION_VERSION","cloneDeep","ToastType"],"mappings":"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"}