@veloceapps/sdk 6.0.0-94 → 6.0.0-96

Sign up to get free protection for your applications and to get access to all the features.
Files changed (40) hide show
  1. package/bundles/veloceapps-sdk-cms.umd.js +1 -1
  2. package/bundles/veloceapps-sdk-cms.umd.js.map +1 -1
  3. package/bundles/veloceapps-sdk-core.umd.js +7 -0
  4. package/bundles/veloceapps-sdk-core.umd.js.map +1 -1
  5. package/bundles/veloceapps-sdk.umd.js +191 -9
  6. package/bundles/veloceapps-sdk.umd.js.map +1 -1
  7. package/cms/components/preview/preview.types.d.ts +2 -2
  8. package/cms/services/integration.state.d.ts +2 -3
  9. package/cms/types/integration.types.d.ts +5 -0
  10. package/core/services/context.service.d.ts +1 -0
  11. package/esm2015/cms/components/preview/preview.component.js +2 -2
  12. package/esm2015/cms/components/preview/preview.types.js +1 -1
  13. package/esm2015/cms/services/integration.state.js +1 -1
  14. package/esm2015/cms/types/integration.types.js +1 -1
  15. package/esm2015/core/services/context.service.js +4 -1
  16. package/esm2015/src/components/header/header.component.js +22 -4
  17. package/esm2015/src/flow-routing.module.js +14 -1
  18. package/esm2015/src/pages/assets/assets.component.js +117 -0
  19. package/esm2015/src/pages/assets/assets.module.js +20 -0
  20. package/esm2015/src/pages/catalog/catalog.component.js +3 -3
  21. package/esm2015/src/pages/shopping-cart/shopping-cart.component.js +3 -3
  22. package/esm2015/src/resolvers/quote.resolver.js +11 -6
  23. package/esm2015/src/services/flow-router.service.js +9 -1
  24. package/esm2015/src/services/flow.service.js +9 -2
  25. package/esm2015/src/types/flow-customization.types.js +1 -1
  26. package/fesm2015/veloceapps-sdk-cms.js +1 -1
  27. package/fesm2015/veloceapps-sdk-cms.js.map +1 -1
  28. package/fesm2015/veloceapps-sdk-core.js +3 -0
  29. package/fesm2015/veloceapps-sdk-core.js.map +1 -1
  30. package/fesm2015/veloceapps-sdk.js +178 -9
  31. package/fesm2015/veloceapps-sdk.js.map +1 -1
  32. package/package.json +1 -1
  33. package/src/components/header/header.component.d.ts +6 -1
  34. package/src/flow-routing.module.d.ts +4 -3
  35. package/src/pages/assets/assets.component.d.ts +32 -0
  36. package/src/pages/assets/assets.module.d.ts +10 -0
  37. package/src/resolvers/quote.resolver.d.ts +1 -0
  38. package/src/services/flow-router.service.d.ts +2 -0
  39. package/src/services/flow.service.d.ts +1 -0
  40. package/src/types/flow-customization.types.d.ts +1 -0
