@veloceapps/sdk 4.0.6 → 4.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/veloce-sdk-core.umd.js.map +1 -1
- package/core/modules/configuration/services/configuration.service.d.ts +3 -3
- package/core/modules/flow-configuration/services/flow-configuration.service.d.ts +3 -3
- package/esm2015/core/modules/configuration/services/configuration.service.js +1 -1
- package/esm2015/core/modules/flow-configuration/services/flow-configuration.service.js +1 -1
- package/fesm2015/veloce-sdk-core.js.map +1 -1
- package/package.json +1 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"veloce-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/services/context.service.ts","../../../../libs/sdk/core/services/product-images.service.ts","../../../../libs/sdk/core/services/quote-draft.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/modules/configuration/services/configuration.service.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/core.module.ts","../../../../libs/sdk/core/veloce-sdk-core.ts"],"sourcesContent":["import { LineItem, UUID } from '@veloce/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 __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 (_) 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 Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\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: n === \"return\" } : 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","import { ContextProperties, RuntimeModel } from '@veloce/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","import { Injectable } from '@angular/core';\nimport { ContextApiService } from '@veloce/api';\nimport { ConfigurationContext, ConfigurationContextMode } from '@veloce/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 get isInitialized(): boolean {\n return Boolean(this.context.value);\n }\n\n 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 resolve$(): Observable<ConfigurationContext> {\n return this.context.pipe(filter((ctx): ctx is ConfigurationContext => Boolean(ctx)));\n }\n\n 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 delete(): void {\n this.context.next(null);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ProductApiService } from '@veloce/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 { Injectable } from '@angular/core';\nimport { PriceApiService, QuoteApiService } from '@veloce/api';\nimport { ConfigurationContextMode, LineItem, PriceList, PriceSummary, QuoteDraft } from '@veloce/core';\nimport { Dictionary } 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 isInitialized$ = new BehaviorSubject<boolean>(false);\n public get isInitialized(): boolean {\n return this.isInitialized$.getValue();\n }\n public set isInitialized(value: boolean) {\n if (this.isInitialized !== value) {\n this.isInitialized$.next(value);\n }\n }\n\n public allPriceLists: PriceList[] = [];\n public assetPriceLists: PriceList[] = [];\n public hasUnsavedChanges = false;\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.isInitialized$\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() {\n this.resetSubj$.next(true);\n this.quoteSubj$.next(null);\n }\n\n public init(quoteId: string, params: Dictionary<string>): Observable<void> {\n return zip(\n this.context.resolve$(),\n this.quoteApiService.getQuoteDraft(quoteId, params),\n this.priceApiService.getPriceLists(),\n ).pipe(\n tap(([context, quote, allPriceLists]) => {\n this.allPriceLists = allPriceLists;\n this.quoteSubj$.next(quote);\n\n this.context.update({\n ...context,\n ...quote.context,\n properties: {\n ...context.properties,\n ...quote.context.properties,\n },\n });\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.update(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 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 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 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 get currentState$(): Observable<LineItem[]> {\n return this.quoteDraft$.pipe(map(quote => quote.currentState));\n }\n\n get currentState(): LineItem[] {\n return this.quoteDraft?.currentState ?? [];\n }\n\n /**\n * Stream of activeCurrentState\n */\n 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 get activeCurrentState(): LineItem[] {\n const ctx = this.context.resolve();\n let currentState = this.quoteDraft?.currentState ?? [];\n\n if (ctx.mode === ConfigurationContextMode.ACCOUNT) {\n currentState = this.filterByActivePriceList(currentState);\n }\n\n return currentState;\n }\n\n /**\n * Stream of activeInitialState\n */\n 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 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 get isStandalone(): boolean {\n return this.context.resolve().properties.standalone === 'true';\n }\n\n get isStandalone$(): Observable<boolean> {\n return this.context.resolve$().pipe(map(() => this.isStandalone));\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 const activePriceList = this.assetPriceLists[0];\n\n this.updateActivePriceList(activePriceList?.id);\n\n // Update PriceListId in context properties\n // TODO: remove it when backend will have such logic\n this.context.update({ properties: { PriceListId: activePriceList?.id } });\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 = true;\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ConfigurationApiService } from '@veloce/api';\nimport { RuntimeData, RuntimeModel, UIDefinition as LegacyUiDefinition } from '@veloce/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 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 '@veloce/api';\nimport { ConfigurationContextMode, LineItem, RuntimeModel, SalesforceIdUtils } from '@veloce/core';\nimport { Dictionary } from 'lodash';\nimport { combineLatest, Observable } from 'rxjs';\nimport { first, tap } from 'rxjs/operators';\nimport { ContextService } from '../../../services';\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 _assets?: LineItem[];\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() {\n this._isInitialized = false;\n this._runtimeContext = undefined;\n this._assets = undefined;\n this.initializationProps = undefined;\n this.uiDefinitionProperties = {};\n }\n\n public initTestMode(modelId: string, uiDefinition: UIDefinition) {\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 this._assets = props.assets;\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>) {\n if (!source) {\n return;\n }\n\n const value = source[propertyName];\n\n if (typeof value === 'string' && value.length === 15) {\n source[propertyName] = SalesforceIdUtils.generateId18FromId15(value);\n }\n }\n\n public getAsset(lineItem: LineItem): LineItem | undefined {\n return this._assets && this._assets.find(a => a.id === lineItem.openOrderLineItemId || a.id === lineItem.assetId);\n }\n\n public get isInitialized() {\n return this._isInitialized;\n }\n\n public get runtimeModel() {\n return this.runtimeContext?.runtimeModel;\n }\n\n public get runtimeContext() {\n return this._runtimeContext;\n }\n}\n","import { Attribute, CfgStatus, LineItem, PortDomain, UUID } from '@veloce/core';\nimport { Dictionary, flatten, 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 { ...replaceTo };\n }\n\n return {\n ...lineItem,\n lineItems: lineItem.lineItems.map(li => {\n if (li.id === replaceTo.id) {\n return replaceTo;\n } else if (li.lineItems.length) {\n return replaceLineItem(li, replaceTo);\n }\n return li;\n }),\n };\n};\n\nexport const mapAttributes = (attributes: Attribute[]): Dictionary<any> => {\n return attributes.reduce((acc, { name, value }) => ({ ...acc, [name]: value }), {});\n};\n\nexport const getAttributes = (attributes: Attribute[], names: string[] = []) => {\n const filtered = attributes.filter(({ name }) => names.includes(name));\n return sortBy(filtered, [({ name }) => names.indexOf(name)]);\n};\n\nexport const upsertAttributes = (\n originalAttributes: Attribute[],\n attributesToUpsert: { name: string; value: any }[],\n) => {\n return attributesToUpsert.reduce((acc, { name, value }) => {\n const [origAttr] = getAttributes(acc, [name]);\n return [\n ...acc.filter(attr => attr.name !== name),\n { ...(origAttr ?? { name }), cfgStatus: 'User' as CfgStatus, value },\n ];\n }, originalAttributes);\n};\n\nexport const patchAttributes = (rootLineItem: LineItem, id: string, attrs: { name: string; value: any }[]) => {\n const lineItem = findLineItem(id, [rootLineItem]);\n\n if (!lineItem) {\n return rootLineItem;\n }\n\n const attributes = upsertAttributes(lineItem.attributes, attrs);\n return replaceLineItem(rootLineItem, { ...lineItem, attributes });\n};\n\nexport const getAttributeValue = (attributes: Attribute[], name: string): any =>\n attributes.find(attr => attr.name === name)?.value;\n\nexport const generateLineItem = (\n port: string,\n type: string,\n parentId: string,\n attributes: { name: string; value: any }[] = [],\n lineItems: LineItem[] = [],\n): LineItem => {\n return {\n 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","import { LineItem } from '@veloce/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 { ConfigurationApiService } from '@veloce/api';\nimport { ConfirmationComponent, ToastType } from '@veloce/components';\nimport {\n ConfigurationContext,\n ConfigurationMode,\n ConfigurationRequest,\n LineItem,\n PricePlanCharge,\n RuntimeModel,\n VlWindow,\n} from '@veloce/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, QuoteDraftService } from '../../../services';\nimport { QuoteStates, RuntimeContext, RuntimeStep } from '../../../types';\nimport { LineItemWorker } from '../../../utils';\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 states: QuoteStates = {};\n\n private lineItem = new BehaviorSubject<LineItem | undefined>(undefined);\n private charges = new BehaviorSubject<Dictionary<PricePlanCharge>>({});\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() {\n this.hasUnsavedChanges = false;\n this.runtimeService.reset();\n\n this.states = {};\n this.lineItem.next(undefined);\n this.charges.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.states.configurableRamp = new LineItemWorker(this.lineItem.value).replace(lineItem).li;\n this.states.asset = this.states.configurableRamp\n ? this.runtimeService.getAsset(this.states.configurableRamp)\n : undefined;\n\n 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 updateCurrentStates(update: Partial<QuoteStates>) {\n this.states = {\n ...this.states,\n ...update,\n };\n }\n\n public get(): Observable<LineItem | undefined> {\n return this.lineItem.asObservable().pipe(shareReplay());\n }\n\n public getSnapshot(): LineItem | undefined {\n return this.lineItem.value ? { ...this.lineItem.value } : undefined;\n }\n\n public getRuntimeModel(): RuntimeModel | undefined {\n return this.runtimeService.runtimeModel;\n }\n\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<PricePlanCharge>> {\n return this.charges.asObservable();\n }\n\n public get chargesSnapshot(): Dictionary<PricePlanCharge> {\n return this.charges.value;\n }\n\n public configure(): Observable<LineItem> {\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.states.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, deletedLineItems }) => {\n this.contextService.update(context ?? {});\n this.charges.next(charges ?? {});\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 this.updateCurrentStates({\n currentState: this.quoteDraftService.currentState,\n });\n\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 return {\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.states.currentState || [],\n asset: this.states.asset,\n };\n }\n\n private showInactiveProductsConfirmation() {\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: {\n confirmationConfig: {\n title: ' ',\n description: 'This quote contains inactive products. Do you want to remove them?',\n submitBtn: 'Remove products',\n cancelBtn: 'Back to Quote',\n },\n },\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","import { Injectable } from '@angular/core';\nimport { LineItem } from '@veloce/core';\nimport { 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[]) {\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);\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): 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;\n if (charge) {\n charge.priceAdjustment = 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 {\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 = lineItem.chargeGroupItems.find(({ id }) => id === update.id);\n if (!foundChargeGroup) {\n return false;\n }\n\n if (update.attributeType === 'PRICE_ADJUSTMENT') {\n foundChargeGroup.priceAdjustment = 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 '@veloce/api';\nimport { ConfigurationContext, LineItem, PricePlanCharge, QuoteDraft } from '@veloce/core';\nimport { cloneDeep, Dictionary } from 'lodash';\nimport { catchError, map, noop, Observable, of, shareReplay, switchMap, tap, throwError } from 'rxjs';\nimport { ContextService, QuoteDraftService } from '../../../services';\nimport { ConfigurationService } from '../../configuration';\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 => this.quoteDraftService.updateQuoteDraft(result)),\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);\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 initialState = this.quoteDraftService.activeInitialState;\n const currentState = this.quoteDraftService.activeCurrentState;\n\n const currentLineItemIndex = currentState.findIndex(({ id }) => id === lineItemId);\n const currentLineItem = currentState[currentLineItemIndex];\n\n const initialLineItem = initialState.find(({ integrationId }) => integrationId === currentLineItem?.integrationId);\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 => [...quoteDraft.currentState, lineItem]),\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<PricePlanCharge>> {\n return this.quoteDraftService.quoteDraft$.pipe(map(({ charges }) => charges));\n }\n\n public get chargesSnapshot(): Dictionary<PricePlanCharge> {\n return this.quoteDraftService.quoteDraft?.charges ?? {};\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 '@veloce/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 { ConfigurationApiService, ContextApiService, ProductModelApiService } from '@veloce/api';\nimport { ConfirmationDialogModule } from '@veloce/components';\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 { NgModule } from '@angular/core';\nimport { FlowConfigurationModule } from './modules';\nimport { ConfigurationModule } from './modules/configuration/configuration.module';\nimport { ContextService, ProductImagesService, QuoteDraftService } from './services';\n\n@NgModule({\n imports: [ConfigurationModule, FlowConfigurationModule],\n providers: [ContextService, QuoteDraftService, ProductImagesService],\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","Injectable","distinctUntilChanged","catchError","of","switchMap","skip","zip","noop","take","combineLatest","shareReplay","ConfigurationContextMode","RuntimeModel","first","SalesforceIdUtils","flatten","sortBy","ConfigurationMode","throwError","ToastType","finalize","ConfirmationComponent","moment","cloneDeep","PriceApiService","NgModule","ConfirmationDialogModule","ContextApiService","ProductModelApiService","ConfigurationApiService"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"veloce-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/services/context.service.ts","../../../../libs/sdk/core/services/product-images.service.ts","../../../../libs/sdk/core/services/quote-draft.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/modules/configuration/services/configuration.service.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/core.module.ts","../../../../libs/sdk/core/veloce-sdk-core.ts"],"sourcesContent":["import { LineItem, UUID } from '@veloce/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 __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 (_) 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 Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\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: n === \"return\" } : 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","import { ContextProperties, RuntimeModel } from '@veloce/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","import { Injectable } from '@angular/core';\nimport { ContextApiService } from '@veloce/api';\nimport { ConfigurationContext, ConfigurationContextMode } from '@veloce/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 get isInitialized(): boolean {\n return Boolean(this.context.value);\n }\n\n 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 resolve$(): Observable<ConfigurationContext> {\n return this.context.pipe(filter((ctx): ctx is ConfigurationContext => Boolean(ctx)));\n }\n\n 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 delete(): void {\n this.context.next(null);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ProductApiService } from '@veloce/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 { Injectable } from '@angular/core';\nimport { PriceApiService, QuoteApiService } from '@veloce/api';\nimport { ConfigurationContextMode, LineItem, PriceList, PriceSummary, QuoteDraft } from '@veloce/core';\nimport { Dictionary } 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 isInitialized$ = new BehaviorSubject<boolean>(false);\n public get isInitialized(): boolean {\n return this.isInitialized$.getValue();\n }\n public set isInitialized(value: boolean) {\n if (this.isInitialized !== value) {\n this.isInitialized$.next(value);\n }\n }\n\n public allPriceLists: PriceList[] = [];\n public assetPriceLists: PriceList[] = [];\n public hasUnsavedChanges = false;\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.isInitialized$\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() {\n this.resetSubj$.next(true);\n this.quoteSubj$.next(null);\n }\n\n public init(quoteId: string, params: Dictionary<string>): Observable<void> {\n return zip(\n this.context.resolve$(),\n this.quoteApiService.getQuoteDraft(quoteId, params),\n this.priceApiService.getPriceLists(),\n ).pipe(\n tap(([context, quote, allPriceLists]) => {\n this.allPriceLists = allPriceLists;\n this.quoteSubj$.next(quote);\n\n this.context.update({\n ...context,\n ...quote.context,\n properties: {\n ...context.properties,\n ...quote.context.properties,\n },\n });\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.update(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 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 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 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 get currentState$(): Observable<LineItem[]> {\n return this.quoteDraft$.pipe(map(quote => quote.currentState));\n }\n\n get currentState(): LineItem[] {\n return this.quoteDraft?.currentState ?? [];\n }\n\n /**\n * Stream of activeCurrentState\n */\n 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 get activeCurrentState(): LineItem[] {\n const ctx = this.context.resolve();\n let currentState = this.quoteDraft?.currentState ?? [];\n\n if (ctx.mode === ConfigurationContextMode.ACCOUNT) {\n currentState = this.filterByActivePriceList(currentState);\n }\n\n return currentState;\n }\n\n /**\n * Stream of activeInitialState\n */\n 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 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 get isStandalone(): boolean {\n return this.context.resolve().properties.standalone === 'true';\n }\n\n get isStandalone$(): Observable<boolean> {\n return this.context.resolve$().pipe(map(() => this.isStandalone));\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 const activePriceList = this.assetPriceLists[0];\n\n this.updateActivePriceList(activePriceList?.id);\n\n // Update PriceListId in context properties\n // TODO: remove it when backend will have such logic\n this.context.update({ properties: { PriceListId: activePriceList?.id } });\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 = true;\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ConfigurationApiService } from '@veloce/api';\nimport { RuntimeData, RuntimeModel, UIDefinition as LegacyUiDefinition } from '@veloce/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 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 '@veloce/api';\nimport { ConfigurationContextMode, LineItem, RuntimeModel, SalesforceIdUtils } from '@veloce/core';\nimport { Dictionary } from 'lodash';\nimport { combineLatest, Observable } from 'rxjs';\nimport { first, tap } from 'rxjs/operators';\nimport { ContextService } from '../../../services';\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 _assets?: LineItem[];\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() {\n this._isInitialized = false;\n this._runtimeContext = undefined;\n this._assets = undefined;\n this.initializationProps = undefined;\n this.uiDefinitionProperties = {};\n }\n\n public initTestMode(modelId: string, uiDefinition: UIDefinition) {\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 this._assets = props.assets;\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>) {\n if (!source) {\n return;\n }\n\n const value = source[propertyName];\n\n if (typeof value === 'string' && value.length === 15) {\n source[propertyName] = SalesforceIdUtils.generateId18FromId15(value);\n }\n }\n\n public getAsset(lineItem: LineItem): LineItem | undefined {\n return this._assets && this._assets.find(a => a.id === lineItem.openOrderLineItemId || a.id === lineItem.assetId);\n }\n\n public get isInitialized() {\n return this._isInitialized;\n }\n\n public get runtimeModel() {\n return this.runtimeContext?.runtimeModel;\n }\n\n public get runtimeContext() {\n return this._runtimeContext;\n }\n}\n","import { Attribute, CfgStatus, LineItem, PortDomain, UUID } from '@veloce/core';\nimport { Dictionary, flatten, 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 { ...replaceTo };\n }\n\n return {\n ...lineItem,\n lineItems: lineItem.lineItems.map(li => {\n if (li.id === replaceTo.id) {\n return replaceTo;\n } else if (li.lineItems.length) {\n return replaceLineItem(li, replaceTo);\n }\n return li;\n }),\n };\n};\n\nexport const mapAttributes = (attributes: Attribute[]): Dictionary<any> => {\n return attributes.reduce((acc, { name, value }) => ({ ...acc, [name]: value }), {});\n};\n\nexport const getAttributes = (attributes: Attribute[], names: string[] = []) => {\n const filtered = attributes.filter(({ name }) => names.includes(name));\n return sortBy(filtered, [({ name }) => names.indexOf(name)]);\n};\n\nexport const upsertAttributes = (\n originalAttributes: Attribute[],\n attributesToUpsert: { name: string; value: any }[],\n) => {\n return attributesToUpsert.reduce((acc, { name, value }) => {\n const [origAttr] = getAttributes(acc, [name]);\n return [\n ...acc.filter(attr => attr.name !== name),\n { ...(origAttr ?? { name }), cfgStatus: 'User' as CfgStatus, value },\n ];\n }, originalAttributes);\n};\n\nexport const patchAttributes = (rootLineItem: LineItem, id: string, attrs: { name: string; value: any }[]) => {\n const lineItem = findLineItem(id, [rootLineItem]);\n\n if (!lineItem) {\n return rootLineItem;\n }\n\n const attributes = upsertAttributes(lineItem.attributes, attrs);\n return replaceLineItem(rootLineItem, { ...lineItem, attributes });\n};\n\nexport const getAttributeValue = (attributes: Attribute[], name: string): any =>\n attributes.find(attr => attr.name === name)?.value;\n\nexport const generateLineItem = (\n port: string,\n type: string,\n parentId: string,\n attributes: { name: string; value: any }[] = [],\n lineItems: LineItem[] = [],\n): LineItem => {\n return {\n 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","import { LineItem } from '@veloce/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 { ConfigurationApiService } from '@veloce/api';\nimport { ConfirmationComponent, ToastType } from '@veloce/components';\nimport {\n Charge,\n ConfigurationContext,\n ConfigurationMode,\n ConfigurationRequest,\n LineItem,\n RuntimeModel,\n VlWindow,\n} from '@veloce/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, QuoteDraftService } from '../../../services';\nimport { QuoteStates, RuntimeContext, RuntimeStep } from '../../../types';\nimport { LineItemWorker } from '../../../utils';\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 states: QuoteStates = {};\n\n private lineItem = new BehaviorSubject<LineItem | undefined>(undefined);\n private charges = new BehaviorSubject<Dictionary<Charge>>({});\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() {\n this.hasUnsavedChanges = false;\n this.runtimeService.reset();\n\n this.states = {};\n this.lineItem.next(undefined);\n this.charges.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.states.configurableRamp = new LineItemWorker(this.lineItem.value).replace(lineItem).li;\n this.states.asset = this.states.configurableRamp\n ? this.runtimeService.getAsset(this.states.configurableRamp)\n : undefined;\n\n 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 updateCurrentStates(update: Partial<QuoteStates>) {\n this.states = {\n ...this.states,\n ...update,\n };\n }\n\n public get(): Observable<LineItem | undefined> {\n return this.lineItem.asObservable().pipe(shareReplay());\n }\n\n public getSnapshot(): LineItem | undefined {\n return this.lineItem.value ? { ...this.lineItem.value } : undefined;\n }\n\n public getRuntimeModel(): RuntimeModel | undefined {\n return this.runtimeService.runtimeModel;\n }\n\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 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.states.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, deletedLineItems }) => {\n this.contextService.update(context ?? {});\n this.charges.next(charges ?? {});\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 this.updateCurrentStates({\n currentState: this.quoteDraftService.currentState,\n });\n\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 return {\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.states.currentState || [],\n asset: this.states.asset,\n };\n }\n\n private showInactiveProductsConfirmation() {\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: {\n confirmationConfig: {\n title: ' ',\n description: 'This quote contains inactive products. Do you want to remove them?',\n submitBtn: 'Remove products',\n cancelBtn: 'Back to Quote',\n },\n },\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","import { Injectable } from '@angular/core';\nimport { LineItem } from '@veloce/core';\nimport { 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[]) {\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);\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): 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;\n if (charge) {\n charge.priceAdjustment = 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 {\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 = lineItem.chargeGroupItems.find(({ id }) => id === update.id);\n if (!foundChargeGroup) {\n return false;\n }\n\n if (update.attributeType === 'PRICE_ADJUSTMENT') {\n foundChargeGroup.priceAdjustment = 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 '@veloce/api';\nimport { Charge, ConfigurationContext, LineItem, QuoteDraft } from '@veloce/core';\nimport { cloneDeep, Dictionary } from 'lodash';\nimport { catchError, map, noop, Observable, of, shareReplay, switchMap, tap, throwError } from 'rxjs';\nimport { ContextService, QuoteDraftService } from '../../../services';\nimport { ConfigurationService } from '../../configuration';\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 => this.quoteDraftService.updateQuoteDraft(result)),\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);\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 initialState = this.quoteDraftService.activeInitialState;\n const currentState = this.quoteDraftService.activeCurrentState;\n\n const currentLineItemIndex = currentState.findIndex(({ id }) => id === lineItemId);\n const currentLineItem = currentState[currentLineItemIndex];\n\n const initialLineItem = initialState.find(({ integrationId }) => integrationId === currentLineItem?.integrationId);\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 => [...quoteDraft.currentState, lineItem]),\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 chargesSnapshot(): Dictionary<Charge> {\n return this.quoteDraftService.quoteDraft?.charges ?? {};\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 '@veloce/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 { ConfigurationApiService, ContextApiService, ProductModelApiService } from '@veloce/api';\nimport { ConfirmationDialogModule } from '@veloce/components';\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 { NgModule } from '@angular/core';\nimport { FlowConfigurationModule } from './modules';\nimport { ConfigurationModule } from './modules/configuration/configuration.module';\nimport { ContextService, ProductImagesService, QuoteDraftService } from './services';\n\n@NgModule({\n imports: [ConfigurationModule, FlowConfigurationModule],\n providers: [ContextService, QuoteDraftService, ProductImagesService],\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","Injectable","distinctUntilChanged","catchError","of","switchMap","skip","zip","noop","take","combineLatest","shareReplay","ConfigurationContextMode","RuntimeModel","first","SalesforceIdUtils","flatten","sortBy","ConfigurationMode","throwError","ToastType","finalize","ConfirmationComponent","moment","cloneDeep","PriceApiService","NgModule","ConfirmationDialogModule","ContextApiService","ProductModelApiService","ConfigurationApiService"],"mappings":"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"}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { ConfigurationApiService } from '@veloce/api';
|
2
|
-
import { ConfigurationContext, LineItem,
|
2
|
+
import { Charge, ConfigurationContext, LineItem, RuntimeModel } from '@veloce/core';
|
3
3
|
import { Dictionary } from 'lodash';
|
4
4
|
import { MessageService } from 'primeng/api';
|
5
5
|
import { DialogService } from 'primeng/dynamicdialog';
|
@@ -31,8 +31,8 @@ export declare class ConfigurationService {
|
|
31
31
|
getRuntimeContext(): RuntimeContext | undefined;
|
32
32
|
get contextSnapshot(): ConfigurationContext;
|
33
33
|
get context$(): Observable<ConfigurationContext>;
|
34
|
-
get charges$(): Observable<Dictionary<
|
35
|
-
get chargesSnapshot(): Dictionary<
|
34
|
+
get charges$(): Observable<Dictionary<Charge>>;
|
35
|
+
get chargesSnapshot(): Dictionary<Charge>;
|
36
36
|
configure(): Observable<LineItem>;
|
37
37
|
configureExternal$(productId: string, qty?: number): Observable<LineItem>;
|
38
38
|
private createRequest;
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { ProceduresApiService } from '@veloce/api';
|
2
|
-
import { ConfigurationContext, LineItem,
|
2
|
+
import { Charge, ConfigurationContext, LineItem, QuoteDraft } from '@veloce/core';
|
3
3
|
import { Dictionary } from 'lodash';
|
4
4
|
import { Observable } from 'rxjs';
|
5
5
|
import { ContextService, QuoteDraftService } from '../../../services';
|
@@ -26,8 +26,8 @@ export declare class FlowConfigurationService {
|
|
26
26
|
addToCart$(productId: string, qty?: number): Observable<QuoteDraft | null>;
|
27
27
|
get(): Observable<LineItem[]>;
|
28
28
|
getSnapshot(): LineItem[];
|
29
|
-
get charges$(): Observable<Dictionary<
|
30
|
-
get chargesSnapshot(): Dictionary<
|
29
|
+
get charges$(): Observable<Dictionary<Charge>>;
|
30
|
+
get chargesSnapshot(): Dictionary<Charge>;
|
31
31
|
get contextSnapshot(): ConfigurationContext;
|
32
32
|
get context$(): Observable<ConfigurationContext>;
|
33
33
|
private handleErrorAndBounceBack;
|
@@ -161,4 +161,4 @@ ConfigurationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0",
|
|
161
161
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: ConfigurationService, decorators: [{
|
162
162
|
type: Injectable
|
163
163
|
}], ctorParameters: function () { return [{ type: i1.QuoteDraftService }, { type: i2.ConfigurationRuntimeService }, { type: i1.ContextService }, { type: i3.ConfigurationApiService }, { type: i4.MessageService }, { type: i5.DialogService }]; } });
|
164
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvY29yZS9tb2R1bGVzL2NvbmZpZ3VyYXRpb24vc2VydmljZXMvY29uZmlndXJhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLFNBQVMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3RFLE9BQU8sRUFFTCxpQkFBaUIsR0FNbEIsTUFBTSxjQUFjLENBQUM7QUFJdEIsT0FBTyxFQUFFLGVBQWUsRUFBYyxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVFLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWxGLE9BQU8sRUFBK0IsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLFlBQVksQ0FBQzs7Ozs7OztBQU1oRCxNQUFNLE9BQU8sb0JBQW9CO0lBUy9CLFlBQ1UsaUJBQW9DLEVBQ3BDLGNBQTJDLEVBQzNDLGNBQThCLEVBQzlCLHVCQUFnRCxFQUNoRCxjQUE4QixFQUM5QixhQUE0QjtRQUw1QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLG1CQUFjLEdBQWQsY0FBYyxDQUE2QjtRQUMzQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUF5QjtRQUNoRCxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsa0JBQWEsR0FBYixhQUFhLENBQWU7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IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbmZpZ3VyYXRpb25BcGlTZXJ2aWNlIH0gZnJvbSAnQHZlbG9jZS9hcGknO1xuaW1wb3J0IHsgQ29uZmlybWF0aW9uQ29tcG9uZW50LCBUb2FzdFR5cGUgfSBmcm9tICdAdmVsb2NlL2NvbXBvbmVudHMnO1xuaW1wb3J0IHtcbiAgQ29uZmlndXJhdGlvbkNvbnRleHQsXG4gIENvbmZpZ3VyYXRpb25Nb2RlLFxuICBDb25maWd1cmF0aW9uUmVxdWVzdCxcbiAgTGluZUl0ZW0sXG4gIFByaWNlUGxhbkNoYXJnZSxcbiAgUnVudGltZU1vZGVsLFxuICBWbFdpbmRvdyxcbn0gZnJvbSAnQHZlbG9jZS9jb3JlJztcbmltcG9ydCB7IERpY3Rpb25hcnkgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAncHJpbWVuZy9keW5hbWljZGlhbG9nJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgc2hhcmVSZXBsYXksIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGZpbmFsaXplLCBmaXJzdCwgbWFwLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IENvbnRleHRTZXJ2aWNlLCBRdW90ZURyYWZ0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IFF1b3RlU3RhdGVzLCBSdW50aW1lQ29udGV4dCwgUnVudGltZVN0ZXAgfSBmcm9tICcuLi8uLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBMaW5lSXRlbVdvcmtlciB9IGZyb20gJy4uLy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IGdldERlZmF1bHRMaW5lSXRlbSB9IGZyb20gJy4uL2hlbHBlcnMnO1xuaW1wb3J0IHsgQ29uZmlndXJhdGlvblJ1bnRpbWVTZXJ2aWNlIH0gZnJvbSAnLi9jb25maWd1cmF0aW9uLXJ1bnRpbWUuc2VydmljZSc7XG5cbmRlY2xhcmUgY29uc3Qgd2luZG93OiBWbFdpbmRvdztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENvbmZpZ3VyYXRpb25TZXJ2aWNlIHtcbiAgcHJpdmF0ZSBtb2RlID0gQ29uZmlndXJhdGlvbk1vZGUuU0VBUkNIO1xuICBwcml2YXRlIHN0YXRlczogUXVvdGVTdGF0ZXMgPSB7fTtcblxuICBwcml2YXRlIGxpbmVJdGVtID0gbmV3IEJlaGF2aW9yU3ViamVjdDxMaW5lSXRlbSB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcHJpdmF0ZSBjaGFyZ2VzID0gbmV3IEJlaGF2aW9yU3ViamVjdDxEaWN0aW9uYXJ5PFByaWNlUGxhbkNoYXJnZT4+KHt9KTtcblxuICBwdWJsaWMgaGFzVW5zYXZlZENoYW5nZXMgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHF1b3RlRHJhZnRTZXJ2aWNlOiBRdW90ZURyYWZ0U2VydmljZSxcbiAgICBwcml2YXRlIHJ1bnRpbWVTZXJ2aWNlOiBDb25maWd1cmF0aW9uUnVudGltZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb250ZXh0U2VydmljZTogQ29udGV4dFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb25maWd1cmF0aW9uQXBpU2VydmljZTogQ29uZmlndXJhdGlvbkFwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBkaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlLFxuICApIHt9XG5cbiAgcHVibGljIHJlc2V0KCkge1xuICAgIHRoaXMuaGFzVW5zYXZlZENoYW5nZXMgPSBmYWxzZTtcbiAgICB0aGlzLnJ1bnRpbWVTZXJ2aWNlLnJlc2V0KCk7XG5cbiAgICB0aGlzLnN0YXRlcyA9IHt9O1xuICAgIHRoaXMubGluZUl0ZW0ubmV4dCh1bmRlZmluZWQpO1xuICAgIHRoaXMuY2hhcmdlcy5uZXh0KHt9KTtcbiAgfVxuXG4gIHB1YmxpYyBwYXRjaCQobGluZUl0ZW06IExpbmVJdGVtKTogT2JzZXJ2YWJsZTxMaW5lSXRlbT4ge1xuICAgIGlmICghdGhpcy5saW5lSXRlbS52YWx1ZSkge1xuICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gbmV3IEVycm9yKGBTb3VyY2UgTGluZUl0ZW0gbm90IGZvdW5kYCkpO1xuICAgIH1cblxuICAgIHRoaXMuc3RhdGVzLmNvbmZpZ3VyYWJsZVJhbXAgPSBuZXcgTGluZUl0ZW1Xb3JrZXIodGhpcy5saW5lSXRlbS52YWx1ZSkucmVwbGFjZShsaW5lSXRlbSkubGk7XG4gICAgdGhpcy5zdGF0ZXMuYXNzZXQgPSB0aGlzLnN0YXRlcy5jb25maWd1cmFibGVSYW1wXG4gICAgICA/IHRoaXMucnVudGltZVNlcnZpY2UuZ2V0QXNzZXQodGhpcy5zdGF0ZXMuY29uZmlndXJhYmxlUmFtcClcbiAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgcmV0dXJuIHRoaXMuY29uZmlndXJlKCkucGlwZShcbiAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcblxuICAgICAgICBpZiAoIXRoaXMucnVudGltZVNlcnZpY2UudWlEZWZpbml0aW9uUHJvcGVydGllcy5zdXBwcmVzc1RvYXN0TWVzc2FnZXMpIHtcbiAgICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnZXJyb3InLCBzdW1tYXJ5OiBlcnJvciB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGJvdW5jZSBiYWNrIGlmIGNvbmZpZ3VyYXRpb24gY2FsbCBoYXMgZmFpbGVkXG4gICAgICAgIHRoaXMubGluZUl0ZW0ubmV4dCh0aGlzLmxpbmVJdGVtLnZhbHVlID8geyAuLi50aGlzLmxpbmVJdGVtLnZhbHVlIH0gOiB1bmRlZmluZWQpO1xuXG4gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IGVycm9yKTtcbiAgICAgIH0pLFxuICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLmhhc1Vuc2F2ZWRDaGFuZ2VzKSB7XG4gICAgICAgICAgdGhpcy5oYXNVbnNhdmVkQ2hhbmdlcyA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgcGF0Y2gobGluZUl0ZW06IExpbmVJdGVtKTogdm9pZCB7XG4gICAgdGhpcy5wYXRjaCQobGluZUl0ZW0pLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZUN1cnJlbnRTdGF0ZXModXBkYXRlOiBQYXJ0aWFsPFF1b3RlU3RhdGVzPikge1xuICAgIHRoaXMuc3RhdGVzID0ge1xuICAgICAgLi4udGhpcy5zdGF0ZXMsXG4gICAgICAuLi51cGRhdGUsXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQoKTogT2JzZXJ2YWJsZTxMaW5lSXRlbSB8IHVuZGVmaW5lZD4ge1xuICAgIHJldHVybiB0aGlzLmxpbmVJdGVtLmFzT2JzZXJ2YWJsZSgpLnBpcGUoc2hhcmVSZXBsYXkoKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0U25hcHNob3QoKTogTGluZUl0ZW0gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmxpbmVJdGVtLnZhbHVlID8geyAuLi50aGlzLmxpbmVJdGVtLnZhbHVlIH0gOiB1bmRlZmluZWQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0UnVudGltZU1vZGVsKCk6IFJ1bnRpbWVNb2RlbCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMucnVudGltZVNlcnZpY2UucnVudGltZU1vZGVsO1xuICB9XG5cbiAgcHVibGljIGdldFJ1bnRpbWVDb250ZXh0KCk6IFJ1bnRpbWVDb250ZXh0IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5ydW50aW1lU2VydmljZS5ydW50aW1lQ29udGV4dDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY29udGV4dFNuYXBzaG90KCk6IENvbmZpZ3VyYXRpb25Db250ZXh0IHtcbiAgICByZXR1cm4gdGhpcy5jb250ZXh0U2VydmljZS5yZXNvbHZlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNvbnRleHQkKCk6IE9ic2VydmFibGU8Q29uZmlndXJhdGlvbkNvbnRleHQ+IHtcbiAgICByZXR1cm4gdGhpcy5jb250ZXh0U2VydmljZS5yZXNvbHZlJCgpO1xuICB9XG5cbiAgcHVibGljIGdldCBjaGFyZ2VzJCgpOiBPYnNlcnZhYmxlPERpY3Rpb25hcnk8UHJpY2VQbGFuQ2hhcmdlPj4ge1xuICAgIHJldHVybiB0aGlzLmNoYXJnZXMuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNoYXJnZXNTbmFwc2hvdCgpOiBEaWN0aW9uYXJ5PFByaWNlUGxhbkNoYXJnZT4ge1xuICAgIHJldHVybiB0aGlzLmNoYXJnZXMudmFsdWU7XG4gIH1cblxuICBwdWJsaWMgY29uZmlndXJlKCk6IE9ic2VydmFibGU8TGluZUl0ZW0+IHtcbiAgICBjb25zdCBydW50aW1lQ29udGV4dCA9IHRoaXMuZ2V0UnVudGltZUNvbnRleHQoKTtcbiAgICBjb25zdCBydW50aW1lTW9kZWwgPSB0aGlzLmdldFJ1bnRpbWVNb2RlbCgpO1xuICAgIGlmICghcnVudGltZUNvbnRleHQgfHwgIXJ1bnRpbWVNb2RlbCkge1xuICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gbmV3IEVycm9yKCdSdW50aW1lIGNvbnRleHQvbW9kZWwgbm90IGluaXRpYWxpemVkJykpO1xuICAgIH1cblxuICAgIGNvbnN0IHVpRGVmaW5pdGlvblByb3BlcnRpZXMgPSB7XG4gICAgICAuLi4ocnVudGltZUNvbnRleHQudWlEZWZpbml0aW9uPy5wcm9wZXJ0aWVzID8/IHt9KSxcbiAgICAgIC4uLih0aGlzLnJ1bnRpbWVTZXJ2aWNlLnVpRGVmaW5pdGlvblByb3BlcnRpZXMgPz8ge30pLFxuICAgIH07XG4gICAgY29uc3QgcXR5ID0gdGhpcy5ydW50aW1lU2VydmljZS5pbml0aWFsaXphdGlvblByb3BzPy5kZWZhdWx0UXR5O1xuICAgIGNvbnN0IGxpbmVJdGVtID0gdGhpcy5zdGF0ZXMuY29uZmlndXJhYmxlUmFtcCA/PyBnZXREZWZhdWx0TGluZUl0ZW0ocnVudGltZUNvbnRleHQsIHVpRGVmaW5pdGlvblByb3BlcnRpZXMsIHF0eSk7XG4gICAgY29uc3QgY29uZmlndXJhdGlvblJlcXVlc3QgPSB0aGlzLmNyZWF0ZVJlcXVlc3QobGluZUl0ZW0pO1xuXG4gICAgY29uc3QgbWFpblByaWNpbmdFbmFibGVkID0gcnVudGltZUNvbnRleHQucHJvcGVydGllcz8uUHJpY2luZ0VuYWJsZWQ7XG4gICAgY29uc3QgcHJpY2luZ0VuYWJsZWQgPSBtYWluUHJpY2luZ0VuYWJsZWQgPyBtYWluUHJpY2luZ0VuYWJsZWQgPT09ICd0cnVlJyA6IHVpRGVmaW5pdGlvblByb3BlcnRpZXMucHJpY2luZ0VuYWJsZWQ7XG5cbiAgICByZXR1cm4gdGhpcy5jb25maWd1cmF0aW9uQXBpU2VydmljZVxuICAgICAgLmNvbmZpZ3VyZUxpbmVJdGVtKHsgY29uZmlndXJhdGlvblJlcXVlc3QsIHJ1bnRpbWVNb2RlbCwgcHJpY2luZ0VuYWJsZWQgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHsgbGluZUl0ZW0sIGNvbnRleHQsIGNoYXJnZXMsIGRlbGV0ZWRMaW5lSXRlbXMgfSkgPT4ge1xuICAgICAgICAgIHRoaXMuY29udGV4dFNlcnZpY2UudXBkYXRlKGNvbnRleHQgPz8ge30pO1xuICAgICAgICAgIHRoaXMuY2hhcmdlcy5uZXh0KGNoYXJnZXMgPz8ge30pO1xuICAgICAgICAgIGlmIChkZWxldGVkTGluZUl0ZW1zPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuc2hvd0luYWN0aXZlUHJvZHVjdHNDb25maXJtYXRpb24oKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGxpbmVJdGVtO1xuICAgICAgICB9KSxcbiAgICAgIClcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAobGluZUl0ZW0gPT4gbGluZUl0ZW0gJiYgdGhpcy5saW5lSXRlbS5uZXh0KGxpbmVJdGVtKSksXG4gICAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT5cbiAgICAgICAgICB0aHJvd0Vycm9yKCgpID0+IG5ldyBFcnJvcihlcnJvci5lcnJvcj8ubWVzc2FnZSB8fCBlcnJvci5tZXNzYWdlIHx8IEpTT04uc3RyaW5naWZ5KGVycm9yKSkpLFxuICAgICAgICApLFxuICAgICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBjb25maWd1cmVFeHRlcm5hbCQocHJvZHVjdElkOiBzdHJpbmcsIHF0eT86IG51bWJlcik6IE9ic2VydmFibGU8TGluZUl0ZW0+IHtcbiAgICB0aGlzLnVwZGF0ZUN1cnJlbnRTdGF0ZXMoe1xuICAgICAgY3VycmVudFN0YXRlOiB0aGlzLnF1b3RlRHJhZnRTZXJ2aWNlLmN1cnJlbnRTdGF0ZSxcbiAgICB9KTtcblxuICAgIHJldHVybiB0aGlzLnJ1bnRpbWVTZXJ2aWNlLmluaXQoeyBwcm9kdWN0SWQsIGRlZmF1bHRRdHk6IHF0eSB9KS5waXBlKFxuICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMuY29uZmlndXJlKCkpLFxuICAgICAgZmlyc3QoKSxcbiAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4ge1xuICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiBUb2FzdFR5cGUuZXJyb3IsIHN1bW1hcnk6IGVycm9yIH0pO1xuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH0pLFxuICAgICAgZmluYWxpemUoKCkgPT4gdGhpcy5yZXNldCgpKSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVSZXF1ZXN0KGxpbmVJdGVtOiBMaW5lSXRlbSk6IENvbmZpZ3VyYXRpb25SZXF1ZXN0IHtcbiAgICByZXR1cm4ge1xuICAgICAgbGluZUl0ZW0sXG4gICAgICBtb2RlOiB0aGlzLm1vZGUsXG4gICAgICBzdGVwOiAhdGhpcy5saW5lSXRlbS52YWx1ZSA/IFJ1bnRpbWVTdGVwLlNUQVJUIDogUnVudGltZVN0ZXAuVVBEQVRFLFxuICAgICAgYXR0cmlidXRlRG9tYWluTW9kZTogJ0FMTCcsXG4gICAgICBjb250ZXh0OiB0aGlzLmNvbnRleHRTZXJ2aWNlLnJlc29sdmUoKSxcbiAgICAgIGxpbmVJdGVtczogdGhpcy5zdGF0ZXMuY3VycmVudFN0YXRlIHx8IFtdLFxuICAgICAgYXNzZXQ6IHRoaXMuc3RhdGVzLmFzc2V0LFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIHNob3dJbmFjdGl2ZVByb2R1Y3RzQ29uZmlybWF0aW9uKCkge1xuICAgIHRoaXMuZGlhbG9nU2VydmljZVxuICAgICAgLm9wZW4oQ29uZmlybWF0aW9uQ29tcG9uZW50LCB7XG4gICAgICAgIGRpc21pc3NhYmxlTWFzazogZmFsc2UsXG4gICAgICAgIGNsb3NlT25Fc2NhcGU6IGZhbHNlLFxuICAgICAgICBjbG9zYWJsZTogZmFsc2UsXG4gICAgICAgIHNob3dIZWFkZXI6IHRydWUsXG4gICAgICAgIGhlYWRlcjogYEluYWN0aXZlIFByb2R1Y3RzIGluIFF1b3RlYCxcbiAgICAgICAgd2lkdGg6ICc0NDBweCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICBjb25maXJtYXRpb25Db25maWc6IHtcbiAgICAgICAgICAgIHRpdGxlOiAnICcsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1RoaXMgcXVvdGUgY29udGFpbnMgaW5hY3RpdmUgcHJvZHVjdHMuIERvIHlvdSB3YW50IHRvIHJlbW92ZSB0aGVtPycsXG4gICAgICAgICAgICBzdWJtaXRCdG46ICdSZW1vdmUgcHJvZHVjdHMnLFxuICAgICAgICAgICAgY2FuY2VsQnRuOiAnQmFjayB0byBRdW90ZScsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0pXG4gICAgICAub25DbG9zZS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcbiAgICAgICAgaWYgKCFyZXN1bHQpIHtcbiAgICAgICAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5jb250ZXh0U2VydmljZS5yZXNvbHZlKCk7XG4gICAgICAgICAgd2luZG93WydWRUxPX0JBQ0tfRk4nXS5hcHBseShudWxsLCBbY29udGV4dC5oZWFkZXJJZF0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxufVxuIl19
|
164
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvY29yZS9tb2R1bGVzL2NvbmZpZ3VyYXRpb24vc2VydmljZXMvY29uZmlndXJhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLFNBQVMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3RFLE9BQU8sRUFHTCxpQkFBaUIsR0FLbEIsTUFBTSxjQUFjLENBQUM7QUFJdEIsT0FBTyxFQUFFLGVBQWUsRUFBYyxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVFLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWxGLE9BQU8sRUFBK0IsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLFlBQVksQ0FBQzs7Ozs7OztBQU1oRCxNQUFNLE9BQU8sb0JBQW9CO0lBUy9CLFlBQ1UsaUJBQW9DLEVBQ3BDLGNBQTJDLEVBQzNDLGNBQThCLEVBQzlCLHVCQUFnRCxFQUNoRCxjQUE4QixFQUM5QixhQUE0QjtRQUw1QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLG1CQUFjLEdBQWQsY0FBYyxDQUE2QjtRQUMzQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUF5QjtRQUNoRCxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsa0JBQWEsR0FBYixhQUFhLENBQWU7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IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbmZpZ3VyYXRpb25BcGlTZXJ2aWNlIH0gZnJvbSAnQHZlbG9jZS9hcGknO1xuaW1wb3J0IHsgQ29uZmlybWF0aW9uQ29tcG9uZW50LCBUb2FzdFR5cGUgfSBmcm9tICdAdmVsb2NlL2NvbXBvbmVudHMnO1xuaW1wb3J0IHtcbiAgQ2hhcmdlLFxuICBDb25maWd1cmF0aW9uQ29udGV4dCxcbiAgQ29uZmlndXJhdGlvbk1vZGUsXG4gIENvbmZpZ3VyYXRpb25SZXF1ZXN0LFxuICBMaW5lSXRlbSxcbiAgUnVudGltZU1vZGVsLFxuICBWbFdpbmRvdyxcbn0gZnJvbSAnQHZlbG9jZS9jb3JlJztcbmltcG9ydCB7IERpY3Rpb25hcnkgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAncHJpbWVuZy9keW5hbWljZGlhbG9nJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgc2hhcmVSZXBsYXksIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGZpbmFsaXplLCBmaXJzdCwgbWFwLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IENvbnRleHRTZXJ2aWNlLCBRdW90ZURyYWZ0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IFF1b3RlU3RhdGVzLCBSdW50aW1lQ29udGV4dCwgUnVudGltZVN0ZXAgfSBmcm9tICcuLi8uLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBMaW5lSXRlbVdvcmtlciB9IGZyb20gJy4uLy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IGdldERlZmF1bHRMaW5lSXRlbSB9IGZyb20gJy4uL2hlbHBlcnMnO1xuaW1wb3J0IHsgQ29uZmlndXJhdGlvblJ1bnRpbWVTZXJ2aWNlIH0gZnJvbSAnLi9jb25maWd1cmF0aW9uLXJ1bnRpbWUuc2VydmljZSc7XG5cbmRlY2xhcmUgY29uc3Qgd2luZG93OiBWbFdpbmRvdztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENvbmZpZ3VyYXRpb25TZXJ2aWNlIHtcbiAgcHJpdmF0ZSBtb2RlID0gQ29uZmlndXJhdGlvbk1vZGUuU0VBUkNIO1xuICBwcml2YXRlIHN0YXRlczogUXVvdGVTdGF0ZXMgPSB7fTtcblxuICBwcml2YXRlIGxpbmVJdGVtID0gbmV3IEJlaGF2aW9yU3ViamVjdDxMaW5lSXRlbSB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcHJpdmF0ZSBjaGFyZ2VzID0gbmV3IEJlaGF2aW9yU3ViamVjdDxEaWN0aW9uYXJ5PENoYXJnZT4+KHt9KTtcblxuICBwdWJsaWMgaGFzVW5zYXZlZENoYW5nZXMgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHF1b3RlRHJhZnRTZXJ2aWNlOiBRdW90ZURyYWZ0U2VydmljZSxcbiAgICBwcml2YXRlIHJ1bnRpbWVTZXJ2aWNlOiBDb25maWd1cmF0aW9uUnVudGltZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb250ZXh0U2VydmljZTogQ29udGV4dFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb25maWd1cmF0aW9uQXBpU2VydmljZTogQ29uZmlndXJhdGlvbkFwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBkaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlLFxuICApIHt9XG5cbiAgcHVibGljIHJlc2V0KCkge1xuICAgIHRoaXMuaGFzVW5zYXZlZENoYW5nZXMgPSBmYWxzZTtcbiAgICB0aGlzLnJ1bnRpbWVTZXJ2aWNlLnJlc2V0KCk7XG5cbiAgICB0aGlzLnN0YXRlcyA9IHt9O1xuICAgIHRoaXMubGluZUl0ZW0ubmV4dCh1bmRlZmluZWQpO1xuICAgIHRoaXMuY2hhcmdlcy5uZXh0KHt9KTtcbiAgfVxuXG4gIHB1YmxpYyBwYXRjaCQobGluZUl0ZW06IExpbmVJdGVtKTogT2JzZXJ2YWJsZTxMaW5lSXRlbT4ge1xuICAgIGlmICghdGhpcy5saW5lSXRlbS52YWx1ZSkge1xuICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gbmV3IEVycm9yKGBTb3VyY2UgTGluZUl0ZW0gbm90IGZvdW5kYCkpO1xuICAgIH1cblxuICAgIHRoaXMuc3RhdGVzLmNvbmZpZ3VyYWJsZVJhbXAgPSBuZXcgTGluZUl0ZW1Xb3JrZXIodGhpcy5saW5lSXRlbS52YWx1ZSkucmVwbGFjZShsaW5lSXRlbSkubGk7XG4gICAgdGhpcy5zdGF0ZXMuYXNzZXQgPSB0aGlzLnN0YXRlcy5jb25maWd1cmFibGVSYW1wXG4gICAgICA/IHRoaXMucnVudGltZVNlcnZpY2UuZ2V0QXNzZXQodGhpcy5zdGF0ZXMuY29uZmlndXJhYmxlUmFtcClcbiAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgcmV0dXJuIHRoaXMuY29uZmlndXJlKCkucGlwZShcbiAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcblxuICAgICAgICBpZiAoIXRoaXMucnVudGltZVNlcnZpY2UudWlEZWZpbml0aW9uUHJvcGVydGllcy5zdXBwcmVzc1RvYXN0TWVzc2FnZXMpIHtcbiAgICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnZXJyb3InLCBzdW1tYXJ5OiBlcnJvciB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGJvdW5jZSBiYWNrIGlmIGNvbmZpZ3VyYXRpb24gY2FsbCBoYXMgZmFpbGVkXG4gICAgICAgIHRoaXMubGluZUl0ZW0ubmV4dCh0aGlzLmxpbmVJdGVtLnZhbHVlID8geyAuLi50aGlzLmxpbmVJdGVtLnZhbHVlIH0gOiB1bmRlZmluZWQpO1xuXG4gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IGVycm9yKTtcbiAgICAgIH0pLFxuICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLmhhc1Vuc2F2ZWRDaGFuZ2VzKSB7XG4gICAgICAgICAgdGhpcy5oYXNVbnNhdmVkQ2hhbmdlcyA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgcGF0Y2gobGluZUl0ZW06IExpbmVJdGVtKTogdm9pZCB7XG4gICAgdGhpcy5wYXRjaCQobGluZUl0ZW0pLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZUN1cnJlbnRTdGF0ZXModXBkYXRlOiBQYXJ0aWFsPFF1b3RlU3RhdGVzPikge1xuICAgIHRoaXMuc3RhdGVzID0ge1xuICAgICAgLi4udGhpcy5zdGF0ZXMsXG4gICAgICAuLi51cGRhdGUsXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQoKTogT2JzZXJ2YWJsZTxMaW5lSXRlbSB8IHVuZGVmaW5lZD4ge1xuICAgIHJldHVybiB0aGlzLmxpbmVJdGVtLmFzT2JzZXJ2YWJsZSgpLnBpcGUoc2hhcmVSZXBsYXkoKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0U25hcHNob3QoKTogTGluZUl0ZW0gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmxpbmVJdGVtLnZhbHVlID8geyAuLi50aGlzLmxpbmVJdGVtLnZhbHVlIH0gOiB1bmRlZmluZWQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0UnVudGltZU1vZGVsKCk6IFJ1bnRpbWVNb2RlbCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMucnVudGltZVNlcnZpY2UucnVudGltZU1vZGVsO1xuICB9XG5cbiAgcHVibGljIGdldFJ1bnRpbWVDb250ZXh0KCk6IFJ1bnRpbWVDb250ZXh0IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5ydW50aW1lU2VydmljZS5ydW50aW1lQ29udGV4dDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY29udGV4dFNuYXBzaG90KCk6IENvbmZpZ3VyYXRpb25Db250ZXh0IHtcbiAgICByZXR1cm4gdGhpcy5jb250ZXh0U2VydmljZS5yZXNvbHZlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNvbnRleHQkKCk6IE9ic2VydmFibGU8Q29uZmlndXJhdGlvbkNvbnRleHQ+IHtcbiAgICByZXR1cm4gdGhpcy5jb250ZXh0U2VydmljZS5yZXNvbHZlJCgpO1xuICB9XG5cbiAgcHVibGljIGdldCBjaGFyZ2VzJCgpOiBPYnNlcnZhYmxlPERpY3Rpb25hcnk8Q2hhcmdlPj4ge1xuICAgIHJldHVybiB0aGlzLmNoYXJnZXMuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNoYXJnZXNTbmFwc2hvdCgpOiBEaWN0aW9uYXJ5PENoYXJnZT4ge1xuICAgIHJldHVybiB0aGlzLmNoYXJnZXMudmFsdWU7XG4gIH1cblxuICBwdWJsaWMgY29uZmlndXJlKCk6IE9ic2VydmFibGU8TGluZUl0ZW0+IHtcbiAgICBjb25zdCBydW50aW1lQ29udGV4dCA9IHRoaXMuZ2V0UnVudGltZUNvbnRleHQoKTtcbiAgICBjb25zdCBydW50aW1lTW9kZWwgPSB0aGlzLmdldFJ1bnRpbWVNb2RlbCgpO1xuICAgIGlmICghcnVudGltZUNvbnRleHQgfHwgIXJ1bnRpbWVNb2RlbCkge1xuICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gbmV3IEVycm9yKCdSdW50aW1lIGNvbnRleHQvbW9kZWwgbm90IGluaXRpYWxpemVkJykpO1xuICAgIH1cblxuICAgIGNvbnN0IHVpRGVmaW5pdGlvblByb3BlcnRpZXMgPSB7XG4gICAgICAuLi4ocnVudGltZUNvbnRleHQudWlEZWZpbml0aW9uPy5wcm9wZXJ0aWVzID8/IHt9KSxcbiAgICAgIC4uLih0aGlzLnJ1bnRpbWVTZXJ2aWNlLnVpRGVmaW5pdGlvblByb3BlcnRpZXMgPz8ge30pLFxuICAgIH07XG4gICAgY29uc3QgcXR5ID0gdGhpcy5ydW50aW1lU2VydmljZS5pbml0aWFsaXphdGlvblByb3BzPy5kZWZhdWx0UXR5O1xuICAgIGNvbnN0IGxpbmVJdGVtID0gdGhpcy5zdGF0ZXMuY29uZmlndXJhYmxlUmFtcCA/PyBnZXREZWZhdWx0TGluZUl0ZW0ocnVudGltZUNvbnRleHQsIHVpRGVmaW5pdGlvblByb3BlcnRpZXMsIHF0eSk7XG4gICAgY29uc3QgY29uZmlndXJhdGlvblJlcXVlc3QgPSB0aGlzLmNyZWF0ZVJlcXVlc3QobGluZUl0ZW0pO1xuXG4gICAgY29uc3QgbWFpblByaWNpbmdFbmFibGVkID0gcnVudGltZUNvbnRleHQucHJvcGVydGllcz8uUHJpY2luZ0VuYWJsZWQ7XG4gICAgY29uc3QgcHJpY2luZ0VuYWJsZWQgPSBtYWluUHJpY2luZ0VuYWJsZWQgPyBtYWluUHJpY2luZ0VuYWJsZWQgPT09ICd0cnVlJyA6IHVpRGVmaW5pdGlvblByb3BlcnRpZXMucHJpY2luZ0VuYWJsZWQ7XG5cbiAgICByZXR1cm4gdGhpcy5jb25maWd1cmF0aW9uQXBpU2VydmljZVxuICAgICAgLmNvbmZpZ3VyZUxpbmVJdGVtKHsgY29uZmlndXJhdGlvblJlcXVlc3QsIHJ1bnRpbWVNb2RlbCwgcHJpY2luZ0VuYWJsZWQgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHsgbGluZUl0ZW0sIGNvbnRleHQsIGNoYXJnZXMsIGRlbGV0ZWRMaW5lSXRlbXMgfSkgPT4ge1xuICAgICAgICAgIHRoaXMuY29udGV4dFNlcnZpY2UudXBkYXRlKGNvbnRleHQgPz8ge30pO1xuICAgICAgICAgIHRoaXMuY2hhcmdlcy5uZXh0KGNoYXJnZXMgPz8ge30pO1xuICAgICAgICAgIGlmIChkZWxldGVkTGluZUl0ZW1zPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuc2hvd0luYWN0aXZlUHJvZHVjdHNDb25maXJtYXRpb24oKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGxpbmVJdGVtO1xuICAgICAgICB9KSxcbiAgICAgIClcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAobGluZUl0ZW0gPT4gbGluZUl0ZW0gJiYgdGhpcy5saW5lSXRlbS5uZXh0KGxpbmVJdGVtKSksXG4gICAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT5cbiAgICAgICAgICB0aHJvd0Vycm9yKCgpID0+IG5ldyBFcnJvcihlcnJvci5lcnJvcj8ubWVzc2FnZSB8fCBlcnJvci5tZXNzYWdlIHx8IEpTT04uc3RyaW5naWZ5KGVycm9yKSkpLFxuICAgICAgICApLFxuICAgICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBjb25maWd1cmVFeHRlcm5hbCQocHJvZHVjdElkOiBzdHJpbmcsIHF0eT86IG51bWJlcik6IE9ic2VydmFibGU8TGluZUl0ZW0+IHtcbiAgICB0aGlzLnVwZGF0ZUN1cnJlbnRTdGF0ZXMoe1xuICAgICAgY3VycmVudFN0YXRlOiB0aGlzLnF1b3RlRHJhZnRTZXJ2aWNlLmN1cnJlbnRTdGF0ZSxcbiAgICB9KTtcblxuICAgIHJldHVybiB0aGlzLnJ1bnRpbWVTZXJ2aWNlLmluaXQoeyBwcm9kdWN0SWQsIGRlZmF1bHRRdHk6IHF0eSB9KS5waXBlKFxuICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMuY29uZmlndXJlKCkpLFxuICAgICAgZmlyc3QoKSxcbiAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4ge1xuICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiBUb2FzdFR5cGUuZXJyb3IsIHN1bW1hcnk6IGVycm9yIH0pO1xuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH0pLFxuICAgICAgZmluYWxpemUoKCkgPT4gdGhpcy5yZXNldCgpKSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVSZXF1ZXN0KGxpbmVJdGVtOiBMaW5lSXRlbSk6IENvbmZpZ3VyYXRpb25SZXF1ZXN0IHtcbiAgICByZXR1cm4ge1xuICAgICAgbGluZUl0ZW0sXG4gICAgICBtb2RlOiB0aGlzLm1vZGUsXG4gICAgICBzdGVwOiAhdGhpcy5saW5lSXRlbS52YWx1ZSA/IFJ1bnRpbWVTdGVwLlNUQVJUIDogUnVudGltZVN0ZXAuVVBEQVRFLFxuICAgICAgYXR0cmlidXRlRG9tYWluTW9kZTogJ0FMTCcsXG4gICAgICBjb250ZXh0OiB0aGlzLmNvbnRleHRTZXJ2aWNlLnJlc29sdmUoKSxcbiAgICAgIGxpbmVJdGVtczogdGhpcy5zdGF0ZXMuY3VycmVudFN0YXRlIHx8IFtdLFxuICAgICAgYXNzZXQ6IHRoaXMuc3RhdGVzLmFzc2V0LFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIHNob3dJbmFjdGl2ZVByb2R1Y3RzQ29uZmlybWF0aW9uKCkge1xuICAgIHRoaXMuZGlhbG9nU2VydmljZVxuICAgICAgLm9wZW4oQ29uZmlybWF0aW9uQ29tcG9uZW50LCB7XG4gICAgICAgIGRpc21pc3NhYmxlTWFzazogZmFsc2UsXG4gICAgICAgIGNsb3NlT25Fc2NhcGU6IGZhbHNlLFxuICAgICAgICBjbG9zYWJsZTogZmFsc2UsXG4gICAgICAgIHNob3dIZWFkZXI6IHRydWUsXG4gICAgICAgIGhlYWRlcjogYEluYWN0aXZlIFByb2R1Y3RzIGluIFF1b3RlYCxcbiAgICAgICAgd2lkdGg6ICc0NDBweCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICBjb25maXJtYXRpb25Db25maWc6IHtcbiAgICAgICAgICAgIHRpdGxlOiAnICcsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1RoaXMgcXVvdGUgY29udGFpbnMgaW5hY3RpdmUgcHJvZHVjdHMuIERvIHlvdSB3YW50IHRvIHJlbW92ZSB0aGVtPycsXG4gICAgICAgICAgICBzdWJtaXRCdG46ICdSZW1vdmUgcHJvZHVjdHMnLFxuICAgICAgICAgICAgY2FuY2VsQnRuOiAnQmFjayB0byBRdW90ZScsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0pXG4gICAgICAub25DbG9zZS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcbiAgICAgICAgaWYgKCFyZXN1bHQpIHtcbiAgICAgICAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5jb250ZXh0U2VydmljZS5yZXNvbHZlKCk7XG4gICAgICAgICAgd2luZG93WydWRUxPX0JBQ0tfRk4nXS5hcHBseShudWxsLCBbY29udGV4dC5oZWFkZXJJZF0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxufVxuIl19
|
@@ -118,4 +118,4 @@ FlowConfigurationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0
|
|
118
118
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: FlowConfigurationService, decorators: [{
|
119
119
|
type: Injectable
|
120
120
|
}], ctorParameters: function () { return [{ type: i1.ProceduresApiService }, { type: i2.ContextService }, { type: i2.QuoteDraftService }, { type: i3.FlowUpdateService }, { type: i4.ConfigurationService }]; } });
|
121
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvdy1jb25maWd1cmF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jb3JlL21vZHVsZXMvZmxvdy1jb25maWd1cmF0aW9uL3NlcnZpY2VzL2Zsb3ctY29uZmlndXJhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsT0FBTyxFQUFFLFNBQVMsRUFBYyxNQUFNLFFBQVEsQ0FBQztBQUMvQyxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQWMsRUFBRSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7O0FBT3RHLE1BQU0sT0FBTyx3QkFBd0I7SUFDbkMsWUFDVSxvQkFBMEMsRUFDMUMsY0FBOEIsRUFDOUIsaUJBQW9DLEVBQ3BDLGFBQWdDLEVBQ2hDLG9CQUEwQztRQUoxQyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBQzFDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLGtCQUFhLEdBQWIsYUFBYSxDQUFtQjtRQUNoQyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO0lBQ2pELENBQUM7SUFFRyxVQUFVLENBQUMsVUFBc0I7UUFDdEMsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FDdEQsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQzlELEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FDVixDQUFDO0lBQ0osQ0FBQztJQUVNLFNBQVMsQ0FBQyxVQUFzQjtRQUNy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SEF4S1Usd0JBQXdCOzBIQUF4Qix3QkFBd0I7NEZBQXhCLHdCQUF3QjtrQkFEcEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFByb2NlZHVyZXNBcGlTZXJ2aWNlIH0gZnJvbSAnQHZlbG9jZS9hcGknO1xuaW1wb3J0IHsgQ29uZmlndXJhdGlvbkNvbnRleHQsIExpbmVJdGVtLCBQcmljZVBsYW5DaGFyZ2UsIFF1b3RlRHJhZnQgfSBmcm9tICdAdmVsb2NlL2NvcmUnO1xuaW1wb3J0IHsgY2xvbmVEZWVwLCBEaWN0aW9uYXJ5IH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCwgbm9vcCwgT2JzZXJ2YWJsZSwgb2YsIHNoYXJlUmVwbGF5LCBzd2l0Y2hNYXAsIHRhcCwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ29udGV4dFNlcnZpY2UsIFF1b3RlRHJhZnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgQ29uZmlndXJhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb25maWd1cmF0aW9uJztcbmltcG9ydCB7IEZsb3dVcGRhdGVQYXJhbXMgfSBmcm9tICcuLi90eXBlcy91cGRhdGUudHlwZXMnO1xuaW1wb3J0IHsgRmxvd1VwZGF0ZVNlcnZpY2UgfSBmcm9tICcuL2Zsb3ctdXBkYXRlLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRmxvd0NvbmZpZ3VyYXRpb25TZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBwcm9jZWR1cmVzQXBpU2VydmljZTogUHJvY2VkdXJlc0FwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb250ZXh0U2VydmljZTogQ29udGV4dFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBxdW90ZURyYWZ0U2VydmljZTogUXVvdGVEcmFmdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSB1cGRhdGVTZXJ2aWNlOiBGbG93VXBkYXRlU2VydmljZSxcbiAgICBwcml2YXRlIGNvbmZpZ3VyYXRpb25TZXJ2aWNlOiBDb25maWd1cmF0aW9uU2VydmljZSxcbiAgKSB7fVxuXG4gIHB1YmxpYyBjYWxjdWxhdGUkKHF1b3RlRHJhZnQ6IFF1b3RlRHJhZnQpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5wcm9jZWR1cmVzQXBpU2VydmljZS5hcHBseSQocXVvdGVEcmFmdCkucGlwZShcbiAgICAgIHRhcChyZXN1bHQgPT4gdGhpcy5xdW90ZURyYWZ0U2VydmljZS51cGRhdGVRdW90ZURyYWZ0KHJlc3VsdCkpLFxuICAgICAgbWFwKG5vb3ApLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgY2FsY3VsYXRlKHF1b3RlRHJhZnQ6IFF1b3RlRHJhZnQpOiB2b2lkIHtcbiAgICB0aGlzLmNhbGN1bGF0ZSQocXVvdGVEcmFmdCkuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlJCh1cGRhdGVzOiBGbG93VXBkYXRlUGFyYW1zW10pOiBPYnNlcnZhYmxlPFF1b3RlRHJhZnQgfCBudWxsPiB7XG4gICAgY29uc3QgcXVvdGVEcmFmdCA9IHRoaXMucXVvdGVEcmFmdFNlcnZpY2UucXVvdGVEcmFmdDtcblxuICAgIGlmICghcXVvdGVEcmFmdCkge1xuICAgICAgcmV0dXJuIG9mKG51bGwpO1xuICAgIH1cblxuICAgIHJldHVybiBvZihbXSkucGlwZShcbiAgICAgIG1hcCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHVwZGF0ZWRTdGF0ZSA9IGNsb25lRGVlcChxdW90ZURyYWZ0LmN1cnJlbnRTdGF0ZSk7XG4gICAgICAgIHRoaXMudXBkYXRlU2VydmljZS51cGRhdGUodXBkYXRlZFN0YXRlLCB1cGRhdGVzKTtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZWRTdGF0ZTtcbiAgICAgIH0pLFxuICAgICAgc3dpdGNoTWFwKHVwZGF0ZWRTdGF0ZSA9PiB0aGlzLmNhbGN1bGF0ZSQoeyAuLi5xdW90ZURyYWZ0LCBjdXJyZW50U3RhdGU6IHVwZGF0ZWRTdGF0ZSB9KSksXG4gICAgICBtYXAoKCkgPT4gdGhpcy5xdW90ZURyYWZ0U2VydmljZS5xdW90ZURyYWZ0KSxcbiAgICAgIHRoaXMuaGFuZGxlRXJyb3JBbmRCb3VuY2VCYWNrKCksXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGUodXBkYXRlczogRmxvd1VwZGF0ZVBhcmFtc1tdKTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGUkKHVwZGF0ZXMpLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIHJldmVydCQobGluZUl0ZW1JZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxRdW90ZURyYWZ0IHwgbnVsbD4ge1xuICAgIGNvbnN0IHF1b3RlRHJhZnQgPSB0aGlzLnF1b3RlRHJhZnRTZXJ2aWNlLnF1b3RlRHJhZnQ7XG4gICAgY29uc3QgaW5pdGlhbFN0YXRlID0gdGhpcy5xdW90ZURyYWZ0U2VydmljZS5hY3RpdmVJbml0aWFsU3RhdGU7XG4gICAgY29uc3QgY3VycmVudFN0YXRlID0gdGhpcy5xdW90ZURyYWZ0U2VydmljZS5hY3RpdmVDdXJyZW50U3RhdGU7XG5cbiAgICBjb25zdCBjdXJyZW50TGluZUl0ZW1JbmRleCA9IGN1cnJlbnRTdGF0ZS5maW5kSW5kZXgoKHsgaWQgfSkgPT4gaWQgPT09IGxpbmVJdGVtSWQpO1xuICAgIGNvbnN0IGN1cnJlbnRMaW5lSXRlbSA9IGN1cnJlbnRTdGF0ZVtjdXJyZW50TGluZUl0ZW1JbmRleF07XG5cbiAgICBjb25zdCBpbml0aWFsTGluZUl0ZW0gPSBpbml0aWFsU3RhdGUuZmluZCgoeyBpbnRlZ3JhdGlvbklkIH0pID0+IGludGVncmF0aW9uSWQgPT09IGN1cnJlbnRMaW5lSXRlbT8uaW50ZWdyYXRpb25JZCk7XG5cbiAgICBpZiAoIXF1b3RlRHJhZnQgfHwgIWN1cnJlbnRMaW5lSXRlbSB8fCAhaW5pdGlhbExpbmVJdGVtKSB7XG4gICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgfVxuXG4gICAgY29uc3QgdXBkYXRlZFN0YXRlID0gY2xvbmVEZWVwKGN1cnJlbnRTdGF0ZSk7XG4gICAgdXBkYXRlZFN0YXRlLnNwbGljZShjdXJyZW50TGluZUl0ZW1JbmRleCwgMSwgaW5pdGlhbExpbmVJdGVtKTtcblxuICAgIHJldHVybiBvZihbXSkucGlwZShcbiAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgIHRoaXMucXVvdGVEcmFmdFNlcnZpY2Uuc2V0Q3VycmVudExpbmVJdGVtU3RhdGUodXBkYXRlZFN0YXRlKTtcbiAgICAgIH0pLFxuICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMuY2FsY3VsYXRlJCh7IC4uLnF1b3RlRHJhZnQsIGN1cnJlbnRTdGF0ZTogdXBkYXRlZFN0YXRlIH0pKSxcbiAgICAgIG1hcCgoKSA9PiB0aGlzLnF1b3RlRHJhZnRTZXJ2aWNlLnF1b3RlRHJhZnQpLFxuICAgICAgdGhpcy5oYW5kbGVFcnJvckFuZEJvdW5jZUJhY2soKSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHJldmVydChsaW5lSXRlbUlkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnJldmVydCQobGluZUl0ZW1JZCkuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwdWJsaWMgZGVsZXRlJChpZHM6IHN0cmluZ1tdKTogT2JzZXJ2YWJsZTxRdW90ZURyYWZ0IHwgbnVsbD4ge1xuICAgIGNvbnN0IHF1b3RlRHJhZnQgPSB0aGlzLnF1b3RlRHJhZnRTZXJ2aWNlLnF1b3RlRHJhZnQ7XG4gICAgY29uc3QgY3VycmVudFN0YXRlID0gdGhpcy5xdW90ZURyYWZ0U2VydmljZS5jdXJyZW50U3RhdGU7XG5cbiAgICBpZiAoIXF1b3RlRHJhZnQpIHtcbiAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICB9XG5cbiAgICByZXR1cm4gb2YoW10pLnBpcGUoXG4gICAgICBtYXAoKCkgPT4gaWRzLnJlZHVjZSgocmVzdWx0LCBpZCkgPT4gdGhpcy51cGRhdGVTZXJ2aWNlLmRlbGV0ZShyZXN1bHQsIGlkKSwgY3VycmVudFN0YXRlKSksXG4gICAgICBzd2l0Y2hNYXAodXBkYXRlZFN0YXRlID0+IHRoaXMuY2FsY3VsYXRlJCh7IC4uLnF1b3RlRHJhZnQsIGN1cnJlbnRTdGF0ZTogdXBkYXRlZFN0YXRlIH0pKSxcbiAgICAgIG1hcCgoKSA9PiB0aGlzLnF1b3RlRHJhZnRTZXJ2aWNlLnF1b3RlRHJhZnQpLFxuICAgICAgdGhpcy5oYW5kbGVFcnJvckFuZEJvdW5jZUJhY2soKSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGRlbGV0ZShpZHM6IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgdGhpcy5kZWxldGUkKGlkcykuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwdWJsaWMgYWRkVGVybSQodGVybTogTGluZUl0ZW0pOiBPYnNlcnZhYmxlPFF1b3RlRHJhZnQgfCBudWxsPiB7XG4gICAgY29uc3QgcXVvdGVEcmFmdCA9IHRoaXMucXVvdGVEcmFmdFNlcnZpY2UucXVvdGVEcmFmdDtcblxuICAgIGlmICghcXVvdGVEcmFmdCkge1xuICAgICAgcmV0dXJuIG9mKG51bGwpO1xuICAgIH1cblxuICAgIGNvbnN0IHVwZGF0ZWRTdGF0ZSA9IFsuLi5xdW90ZURyYWZ0LmN1cnJlbnRTdGF0ZSwgdGVybV07XG5cbiAgICByZXR1cm4gb2YoW10pLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5jYWxjdWxhdGUkKHsgLi4ucXVvdGVEcmFmdCwgY3VycmVudFN0YXRlOiB1cGRhdGVkU3RhdGUgfSkpLFxuICAgICAgbWFwKCgpID0+IHRoaXMucXVvdGVEcmFmdFNlcnZpY2UucXVvdGVEcmFmdCksXG4gICAgICB0aGlzLmhhbmRsZUVycm9yQW5kQm91bmNlQmFjaygpLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgYWRkVG9DYXJ0JChwcm9kdWN0SWQ6IHN0cmluZywgcXR5PzogbnVtYmVyKTogT2JzZXJ2YWJsZTxRdW90ZURyYWZ0IHwgbnVsbD4ge1xuICAgIGNvbnN0IHF1b3RlRHJhZnQgPSB0aGlzLnF1b3RlRHJhZnRTZXJ2aWNlLnF1b3RlRHJhZnQ7XG5cbiAgICBpZiAoIXF1b3RlRHJhZnQpIHtcbiAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5jb25maWd1cmF0aW9uU2VydmljZS5jb25maWd1cmVFeHRlcm5hbCQocHJvZHVjdElkLCBxdHkpLnBpcGUoXG4gICAgICBtYXAobGluZUl0ZW0gPT4gWy4uLnF1b3RlRHJhZnQuY3VycmVudFN0YXRlLCBsaW5lSXRlbV0pLFxuICAgICAgc3dpdGNoTWFwKHVwZGF0ZWRTdGF0ZSA9PiB0aGlzLmNhbGN1bGF0ZSQoeyAuLi5xdW90ZURyYWZ0LCBjdXJyZW50U3RhdGU6IHVwZGF0ZWRTdGF0ZSB9KSksXG4gICAgICBtYXAoKCkgPT4gdGhpcy5xdW90ZURyYWZ0U2VydmljZS5xdW90ZURyYWZ0KSxcbiAgICAgIHRoaXMuaGFuZGxlRXJyb3JBbmRCb3VuY2VCYWNrKCksXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQoKTogT2JzZXJ2YWJsZTxMaW5lSXRlbVtdPiB7XG4gICAgcmV0dXJuIHRoaXMucXVvdGVEcmFmdFNlcnZpY2UucXVvdGVEcmFmdCQucGlwZShcbiAgICAgIG1hcCgoKSA9PiB0aGlzLnF1b3RlRHJhZnRTZXJ2aWNlLmFjdGl2ZUN1cnJlbnRTdGF0ZSksXG4gICAgICBzaGFyZVJlcGxheSgpLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0U25hcHNob3QoKTogTGluZUl0ZW1bXSB7XG4gICAgcmV0dXJuIHRoaXMucXVvdGVEcmFmdFNlcnZpY2U/LmN1cnJlbnRTdGF0ZS5zbGljZSgpID8/IFtdO1xuICB9XG5cbiAgcHVibGljIGdldCBjaGFyZ2VzJCgpOiBPYnNlcnZhYmxlPERpY3Rpb25hcnk8UHJpY2VQbGFuQ2hhcmdlPj4ge1xuICAgIHJldHVybiB0aGlzLnF1b3RlRHJhZnRTZXJ2aWNlLnF1b3RlRHJhZnQkLnBpcGUobWFwKCh7IGNoYXJnZXMgfSkgPT4gY2hhcmdlcykpO1xuICB9XG5cbiAgcHVibGljIGdldCBjaGFyZ2VzU25hcHNob3QoKTogRGljdGlvbmFyeTxQcmljZVBsYW5DaGFyZ2U+IHtcbiAgICByZXR1cm4gdGhpcy5xdW90ZURyYWZ0U2VydmljZS5xdW90ZURyYWZ0Py5jaGFyZ2VzID8/IHt9O1xuICB9XG5cbiAgcHVibGljIGdldCBjb250ZXh0U25hcHNob3QoKTogQ29uZmlndXJhdGlvbkNvbnRleHQge1xuICAgIHJldHVybiB0aGlzLmNvbnRleHRTZXJ2aWNlLnJlc29sdmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY29udGV4dCQoKTogT2JzZXJ2YWJsZTxDb25maWd1cmF0aW9uQ29udGV4dD4ge1xuICAgIHJldHVybiB0aGlzLmNvbnRleHRTZXJ2aWNlLnJlc29sdmUkKCk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUVycm9yQW5kQm91bmNlQmFjaygpIHtcbiAgICByZXR1cm4gPFQ+KHNvdXJjZSQ6IE9ic2VydmFibGU8VD4pOiBPYnNlcnZhYmxlPFQ+ID0+IHtcbiAgICAgIHJldHVybiBzb3VyY2UkLnBpcGUoXG4gICAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4ge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuXG4gICAgICAgICAgLy8gYm91bmNlIGJhY2sgaWYgY29uZmlndXJhdGlvbiBjYWxsIGhhcyBmYWlsZWRcbiAgICAgICAgICBjb25zdCBxdW90ZURyYWZ0ID0gdGhpcy5xdW90ZURyYWZ0U2VydmljZS5xdW90ZURyYWZ0O1xuICAgICAgICAgIGlmIChxdW90ZURyYWZ0KSB7XG4gICAgICAgICAgICB0aGlzLnF1b3RlRHJhZnRTZXJ2aWNlLnVwZGF0ZVF1b3RlRHJhZnQocXVvdGVEcmFmdCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gZXJyb3IpO1xuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgfTtcbiAgfVxufVxuIl19
|
121
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvdy1jb25maWd1cmF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jb3JlL21vZHVsZXMvZmxvdy1jb25maWd1cmF0aW9uL3NlcnZpY2VzL2Zsb3ctY29uZmlndXJhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsT0FBTyxFQUFFLFNBQVMsRUFBYyxNQUFNLFFBQVEsQ0FBQztBQUMvQyxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQWMsRUFBRSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7O0FBT3RHLE1BQU0sT0FBTyx3QkFBd0I7SUFDbkMsWUFDVSxvQkFBMEMsRUFDMUMsY0FBOEIsRUFDOUIsaUJBQW9DLEVBQ3BDLGFBQWdDLEVBQ2hDLG9CQUEwQztRQUoxQyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBQzFDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLGtCQUFhLEdBQWIsYUFBYSxDQUFtQjtRQUNoQyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO0lBQ2pELENBQUM7SUFFRyxVQUFVLENBQUMsVUFBc0I7UUFDdEMsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FDdEQsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQzlELEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FDVixDQUFDO0lBQ0osQ0FBQztJQUVNLFNBQVMsQ0FBQyxVQUFzQjtRQUNy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SEF4S1Usd0JBQXdCOzBIQUF4Qix3QkFBd0I7NEZBQXhCLHdCQUF3QjtrQkFEcEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFByb2NlZHVyZXNBcGlTZXJ2aWNlIH0gZnJvbSAnQHZlbG9jZS9hcGknO1xuaW1wb3J0IHsgQ2hhcmdlLCBDb25maWd1cmF0aW9uQ29udGV4dCwgTGluZUl0ZW0sIFF1b3RlRHJhZnQgfSBmcm9tICdAdmVsb2NlL2NvcmUnO1xuaW1wb3J0IHsgY2xvbmVEZWVwLCBEaWN0aW9uYXJ5IH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCwgbm9vcCwgT2JzZXJ2YWJsZSwgb2YsIHNoYXJlUmVwbGF5LCBzd2l0Y2hNYXAsIHRhcCwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ29udGV4dFNlcnZpY2UsIFF1b3RlRHJhZnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgQ29uZmlndXJhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb25maWd1cmF0aW9uJztcbmltcG9ydCB7IEZsb3dVcGRhdGVQYXJhbXMgfSBmcm9tICcuLi90eXBlcy91cGRhdGUudHlwZXMnO1xuaW1wb3J0IHsgRmxvd1VwZGF0ZVNlcnZpY2UgfSBmcm9tICcuL2Zsb3ctdXBkYXRlLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRmxvd0NvbmZpZ3VyYXRpb25TZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBwcm9jZWR1cmVzQXBpU2VydmljZTogUHJvY2VkdXJlc0FwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb250ZXh0U2VydmljZTogQ29udGV4dFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBxdW90ZURyYWZ0U2VydmljZTogUXVvdGVEcmFmdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSB1cGRhdGVTZXJ2aWNlOiBGbG93VXBkYXRlU2VydmljZSxcbiAgICBwcml2YXRlIGNvbmZpZ3VyYXRpb25TZXJ2aWNlOiBDb25maWd1cmF0aW9uU2VydmljZSxcbiAgKSB7fVxuXG4gIHB1YmxpYyBjYWxjdWxhdGUkKHF1b3RlRHJhZnQ6IFF1b3RlRHJhZnQpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5wcm9jZWR1cmVzQXBpU2VydmljZS5hcHBseSQocXVvdGVEcmFmdCkucGlwZShcbiAgICAgIHRhcChyZXN1bHQgPT4gdGhpcy5xdW90ZURyYWZ0U2VydmljZS51cGRhdGVRdW90ZURyYWZ0KHJlc3VsdCkpLFxuICAgICAgbWFwKG5vb3ApLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgY2FsY3VsYXRlKHF1b3RlRHJhZnQ6IFF1b3RlRHJhZnQpOiB2b2lkIHtcbiAgICB0aGlzLmNhbGN1bGF0ZSQocXVvdGVEcmFmdCkuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlJCh1cGRhdGVzOiBGbG93VXBkYXRlUGFyYW1zW10pOiBPYnNlcnZhYmxlPFF1b3RlRHJhZnQgfCBudWxsPiB7XG4gICAgY29uc3QgcXVvdGVEcmFmdCA9IHRoaXMucXVvdGVEcmFmdFNlcnZpY2UucXVvdGVEcmFmdDtcblxuICAgIGlmICghcXVvdGVEcmFmdCkge1xuICAgICAgcmV0dXJuIG9mKG51bGwpO1xuICAgIH1cblxuICAgIHJldHVybiBvZihbXSkucGlwZShcbiAgICAgIG1hcCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHVwZGF0ZWRTdGF0ZSA9IGNsb25lRGVlcChxdW90ZURyYWZ0LmN1cnJlbnRTdGF0ZSk7XG4gICAgICAgIHRoaXMudXBkYXRlU2VydmljZS51cGRhdGUodXBkYXRlZFN0YXRlLCB1cGRhdGVzKTtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZWRTdGF0ZTtcbiAgICAgIH0pLFxuICAgICAgc3dpdGNoTWFwKHVwZGF0ZWRTdGF0ZSA9PiB0aGlzLmNhbGN1bGF0ZSQoeyAuLi5xdW90ZURyYWZ0LCBjdXJyZW50U3RhdGU6IHVwZGF0ZWRTdGF0ZSB9KSksXG4gICAgICBtYXAoKCkgPT4gdGhpcy5xdW90ZURyYWZ0U2VydmljZS5xdW90ZURyYWZ0KSxcbiAgICAgIHRoaXMuaGFuZGxlRXJyb3JBbmRCb3VuY2VCYWNrKCksXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGUodXBkYXRlczogRmxvd1VwZGF0ZVBhcmFtc1tdKTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGUkKHVwZGF0ZXMpLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIHJldmVydCQobGluZUl0ZW1JZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxRdW90ZURyYWZ0IHwgbnVsbD4ge1xuICAgIGNvbnN0IHF1b3RlRHJhZnQgPSB0aGlzLnF1b3RlRHJhZnRTZXJ2aWNlLnF1b3RlRHJhZnQ7XG4gICAgY29uc3QgaW5pdGlhbFN0YXRlID0gdGhpcy5xdW90ZURyYWZ0U2VydmljZS5hY3RpdmVJbml0aWFsU3RhdGU7XG4gICAgY29uc3QgY3VycmVudFN0YXRlID0gdGhpcy5xdW90ZURyYWZ0U2VydmljZS5hY3RpdmVDdXJyZW50U3RhdGU7XG5cbiAgICBjb25zdCBjdXJyZW50TGluZUl0ZW1JbmRleCA9IGN1cnJlbnRTdGF0ZS5maW5kSW5kZXgoKHsgaWQgfSkgPT4gaWQgPT09IGxpbmVJdGVtSWQpO1xuICAgIGNvbnN0IGN1cnJlbnRMaW5lSXRlbSA9IGN1cnJlbnRTdGF0ZVtjdXJyZW50TGluZUl0ZW1JbmRleF07XG5cbiAgICBjb25zdCBpbml0aWFsTGluZUl0ZW0gPSBpbml0aWFsU3RhdGUuZmluZCgoeyBpbnRlZ3JhdGlvbklkIH0pID0+IGludGVncmF0aW9uSWQgPT09IGN1cnJlbnRMaW5lSXRlbT8uaW50ZWdyYXRpb25JZCk7XG5cbiAgICBpZiAoIXF1b3RlRHJhZnQgfHwgIWN1cnJlbnRMaW5lSXRlbSB8fCAhaW5pdGlhbExpbmVJdGVtKSB7XG4gICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgfVxuXG4gICAgY29uc3QgdXBkYXRlZFN0YXRlID0gY2xvbmVEZWVwKGN1cnJlbnRTdGF0ZSk7XG4gICAgdXBkYXRlZFN0YXRlLnNwbGljZShjdXJyZW50TGluZUl0ZW1JbmRleCwgMSwgaW5pdGlhbExpbmVJdGVtKTtcblxuICAgIHJldHVybiBvZihbXSkucGlwZShcbiAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgIHRoaXMucXVvdGVEcmFmdFNlcnZpY2Uuc2V0Q3VycmVudExpbmVJdGVtU3RhdGUodXBkYXRlZFN0YXRlKTtcbiAgICAgIH0pLFxuICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMuY2FsY3VsYXRlJCh7IC4uLnF1b3RlRHJhZnQsIGN1cnJlbnRTdGF0ZTogdXBkYXRlZFN0YXRlIH0pKSxcbiAgICAgIG1hcCgoKSA9PiB0aGlzLnF1b3RlRHJhZnRTZXJ2aWNlLnF1b3RlRHJhZnQpLFxuICAgICAgdGhpcy5oYW5kbGVFcnJvckFuZEJvdW5jZUJhY2soKSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHJldmVydChsaW5lSXRlbUlkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnJldmVydCQobGluZUl0ZW1JZCkuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwdWJsaWMgZGVsZXRlJChpZHM6IHN0cmluZ1tdKTogT2JzZXJ2YWJsZTxRdW90ZURyYWZ0IHwgbnVsbD4ge1xuICAgIGNvbnN0IHF1b3RlRHJhZnQgPSB0aGlzLnF1b3RlRHJhZnRTZXJ2aWNlLnF1b3RlRHJhZnQ7XG4gICAgY29uc3QgY3VycmVudFN0YXRlID0gdGhpcy5xdW90ZURyYWZ0U2VydmljZS5jdXJyZW50U3RhdGU7XG5cbiAgICBpZiAoIXF1b3RlRHJhZnQpIHtcbiAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICB9XG5cbiAgICByZXR1cm4gb2YoW10pLnBpcGUoXG4gICAgICBtYXAoKCkgPT4gaWRzLnJlZHVjZSgocmVzdWx0LCBpZCkgPT4gdGhpcy51cGRhdGVTZXJ2aWNlLmRlbGV0ZShyZXN1bHQsIGlkKSwgY3VycmVudFN0YXRlKSksXG4gICAgICBzd2l0Y2hNYXAodXBkYXRlZFN0YXRlID0+IHRoaXMuY2FsY3VsYXRlJCh7IC4uLnF1b3RlRHJhZnQsIGN1cnJlbnRTdGF0ZTogdXBkYXRlZFN0YXRlIH0pKSxcbiAgICAgIG1hcCgoKSA9PiB0aGlzLnF1b3RlRHJhZnRTZXJ2aWNlLnF1b3RlRHJhZnQpLFxuICAgICAgdGhpcy5oYW5kbGVFcnJvckFuZEJvdW5jZUJhY2soKSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGRlbGV0ZShpZHM6IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgdGhpcy5kZWxldGUkKGlkcykuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwdWJsaWMgYWRkVGVybSQodGVybTogTGluZUl0ZW0pOiBPYnNlcnZhYmxlPFF1b3RlRHJhZnQgfCBudWxsPiB7XG4gICAgY29uc3QgcXVvdGVEcmFmdCA9IHRoaXMucXVvdGVEcmFmdFNlcnZpY2UucXVvdGVEcmFmdDtcblxuICAgIGlmICghcXVvdGVEcmFmdCkge1xuICAgICAgcmV0dXJuIG9mKG51bGwpO1xuICAgIH1cblxuICAgIGNvbnN0IHVwZGF0ZWRTdGF0ZSA9IFsuLi5xdW90ZURyYWZ0LmN1cnJlbnRTdGF0ZSwgdGVybV07XG5cbiAgICByZXR1cm4gb2YoW10pLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5jYWxjdWxhdGUkKHsgLi4ucXVvdGVEcmFmdCwgY3VycmVudFN0YXRlOiB1cGRhdGVkU3RhdGUgfSkpLFxuICAgICAgbWFwKCgpID0+IHRoaXMucXVvdGVEcmFmdFNlcnZpY2UucXVvdGVEcmFmdCksXG4gICAgICB0aGlzLmhhbmRsZUVycm9yQW5kQm91bmNlQmFjaygpLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgYWRkVG9DYXJ0JChwcm9kdWN0SWQ6IHN0cmluZywgcXR5PzogbnVtYmVyKTogT2JzZXJ2YWJsZTxRdW90ZURyYWZ0IHwgbnVsbD4ge1xuICAgIGNvbnN0IHF1b3RlRHJhZnQgPSB0aGlzLnF1b3RlRHJhZnRTZXJ2aWNlLnF1b3RlRHJhZnQ7XG5cbiAgICBpZiAoIXF1b3RlRHJhZnQpIHtcbiAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5jb25maWd1cmF0aW9uU2VydmljZS5jb25maWd1cmVFeHRlcm5hbCQocHJvZHVjdElkLCBxdHkpLnBpcGUoXG4gICAgICBtYXAobGluZUl0ZW0gPT4gWy4uLnF1b3RlRHJhZnQuY3VycmVudFN0YXRlLCBsaW5lSXRlbV0pLFxuICAgICAgc3dpdGNoTWFwKHVwZGF0ZWRTdGF0ZSA9PiB0aGlzLmNhbGN1bGF0ZSQoeyAuLi5xdW90ZURyYWZ0LCBjdXJyZW50U3RhdGU6IHVwZGF0ZWRTdGF0ZSB9KSksXG4gICAgICBtYXAoKCkgPT4gdGhpcy5xdW90ZURyYWZ0U2VydmljZS5xdW90ZURyYWZ0KSxcbiAgICAgIHRoaXMuaGFuZGxlRXJyb3JBbmRCb3VuY2VCYWNrKCksXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQoKTogT2JzZXJ2YWJsZTxMaW5lSXRlbVtdPiB7XG4gICAgcmV0dXJuIHRoaXMucXVvdGVEcmFmdFNlcnZpY2UucXVvdGVEcmFmdCQucGlwZShcbiAgICAgIG1hcCgoKSA9PiB0aGlzLnF1b3RlRHJhZnRTZXJ2aWNlLmFjdGl2ZUN1cnJlbnRTdGF0ZSksXG4gICAgICBzaGFyZVJlcGxheSgpLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0U25hcHNob3QoKTogTGluZUl0ZW1bXSB7XG4gICAgcmV0dXJuIHRoaXMucXVvdGVEcmFmdFNlcnZpY2U/LmN1cnJlbnRTdGF0ZS5zbGljZSgpID8/IFtdO1xuICB9XG5cbiAgcHVibGljIGdldCBjaGFyZ2VzJCgpOiBPYnNlcnZhYmxlPERpY3Rpb25hcnk8Q2hhcmdlPj4ge1xuICAgIHJldHVybiB0aGlzLnF1b3RlRHJhZnRTZXJ2aWNlLnF1b3RlRHJhZnQkLnBpcGUobWFwKCh7IGNoYXJnZXMgfSkgPT4gY2hhcmdlcykpO1xuICB9XG5cbiAgcHVibGljIGdldCBjaGFyZ2VzU25hcHNob3QoKTogRGljdGlvbmFyeTxDaGFyZ2U+IHtcbiAgICByZXR1cm4gdGhpcy5xdW90ZURyYWZ0U2VydmljZS5xdW90ZURyYWZ0Py5jaGFyZ2VzID8/IHt9O1xuICB9XG5cbiAgcHVibGljIGdldCBjb250ZXh0U25hcHNob3QoKTogQ29uZmlndXJhdGlvbkNvbnRleHQge1xuICAgIHJldHVybiB0aGlzLmNvbnRleHRTZXJ2aWNlLnJlc29sdmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY29udGV4dCQoKTogT2JzZXJ2YWJsZTxDb25maWd1cmF0aW9uQ29udGV4dD4ge1xuICAgIHJldHVybiB0aGlzLmNvbnRleHRTZXJ2aWNlLnJlc29sdmUkKCk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUVycm9yQW5kQm91bmNlQmFjaygpIHtcbiAgICByZXR1cm4gPFQ+KHNvdXJjZSQ6IE9ic2VydmFibGU8VD4pOiBPYnNlcnZhYmxlPFQ+ID0+IHtcbiAgICAgIHJldHVybiBzb3VyY2UkLnBpcGUoXG4gICAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4ge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuXG4gICAgICAgICAgLy8gYm91bmNlIGJhY2sgaWYgY29uZmlndXJhdGlvbiBjYWxsIGhhcyBmYWlsZWRcbiAgICAgICAgICBjb25zdCBxdW90ZURyYWZ0ID0gdGhpcy5xdW90ZURyYWZ0U2VydmljZS5xdW90ZURyYWZ0O1xuICAgICAgICAgIGlmIChxdW90ZURyYWZ0KSB7XG4gICAgICAgICAgICB0aGlzLnF1b3RlRHJhZnRTZXJ2aWNlLnVwZGF0ZVF1b3RlRHJhZnQocXVvdGVEcmFmdCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gZXJyb3IpO1xuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgfTtcbiAgfVxufVxuIl19
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"veloce-sdk-core.js","sources":["../../../../libs/sdk/core/modules/configuration/helpers.ts","../../../../libs/sdk/core/types/runtime.types.ts","../../../../libs/sdk/core/services/context.service.ts","../../../../libs/sdk/core/services/product-images.service.ts","../../../../libs/sdk/core/services/quote-draft.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/modules/configuration/services/configuration.service.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/core.module.ts","../../../../libs/sdk/core/veloce-sdk-core.ts"],"sourcesContent":["import { LineItem, UUID } from '@veloce/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","import { ContextProperties, RuntimeModel } from '@veloce/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","import { Injectable } from '@angular/core';\nimport { ContextApiService } from '@veloce/api';\nimport { ConfigurationContext, ConfigurationContextMode } from '@veloce/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 get isInitialized(): boolean {\n return Boolean(this.context.value);\n }\n\n 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 resolve$(): Observable<ConfigurationContext> {\n return this.context.pipe(filter((ctx): ctx is ConfigurationContext => Boolean(ctx)));\n }\n\n 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 delete(): void {\n this.context.next(null);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ProductApiService } from '@veloce/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 { Injectable } from '@angular/core';\nimport { PriceApiService, QuoteApiService } from '@veloce/api';\nimport { ConfigurationContextMode, LineItem, PriceList, PriceSummary, QuoteDraft } from '@veloce/core';\nimport { Dictionary } 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 isInitialized$ = new BehaviorSubject<boolean>(false);\n public get isInitialized(): boolean {\n return this.isInitialized$.getValue();\n }\n public set isInitialized(value: boolean) {\n if (this.isInitialized !== value) {\n this.isInitialized$.next(value);\n }\n }\n\n public allPriceLists: PriceList[] = [];\n public assetPriceLists: PriceList[] = [];\n public hasUnsavedChanges = false;\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.isInitialized$\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() {\n this.resetSubj$.next(true);\n this.quoteSubj$.next(null);\n }\n\n public init(quoteId: string, params: Dictionary<string>): Observable<void> {\n return zip(\n this.context.resolve$(),\n this.quoteApiService.getQuoteDraft(quoteId, params),\n this.priceApiService.getPriceLists(),\n ).pipe(\n tap(([context, quote, allPriceLists]) => {\n this.allPriceLists = allPriceLists;\n this.quoteSubj$.next(quote);\n\n this.context.update({\n ...context,\n ...quote.context,\n properties: {\n ...context.properties,\n ...quote.context.properties,\n },\n });\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.update(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 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 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 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 get currentState$(): Observable<LineItem[]> {\n return this.quoteDraft$.pipe(map(quote => quote.currentState));\n }\n\n get currentState(): LineItem[] {\n return this.quoteDraft?.currentState ?? [];\n }\n\n /**\n * Stream of activeCurrentState\n */\n 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 get activeCurrentState(): LineItem[] {\n const ctx = this.context.resolve();\n let currentState = this.quoteDraft?.currentState ?? [];\n\n if (ctx.mode === ConfigurationContextMode.ACCOUNT) {\n currentState = this.filterByActivePriceList(currentState);\n }\n\n return currentState;\n }\n\n /**\n * Stream of activeInitialState\n */\n 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 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 get isStandalone(): boolean {\n return this.context.resolve().properties.standalone === 'true';\n }\n\n get isStandalone$(): Observable<boolean> {\n return this.context.resolve$().pipe(map(() => this.isStandalone));\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 const activePriceList = this.assetPriceLists[0];\n\n this.updateActivePriceList(activePriceList?.id);\n\n // Update PriceListId in context properties\n // TODO: remove it when backend will have such logic\n this.context.update({ properties: { PriceListId: activePriceList?.id } });\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 = true;\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ConfigurationApiService } from '@veloce/api';\nimport { RuntimeData, RuntimeModel, UIDefinition as LegacyUiDefinition } from '@veloce/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 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 '@veloce/api';\nimport { ConfigurationContextMode, LineItem, RuntimeModel, SalesforceIdUtils } from '@veloce/core';\nimport { Dictionary } from 'lodash';\nimport { combineLatest, Observable } from 'rxjs';\nimport { first, tap } from 'rxjs/operators';\nimport { ContextService } from '../../../services';\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 _assets?: LineItem[];\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() {\n this._isInitialized = false;\n this._runtimeContext = undefined;\n this._assets = undefined;\n this.initializationProps = undefined;\n this.uiDefinitionProperties = {};\n }\n\n public initTestMode(modelId: string, uiDefinition: UIDefinition) {\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 this._assets = props.assets;\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>) {\n if (!source) {\n return;\n }\n\n const value = source[propertyName];\n\n if (typeof value === 'string' && value.length === 15) {\n source[propertyName] = SalesforceIdUtils.generateId18FromId15(value);\n }\n }\n\n public getAsset(lineItem: LineItem): LineItem | undefined {\n return this._assets && this._assets.find(a => a.id === lineItem.openOrderLineItemId || a.id === lineItem.assetId);\n }\n\n public get isInitialized() {\n return this._isInitialized;\n }\n\n public get runtimeModel() {\n return this.runtimeContext?.runtimeModel;\n }\n\n public get runtimeContext() {\n return this._runtimeContext;\n }\n}\n","import { Attribute, CfgStatus, LineItem, PortDomain, UUID } from '@veloce/core';\nimport { Dictionary, flatten, 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 { ...replaceTo };\n }\n\n return {\n ...lineItem,\n lineItems: lineItem.lineItems.map(li => {\n if (li.id === replaceTo.id) {\n return replaceTo;\n } else if (li.lineItems.length) {\n return replaceLineItem(li, replaceTo);\n }\n return li;\n }),\n };\n};\n\nexport const mapAttributes = (attributes: Attribute[]): Dictionary<any> => {\n return attributes.reduce((acc, { name, value }) => ({ ...acc, [name]: value }), {});\n};\n\nexport const getAttributes = (attributes: Attribute[], names: string[] = []) => {\n const filtered = attributes.filter(({ name }) => names.includes(name));\n return sortBy(filtered, [({ name }) => names.indexOf(name)]);\n};\n\nexport const upsertAttributes = (\n originalAttributes: Attribute[],\n attributesToUpsert: { name: string; value: any }[],\n) => {\n return attributesToUpsert.reduce((acc, { name, value }) => {\n const [origAttr] = getAttributes(acc, [name]);\n return [\n ...acc.filter(attr => attr.name !== name),\n { ...(origAttr ?? { name }), cfgStatus: 'User' as CfgStatus, value },\n ];\n }, originalAttributes);\n};\n\nexport const patchAttributes = (rootLineItem: LineItem, id: string, attrs: { name: string; value: any }[]) => {\n const lineItem = findLineItem(id, [rootLineItem]);\n\n if (!lineItem) {\n return rootLineItem;\n }\n\n const attributes = upsertAttributes(lineItem.attributes, attrs);\n return replaceLineItem(rootLineItem, { ...lineItem, attributes });\n};\n\nexport const getAttributeValue = (attributes: Attribute[], name: string): any =>\n attributes.find(attr => attr.name === name)?.value;\n\nexport const generateLineItem = (\n port: string,\n type: string,\n parentId: string,\n attributes: { name: string; value: any }[] = [],\n lineItems: LineItem[] = [],\n): LineItem => {\n return {\n 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","import { LineItem } from '@veloce/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 { ConfigurationApiService } from '@veloce/api';\nimport { ConfirmationComponent, ToastType } from '@veloce/components';\nimport {\n ConfigurationContext,\n ConfigurationMode,\n ConfigurationRequest,\n LineItem,\n PricePlanCharge,\n RuntimeModel,\n VlWindow,\n} from '@veloce/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, QuoteDraftService } from '../../../services';\nimport { QuoteStates, RuntimeContext, RuntimeStep } from '../../../types';\nimport { LineItemWorker } from '../../../utils';\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 states: QuoteStates = {};\n\n private lineItem = new BehaviorSubject<LineItem | undefined>(undefined);\n private charges = new BehaviorSubject<Dictionary<PricePlanCharge>>({});\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() {\n this.hasUnsavedChanges = false;\n this.runtimeService.reset();\n\n this.states = {};\n this.lineItem.next(undefined);\n this.charges.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.states.configurableRamp = new LineItemWorker(this.lineItem.value).replace(lineItem).li;\n this.states.asset = this.states.configurableRamp\n ? this.runtimeService.getAsset(this.states.configurableRamp)\n : undefined;\n\n 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 updateCurrentStates(update: Partial<QuoteStates>) {\n this.states = {\n ...this.states,\n ...update,\n };\n }\n\n public get(): Observable<LineItem | undefined> {\n return this.lineItem.asObservable().pipe(shareReplay());\n }\n\n public getSnapshot(): LineItem | undefined {\n return this.lineItem.value ? { ...this.lineItem.value } : undefined;\n }\n\n public getRuntimeModel(): RuntimeModel | undefined {\n return this.runtimeService.runtimeModel;\n }\n\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<PricePlanCharge>> {\n return this.charges.asObservable();\n }\n\n public get chargesSnapshot(): Dictionary<PricePlanCharge> {\n return this.charges.value;\n }\n\n public configure(): Observable<LineItem> {\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.states.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, deletedLineItems }) => {\n this.contextService.update(context ?? {});\n this.charges.next(charges ?? {});\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 this.updateCurrentStates({\n currentState: this.quoteDraftService.currentState,\n });\n\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 return {\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.states.currentState || [],\n asset: this.states.asset,\n };\n }\n\n private showInactiveProductsConfirmation() {\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: {\n confirmationConfig: {\n title: ' ',\n description: 'This quote contains inactive products. Do you want to remove them?',\n submitBtn: 'Remove products',\n cancelBtn: 'Back to Quote',\n },\n },\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","import { Injectable } from '@angular/core';\nimport { LineItem } from '@veloce/core';\nimport { 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[]) {\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);\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): 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;\n if (charge) {\n charge.priceAdjustment = 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 {\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 = lineItem.chargeGroupItems.find(({ id }) => id === update.id);\n if (!foundChargeGroup) {\n return false;\n }\n\n if (update.attributeType === 'PRICE_ADJUSTMENT') {\n foundChargeGroup.priceAdjustment = 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 '@veloce/api';\nimport { ConfigurationContext, LineItem, PricePlanCharge, QuoteDraft } from '@veloce/core';\nimport { cloneDeep, Dictionary } from 'lodash';\nimport { catchError, map, noop, Observable, of, shareReplay, switchMap, tap, throwError } from 'rxjs';\nimport { ContextService, QuoteDraftService } from '../../../services';\nimport { ConfigurationService } from '../../configuration';\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 => this.quoteDraftService.updateQuoteDraft(result)),\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);\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 initialState = this.quoteDraftService.activeInitialState;\n const currentState = this.quoteDraftService.activeCurrentState;\n\n const currentLineItemIndex = currentState.findIndex(({ id }) => id === lineItemId);\n const currentLineItem = currentState[currentLineItemIndex];\n\n const initialLineItem = initialState.find(({ integrationId }) => integrationId === currentLineItem?.integrationId);\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 => [...quoteDraft.currentState, lineItem]),\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<PricePlanCharge>> {\n return this.quoteDraftService.quoteDraft$.pipe(map(({ charges }) => charges));\n }\n\n public get chargesSnapshot(): Dictionary<PricePlanCharge> {\n return this.quoteDraftService.quoteDraft?.charges ?? {};\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 '@veloce/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 { ConfigurationApiService, ContextApiService, ProductModelApiService } from '@veloce/api';\nimport { ConfirmationDialogModule } from '@veloce/components';\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 { NgModule } from '@angular/core';\nimport { FlowConfigurationModule } from './modules';\nimport { ConfigurationModule } from './modules/configuration/configuration.module';\nimport { ContextService, ProductImagesService, QuoteDraftService } from './services';\n\n@NgModule({\n imports: [ConfigurationModule, FlowConfigurationModule],\n providers: [ContextService, QuoteDraftService, ProductImagesService],\n})\nexport class SdkCoreModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["map","tap","catchError","shareReplay","switchMap"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"veloce-sdk-core.js","sources":["../../../../libs/sdk/core/modules/configuration/helpers.ts","../../../../libs/sdk/core/types/runtime.types.ts","../../../../libs/sdk/core/services/context.service.ts","../../../../libs/sdk/core/services/product-images.service.ts","../../../../libs/sdk/core/services/quote-draft.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/modules/configuration/services/configuration.service.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/core.module.ts","../../../../libs/sdk/core/veloce-sdk-core.ts"],"sourcesContent":["import { LineItem, UUID } from '@veloce/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","import { ContextProperties, RuntimeModel } from '@veloce/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","import { Injectable } from '@angular/core';\nimport { ContextApiService } from '@veloce/api';\nimport { ConfigurationContext, ConfigurationContextMode } from '@veloce/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 get isInitialized(): boolean {\n return Boolean(this.context.value);\n }\n\n 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 resolve$(): Observable<ConfigurationContext> {\n return this.context.pipe(filter((ctx): ctx is ConfigurationContext => Boolean(ctx)));\n }\n\n 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 delete(): void {\n this.context.next(null);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ProductApiService } from '@veloce/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 { Injectable } from '@angular/core';\nimport { PriceApiService, QuoteApiService } from '@veloce/api';\nimport { ConfigurationContextMode, LineItem, PriceList, PriceSummary, QuoteDraft } from '@veloce/core';\nimport { Dictionary } 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 isInitialized$ = new BehaviorSubject<boolean>(false);\n public get isInitialized(): boolean {\n return this.isInitialized$.getValue();\n }\n public set isInitialized(value: boolean) {\n if (this.isInitialized !== value) {\n this.isInitialized$.next(value);\n }\n }\n\n public allPriceLists: PriceList[] = [];\n public assetPriceLists: PriceList[] = [];\n public hasUnsavedChanges = false;\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.isInitialized$\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() {\n this.resetSubj$.next(true);\n this.quoteSubj$.next(null);\n }\n\n public init(quoteId: string, params: Dictionary<string>): Observable<void> {\n return zip(\n this.context.resolve$(),\n this.quoteApiService.getQuoteDraft(quoteId, params),\n this.priceApiService.getPriceLists(),\n ).pipe(\n tap(([context, quote, allPriceLists]) => {\n this.allPriceLists = allPriceLists;\n this.quoteSubj$.next(quote);\n\n this.context.update({\n ...context,\n ...quote.context,\n properties: {\n ...context.properties,\n ...quote.context.properties,\n },\n });\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.update(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 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 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 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 get currentState$(): Observable<LineItem[]> {\n return this.quoteDraft$.pipe(map(quote => quote.currentState));\n }\n\n get currentState(): LineItem[] {\n return this.quoteDraft?.currentState ?? [];\n }\n\n /**\n * Stream of activeCurrentState\n */\n 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 get activeCurrentState(): LineItem[] {\n const ctx = this.context.resolve();\n let currentState = this.quoteDraft?.currentState ?? [];\n\n if (ctx.mode === ConfigurationContextMode.ACCOUNT) {\n currentState = this.filterByActivePriceList(currentState);\n }\n\n return currentState;\n }\n\n /**\n * Stream of activeInitialState\n */\n 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 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 get isStandalone(): boolean {\n return this.context.resolve().properties.standalone === 'true';\n }\n\n get isStandalone$(): Observable<boolean> {\n return this.context.resolve$().pipe(map(() => this.isStandalone));\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 const activePriceList = this.assetPriceLists[0];\n\n this.updateActivePriceList(activePriceList?.id);\n\n // Update PriceListId in context properties\n // TODO: remove it when backend will have such logic\n this.context.update({ properties: { PriceListId: activePriceList?.id } });\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 = true;\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ConfigurationApiService } from '@veloce/api';\nimport { RuntimeData, RuntimeModel, UIDefinition as LegacyUiDefinition } from '@veloce/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 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 '@veloce/api';\nimport { ConfigurationContextMode, LineItem, RuntimeModel, SalesforceIdUtils } from '@veloce/core';\nimport { Dictionary } from 'lodash';\nimport { combineLatest, Observable } from 'rxjs';\nimport { first, tap } from 'rxjs/operators';\nimport { ContextService } from '../../../services';\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 _assets?: LineItem[];\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() {\n this._isInitialized = false;\n this._runtimeContext = undefined;\n this._assets = undefined;\n this.initializationProps = undefined;\n this.uiDefinitionProperties = {};\n }\n\n public initTestMode(modelId: string, uiDefinition: UIDefinition) {\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 this._assets = props.assets;\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>) {\n if (!source) {\n return;\n }\n\n const value = source[propertyName];\n\n if (typeof value === 'string' && value.length === 15) {\n source[propertyName] = SalesforceIdUtils.generateId18FromId15(value);\n }\n }\n\n public getAsset(lineItem: LineItem): LineItem | undefined {\n return this._assets && this._assets.find(a => a.id === lineItem.openOrderLineItemId || a.id === lineItem.assetId);\n }\n\n public get isInitialized() {\n return this._isInitialized;\n }\n\n public get runtimeModel() {\n return this.runtimeContext?.runtimeModel;\n }\n\n public get runtimeContext() {\n return this._runtimeContext;\n }\n}\n","import { Attribute, CfgStatus, LineItem, PortDomain, UUID } from '@veloce/core';\nimport { Dictionary, flatten, 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 { ...replaceTo };\n }\n\n return {\n ...lineItem,\n lineItems: lineItem.lineItems.map(li => {\n if (li.id === replaceTo.id) {\n return replaceTo;\n } else if (li.lineItems.length) {\n return replaceLineItem(li, replaceTo);\n }\n return li;\n }),\n };\n};\n\nexport const mapAttributes = (attributes: Attribute[]): Dictionary<any> => {\n return attributes.reduce((acc, { name, value }) => ({ ...acc, [name]: value }), {});\n};\n\nexport const getAttributes = (attributes: Attribute[], names: string[] = []) => {\n const filtered = attributes.filter(({ name }) => names.includes(name));\n return sortBy(filtered, [({ name }) => names.indexOf(name)]);\n};\n\nexport const upsertAttributes = (\n originalAttributes: Attribute[],\n attributesToUpsert: { name: string; value: any }[],\n) => {\n return attributesToUpsert.reduce((acc, { name, value }) => {\n const [origAttr] = getAttributes(acc, [name]);\n return [\n ...acc.filter(attr => attr.name !== name),\n { ...(origAttr ?? { name }), cfgStatus: 'User' as CfgStatus, value },\n ];\n }, originalAttributes);\n};\n\nexport const patchAttributes = (rootLineItem: LineItem, id: string, attrs: { name: string; value: any }[]) => {\n const lineItem = findLineItem(id, [rootLineItem]);\n\n if (!lineItem) {\n return rootLineItem;\n }\n\n const attributes = upsertAttributes(lineItem.attributes, attrs);\n return replaceLineItem(rootLineItem, { ...lineItem, attributes });\n};\n\nexport const getAttributeValue = (attributes: Attribute[], name: string): any =>\n attributes.find(attr => attr.name === name)?.value;\n\nexport const generateLineItem = (\n port: string,\n type: string,\n parentId: string,\n attributes: { name: string; value: any }[] = [],\n lineItems: LineItem[] = [],\n): LineItem => {\n return {\n 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","import { LineItem } from '@veloce/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 { ConfigurationApiService } from '@veloce/api';\nimport { ConfirmationComponent, ToastType } from '@veloce/components';\nimport {\n Charge,\n ConfigurationContext,\n ConfigurationMode,\n ConfigurationRequest,\n LineItem,\n RuntimeModel,\n VlWindow,\n} from '@veloce/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, QuoteDraftService } from '../../../services';\nimport { QuoteStates, RuntimeContext, RuntimeStep } from '../../../types';\nimport { LineItemWorker } from '../../../utils';\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 states: QuoteStates = {};\n\n private lineItem = new BehaviorSubject<LineItem | undefined>(undefined);\n private charges = new BehaviorSubject<Dictionary<Charge>>({});\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() {\n this.hasUnsavedChanges = false;\n this.runtimeService.reset();\n\n this.states = {};\n this.lineItem.next(undefined);\n this.charges.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.states.configurableRamp = new LineItemWorker(this.lineItem.value).replace(lineItem).li;\n this.states.asset = this.states.configurableRamp\n ? this.runtimeService.getAsset(this.states.configurableRamp)\n : undefined;\n\n 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 updateCurrentStates(update: Partial<QuoteStates>) {\n this.states = {\n ...this.states,\n ...update,\n };\n }\n\n public get(): Observable<LineItem | undefined> {\n return this.lineItem.asObservable().pipe(shareReplay());\n }\n\n public getSnapshot(): LineItem | undefined {\n return this.lineItem.value ? { ...this.lineItem.value } : undefined;\n }\n\n public getRuntimeModel(): RuntimeModel | undefined {\n return this.runtimeService.runtimeModel;\n }\n\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 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.states.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, deletedLineItems }) => {\n this.contextService.update(context ?? {});\n this.charges.next(charges ?? {});\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 this.updateCurrentStates({\n currentState: this.quoteDraftService.currentState,\n });\n\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 return {\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.states.currentState || [],\n asset: this.states.asset,\n };\n }\n\n private showInactiveProductsConfirmation() {\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: {\n confirmationConfig: {\n title: ' ',\n description: 'This quote contains inactive products. Do you want to remove them?',\n submitBtn: 'Remove products',\n cancelBtn: 'Back to Quote',\n },\n },\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","import { Injectable } from '@angular/core';\nimport { LineItem } from '@veloce/core';\nimport { 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[]) {\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);\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): 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;\n if (charge) {\n charge.priceAdjustment = 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 {\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 = lineItem.chargeGroupItems.find(({ id }) => id === update.id);\n if (!foundChargeGroup) {\n return false;\n }\n\n if (update.attributeType === 'PRICE_ADJUSTMENT') {\n foundChargeGroup.priceAdjustment = 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 '@veloce/api';\nimport { Charge, ConfigurationContext, LineItem, QuoteDraft } from '@veloce/core';\nimport { cloneDeep, Dictionary } from 'lodash';\nimport { catchError, map, noop, Observable, of, shareReplay, switchMap, tap, throwError } from 'rxjs';\nimport { ContextService, QuoteDraftService } from '../../../services';\nimport { ConfigurationService } from '../../configuration';\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 => this.quoteDraftService.updateQuoteDraft(result)),\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);\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 initialState = this.quoteDraftService.activeInitialState;\n const currentState = this.quoteDraftService.activeCurrentState;\n\n const currentLineItemIndex = currentState.findIndex(({ id }) => id === lineItemId);\n const currentLineItem = currentState[currentLineItemIndex];\n\n const initialLineItem = initialState.find(({ integrationId }) => integrationId === currentLineItem?.integrationId);\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 => [...quoteDraft.currentState, lineItem]),\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 chargesSnapshot(): Dictionary<Charge> {\n return this.quoteDraftService.quoteDraft?.charges ?? {};\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 '@veloce/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 { ConfigurationApiService, ContextApiService, ProductModelApiService } from '@veloce/api';\nimport { ConfirmationDialogModule } from '@veloce/components';\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 { NgModule } from '@angular/core';\nimport { FlowConfigurationModule } from './modules';\nimport { ConfigurationModule } from './modules/configuration/configuration.module';\nimport { ContextService, ProductImagesService, QuoteDraftService } from './services';\n\n@NgModule({\n imports: [ConfigurationModule, FlowConfigurationModule],\n providers: [ContextService, QuoteDraftService, ProductImagesService],\n})\nexport class SdkCoreModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["map","tap","catchError","shareReplay","switchMap"],"mappings":"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"}
|