@veloceapps/sdk 4.0.1 → 4.0.3

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.
@@ -1 +1 @@
1
- {"version":3,"file":"veloce-sdk.umd.js","sources":["../../../../libs/sdk/src/constants.ts","../../../../libs/sdk/src/components/dialog/dialog.component.ts","../../../../libs/sdk/src/components/dialog/dialog.component.html","../../../../libs/sdk/src/components/dialog/dialog.module.ts","../../../../libs/sdk/src/services/doc-gen.service.ts","../../../../libs/sdk/src/components/doc-gen/doc-gen.component.ts","../../../../libs/sdk/src/components/doc-gen/doc-gen.component.html","../../../../libs/sdk/src/components/doc-gen/doc-gen.module.ts","../../../../node_modules/tslib/tslib.es6.js","../../../../libs/sdk/src/services/flow-router.service.ts","../../../../libs/sdk/src/components/header/cart-overlay/cart-preview.component.ts","../../../../libs/sdk/src/components/header/cart-overlay/cart-preview.component.html","../../../../libs/sdk/src/components/header/cart-overlay/cart-preview.module.ts","../../../../libs/sdk/src/services/flow-dialog.service.ts","../../../../libs/sdk/src/components/header/header.component.ts","../../../../libs/sdk/src/components/header/header.component.html","../../../../libs/sdk/src/components/header/header.module.ts","../../../../libs/sdk/src/services/flow.service.ts","../../../../libs/sdk/src/flow.component.ts","../../../../libs/sdk/src/flow.component.html","../../../../libs/sdk/src/guards/context.guard.ts","../../../../libs/sdk/src/guards/product-unload.guard.ts","../../../../libs/sdk/src/guards/root.guard.ts","../../../../libs/sdk/src/types/flow-customization.types.ts","../../../../libs/sdk/src/pages/catalog/catalog.component.ts","../../../../libs/sdk/src/pages/catalog/catalog.component.html","../../../../libs/sdk/src/pages/catalog/catalog.module.ts","../../../../libs/sdk/src/utils/flow.utils.ts","../../../../libs/sdk/src/pages/debug/debug.component.ts","../../../../libs/sdk/src/pages/debug/debug.component.html","../../../../libs/sdk/src/pages/debug/debug.module.ts","../../../../libs/sdk/src/pages/legacy-product/legacy-product.component.ts","../../../../libs/sdk/src/pages/legacy-product/legacy-product.component.html","../../../../libs/sdk/src/pages/legacy-product/legacy-product.module.ts","../../../../libs/sdk/src/pages/product/product.component.ts","../../../../libs/sdk/src/pages/product/product.component.html","../../../../libs/sdk/src/pages/product/product.module.ts","../../../../libs/sdk/src/pages/record-not-found/record-not-found.component.ts","../../../../libs/sdk/src/pages/record-not-found/record-not-found.component.html","../../../../libs/sdk/src/pages/record-not-found/record-not-found.module.ts","../../../../libs/sdk/src/pages/shopping-cart/shopping-cart.component.ts","../../../../libs/sdk/src/pages/shopping-cart/shopping-cart.component.html","../../../../libs/sdk/src/pages/shopping-cart/shopping-cart.module.ts","../../../../libs/sdk/src/resolvers/flow.resolver.ts","../../../../libs/sdk/src/resolvers/quote.resolver.ts","../../../../libs/sdk/src/flow-routing.module.ts","../../../../libs/sdk/src/flow.module.ts","../../../../libs/sdk/veloce-sdk.ts"],"sourcesContent":["export const VELOCE_FLOW_ROOT_ROUTE = 'VELOCE_FLOW_ROOT_ROUTE';\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\nimport { FlowDialogConfig } from './dialog.types';\n\n@Component({\n selector: 'vl-flow-dialog',\n templateUrl: './dialog.component.html',\n styleUrls: ['./dialog.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FlowDialogComponent {\n public config: FlowDialogConfig;\n\n constructor(private dialogConfig: DynamicDialogConfig, private ref: DynamicDialogRef) {\n this.config = this.dialogConfig.data.config;\n }\n\n cancelHandler(): void {\n this.ref.close();\n }\n\n confirmHandler(): void {\n this.ref.close(true);\n }\n}\n","<div *ngIf=\"config.description\" class=\"description\">\n {{ config.description }}\n</div>\n\n<div class=\"form-actions\">\n <p-button\n *ngIf=\"config.secondaryButton\"\n styleClass=\"p-button-outlined button-text-bold\"\n [label]=\"config.secondaryButton!\"\n (onClick)=\"cancelHandler()\"\n ></p-button>\n <p-button\n styleClass=\"p-button p-button-filled\"\n [label]=\"config.primaryButton\"\n (onClick)=\"confirmHandler()\"\n ></p-button>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ButtonModule } from 'primeng/button';\nimport { FlowDialogComponent } from './dialog.component';\n\n@NgModule({\n declarations: [FlowDialogComponent],\n imports: [CommonModule, ButtonModule],\n exports: [FlowDialogComponent],\n})\nexport class FlowDialogModule {}\n","import { Injectable } from '@angular/core';\nimport { FlowAction, IntegrationState } from '@veloce/sdk/cms';\nimport { BehaviorSubject, Subject, takeUntil, tap } from 'rxjs';\n\n@Injectable()\nexport class FlowDocGenService {\n private cleanup$ = new Subject<void>();\n private isVisibleSubj$ = new BehaviorSubject(false);\n\n public isVisible$ = this.isVisibleSubj$.asObservable();\n\n constructor(private integrationState: IntegrationState) {\n this.initSubscriptions();\n }\n\n public cleanup(): void {\n this.cleanup$.next();\n }\n\n private initSubscriptions(): void {\n this.integrationState\n .listen$(FlowAction.FLOW_OPEN_DOC_GEN)\n .pipe(\n tap(() => this.isVisibleSubj$.next(true)),\n takeUntil(this.cleanup$),\n )\n .subscribe();\n\n this.integrationState\n .listen$(FlowAction.FLOW_CLOSE_DOC_GEN)\n .pipe(\n tap(() => this.isVisibleSubj$.next(false)),\n takeUntil(this.cleanup$),\n )\n .subscribe();\n }\n}\n","import { ChangeDetectionStrategy, Component, OnDestroy } from '@angular/core';\nimport { UITemplatesApiService } from '@veloce/api';\nimport { ToastService, ToastType } from '@veloce/components';\nimport { TemplateComponent, UITemplate, UITemplateComponentType, UITemplateType } from '@veloce/core';\nimport { extendElementMetadata, extractElementMetadata } from '@veloce/sdk/cms';\nimport { ContextService, QuoteDraftService, UIDefinition } from '@veloce/sdk/core';\nimport { BehaviorSubject, catchError, first, map, Observable, of, Subject, switchMap, takeUntil, tap } from 'rxjs';\nimport { FlowDocGenService } from '../../services/doc-gen.service';\n\n@Component({\n selector: 'vl-flow-doc-gen',\n templateUrl: './doc-gen.component.html',\n styleUrls: ['./doc-gen.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DocGenComponent implements OnDestroy {\n public uiDefinition$ = new BehaviorSubject<UIDefinition | null>(null);\n public isVisible$: Observable<boolean>;\n\n private templateApiName = '';\n private destroy$ = new Subject<void>();\n\n constructor(\n private quoteDraftService: QuoteDraftService,\n private contextService: ContextService,\n private templatesApi: UITemplatesApiService,\n private docGenService: FlowDocGenService,\n private toastService: ToastService,\n ) {\n this.isVisible$ = this.docGenService.isVisible$;\n\n // initialize when quote draft requested\n this.quoteDraftService.quoteDraft$\n .pipe(\n first(),\n tap(() => this.initialize()),\n takeUntil(this.destroy$),\n )\n .subscribe();\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n private initialize(): void {\n this.templateApiName = this.contextService.resolve().properties.docGenTemplateApiName ?? '';\n\n this.generateUIDefinition$()\n .pipe(\n tap(uiDef => {\n if (!uiDef) {\n throw new Error(`Component with name '${this.templateApiName}' not found.`);\n }\n\n this.uiDefinition$.next(uiDef);\n }),\n catchError(err => {\n const message = 'Failed to resolve DocGen component. ' + (err.message ?? '');\n this.toastService.add({ severity: ToastType.error, summary: message, sticky: true });\n return of();\n }),\n takeUntil(this.destroy$),\n )\n .subscribe();\n }\n\n private getTemplateRootComponent$(template: UITemplate): Observable<TemplateComponent | undefined> {\n return this.templatesApi\n .fetchComponents$(template.id)\n .pipe(map(components => components.find(c => c.type === UITemplateComponentType.ROOT) ?? undefined));\n }\n\n private getDocGenComponentMeta$() {\n return this.templatesApi.fetchTemplates$().pipe(\n map<UITemplate[], UITemplate | undefined>(templates => {\n const template = templates.find(\n template => template.type === UITemplateType.DOCGEN && template.name === this.templateApiName,\n );\n return template ?? templates[0];\n }),\n switchMap(template => (template ? this.getTemplateRootComponent$(template) : of(undefined))),\n switchMap(component =>\n component ? this.templatesApi.fetchComponentAttachments$(component.uiTemplateId, component) : of(undefined),\n ),\n );\n }\n\n private generateUIDefinition$(): Observable<UIDefinition | undefined> {\n return of(undefined).pipe(\n tap(() => {\n if (!this.templateApiName) {\n throw new Error(\"Flow Query parameter 'docGenTemplateApiName' is missing.\");\n }\n }),\n switchMap(meta => (meta ? of(meta) : this.getDocGenComponentMeta$())),\n map(meta => {\n if (!meta) {\n return;\n }\n\n const headerId = this.contextService.resolve().properties.Id ?? null;\n let script = meta.js;\n\n if (script) {\n const metadata = extractElementMetadata(script);\n script = extendElementMetadata(script, {\n inputs: {\n ...metadata.inputs,\n Id: headerId ? `\"${headerId}\"` : null,\n },\n });\n }\n\n const uiDef: UIDefinition = {\n name: '',\n createdTimestamp: 0,\n primary: true,\n type: 'DEFAULT',\n version: 2,\n children: [\n {\n children: [],\n template: meta.html && btoa(meta.html),\n script: script && btoa(script),\n styles: meta.css && btoa(meta.css),\n },\n ],\n };\n\n return uiDef;\n }),\n );\n }\n}\n","<ng-container *ngIf=\"isVisible$ | async\">\n <ng-container *ngIf=\"uiDefinition$ | async as uiDefinition\">\n <vl-cms-preview [uiDefinition]=\"uiDefinition\" [clearState]=\"true\"></vl-cms-preview>\n </ng-container>\n</ng-container>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { PreviewModule } from '@veloce/sdk/cms';\nimport { DocGenComponent } from './doc-gen.component';\n\n@NgModule({\n declarations: [DocGenComponent],\n imports: [CommonModule, PreviewModule],\n exports: [DocGenComponent],\n})\nexport class DocGenModule {}\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 { Injectable } from '@angular/core';\nimport {\n ActivatedRoute,\n ActivatedRouteSnapshot,\n Event,\n NavigationCancel,\n NavigationEnd,\n NavigationError,\n NavigationStart,\n Params,\n Router,\n} from '@angular/router';\nimport { ContextService } from '@veloce/sdk/core';\nimport { distinctUntilChanged, filter, map, Observable, shareReplay, startWith } from 'rxjs';\nimport { VELOCE_FLOW_ROOT_ROUTE } from '../constants';\nimport { RouteWithId } from '../types/route.types';\n\n@Injectable({ providedIn: 'root' })\nexport class FlowRouterService {\n private routeChange$: Observable<Event>;\n private lastChildParams$: Observable<Params>;\n private lastChildRoute$: Observable<ActivatedRouteSnapshot>;\n private urlHistory: string[] = [];\n\n public loading$: Observable<boolean>;\n\n constructor(private router: Router, private route: ActivatedRoute, private contextService: ContextService) {\n this.routeChange$ = this.router.events.pipe(\n filter(e => e instanceof NavigationEnd),\n shareReplay(),\n );\n\n this.lastChildParams$ = this.watchLastChildParams$(this.route).pipe(\n startWith(this.getLastChildParams(this.route.snapshot)),\n shareReplay(),\n );\n this.lastChildRoute$ = this.watchLastChildRoute$(this.route).pipe(\n startWith(this.getLastChildRouteSnapshot(this.route.snapshot)),\n shareReplay(),\n );\n\n this.loading$ = this.router.events.pipe(\n filter(\n e =>\n e instanceof NavigationStart ||\n e instanceof NavigationCancel ||\n e instanceof NavigationEnd ||\n e instanceof NavigationError,\n ),\n map(e => e instanceof NavigationStart),\n startWith(false),\n distinctUntilChanged(),\n );\n\n this.router.events.pipe(filter(e => e instanceof NavigationEnd)).subscribe(() => {\n this.urlHistory.push(this.router.url);\n });\n }\n\n getFlowRootRoute(route: ActivatedRouteSnapshot): ActivatedRouteSnapshot | undefined {\n const path = [...route.pathFromRoot];\n\n while (path.length) {\n const parent = path.pop();\n\n if (!parent) {\n break;\n }\n\n if ((parent.routeConfig as RouteWithId)?.id === VELOCE_FLOW_ROOT_ROUTE) {\n return parent;\n }\n }\n\n return;\n }\n\n getFlowRootPath(route: ActivatedRouteSnapshot): string {\n const rootRoute = this.getFlowRootRoute(route);\n if (!rootRoute) {\n return '';\n }\n\n const path = rootRoute.pathFromRoot\n .map(r => r.routeConfig?.path)\n .filter(Boolean)\n .join('/');\n\n return '/' + path;\n }\n\n get route$(): Observable<ActivatedRouteSnapshot> {\n return this.lastChildRoute$;\n }\n\n get params$(): Observable<Params> {\n return this.lastChildParams$;\n }\n\n public getLastChildRoute = (route: ActivatedRoute): ActivatedRoute => {\n return route.firstChild ? this.getLastChildRoute(route.firstChild) : route;\n };\n\n public getNthChildRoute = (route: ActivatedRoute, index: number): ActivatedRoute => {\n if (index <= 0) {\n return route;\n }\n\n return route.firstChild ? this.getNthChildRoute(route.firstChild, index - 1) : route;\n };\n\n public getLastChildRouteSnapshot = (route: ActivatedRouteSnapshot): ActivatedRouteSnapshot => {\n return route.firstChild ? this.getLastChildRouteSnapshot(route.firstChild) : route;\n };\n\n public watchLastChildRoute$ = (route: ActivatedRoute): Observable<ActivatedRouteSnapshot> => {\n return this.routeChange$.pipe(map(() => this.getLastChildRouteSnapshot(route.snapshot)));\n };\n\n public getLastChildParams = (route: ActivatedRouteSnapshot): Params => {\n return route.firstChild ? this.getLastChildParams(route.firstChild) : route.params;\n };\n\n public watchLastChildParams$ = (route: ActivatedRoute): Observable<Params> => {\n return this.routeChange$.pipe(map(() => this.getLastChildParams(route.snapshot)));\n };\n\n public getFlowSubpath$ = (): Observable<string> => {\n return this.route$.pipe(\n map(route => {\n const url = route.url.join('/');\n const flowRootUrl = this.getFlowRootPath(route);\n return url.replace(flowRootUrl, '');\n }),\n );\n };\n\n public isConfigurationRoute$(): Observable<boolean> {\n return this.getFlowSubpath$().pipe(map(url => url.startsWith('product')));\n }\n\n public isCartRoute$(): Observable<boolean> {\n return this.getFlowSubpath$().pipe(map(url => url.startsWith('cart')));\n }\n\n public isCatalogRoute$(): Observable<boolean> {\n return this.getFlowSubpath$().pipe(map(url => url.startsWith('catalog')));\n }\n\n public navigateBack(): void {\n const prevUrl = this.urlHistory[this.urlHistory.length - 2];\n\n if (prevUrl) {\n this.router.navigateByUrl(prevUrl);\n }\n }\n\n public navigateToProductConfiguration(productId: string, lineItemId?: string): void {\n this.contextService.update({ properties: { productId, lineItemId } });\n\n const routeSnapshot = this.getLastChildRouteSnapshot(this.route.snapshot);\n const flowRouteUrl = this.getFlowRootPath(routeSnapshot);\n\n this.router.navigate([flowRouteUrl, 'product'], {\n queryParams: { ...routeSnapshot.queryParams, productId },\n });\n }\n\n public navigateToShoppingCart(): void {\n const routeSnapshot = this.getLastChildRouteSnapshot(this.route.snapshot);\n const flowRouteUrl = this.getFlowRootPath(routeSnapshot);\n\n this.router.navigate([flowRouteUrl, 'cart'], { queryParams: routeSnapshot.queryParams });\n }\n\n public navigateToCatalog(): void {\n const routeSnapshot = this.getLastChildRouteSnapshot(this.route.snapshot);\n const flowRouteUrl = this.getFlowRootPath(routeSnapshot);\n\n this.router.navigate([flowRouteUrl, 'catalog'], { queryParams: routeSnapshot.queryParams });\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n Input,\n OnChanges,\n OnDestroy,\n SimpleChanges,\n ViewChild,\n} from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { FlowConfigurationService, ProductImagesService, QuoteDraftService } from '@veloce/sdk/core';\nimport { OverlayPanel } from 'primeng/overlaypanel';\nimport { BehaviorSubject, combineLatest, filter, map, Observable, Subject, takeUntil } from 'rxjs';\nimport { FlowRouterService } from '../../../services/flow-router.service';\nimport { HeaderProduct } from '../header.types';\n\n@Component({\n selector: 'vl-cart-preview',\n templateUrl: './cart-preview.component.html',\n styleUrls: ['./cart-preview.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CartPreviewComponent implements OnChanges, AfterViewInit, OnDestroy {\n @ViewChild(OverlayPanel) overlayPanel!: OverlayPanel;\n\n @Input() products!: HeaderProduct[];\n\n public form = new FormGroup({});\n public readonlyProductId$: Observable<string | null>;\n\n private shouldUpdate$ = new BehaviorSubject(true);\n private destroyed$ = new Subject<void>();\n\n public isEditMode$: Observable<boolean>;\n\n constructor(\n private flowConfiguration: FlowConfigurationService,\n private routerService: FlowRouterService,\n private productImagesService: ProductImagesService,\n private quoteDraftService: QuoteDraftService,\n ) {\n this.readonlyProductId$ = combineLatest([\n this.routerService.route$,\n this.routerService.isConfigurationRoute$(),\n ]).pipe(\n map(([route, isConfigurationRoute]) => {\n if (!isConfigurationRoute) {\n return null;\n }\n\n return route.queryParams.productId;\n }),\n );\n\n this.isEditMode$ = this.quoteDraftService.isEditMode$();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.products) {\n this.shouldUpdate$.next(true);\n }\n }\n\n ngAfterViewInit() {\n combineLatest([this.readonlyProductId$, this.isEditMode$, this.shouldUpdate$, this.overlayPanel.onShow])\n .pipe(\n filter(() => this.overlayPanel.overlayVisible),\n takeUntil(this.destroyed$),\n )\n .subscribe(([readonlyProductId, isEditMode]) =>\n this.updateControls(this.products, isEditMode, readonlyProductId),\n );\n }\n\n public ngOnDestroy(): void {\n this.destroyed$.next();\n this.destroyed$.complete();\n }\n\n public getImageUrl(productId: string): Observable<string | null> {\n return this.productImagesService.getImageUrl$(productId);\n }\n\n public navigateToProductConfiguration(productId: string, lineItemId: string) {\n this.overlayPanel.hide();\n this.routerService.navigateToProductConfiguration(productId, lineItemId);\n }\n\n public controlBlurHandler(product: HeaderProduct): void {\n const control = this.form.controls[product.id];\n if (control.invalid) {\n return;\n }\n\n this.flowConfiguration.update([\n {\n dataType: 'LINEITEM',\n attributeType: 'QTY',\n id: product.id,\n newValue: control.value,\n },\n ]);\n }\n\n public deleteHandler(product: HeaderProduct): void {\n this.flowConfiguration.delete([product.id]);\n }\n\n public deleteAllHandler(): void {\n const productIds = this.products.map(product => product.id);\n this.flowConfiguration.delete(productIds);\n }\n\n private updateControls(products: HeaderProduct[], isEditMode: boolean, readonlyProductId: string | null): void {\n const ids: string[] = [];\n\n products.forEach(item => {\n if (!item.id) {\n return;\n }\n\n ids.push(item.id);\n\n if (!this.form.controls[item.id]) {\n this.form.addControl(item.id, new FormControl(item.qty, []));\n } else {\n this.form.controls[item.id]?.setValue(item.qty);\n }\n\n if (!isEditMode || item.deleted || item.productId === readonlyProductId) {\n this.form.controls[item.id].disable();\n } else {\n this.form.controls[item.id].enable();\n }\n });\n\n const removedIds = Object.keys(this.form.controls).filter(id => !ids.includes(id));\n removedIds.forEach(id => this.form.removeControl(id));\n }\n}\n","<p-overlayPanel\n styleClass=\"navigation-settings-overlay flow-header-overlay center\"\n showTransitionOptions=\"0ms\"\n hideTransitionOptions=\"0ms\"\n>\n <ng-template pTemplate>\n <div class=\"flow-header-overlay__wrapper\" *vlLet=\"readonlyProductId$ | async as readonlyProductId\">\n <ng-container *vlLet=\"isEditMode$ | async as isEditMode\">\n <ng-container *ngIf=\"products.length > 0; else empty\">\n <h2 class=\"flow-header-overlay__title\">\n <span>Products ({{ products.length }})</span>\n <i class=\"vl-icon vl-icon-close close-icon\" (click)=\"overlayPanel.hide()\"></i>\n </h2>\n\n <div class=\"product header\">\n <span>Product</span>\n <span class=\"text-right\">Qty</span>\n <span class=\"text-right\">MRR</span>\n <span class=\"text-right\">NRR</span>\n </div>\n\n <div class=\"scrollable-wrapper\">\n <div class=\"product\" *ngFor=\"let product of products\">\n <div\n class=\"product__info\"\n *vlLet=\"!isEditMode || product.deleted || readonlyProductId === product.productId as readonlyProduct\"\n >\n <div class=\"product__image-wrapper\">\n <div\n *ngIf=\"getImageUrl(product.productId) | async as imageUrl; else noImage\"\n class=\"product__image\"\n [ngStyle]=\"{ 'background-image': 'url(' + imageUrl + ')' }\"\n ></div>\n </div>\n <div class=\"flex flex-column justify-content-center\">\n <div class=\"word-break\">{{ product.name }}</div>\n <div>\n <p-button\n label=\"Configure\"\n [disabled]=\"readonlyProduct || !product.configurable\"\n styleClass=\"p-button-link p-button-sm pl-0\"\n (onClick)=\"navigateToProductConfiguration(product.productId, product.id)\"\n ></p-button>\n <p-button\n label=\"Delete\"\n [disabled]=\"readonlyProduct\"\n styleClass=\"p-button-link p-button-sm p-button-danger pl-0 pr-0\"\n (onClick)=\"deleteHandler(product)\"\n ></p-button>\n </div>\n </div>\n </div>\n\n <span>\n <p-inputNumber\n *ngIf=\"form.controls[product.id] as control\"\n class=\"qty-control\"\n [formControl]=\"$any(control)\"\n [min]=\"1\"\n [required]=\"true\"\n (onBlur)=\"controlBlurHandler(product)\"\n ></p-inputNumber>\n </span>\n <span class=\"text-right pt-3\">${{ product.mrr }}</span>\n <span class=\"text-right pt-3\">${{ product.nrr }}</span>\n </div>\n\n <ng-template #noImage>\n <i class=\"vl-icon vl-icon-no-image no-image-icon\"></i>\n </ng-template>\n </div>\n\n <div class=\"flex justify-content-end mt-3\">\n <p-button\n label=\"Clear cart\"\n styleClass=\"p-button-link p-button-sm p-button-danger pl-0 pr-0\"\n [disabled]=\"!isEditMode || readonlyProductId\"\n (onClick)=\"deleteAllHandler()\"\n ></p-button>\n </div>\n </ng-container>\n </ng-container>\n\n <ng-template #empty>\n <h2 class=\"flow-header-overlay__title\">\n <span>Empty Cart</span>\n <i class=\"vl-icon vl-icon-close close-icon\" (click)=\"overlayPanel.hide()\"></i>\n </h2>\n\n <span class=\"empty-state\">There are no products added to the Shopping Cart yet.</span>\n </ng-template>\n </div>\n </ng-template>\n</p-overlayPanel>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { LetDirectiveModule } from '@veloce/components';\nimport { ButtonModule } from 'primeng/button';\nimport { InputNumberModule } from 'primeng/inputnumber';\nimport { OverlayPanelModule } from 'primeng/overlaypanel';\nimport { CartPreviewComponent } from './cart-preview.component';\n\n@NgModule({\n declarations: [CartPreviewComponent],\n imports: [CommonModule, ReactiveFormsModule, ButtonModule, OverlayPanelModule, LetDirectiveModule, InputNumberModule],\n exports: [CartPreviewComponent],\n})\nexport class CartPreviewModule {}\n","import { Injectable } from '@angular/core';\nimport { ContextService } from '@veloce/sdk/core';\nimport { DialogService } from 'primeng/dynamicdialog';\nimport { Observable } from 'rxjs';\nimport { FlowDialogComponent } from '../components/dialog/dialog.component';\nimport { FlowDialogConfig } from '../components/dialog/dialog.types';\n\n@Injectable()\nexport class FlowDialogService {\n constructor(private dialogService: DialogService, private contextService: ContextService) {}\n\n public show(config: FlowDialogConfig): Observable<boolean> {\n return this.dialogService.open(FlowDialogComponent, {\n dismissableMask: true,\n closeOnEscape: true,\n closable: true,\n showHeader: true,\n header: config.title,\n width: '440px',\n data: { config },\n }).onClose;\n }\n\n public showEmptyCartDialog(): Observable<boolean> {\n return this.show({\n title: 'No Products in Quote',\n description: 'There are no products in your Quote. To save a Quote, add at least one product.',\n primaryButton: 'OK',\n });\n }\n\n public showReadonlyModeDialog(): Observable<boolean> {\n const ctx = this.contextService.resolve();\n const objectName = ctx.mode ? ctx.mode[0].toUpperCase() + ctx.mode.substring(1).toLowerCase() : 'Object';\n\n return this.show({\n title: 'Error',\n description: `${objectName} Cannot be Saved`,\n primaryButton: 'OK',\n });\n }\n\n public showQuoteReadonlyModeDialog(): Observable<boolean> {\n return this.show({\n title: 'Quote Cannot be Saved',\n description:\n 'It is only possible to save quotes with the “Draft” status. Please create a new quote to make and save changes.',\n primaryButton: 'OK',\n });\n }\n\n public showQuoteOutsideShoppingCartDialog(): Observable<boolean> {\n return this.show({\n title: 'Quote Cannot be Saved',\n description: 'It is only possible to save quotes from the Shopping Cart. To proceed, go to the Shopping Cart.',\n primaryButton: 'OK',\n });\n }\n\n public showAccountNoChangesDialog(): Observable<boolean> {\n return this.show({\n title: 'No Changes to Save',\n description: 'There are no changes since the last update. Please make changes to proceed.',\n primaryButton: 'OK',\n });\n }\n\n public showUnsavedChangesDialog(): Observable<boolean> {\n return this.show({\n title: 'Unsaved Changes',\n description: 'Are you sure you want to leave this page and discard your unsaved changes?',\n primaryButton: 'Keep Editing',\n secondaryButton: 'Discard Changes',\n });\n }\n\n public showReadonlyQuoteSubmitFailureDialog(): Observable<boolean> {\n return this.show({\n title: 'Cannot Submit for Approval',\n description:\n 'It is only possible to submit for approval quotes with the “Draft“ status. Please create a new quote to proceed.',\n primaryButton: 'OK',\n });\n }\n\n public showOutsideShoppingCartQuoteSubmitFailureDialog(): Observable<boolean> {\n return this.show({\n title: 'Cannot Submit for Approval',\n description:\n 'It is only possible to submit quotes for approval from the Shopping Cart. To proceed, go to the Shopping Cart.',\n primaryButton: 'OK',\n });\n }\n\n public showAccountSubmitFailureDialog(): Observable<boolean> {\n return this.show({\n title: 'Save Changes',\n description:\n 'To submit for approval, save the quote first, and then submit it for approval from the Shopping Cart.',\n primaryButton: 'OK',\n });\n }\n\n public showDocgenAccountUnsavedChangesDialog(): Observable<boolean> {\n return this.show({\n title: 'Save Quote',\n description:\n 'To generate a document, save the quote first, and then generate the document from the Shopping Cart.',\n primaryButton: 'OK',\n });\n }\n\n public showDocgenReadonlyDialog(): Observable<boolean> {\n return this.show({\n title: 'Document Generation is not Available',\n description:\n 'It is only possible to generate documents for quotes with the “Draft” status. Please create a new quote to generate a document.',\n primaryButton: 'OK',\n });\n }\n\n public showDocgenOutsideShoppingCartDialog(): Observable<boolean> {\n return this.show({\n title: 'Document Generation is not Available',\n description:\n 'It is only possible to generate documents for quotes from the Shopping Cart. To proceed, go to the Shopping Cart.',\n primaryButton: 'OK',\n });\n }\n\n public showDocgenUnsavedChangesDialog(): Observable<boolean> {\n return this.show({\n title: 'Unsaved Changes',\n description: 'To generate a document, save the quote first.',\n primaryButton: 'Save and proceed',\n secondaryButton: 'Cancel',\n });\n }\n}\n","import { ChangeDetectionStrategy, Component, OnDestroy, OnInit } from '@angular/core';\nimport { QuoteApiService, SalesforceApiService } from '@veloce/api';\nimport {\n ConfigurationContextMode,\n ContextProperties,\n LineItem,\n PriceList,\n SearchRequest,\n VlWindow,\n} from '@veloce/core';\nimport { IntegrationState, OpenDocGenAction } from '@veloce/sdk/cms';\nimport { ContextService, FlowConfigurationService, QuoteDraftService } from '@veloce/sdk/core';\nimport { MenuItem } from 'primeng/api';\nimport {\n BehaviorSubject,\n distinctUntilChanged,\n finalize,\n first,\n map,\n noop,\n Observable,\n of,\n Subject,\n switchMap,\n takeUntil,\n tap,\n} from 'rxjs';\nimport { FlowDialogService } from '../../services/flow-dialog.service';\nimport { FlowRouterService } from '../../services/flow-router.service';\nimport { HeaderObjectDetails, HeaderProduct } from './header.types';\n\ndeclare const window: VlWindow;\n\n@Component({\n selector: 'vl-flow-header',\n templateUrl: './header.component.html',\n styleUrls: ['./header.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FlowHeaderComponent implements OnInit, OnDestroy {\n public objectName: string;\n public contextProperties: ContextProperties;\n public assetPriceLists: PriceList[];\n public activePriceList$: Observable<PriceList | null>;\n public status$: Observable<string>;\n public objectDetails$ = new BehaviorSubject<HeaderObjectDetails>({});\n public products$: Observable<HeaderProduct[]>;\n public isConfigurationRoute$: Observable<boolean>;\n public isCartRoute$: Observable<boolean>;\n public isCatalogRoute$: Observable<boolean>;\n public isEditMode$: Observable<boolean>;\n public isSaveInProgress$ = new BehaviorSubject(false);\n public isSubmitInProgress$ = new BehaviorSubject(false);\n public totalMRR$: Observable<string>;\n public totalNRR$: Observable<string>;\n\n private mode?: ConfigurationContextMode;\n private destroyed$ = new Subject<void>();\n\n constructor(\n private contextService: ContextService,\n private quoteDraftService: QuoteDraftService,\n private quoteApiService: QuoteApiService,\n private sfApiService: SalesforceApiService,\n private flowConfiguration: FlowConfigurationService,\n private routerService: FlowRouterService,\n private dialogService: FlowDialogService,\n private integrationState: IntegrationState,\n ) {\n const ctx = this.contextService.resolve();\n\n this.mode = ctx.mode;\n this.objectName = ctx.mode.toLowerCase();\n this.contextProperties = ctx.properties;\n this.assetPriceLists = this.quoteDraftService.assetPriceLists;\n\n this.activePriceList$ = this.quoteDraftService.activePriceList$;\n this.status$ = this.contextService.resolve$().pipe(map(context => context.properties.Status ?? ''));\n this.isEditMode$ = this.quoteDraftService.isEditMode$();\n this.products$ = this.flowConfiguration.get().pipe(map(lineItems => this.generateProducts(lineItems)));\n this.isConfigurationRoute$ = this.routerService.isConfigurationRoute$();\n this.isCartRoute$ = this.routerService.isCartRoute$();\n this.isCatalogRoute$ = this.routerService.isCatalogRoute$();\n\n this.totalMRR$ = this.contextService.resolve$().pipe(\n map(ctx => ctx.properties.VDM_Total_MRR),\n distinctUntilChanged(),\n map(mrr => this.formatMetric(mrr)),\n );\n\n this.totalNRR$ = this.contextService.resolve$().pipe(\n map(ctx => ctx.properties.VDM_Total_NRR),\n distinctUntilChanged(),\n map(nrr => this.formatMetric(nrr)),\n );\n }\n\n ngOnInit() {\n this.populateObjectDetails();\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n this.destroyed$.complete();\n }\n\n public get isAccountMode() {\n return this.mode === ConfigurationContextMode.ACCOUNT;\n }\n\n public get isQuoteMode() {\n return this.mode === ConfigurationContextMode.QUOTE;\n }\n\n public getSplitButtonActions(isCartRoute: boolean): MenuItem[] {\n return [\n {\n label: 'Save to Quote',\n command: () => {\n this.saveButtonClickHandler(isCartRoute);\n },\n },\n {\n label: 'Submit For Approval',\n command: () => {\n this.submitButtonClickHandler(isCartRoute);\n },\n },\n ];\n }\n\n public back(objectId?: string): void {\n const targetId = objectId ?? this.contextService.resolve().headerId;\n\n if (targetId) {\n window.VELO_BACK_FN.apply(null, [targetId]);\n }\n }\n\n public getSalesforceObjectLink(objectId?: string): string {\n if (!objectId) {\n return '';\n }\n\n return `${window.location.origin}/${objectId}`;\n }\n\n public navigateToShoppingCart() {\n this.routerService.navigateToShoppingCart();\n }\n\n public navigateToCatalog() {\n this.routerService.navigateToCatalog();\n }\n\n public docGenButtonClickHandler(isCartRoute: boolean): void {\n if (this.mode === ConfigurationContextMode.ACCOUNT) {\n if (!this.quoteDraftService.hasUnsavedChanges) {\n this.dialogService.showAccountNoChangesDialog().subscribe();\n } else {\n this.dialogService.showDocgenAccountUnsavedChangesDialog().subscribe();\n }\n return;\n }\n\n if (!this.quoteDraftService.isEditMode()) {\n this.dialogService.showDocgenReadonlyDialog().subscribe();\n return;\n }\n\n if (!isCartRoute) {\n this.dialogService.showDocgenOutsideShoppingCartDialog().subscribe();\n return;\n }\n\n let observable = of(true);\n\n if (this.quoteDraftService.hasUnsavedChanges) {\n observable = this.dialogService.showDocgenUnsavedChangesDialog().pipe(\n switchMap(confirmed => (confirmed ? this.saveQuote$(true) : of(true))),\n map(() => true),\n );\n }\n\n observable\n .pipe(\n first(),\n tap(() => this.integrationState.dispatch(OpenDocGenAction())),\n )\n .subscribe();\n }\n\n public saveButtonClickHandler(isCartRoute: boolean): void {\n if (!this.quoteDraftService.isEditMode()) {\n if (this.mode === ConfigurationContextMode.QUOTE) {\n this.dialogService.showQuoteReadonlyModeDialog().subscribe();\n } else {\n this.dialogService.showReadonlyModeDialog().subscribe();\n }\n return;\n }\n\n if (this.mode === ConfigurationContextMode.ACCOUNT && !this.quoteDraftService.hasUnsavedChanges) {\n this.dialogService.showAccountNoChangesDialog().subscribe();\n return;\n }\n\n if (!isCartRoute) {\n this.dialogService.showQuoteOutsideShoppingCartDialog().subscribe();\n return;\n }\n\n const lineItems = this.flowConfiguration.getSnapshot();\n\n if (!lineItems.length) {\n this.dialogService.showEmptyCartDialog().subscribe();\n return;\n }\n\n this.saveQuote$().subscribe();\n }\n\n public submitButtonClickHandler(isCartRoute: boolean): void {\n if (this.mode === ConfigurationContextMode.QUOTE && !this.quoteDraftService.isEditMode()) {\n this.dialogService.showReadonlyQuoteSubmitFailureDialog();\n return;\n }\n\n if (this.mode === ConfigurationContextMode.ACCOUNT) {\n this.dialogService.showAccountSubmitFailureDialog();\n return;\n }\n\n if (!isCartRoute) {\n this.dialogService.showOutsideShoppingCartQuoteSubmitFailureDialog().subscribe();\n return;\n }\n\n const quoteDraft = this.quoteDraftService.quoteDraft;\n if (!quoteDraft) {\n return;\n }\n\n this.isSubmitInProgress$.next(true);\n\n this.quoteApiService\n .submitQuote(quoteDraft)\n .pipe(\n tap(({ quoteId }) => {\n this.quoteDraftService.hasUnsavedChanges = false;\n this.back(quoteId);\n }),\n finalize(() => this.isSubmitInProgress$.next(false)),\n takeUntil(this.destroyed$),\n )\n .subscribe();\n }\n\n public selectPriceList(priceListId: string): void {\n this.quoteDraftService.updateActivePriceList(priceListId);\n }\n\n private saveQuote$(stayOnPage = false): Observable<void> {\n const quoteDraft = this.quoteDraftService.quoteDraftForActivePriceList;\n if (!quoteDraft) {\n return of(undefined);\n }\n\n this.isSaveInProgress$.next(true);\n\n return this.quoteApiService.upsertQuote(quoteDraft).pipe(\n tap(({ quoteId }) => {\n this.quoteDraftService.hasUnsavedChanges = false;\n\n if (!stayOnPage) {\n this.back(quoteId);\n }\n }),\n finalize(() => this.isSaveInProgress$.next(false)),\n map(noop),\n takeUntil(this.destroyed$),\n );\n }\n\n private queryName$(objectName: string, id?: string): Observable<string> {\n if (!id) {\n return of('');\n }\n\n const searchRequest: SearchRequest = {\n count: 1,\n rawCondition: `Id = '${id}'`,\n fields: ['Name'],\n };\n\n return this.sfApiService.query<any>(searchRequest, objectName).pipe(\n map(result => result[0]?.Name ?? ''),\n takeUntil(this.destroyed$),\n );\n }\n\n private populateObjectDetails(): void {\n const accountId = this.isAccountMode ? this.contextProperties.Id : this.contextProperties.AccountId;\n const opportunityId = this.contextProperties.OpportunityId;\n const quoteId = this.isQuoteMode ? this.contextProperties.Id : undefined;\n const quoteName = this.isQuoteMode ? this.contextProperties.Name : undefined;\n const quoteNumber = this.isQuoteMode ? this.contextProperties.QuoteNumber?.replace(/^0+/, '') : undefined;\n\n this.objectDetails$.next({\n ...this.objectDetails$.value,\n accountId,\n opportunityId,\n quoteId,\n quoteName,\n quoteNumber,\n });\n\n this.queryName$('Account', accountId).subscribe(accountName =>\n this.objectDetails$.next({\n ...this.objectDetails$.value,\n accountName,\n }),\n );\n this.queryName$('Opportunity', opportunityId).subscribe(opportunityName =>\n this.objectDetails$.next({\n ...this.objectDetails$.value,\n opportunityName,\n }),\n );\n }\n\n private formatMetric(value?: string): string {\n return (value ? Number(value) : 0).toFixed(2);\n }\n\n private generateProducts(lineItems: LineItem[]): HeaderProduct[] {\n const date = new Date();\n date.setHours(0, 0, 0, 0);\n const now = date.getTime();\n\n return lineItems.reduce((result: HeaderProduct[], li) => {\n // find main term line item\n if (li.rampInstanceId) {\n return result;\n }\n\n // find current term line item\n let target: LineItem | undefined = li;\n while (target && target.endDate && new Date(target.endDate).getTime() <= now) {\n target = lineItems.find(sub => sub.rampInstanceId === li.id);\n }\n\n if (target && target.productId) {\n return [\n ...result,\n {\n id: target.id,\n productId: target.productId,\n name: target.name,\n configurable: target.properties['#configurable'] === 'true',\n deleted: target.actionCode === 'DELETE',\n qty: target.qty,\n mrr: this.formatMetric(target.properties.VDM_Total_MRR),\n nrr: this.formatMetric(target.properties.VDM_Total_NRR),\n },\n ];\n }\n\n return result;\n }, []);\n }\n}\n","<div class=\"flow-info\" *vlLet=\"objectDetails$ | async as details\">\n <nav class=\"nav-item nav-back\" (click)=\"back()\">\n <i class=\"nav-icon vl-icon vl-icon-arrow-left\"></i>\n\n <span> Back </span>\n <span *ngIf=\"objectName\" class=\"object-name\">&nbsp;To {{ objectName }}</span>\n </nav>\n\n <ng-container *ngIf=\"isAccountMode\">\n <span class=\"dot-separator\"></span>\n\n <span>Account name</span>\n\n <nav class=\"account-name\" [pTooltip]=\"contextProperties.Name ?? ''\" tooltipPosition=\"bottom\" [showDelay]=\"1000\">\n <a target=\"_blank\" [href]=\"getSalesforceObjectLink(contextProperties.Id)\">{{ contextProperties.Name }}</a>\n </nav>\n </ng-container>\n\n <ng-container *ngIf=\"isQuoteMode\">\n <span class=\"dot-separator\"></span>\n\n <span>Quote #{{ details.quoteNumber }}</span>\n\n <span class=\"dot-separator\"></span>\n\n <nav class=\"nav-item\" (click)=\"quoteDetails.toggle($event)\">\n <span>{{ status$ | async }}</span>\n\n <i *ngIf=\"!quoteDetails.overlayVisible\" class=\"vl-icon vl-icon-chevron-down icon-with-margin\"></i>\n <i *ngIf=\"quoteDetails.overlayVisible\" class=\"vl-icon vl-icon-chevron-up icon-with-margin\"></i>\n </nav>\n\n <p-overlayPanel styleClass=\"navigation-settings-overlay flow-header-overlay center\" #quoteDetails>\n <ng-template pTemplate>\n <div class=\"flow-header-overlay__wrapper\">\n <h2 class=\"flow-header-overlay__title\">\n <span>Quote Information</span>\n <i class=\"vl-icon vl-icon-close close-icon\" (click)=\"quoteDetails.hide()\"></i>\n </h2>\n\n <ul class=\"info-list\">\n <li class=\"info-list__row\">\n <span>Account Name:</span>\n <a target=\"_blank\" [href]=\"getSalesforceObjectLink(details.accountId)\">\n <span>{{ details.accountName }}</span>\n </a>\n </li>\n <li class=\"info-list__row\">\n <span>Opportunity Name:</span>\n <a target=\"_blank\" [href]=\"getSalesforceObjectLink(details.opportunityId)\">\n <span>{{ details.opportunityName }}</span>\n </a>\n </li>\n <li class=\"info-list__row\">\n <span>Quote Name:</span>\n <a target=\"_blank\" [href]=\"getSalesforceObjectLink(details.quoteId)\">\n <span>{{ details.quoteName }}</span>\n </a>\n </li>\n </ul>\n </div>\n </ng-template>\n </p-overlayPanel>\n </ng-container>\n</div>\n\n<div class=\"flow-navigation\">\n <nav class=\"nav-item\" [ngClass]=\"{ active: isCatalogRoute$ | async }\" (click)=\"navigateToCatalog()\">Catalog</nav>\n <nav class=\"nav-item disabled\" [ngClass]=\"{ active: isConfigurationRoute$ | async }\">Configurator</nav>\n <ng-container *vlLet=\"products$ | async as products\">\n <nav class=\"nav-item\" [ngClass]=\"{ active: isCartRoute$ | async }\" (click)=\"navigateToShoppingCart()\">\n Shopping Cart ({{ products.length }})\n </nav>\n\n <nav class=\"nav-popover-toggle active\" (click)=\"cart?.overlayPanel?.toggle($event)\">\n <i *ngIf=\"!cart?.overlayPanel?.overlayVisible\" class=\"vl-icon vl-icon-chevron-down icon-with-margin\"></i>\n <i *ngIf=\"cart?.overlayPanel?.overlayVisible\" class=\"vl-icon vl-icon-chevron-up icon-with-margin\"></i>\n </nav>\n\n <vl-cart-preview #cart [products]=\"products\"></vl-cart-preview>\n </ng-container>\n</div>\n\n<div class=\"flow-controls\" *vlLet=\"objectDetails$ | async as details\">\n <ng-container *vlLet=\"activePriceList$ | async as priceList\">\n <ng-container *ngIf=\"isAccountMode && assetPriceLists.length > 1\">\n <nav class=\"nav-item\" (click)=\"priceListsOverlay?.toggle($event)\">\n <span>{{ priceList?.name }}</span>\n <i *ngIf=\"!priceListsOverlay?.overlayVisible\" class=\"vl-icon vl-icon-chevron-down icon-with-margin\"></i>\n <i *ngIf=\"priceListsOverlay?.overlayVisible\" class=\"vl-icon vl-icon-chevron-up icon-with-margin\"></i>\n </nav>\n\n <p-overlayPanel styleClass=\"price-list-overlay\" #priceListsOverlay>\n <ng-template pTemplate>\n <span\n *ngFor=\"let option of assetPriceLists\"\n class=\"price-list-option\"\n [class.active]=\"priceList?.id === option.id\"\n (click)=\"selectPriceList(option.id); priceListsOverlay.hide()\"\n >{{ option.name }}</span\n >\n </ng-template>\n </p-overlayPanel>\n </ng-container>\n\n <ng-container *ngIf=\"isQuoteMode\">\n <span>{{ priceList?.name }}</span>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"isQuoteMode\">\n <span *ngIf=\"contextProperties.StartDate\">{{ contextProperties.StartDate | date: 'MM.dd.yyyy' }}</span>\n\n <span class=\"slash-separator\"></span>\n\n <span class=\"metrics\">\n <div class=\"metrics__row\">\n MRR: <span class=\"font-semibold\">${{ totalMRR$ | async }}</span>\n </div>\n <div class=\"metrics__row\">\n NRR: <span class=\"font-semibold\">${{ totalNRR$ | async }}</span>\n </div>\n </span>\n </ng-container>\n\n <ng-container *vlLet=\"isCartRoute$ | async as isCartRoute\">\n <p-button\n class=\"doc-gen-button\"\n icon=\"vl-icon vl-icon-doc-gen\"\n (onClick)=\"docGenButtonClickHandler(isCartRoute)\"\n ></p-button>\n\n <ng-container *vlLet=\"isSaveInProgress$ | async as isSaveInProgress\">\n <ng-container *vlLet=\"isSubmitInProgress$ | async as isSubmitInProgress\">\n <p-splitButton\n *ngIf=\"!isSaveInProgress && !isSubmitInProgress\"\n label=\"Save to Quote\"\n (onClick)=\"saveButtonClickHandler(isCartRoute)\"\n [model]=\"getSplitButtonActions(isCartRoute)\"\n styleClass=\"p-button-outlined\"\n >\n </p-splitButton>\n\n <p-button\n *ngIf=\"isSaveInProgress\"\n class=\"save-button\"\n styleClass=\"p-button\"\n label=\"Saving\"\n [loading]=\"true\"\n ></p-button>\n\n <p-button\n *ngIf=\"isSubmitInProgress\"\n class=\"submit-button\"\n styleClass=\"p-button\"\n label=\"Submitting\"\n [loading]=\"true\"\n ></p-button>\n </ng-container>\n </ng-container>\n </ng-container>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { LetDirectiveModule } from '@veloce/components';\nimport { ButtonModule } from 'primeng/button';\nimport { OverlayPanelModule } from 'primeng/overlaypanel';\nimport { SplitButtonModule } from 'primeng/splitbutton';\nimport { TooltipModule } from 'primeng/tooltip';\nimport { CartPreviewModule } from './cart-overlay/cart-preview.module';\nimport { FlowHeaderComponent } from './header.component';\n\n@NgModule({\n declarations: [FlowHeaderComponent],\n imports: [\n CommonModule,\n OverlayPanelModule,\n LetDirectiveModule,\n TooltipModule,\n ButtonModule,\n CartPreviewModule,\n SplitButtonModule,\n ],\n exports: [FlowHeaderComponent],\n})\nexport class FlowHeaderModule {}\n","import { Injectable } from '@angular/core';\nimport { LineItem } from '@veloce/core';\nimport { FlowAction, IntegrationState } from '@veloce/sdk/cms';\nimport { ConfigurationService, FlowConfigurationService, QuoteDraftService } from '@veloce/sdk/core';\nimport { of, Subject, switchMap, takeUntil, tap } from 'rxjs';\nimport { FlowRouterService } from './flow-router.service';\n\n@Injectable()\nexport class FlowService {\n private cleanup$ = new Subject<void>();\n\n constructor(\n private integrationState: IntegrationState,\n private flowRouterService: FlowRouterService,\n private quoteDraftService: QuoteDraftService,\n private configurationService: ConfigurationService,\n private flowConfigurationService: FlowConfigurationService,\n ) {}\n\n public initSubscriptions(): void {\n this.integrationState\n .listen$<{ lineItemId?: string; productId?: string }>(FlowAction.FLOW_CONFIGURE_PRODUCT)\n .pipe(\n tap(payload => {\n const productId =\n payload.productId ??\n this.quoteDraftService.currentState.find(li => li.id === payload.lineItemId)?.productId;\n\n if (productId) {\n this.flowRouterService.navigateToProductConfiguration(productId, payload.lineItemId);\n } else {\n console.warn(\"Parameter 'productId' is needed to start configuration\");\n }\n }),\n takeUntil(this.cleanup$),\n )\n .subscribe();\n\n this.integrationState\n .listen$(FlowAction.FLOW_NAVIGATE_BACK)\n .pipe(\n tap(() => this.flowRouterService.navigateBack()),\n takeUntil(this.cleanup$),\n )\n .subscribe();\n\n this.integrationState\n .listen$(FlowAction.FLOW_NAVIGATE_TO_CATALOG)\n .pipe(\n tap(() => this.flowRouterService.navigateToCatalog()),\n takeUntil(this.cleanup$),\n )\n .subscribe();\n\n this.integrationState\n .listen$(FlowAction.FLOW_APPLY_PRODUCT_CONFIGURATION)\n .pipe(\n switchMap(() => {\n const quoteDraft = this.quoteDraftService.quoteDraft;\n const lineItem = this.configurationService.getSnapshot();\n\n if (!quoteDraft || !lineItem) {\n return of(undefined);\n }\n\n const isNewLineItem = quoteDraft.currentState.every(li => li.id !== lineItem.id);\n\n let updatedState: LineItem[];\n if (isNewLineItem) {\n updatedState = [...quoteDraft.currentState, lineItem];\n } else {\n updatedState = quoteDraft.currentState.map(li => (li.id === lineItem.id ? lineItem : li));\n }\n\n return this.flowConfigurationService.calculate$({ ...quoteDraft, currentState: updatedState });\n }),\n tap(() => {\n this.configurationService.hasUnsavedChanges = false;\n this.flowRouterService.navigateToShoppingCart();\n }),\n takeUntil(this.cleanup$),\n )\n .subscribe();\n }\n\n public cleanup(): void {\n this.cleanup$.next();\n }\n}\n","import { ChangeDetectionStrategy, Component, OnDestroy, OnInit } from '@angular/core';\nimport { QuoteDraftService } from '@veloce/sdk/core';\nimport { IntegrationState } from '@veloce/sdk/cms';\nimport { map, Observable } from 'rxjs';\nimport { FlowService } from './services';\nimport { FlowDocGenService } from './services/doc-gen.service';\nimport { FlowRouterService } from './services/flow-router.service';\n\n@Component({\n selector: 'vl-flow',\n templateUrl: './flow.component.html',\n styleUrls: ['./flow.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FlowComponent implements OnInit, OnDestroy {\n public isLoading$: Observable<boolean>;\n public showHeader$: Observable<boolean>;\n public isStandalone$: Observable<boolean>;\n\n constructor(\n private routerService: FlowRouterService,\n private quoteDraftService: QuoteDraftService,\n private flowService: FlowService,\n private docGenService: FlowDocGenService,\n private integrationState: IntegrationState,\n ) {\n this.isLoading$ = this.routerService.loading$;\n\n this.showHeader$ = this.routerService.route$.pipe(\n map(route => route.data.showHeader && !this.quoteDraftService.isStandalone),\n );\n\n this.isStandalone$ = this.quoteDraftService.isStandalone$;\n\n this.flowService.initSubscriptions();\n }\n\n ngOnInit() {\n this.integrationState.clear();\n }\n\n ngOnDestroy(): void {\n this.flowService.cleanup();\n this.docGenService.cleanup();\n }\n}\n","<vl-flow-header *ngIf=\"showHeader$ | async\"></vl-flow-header>\n\n<div class=\"flow-content\">\n <div class=\"loading-overlay\" *ngIf=\"isLoading$ | async\">\n <vl-loader label=\"LOADING\"></vl-loader>\n </div>\n\n <router-outlet></router-outlet>\n</div>\n\n<ng-container *vlLet=\"isStandalone$ | async as isStandalone\">\n <vl-flow-doc-gen *ngIf=\"!isStandalone\"></vl-flow-doc-gen>\n</ng-container>\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, CanActivateChild, Router } from '@angular/router';\nimport { ConfigurationContext, ConfigurationContextMode, VlWindow } from '@veloce/core';\nimport { ContextService } from '@veloce/sdk/core';\nimport { catchError, from, map, Observable, of, tap } from 'rxjs';\nimport { FlowRouterService } from '../services/flow-router.service';\n\ndeclare const window: VlWindow;\n\n@Injectable()\nexport class ContextGuard implements CanActivate, CanActivateChild {\n constructor(\n private router: Router,\n private routerService: FlowRouterService,\n private contextService: ContextService,\n ) {}\n\n public checkActivation(route: ActivatedRouteSnapshot): Observable<boolean> {\n const { queryParams } = route;\n const { accountId, quoteId, orderId } = queryParams;\n const rpcMessage = window.RPC_MESSAGE;\n const mode = this.getConfigurationContextMode(accountId, quoteId, orderId, rpcMessage);\n\n // Restrict if mode is not defined\n if (mode == null) {\n return this.handleError(route, 'Mode is undefined');\n }\n\n const rpcMessageId: string = rpcMessage && JSON.parse(rpcMessage)?.quote?.Id;\n const headerId = accountId || quoteId || orderId || rpcMessageId || 'empty-for-test-mode';\n\n // Allow if context is already initialized with the same headerId\n if (this.contextService.isInitialized) {\n const currentContext = this.contextService.resolve();\n\n if (headerId && currentContext.headerId === headerId) {\n return of(true);\n }\n }\n\n // Initialize context\n return this.contextService.create(headerId, mode).pipe(\n tap((context: ConfigurationContext) => {\n // Update context with queryParams\n this.contextService.update({\n ...context,\n properties: {\n ...context.properties,\n ...(queryParams ?? {}),\n },\n });\n }),\n map(() => true),\n catchError(e => {\n const message = e instanceof HttpErrorResponse ? e.error.message : e;\n return this.handleError(route, message);\n }),\n );\n }\n\n public canActivate(route: ActivatedRouteSnapshot): Observable<boolean> | Promise<boolean> | boolean {\n return this.checkActivation(route);\n }\n\n public canActivateChild(childRoute: ActivatedRouteSnapshot): Observable<boolean> | Promise<boolean> | boolean {\n return this.checkActivation(childRoute);\n }\n\n private getConfigurationContextMode(\n accountId?: string,\n quoteId?: string,\n orderId?: string,\n rpcMessage?: string,\n ): ConfigurationContextMode | undefined {\n if (accountId) {\n return ConfigurationContextMode.ACCOUNT;\n }\n\n if (quoteId) {\n return ConfigurationContextMode.QUOTE;\n }\n\n if (orderId) {\n return ConfigurationContextMode.ORDER;\n }\n\n if (rpcMessage) {\n return ConfigurationContextMode.REMOTE;\n }\n\n return;\n }\n\n private handleError(route: ActivatedRouteSnapshot, message: string): Observable<boolean> {\n this.contextService.delete();\n const parentUrl = this.routerService.getFlowRootPath(route);\n return from(this.router.navigate([parentUrl, '404'], { state: { message } })).pipe(map(() => false));\n }\n}\n","import { Component, Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanDeactivate, Router, RouterStateSnapshot } from '@angular/router';\nimport { ConfigurationService, ContextService, QuoteDraftService } from '@veloce/sdk/core';\nimport { map, of } from 'rxjs';\nimport { FlowDialogService } from '../services/flow-dialog.service';\n\n@Injectable()\nexport class ProductUnloadGuard implements CanDeactivate<any> {\n constructor(\n private router: Router,\n private contextService: ContextService,\n private quoteDraftService: QuoteDraftService,\n private configurationService: ConfigurationService,\n private flowDialogService: FlowDialogService,\n ) {}\n\n canDeactivate(\n _: Component,\n route: ActivatedRouteSnapshot,\n currentState: RouterStateSnapshot,\n nextState?: RouterStateSnapshot,\n ) {\n let observable = of(true);\n\n if (!this.quoteDraftService.isStandalone && this.configurationService.hasUnsavedChanges) {\n observable = this.flowDialogService.showUnsavedChangesDialog().pipe(map(confirmed => !confirmed));\n }\n\n return observable.pipe(\n map(unload => {\n if (unload) {\n this.configurationService.reset();\n this.contextService.update({ properties: { productId: undefined, lineItemId: undefined } });\n\n if (!nextState || currentState.url === nextState.url) {\n return true;\n }\n\n // clear obsolete queryParams\n const urlTree = this.router.parseUrl(nextState.url);\n delete urlTree.queryParams.productId;\n\n // replace url after deactivation has finished\n setTimeout(() => this.router.navigateByUrl(urlTree.toString(), { replaceUrl: true }));\n\n return true;\n }\n\n return false;\n }),\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, CanDeactivate, Navigation, Router } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { FlowRouterService } from '../services/flow-router.service';\n\n@Injectable({ providedIn: 'root' })\nexport class RootGuard implements CanActivate, CanDeactivate<any> {\n private initialized = false;\n private navToRestore: Navigation | null = null;\n\n constructor(private router: Router, private routerService: FlowRouterService) {}\n\n canActivate(route: ActivatedRouteSnapshot): Observable<boolean> | Promise<boolean> | boolean {\n // We always need to initialize root component first, and only then start checking guards/resolvers\n\n if (!this.initialized) {\n this.initialized = true;\n this.navToRestore = this.router.getCurrentNavigation();\n\n const rootUrl = this.routerService.getFlowRootPath(route);\n this.router.navigate([rootUrl], { replaceUrl: !this.navToRestore?.previousNavigation });\n } else if (this.navToRestore) {\n const nav = this.navToRestore;\n setTimeout(() => {\n this.router.navigateByUrl(nav.extractedUrl, nav.extras);\n\n this.navToRestore = null;\n });\n }\n\n return true;\n }\n\n canDeactivate() {\n this.initialized = false;\n return true;\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { TemplateComponentWithAttachments, UIDefinition as LegacyUIDefinition } from '@veloce/core';\nimport { UIDefinition } from '@veloce/sdk/core';\nimport { Observable } from 'rxjs';\n\nexport const FLOW_CUSTOMIZATION = new InjectionToken<FlowCustomization>('FLOW_CUSTOMIZATION');\n\nexport interface FlowCustomization {\n getUiDefinition?(productId: string): Observable<UIDefinition | null>;\n getLegacyUiDefinition?(productId: string): Observable<LegacyUIDefinition | null>;\n getShoppingCartComponent?(templateName: string): Observable<TemplateComponentWithAttachments | null>;\n getCatalogComponent?(templateName: string): Observable<TemplateComponentWithAttachments | null>;\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Inject,\n OnDestroy,\n OnInit,\n Optional,\n} from '@angular/core';\nimport { UITemplatesApiService } from '@veloce/api';\nimport { ToastService, ToastType } from '@veloce/components';\nimport {\n ComponentAttachments,\n TemplateComponent,\n UITemplate,\n UITemplateComponentType,\n UITemplateType,\n} from '@veloce/core';\nimport { ContextService, UIDefinition } from '@veloce/sdk/core';\nimport { BehaviorSubject, catchError, map, Observable, of, Subject, switchMap, takeUntil, tap } from 'rxjs';\nimport { FlowCustomization, FLOW_CUSTOMIZATION } from '../../types';\n\ninterface State {\n loading: boolean;\n failure: boolean;\n}\n\n@Component({\n selector: 'vl-flow-catalog',\n templateUrl: './catalog.component.html',\n styleUrls: ['./catalog.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CatalogComponent implements OnInit, OnDestroy {\n public uiDefinition?: UIDefinition = undefined;\n public state$ = new BehaviorSubject<State>({ loading: true, failure: false });\n\n private templateApiName = '';\n private destroyed$ = new Subject<void>();\n\n constructor(\n private templatesApi: UITemplatesApiService,\n private contextService: ContextService,\n private cdr: ChangeDetectorRef,\n private toastService: ToastService,\n @Optional() @Inject(FLOW_CUSTOMIZATION) private customizationService?: FlowCustomization,\n ) {\n this.templateApiName = this.contextService.resolve().properties.catalogTemplateApiName ?? '';\n }\n\n ngOnInit(): void {\n this.generateUIDefinition$()\n .pipe(\n tap(uiDef => {\n if (!uiDef) {\n throw new Error(`Component with name '${this.templateApiName}' not found.`);\n }\n\n this.uiDefinition = uiDef;\n this.state$.next({ loading: false, failure: false });\n }),\n catchError(err => {\n const message = 'Failed to resolve Catalog component. ' + (err.message ?? '');\n this.toastService.add({ severity: ToastType.error, summary: message, sticky: true });\n\n this.uiDefinition = undefined;\n this.state$.next({ loading: false, failure: true });\n return of();\n }),\n takeUntil(this.destroyed$),\n )\n .subscribe(() => this.cdr.detectChanges());\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n this.destroyed$.complete();\n }\n\n private getTemplateRootComponent$(template: UITemplate): Observable<TemplateComponent | undefined> {\n return this.templatesApi\n .fetchComponents$(template.id)\n .pipe(map(components => components.find(c => c.type === UITemplateComponentType.ROOT) ?? undefined));\n }\n\n private getLocalCatalogComponentMeta$(): Observable<ComponentAttachments | undefined> {\n if (!this.customizationService?.getCatalogComponent) {\n return of(undefined);\n }\n\n return this.customizationService?.getCatalogComponent(this.templateApiName).pipe(\n map(component => {\n if (!component) {\n return;\n }\n\n return <ComponentAttachments>{\n html: component.html,\n css: component.css,\n js: component.js,\n json: component.json,\n };\n }),\n );\n }\n\n private getCatalogComponentMeta$() {\n return this.templatesApi.fetchTemplates$().pipe(\n map<UITemplate[], UITemplate | undefined>(templates =>\n templates.find(template => template.type === UITemplateType.CATALOG && template.name === this.templateApiName),\n ),\n switchMap(template => (template ? this.getTemplateRootComponent$(template) : of(undefined))),\n switchMap(component =>\n component ? this.templatesApi.fetchComponentAttachments$(component.uiTemplateId, component) : of(undefined),\n ),\n );\n }\n\n private generateUIDefinition$(): Observable<UIDefinition | undefined> {\n return of(undefined).pipe(\n tap(() => {\n if (!this.templateApiName) {\n throw new Error(\"Flow Query parameter 'catalogTemplateApiName' is missing.\");\n }\n }),\n switchMap(() => this.getLocalCatalogComponentMeta$()),\n switchMap(meta => (meta ? of(meta) : this.getCatalogComponentMeta$())),\n map(meta => {\n if (!meta) {\n return;\n }\n\n const uiDef: UIDefinition = {\n name: '',\n createdTimestamp: 0,\n primary: true,\n type: 'DEFAULT',\n version: 2,\n children: [\n {\n children: [],\n template: meta.html && btoa(meta.html),\n script: meta.js && btoa(meta.js),\n styles: meta.css && btoa(meta.css),\n },\n ],\n };\n\n return uiDef;\n }),\n );\n }\n}\n","<ng-container *ngIf=\"state$ | async as state\">\n <vl-loader *ngIf=\"state.loading; else content\" [label]=\"'Loading UI'\"></vl-loader>\n\n <ng-template #content>\n <ng-container *ngIf=\"!state.failure\">\n <vl-cms-preview [uiDefinition]=\"uiDefinition\"></vl-cms-preview>\n </ng-container>\n </ng-template>\n</ng-container>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { LoaderModule } from '@veloce/components';\nimport { PreviewModule } from '@veloce/sdk/cms';\nimport { CatalogComponent } from './catalog.component';\n\n@NgModule({\n declarations: [CatalogComponent],\n imports: [CommonModule, PreviewModule, LoaderModule],\n exports: [CatalogComponent],\n})\nexport class CatalogModule {}\n","export const getFlowObjectIdPropertyName = (objectName?: string) => {\n switch (objectName) {\n case 'Account':\n return 'accountId';\n case 'Order':\n return 'orderId';\n case 'Quote':\n default:\n return 'quoteId';\n }\n};\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { ActivatedRoute, Params, Router } from '@angular/router';\nimport { FlowsApiService } from '@veloce/api';\nimport { FlowProperties } from '@veloce/core';\nimport { ContextService, FlowConfigurationService, QuoteDraftService } from '@veloce/sdk/core';\nimport { map, Observable, shareReplay } from 'rxjs';\nimport { getFlowObjectIdPropertyName } from '../../utils';\n\ninterface FlowPropertiesExt extends FlowProperties {\n queryParamsStr: string;\n}\n\n@Component({\n selector: 'vl-flow-debug',\n templateUrl: './debug.component.html',\n styleUrls: ['./debug.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DebugComponent {\n public readonly objectNames = ['Account', 'Quote', 'Order'];\n public form = new FormGroup({\n id: new FormControl(''),\n name: new FormControl('Quote'),\n });\n\n public selectedFlow?: FlowPropertiesExt;\n public flows$: Observable<FlowPropertiesExt[]>;\n\n constructor(\n private flowsApiService: FlowsApiService,\n private router: Router,\n private activatedRoute: ActivatedRoute,\n private context: ContextService,\n private flowConfiguration: FlowConfigurationService,\n private quoteDraftService: QuoteDraftService,\n ) {\n this.flows$ = this.flowsApiService.fetchFlows().pipe(\n map(flows =>\n flows.map<FlowPropertiesExt>(flow => {\n const queryParams: Params = flow?.properties?.queryParams ?? {};\n return {\n id: flow.id,\n entryPath: flow?.properties?.entryPath,\n queryParams,\n queryParamsStr: JSON.stringify(queryParams),\n };\n }),\n ),\n shareReplay(),\n );\n }\n\n runFlow() {\n const { id, name } = this.form.value;\n const objectPropertyName = getFlowObjectIdPropertyName(name);\n\n if (!id || !this.selectedFlow) {\n return;\n }\n\n // Delete context before starting a new flow\n this.context.delete();\n this.quoteDraftService.reset();\n\n this.router.navigate(['..', 'flows'], {\n queryParams: {\n flowId: this.selectedFlow.id,\n [objectPropertyName]: id,\n ...this.selectedFlow.queryParams,\n },\n relativeTo: this.activatedRoute,\n });\n }\n}\n","<form [formGroup]=\"form\">\n <div class=\"fields-container\">\n <div class=\"field\">\n <label>SF Object ID</label>\n <input formControlName=\"id\" pInputText type=\"text\" />\n </div>\n\n <div class=\"field\">\n <label>SF Object Name</label>\n <p-dropdown\n appendTo=\"body\"\n formControlName=\"name\"\n [autoDisplayFirst]=\"false\"\n [options]=\"objectNames\"\n ></p-dropdown>\n </div>\n </div>\n\n <p-button\n styleClass=\"p-button-primary\"\n label=\"Run Flow\"\n [disabled]=\"!form.value.id || !selectedFlow\"\n (onClick)=\"runFlow()\"\n ></p-button>\n</form>\n\n<table>\n <thead>\n <tr>\n <th [width]=\"30\"></th>\n <th [width]=\"160\">ID</th>\n <th [width]=\"160\">Entry Path</th>\n <th>QueryParams</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let flow of flows$ | async\" (click)=\"selectedFlow = flow\">\n <td><p-radioButton [inputId]=\"flow.id\" name=\"flow\" [value]=\"flow\" [(ngModel)]=\"selectedFlow\"></p-radioButton></td>\n <td>{{ flow.id }}</td>\n <td>{{ flow.entryPath }}</td>\n <td>{{ flow.queryParamsStr }}</td>\n </tr>\n </tbody>\n</table>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { RouterModule, Routes } from '@angular/router';\nimport { ButtonModule } from 'primeng/button';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { RadioButtonModule } from 'primeng/radiobutton';\nimport { DebugComponent } from './debug.component';\n\nconst routes: Routes = [{ path: '', component: DebugComponent }];\n\n@NgModule({\n declarations: [DebugComponent],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n RouterModule.forChild(routes),\n RadioButtonModule,\n ButtonModule,\n InputTextModule,\n DropdownModule,\n ],\n})\nexport class DebugModule {}\n","import { Component, Inject, OnDestroy, OnInit, Optional } from '@angular/core';\nimport { ActivatedRoute, Params } from '@angular/router';\nimport { QuoteApiService } from '@veloce/api';\nimport { EntityUtil, LineItem, QuoteDraft, VlWindow } from '@veloce/core';\nimport { ContextService, QuoteDraftService, QuoteStates, RuntimeOperation } from '@veloce/sdk/core';\nimport {\n CurrentStateService,\n LegacyRuntimeContext,\n RuntimeContextService,\n RuntimeService,\n SolutionReadyAware,\n SolutionUpdatedAware,\n} from '@veloce/sdk/runtime';\nimport { Observable, of, Subject } from 'rxjs';\nimport { first, map, switchMap, take, takeUntil } from 'rxjs/operators';\nimport { FlowCustomization, FLOW_CUSTOMIZATION } from '../../types';\n\ndeclare const window: VlWindow;\n\n@Component({\n templateUrl: './legacy-product.component.html',\n styleUrls: ['./legacy-product.component.scss'],\n})\nexport class LegacyProductComponent implements OnInit, OnDestroy, SolutionUpdatedAware, SolutionReadyAware {\n private destroyed$ = new Subject<void>();\n\n private assets?: LineItem[];\n\n constructor(\n private route: ActivatedRoute,\n private quoteDraftService: QuoteDraftService,\n private quoteApiService: QuoteApiService,\n private contextService: ContextService,\n private runtimeContextService: RuntimeContextService,\n private runtimeService: RuntimeService,\n private currentStateService: CurrentStateService,\n @Optional() @Inject(FLOW_CUSTOMIZATION) private customizationService?: FlowCustomization,\n ) {}\n\n ngOnInit(): void {\n this.quoteDraftService.quoteDraft$\n .pipe(first(), takeUntil(this.destroyed$))\n .subscribe(quote => this.init(quote, this.route.snapshot.queryParams));\n\n this.runtimeService.onSolutionStopEvent.pipe(take(1)).subscribe(lineItem => this.onSolutionStop(lineItem));\n\n this.runtimeService.onSolutionReadyEvent.pipe(take(1)).subscribe(event => this.onSolutionReady(event));\n\n this.runtimeService.onSolutionCancelEvent.pipe(take(1)).subscribe(() => this.onSolutionCancel());\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n this.destroyed$.complete();\n }\n\n onSolutionReady(lineItem: LineItem): void {\n lineItem.actionCode = lineItem.actionCode ?? 'ADD';\n }\n\n onSolutionCancel(): void {\n this.quoteDraftService.quoteDraft$.pipe(first(), takeUntil(this.destroyed$)).subscribe(quote => {\n window['VELO_BACK_FN'].apply(null, [quote.quoteId]);\n });\n }\n\n onSolutionUpdated(lineItem: LineItem): void {\n const states: QuoteStates = {\n configurableRamp: lineItem,\n currentState: this.currentStateService.currentState,\n asset: this.getAsset(lineItem),\n };\n\n this.runtimeService.updateRuntime(states);\n }\n\n onSolutionStop(lineItem: LineItem): void {\n this.quoteDraftService.quoteDraft$.pipe(first(), takeUntil(this.destroyed$)).subscribe(quote => {\n const quoteToUpsert: QuoteDraft = {\n ...quote,\n context: this.contextService.resolve(),\n currentState: [...(this.currentStateService.currentState || []).filter(li => li.id !== lineItem.id), lineItem],\n };\n\n this.quoteApiService\n .upsertQuote(quoteToUpsert)\n .pipe(take(1))\n .subscribe(quote => {\n window['VELO_BACK_FN'].apply(null, [quote.quoteId]);\n });\n });\n }\n\n private init(quote: QuoteDraft, queryParams: Params): void {\n const productId = queryParams['productId'];\n const lineItemId = this.getLineItemId(quote, queryParams);\n this.assets = quote.initialState;\n\n lineItemId && quote.currentState ? this.reConfigure(lineItemId, quote.currentState) : this.configure(productId);\n }\n\n private getLineItemId(quote: QuoteDraft, queryParams: Params): string | undefined {\n if (EntityUtil.isPresent(queryParams['lineItemId'])) {\n return queryParams['lineItemId'];\n }\n\n return quote.currentState\n .filter(lineItem => lineItem.productId === queryParams['productId'])\n .map(lineItem => lineItem.id)\n .find(id => id);\n }\n\n private configure(productId: string): void {\n const runtimeContext = this.getRuntimeContext(productId, '', RuntimeOperation.INIT);\n\n this.startRuntime({}, runtimeContext);\n }\n\n private reConfigure(lineItemId: string, currentState: LineItem[]): void {\n const currentStateItem = EntityUtil.findById(lineItemId, currentState);\n const runtimeContext = this.getRuntimeContext(\n currentStateItem.productId,\n currentStateItem.offeringId,\n RuntimeOperation.UPDATE,\n );\n\n const states: QuoteStates = {\n configurableRamp: currentStateItem,\n currentState,\n asset: this.getAsset(currentStateItem),\n };\n\n this.currentStateService.update(currentState);\n this.startRuntime(states, runtimeContext);\n }\n\n private getAsset(lineItem: LineItem): LineItem | undefined {\n return this.assets && this.assets.find(a => a.id === lineItem.openOrderLineItemId || a.id === lineItem.assetId);\n }\n\n private startRuntime(states: QuoteStates, runtimeContext$: Observable<LegacyRuntimeContext>): void {\n runtimeContext$\n .pipe(\n take(1),\n map(runtimeContext => {\n this.runtimeService.startRuntime(runtimeContext, states);\n }),\n )\n .subscribe();\n }\n\n private customizeContext(productId: string, context: LegacyRuntimeContext): Observable<LegacyRuntimeContext> {\n if (!this.customizationService?.getLegacyUiDefinition) {\n return of(context);\n }\n\n return this.customizationService.getLegacyUiDefinition(productId).pipe(\n map(uiDef => ({\n ...context,\n uiDefinition: uiDef ?? context.uiDefinition,\n })),\n );\n }\n\n private getRuntimeContext(\n productId: string,\n offeringId: string,\n runtimeOperation: RuntimeOperation,\n ): Observable<LegacyRuntimeContext> {\n return this.runtimeContextService.getRuntimeContext(productId, offeringId).pipe(\n map(runtimeContext => {\n runtimeContext.invocationContext = { runtimeOperation: RuntimeOperation[runtimeOperation] };\n return runtimeContext;\n }),\n switchMap(runtimeContext => this.customizeContext(productId, runtimeContext)),\n );\n }\n}\n","<vl-runtime #runtimeView (solutionUpdated)=\"onSolutionUpdated($event)\"></vl-runtime>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RuntimeModule } from '@veloce/sdk/runtime';\nimport { TooltipModule } from 'ngx-bootstrap/tooltip';\nimport { LegacyProductComponent } from './legacy-product.component';\n\n@NgModule({\n declarations: [LegacyProductComponent],\n imports: [CommonModule, RuntimeModule, TooltipModule.forRoot()],\n exports: [LegacyProductComponent],\n})\nexport class LegacyProductModule {}\n","import { ChangeDetectionStrategy, Component, Inject, OnDestroy, OnInit, Optional } from '@angular/core';\nimport { LineItem, QuoteDraft } from '@veloce/core';\nimport {\n ConfigurationRuntimeService,\n ConfigurationService,\n ContextService,\n QuoteDraftService,\n UIDefinition,\n} from '@veloce/sdk/core';\nimport { MessageService } from 'primeng/api';\nimport {\n BehaviorSubject,\n catchError,\n first,\n Observable,\n of,\n Subject,\n switchMap,\n takeUntil,\n tap,\n throwError,\n} from 'rxjs';\nimport { FlowCustomization, FLOW_CUSTOMIZATION } from '../../types/flow-customization.types';\n\ninterface State {\n loading: boolean;\n failure: boolean;\n}\n\n@Component({\n selector: 'vl-flow-product',\n templateUrl: './product.component.html',\n styleUrls: ['./product.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ProductComponent implements OnInit, OnDestroy {\n private destroy$ = new Subject<void>();\n\n public uiDefinition?: UIDefinition;\n public state$ = new BehaviorSubject<State>({ loading: true, failure: false });\n\n constructor(\n private contextService: ContextService,\n private runtimeService: ConfigurationRuntimeService,\n private configurationService: ConfigurationService,\n private quoteDraftService: QuoteDraftService,\n private messageService: MessageService,\n @Optional() @Inject(FLOW_CUSTOMIZATION) private customizationService?: FlowCustomization,\n ) {}\n\n ngOnInit(): void {\n this.quoteDraftService.quoteDraft$.pipe(first(), takeUntil(this.destroy$)).subscribe(quote => this.init(quote));\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n private customize(productId: string): Observable<any> {\n if (!this.customizationService?.getUiDefinition) {\n return of(null);\n }\n\n return this.customizationService.getUiDefinition(productId).pipe(\n tap(uiDef => {\n if (uiDef) {\n this.uiDefinition = uiDef;\n this.runtimeService.uiDefinitionProperties = uiDef.properties ?? {};\n }\n }),\n );\n }\n\n private init(quote: QuoteDraft): void {\n const contextProperties = this.contextService.resolve().properties;\n const productId = contextProperties.productId;\n\n if (!productId) {\n return;\n }\n\n const lineItemId = this.getLineItemId(quote, productId, contextProperties.lineItemId);\n const currentStateItem = quote.currentState.find(({ id }) => id === lineItemId);\n\n if (currentStateItem) {\n this.configurationService.updateCurrentStates({\n configurableRamp: currentStateItem,\n currentState: quote.currentState,\n asset: this.getAsset(quote, currentStateItem),\n });\n }\n\n const { offeringId } = currentStateItem ?? {};\n\n this.runtimeService\n .init({ productId, offeringId })\n .pipe(\n tap(context => (this.uiDefinition = context?.uiDefinition)),\n switchMap(() => this.customize(productId)),\n this.throwIfNoUIDefinition(),\n switchMap(() => this.configurationService.configure()),\n tap(() => this.state$.next({ loading: false, failure: false })),\n catchError(error => {\n if (!this.uiDefinition?.properties?.suppressToastMessages) {\n this.messageService.add({ severity: 'error', summary: error });\n }\n\n this.state$.next({ loading: false, failure: true });\n return of();\n }),\n takeUntil(this.destroy$),\n )\n .subscribe();\n }\n\n private throwIfNoUIDefinition() {\n return <T>(source$: Observable<T>): Observable<T> => {\n return source$.pipe(\n switchMap(() => {\n if (!this.uiDefinition) {\n return throwError(() => 'Product does not have Configuration UI');\n }\n\n return source$;\n }),\n );\n };\n }\n\n private getLineItemId(quote: QuoteDraft, productId: string, lineItemId?: string): string | undefined {\n // search by lineItemId first\n let id: string | undefined = quote.currentState.find(li => li.id === lineItemId)?.id;\n\n if (!id && this.quoteDraftService.isStandalone) {\n id = quote.currentState.find(li => li.productId === productId)?.id;\n }\n\n return id;\n }\n\n private getAsset(quote: QuoteDraft, lineItem: LineItem): LineItem | undefined {\n return quote.initialState.find(a => a.id === lineItem.openOrderLineItemId || a.id === lineItem.assetId);\n }\n}\n","<ng-container *ngIf=\"state$ | async as state\">\n <vl-loader *ngIf=\"state.loading; else content\" [label]=\"'Loading UI'\"></vl-loader>\n\n <ng-template #content>\n <ng-container *ngIf=\"!state.failure\">\n <vl-cms-preview [uiDefinition]=\"uiDefinition\"></vl-cms-preview>\n </ng-container>\n </ng-template>\n</ng-container>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { LoaderModule } from '@veloce/components';\nimport { PreviewModule } from '@veloce/sdk/cms';\nimport { ProductComponent } from './product.component';\n\n@NgModule({\n declarations: [ProductComponent],\n imports: [CommonModule, PreviewModule, LoaderModule],\n exports: [ProductComponent],\n})\nexport class ProductModule {}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\n\n@Component({\n selector: 'vl-flow-record-not-found',\n templateUrl: './record-not-found.component.html',\n styleUrls: ['./record-not-found.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RecordNotFoundComponent {\n message: string;\n subMessage = '';\n\n constructor(private router: Router, private route: ActivatedRoute) {\n const navigation = this.router.getCurrentNavigation();\n const { state } = navigation?.extras || {};\n\n this.message = state?.message;\n if (typeof this.message === 'string') {\n this.subMessage = this.message.includes('/describe') ? 'A potential problem with permissions' : '';\n }\n }\n}\n","<div class=\"row\">\n <div class=\"col-md-12\">\n <div class=\"message-wrapper\">\n <div class=\"msg\">\n <div *ngIf=\"message; else defaultMessage\" class=\"message-title\">\n <p>{{ message }}</p>\n\n <p *ngIf=\"subMessage\" class=\"message-title\">{{ subMessage }}</p>\n </div>\n\n <ng-template #defaultMessage>Record not found</ng-template>\n </div>\n </div>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { RecordNotFoundComponent } from './record-not-found.component';\n\nconst routes: Routes = [{ path: '', component: RecordNotFoundComponent }];\n\n@NgModule({\n declarations: [RecordNotFoundComponent],\n imports: [CommonModule, RouterModule.forChild(routes)],\n})\nexport class RecordNotFoundModule {}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Inject,\n OnDestroy,\n OnInit,\n Optional,\n} from '@angular/core';\nimport { UITemplatesApiService } from '@veloce/api';\nimport { ToastService, ToastType } from '@veloce/components';\nimport {\n ComponentAttachments,\n TemplateComponent,\n UITemplate,\n UITemplateComponentType,\n UITemplateType,\n} from '@veloce/core';\nimport { ContextService, UIDefinition } from '@veloce/sdk/core';\nimport { BehaviorSubject, catchError, map, Observable, of, Subject, switchMap, takeUntil, tap } from 'rxjs';\nimport { FlowCustomization, FLOW_CUSTOMIZATION } from '../../types';\n\ninterface State {\n loading: boolean;\n failure: boolean;\n}\n\n@Component({\n selector: 'vl-flow-shopping-cart',\n templateUrl: './shopping-cart.component.html',\n styleUrls: ['./shopping-cart.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ShoppingCartComponent implements OnInit, OnDestroy {\n public uiDefinition?: UIDefinition = undefined;\n public state$ = new BehaviorSubject<State>({ loading: true, failure: false });\n\n private templateApiName = '';\n private destroyed$ = new Subject<void>();\n\n constructor(\n private templatesApi: UITemplatesApiService,\n private contextService: ContextService,\n private cdr: ChangeDetectorRef,\n private toastService: ToastService,\n @Optional() @Inject(FLOW_CUSTOMIZATION) private customizationService?: FlowCustomization,\n ) {\n this.templateApiName = this.contextService.resolve().properties.cartTemplateApiName ?? '';\n }\n\n ngOnInit(): void {\n this.generateUIDefinition$()\n .pipe(\n tap(uiDef => {\n if (!uiDef) {\n throw new Error(`Component with name '${this.templateApiName}' not found.`);\n }\n\n this.uiDefinition = uiDef;\n this.state$.next({ loading: false, failure: false });\n }),\n catchError(err => {\n const message = 'Failed to resolve Shopping cart component. ' + (err.message ?? '');\n this.toastService.add({ severity: ToastType.error, summary: message, sticky: true });\n\n this.uiDefinition = undefined;\n this.state$.next({ loading: false, failure: true });\n return of();\n }),\n takeUntil(this.destroyed$),\n )\n .subscribe(() => this.cdr.detectChanges());\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n this.destroyed$.complete();\n }\n\n private getTemplateRootComponent$(template: UITemplate): Observable<TemplateComponent | undefined> {\n return this.templatesApi\n .fetchComponents$(template.id)\n .pipe(map(components => components.find(c => c.type === UITemplateComponentType.ROOT) ?? undefined));\n }\n\n private getLocalShoppingCartComponentMeta$(): Observable<ComponentAttachments | undefined> {\n if (!this.customizationService?.getShoppingCartComponent) {\n return of(undefined);\n }\n\n return this.customizationService?.getShoppingCartComponent(this.templateApiName).pipe(\n map(component => {\n if (!component) {\n return;\n }\n\n return <ComponentAttachments>{\n html: component.html,\n css: component.css,\n js: component.js,\n json: component.json,\n };\n }),\n );\n }\n\n private getShoppingCartComponentMeta$() {\n return this.templatesApi.fetchTemplates$().pipe(\n map<UITemplate[], UITemplate | undefined>(templates =>\n templates.find(\n template => template.type === UITemplateType.SHOPPING_CART && template.name === this.templateApiName,\n ),\n ),\n switchMap(template => (template ? this.getTemplateRootComponent$(template) : of(undefined))),\n switchMap(component =>\n component ? this.templatesApi.fetchComponentAttachments$(component.uiTemplateId, component) : of(undefined),\n ),\n );\n }\n\n private generateUIDefinition$(): Observable<UIDefinition | undefined> {\n return of(undefined).pipe(\n tap(() => {\n if (!this.templateApiName) {\n throw new Error(\"Flow Query parameter 'cartTemplateApiName' is missing.\");\n }\n }),\n switchMap(() => this.getLocalShoppingCartComponentMeta$()),\n switchMap(meta => (meta ? of(meta) : this.getShoppingCartComponentMeta$())),\n map(meta => {\n if (!meta) {\n return;\n }\n\n const uiDef: UIDefinition = {\n name: '',\n createdTimestamp: 0,\n primary: true,\n type: 'DEFAULT',\n version: 2,\n children: [\n {\n children: [],\n template: meta.html && btoa(meta.html),\n script: meta.js && btoa(meta.js),\n styles: meta.css && btoa(meta.css),\n },\n ],\n };\n\n return uiDef;\n }),\n );\n }\n}\n","<ng-container *ngIf=\"state$ | async as state\">\n <vl-loader *ngIf=\"state.loading; else content\" [label]=\"'Loading UI'\"></vl-loader>\n\n <ng-template #content>\n <ng-container *ngIf=\"!state.failure\">\n <vl-cms-preview [uiDefinition]=\"uiDefinition\"></vl-cms-preview>\n </ng-container>\n </ng-template>\n</ng-container>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { LoaderModule } from '@veloce/components';\nimport { PreviewModule } from '@veloce/sdk/cms';\nimport { ShoppingCartComponent } from './shopping-cart.component';\n\n@NgModule({\n declarations: [ShoppingCartComponent],\n imports: [CommonModule, PreviewModule, LoaderModule],\n exports: [ShoppingCartComponent],\n})\nexport class ShoppingCartModule {}\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, Resolve, Router } from '@angular/router';\nimport { FlowsApiService } from '@veloce/api';\nimport { FlowQueryParams } from '@veloce/core';\nimport { ContextService } from '@veloce/sdk/core';\nimport { Dictionary } from 'lodash';\nimport { map } from 'rxjs/operators';\nimport { FlowRouterService } from '../services/flow-router.service';\n\n@Injectable()\nexport class FlowResolver implements Resolve<Promise<boolean>> {\n constructor(\n private router: Router,\n private flowsApiService: FlowsApiService,\n private routerService: FlowRouterService,\n private contextService: ContextService,\n ) {}\n\n private handleError(\n route: ActivatedRouteSnapshot,\n message?: string,\n queryParams?: Dictionary<any>,\n ): Promise<boolean> {\n const parentUrl = this.routerService.getFlowRootPath(route);\n return this.router.navigate([parentUrl, '404'], {\n queryParams,\n state: {\n message: message,\n },\n });\n }\n\n resolve(route: ActivatedRouteSnapshot) {\n const { queryParams } = route;\n const { flowId } = queryParams;\n\n if (!flowId) {\n return this.handleError(route);\n }\n\n return this.flowsApiService.getFlow(flowId).pipe(\n map(flow => {\n if (!flow) {\n return this.handleError(route, `Flow with flowId=${flowId} is not defined`);\n }\n\n const { properties } = flow;\n const { queryParams: flowQueryParams, entryPath } = properties;\n const isProductFlow = entryPath.includes('/product');\n const mergedParams = {\n ...queryParams,\n ...flowQueryParams,\n ...(<FlowQueryParams>{\n ...(isProductFlow && { standalone: true }),\n }),\n };\n\n const contextProperties = Object.entries(mergedParams).reduce<Dictionary<string>>(\n (trunk, [key, value]) => ({ ...trunk, [key]: String(value) }),\n {},\n );\n\n this.contextService.update({ properties: contextProperties });\n\n const parentUrl = this.routerService.getFlowRootPath(route);\n const entryUrl = String(entryPath ?? '')\n .split('/')\n .filter(Boolean);\n\n return this.router\n .navigate([parentUrl, ...entryUrl], {\n queryParams: mergedParams,\n replaceUrl: true,\n })\n .catch(e => {\n const message = e instanceof HttpErrorResponse ? e.error.message : e;\n return this.handleError(route, message, mergedParams);\n });\n }),\n );\n }\n}\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, Resolve, Router } from '@angular/router';\nimport { ContextService, FlowConfigurationService, QuoteDraftService } from '@veloce/sdk/core';\nimport { catchError, from, Observable, of, switchMap, tap } from 'rxjs';\nimport { FlowRouterService } from '../services/flow-router.service';\n\n@Injectable()\nexport class QuoteResolver implements Resolve<void | boolean> {\n constructor(\n private router: Router,\n private quoteDraftService: QuoteDraftService,\n private routerService: FlowRouterService,\n private contextService: ContextService,\n private flowConfiguration: FlowConfigurationService,\n ) {}\n\n private handleError(route: ActivatedRouteSnapshot, message: string): Observable<boolean> {\n const parentUrl = this.routerService.getFlowRootPath(route);\n return from(this.router.navigate([parentUrl, '404'], { state: { message } }));\n }\n\n private calculate$(): Observable<void> {\n const quoteDraft = this.quoteDraftService.quoteDraft;\n\n if (!this.quoteDraftService.isStandalone && quoteDraft) {\n return this.flowConfiguration.calculate$(quoteDraft);\n }\n\n return of(undefined);\n }\n\n resolve(route: ActivatedRouteSnapshot): Observable<void | boolean> {\n const { headerId } = this.contextService.resolve();\n const quote = this.quoteDraftService.quoteDraft;\n\n if (quote && quote.quoteId === headerId) {\n return of(true);\n }\n\n const { queryParams } = route;\n\n return this.quoteDraftService.init(headerId, queryParams).pipe(\n switchMap(() => this.calculate$()),\n tap(() => (this.quoteDraftService.isInitialized = true)),\n catchError(e => {\n const message = e instanceof HttpErrorResponse ? e.error.message : e;\n return this.handleError(route, message);\n }),\n );\n }\n}\n","import { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { VELOCE_FLOW_ROOT_ROUTE } from './constants';\nimport { FlowComponent } from './flow.component';\nimport { ContextGuard } from './guards/context.guard';\nimport { ProductUnloadGuard } from './guards/product-unload.guard';\nimport { RootGuard } from './guards/root.guard';\nimport { CatalogComponent } from './pages/catalog/catalog.component';\nimport { CatalogModule } from './pages/catalog/catalog.module';\nimport { DebugModule } from './pages/debug/debug.module';\nimport { LegacyProductComponent } from './pages/legacy-product/legacy-product.component';\nimport { LegacyProductModule } from './pages/legacy-product/legacy-product.module';\nimport { ProductComponent } from './pages/product/product.component';\nimport { ProductModule } from './pages/product/product.module';\nimport { RecordNotFoundModule } from './pages/record-not-found/record-not-found.module';\nimport { ShoppingCartComponent } from './pages/shopping-cart/shopping-cart.component';\nimport { ShoppingCartModule } from './pages/shopping-cart/shopping-cart.module';\nimport { FlowResolver } from './resolvers/flow.resolver';\nimport { QuoteResolver } from './resolvers/quote.resolver';\nimport { FlowRouterService } from './services/flow-router.service';\nimport { RouteWithId } from './types/route.types';\n\nconst rootRoute: RouteWithId = {\n id: VELOCE_FLOW_ROOT_ROUTE,\n path: '',\n component: FlowComponent,\n canActivate: [RootGuard],\n canDeactivate: [RootGuard],\n children: [\n {\n path: 'flows',\n runGuardsAndResolvers: 'paramsOrQueryParamsChange',\n resolve: { quote: FlowResolver },\n canActivate: [ContextGuard],\n children: [],\n },\n {\n path: 'legacy',\n children: [\n {\n path: 'product',\n component: LegacyProductComponent,\n runGuardsAndResolvers: 'paramsOrQueryParamsChange',\n resolve: { quote: QuoteResolver },\n canActivate: [ContextGuard],\n },\n ],\n },\n {\n path: 'product',\n component: ProductComponent,\n runGuardsAndResolvers: 'paramsOrQueryParamsChange',\n resolve: { quote: QuoteResolver },\n canActivate: [ContextGuard],\n canDeactivate: [ProductUnloadGuard],\n data: { showHeader: true },\n },\n {\n path: 'cart',\n component: ShoppingCartComponent,\n runGuardsAndResolvers: 'paramsOrQueryParamsChange',\n resolve: { quote: QuoteResolver },\n canActivate: [ContextGuard],\n data: { showHeader: true },\n },\n {\n path: 'catalog',\n component: CatalogComponent,\n runGuardsAndResolvers: 'paramsOrQueryParamsChange',\n resolve: { quote: QuoteResolver },\n canActivate: [ContextGuard],\n data: { showHeader: true },\n },\n {\n path: 'debug',\n loadChildren: () => DebugModule,\n },\n {\n path: '404',\n loadChildren: () => RecordNotFoundModule,\n },\n ],\n};\n\n@NgModule({\n imports: [RouterModule.forChild([rootRoute]), ProductModule, LegacyProductModule, ShoppingCartModule, CatalogModule],\n exports: [RouterModule],\n providers: [FlowRouterService, RootGuard, ContextGuard, ProductUnloadGuard, FlowResolver, QuoteResolver],\n})\nexport class FlowRoutingModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ApiModule } from '@veloce/api';\nimport { LetDirectiveModule, LoaderModule } from '@veloce/components';\nimport { LauncherModule } from '@veloce/sdk/cms';\nimport { SdkCoreModule } from '@veloce/sdk/core';\nimport { FlowDialogModule } from './components/dialog/dialog.module';\nimport { DocGenModule } from './components/doc-gen/doc-gen.module';\nimport { FlowHeaderModule } from './components/header/header.module';\nimport { FlowRoutingModule } from './flow-routing.module';\nimport { FlowComponent } from './flow.component';\nimport { FlowService } from './services';\nimport { FlowDocGenService } from './services/doc-gen.service';\nimport { FlowDialogService } from './services/flow-dialog.service';\n\n@NgModule({\n declarations: [FlowComponent],\n imports: [\n CommonModule,\n FlowRoutingModule,\n ApiModule,\n LauncherModule,\n LoaderModule,\n FlowHeaderModule,\n FlowDialogModule,\n SdkCoreModule,\n DocGenModule,\n LetDirectiveModule,\n ],\n providers: [FlowService, FlowDialogService, FlowDocGenService],\n})\nexport class FlowModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["Component","ChangeDetectionStrategy","CommonModule","ButtonModule","NgModule","Subject","BehaviorSubject","FlowAction","tap","takeUntil","Injectable","first","catchError","ToastType","of","map","UITemplateComponentType","UITemplateType","switchMap","extractElementMetadata","extendElementMetadata","PreviewModule","filter","NavigationEnd","shareReplay","startWith","NavigationStart","NavigationCancel","NavigationError","distinctUntilChanged","FormGroup","combineLatest","FormControl","OverlayPanel","ViewChild","Input","ReactiveFormsModule","OverlayPanelModule","LetDirectiveModule","InputNumberModule","ConfigurationContextMode","OpenDocGenAction","finalize","noop","TooltipModule","SplitButtonModule","HttpErrorResponse","from","InjectionToken","Optional","Inject","LoaderModule","routes","FormsModule","RadioButtonModule","InputTextModule","DropdownModule","RouterModule","take","EntityUtil","RuntimeOperation","RuntimeModule","throwError","ApiModule","LauncherModule","SdkCoreModule"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAAa,sBAAsB,GAAG;;ICUtC;QAGE,6BAAoB,YAAiC,EAAU,GAAqB;YAAhE,iBAAY,GAAZ,YAAY,CAAqB;YAAU,QAAG,GAAH,GAAG,CAAkB;YAClF,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC;SAC7C;QAED,2CAAa,GAAb;YACE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;SAClB;QAED,4CAAc,GAAd;YACE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SACtB;;;2IAbU,mBAAmB;oHAAnB,mBAAmB,iECVhC,keAiBA;sHDPa,mBAAmB;sBAN/BA,YAAS;uBAAC;wBACT,QAAQ,EAAE,gBAAgB;wBAC1B,WAAW,EAAE,yBAAyB;wBACtC,SAAS,EAAE,CAAC,yBAAyB,CAAC;wBACtC,eAAe,EAAEC,0BAAuB,CAAC,MAAM;qBAChD;;;IECD;QAAA;;;;wIAAa,gBAAgB;yIAAhB,gBAAgB,iBAJZ,mBAAmB,aACxBC,eAAY,EAAEC,eAAY,aAC1B,mBAAmB;yIAElB,gBAAgB,YAHlB,CAACD,eAAY,EAAEC,eAAY,CAAC;sHAG1B,gBAAgB;sBAL5BC,WAAQ;uBAAC;wBACR,YAAY,EAAE,CAAC,mBAAmB,CAAC;wBACnC,OAAO,EAAE,CAACF,eAAY,EAAEC,eAAY,CAAC;wBACrC,OAAO,EAAE,CAAC,mBAAmB,CAAC;qBAC/B;;;ICJD;QAME,2BAAoB,gBAAkC;YAAlC,qBAAgB,GAAhB,gBAAgB,CAAkB;YAL9C,aAAQ,GAAG,IAAIE,YAAO,EAAQ,CAAC;YAC/B,mBAAc,GAAG,IAAIC,oBAAe,CAAC,KAAK,CAAC,CAAC;YAE7C,eAAU,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;YAGrD,IAAI,CAAC,iBAAiB,EAAE,CAAC;SAC1B;QAEM,mCAAO,GAAP;YACL,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;SACtB;QAEO,6CAAiB,GAAjB;YAAA,iBAgBP;YAfC,IAAI,CAAC,gBAAgB;iBAClB,OAAO,CAACC,eAAU,CAAC,iBAAiB,CAAC;iBACrC,IAAI,CACHC,QAAG,CAAC,cAAM,OAAA,KAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,GAAA,CAAC,EACzCC,cAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CACzB;iBACA,SAAS,EAAE,CAAC;YAEf,IAAI,CAAC,gBAAgB;iBAClB,OAAO,CAACF,eAAU,CAAC,kBAAkB,CAAC;iBACtC,IAAI,CACHC,QAAG,CAAC,cAAM,OAAA,KAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,GAAA,CAAC,EAC1CC,cAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CACzB;iBACA,SAAS,EAAE,CAAC;SAChB;;;yIA9BU,iBAAiB;6IAAjB,iBAAiB;sHAAjB,iBAAiB;sBAD7BC,aAAU;;;ICWX;QAOE,yBACU,iBAAoC,EACpC,cAA8B,EAC9B,YAAmC,EACnC,aAAgC,EAChC,YAA0B;YALpC,iBAiBC;YAhBS,sBAAiB,GAAjB,iBAAiB,CAAmB;YACpC,mBAAc,GAAd,cAAc,CAAgB;YAC9B,iBAAY,GAAZ,YAAY,CAAuB;YACnC,kBAAa,GAAb,aAAa,CAAmB;YAChC,iBAAY,GAAZ,YAAY,CAAc;YAX7B,kBAAa,GAAG,IAAIJ,oBAAe,CAAsB,IAAI,CAAC,CAAC;YAG9D,oBAAe,GAAG,EAAE,CAAC;YACrB,aAAQ,GAAG,IAAID,YAAO,EAAQ,CAAC;YASrC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;;YAGhD,IAAI,CAAC,iBAAiB,CAAC,WAAW;iBAC/B,IAAI,CACHM,UAAK,EAAE,EACPH,QAAG,CAAC,cAAM,OAAA,KAAI,CAAC,UAAU,EAAE,GAAA,CAAC,EAC5BC,cAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CACzB;iBACA,SAAS,EAAE,CAAC;SAChB;QAED,qCAAW,GAAX;YACE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACrB,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;SAC1B;QAEO,oCAAU,GAAV;YAAA,iBAoBP;;YAnBC,IAAI,CAAC,eAAe,GAAG,MAAA,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC,UAAU,CAAC,qBAAqB,mCAAI,EAAE,CAAC;YAE5F,IAAI,CAAC,qBAAqB,EAAE;iBACzB,IAAI,CACHD,QAAG,CAAC,UAAA,KAAK;gBACP,IAAI,CAAC,KAAK,EAAE;oBACV,MAAM,IAAI,KAAK,CAAC,0BAAwB,KAAI,CAAC,eAAe,iBAAc,CAAC,CAAC;iBAC7E;gBAED,KAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAChC,CAAC,EACFI,eAAU,CAAC,UAAA,GAAG;;gBACZ,IAAM,OAAO,GAAG,sCAAsC,IAAI,MAAA,GAAG,CAAC,OAAO,mCAAI,EAAE,CAAC,CAAC;gBAC7E,KAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAEC,YAAS,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;gBACrF,OAAOC,OAAE,EAAE,CAAC;aACb,CAAC,EACFL,cAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CACzB;iBACA,SAAS,EAAE,CAAC;SAChB;QAEO,mDAAyB,GAAzB,UAA0B,QAAoB;YACpD,OAAO,IAAI,CAAC,YAAY;iBACrB,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC;iBAC7B,IAAI,CAACM,QAAG,CAAC,UAAA,UAAU,YAAI,OAAA,MAAA,UAAU,CAAC,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,IAAI,KAAKC,4BAAuB,CAAC,IAAI,GAAA,CAAC,mCAAI,SAAS,CAAA,EAAA,CAAC,CAAC,CAAC;SACxG;QAEO,iDAAuB,GAAvB;YAAA,iBAaP;YAZC,OAAO,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,CAAC,IAAI,CAC7CD,QAAG,CAAuC,UAAA,SAAS;gBACjD,IAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAC7B,UAAA,QAAQ,IAAI,OAAA,QAAQ,CAAC,IAAI,KAAKE,mBAAc,CAAC,MAAM,IAAI,QAAQ,CAAC,IAAI,KAAK,KAAI,CAAC,eAAe,GAAA,CAC9F,CAAC;gBACF,OAAO,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,SAAS,CAAC,CAAC,CAAC,CAAC;aACjC,CAAC,EACFC,cAAS,CAAC,UAAA,QAAQ,IAAI,QAAC,QAAQ,GAAG,KAAI,CAAC,yBAAyB,CAAC,QAAQ,CAAC,GAAGJ,OAAE,CAAC,SAAS,CAAC,IAAC,CAAC,EAC5FI,cAAS,CAAC,UAAA,SAAS,IACjB,OAAA,SAAS,GAAG,KAAI,CAAC,YAAY,CAAC,0BAA0B,CAAC,SAAS,CAAC,YAAY,EAAE,SAAS,CAAC,GAAGJ,OAAE,CAAC,SAAS,CAAC,GAAA,CAC5G,CACF,CAAC;SACH;QAEO,+CAAqB,GAArB;YAAA,iBA6CP;YA5CC,OAAOA,OAAE,CAAC,SAAS,CAAC,CAAC,IAAI,CACvBN,QAAG,CAAC;gBACF,IAAI,CAAC,KAAI,CAAC,eAAe,EAAE;oBACzB,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;iBAC7E;aACF,CAAC,EACFU,cAAS,CAAC,UAAA,IAAI,IAAI,QAAC,IAAI,GAAGJ,OAAE,CAAC,IAAI,CAAC,GAAG,KAAI,CAAC,uBAAuB,EAAE,IAAC,CAAC,EACrEC,QAAG,CAAC,UAAA,IAAI;;gBACN,IAAI,CAAC,IAAI,EAAE;oBACT,OAAO;iBACR;gBAED,IAAM,QAAQ,GAAG,MAAA,KAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC,UAAU,CAAC,EAAE,mCAAI,IAAI,CAAC;gBACrE,IAAI,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;gBAErB,IAAI,MAAM,EAAE;oBACV,IAAM,QAAQ,GAAGI,2BAAsB,CAAC,MAAM,CAAC,CAAC;oBAChD,MAAM,GAAGC,0BAAqB,CAAC,MAAM,EAAE;wBACrC,MAAM,kCACD,QAAQ,CAAC,MAAM,KAClB,EAAE,EAAE,QAAQ,GAAG,OAAI,QAAQ,OAAG,GAAG,IAAI,GACtC;qBACF,CAAC,CAAC;iBACJ;gBAED,IAAM,KAAK,GAAiB;oBAC1B,IAAI,EAAE,EAAE;oBACR,gBAAgB,EAAE,CAAC;oBACnB,OAAO,EAAE,IAAI;oBACb,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,CAAC;oBACV,QAAQ,EAAE;wBACR;4BACE,QAAQ,EAAE,EAAE;4BACZ,QAAQ,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;4BACtC,MAAM,EAAE,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC;4BAC9B,MAAM,EAAE,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;yBACnC;qBACF;iBACF,CAAC;gBAEF,OAAO,KAAK,CAAC;aACd,CAAC,CACH,CAAC;SACH;;;uIAvHU,eAAe;gHAAf,eAAe,kECf5B,kPAKA;sHDUa,eAAe;sBAN3BpB,YAAS;uBAAC;wBACT,QAAQ,EAAE,iBAAiB;wBAC3B,WAAW,EAAE,0BAA0B;wBACvC,SAAS,EAAE,CAAC,0BAA0B,CAAC;wBACvC,eAAe,EAAEC,0BAAuB,CAAC,MAAM;qBAChD;;;IEJD;QAAA;;;;oIAAa,YAAY;qIAAZ,YAAY,iBAJR,eAAe,aACpBC,eAAY,EAAEmB,kBAAa,aAC3B,eAAe;qIAEd,YAAY,YAHd,CAACnB,eAAY,EAAEmB,kBAAa,CAAC;sHAG3B,YAAY;sBALxBjB,WAAQ;uBAAC;wBACR,YAAY,EAAE,CAAC,eAAe,CAAC;wBAC/B,OAAO,EAAE,CAACF,eAAY,EAAEmB,kBAAa,CAAC;wBACtC,OAAO,EAAE,CAAC,eAAe,CAAC;qBAC3B;;;ICTD;;;;;;;;;;;;;;IAcA;IAEA,IAAI,aAAa,GAAG,UAAS,CAAC,EAAE,CAAC;QAC7B,aAAa,GAAG,MAAM,CAAC,cAAc;aAChC,EAAE,SAAS,EAAE,EAAE,EAAE,YAAY,KAAK,IAAI,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC;YAC5E,UAAU,CAAC,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC;gBAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;oBAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACtG,OAAO,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/B,CAAC,CAAC;aAEc,SAAS,CAAC,CAAC,EAAE,CAAC;QAC1B,IAAI,OAAO,CAAC,KAAK,UAAU,IAAI,CAAC,KAAK,IAAI;YACrC,MAAM,IAAI,SAAS,CAAC,sBAAsB,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,+BAA+B,CAAC,CAAC;QAC9F,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACpB,SAAS,EAAE,KAAK,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,EAAE;QACvC,CAAC,CAAC,SAAS,GAAG,CAAC,KAAK,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IACzF,CAAC;IAEM,IAAI,QAAQ,GAAG;QAClB,QAAQ,GAAG,MAAM,CAAC,MAAM,IAAI,SAAS,QAAQ,CAAC,CAAC;YAC3C,KAAK,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBACjD,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;gBACjB,KAAK,IAAI,CAAC,IAAI,CAAC;oBAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;wBAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;aAChF;YACD,OAAO,CAAC,CAAC;SACZ,CAAA;QACD,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC3C,CAAC,CAAA;aAEe,MAAM,CAAC,CAAC,EAAE,CAAC;QACvB,IAAI,CAAC,GAAG,EAAE,CAAC;QACX,KAAK,IAAI,CAAC,IAAI,CAAC;YAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;gBAC/E,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAChB,IAAI,CAAC,IAAI,IAAI,IAAI,OAAO,MAAM,CAAC,qBAAqB,KAAK,UAAU;YAC/D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACpE,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC1E,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACzB;QACL,OAAO,CAAC,CAAC;IACb,CAAC;aAEe,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI;QACpD,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;QAC7H,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU;YAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;;YAC1H,KAAK,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;gBAAE,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;oBAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;QAClJ,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAClE,CAAC;aAEe,OAAO,CAAC,UAAU,EAAE,SAAS;QACzC,OAAO,UAAU,MAAM,EAAE,GAAG,IAAI,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,EAAE,CAAA;IACzE,CAAC;aAEe,UAAU,CAAC,WAAW,EAAE,aAAa;QACjD,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU;YAAE,OAAO,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IACnI,CAAC;aAEe,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS;QACvD,SAAS,KAAK,CAAC,KAAK,IAAI,OAAO,KAAK,YAAY,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,UAAU,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;QAC5G,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,EAAE,UAAU,OAAO,EAAE,MAAM;YACrD,SAAS,SAAS,CAAC,KAAK,IAAI,IAAI;gBAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;aAAE;YAAC,OAAO,CAAC,EAAE;gBAAE,MAAM,CAAC,CAAC,CAAC,CAAC;aAAE,EAAE;YAC3F,SAAS,QAAQ,CAAC,KAAK,IAAI,IAAI;gBAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;aAAE;YAAC,OAAO,CAAC,EAAE;gBAAE,MAAM,CAAC,CAAC,CAAC,CAAC;aAAE,EAAE;YAC9F,SAAS,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE;YAC9G,IAAI,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;SACzE,CAAC,CAAC;IACP,CAAC;aAEe,WAAW,CAAC,OAAO,EAAE,IAAI;QACrC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,cAAa,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;gBAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACjH,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,MAAM,KAAK,UAAU,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,cAAa,OAAO,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACzJ,SAAS,IAAI,CAAC,CAAC,IAAI,OAAO,UAAU,CAAC,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;QAClE,SAAS,IAAI,CAAC,EAAE;YACZ,IAAI,CAAC;gBAAE,MAAM,IAAI,SAAS,CAAC,iCAAiC,CAAC,CAAC;YAC9D,OAAO,CAAC;gBAAE,IAAI;oBACV,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI;wBAAE,OAAO,CAAC,CAAC;oBAC7J,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;wBAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;oBACxC,QAAQ,EAAE,CAAC,CAAC,CAAC;wBACT,KAAK,CAAC,CAAC;wBAAC,KAAK,CAAC;4BAAE,CAAC,GAAG,EAAE,CAAC;4BAAC,MAAM;wBAC9B,KAAK,CAAC;4BAAE,CAAC,CAAC,KAAK,EAAE,CAAC;4BAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;wBACxD,KAAK,CAAC;4BAAE,CAAC,CAAC,KAAK,EAAE,CAAC;4BAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;4BAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;4BAAC,SAAS;wBACjD,KAAK,CAAC;4BAAE,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;4BAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;4BAAC,SAAS;wBACjD;4BACI,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;gCAAE,CAAC,GAAG,CAAC,CAAC;gCAAC,SAAS;6BAAE;4BAC5G,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;gCAAE,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;gCAAC,MAAM;6BAAE;4BACtF,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;gCAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gCAAC,CAAC,GAAG,EAAE,CAAC;gCAAC,MAAM;6BAAE;4BACrE,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;gCAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gCAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gCAAC,MAAM;6BAAE;4BACnE,IAAI,CAAC,CAAC,CAAC,CAAC;gCAAE,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;4BACtB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;4BAAC,SAAS;qBAC9B;oBACD,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;iBAC9B;gBAAC,OAAO,CAAC,EAAE;oBAAE,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBAAC,CAAC,GAAG,CAAC,CAAC;iBAAE;wBAAS;oBAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;iBAAE;YAC1D,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;gBAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;YAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;SACpF;IACL,CAAC;IAEM,IAAI,eAAe,GAAG,MAAM,CAAC,MAAM,IAAI,UAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;QAC9D,IAAI,EAAE,KAAK,SAAS;YAAE,EAAE,GAAG,CAAC,CAAC;QAC7B,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,cAAa,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACzF,CAAC,KAAK,UAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;QACtB,IAAI,EAAE,KAAK,SAAS;YAAE,EAAE,GAAG,CAAC,CAAC;QAC7B,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC,CAAC,CAAC;aAEa,YAAY,CAAC,CAAC,EAAE,CAAC;QAC7B,KAAK,IAAI,CAAC,IAAI,CAAC;YAAE,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;gBAAE,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAClH,CAAC;aAEe,QAAQ,CAAC,CAAC;QACtB,IAAI,CAAC,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QAC9E,IAAI,CAAC;YAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ;YAAE,OAAO;gBAC1C,IAAI,EAAE;oBACF,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM;wBAAE,CAAC,GAAG,KAAK,CAAC,CAAC;oBACnC,OAAO,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;iBAC3C;aACJ,CAAC;QACF,MAAM,IAAI,SAAS,CAAC,CAAC,GAAG,yBAAyB,GAAG,iCAAiC,CAAC,CAAC;IAC3F,CAAC;aAEe,MAAM,CAAC,CAAC,EAAE,CAAC;QACvB,IAAI,CAAC,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC3D,IAAI,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC;QACjB,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QACjC,IAAI;YACA,OAAO,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI;gBAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;SAC9E;QACD,OAAO,KAAK,EAAE;YAAE,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;SAAE;gBAC/B;YACJ,IAAI;gBACA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;oBAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACpD;oBACO;gBAAE,IAAI,CAAC;oBAAE,MAAM,CAAC,CAAC,KAAK,CAAC;aAAE;SACpC;QACD,OAAO,EAAE,CAAC;IACd,CAAC;IAED;aACgB,QAAQ;QACpB,KAAK,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE;YAC9C,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzC,OAAO,EAAE,CAAC;IACd,CAAC;IAED;aACgB,cAAc;QAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;YAAE,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QACpF,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;YAC5C,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE;gBAC7D,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACpB,OAAO,CAAC,CAAC;IACb,CAAC;aAEe,aAAa,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI;QACxC,IAAI,IAAI,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBACjF,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC,EAAE;oBACpB,IAAI,CAAC,EAAE;wBAAE,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;oBACrD,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;iBACnB;aACJ;QACD,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7D,CAAC;aAEe,OAAO,CAAC,CAAC;QACrB,OAAO,IAAI,YAAY,OAAO,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;IACzE,CAAC;aAEe,gBAAgB,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS;QAC3D,IAAI,CAAC,MAAM,CAAC,aAAa;YAAE,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;QACvF,IAAI,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;QAC9D,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,cAAc,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QACtH,SAAS,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;YAAE,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;QAC1I,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI;YAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAAE;QAAC,OAAO,CAAC,EAAE;YAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SAAE,EAAE;QAClF,SAAS,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,YAAY,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;QACxH,SAAS,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE;QAClD,SAAS,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE;QAClD,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM;YAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;IACtF,CAAC;aAEe,gBAAgB,CAAC,CAAC;QAC9B,IAAI,CAAC,EAAE,CAAC,CAAC;QACT,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,cAAc,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5I,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,QAAQ,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;IACnJ,CAAC;aAEe,aAAa,CAAC,CAAC;QAC3B,IAAI,CAAC,MAAM,CAAC,aAAa;YAAE,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;QACvF,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,QAAQ,KAAK,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,cAAc,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACjN,SAAS,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,OAAO,IAAI,OAAO,CAAC,UAAU,OAAO,EAAE,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;QAChK,SAAS,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAS,CAAC,IAAI,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,EAAE;IAChI,CAAC;aAEe,oBAAoB,CAAC,MAAM,EAAE,GAAG;QAC5C,IAAI,MAAM,CAAC,cAAc,EAAE;YAAE,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;SAAE;aAAM;YAAE,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;SAAE;QAC/G,OAAO,MAAM,CAAC;IAClB,CAAC;IAAA,CAAC;IAEF,IAAI,kBAAkB,GAAG,MAAM,CAAC,MAAM,IAAI,UAAS,CAAC,EAAE,CAAC;QACnD,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IACxE,CAAC,IAAI,UAAS,CAAC,EAAE,CAAC;QACd,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC,CAAC;aAEc,YAAY,CAAC,GAAG;QAC5B,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU;YAAE,OAAO,GAAG,CAAC;QACtC,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,GAAG,IAAI,IAAI;YAAE,KAAK,IAAI,CAAC,IAAI,GAAG;gBAAE,IAAI,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;oBAAE,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QACzI,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAChC,OAAO,MAAM,CAAC;IAClB,CAAC;aAEe,eAAe,CAAC,GAAG;QAC/B,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;IAC5D,CAAC;aAEe,sBAAsB,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAC3D,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,CAAC;YAAE,MAAM,IAAI,SAAS,CAAC,+CAA+C,CAAC,CAAC;QAC7F,IAAI,OAAO,KAAK,KAAK,UAAU,GAAG,QAAQ,KAAK,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,MAAM,IAAI,SAAS,CAAC,0EAA0E,CAAC,CAAC;QACnL,OAAO,IAAI,KAAK,GAAG,GAAG,CAAC,GAAG,IAAI,KAAK,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAClG,CAAC;aAEe,sBAAsB,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAClE,IAAI,IAAI,KAAK,GAAG;YAAE,MAAM,IAAI,SAAS,CAAC,gCAAgC,CAAC,CAAC;QACxE,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,CAAC;YAAE,MAAM,IAAI,SAAS,CAAC,+CAA+C,CAAC,CAAC;QAC7F,IAAI,OAAO,KAAK,KAAK,UAAU,GAAG,QAAQ,KAAK,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,MAAM,IAAI,SAAS,CAAC,yEAAyE,CAAC,CAAC;QAClL,OAAO,CAAC,IAAI,KAAK,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,KAAK,CAAC;IAC9G;;IC5NA;QAQE,2BAAoB,MAAc,EAAU,KAAqB,EAAU,cAA8B;YAAzG,iBA+BC;YA/BmB,WAAM,GAAN,MAAM,CAAQ;YAAU,UAAK,GAAL,KAAK,CAAgB;YAAU,mBAAc,GAAd,cAAc,CAAgB;YAJjG,eAAU,GAAa,EAAE,CAAC;YA6E3B,sBAAiB,GAAG,UAAC,KAAqB;gBAC/C,OAAO,KAAK,CAAC,UAAU,GAAG,KAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC;aAC5E,CAAC;YAEK,qBAAgB,GAAG,UAAC,KAAqB,EAAE,KAAa;gBAC7D,IAAI,KAAK,IAAI,CAAC,EAAE;oBACd,OAAO,KAAK,CAAC;iBACd;gBAED,OAAO,KAAK,CAAC,UAAU,GAAG,KAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;aACtF,CAAC;YAEK,8BAAyB,GAAG,UAAC,KAA6B;gBAC/D,OAAO,KAAK,CAAC,UAAU,GAAG,KAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC;aACpF,CAAC;YAEK,yBAAoB,GAAG,UAAC,KAAqB;gBAClD,OAAO,KAAI,CAAC,YAAY,CAAC,IAAI,CAACN,QAAG,CAAC,cAAM,OAAA,KAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAA,CAAC,CAAC,CAAC;aAC1F,CAAC;YAEK,uBAAkB,GAAG,UAAC,KAA6B;gBACxD,OAAO,KAAK,CAAC,UAAU,GAAG,KAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;aACpF,CAAC;YAEK,0BAAqB,GAAG,UAAC,KAAqB;gBACnD,OAAO,KAAI,CAAC,YAAY,CAAC,IAAI,CAACA,QAAG,CAAC,cAAM,OAAA,KAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAA,CAAC,CAAC,CAAC;aACnF,CAAC;YAEK,oBAAe,GAAG;gBACvB,OAAO,KAAI,CAAC,MAAM,CAAC,IAAI,CACrBA,QAAG,CAAC,UAAA,KAAK;oBACP,IAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBAChC,IAAM,WAAW,GAAG,KAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;oBAChD,OAAO,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;iBACrC,CAAC,CACH,CAAC;aACH,CAAC;YA5GA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CACzCO,WAAM,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,YAAYC,kBAAa,GAAA,CAAC,EACvCC,gBAAW,EAAE,CACd,CAAC;YAEF,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CACjEC,cAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EACvDD,gBAAW,EAAE,CACd,CAAC;YACF,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAC/DC,cAAS,CAAC,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAC9DD,gBAAW,EAAE,CACd,CAAC;YAEF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CACrCF,WAAM,CACJ,UAAA,CAAC,IACC,OAAA,CAAC,YAAYI,oBAAe;gBAC5B,CAAC,YAAYC,qBAAgB;gBAC7B,CAAC,YAAYJ,kBAAa;gBAC1B,CAAC,YAAYK,oBAAe,GAAA,CAC/B,EACDb,QAAG,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,YAAYW,oBAAe,GAAA,CAAC,EACtCD,cAAS,CAAC,KAAK,CAAC,EAChBI,yBAAoB,EAAE,CACvB,CAAC;YAEF,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAACP,WAAM,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,YAAYC,kBAAa,GAAA,CAAC,CAAC,CAAC,SAAS,CAAC;gBACzE,KAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;aACvC,CAAC,CAAC;SACJ;QAED,4CAAgB,GAAhB,UAAiB,KAA6B;;YAC5C,IAAM,IAAI,4BAAO,KAAK,CAAC,YAAY,EAAC,CAAC;YAErC,OAAO,IAAI,CAAC,MAAM,EAAE;gBAClB,IAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBAE1B,IAAI,CAAC,MAAM,EAAE;oBACX,MAAM;iBACP;gBAED,IAAI,CAAA,MAAC,MAAM,CAAC,WAA2B,0CAAE,EAAE,MAAK,sBAAsB,EAAE;oBACtE,OAAO,MAAM,CAAC;iBACf;aACF;YAED,OAAO;SACR;QAED,2CAAe,GAAf,UAAgB,KAA6B;YAC3C,IAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;YAC/C,IAAI,CAAC,SAAS,EAAE;gBACd,OAAO,EAAE,CAAC;aACX;YAED,IAAM,IAAI,GAAG,SAAS,CAAC,YAAY;iBAChC,GAAG,CAAC,UAAA,CAAC,YAAI,OAAA,MAAA,CAAC,CAAC,WAAW,0CAAE,IAAI,CAAA,EAAA,CAAC;iBAC7B,MAAM,CAAC,OAAO,CAAC;iBACf,IAAI,CAAC,GAAG,CAAC,CAAC;YAEb,OAAO,GAAG,GAAG,IAAI,CAAC;SACnB;QAED,sBAAI,qCAAM;iBAAV;gBACE,OAAO,IAAI,CAAC,eAAe,CAAC;aAC7B;;;WAAA;QAED,sBAAI,sCAAO;iBAAX;gBACE,OAAO,IAAI,CAAC,gBAAgB,CAAC;aAC9B;;;WAAA;QAwCM,iDAAqB,GAArB;YACL,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,IAAI,CAACR,QAAG,CAAC,UAAA,GAAG,IAAI,OAAA,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,GAAA,CAAC,CAAC,CAAC;SAC3E;QAEM,wCAAY,GAAZ;YACL,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,IAAI,CAACA,QAAG,CAAC,UAAA,GAAG,IAAI,OAAA,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,GAAA,CAAC,CAAC,CAAC;SACxE;QAEM,2CAAe,GAAf;YACL,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,IAAI,CAACA,QAAG,CAAC,UAAA,GAAG,IAAI,OAAA,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,GAAA,CAAC,CAAC,CAAC;SAC3E;QAEM,wCAAY,GAAZ;YACL,IAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAE5D,IAAI,OAAO,EAAE;gBACX,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;aACpC;SACF;QAEM,0DAA8B,GAA9B,UAA+B,SAAiB,EAAE,UAAmB;YAC1E,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,EAAE,SAAS,WAAA,EAAE,UAAU,YAAA,EAAE,EAAE,CAAC,CAAC;YAEtE,IAAM,aAAa,GAAG,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC1E,IAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;YAEzD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,YAAY,EAAE,SAAS,CAAC,EAAE;gBAC9C,WAAW,kCAAO,aAAa,CAAC,WAAW,KAAE,SAAS,WAAA,GAAE;aACzD,CAAC,CAAC;SACJ;QAEM,kDAAsB,GAAtB;YACL,IAAM,aAAa,GAAG,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC1E,IAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;YAEzD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,YAAY,EAAE,MAAM,CAAC,EAAE,EAAE,WAAW,EAAE,aAAa,CAAC,WAAW,EAAE,CAAC,CAAC;SAC1F;QAEM,6CAAiB,GAAjB;YACL,IAAM,aAAa,GAAG,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC1E,IAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;YAEzD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,YAAY,EAAE,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,aAAa,CAAC,WAAW,EAAE,CAAC,CAAC;SAC7F;;;yIAlKU,iBAAiB;6IAAjB,iBAAiB,cADJ,MAAM;sHACnB,iBAAiB;sBAD7BL,aAAU;uBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;ICMlC;QAaE,8BACU,iBAA2C,EAC3C,aAAgC,EAChC,oBAA0C,EAC1C,iBAAoC;YAHpC,sBAAiB,GAAjB,iBAAiB,CAA0B;YAC3C,kBAAa,GAAb,aAAa,CAAmB;YAChC,yBAAoB,GAApB,oBAAoB,CAAsB;YAC1C,sBAAiB,GAAjB,iBAAiB,CAAmB;YAZvC,SAAI,GAAG,IAAIoB,YAAS,CAAC,EAAE,CAAC,CAAC;YAGxB,kBAAa,GAAG,IAAIxB,oBAAe,CAAC,IAAI,CAAC,CAAC;YAC1C,eAAU,GAAG,IAAID,YAAO,EAAQ,CAAC;YAUvC,IAAI,CAAC,kBAAkB,GAAG0B,kBAAa,CAAC;gBACtC,IAAI,CAAC,aAAa,CAAC,MAAM;gBACzB,IAAI,CAAC,aAAa,CAAC,qBAAqB,EAAE;aAC3C,CAAC,CAAC,IAAI,CACLhB,QAAG,CAAC,UAAC,EAA6B;oBAA7B,KAAA,aAA6B,EAA5B,KAAK,QAAA,EAAE,oBAAoB,QAAA;gBAC/B,IAAI,CAAC,oBAAoB,EAAE;oBACzB,OAAO,IAAI,CAAC;iBACb;gBAED,OAAO,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC;aACpC,CAAC,CACH,CAAC;YAEF,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC;SACzD;QAED,0CAAW,GAAX,UAAY,OAAsB;YAChC,IAAI,OAAO,CAAC,QAAQ,EAAE;gBACpB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC/B;SACF;QAED,8CAAe,GAAf;YAAA,iBASC;YARCgB,kBAAa,CAAC,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;iBACrG,IAAI,CACHT,WAAM,CAAC,cAAM,OAAA,KAAI,CAAC,YAAY,CAAC,cAAc,GAAA,CAAC,EAC9Cb,cAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAC3B;iBACA,SAAS,CAAC,UAAC,EAA+B;oBAA/B,KAAA,aAA+B,EAA9B,iBAAiB,QAAA,EAAE,UAAU,QAAA;gBACxC,OAAA,KAAI,CAAC,cAAc,CAAC,KAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,iBAAiB,CAAC;aAAA,CAClE,CAAC;SACL;QAEM,0CAAW,GAAX;YACL,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;YACvB,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;SAC5B;QAEM,0CAAW,GAAX,UAAY,SAAiB;YAClC,OAAO,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;SAC1D;QAEM,6DAA8B,GAA9B,UAA+B,SAAiB,EAAE,UAAkB;YACzE,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;YACzB,IAAI,CAAC,aAAa,CAAC,8BAA8B,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;SAC1E;QAEM,iDAAkB,GAAlB,UAAmB,OAAsB;YAC9C,IAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC/C,IAAI,OAAO,CAAC,OAAO,EAAE;gBACnB,OAAO;aACR;YAED,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;gBAC5B;oBACE,QAAQ,EAAE,UAAU;oBACpB,aAAa,EAAE,KAAK;oBACpB,EAAE,EAAE,OAAO,CAAC,EAAE;oBACd,QAAQ,EAAE,OAAO,CAAC,KAAK;iBACxB;aACF,CAAC,CAAC;SACJ;QAEM,4CAAa,GAAb,UAAc,OAAsB;YACzC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;SAC7C;QAEM,+CAAgB,GAAhB;YACL,IAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAA,OAAO,IAAI,OAAA,OAAO,CAAC,EAAE,GAAA,CAAC,CAAC;YAC5D,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;SAC3C;QAEO,6CAAc,GAAd,UAAe,QAAyB,EAAE,UAAmB,EAAE,iBAAgC;YAA/F,iBAyBP;YAxBC,IAAM,GAAG,GAAa,EAAE,CAAC;YAEzB,QAAQ,CAAC,OAAO,CAAC,UAAA,IAAI;;gBACnB,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE;oBACZ,OAAO;iBACR;gBAED,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAElB,IAAI,CAAC,KAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;oBAChC,KAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,IAAIuB,cAAW,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;iBAC9D;qBAAM;oBACL,MAAA,KAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,0CAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;iBACjD;gBAED,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,KAAK,iBAAiB,EAAE;oBACvE,KAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;iBACvC;qBAAM;oBACL,KAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;iBACtC;aACF,CAAC,CAAC;YAEH,IAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,UAAA,EAAE,IAAI,OAAA,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAA,CAAC,CAAC;YACnF,UAAU,CAAC,OAAO,CAAC,UAAA,EAAE,IAAI,OAAA,KAAI,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,GAAA,CAAC,CAAC;SACvD;;;4IApHU,oBAAoB;qHAApB,oBAAoB,uIACpBC,iBAAY,gFCxBzB,s6HA8FA;sHDvEa,oBAAoB;sBANhCjC,YAAS;uBAAC;wBACT,QAAQ,EAAE,iBAAiB;wBAC3B,WAAW,EAAE,+BAA+B;wBAC5C,SAAS,EAAE,CAAC,+BAA+B,CAAC;wBAC5C,eAAe,EAAEC,0BAAuB,CAAC,MAAM;qBAChD;0PAE0B,YAAY;0BAApCiC,YAAS;2BAACD,iBAAY;oBAEd,QAAQ;0BAAhBE,QAAK;;;IEZR;QAAA;;;;yIAAa,iBAAiB;0IAAjB,iBAAiB,iBAJb,oBAAoB,aACzBjC,eAAY,EAAEkC,sBAAmB,EAAEjC,eAAY,EAAEkC,uBAAkB,EAAEC,qBAAkB,EAAEC,sBAAiB,aAC1G,oBAAoB;0IAEnB,iBAAiB,YAHnB,CAACrC,eAAY,EAAEkC,sBAAmB,EAAEjC,eAAY,EAAEkC,uBAAkB,EAAEC,qBAAkB,EAAEC,sBAAiB,CAAC;sHAG1G,iBAAiB;sBAL7BnC,WAAQ;uBAAC;wBACR,YAAY,EAAE,CAAC,oBAAoB,CAAC;wBACpC,OAAO,EAAE,CAACF,eAAY,EAAEkC,sBAAmB,EAAEjC,eAAY,EAAEkC,uBAAkB,EAAEC,qBAAkB,EAAEC,sBAAiB,CAAC;wBACrH,OAAO,EAAE,CAAC,oBAAoB,CAAC;qBAChC;;;ICLD;QACE,2BAAoB,aAA4B,EAAU,cAA8B;YAApE,kBAAa,GAAb,aAAa,CAAe;YAAU,mBAAc,GAAd,cAAc,CAAgB;SAAI;QAErF,gCAAI,GAAJ,UAAK,MAAwB;YAClC,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,mBAAmB,EAAE;gBAClD,eAAe,EAAE,IAAI;gBACrB,aAAa,EAAE,IAAI;gBACnB,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAE,IAAI;gBAChB,MAAM,EAAE,MAAM,CAAC,KAAK;gBACpB,KAAK,EAAE,OAAO;gBACd,IAAI,EAAE,EAAE,MAAM,QAAA,EAAE;aACjB,CAAC,CAAC,OAAO,CAAC;SACZ;QAEM,+CAAmB,GAAnB;YACL,OAAO,IAAI,CAAC,IAAI,CAAC;gBACf,KAAK,EAAE,sBAAsB;gBAC7B,WAAW,EAAE,iFAAiF;gBAC9F,aAAa,EAAE,IAAI;aACpB,CAAC,CAAC;SACJ;QAEM,kDAAsB,GAAtB;YACL,IAAM,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;YAC1C,IAAM,UAAU,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,QAAQ,CAAC;YAEzG,OAAO,IAAI,CAAC,IAAI,CAAC;gBACf,KAAK,EAAE,OAAO;gBACd,WAAW,EAAK,UAAU,qBAAkB;gBAC5C,aAAa,EAAE,IAAI;aACpB,CAAC,CAAC;SACJ;QAEM,uDAA2B,GAA3B;YACL,OAAO,IAAI,CAAC,IAAI,CAAC;gBACf,KAAK,EAAE,uBAAuB;gBAC9B,WAAW,EACT,iHAAiH;gBACnH,aAAa,EAAE,IAAI;aACpB,CAAC,CAAC;SACJ;QAEM,8DAAkC,GAAlC;YACL,OAAO,IAAI,CAAC,IAAI,CAAC;gBACf,KAAK,EAAE,uBAAuB;gBAC9B,WAAW,EAAE,iGAAiG;gBAC9G,aAAa,EAAE,IAAI;aACpB,CAAC,CAAC;SACJ;QAEM,sDAA0B,GAA1B;YACL,OAAO,IAAI,CAAC,IAAI,CAAC;gBACf,KAAK,EAAE,oBAAoB;gBAC3B,WAAW,EAAE,6EAA6E;gBAC1F,aAAa,EAAE,IAAI;aACpB,CAAC,CAAC;SACJ;QAEM,oDAAwB,GAAxB;YACL,OAAO,IAAI,CAAC,IAAI,CAAC;gBACf,KAAK,EAAE,iBAAiB;gBACxB,WAAW,EAAE,4EAA4E;gBACzF,aAAa,EAAE,cAAc;gBAC7B,eAAe,EAAE,iBAAiB;aACnC,CAAC,CAAC;SACJ;QAEM,gEAAoC,GAApC;YACL,OAAO,IAAI,CAAC,IAAI,CAAC;gBACf,KAAK,EAAE,4BAA4B;gBACnC,WAAW,EACT,kHAAkH;gBACpH,aAAa,EAAE,IAAI;aACpB,CAAC,CAAC;SACJ;QAEM,2EAA+C,GAA/C;YACL,OAAO,IAAI,CAAC,IAAI,CAAC;gBACf,KAAK,EAAE,4BAA4B;gBACnC,WAAW,EACT,gHAAgH;gBAClH,aAAa,EAAE,IAAI;aACpB,CAAC,CAAC;SACJ;QAEM,0DAA8B,GAA9B;YACL,OAAO,IAAI,CAAC,IAAI,CAAC;gBACf,KAAK,EAAE,cAAc;gBACrB,WAAW,EACT,uGAAuG;gBACzG,aAAa,EAAE,IAAI;aACpB,CAAC,CAAC;SACJ;QAEM,iEAAqC,GAArC;YACL,OAAO,IAAI,CAAC,IAAI,CAAC;gBACf,KAAK,EAAE,YAAY;gBACnB,WAAW,EACT,sGAAsG;gBACxG,aAAa,EAAE,IAAI;aACpB,CAAC,CAAC;SACJ;QAEM,oDAAwB,GAAxB;YACL,OAAO,IAAI,CAAC,IAAI,CAAC;gBACf,KAAK,EAAE,sCAAsC;gBAC7C,WAAW,EACT,iIAAiI;gBACnI,aAAa,EAAE,IAAI;aACpB,CAAC,CAAC;SACJ;QAEM,+DAAmC,GAAnC;YACL,OAAO,IAAI,CAAC,IAAI,CAAC;gBACf,KAAK,EAAE,sCAAsC;gBAC7C,WAAW,EACT,mHAAmH;gBACrH,aAAa,EAAE,IAAI;aACpB,CAAC,CAAC;SACJ;QAEM,0DAA8B,GAA9B;YACL,OAAO,IAAI,CAAC,IAAI,CAAC;gBACf,KAAK,EAAE,iBAAiB;gBACxB,WAAW,EAAE,+CAA+C;gBAC5D,aAAa,EAAE,kBAAkB;gBACjC,eAAe,EAAE,QAAQ;aAC1B,CAAC,CAAC;SACJ;;;yIAjIU,iBAAiB;6IAAjB,iBAAiB;sHAAjB,iBAAiB;sBAD7B7B,aAAU;;;ICgCX;QAoBE,6BACU,cAA8B,EAC9B,iBAAoC,EACpC,eAAgC,EAChC,YAAkC,EAClC,iBAA2C,EAC3C,aAAgC,EAChC,aAAgC,EAChC,gBAAkC;YAR5C,iBAoCC;YAnCS,mBAAc,GAAd,cAAc,CAAgB;YAC9B,sBAAiB,GAAjB,iBAAiB,CAAmB;YACpC,oBAAe,GAAf,eAAe,CAAiB;YAChC,iBAAY,GAAZ,YAAY,CAAsB;YAClC,sBAAiB,GAAjB,iBAAiB,CAA0B;YAC3C,kBAAa,GAAb,aAAa,CAAmB;YAChC,kBAAa,GAAb,aAAa,CAAmB;YAChC,qBAAgB,GAAhB,gBAAgB,CAAkB;YAtBrC,mBAAc,GAAG,IAAIJ,oBAAe,CAAsB,EAAE,CAAC,CAAC;YAM9D,sBAAiB,GAAG,IAAIA,oBAAe,CAAC,KAAK,CAAC,CAAC;YAC/C,wBAAmB,GAAG,IAAIA,oBAAe,CAAC,KAAK,CAAC,CAAC;YAKhD,eAAU,GAAG,IAAID,YAAO,EAAQ,CAAC;YAYvC,IAAM,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;YAE1C,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;YACrB,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACzC,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC,UAAU,CAAC;YACxC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC;YAE9D,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC;YAChE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC,IAAI,CAACU,QAAG,CAAC,UAAA,OAAO,YAAI,OAAA,MAAA,OAAO,CAAC,UAAU,CAAC,MAAM,mCAAI,EAAE,CAAA,EAAA,CAAC,CAAC,CAAC;YACpG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC;YACxD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC,IAAI,CAACA,QAAG,CAAC,UAAA,SAAS,IAAI,OAAA,KAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,GAAA,CAAC,CAAC,CAAC;YACvG,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC;YACxE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC;YACtD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC;YAE5D,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC,IAAI,CAClDA,QAAG,CAAC,UAAA,GAAG,IAAI,OAAA,GAAG,CAAC,UAAU,CAAC,aAAa,GAAA,CAAC,EACxCc,yBAAoB,EAAE,EACtBd,QAAG,CAAC,UAAA,GAAG,IAAI,OAAA,KAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAA,CAAC,CACnC,CAAC;YAEF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC,IAAI,CAClDA,QAAG,CAAC,UAAA,GAAG,IAAI,OAAA,GAAG,CAAC,UAAU,CAAC,aAAa,GAAA,CAAC,EACxCc,yBAAoB,EAAE,EACtBd,QAAG,CAAC,UAAA,GAAG,IAAI,OAAA,KAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAA,CAAC,CACnC,CAAC;SACH;QAED,sCAAQ,GAAR;YACE,IAAI,CAAC,qBAAqB,EAAE,CAAC;SAC9B;QAED,yCAAW,GAAX;YACE,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;YACvB,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;SAC5B;QAED,sBAAW,8CAAa;iBAAxB;gBACE,OAAO,IAAI,CAAC,IAAI,KAAKyB,6BAAwB,CAAC,OAAO,CAAC;aACvD;;;WAAA;QAED,sBAAW,4CAAW;iBAAtB;gBACE,OAAO,IAAI,CAAC,IAAI,KAAKA,6BAAwB,CAAC,KAAK,CAAC;aACrD;;;WAAA;QAEM,mDAAqB,GAArB,UAAsB,WAAoB;YAA1C,iBAeN;YAdC,OAAO;gBACL;oBACE,KAAK,EAAE,eAAe;oBACtB,OAAO,EAAE;wBACP,KAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC;qBAC1C;iBACF;gBACD;oBACE,KAAK,EAAE,qBAAqB;oBAC5B,OAAO,EAAE;wBACP,KAAI,CAAC,wBAAwB,CAAC,WAAW,CAAC,CAAC;qBAC5C;iBACF;aACF,CAAC;SACH;QAEM,kCAAI,GAAJ,UAAK,QAAiB;YAC3B,IAAM,QAAQ,GAAG,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;YAEpE,IAAI,QAAQ,EAAE;gBACZ,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;aAC7C;SACF;QAEM,qDAAuB,GAAvB,UAAwB,QAAiB;YAC9C,IAAI,CAAC,QAAQ,EAAE;gBACb,OAAO,EAAE,CAAC;aACX;YAED,OAAU,MAAM,CAAC,QAAQ,CAAC,MAAM,SAAI,QAAU,CAAC;SAChD;QAEM,oDAAsB,GAAtB;YACL,IAAI,CAAC,aAAa,CAAC,sBAAsB,EAAE,CAAC;SAC7C;QAEM,+CAAiB,GAAjB;YACL,IAAI,CAAC,aAAa,CAAC,iBAAiB,EAAE,CAAC;SACxC;QAEM,sDAAwB,GAAxB,UAAyB,WAAoB;YAA7C,iBAmCN;YAlCC,IAAI,IAAI,CAAC,IAAI,KAAKA,6BAAwB,CAAC,OAAO,EAAE;gBAClD,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,EAAE;oBAC7C,IAAI,CAAC,aAAa,CAAC,0BAA0B,EAAE,CAAC,SAAS,EAAE,CAAC;iBAC7D;qBAAM;oBACL,IAAI,CAAC,aAAa,CAAC,qCAAqC,EAAE,CAAC,SAAS,EAAE,CAAC;iBACxE;gBACD,OAAO;aACR;YAED,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,EAAE;gBACxC,IAAI,CAAC,aAAa,CAAC,wBAAwB,EAAE,CAAC,SAAS,EAAE,CAAC;gBAC1D,OAAO;aACR;YAED,IAAI,CAAC,WAAW,EAAE;gBAChB,IAAI,CAAC,aAAa,CAAC,mCAAmC,EAAE,CAAC,SAAS,EAAE,CAAC;gBACrE,OAAO;aACR;YAED,IAAI,UAAU,GAAG1B,OAAE,CAAC,IAAI,CAAC,CAAC;YAE1B,IAAI,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,EAAE;gBAC5C,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,8BAA8B,EAAE,CAAC,IAAI,CACnEI,cAAS,CAAC,UAAA,SAAS,IAAI,QAAC,SAAS,GAAG,KAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAGJ,OAAE,CAAC,IAAI,CAAC,IAAC,CAAC,EACtEC,QAAG,CAAC,cAAM,OAAA,IAAI,GAAA,CAAC,CAChB,CAAC;aACH;YAED,UAAU;iBACP,IAAI,CACHJ,UAAK,EAAE,EACPH,QAAG,CAAC,cAAM,OAAA,KAAI,CAAC,gBAAgB,CAAC,QAAQ,CAACiC,qBAAgB,EAAE,CAAC,GAAA,CAAC,CAC9D;iBACA,SAAS,EAAE,CAAC;SAChB;QAEM,oDAAsB,GAAtB,UAAuB,WAAoB;YAChD,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,EAAE;gBACxC,IAAI,IAAI,CAAC,IAAI,KAAKD,6BAAwB,CAAC,KAAK,EAAE;oBAChD,IAAI,CAAC,aAAa,CAAC,2BAA2B,EAAE,CAAC,SAAS,EAAE,CAAC;iBAC9D;qBAAM;oBACL,IAAI,CAAC,aAAa,CAAC,sBAAsB,EAAE,CAAC,SAAS,EAAE,CAAC;iBACzD;gBACD,OAAO;aACR;YAED,IAAI,IAAI,CAAC,IAAI,KAAKA,6BAAwB,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,EAAE;gBAC/F,IAAI,CAAC,aAAa,CAAC,0BAA0B,EAAE,CAAC,SAAS,EAAE,CAAC;gBAC5D,OAAO;aACR;YAED,IAAI,CAAC,WAAW,EAAE;gBAChB,IAAI,CAAC,aAAa,CAAC,kCAAkC,EAAE,CAAC,SAAS,EAAE,CAAC;gBACpE,OAAO;aACR;YAED,IAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC;YAEvD,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;gBACrB,IAAI,CAAC,aAAa,CAAC,mBAAmB,EAAE,CAAC,SAAS,EAAE,CAAC;gBACrD,OAAO;aACR;YAED,IAAI,CAAC,UAAU,EAAE,CAAC,SAAS,EAAE,CAAC;SAC/B;QAEM,sDAAwB,GAAxB,UAAyB,WAAoB;YAA7C,iBAkCN;YAjCC,IAAI,IAAI,CAAC,IAAI,KAAKA,6BAAwB,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,EAAE;gBACxF,IAAI,CAAC,aAAa,CAAC,oCAAoC,EAAE,CAAC;gBAC1D,OAAO;aACR;YAED,IAAI,IAAI,CAAC,IAAI,KAAKA,6BAAwB,CAAC,OAAO,EAAE;gBAClD,IAAI,CAAC,aAAa,CAAC,8BAA8B,EAAE,CAAC;gBACpD,OAAO;aACR;YAED,IAAI,CAAC,WAAW,EAAE;gBAChB,IAAI,CAAC,aAAa,CAAC,+CAA+C,EAAE,CAAC,SAAS,EAAE,CAAC;gBACjF,OAAO;aACR;YAED,IAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC;YACrD,IAAI,CAAC,UAAU,EAAE;gBACf,OAAO;aACR;YAED,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEpC,IAAI,CAAC,eAAe;iBACjB,WAAW,CAAC,UAAU,CAAC;iBACvB,IAAI,CACHhC,QAAG,CAAC,UAAC,EAAW;oBAAT,OAAO,aAAA;gBACZ,KAAI,CAAC,iBAAiB,CAAC,iBAAiB,GAAG,KAAK,CAAC;gBACjD,KAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aACpB,CAAC,EACFkC,aAAQ,CAAC,cAAM,OAAA,KAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,GAAA,CAAC,EACpDjC,cAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAC3B;iBACA,SAAS,EAAE,CAAC;SAChB;QAEM,6CAAe,GAAf,UAAgB,WAAmB;YACxC,IAAI,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC;SAC3D;QAEO,wCAAU,GAAV,UAAW,UAAkB;YAA7B,iBAoBP;YApBkB,2BAAA,EAAA,kBAAkB;YACnC,IAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,4BAA4B,CAAC;YACvE,IAAI,CAAC,UAAU,EAAE;gBACf,OAAOK,OAAE,CAAC,SAAS,CAAC,CAAC;aACtB;YAED,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAElC,OAAO,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,IAAI,CACtDN,QAAG,CAAC,UAAC,EAAW;oBAAT,OAAO,aAAA;gBACZ,KAAI,CAAC,iBAAiB,CAAC,iBAAiB,GAAG,KAAK,CAAC;gBAEjD,IAAI,CAAC,UAAU,EAAE;oBACf,KAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;iBACpB;aACF,CAAC,EACFkC,aAAQ,CAAC,cAAM,OAAA,KAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,GAAA,CAAC,EAClD3B,QAAG,CAAC4B,SAAI,CAAC,EACTlC,cAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAC3B,CAAC;SACH;QAEO,wCAAU,GAAV,UAAW,UAAkB,EAAE,EAAW;YAChD,IAAI,CAAC,EAAE,EAAE;gBACP,OAAOK,OAAE,CAAC,EAAE,CAAC,CAAC;aACf;YAED,IAAM,aAAa,GAAkB;gBACnC,KAAK,EAAE,CAAC;gBACR,YAAY,EAAE,WAAS,EAAE,MAAG;gBAC5B,MAAM,EAAE,CAAC,MAAM,CAAC;aACjB,CAAC;YAEF,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAM,aAAa,EAAE,UAAU,CAAC,CAAC,IAAI,CACjEC,QAAG,CAAC,UAAA,MAAM,gBAAI,OAAA,MAAA,MAAA,MAAM,CAAC,CAAC,CAAC,0CAAE,IAAI,mCAAI,EAAE,CAAA,EAAA,CAAC,EACpCN,cAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAC3B,CAAC;SACH;QAEO,mDAAqB,GAArB;YAAA,iBA4BP;;YA3BC,IAAM,SAAS,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,iBAAiB,CAAC,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC;YACpG,IAAM,aAAa,GAAG,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC;YAC3D,IAAM,OAAO,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,EAAE,GAAG,SAAS,CAAC;YACzE,IAAM,SAAS,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,GAAG,SAAS,CAAC;YAC7E,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,MAAA,IAAI,CAAC,iBAAiB,CAAC,WAAW,0CAAE,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,SAAS,CAAC;YAE1G,IAAI,CAAC,cAAc,CAAC,IAAI,iCACnB,IAAI,CAAC,cAAc,CAAC,KAAK,KAC5B,SAAS,WAAA,EACT,aAAa,eAAA,EACb,OAAO,SAAA,EACP,SAAS,WAAA,EACT,WAAW,aAAA,IACX,CAAC;YAEH,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,SAAS,CAAC,UAAA,WAAW,IACzD,OAAA,KAAI,CAAC,cAAc,CAAC,IAAI,iCACnB,KAAI,CAAC,cAAc,CAAC,KAAK,KAC5B,WAAW,aAAA,IACX,GAAA,CACH,CAAC;YACF,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC,SAAS,CAAC,UAAA,eAAe,IACrE,OAAA,KAAI,CAAC,cAAc,CAAC,IAAI,iCACnB,KAAI,CAAC,cAAc,CAAC,KAAK,KAC5B,eAAe,iBAAA,IACf,GAAA,CACH,CAAC;SACH;QAEO,0CAAY,GAAZ,UAAa,KAAc;YACjC,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;SAC/C;QAEO,8CAAgB,GAAhB,UAAiB,SAAqB;YAAtC,iBAmCP;YAlCC,IAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;YACxB,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC1B,IAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YAE3B,OAAO,SAAS,CAAC,MAAM,CAAC,UAAC,MAAuB,EAAE,EAAE;;gBAElD,IAAI,EAAE,CAAC,cAAc,EAAE;oBACrB,OAAO,MAAM,CAAC;iBACf;;gBAGD,IAAI,MAAM,GAAyB,EAAE,CAAC;gBACtC,OAAO,MAAM,IAAI,MAAM,CAAC,OAAO,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,IAAI,GAAG,EAAE;oBAC5E,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,UAAA,GAAG,IAAI,OAAA,GAAG,CAAC,cAAc,KAAK,EAAE,CAAC,EAAE,GAAA,CAAC,CAAC;iBAC9D;gBAED,IAAI,MAAM,IAAI,MAAM,CAAC,SAAS,EAAE;oBAC9B,8CACK,MAAM;wBACT;4BACE,EAAE,EAAE,MAAM,CAAC,EAAE;4BACb,SAAS,EAAE,MAAM,CAAC,SAAS;4BAC3B,IAAI,EAAE,MAAM,CAAC,IAAI;4BACjB,YAAY,EAAE,MAAM,CAAC,UAAU,CAAC,eAAe,CAAC,KAAK,MAAM;4BAC3D,OAAO,EAAE,MAAM,CAAC,UAAU,KAAK,QAAQ;4BACvC,GAAG,EAAE,MAAM,CAAC,GAAG;4BACf,GAAG,EAAE,KAAI,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC;4BACvD,GAAG,EAAE,KAAI,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC;yBACxD;uBACD;iBACH;gBAED,OAAO,MAAM,CAAC;aACf,EAAE,EAAE,CAAC,CAAC;SACR;;;2IA3UU,mBAAmB;oHAAnB,mBAAmB,iECvChC,6zMAkKA;sHD3Ha,mBAAmB;sBAN/BT,YAAS;uBAAC;wBACT,QAAQ,EAAE,gBAAgB;wBAC1B,WAAW,EAAE,yBAAyB;wBACtC,SAAS,EAAE,CAAC,yBAAyB,CAAC;wBACtC,eAAe,EAAEC,0BAAuB,CAAC,MAAM;qBAChD;;;IEfD;QAAA;;;;wIAAa,gBAAgB;yIAAhB,gBAAgB,iBAZZ,mBAAmB,aAEhCC,eAAY;YACZmC,uBAAkB;YAClBC,qBAAkB;YAClBM,iBAAa;YACbzC,eAAY;YACZ,iBAAiB;YACjB0C,oBAAiB,aAET,mBAAmB;yIAElB,gBAAgB,YAXlB;gBACP3C,eAAY;gBACZmC,uBAAkB;gBAClBC,qBAAkB;gBAClBM,iBAAa;gBACbzC,eAAY;gBACZ,iBAAiB;gBACjB0C,oBAAiB;aAClB;sHAGU,gBAAgB;sBAb5BzC,WAAQ;uBAAC;wBACR,YAAY,EAAE,CAAC,mBAAmB,CAAC;wBACnC,OAAO,EAAE;4BACPF,eAAY;4BACZmC,uBAAkB;4BAClBC,qBAAkB;4BAClBM,iBAAa;4BACbzC,eAAY;4BACZ,iBAAiB;4BACjB0C,oBAAiB;yBAClB;wBACD,OAAO,EAAE,CAAC,mBAAmB,CAAC;qBAC/B;;;;QCXC,qBACU,gBAAkC,EAClC,iBAAoC,EACpC,iBAAoC,EACpC,oBAA0C,EAC1C,wBAAkD;YAJlD,qBAAgB,GAAhB,gBAAgB,CAAkB;YAClC,sBAAiB,GAAjB,iBAAiB,CAAmB;YACpC,sBAAiB,GAAjB,iBAAiB,CAAmB;YACpC,yBAAoB,GAApB,oBAAoB,CAAsB;YAC1C,6BAAwB,GAAxB,wBAAwB,CAA0B;YAPpD,aAAQ,GAAG,IAAIxC,YAAO,EAAQ,CAAC;SAQnC;QAEG,uCAAiB,GAAjB;YAAA,iBAgEN;YA/DC,IAAI,CAAC,gBAAgB;iBAClB,OAAO,CAA8CE,eAAU,CAAC,sBAAsB,CAAC;iBACvF,IAAI,CACHC,QAAG,CAAC,UAAA,OAAO;;gBACT,IAAM,SAAS,GACb,MAAA,OAAO,CAAC,SAAS,mCACjB,MAAA,KAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,IAAI,CAAC,UAAA,EAAE,IAAI,OAAA,EAAE,CAAC,EAAE,KAAK,OAAO,CAAC,UAAU,GAAA,CAAC,0CAAE,SAAS,CAAC;gBAE1F,IAAI,SAAS,EAAE;oBACb,KAAI,CAAC,iBAAiB,CAAC,8BAA8B,CAAC,SAAS,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;iBACtF;qBAAM;oBACL,OAAO,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;iBACxE;aACF,CAAC,EACFC,cAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CACzB;iBACA,SAAS,EAAE,CAAC;YAEf,IAAI,CAAC,gBAAgB;iBAClB,OAAO,CAACF,eAAU,CAAC,kBAAkB,CAAC;iBACtC,IAAI,CACHC,QAAG,CAAC,cAAM,OAAA,KAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,GAAA,CAAC,EAChDC,cAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CACzB;iBACA,SAAS,EAAE,CAAC;YAEf,IAAI,CAAC,gBAAgB;iBAClB,OAAO,CAACF,eAAU,CAAC,wBAAwB,CAAC;iBAC5C,IAAI,CACHC,QAAG,CAAC,cAAM,OAAA,KAAI,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,GAAA,CAAC,EACrDC,cAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CACzB;iBACA,SAAS,EAAE,CAAC;YAEf,IAAI,CAAC,gBAAgB;iBAClB,OAAO,CAACF,eAAU,CAAC,gCAAgC,CAAC;iBACpD,IAAI,CACHW,cAAS,CAAC;gBACR,IAAM,UAAU,GAAG,KAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC;gBACrD,IAAM,QAAQ,GAAG,KAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,CAAC;gBAEzD,IAAI,CAAC,UAAU,IAAI,CAAC,QAAQ,EAAE;oBAC5B,OAAOJ,OAAE,CAAC,SAAS,CAAC,CAAC;iBACtB;gBAED,IAAM,aAAa,GAAG,UAAU,CAAC,YAAY,CAAC,KAAK,CAAC,UAAA,EAAE,IAAI,OAAA,EAAE,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE,GAAA,CAAC,CAAC;gBAEjF,IAAI,YAAwB,CAAC;gBAC7B,IAAI,aAAa,EAAE;oBACjB,YAAY,0CAAO,UAAU,CAAC,YAAY,KAAE,QAAQ,EAAC,CAAC;iBACvD;qBAAM;oBACL,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,UAAA,EAAE,IAAI,QAAC,EAAE,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE,GAAG,QAAQ,GAAG,EAAE,IAAC,CAAC,CAAC;iBAC3F;gBAED,OAAO,KAAI,CAAC,wBAAwB,CAAC,UAAU,iCAAM,UAAU,KAAE,YAAY,EAAE,YAAY,IAAG,CAAC;aAChG,CAAC,EACFN,QAAG,CAAC;gBACF,KAAI,CAAC,oBAAoB,CAAC,iBAAiB,GAAG,KAAK,CAAC;gBACpD,KAAI,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,CAAC;aACjD,CAAC,EACFC,cAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CACzB;iBACA,SAAS,EAAE,CAAC;SAChB;QAEM,6BAAO,GAAP;YACL,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;SACtB;;;mIA/EU,WAAW;uIAAX,WAAW;sHAAX,WAAW;sBADvBC,aAAU;;;ICOX;QAKE,uBACU,aAAgC,EAChC,iBAAoC,EACpC,WAAwB,EACxB,aAAgC,EAChC,gBAAkC;YAL5C,iBAgBC;YAfS,kBAAa,GAAb,aAAa,CAAmB;YAChC,sBAAiB,GAAjB,iBAAiB,CAAmB;YACpC,gBAAW,GAAX,WAAW,CAAa;YACxB,kBAAa,GAAb,aAAa,CAAmB;YAChC,qBAAgB,GAAhB,gBAAgB,CAAkB;YAE1C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;YAE9C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAC/CK,QAAG,CAAC,UAAA,KAAK,IAAI,OAAA,KAAK,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,KAAI,CAAC,iBAAiB,CAAC,YAAY,GAAA,CAAC,CAC5E,CAAC;YAEF,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC;YAE1D,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC;SACtC;QAED,gCAAQ,GAAR;YACE,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;SAC/B;QAED,mCAAW,GAAX;YACE,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;YAC3B,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;SAC9B;;;qIA9BU,aAAa;8GAAb,aAAa,0DCd1B,4ZAaA;sHDCa,aAAa;sBANzBf,YAAS;uBAAC;wBACT,QAAQ,EAAE,SAAS;wBACnB,WAAW,EAAE,uBAAuB;wBACpC,SAAS,EAAE,CAAC,uBAAuB,CAAC;wBACpC,eAAe,EAAEC,0BAAuB,CAAC,MAAM;qBAChD;;;;QEDC,sBACU,MAAc,EACd,aAAgC,EAChC,cAA8B;YAF9B,WAAM,GAAN,MAAM,CAAQ;YACd,kBAAa,GAAb,aAAa,CAAmB;YAChC,mBAAc,GAAd,cAAc,CAAgB;SACpC;QAEG,sCAAe,GAAf,UAAgB,KAA6B;YAA7C,iBAyCN;;YAxCS,IAAA,WAAW,GAAK,KAAK,YAAV,CAAW;YACtB,IAAA,SAAS,GAAuB,WAAW,UAAlC,EAAE,OAAO,GAAc,WAAW,QAAzB,EAAE,OAAO,GAAK,WAAW,QAAhB,CAAiB;YACpD,IAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC;YACtC,IAAM,IAAI,GAAG,IAAI,CAAC,2BAA2B,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;;YAGvF,IAAI,IAAI,IAAI,IAAI,EAAE;gBAChB,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC;aACrD;YAED,IAAM,YAAY,GAAW,UAAU,KAAI,MAAA,MAAA,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,0CAAE,KAAK,0CAAE,EAAE,CAAA,CAAC;YAC7E,IAAM,QAAQ,GAAG,SAAS,IAAI,OAAO,IAAI,OAAO,IAAI,YAAY,IAAI,qBAAqB,CAAC;;YAG1F,IAAI,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE;gBACrC,IAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;gBAErD,IAAI,QAAQ,IAAI,cAAc,CAAC,QAAQ,KAAK,QAAQ,EAAE;oBACpD,OAAOa,OAAE,CAAC,IAAI,CAAC,CAAC;iBACjB;aACF;;YAGD,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,IAAI,CACpDN,QAAG,CAAC,UAAC,OAA6B;;gBAEhC,KAAI,CAAC,cAAc,CAAC,MAAM,iCACrB,OAAO,KACV,UAAU,kCACL,OAAO,CAAC,UAAU,IACjB,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,EAAE,MAEvB,CAAC;aACJ,CAAC,EACFO,QAAG,CAAC,cAAM,OAAA,IAAI,GAAA,CAAC,EACfH,eAAU,CAAC,UAAA,CAAC;gBACV,IAAM,OAAO,GAAG,CAAC,YAAYkC,sBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC;gBACrE,OAAO,KAAI,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;aACzC,CAAC,CACH,CAAC;SACH;QAEM,kCAAW,GAAX,UAAY,KAA6B;YAC9C,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;SACpC;QAEM,uCAAgB,GAAhB,UAAiB,UAAkC;YACxD,OAAO,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;SACzC;QAEO,kDAA2B,GAA3B,UACN,SAAkB,EAClB,OAAgB,EAChB,OAAgB,EAChB,UAAmB;YAEnB,IAAI,SAAS,EAAE;gBACb,OAAON,6BAAwB,CAAC,OAAO,CAAC;aACzC;YAED,IAAI,OAAO,EAAE;gBACX,OAAOA,6BAAwB,CAAC,KAAK,CAAC;aACvC;YAED,IAAI,OAAO,EAAE;gBACX,OAAOA,6BAAwB,CAAC,KAAK,CAAC;aACvC;YAED,IAAI,UAAU,EAAE;gBACd,OAAOA,6BAAwB,CAAC,MAAM,CAAC;aACxC;YAED,OAAO;SACR;QAEO,kCAAW,GAAX,UAAY,KAA6B,EAAE,OAAe;YAChE,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;YAC7B,IAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAC5D,OAAOO,SAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,OAAO,SAAA,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAChC,QAAG,CAAC,cAAM,OAAA,KAAK,GAAA,CAAC,CAAC,CAAC;SACtG;;;oIAvFU,YAAY;wIAAZ,YAAY;sHAAZ,YAAY;sBADxBL,aAAU;;;ICHX;QACE,4BACU,MAAc,EACd,cAA8B,EAC9B,iBAAoC,EACpC,oBAA0C,EAC1C,iBAAoC;YAJpC,WAAM,GAAN,MAAM,CAAQ;YACd,mBAAc,GAAd,cAAc,CAAgB;YAC9B,sBAAiB,GAAjB,iBAAiB,CAAmB;YACpC,yBAAoB,GAApB,oBAAoB,CAAsB;YAC1C,sBAAiB,GAAjB,iBAAiB,CAAmB;SAC1C;QAEJ,0CAAa,GAAb,UACE,CAAY,EACZ,KAA6B,EAC7B,YAAiC,EACjC,SAA+B;YAJjC,iBAmCC;YA7BC,IAAI,UAAU,GAAGI,OAAE,CAAC,IAAI,CAAC,CAAC;YAE1B,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,YAAY,IAAI,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,EAAE;gBACvF,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,wBAAwB,EAAE,CAAC,IAAI,CAACC,QAAG,CAAC,UAAA,SAAS,IAAI,OAAA,CAAC,SAAS,GAAA,CAAC,CAAC,CAAC;aACnG;YAED,OAAO,UAAU,CAAC,IAAI,CACpBA,QAAG,CAAC,UAAA,MAAM;gBACR,IAAI,MAAM,EAAE;oBACV,KAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,CAAC;oBAClC,KAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;oBAE5F,IAAI,CAAC,SAAS,IAAI,YAAY,CAAC,GAAG,KAAK,SAAS,CAAC,GAAG,EAAE;wBACpD,OAAO,IAAI,CAAC;qBACb;;oBAGD,IAAM,SAAO,GAAG,KAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;oBACpD,OAAO,SAAO,CAAC,WAAW,CAAC,SAAS,CAAC;;oBAGrC,UAAU,CAAC,cAAM,OAAA,KAAI,CAAC,MAAM,CAAC,aAAa,CAAC,SAAO,CAAC,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,GAAA,CAAC,CAAC;oBAEtF,OAAO,IAAI,CAAC;iBACb;gBAED,OAAO,KAAK,CAAC;aACd,CAAC,CACH,CAAC;SACH;;;0IA5CU,kBAAkB;8IAAlB,kBAAkB;sHAAlB,kBAAkB;sBAD9BL,aAAU;;;ICAX;QAIE,mBAAoB,MAAc,EAAU,aAAgC;YAAxD,WAAM,GAAN,MAAM,CAAQ;YAAU,kBAAa,GAAb,aAAa,CAAmB;YAHpE,gBAAW,GAAG,KAAK,CAAC;YACpB,iBAAY,GAAsB,IAAI,CAAC;SAEiC;QAEhF,+BAAW,GAAX,UAAY,KAA6B;YAAzC,iBAmBC;;;YAhBC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;gBACrB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;gBACxB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE,CAAC;gBAEvD,IAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;gBAC1D,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,UAAU,EAAE,EAAC,MAAA,IAAI,CAAC,YAAY,0CAAE,kBAAkB,CAAA,EAAE,CAAC,CAAC;aACzF;iBAAM,IAAI,IAAI,CAAC,YAAY,EAAE;gBAC5B,IAAM,KAAG,GAAG,IAAI,CAAC,YAAY,CAAC;gBAC9B,UAAU,CAAC;oBACT,KAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAG,CAAC,YAAY,EAAE,KAAG,CAAC,MAAM,CAAC,CAAC;oBAExD,KAAI,CAAC,YAAY,GAAG,IAAI,CAAC;iBAC1B,CAAC,CAAC;aACJ;YAED,OAAO,IAAI,CAAC;SACb;QAED,iCAAa,GAAb;YACE,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;YACzB,OAAO,IAAI,CAAC;SACb;;;iIA9BU,SAAS;qIAAT,SAAS,cADI,MAAM;sHACnB,SAAS;sBADrBA,aAAU;uBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;QCArB,kBAAkB,GAAG,IAAIsC,iBAAc,CAAoB,oBAAoB;;IC4B5F;QAOE,0BACU,YAAmC,EACnC,cAA8B,EAC9B,GAAsB,EACtB,YAA0B,EACc,oBAAwC;;YAJhF,iBAAY,GAAZ,YAAY,CAAuB;YACnC,mBAAc,GAAd,cAAc,CAAgB;YAC9B,QAAG,GAAH,GAAG,CAAmB;YACtB,iBAAY,GAAZ,YAAY,CAAc;YACc,yBAAoB,GAApB,oBAAoB,CAAoB;YAXnF,iBAAY,GAAkB,SAAS,CAAC;YACxC,WAAM,GAAG,IAAI1C,oBAAe,CAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;YAEtE,oBAAe,GAAG,EAAE,CAAC;YACrB,eAAU,GAAG,IAAID,YAAO,EAAQ,CAAC;YASvC,IAAI,CAAC,eAAe,GAAG,MAAA,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC,UAAU,CAAC,sBAAsB,mCAAI,EAAE,CAAC;SAC9F;QAED,mCAAQ,GAAR;YAAA,iBAsBC;YArBC,IAAI,CAAC,qBAAqB,EAAE;iBACzB,IAAI,CACHG,QAAG,CAAC,UAAA,KAAK;gBACP,IAAI,CAAC,KAAK,EAAE;oBACV,MAAM,IAAI,KAAK,CAAC,0BAAwB,KAAI,CAAC,eAAe,iBAAc,CAAC,CAAC;iBAC7E;gBAED,KAAI,CAAC,YAAY,GAAG,KAAK,CAAC;gBAC1B,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;aACtD,CAAC,EACFI,eAAU,CAAC,UAAA,GAAG;;gBACZ,IAAM,OAAO,GAAG,uCAAuC,IAAI,MAAA,GAAG,CAAC,OAAO,mCAAI,EAAE,CAAC,CAAC;gBAC9E,KAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAEC,YAAS,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;gBAErF,KAAI,CAAC,YAAY,GAAG,SAAS,CAAC;gBAC9B,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;gBACpD,OAAOC,OAAE,EAAE,CAAC;aACb,CAAC,EACFL,cAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAC3B;iBACA,SAAS,CAAC,cAAM,OAAA,KAAI,CAAC,GAAG,CAAC,aAAa,EAAE,GAAA,CAAC,CAAC;SAC9C;QAED,sCAAW,GAAX;YACE,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;YACvB,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;SAC5B;QAEO,oDAAyB,GAAzB,UAA0B,QAAoB;YACpD,OAAO,IAAI,CAAC,YAAY;iBACrB,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC;iBAC7B,IAAI,CAACM,QAAG,CAAC,UAAA,UAAU,YAAI,OAAA,MAAA,UAAU,CAAC,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,IAAI,KAAKC,4BAAuB,CAAC,IAAI,GAAA,CAAC,mCAAI,SAAS,CAAA,EAAA,CAAC,CAAC,CAAC;SACxG;QAEO,wDAA6B,GAA7B;;YACN,IAAI,EAAC,MAAA,IAAI,CAAC,oBAAoB,0CAAE,mBAAmB,CAAA,EAAE;gBACnD,OAAOF,OAAE,CAAC,SAAS,CAAC,CAAC;aACtB;YAED,OAAO,MAAA,IAAI,CAAC,oBAAoB,0CAAE,mBAAmB,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAC9EC,QAAG,CAAC,UAAA,SAAS;gBACX,IAAI,CAAC,SAAS,EAAE;oBACd,OAAO;iBACR;gBAED,OAA6B;oBAC3B,IAAI,EAAE,SAAS,CAAC,IAAI;oBACpB,GAAG,EAAE,SAAS,CAAC,GAAG;oBAClB,EAAE,EAAE,SAAS,CAAC,EAAE;oBAChB,IAAI,EAAE,SAAS,CAAC,IAAI;iBACrB,CAAC;aACH,CAAC,CACH,CAAC;SACH;QAEO,mDAAwB,GAAxB;YAAA,iBAUP;YATC,OAAO,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,CAAC,IAAI,CAC7CA,QAAG,CAAuC,UAAA,SAAS,IACjD,OAAA,SAAS,CAAC,IAAI,CAAC,UAAA,QAAQ,IAAI,OAAA,QAAQ,CAAC,IAAI,KAAKE,mBAAc,CAAC,OAAO,IAAI,QAAQ,CAAC,IAAI,KAAK,KAAI,CAAC,eAAe,GAAA,CAAC,GAAA,CAC/G,EACDC,cAAS,CAAC,UAAA,QAAQ,IAAI,QAAC,QAAQ,GAAG,KAAI,CAAC,yBAAyB,CAAC,QAAQ,CAAC,GAAGJ,OAAE,CAAC,SAAS,CAAC,IAAC,CAAC,EAC5FI,cAAS,CAAC,UAAA,SAAS,IACjB,OAAA,SAAS,GAAG,KAAI,CAAC,YAAY,CAAC,0BAA0B,CAAC,SAAS,CAAC,YAAY,EAAE,SAAS,CAAC,GAAGJ,OAAE,CAAC,SAAS,CAAC,GAAA,CAC5G,CACF,CAAC;SACH;QAEO,gDAAqB,GAArB;YAAA,iBAiCP;YAhCC,OAAOA,OAAE,CAAC,SAAS,CAAC,CAAC,IAAI,CACvBN,QAAG,CAAC;gBACF,IAAI,CAAC,KAAI,CAAC,eAAe,EAAE;oBACzB,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;iBAC9E;aACF,CAAC,EACFU,cAAS,CAAC,cAAM,OAAA,KAAI,CAAC,6BAA6B,EAAE,GAAA,CAAC,EACrDA,cAAS,CAAC,UAAA,IAAI,IAAI,QAAC,IAAI,GAAGJ,OAAE,CAAC,IAAI,CAAC,GAAG,KAAI,CAAC,wBAAwB,EAAE,IAAC,CAAC,EACtEC,QAAG,CAAC,UAAA,IAAI;gBACN,IAAI,CAAC,IAAI,EAAE;oBACT,OAAO;iBACR;gBAED,IAAM,KAAK,GAAiB;oBAC1B,IAAI,EAAE,EAAE;oBACR,gBAAgB,EAAE,CAAC;oBACnB,OAAO,EAAE,IAAI;oBACb,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,CAAC;oBACV,QAAQ,EAAE;wBACR;4BACE,QAAQ,EAAE,EAAE;4BACZ,QAAQ,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;4BACtC,MAAM,EAAE,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;4BAChC,MAAM,EAAE,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;yBACnC;qBACF;iBACF,CAAC;gBAEF,OAAO,KAAK,CAAC;aACd,CAAC,CACH,CAAC;SACH;;;wIAtHU,gBAAgB,kMAYL,kBAAkB;iHAZ7B,gBAAgB,kECjC7B,wVASA;sHDwBa,gBAAgB;sBAN5Bf,YAAS;uBAAC;wBACT,QAAQ,EAAE,iBAAiB;wBAC3B,WAAW,EAAE,0BAA0B;wBACvC,SAAS,EAAE,CAAC,0BAA0B,CAAC;wBACvC,eAAe,EAAEC,0BAAuB,CAAC,MAAM;qBAChD;;;kCAaIgD,WAAQ;;kCAAIC,SAAM;mCAAC,kBAAkB;;;;IElC1C;QAAA;;;;qIAAa,aAAa;sIAAb,aAAa,iBAJT,gBAAgB,aACrBhD,eAAY,EAAEmB,kBAAa,EAAE8B,eAAY,aACzC,gBAAgB;sIAEf,aAAa,YAHf,CAACjD,eAAY,EAAEmB,kBAAa,EAAE8B,eAAY,CAAC;sHAGzC,aAAa;sBALzB/C,WAAQ;uBAAC;wBACR,YAAY,EAAE,CAAC,gBAAgB,CAAC;wBAChC,OAAO,EAAE,CAACF,eAAY,EAAEmB,kBAAa,EAAE8B,eAAY,CAAC;wBACpD,OAAO,EAAE,CAAC,gBAAgB,CAAC;qBAC5B;;;QCVY,2BAA2B,GAAG,UAAC,UAAmB;QAC7D,QAAQ,UAAU;YAChB,KAAK,SAAS;gBACZ,OAAO,WAAW,CAAC;YACrB,KAAK,OAAO;gBACV,OAAO,SAAS,CAAC;YACnB,KAAK,OAAO,CAAC;YACb;gBACE,OAAO,SAAS,CAAC;SACpB;IACH;;ICSA;QAUE,wBACU,eAAgC,EAChC,MAAc,EACd,cAA8B,EAC9B,OAAuB,EACvB,iBAA2C,EAC3C,iBAAoC;YALpC,oBAAe,GAAf,eAAe,CAAiB;YAChC,WAAM,GAAN,MAAM,CAAQ;YACd,mBAAc,GAAd,cAAc,CAAgB;YAC9B,YAAO,GAAP,OAAO,CAAgB;YACvB,sBAAiB,GAAjB,iBAAiB,CAA0B;YAC3C,sBAAiB,GAAjB,iBAAiB,CAAmB;YAf9B,gBAAW,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YACrD,SAAI,GAAG,IAAIrB,YAAS,CAAC;gBAC1B,EAAE,EAAE,IAAIE,cAAW,CAAC,EAAE,CAAC;gBACvB,IAAI,EAAE,IAAIA,cAAW,CAAC,OAAO,CAAC;aAC/B,CAAC,CAAC;YAaD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,IAAI,CAClDjB,QAAG,CAAC,UAAA,KAAK,IACP,OAAA,KAAK,CAAC,GAAG,CAAoB,UAAA,IAAI;;gBAC/B,IAAM,WAAW,GAAW,MAAA,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,UAAU,0CAAE,WAAW,mCAAI,EAAE,CAAC;gBAChE,OAAO;oBACL,EAAE,EAAE,IAAI,CAAC,EAAE;oBACX,SAAS,EAAE,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,UAAU,0CAAE,SAAS;oBACtC,WAAW,aAAA;oBACX,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;iBAC5C,CAAC;aACH,CAAC,GAAA,CACH,EACDS,gBAAW,EAAE,CACd,CAAC;SACH;QAED,gCAAO,GAAP;;YACQ,IAAA,KAAe,IAAI,CAAC,IAAI,CAAC,KAAK,EAA5B,EAAE,QAAA,EAAE,IAAI,UAAoB,CAAC;YACrC,IAAM,kBAAkB,GAAG,2BAA2B,CAAC,IAAI,CAAC,CAAC;YAE7D,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;gBAC7B,OAAO;aACR;;YAGD,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACtB,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;YAE/B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE;gBACpC,WAAW,wBACT,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE,IAC5B,GAAC,kBAAkB,IAAG,EAAE,OACrB,IAAI,CAAC,YAAY,CAAC,WAAW,CACjC;gBACD,UAAU,EAAE,IAAI,CAAC,cAAc;aAChC,CAAC,CAAC;SACJ;;;sIAtDU,cAAc;+GAAd,cAAc,gECnB3B,urCA4CA;sHDzBa,cAAc;sBAN1BxB,YAAS;uBAAC;wBACT,QAAQ,EAAE,eAAe;wBACzB,WAAW,EAAE,wBAAwB;wBACrC,SAAS,EAAE,CAAC,wBAAwB,CAAC;wBACrC,eAAe,EAAEC,0BAAuB,CAAC,MAAM;qBAChD;;;IERD,IAAMmD,QAAM,GAAW,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,CAAC;IAejE;QAAA;;;;mIAAa,WAAW;oIAAX,WAAW,iBAZP,cAAc,aAE3BlD,eAAY;YACZmD,cAAW;YACXjB,sBAAmB,gCAEnBkB,oBAAiB;YACjBnD,eAAY;YACZoD,kBAAe;YACfC,iBAAc;oIAGL,WAAW,YAXb;gBACPtD,eAAY;gBACZmD,cAAW;gBACXjB,sBAAmB;gBACnBqB,iBAAY,CAAC,QAAQ,CAACL,QAAM,CAAC;gBAC7BE,oBAAiB;gBACjBnD,eAAY;gBACZoD,kBAAe;gBACfC,iBAAc;aACf;sHAEU,WAAW;sBAbvBpD,WAAQ;uBAAC;wBACR,YAAY,EAAE,CAAC,cAAc,CAAC;wBAC9B,OAAO,EAAE;4BACPF,eAAY;4BACZmD,cAAW;4BACXjB,sBAAmB;4BACnBqB,iBAAY,CAAC,QAAQ,CAACL,QAAM,CAAC;4BAC7BE,oBAAiB;4BACjBnD,eAAY;4BACZoD,kBAAe;4BACfC,iBAAc;yBACf;qBACF;;;ICDD;QAKE,gCACU,KAAqB,EACrB,iBAAoC,EACpC,eAAgC,EAChC,cAA8B,EAC9B,qBAA4C,EAC5C,cAA8B,EAC9B,mBAAwC,EACA,oBAAwC;YAPhF,UAAK,GAAL,KAAK,CAAgB;YACrB,sBAAiB,GAAjB,iBAAiB,CAAmB;YACpC,oBAAe,GAAf,eAAe,CAAiB;YAChC,mBAAc,GAAd,cAAc,CAAgB;YAC9B,0BAAqB,GAArB,qBAAqB,CAAuB;YAC5C,mBAAc,GAAd,cAAc,CAAgB;YAC9B,wBAAmB,GAAnB,mBAAmB,CAAqB;YACA,yBAAoB,GAApB,oBAAoB,CAAoB;YAZlF,eAAU,GAAG,IAAInD,YAAO,EAAQ,CAAC;SAarC;QAEJ,yCAAQ,GAAR;YAAA,iBAUC;YATC,IAAI,CAAC,iBAAiB,CAAC,WAAW;iBAC/B,IAAI,CAACM,eAAK,EAAE,EAAEF,mBAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;iBACzC,SAAS,CAAC,UAAA,KAAK,IAAI,OAAA,KAAI,CAAC,IAAI,CAAC,KAAK,EAAE,KAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAA,CAAC,CAAC;YAEzE,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,IAAI,CAACiD,cAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAA,QAAQ,IAAI,OAAA,KAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAA,CAAC,CAAC;YAE3G,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC,IAAI,CAACA,cAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAA,KAAK,IAAI,OAAA,KAAI,CAAC,eAAe,CAAC,KAAK,CAAC,GAAA,CAAC,CAAC;YAEvG,IAAI,CAAC,cAAc,CAAC,qBAAqB,CAAC,IAAI,CAACA,cAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,cAAM,OAAA,KAAI,CAAC,gBAAgB,EAAE,GAAA,CAAC,CAAC;SAClG;QAED,4CAAW,GAAX;YACE,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;YACvB,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;SAC5B;QAED,gDAAe,GAAf,UAAgB,QAAkB;;YAChC,QAAQ,CAAC,UAAU,GAAG,MAAA,QAAQ,CAAC,UAAU,mCAAI,KAAK,CAAC;SACpD;QAED,iDAAgB,GAAhB;YACE,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,IAAI,CAAC/C,eAAK,EAAE,EAAEF,mBAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,UAAA,KAAK;gBAC1F,MAAM,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;aACrD,CAAC,CAAC;SACJ;QAED,kDAAiB,GAAjB,UAAkB,QAAkB;YAClC,IAAM,MAAM,GAAgB;gBAC1B,gBAAgB,EAAE,QAAQ;gBAC1B,YAAY,EAAE,IAAI,CAAC,mBAAmB,CAAC,YAAY;gBACnD,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;aAC/B,CAAC;YAEF,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;SAC3C;QAED,+CAAc,GAAd,UAAe,QAAkB;YAAjC,iBAeC;YAdC,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,IAAI,CAACE,eAAK,EAAE,EAAEF,mBAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,UAAA,KAAK;gBAC1F,IAAM,aAAa,mCACd,KAAK,KACR,OAAO,EAAE,KAAI,CAAC,cAAc,CAAC,OAAO,EAAE,EACtC,YAAY,yCAAM,CAAC,KAAI,CAAC,mBAAmB,CAAC,YAAY,IAAI,EAAE,EAAE,MAAM,CAAC,UAAA,EAAE,IAAI,OAAA,EAAE,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE,GAAA,CAAC,KAAE,QAAQ,EAAC,GAC/G,CAAC;gBAEF,KAAI,CAAC,eAAe;qBACjB,WAAW,CAAC,aAAa,CAAC;qBAC1B,IAAI,CAACiD,cAAI,CAAC,CAAC,CAAC,CAAC;qBACb,SAAS,CAAC,UAAA,KAAK;oBACd,MAAM,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;iBACrD,CAAC,CAAC;aACN,CAAC,CAAC;SACJ;QAEO,qCAAI,GAAJ,UAAK,KAAiB,EAAE,WAAmB;YACjD,IAAM,SAAS,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;YAC3C,IAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;YAC1D,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,YAAY,CAAC;YAEjC,UAAU,IAAI,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,KAAK,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;SACjH;QAEO,8CAAa,GAAb,UAAc,KAAiB,EAAE,WAAmB;YAC1D,IAAIC,eAAU,CAAC,SAAS,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,EAAE;gBACnD,OAAO,WAAW,CAAC,YAAY,CAAC,CAAC;aAClC;YAED,OAAO,KAAK,CAAC,YAAY;iBACtB,MAAM,CAAC,UAAA,QAAQ,IAAI,OAAA,QAAQ,CAAC,SAAS,KAAK,WAAW,CAAC,WAAW,CAAC,GAAA,CAAC;iBACnE,GAAG,CAAC,UAAA,QAAQ,IAAI,OAAA,QAAQ,CAAC,EAAE,GAAA,CAAC;iBAC5B,IAAI,CAAC,UAAA,EAAE,IAAI,OAAA,EAAE,GAAA,CAAC,CAAC;SACnB;QAEO,0CAAS,GAAT,UAAU,SAAiB;YACjC,IAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,EAAE,EAAEC,qBAAgB,CAAC,IAAI,CAAC,CAAC;YAEpF,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC;SACvC;QAEO,4CAAW,GAAX,UAAY,UAAkB,EAAE,YAAwB;YAC9D,IAAM,gBAAgB,GAAGD,eAAU,CAAC,QAAQ,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;YACvE,IAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAC3C,gBAAgB,CAAC,SAAS,EAC1B,gBAAgB,CAAC,UAAU,EAC3BC,qBAAgB,CAAC,MAAM,CACxB,CAAC;YAEF,IAAM,MAAM,GAAgB;gBAC1B,gBAAgB,EAAE,gBAAgB;gBAClC,YAAY,cAAA;gBACZ,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC;aACvC,CAAC;YAEF,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YAC9C,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;SAC3C;QAEO,yCAAQ,GAAR,UAAS,QAAkB;YACjC,OAAO,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,mBAAmB,IAAI,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,OAAO,GAAA,CAAC,CAAC;SACjH;QAEO,6CAAY,GAAZ,UAAa,MAAmB,EAAE,eAAiD;YAAnF,iBASP;YARC,eAAe;iBACZ,IAAI,CACHF,cAAI,CAAC,CAAC,CAAC,EACP3C,aAAG,CAAC,UAAA,cAAc;gBAChB,KAAI,CAAC,cAAc,CAAC,YAAY,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;aAC1D,CAAC,CACH;iBACA,SAAS,EAAE,CAAC;SAChB;QAEO,iDAAgB,GAAhB,UAAiB,SAAiB,EAAE,OAA6B;;YACvE,IAAI,EAAC,MAAA,IAAI,CAAC,oBAAoB,0CAAE,qBAAqB,CAAA,EAAE;gBACrD,OAAOD,OAAE,CAAC,OAAO,CAAC,CAAC;aACpB;YAED,OAAO,IAAI,CAAC,oBAAoB,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC,IAAI,CACpEC,aAAG,CAAC,UAAA,KAAK,IAAI,wCACR,OAAO,KACV,YAAY,EAAE,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,OAAO,CAAC,YAAY,OAC3C,CAAC,CACJ,CAAC;SACH;QAEO,kDAAiB,GAAjB,UACN,SAAiB,EACjB,UAAkB,EAClB,gBAAkC;YAH5B,iBAYP;YAPC,OAAO,IAAI,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,IAAI,CAC7EA,aAAG,CAAC,UAAA,cAAc;gBAChB,cAAc,CAAC,iBAAiB,GAAG,EAAE,gBAAgB,EAAE6C,qBAAgB,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBAC5F,OAAO,cAAc,CAAC;aACvB,CAAC,EACF1C,mBAAS,CAAC,UAAA,cAAc,IAAI,OAAA,KAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,cAAc,CAAC,GAAA,CAAC,CAC9E,CAAC;SACH;;;8IAzJU,sBAAsB,+UAaX,kBAAkB;uHAb7B,sBAAsB,+DCvBnC,0FACA;sHDsBa,sBAAsB;sBAJlClB,YAAS;uBAAC;wBACT,WAAW,EAAE,iCAAiC;wBAC9C,SAAS,EAAE,CAAC,iCAAiC,CAAC;qBAC/C;;;kCAcIiD,WAAQ;;kCAAIC,SAAM;mCAAC,kBAAkB;;;;IEzB1C;QAAA;;;;2IAAa,mBAAmB;4IAAnB,mBAAmB,iBAJf,sBAAsB,aAC3BhD,eAAY,EAAE2D,kBAAa,4CAC3B,sBAAsB;4IAErB,mBAAmB,YAHrB,CAAC3D,eAAY,EAAE2D,kBAAa,EAAEjB,kBAAa,CAAC,OAAO,EAAE,CAAC;sHAGpD,mBAAmB;sBAL/BxC,WAAQ;uBAAC;wBACR,YAAY,EAAE,CAAC,sBAAsB,CAAC;wBACtC,OAAO,EAAE,CAACF,eAAY,EAAE2D,kBAAa,EAAEjB,kBAAa,CAAC,OAAO,EAAE,CAAC;wBAC/D,OAAO,EAAE,CAAC,sBAAsB,CAAC;qBAClC;;;ICyBD;QAME,0BACU,cAA8B,EAC9B,cAA2C,EAC3C,oBAA0C,EAC1C,iBAAoC,EACpC,cAA8B,EACU,oBAAwC;YALhF,mBAAc,GAAd,cAAc,CAAgB;YAC9B,mBAAc,GAAd,cAAc,CAA6B;YAC3C,yBAAoB,GAApB,oBAAoB,CAAsB;YAC1C,sBAAiB,GAAjB,iBAAiB,CAAmB;YACpC,mBAAc,GAAd,cAAc,CAAgB;YACU,yBAAoB,GAApB,oBAAoB,CAAoB;YAXlF,aAAQ,GAAG,IAAIvC,YAAO,EAAQ,CAAC;YAGhC,WAAM,GAAG,IAAIC,oBAAe,CAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;SAS1E;QAEJ,mCAAQ,GAAR;YAAA,iBAEC;YADC,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,IAAI,CAACK,UAAK,EAAE,EAAEF,cAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,UAAA,KAAK,IAAI,OAAA,KAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAA,CAAC,CAAC;SACjH;QAED,sCAAW,GAAX;YACE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACrB,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;SAC1B;QAEO,oCAAS,GAAT,UAAU,SAAiB;YAA3B,iBAaP;;YAZC,IAAI,EAAC,MAAA,IAAI,CAAC,oBAAoB,0CAAE,eAAe,CAAA,EAAE;gBAC/C,OAAOK,OAAE,CAAC,IAAI,CAAC,CAAC;aACjB;YAED,OAAO,IAAI,CAAC,oBAAoB,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,IAAI,CAC9DN,QAAG,CAAC,UAAA,KAAK;;gBACP,IAAI,KAAK,EAAE;oBACT,KAAI,CAAC,YAAY,GAAG,KAAK,CAAC;oBAC1B,KAAI,CAAC,cAAc,CAAC,sBAAsB,GAAG,MAAA,KAAK,CAAC,UAAU,mCAAI,EAAE,CAAC;iBACrE;aACF,CAAC,CACH,CAAC;SACH;QAEO,+BAAI,GAAJ,UAAK,KAAiB;YAAtB,iBAwCP;YAvCC,IAAM,iBAAiB,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC,UAAU,CAAC;YACnE,IAAM,SAAS,GAAG,iBAAiB,CAAC,SAAS,CAAC;YAE9C,IAAI,CAAC,SAAS,EAAE;gBACd,OAAO;aACR;YAED,IAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE,iBAAiB,CAAC,UAAU,CAAC,CAAC;YACtF,IAAM,gBAAgB,GAAG,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,UAAC,EAAM;oBAAJ,EAAE,QAAA;gBAAO,OAAA,EAAE,KAAK,UAAU;aAAA,CAAC,CAAC;YAEhF,IAAI,gBAAgB,EAAE;gBACpB,IAAI,CAAC,oBAAoB,CAAC,mBAAmB,CAAC;oBAC5C,gBAAgB,EAAE,gBAAgB;oBAClC,YAAY,EAAE,KAAK,CAAC,YAAY;oBAChC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;iBAC9C,CAAC,CAAC;aACJ;YAEO,IAAA,UAAU,GAAK,CAAA,gBAAgB,aAAhB,gBAAgB,cAAhB,gBAAgB,GAAI,EAAE,YAA3B,CAA4B;YAE9C,IAAI,CAAC,cAAc;iBAChB,IAAI,CAAC,EAAE,SAAS,WAAA,EAAE,UAAU,YAAA,EAAE,CAAC;iBAC/B,IAAI,CACHA,QAAG,CAAC,UAAA,OAAO,IAAI,QAAC,KAAI,CAAC,YAAY,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,YAAY,IAAC,CAAC,EAC3DU,cAAS,CAAC,cAAM,OAAA,KAAI,CAAC,SAAS,CAAC,SAAS,CAAC,GAAA,CAAC,EAC1C,IAAI,CAAC,qBAAqB,EAAE,EAC5BA,cAAS,CAAC,cAAM,OAAA,KAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE,GAAA,CAAC,EACtDV,QAAG,CAAC,cAAM,OAAA,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,GAAA,CAAC,EAC/DI,eAAU,CAAC,UAAA,KAAK;;gBACd,IAAI,EAAC,MAAA,MAAA,KAAI,CAAC,YAAY,0CAAE,UAAU,0CAAE,qBAAqB,CAAA,EAAE;oBACzD,KAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;iBAChE;gBAED,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;gBACpD,OAAOE,OAAE,EAAE,CAAC;aACb,CAAC,EACFL,cAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CACzB;iBACA,SAAS,EAAE,CAAC;SAChB;QAEO,gDAAqB,GAArB;YAAA,iBAYP;YAXC,OAAO,UAAI,OAAsB;gBAC/B,OAAO,OAAO,CAAC,IAAI,CACjBS,cAAS,CAAC;oBACR,IAAI,CAAC,KAAI,CAAC,YAAY,EAAE;wBACtB,OAAO4C,eAAU,CAAC,cAAM,OAAA,wCAAwC,GAAA,CAAC,CAAC;qBACnE;oBAED,OAAO,OAAO,CAAC;iBAChB,CAAC,CACH,CAAC;aACH,CAAC;SACH;QAEO,wCAAa,GAAb,UAAc,KAAiB,EAAE,SAAiB,EAAE,UAAmB;;;YAE7E,IAAI,EAAE,GAAuB,MAAA,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,UAAA,EAAE,IAAI,OAAA,EAAE,CAAC,EAAE,KAAK,UAAU,GAAA,CAAC,0CAAE,EAAE,CAAC;YAErF,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE;gBAC9C,EAAE,GAAG,MAAA,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,UAAA,EAAE,IAAI,OAAA,EAAE,CAAC,SAAS,KAAK,SAAS,GAAA,CAAC,0CAAE,EAAE,CAAC;aACpE;YAED,OAAO,EAAE,CAAC;SACX;QAEO,mCAAQ,GAAR,UAAS,KAAiB,EAAE,QAAkB;YACpD,OAAO,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,mBAAmB,IAAI,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,OAAO,GAAA,CAAC,CAAC;SACzG;;;wIA5GU,gBAAgB,+PAYL,kBAAkB;iHAZ7B,gBAAgB,kECnC7B,wVASA;sHD0Ba,gBAAgB;sBAN5B9D,YAAS;uBAAC;wBACT,QAAQ,EAAE,iBAAiB;wBAC3B,WAAW,EAAE,0BAA0B;wBACvC,SAAS,EAAE,CAAC,0BAA0B,CAAC;wBACvC,eAAe,EAAEC,0BAAuB,CAAC,MAAM;qBAChD;;;kCAaIgD,WAAQ;;kCAAIC,SAAM;mCAAC,kBAAkB;;;;IEpC1C;QAAA;;;;qIAAa,aAAa;sIAAb,aAAa,iBAJT,gBAAgB,aACrBhD,eAAY,EAAEmB,kBAAa,EAAE8B,eAAY,aACzC,gBAAgB;sIAEf,aAAa,YAHf,CAACjD,eAAY,EAAEmB,kBAAa,EAAE8B,eAAY,CAAC;sHAGzC,aAAa;sBALzB/C,WAAQ;uBAAC;wBACR,YAAY,EAAE,CAAC,gBAAgB,CAAC;wBAChC,OAAO,EAAE,CAACF,eAAY,EAAEmB,kBAAa,EAAE8B,eAAY,CAAC;wBACpD,OAAO,EAAE,CAAC,gBAAgB,CAAC;qBAC5B;;;ICDD;QAIE,iCAAoB,MAAc,EAAU,KAAqB;YAA7C,WAAM,GAAN,MAAM,CAAQ;YAAU,UAAK,GAAL,KAAK,CAAgB;YAFjE,eAAU,GAAG,EAAE,CAAC;YAGd,IAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE,CAAC;YAC9C,IAAA,KAAK,GAAK,CAAA,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,MAAM,KAAI,EAAE,OAA7B,CAA8B;YAE3C,IAAI,CAAC,OAAO,GAAG,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,CAAC;YAC9B,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,EAAE;gBACpC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,sCAAsC,GAAG,EAAE,CAAC;aACpG;SACF;;;+IAZU,uBAAuB;wHAAvB,uBAAuB,2ECTpC,ubAeA;sHDNa,uBAAuB;sBANnCnD,YAAS;uBAAC;wBACT,QAAQ,EAAE,0BAA0B;wBACpC,WAAW,EAAE,mCAAmC;wBAChD,SAAS,EAAE,CAAC,mCAAmC,CAAC;wBAChD,eAAe,EAAEC,0BAAuB,CAAC,MAAM;qBAChD;;;IEHD,IAAM,MAAM,GAAW,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,uBAAuB,EAAE,CAAC,CAAC;IAM1E;QAAA;;;;4IAAa,oBAAoB;6IAApB,oBAAoB,iBAHhB,uBAAuB,aAC5BC,eAAY;6IAEX,oBAAoB,YAFtB,CAACA,eAAY,EAAEuD,iBAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;sHAE3C,oBAAoB;sBAJhCrD,WAAQ;uBAAC;wBACR,YAAY,EAAE,CAAC,uBAAuB,CAAC;wBACvC,OAAO,EAAE,CAACF,eAAY,EAAEuD,iBAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;qBACvD;;;ICuBD;QAOE,+BACU,YAAmC,EACnC,cAA8B,EAC9B,GAAsB,EACtB,YAA0B,EACc,oBAAwC;;YAJhF,iBAAY,GAAZ,YAAY,CAAuB;YACnC,mBAAc,GAAd,cAAc,CAAgB;YAC9B,QAAG,GAAH,GAAG,CAAmB;YACtB,iBAAY,GAAZ,YAAY,CAAc;YACc,yBAAoB,GAApB,oBAAoB,CAAoB;YAXnF,iBAAY,GAAkB,SAAS,CAAC;YACxC,WAAM,GAAG,IAAInD,oBAAe,CAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;YAEtE,oBAAe,GAAG,EAAE,CAAC;YACrB,eAAU,GAAG,IAAID,YAAO,EAAQ,CAAC;YASvC,IAAI,CAAC,eAAe,GAAG,MAAA,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC,UAAU,CAAC,mBAAmB,mCAAI,EAAE,CAAC;SAC3F;QAED,wCAAQ,GAAR;YAAA,iBAsBC;YArBC,IAAI,CAAC,qBAAqB,EAAE;iBACzB,IAAI,CACHG,QAAG,CAAC,UAAA,KAAK;gBACP,IAAI,CAAC,KAAK,EAAE;oBACV,MAAM,IAAI,KAAK,CAAC,0BAAwB,KAAI,CAAC,eAAe,iBAAc,CAAC,CAAC;iBAC7E;gBAED,KAAI,CAAC,YAAY,GAAG,KAAK,CAAC;gBAC1B,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;aACtD,CAAC,EACFI,eAAU,CAAC,UAAA,GAAG;;gBACZ,IAAM,OAAO,GAAG,6CAA6C,IAAI,MAAA,GAAG,CAAC,OAAO,mCAAI,EAAE,CAAC,CAAC;gBACpF,KAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAEC,YAAS,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;gBAErF,KAAI,CAAC,YAAY,GAAG,SAAS,CAAC;gBAC9B,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;gBACpD,OAAOC,OAAE,EAAE,CAAC;aACb,CAAC,EACFL,cAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAC3B;iBACA,SAAS,CAAC,cAAM,OAAA,KAAI,CAAC,GAAG,CAAC,aAAa,EAAE,GAAA,CAAC,CAAC;SAC9C;QAED,2CAAW,GAAX;YACE,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;YACvB,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;SAC5B;QAEO,yDAAyB,GAAzB,UAA0B,QAAoB;YACpD,OAAO,IAAI,CAAC,YAAY;iBACrB,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC;iBAC7B,IAAI,CAACM,QAAG,CAAC,UAAA,UAAU,YAAI,OAAA,MAAA,UAAU,CAAC,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,IAAI,KAAKC,4BAAuB,CAAC,IAAI,GAAA,CAAC,mCAAI,SAAS,CAAA,EAAA,CAAC,CAAC,CAAC;SACxG;QAEO,kEAAkC,GAAlC;;YACN,IAAI,EAAC,MAAA,IAAI,CAAC,oBAAoB,0CAAE,wBAAwB,CAAA,EAAE;gBACxD,OAAOF,OAAE,CAAC,SAAS,CAAC,CAAC;aACtB;YAED,OAAO,MAAA,IAAI,CAAC,oBAAoB,0CAAE,wBAAwB,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CACnFC,QAAG,CAAC,UAAA,SAAS;gBACX,IAAI,CAAC,SAAS,EAAE;oBACd,OAAO;iBACR;gBAED,OAA6B;oBAC3B,IAAI,EAAE,SAAS,CAAC,IAAI;oBACpB,GAAG,EAAE,SAAS,CAAC,GAAG;oBAClB,EAAE,EAAE,SAAS,CAAC,EAAE;oBAChB,IAAI,EAAE,SAAS,CAAC,IAAI;iBACrB,CAAC;aACH,CAAC,CACH,CAAC;SACH;QAEO,6DAA6B,GAA7B;YAAA,iBAYP;YAXC,OAAO,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,CAAC,IAAI,CAC7CA,QAAG,CAAuC,UAAA,SAAS,IACjD,OAAA,SAAS,CAAC,IAAI,CACZ,UAAA,QAAQ,IAAI,OAAA,QAAQ,CAAC,IAAI,KAAKE,mBAAc,CAAC,aAAa,IAAI,QAAQ,CAAC,IAAI,KAAK,KAAI,CAAC,eAAe,GAAA,CACrG,GAAA,CACF,EACDC,cAAS,CAAC,UAAA,QAAQ,IAAI,QAAC,QAAQ,GAAG,KAAI,CAAC,yBAAyB,CAAC,QAAQ,CAAC,GAAGJ,OAAE,CAAC,SAAS,CAAC,IAAC,CAAC,EAC5FI,cAAS,CAAC,UAAA,SAAS,IACjB,OAAA,SAAS,GAAG,KAAI,CAAC,YAAY,CAAC,0BAA0B,CAAC,SAAS,CAAC,YAAY,EAAE,SAAS,CAAC,GAAGJ,OAAE,CAAC,SAAS,CAAC,GAAA,CAC5G,CACF,CAAC;SACH;QAEO,qDAAqB,GAArB;YAAA,iBAiCP;YAhCC,OAAOA,OAAE,CAAC,SAAS,CAAC,CAAC,IAAI,CACvBN,QAAG,CAAC;gBACF,IAAI,CAAC,KAAI,CAAC,eAAe,EAAE;oBACzB,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;iBAC3E;aACF,CAAC,EACFU,cAAS,CAAC,cAAM,OAAA,KAAI,CAAC,kCAAkC,EAAE,GAAA,CAAC,EAC1DA,cAAS,CAAC,UAAA,IAAI,IAAI,QAAC,IAAI,GAAGJ,OAAE,CAAC,IAAI,CAAC,GAAG,KAAI,CAAC,6BAA6B,EAAE,IAAC,CAAC,EAC3EC,QAAG,CAAC,UAAA,IAAI;gBACN,IAAI,CAAC,IAAI,EAAE;oBACT,OAAO;iBACR;gBAED,IAAM,KAAK,GAAiB;oBAC1B,IAAI,EAAE,EAAE;oBACR,gBAAgB,EAAE,CAAC;oBACnB,OAAO,EAAE,IAAI;oBACb,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,CAAC;oBACV,QAAQ,EAAE;wBACR;4BACE,QAAQ,EAAE,EAAE;4BACZ,QAAQ,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;4BACtC,MAAM,EAAE,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;4BAChC,MAAM,EAAE,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;yBACnC;qBACF;iBACF,CAAC;gBAEF,OAAO,KAAK,CAAC;aACd,CAAC,CACH,CAAC;SACH;;;6IAxHU,qBAAqB,kMAYV,kBAAkB;sHAZ7B,qBAAqB,wECjClC,wVASA;sHDwBa,qBAAqB;sBANjCf,YAAS;uBAAC;wBACT,QAAQ,EAAE,uBAAuB;wBACjC,WAAW,EAAE,gCAAgC;wBAC7C,SAAS,EAAE,CAAC,gCAAgC,CAAC;wBAC7C,eAAe,EAAEC,0BAAuB,CAAC,MAAM;qBAChD;;;kCAaIgD,WAAQ;;kCAAIC,SAAM;mCAAC,kBAAkB;;;;IElC1C;QAAA;;;;0IAAa,kBAAkB;2IAAlB,kBAAkB,iBAJd,qBAAqB,aAC1BhD,eAAY,EAAEmB,kBAAa,EAAE8B,eAAY,aACzC,qBAAqB;2IAEpB,kBAAkB,YAHpB,CAACjD,eAAY,EAAEmB,kBAAa,EAAE8B,eAAY,CAAC;sHAGzC,kBAAkB;sBAL9B/C,WAAQ;uBAAC;wBACR,YAAY,EAAE,CAAC,qBAAqB,CAAC;wBACrC,OAAO,EAAE,CAACF,eAAY,EAAEmB,kBAAa,EAAE8B,eAAY,CAAC;wBACpD,OAAO,EAAE,CAAC,qBAAqB,CAAC;qBACjC;;;ICCD;QACE,sBACU,MAAc,EACd,eAAgC,EAChC,aAAgC,EAChC,cAA8B;YAH9B,WAAM,GAAN,MAAM,CAAQ;YACd,oBAAe,GAAf,eAAe,CAAiB;YAChC,kBAAa,GAAb,aAAa,CAAmB;YAChC,mBAAc,GAAd,cAAc,CAAgB;SACpC;QAEI,kCAAW,GAAX,UACN,KAA6B,EAC7B,OAAgB,EAChB,WAA6B;YAE7B,IAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAC5D,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE;gBAC9C,WAAW,aAAA;gBACX,KAAK,EAAE;oBACL,OAAO,EAAE,OAAO;iBACjB;aACF,CAAC,CAAC;SACJ;QAED,8BAAO,GAAP,UAAQ,KAA6B;YAArC,iBAgDC;YA/CS,IAAA,WAAW,GAAK,KAAK,YAAV,CAAW;YACtB,IAAA,MAAM,GAAK,WAAW,OAAhB,CAAiB;YAE/B,IAAI,CAAC,MAAM,EAAE;gBACX,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;aAChC;YAED,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAC9CpC,aAAG,CAAC,UAAA,IAAI;gBACN,IAAI,CAAC,IAAI,EAAE;oBACT,OAAO,KAAI,CAAC,WAAW,CAAC,KAAK,EAAE,sBAAoB,MAAM,oBAAiB,CAAC,CAAC;iBAC7E;gBAEO,IAAA,UAAU,GAAK,IAAI,WAAT,CAAU;gBACpB,IAAa,eAAe,GAAgB,UAAU,YAA1B,EAAE,SAAS,GAAK,UAAU,UAAf,CAAgB;gBAC/D,IAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;gBACrD,IAAM,YAAY,iDACb,WAAW,GACX,eAAe,GACd,mBACE,aAAa,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,EACzC,CACH,CAAC;gBAEF,IAAM,iBAAiB,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,MAAM,CAC3D,UAAC,KAAK,EAAE,EAAY;;wBAAZ,KAAA,aAAY,EAAX,GAAG,QAAA,EAAE,KAAK,QAAA;oBAAM,wCAAM,KAAK,aAAE,GAAC,GAAG,IAAG,MAAM,CAAC,KAAK,CAAC;iBAAG,EAC7D,EAAE,CACH,CAAC;gBAEF,KAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,iBAAiB,EAAE,CAAC,CAAC;gBAE9D,IAAM,SAAS,GAAG,KAAI,CAAC,aAAa,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;gBAC5D,IAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,EAAE,CAAC;qBACrC,KAAK,CAAC,GAAG,CAAC;qBACV,MAAM,CAAC,OAAO,CAAC,CAAC;gBAEnB,OAAO,KAAI,CAAC,MAAM;qBACf,QAAQ,gBAAE,SAAS,UAAK,QAAQ,IAAG;oBAClC,WAAW,EAAE,YAAY;oBACzB,UAAU,EAAE,IAAI;iBACjB,CAAC;qBACD,KAAK,CAAC,UAAA,CAAC;oBACN,IAAM,OAAO,GAAG,CAAC,YAAY+B,sBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC;oBACrE,OAAO,KAAI,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;iBACvD,CAAC,CAAC;aACN,CAAC,CACH,CAAC;SACH;;;oIAtEU,YAAY;wIAAZ,YAAY;sHAAZ,YAAY;sBADxBpC,aAAU;;;ICFX;QACE,uBACU,MAAc,EACd,iBAAoC,EACpC,aAAgC,EAChC,cAA8B,EAC9B,iBAA2C;YAJ3C,WAAM,GAAN,MAAM,CAAQ;YACd,sBAAiB,GAAjB,iBAAiB,CAAmB;YACpC,kBAAa,GAAb,aAAa,CAAmB;YAChC,mBAAc,GAAd,cAAc,CAAgB;YAC9B,sBAAiB,GAAjB,iBAAiB,CAA0B;SACjD;QAEI,mCAAW,GAAX,UAAY,KAA6B,EAAE,OAAe;YAChE,IAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAC5D,OAAOqC,SAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,OAAO,SAAA,EAAE,EAAE,CAAC,CAAC,CAAC;SAC/E;QAEO,kCAAU,GAAV;YACN,IAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC;YAErD,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,YAAY,IAAI,UAAU,EAAE;gBACtD,OAAO,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;aACtD;YAED,OAAOjC,OAAE,CAAC,SAAS,CAAC,CAAC;SACtB;QAED,+BAAO,GAAP,UAAQ,KAA6B;YAArC,iBAkBC;YAjBS,IAAA,QAAQ,GAAK,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,SAAlC,CAAmC;YACnD,IAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC;YAEhD,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO,KAAK,QAAQ,EAAE;gBACvC,OAAOA,OAAE,CAAC,IAAI,CAAC,CAAC;aACjB;YAEO,IAAA,WAAW,GAAK,KAAK,YAAV,CAAW;YAE9B,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,IAAI,CAC5DI,cAAS,CAAC,cAAM,OAAA,KAAI,CAAC,UAAU,EAAE,GAAA,CAAC,EAClCV,QAAG,CAAC,cAAM,QAAC,KAAI,CAAC,iBAAiB,CAAC,aAAa,GAAG,IAAI,IAAC,CAAC,EACxDI,eAAU,CAAC,UAAA,CAAC;gBACV,IAAM,OAAO,GAAG,CAAC,YAAYkC,sBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC;gBACrE,OAAO,KAAI,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;aACzC,CAAC,CACH,CAAC;SACH;;;qIA1CU,aAAa;yIAAb,aAAa;sHAAb,aAAa;sBADzBpC,aAAU;;;ICeX,IAAM,SAAS,GAAgB;QAC7B,EAAE,EAAE,sBAAsB;QAC1B,IAAI,EAAE,EAAE;QACR,SAAS,EAAE,aAAa;QACxB,WAAW,EAAE,CAAC,SAAS,CAAC;QACxB,aAAa,EAAE,CAAC,SAAS,CAAC;QAC1B,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,OAAO;gBACb,qBAAqB,EAAE,2BAA2B;gBAClD,OAAO,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE;gBAChC,WAAW,EAAE,CAAC,YAAY,CAAC;gBAC3B,QAAQ,EAAE,EAAE;aACb;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE;oBACR;wBACE,IAAI,EAAE,SAAS;wBACf,SAAS,EAAE,sBAAsB;wBACjC,qBAAqB,EAAE,2BAA2B;wBAClD,OAAO,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE;wBACjC,WAAW,EAAE,CAAC,YAAY,CAAC;qBAC5B;iBACF;aACF;YACD;gBACE,IAAI,EAAE,SAAS;gBACf,SAAS,EAAE,gBAAgB;gBAC3B,qBAAqB,EAAE,2BAA2B;gBAClD,OAAO,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE;gBACjC,WAAW,EAAE,CAAC,YAAY,CAAC;gBAC3B,aAAa,EAAE,CAAC,kBAAkB,CAAC;gBACnC,IAAI,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE;aAC3B;YACD;gBACE,IAAI,EAAE,MAAM;gBACZ,SAAS,EAAE,qBAAqB;gBAChC,qBAAqB,EAAE,2BAA2B;gBAClD,OAAO,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE;gBACjC,WAAW,EAAE,CAAC,YAAY,CAAC;gBAC3B,IAAI,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE;aAC3B;YACD;gBACE,IAAI,EAAE,SAAS;gBACf,SAAS,EAAE,gBAAgB;gBAC3B,qBAAqB,EAAE,2BAA2B;gBAClD,OAAO,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE;gBACjC,WAAW,EAAE,CAAC,YAAY,CAAC;gBAC3B,IAAI,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE;aAC3B;YACD;gBACE,IAAI,EAAE,OAAO;gBACb,YAAY,EAAE,cAAM,OAAA,WAAW,GAAA;aAChC;YACD;gBACE,IAAI,EAAE,KAAK;gBACX,YAAY,EAAE,cAAM,OAAA,oBAAoB,GAAA;aACzC;SACF;KACF,CAAC;IAOF;QAAA;;;;yIAAa,iBAAiB;0IAAjB,iBAAiB,0CAJkB,aAAa,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,aAAa,aACzG+C,iBAAY;0IAGX,iBAAiB,aAFjB,CAAC,iBAAiB,EAAE,SAAS,EAAE,YAAY,EAAE,kBAAkB,EAAE,YAAY,EAAE,aAAa,CAAC,YAF/F,CAACA,iBAAY,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,aAAa,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,aAAa,CAAC,EAC1GA,iBAAY;sHAGX,iBAAiB;sBAL7BrD,WAAQ;uBAAC;wBACR,OAAO,EAAE,CAACqD,iBAAY,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,aAAa,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,aAAa,CAAC;wBACpH,OAAO,EAAE,CAACA,iBAAY,CAAC;wBACvB,SAAS,EAAE,CAAC,iBAAiB,EAAE,SAAS,EAAE,YAAY,EAAE,kBAAkB,EAAE,YAAY,EAAE,aAAa,CAAC;qBACzG;;;;QCzDD;;;;kIAAa,UAAU;mIAAV,UAAU,iBAfN,aAAa,aAE1BvD,eAAY;YACZ,iBAAiB;YACjB6D,cAAS;YACTC,mBAAc;YACdb,eAAY;YACZ,gBAAgB;YAChB,gBAAgB;YAChBc,kBAAa;YACb,YAAY;YACZ3B,qBAAkB;mIAIT,UAAU,aAFV,CAAC,WAAW,EAAE,iBAAiB,EAAE,iBAAiB,CAAC,YAZrD;gBACPpC,eAAY;gBACZ,iBAAiB;gBACjB6D,cAAS;gBACTC,mBAAc;gBACdb,eAAY;gBACZ,gBAAgB;gBAChB,gBAAgB;gBAChBc,kBAAa;gBACb,YAAY;gBACZ3B,qBAAkB;aACnB;sHAGU,UAAU;sBAhBtBlC,WAAQ;uBAAC;wBACR,YAAY,EAAE,CAAC,aAAa,CAAC;wBAC7B,OAAO,EAAE;4BACPF,eAAY;4BACZ,iBAAiB;4BACjB6D,cAAS;4BACTC,mBAAc;4BACdb,eAAY;4BACZ,gBAAgB;4BAChB,gBAAgB;4BAChBc,kBAAa;4BACb,YAAY;4BACZ3B,qBAAkB;yBACnB;wBACD,SAAS,EAAE,CAAC,WAAW,EAAE,iBAAiB,EAAE,iBAAiB,CAAC;qBAC/D;;;IC9BD;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"veloce-sdk.umd.js","sources":["../../../../libs/sdk/src/constants.ts","../../../../libs/sdk/src/components/dialog/dialog.component.ts","../../../../libs/sdk/src/components/dialog/dialog.component.html","../../../../libs/sdk/src/components/dialog/dialog.module.ts","../../../../libs/sdk/src/services/doc-gen.service.ts","../../../../libs/sdk/src/components/doc-gen/doc-gen.component.ts","../../../../libs/sdk/src/components/doc-gen/doc-gen.component.html","../../../../libs/sdk/src/components/doc-gen/doc-gen.module.ts","../../../../node_modules/tslib/tslib.es6.js","../../../../libs/sdk/src/services/flow-router.service.ts","../../../../libs/sdk/src/components/header/cart-overlay/cart-preview.component.ts","../../../../libs/sdk/src/components/header/cart-overlay/cart-preview.component.html","../../../../libs/sdk/src/components/header/cart-overlay/cart-preview.module.ts","../../../../libs/sdk/src/services/flow-dialog.service.ts","../../../../libs/sdk/src/components/header/header.component.ts","../../../../libs/sdk/src/components/header/header.component.html","../../../../libs/sdk/src/components/header/header.module.ts","../../../../libs/sdk/src/services/flow.service.ts","../../../../libs/sdk/src/flow.component.ts","../../../../libs/sdk/src/flow.component.html","../../../../libs/sdk/src/guards/context.guard.ts","../../../../libs/sdk/src/guards/product-unload.guard.ts","../../../../libs/sdk/src/guards/root.guard.ts","../../../../libs/sdk/src/types/flow-customization.types.ts","../../../../libs/sdk/src/pages/catalog/catalog.component.ts","../../../../libs/sdk/src/pages/catalog/catalog.component.html","../../../../libs/sdk/src/pages/catalog/catalog.module.ts","../../../../libs/sdk/src/utils/flow.utils.ts","../../../../libs/sdk/src/pages/debug/debug.component.ts","../../../../libs/sdk/src/pages/debug/debug.component.html","../../../../libs/sdk/src/pages/debug/debug.module.ts","../../../../libs/sdk/src/pages/legacy-product/legacy-product.component.ts","../../../../libs/sdk/src/pages/legacy-product/legacy-product.component.html","../../../../libs/sdk/src/pages/legacy-product/legacy-product.module.ts","../../../../libs/sdk/src/pages/product/product.component.ts","../../../../libs/sdk/src/pages/product/product.component.html","../../../../libs/sdk/src/pages/product/product.module.ts","../../../../libs/sdk/src/pages/record-not-found/record-not-found.component.ts","../../../../libs/sdk/src/pages/record-not-found/record-not-found.component.html","../../../../libs/sdk/src/pages/record-not-found/record-not-found.module.ts","../../../../libs/sdk/src/pages/shopping-cart/shopping-cart.component.ts","../../../../libs/sdk/src/pages/shopping-cart/shopping-cart.component.html","../../../../libs/sdk/src/pages/shopping-cart/shopping-cart.module.ts","../../../../libs/sdk/src/resolvers/flow.resolver.ts","../../../../libs/sdk/src/resolvers/quote.resolver.ts","../../../../libs/sdk/src/flow-routing.module.ts","../../../../libs/sdk/src/flow.module.ts","../../../../libs/sdk/veloce-sdk.ts"],"sourcesContent":["export const VELOCE_FLOW_ROOT_ROUTE = 'VELOCE_FLOW_ROOT_ROUTE';\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\nimport { FlowDialogConfig } from './dialog.types';\n\n@Component({\n selector: 'vl-flow-dialog',\n templateUrl: './dialog.component.html',\n styleUrls: ['./dialog.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FlowDialogComponent {\n public config: FlowDialogConfig;\n\n constructor(private dialogConfig: DynamicDialogConfig, private ref: DynamicDialogRef) {\n this.config = this.dialogConfig.data.config;\n }\n\n cancelHandler(): void {\n this.ref.close();\n }\n\n confirmHandler(): void {\n this.ref.close(true);\n }\n}\n","<div *ngIf=\"config.description\" class=\"description\">\n {{ config.description }}\n</div>\n\n<div class=\"form-actions\">\n <p-button\n *ngIf=\"config.secondaryButton\"\n styleClass=\"p-button-outlined button-text-bold\"\n [label]=\"config.secondaryButton!\"\n (onClick)=\"cancelHandler()\"\n ></p-button>\n <p-button\n styleClass=\"p-button p-button-filled\"\n [label]=\"config.primaryButton\"\n (onClick)=\"confirmHandler()\"\n ></p-button>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ButtonModule } from 'primeng/button';\nimport { FlowDialogComponent } from './dialog.component';\n\n@NgModule({\n declarations: [FlowDialogComponent],\n imports: [CommonModule, ButtonModule],\n exports: [FlowDialogComponent],\n})\nexport class FlowDialogModule {}\n","import { Injectable } from '@angular/core';\nimport { FlowAction, IntegrationState } from '@veloce/sdk/cms';\nimport { BehaviorSubject, Subject, takeUntil, tap } from 'rxjs';\n\n@Injectable()\nexport class FlowDocGenService {\n private cleanup$ = new Subject<void>();\n private isVisibleSubj$ = new BehaviorSubject(false);\n\n public isVisible$ = this.isVisibleSubj$.asObservable();\n\n constructor(private integrationState: IntegrationState) {\n this.initSubscriptions();\n }\n\n public cleanup(): void {\n this.cleanup$.next();\n }\n\n private initSubscriptions(): void {\n this.integrationState\n .listen$(FlowAction.FLOW_OPEN_DOC_GEN)\n .pipe(\n tap(() => this.isVisibleSubj$.next(true)),\n takeUntil(this.cleanup$),\n )\n .subscribe();\n\n this.integrationState\n .listen$(FlowAction.FLOW_CLOSE_DOC_GEN)\n .pipe(\n tap(() => this.isVisibleSubj$.next(false)),\n takeUntil(this.cleanup$),\n )\n .subscribe();\n }\n}\n","import { ChangeDetectionStrategy, Component, OnDestroy } from '@angular/core';\nimport { UITemplatesApiService } from '@veloce/api';\nimport { ToastService, ToastType } from '@veloce/components';\nimport { TemplateComponent, UITemplate, UITemplateComponentType, UITemplateType } from '@veloce/core';\nimport { extendElementMetadata, extractElementMetadata } from '@veloce/sdk/cms';\nimport { ContextService, QuoteDraftService, UIDefinition } from '@veloce/sdk/core';\nimport { BehaviorSubject, catchError, first, map, Observable, of, Subject, switchMap, takeUntil, tap } from 'rxjs';\nimport { FlowDocGenService } from '../../services/doc-gen.service';\n\n@Component({\n selector: 'vl-flow-doc-gen',\n templateUrl: './doc-gen.component.html',\n styleUrls: ['./doc-gen.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DocGenComponent implements OnDestroy {\n public uiDefinition$ = new BehaviorSubject<UIDefinition | null>(null);\n public isVisible$: Observable<boolean>;\n\n private templateApiName = '';\n private destroy$ = new Subject<void>();\n\n constructor(\n private quoteDraftService: QuoteDraftService,\n private contextService: ContextService,\n private templatesApi: UITemplatesApiService,\n private docGenService: FlowDocGenService,\n private toastService: ToastService,\n ) {\n this.isVisible$ = this.docGenService.isVisible$;\n\n // initialize when quote draft requested\n this.quoteDraftService.quoteDraft$\n .pipe(\n first(),\n tap(() => this.initialize()),\n takeUntil(this.destroy$),\n )\n .subscribe();\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n private initialize(): void {\n this.templateApiName = this.contextService.resolve().properties.docGenTemplateApiName ?? '';\n\n this.generateUIDefinition$()\n .pipe(\n tap(uiDef => {\n if (!uiDef) {\n throw new Error(`Component with name '${this.templateApiName}' not found.`);\n }\n\n this.uiDefinition$.next(uiDef);\n }),\n catchError(err => {\n const message = 'Failed to resolve DocGen component. ' + (err.message ?? '');\n this.toastService.add({ severity: ToastType.error, summary: message, sticky: true });\n return of();\n }),\n takeUntil(this.destroy$),\n )\n .subscribe();\n }\n\n private getTemplateRootComponent$(template: UITemplate): Observable<TemplateComponent | undefined> {\n return this.templatesApi\n .fetchComponents$(template.id)\n .pipe(map(components => components.find(c => c.type === UITemplateComponentType.ROOT) ?? undefined));\n }\n\n private getDocGenComponentMeta$() {\n return this.templatesApi.fetchTemplates$().pipe(\n map<UITemplate[], UITemplate | undefined>(templates => {\n const template = templates.find(\n template => template.type === UITemplateType.DOCGEN && template.name === this.templateApiName,\n );\n return template ?? templates[0];\n }),\n switchMap(template => (template ? this.getTemplateRootComponent$(template) : of(undefined))),\n switchMap(component =>\n component ? this.templatesApi.fetchComponentAttachments$(component.uiTemplateId, component) : of(undefined),\n ),\n );\n }\n\n private generateUIDefinition$(): Observable<UIDefinition | undefined> {\n return of(undefined).pipe(\n tap(() => {\n if (!this.templateApiName) {\n throw new Error(\"Flow Query parameter 'docGenTemplateApiName' is missing.\");\n }\n }),\n switchMap(meta => (meta ? of(meta) : this.getDocGenComponentMeta$())),\n map(meta => {\n if (!meta) {\n return;\n }\n\n const headerId = this.contextService.resolve().properties.Id ?? null;\n let script = meta.js;\n\n if (script) {\n const metadata = extractElementMetadata(script);\n script = extendElementMetadata(script, {\n inputs: {\n ...metadata.inputs,\n Id: headerId ? `\"${headerId}\"` : null,\n },\n });\n }\n\n const uiDef: UIDefinition = {\n name: '',\n createdTimestamp: 0,\n primary: true,\n type: 'DEFAULT',\n version: 2,\n children: [\n {\n children: [],\n template: meta.html && btoa(meta.html),\n script: script && btoa(script),\n styles: meta.css && btoa(meta.css),\n },\n ],\n };\n\n return uiDef;\n }),\n );\n }\n}\n","<ng-container *ngIf=\"isVisible$ | async\">\n <ng-container *ngIf=\"uiDefinition$ | async as uiDefinition\">\n <vl-cms-preview [uiDefinition]=\"uiDefinition\" [clearState]=\"true\"></vl-cms-preview>\n </ng-container>\n</ng-container>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { PreviewModule } from '@veloce/sdk/cms';\nimport { DocGenComponent } from './doc-gen.component';\n\n@NgModule({\n declarations: [DocGenComponent],\n imports: [CommonModule, PreviewModule],\n exports: [DocGenComponent],\n})\nexport class DocGenModule {}\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 { Injectable } from '@angular/core';\nimport {\n ActivatedRoute,\n ActivatedRouteSnapshot,\n Event,\n NavigationCancel,\n NavigationEnd,\n NavigationError,\n NavigationStart,\n Params,\n Router,\n} from '@angular/router';\nimport { ContextService } from '@veloce/sdk/core';\nimport { distinctUntilChanged, filter, map, Observable, shareReplay, startWith } from 'rxjs';\nimport { VELOCE_FLOW_ROOT_ROUTE } from '../constants';\nimport { RouteWithId } from '../types/route.types';\n\n@Injectable({ providedIn: 'root' })\nexport class FlowRouterService {\n private routeChange$: Observable<Event>;\n private lastChildParams$: Observable<Params>;\n private lastChildRoute$: Observable<ActivatedRouteSnapshot>;\n private urlHistory: string[] = [];\n\n public loading$: Observable<boolean>;\n\n constructor(private router: Router, private route: ActivatedRoute, private contextService: ContextService) {\n this.routeChange$ = this.router.events.pipe(\n filter(e => e instanceof NavigationEnd),\n shareReplay(),\n );\n\n this.lastChildParams$ = this.watchLastChildParams$(this.route).pipe(\n startWith(this.getLastChildParams(this.route.snapshot)),\n shareReplay(),\n );\n this.lastChildRoute$ = this.watchLastChildRoute$(this.route).pipe(\n startWith(this.getLastChildRouteSnapshot(this.route.snapshot)),\n shareReplay(),\n );\n\n this.loading$ = this.router.events.pipe(\n filter(\n e =>\n e instanceof NavigationStart ||\n e instanceof NavigationCancel ||\n e instanceof NavigationEnd ||\n e instanceof NavigationError,\n ),\n map(e => e instanceof NavigationStart),\n startWith(false),\n distinctUntilChanged(),\n );\n\n this.router.events.pipe(filter(e => e instanceof NavigationEnd)).subscribe(() => {\n this.urlHistory.push(this.router.url);\n });\n }\n\n getFlowRootRoute(route: ActivatedRouteSnapshot): ActivatedRouteSnapshot | undefined {\n const path = [...route.pathFromRoot];\n\n while (path.length) {\n const parent = path.pop();\n\n if (!parent) {\n break;\n }\n\n if ((parent.routeConfig as RouteWithId)?.id === VELOCE_FLOW_ROOT_ROUTE) {\n return parent;\n }\n }\n\n return;\n }\n\n getFlowRootPath(route: ActivatedRouteSnapshot): string {\n const rootRoute = this.getFlowRootRoute(route);\n if (!rootRoute) {\n return '';\n }\n\n const path = rootRoute.pathFromRoot\n .map(r => r.routeConfig?.path)\n .filter(Boolean)\n .join('/');\n\n return '/' + path;\n }\n\n get route$(): Observable<ActivatedRouteSnapshot> {\n return this.lastChildRoute$;\n }\n\n get params$(): Observable<Params> {\n return this.lastChildParams$;\n }\n\n public getLastChildRoute = (route: ActivatedRoute): ActivatedRoute => {\n return route.firstChild ? this.getLastChildRoute(route.firstChild) : route;\n };\n\n public getNthChildRoute = (route: ActivatedRoute, index: number): ActivatedRoute => {\n if (index <= 0) {\n return route;\n }\n\n return route.firstChild ? this.getNthChildRoute(route.firstChild, index - 1) : route;\n };\n\n public getLastChildRouteSnapshot = (route: ActivatedRouteSnapshot): ActivatedRouteSnapshot => {\n return route.firstChild ? this.getLastChildRouteSnapshot(route.firstChild) : route;\n };\n\n public watchLastChildRoute$ = (route: ActivatedRoute): Observable<ActivatedRouteSnapshot> => {\n return this.routeChange$.pipe(map(() => this.getLastChildRouteSnapshot(route.snapshot)));\n };\n\n public getLastChildParams = (route: ActivatedRouteSnapshot): Params => {\n return route.firstChild ? this.getLastChildParams(route.firstChild) : route.params;\n };\n\n public watchLastChildParams$ = (route: ActivatedRoute): Observable<Params> => {\n return this.routeChange$.pipe(map(() => this.getLastChildParams(route.snapshot)));\n };\n\n public getFlowSubpath$ = (): Observable<string> => {\n return this.route$.pipe(\n map(route => {\n const url = route.url.join('/');\n const flowRootUrl = this.getFlowRootPath(route);\n return url.replace(flowRootUrl, '');\n }),\n );\n };\n\n public isConfigurationRoute$(): Observable<boolean> {\n return this.getFlowSubpath$().pipe(map(url => url.startsWith('product')));\n }\n\n public isCartRoute$(): Observable<boolean> {\n return this.getFlowSubpath$().pipe(map(url => url.startsWith('cart')));\n }\n\n public isCatalogRoute$(): Observable<boolean> {\n return this.getFlowSubpath$().pipe(map(url => url.startsWith('catalog')));\n }\n\n public navigateBack(): void {\n const prevUrl = this.urlHistory[this.urlHistory.length - 2];\n\n if (prevUrl) {\n this.router.navigateByUrl(prevUrl);\n }\n }\n\n public navigateToProductConfiguration(productId: string, lineItemId?: string): void {\n this.contextService.update({ properties: { productId, lineItemId } });\n\n const routeSnapshot = this.getLastChildRouteSnapshot(this.route.snapshot);\n const flowRouteUrl = this.getFlowRootPath(routeSnapshot);\n\n this.router.navigate([flowRouteUrl, 'product'], {\n queryParams: { ...routeSnapshot.queryParams, productId },\n });\n }\n\n public navigateToShoppingCart(): void {\n const routeSnapshot = this.getLastChildRouteSnapshot(this.route.snapshot);\n const flowRouteUrl = this.getFlowRootPath(routeSnapshot);\n\n this.router.navigate([flowRouteUrl, 'cart'], { queryParams: routeSnapshot.queryParams });\n }\n\n public navigateToCatalog(): void {\n const routeSnapshot = this.getLastChildRouteSnapshot(this.route.snapshot);\n const flowRouteUrl = this.getFlowRootPath(routeSnapshot);\n\n this.router.navigate([flowRouteUrl, 'catalog'], { queryParams: routeSnapshot.queryParams });\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n Input,\n OnChanges,\n OnDestroy,\n SimpleChanges,\n ViewChild,\n} from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { FlowConfigurationService, ProductImagesService, QuoteDraftService } from '@veloce/sdk/core';\nimport { OverlayPanel } from 'primeng/overlaypanel';\nimport { BehaviorSubject, combineLatest, filter, map, Observable, Subject, takeUntil } from 'rxjs';\nimport { FlowRouterService } from '../../../services/flow-router.service';\nimport { HeaderProduct } from '../header.types';\n\n@Component({\n selector: 'vl-cart-preview',\n templateUrl: './cart-preview.component.html',\n styleUrls: ['./cart-preview.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CartPreviewComponent implements OnChanges, AfterViewInit, OnDestroy {\n @ViewChild(OverlayPanel) overlayPanel!: OverlayPanel;\n\n @Input() products!: HeaderProduct[];\n\n public form = new FormGroup({});\n public readonlyProductId$: Observable<string | null>;\n\n private shouldUpdate$ = new BehaviorSubject(true);\n private destroyed$ = new Subject<void>();\n\n public isEditMode$: Observable<boolean>;\n\n constructor(\n private flowConfiguration: FlowConfigurationService,\n private routerService: FlowRouterService,\n private productImagesService: ProductImagesService,\n private quoteDraftService: QuoteDraftService,\n ) {\n this.readonlyProductId$ = combineLatest([\n this.routerService.route$,\n this.routerService.isConfigurationRoute$(),\n ]).pipe(\n map(([route, isConfigurationRoute]) => {\n if (!isConfigurationRoute) {\n return null;\n }\n\n return route.queryParams.productId;\n }),\n );\n\n this.isEditMode$ = this.quoteDraftService.isEditMode$();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.products) {\n this.shouldUpdate$.next(true);\n }\n }\n\n ngAfterViewInit() {\n combineLatest([this.readonlyProductId$, this.isEditMode$, this.shouldUpdate$, this.overlayPanel.onShow])\n .pipe(\n filter(() => this.overlayPanel.overlayVisible),\n takeUntil(this.destroyed$),\n )\n .subscribe(([readonlyProductId, isEditMode]) =>\n this.updateControls(this.products, isEditMode, readonlyProductId),\n );\n }\n\n public ngOnDestroy(): void {\n this.destroyed$.next();\n this.destroyed$.complete();\n }\n\n public getImageUrl(productId: string): Observable<string | null> {\n return this.productImagesService.getImageUrl$(productId);\n }\n\n public navigateToProductConfiguration(productId: string, lineItemId: string) {\n this.overlayPanel.hide();\n this.routerService.navigateToProductConfiguration(productId, lineItemId);\n }\n\n public controlBlurHandler(product: HeaderProduct): void {\n const control = this.form.controls[product.id];\n if (control.invalid) {\n return;\n }\n\n this.flowConfiguration.update([\n {\n dataType: 'LINEITEM',\n attributeType: 'QTY',\n id: product.id,\n newValue: control.value,\n },\n ]);\n }\n\n public deleteHandler(product: HeaderProduct): void {\n this.flowConfiguration.delete([product.id]);\n }\n\n public deleteAllHandler(): void {\n const productIds = this.products.map(product => product.id);\n this.flowConfiguration.delete(productIds);\n }\n\n private updateControls(products: HeaderProduct[], isEditMode: boolean, readonlyProductId: string | null): void {\n const ids: string[] = [];\n\n products.forEach(item => {\n if (!item.id) {\n return;\n }\n\n ids.push(item.id);\n\n if (!this.form.controls[item.id]) {\n this.form.addControl(item.id, new FormControl(item.qty, []));\n } else {\n this.form.controls[item.id]?.setValue(item.qty);\n }\n\n if (!isEditMode || item.deleted || item.productId === readonlyProductId) {\n this.form.controls[item.id].disable();\n } else {\n this.form.controls[item.id].enable();\n }\n });\n\n const removedIds = Object.keys(this.form.controls).filter(id => !ids.includes(id));\n removedIds.forEach(id => this.form.removeControl(id));\n }\n}\n","<p-overlayPanel\n styleClass=\"navigation-settings-overlay flow-header-overlay center\"\n showTransitionOptions=\"0ms\"\n hideTransitionOptions=\"0ms\"\n>\n <ng-template pTemplate>\n <div class=\"flow-header-overlay__wrapper\" *vlLet=\"readonlyProductId$ | async as readonlyProductId\">\n <ng-container *vlLet=\"isEditMode$ | async as isEditMode\">\n <ng-container *ngIf=\"products.length > 0; else empty\">\n <h2 class=\"flow-header-overlay__title\">\n <span>Products ({{ products.length }})</span>\n <i class=\"vl-icon vl-icon-close close-icon\" (click)=\"overlayPanel.hide()\"></i>\n </h2>\n\n <div class=\"product header\">\n <span>Product</span>\n <span class=\"text-right\">Qty</span>\n <span class=\"text-right\">MRR</span>\n <span class=\"text-right\">NRR</span>\n </div>\n\n <div class=\"scrollable-wrapper\">\n <div class=\"product\" *ngFor=\"let product of products\">\n <div\n class=\"product__info\"\n *vlLet=\"!isEditMode || product.deleted || readonlyProductId === product.productId as readonlyProduct\"\n >\n <div class=\"product__image-wrapper\">\n <div\n *ngIf=\"getImageUrl(product.productId) | async as imageUrl; else noImage\"\n class=\"product__image\"\n [ngStyle]=\"{ 'background-image': 'url(' + imageUrl + ')' }\"\n ></div>\n </div>\n <div class=\"flex flex-column justify-content-center\">\n <div class=\"word-break\">{{ product.name }}</div>\n <div>\n <p-button\n label=\"Configure\"\n [disabled]=\"readonlyProduct || !product.configurable\"\n styleClass=\"p-button-link p-button-sm pl-0\"\n (onClick)=\"navigateToProductConfiguration(product.productId, product.id)\"\n ></p-button>\n <p-button\n label=\"Delete\"\n [disabled]=\"readonlyProduct\"\n styleClass=\"p-button-link p-button-sm p-button-danger pl-0 pr-0\"\n (onClick)=\"deleteHandler(product)\"\n ></p-button>\n </div>\n </div>\n </div>\n\n <span>\n <p-inputNumber\n *ngIf=\"form.controls[product.id] as control\"\n class=\"qty-control\"\n [formControl]=\"$any(control)\"\n [min]=\"1\"\n [required]=\"true\"\n (onBlur)=\"controlBlurHandler(product)\"\n ></p-inputNumber>\n </span>\n <span class=\"text-right pt-3\">${{ product.mrr }}</span>\n <span class=\"text-right pt-3\">${{ product.nrr }}</span>\n </div>\n\n <ng-template #noImage>\n <i class=\"vl-icon vl-icon-no-image no-image-icon\"></i>\n </ng-template>\n </div>\n\n <div class=\"flex justify-content-end mt-3\">\n <p-button\n label=\"Clear cart\"\n styleClass=\"p-button-link p-button-sm p-button-danger pl-0 pr-0\"\n [disabled]=\"!isEditMode || readonlyProductId\"\n (onClick)=\"deleteAllHandler()\"\n ></p-button>\n </div>\n </ng-container>\n </ng-container>\n\n <ng-template #empty>\n <h2 class=\"flow-header-overlay__title\">\n <span>Empty Cart</span>\n <i class=\"vl-icon vl-icon-close close-icon\" (click)=\"overlayPanel.hide()\"></i>\n </h2>\n\n <span class=\"empty-state\">There are no products added to the Shopping Cart yet.</span>\n </ng-template>\n </div>\n </ng-template>\n</p-overlayPanel>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { LetDirectiveModule } from '@veloce/components';\nimport { ButtonModule } from 'primeng/button';\nimport { InputNumberModule } from 'primeng/inputnumber';\nimport { OverlayPanelModule } from 'primeng/overlaypanel';\nimport { CartPreviewComponent } from './cart-preview.component';\n\n@NgModule({\n declarations: [CartPreviewComponent],\n imports: [CommonModule, ReactiveFormsModule, ButtonModule, OverlayPanelModule, LetDirectiveModule, InputNumberModule],\n exports: [CartPreviewComponent],\n})\nexport class CartPreviewModule {}\n","import { Injectable } from '@angular/core';\nimport { ContextService } from '@veloce/sdk/core';\nimport { DialogService } from 'primeng/dynamicdialog';\nimport { Observable } from 'rxjs';\nimport { FlowDialogComponent } from '../components/dialog/dialog.component';\nimport { FlowDialogConfig } from '../components/dialog/dialog.types';\n\n@Injectable()\nexport class FlowDialogService {\n constructor(private dialogService: DialogService, private contextService: ContextService) {}\n\n public show(config: FlowDialogConfig): Observable<boolean> {\n return this.dialogService.open(FlowDialogComponent, {\n dismissableMask: true,\n closeOnEscape: true,\n closable: true,\n showHeader: true,\n header: config.title,\n width: '440px',\n data: { config },\n }).onClose;\n }\n\n public showEmptyCartDialog(): Observable<boolean> {\n return this.show({\n title: 'No Products in Quote',\n description: 'There are no products in your Quote. To save a Quote, add at least one product.',\n primaryButton: 'OK',\n });\n }\n\n public showReadonlyModeDialog(): Observable<boolean> {\n const ctx = this.contextService.resolve();\n const objectName = ctx.mode ? ctx.mode[0].toUpperCase() + ctx.mode.substring(1).toLowerCase() : 'Object';\n\n return this.show({\n title: 'Error',\n description: `${objectName} Cannot be Saved`,\n primaryButton: 'OK',\n });\n }\n\n public showQuoteReadonlyModeDialog(): Observable<boolean> {\n return this.show({\n title: 'Quote Cannot be Saved',\n description:\n 'It is only possible to save quotes with the “Draft” status. Please create a new quote to make and save changes.',\n primaryButton: 'OK',\n });\n }\n\n public showQuoteOutsideShoppingCartDialog(): Observable<boolean> {\n return this.show({\n title: 'Quote Cannot be Saved',\n description: 'It is only possible to save quotes from the Shopping Cart. To proceed, go to the Shopping Cart.',\n primaryButton: 'OK',\n });\n }\n\n public showAccountNoChangesDialog(): Observable<boolean> {\n return this.show({\n title: 'No Changes to Save',\n description: 'There are no changes since the last update. Please make changes to proceed.',\n primaryButton: 'OK',\n });\n }\n\n public showUnsavedChangesDialog(): Observable<boolean> {\n return this.show({\n title: 'Unsaved Changes',\n description: 'Are you sure you want to leave this page and discard your unsaved changes?',\n primaryButton: 'Keep Editing',\n secondaryButton: 'Discard Changes',\n });\n }\n\n public showReadonlyQuoteSubmitFailureDialog(): Observable<boolean> {\n return this.show({\n title: 'Cannot Submit for Approval',\n description:\n 'It is only possible to submit for approval quotes with the “Draft“ status. Please create a new quote to proceed.',\n primaryButton: 'OK',\n });\n }\n\n public showOutsideShoppingCartQuoteSubmitFailureDialog(): Observable<boolean> {\n return this.show({\n title: 'Cannot Submit for Approval',\n description:\n 'It is only possible to submit quotes for approval from the Shopping Cart. To proceed, go to the Shopping Cart.',\n primaryButton: 'OK',\n });\n }\n\n public showAccountSubmitFailureDialog(): Observable<boolean> {\n return this.show({\n title: 'Save Changes',\n description:\n 'To submit for approval, save the quote first, and then submit it for approval from the Shopping Cart.',\n primaryButton: 'OK',\n });\n }\n\n public showDocgenAccountUnsavedChangesDialog(): Observable<boolean> {\n return this.show({\n title: 'Save Quote',\n description:\n 'To generate a document, save the quote first, and then generate the document from the Shopping Cart.',\n primaryButton: 'OK',\n });\n }\n\n public showDocgenReadonlyDialog(): Observable<boolean> {\n return this.show({\n title: 'Document Generation is not Available',\n description:\n 'It is only possible to generate documents for quotes with the “Draft” status. Please create a new quote to generate a document.',\n primaryButton: 'OK',\n });\n }\n\n public showDocgenOutsideShoppingCartDialog(): Observable<boolean> {\n return this.show({\n title: 'Document Generation is not Available',\n description:\n 'It is only possible to generate documents for quotes from the Shopping Cart. To proceed, go to the Shopping Cart.',\n primaryButton: 'OK',\n });\n }\n\n public showDocgenUnsavedChangesDialog(): Observable<boolean> {\n return this.show({\n title: 'Unsaved Changes',\n description: 'To generate a document, save the quote first.',\n primaryButton: 'Save and proceed',\n secondaryButton: 'Cancel',\n });\n }\n}\n","import { ChangeDetectionStrategy, Component, OnDestroy, OnInit } from '@angular/core';\nimport { QuoteApiService, SalesforceApiService } from '@veloce/api';\nimport {\n ConfigurationContextMode,\n ContextProperties,\n LineItem,\n PriceList,\n SearchRequest,\n VlWindow,\n} from '@veloce/core';\nimport { IntegrationState, OpenDocGenAction } from '@veloce/sdk/cms';\nimport { ContextService, FlowConfigurationService, QuoteDraftService } from '@veloce/sdk/core';\nimport { MenuItem } from 'primeng/api';\nimport {\n BehaviorSubject,\n distinctUntilChanged,\n finalize,\n first,\n map,\n noop,\n Observable,\n of,\n Subject,\n switchMap,\n takeUntil,\n tap,\n} from 'rxjs';\nimport { FlowDialogService } from '../../services/flow-dialog.service';\nimport { FlowRouterService } from '../../services/flow-router.service';\nimport { HeaderObjectDetails, HeaderProduct } from './header.types';\n\ndeclare const window: VlWindow;\n\n@Component({\n selector: 'vl-flow-header',\n templateUrl: './header.component.html',\n styleUrls: ['./header.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FlowHeaderComponent implements OnInit, OnDestroy {\n public objectName = '';\n public contextProperties: ContextProperties;\n public assetPriceLists: PriceList[];\n public activePriceList$: Observable<PriceList | null>;\n public status$: Observable<string>;\n public objectDetails$ = new BehaviorSubject<HeaderObjectDetails>({});\n public products$: Observable<HeaderProduct[]>;\n public isConfigurationRoute$: Observable<boolean>;\n public isCartRoute$: Observable<boolean>;\n public isCatalogRoute$: Observable<boolean>;\n public isEditMode$: Observable<boolean>;\n public isSaveInProgress$ = new BehaviorSubject(false);\n public isSubmitInProgress$ = new BehaviorSubject(false);\n public totalMRR$: Observable<string>;\n public totalNRR$: Observable<string>;\n\n private mode?: ConfigurationContextMode;\n private destroyed$ = new Subject<void>();\n\n constructor(\n private contextService: ContextService,\n private quoteDraftService: QuoteDraftService,\n private quoteApiService: QuoteApiService,\n private sfApiService: SalesforceApiService,\n private flowConfiguration: FlowConfigurationService,\n private routerService: FlowRouterService,\n private dialogService: FlowDialogService,\n private integrationState: IntegrationState,\n ) {\n const ctx = this.contextService.resolve();\n\n this.mode = ctx.mode;\n this.objectName = ctx.mode.toLowerCase();\n this.contextProperties = ctx.properties;\n this.assetPriceLists = this.quoteDraftService.assetPriceLists;\n\n this.activePriceList$ = this.quoteDraftService.activePriceList$;\n this.status$ = this.contextService.resolve$().pipe(map(context => context.properties.Status ?? ''));\n this.isEditMode$ = this.quoteDraftService.isEditMode$();\n this.products$ = this.flowConfiguration.get().pipe(map(lineItems => this.generateProducts(lineItems)));\n this.isConfigurationRoute$ = this.routerService.isConfigurationRoute$();\n this.isCartRoute$ = this.routerService.isCartRoute$();\n this.isCatalogRoute$ = this.routerService.isCatalogRoute$();\n\n this.totalMRR$ = this.contextService.resolve$().pipe(\n map(ctx => ctx.properties.VDM_Total_MRR),\n distinctUntilChanged(),\n map(mrr => this.formatMetric(mrr)),\n );\n\n this.totalNRR$ = this.contextService.resolve$().pipe(\n map(ctx => ctx.properties.VDM_Total_NRR),\n distinctUntilChanged(),\n map(nrr => this.formatMetric(nrr)),\n );\n }\n\n ngOnInit() {\n this.populateObjectDetails();\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n this.destroyed$.complete();\n }\n\n public get isAccountMode() {\n return this.mode === ConfigurationContextMode.ACCOUNT;\n }\n\n public get isQuoteMode() {\n return this.mode === ConfigurationContextMode.QUOTE;\n }\n\n public getSplitButtonActions(isCartRoute: boolean): MenuItem[] {\n return [\n {\n label: 'Save to Quote',\n command: () => {\n this.saveButtonClickHandler(isCartRoute);\n },\n },\n {\n label: 'Submit For Approval',\n command: () => {\n this.submitButtonClickHandler(isCartRoute);\n },\n },\n ];\n }\n\n public back(objectId?: string): void {\n const targetId = objectId ?? this.contextService.resolve().headerId;\n\n if (targetId) {\n window.VELO_BACK_FN.apply(null, [targetId]);\n }\n }\n\n public getSalesforceObjectLink(objectId?: string): string {\n if (!objectId) {\n return '';\n }\n\n return `${window.location.origin}/${objectId}`;\n }\n\n public navigateToShoppingCart() {\n this.routerService.navigateToShoppingCart();\n }\n\n public navigateToCatalog() {\n this.routerService.navigateToCatalog();\n }\n\n public docGenButtonClickHandler(isCartRoute: boolean): void {\n if (this.mode === ConfigurationContextMode.ACCOUNT) {\n if (!this.quoteDraftService.hasUnsavedChanges) {\n this.dialogService.showAccountNoChangesDialog().subscribe();\n } else {\n this.dialogService.showDocgenAccountUnsavedChangesDialog().subscribe();\n }\n return;\n }\n\n if (!this.quoteDraftService.isEditMode()) {\n this.dialogService.showDocgenReadonlyDialog().subscribe();\n return;\n }\n\n if (!isCartRoute) {\n this.dialogService.showDocgenOutsideShoppingCartDialog().subscribe();\n return;\n }\n\n let observable = of(true);\n\n if (this.quoteDraftService.hasUnsavedChanges) {\n observable = this.dialogService.showDocgenUnsavedChangesDialog().pipe(\n switchMap(confirmed => (confirmed ? this.saveQuote$(true) : of(true))),\n map(() => true),\n );\n }\n\n observable\n .pipe(\n first(),\n tap(() => this.integrationState.dispatch(OpenDocGenAction())),\n )\n .subscribe();\n }\n\n public saveButtonClickHandler(isCartRoute: boolean): void {\n if (!this.quoteDraftService.isEditMode()) {\n if (this.mode === ConfigurationContextMode.QUOTE) {\n this.dialogService.showQuoteReadonlyModeDialog().subscribe();\n } else {\n this.dialogService.showReadonlyModeDialog().subscribe();\n }\n return;\n }\n\n if (this.mode === ConfigurationContextMode.ACCOUNT && !this.quoteDraftService.hasUnsavedChanges) {\n this.dialogService.showAccountNoChangesDialog().subscribe();\n return;\n }\n\n if (!isCartRoute) {\n this.dialogService.showQuoteOutsideShoppingCartDialog().subscribe();\n return;\n }\n\n const lineItems = this.flowConfiguration.getSnapshot();\n\n if (!lineItems.length) {\n this.dialogService.showEmptyCartDialog().subscribe();\n return;\n }\n\n this.saveQuote$().subscribe();\n }\n\n public submitButtonClickHandler(isCartRoute: boolean): void {\n if (this.mode === ConfigurationContextMode.QUOTE && !this.quoteDraftService.isEditMode()) {\n this.dialogService.showReadonlyQuoteSubmitFailureDialog();\n return;\n }\n\n if (this.mode === ConfigurationContextMode.ACCOUNT) {\n this.dialogService.showAccountSubmitFailureDialog();\n return;\n }\n\n if (!isCartRoute) {\n this.dialogService.showOutsideShoppingCartQuoteSubmitFailureDialog().subscribe();\n return;\n }\n\n const quoteDraft = this.quoteDraftService.quoteDraft;\n if (!quoteDraft) {\n return;\n }\n\n this.isSubmitInProgress$.next(true);\n\n this.quoteApiService\n .submitQuote(quoteDraft)\n .pipe(\n tap(({ quoteId }) => {\n this.quoteDraftService.hasUnsavedChanges = false;\n this.back(quoteId);\n }),\n finalize(() => this.isSubmitInProgress$.next(false)),\n takeUntil(this.destroyed$),\n )\n .subscribe();\n }\n\n public selectPriceList(priceListId: string): void {\n this.quoteDraftService.updateActivePriceList(priceListId);\n }\n\n private saveQuote$(stayOnPage = false): Observable<void> {\n const quoteDraft = this.quoteDraftService.quoteDraftForActivePriceList;\n if (!quoteDraft) {\n return of(undefined);\n }\n\n this.isSaveInProgress$.next(true);\n\n return this.quoteApiService.upsertQuote(quoteDraft).pipe(\n tap(({ quoteId }) => {\n this.quoteDraftService.hasUnsavedChanges = false;\n\n if (!stayOnPage) {\n this.back(quoteId);\n }\n }),\n finalize(() => this.isSaveInProgress$.next(false)),\n map(noop),\n takeUntil(this.destroyed$),\n );\n }\n\n private queryName$(objectName: string, id?: string): Observable<string> {\n if (!id) {\n return of('');\n }\n\n const searchRequest: SearchRequest = {\n count: 1,\n rawCondition: `Id = '${id}'`,\n fields: ['Name'],\n };\n\n return this.sfApiService.query<any>(searchRequest, objectName).pipe(\n map(result => result[0]?.Name ?? ''),\n takeUntil(this.destroyed$),\n );\n }\n\n private populateObjectDetails(): void {\n const accountId = this.isAccountMode ? this.contextProperties.Id : this.contextProperties.AccountId;\n const opportunityId = this.contextProperties.OpportunityId;\n const quoteId = this.isQuoteMode ? this.contextProperties.Id : undefined;\n const quoteName = this.isQuoteMode ? this.contextProperties.Name : undefined;\n const quoteNumber = this.isQuoteMode ? this.contextProperties.QuoteNumber?.replace(/^0+/, '') : undefined;\n\n this.objectDetails$.next({\n ...this.objectDetails$.value,\n accountId,\n opportunityId,\n quoteId,\n quoteName,\n quoteNumber,\n });\n\n this.queryName$('Account', accountId).subscribe(accountName =>\n this.objectDetails$.next({\n ...this.objectDetails$.value,\n accountName,\n }),\n );\n this.queryName$('Opportunity', opportunityId).subscribe(opportunityName =>\n this.objectDetails$.next({\n ...this.objectDetails$.value,\n opportunityName,\n }),\n );\n }\n\n private formatMetric(value?: string): string {\n return (value ? Number(value) : 0).toFixed(2);\n }\n\n private generateProducts(lineItems: LineItem[]): HeaderProduct[] {\n const date = new Date();\n date.setHours(0, 0, 0, 0);\n const now = date.getTime();\n\n return lineItems.reduce((result: HeaderProduct[], li) => {\n // find main term line item\n if (li.rampInstanceId) {\n return result;\n }\n\n // find current term line item\n let target: LineItem | undefined = li;\n while (target && target.endDate && new Date(target.endDate).getTime() <= now) {\n target = lineItems.find(sub => sub.rampInstanceId === li.id);\n }\n\n if (target && target.productId) {\n return [\n ...result,\n {\n id: target.id,\n productId: target.productId,\n name: target.name,\n configurable: target.properties['#configurable'] === 'true',\n deleted: target.actionCode === 'DELETE',\n qty: target.qty,\n mrr: this.formatMetric(target.properties.VDM_Total_MRR),\n nrr: this.formatMetric(target.properties.VDM_Total_NRR),\n },\n ];\n }\n\n return result;\n }, []);\n }\n}\n","<div class=\"flow-info\" *vlLet=\"objectDetails$ | async as details\">\n <nav class=\"nav-item nav-back\" (click)=\"back()\">\n <i class=\"nav-icon vl-icon vl-icon-arrow-left\"></i>\n\n <span> Back to {{ objectName | titlecase }}</span>\n </nav>\n\n <ng-container *ngIf=\"isAccountMode\">\n <span class=\"dot-separator\"></span>\n\n <span>Account name</span>\n\n <nav class=\"account-name\" [pTooltip]=\"contextProperties.Name ?? ''\" tooltipPosition=\"bottom\" [showDelay]=\"1000\">\n <a target=\"_blank\" [href]=\"getSalesforceObjectLink(contextProperties.Id)\">{{ contextProperties.Name }}</a>\n </nav>\n </ng-container>\n\n <ng-container *ngIf=\"isQuoteMode\">\n <span class=\"dot-separator\"></span>\n\n <span>Quote #{{ details.quoteNumber }}</span>\n\n <span class=\"dot-separator\"></span>\n\n <nav class=\"nav-item\" (click)=\"quoteDetails.toggle($event)\">\n <span>{{ status$ | async }}</span>\n\n <i *ngIf=\"!quoteDetails.overlayVisible\" class=\"vl-icon vl-icon-chevron-down icon-with-margin\"></i>\n <i *ngIf=\"quoteDetails.overlayVisible\" class=\"vl-icon vl-icon-chevron-up icon-with-margin\"></i>\n </nav>\n\n <p-overlayPanel styleClass=\"navigation-settings-overlay flow-header-overlay center\" #quoteDetails>\n <ng-template pTemplate>\n <div class=\"flow-header-overlay__wrapper\">\n <h2 class=\"flow-header-overlay__title\">\n <span>Quote Information</span>\n <i class=\"vl-icon vl-icon-close close-icon\" (click)=\"quoteDetails.hide()\"></i>\n </h2>\n\n <ul class=\"info-list\">\n <li class=\"info-list__row\">\n <span>Account Name:</span>\n <a target=\"_blank\" [href]=\"getSalesforceObjectLink(details.accountId)\">\n <span>{{ details.accountName }}</span>\n </a>\n </li>\n <li class=\"info-list__row\">\n <span>Opportunity Name:</span>\n <a target=\"_blank\" [href]=\"getSalesforceObjectLink(details.opportunityId)\">\n <span>{{ details.opportunityName }}</span>\n </a>\n </li>\n <li class=\"info-list__row\">\n <span>Quote Name:</span>\n <a target=\"_blank\" [href]=\"getSalesforceObjectLink(details.quoteId)\">\n <span>{{ details.quoteName }}</span>\n </a>\n </li>\n </ul>\n </div>\n </ng-template>\n </p-overlayPanel>\n </ng-container>\n</div>\n\n<div class=\"flow-navigation\">\n <nav class=\"nav-item\" [ngClass]=\"{ active: isCatalogRoute$ | async }\" (click)=\"navigateToCatalog()\">Catalog</nav>\n <nav class=\"nav-item disabled\" [ngClass]=\"{ active: isConfigurationRoute$ | async }\">Configurator</nav>\n <ng-container *vlLet=\"products$ | async as products\">\n <nav class=\"nav-item\" [ngClass]=\"{ active: isCartRoute$ | async }\" (click)=\"navigateToShoppingCart()\">\n Shopping Cart ({{ products.length }})\n </nav>\n\n <nav class=\"nav-popover-toggle active\" (click)=\"cart?.overlayPanel?.toggle($event)\">\n <i *ngIf=\"!cart?.overlayPanel?.overlayVisible\" class=\"vl-icon vl-icon-chevron-down icon-with-margin\"></i>\n <i *ngIf=\"cart?.overlayPanel?.overlayVisible\" class=\"vl-icon vl-icon-chevron-up icon-with-margin\"></i>\n </nav>\n\n <vl-cart-preview #cart [products]=\"products\"></vl-cart-preview>\n </ng-container>\n</div>\n\n<div class=\"flow-controls\" *vlLet=\"objectDetails$ | async as details\">\n <ng-container *vlLet=\"activePriceList$ | async as priceList\">\n <ng-container *ngIf=\"isAccountMode && assetPriceLists.length > 1\">\n <nav class=\"nav-item\" (click)=\"priceListsOverlay?.toggle($event)\">\n <span>{{ priceList?.name }}</span>\n <i *ngIf=\"!priceListsOverlay?.overlayVisible\" class=\"vl-icon vl-icon-chevron-down icon-with-margin\"></i>\n <i *ngIf=\"priceListsOverlay?.overlayVisible\" class=\"vl-icon vl-icon-chevron-up icon-with-margin\"></i>\n </nav>\n\n <p-overlayPanel styleClass=\"price-list-overlay\" #priceListsOverlay>\n <ng-template pTemplate>\n <span\n *ngFor=\"let option of assetPriceLists\"\n class=\"price-list-option\"\n [class.active]=\"priceList?.id === option.id\"\n (click)=\"selectPriceList(option.id); priceListsOverlay.hide()\"\n >{{ option.name }}</span\n >\n </ng-template>\n </p-overlayPanel>\n </ng-container>\n\n <ng-container *ngIf=\"isQuoteMode\">\n <span>{{ priceList?.name }}</span>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"isQuoteMode\">\n <span *ngIf=\"contextProperties.StartDate\">{{ contextProperties.StartDate | date: 'MM.dd.yyyy' }}</span>\n\n <span class=\"slash-separator\"></span>\n\n <span class=\"metrics\">\n <div class=\"metrics__row\">\n MRR: <span class=\"font-semibold\">${{ totalMRR$ | async }}</span>\n </div>\n <div class=\"metrics__row\">\n NRR: <span class=\"font-semibold\">${{ totalNRR$ | async }}</span>\n </div>\n </span>\n </ng-container>\n\n <ng-container *vlLet=\"isCartRoute$ | async as isCartRoute\">\n <p-button\n class=\"doc-gen-button\"\n icon=\"vl-icon vl-icon-doc-gen\"\n (onClick)=\"docGenButtonClickHandler(isCartRoute)\"\n ></p-button>\n\n <ng-container *vlLet=\"isSaveInProgress$ | async as isSaveInProgress\">\n <ng-container *vlLet=\"isSubmitInProgress$ | async as isSubmitInProgress\">\n <p-splitButton\n *ngIf=\"!isSaveInProgress && !isSubmitInProgress\"\n label=\"Save to Quote\"\n (onClick)=\"saveButtonClickHandler(isCartRoute)\"\n [model]=\"getSplitButtonActions(isCartRoute)\"\n styleClass=\"p-button-outlined\"\n >\n </p-splitButton>\n\n <p-button\n *ngIf=\"isSaveInProgress\"\n class=\"save-button\"\n styleClass=\"p-button\"\n label=\"Saving\"\n [loading]=\"true\"\n ></p-button>\n\n <p-button\n *ngIf=\"isSubmitInProgress\"\n class=\"submit-button\"\n styleClass=\"p-button\"\n label=\"Submitting\"\n [loading]=\"true\"\n ></p-button>\n </ng-container>\n </ng-container>\n </ng-container>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { LetDirectiveModule } from '@veloce/components';\nimport { ButtonModule } from 'primeng/button';\nimport { OverlayPanelModule } from 'primeng/overlaypanel';\nimport { SplitButtonModule } from 'primeng/splitbutton';\nimport { TooltipModule } from 'primeng/tooltip';\nimport { CartPreviewModule } from './cart-overlay/cart-preview.module';\nimport { FlowHeaderComponent } from './header.component';\n\n@NgModule({\n declarations: [FlowHeaderComponent],\n imports: [\n CommonModule,\n OverlayPanelModule,\n LetDirectiveModule,\n TooltipModule,\n ButtonModule,\n CartPreviewModule,\n SplitButtonModule,\n ],\n exports: [FlowHeaderComponent],\n})\nexport class FlowHeaderModule {}\n","import { Injectable } from '@angular/core';\nimport { LineItem } from '@veloce/core';\nimport { FlowAction, IntegrationState } from '@veloce/sdk/cms';\nimport { ConfigurationService, FlowConfigurationService, QuoteDraftService } from '@veloce/sdk/core';\nimport { of, Subject, switchMap, takeUntil, tap } from 'rxjs';\nimport { FlowRouterService } from './flow-router.service';\n\n@Injectable()\nexport class FlowService {\n private cleanup$ = new Subject<void>();\n\n constructor(\n private integrationState: IntegrationState,\n private flowRouterService: FlowRouterService,\n private quoteDraftService: QuoteDraftService,\n private configurationService: ConfigurationService,\n private flowConfigurationService: FlowConfigurationService,\n ) {}\n\n public initSubscriptions(): void {\n this.integrationState\n .listen$<{ lineItemId?: string; productId?: string }>(FlowAction.FLOW_CONFIGURE_PRODUCT)\n .pipe(\n tap(payload => {\n const productId =\n payload.productId ??\n this.quoteDraftService.currentState.find(li => li.id === payload.lineItemId)?.productId;\n\n if (productId) {\n this.flowRouterService.navigateToProductConfiguration(productId, payload.lineItemId);\n } else {\n console.warn(\"Parameter 'productId' is needed to start configuration\");\n }\n }),\n takeUntil(this.cleanup$),\n )\n .subscribe();\n\n this.integrationState\n .listen$(FlowAction.FLOW_NAVIGATE_BACK)\n .pipe(\n tap(() => this.flowRouterService.navigateBack()),\n takeUntil(this.cleanup$),\n )\n .subscribe();\n\n this.integrationState\n .listen$(FlowAction.FLOW_NAVIGATE_TO_CATALOG)\n .pipe(\n tap(() => this.flowRouterService.navigateToCatalog()),\n takeUntil(this.cleanup$),\n )\n .subscribe();\n\n this.integrationState\n .listen$(FlowAction.FLOW_APPLY_PRODUCT_CONFIGURATION)\n .pipe(\n switchMap(() => {\n const quoteDraft = this.quoteDraftService.quoteDraft;\n const lineItem = this.configurationService.getSnapshot();\n\n if (!quoteDraft || !lineItem) {\n return of(undefined);\n }\n\n const isNewLineItem = quoteDraft.currentState.every(li => li.id !== lineItem.id);\n\n let updatedState: LineItem[];\n if (isNewLineItem) {\n updatedState = [...quoteDraft.currentState, lineItem];\n } else {\n updatedState = quoteDraft.currentState.map(li => (li.id === lineItem.id ? lineItem : li));\n }\n\n return this.flowConfigurationService.calculate$({ ...quoteDraft, currentState: updatedState });\n }),\n tap(() => {\n this.configurationService.hasUnsavedChanges = false;\n this.flowRouterService.navigateToShoppingCart();\n }),\n takeUntil(this.cleanup$),\n )\n .subscribe();\n }\n\n public cleanup(): void {\n this.cleanup$.next();\n }\n}\n","import { ChangeDetectionStrategy, Component, OnDestroy, OnInit } from '@angular/core';\nimport { QuoteDraftService } from '@veloce/sdk/core';\nimport { IntegrationState } from '@veloce/sdk/cms';\nimport { map, Observable } from 'rxjs';\nimport { FlowService } from './services';\nimport { FlowDocGenService } from './services/doc-gen.service';\nimport { FlowRouterService } from './services/flow-router.service';\n\n@Component({\n selector: 'vl-flow',\n templateUrl: './flow.component.html',\n styleUrls: ['./flow.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FlowComponent implements OnInit, OnDestroy {\n public isLoading$: Observable<boolean>;\n public showHeader$: Observable<boolean>;\n public isStandalone$: Observable<boolean>;\n\n constructor(\n private routerService: FlowRouterService,\n private quoteDraftService: QuoteDraftService,\n private flowService: FlowService,\n private docGenService: FlowDocGenService,\n private integrationState: IntegrationState,\n ) {\n this.isLoading$ = this.routerService.loading$;\n\n this.showHeader$ = this.routerService.route$.pipe(\n map(route => route.data.showHeader && !this.quoteDraftService.isStandalone),\n );\n\n this.isStandalone$ = this.quoteDraftService.isStandalone$;\n\n this.flowService.initSubscriptions();\n }\n\n ngOnInit() {\n this.integrationState.clear();\n }\n\n ngOnDestroy(): void {\n this.flowService.cleanup();\n this.docGenService.cleanup();\n }\n}\n","<vl-flow-header *ngIf=\"showHeader$ | async\"></vl-flow-header>\n\n<div class=\"flow-content\">\n <div class=\"loading-overlay\" *ngIf=\"isLoading$ | async\">\n <vl-loader label=\"LOADING\"></vl-loader>\n </div>\n\n <router-outlet></router-outlet>\n</div>\n\n<ng-container *vlLet=\"isStandalone$ | async as isStandalone\">\n <vl-flow-doc-gen *ngIf=\"!isStandalone\"></vl-flow-doc-gen>\n</ng-container>\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, CanActivateChild, Router } from '@angular/router';\nimport { ConfigurationContext, ConfigurationContextMode, VlWindow } from '@veloce/core';\nimport { ContextService } from '@veloce/sdk/core';\nimport { catchError, from, map, Observable, of, tap } from 'rxjs';\nimport { FlowRouterService } from '../services/flow-router.service';\n\ndeclare const window: VlWindow;\n\n@Injectable()\nexport class ContextGuard implements CanActivate, CanActivateChild {\n constructor(\n private router: Router,\n private routerService: FlowRouterService,\n private contextService: ContextService,\n ) {}\n\n public checkActivation(route: ActivatedRouteSnapshot): Observable<boolean> {\n const { queryParams } = route;\n const { accountId, quoteId, orderId } = queryParams;\n const rpcMessage = window.RPC_MESSAGE;\n const mode = this.getConfigurationContextMode(accountId, quoteId, orderId, rpcMessage);\n\n // Restrict if mode is not defined\n if (mode == null) {\n return this.handleError(route, 'Mode is undefined');\n }\n\n const rpcMessageId: string = rpcMessage && JSON.parse(rpcMessage)?.quote?.Id;\n const headerId = accountId || quoteId || orderId || rpcMessageId || 'empty-for-test-mode';\n\n // Allow if context is already initialized with the same headerId\n if (this.contextService.isInitialized) {\n const currentContext = this.contextService.resolve();\n\n if (headerId && currentContext.headerId === headerId) {\n return of(true);\n }\n }\n\n // Initialize context\n return this.contextService.create(headerId, mode).pipe(\n tap((context: ConfigurationContext) => {\n // Update context with queryParams\n this.contextService.update({\n ...context,\n properties: {\n ...context.properties,\n ...(queryParams ?? {}),\n },\n });\n }),\n map(() => true),\n catchError(e => {\n const message = e instanceof HttpErrorResponse ? e.error.message : e;\n return this.handleError(route, message);\n }),\n );\n }\n\n public canActivate(route: ActivatedRouteSnapshot): Observable<boolean> | Promise<boolean> | boolean {\n return this.checkActivation(route);\n }\n\n public canActivateChild(childRoute: ActivatedRouteSnapshot): Observable<boolean> | Promise<boolean> | boolean {\n return this.checkActivation(childRoute);\n }\n\n private getConfigurationContextMode(\n accountId?: string,\n quoteId?: string,\n orderId?: string,\n rpcMessage?: string,\n ): ConfigurationContextMode | undefined {\n if (accountId) {\n return ConfigurationContextMode.ACCOUNT;\n }\n\n if (quoteId) {\n return ConfigurationContextMode.QUOTE;\n }\n\n if (orderId) {\n return ConfigurationContextMode.ORDER;\n }\n\n if (rpcMessage) {\n return ConfigurationContextMode.REMOTE;\n }\n\n return;\n }\n\n private handleError(route: ActivatedRouteSnapshot, message: string): Observable<boolean> {\n this.contextService.delete();\n const parentUrl = this.routerService.getFlowRootPath(route);\n return from(this.router.navigate([parentUrl, '404'], { state: { message } })).pipe(map(() => false));\n }\n}\n","import { Component, Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanDeactivate, Router, RouterStateSnapshot } from '@angular/router';\nimport { ConfigurationService, ContextService, QuoteDraftService } from '@veloce/sdk/core';\nimport { map, of } from 'rxjs';\nimport { FlowDialogService } from '../services/flow-dialog.service';\n\n@Injectable()\nexport class ProductUnloadGuard implements CanDeactivate<any> {\n constructor(\n private router: Router,\n private contextService: ContextService,\n private quoteDraftService: QuoteDraftService,\n private configurationService: ConfigurationService,\n private flowDialogService: FlowDialogService,\n ) {}\n\n canDeactivate(\n _: Component,\n route: ActivatedRouteSnapshot,\n currentState: RouterStateSnapshot,\n nextState?: RouterStateSnapshot,\n ) {\n let observable = of(true);\n\n if (!this.quoteDraftService.isStandalone && this.configurationService.hasUnsavedChanges) {\n observable = this.flowDialogService.showUnsavedChangesDialog().pipe(map(confirmed => !confirmed));\n }\n\n return observable.pipe(\n map(unload => {\n if (unload) {\n this.configurationService.reset();\n this.contextService.update({ properties: { productId: undefined, lineItemId: undefined } });\n\n if (!nextState || currentState.url === nextState.url) {\n return true;\n }\n\n // clear obsolete queryParams\n const urlTree = this.router.parseUrl(nextState.url);\n delete urlTree.queryParams.productId;\n\n // replace url after deactivation has finished\n setTimeout(() => this.router.navigateByUrl(urlTree.toString(), { replaceUrl: true }));\n\n return true;\n }\n\n return false;\n }),\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, CanDeactivate, Navigation, Router } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { FlowRouterService } from '../services/flow-router.service';\n\n@Injectable({ providedIn: 'root' })\nexport class RootGuard implements CanActivate, CanDeactivate<any> {\n private initialized = false;\n private navToRestore: Navigation | null = null;\n\n constructor(private router: Router, private routerService: FlowRouterService) {}\n\n canActivate(route: ActivatedRouteSnapshot): Observable<boolean> | Promise<boolean> | boolean {\n // We always need to initialize root component first, and only then start checking guards/resolvers\n\n if (!this.initialized) {\n this.initialized = true;\n this.navToRestore = this.router.getCurrentNavigation();\n\n const rootUrl = this.routerService.getFlowRootPath(route);\n this.router.navigate([rootUrl], { replaceUrl: !this.navToRestore?.previousNavigation });\n } else if (this.navToRestore) {\n const nav = this.navToRestore;\n setTimeout(() => {\n this.router.navigateByUrl(nav.extractedUrl, nav.extras);\n\n this.navToRestore = null;\n });\n }\n\n return true;\n }\n\n canDeactivate() {\n this.initialized = false;\n return true;\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { TemplateComponentWithAttachments, UIDefinition as LegacyUIDefinition } from '@veloce/core';\nimport { UIDefinition } from '@veloce/sdk/core';\nimport { Observable } from 'rxjs';\n\nexport const FLOW_CUSTOMIZATION = new InjectionToken<FlowCustomization>('FLOW_CUSTOMIZATION');\n\nexport interface FlowCustomization {\n getUiDefinition?(productId: string): Observable<UIDefinition | null>;\n getLegacyUiDefinition?(productId: string): Observable<LegacyUIDefinition | null>;\n getShoppingCartComponent?(templateName: string): Observable<TemplateComponentWithAttachments | null>;\n getCatalogComponent?(templateName: string): Observable<TemplateComponentWithAttachments | null>;\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Inject,\n OnDestroy,\n OnInit,\n Optional,\n} from '@angular/core';\nimport { UITemplatesApiService } from '@veloce/api';\nimport { ToastService, ToastType } from '@veloce/components';\nimport {\n ComponentAttachments,\n TemplateComponent,\n UITemplate,\n UITemplateComponentType,\n UITemplateType,\n} from '@veloce/core';\nimport { ContextService, UIDefinition } from '@veloce/sdk/core';\nimport { BehaviorSubject, catchError, map, Observable, of, Subject, switchMap, takeUntil, tap } from 'rxjs';\nimport { FlowCustomization, FLOW_CUSTOMIZATION } from '../../types';\n\ninterface State {\n loading: boolean;\n failure: boolean;\n}\n\n@Component({\n selector: 'vl-flow-catalog',\n templateUrl: './catalog.component.html',\n styleUrls: ['./catalog.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CatalogComponent implements OnInit, OnDestroy {\n public uiDefinition?: UIDefinition = undefined;\n public state$ = new BehaviorSubject<State>({ loading: true, failure: false });\n\n private templateApiName = '';\n private destroyed$ = new Subject<void>();\n\n constructor(\n private templatesApi: UITemplatesApiService,\n private contextService: ContextService,\n private cdr: ChangeDetectorRef,\n private toastService: ToastService,\n @Optional() @Inject(FLOW_CUSTOMIZATION) private customizationService?: FlowCustomization,\n ) {\n this.templateApiName = this.contextService.resolve().properties.catalogTemplateApiName ?? '';\n }\n\n ngOnInit(): void {\n this.generateUIDefinition$()\n .pipe(\n tap(uiDef => {\n if (!uiDef) {\n throw new Error(`Component with name '${this.templateApiName}' not found.`);\n }\n\n this.uiDefinition = uiDef;\n this.state$.next({ loading: false, failure: false });\n }),\n catchError(err => {\n const message = 'Failed to resolve Catalog component. ' + (err.message ?? '');\n this.toastService.add({ severity: ToastType.error, summary: message, sticky: true });\n\n this.uiDefinition = undefined;\n this.state$.next({ loading: false, failure: true });\n return of();\n }),\n takeUntil(this.destroyed$),\n )\n .subscribe(() => this.cdr.detectChanges());\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n this.destroyed$.complete();\n }\n\n private getTemplateRootComponent$(template: UITemplate): Observable<TemplateComponent | undefined> {\n return this.templatesApi\n .fetchComponents$(template.id)\n .pipe(map(components => components.find(c => c.type === UITemplateComponentType.ROOT) ?? undefined));\n }\n\n private getLocalCatalogComponentMeta$(): Observable<ComponentAttachments | undefined> {\n if (!this.customizationService?.getCatalogComponent) {\n return of(undefined);\n }\n\n return this.customizationService?.getCatalogComponent(this.templateApiName).pipe(\n map(component => {\n if (!component) {\n return;\n }\n\n return <ComponentAttachments>{\n html: component.html,\n css: component.css,\n js: component.js,\n json: component.json,\n };\n }),\n );\n }\n\n private getCatalogComponentMeta$() {\n return this.templatesApi.fetchTemplates$().pipe(\n map<UITemplate[], UITemplate | undefined>(templates =>\n templates.find(template => template.type === UITemplateType.CATALOG && template.name === this.templateApiName),\n ),\n switchMap(template => (template ? this.getTemplateRootComponent$(template) : of(undefined))),\n switchMap(component =>\n component ? this.templatesApi.fetchComponentAttachments$(component.uiTemplateId, component) : of(undefined),\n ),\n );\n }\n\n private generateUIDefinition$(): Observable<UIDefinition | undefined> {\n return of(undefined).pipe(\n tap(() => {\n if (!this.templateApiName) {\n throw new Error(\"Flow Query parameter 'catalogTemplateApiName' is missing.\");\n }\n }),\n switchMap(() => this.getLocalCatalogComponentMeta$()),\n switchMap(meta => (meta ? of(meta) : this.getCatalogComponentMeta$())),\n map(meta => {\n if (!meta) {\n return;\n }\n\n const uiDef: UIDefinition = {\n name: '',\n createdTimestamp: 0,\n primary: true,\n type: 'DEFAULT',\n version: 2,\n children: [\n {\n children: [],\n template: meta.html && btoa(meta.html),\n script: meta.js && btoa(meta.js),\n styles: meta.css && btoa(meta.css),\n },\n ],\n };\n\n return uiDef;\n }),\n );\n }\n}\n","<ng-container *ngIf=\"state$ | async as state\">\n <vl-loader *ngIf=\"state.loading; else content\" [label]=\"'Loading UI'\"></vl-loader>\n\n <ng-template #content>\n <ng-container *ngIf=\"!state.failure\">\n <vl-cms-preview [uiDefinition]=\"uiDefinition\"></vl-cms-preview>\n </ng-container>\n </ng-template>\n</ng-container>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { LoaderModule } from '@veloce/components';\nimport { PreviewModule } from '@veloce/sdk/cms';\nimport { CatalogComponent } from './catalog.component';\n\n@NgModule({\n declarations: [CatalogComponent],\n imports: [CommonModule, PreviewModule, LoaderModule],\n exports: [CatalogComponent],\n})\nexport class CatalogModule {}\n","export const getFlowObjectIdPropertyName = (objectName?: string) => {\n switch (objectName) {\n case 'Account':\n return 'accountId';\n case 'Order':\n return 'orderId';\n case 'Quote':\n default:\n return 'quoteId';\n }\n};\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { ActivatedRoute, Params, Router } from '@angular/router';\nimport { FlowsApiService } from '@veloce/api';\nimport { FlowProperties } from '@veloce/core';\nimport { ContextService, FlowConfigurationService, QuoteDraftService } from '@veloce/sdk/core';\nimport { map, Observable, shareReplay } from 'rxjs';\nimport { getFlowObjectIdPropertyName } from '../../utils';\n\ninterface FlowPropertiesExt extends FlowProperties {\n queryParamsStr: string;\n}\n\n@Component({\n selector: 'vl-flow-debug',\n templateUrl: './debug.component.html',\n styleUrls: ['./debug.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DebugComponent {\n public readonly objectNames = ['Account', 'Quote', 'Order'];\n public form = new FormGroup({\n id: new FormControl(''),\n name: new FormControl('Quote'),\n });\n\n public selectedFlow?: FlowPropertiesExt;\n public flows$: Observable<FlowPropertiesExt[]>;\n\n constructor(\n private flowsApiService: FlowsApiService,\n private router: Router,\n private activatedRoute: ActivatedRoute,\n private context: ContextService,\n private flowConfiguration: FlowConfigurationService,\n private quoteDraftService: QuoteDraftService,\n ) {\n this.flows$ = this.flowsApiService.fetchFlows().pipe(\n map(flows =>\n flows.map<FlowPropertiesExt>(flow => {\n const queryParams: Params = flow?.properties?.queryParams ?? {};\n return {\n id: flow.id,\n entryPath: flow?.properties?.entryPath,\n queryParams,\n queryParamsStr: JSON.stringify(queryParams),\n };\n }),\n ),\n shareReplay(),\n );\n }\n\n runFlow() {\n const { id, name } = this.form.value;\n const objectPropertyName = getFlowObjectIdPropertyName(name);\n\n if (!id || !this.selectedFlow) {\n return;\n }\n\n // Delete context before starting a new flow\n this.context.delete();\n this.quoteDraftService.reset();\n\n this.router.navigate(['..', 'flows'], {\n queryParams: {\n flowId: this.selectedFlow.id,\n [objectPropertyName]: id,\n ...this.selectedFlow.queryParams,\n },\n relativeTo: this.activatedRoute,\n });\n }\n}\n","<form [formGroup]=\"form\">\n <div class=\"fields-container\">\n <div class=\"field\">\n <label>SF Object ID</label>\n <input formControlName=\"id\" pInputText type=\"text\" />\n </div>\n\n <div class=\"field\">\n <label>SF Object Name</label>\n <p-dropdown\n appendTo=\"body\"\n formControlName=\"name\"\n [autoDisplayFirst]=\"false\"\n [options]=\"objectNames\"\n ></p-dropdown>\n </div>\n </div>\n\n <p-button\n styleClass=\"p-button-primary\"\n label=\"Run Flow\"\n [disabled]=\"!form.value.id || !selectedFlow\"\n (onClick)=\"runFlow()\"\n ></p-button>\n</form>\n\n<table>\n <thead>\n <tr>\n <th [width]=\"30\"></th>\n <th [width]=\"160\">ID</th>\n <th [width]=\"160\">Entry Path</th>\n <th>QueryParams</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let flow of flows$ | async\" (click)=\"selectedFlow = flow\">\n <td><p-radioButton [inputId]=\"flow.id\" name=\"flow\" [value]=\"flow\" [(ngModel)]=\"selectedFlow\"></p-radioButton></td>\n <td>{{ flow.id }}</td>\n <td>{{ flow.entryPath }}</td>\n <td>{{ flow.queryParamsStr }}</td>\n </tr>\n </tbody>\n</table>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { RouterModule, Routes } from '@angular/router';\nimport { ButtonModule } from 'primeng/button';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { RadioButtonModule } from 'primeng/radiobutton';\nimport { DebugComponent } from './debug.component';\n\nconst routes: Routes = [{ path: '', component: DebugComponent }];\n\n@NgModule({\n declarations: [DebugComponent],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n RouterModule.forChild(routes),\n RadioButtonModule,\n ButtonModule,\n InputTextModule,\n DropdownModule,\n ],\n})\nexport class DebugModule {}\n","import { Component, Inject, OnDestroy, OnInit, Optional } from '@angular/core';\nimport { ActivatedRoute, Params } from '@angular/router';\nimport { QuoteApiService } from '@veloce/api';\nimport { EntityUtil, LineItem, QuoteDraft, VlWindow } from '@veloce/core';\nimport { ContextService, QuoteDraftService, QuoteStates, RuntimeOperation } from '@veloce/sdk/core';\nimport {\n CurrentStateService,\n LegacyRuntimeContext,\n RuntimeContextService,\n RuntimeService,\n SolutionReadyAware,\n SolutionUpdatedAware,\n} from '@veloce/sdk/runtime';\nimport { Observable, of, Subject } from 'rxjs';\nimport { first, map, switchMap, take, takeUntil } from 'rxjs/operators';\nimport { FlowCustomization, FLOW_CUSTOMIZATION } from '../../types';\n\ndeclare const window: VlWindow;\n\n@Component({\n templateUrl: './legacy-product.component.html',\n styleUrls: ['./legacy-product.component.scss'],\n})\nexport class LegacyProductComponent implements OnInit, OnDestroy, SolutionUpdatedAware, SolutionReadyAware {\n private destroyed$ = new Subject<void>();\n\n private assets?: LineItem[];\n\n constructor(\n private route: ActivatedRoute,\n private quoteDraftService: QuoteDraftService,\n private quoteApiService: QuoteApiService,\n private contextService: ContextService,\n private runtimeContextService: RuntimeContextService,\n private runtimeService: RuntimeService,\n private currentStateService: CurrentStateService,\n @Optional() @Inject(FLOW_CUSTOMIZATION) private customizationService?: FlowCustomization,\n ) {}\n\n ngOnInit(): void {\n this.quoteDraftService.quoteDraft$\n .pipe(first(), takeUntil(this.destroyed$))\n .subscribe(quote => this.init(quote, this.route.snapshot.queryParams));\n\n this.runtimeService.onSolutionStopEvent.pipe(take(1)).subscribe(lineItem => this.onSolutionStop(lineItem));\n\n this.runtimeService.onSolutionReadyEvent.pipe(take(1)).subscribe(event => this.onSolutionReady(event));\n\n this.runtimeService.onSolutionCancelEvent.pipe(take(1)).subscribe(() => this.onSolutionCancel());\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n this.destroyed$.complete();\n }\n\n onSolutionReady(lineItem: LineItem): void {\n lineItem.actionCode = lineItem.actionCode ?? 'ADD';\n }\n\n onSolutionCancel(): void {\n this.quoteDraftService.quoteDraft$.pipe(first(), takeUntil(this.destroyed$)).subscribe(quote => {\n window['VELO_BACK_FN'].apply(null, [quote.quoteId]);\n });\n }\n\n onSolutionUpdated(lineItem: LineItem): void {\n const states: QuoteStates = {\n configurableRamp: lineItem,\n currentState: this.currentStateService.currentState,\n asset: this.getAsset(lineItem),\n };\n\n this.runtimeService.updateRuntime(states);\n }\n\n onSolutionStop(lineItem: LineItem): void {\n this.quoteDraftService.quoteDraft$.pipe(first(), takeUntil(this.destroyed$)).subscribe(quote => {\n const quoteToUpsert: QuoteDraft = {\n ...quote,\n context: this.contextService.resolve(),\n currentState: [...(this.currentStateService.currentState || []).filter(li => li.id !== lineItem.id), lineItem],\n };\n\n this.quoteApiService\n .upsertQuote(quoteToUpsert)\n .pipe(take(1))\n .subscribe(quote => {\n window['VELO_BACK_FN'].apply(null, [quote.quoteId]);\n });\n });\n }\n\n private init(quote: QuoteDraft, queryParams: Params): void {\n const productId = queryParams['productId'];\n const lineItemId = this.getLineItemId(quote, queryParams);\n this.assets = quote.initialState;\n\n lineItemId && quote.currentState ? this.reConfigure(lineItemId, quote.currentState) : this.configure(productId);\n }\n\n private getLineItemId(quote: QuoteDraft, queryParams: Params): string | undefined {\n if (EntityUtil.isPresent(queryParams['lineItemId'])) {\n return queryParams['lineItemId'];\n }\n\n return quote.currentState\n .filter(lineItem => lineItem.productId === queryParams['productId'])\n .map(lineItem => lineItem.id)\n .find(id => id);\n }\n\n private configure(productId: string): void {\n const runtimeContext = this.getRuntimeContext(productId, '', RuntimeOperation.INIT);\n\n this.startRuntime({}, runtimeContext);\n }\n\n private reConfigure(lineItemId: string, currentState: LineItem[]): void {\n const currentStateItem = EntityUtil.findById(lineItemId, currentState);\n const runtimeContext = this.getRuntimeContext(\n currentStateItem.productId,\n currentStateItem.offeringId,\n RuntimeOperation.UPDATE,\n );\n\n const states: QuoteStates = {\n configurableRamp: currentStateItem,\n currentState,\n asset: this.getAsset(currentStateItem),\n };\n\n this.currentStateService.update(currentState);\n this.startRuntime(states, runtimeContext);\n }\n\n private getAsset(lineItem: LineItem): LineItem | undefined {\n return this.assets && this.assets.find(a => a.id === lineItem.openOrderLineItemId || a.id === lineItem.assetId);\n }\n\n private startRuntime(states: QuoteStates, runtimeContext$: Observable<LegacyRuntimeContext>): void {\n runtimeContext$\n .pipe(\n take(1),\n map(runtimeContext => {\n this.runtimeService.startRuntime(runtimeContext, states);\n }),\n )\n .subscribe();\n }\n\n private customizeContext(productId: string, context: LegacyRuntimeContext): Observable<LegacyRuntimeContext> {\n if (!this.customizationService?.getLegacyUiDefinition) {\n return of(context);\n }\n\n return this.customizationService.getLegacyUiDefinition(productId).pipe(\n map(uiDef => ({\n ...context,\n uiDefinition: uiDef ?? context.uiDefinition,\n })),\n );\n }\n\n private getRuntimeContext(\n productId: string,\n offeringId: string,\n runtimeOperation: RuntimeOperation,\n ): Observable<LegacyRuntimeContext> {\n return this.runtimeContextService.getRuntimeContext(productId, offeringId).pipe(\n map(runtimeContext => {\n runtimeContext.invocationContext = { runtimeOperation: RuntimeOperation[runtimeOperation] };\n return runtimeContext;\n }),\n switchMap(runtimeContext => this.customizeContext(productId, runtimeContext)),\n );\n }\n}\n","<vl-runtime #runtimeView (solutionUpdated)=\"onSolutionUpdated($event)\"></vl-runtime>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RuntimeModule } from '@veloce/sdk/runtime';\nimport { TooltipModule } from 'ngx-bootstrap/tooltip';\nimport { LegacyProductComponent } from './legacy-product.component';\n\n@NgModule({\n declarations: [LegacyProductComponent],\n imports: [CommonModule, RuntimeModule, TooltipModule.forRoot()],\n exports: [LegacyProductComponent],\n})\nexport class LegacyProductModule {}\n","import { ChangeDetectionStrategy, Component, Inject, OnDestroy, OnInit, Optional } from '@angular/core';\nimport { LineItem, QuoteDraft } from '@veloce/core';\nimport {\n ConfigurationRuntimeService,\n ConfigurationService,\n ContextService,\n QuoteDraftService,\n UIDefinition,\n} from '@veloce/sdk/core';\nimport { MessageService } from 'primeng/api';\nimport {\n BehaviorSubject,\n catchError,\n first,\n Observable,\n of,\n Subject,\n switchMap,\n takeUntil,\n tap,\n throwError,\n} from 'rxjs';\nimport { FlowCustomization, FLOW_CUSTOMIZATION } from '../../types/flow-customization.types';\n\ninterface State {\n loading: boolean;\n failure: boolean;\n}\n\n@Component({\n selector: 'vl-flow-product',\n templateUrl: './product.component.html',\n styleUrls: ['./product.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ProductComponent implements OnInit, OnDestroy {\n private destroy$ = new Subject<void>();\n\n public uiDefinition?: UIDefinition;\n public state$ = new BehaviorSubject<State>({ loading: true, failure: false });\n\n constructor(\n private contextService: ContextService,\n private runtimeService: ConfigurationRuntimeService,\n private configurationService: ConfigurationService,\n private quoteDraftService: QuoteDraftService,\n private messageService: MessageService,\n @Optional() @Inject(FLOW_CUSTOMIZATION) private customizationService?: FlowCustomization,\n ) {}\n\n ngOnInit(): void {\n this.quoteDraftService.quoteDraft$.pipe(first(), takeUntil(this.destroy$)).subscribe(quote => this.init(quote));\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n private customize(productId: string): Observable<any> {\n if (!this.customizationService?.getUiDefinition) {\n return of(null);\n }\n\n return this.customizationService.getUiDefinition(productId).pipe(\n tap(uiDef => {\n if (uiDef) {\n this.uiDefinition = uiDef;\n this.runtimeService.uiDefinitionProperties = uiDef.properties ?? {};\n }\n }),\n );\n }\n\n private init(quote: QuoteDraft): void {\n const contextProperties = this.contextService.resolve().properties;\n const productId = contextProperties.productId;\n\n if (!productId) {\n return;\n }\n\n const lineItemId = this.getLineItemId(quote, productId, contextProperties.lineItemId);\n const currentStateItem = quote.currentState.find(({ id }) => id === lineItemId);\n\n if (currentStateItem) {\n this.configurationService.updateCurrentStates({\n configurableRamp: currentStateItem,\n currentState: quote.currentState,\n asset: this.getAsset(quote, currentStateItem),\n });\n }\n\n const { offeringId } = currentStateItem ?? {};\n\n this.runtimeService\n .init({ productId, offeringId })\n .pipe(\n tap(context => (this.uiDefinition = context?.uiDefinition)),\n switchMap(() => this.customize(productId)),\n this.throwIfNoUIDefinition(),\n switchMap(() => this.configurationService.configure()),\n tap(() => this.state$.next({ loading: false, failure: false })),\n catchError(error => {\n if (!this.uiDefinition?.properties?.suppressToastMessages) {\n this.messageService.add({ severity: 'error', summary: error });\n }\n\n this.state$.next({ loading: false, failure: true });\n return of();\n }),\n takeUntil(this.destroy$),\n )\n .subscribe();\n }\n\n private throwIfNoUIDefinition() {\n return <T>(source$: Observable<T>): Observable<T> => {\n return source$.pipe(\n switchMap(() => {\n if (!this.uiDefinition) {\n return throwError(() => 'Product does not have Configuration UI');\n }\n\n return source$;\n }),\n );\n };\n }\n\n private getLineItemId(quote: QuoteDraft, productId: string, lineItemId?: string): string | undefined {\n // search by lineItemId first\n let id: string | undefined = quote.currentState.find(li => li.id === lineItemId)?.id;\n\n if (!id && this.quoteDraftService.isStandalone) {\n id = quote.currentState.find(li => li.productId === productId)?.id;\n }\n\n return id;\n }\n\n private getAsset(quote: QuoteDraft, lineItem: LineItem): LineItem | undefined {\n return quote.initialState.find(a => a.id === lineItem.openOrderLineItemId || a.id === lineItem.assetId);\n }\n}\n","<ng-container *ngIf=\"state$ | async as state\">\n <vl-loader *ngIf=\"state.loading; else content\" [label]=\"'Loading UI'\"></vl-loader>\n\n <ng-template #content>\n <ng-container *ngIf=\"!state.failure\">\n <vl-cms-preview [uiDefinition]=\"uiDefinition\"></vl-cms-preview>\n </ng-container>\n </ng-template>\n</ng-container>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { LoaderModule } from '@veloce/components';\nimport { PreviewModule } from '@veloce/sdk/cms';\nimport { ProductComponent } from './product.component';\n\n@NgModule({\n declarations: [ProductComponent],\n imports: [CommonModule, PreviewModule, LoaderModule],\n exports: [ProductComponent],\n})\nexport class ProductModule {}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\n\n@Component({\n selector: 'vl-flow-record-not-found',\n templateUrl: './record-not-found.component.html',\n styleUrls: ['./record-not-found.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RecordNotFoundComponent {\n message: string;\n subMessage = '';\n\n constructor(private router: Router, private route: ActivatedRoute) {\n const navigation = this.router.getCurrentNavigation();\n const { state } = navigation?.extras || {};\n\n this.message = state?.message;\n if (typeof this.message === 'string') {\n this.subMessage = this.message.includes('/describe') ? 'A potential problem with permissions' : '';\n }\n }\n}\n","<div class=\"row\">\n <div class=\"col-md-12\">\n <div class=\"message-wrapper\">\n <div class=\"msg\">\n <div *ngIf=\"message; else defaultMessage\" class=\"message-title\">\n <p>{{ message }}</p>\n\n <p *ngIf=\"subMessage\" class=\"message-title\">{{ subMessage }}</p>\n </div>\n\n <ng-template #defaultMessage>Record not found</ng-template>\n </div>\n </div>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { RecordNotFoundComponent } from './record-not-found.component';\n\nconst routes: Routes = [{ path: '', component: RecordNotFoundComponent }];\n\n@NgModule({\n declarations: [RecordNotFoundComponent],\n imports: [CommonModule, RouterModule.forChild(routes)],\n})\nexport class RecordNotFoundModule {}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Inject,\n OnDestroy,\n OnInit,\n Optional,\n} from '@angular/core';\nimport { UITemplatesApiService } from '@veloce/api';\nimport { ToastService, ToastType } from '@veloce/components';\nimport {\n ComponentAttachments,\n TemplateComponent,\n UITemplate,\n UITemplateComponentType,\n UITemplateType,\n} from '@veloce/core';\nimport { ContextService, UIDefinition } from '@veloce/sdk/core';\nimport { BehaviorSubject, catchError, map, Observable, of, Subject, switchMap, takeUntil, tap } from 'rxjs';\nimport { FlowCustomization, FLOW_CUSTOMIZATION } from '../../types';\n\ninterface State {\n loading: boolean;\n failure: boolean;\n}\n\n@Component({\n selector: 'vl-flow-shopping-cart',\n templateUrl: './shopping-cart.component.html',\n styleUrls: ['./shopping-cart.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ShoppingCartComponent implements OnInit, OnDestroy {\n public uiDefinition?: UIDefinition = undefined;\n public state$ = new BehaviorSubject<State>({ loading: true, failure: false });\n\n private templateApiName = '';\n private destroyed$ = new Subject<void>();\n\n constructor(\n private templatesApi: UITemplatesApiService,\n private contextService: ContextService,\n private cdr: ChangeDetectorRef,\n private toastService: ToastService,\n @Optional() @Inject(FLOW_CUSTOMIZATION) private customizationService?: FlowCustomization,\n ) {\n this.templateApiName = this.contextService.resolve().properties.cartTemplateApiName ?? '';\n }\n\n ngOnInit(): void {\n this.generateUIDefinition$()\n .pipe(\n tap(uiDef => {\n if (!uiDef) {\n throw new Error(`Component with name '${this.templateApiName}' not found.`);\n }\n\n this.uiDefinition = uiDef;\n this.state$.next({ loading: false, failure: false });\n }),\n catchError(err => {\n const message = 'Failed to resolve Shopping cart component. ' + (err.message ?? '');\n this.toastService.add({ severity: ToastType.error, summary: message, sticky: true });\n\n this.uiDefinition = undefined;\n this.state$.next({ loading: false, failure: true });\n return of();\n }),\n takeUntil(this.destroyed$),\n )\n .subscribe(() => this.cdr.detectChanges());\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n this.destroyed$.complete();\n }\n\n private getTemplateRootComponent$(template: UITemplate): Observable<TemplateComponent | undefined> {\n return this.templatesApi\n .fetchComponents$(template.id)\n .pipe(map(components => components.find(c => c.type === UITemplateComponentType.ROOT) ?? undefined));\n }\n\n private getLocalShoppingCartComponentMeta$(): Observable<ComponentAttachments | undefined> {\n if (!this.customizationService?.getShoppingCartComponent) {\n return of(undefined);\n }\n\n return this.customizationService?.getShoppingCartComponent(this.templateApiName).pipe(\n map(component => {\n if (!component) {\n return;\n }\n\n return <ComponentAttachments>{\n html: component.html,\n css: component.css,\n js: component.js,\n json: component.json,\n };\n }),\n );\n }\n\n private getShoppingCartComponentMeta$() {\n return this.templatesApi.fetchTemplates$().pipe(\n map<UITemplate[], UITemplate | undefined>(templates =>\n templates.find(\n template => template.type === UITemplateType.SHOPPING_CART && template.name === this.templateApiName,\n ),\n ),\n switchMap(template => (template ? this.getTemplateRootComponent$(template) : of(undefined))),\n switchMap(component =>\n component ? this.templatesApi.fetchComponentAttachments$(component.uiTemplateId, component) : of(undefined),\n ),\n );\n }\n\n private generateUIDefinition$(): Observable<UIDefinition | undefined> {\n return of(undefined).pipe(\n tap(() => {\n if (!this.templateApiName) {\n throw new Error(\"Flow Query parameter 'cartTemplateApiName' is missing.\");\n }\n }),\n switchMap(() => this.getLocalShoppingCartComponentMeta$()),\n switchMap(meta => (meta ? of(meta) : this.getShoppingCartComponentMeta$())),\n map(meta => {\n if (!meta) {\n return;\n }\n\n const uiDef: UIDefinition = {\n name: '',\n createdTimestamp: 0,\n primary: true,\n type: 'DEFAULT',\n version: 2,\n children: [\n {\n children: [],\n template: meta.html && btoa(meta.html),\n script: meta.js && btoa(meta.js),\n styles: meta.css && btoa(meta.css),\n },\n ],\n };\n\n return uiDef;\n }),\n );\n }\n}\n","<ng-container *ngIf=\"state$ | async as state\">\n <vl-loader *ngIf=\"state.loading; else content\" [label]=\"'Loading UI'\"></vl-loader>\n\n <ng-template #content>\n <ng-container *ngIf=\"!state.failure\">\n <vl-cms-preview [uiDefinition]=\"uiDefinition\"></vl-cms-preview>\n </ng-container>\n </ng-template>\n</ng-container>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { LoaderModule } from '@veloce/components';\nimport { PreviewModule } from '@veloce/sdk/cms';\nimport { ShoppingCartComponent } from './shopping-cart.component';\n\n@NgModule({\n declarations: [ShoppingCartComponent],\n imports: [CommonModule, PreviewModule, LoaderModule],\n exports: [ShoppingCartComponent],\n})\nexport class ShoppingCartModule {}\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, Resolve, Router } from '@angular/router';\nimport { FlowsApiService } from '@veloce/api';\nimport { FlowQueryParams } from '@veloce/core';\nimport { ContextService } from '@veloce/sdk/core';\nimport { Dictionary } from 'lodash';\nimport { map } from 'rxjs/operators';\nimport { FlowRouterService } from '../services/flow-router.service';\n\n@Injectable()\nexport class FlowResolver implements Resolve<Promise<boolean>> {\n constructor(\n private router: Router,\n private flowsApiService: FlowsApiService,\n private routerService: FlowRouterService,\n private contextService: ContextService,\n ) {}\n\n private handleError(\n route: ActivatedRouteSnapshot,\n message?: string,\n queryParams?: Dictionary<any>,\n ): Promise<boolean> {\n const parentUrl = this.routerService.getFlowRootPath(route);\n return this.router.navigate([parentUrl, '404'], {\n queryParams,\n state: {\n message: message,\n },\n });\n }\n\n resolve(route: ActivatedRouteSnapshot) {\n const { queryParams } = route;\n const { flowId } = queryParams;\n\n if (!flowId) {\n return this.handleError(route);\n }\n\n return this.flowsApiService.getFlow(flowId).pipe(\n map(flow => {\n if (!flow) {\n return this.handleError(route, `Flow with flowId=${flowId} is not defined`);\n }\n\n const { properties } = flow;\n const { queryParams: flowQueryParams, entryPath } = properties;\n const isProductFlow = entryPath.includes('/product');\n const mergedParams = {\n ...queryParams,\n ...flowQueryParams,\n ...(<FlowQueryParams>{\n ...(isProductFlow && { standalone: true }),\n }),\n };\n\n const contextProperties = Object.entries(mergedParams).reduce<Dictionary<string>>(\n (trunk, [key, value]) => ({ ...trunk, [key]: String(value) }),\n {},\n );\n\n this.contextService.update({ properties: contextProperties });\n\n const parentUrl = this.routerService.getFlowRootPath(route);\n const entryUrl = String(entryPath ?? '')\n .split('/')\n .filter(Boolean);\n\n return this.router\n .navigate([parentUrl, ...entryUrl], {\n queryParams: mergedParams,\n replaceUrl: true,\n })\n .catch(e => {\n const message = e instanceof HttpErrorResponse ? e.error.message : e;\n return this.handleError(route, message, mergedParams);\n });\n }),\n );\n }\n}\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, Resolve, Router } from '@angular/router';\nimport { ContextService, FlowConfigurationService, QuoteDraftService } from '@veloce/sdk/core';\nimport { catchError, from, Observable, of, switchMap, tap } from 'rxjs';\nimport { FlowRouterService } from '../services/flow-router.service';\n\n@Injectable()\nexport class QuoteResolver implements Resolve<void | boolean> {\n constructor(\n private router: Router,\n private quoteDraftService: QuoteDraftService,\n private routerService: FlowRouterService,\n private contextService: ContextService,\n private flowConfiguration: FlowConfigurationService,\n ) {}\n\n private handleError(route: ActivatedRouteSnapshot, message: string): Observable<boolean> {\n const parentUrl = this.routerService.getFlowRootPath(route);\n return from(this.router.navigate([parentUrl, '404'], { state: { message } }));\n }\n\n private calculate$(): Observable<void> {\n const quoteDraft = this.quoteDraftService.quoteDraft;\n\n if (!this.quoteDraftService.isStandalone && quoteDraft) {\n return this.flowConfiguration.calculate$(quoteDraft);\n }\n\n return of(undefined);\n }\n\n resolve(route: ActivatedRouteSnapshot): Observable<void | boolean> {\n const { headerId } = this.contextService.resolve();\n const quote = this.quoteDraftService.quoteDraft;\n\n if (quote && quote.quoteId === headerId) {\n return of(true);\n }\n\n const { queryParams } = route;\n\n return this.quoteDraftService.init(headerId, queryParams).pipe(\n switchMap(() => this.calculate$()),\n tap(() => (this.quoteDraftService.isInitialized = true)),\n catchError(e => {\n const message = e instanceof HttpErrorResponse ? e.error.message : e;\n return this.handleError(route, message);\n }),\n );\n }\n}\n","import { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { VELOCE_FLOW_ROOT_ROUTE } from './constants';\nimport { FlowComponent } from './flow.component';\nimport { ContextGuard } from './guards/context.guard';\nimport { ProductUnloadGuard } from './guards/product-unload.guard';\nimport { RootGuard } from './guards/root.guard';\nimport { CatalogComponent } from './pages/catalog/catalog.component';\nimport { CatalogModule } from './pages/catalog/catalog.module';\nimport { DebugModule } from './pages/debug/debug.module';\nimport { LegacyProductComponent } from './pages/legacy-product/legacy-product.component';\nimport { LegacyProductModule } from './pages/legacy-product/legacy-product.module';\nimport { ProductComponent } from './pages/product/product.component';\nimport { ProductModule } from './pages/product/product.module';\nimport { RecordNotFoundModule } from './pages/record-not-found/record-not-found.module';\nimport { ShoppingCartComponent } from './pages/shopping-cart/shopping-cart.component';\nimport { ShoppingCartModule } from './pages/shopping-cart/shopping-cart.module';\nimport { FlowResolver } from './resolvers/flow.resolver';\nimport { QuoteResolver } from './resolvers/quote.resolver';\nimport { FlowRouterService } from './services/flow-router.service';\nimport { RouteWithId } from './types/route.types';\n\nconst rootRoute: RouteWithId = {\n id: VELOCE_FLOW_ROOT_ROUTE,\n path: '',\n component: FlowComponent,\n canActivate: [RootGuard],\n canDeactivate: [RootGuard],\n children: [\n {\n path: 'flows',\n runGuardsAndResolvers: 'paramsOrQueryParamsChange',\n resolve: { quote: FlowResolver },\n canActivate: [ContextGuard],\n children: [],\n },\n {\n path: 'legacy',\n children: [\n {\n path: 'product',\n component: LegacyProductComponent,\n runGuardsAndResolvers: 'paramsOrQueryParamsChange',\n resolve: { quote: QuoteResolver },\n canActivate: [ContextGuard],\n },\n ],\n },\n {\n path: 'product',\n component: ProductComponent,\n runGuardsAndResolvers: 'paramsOrQueryParamsChange',\n resolve: { quote: QuoteResolver },\n canActivate: [ContextGuard],\n canDeactivate: [ProductUnloadGuard],\n data: { showHeader: true },\n },\n {\n path: 'cart',\n component: ShoppingCartComponent,\n runGuardsAndResolvers: 'paramsOrQueryParamsChange',\n resolve: { quote: QuoteResolver },\n canActivate: [ContextGuard],\n data: { showHeader: true },\n },\n {\n path: 'catalog',\n component: CatalogComponent,\n runGuardsAndResolvers: 'paramsOrQueryParamsChange',\n resolve: { quote: QuoteResolver },\n canActivate: [ContextGuard],\n data: { showHeader: true },\n },\n {\n path: 'debug',\n loadChildren: () => DebugModule,\n },\n {\n path: '404',\n loadChildren: () => RecordNotFoundModule,\n },\n ],\n};\n\n@NgModule({\n imports: [RouterModule.forChild([rootRoute]), ProductModule, LegacyProductModule, ShoppingCartModule, CatalogModule],\n exports: [RouterModule],\n providers: [FlowRouterService, RootGuard, ContextGuard, ProductUnloadGuard, FlowResolver, QuoteResolver],\n})\nexport class FlowRoutingModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ApiModule } from '@veloce/api';\nimport { LetDirectiveModule, LoaderModule } from '@veloce/components';\nimport { LauncherModule } from '@veloce/sdk/cms';\nimport { SdkCoreModule } from '@veloce/sdk/core';\nimport { FlowDialogModule } from './components/dialog/dialog.module';\nimport { DocGenModule } from './components/doc-gen/doc-gen.module';\nimport { FlowHeaderModule } from './components/header/header.module';\nimport { FlowRoutingModule } from './flow-routing.module';\nimport { FlowComponent } from './flow.component';\nimport { FlowService } from './services';\nimport { FlowDocGenService } from './services/doc-gen.service';\nimport { FlowDialogService } from './services/flow-dialog.service';\n\n@NgModule({\n declarations: [FlowComponent],\n imports: [\n CommonModule,\n FlowRoutingModule,\n ApiModule,\n LauncherModule,\n LoaderModule,\n FlowHeaderModule,\n FlowDialogModule,\n SdkCoreModule,\n DocGenModule,\n LetDirectiveModule,\n ],\n providers: [FlowService, FlowDialogService, FlowDocGenService],\n})\nexport class FlowModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["Component","ChangeDetectionStrategy","CommonModule","ButtonModule","NgModule","Subject","BehaviorSubject","FlowAction","tap","takeUntil","Injectable","first","catchError","ToastType","of","map","UITemplateComponentType","UITemplateType","switchMap","extractElementMetadata","extendElementMetadata","PreviewModule","filter","NavigationEnd","shareReplay","startWith","NavigationStart","NavigationCancel","NavigationError","distinctUntilChanged","FormGroup","combineLatest","FormControl","OverlayPanel","ViewChild","Input","ReactiveFormsModule","OverlayPanelModule","LetDirectiveModule","InputNumberModule","ConfigurationContextMode","OpenDocGenAction","finalize","noop","TooltipModule","SplitButtonModule","HttpErrorResponse","from","InjectionToken","Optional","Inject","LoaderModule","routes","FormsModule","RadioButtonModule","InputTextModule","DropdownModule","RouterModule","take","EntityUtil","RuntimeOperation","RuntimeModule","throwError","ApiModule","LauncherModule","SdkCoreModule"],"mappings":"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"}