@@ -1 +1 @@
1
- {"version":3,"file":"veloceapps-sdk-core.umd.js","sources":["../../../../libs/sdk/core/modules/configuration/helpers.ts","../../../../node_modules/tslib/tslib.es6.js","../../../../libs/sdk/core/types/runtime.types.ts","../../../../libs/sdk/core/types/ui-definition.types.ts","../../../../libs/sdk/core/services/context.service.ts","../../../../libs/sdk/core/modules/configuration/services/runtime-context.service.ts","../../../../libs/sdk/core/modules/configuration/services/configuration-runtime.service.ts","../../../../libs/sdk/core/utils/line-item.utils.ts","../../../../libs/sdk/core/utils/line-item.worker.ts","../../../../libs/sdk/core/services/quote-draft.service.ts","../../../../libs/sdk/core/modules/configuration/services/configuration.service.ts","../../../../libs/sdk/core/utils/ui-definition.utils.ts","../../../../libs/sdk/core/modules/flow-configuration/services/flow-update.service.ts","../../../../libs/sdk/core/modules/flow-configuration/services/flow-configuration.service.ts","../../../../libs/sdk/core/modules/flow-configuration/flow-configuration.module.ts","../../../../libs/sdk/core/modules/configuration/configuration.module.ts","../../../../libs/sdk/core/services/metric-calculation/metric-calculation.utils.ts","../../../../libs/sdk/core/services/metric-calculation/metric-calculation.service.ts","../../../../libs/sdk/core/services/product-images.service.ts","../../../../libs/sdk/core/core.module.ts","../../../../libs/sdk/core/veloceapps-sdk-core.ts"],"sourcesContent":["import { LineItem, UUID } from '@veloceapps/core';\nimport { RuntimeContext, UIDefinitionProps } from '../../types';\n\nexport const getDefaultLineItem = (\n context: RuntimeContext,\n uiDefinitionProperties: UIDefinitionProps,\n qty = 1,\n): LineItem => {\n const id = UUID.UUID();\n\n const lineItem: LineItem = {\n id,\n type: uiDefinitionProperties.rootType ?? '',\n cfgStatus: 'Default',\n actionCode: 'ADD',\n qty,\n productName: context.properties?.displayName || context.productName,\n productId: context.productId ?? '',\n ...(context.offeringId\n ? { offeringId: context.offeringId, offeringInstanceId: context.offeringInstanceId || id }\n : {}),\n } as LineItem;\n\n return lineItem;\n};\n","/******************************************************************************\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 { ContextProperties, RuntimeModel } from '@veloceapps/core';\nimport { UIDefinition } from './ui-definition.types';\n\nexport enum RuntimeMode {\n TEST,\n PROD,\n}\n\nexport enum RuntimeOperation {\n INIT = 'INIT',\n UPDATE = 'UPDATE',\n}\n\nexport enum RuntimeStep {\n START = 'START',\n UPDATE = 'UPDATE',\n}\n\nexport interface InvocationContext {\n runtimeOperation?: RuntimeOperation;\n runtimeStep?: RuntimeStep;\n}\n\nexport interface RuntimeContext {\n modelId: string;\n runtimeMode: RuntimeMode;\n runtimeModel: RuntimeModel;\n uiDefinition?: UIDefinition;\n productId?: string;\n productName?: string;\n productType?: string;\n properties?: ContextProperties;\n offeringId?: string;\n offeringInstanceId?: string;\n invocationContext?: InvocationContext;\n}\n","export type UIDefinitionType = 'DEFAULT' | 'CONFIGURATION';\n\nexport const UI_DEFINITION_VERSION = 3;\n\nexport type UIExternalsType = Record<string, string | number | boolean>;\n\nexport interface UIDefinitionProps {\n // GENERAL\n suppressToastMessages?: boolean;\n\n // CONFIGURATION\n rootType?: string;\n pricingEnabled?: boolean;\n priceList?: string;\n productId?: string;\n}\n\nexport interface UIDefinitionMetadata {\n name: string;\n type: UIDefinitionType;\n properties?: UIDefinitionProps;\n primary: boolean;\n createdTimestamp: number;\n externals?: UIExternalsType;\n version: number;\n}\n\nexport interface UIDefinition extends UIDefinitionMetadata {\n /**\n * `children` is for simple previews only.\n * For applications use `pages` property instead\n */\n children?: UIElement[];\n\n /**\n * The page is an Element with `type: 'PAGE'`\n */\n pages?: UIElement[];\n\n /**\n * Shared components\n * These are not rendered on the screen, and only used by REFERENCE type elements\n */\n components?: UIElement[];\n}\n\nexport interface UIElement {\n children: UIElement[];\n template?: string;\n script?: string;\n styles?: string;\n}\n","import { Injectable } from '@angular/core';\nimport { ContextApiService } from '@veloceapps/api';\nimport { ConfigurationContext, ConfigurationContextMode } from '@veloceapps/core';\nimport { merge } from 'lodash';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { filter, map, tap } from 'rxjs/operators';\n\n@Injectable({ providedIn: 'root' })\nexport class ContextService {\n private context = new BehaviorSubject<ConfigurationContext | null>(null);\n\n constructor(private contextApiService: ContextApiService) {}\n\n public get isInitialized(): boolean {\n return Boolean(this.context.value);\n }\n\n public resolve(): ConfigurationContext {\n if (!this.context.value) {\n throw new Error('Context is not initialized yet!');\n }\n\n return { ...this.context.value };\n }\n\n public resolve$(): Observable<ConfigurationContext> {\n return this.context.pipe(filter((ctx): ctx is ConfigurationContext => Boolean(ctx)));\n }\n\n public create(headerId: string, mode: ConfigurationContextMode): Observable<ConfigurationContext> {\n return this.contextApiService.getContext(headerId, mode).pipe(\n tap(context => this.context.next(merge(new ConfigurationContext(headerId, mode), context))),\n map(() => this.resolve() as ConfigurationContext),\n );\n }\n\n public update(partialContext: Partial<ConfigurationContext>): ConfigurationContext {\n const originalContext = this.resolve();\n\n const updatedContext: ConfigurationContext = {\n ...originalContext,\n ...(partialContext as ConfigurationContext),\n properties: {\n ...originalContext.properties,\n ...partialContext.properties,\n },\n };\n\n this.context.next(updatedContext);\n\n return updatedContext;\n }\n\n public set(context: ConfigurationContext): ConfigurationContext {\n const originalContext = this.resolve();\n\n const updatedContext: ConfigurationContext = {\n ...originalContext,\n ...context,\n };\n\n this.context.next(updatedContext);\n\n return updatedContext;\n }\n\n public delete(): void {\n this.context.next(null);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ConfigurationApiService } from '@veloceapps/api';\nimport { RuntimeData, RuntimeModel, UIDefinition as LegacyUiDefinition } from '@veloceapps/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { RuntimeContext, RuntimeMode, UIDefinition } from '../../../types';\n\n@Injectable()\nexport class RuntimeContextService {\n constructor(private configurationApiService: ConfigurationApiService) {}\n\n public getRuntimeContext(productId: string, offeringId?: string): Observable<RuntimeContext> {\n return this.configurationApiService.getRuntimeDataByProductId(productId, offeringId).pipe(\n map(runtimeData => {\n const uiDefinition = this.getUIDefinition(runtimeData);\n const runtimeModel = RuntimeModel.create(runtimeData.types, runtimeData.products);\n const { productName, properties } =\n Array.from(runtimeModel.components.values()).find(c => c.productId === productId) ?? {};\n\n return {\n modelId: runtimeData.modelId,\n uiDefinition: uiDefinition,\n runtimeModel: runtimeModel,\n runtimeMode: RuntimeMode.PROD,\n productId: productId,\n productType: properties?.displayName || productName,\n offeringId: offeringId,\n properties: {\n PricingEnabled: uiDefinition?.properties?.pricingEnabled ? 'true' : 'false',\n PriceListId: uiDefinition?.properties?.priceList,\n },\n };\n }),\n );\n }\n\n private getUIDefinition(runtimeData: RuntimeData): UIDefinition | undefined {\n let rawUiDefinitions: Array<UIDefinition | LegacyUiDefinition>;\n try {\n rawUiDefinitions = JSON.parse(runtimeData.uiDefinitionsSource);\n } catch (e) {\n return;\n }\n\n const uiDefinitions = rawUiDefinitions.filter(uiDef => (uiDef as UIDefinition).version) as UIDefinition[];\n const uiDefinition = uiDefinitions.find(uiDef => uiDef.primary) ?? uiDefinitions[0];\n\n return uiDefinition;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ConfigurationApiService } from '@veloceapps/api';\nimport { ConfigurationContextMode, RuntimeModel, SalesforceIdUtils } from '@veloceapps/core';\nimport { Dictionary } from 'lodash';\nimport { combineLatest, Observable } from 'rxjs';\nimport { first, tap } from 'rxjs/operators';\nimport { ContextService } from '../../../services/context.service';\nimport { RuntimeContext, RuntimeMode, UIDefinition, UIDefinitionProps } from '../../../types';\nimport { RuntimeInitializationProps } from '../types/configuration-runtime.types';\nimport { RuntimeContextService } from './runtime-context.service';\n\n@Injectable()\nexport class ConfigurationRuntimeService {\n private _runtimeContext?: RuntimeContext;\n private _isInitialized = false;\n\n public initializationProps?: RuntimeInitializationProps;\n public uiDefinitionProperties: UIDefinitionProps = {};\n\n constructor(\n private apiService: ConfigurationApiService,\n private contextService: ContextService,\n private runtimeContextService: RuntimeContextService,\n ) {}\n\n public reset(): void {\n this._isInitialized = false;\n this._runtimeContext = undefined;\n this.initializationProps = undefined;\n this.uiDefinitionProperties = {};\n }\n\n public initTestMode(modelId: string, uiDefinition: UIDefinition): any {\n this.uiDefinitionProperties = uiDefinition.properties ?? {};\n const uiDefinitionExternals = uiDefinition.externals ?? {};\n\n return combineLatest([\n this.apiService.getRuntimeDataByModelId(modelId),\n this.contextService.create('TestId', ConfigurationContextMode.TEST),\n ]).pipe(\n first(),\n tap(([runtimeData, context]) => {\n this._runtimeContext = {\n modelId: modelId,\n runtimeModel: RuntimeModel.create(runtimeData.types, runtimeData.products),\n runtimeMode: RuntimeMode.TEST,\n };\n\n this.contextService.update({\n properties: {\n ...this.runtimeContext?.properties,\n ...context.properties,\n ModelId: modelId,\n RuntimeMode: ConfigurationContextMode.TEST,\n PricingEnabled: this.uiDefinitionProperties.pricingEnabled ? 'true' : 'false',\n StartDate: new Date().toISOString().substring(0, 10),\n PriceListId: this.uiDefinitionProperties.priceList,\n standalone: 'true',\n ...uiDefinitionExternals,\n },\n });\n\n this._isInitialized = true;\n }),\n );\n }\n\n public init(props: RuntimeInitializationProps): Observable<RuntimeContext | undefined> {\n this.initializationProps = props;\n const context = this.contextService.resolve();\n\n return this.runtimeContextService.getRuntimeContext(props.productId, props.offeringId).pipe(\n tap(runtimeContext => {\n this.uiDefinitionProperties = runtimeContext.uiDefinition?.properties ?? {};\n const { PriceListId } = context.properties ?? {};\n\n const mergeContext: RuntimeContext = {\n ...runtimeContext,\n properties: {\n ...runtimeContext.properties,\n ...context.properties,\n PricingEnabled: PriceListId ? 'true' : 'false',\n },\n };\n\n this.id15to18('AccountId', mergeContext.properties);\n this._runtimeContext = mergeContext;\n\n if (context.properties && this._runtimeContext.properties?.StartDate) {\n this.contextService.update({\n properties: {\n ...this._runtimeContext.properties,\n ...context.properties,\n },\n });\n }\n\n this._isInitialized = true;\n }),\n );\n }\n\n private id15to18(propertyName: string, source?: Dictionary<any>): void {\n if (!source) {\n return;\n }\n\n const value = source[propertyName];\n\n if (typeof value === 'string' && value.length === 15) {\n source[propertyName] = SalesforceIdUtils.generateId18FromId15(value);\n }\n }\n\n public get isInitialized(): boolean {\n return this._isInitialized;\n }\n\n public get runtimeModel(): RuntimeModel | undefined {\n return this.runtimeContext?.runtimeModel;\n }\n\n public get runtimeContext(): RuntimeContext | undefined {\n return this._runtimeContext;\n }\n}\n","import { Attribute, CfgStatus, LineItem, PortDomain, UUID } from '@veloceapps/core';\nimport { Dictionary, flatten, map, sortBy } from 'lodash';\n\nexport const findLineItem = (id: string, lineItems: LineItem[]): LineItem | undefined => {\n return findLineItemWithComparator(lineItems, (li: LineItem) => li.id === id);\n};\n\nexport const findLineItemWithComparator = (\n lineItems: LineItem[],\n comparator: (li: LineItem) => boolean,\n): LineItem | undefined => {\n let currentLevel = lineItems;\n\n while (currentLevel.length) {\n const found = currentLevel.find(comparator);\n\n if (found) {\n return found;\n }\n\n currentLevel = flatten(currentLevel.map(parent => parent.lineItems));\n }\n\n return;\n};\n\nexport const insertLineItem = (lineItem: LineItem, parentId: string, toInsert: LineItem): LineItem => {\n const insertData = lineItem.id === parentId ? [toInsert] : [];\n return {\n ...lineItem,\n lineItems: [\n ...insertData,\n ...lineItem.lineItems.map(li => {\n return insertLineItem(li, parentId, toInsert);\n }),\n ],\n };\n};\n\nexport const removeLineItem = (lineItem: LineItem, idToRemove: string): LineItem => {\n return {\n ...lineItem,\n lineItems: lineItem.lineItems\n .map(li => {\n if (li.id === idToRemove) {\n return;\n } else if (li.lineItems.length) {\n return removeLineItem(li, idToRemove);\n }\n return li;\n })\n .filter(r => !!r) as LineItem[],\n };\n};\n\nexport const replaceLineItem = (lineItem: LineItem, replaceTo: LineItem): LineItem => {\n if (lineItem.id === replaceTo.id) {\n return { ...recalculateCardinalityVariables(lineItem, replaceTo) };\n }\n\n return {\n ...lineItem,\n lineItems: lineItem.lineItems.map(li => replaceLineItem(li, replaceTo)),\n };\n};\n\nexport const calculateCardinalityVariables = (lineItems: LineItem[]): Map<string, number> => {\n const cardVars = new Map<string, number>();\n lineItems.forEach(li => {\n const cardinalityVariableName = `#CV-${li.type}@${li.port}`;\n cardVars.set(cardinalityVariableName, (cardVars.get(cardinalityVariableName) ?? 0) + li.qty);\n });\n return cardVars;\n};\n\nexport const recalculateCardinalityVariables = (original: LineItem, updated: LineItem): LineItem => {\n const cardinalityVariables = calculateCardinalityVariables(updated.lineItems);\n const originalCardinalityVariables = calculateCardinalityVariables(original.lineItems);\n\n originalCardinalityVariables.forEach((value, key) => {\n if (cardinalityVariables.get(key) === value) {\n // no need to update cardinality if no changes\n cardinalityVariables.delete(key);\n } else if (!cardinalityVariables.has(key)) {\n // remove last item from port\n cardinalityVariables.set(key, 0);\n }\n });\n\n return {\n ...updated,\n attributes: upsertAttributes(\n updated.attributes,\n [...cardinalityVariables].map(([name, value]) => ({ name, value })),\n ),\n };\n};\n\nexport const mapAttributes = (attributes: Attribute[]): Dictionary<any> => {\n return attributes.reduce((acc, { name, value }) => ({ ...acc, [name]: value }), {});\n};\n\nexport const getAttributes = (attributes: Attribute[], names: string[] = []): Attribute[] => {\n const filtered = attributes.filter(({ name }) => names.includes(name));\n return sortBy(filtered, [({ name }): number => names.indexOf(name)]);\n};\n\nexport const upsertAttributes = (\n originalAttributes: Attribute[],\n attributesToUpsert: { name: string; value: any }[],\n): Attribute[] => {\n return attributesToUpsert.reduce((acc, { name, value }) => {\n const [origAttr] = getAttributes(acc, [name]);\n return [\n ...acc.filter(attr => attr.name !== name),\n { ...(origAttr ?? { name }), cfgStatus: 'User' as CfgStatus, value },\n ];\n }, originalAttributes);\n};\n\nexport const patchAttributes = (\n rootLineItem: LineItem,\n id: string,\n attrs: { name: string; value: any }[],\n): LineItem => {\n const lineItem = findLineItem(id, [rootLineItem]);\n\n if (!lineItem) {\n return rootLineItem;\n }\n\n const attributes = upsertAttributes(lineItem.attributes, attrs);\n return replaceLineItem(rootLineItem, { ...lineItem, attributes });\n};\n\nexport const getAttributeValue = (attributes: Attribute[], name: string): any =>\n attributes.find(attr => attr.name === name)?.value;\n\nexport const generateLineItem = (\n port: string,\n type: string,\n parentId: string,\n attributes: { name: string; value: any }[] = [],\n lineItems: LineItem[] = [],\n): LineItem => {\n return {\n id: UUID.UUID(),\n port,\n type,\n actionCode: 'ADD',\n cfgStatus: 'New',\n attributes: attributes.map(({ name, value }) => ({ cfgStatus: 'User', name, value })),\n lineItems,\n parentId,\n qty: 1,\n } as LineItem;\n};\n\nexport const getRecommendedPrices = (portDomain: PortDomain, type: string): { net: number; list: number } => {\n const domainType = portDomain.domainTypes.find(({ name }) => name === type);\n\n const [net, list] = domainType?.recommendedPrices\n ?.filter(({ chargeMethod }) => chargeMethod === 'ONE_TIME')\n .reduce(\n (acc, rp) => {\n const [netPrice, listPrice] = acc;\n return [netPrice + rp.netPrice, listPrice + rp.listPrice];\n },\n [0, 0],\n ) ?? [0, 0];\n\n return { net, list };\n};\n\nexport const multiplyLineItems = (lineItem: LineItem, qty: number, split: boolean): LineItem[] => {\n if (split) {\n const unifyIds = (lineItem: LineItem): LineItem => ({\n ...lineItem,\n id: UUID.UUID(),\n lineItems: lineItem.lineItems.map(unifyIds),\n });\n\n return map(new Array(qty), () => unifyIds(lineItem));\n } else {\n return [\n {\n ...lineItem,\n qty: qty,\n },\n ];\n }\n};\n","import { LineItem } from '@veloceapps/core';\nimport { insertLineItem, patchAttributes, removeLineItem, replaceLineItem } from './line-item.utils';\n\nexport class LineItemWorker {\n public li: LineItem;\n\n constructor(src: LineItem) {\n this.li = { ...src };\n }\n\n public insert(parentId: string, toInsert: LineItem): LineItemWorker {\n return new LineItemWorker(insertLineItem(this.li, parentId, toInsert));\n }\n\n public remove(id: string): LineItemWorker {\n return new LineItemWorker(removeLineItem(this.li, id));\n }\n\n public replace(toReplace: LineItem): LineItemWorker {\n return new LineItemWorker(replaceLineItem(this.li, toReplace));\n }\n\n public patchAttribute(attrs: { name: string; value: any }[], id?: string): LineItemWorker {\n return new LineItemWorker(patchAttributes(this.li, id ?? this.li.id, attrs));\n }\n}\n","import { Injectable } from '@angular/core';\nimport { PriceApiService, QuoteApiService } from '@veloceapps/api';\nimport { ConfigurationContextMode, LineItem, PriceList, PriceSummary, QuoteDraft } from '@veloceapps/core';\nimport { Dictionary, isEqual } from 'lodash';\nimport { BehaviorSubject, combineLatest, noop, Observable, zip } from 'rxjs';\nimport { filter, map, shareReplay, skip, switchMap, take, tap } from 'rxjs/operators';\nimport { ContextService } from './context.service';\n\n@Injectable({ providedIn: 'root' })\nexport class QuoteDraftService {\n private quoteSubj$ = new BehaviorSubject<QuoteDraft | null>(null);\n private resetSubj$ = new BehaviorSubject<boolean>(true);\n private isInitializedSubj$ = new BehaviorSubject<boolean>(false);\n private initialCurrentState: LineItem[] = [];\n private _hasUnsavedChanges = false;\n\n public get isInitialized(): boolean {\n return this.isInitializedSubj$.getValue();\n }\n public set isInitialized(value: boolean) {\n if (this.isInitialized !== value) {\n this.isInitializedSubj$.next(value);\n }\n }\n\n public get hasUnsavedChanges(): boolean {\n return this._hasUnsavedChanges;\n }\n public set hasUnsavedChanges(value: boolean) {\n this._hasUnsavedChanges = value;\n\n if (!this._hasUnsavedChanges) {\n this.initialCurrentState = this.quoteDraft?.currentState ?? [];\n }\n }\n\n public get hasProducts$(): Observable<boolean> {\n return this.quoteSubj$.pipe(map(() => this.hasProducts));\n }\n public get hasProducts(): boolean {\n const quoteDraft = this.quoteSubj$.value;\n return Boolean(quoteDraft && quoteDraft.currentState.length > 0);\n }\n\n public allPriceLists: PriceList[] = [];\n public assetPriceLists: PriceList[] = [];\n public reset$ = this.resetSubj$.asObservable();\n public activePriceList$: Observable<PriceList | null>;\n\n constructor(\n private context: ContextService,\n private quoteApiService: QuoteApiService,\n private priceApiService: PriceApiService,\n ) {\n this.activePriceList$ = this.context.resolve$().pipe(\n map(ctx => this.allPriceLists.find(priceList => priceList.id === ctx.properties.PriceListId)),\n map(priceList => priceList ?? null),\n );\n\n this.isInitializedSubj$\n .pipe(\n filter(isInitialized => isInitialized),\n switchMap(() => this.quoteSubj$.asObservable()),\n skip(1),\n tap(quote => this.markAsUpdated(quote)),\n )\n .subscribe();\n }\n\n public reset(): void {\n this.resetSubj$.next(true);\n this.quoteSubj$.next(null);\n this.hasUnsavedChanges = false;\n }\n\n public init(quoteId: string, params: Dictionary<string>): Observable<void> {\n return zip(this.quoteApiService.getQuoteDraft(quoteId, params), this.priceApiService.getPriceLists()).pipe(\n tap(([quote, allPriceLists]) => {\n this.allPriceLists = allPriceLists;\n this.quoteSubj$.next(quote);\n\n this.context.update(quote.context);\n\n this.populateActivePriceLists$();\n }),\n map(() => noop()),\n take(1),\n );\n }\n\n public setCurrentLineItemState(lineItems: LineItem[]): void {\n const quoteDraft = this.quoteSubj$.value;\n\n if (!quoteDraft) {\n return;\n }\n\n this.quoteSubj$.next({\n ...quoteDraft,\n currentState: lineItems,\n });\n }\n\n public updateQuoteDraft(update: Partial<QuoteDraft>): void {\n const quoteDraft = this.quoteSubj$.value;\n\n if (!quoteDraft) {\n return;\n }\n\n if (update.context) {\n this.context.set(update.context);\n }\n\n this.quoteSubj$.next({\n ...quoteDraft,\n ...update,\n });\n }\n\n public updateByPriceSummary(priceSummary: PriceSummary): void {\n const quoteDraft = this.quoteSubj$.value;\n\n if (!quoteDraft) {\n return;\n }\n\n const updatedCurrentState = this.currentState.map(lineItem => {\n const updated = priceSummary.lineItems.find(li => li.id === lineItem.id);\n return updated ?? lineItem;\n });\n\n this.quoteSubj$.next({\n ...quoteDraft,\n currentState: updatedCurrentState,\n totalPrices: priceSummary.totalPrices,\n approvalItems: priceSummary.approvalItems,\n });\n }\n\n public get quoteDraft$(): Observable<QuoteDraft> {\n return combineLatest([this.quoteSubj$, this.context.resolve$()]).pipe(\n map(() => this.quoteDraft),\n filter((quote): quote is QuoteDraft => Boolean(quote)),\n shareReplay(),\n );\n }\n\n public get quoteDraft(): QuoteDraft | null {\n const quote = this.quoteSubj$.value;\n\n if (!quote) {\n return null;\n }\n\n return {\n ...quote,\n context: this.context.resolve(),\n };\n }\n\n public get quoteDraftForActivePriceList(): QuoteDraft | null {\n const quoteDraft = this.quoteDraft;\n\n if (!quoteDraft) {\n return null;\n }\n\n return {\n ...quoteDraft,\n initialState: this.filterByActivePriceList(quoteDraft.initialState),\n currentState: this.filterByActivePriceList(quoteDraft.currentState),\n };\n }\n\n public get currentState$(): Observable<LineItem[]> {\n return this.quoteDraft$.pipe(map(quote => quote.currentState));\n }\n\n public get currentState(): LineItem[] {\n return this.quoteDraft?.currentState ?? [];\n }\n\n /**\n * Stream of activeCurrentState\n */\n public get activeCurrentState$(): Observable<LineItem[]> {\n return this.quoteDraft$.pipe(map(() => this.activeCurrentState));\n }\n\n /**\n * activeCurrentState is currentState passed through additional filters\n */\n public get activeCurrentState(): LineItem[] {\n let currentState = this.quoteDraft?.currentState ?? [];\n\n currentState = this.filterByActivePriceList(currentState);\n\n return currentState;\n }\n\n /**\n * Stream of activeInitialState\n */\n public get activeInitialState$(): Observable<LineItem[]> {\n return this.quoteDraft$.pipe(map(() => this.activeInitialState));\n }\n\n /**\n * activeInitialState is initialState passed through additional filters\n */\n public get activeInitialState(): LineItem[] {\n const ctx = this.context.resolve();\n let initialState = this.quoteDraft?.initialState ?? [];\n\n if (ctx.mode === ConfigurationContextMode.ACCOUNT) {\n initialState = this.filterByActivePriceList(initialState);\n }\n\n return initialState;\n }\n\n public get isStandalone(): boolean {\n return this.context.resolve().properties.standalone === 'true';\n }\n\n public get isStandalone$(): Observable<boolean> {\n return this.context.resolve$().pipe(map(() => this.isStandalone));\n }\n\n public getInitialCurrentState(): LineItem[] {\n return this.initialCurrentState;\n }\n\n public isEditMode$(): Observable<boolean> {\n return this.context.resolve$().pipe(map(() => this.isEditMode()));\n }\n\n public isEditMode(): boolean {\n const context = this.context.resolve();\n\n if (context.mode === ConfigurationContextMode.ACCOUNT) {\n return true;\n }\n\n if (context.mode === ConfigurationContextMode.QUOTE) {\n return context.properties.Status === 'Draft';\n }\n\n return false;\n }\n\n public updateActivePriceList(priceListId: string): void {\n this.context.update({ properties: { PriceListId: priceListId } });\n }\n\n private populateActivePriceLists$(): void {\n const ctx = this.context.resolve();\n const quoteDraft = this.quoteDraft;\n\n if (!quoteDraft) {\n return;\n }\n\n // In ACCOUNT mode populate price lists from related assets\n if (ctx.mode === ConfigurationContextMode.ACCOUNT) {\n // Populate list of price lists\n this.assetPriceLists = quoteDraft.currentState\n .map(({ priceListId }) => priceListId)\n .reduce<PriceList[]>((trunk, priceListId) => {\n if (!priceListId || trunk.some(item => item.id === priceListId)) {\n return trunk;\n }\n\n return [\n ...trunk,\n { id: priceListId, name: this.allPriceLists.find(item => item.id === priceListId)?.name ?? '' },\n ];\n }, []);\n }\n }\n\n private filterByActivePriceList(lineItems: LineItem[]): LineItem[] {\n const ctx = this.context.resolve();\n\n return lineItems.filter(li => !li.priceListId || li.priceListId === ctx.properties.PriceListId);\n }\n\n private markAsUpdated(quote: QuoteDraft | null): void {\n if (quote?.context.properties.mode === ConfigurationContextMode.ACCOUNT) {\n this.hasUnsavedChanges = !!quote && !quote.currentState.every(li => li.actionCode === 'EXIST');\n } else {\n this.hasUnsavedChanges = !isEqual(this.initialCurrentState, quote?.currentState);\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ConfigurationApiService } from '@veloceapps/api';\nimport { ConfirmationComponent, ConfirmationConfig, ToastType } from '@veloceapps/components';\nimport {\n Charge,\n CompiledPricePlan,\n ConfigurationContext,\n ConfigurationMode,\n ConfigurationRequest,\n ConfigurationTranslatorUtils,\n LineItem,\n RuntimeModel,\n VlWindow,\n} from '@veloceapps/core';\nimport { Dictionary } from 'lodash';\nimport { MessageService } from 'primeng/api';\nimport { DialogService } from 'primeng/dynamicdialog';\nimport { BehaviorSubject, Observable, shareReplay, throwError } from 'rxjs';\nimport { catchError, finalize, first, map, switchMap, tap } from 'rxjs/operators';\nimport { ContextService } from '../../../services/context.service';\nimport { QuoteDraftService } from '../../../services/quote-draft.service';\nimport { RuntimeContext, RuntimeStep } from '../../../types';\nimport { LineItemWorker } from '../../../utils/line-item.worker';\nimport { getDefaultLineItem } from '../helpers';\nimport { ConfigurationRuntimeService } from './configuration-runtime.service';\n\ndeclare const window: VlWindow;\n\n@Injectable()\nexport class ConfigurationService {\n private mode = ConfigurationMode.SEARCH;\n private configurableRamp: LineItem | undefined;\n\n private lineItem = new BehaviorSubject<LineItem | undefined>(undefined);\n private charges = new BehaviorSubject<Dictionary<Charge>>({});\n private pricePlans = new BehaviorSubject<Dictionary<CompiledPricePlan>>({});\n\n public hasUnsavedChanges = false;\n\n constructor(\n private quoteDraftService: QuoteDraftService,\n private runtimeService: ConfigurationRuntimeService,\n private contextService: ContextService,\n private configurationApiService: ConfigurationApiService,\n private messageService: MessageService,\n private dialogService: DialogService,\n ) {}\n\n public reset(): void {\n this.hasUnsavedChanges = false;\n this.runtimeService.reset();\n\n this.configurableRamp = undefined;\n this.lineItem.next(undefined);\n this.charges.next({});\n this.pricePlans.next({});\n }\n\n public patch$(lineItem: LineItem): Observable<LineItem> {\n if (!this.lineItem.value) {\n return throwError(() => new Error(`Source LineItem not found`));\n }\n\n this.configurableRamp = new LineItemWorker(this.lineItem.value).replace(lineItem).li;\n\n return this.configure().pipe(\n catchError(error => {\n console.error(error);\n\n if (!this.runtimeService.uiDefinitionProperties.suppressToastMessages) {\n this.messageService.add({ severity: 'error', summary: error });\n }\n\n // bounce back if configuration call has failed\n this.lineItem.next(this.lineItem.value ? { ...this.lineItem.value } : undefined);\n\n return throwError(() => error);\n }),\n tap(() => {\n if (!this.hasUnsavedChanges) {\n this.hasUnsavedChanges = true;\n }\n }),\n );\n }\n\n public patch(lineItem: LineItem): void {\n this.patch$(lineItem).subscribe();\n }\n\n public setConfigurableRamp(lineItem: LineItem): void {\n this.configurableRamp = lineItem;\n }\n\n public get(): Observable<LineItem | undefined> {\n return this.lineItem.asObservable().pipe(shareReplay());\n }\n\n public getSnapshot(): LineItem | undefined {\n return this.lineItem.value ? { ...this.lineItem.value } : undefined;\n }\n\n public getRuntimeModel(): RuntimeModel | undefined {\n return this.runtimeService.runtimeModel;\n }\n\n public getRuntimeContext(): RuntimeContext | undefined {\n return this.runtimeService.runtimeContext;\n }\n\n public get contextSnapshot(): ConfigurationContext {\n return this.contextService.resolve();\n }\n\n public get context$(): Observable<ConfigurationContext> {\n return this.contextService.resolve$();\n }\n\n public get charges$(): Observable<Dictionary<Charge>> {\n return this.charges.asObservable();\n }\n\n public get chargesSnapshot(): Dictionary<Charge> {\n return this.charges.value;\n }\n\n public get pricePlans$(): Observable<Dictionary<CompiledPricePlan>> {\n return this.pricePlans.asObservable();\n }\n\n public get pricePlansSnapshot(): Dictionary<CompiledPricePlan> {\n return this.pricePlans.value;\n }\n\n public configure(): Observable<LineItem> {\n const runtimeContext = this.getRuntimeContext();\n const runtimeModel = this.getRuntimeModel();\n if (!runtimeContext || !runtimeModel) {\n return throwError(() => new Error('Runtime context/model not initialized'));\n }\n\n const uiDefinitionProperties = {\n ...(runtimeContext.uiDefinition?.properties ?? {}),\n ...(this.runtimeService.uiDefinitionProperties ?? {}),\n };\n const qty = this.runtimeService.initializationProps?.defaultQty;\n const lineItem = this.configurableRamp ?? getDefaultLineItem(runtimeContext, uiDefinitionProperties, qty);\n const configurationRequest = this.createRequest(lineItem);\n\n const mainPricingEnabled = runtimeContext.properties?.PricingEnabled;\n const pricingEnabled = mainPricingEnabled ? mainPricingEnabled === 'true' : uiDefinitionProperties.pricingEnabled;\n\n return this.configurationApiService\n .configureLineItem({ configurationRequest, runtimeModel, pricingEnabled })\n .pipe(\n map(({ lineItem, context, charges, pricePlans, deletedLineItems }) => {\n this.contextService.update(context ?? {});\n this.charges.next(charges ?? {});\n this.pricePlans.next(pricePlans ?? {});\n if (deletedLineItems?.length) {\n this.showInactiveProductsConfirmation();\n }\n return lineItem;\n }),\n )\n .pipe(\n tap(lineItem => lineItem && this.lineItem.next(lineItem)),\n catchError(error =>\n throwError(() => new Error(error.error?.message || error.message || JSON.stringify(error))),\n ),\n );\n }\n\n public configureExternal$(productId: string, qty?: number): Observable<LineItem> {\n return this.runtimeService.init({ productId, defaultQty: qty }).pipe(\n switchMap(() => this.configure()),\n first(),\n catchError(error => {\n this.messageService.add({ severity: ToastType.error, summary: error });\n throw error;\n }),\n finalize(() => this.reset()),\n );\n }\n\n private createRequest(lineItem: LineItem): ConfigurationRequest {\n let request: ConfigurationRequest = {\n lineItem,\n mode: this.mode,\n step: !this.lineItem.value ? RuntimeStep.START : RuntimeStep.UPDATE,\n attributeDomainMode: 'ALL',\n context: this.contextService.resolve(),\n lineItems: this.quoteDraftService.quoteDraft?.currentState || [],\n asset: this.getAsset(),\n };\n\n request = ConfigurationTranslatorUtils.lightenConfigurationRequest(request);\n\n return request;\n }\n\n private showInactiveProductsConfirmation(): void {\n const confirmationConfig: ConfirmationConfig = {\n title: ' ',\n description: 'This quote contains inactive products. Do you want to remove them?',\n primaryButtonLabel: 'Remove products',\n secondaryButtonLabel: 'Back to Quote',\n };\n\n this.dialogService\n .open(ConfirmationComponent, {\n dismissableMask: false,\n closeOnEscape: false,\n closable: false,\n showHeader: true,\n header: `Inactive Products in Quote`,\n width: '440px',\n data: { confirmationConfig },\n })\n .onClose.subscribe(result => {\n if (!result) {\n const context = this.contextService.resolve();\n window['VELO_BACK_FN'].apply(null, [context.headerId]);\n }\n });\n }\n\n private getAsset(): LineItem | undefined {\n const lineItem = this.configurableRamp;\n if (!lineItem) {\n return;\n }\n\n return this.quoteDraftService.quoteDraft?.initialState.find(\n a => a.id === lineItem.openOrderLineItemId || a.id === lineItem.assetId,\n );\n }\n}\n","import { omit } from 'lodash';\nimport { UIDefinition, UIDefinitionMetadata } from '../types';\n\nexport function extractMetadata(uiDefinition: UIDefinition): UIDefinitionMetadata {\n return omit<UIDefinition, keyof Omit<UIDefinition, keyof UIDefinitionMetadata>>(uiDefinition, [\n 'children',\n 'pages',\n 'components',\n ]);\n}\n","import { Injectable } from '@angular/core';\nimport { Charge, ChargeGroupUtils, LineItem } from '@veloceapps/core';\nimport { Dictionary, flatten } from 'lodash';\nimport moment from 'moment';\nimport { LineItemWorker } from '../../../utils';\nimport { FlowUpdateParams } from '../types/update.types';\n\n@Injectable()\nexport class FlowUpdateService {\n public update(rootLineItems: LineItem[], updates: FlowUpdateParams[], charges?: Dictionary<Charge>): void {\n let remainingUpdates = [...updates];\n let currentLevel = rootLineItems;\n\n while (currentLevel.length && remainingUpdates.length) {\n currentLevel.forEach(li => {\n const unhandledUpdates: FlowUpdateParams[] = [];\n\n remainingUpdates.forEach(update => {\n let updated = false;\n\n switch (update.dataType) {\n case 'LINEITEM':\n updated = this.applyLineItemUpdate(li, update, charges);\n break;\n case 'CHARGE':\n updated = this.applyChargeUpdate(li, update);\n break;\n case 'GROUP_CHARGE':\n updated = this.applyChargeGroupUpdate(li, update);\n break;\n default:\n // Unknown dataType. Do not try to handle it anymore\n updated = true;\n }\n\n if (!updated) {\n unhandledUpdates.push(update);\n }\n });\n\n remainingUpdates = unhandledUpdates;\n });\n\n currentLevel = flatten(currentLevel.map(parent => parent.lineItems));\n }\n }\n\n public delete(lineItems: LineItem[], id: string): LineItem[] {\n const idsToRemove: string[] = [id];\n const topLevelLineItem = lineItems.find(li => li.id === id);\n\n if (topLevelLineItem) {\n // find term-related line items (which are only top level)\n // expired term line items won't be deleted\n let foundTermLineItem: LineItem | undefined = topLevelLineItem;\n\n while (foundTermLineItem) {\n foundTermLineItem = lineItems.find(li => foundTermLineItem && li.rampInstanceId === foundTermLineItem.id);\n if (foundTermLineItem) {\n idsToRemove.push(foundTermLineItem.id);\n }\n }\n }\n\n const filtered = lineItems.filter(lineItem => !idsToRemove.includes(lineItem.id));\n return filtered.map(lineItem => new LineItemWorker(lineItem).remove(id).li);\n }\n\n private applyLineItemUpdate(lineItem: LineItem, update: FlowUpdateParams, charges?: Dictionary<Charge>): boolean {\n if (lineItem.id !== update.id) {\n return false;\n }\n\n switch (update.attributeType) {\n case 'QTY':\n lineItem.qty = update.newValue;\n break;\n case 'EFFECTIVE_START_DATE':\n lineItem.properties.StartDate = moment(update.newValue).format('YYYY-MM-DD');\n break;\n case 'END_DATE':\n lineItem.properties.EndDate = moment(update.newValue).format('YYYY-MM-DD');\n break;\n case 'PRICE_ADJUSTMENT':\n {\n const charge = lineItem.chargeItems.find(charge => (charges || {})[charge.chargeId]?.main);\n if (charge) {\n charge.priceAdjustment = update.newValue;\n }\n }\n break;\n case 'LIST_PRICE_ADJUSTMENT':\n {\n const charge = lineItem.chargeItems.find(charge => (charges || {})[charge.chargeId]?.main);\n if (charge) {\n charge.listPriceAdjustment = update.newValue;\n }\n }\n break;\n default:\n throw new Error(`Not suppored AttributeType for LineItem update: ${update.attributeType}`);\n }\n\n return true;\n }\n\n private applyChargeUpdate(lineItem: LineItem, update: FlowUpdateParams): boolean {\n const foundCharge = lineItem.chargeItems.find(({ id }) => id === update.id);\n if (!foundCharge) {\n return false;\n }\n\n if (update.attributeType === 'PRICE_ADJUSTMENT') {\n foundCharge.priceAdjustment = update.newValue;\n } else if (update.attributeType === 'LIST_PRICE_ADJUSTMENT') {\n foundCharge.listPriceAdjustment = update.newValue;\n } else {\n throw new Error(`Not suppored AttributeType for Charge Item update: ${update.attributeType}`);\n }\n\n return true;\n }\n\n private applyChargeGroupUpdate(lineItem: LineItem, update: FlowUpdateParams): boolean {\n const foundChargeGroup = ChargeGroupUtils.findChargeGroupById(update.id, lineItem);\n if (!foundChargeGroup) {\n return false;\n }\n\n if (update.attributeType === 'PRICE_ADJUSTMENT') {\n foundChargeGroup.priceAdjustment = update.newValue;\n } else if (update.attributeType === 'LIST_PRICE_ADJUSTMENT') {\n foundChargeGroup.listPriceAdjustment = update.newValue;\n } else {\n throw new Error(`Not suppored AttributeType for Charge Group Item update: ${update.attributeType}`);\n }\n\n return true;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ProceduresApiService } from '@veloceapps/api';\nimport { Charge, CompiledPricePlan, ConfigurationContext, LineItem, MetricRule, QuoteDraft } from '@veloceapps/core';\nimport { cloneDeep, Dictionary } from 'lodash';\nimport { catchError, map, noop, Observable, of, shareReplay, switchMap, tap, throwError } from 'rxjs';\nimport { ContextService } from '../../../services/context.service';\nimport { QuoteDraftService } from '../../../services/quote-draft.service';\nimport { multiplyLineItems } from '../../../utils/line-item.utils';\nimport { ConfigurationService } from '../../configuration/services/configuration.service';\nimport { FlowUpdateParams } from '../types/update.types';\nimport { FlowUpdateService } from './flow-update.service';\n\n@Injectable()\nexport class FlowConfigurationService {\n constructor(\n private proceduresApiService: ProceduresApiService,\n private contextService: ContextService,\n private quoteDraftService: QuoteDraftService,\n private updateService: FlowUpdateService,\n private configurationService: ConfigurationService,\n ) {}\n\n public calculate$(quoteDraft: QuoteDraft): Observable<void> {\n return this.proceduresApiService.apply$(quoteDraft).pipe(\n tap(result => {\n // sort the result current state based on the quote draft initial state\n const initialStateIds = quoteDraft.initialState.map(lineItem => lineItem.integrationId);\n result.currentState = result.currentState\n .slice()\n .sort((a, b) => initialStateIds.indexOf(a.integrationId) - initialStateIds.indexOf(b.integrationId));\n this.quoteDraftService.updateQuoteDraft(result);\n }),\n map(noop),\n );\n }\n\n public calculate(quoteDraft: QuoteDraft): void {\n this.calculate$(quoteDraft).subscribe();\n }\n\n public update$(updates: FlowUpdateParams[]): Observable<QuoteDraft | null> {\n const quoteDraft = this.quoteDraftService.quoteDraft;\n\n if (!quoteDraft) {\n return of(null);\n }\n\n return of([]).pipe(\n map(() => {\n const updatedState = cloneDeep(quoteDraft.currentState);\n this.updateService.update(updatedState, updates, quoteDraft.charges);\n return updatedState;\n }),\n switchMap(updatedState => this.calculate$({ ...quoteDraft, currentState: updatedState })),\n map(() => this.quoteDraftService.quoteDraft),\n this.handleErrorAndBounceBack(),\n );\n }\n\n public update(updates: FlowUpdateParams[]): void {\n this.update$(updates).subscribe();\n }\n\n public revert$(lineItemId: string): Observable<QuoteDraft | null> {\n const quoteDraft = this.quoteDraftService.quoteDraft;\n const initialCurrentState = this.quoteDraftService.getInitialCurrentState();\n const currentState = this.quoteDraftService.activeCurrentState;\n\n const currentLineItemIndex = currentState.findIndex(({ id }) => id === lineItemId);\n const currentLineItem = currentState[currentLineItemIndex];\n\n const initialLineItem = initialCurrentState.find(\n ({ integrationId }) => integrationId === currentLineItem?.integrationId,\n );\n\n if (!quoteDraft || !currentLineItem || !initialLineItem) {\n return of(null);\n }\n\n const updatedState = cloneDeep(currentState);\n updatedState.splice(currentLineItemIndex, 1, initialLineItem);\n\n return of([]).pipe(\n tap(() => {\n this.quoteDraftService.setCurrentLineItemState(updatedState);\n }),\n switchMap(() => this.calculate$({ ...quoteDraft, currentState: updatedState })),\n map(() => this.quoteDraftService.quoteDraft),\n this.handleErrorAndBounceBack(),\n );\n }\n\n public revert(lineItemId: string): void {\n this.revert$(lineItemId).subscribe();\n }\n\n public delete$(ids: string[]): Observable<QuoteDraft | null> {\n const quoteDraft = this.quoteDraftService.quoteDraft;\n const currentState = this.quoteDraftService.currentState;\n\n if (!quoteDraft) {\n return of(null);\n }\n\n return of([]).pipe(\n map(() => ids.reduce((result, id) => this.updateService.delete(result, id), currentState)),\n switchMap(updatedState => this.calculate$({ ...quoteDraft, currentState: updatedState })),\n map(() => this.quoteDraftService.quoteDraft),\n this.handleErrorAndBounceBack(),\n );\n }\n\n public delete(ids: string[]): void {\n this.delete$(ids).subscribe();\n }\n\n public addTerm$(term: LineItem): Observable<QuoteDraft | null> {\n const quoteDraft = this.quoteDraftService.quoteDraft;\n\n if (!quoteDraft) {\n return of(null);\n }\n\n const updatedState = [...quoteDraft.currentState, term];\n\n return of([]).pipe(\n switchMap(() => this.calculate$({ ...quoteDraft, currentState: updatedState })),\n map(() => this.quoteDraftService.quoteDraft),\n this.handleErrorAndBounceBack(),\n );\n }\n\n public addToCart$(productId: string, qty?: number): Observable<QuoteDraft | null> {\n const quoteDraft = this.quoteDraftService.quoteDraft;\n\n if (!quoteDraft) {\n return of(null);\n }\n\n return this.configurationService.configureExternal$(productId, qty).pipe(\n map(lineItem => {\n const model = this.configurationService.getRuntimeModel();\n const split = model?.types.find(type => type.name === lineItem.type)?.split ?? false;\n const lineItems = multiplyLineItems(lineItem, qty ?? 1, split);\n\n return [...quoteDraft.currentState, ...lineItems];\n }),\n switchMap(updatedState => this.calculate$({ ...quoteDraft, currentState: updatedState })),\n map(() => this.quoteDraftService.quoteDraft),\n this.handleErrorAndBounceBack(),\n );\n }\n\n public get(): Observable<LineItem[]> {\n return this.quoteDraftService.quoteDraft$.pipe(\n map(() => this.quoteDraftService.activeCurrentState),\n shareReplay(),\n );\n }\n\n public getSnapshot(): LineItem[] {\n return this.quoteDraftService?.currentState.slice() ?? [];\n }\n\n public get charges$(): Observable<Dictionary<Charge>> {\n return this.quoteDraftService.quoteDraft$.pipe(map(({ charges }) => charges));\n }\n\n public get pricePlans$(): Observable<Dictionary<CompiledPricePlan>> {\n return this.quoteDraftService.quoteDraft$.pipe(map(({ pricePlans }) => pricePlans));\n }\n\n public get activeMetrics$(): Observable<MetricRule[]> {\n return this.quoteDraftService.quoteDraft$.pipe(map(({ activeMetrics }) => activeMetrics));\n }\n\n public get chargesSnapshot(): Dictionary<Charge> {\n return this.quoteDraftService.quoteDraft?.charges ?? {};\n }\n\n public get pricePlansSnapshot(): Dictionary<CompiledPricePlan> {\n return this.quoteDraftService.quoteDraft?.pricePlans ?? {};\n }\n\n public get activeMetricsSnapshot(): MetricRule[] {\n return this.quoteDraftService.quoteDraft?.activeMetrics ?? [];\n }\n\n public get contextSnapshot(): ConfigurationContext {\n return this.contextService.resolve();\n }\n\n public get context$(): Observable<ConfigurationContext> {\n return this.contextService.resolve$();\n }\n\n private handleErrorAndBounceBack() {\n return <T>(source$: Observable<T>): Observable<T> => {\n return source$.pipe(\n catchError(error => {\n console.error(error);\n\n // bounce back if configuration call has failed\n const quoteDraft = this.quoteDraftService.quoteDraft;\n if (quoteDraft) {\n this.quoteDraftService.updateQuoteDraft(quoteDraft);\n }\n\n return throwError(() => error);\n }),\n );\n };\n }\n}\n","import { NgModule } from '@angular/core';\nimport { PriceApiService } from '@veloceapps/api';\nimport { FlowConfigurationService } from './services/flow-configuration.service';\nimport { FlowUpdateService } from './services/flow-update.service';\n\n@NgModule({\n imports: [],\n providers: [FlowConfigurationService, FlowUpdateService, PriceApiService],\n})\nexport class FlowConfigurationModule {}\n","import { NgModule } from '@angular/core';\nimport { ConfirmationDialogModule } from '@veloceapps/components';\nimport { ConfigurationApiService, ContextApiService, ProductModelApiService } from '@veloceapps/api';\nimport { ConfigurationRuntimeService } from './services/configuration-runtime.service';\nimport { ConfigurationService } from './services/configuration.service';\nimport { RuntimeContextService } from './services/runtime-context.service';\n\n@NgModule({\n imports: [ConfirmationDialogModule],\n providers: [\n ContextApiService,\n ProductModelApiService,\n ConfigurationApiService,\n ConfigurationRuntimeService,\n RuntimeContextService,\n ConfigurationService,\n ],\n})\nexport class ConfigurationModule {}\n","import { LineItem } from '@veloceapps/core';\nimport { MetricCalculationMethod } from './metric-calculation.types';\n\nexport function calculateMetricByMethod(\n lineItems: LineItem[],\n metric: string,\n method: MetricCalculationMethod,\n): number {\n const items = getLineItemsByMethod(lineItems, method);\n\n return items.reduce((acc: number, li: LineItem[]) => {\n let value = li.reduce(\n (accProduct: number, item: LineItem) => accProduct + ((item.totalMetrics && item.totalMetrics[metric]) || 0),\n 0,\n );\n\n if (method === 'avg' && li.length > 0) {\n value /= li.length;\n }\n\n return acc + value;\n }, 0);\n}\n\nexport function getLineItemsByMethod(lineItems: LineItem[], method: MetricCalculationMethod): LineItem[][] {\n switch (method) {\n case 'first': {\n return lineItems.filter(li => !li.rampInstanceId).map(item => [item]);\n }\n case 'last': {\n const rootTermItems = lineItems.filter(li => !li.rampInstanceId);\n const products = rootTermItems.map(lineItem => [\n lineItem,\n ...lineItems.filter(li => li.rampInstanceId === lineItem.id),\n ]);\n\n return products\n .map(items => [...items].sort((a, b) => getDateValue(a.endDate || '') - getDateValue(b.endDate || '')).pop())\n .filter((li): li is LineItem => Boolean(li))\n .map(item => [item]);\n }\n case 'avg': {\n const rootTermItems = lineItems.filter(li => !li.rampInstanceId);\n return rootTermItems.map(lineItem => [lineItem, ...lineItems.filter(li => li.rampInstanceId === lineItem.id)]);\n }\n case 'sum': {\n return lineItems.map(item => [item]);\n }\n default: {\n return lineItems.map(item => [item]);\n }\n }\n}\n\nexport function getDateValue(date: string): number {\n return date ? new Date(date).getTime() : 0;\n}\n","import { Injectable } from '@angular/core';\nimport { ConfigurationSettingsApiService } from '@veloceapps/api';\nimport { LineItem, MetricRule } from '@veloceapps/core';\nimport { Dictionary, uniq } from 'lodash';\nimport { combineLatest, Observable, Subject, take } from 'rxjs';\nimport { FlowConfigurationService } from '../../modules/flow-configuration/services/flow-configuration.service';\nimport { QuoteDraftService } from '../quote-draft.service';\nimport { MetricCalculationMethod } from './metric-calculation.types';\nimport { calculateMetricByMethod } from './metric-calculation.utils';\n\n@Injectable({ providedIn: 'root' })\nexport class MetricsCalculationService {\n public get onMetricsUpdate$(): Observable<void> {\n return this.metricsUpdated$.asObservable();\n }\n\n private metricsUpdated$ = new Subject<void>();\n private quoteMetricsSettings: Dictionary<MetricCalculationMethod> = {};\n private metricsCalculationMethodMap: Dictionary<MetricCalculationMethod> = {};\n private metricsData: Dictionary<number> = {};\n private activeMetricRules: MetricRule[] = [];\n\n constructor(\n private quoteDraftService: QuoteDraftService,\n private flowConfiguration: FlowConfigurationService,\n private settingsService: ConfigurationSettingsApiService,\n ) {\n this.activeMetricRules = this.flowConfiguration.activeMetricsSnapshot.filter(metricRule =>\n metricRule.metrics.some(metric => !!metric.totalName),\n );\n\n combineLatest([\n this.quoteDraftService.currentState$,\n this.settingsService.fetchSetting('QUOTE_LEVEL_METRIC_CALCULATION_METHOD').pipe(take(1)),\n ]).subscribe(([lineItems, setting]) => {\n let settingsData: Dictionary<MetricCalculationMethod> = {};\n try {\n settingsData = JSON.parse(setting?.value || '{}');\n } catch (error) {\n settingsData = {};\n }\n\n this.quoteMetricsSettings = settingsData;\n\n this.updateMetrics(lineItems);\n });\n }\n\n public getMetricValue(metric: string): number {\n return this.metricsData[metric] || 0;\n }\n\n private updateMetrics(lineItems: LineItem[]): void {\n const metricKeys = this.collectMetricKeys(lineItems).filter(key => !key.includes('Effective_'));\n this.metricsCalculationMethodMap = this.buildMetricsCalculationMethods(\n metricKeys,\n this.metricsCalculationMethodMap,\n );\n\n this.metricsData = metricKeys.reduce(\n (acc: Dictionary<number>, key: string) => ({ ...acc, [key]: this.calculateMetric(lineItems, key) }),\n {},\n );\n\n this.metricsUpdated$.next();\n }\n\n private calculateMetric(lineItems: LineItem[], metric: string): number {\n return calculateMetricByMethod(lineItems, metric, this.metricsCalculationMethodMap[metric] || 'sum');\n }\n\n private buildMetricsCalculationMethods(\n metricKeys: string[],\n initial: Dictionary<MetricCalculationMethod>,\n ): Dictionary<MetricCalculationMethod> {\n return metricKeys.reduce((acc: Dictionary<MetricCalculationMethod>, name: string) => {\n if (acc[name]) {\n return acc;\n }\n\n acc = { ...acc, [name]: 'sum' };\n\n const metricRule = this.getMetricRuleByTotalMetricName(name);\n const settingKey = metricRule?.metrics?.find(metric => metric.totalName === name)?.name || name;\n\n if (this.quoteMetricsSettings[settingKey]) {\n acc = { ...acc, [name]: this.quoteMetricsSettings[settingKey] };\n }\n\n return acc;\n }, initial);\n }\n\n private collectMetricKeys(lineItems: LineItem[]): string[] {\n const keys: string[] = [];\n lineItems.forEach(lineItem => {\n keys.push(...Object.keys(lineItem.totalMetrics || {}));\n keys.push(...this.collectMetricKeys(lineItem.lineItems));\n });\n return uniq(keys);\n }\n\n private getMetricRuleByTotalMetricName(name: string): MetricRule | undefined {\n return this.activeMetricRules.find(metricRule => metricRule.metrics.find(metric => metric.totalName === name));\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ProductApiService } from '@veloceapps/api';\nimport { Dictionary } from 'lodash';\nimport { BehaviorSubject, catchError, distinctUntilChanged, map, Observable, of, tap } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class ProductImagesService {\n private imagesMap$ = new BehaviorSubject<Dictionary<string>>({});\n\n constructor(private productApiService: ProductApiService) {}\n\n public getImageUrl$(productId: string): Observable<string | null> {\n if (this.imagesMap$.value[productId] == null) {\n this.imagesMap$.next({ ...this.imagesMap$.value, [productId]: '' });\n this.fetchProductImage(productId);\n }\n\n return this.imagesMap$.pipe(\n map(imagesMap => imagesMap[productId]),\n distinctUntilChanged(),\n );\n }\n\n private fetchProductImage(productId: string): void {\n this.productApiService\n .fetchImage$(productId)\n .pipe(\n map(file => URL.createObjectURL(file)),\n catchError(() => of('')),\n tap(url => this.imagesMap$.next({ ...this.imagesMap$.value, [productId]: url })),\n )\n .subscribe();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { FlowConfigurationModule } from './modules';\nimport { ConfigurationModule } from './modules/configuration/configuration.module';\nimport { ContextService, MetricsCalculationService, ProductImagesService, QuoteDraftService } from './services';\n\n@NgModule({\n imports: [ConfigurationModule, FlowConfigurationModule],\n providers: [ContextService, QuoteDraftService, ProductImagesService, MetricsCalculationService],\n})\nexport class SdkCoreModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["UUID","RuntimeMode","RuntimeOperation","RuntimeStep","BehaviorSubject","filter","tap","merge","ConfigurationContext","map","i1","i0","Injectable","RuntimeModel","combineLatest","ConfigurationContextMode","first","SalesforceIdUtils","i2.ContextService","i3.RuntimeContextService","flatten","sortBy","switchMap","skip","zip","noop","take","shareReplay","isEqual","i1.ContextService","i2","ConfigurationMode","throwError","catchError","ToastType","finalize","ConfigurationTranslatorUtils","ConfirmationComponent","i1.QuoteDraftService","i2.ConfigurationRuntimeService","i3.ContextService","i4","i5","i6","omit","moment","ChargeGroupUtils","of","cloneDeep","i3.QuoteDraftService","i4.FlowUpdateService","i5.ConfigurationService","PriceApiService","NgModule","ConfirmationDialogModule","ContextApiService","ProductModelApiService","ConfigurationApiService","Subject","uniq","i2.FlowConfigurationService","i3","distinctUntilChanged"],"mappings":"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"}
1
+ {"version":3,"file":"veloceapps-sdk-core.umd.js","sources":["../../../../libs/sdk/core/modules/configuration/helpers.ts","../../../../node_modules/tslib/tslib.es6.js","../../../../libs/sdk/core/types/runtime.types.ts","../../../../libs/sdk/core/types/ui-definition.types.ts","../../../../libs/sdk/core/services/context.service.ts","../../../../libs/sdk/core/modules/configuration/services/runtime-context.service.ts","../../../../libs/sdk/core/modules/configuration/services/configuration-runtime.service.ts","../../../../libs/sdk/core/utils/line-item.utils.ts","../../../../libs/sdk/core/utils/line-item.worker.ts","../../../../libs/sdk/core/services/quote-draft.service.ts","../../../../libs/sdk/core/modules/configuration/services/configuration.service.ts","../../../../libs/sdk/core/utils/ui-definition.utils.ts","../../../../libs/sdk/core/modules/flow-configuration/services/flow-update.service.ts","../../../../libs/sdk/core/modules/flow-configuration/services/flow-configuration.service.ts","../../../../libs/sdk/core/modules/flow-configuration/flow-configuration.module.ts","../../../../libs/sdk/core/modules/configuration/configuration.module.ts","../../../../libs/sdk/core/services/metric-calculation/metric-calculation.utils.ts","../../../../libs/sdk/core/services/metric-calculation/metric-calculation.service.ts","../../../../libs/sdk/core/services/product-images.service.ts","../../../../libs/sdk/core/core.module.ts","../../../../libs/sdk/core/veloceapps-sdk-core.ts"],"sourcesContent":["import { LineItem, UUID } from '@veloceapps/core';\nimport { RuntimeContext, UIDefinitionProps } from '../../types';\n\nexport const getDefaultLineItem = (\n context: RuntimeContext,\n uiDefinitionProperties: UIDefinitionProps,\n qty = 1,\n): LineItem => {\n const id = UUID.UUID();\n\n const lineItem: LineItem = {\n id,\n type: uiDefinitionProperties.rootType ?? '',\n cfgStatus: 'Default',\n actionCode: 'ADD',\n qty,\n productName: context.properties?.displayName || context.productName,\n productId: context.productId ?? '',\n ...(context.offeringId\n ? { offeringId: context.offeringId, offeringInstanceId: context.offeringInstanceId || id }\n : {}),\n } as LineItem;\n\n return lineItem;\n};\n","/******************************************************************************\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 { ContextProperties, RuntimeModel } from '@veloceapps/core';\nimport { UIDefinition } from './ui-definition.types';\n\nexport enum RuntimeMode {\n TEST,\n PROD,\n}\n\nexport enum RuntimeOperation {\n INIT = 'INIT',\n UPDATE = 'UPDATE',\n}\n\nexport enum RuntimeStep {\n START = 'START',\n UPDATE = 'UPDATE',\n}\n\nexport interface InvocationContext {\n runtimeOperation?: RuntimeOperation;\n runtimeStep?: RuntimeStep;\n}\n\nexport interface RuntimeContext {\n modelId: string;\n runtimeMode: RuntimeMode;\n runtimeModel: RuntimeModel;\n uiDefinition?: UIDefinition;\n productId?: string;\n productName?: string;\n productType?: string;\n properties?: ContextProperties;\n offeringId?: string;\n offeringInstanceId?: string;\n invocationContext?: InvocationContext;\n}\n","export type UIDefinitionType = 'DEFAULT' | 'CONFIGURATION';\n\nexport const UI_DEFINITION_VERSION = 3;\n\nexport type UIExternalsType = Record<string, string | number | boolean>;\n\nexport interface UIDefinitionProps {\n // GENERAL\n suppressToastMessages?: boolean;\n\n // CONFIGURATION\n rootType?: string;\n pricingEnabled?: boolean;\n priceList?: string;\n productId?: string;\n}\n\nexport interface UIDefinitionMetadata {\n name: string;\n type: UIDefinitionType;\n properties?: UIDefinitionProps;\n primary: boolean;\n createdTimestamp: number;\n externals?: UIExternalsType;\n version: number;\n}\n\nexport interface UIDefinition extends UIDefinitionMetadata {\n /**\n * `children` is for simple previews only.\n * For applications use `pages` property instead\n */\n children?: UIElement[];\n\n /**\n * The page is an Element with `type: 'PAGE'`\n */\n pages?: UIElement[];\n\n /**\n * Shared components\n * These are not rendered on the screen, and only used by REFERENCE type elements\n */\n components?: UIElement[];\n}\n\nexport interface UIElement {\n children: UIElement[];\n template?: string;\n script?: string;\n styles?: string;\n}\n","import { Injectable } from '@angular/core';\nimport { ContextApiService } from '@veloceapps/api';\nimport { ConfigurationContext, ConfigurationContextMode } from '@veloceapps/core';\nimport { merge } from 'lodash';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { filter, map, tap } from 'rxjs/operators';\n\n@Injectable({ providedIn: 'root' })\nexport class ContextService {\n private context = new BehaviorSubject<ConfigurationContext | null>(null);\n\n constructor(private contextApiService: ContextApiService) {}\n\n public get isInitialized(): boolean {\n return Boolean(this.context.value);\n }\n\n public get mode(): ConfigurationContextMode | undefined {\n return this.resolve().properties.mode;\n }\n\n public resolve(): ConfigurationContext {\n if (!this.context.value) {\n throw new Error('Context is not initialized yet!');\n }\n\n return { ...this.context.value };\n }\n\n public resolve$(): Observable<ConfigurationContext> {\n return this.context.pipe(filter((ctx): ctx is ConfigurationContext => Boolean(ctx)));\n }\n\n public create(headerId: string, mode: ConfigurationContextMode): Observable<ConfigurationContext> {\n return this.contextApiService.getContext(headerId, mode).pipe(\n tap(context => this.context.next(merge(new ConfigurationContext(headerId, mode), context))),\n map(() => this.resolve() as ConfigurationContext),\n );\n }\n\n public update(partialContext: Partial<ConfigurationContext>): ConfigurationContext {\n const originalContext = this.resolve();\n\n const updatedContext: ConfigurationContext = {\n ...originalContext,\n ...(partialContext as ConfigurationContext),\n properties: {\n ...originalContext.properties,\n ...partialContext.properties,\n },\n };\n\n this.context.next(updatedContext);\n\n return updatedContext;\n }\n\n public set(context: ConfigurationContext): ConfigurationContext {\n const originalContext = this.resolve();\n\n const updatedContext: ConfigurationContext = {\n ...originalContext,\n ...context,\n };\n\n this.context.next(updatedContext);\n\n return updatedContext;\n }\n\n public delete(): void {\n this.context.next(null);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ConfigurationApiService } from '@veloceapps/api';\nimport { RuntimeData, RuntimeModel, UIDefinition as LegacyUiDefinition } from '@veloceapps/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { RuntimeContext, RuntimeMode, UIDefinition } from '../../../types';\n\n@Injectable()\nexport class RuntimeContextService {\n constructor(private configurationApiService: ConfigurationApiService) {}\n\n public getRuntimeContext(productId: string, offeringId?: string): Observable<RuntimeContext> {\n return this.configurationApiService.getRuntimeDataByProductId(productId, offeringId).pipe(\n map(runtimeData => {\n const uiDefinition = this.getUIDefinition(runtimeData);\n const runtimeModel = RuntimeModel.create(runtimeData.types, runtimeData.products);\n const { productName, properties } =\n Array.from(runtimeModel.components.values()).find(c => c.productId === productId) ?? {};\n\n return {\n modelId: runtimeData.modelId,\n uiDefinition: uiDefinition,\n runtimeModel: runtimeModel,\n runtimeMode: RuntimeMode.PROD,\n productId: productId,\n productType: properties?.displayName || productName,\n offeringId: offeringId,\n properties: {\n PricingEnabled: uiDefinition?.properties?.pricingEnabled ? 'true' : 'false',\n PriceListId: uiDefinition?.properties?.priceList,\n },\n };\n }),\n );\n }\n\n private getUIDefinition(runtimeData: RuntimeData): UIDefinition | undefined {\n let rawUiDefinitions: Array<UIDefinition | LegacyUiDefinition>;\n try {\n rawUiDefinitions = JSON.parse(runtimeData.uiDefinitionsSource);\n } catch (e) {\n return;\n }\n\n const uiDefinitions = rawUiDefinitions.filter(uiDef => (uiDef as UIDefinition).version) as UIDefinition[];\n const uiDefinition = uiDefinitions.find(uiDef => uiDef.primary) ?? uiDefinitions[0];\n\n return uiDefinition;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ConfigurationApiService } from '@veloceapps/api';\nimport { ConfigurationContextMode, RuntimeModel, SalesforceIdUtils } from '@veloceapps/core';\nimport { Dictionary } from 'lodash';\nimport { combineLatest, Observable } from 'rxjs';\nimport { first, tap } from 'rxjs/operators';\nimport { ContextService } from '../../../services/context.service';\nimport { RuntimeContext, RuntimeMode, UIDefinition, UIDefinitionProps } from '../../../types';\nimport { RuntimeInitializationProps } from '../types/configuration-runtime.types';\nimport { RuntimeContextService } from './runtime-context.service';\n\n@Injectable()\nexport class ConfigurationRuntimeService {\n private _runtimeContext?: RuntimeContext;\n private _isInitialized = false;\n\n public initializationProps?: RuntimeInitializationProps;\n public uiDefinitionProperties: UIDefinitionProps = {};\n\n constructor(\n private apiService: ConfigurationApiService,\n private contextService: ContextService,\n private runtimeContextService: RuntimeContextService,\n ) {}\n\n public reset(): void {\n this._isInitialized = false;\n this._runtimeContext = undefined;\n this.initializationProps = undefined;\n this.uiDefinitionProperties = {};\n }\n\n public initTestMode(modelId: string, uiDefinition: UIDefinition): any {\n this.uiDefinitionProperties = uiDefinition.properties ?? {};\n const uiDefinitionExternals = uiDefinition.externals ?? {};\n\n return combineLatest([\n this.apiService.getRuntimeDataByModelId(modelId),\n this.contextService.create('TestId', ConfigurationContextMode.TEST),\n ]).pipe(\n first(),\n tap(([runtimeData, context]) => {\n this._runtimeContext = {\n modelId: modelId,\n runtimeModel: RuntimeModel.create(runtimeData.types, runtimeData.products),\n runtimeMode: RuntimeMode.TEST,\n };\n\n this.contextService.update({\n properties: {\n ...this.runtimeContext?.properties,\n ...context.properties,\n ModelId: modelId,\n RuntimeMode: ConfigurationContextMode.TEST,\n PricingEnabled: this.uiDefinitionProperties.pricingEnabled ? 'true' : 'false',\n StartDate: new Date().toISOString().substring(0, 10),\n PriceListId: this.uiDefinitionProperties.priceList,\n standalone: 'true',\n ...uiDefinitionExternals,\n },\n });\n\n this._isInitialized = true;\n }),\n );\n }\n\n public init(props: RuntimeInitializationProps): Observable<RuntimeContext | undefined> {\n this.initializationProps = props;\n const context = this.contextService.resolve();\n\n return this.runtimeContextService.getRuntimeContext(props.productId, props.offeringId).pipe(\n tap(runtimeContext => {\n this.uiDefinitionProperties = runtimeContext.uiDefinition?.properties ?? {};\n const { PriceListId } = context.properties ?? {};\n\n const mergeContext: RuntimeContext = {\n ...runtimeContext,\n properties: {\n ...runtimeContext.properties,\n ...context.properties,\n PricingEnabled: PriceListId ? 'true' : 'false',\n },\n };\n\n this.id15to18('AccountId', mergeContext.properties);\n this._runtimeContext = mergeContext;\n\n if (context.properties && this._runtimeContext.properties?.StartDate) {\n this.contextService.update({\n properties: {\n ...this._runtimeContext.properties,\n ...context.properties,\n },\n });\n }\n\n this._isInitialized = true;\n }),\n );\n }\n\n private id15to18(propertyName: string, source?: Dictionary<any>): void {\n if (!source) {\n return;\n }\n\n const value = source[propertyName];\n\n if (typeof value === 'string' && value.length === 15) {\n source[propertyName] = SalesforceIdUtils.generateId18FromId15(value);\n }\n }\n\n public get isInitialized(): boolean {\n return this._isInitialized;\n }\n\n public get runtimeModel(): RuntimeModel | undefined {\n return this.runtimeContext?.runtimeModel;\n }\n\n public get runtimeContext(): RuntimeContext | undefined {\n return this._runtimeContext;\n }\n}\n","import { Attribute, CfgStatus, LineItem, PortDomain, UUID } from '@veloceapps/core';\nimport { Dictionary, flatten, map, sortBy } from 'lodash';\n\nexport const findLineItem = (id: string, lineItems: LineItem[]): LineItem | undefined => {\n return findLineItemWithComparator(lineItems, (li: LineItem) => li.id === id);\n};\n\nexport const findLineItemWithComparator = (\n lineItems: LineItem[],\n comparator: (li: LineItem) => boolean,\n): LineItem | undefined => {\n let currentLevel = lineItems;\n\n while (currentLevel.length) {\n const found = currentLevel.find(comparator);\n\n if (found) {\n return found;\n }\n\n currentLevel = flatten(currentLevel.map(parent => parent.lineItems));\n }\n\n return;\n};\n\nexport const insertLineItem = (lineItem: LineItem, parentId: string, toInsert: LineItem): LineItem => {\n const insertData = lineItem.id === parentId ? [toInsert] : [];\n return {\n ...lineItem,\n lineItems: [\n ...insertData,\n ...lineItem.lineItems.map(li => {\n return insertLineItem(li, parentId, toInsert);\n }),\n ],\n };\n};\n\nexport const removeLineItem = (lineItem: LineItem, idToRemove: string): LineItem => {\n return {\n ...lineItem,\n lineItems: lineItem.lineItems\n .map(li => {\n if (li.id === idToRemove) {\n return;\n } else if (li.lineItems.length) {\n return removeLineItem(li, idToRemove);\n }\n return li;\n })\n .filter(r => !!r) as LineItem[],\n };\n};\n\nexport const replaceLineItem = (lineItem: LineItem, replaceTo: LineItem): LineItem => {\n if (lineItem.id === replaceTo.id) {\n return { ...recalculateCardinalityVariables(lineItem, replaceTo) };\n }\n\n return {\n ...lineItem,\n lineItems: lineItem.lineItems.map(li => replaceLineItem(li, replaceTo)),\n };\n};\n\nexport const calculateCardinalityVariables = (lineItems: LineItem[]): Map<string, number> => {\n const cardVars = new Map<string, number>();\n lineItems.forEach(li => {\n const cardinalityVariableName = `#CV-${li.type}@${li.port}`;\n cardVars.set(cardinalityVariableName, (cardVars.get(cardinalityVariableName) ?? 0) + li.qty);\n });\n return cardVars;\n};\n\nexport const recalculateCardinalityVariables = (original: LineItem, updated: LineItem): LineItem => {\n const cardinalityVariables = calculateCardinalityVariables(updated.lineItems);\n const originalCardinalityVariables = calculateCardinalityVariables(original.lineItems);\n\n originalCardinalityVariables.forEach((value, key) => {\n if (cardinalityVariables.get(key) === value) {\n // no need to update cardinality if no changes\n cardinalityVariables.delete(key);\n } else if (!cardinalityVariables.has(key)) {\n // remove last item from port\n cardinalityVariables.set(key, 0);\n }\n });\n\n return {\n ...updated,\n attributes: upsertAttributes(\n updated.attributes,\n [...cardinalityVariables].map(([name, value]) => ({ name, value })),\n ),\n };\n};\n\nexport const mapAttributes = (attributes: Attribute[]): Dictionary<any> => {\n return attributes.reduce((acc, { name, value }) => ({ ...acc, [name]: value }), {});\n};\n\nexport const getAttributes = (attributes: Attribute[], names: string[] = []): Attribute[] => {\n const filtered = attributes.filter(({ name }) => names.includes(name));\n return sortBy(filtered, [({ name }): number => names.indexOf(name)]);\n};\n\nexport const upsertAttributes = (\n originalAttributes: Attribute[],\n attributesToUpsert: { name: string; value: any }[],\n): Attribute[] => {\n return attributesToUpsert.reduce((acc, { name, value }) => {\n const [origAttr] = getAttributes(acc, [name]);\n return [\n ...acc.filter(attr => attr.name !== name),\n { ...(origAttr ?? { name }), cfgStatus: 'User' as CfgStatus, value },\n ];\n }, originalAttributes);\n};\n\nexport const patchAttributes = (\n rootLineItem: LineItem,\n id: string,\n attrs: { name: string; value: any }[],\n): LineItem => {\n const lineItem = findLineItem(id, [rootLineItem]);\n\n if (!lineItem) {\n return rootLineItem;\n }\n\n const attributes = upsertAttributes(lineItem.attributes, attrs);\n return replaceLineItem(rootLineItem, { ...lineItem, attributes });\n};\n\nexport const getAttributeValue = (attributes: Attribute[], name: string): any =>\n attributes.find(attr => attr.name === name)?.value;\n\nexport const generateLineItem = (\n port: string,\n type: string,\n parentId: string,\n attributes: { name: string; value: any }[] = [],\n lineItems: LineItem[] = [],\n): LineItem => {\n return {\n id: UUID.UUID(),\n port,\n type,\n actionCode: 'ADD',\n cfgStatus: 'New',\n attributes: attributes.map(({ name, value }) => ({ cfgStatus: 'User', name, value })),\n lineItems,\n parentId,\n qty: 1,\n } as LineItem;\n};\n\nexport const getRecommendedPrices = (portDomain: PortDomain, type: string): { net: number; list: number } => {\n const domainType = portDomain.domainTypes.find(({ name }) => name === type);\n\n const [net, list] = domainType?.recommendedPrices\n ?.filter(({ chargeMethod }) => chargeMethod === 'ONE_TIME')\n .reduce(\n (acc, rp) => {\n const [netPrice, listPrice] = acc;\n return [netPrice + rp.netPrice, listPrice + rp.listPrice];\n },\n [0, 0],\n ) ?? [0, 0];\n\n return { net, list };\n};\n\nexport const multiplyLineItems = (lineItem: LineItem, qty: number, split: boolean): LineItem[] => {\n if (split) {\n const unifyIds = (lineItem: LineItem): LineItem => ({\n ...lineItem,\n id: UUID.UUID(),\n lineItems: lineItem.lineItems.map(unifyIds),\n });\n\n return map(new Array(qty), () => unifyIds(lineItem));\n } else {\n return [\n {\n ...lineItem,\n qty: qty,\n },\n ];\n }\n};\n","import { LineItem } from '@veloceapps/core';\nimport { insertLineItem, patchAttributes, removeLineItem, replaceLineItem } from './line-item.utils';\n\nexport class LineItemWorker {\n public li: LineItem;\n\n constructor(src: LineItem) {\n this.li = { ...src };\n }\n\n public insert(parentId: string, toInsert: LineItem): LineItemWorker {\n return new LineItemWorker(insertLineItem(this.li, parentId, toInsert));\n }\n\n public remove(id: string): LineItemWorker {\n return new LineItemWorker(removeLineItem(this.li, id));\n }\n\n public replace(toReplace: LineItem): LineItemWorker {\n return new LineItemWorker(replaceLineItem(this.li, toReplace));\n }\n\n public patchAttribute(attrs: { name: string; value: any }[], id?: string): LineItemWorker {\n return new LineItemWorker(patchAttributes(this.li, id ?? this.li.id, attrs));\n }\n}\n","import { Injectable } from '@angular/core';\nimport { PriceApiService, QuoteApiService } from '@veloceapps/api';\nimport { ConfigurationContextMode, LineItem, PriceList, PriceSummary, QuoteDraft } from '@veloceapps/core';\nimport { Dictionary, isEqual } from 'lodash';\nimport { BehaviorSubject, combineLatest, noop, Observable, zip } from 'rxjs';\nimport { filter, map, shareReplay, skip, switchMap, take, tap } from 'rxjs/operators';\nimport { ContextService } from './context.service';\n\n@Injectable({ providedIn: 'root' })\nexport class QuoteDraftService {\n private quoteSubj$ = new BehaviorSubject<QuoteDraft | null>(null);\n private resetSubj$ = new BehaviorSubject<boolean>(true);\n private isInitializedSubj$ = new BehaviorSubject<boolean>(false);\n private initialCurrentState: LineItem[] = [];\n private _hasUnsavedChanges = false;\n\n public get isInitialized(): boolean {\n return this.isInitializedSubj$.getValue();\n }\n public set isInitialized(value: boolean) {\n if (this.isInitialized !== value) {\n this.isInitializedSubj$.next(value);\n }\n }\n\n public get hasUnsavedChanges(): boolean {\n return this._hasUnsavedChanges;\n }\n public set hasUnsavedChanges(value: boolean) {\n this._hasUnsavedChanges = value;\n\n if (!this._hasUnsavedChanges) {\n this.initialCurrentState = this.quoteDraft?.currentState ?? [];\n }\n }\n\n public get hasProducts$(): Observable<boolean> {\n return this.quoteSubj$.pipe(map(() => this.hasProducts));\n }\n public get hasProducts(): boolean {\n const quoteDraft = this.quoteSubj$.value;\n return Boolean(quoteDraft && quoteDraft.currentState.length > 0);\n }\n\n public allPriceLists: PriceList[] = [];\n public assetPriceLists: PriceList[] = [];\n public reset$ = this.resetSubj$.asObservable();\n public activePriceList$: Observable<PriceList | null>;\n\n constructor(\n private context: ContextService,\n private quoteApiService: QuoteApiService,\n private priceApiService: PriceApiService,\n ) {\n this.activePriceList$ = this.context.resolve$().pipe(\n map(ctx => this.allPriceLists.find(priceList => priceList.id === ctx.properties.PriceListId)),\n map(priceList => priceList ?? null),\n );\n\n this.isInitializedSubj$\n .pipe(\n filter(isInitialized => isInitialized),\n switchMap(() => this.quoteSubj$.asObservable()),\n skip(1),\n tap(quote => this.markAsUpdated(quote)),\n )\n .subscribe();\n }\n\n public reset(): void {\n this.resetSubj$.next(true);\n this.quoteSubj$.next(null);\n this.hasUnsavedChanges = false;\n }\n\n public init(quoteId: string, params: Dictionary<string>): Observable<void> {\n return zip(this.quoteApiService.getQuoteDraft(quoteId, params), this.priceApiService.getPriceLists()).pipe(\n tap(([quote, allPriceLists]) => {\n this.allPriceLists = allPriceLists;\n this.quoteSubj$.next(quote);\n\n this.context.update(quote.context);\n\n this.populateActivePriceLists$();\n }),\n map(() => noop()),\n take(1),\n );\n }\n\n public setCurrentLineItemState(lineItems: LineItem[]): void {\n const quoteDraft = this.quoteSubj$.value;\n\n if (!quoteDraft) {\n return;\n }\n\n this.quoteSubj$.next({\n ...quoteDraft,\n currentState: lineItems,\n });\n }\n\n public updateQuoteDraft(update: Partial<QuoteDraft>): void {\n const quoteDraft = this.quoteSubj$.value;\n\n if (!quoteDraft) {\n return;\n }\n\n if (update.context) {\n this.context.set(update.context);\n }\n\n this.quoteSubj$.next({\n ...quoteDraft,\n ...update,\n });\n }\n\n public updateByPriceSummary(priceSummary: PriceSummary): void {\n const quoteDraft = this.quoteSubj$.value;\n\n if (!quoteDraft) {\n return;\n }\n\n const updatedCurrentState = this.currentState.map(lineItem => {\n const updated = priceSummary.lineItems.find(li => li.id === lineItem.id);\n return updated ?? lineItem;\n });\n\n this.quoteSubj$.next({\n ...quoteDraft,\n currentState: updatedCurrentState,\n totalPrices: priceSummary.totalPrices,\n approvalItems: priceSummary.approvalItems,\n });\n }\n\n public get quoteDraft$(): Observable<QuoteDraft> {\n return combineLatest([this.quoteSubj$, this.context.resolve$()]).pipe(\n map(() => this.quoteDraft),\n filter((quote): quote is QuoteDraft => Boolean(quote)),\n shareReplay(),\n );\n }\n\n public get quoteDraft(): QuoteDraft | null {\n const quote = this.quoteSubj$.value;\n\n if (!quote) {\n return null;\n }\n\n return {\n ...quote,\n context: this.context.resolve(),\n };\n }\n\n public get quoteDraftForActivePriceList(): QuoteDraft | null {\n const quoteDraft = this.quoteDraft;\n\n if (!quoteDraft) {\n return null;\n }\n\n return {\n ...quoteDraft,\n initialState: this.filterByActivePriceList(quoteDraft.initialState),\n currentState: this.filterByActivePriceList(quoteDraft.currentState),\n };\n }\n\n public get currentState$(): Observable<LineItem[]> {\n return this.quoteDraft$.pipe(map(quote => quote.currentState));\n }\n\n public get currentState(): LineItem[] {\n return this.quoteDraft?.currentState ?? [];\n }\n\n /**\n * Stream of activeCurrentState\n */\n public get activeCurrentState$(): Observable<LineItem[]> {\n return this.quoteDraft$.pipe(map(() => this.activeCurrentState));\n }\n\n /**\n * activeCurrentState is currentState passed through additional filters\n */\n public get activeCurrentState(): LineItem[] {\n let currentState = this.quoteDraft?.currentState ?? [];\n\n currentState = this.filterByActivePriceList(currentState);\n\n return currentState;\n }\n\n /**\n * Stream of activeInitialState\n */\n public get activeInitialState$(): Observable<LineItem[]> {\n return this.quoteDraft$.pipe(map(() => this.activeInitialState));\n }\n\n /**\n * activeInitialState is initialState passed through additional filters\n */\n public get activeInitialState(): LineItem[] {\n const ctx = this.context.resolve();\n let initialState = this.quoteDraft?.initialState ?? [];\n\n if (ctx.mode === ConfigurationContextMode.ACCOUNT) {\n initialState = this.filterByActivePriceList(initialState);\n }\n\n return initialState;\n }\n\n public get isStandalone(): boolean {\n return this.context.resolve().properties.standalone === 'true';\n }\n\n public get isStandalone$(): Observable<boolean> {\n return this.context.resolve$().pipe(map(() => this.isStandalone));\n }\n\n public getInitialCurrentState(): LineItem[] {\n return this.initialCurrentState;\n }\n\n public isEditMode$(): Observable<boolean> {\n return this.context.resolve$().pipe(map(() => this.isEditMode()));\n }\n\n public isEditMode(): boolean {\n const context = this.context.resolve();\n\n if (context.mode === ConfigurationContextMode.ACCOUNT) {\n return true;\n }\n\n if (context.mode === ConfigurationContextMode.QUOTE) {\n return context.properties.Status === 'Draft';\n }\n\n return false;\n }\n\n public updateActivePriceList(priceListId: string): void {\n this.context.update({ properties: { PriceListId: priceListId } });\n }\n\n private populateActivePriceLists$(): void {\n const ctx = this.context.resolve();\n const quoteDraft = this.quoteDraft;\n\n if (!quoteDraft) {\n return;\n }\n\n // In ACCOUNT mode populate price lists from related assets\n if (ctx.mode === ConfigurationContextMode.ACCOUNT) {\n // Populate list of price lists\n this.assetPriceLists = quoteDraft.currentState\n .map(({ priceListId }) => priceListId)\n .reduce<PriceList[]>((trunk, priceListId) => {\n if (!priceListId || trunk.some(item => item.id === priceListId)) {\n return trunk;\n }\n\n return [\n ...trunk,\n { id: priceListId, name: this.allPriceLists.find(item => item.id === priceListId)?.name ?? '' },\n ];\n }, []);\n }\n }\n\n private filterByActivePriceList(lineItems: LineItem[]): LineItem[] {\n const ctx = this.context.resolve();\n\n return lineItems.filter(li => !li.priceListId || li.priceListId === ctx.properties.PriceListId);\n }\n\n private markAsUpdated(quote: QuoteDraft | null): void {\n if (quote?.context.properties.mode === ConfigurationContextMode.ACCOUNT) {\n this.hasUnsavedChanges = !!quote && !quote.currentState.every(li => li.actionCode === 'EXIST');\n } else {\n this.hasUnsavedChanges = !isEqual(this.initialCurrentState, quote?.currentState);\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ConfigurationApiService } from '@veloceapps/api';\nimport { ConfirmationComponent, ConfirmationConfig, ToastType } from '@veloceapps/components';\nimport {\n Charge,\n CompiledPricePlan,\n ConfigurationContext,\n ConfigurationMode,\n ConfigurationRequest,\n ConfigurationTranslatorUtils,\n LineItem,\n RuntimeModel,\n VlWindow,\n} from '@veloceapps/core';\nimport { Dictionary } from 'lodash';\nimport { MessageService } from 'primeng/api';\nimport { DialogService } from 'primeng/dynamicdialog';\nimport { BehaviorSubject, Observable, shareReplay, throwError } from 'rxjs';\nimport { catchError, finalize, first, map, switchMap, tap } from 'rxjs/operators';\nimport { ContextService } from '../../../services/context.service';\nimport { QuoteDraftService } from '../../../services/quote-draft.service';\nimport { RuntimeContext, RuntimeStep } from '../../../types';\nimport { LineItemWorker } from '../../../utils/line-item.worker';\nimport { getDefaultLineItem } from '../helpers';\nimport { ConfigurationRuntimeService } from './configuration-runtime.service';\n\ndeclare const window: VlWindow;\n\n@Injectable()\nexport class ConfigurationService {\n private mode = ConfigurationMode.SEARCH;\n private configurableRamp: LineItem | undefined;\n\n private lineItem = new BehaviorSubject<LineItem | undefined>(undefined);\n private charges = new BehaviorSubject<Dictionary<Charge>>({});\n private pricePlans = new BehaviorSubject<Dictionary<CompiledPricePlan>>({});\n\n public hasUnsavedChanges = false;\n\n constructor(\n private quoteDraftService: QuoteDraftService,\n private runtimeService: ConfigurationRuntimeService,\n private contextService: ContextService,\n private configurationApiService: ConfigurationApiService,\n private messageService: MessageService,\n private dialogService: DialogService,\n ) {}\n\n public reset(): void {\n this.hasUnsavedChanges = false;\n this.runtimeService.reset();\n\n this.configurableRamp = undefined;\n this.lineItem.next(undefined);\n this.charges.next({});\n this.pricePlans.next({});\n }\n\n public patch$(lineItem: LineItem): Observable<LineItem> {\n if (!this.lineItem.value) {\n return throwError(() => new Error(`Source LineItem not found`));\n }\n\n this.configurableRamp = new LineItemWorker(this.lineItem.value).replace(lineItem).li;\n\n return this.configure().pipe(\n catchError(error => {\n console.error(error);\n\n if (!this.runtimeService.uiDefinitionProperties.suppressToastMessages) {\n this.messageService.add({ severity: 'error', summary: error });\n }\n\n // bounce back if configuration call has failed\n this.lineItem.next(this.lineItem.value ? { ...this.lineItem.value } : undefined);\n\n return throwError(() => error);\n }),\n tap(() => {\n if (!this.hasUnsavedChanges) {\n this.hasUnsavedChanges = true;\n }\n }),\n );\n }\n\n public patch(lineItem: LineItem): void {\n this.patch$(lineItem).subscribe();\n }\n\n public setConfigurableRamp(lineItem: LineItem): void {\n this.configurableRamp = lineItem;\n }\n\n public get(): Observable<LineItem | undefined> {\n return this.lineItem.asObservable().pipe(shareReplay());\n }\n\n public getSnapshot(): LineItem | undefined {\n return this.lineItem.value ? { ...this.lineItem.value } : undefined;\n }\n\n public getRuntimeModel(): RuntimeModel | undefined {\n return this.runtimeService.runtimeModel;\n }\n\n public getRuntimeContext(): RuntimeContext | undefined {\n return this.runtimeService.runtimeContext;\n }\n\n public get contextSnapshot(): ConfigurationContext {\n return this.contextService.resolve();\n }\n\n public get context$(): Observable<ConfigurationContext> {\n return this.contextService.resolve$();\n }\n\n public get charges$(): Observable<Dictionary<Charge>> {\n return this.charges.asObservable();\n }\n\n public get chargesSnapshot(): Dictionary<Charge> {\n return this.charges.value;\n }\n\n public get pricePlans$(): Observable<Dictionary<CompiledPricePlan>> {\n return this.pricePlans.asObservable();\n }\n\n public get pricePlansSnapshot(): Dictionary<CompiledPricePlan> {\n return this.pricePlans.value;\n }\n\n public configure(): Observable<LineItem> {\n const runtimeContext = this.getRuntimeContext();\n const runtimeModel = this.getRuntimeModel();\n if (!runtimeContext || !runtimeModel) {\n return throwError(() => new Error('Runtime context/model not initialized'));\n }\n\n const uiDefinitionProperties = {\n ...(runtimeContext.uiDefinition?.properties ?? {}),\n ...(this.runtimeService.uiDefinitionProperties ?? {}),\n };\n const qty = this.runtimeService.initializationProps?.defaultQty;\n const lineItem = this.configurableRamp ?? getDefaultLineItem(runtimeContext, uiDefinitionProperties, qty);\n const configurationRequest = this.createRequest(lineItem);\n\n const mainPricingEnabled = runtimeContext.properties?.PricingEnabled;\n const pricingEnabled = mainPricingEnabled ? mainPricingEnabled === 'true' : uiDefinitionProperties.pricingEnabled;\n\n return this.configurationApiService\n .configureLineItem({ configurationRequest, runtimeModel, pricingEnabled })\n .pipe(\n map(({ lineItem, context, charges, pricePlans, deletedLineItems }) => {\n this.contextService.update(context ?? {});\n this.charges.next(charges ?? {});\n this.pricePlans.next(pricePlans ?? {});\n if (deletedLineItems?.length) {\n this.showInactiveProductsConfirmation();\n }\n return lineItem;\n }),\n )\n .pipe(\n tap(lineItem => lineItem && this.lineItem.next(lineItem)),\n catchError(error =>\n throwError(() => new Error(error.error?.message || error.message || JSON.stringify(error))),\n ),\n );\n }\n\n public configureExternal$(productId: string, qty?: number): Observable<LineItem> {\n return this.runtimeService.init({ productId, defaultQty: qty }).pipe(\n switchMap(() => this.configure()),\n first(),\n catchError(error => {\n this.messageService.add({ severity: ToastType.error, summary: error });\n throw error;\n }),\n finalize(() => this.reset()),\n );\n }\n\n private createRequest(lineItem: LineItem): ConfigurationRequest {\n let request: ConfigurationRequest = {\n lineItem,\n mode: this.mode,\n step: !this.lineItem.value ? RuntimeStep.START : RuntimeStep.UPDATE,\n attributeDomainMode: 'ALL',\n context: this.contextService.resolve(),\n lineItems: this.quoteDraftService.quoteDraft?.currentState || [],\n asset: this.getAsset(),\n };\n\n request = ConfigurationTranslatorUtils.lightenConfigurationRequest(request);\n\n return request;\n }\n\n private showInactiveProductsConfirmation(): void {\n const confirmationConfig: ConfirmationConfig = {\n title: ' ',\n description: 'This quote contains inactive products. Do you want to remove them?',\n primaryButtonLabel: 'Remove products',\n secondaryButtonLabel: 'Back to Quote',\n };\n\n this.dialogService\n .open(ConfirmationComponent, {\n dismissableMask: false,\n closeOnEscape: false,\n closable: false,\n showHeader: true,\n header: `Inactive Products in Quote`,\n width: '440px',\n data: { confirmationConfig },\n })\n .onClose.subscribe(result => {\n if (!result) {\n const context = this.contextService.resolve();\n window['VELO_BACK_FN'].apply(null, [context.headerId]);\n }\n });\n }\n\n private getAsset(): LineItem | undefined {\n const lineItem = this.configurableRamp;\n if (!lineItem) {\n return;\n }\n\n return this.quoteDraftService.quoteDraft?.initialState.find(\n a => a.id === lineItem.openOrderLineItemId || a.id === lineItem.assetId,\n );\n }\n}\n","import { omit } from 'lodash';\nimport { UIDefinition, UIDefinitionMetadata } from '../types';\n\nexport function extractMetadata(uiDefinition: UIDefinition): UIDefinitionMetadata {\n return omit<UIDefinition, keyof Omit<UIDefinition, keyof UIDefinitionMetadata>>(uiDefinition, [\n 'children',\n 'pages',\n 'components',\n ]);\n}\n","import { Injectable } from '@angular/core';\nimport { Charge, ChargeGroupUtils, LineItem } from '@veloceapps/core';\nimport { Dictionary, flatten } from 'lodash';\nimport moment from 'moment';\nimport { LineItemWorker } from '../../../utils';\nimport { FlowUpdateParams } from '../types/update.types';\n\n@Injectable()\nexport class FlowUpdateService {\n public update(rootLineItems: LineItem[], updates: FlowUpdateParams[], charges?: Dictionary<Charge>): void {\n let remainingUpdates = [...updates];\n let currentLevel = rootLineItems;\n\n while (currentLevel.length && remainingUpdates.length) {\n currentLevel.forEach(li => {\n const unhandledUpdates: FlowUpdateParams[] = [];\n\n remainingUpdates.forEach(update => {\n let updated = false;\n\n switch (update.dataType) {\n case 'LINEITEM':\n updated = this.applyLineItemUpdate(li, update, charges);\n break;\n case 'CHARGE':\n updated = this.applyChargeUpdate(li, update);\n break;\n case 'GROUP_CHARGE':\n updated = this.applyChargeGroupUpdate(li, update);\n break;\n default:\n // Unknown dataType. Do not try to handle it anymore\n updated = true;\n }\n\n if (!updated) {\n unhandledUpdates.push(update);\n }\n });\n\n remainingUpdates = unhandledUpdates;\n });\n\n currentLevel = flatten(currentLevel.map(parent => parent.lineItems));\n }\n }\n\n public delete(lineItems: LineItem[], id: string): LineItem[] {\n const idsToRemove: string[] = [id];\n const topLevelLineItem = lineItems.find(li => li.id === id);\n\n if (topLevelLineItem) {\n // find term-related line items (which are only top level)\n // expired term line items won't be deleted\n let foundTermLineItem: LineItem | undefined = topLevelLineItem;\n\n while (foundTermLineItem) {\n foundTermLineItem = lineItems.find(li => foundTermLineItem && li.rampInstanceId === foundTermLineItem.id);\n if (foundTermLineItem) {\n idsToRemove.push(foundTermLineItem.id);\n }\n }\n }\n\n const filtered = lineItems.filter(lineItem => !idsToRemove.includes(lineItem.id));\n return filtered.map(lineItem => new LineItemWorker(lineItem).remove(id).li);\n }\n\n private applyLineItemUpdate(lineItem: LineItem, update: FlowUpdateParams, charges?: Dictionary<Charge>): boolean {\n if (lineItem.id !== update.id) {\n return false;\n }\n\n switch (update.attributeType) {\n case 'QTY':\n lineItem.qty = update.newValue;\n break;\n case 'EFFECTIVE_START_DATE':\n lineItem.properties.StartDate = moment(update.newValue).format('YYYY-MM-DD');\n break;\n case 'END_DATE':\n lineItem.properties.EndDate = moment(update.newValue).format('YYYY-MM-DD');\n break;\n case 'PRICE_ADJUSTMENT':\n {\n const charge = lineItem.chargeItems.find(charge => (charges || {})[charge.chargeId]?.main);\n if (charge) {\n charge.priceAdjustment = update.newValue;\n }\n }\n break;\n case 'LIST_PRICE_ADJUSTMENT':\n {\n const charge = lineItem.chargeItems.find(charge => (charges || {})[charge.chargeId]?.main);\n if (charge) {\n charge.listPriceAdjustment = update.newValue;\n }\n }\n break;\n default:\n throw new Error(`Not suppored AttributeType for LineItem update: ${update.attributeType}`);\n }\n\n return true;\n }\n\n private applyChargeUpdate(lineItem: LineItem, update: FlowUpdateParams): boolean {\n const foundCharge = lineItem.chargeItems.find(({ id }) => id === update.id);\n if (!foundCharge) {\n return false;\n }\n\n if (update.attributeType === 'PRICE_ADJUSTMENT') {\n foundCharge.priceAdjustment = update.newValue;\n } else if (update.attributeType === 'LIST_PRICE_ADJUSTMENT') {\n foundCharge.listPriceAdjustment = update.newValue;\n } else {\n throw new Error(`Not suppored AttributeType for Charge Item update: ${update.attributeType}`);\n }\n\n return true;\n }\n\n private applyChargeGroupUpdate(lineItem: LineItem, update: FlowUpdateParams): boolean {\n const foundChargeGroup = ChargeGroupUtils.findChargeGroupById(update.id, lineItem);\n if (!foundChargeGroup) {\n return false;\n }\n\n if (update.attributeType === 'PRICE_ADJUSTMENT') {\n foundChargeGroup.priceAdjustment = update.newValue;\n } else if (update.attributeType === 'LIST_PRICE_ADJUSTMENT') {\n foundChargeGroup.listPriceAdjustment = update.newValue;\n } else {\n throw new Error(`Not suppored AttributeType for Charge Group Item update: ${update.attributeType}`);\n }\n\n return true;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ProceduresApiService } from '@veloceapps/api';\nimport { Charge, CompiledPricePlan, ConfigurationContext, LineItem, MetricRule, QuoteDraft } from '@veloceapps/core';\nimport { cloneDeep, Dictionary } from 'lodash';\nimport { catchError, map, noop, Observable, of, shareReplay, switchMap, tap, throwError } from 'rxjs';\nimport { ContextService } from '../../../services/context.service';\nimport { QuoteDraftService } from '../../../services/quote-draft.service';\nimport { multiplyLineItems } from '../../../utils/line-item.utils';\nimport { ConfigurationService } from '../../configuration/services/configuration.service';\nimport { FlowUpdateParams } from '../types/update.types';\nimport { FlowUpdateService } from './flow-update.service';\n\n@Injectable()\nexport class FlowConfigurationService {\n constructor(\n private proceduresApiService: ProceduresApiService,\n private contextService: ContextService,\n private quoteDraftService: QuoteDraftService,\n private updateService: FlowUpdateService,\n private configurationService: ConfigurationService,\n ) {}\n\n public calculate$(quoteDraft: QuoteDraft): Observable<void> {\n return this.proceduresApiService.apply$(quoteDraft).pipe(\n tap(result => {\n // sort the result current state based on the quote draft initial state\n const initialStateIds = quoteDraft.initialState.map(lineItem => lineItem.integrationId);\n result.currentState = result.currentState\n .slice()\n .sort((a, b) => initialStateIds.indexOf(a.integrationId) - initialStateIds.indexOf(b.integrationId));\n this.quoteDraftService.updateQuoteDraft(result);\n }),\n map(noop),\n );\n }\n\n public calculate(quoteDraft: QuoteDraft): void {\n this.calculate$(quoteDraft).subscribe();\n }\n\n public update$(updates: FlowUpdateParams[]): Observable<QuoteDraft | null> {\n const quoteDraft = this.quoteDraftService.quoteDraft;\n\n if (!quoteDraft) {\n return of(null);\n }\n\n return of([]).pipe(\n map(() => {\n const updatedState = cloneDeep(quoteDraft.currentState);\n this.updateService.update(updatedState, updates, quoteDraft.charges);\n return updatedState;\n }),\n switchMap(updatedState => this.calculate$({ ...quoteDraft, currentState: updatedState })),\n map(() => this.quoteDraftService.quoteDraft),\n this.handleErrorAndBounceBack(),\n );\n }\n\n public update(updates: FlowUpdateParams[]): void {\n this.update$(updates).subscribe();\n }\n\n public revert$(lineItemId: string): Observable<QuoteDraft | null> {\n const quoteDraft = this.quoteDraftService.quoteDraft;\n const initialCurrentState = this.quoteDraftService.getInitialCurrentState();\n const currentState = this.quoteDraftService.activeCurrentState;\n\n const currentLineItemIndex = currentState.findIndex(({ id }) => id === lineItemId);\n const currentLineItem = currentState[currentLineItemIndex];\n\n const initialLineItem = initialCurrentState.find(\n ({ integrationId }) => integrationId === currentLineItem?.integrationId,\n );\n\n if (!quoteDraft || !currentLineItem || !initialLineItem) {\n return of(null);\n }\n\n const updatedState = cloneDeep(currentState);\n updatedState.splice(currentLineItemIndex, 1, initialLineItem);\n\n return of([]).pipe(\n tap(() => {\n this.quoteDraftService.setCurrentLineItemState(updatedState);\n }),\n switchMap(() => this.calculate$({ ...quoteDraft, currentState: updatedState })),\n map(() => this.quoteDraftService.quoteDraft),\n this.handleErrorAndBounceBack(),\n );\n }\n\n public revert(lineItemId: string): void {\n this.revert$(lineItemId).subscribe();\n }\n\n public delete$(ids: string[]): Observable<QuoteDraft | null> {\n const quoteDraft = this.quoteDraftService.quoteDraft;\n const currentState = this.quoteDraftService.currentState;\n\n if (!quoteDraft) {\n return of(null);\n }\n\n return of([]).pipe(\n map(() => ids.reduce((result, id) => this.updateService.delete(result, id), currentState)),\n switchMap(updatedState => this.calculate$({ ...quoteDraft, currentState: updatedState })),\n map(() => this.quoteDraftService.quoteDraft),\n this.handleErrorAndBounceBack(),\n );\n }\n\n public delete(ids: string[]): void {\n this.delete$(ids).subscribe();\n }\n\n public addTerm$(term: LineItem): Observable<QuoteDraft | null> {\n const quoteDraft = this.quoteDraftService.quoteDraft;\n\n if (!quoteDraft) {\n return of(null);\n }\n\n const updatedState = [...quoteDraft.currentState, term];\n\n return of([]).pipe(\n switchMap(() => this.calculate$({ ...quoteDraft, currentState: updatedState })),\n map(() => this.quoteDraftService.quoteDraft),\n this.handleErrorAndBounceBack(),\n );\n }\n\n public addToCart$(productId: string, qty?: number): Observable<QuoteDraft | null> {\n const quoteDraft = this.quoteDraftService.quoteDraft;\n\n if (!quoteDraft) {\n return of(null);\n }\n\n return this.configurationService.configureExternal$(productId, qty).pipe(\n map(lineItem => {\n const model = this.configurationService.getRuntimeModel();\n const split = model?.types.find(type => type.name === lineItem.type)?.split ?? false;\n const lineItems = multiplyLineItems(lineItem, qty ?? 1, split);\n\n return [...quoteDraft.currentState, ...lineItems];\n }),\n switchMap(updatedState => this.calculate$({ ...quoteDraft, currentState: updatedState })),\n map(() => this.quoteDraftService.quoteDraft),\n this.handleErrorAndBounceBack(),\n );\n }\n\n public get(): Observable<LineItem[]> {\n return this.quoteDraftService.quoteDraft$.pipe(\n map(() => this.quoteDraftService.activeCurrentState),\n shareReplay(),\n );\n }\n\n public getSnapshot(): LineItem[] {\n return this.quoteDraftService?.currentState.slice() ?? [];\n }\n\n public get charges$(): Observable<Dictionary<Charge>> {\n return this.quoteDraftService.quoteDraft$.pipe(map(({ charges }) => charges));\n }\n\n public get pricePlans$(): Observable<Dictionary<CompiledPricePlan>> {\n return this.quoteDraftService.quoteDraft$.pipe(map(({ pricePlans }) => pricePlans));\n }\n\n public get activeMetrics$(): Observable<MetricRule[]> {\n return this.quoteDraftService.quoteDraft$.pipe(map(({ activeMetrics }) => activeMetrics));\n }\n\n public get chargesSnapshot(): Dictionary<Charge> {\n return this.quoteDraftService.quoteDraft?.charges ?? {};\n }\n\n public get pricePlansSnapshot(): Dictionary<CompiledPricePlan> {\n return this.quoteDraftService.quoteDraft?.pricePlans ?? {};\n }\n\n public get activeMetricsSnapshot(): MetricRule[] {\n return this.quoteDraftService.quoteDraft?.activeMetrics ?? [];\n }\n\n public get contextSnapshot(): ConfigurationContext {\n return this.contextService.resolve();\n }\n\n public get context$(): Observable<ConfigurationContext> {\n return this.contextService.resolve$();\n }\n\n private handleErrorAndBounceBack() {\n return <T>(source$: Observable<T>): Observable<T> => {\n return source$.pipe(\n catchError(error => {\n console.error(error);\n\n // bounce back if configuration call has failed\n const quoteDraft = this.quoteDraftService.quoteDraft;\n if (quoteDraft) {\n this.quoteDraftService.updateQuoteDraft(quoteDraft);\n }\n\n return throwError(() => error);\n }),\n );\n };\n }\n}\n","import { NgModule } from '@angular/core';\nimport { PriceApiService } from '@veloceapps/api';\nimport { FlowConfigurationService } from './services/flow-configuration.service';\nimport { FlowUpdateService } from './services/flow-update.service';\n\n@NgModule({\n imports: [],\n providers: [FlowConfigurationService, FlowUpdateService, PriceApiService],\n})\nexport class FlowConfigurationModule {}\n","import { NgModule } from '@angular/core';\nimport { ConfirmationDialogModule } from '@veloceapps/components';\nimport { ConfigurationApiService, ContextApiService, ProductModelApiService } from '@veloceapps/api';\nimport { ConfigurationRuntimeService } from './services/configuration-runtime.service';\nimport { ConfigurationService } from './services/configuration.service';\nimport { RuntimeContextService } from './services/runtime-context.service';\n\n@NgModule({\n imports: [ConfirmationDialogModule],\n providers: [\n ContextApiService,\n ProductModelApiService,\n ConfigurationApiService,\n ConfigurationRuntimeService,\n RuntimeContextService,\n ConfigurationService,\n ],\n})\nexport class ConfigurationModule {}\n","import { LineItem } from '@veloceapps/core';\nimport { MetricCalculationMethod } from './metric-calculation.types';\n\nexport function calculateMetricByMethod(\n lineItems: LineItem[],\n metric: string,\n method: MetricCalculationMethod,\n): number {\n const items = getLineItemsByMethod(lineItems, method);\n\n return items.reduce((acc: number, li: LineItem[]) => {\n let value = li.reduce(\n (accProduct: number, item: LineItem) => accProduct + ((item.totalMetrics && item.totalMetrics[metric]) || 0),\n 0,\n );\n\n if (method === 'avg' && li.length > 0) {\n value /= li.length;\n }\n\n return acc + value;\n }, 0);\n}\n\nexport function getLineItemsByMethod(lineItems: LineItem[], method: MetricCalculationMethod): LineItem[][] {\n switch (method) {\n case 'first': {\n return lineItems.filter(li => !li.rampInstanceId).map(item => [item]);\n }\n case 'last': {\n const rootTermItems = lineItems.filter(li => !li.rampInstanceId);\n const products = rootTermItems.map(lineItem => [\n lineItem,\n ...lineItems.filter(li => li.rampInstanceId === lineItem.id),\n ]);\n\n return products\n .map(items => [...items].sort((a, b) => getDateValue(a.endDate || '') - getDateValue(b.endDate || '')).pop())\n .filter((li): li is LineItem => Boolean(li))\n .map(item => [item]);\n }\n case 'avg': {\n const rootTermItems = lineItems.filter(li => !li.rampInstanceId);\n return rootTermItems.map(lineItem => [lineItem, ...lineItems.filter(li => li.rampInstanceId === lineItem.id)]);\n }\n case 'sum': {\n return lineItems.map(item => [item]);\n }\n default: {\n return lineItems.map(item => [item]);\n }\n }\n}\n\nexport function getDateValue(date: string): number {\n return date ? new Date(date).getTime() : 0;\n}\n","import { Injectable } from '@angular/core';\nimport { ConfigurationSettingsApiService } from '@veloceapps/api';\nimport { LineItem, MetricRule } from '@veloceapps/core';\nimport { Dictionary, uniq } from 'lodash';\nimport { combineLatest, Observable, Subject, take } from 'rxjs';\nimport { FlowConfigurationService } from '../../modules/flow-configuration/services/flow-configuration.service';\nimport { QuoteDraftService } from '../quote-draft.service';\nimport { MetricCalculationMethod } from './metric-calculation.types';\nimport { calculateMetricByMethod } from './metric-calculation.utils';\n\n@Injectable({ providedIn: 'root' })\nexport class MetricsCalculationService {\n public get onMetricsUpdate$(): Observable<void> {\n return this.metricsUpdated$.asObservable();\n }\n\n private metricsUpdated$ = new Subject<void>();\n private quoteMetricsSettings: Dictionary<MetricCalculationMethod> = {};\n private metricsCalculationMethodMap: Dictionary<MetricCalculationMethod> = {};\n private metricsData: Dictionary<number> = {};\n private activeMetricRules: MetricRule[] = [];\n\n constructor(\n private quoteDraftService: QuoteDraftService,\n private flowConfiguration: FlowConfigurationService,\n private settingsService: ConfigurationSettingsApiService,\n ) {\n this.activeMetricRules = this.flowConfiguration.activeMetricsSnapshot.filter(metricRule =>\n metricRule.metrics.some(metric => !!metric.totalName),\n );\n\n combineLatest([\n this.quoteDraftService.currentState$,\n this.settingsService.fetchSetting('QUOTE_LEVEL_METRIC_CALCULATION_METHOD').pipe(take(1)),\n ]).subscribe(([lineItems, setting]) => {\n let settingsData: Dictionary<MetricCalculationMethod> = {};\n try {\n settingsData = JSON.parse(setting?.value || '{}');\n } catch (error) {\n settingsData = {};\n }\n\n this.quoteMetricsSettings = settingsData;\n\n this.updateMetrics(lineItems);\n });\n }\n\n public getMetricValue(metric: string): number {\n return this.metricsData[metric] || 0;\n }\n\n private updateMetrics(lineItems: LineItem[]): void {\n const metricKeys = this.collectMetricKeys(lineItems).filter(key => !key.includes('Effective_'));\n this.metricsCalculationMethodMap = this.buildMetricsCalculationMethods(\n metricKeys,\n this.metricsCalculationMethodMap,\n );\n\n this.metricsData = metricKeys.reduce(\n (acc: Dictionary<number>, key: string) => ({ ...acc, [key]: this.calculateMetric(lineItems, key) }),\n {},\n );\n\n this.metricsUpdated$.next();\n }\n\n private calculateMetric(lineItems: LineItem[], metric: string): number {\n return calculateMetricByMethod(lineItems, metric, this.metricsCalculationMethodMap[metric] || 'sum');\n }\n\n private buildMetricsCalculationMethods(\n metricKeys: string[],\n initial: Dictionary<MetricCalculationMethod>,\n ): Dictionary<MetricCalculationMethod> {\n return metricKeys.reduce((acc: Dictionary<MetricCalculationMethod>, name: string) => {\n if (acc[name]) {\n return acc;\n }\n\n acc = { ...acc, [name]: 'sum' };\n\n const metricRule = this.getMetricRuleByTotalMetricName(name);\n const settingKey = metricRule?.metrics?.find(metric => metric.totalName === name)?.name || name;\n\n if (this.quoteMetricsSettings[settingKey]) {\n acc = { ...acc, [name]: this.quoteMetricsSettings[settingKey] };\n }\n\n return acc;\n }, initial);\n }\n\n private collectMetricKeys(lineItems: LineItem[]): string[] {\n const keys: string[] = [];\n lineItems.forEach(lineItem => {\n keys.push(...Object.keys(lineItem.totalMetrics || {}));\n keys.push(...this.collectMetricKeys(lineItem.lineItems));\n });\n return uniq(keys);\n }\n\n private getMetricRuleByTotalMetricName(name: string): MetricRule | undefined {\n return this.activeMetricRules.find(metricRule => metricRule.metrics.find(metric => metric.totalName === name));\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ProductApiService } from '@veloceapps/api';\nimport { Dictionary } from 'lodash';\nimport { BehaviorSubject, catchError, distinctUntilChanged, map, Observable, of, tap } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class ProductImagesService {\n private imagesMap$ = new BehaviorSubject<Dictionary<string>>({});\n\n constructor(private productApiService: ProductApiService) {}\n\n public getImageUrl$(productId: string): Observable<string | null> {\n if (this.imagesMap$.value[productId] == null) {\n this.imagesMap$.next({ ...this.imagesMap$.value, [productId]: '' });\n this.fetchProductImage(productId);\n }\n\n return this.imagesMap$.pipe(\n map(imagesMap => imagesMap[productId]),\n distinctUntilChanged(),\n );\n }\n\n private fetchProductImage(productId: string): void {\n this.productApiService\n .fetchImage$(productId)\n .pipe(\n map(file => URL.createObjectURL(file)),\n catchError(() => of('')),\n tap(url => this.imagesMap$.next({ ...this.imagesMap$.value, [productId]: url })),\n )\n .subscribe();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { FlowConfigurationModule } from './modules';\nimport { ConfigurationModule } from './modules/configuration/configuration.module';\nimport { ContextService, MetricsCalculationService, ProductImagesService, QuoteDraftService } from './services';\n\n@NgModule({\n imports: [ConfigurationModule, FlowConfigurationModule],\n providers: [ContextService, QuoteDraftService, ProductImagesService, MetricsCalculationService],\n})\nexport class SdkCoreModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["UUID","RuntimeMode","RuntimeOperation","RuntimeStep","BehaviorSubject","filter","tap","merge","ConfigurationContext","map","i1","i0","Injectable","RuntimeModel","combineLatest","ConfigurationContextMode","first","SalesforceIdUtils","i2.ContextService","i3.RuntimeContextService","flatten","sortBy","switchMap","skip","zip","noop","take","shareReplay","isEqual","i1.ContextService","i2","ConfigurationMode","throwError","catchError","ToastType","finalize","ConfigurationTranslatorUtils","ConfirmationComponent","i1.QuoteDraftService","i2.ConfigurationRuntimeService","i3.ContextService","i4","i5","i6","omit","moment","ChargeGroupUtils","of","cloneDeep","i3.QuoteDraftService","i4.FlowUpdateService","i5.ConfigurationService","PriceApiService","NgModule","ConfirmationDialogModule","ContextApiService","ProductModelApiService","ConfigurationApiService","Subject","uniq","i2.FlowConfigurationService","i3","distinctUntilChanged"],"mappings":"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"}