@veloceapps/sdk 5.0.7 → 5.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/bundles/veloce-sdk-cms.umd.js +41 -4
  2. package/bundles/veloce-sdk-cms.umd.js.map +1 -1
  3. package/bundles/veloce-sdk.umd.js +469 -192
  4. package/bundles/veloce-sdk.umd.js.map +1 -1
  5. package/cms/cms.actions.d.ts +8 -2
  6. package/cms/types/common.types.d.ts +5 -0
  7. package/cms/types/index.d.ts +1 -0
  8. package/cms/types/metrics.types.d.ts +5 -0
  9. package/cms/utils/elements-resolver.d.ts +2 -1
  10. package/cms/vendor-map.d.ts +4 -0
  11. package/esm2015/cms/cms.actions.js +11 -1
  12. package/esm2015/cms/types/common.types.js +1 -1
  13. package/esm2015/cms/types/index.js +2 -1
  14. package/esm2015/cms/types/metrics.types.js +2 -0
  15. package/esm2015/cms/utils/element.utils.js +6 -1
  16. package/esm2015/cms/utils/elements-resolver.js +21 -4
  17. package/esm2015/src/components/header/header.component.js +7 -16
  18. package/esm2015/src/components/header/header.module.js +6 -2
  19. package/esm2015/src/components/header/metrics/index.js +2 -0
  20. package/esm2015/src/components/header/metrics/metrics.component.js +216 -0
  21. package/esm2015/src/components/header/metrics/metrics.definitions.js +9 -0
  22. package/esm2015/src/components/header/metrics/metrics.module.js +64 -0
  23. package/esm2015/src/services/flow-router.service.js +13 -1
  24. package/esm2015/src/services/flow.service.js +7 -1
  25. package/fesm2015/veloce-sdk-cms.js +39 -5
  26. package/fesm2015/veloce-sdk-cms.js.map +1 -1
  27. package/fesm2015/veloce-sdk.js +356 -85
  28. package/fesm2015/veloce-sdk.js.map +1 -1
  29. package/package.json +1 -1
  30. package/src/components/header/header.component.d.ts +0 -8
  31. package/src/components/header/header.module.d.ts +2 -1
  32. package/src/components/header/metrics/index.d.ts +1 -0
  33. package/src/components/header/metrics/metrics.component.d.ts +49 -0
  34. package/src/components/header/metrics/metrics.definitions.d.ts +4 -0
  35. package/src/components/header/metrics/metrics.module.d.ts +17 -0
  36. package/src/services/flow-router.service.d.ts +1 -0
@@ -1,8 +1,8 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/common'), require('@angular/core'), require('@veloce/api'), require('@veloce/components'), require('@veloce/sdk/cms'), require('@veloce/sdk/core'), require('primeng/button'), require('primeng/dynamicdialog'), require('@veloce/core'), require('rxjs'), require('primeng/overlaypanel'), require('primeng/splitbutton'), require('primeng/tooltip'), require('@angular/forms'), require('primeng/inputnumber'), require('primeng/virtualscroller'), require('@angular/router'), require('primeng/api'), require('@angular/common/http'), require('primeng/dropdown'), require('primeng/inputtext'), require('primeng/radiobutton'), require('rxjs/operators'), require('@veloce/sdk/runtime'), require('ngx-bootstrap/tooltip')) :
3
- typeof define === 'function' && define.amd ? define('@veloce/sdk', ['exports', '@angular/common', '@angular/core', '@veloce/api', '@veloce/components', '@veloce/sdk/cms', '@veloce/sdk/core', 'primeng/button', 'primeng/dynamicdialog', '@veloce/core', 'rxjs', 'primeng/overlaypanel', 'primeng/splitbutton', 'primeng/tooltip', '@angular/forms', 'primeng/inputnumber', 'primeng/virtualscroller', '@angular/router', 'primeng/api', '@angular/common/http', 'primeng/dropdown', 'primeng/inputtext', 'primeng/radiobutton', 'rxjs/operators', '@veloce/sdk/runtime', 'ngx-bootstrap/tooltip'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.veloce = global.veloce || {}, global.veloce.sdk = {}), global.ng.common, global.ng.core, global["@veloce/api"], global["@veloce/components"], global.veloce.sdk.cms, global.veloce.sdk.core, global["primeng/button"], global["primeng/dynamicdialog"], global["@veloce/core"], global.rxjs, global["primeng/overlaypanel"], global.i9, global["primeng/tooltip"], global.ng.forms, global["primeng/inputnumber"], global.i4$1, global.ng.router, global["primeng/api"], global.ng.common.http, global["primeng/dropdown"], global["primeng/inputtext"], global["primeng/radiobutton"], global.rxjs.operators, global.veloce.sdk.runtime, global["ngx-bootstrap/tooltip"]));
5
- })(this, (function (exports, i5, i0, i2$1, i3, i4, i1$1, i2, i1, core, rxjs, i3$1, i9, i12, i6, i6$1, i4$1, i1$2, i2$2, http, dropdown, i7, i5$1, operators, i4$2, i1$3) { 'use strict';
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/common'), require('@angular/core'), require('@veloce/api'), require('@veloce/components'), require('@veloce/sdk/cms'), require('@veloce/sdk/core'), require('primeng/button'), require('primeng/dynamicdialog'), require('@veloce/core'), require('rxjs'), require('primeng/overlaypanel'), require('primeng/splitbutton'), require('primeng/tooltip'), require('@angular/forms'), require('primeng/inputnumber'), require('primeng/virtualscroller'), require('@angular/router'), require('primeng/api'), require('@angular/cdk/drag-drop'), require('rxjs/operators'), require('lodash'), require('@veloce/core/forms'), require('primeng/sidebar'), require('primeng/checkbox'), require('primeng/inputtext'), require('@angular/common/http'), require('primeng/dropdown'), require('primeng/radiobutton'), require('@veloce/sdk/runtime'), require('ngx-bootstrap/tooltip')) :
3
+ typeof define === 'function' && define.amd ? define('@veloce/sdk', ['exports', '@angular/common', '@angular/core', '@veloce/api', '@veloce/components', '@veloce/sdk/cms', '@veloce/sdk/core', 'primeng/button', 'primeng/dynamicdialog', '@veloce/core', 'rxjs', 'primeng/overlaypanel', 'primeng/splitbutton', 'primeng/tooltip', '@angular/forms', 'primeng/inputnumber', 'primeng/virtualscroller', '@angular/router', 'primeng/api', '@angular/cdk/drag-drop', 'rxjs/operators', 'lodash', '@veloce/core/forms', 'primeng/sidebar', 'primeng/checkbox', 'primeng/inputtext', '@angular/common/http', 'primeng/dropdown', 'primeng/radiobutton', '@veloce/sdk/runtime', 'ngx-bootstrap/tooltip'], factory) :
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.veloce = global.veloce || {}, global.veloce.sdk = {}), global.ng.common, global.ng.core, global["@veloce/api"], global["@veloce/components"], global.veloce.sdk.cms, global.veloce.sdk.core, global["primeng/button"], global["primeng/dynamicdialog"], global["@veloce/core"], global.rxjs, global["primeng/overlaypanel"], global.i10$1, global["primeng/tooltip"], global.ng.forms, global["primeng/inputnumber"], global.i4, global.ng.router, global["primeng/api"], global.ng.cdk.dragDrop, global.rxjs.operators, global.lodash, global.forms, global.i4$1, global.i6$1, global["primeng/inputtext"], global.ng.common.http, global["primeng/dropdown"], global["primeng/radiobutton"], global.veloce.sdk.runtime, global["ngx-bootstrap/tooltip"]));
5
+ })(this, (function (exports, i5$1, i0, i2, i3, i1$1, i1$2, i5, i1, core, rxjs, i3$1, i10$1, i12$1, i10, i6, i4, i1$3, i2$1, i12, operators, lodash, forms, i4$1, i6$1, i11, http, dropdown, i5$2, i4$2, i1$4) { 'use strict';
6
6
 
7
7
  function _interopNamespace(e) {
8
8
  if (e && e.__esModule) return e;
@@ -22,26 +22,29 @@
22
22
  return Object.freeze(n);
23
23
  }
24
24
 
25
- var i5__namespace = /*#__PURE__*/_interopNamespace(i5);
25
+ var i5__namespace$1 = /*#__PURE__*/_interopNamespace(i5$1);
26
26
  var i0__namespace = /*#__PURE__*/_interopNamespace(i0);
27
- var i2__namespace$1 = /*#__PURE__*/_interopNamespace(i2$1);
27
+ var i2__namespace = /*#__PURE__*/_interopNamespace(i2);
28
28
  var i3__namespace = /*#__PURE__*/_interopNamespace(i3);
29
- var i4__namespace = /*#__PURE__*/_interopNamespace(i4);
30
29
  var i1__namespace$1 = /*#__PURE__*/_interopNamespace(i1$1);
31
- var i2__namespace = /*#__PURE__*/_interopNamespace(i2);
30
+ var i1__namespace$2 = /*#__PURE__*/_interopNamespace(i1$2);
31
+ var i5__namespace = /*#__PURE__*/_interopNamespace(i5);
32
32
  var i1__namespace = /*#__PURE__*/_interopNamespace(i1);
33
33
  var i3__namespace$1 = /*#__PURE__*/_interopNamespace(i3$1);
34
- var i9__namespace = /*#__PURE__*/_interopNamespace(i9);
34
+ var i10__namespace$1 = /*#__PURE__*/_interopNamespace(i10$1);
35
+ var i12__namespace$1 = /*#__PURE__*/_interopNamespace(i12$1);
36
+ var i10__namespace = /*#__PURE__*/_interopNamespace(i10);
37
+ var i6__namespace = /*#__PURE__*/_interopNamespace(i6);
38
+ var i4__namespace = /*#__PURE__*/_interopNamespace(i4);
39
+ var i1__namespace$3 = /*#__PURE__*/_interopNamespace(i1$3);
40
+ var i2__namespace$1 = /*#__PURE__*/_interopNamespace(i2$1);
35
41
  var i12__namespace = /*#__PURE__*/_interopNamespace(i12);
36
- var i6__namespace$1 = /*#__PURE__*/_interopNamespace(i6);
37
- var i6__namespace = /*#__PURE__*/_interopNamespace(i6$1);
38
42
  var i4__namespace$1 = /*#__PURE__*/_interopNamespace(i4$1);
39
- var i1__namespace$2 = /*#__PURE__*/_interopNamespace(i1$2);
40
- var i2__namespace$2 = /*#__PURE__*/_interopNamespace(i2$2);
41
- var i7__namespace = /*#__PURE__*/_interopNamespace(i7);
42
- var i5__namespace$1 = /*#__PURE__*/_interopNamespace(i5$1);
43
+ var i6__namespace$1 = /*#__PURE__*/_interopNamespace(i6$1);
44
+ var i11__namespace = /*#__PURE__*/_interopNamespace(i11);
45
+ var i5__namespace$2 = /*#__PURE__*/_interopNamespace(i5$2);
43
46
  var i4__namespace$2 = /*#__PURE__*/_interopNamespace(i4$2);
44
- var i1__namespace$3 = /*#__PURE__*/_interopNamespace(i1$3);
47
+ var i1__namespace$4 = /*#__PURE__*/_interopNamespace(i1$4);
45
48
 
46
49
  var VELOCE_FLOW_ROOT_ROUTE = 'VELOCE_FLOW_ROOT_ROUTE';
47
50
 
@@ -60,7 +63,7 @@
60
63
  return FlowDialogComponent;
61
64
  }());
62
65
  FlowDialogComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowDialogComponent, deps: [{ token: i1__namespace.DynamicDialogConfig }, { token: i1__namespace.DynamicDialogRef }], target: i0__namespace.ɵɵFactoryTarget.Component });
63
- FlowDialogComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: FlowDialogComponent, selector: "vl-flow-dialog", ngImport: i0__namespace, template: "<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", styles: [":host{display:flex;flex-direction:column;width:100%}:host .description{flex:1;padding:0 24px 24px;font-weight:400;font-size:12px;line-height:16px;color:var(--vl-text-color-deep-accent)}:host .form-actions{border-top:1px solid var(--vl-border-color);padding:1.5rem 2.2rem;display:flex;justify-content:flex-end;width:100%;grid-gap:10px;gap:10px}\n"], components: [{ type: i2__namespace.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "style", "styleClass", "badgeClass"], outputs: ["onClick", "onFocus", "onBlur"] }], directives: [{ type: i5__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
66
+ FlowDialogComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: FlowDialogComponent, selector: "vl-flow-dialog", ngImport: i0__namespace, template: "<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", styles: [":host{display:flex;flex-direction:column;width:100%}:host .description{flex:1;padding:0 24px 24px;font-weight:400;font-size:12px;line-height:16px;color:var(--vl-text-color-deep-accent)}:host .form-actions{border-top:1px solid var(--vl-border-color);padding:1.5rem 2.2rem;display:flex;justify-content:flex-end;width:100%;grid-gap:10px;gap:10px}\n"], components: [{ type: i5__namespace.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "style", "styleClass", "badgeClass"], outputs: ["onClick", "onFocus", "onBlur"] }], directives: [{ type: i5__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
64
67
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowDialogComponent, decorators: [{
65
68
  type: i0.Component,
66
69
  args: [{
@@ -77,13 +80,13 @@
77
80
  return FlowDialogModule;
78
81
  }());
79
82
  FlowDialogModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowDialogModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
80
- FlowDialogModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowDialogModule, declarations: [FlowDialogComponent], imports: [i5.CommonModule, i2.ButtonModule], exports: [FlowDialogComponent] });
81
- FlowDialogModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowDialogModule, imports: [[i5.CommonModule, i2.ButtonModule]] });
83
+ FlowDialogModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowDialogModule, declarations: [FlowDialogComponent], imports: [i5$1.CommonModule, i5.ButtonModule], exports: [FlowDialogComponent] });
84
+ FlowDialogModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowDialogModule, imports: [[i5$1.CommonModule, i5.ButtonModule]] });
82
85
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowDialogModule, decorators: [{
83
86
  type: i0.NgModule,
84
87
  args: [{
85
88
  declarations: [FlowDialogComponent],
86
- imports: [i5.CommonModule, i2.ButtonModule],
89
+ imports: [i5$1.CommonModule, i5.ButtonModule],
87
90
  exports: [FlowDialogComponent],
88
91
  }]
89
92
  }] });
@@ -102,21 +105,21 @@
102
105
  FlowDocGenService.prototype.initSubscriptions = function () {
103
106
  var _this = this;
104
107
  this.integrationState
105
- .listen$(i4.FlowAction.FLOW_OPEN_DOC_GEN)
108
+ .listen$(i1$1.FlowAction.FLOW_OPEN_DOC_GEN)
106
109
  .pipe(rxjs.tap(function () { return _this.isVisibleSubj$.next(true); }), rxjs.takeUntil(this.cleanup$))
107
110
  .subscribe();
108
111
  this.integrationState
109
- .listen$(i4.FlowAction.FLOW_CLOSE_DOC_GEN)
112
+ .listen$(i1$1.FlowAction.FLOW_CLOSE_DOC_GEN)
110
113
  .pipe(rxjs.tap(function () { return _this.isVisibleSubj$.next(false); }), rxjs.takeUntil(this.cleanup$))
111
114
  .subscribe();
112
115
  };
113
116
  return FlowDocGenService;
114
117
  }());
115
- FlowDocGenService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowDocGenService, deps: [{ token: i4__namespace.IntegrationState }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
118
+ FlowDocGenService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowDocGenService, deps: [{ token: i1__namespace$1.IntegrationState }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
116
119
  FlowDocGenService.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowDocGenService });
117
120
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowDocGenService, decorators: [{
118
121
  type: i0.Injectable
119
- }], ctorParameters: function () { return [{ type: i4__namespace.IntegrationState }]; } });
122
+ }], ctorParameters: function () { return [{ type: i1__namespace$1.IntegrationState }]; } });
120
123
 
121
124
  var DocGenComponent = /** @class */ (function () {
122
125
  function DocGenComponent(quoteDraftService, contextService, templatesApi, docGenService, toastService) {
@@ -183,8 +186,8 @@
183
186
  var headerId = (_a = _this.contextService.resolve().properties.Id) !== null && _a !== void 0 ? _a : null;
184
187
  var script = meta.js;
185
188
  if (script) {
186
- var metadata = i4.extractElementMetadata(script);
187
- script = i4.extendElementMetadata(script, {
189
+ var metadata = i1$1.extractElementMetadata(script);
190
+ script = i1$1.extendElementMetadata(script, {
188
191
  inputs: Object.assign(Object.assign({}, metadata.inputs), { Id: headerId ? "\"" + headerId + "\"" : null }),
189
192
  });
190
193
  }
@@ -208,8 +211,8 @@
208
211
  };
209
212
  return DocGenComponent;
210
213
  }());
211
- DocGenComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: DocGenComponent, deps: [{ token: i1__namespace$1.QuoteDraftService }, { token: i1__namespace$1.ContextService }, { token: i2__namespace$1.UITemplatesApiService }, { token: FlowDocGenService }, { token: i3__namespace.ToastService }], target: i0__namespace.ɵɵFactoryTarget.Component });
212
- DocGenComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: DocGenComponent, selector: "vl-flow-doc-gen", ngImport: i0__namespace, template: "<ng-container *ngIf=\"isVisible$ | async\">\n <ng-container *ngIf=\"uiDefinition$ | async as uiDefinition\">\n <vl-cms-preview [uiDefinition]=\"uiDefinition\"></vl-cms-preview>\n </ng-container>\n</ng-container>\n", styles: [":host,vl-cms-preview{display:contents}\n"], components: [{ type: i4__namespace.PreviewComponent, selector: "vl-cms-preview", inputs: ["modelId", "uiDefinition", "clearState"] }], directives: [{ type: i5__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i5__namespace.AsyncPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
214
+ DocGenComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: DocGenComponent, deps: [{ token: i1__namespace$2.QuoteDraftService }, { token: i1__namespace$2.ContextService }, { token: i2__namespace.UITemplatesApiService }, { token: FlowDocGenService }, { token: i3__namespace.ToastService }], target: i0__namespace.ɵɵFactoryTarget.Component });
215
+ DocGenComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: DocGenComponent, selector: "vl-flow-doc-gen", ngImport: i0__namespace, template: "<ng-container *ngIf=\"isVisible$ | async\">\n <ng-container *ngIf=\"uiDefinition$ | async as uiDefinition\">\n <vl-cms-preview [uiDefinition]=\"uiDefinition\"></vl-cms-preview>\n </ng-container>\n</ng-container>\n", styles: [":host,vl-cms-preview{display:contents}\n"], components: [{ type: i1__namespace$1.PreviewComponent, selector: "vl-cms-preview", inputs: ["modelId", "uiDefinition", "clearState"] }], directives: [{ type: i5__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i5__namespace$1.AsyncPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
213
216
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: DocGenComponent, decorators: [{
214
217
  type: i0.Component,
215
218
  args: [{
@@ -218,7 +221,7 @@
218
221
  styleUrls: ['./doc-gen.component.scss'],
219
222
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
220
223
  }]
221
- }], ctorParameters: function () { return [{ type: i1__namespace$1.QuoteDraftService }, { type: i1__namespace$1.ContextService }, { type: i2__namespace$1.UITemplatesApiService }, { type: FlowDocGenService }, { type: i3__namespace.ToastService }]; } });
224
+ }], ctorParameters: function () { return [{ type: i1__namespace$2.QuoteDraftService }, { type: i1__namespace$2.ContextService }, { type: i2__namespace.UITemplatesApiService }, { type: FlowDocGenService }, { type: i3__namespace.ToastService }]; } });
222
225
 
223
226
  var DocGenModule = /** @class */ (function () {
224
227
  function DocGenModule() {
@@ -226,13 +229,13 @@
226
229
  return DocGenModule;
227
230
  }());
228
231
  DocGenModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: DocGenModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
229
- DocGenModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: DocGenModule, declarations: [DocGenComponent], imports: [i5.CommonModule, i4.PreviewModule], exports: [DocGenComponent] });
230
- DocGenModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: DocGenModule, imports: [[i5.CommonModule, i4.PreviewModule]] });
232
+ DocGenModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: DocGenModule, declarations: [DocGenComponent], imports: [i5$1.CommonModule, i1$1.PreviewModule], exports: [DocGenComponent] });
233
+ DocGenModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: DocGenModule, imports: [[i5$1.CommonModule, i1$1.PreviewModule]] });
231
234
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: DocGenModule, decorators: [{
232
235
  type: i0.NgModule,
233
236
  args: [{
234
237
  declarations: [DocGenComponent],
235
- imports: [i5.CommonModule, i4.PreviewModule],
238
+ imports: [i5$1.CommonModule, i1$1.PreviewModule],
236
239
  exports: [DocGenComponent],
237
240
  }]
238
241
  }] });
@@ -590,14 +593,14 @@
590
593
  return url.replace(flowRootUrl, '');
591
594
  }));
592
595
  };
593
- this.routeChange$ = this.router.events.pipe(rxjs.filter(function (e) { return e instanceof i1$2.NavigationEnd; }), rxjs.shareReplay());
596
+ this.routeChange$ = this.router.events.pipe(rxjs.filter(function (e) { return e instanceof i1$3.NavigationEnd; }), rxjs.shareReplay());
594
597
  this.lastChildParams$ = this.watchLastChildParams$(this.route).pipe(rxjs.startWith(this.getLastChildParams(this.route.snapshot)), rxjs.shareReplay());
595
598
  this.lastChildRoute$ = this.watchLastChildRoute$(this.route).pipe(rxjs.startWith(this.getLastChildRouteSnapshot(this.route.snapshot)), rxjs.shareReplay());
596
- this.loading$ = this.router.events.pipe(rxjs.filter(function (e) { return e instanceof i1$2.NavigationStart ||
597
- e instanceof i1$2.NavigationCancel ||
598
- e instanceof i1$2.NavigationEnd ||
599
- e instanceof i1$2.NavigationError; }), rxjs.map(function (e) { return e instanceof i1$2.NavigationStart; }), rxjs.startWith(false), rxjs.distinctUntilChanged());
600
- this.router.events.pipe(rxjs.filter(function (e) { return e instanceof i1$2.NavigationEnd; })).subscribe(function () {
599
+ this.loading$ = this.router.events.pipe(rxjs.filter(function (e) { return e instanceof i1$3.NavigationStart ||
600
+ e instanceof i1$3.NavigationCancel ||
601
+ e instanceof i1$3.NavigationEnd ||
602
+ e instanceof i1$3.NavigationError; }), rxjs.map(function (e) { return e instanceof i1$3.NavigationStart; }), rxjs.startWith(false), rxjs.distinctUntilChanged());
603
+ this.router.events.pipe(rxjs.filter(function (e) { return e instanceof i1$3.NavigationEnd; })).subscribe(function () {
601
604
  _this.urlHistory.push(_this.router.url);
602
605
  });
603
606
  }
@@ -673,14 +676,25 @@
673
676
  var flowRouteUrl = this.getFlowRootPath(routeSnapshot);
674
677
  this.router.navigate([flowRouteUrl, 'catalog'], { queryParams: routeSnapshot.queryParams });
675
678
  };
679
+ FlowRouterService.prototype.switchObject = function (id) {
680
+ var routeSnapshot = this.getLastChildRouteSnapshot(this.route.snapshot);
681
+ var route = this.getLastChildRoute(this.route);
682
+ var objName = core.SalesforceIdUtils.getSfObjectNameById(id);
683
+ var queryParams = {
684
+ quoteId: objName === 'Quote' ? id : undefined,
685
+ accountId: objName === 'Account' ? id : undefined,
686
+ orderId: objName === 'Order' ? id : undefined,
687
+ };
688
+ this.router.navigate([], { relativeTo: route, queryParams: Object.assign(Object.assign({}, routeSnapshot.queryParams), queryParams) });
689
+ };
676
690
  return FlowRouterService;
677
691
  }());
678
- FlowRouterService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowRouterService, deps: [{ token: i1__namespace$2.Router }, { token: i1__namespace$2.ActivatedRoute }, { token: i1__namespace$1.ContextService }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
692
+ FlowRouterService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowRouterService, deps: [{ token: i1__namespace$3.Router }, { token: i1__namespace$3.ActivatedRoute }, { token: i1__namespace$2.ContextService }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
679
693
  FlowRouterService.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowRouterService, providedIn: 'root' });
680
694
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowRouterService, decorators: [{
681
695
  type: i0.Injectable,
682
696
  args: [{ providedIn: 'root' }]
683
- }], ctorParameters: function () { return [{ type: i1__namespace$2.Router }, { type: i1__namespace$2.ActivatedRoute }, { type: i1__namespace$1.ContextService }]; } });
697
+ }], ctorParameters: function () { return [{ type: i1__namespace$3.Router }, { type: i1__namespace$3.ActivatedRoute }, { type: i1__namespace$2.ContextService }]; } });
684
698
 
685
699
  var CartPreviewComponent = /** @class */ (function () {
686
700
  function CartPreviewComponent(flowConfiguration, routerService, productImagesService, quoteDraftService) {
@@ -689,7 +703,7 @@
689
703
  this.productImagesService = productImagesService;
690
704
  this.quoteDraftService = quoteDraftService;
691
705
  this.productRowHeight = 97;
692
- this.form = new i6.FormGroup({});
706
+ this.form = new i10.FormGroup({});
693
707
  this.hasTermInProducts = false;
694
708
  this.scrollHeight = 0;
695
709
  this.shouldUpdate$ = new rxjs.BehaviorSubject(true);
@@ -761,7 +775,7 @@
761
775
  }
762
776
  ids.push(item.id);
763
777
  if (!_this.form.controls[item.id]) {
764
- _this.form.addControl(item.id, new i6.FormControl(item.qty, []));
778
+ _this.form.addControl(item.id, new i10.FormControl(item.qty, []));
765
779
  }
766
780
  else {
767
781
  (_a = _this.form.controls[item.id]) === null || _a === void 0 ? void 0 : _a.setValue(item.qty);
@@ -779,8 +793,8 @@
779
793
  };
780
794
  return CartPreviewComponent;
781
795
  }());
782
- CartPreviewComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: CartPreviewComponent, deps: [{ token: i1__namespace$1.FlowConfigurationService }, { token: FlowRouterService }, { token: i1__namespace$1.ProductImagesService }, { token: i1__namespace$1.QuoteDraftService }], target: i0__namespace.ɵɵFactoryTarget.Component });
783
- CartPreviewComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: CartPreviewComponent, selector: "vl-cart-preview", inputs: { products: "products" }, viewQueries: [{ propertyName: "overlayPanel", first: true, predicate: i3$1.OverlayPanel, descendants: true }], usesOnChanges: true, ngImport: i0__namespace, template: "<p-overlayPanel\n styleClass=\"navigation-settings-overlay flow-header-overlay center no-padding\"\n showTransitionOptions=\"0ms\"\n hideTransitionOptions=\"0ms\"\n>\n <ng-template pTemplate>\n <div class=\"flow-header-overlay__wrapper\" *vlLet=\"lockedProductId$ | async as lockedProductId\">\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 <p-virtualScroller [value]=\"products\" scrollHeight=\"{{ scrollHeight }}px\" [itemSize]=\"productRowHeight\">\n <ng-template pTemplate=\"header\">\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 </ng-template>\n\n <ng-template pTemplate=\"item\" let-product>\n <div\n class=\"product item\"\n *vlLet=\"!isEditMode || product.deleted as isReadonlyProduct\"\n [class.readonly]=\"isReadonlyProduct\"\n [class.deleted]=\"product.deleted\"\n >\n <ng-container *vlLet=\"lockedProductId === product.productId as isLockedProduct\">\n <div class=\"product__info\">\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\" [class.line-through]=\"product.deleted\">{{ product.name }}</div>\n <div *ngIf=\"!isReadonlyProduct\">\n <p-button\n label=\"Configure\"\n [disabled]=\"isLockedProduct || !product.configurable || product.hasTerm\"\n styleClass=\"p-button-link p-button-sm p-2 pl-0\"\n (onClick)=\"navigateToProductConfiguration(product.productId, product.id)\"\n ></p-button>\n <p-button\n label=\"Delete\"\n [disabled]=\"isLockedProduct || product.hasTerm\"\n styleClass=\"p-button-link p-button-sm p-button-danger p-2 pr-0\"\n (onClick)=\"deleteHandler(product)\"\n ></p-button>\n </div>\n </div>\n </div>\n\n <ng-container *ngIf=\"form.controls[product.id] as control\">\n <span class=\"pt-2\" *ngIf=\"!isReadonlyProduct; else readonlyQty\">\n <p-inputNumber\n class=\"qty-control\"\n [formControl]=\"$any(control)\"\n [min]=\"1\"\n [required]=\"true\"\n (onBlur)=\"controlBlurHandler(product)\"\n ></p-inputNumber>\n </span>\n <ng-template #readonlyQty\n ><span class=\"text-right\">{{ control.value }}</span></ng-template\n >\n </ng-container>\n\n <span class=\"text-right\" [class.pt-3]=\"!isReadonlyProduct\">${{ product.mrr }}</span>\n <span class=\"text-right\" [class.pt-3]=\"!isReadonlyProduct\">${{ product.nrr }}</span>\n </ng-container>\n </div>\n </ng-template>\n </p-virtualScroller>\n\n <ng-template #noImage>\n <i class=\"vl-icon vl-icon-no-image no-image-icon\"></i>\n </ng-template>\n\n <div class=\"flex justify-content-end footer\">\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 || !!lockedProductId || hasTermInProducts\"\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", styles: ["p-virtualscroller ::ng-deep .p-virtualscroller-header{background:none;padding:0;border:none;font-weight:unset}p-virtualscroller ::ng-deep cdk-virtual-scroll-viewport{overflow-y:scroll}.flow-header-overlay__wrapper{display:flex;flex-direction:column;width:460px;max-height:600px}.flow-header-overlay__wrapper .close-icon{cursor:pointer}.flow-header-overlay__title{display:flex;justify-content:space-between;align-items:center;margin:0;padding:16px}.empty-state{color:var(--vl-text-color-deep-accent);padding:0 16px 16px}.product{display:grid;grid-template-columns:auto 60px 70px 70px;padding:16px;border-bottom:1px solid var(--vl-border-color)}.product.readonly{align-items:center}.product.deleted{opacity:.5}.product.header{position:-webkit-sticky;position:sticky;top:0;background-color:var(--surface-card);z-index:1;color:var(--vl-text-color-deep-accent);padding-bottom:0;border-bottom:none;overflow-y:scroll}.product .item{height:97px;overflow:hidden}.product__info{display:flex;grid-gap:16px;gap:16px}.product__image-wrapper{flex-shrink:0;height:64px;width:64px;display:flex;justify-content:center;align-items:center;background:var(--vl-primary-nav-overlay-bg);border-radius:4px}.product__image{background-size:contain;background-repeat:no-repeat;background-position:center;height:calc(100% - 12px);width:calc(100% - 12px)}.product .qty-control ::ng-deep .p-inputnumber-input{align-self:flex-start;text-align:right;height:24px;width:100%}.footer{padding:12px 16px}.word-break{word-break:break-word}.no-image-icon{color:#b4d1ef;height:18px;width:18px}:host ::ng-deep .p-overlaypanel.navigation-settings-overlay{margin-top:20px}\n"], components: [{ type: i3__namespace$1.OverlayPanel, selector: "p-overlayPanel", inputs: ["dismissable", "showCloseIcon", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }, { type: i4__namespace$1.VirtualScroller, selector: "p-virtualScroller", inputs: ["value", "itemSize", "style", "styleClass", "scrollHeight", "lazy", "rows", "minBufferPx", "maxBufferPx", "delay", "trackBy", "totalRecords", "first", "cache"], outputs: ["onLazyLoad"] }, { type: i2__namespace.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "style", "styleClass", "badgeClass"], outputs: ["onClick", "onFocus", "onBlur"] }, { type: i6__namespace.InputNumber, selector: "p-inputNumber", inputs: ["showButtons", "format", "buttonLayout", "inputId", "styleClass", "style", "placeholder", "size", "maxlength", "tabindex", "title", "ariaLabel", "ariaRequired", "name", "required", "autocomplete", "min", "max", "incrementButtonClass", "decrementButtonClass", "incrementButtonIcon", "decrementButtonIcon", "readonly", "step", "allowEmpty", "locale", "localeMatcher", "mode", "currency", "currencyDisplay", "useGrouping", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "inputStyle", "inputStyleClass", "disabled"], outputs: ["onInput", "onFocus", "onBlur", "onKeyDown"] }], directives: [{ type: i2__namespace$2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { type: i3__namespace.LetDirective, selector: "[vlLet]", inputs: ["vlLet"] }, { type: i5__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5__namespace.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i6__namespace$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i6__namespace$1.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i6__namespace$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }], pipes: { "async": i5__namespace.AsyncPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
796
+ CartPreviewComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: CartPreviewComponent, deps: [{ token: i1__namespace$2.FlowConfigurationService }, { token: FlowRouterService }, { token: i1__namespace$2.ProductImagesService }, { token: i1__namespace$2.QuoteDraftService }], target: i0__namespace.ɵɵFactoryTarget.Component });
797
+ CartPreviewComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: CartPreviewComponent, selector: "vl-cart-preview", inputs: { products: "products" }, viewQueries: [{ propertyName: "overlayPanel", first: true, predicate: i3$1.OverlayPanel, descendants: true }], usesOnChanges: true, ngImport: i0__namespace, template: "<p-overlayPanel\n styleClass=\"navigation-settings-overlay flow-header-overlay center no-padding\"\n showTransitionOptions=\"0ms\"\n hideTransitionOptions=\"0ms\"\n>\n <ng-template pTemplate>\n <div class=\"flow-header-overlay__wrapper\" *vlLet=\"lockedProductId$ | async as lockedProductId\">\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 <p-virtualScroller [value]=\"products\" scrollHeight=\"{{ scrollHeight }}px\" [itemSize]=\"productRowHeight\">\n <ng-template pTemplate=\"header\">\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 </ng-template>\n\n <ng-template pTemplate=\"item\" let-product>\n <div\n class=\"product item\"\n *vlLet=\"!isEditMode || product.deleted as isReadonlyProduct\"\n [class.readonly]=\"isReadonlyProduct\"\n [class.deleted]=\"product.deleted\"\n >\n <ng-container *vlLet=\"lockedProductId === product.productId as isLockedProduct\">\n <div class=\"product__info\">\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\" [class.line-through]=\"product.deleted\">{{ product.name }}</div>\n <div *ngIf=\"!isReadonlyProduct\">\n <p-button\n label=\"Configure\"\n [disabled]=\"isLockedProduct || !product.configurable || product.hasTerm\"\n styleClass=\"p-button-link p-button-sm p-2 pl-0\"\n (onClick)=\"navigateToProductConfiguration(product.productId, product.id)\"\n ></p-button>\n <p-button\n label=\"Delete\"\n [disabled]=\"isLockedProduct || product.hasTerm\"\n styleClass=\"p-button-link p-button-sm p-button-danger p-2 pr-0\"\n (onClick)=\"deleteHandler(product)\"\n ></p-button>\n </div>\n </div>\n </div>\n\n <ng-container *ngIf=\"form.controls[product.id] as control\">\n <span class=\"pt-2\" *ngIf=\"!isReadonlyProduct; else readonlyQty\">\n <p-inputNumber\n class=\"qty-control\"\n [formControl]=\"$any(control)\"\n [min]=\"1\"\n [required]=\"true\"\n (onBlur)=\"controlBlurHandler(product)\"\n ></p-inputNumber>\n </span>\n <ng-template #readonlyQty\n ><span class=\"text-right\">{{ control.value }}</span></ng-template\n >\n </ng-container>\n\n <span class=\"text-right\" [class.pt-3]=\"!isReadonlyProduct\">${{ product.mrr }}</span>\n <span class=\"text-right\" [class.pt-3]=\"!isReadonlyProduct\">${{ product.nrr }}</span>\n </ng-container>\n </div>\n </ng-template>\n </p-virtualScroller>\n\n <ng-template #noImage>\n <i class=\"vl-icon vl-icon-no-image no-image-icon\"></i>\n </ng-template>\n\n <div class=\"flex justify-content-end footer\">\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 || !!lockedProductId || hasTermInProducts\"\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", styles: ["p-virtualscroller ::ng-deep .p-virtualscroller-header{background:none;padding:0;border:none;font-weight:unset}p-virtualscroller ::ng-deep cdk-virtual-scroll-viewport{overflow-y:scroll}.flow-header-overlay__wrapper{display:flex;flex-direction:column;width:460px;max-height:600px}.flow-header-overlay__wrapper .close-icon{cursor:pointer}.flow-header-overlay__title{display:flex;justify-content:space-between;align-items:center;margin:0;padding:16px}.empty-state{color:var(--vl-text-color-deep-accent);padding:0 16px 16px}.product{display:grid;grid-template-columns:auto 60px 70px 70px;padding:16px;border-bottom:1px solid var(--vl-border-color)}.product.readonly{align-items:center}.product.deleted{opacity:.5}.product.header{position:-webkit-sticky;position:sticky;top:0;background-color:var(--surface-card);z-index:1;color:var(--vl-text-color-deep-accent);padding-bottom:0;border-bottom:none;overflow-y:scroll}.product .item{height:97px;overflow:hidden}.product__info{display:flex;grid-gap:16px;gap:16px}.product__image-wrapper{flex-shrink:0;height:64px;width:64px;display:flex;justify-content:center;align-items:center;background:var(--vl-primary-nav-overlay-bg);border-radius:4px}.product__image{background-size:contain;background-repeat:no-repeat;background-position:center;height:calc(100% - 12px);width:calc(100% - 12px)}.product .qty-control ::ng-deep .p-inputnumber-input{align-self:flex-start;text-align:right;height:24px;width:100%}.footer{padding:12px 16px}.word-break{word-break:break-word}.no-image-icon{color:#b4d1ef;height:18px;width:18px}:host ::ng-deep .p-overlaypanel.navigation-settings-overlay{margin-top:20px}\n"], components: [{ type: i3__namespace$1.OverlayPanel, selector: "p-overlayPanel", inputs: ["dismissable", "showCloseIcon", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }, { type: i4__namespace.VirtualScroller, selector: "p-virtualScroller", inputs: ["value", "itemSize", "style", "styleClass", "scrollHeight", "lazy", "rows", "minBufferPx", "maxBufferPx", "delay", "trackBy", "totalRecords", "first", "cache"], outputs: ["onLazyLoad"] }, { type: i5__namespace.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "style", "styleClass", "badgeClass"], outputs: ["onClick", "onFocus", "onBlur"] }, { type: i6__namespace.InputNumber, selector: "p-inputNumber", inputs: ["showButtons", "format", "buttonLayout", "inputId", "styleClass", "style", "placeholder", "size", "maxlength", "tabindex", "title", "ariaLabel", "ariaRequired", "name", "required", "autocomplete", "min", "max", "incrementButtonClass", "decrementButtonClass", "incrementButtonIcon", "decrementButtonIcon", "readonly", "step", "allowEmpty", "locale", "localeMatcher", "mode", "currency", "currencyDisplay", "useGrouping", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "inputStyle", "inputStyleClass", "disabled"], outputs: ["onInput", "onFocus", "onBlur", "onKeyDown"] }], directives: [{ type: i2__namespace$1.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { type: i3__namespace.LetDirective, selector: "[vlLet]", inputs: ["vlLet"] }, { type: i5__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5__namespace$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i10__namespace.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i10__namespace.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i10__namespace.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }], pipes: { "async": i5__namespace$1.AsyncPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
784
798
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: CartPreviewComponent, decorators: [{
785
799
  type: i0.Component,
786
800
  args: [{
@@ -789,7 +803,7 @@
789
803
  styleUrls: ['./cart-preview.component.scss'],
790
804
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
791
805
  }]
792
- }], ctorParameters: function () { return [{ type: i1__namespace$1.FlowConfigurationService }, { type: FlowRouterService }, { type: i1__namespace$1.ProductImagesService }, { type: i1__namespace$1.QuoteDraftService }]; }, propDecorators: { overlayPanel: [{
806
+ }], ctorParameters: function () { return [{ type: i1__namespace$2.FlowConfigurationService }, { type: FlowRouterService }, { type: i1__namespace$2.ProductImagesService }, { type: i1__namespace$2.QuoteDraftService }]; }, propDecorators: { overlayPanel: [{
793
807
  type: i0.ViewChild,
794
808
  args: [i3$1.OverlayPanel]
795
809
  }], products: [{
@@ -802,34 +816,34 @@
802
816
  return CartPreviewModule;
803
817
  }());
804
818
  CartPreviewModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: CartPreviewModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
805
- CartPreviewModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: CartPreviewModule, declarations: [CartPreviewComponent], imports: [i5.CommonModule,
806
- i6.ReactiveFormsModule,
807
- i2.ButtonModule,
819
+ CartPreviewModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: CartPreviewModule, declarations: [CartPreviewComponent], imports: [i5$1.CommonModule,
820
+ i10.ReactiveFormsModule,
821
+ i5.ButtonModule,
808
822
  i3$1.OverlayPanelModule,
809
823
  i3.LetDirectiveModule,
810
- i6$1.InputNumberModule,
811
- i4$1.VirtualScrollerModule], exports: [CartPreviewComponent] });
824
+ i6.InputNumberModule,
825
+ i4.VirtualScrollerModule], exports: [CartPreviewComponent] });
812
826
  CartPreviewModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: CartPreviewModule, imports: [[
813
- i5.CommonModule,
814
- i6.ReactiveFormsModule,
815
- i2.ButtonModule,
827
+ i5$1.CommonModule,
828
+ i10.ReactiveFormsModule,
829
+ i5.ButtonModule,
816
830
  i3$1.OverlayPanelModule,
817
831
  i3.LetDirectiveModule,
818
- i6$1.InputNumberModule,
819
- i4$1.VirtualScrollerModule,
832
+ i6.InputNumberModule,
833
+ i4.VirtualScrollerModule,
820
834
  ]] });
821
835
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: CartPreviewModule, decorators: [{
822
836
  type: i0.NgModule,
823
837
  args: [{
824
838
  declarations: [CartPreviewComponent],
825
839
  imports: [
826
- i5.CommonModule,
827
- i6.ReactiveFormsModule,
828
- i2.ButtonModule,
840
+ i5$1.CommonModule,
841
+ i10.ReactiveFormsModule,
842
+ i5.ButtonModule,
829
843
  i3$1.OverlayPanelModule,
830
844
  i3.LetDirectiveModule,
831
- i6$1.InputNumberModule,
832
- i4$1.VirtualScrollerModule,
845
+ i6.InputNumberModule,
846
+ i4.VirtualScrollerModule,
833
847
  ],
834
848
  exports: [CartPreviewComponent],
835
849
  }]
@@ -948,11 +962,221 @@
948
962
  };
949
963
  return FlowDialogService;
950
964
  }());
951
- FlowDialogService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowDialogService, deps: [{ token: i1__namespace.DialogService }, { token: i1__namespace$1.ContextService }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
965
+ FlowDialogService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowDialogService, deps: [{ token: i1__namespace.DialogService }, { token: i1__namespace$2.ContextService }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
952
966
  FlowDialogService.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowDialogService });
953
967
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowDialogService, decorators: [{
954
968
  type: i0.Injectable
955
- }], ctorParameters: function () { return [{ type: i1__namespace.DialogService }, { type: i1__namespace$1.ContextService }]; } });
969
+ }], ctorParameters: function () { return [{ type: i1__namespace.DialogService }, { type: i1__namespace$2.ContextService }]; } });
970
+
971
+ var defaultMetrics = [
972
+ { key: 'VDM_Total_MRR', name: 'MRR', visible: true },
973
+ { key: 'Effective_VDM_Total_MRR', name: 'E.MRR', visible: true },
974
+ { key: 'VDM_Total_NRR', name: 'NRR', visible: true },
975
+ { key: 'Effective_VDM_Total_NRR', name: 'E.NRR', visible: true },
976
+ ];
977
+ var effectiveMetricKeys = ['VDM_Total_MRR', 'VDM_Total_NRR'];
978
+ var METRICS_STORAGE_KEY = 'vl-metrics';
979
+
980
+ var MetricsComponent = /** @class */ (function () {
981
+ function MetricsComponent(integrationState, contextService, quoteDraftService, cdr) {
982
+ this.integrationState = integrationState;
983
+ this.contextService = contextService;
984
+ this.quoteDraftService = quoteDraftService;
985
+ this.cdr = cdr;
986
+ this.emptyStateMetrics = [
987
+ { name: 'MRR', value: 0 },
988
+ { name: 'E.MRR', value: 0 },
989
+ { name: 'NRR', value: 0 },
990
+ { name: 'E.NRR', value: 0 },
991
+ ];
992
+ this.visibleSelectedMetrics = [];
993
+ this.restSelectedMetrics = [];
994
+ this.metrics = [];
995
+ this.filteredMetrics = [];
996
+ this.sidebarVisible = false;
997
+ this.searchControl = new i10.FormControl('');
998
+ this.nameControl = new i10.FormControl('', [
999
+ forms.requiredValidator,
1000
+ forms.invalidCharactersValidator(forms.standardCharSetWithSpaceRegExp),
1001
+ forms.reservedIdentifierValidator,
1002
+ i10.Validators.maxLength(80),
1003
+ ]);
1004
+ this.defaultMetrics = [];
1005
+ this.storedDefaultMetrics = [];
1006
+ this.metricKeys = [];
1007
+ this.lastSavedMetrics = [];
1008
+ this.destroyed$ = new rxjs.Subject();
1009
+ }
1010
+ MetricsComponent.prototype.ngOnInit = function () {
1011
+ var _this = this;
1012
+ this.quoteDraftService.currentState$
1013
+ .pipe(operators.takeUntil(this.destroyed$), operators.tap(function (lineItems) {
1014
+ _this.metricKeys = _this.collectMetricKeys(lineItems).reduce(function (result, key) {
1015
+ result.push(key);
1016
+ if (effectiveMetricKeys.includes(key)) {
1017
+ result.push("Effective_" + key);
1018
+ }
1019
+ return result;
1020
+ }, []);
1021
+ _this.collectAvailableMetrics();
1022
+ }))
1023
+ .subscribe();
1024
+ this.integrationState
1025
+ .listen$(i1$1.FlowAction.SET_DEFAULT_METRICS)
1026
+ .pipe(operators.tap(function (_b) {
1027
+ var metrics = _b.metrics;
1028
+ if (lodash.isEqual(_this.storedDefaultMetrics, metrics)) {
1029
+ return;
1030
+ }
1031
+ _this.storedDefaultMetrics = metrics;
1032
+ _this.collectAvailableMetrics();
1033
+ }), operators.takeUntil(this.destroyed$))
1034
+ .subscribe();
1035
+ this.searchControl.valueChanges.pipe(operators.takeUntil(this.destroyed$), rxjs.startWith('')).subscribe(function (query) {
1036
+ _this.filteredMetrics = _this.metrics.filter(function (_b) {
1037
+ var name = _b.name;
1038
+ return (name || '').toLowerCase().includes(query === null || query === void 0 ? void 0 : query.toLowerCase());
1039
+ });
1040
+ });
1041
+ };
1042
+ MetricsComponent.prototype.ngOnDestroy = function () {
1043
+ this.destroyed$.next();
1044
+ this.destroyed$.complete();
1045
+ };
1046
+ MetricsComponent.prototype.openSidebar = function () {
1047
+ this.overlayPanel.hide();
1048
+ this.sidebarVisible = true;
1049
+ };
1050
+ MetricsComponent.prototype.closeSidebar = function () {
1051
+ this.sidebarVisible = false;
1052
+ this.metrics = lodash.cloneDeep(this.lastSavedMetrics);
1053
+ this.editingMetric = undefined;
1054
+ this.searchControl.setValue('');
1055
+ };
1056
+ MetricsComponent.prototype.getMetricValue = function (key) {
1057
+ var context = this.contextService.resolve();
1058
+ if (key.startsWith('Effective_')) {
1059
+ var correctKey = key.replace('Effective_', '');
1060
+ return this.toNumber(context.properties[correctKey]) - this.toNumber(context.properties["Previous" + correctKey]);
1061
+ }
1062
+ else {
1063
+ return this.toNumber(context.properties[key]);
1064
+ }
1065
+ };
1066
+ MetricsComponent.prototype.save = function () {
1067
+ localStorage.setItem(METRICS_STORAGE_KEY, JSON.stringify(this.metrics));
1068
+ this.setMetrics();
1069
+ this.lastSavedMetrics = lodash.cloneDeep(this.metrics);
1070
+ this.closeSidebar();
1071
+ };
1072
+ MetricsComponent.prototype.changeMetricOrder = function (event) {
1073
+ i12.moveItemInArray(this.metrics, event.previousIndex, event.currentIndex);
1074
+ this.filteredMetrics = this.metrics;
1075
+ };
1076
+ MetricsComponent.prototype.editMetric = function (metric) {
1077
+ if (this.editingMetric && this.nameControl.invalid) {
1078
+ return;
1079
+ }
1080
+ this.editingMetric = metric;
1081
+ this.nameControl.setValue(metric.name);
1082
+ };
1083
+ MetricsComponent.prototype.saveMetric = function () {
1084
+ var _a;
1085
+ if (this.nameControl.invalid) {
1086
+ return;
1087
+ }
1088
+ if (this.editingMetric) {
1089
+ this.editingMetric.name = (_a = this.nameControl.value) === null || _a === void 0 ? void 0 : _a.trim();
1090
+ }
1091
+ this.editingMetric = undefined;
1092
+ };
1093
+ MetricsComponent.prototype.resetToDefault = function () {
1094
+ this.collectAvailableMetrics(true);
1095
+ };
1096
+ MetricsComponent.prototype.collectMetricKeys = function (lineItems) {
1097
+ var _this = this;
1098
+ var keys = [];
1099
+ lineItems.forEach(function (lineItem) {
1100
+ keys.push.apply(keys, __spreadArray([], __read(Object.keys(lineItem.totalMetrics || {}))));
1101
+ keys.push.apply(keys, __spreadArray([], __read(_this.collectMetricKeys(lineItem.lineItems))));
1102
+ });
1103
+ return lodash.uniq(keys);
1104
+ };
1105
+ MetricsComponent.prototype.setMetrics = function () {
1106
+ var metrics = lodash.cloneDeep(this.metrics.filter(function (_b) {
1107
+ var visible = _b.visible;
1108
+ return visible;
1109
+ }));
1110
+ this.visibleSelectedMetrics = metrics.slice(0, 4);
1111
+ this.restSelectedMetrics = metrics.slice(4);
1112
+ };
1113
+ MetricsComponent.prototype.collectAvailableMetrics = function (resetToDefault) {
1114
+ var _this = this;
1115
+ if (resetToDefault === void 0) { resetToDefault = false; }
1116
+ this.metrics = [];
1117
+ this.defaultMetrics = this.storedDefaultMetrics.length ? this.storedDefaultMetrics : defaultMetrics;
1118
+ var storedMetrics = JSON.parse(localStorage.getItem(METRICS_STORAGE_KEY) || '[]');
1119
+ var metricKeys = __spreadArray([], __read(this.metricKeys));
1120
+ if (!storedMetrics.length || resetToDefault) {
1121
+ this.defaultMetrics.forEach(function (defaultMetric) {
1122
+ var metricKeyIndex = metricKeys.findIndex(function (key) { return key === defaultMetric.key; });
1123
+ var storedMetric = storedMetrics.find(function (_b) {
1124
+ var key = _b.key;
1125
+ return key === defaultMetric.key;
1126
+ });
1127
+ if (storedMetric && !resetToDefault) {
1128
+ _this.metrics.push(storedMetric);
1129
+ }
1130
+ else {
1131
+ _this.metrics.push(defaultMetric);
1132
+ }
1133
+ if (metricKeyIndex >= 0) {
1134
+ metricKeys.splice(metricKeyIndex, 1);
1135
+ }
1136
+ });
1137
+ }
1138
+ else {
1139
+ this.metrics = __spreadArray([], __read(storedMetrics.reduce(function (result, metric) {
1140
+ var metricKeyIndex = metricKeys.findIndex(function (key) { return key === metric.key; });
1141
+ if (metricKeyIndex >= 0) {
1142
+ metricKeys.splice(metricKeyIndex, 1);
1143
+ }
1144
+ return __spreadArray(__spreadArray([], __read(result)), [metric]);
1145
+ }, [])));
1146
+ }
1147
+ this.metrics = __spreadArray(__spreadArray([], __read(this.metrics)), __read(metricKeys.map(function (metricKey) {
1148
+ return { key: metricKey, name: _this.getMetricName(metricKey), visible: false };
1149
+ })));
1150
+ this.metrics = lodash.cloneDeep(this.metrics);
1151
+ this.searchControl.setValue('');
1152
+ if (!resetToDefault) {
1153
+ this.lastSavedMetrics = lodash.cloneDeep(this.metrics);
1154
+ this.setMetrics();
1155
+ }
1156
+ this.cdr.markForCheck();
1157
+ };
1158
+ MetricsComponent.prototype.getMetricName = function (key) {
1159
+ return key.replace(/VDM_|Total_/g, '');
1160
+ };
1161
+ MetricsComponent.prototype.toNumber = function (value) {
1162
+ return +(value || 0);
1163
+ };
1164
+ return MetricsComponent;
1165
+ }());
1166
+ MetricsComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: MetricsComponent, deps: [{ token: i1__namespace$1.IntegrationState }, { token: i1__namespace$2.ContextService }, { token: i1__namespace$2.QuoteDraftService }, { token: i0__namespace.ChangeDetectorRef }], target: i0__namespace.ɵɵFactoryTarget.Component });
1167
+ MetricsComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: MetricsComponent, selector: "vl-metrics", viewQueries: [{ propertyName: "overlayPanel", first: true, predicate: i3$1.OverlayPanel, descendants: true }], ngImport: i0__namespace, template: "<div class=\"header-metrics\" (click)=\"overlayPanel.toggle($event)\">\n <div *ngFor=\"let metric of visibleSelectedMetrics\" class=\"metric\">\n <span class=\"name\" [attr.title]=\"metric.name\">{{ metric.name }}</span>\n <span class=\"filler\"></span>\n <span class=\"value\">${{ getMetricValue(metric.key) | number: '1.2-2' }}</span>\n </div>\n\n <ng-container *ngIf=\"!visibleSelectedMetrics.length\">\n <div *ngFor=\"let metric of emptyStateMetrics\" class=\"metric empty-state-metric\">\n <span class=\"name\" [attr.title]=\"metric.name\">{{ metric.name }}</span>\n <span class=\"filler\"></span>\n <span class=\"value\">${{ metric.value | number: '1.2-2' }}</span>\n </div>\n </ng-container>\n</div>\n\n<p-overlayPanel\n styleClass=\"metrics-overlay-container center no-padding\"\n showTransitionOptions=\"0ms\"\n hideTransitionOptions=\"0ms\"\n>\n <ng-template pTemplate>\n <div class=\"overlay-metrics\">\n <div *ngFor=\"let metric of restSelectedMetrics\" class=\"metric\">\n <span class=\"name\" [attr.title]=\"metric.name\">{{ metric.name }}</span>\n <span class=\"filler\"></span>\n <span class=\"value\">${{ getMetricValue(metric.key) | number: '1.2-2' }}</span>\n </div>\n </div>\n <button class=\"config\" (click)=\"openSidebar()\">\n Metrics Config\n <i class=\"vl-icon vl-icon-chevron-down\"></i>\n </button>\n </ng-template>\n</p-overlayPanel>\n\n<p-sidebar\n [visible]=\"sidebarVisible\"\n (visibleChange)=\"closeSidebar()\"\n position=\"right\"\n [baseZIndex]=\"1000\"\n [style]=\"{ width: '360px' }\"\n>\n <div class=\"container\">\n <div class=\"header\">\n Quote Metrics Config\n <i class=\"vl-icon vl-icon-close\" (click)=\"closeSidebar()\"></i>\n </div>\n\n <div class=\"search-container\">\n <input\n data-test-id=\"search\"\n [formControl]=\"searchControl\"\n pInputText\n placeholder=\"Search for metric\u2026\"\n class=\"w-full\"\n />\n </div>\n\n <div class=\"content\">\n <div class=\"sidebar-metrics\" cdkDropList (cdkDropListDropped)=\"changeMetricOrder($event)\">\n <div\n *ngFor=\"let metric of filteredMetrics\"\n class=\"sidebar-metric\"\n [class.edit]=\"metric.key === editingMetric?.key\"\n cdkDrag\n [cdkDragDisabled]=\"!!searchControl.value\"\n >\n <div class=\"drag-icon\">\n <i class=\"vl-icon vl-icon-reorder\" cdkDragHandle></i>\n </div>\n <ng-container\n [ngTemplateOutlet]=\"metricTemplate\"\n [ngTemplateOutletContext]=\"{ metric: metric }\"\n ></ng-container>\n </div>\n </div>\n\n <div class=\"empty-state\" *ngIf=\"!filteredMetrics.length\">There are no items matching your search criteria</div>\n </div>\n <div class=\"footer\">\n <p-button\n label=\"Reset to default\"\n styleClass=\"p-button-outlined p-button-sm\"\n (onClick)=\"resetToDefault()\"\n ></p-button>\n <p-button label=\"Save\" styleClass=\"p-button p-button-filled p-button-sm\" (onClick)=\"save()\"></p-button>\n </div>\n </div>\n</p-sidebar>\n\n<ng-template #metricTemplate let-metric=\"metric\">\n <div *ngIf=\"editingMetric?.key !== metric.key\" class=\"preview-state\">\n <p-checkbox\n [ngModel]=\"metric.visible\"\n (ngModelChange)=\"metric.visible = !metric.visible\"\n [binary]=\"true\"\n checkboxIcon=\"vl-icon vl-icon-checkmark\"\n ></p-checkbox>\n <div class=\"title\">{{ metric.name }}</div>\n </div>\n\n <div *ngIf=\"editingMetric?.key === metric.key\" class=\"edit-state\">\n <input data-test-id=\"name\" [formControl]=\"nameControl\" pInputText placeholder=\"Metric name\" class=\"w-full\" />\n <vl-error-tooltip [tooltip]=\"nameControl | error: 'name'\" [visible]=\"!!nameControl.errors\"></vl-error-tooltip>\n </div>\n <div *ngIf=\"editingMetric?.key !== metric.key\" (click)=\"editMetric(metric)\" class=\"action edit\">\n <i class=\"vl-icon vl-icon-edit-sm\"></i>\n </div>\n <div *ngIf=\"editingMetric?.key === metric.key\" (click)=\"saveMetric()\" class=\"action save\">\n <i class=\"vl-icon vl-icon-checkmark\"></i>\n </div>\n</ng-template>\n", styles: [":host .header-metrics{cursor:pointer;min-width:130px;max-width:260px;display:flex;flex-wrap:wrap;justify-content:flex-start;grid-gap:0 16px;gap:0 16px;height:32px;align-items:flex-start}:host .header-metrics .metric{flex:1;flex-basis:114px;max-width:122px;display:flex;justify-content:space-between;align-items:flex-end;font-size:12px;line-height:16px;letter-spacing:.3px}:host .header-metrics .metric .name{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}:host .header-metrics .metric .value{font-weight:600}:host .header-metrics .metric.empty-state-metric{filter:blur(1.5px)}:host ::ng-deep .p-sidebar-header{display:none}:host ::ng-deep .p-sidebar-content{padding:0 24px;height:100%}::ng-deep .metrics-overlay-container{width:160px}::ng-deep .metrics-overlay-container .p-overlaypanel-content{padding:0}::ng-deep .metrics-overlay-container .overlay-metrics{max-height:110px;overflow:auto}::ng-deep .metrics-overlay-container .metric{display:flex;padding:0 12px;font-size:12px;line-height:16px;letter-spacing:.3px;align-items:flex-end}::ng-deep .metrics-overlay-container .metric .name{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}::ng-deep .metrics-overlay-container .metric .value{font-weight:600}::ng-deep .metrics-overlay-container .metric:not(:last-of-type){margin-bottom:4px}::ng-deep .metrics-overlay-container .metric:first-of-type{margin-top:12px}::ng-deep .metrics-overlay-container .metric:last-of-type{margin-bottom:12px}::ng-deep .metrics-overlay-container .config{display:flex;align-items:center;justify-content:space-between;padding:0 12px;cursor:pointer;background:var(--vl-color-light-blue);outline:none;border:none;width:100%;height:32px;font-size:12px;line-height:16px;letter-spacing:.3px}::ng-deep .metrics-overlay-container .config .vl-icon-chevron-down{color:var(--vl-text-color-accent-light);transform:rotate(-90deg)}.filler{flex:1;margin:0 4px 3px;min-width:5px}.filler:before{display:block;width:100%;height:2px;content:\"\";background-image:radial-gradient(circle at 1px 1px,var(--vl-text-color-accent-light) 1px,transparent 0);background-size:3px 2px}.container{display:flex;flex-direction:column;height:100%}.container .header{margin:15px 0 23px;flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;font-weight:600;font-size:18px;line-height:26px;letter-spacing:-.6px;color:var(--vl-accent-color)}.container .header i{cursor:pointer;font-size:15px}.container .search-container{margin-bottom:12px}.container .search-container input{width:100%}.container .content{display:flex;flex-direction:column;flex:1;overflow:hidden}.container .footer{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;height:60px;padding:0 20px;margin:0 -16px;border-top:1px solid var(--vl-border-color)}.container .footer p-button{flex:1}.container .footer p-button ::ng-deep button{width:100%}.container .footer p-button:not(:last-child){margin-right:16px}.container app-empty-state::ng-deep{margin-bottom:12px}.container app-empty-state::ng-deep .container{width:100%;padding-bottom:0}.sidebar-metrics{width:100%;overflow:auto;padding:1px 0}.empty-state{display:flex;flex:1;align-items:center;justify-content:center;color:var(--vl-text-color-deep-accent);font-size:12px;line-height:16px;letter-spacing:.3px}.sidebar-metric{display:flex;align-items:center;height:32px;position:relative;padding-left:8px;border-radius:2px}.sidebar-metric:hover:not(.edit){background:var(--vl-color-light-blue)}.sidebar-metric:hover:not(.edit) .edit{visibility:visible}.sidebar-metric p-checkbox{margin-right:8px}.sidebar-metric .drag-icon{width:16px;height:16px;margin-right:8px}.sidebar-metric .drag-icon i{cursor:pointer;color:#c5d1e2}.sidebar-metric.cdk-drag-disabled .drag-icon i{cursor:default}.sidebar-metric .title{font-weight:400;font-size:12px;line-height:16px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text;cursor:text;color:var(--vl-text-color-secondary)}.sidebar-metric .preview-state,.sidebar-metric .edit-state{position:relative;margin-right:8px;min-width:0;display:flex;align-items:center;flex:1}.sidebar-metric .preview-state input,.sidebar-metric .edit-state input{width:100%}.sidebar-metric .action{cursor:pointer;width:32px;height:32px;display:flex;align-items:center;justify-content:center}.sidebar-metric .edit{visibility:hidden}.sidebar-metric .edit i{color:var(--vl-text-color-deep-accent);width:12px;height:12px}.sidebar-metric .save{background:var(--vl-primary-color);border-radius:2px}.sidebar-metric .save i{color:#fff}.sidebar-metric ::ng-deep .p-checkbox{width:16px;height:16px}.sidebar-metric ::ng-deep .p-checkbox .p-checkbox-box{width:16px;height:16px}.cdk-drag-preview{z-index:10001!important;box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}\n"], components: [{ type: i3__namespace$1.OverlayPanel, selector: "p-overlayPanel", inputs: ["dismissable", "showCloseIcon", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }, { type: i4__namespace$1.Sidebar, selector: "p-sidebar", inputs: ["appendTo", "blockScroll", "style", "styleClass", "ariaCloseLabel", "autoZIndex", "baseZIndex", "modal", "dismissible", "showCloseIcon", "closeOnEscape", "transitionOptions", "visible", "position", "fullScreen"], outputs: ["onShow", "onHide", "visibleChange"] }, { type: i5__namespace.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "style", "styleClass", "badgeClass"], outputs: ["onClick", "onFocus", "onBlur"] }, { type: i6__namespace$1.Checkbox, selector: "p-checkbox", inputs: ["value", "name", "disabled", "binary", "label", "ariaLabelledBy", "ariaLabel", "tabindex", "inputId", "style", "styleClass", "labelStyleClass", "formControl", "checkboxIcon", "readonly", "required", "trueValue", "falseValue"], outputs: ["onChange"] }, { type: i3__namespace.ErrorTooltipComponent, selector: "vl-error-tooltip", inputs: ["tooltip", "visible"] }], directives: [{ type: i5__namespace$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2__namespace$1.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { type: i10__namespace.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i11__namespace.InputText, selector: "[pInputText]" }, { type: i10__namespace.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i10__namespace.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i12__namespace.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "id", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListAutoScrollDisabled", "cdkDropListOrientation", "cdkDropListLockAxis", "cdkDropListData", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { type: i12__namespace.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragDisabled", "cdkDragStartDelay", "cdkDragLockAxis", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragBoundary", "cdkDragRootElement", "cdkDragPreviewContainer", "cdkDragData", "cdkDragFreeDragPosition"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { type: i12__namespace.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { type: i5__namespace$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i10__namespace.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], pipes: { "number": i5__namespace$1.DecimalPipe, "error": i3__namespace.ErrorPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
1168
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: MetricsComponent, decorators: [{
1169
+ type: i0.Component,
1170
+ args: [{
1171
+ selector: 'vl-metrics',
1172
+ templateUrl: './metrics.component.html',
1173
+ styleUrls: ['./metrics.component.scss'],
1174
+ changeDetection: i0.ChangeDetectionStrategy.OnPush,
1175
+ }]
1176
+ }], ctorParameters: function () { return [{ type: i1__namespace$1.IntegrationState }, { type: i1__namespace$2.ContextService }, { type: i1__namespace$2.QuoteDraftService }, { type: i0__namespace.ChangeDetectorRef }]; }, propDecorators: { overlayPanel: [{
1177
+ type: i0.ViewChild,
1178
+ args: [i3$1.OverlayPanel]
1179
+ }] } });
956
1180
 
957
1181
  var FlowHeaderComponent = /** @class */ (function () {
958
1182
  function FlowHeaderComponent(contextService, quoteDraftService, quoteApiService, sfApiService, flowConfiguration, routerService, dialogService, integrationState) {
@@ -981,10 +1205,6 @@
981
1205
  this.isCartRoute$ = this.routerService.isCartRoute$();
982
1206
  this.isCatalogRoute$ = this.routerService.isCatalogRoute$();
983
1207
  this.objectDetails$ = this.getObjectDetails$();
984
- this.totalMRR$ = this.contextService.resolve$().pipe(rxjs.map(function (ctx) { return ctx.properties.VDM_Total_MRR; }), rxjs.distinctUntilChanged(), rxjs.map(function (mrr) { return _this.formatMetric(mrr); }));
985
- this.totalNRR$ = this.contextService.resolve$().pipe(rxjs.map(function (ctx) { return ctx.properties.VDM_Total_NRR; }), rxjs.distinctUntilChanged(), rxjs.map(function (nrr) { return _this.formatMetric(nrr); }));
986
- this.totalEMRR$ = this.contextService.resolve$().pipe(rxjs.map(function (ctx) { return "" + (_this.toNumber(ctx.properties.VDM_Total_MRR) - _this.toNumber(ctx.properties.PreviousVDM_Total_MRR)); }), rxjs.distinctUntilChanged(), rxjs.map(function (emrr) { return _this.formatMetric(emrr); }));
987
- this.totalENRR$ = this.contextService.resolve$().pipe(rxjs.map(function (ctx) { return "" + (_this.toNumber(ctx.properties.VDM_Total_NRR) - _this.toNumber(ctx.properties.PreviousVDM_Total_NRR)); }), rxjs.distinctUntilChanged(), rxjs.map(function (enrr) { return _this.formatMetric(enrr); }));
988
1208
  }
989
1209
  FlowHeaderComponent.prototype.ngOnInit = function () {
990
1210
  var _this = this;
@@ -1097,7 +1317,7 @@
1097
1317
  }));
1098
1318
  }
1099
1319
  shouldOpen$
1100
- .pipe(rxjs.first(), rxjs.tap(function (shouldOpen) { return shouldOpen && _this.integrationState.dispatch(i4.OpenDocGenAction()); }))
1320
+ .pipe(rxjs.first(), rxjs.tap(function (shouldOpen) { return shouldOpen && _this.integrationState.dispatch(i1$1.OpenDocGenAction()); }))
1101
1321
  .subscribe();
1102
1322
  };
1103
1323
  FlowHeaderComponent.prototype.saveButtonClickHandler = function (isCartRoute) {
@@ -1260,19 +1480,13 @@
1260
1480
  return (((_a = this.quoteDraftService.quoteDraft) === null || _a === void 0 ? void 0 : _a.context.properties.mode) === core.ConfigurationContextMode.ACCOUNT &&
1261
1481
  !this.quoteDraftService.hasAssets);
1262
1482
  };
1263
- /**
1264
- * Convert a value from string|undefined to number.
1265
- */
1266
- FlowHeaderComponent.prototype.toNumber = function (value) {
1267
- return +(value || 0);
1268
- };
1269
1483
  FlowHeaderComponent.prototype.isUpsellQuoteWithoutChanges = function () {
1270
1484
  return this.quoteDraftService.activeCurrentState.every(function (lineItem) { return lineItem.actionCode === 'EXIST'; });
1271
1485
  };
1272
1486
  return FlowHeaderComponent;
1273
1487
  }());
1274
- FlowHeaderComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowHeaderComponent, deps: [{ token: i1__namespace$1.ContextService }, { token: i1__namespace$1.QuoteDraftService }, { token: i2__namespace$1.QuoteApiService }, { token: i2__namespace$1.SalesforceApiService }, { token: i1__namespace$1.FlowConfigurationService }, { token: FlowRouterService }, { token: FlowDialogService }, { token: i4__namespace.IntegrationState }], target: i0__namespace.ɵɵFactoryTarget.Component });
1275
- FlowHeaderComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: FlowHeaderComponent, selector: "vl-flow-header", ngImport: i0__namespace, template: "<ng-container *ngIf=\"contextProperties$ | async as contextProperties\">\n <ng-container *vlLet=\"objectDetails$ | async as details\">\n <div class=\"flow-info\">\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$ | async | titlecase }}</span>\n </nav>\n\n <ng-container *ngIf=\"isAccountMode$ | async\">\n <span class=\"dot-separator\"></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$ | async\">\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 <ng-container *vlLet=\"isReadonlyMode$ | async as isReadonlyMode\">\n <nav\n class=\"nav-item\"\n [ngClass]=\"{ active: (isCatalogRoute$ | async), disabled: isReadonlyMode }\"\n (click)=\"navigateToCatalog()\"\n >\n Catalog\n </nav>\n <nav class=\"nav-item disabled\" [ngClass]=\"{ active: isConfigurationRoute$ | async }\">Configurator</nav>\n <ng-container *vlLet=\"products$ | async as products\">\n <nav\n class=\"nav-item\"\n [ngClass]=\"{ active: (isCartRoute$ | async), disabled: isReadonlyMode }\"\n (click)=\"navigateToShoppingCart()\"\n >\n Shopping Cart ({{ products.length }})\n </nav>\n\n <nav\n class=\"nav-popover-toggle\"\n [ngClass]=\"{ active: (isCartRoute$ | async), disabled: isReadonlyMode }\"\n (click)=\"toggleCartOverlay(cart, $event)\"\n >\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 </ng-container>\n </div>\n\n <div class=\"flow-controls\">\n <ng-container *ngIf=\"(isReadonlyMode$ | async) === false\">\n <ng-container *vlLet=\"activePriceList$ | async as priceList\">\n <div>\n <ng-container *appLet=\"assetPriceLists$ | async as assetPriceLists\">\n <ng-container *ngIf=\"(isAccountMode$ | async) && assetPriceLists.length > 1; else singlePriceList\">\n <nav class=\"nav-item\" (click)=\"priceListsOverlay?.toggle($event)\">\n <span>{{ priceList?.name }}</span>\n <i\n *ngIf=\"!priceListsOverlay?.overlayVisible\"\n class=\"vl-icon vl-icon-chevron-down icon-with-margin\"\n ></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 >\n {{ option.name }}\n </span>\n </ng-template>\n </p-overlayPanel>\n </ng-container>\n </ng-container>\n\n <ng-template #singlePriceList>\n <div>{{ priceList?.name }}</div>\n </ng-template>\n\n <div *ngIf=\"contextProperties.StartDate\">{{ contextProperties.StartDate | date: 'MM.dd.yyyy' }}</div>\n </div>\n </ng-container>\n </ng-container>\n\n <span class=\"metrics\">\n <div class=\"metrics__row\">\n <span>MRR:</span>\n <span class=\"font-semibold\">${{ totalMRR$ | async }}</span>\n </div>\n <div class=\"metrics__row\">\n <span>NRR:</span>\n <span class=\"font-semibold\">${{ totalNRR$ | async }}</span>\n </div>\n </span>\n\n <span class=\"metrics\">\n <div class=\"metrics__row\">\n <span>E.MRR:</span>\n <span class=\"font-semibold\">${{ totalEMRR$ | async }}</span>\n </div>\n <div class=\"metrics__row\">\n <span>E.NRR:</span>\n <span class=\"font-semibold\">${{ totalENRR$ | async }}</span>\n </div>\n </span>\n\n <ng-container *vlLet=\"isCartRoute$ | async as isCartRoute\">\n <ng-container *vlLet=\"isReadonlyMode$ | async as isReadonlyMode\">\n <p-button\n class=\"doc-gen-button\"\n icon=\"vl-icon vl-icon-doc-gen\"\n [disabled]=\"isReadonlyMode\"\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 [disabled]=\"isReadonlyMode\"\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 </ng-container>\n </div>\n </ng-container>\n</ng-container>\n", styles: [":host{display:flex;align-items:center;height:48px;width:100%;background-color:var(--vl-primary-color);color:#fff;padding:0 32px;flex-shrink:0}::ng-deep .p-overlaypanel.flow-header-overlay .p-overlaypanel-content{background-color:#fff;padding:16px}::ng-deep .p-overlaypanel.flow-header-overlay.no-padding .p-overlaypanel-content{padding:0}::ng-deep .p-overlaypanel.flow-header-overlay.left:before{left:6px!important}::ng-deep .p-overlaypanel.flow-header-overlay.right:before{right:6px!important}::ng-deep .p-overlaypanel.flow-header-overlay.left .p-overlaypanel-content{margin-left:-16px}::ng-deep .p-overlaypanel.flow-header-overlay.right .p-overlaypanel-content{margin-right:-16px}::ng-deep .p-overlaypanel.flow-header-overlay:before{background-color:#fff}::ng-deep .p-overlaypanel.price-list-overlay .p-overlaypanel-content{border-radius:5px;border-color:var(--vl-border-color);padding:0;display:flex;flex-direction:column;max-height:140px;overflow:auto}:host ::ng-deep p-splitButton{height:32px;width:146px;display:flex}:host ::ng-deep p-splitButton .p-splitbutton{display:flex;font-size:12px;border-radius:2px;height:100%;width:100%;-webkit-backface-visibility:hidden}:host ::ng-deep p-splitButton .p-splitbutton .p-button:focus{box-shadow:none}:host ::ng-deep p-splitButton .p-splitbutton .p-splitbutton-defaultbutton{padding:7px 12px 7px 10px}:host ::ng-deep p-splitButton .p-splitbutton .p-splitbutton-defaultbutton:disabled{opacity:.2}:host ::ng-deep p-splitButton .p-splitbutton .p-splitbutton-menubutton:disabled{opacity:.3}:host ::ng-deep p-splitButton .p-splitbutton.p-button-outlined .p-button{background-color:#fff;color:var(--vl-primary-color);border:1px solid #fff}:host ::ng-deep p-splitButton .p-splitbutton.p-button-outlined .p-button:enabled:hover{background-color:var(--vl-secondary-nav-bg);color:var(--vl-primary-color);border:1px solid var(--vl-secondary-nav-bg);outline:none}:host ::ng-deep p-splitButton .p-splitbutton.p-button-outlined .p-button.p-splitbutton-menubutton{background-color:var(--vl-secondary-nav-bg);border-radius:0 2px 2px 0;border:1px solid var(--vl-secondary-nav-bg);border-left:none}:host ::ng-deep p-splitButton .p-splitbutton.p-button-outlined .p-button.p-splitbutton-menubutton:hover{background-color:var(--vl-secondary-nav-bg);border:1px solid var(--vl-secondary-nav-bg);border-left:none}:host ::ng-deep p-splitButton .p-splitbutton.p-button-outlined .p-button.p-splitbutton-defaultbutton{border-radius:2px 0 0 2px}:host ::ng-deep p-splitButton .p-splitbutton.p-button-outlined .p-button.p-splitbutton-defaultbutton .p-button-label{font-size:12px;line-height:16px;letter-spacing:.3px;white-space:nowrap}:host ::ng-deep p-splitButton .p-splitbutton .p-menu{display:flex;width:auto;margin-top:2px;border-radius:4px;border:1px solid var(--vl-border-color);box-shadow:0 4px 20px #2767c11a}:host ::ng-deep p-splitButton .p-splitbutton .p-menu .p-menu-list{display:flex;flex-direction:column}:host ::ng-deep p-splitButton .p-splitbutton .p-menu .p-menu-list .p-menuitem{display:flex;width:100%;height:32px}:host ::ng-deep p-splitButton .p-splitbutton .p-menu .p-menu-list .p-menuitem .p-menuitem-link{padding:8px;width:100%;height:100%}:host ::ng-deep p-splitButton .p-splitbutton .p-menu .p-menu-list .p-menuitem .p-menuitem-link:not(.p-disabled):hover{background-color:var(--vl-secondary-nav-bg)}:host ::ng-deep p-splitButton .p-splitbutton .p-menu .p-menu-list .p-menuitem .p-menuitem-link:not(.p-disabled):hover .p-menuitem-text{color:var(--vl-primary-color)}:host ::ng-deep p-splitButton .p-splitbutton .p-menu .p-menu-list .p-menuitem .p-menuitem-link .p-menuitem-text{line-height:16px;font-size:12px;letter-spacing:.3px;white-space:nowrap}:host ::ng-deep .doc-gen-button{height:32px;width:32px;display:inline-flex}:host ::ng-deep .doc-gen-button .p-button{border:1px solid #fff;border-radius:2px;width:100%;height:100%}:host ::ng-deep .doc-gen-button .p-button.p-component:disabled{opacity:.3}:host ::ng-deep .save-button,:host ::ng-deep .submit-button{height:32px;width:146px;display:flex}:host ::ng-deep .save-button .p-button,:host ::ng-deep .submit-button .p-button{border-radius:3px;width:100%;height:100%;background:rgba(255,255,255,.3);opacity:1;border:none}:host ::ng-deep .save-button .p-button .p-button-label,:host ::ng-deep .submit-button .p-button .p-button-label{font-size:12px;line-height:16px;letter-spacing:.3px;white-space:nowrap}.vl-icon{display:inline-block}.flow-info{flex-shrink:0;display:flex;grid-gap:8px;gap:8px;align-items:center}.flow-info .nav-popover-toggle{margin-left:-8px}.flow-info .nav-back{font-weight:bold}.flow-info .nav-item:not(.disabled):hover,.flow-info .nav-popover-toggle:not(.disabled):hover{opacity:.6}nav{display:flex;align-items:center;cursor:pointer;height:14px}nav.disabled{opacity:.6;cursor:default}nav .nav-icon{margin-right:10px}nav .icon-with-margin{margin:0 4px}nav a{color:#fff}nav.account-name{margin-left:4px;display:block;max-width:200px;overflow:hidden;text-overflow:ellipsis}nav.nav-popover-toggle{width:24px;display:flex;justify-content:center}nav.nav-popover-toggle i{pointer-events:none;margin:0}nav i{pointer-events:none}.metrics__row{display:flex;justify-content:space-between;grid-gap:2px;gap:2px}.dot-separator:after{content:\"\";display:block;width:4px;height:4px;border-radius:50%;background:#fff}.slash-separator:after{content:\"\";display:block;background:#fff;width:1px;height:16px}.flow-header-overlay__wrapper{width:360px}.flow-header-overlay__wrapper .close-icon{cursor:pointer}.flow-header-overlay__wrapper .info-list{list-style:none;padding:0;font-size:12px}.flow-header-overlay__wrapper .info-list__row{padding:8px 0;display:flex;justify-content:space-between}.flow-header-overlay__wrapper .info-list__row a{text-align:right}.flow-header-overlay__title{display:flex;justify-content:space-between;align-items:center;margin:0 0 24px}.flow-navigation{flex-grow:1;display:flex;grid-gap:16px;gap:16px;justify-content:center;font-weight:600}.flow-navigation .cart-nav-container{display:flex}.flow-navigation .nav-popover-toggle{margin-left:-14px}.flow-navigation .nav-item,.flow-navigation .nav-popover-toggle{opacity:.6}.flow-navigation .nav-item.active,.flow-navigation .nav-item:not(.disabled):hover,.flow-navigation .nav-popover-toggle.active,.flow-navigation .nav-popover-toggle:not(.disabled):hover{opacity:1}.price-list-option{padding:8px;color:var(--vl-primary-color);cursor:pointer}.price-list-option.active,.price-list-option:hover{background:var(--vl-secondary-nav-bg)}.flow-controls{flex-shrink:0;display:flex;align-items:center;grid-gap:16px;gap:16px}\n"], components: [{ type: i3__namespace$1.OverlayPanel, selector: "p-overlayPanel", inputs: ["dismissable", "showCloseIcon", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }, { type: CartPreviewComponent, selector: "vl-cart-preview", inputs: ["products"] }, { type: i2__namespace.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "style", "styleClass", "badgeClass"], outputs: ["onClick", "onFocus", "onBlur"] }, { type: i9__namespace.SplitButton, selector: "p-splitButton", inputs: ["model", "icon", "iconPos", "label", "style", "styleClass", "menuStyle", "menuStyleClass", "disabled", "tabindex", "appendTo", "dir", "expandAriaLabel", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onClick", "onDropdownClick"] }], directives: [{ type: i5__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3__namespace.LetDirective, selector: "[vlLet]", inputs: ["vlLet"] }, { type: i12__namespace.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { type: i2__namespace$2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { type: i5__namespace.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i5__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "async": i5__namespace.AsyncPipe, "titlecase": i5__namespace.TitleCasePipe, "date": i5__namespace.DatePipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
1488
+ FlowHeaderComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowHeaderComponent, deps: [{ token: i1__namespace$2.ContextService }, { token: i1__namespace$2.QuoteDraftService }, { token: i2__namespace.QuoteApiService }, { token: i2__namespace.SalesforceApiService }, { token: i1__namespace$2.FlowConfigurationService }, { token: FlowRouterService }, { token: FlowDialogService }, { token: i1__namespace$1.IntegrationState }], target: i0__namespace.ɵɵFactoryTarget.Component });
1489
+ FlowHeaderComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: FlowHeaderComponent, selector: "vl-flow-header", ngImport: i0__namespace, template: "<ng-container *ngIf=\"contextProperties$ | async as contextProperties\">\n <ng-container *ngIf=\"objectDetails$ | async as details\">\n <div class=\"flow-info\">\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$ | async | titlecase }}</span>\n </nav>\n\n <ng-container *ngIf=\"isAccountMode$ | async\">\n <span class=\"dot-separator\"></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$ | async\">\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 <ng-container *vlLet=\"isReadonlyMode$ | async as isReadonlyMode\">\n <nav\n class=\"nav-item\"\n [ngClass]=\"{ active: (isCatalogRoute$ | async), disabled: isReadonlyMode }\"\n (click)=\"navigateToCatalog()\"\n >\n Catalog\n </nav>\n <nav class=\"nav-item disabled\" [ngClass]=\"{ active: isConfigurationRoute$ | async }\">Configurator</nav>\n <ng-container *vlLet=\"products$ | async as products\">\n <nav\n class=\"nav-item\"\n [ngClass]=\"{ active: (isCartRoute$ | async), disabled: isReadonlyMode }\"\n (click)=\"navigateToShoppingCart()\"\n >\n Shopping Cart ({{ products.length }})\n </nav>\n\n <nav\n class=\"nav-popover-toggle\"\n [ngClass]=\"{ active: (isCartRoute$ | async), disabled: isReadonlyMode }\"\n (click)=\"toggleCartOverlay(cart, $event)\"\n >\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 </ng-container>\n </div>\n\n <div class=\"flow-controls\">\n <ng-container *ngIf=\"(isReadonlyMode$ | async) === false\">\n <ng-container *vlLet=\"activePriceList$ | async as priceList\">\n <div>\n <ng-container *vlLet=\"assetPriceLists$ | async as assetPriceLists\">\n <ng-container *ngIf=\"(isAccountMode$ | async) && assetPriceLists.length > 1; else singlePriceList\">\n <nav class=\"nav-item\" (click)=\"priceListsOverlay?.toggle($event)\">\n <span>{{ priceList?.name }}</span>\n <i\n *ngIf=\"!priceListsOverlay?.overlayVisible\"\n class=\"vl-icon vl-icon-chevron-down icon-with-margin\"\n ></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 >\n {{ option.name }}\n </span>\n </ng-template>\n </p-overlayPanel>\n </ng-container>\n </ng-container>\n\n <ng-template #singlePriceList>\n <div>{{ priceList?.name }}</div>\n </ng-template>\n\n <div *ngIf=\"contextProperties.StartDate\">{{ contextProperties.StartDate | date: 'MM.dd.yyyy' }}</div>\n </div>\n </ng-container>\n </ng-container>\n\n <vl-metrics></vl-metrics>\n\n <ng-container *vlLet=\"isCartRoute$ | async as isCartRoute\">\n <ng-container *vlLet=\"isReadonlyMode$ | async as isReadonlyMode\">\n <p-button\n class=\"doc-gen-button\"\n icon=\"vl-icon vl-icon-doc-gen\"\n [disabled]=\"isReadonlyMode\"\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 [disabled]=\"isReadonlyMode\"\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 </ng-container>\n </div>\n </ng-container>\n</ng-container>\n", styles: [":host{display:flex;align-items:center;height:48px;width:100%;background-color:var(--vl-primary-color);color:#fff;padding:0 32px;flex-shrink:0}::ng-deep .p-overlaypanel.flow-header-overlay .p-overlaypanel-content{background-color:#fff;padding:16px}::ng-deep .p-overlaypanel.flow-header-overlay.no-padding .p-overlaypanel-content{padding:0}::ng-deep .p-overlaypanel.flow-header-overlay.left:before{left:6px!important}::ng-deep .p-overlaypanel.flow-header-overlay.right:before{right:6px!important}::ng-deep .p-overlaypanel.flow-header-overlay.left .p-overlaypanel-content{margin-left:-16px}::ng-deep .p-overlaypanel.flow-header-overlay.right .p-overlaypanel-content{margin-right:-16px}::ng-deep .p-overlaypanel.flow-header-overlay:before{background-color:#fff}::ng-deep .p-overlaypanel.price-list-overlay .p-overlaypanel-content{border-radius:5px;border-color:var(--vl-border-color);padding:0;display:flex;flex-direction:column;max-height:140px;overflow:auto}:host ::ng-deep p-splitButton{height:32px;width:146px;display:flex}:host ::ng-deep p-splitButton .p-splitbutton{display:flex;font-size:12px;border-radius:2px;height:100%;width:100%;-webkit-backface-visibility:hidden}:host ::ng-deep p-splitButton .p-splitbutton .p-button:focus{box-shadow:none}:host ::ng-deep p-splitButton .p-splitbutton .p-splitbutton-defaultbutton{padding:7px 12px 7px 10px}:host ::ng-deep p-splitButton .p-splitbutton .p-splitbutton-defaultbutton:disabled{opacity:.2}:host ::ng-deep p-splitButton .p-splitbutton .p-splitbutton-menubutton:disabled{opacity:.3}:host ::ng-deep p-splitButton .p-splitbutton.p-button-outlined .p-button{background-color:#fff;color:var(--vl-primary-color);border:1px solid #fff}:host ::ng-deep p-splitButton .p-splitbutton.p-button-outlined .p-button:enabled:hover{background-color:var(--vl-secondary-nav-bg);color:var(--vl-primary-color);border:1px solid var(--vl-secondary-nav-bg);outline:none}:host ::ng-deep p-splitButton .p-splitbutton.p-button-outlined .p-button.p-splitbutton-menubutton{background-color:var(--vl-secondary-nav-bg);border-radius:0 2px 2px 0;border:1px solid var(--vl-secondary-nav-bg);border-left:none}:host ::ng-deep p-splitButton .p-splitbutton.p-button-outlined .p-button.p-splitbutton-menubutton:hover{background-color:var(--vl-secondary-nav-bg);border:1px solid var(--vl-secondary-nav-bg);border-left:none}:host ::ng-deep p-splitButton .p-splitbutton.p-button-outlined .p-button.p-splitbutton-defaultbutton{border-radius:2px 0 0 2px}:host ::ng-deep p-splitButton .p-splitbutton.p-button-outlined .p-button.p-splitbutton-defaultbutton .p-button-label{font-size:12px;line-height:16px;letter-spacing:.3px;white-space:nowrap}:host ::ng-deep p-splitButton .p-splitbutton .p-menu{display:flex;width:auto;margin-top:2px;border-radius:4px;border:1px solid var(--vl-border-color);box-shadow:0 4px 20px #2767c11a}:host ::ng-deep p-splitButton .p-splitbutton .p-menu .p-menu-list{display:flex;flex-direction:column}:host ::ng-deep p-splitButton .p-splitbutton .p-menu .p-menu-list .p-menuitem{display:flex;width:100%;height:32px}:host ::ng-deep p-splitButton .p-splitbutton .p-menu .p-menu-list .p-menuitem .p-menuitem-link{padding:8px;width:100%;height:100%}:host ::ng-deep p-splitButton .p-splitbutton .p-menu .p-menu-list .p-menuitem .p-menuitem-link:not(.p-disabled):hover{background-color:var(--vl-secondary-nav-bg)}:host ::ng-deep p-splitButton .p-splitbutton .p-menu .p-menu-list .p-menuitem .p-menuitem-link:not(.p-disabled):hover .p-menuitem-text{color:var(--vl-primary-color)}:host ::ng-deep p-splitButton .p-splitbutton .p-menu .p-menu-list .p-menuitem .p-menuitem-link .p-menuitem-text{line-height:16px;font-size:12px;letter-spacing:.3px;white-space:nowrap}:host ::ng-deep .doc-gen-button{height:32px;width:32px;display:inline-flex}:host ::ng-deep .doc-gen-button .p-button{border:1px solid #fff;border-radius:2px;width:100%;height:100%}:host ::ng-deep .doc-gen-button .p-button.p-component:disabled{opacity:.3}:host ::ng-deep .save-button,:host ::ng-deep .submit-button{height:32px;width:146px;display:flex}:host ::ng-deep .save-button .p-button,:host ::ng-deep .submit-button .p-button{border-radius:3px;width:100%;height:100%;background:rgba(255,255,255,.3);opacity:1;border:none}:host ::ng-deep .save-button .p-button .p-button-label,:host ::ng-deep .submit-button .p-button .p-button-label{font-size:12px;line-height:16px;letter-spacing:.3px;white-space:nowrap}.vl-icon{display:inline-block}.flow-info{flex-shrink:0;display:flex;grid-gap:8px;gap:8px;align-items:center}.flow-info .nav-popover-toggle{margin-left:-8px}.flow-info .nav-back{font-weight:bold}.flow-info .nav-item:not(.disabled):hover,.flow-info .nav-popover-toggle:not(.disabled):hover{opacity:.6}nav{display:flex;align-items:center;cursor:pointer;height:14px}nav.disabled{opacity:.6;cursor:default}nav .nav-icon{margin-right:10px}nav .icon-with-margin{margin:0 4px}nav a{color:#fff}nav.account-name{margin-left:4px;display:block;max-width:200px;overflow:hidden;text-overflow:ellipsis}nav.nav-popover-toggle{width:24px;display:flex;justify-content:center}nav.nav-popover-toggle i{pointer-events:none;margin:0}nav i{pointer-events:none}.metrics__row{display:flex;justify-content:space-between;grid-gap:2px;gap:2px}.dot-separator:after{content:\"\";display:block;width:4px;height:4px;border-radius:50%;background:#fff}.slash-separator:after{content:\"\";display:block;background:#fff;width:1px;height:16px}.flow-header-overlay__wrapper{width:360px}.flow-header-overlay__wrapper .close-icon{cursor:pointer}.flow-header-overlay__wrapper .info-list{list-style:none;padding:0;font-size:12px}.flow-header-overlay__wrapper .info-list__row{padding:8px 0;display:flex;justify-content:space-between}.flow-header-overlay__wrapper .info-list__row a{text-align:right}.flow-header-overlay__title{display:flex;justify-content:space-between;align-items:center;margin:0 0 24px}.flow-navigation{flex-grow:1;display:flex;grid-gap:16px;gap:16px;justify-content:center;font-weight:600}.flow-navigation .cart-nav-container{display:flex}.flow-navigation .nav-popover-toggle{margin-left:-14px}.flow-navigation .nav-item,.flow-navigation .nav-popover-toggle{opacity:.6}.flow-navigation .nav-item.active,.flow-navigation .nav-item:not(.disabled):hover,.flow-navigation .nav-popover-toggle.active,.flow-navigation .nav-popover-toggle:not(.disabled):hover{opacity:1}.price-list-option{padding:8px;color:var(--vl-primary-color);cursor:pointer}.price-list-option.active,.price-list-option:hover{background:var(--vl-secondary-nav-bg)}.flow-controls{flex-shrink:0;display:flex;align-items:center;grid-gap:16px;gap:16px;font-size:12px;line-height:16px}\n"], components: [{ type: i3__namespace$1.OverlayPanel, selector: "p-overlayPanel", inputs: ["dismissable", "showCloseIcon", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }, { type: CartPreviewComponent, selector: "vl-cart-preview", inputs: ["products"] }, { type: MetricsComponent, selector: "vl-metrics" }, { type: i5__namespace.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "style", "styleClass", "badgeClass"], outputs: ["onClick", "onFocus", "onBlur"] }, { type: i10__namespace$1.SplitButton, selector: "p-splitButton", inputs: ["model", "icon", "iconPos", "label", "style", "styleClass", "menuStyle", "menuStyleClass", "disabled", "tabindex", "appendTo", "dir", "expandAriaLabel", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onClick", "onDropdownClick"] }], directives: [{ type: i5__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i12__namespace$1.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { type: i2__namespace$1.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { type: i3__namespace.LetDirective, selector: "[vlLet]", inputs: ["vlLet"] }, { type: i5__namespace$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i5__namespace$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "async": i5__namespace$1.AsyncPipe, "titlecase": i5__namespace$1.TitleCasePipe, "date": i5__namespace$1.DatePipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
1276
1490
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowHeaderComponent, decorators: [{
1277
1491
  type: i0.Component,
1278
1492
  args: [{
@@ -1281,7 +1495,61 @@
1281
1495
  styleUrls: ['./header.component.scss'],
1282
1496
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
1283
1497
  }]
1284
- }], ctorParameters: function () { return [{ type: i1__namespace$1.ContextService }, { type: i1__namespace$1.QuoteDraftService }, { type: i2__namespace$1.QuoteApiService }, { type: i2__namespace$1.SalesforceApiService }, { type: i1__namespace$1.FlowConfigurationService }, { type: FlowRouterService }, { type: FlowDialogService }, { type: i4__namespace.IntegrationState }]; } });
1498
+ }], ctorParameters: function () { return [{ type: i1__namespace$2.ContextService }, { type: i1__namespace$2.QuoteDraftService }, { type: i2__namespace.QuoteApiService }, { type: i2__namespace.SalesforceApiService }, { type: i1__namespace$2.FlowConfigurationService }, { type: FlowRouterService }, { type: FlowDialogService }, { type: i1__namespace$1.IntegrationState }]; } });
1499
+
1500
+ var MetricsModule = /** @class */ (function () {
1501
+ function MetricsModule() {
1502
+ }
1503
+ return MetricsModule;
1504
+ }());
1505
+ MetricsModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: MetricsModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
1506
+ MetricsModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: MetricsModule, declarations: [MetricsComponent], imports: [i5$1.CommonModule,
1507
+ i10.FormsModule,
1508
+ i10.ReactiveFormsModule,
1509
+ i12.DragDropModule,
1510
+ i5.ButtonModule,
1511
+ i3$1.OverlayPanelModule,
1512
+ i4$1.SidebarModule,
1513
+ i11.InputTextModule,
1514
+ i6$1.CheckboxModule,
1515
+ i3.LetDirectiveModule,
1516
+ i4.VirtualScrollerModule,
1517
+ i3.ErrorTooltipModule], exports: [MetricsComponent] });
1518
+ MetricsModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: MetricsModule, imports: [[
1519
+ i5$1.CommonModule,
1520
+ i10.FormsModule,
1521
+ i10.ReactiveFormsModule,
1522
+ i12.DragDropModule,
1523
+ i5.ButtonModule,
1524
+ i3$1.OverlayPanelModule,
1525
+ i4$1.SidebarModule,
1526
+ i11.InputTextModule,
1527
+ i6$1.CheckboxModule,
1528
+ i3.LetDirectiveModule,
1529
+ i4.VirtualScrollerModule,
1530
+ i3.ErrorTooltipModule,
1531
+ ]] });
1532
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: MetricsModule, decorators: [{
1533
+ type: i0.NgModule,
1534
+ args: [{
1535
+ declarations: [MetricsComponent],
1536
+ imports: [
1537
+ i5$1.CommonModule,
1538
+ i10.FormsModule,
1539
+ i10.ReactiveFormsModule,
1540
+ i12.DragDropModule,
1541
+ i5.ButtonModule,
1542
+ i3$1.OverlayPanelModule,
1543
+ i4$1.SidebarModule,
1544
+ i11.InputTextModule,
1545
+ i6$1.CheckboxModule,
1546
+ i3.LetDirectiveModule,
1547
+ i4.VirtualScrollerModule,
1548
+ i3.ErrorTooltipModule,
1549
+ ],
1550
+ exports: [MetricsComponent],
1551
+ }]
1552
+ }] });
1285
1553
 
1286
1554
  var FlowHeaderModule = /** @class */ (function () {
1287
1555
  function FlowHeaderModule() {
@@ -1289,34 +1557,37 @@
1289
1557
  return FlowHeaderModule;
1290
1558
  }());
1291
1559
  FlowHeaderModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowHeaderModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
1292
- FlowHeaderModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowHeaderModule, declarations: [FlowHeaderComponent], imports: [i5.CommonModule,
1560
+ FlowHeaderModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowHeaderModule, declarations: [FlowHeaderComponent], imports: [i5$1.CommonModule,
1293
1561
  i3$1.OverlayPanelModule,
1294
1562
  i3.LetDirectiveModule,
1295
- i12.TooltipModule,
1296
- i2.ButtonModule,
1563
+ i12$1.TooltipModule,
1564
+ i5.ButtonModule,
1297
1565
  CartPreviewModule,
1298
- i9.SplitButtonModule], exports: [FlowHeaderComponent] });
1566
+ i10$1.SplitButtonModule,
1567
+ MetricsModule], exports: [FlowHeaderComponent] });
1299
1568
  FlowHeaderModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowHeaderModule, imports: [[
1300
- i5.CommonModule,
1569
+ i5$1.CommonModule,
1301
1570
  i3$1.OverlayPanelModule,
1302
1571
  i3.LetDirectiveModule,
1303
- i12.TooltipModule,
1304
- i2.ButtonModule,
1572
+ i12$1.TooltipModule,
1573
+ i5.ButtonModule,
1305
1574
  CartPreviewModule,
1306
- i9.SplitButtonModule,
1575
+ i10$1.SplitButtonModule,
1576
+ MetricsModule,
1307
1577
  ]] });
1308
1578
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowHeaderModule, decorators: [{
1309
1579
  type: i0.NgModule,
1310
1580
  args: [{
1311
1581
  declarations: [FlowHeaderComponent],
1312
1582
  imports: [
1313
- i5.CommonModule,
1583
+ i5$1.CommonModule,
1314
1584
  i3$1.OverlayPanelModule,
1315
1585
  i3.LetDirectiveModule,
1316
- i12.TooltipModule,
1317
- i2.ButtonModule,
1586
+ i12$1.TooltipModule,
1587
+ i5.ButtonModule,
1318
1588
  CartPreviewModule,
1319
- i9.SplitButtonModule,
1589
+ i10$1.SplitButtonModule,
1590
+ MetricsModule,
1320
1591
  ],
1321
1592
  exports: [FlowHeaderComponent],
1322
1593
  }]
@@ -1334,7 +1605,7 @@
1334
1605
  FlowService.prototype.initSubscriptions = function () {
1335
1606
  var _this = this;
1336
1607
  this.integrationState
1337
- .listen$(i4.FlowAction.FLOW_CONFIGURE_PRODUCT)
1608
+ .listen$(i1$1.FlowAction.FLOW_CONFIGURE_PRODUCT)
1338
1609
  .pipe(rxjs.tap(function (payload) {
1339
1610
  var _a, _b;
1340
1611
  var productId = (_a = payload.productId) !== null && _a !== void 0 ? _a : (_b = _this.quoteDraftService.currentState.find(function (li) { return li.id === payload.lineItemId; })) === null || _b === void 0 ? void 0 : _b.productId;
@@ -1347,15 +1618,21 @@
1347
1618
  }), rxjs.takeUntil(this.cleanup$))
1348
1619
  .subscribe();
1349
1620
  this.integrationState
1350
- .listen$(i4.FlowAction.FLOW_NAVIGATE_BACK)
1621
+ .listen$(i1$1.FlowAction.FLOW_SWITCH_OBJECT)
1622
+ .pipe(rxjs.tap(function (payload) {
1623
+ _this.flowRouterService.switchObject(payload.id);
1624
+ }), rxjs.takeUntil(this.cleanup$))
1625
+ .subscribe();
1626
+ this.integrationState
1627
+ .listen$(i1$1.FlowAction.FLOW_NAVIGATE_BACK)
1351
1628
  .pipe(rxjs.tap(function () { return _this.flowRouterService.navigateBack(); }), rxjs.takeUntil(this.cleanup$))
1352
1629
  .subscribe();
1353
1630
  this.integrationState
1354
- .listen$(i4.FlowAction.FLOW_NAVIGATE_TO_CATALOG)
1631
+ .listen$(i1$1.FlowAction.FLOW_NAVIGATE_TO_CATALOG)
1355
1632
  .pipe(rxjs.tap(function () { return _this.flowRouterService.navigateToCatalog(); }), rxjs.takeUntil(this.cleanup$))
1356
1633
  .subscribe();
1357
1634
  this.integrationState
1358
- .listen$(i4.FlowAction.FLOW_APPLY_PRODUCT_CONFIGURATION)
1635
+ .listen$(i1$1.FlowAction.FLOW_APPLY_PRODUCT_CONFIGURATION)
1359
1636
  .pipe(rxjs.switchMap(function () {
1360
1637
  var quoteDraft = _this.quoteDraftService.quoteDraft;
1361
1638
  var lineItem = _this.configurationService.getSnapshot();
@@ -1382,11 +1659,11 @@
1382
1659
  };
1383
1660
  return FlowService;
1384
1661
  }());
1385
- FlowService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowService, deps: [{ token: i4__namespace.IntegrationState }, { token: FlowRouterService }, { token: i1__namespace$1.QuoteDraftService }, { token: i1__namespace$1.ConfigurationService }, { token: i1__namespace$1.FlowConfigurationService }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
1662
+ FlowService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowService, deps: [{ token: i1__namespace$1.IntegrationState }, { token: FlowRouterService }, { token: i1__namespace$2.QuoteDraftService }, { token: i1__namespace$2.ConfigurationService }, { token: i1__namespace$2.FlowConfigurationService }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
1386
1663
  FlowService.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowService });
1387
1664
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowService, decorators: [{
1388
1665
  type: i0.Injectable
1389
- }], ctorParameters: function () { return [{ type: i4__namespace.IntegrationState }, { type: FlowRouterService }, { type: i1__namespace$1.QuoteDraftService }, { type: i1__namespace$1.ConfigurationService }, { type: i1__namespace$1.FlowConfigurationService }]; } });
1666
+ }], ctorParameters: function () { return [{ type: i1__namespace$1.IntegrationState }, { type: FlowRouterService }, { type: i1__namespace$2.QuoteDraftService }, { type: i1__namespace$2.ConfigurationService }, { type: i1__namespace$2.FlowConfigurationService }]; } });
1390
1667
 
1391
1668
  var FlowComponent = /** @class */ (function () {
1392
1669
  function FlowComponent(routerService, quoteDraftService, flowService, docGenService, integrationState) {
@@ -1410,8 +1687,8 @@
1410
1687
  };
1411
1688
  return FlowComponent;
1412
1689
  }());
1413
- FlowComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowComponent, deps: [{ token: FlowRouterService }, { token: i1__namespace$1.QuoteDraftService }, { token: FlowService }, { token: FlowDocGenService }, { token: i4__namespace.IntegrationState }], target: i0__namespace.ɵɵFactoryTarget.Component });
1414
- FlowComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: FlowComponent, selector: "vl-flow", ngImport: i0__namespace, template: "<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", styles: [":host{display:flex;flex-direction:column;height:100%}.flow-content{flex-grow:1;position:relative;overflow:hidden}.loading-overlay{position:absolute;height:100%;width:100%;left:0;right:0;top:0;bottom:0;background-color:#ffffff80;z-index:4}\n"], components: [{ type: FlowHeaderComponent, selector: "vl-flow-header" }, { type: i3__namespace.LoaderComponent, selector: "vl-loader", inputs: ["label", "overlayVisible"] }, { type: DocGenComponent, selector: "vl-flow-doc-gen" }], directives: [{ type: i5__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1__namespace$2.RouterOutlet, selector: "router-outlet", outputs: ["activate", "deactivate"], exportAs: ["outlet"] }, { type: i3__namespace.LetDirective, selector: "[vlLet]", inputs: ["vlLet"] }], pipes: { "async": i5__namespace.AsyncPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
1690
+ FlowComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowComponent, deps: [{ token: FlowRouterService }, { token: i1__namespace$2.QuoteDraftService }, { token: FlowService }, { token: FlowDocGenService }, { token: i1__namespace$1.IntegrationState }], target: i0__namespace.ɵɵFactoryTarget.Component });
1691
+ FlowComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: FlowComponent, selector: "vl-flow", ngImport: i0__namespace, template: "<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", styles: [":host{display:flex;flex-direction:column;height:100%}.flow-content{flex-grow:1;position:relative;overflow:hidden}.loading-overlay{position:absolute;height:100%;width:100%;left:0;right:0;top:0;bottom:0;background-color:#ffffff80;z-index:4}\n"], components: [{ type: FlowHeaderComponent, selector: "vl-flow-header" }, { type: i3__namespace.LoaderComponent, selector: "vl-loader", inputs: ["label", "overlayVisible"] }, { type: DocGenComponent, selector: "vl-flow-doc-gen" }], directives: [{ type: i5__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1__namespace$3.RouterOutlet, selector: "router-outlet", outputs: ["activate", "deactivate"], exportAs: ["outlet"] }, { type: i3__namespace.LetDirective, selector: "[vlLet]", inputs: ["vlLet"] }], pipes: { "async": i5__namespace$1.AsyncPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
1415
1692
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowComponent, decorators: [{
1416
1693
  type: i0.Component,
1417
1694
  args: [{
@@ -1420,7 +1697,7 @@
1420
1697
  styleUrls: ['./flow.component.scss'],
1421
1698
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
1422
1699
  }]
1423
- }], ctorParameters: function () { return [{ type: FlowRouterService }, { type: i1__namespace$1.QuoteDraftService }, { type: FlowService }, { type: FlowDocGenService }, { type: i4__namespace.IntegrationState }]; } });
1700
+ }], ctorParameters: function () { return [{ type: FlowRouterService }, { type: i1__namespace$2.QuoteDraftService }, { type: FlowService }, { type: FlowDocGenService }, { type: i1__namespace$1.IntegrationState }]; } });
1424
1701
 
1425
1702
  var getFlowObjectIdPropertyName = function (id) {
1426
1703
  var objectName = core.SalesforceIdUtils.getSfObjectNameById(id);
@@ -1518,11 +1795,11 @@
1518
1795
  };
1519
1796
  return ContextGuard;
1520
1797
  }());
1521
- ContextGuard.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ContextGuard, deps: [{ token: i1__namespace$2.Router }, { token: FlowRouterService }, { token: i1__namespace$1.ContextService }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
1798
+ ContextGuard.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ContextGuard, deps: [{ token: i1__namespace$3.Router }, { token: FlowRouterService }, { token: i1__namespace$2.ContextService }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
1522
1799
  ContextGuard.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ContextGuard });
1523
1800
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ContextGuard, decorators: [{
1524
1801
  type: i0.Injectable
1525
- }], ctorParameters: function () { return [{ type: i1__namespace$2.Router }, { type: FlowRouterService }, { type: i1__namespace$1.ContextService }]; } });
1802
+ }], ctorParameters: function () { return [{ type: i1__namespace$3.Router }, { type: FlowRouterService }, { type: i1__namespace$2.ContextService }]; } });
1526
1803
 
1527
1804
  var ProductUnloadGuard = /** @class */ (function () {
1528
1805
  function ProductUnloadGuard(router, contextService, quoteDraftService, configurationService, flowDialogService) {
@@ -1557,11 +1834,11 @@
1557
1834
  };
1558
1835
  return ProductUnloadGuard;
1559
1836
  }());
1560
- ProductUnloadGuard.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ProductUnloadGuard, deps: [{ token: i1__namespace$2.Router }, { token: i1__namespace$1.ContextService }, { token: i1__namespace$1.QuoteDraftService }, { token: i1__namespace$1.ConfigurationService }, { token: FlowDialogService }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
1837
+ ProductUnloadGuard.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ProductUnloadGuard, deps: [{ token: i1__namespace$3.Router }, { token: i1__namespace$2.ContextService }, { token: i1__namespace$2.QuoteDraftService }, { token: i1__namespace$2.ConfigurationService }, { token: FlowDialogService }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
1561
1838
  ProductUnloadGuard.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ProductUnloadGuard });
1562
1839
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ProductUnloadGuard, decorators: [{
1563
1840
  type: i0.Injectable
1564
- }], ctorParameters: function () { return [{ type: i1__namespace$2.Router }, { type: i1__namespace$1.ContextService }, { type: i1__namespace$1.QuoteDraftService }, { type: i1__namespace$1.ConfigurationService }, { type: FlowDialogService }]; } });
1841
+ }], ctorParameters: function () { return [{ type: i1__namespace$3.Router }, { type: i1__namespace$2.ContextService }, { type: i1__namespace$2.QuoteDraftService }, { type: i1__namespace$2.ConfigurationService }, { type: FlowDialogService }]; } });
1565
1842
 
1566
1843
  var RootGuard = /** @class */ (function () {
1567
1844
  function RootGuard(router, routerService) {
@@ -1595,12 +1872,12 @@
1595
1872
  };
1596
1873
  return RootGuard;
1597
1874
  }());
1598
- RootGuard.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: RootGuard, deps: [{ token: i1__namespace$2.Router }, { token: FlowRouterService }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
1875
+ RootGuard.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: RootGuard, deps: [{ token: i1__namespace$3.Router }, { token: FlowRouterService }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
1599
1876
  RootGuard.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: RootGuard, providedIn: 'root' });
1600
1877
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: RootGuard, decorators: [{
1601
1878
  type: i0.Injectable,
1602
1879
  args: [{ providedIn: 'root' }]
1603
- }], ctorParameters: function () { return [{ type: i1__namespace$2.Router }, { type: FlowRouterService }]; } });
1880
+ }], ctorParameters: function () { return [{ type: i1__namespace$3.Router }, { type: FlowRouterService }]; } });
1604
1881
 
1605
1882
  var FLOW_CUSTOMIZATION = new i0.InjectionToken('FLOW_CUSTOMIZATION');
1606
1883
 
@@ -1697,8 +1974,8 @@
1697
1974
  };
1698
1975
  return CatalogComponent;
1699
1976
  }());
1700
- CatalogComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: CatalogComponent, deps: [{ token: i2__namespace$1.UITemplatesApiService }, { token: i1__namespace$1.ContextService }, { token: i0__namespace.ChangeDetectorRef }, { token: i3__namespace.ToastService }, { token: FLOW_CUSTOMIZATION, optional: true }], target: i0__namespace.ɵɵFactoryTarget.Component });
1701
- CatalogComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: CatalogComponent, selector: "vl-flow-catalog", ngImport: i0__namespace, template: "<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", styles: [""], components: [{ type: i3__namespace.LoaderComponent, selector: "vl-loader", inputs: ["label", "overlayVisible"] }, { type: i4__namespace.PreviewComponent, selector: "vl-cms-preview", inputs: ["modelId", "uiDefinition", "clearState"] }], directives: [{ type: i5__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i5__namespace.AsyncPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
1977
+ CatalogComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: CatalogComponent, deps: [{ token: i2__namespace.UITemplatesApiService }, { token: i1__namespace$2.ContextService }, { token: i0__namespace.ChangeDetectorRef }, { token: i3__namespace.ToastService }, { token: FLOW_CUSTOMIZATION, optional: true }], target: i0__namespace.ɵɵFactoryTarget.Component });
1978
+ CatalogComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: CatalogComponent, selector: "vl-flow-catalog", ngImport: i0__namespace, template: "<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", styles: [""], components: [{ type: i3__namespace.LoaderComponent, selector: "vl-loader", inputs: ["label", "overlayVisible"] }, { type: i1__namespace$1.PreviewComponent, selector: "vl-cms-preview", inputs: ["modelId", "uiDefinition", "clearState"] }], directives: [{ type: i5__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i5__namespace$1.AsyncPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
1702
1979
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: CatalogComponent, decorators: [{
1703
1980
  type: i0.Component,
1704
1981
  args: [{
@@ -1708,7 +1985,7 @@
1708
1985
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
1709
1986
  }]
1710
1987
  }], ctorParameters: function () {
1711
- return [{ type: i2__namespace$1.UITemplatesApiService }, { type: i1__namespace$1.ContextService }, { type: i0__namespace.ChangeDetectorRef }, { type: i3__namespace.ToastService }, { type: undefined, decorators: [{
1988
+ return [{ type: i2__namespace.UITemplatesApiService }, { type: i1__namespace$2.ContextService }, { type: i0__namespace.ChangeDetectorRef }, { type: i3__namespace.ToastService }, { type: undefined, decorators: [{
1712
1989
  type: i0.Optional
1713
1990
  }, {
1714
1991
  type: i0.Inject,
@@ -1722,13 +1999,13 @@
1722
1999
  return CatalogModule;
1723
2000
  }());
1724
2001
  CatalogModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: CatalogModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
1725
- CatalogModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: CatalogModule, declarations: [CatalogComponent], imports: [i5.CommonModule, i4.PreviewModule, i3.LoaderModule], exports: [CatalogComponent] });
1726
- CatalogModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: CatalogModule, imports: [[i5.CommonModule, i4.PreviewModule, i3.LoaderModule]] });
2002
+ CatalogModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: CatalogModule, declarations: [CatalogComponent], imports: [i5$1.CommonModule, i1$1.PreviewModule, i3.LoaderModule], exports: [CatalogComponent] });
2003
+ CatalogModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: CatalogModule, imports: [[i5$1.CommonModule, i1$1.PreviewModule, i3.LoaderModule]] });
1727
2004
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: CatalogModule, decorators: [{
1728
2005
  type: i0.NgModule,
1729
2006
  args: [{
1730
2007
  declarations: [CatalogComponent],
1731
- imports: [i5.CommonModule, i4.PreviewModule, i3.LoaderModule],
2008
+ imports: [i5$1.CommonModule, i1$1.PreviewModule, i3.LoaderModule],
1732
2009
  exports: [CatalogComponent],
1733
2010
  }]
1734
2011
  }] });
@@ -1740,8 +2017,8 @@
1740
2017
  this.activatedRoute = activatedRoute;
1741
2018
  this.context = context;
1742
2019
  this.quoteDraftService = quoteDraftService;
1743
- this.form = new i6.FormGroup({
1744
- id: new i6.FormControl(''),
2020
+ this.form = new i10.FormGroup({
2021
+ id: new i10.FormControl(''),
1745
2022
  });
1746
2023
  this.flows$ = this.flowsApiService.fetchFlows().pipe(rxjs.map(function (flows) { return flows.map(function (flow) {
1747
2024
  var _a, _b, _c;
@@ -1771,8 +2048,8 @@
1771
2048
  };
1772
2049
  return DebugComponent;
1773
2050
  }());
1774
- DebugComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: DebugComponent, deps: [{ token: i2__namespace$1.FlowsApiService }, { token: i1__namespace$2.Router }, { token: i1__namespace$2.ActivatedRoute }, { token: i1__namespace$1.ContextService }, { token: i1__namespace$1.QuoteDraftService }], target: i0__namespace.ɵɵFactoryTarget.Component });
1775
- DebugComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: DebugComponent, selector: "vl-flow-debug", ngImport: i0__namespace, template: "<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 </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", styles: [":host{display:block;padding:24px 54px}form{display:flex;align-items:center;justify-content:space-between}.fields-container{display:flex;grid-gap:24px;gap:24px}.field{display:flex;flex-direction:column;width:200px;flex-shrink:0}:host ::ng-deep .p-dropdown{width:100%}table{width:100%;border-collapse:collapse}tr{cursor:pointer}tr:hover{background-color:#f0f5fa}th{text-align:left;font-weight:600}th,td{padding:0 10px;height:30px;border-bottom:1px solid var(--vl-border-color);margin-right:16px}\n"], components: [{ type: i2__namespace.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "style", "styleClass", "badgeClass"], outputs: ["onClick", "onFocus", "onBlur"] }, { type: i5__namespace$1.RadioButton, selector: "p-radioButton", inputs: ["value", "formControlName", "name", "disabled", "label", "tabindex", "inputId", "ariaLabelledBy", "ariaLabel", "style", "styleClass", "labelStyleClass"], outputs: ["onClick", "onFocus", "onBlur"] }], directives: [{ type: i6__namespace$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i6__namespace$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i6__namespace$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i6__namespace$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i6__namespace$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i6__namespace$1.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i7__namespace.InputText, selector: "[pInputText]" }, { type: i5__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i6__namespace$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], pipes: { "async": i5__namespace.AsyncPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
2051
+ DebugComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: DebugComponent, deps: [{ token: i2__namespace.FlowsApiService }, { token: i1__namespace$3.Router }, { token: i1__namespace$3.ActivatedRoute }, { token: i1__namespace$2.ContextService }, { token: i1__namespace$2.QuoteDraftService }], target: i0__namespace.ɵɵFactoryTarget.Component });
2052
+ DebugComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: DebugComponent, selector: "vl-flow-debug", ngImport: i0__namespace, template: "<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 </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", styles: [":host{display:block;padding:24px 54px}form{display:flex;align-items:center;justify-content:space-between}.fields-container{display:flex;grid-gap:24px;gap:24px}.field{display:flex;flex-direction:column;width:200px;flex-shrink:0}:host ::ng-deep .p-dropdown{width:100%}table{width:100%;border-collapse:collapse}tr{cursor:pointer}tr:hover{background-color:#f0f5fa}th{text-align:left;font-weight:600}th,td{padding:0 10px;height:30px;border-bottom:1px solid var(--vl-border-color);margin-right:16px}\n"], components: [{ type: i5__namespace.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "style", "styleClass", "badgeClass"], outputs: ["onClick", "onFocus", "onBlur"] }, { type: i5__namespace$2.RadioButton, selector: "p-radioButton", inputs: ["value", "formControlName", "name", "disabled", "label", "tabindex", "inputId", "ariaLabelledBy", "ariaLabel", "style", "styleClass", "labelStyleClass"], outputs: ["onClick", "onFocus", "onBlur"] }], directives: [{ type: i10__namespace.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i10__namespace.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i10__namespace.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i10__namespace.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i10__namespace.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i10__namespace.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i11__namespace.InputText, selector: "[pInputText]" }, { type: i5__namespace$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i10__namespace.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], pipes: { "async": i5__namespace$1.AsyncPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
1776
2053
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: DebugComponent, decorators: [{
1777
2054
  type: i0.Component,
1778
2055
  args: [{
@@ -1781,7 +2058,7 @@
1781
2058
  styleUrls: ['./debug.component.scss'],
1782
2059
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
1783
2060
  }]
1784
- }], ctorParameters: function () { return [{ type: i2__namespace$1.FlowsApiService }, { type: i1__namespace$2.Router }, { type: i1__namespace$2.ActivatedRoute }, { type: i1__namespace$1.ContextService }, { type: i1__namespace$1.QuoteDraftService }]; } });
2061
+ }], ctorParameters: function () { return [{ type: i2__namespace.FlowsApiService }, { type: i1__namespace$3.Router }, { type: i1__namespace$3.ActivatedRoute }, { type: i1__namespace$2.ContextService }, { type: i1__namespace$2.QuoteDraftService }]; } });
1785
2062
 
1786
2063
  var routes$1 = [{ path: '', component: DebugComponent }];
1787
2064
  var DebugModule = /** @class */ (function () {
@@ -1790,20 +2067,20 @@
1790
2067
  return DebugModule;
1791
2068
  }());
1792
2069
  DebugModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: DebugModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
1793
- DebugModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: DebugModule, declarations: [DebugComponent], imports: [i5.CommonModule,
1794
- i6.FormsModule,
1795
- i6.ReactiveFormsModule, i1__namespace$2.RouterModule, i5$1.RadioButtonModule,
1796
- i2.ButtonModule,
1797
- i7.InputTextModule,
2070
+ DebugModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: DebugModule, declarations: [DebugComponent], imports: [i5$1.CommonModule,
2071
+ i10.FormsModule,
2072
+ i10.ReactiveFormsModule, i1__namespace$3.RouterModule, i5$2.RadioButtonModule,
2073
+ i5.ButtonModule,
2074
+ i11.InputTextModule,
1798
2075
  dropdown.DropdownModule] });
1799
2076
  DebugModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: DebugModule, imports: [[
1800
- i5.CommonModule,
1801
- i6.FormsModule,
1802
- i6.ReactiveFormsModule,
1803
- i1$2.RouterModule.forChild(routes$1),
1804
- i5$1.RadioButtonModule,
1805
- i2.ButtonModule,
1806
- i7.InputTextModule,
2077
+ i5$1.CommonModule,
2078
+ i10.FormsModule,
2079
+ i10.ReactiveFormsModule,
2080
+ i1$3.RouterModule.forChild(routes$1),
2081
+ i5$2.RadioButtonModule,
2082
+ i5.ButtonModule,
2083
+ i11.InputTextModule,
1807
2084
  dropdown.DropdownModule,
1808
2085
  ]] });
1809
2086
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: DebugModule, decorators: [{
@@ -1811,13 +2088,13 @@
1811
2088
  args: [{
1812
2089
  declarations: [DebugComponent],
1813
2090
  imports: [
1814
- i5.CommonModule,
1815
- i6.FormsModule,
1816
- i6.ReactiveFormsModule,
1817
- i1$2.RouterModule.forChild(routes$1),
1818
- i5$1.RadioButtonModule,
1819
- i2.ButtonModule,
1820
- i7.InputTextModule,
2091
+ i5$1.CommonModule,
2092
+ i10.FormsModule,
2093
+ i10.ReactiveFormsModule,
2094
+ i1$3.RouterModule.forChild(routes$1),
2095
+ i5$2.RadioButtonModule,
2096
+ i5.ButtonModule,
2097
+ i11.InputTextModule,
1821
2098
  dropdown.DropdownModule,
1822
2099
  ],
1823
2100
  }]
@@ -1846,13 +2123,13 @@
1846
2123
  return EmptyAccountModule;
1847
2124
  }());
1848
2125
  EmptyAccountModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: EmptyAccountModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
1849
- EmptyAccountModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: EmptyAccountModule, declarations: [EmptyAccountComponent], imports: [i5.CommonModule, i4.PreviewModule, i3.LoaderModule, i3.EmptyStateModule], exports: [EmptyAccountComponent] });
1850
- EmptyAccountModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: EmptyAccountModule, imports: [[i5.CommonModule, i4.PreviewModule, i3.LoaderModule, i3.EmptyStateModule]] });
2126
+ EmptyAccountModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: EmptyAccountModule, declarations: [EmptyAccountComponent], imports: [i5$1.CommonModule, i1$1.PreviewModule, i3.LoaderModule, i3.EmptyStateModule], exports: [EmptyAccountComponent] });
2127
+ EmptyAccountModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: EmptyAccountModule, imports: [[i5$1.CommonModule, i1$1.PreviewModule, i3.LoaderModule, i3.EmptyStateModule]] });
1851
2128
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: EmptyAccountModule, decorators: [{
1852
2129
  type: i0.NgModule,
1853
2130
  args: [{
1854
2131
  declarations: [EmptyAccountComponent],
1855
- imports: [i5.CommonModule, i4.PreviewModule, i3.LoaderModule, i3.EmptyStateModule],
2132
+ imports: [i5$1.CommonModule, i1$1.PreviewModule, i3.LoaderModule, i3.EmptyStateModule],
1856
2133
  exports: [EmptyAccountComponent],
1857
2134
  }]
1858
2135
  }] });
@@ -1927,12 +2204,12 @@
1927
2204
  .find(function (id) { return id; });
1928
2205
  };
1929
2206
  LegacyProductComponent.prototype.configure = function (productId) {
1930
- var runtimeContext = this.getRuntimeContext(productId, '', i1$1.RuntimeOperation.INIT);
2207
+ var runtimeContext = this.getRuntimeContext(productId, '', i1$2.RuntimeOperation.INIT);
1931
2208
  this.startRuntime({}, runtimeContext);
1932
2209
  };
1933
2210
  LegacyProductComponent.prototype.reConfigure = function (lineItemId, currentState) {
1934
2211
  var currentStateItem = core.EntityUtil.findById(lineItemId, currentState);
1935
- var runtimeContext = this.getRuntimeContext(currentStateItem.productId, currentStateItem.offeringId, i1$1.RuntimeOperation.UPDATE);
2212
+ var runtimeContext = this.getRuntimeContext(currentStateItem.productId, currentStateItem.offeringId, i1$2.RuntimeOperation.UPDATE);
1936
2213
  var states = {
1937
2214
  configurableRamp: currentStateItem,
1938
2215
  currentState: currentState,
@@ -1962,13 +2239,13 @@
1962
2239
  LegacyProductComponent.prototype.getRuntimeContext = function (productId, offeringId, runtimeOperation) {
1963
2240
  var _this = this;
1964
2241
  return this.runtimeContextService.getRuntimeContext(productId, offeringId).pipe(operators.map(function (runtimeContext) {
1965
- runtimeContext.invocationContext = { runtimeOperation: i1$1.RuntimeOperation[runtimeOperation] };
2242
+ runtimeContext.invocationContext = { runtimeOperation: i1$2.RuntimeOperation[runtimeOperation] };
1966
2243
  return runtimeContext;
1967
2244
  }), operators.switchMap(function (runtimeContext) { return _this.customizeContext(productId, runtimeContext); }));
1968
2245
  };
1969
2246
  return LegacyProductComponent;
1970
2247
  }());
1971
- LegacyProductComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: LegacyProductComponent, deps: [{ token: i1__namespace$2.ActivatedRoute }, { token: i1__namespace$1.QuoteDraftService }, { token: i2__namespace$1.QuoteApiService }, { token: i1__namespace$1.ContextService }, { token: i4__namespace$2.RuntimeContextService }, { token: i4__namespace$2.RuntimeService }, { token: i4__namespace$2.CurrentStateService }, { token: FLOW_CUSTOMIZATION, optional: true }], target: i0__namespace.ɵɵFactoryTarget.Component });
2248
+ LegacyProductComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: LegacyProductComponent, deps: [{ token: i1__namespace$3.ActivatedRoute }, { token: i1__namespace$2.QuoteDraftService }, { token: i2__namespace.QuoteApiService }, { token: i1__namespace$2.ContextService }, { token: i4__namespace$2.RuntimeContextService }, { token: i4__namespace$2.RuntimeService }, { token: i4__namespace$2.CurrentStateService }, { token: FLOW_CUSTOMIZATION, optional: true }], target: i0__namespace.ɵɵFactoryTarget.Component });
1972
2249
  LegacyProductComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: LegacyProductComponent, selector: "ng-component", ngImport: i0__namespace, template: "<vl-runtime #runtimeView (solutionUpdated)=\"onSolutionUpdated($event)\"></vl-runtime>\n", styles: [":host{display:block;height:100%}\n"], components: [{ type: i4__namespace$2.RuntimeComponent, selector: "vl-runtime", outputs: ["solutionUpdated"] }] });
1973
2250
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: LegacyProductComponent, decorators: [{
1974
2251
  type: i0.Component,
@@ -1977,7 +2254,7 @@
1977
2254
  styleUrls: ['./legacy-product.component.scss'],
1978
2255
  }]
1979
2256
  }], ctorParameters: function () {
1980
- return [{ type: i1__namespace$2.ActivatedRoute }, { type: i1__namespace$1.QuoteDraftService }, { type: i2__namespace$1.QuoteApiService }, { type: i1__namespace$1.ContextService }, { type: i4__namespace$2.RuntimeContextService }, { type: i4__namespace$2.RuntimeService }, { type: i4__namespace$2.CurrentStateService }, { type: undefined, decorators: [{
2257
+ return [{ type: i1__namespace$3.ActivatedRoute }, { type: i1__namespace$2.QuoteDraftService }, { type: i2__namespace.QuoteApiService }, { type: i1__namespace$2.ContextService }, { type: i4__namespace$2.RuntimeContextService }, { type: i4__namespace$2.RuntimeService }, { type: i4__namespace$2.CurrentStateService }, { type: undefined, decorators: [{
1981
2258
  type: i0.Optional
1982
2259
  }, {
1983
2260
  type: i0.Inject,
@@ -1991,13 +2268,13 @@
1991
2268
  return LegacyProductModule;
1992
2269
  }());
1993
2270
  LegacyProductModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: LegacyProductModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
1994
- LegacyProductModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: LegacyProductModule, declarations: [LegacyProductComponent], imports: [i5.CommonModule, i4$2.RuntimeModule, i1__namespace$3.TooltipModule], exports: [LegacyProductComponent] });
1995
- LegacyProductModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: LegacyProductModule, imports: [[i5.CommonModule, i4$2.RuntimeModule, i1$3.TooltipModule.forRoot()]] });
2271
+ LegacyProductModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: LegacyProductModule, declarations: [LegacyProductComponent], imports: [i5$1.CommonModule, i4$2.RuntimeModule, i1__namespace$4.TooltipModule], exports: [LegacyProductComponent] });
2272
+ LegacyProductModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: LegacyProductModule, imports: [[i5$1.CommonModule, i4$2.RuntimeModule, i1$4.TooltipModule.forRoot()]] });
1996
2273
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: LegacyProductModule, decorators: [{
1997
2274
  type: i0.NgModule,
1998
2275
  args: [{
1999
2276
  declarations: [LegacyProductComponent],
2000
- imports: [i5.CommonModule, i4$2.RuntimeModule, i1$3.TooltipModule.forRoot()],
2277
+ imports: [i5$1.CommonModule, i4$2.RuntimeModule, i1$4.TooltipModule.forRoot()],
2001
2278
  exports: [LegacyProductComponent],
2002
2279
  }]
2003
2280
  }] });
@@ -2092,8 +2369,8 @@
2092
2369
  };
2093
2370
  return ProductComponent;
2094
2371
  }());
2095
- ProductComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ProductComponent, deps: [{ token: i1__namespace$1.ContextService }, { token: i1__namespace$1.ConfigurationRuntimeService }, { token: i1__namespace$1.ConfigurationService }, { token: i1__namespace$1.QuoteDraftService }, { token: i2__namespace$2.MessageService }, { token: FLOW_CUSTOMIZATION, optional: true }], target: i0__namespace.ɵɵFactoryTarget.Component });
2096
- ProductComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: ProductComponent, selector: "vl-flow-product", ngImport: i0__namespace, template: "<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", styles: [""], components: [{ type: i3__namespace.LoaderComponent, selector: "vl-loader", inputs: ["label", "overlayVisible"] }, { type: i4__namespace.PreviewComponent, selector: "vl-cms-preview", inputs: ["modelId", "uiDefinition", "clearState"] }], directives: [{ type: i5__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i5__namespace.AsyncPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
2372
+ ProductComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ProductComponent, deps: [{ token: i1__namespace$2.ContextService }, { token: i1__namespace$2.ConfigurationRuntimeService }, { token: i1__namespace$2.ConfigurationService }, { token: i1__namespace$2.QuoteDraftService }, { token: i2__namespace$1.MessageService }, { token: FLOW_CUSTOMIZATION, optional: true }], target: i0__namespace.ɵɵFactoryTarget.Component });
2373
+ ProductComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: ProductComponent, selector: "vl-flow-product", ngImport: i0__namespace, template: "<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", styles: [""], components: [{ type: i3__namespace.LoaderComponent, selector: "vl-loader", inputs: ["label", "overlayVisible"] }, { type: i1__namespace$1.PreviewComponent, selector: "vl-cms-preview", inputs: ["modelId", "uiDefinition", "clearState"] }], directives: [{ type: i5__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i5__namespace$1.AsyncPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
2097
2374
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ProductComponent, decorators: [{
2098
2375
  type: i0.Component,
2099
2376
  args: [{
@@ -2103,7 +2380,7 @@
2103
2380
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
2104
2381
  }]
2105
2382
  }], ctorParameters: function () {
2106
- return [{ type: i1__namespace$1.ContextService }, { type: i1__namespace$1.ConfigurationRuntimeService }, { type: i1__namespace$1.ConfigurationService }, { type: i1__namespace$1.QuoteDraftService }, { type: i2__namespace$2.MessageService }, { type: undefined, decorators: [{
2383
+ return [{ type: i1__namespace$2.ContextService }, { type: i1__namespace$2.ConfigurationRuntimeService }, { type: i1__namespace$2.ConfigurationService }, { type: i1__namespace$2.QuoteDraftService }, { type: i2__namespace$1.MessageService }, { type: undefined, decorators: [{
2107
2384
  type: i0.Optional
2108
2385
  }, {
2109
2386
  type: i0.Inject,
@@ -2117,13 +2394,13 @@
2117
2394
  return ProductModule;
2118
2395
  }());
2119
2396
  ProductModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ProductModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
2120
- ProductModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ProductModule, declarations: [ProductComponent], imports: [i5.CommonModule, i4.PreviewModule, i3.LoaderModule], exports: [ProductComponent] });
2121
- ProductModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ProductModule, imports: [[i5.CommonModule, i4.PreviewModule, i3.LoaderModule]] });
2397
+ ProductModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ProductModule, declarations: [ProductComponent], imports: [i5$1.CommonModule, i1$1.PreviewModule, i3.LoaderModule], exports: [ProductComponent] });
2398
+ ProductModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ProductModule, imports: [[i5$1.CommonModule, i1$1.PreviewModule, i3.LoaderModule]] });
2122
2399
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ProductModule, decorators: [{
2123
2400
  type: i0.NgModule,
2124
2401
  args: [{
2125
2402
  declarations: [ProductComponent],
2126
- imports: [i5.CommonModule, i4.PreviewModule, i3.LoaderModule],
2403
+ imports: [i5$1.CommonModule, i1$1.PreviewModule, i3.LoaderModule],
2127
2404
  exports: [ProductComponent],
2128
2405
  }]
2129
2406
  }] });
@@ -2142,8 +2419,8 @@
2142
2419
  }
2143
2420
  return RecordNotFoundComponent;
2144
2421
  }());
2145
- RecordNotFoundComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: RecordNotFoundComponent, deps: [{ token: i1__namespace$2.Router }, { token: i1__namespace$2.ActivatedRoute }], target: i0__namespace.ɵɵFactoryTarget.Component });
2146
- RecordNotFoundComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: RecordNotFoundComponent, selector: "vl-flow-record-not-found", ngImport: i0__namespace, template: "<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", styles: [":host{display:block;padding:24px 54px}\n"], directives: [{ type: i5__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
2422
+ RecordNotFoundComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: RecordNotFoundComponent, deps: [{ token: i1__namespace$3.Router }, { token: i1__namespace$3.ActivatedRoute }], target: i0__namespace.ɵɵFactoryTarget.Component });
2423
+ RecordNotFoundComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: RecordNotFoundComponent, selector: "vl-flow-record-not-found", ngImport: i0__namespace, template: "<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", styles: [":host{display:block;padding:24px 54px}\n"], directives: [{ type: i5__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
2147
2424
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: RecordNotFoundComponent, decorators: [{
2148
2425
  type: i0.Component,
2149
2426
  args: [{
@@ -2152,7 +2429,7 @@
2152
2429
  styleUrls: ['./record-not-found.component.scss'],
2153
2430
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
2154
2431
  }]
2155
- }], ctorParameters: function () { return [{ type: i1__namespace$2.Router }, { type: i1__namespace$2.ActivatedRoute }]; } });
2432
+ }], ctorParameters: function () { return [{ type: i1__namespace$3.Router }, { type: i1__namespace$3.ActivatedRoute }]; } });
2156
2433
 
2157
2434
  var routes = [{ path: '', component: RecordNotFoundComponent }];
2158
2435
  var RecordNotFoundModule = /** @class */ (function () {
@@ -2161,13 +2438,13 @@
2161
2438
  return RecordNotFoundModule;
2162
2439
  }());
2163
2440
  RecordNotFoundModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: RecordNotFoundModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
2164
- RecordNotFoundModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: RecordNotFoundModule, declarations: [RecordNotFoundComponent], imports: [i5.CommonModule, i1__namespace$2.RouterModule] });
2165
- RecordNotFoundModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: RecordNotFoundModule, imports: [[i5.CommonModule, i1$2.RouterModule.forChild(routes)]] });
2441
+ RecordNotFoundModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: RecordNotFoundModule, declarations: [RecordNotFoundComponent], imports: [i5$1.CommonModule, i1__namespace$3.RouterModule] });
2442
+ RecordNotFoundModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: RecordNotFoundModule, imports: [[i5$1.CommonModule, i1$3.RouterModule.forChild(routes)]] });
2166
2443
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: RecordNotFoundModule, decorators: [{
2167
2444
  type: i0.NgModule,
2168
2445
  args: [{
2169
2446
  declarations: [RecordNotFoundComponent],
2170
- imports: [i5.CommonModule, i1$2.RouterModule.forChild(routes)],
2447
+ imports: [i5$1.CommonModule, i1$3.RouterModule.forChild(routes)],
2171
2448
  }]
2172
2449
  }] });
2173
2450
 
@@ -2263,11 +2540,11 @@
2263
2540
  RemoteComponent.prototype.initSubscriptions = function () {
2264
2541
  var _this = this;
2265
2542
  this.integrationState
2266
- .listen$(i4.FlowAction.REMOTE_CANCEL)
2543
+ .listen$(i1$1.FlowAction.REMOTE_CANCEL)
2267
2544
  .pipe(rxjs.tap(function () { return _this.location.back(); }), rxjs.takeUntil(this.destroyed$))
2268
2545
  .subscribe();
2269
2546
  this.integrationState
2270
- .listen$(i4.FlowAction.REMOTE_APPLY)
2547
+ .listen$(i1$1.FlowAction.REMOTE_APPLY)
2271
2548
  .pipe(rxjs.tap(function () { return _this.saveRpcMessage(); }), rxjs.takeUntil(this.destroyed$))
2272
2549
  .subscribe();
2273
2550
  };
@@ -2559,8 +2836,8 @@
2559
2836
  };
2560
2837
  return RemoteComponent;
2561
2838
  }());
2562
- RemoteComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: RemoteComponent, deps: [{ token: i1__namespace$1.ContextService }, { token: i1__namespace$1.QuoteDraftService }, { token: i2__namespace$1.QuoteApiService }, { token: i1__namespace$1.ConfigurationRuntimeService }, { token: i1__namespace$1.ConfigurationService }, { token: i2__namespace$2.MessageService }, { token: i4__namespace.IntegrationState }, { token: i5__namespace.Location }], target: i0__namespace.ɵɵFactoryTarget.Component });
2563
- RemoteComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: RemoteComponent, selector: "vl-flow-remote", ngImport: i0__namespace, template: "<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", styles: [""], components: [{ type: i3__namespace.LoaderComponent, selector: "vl-loader", inputs: ["label", "overlayVisible"] }, { type: i4__namespace.PreviewComponent, selector: "vl-cms-preview", inputs: ["modelId", "uiDefinition", "clearState"] }], directives: [{ type: i5__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i5__namespace.AsyncPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
2839
+ RemoteComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: RemoteComponent, deps: [{ token: i1__namespace$2.ContextService }, { token: i1__namespace$2.QuoteDraftService }, { token: i2__namespace.QuoteApiService }, { token: i1__namespace$2.ConfigurationRuntimeService }, { token: i1__namespace$2.ConfigurationService }, { token: i2__namespace$1.MessageService }, { token: i1__namespace$1.IntegrationState }, { token: i5__namespace$1.Location }], target: i0__namespace.ɵɵFactoryTarget.Component });
2840
+ RemoteComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: RemoteComponent, selector: "vl-flow-remote", ngImport: i0__namespace, template: "<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", styles: [""], components: [{ type: i3__namespace.LoaderComponent, selector: "vl-loader", inputs: ["label", "overlayVisible"] }, { type: i1__namespace$1.PreviewComponent, selector: "vl-cms-preview", inputs: ["modelId", "uiDefinition", "clearState"] }], directives: [{ type: i5__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i5__namespace$1.AsyncPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
2564
2841
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: RemoteComponent, decorators: [{
2565
2842
  type: i0.Component,
2566
2843
  args: [{
@@ -2569,7 +2846,7 @@
2569
2846
  styleUrls: ['./remote.component.scss'],
2570
2847
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
2571
2848
  }]
2572
- }], ctorParameters: function () { return [{ type: i1__namespace$1.ContextService }, { type: i1__namespace$1.QuoteDraftService }, { type: i2__namespace$1.QuoteApiService }, { type: i1__namespace$1.ConfigurationRuntimeService }, { type: i1__namespace$1.ConfigurationService }, { type: i2__namespace$2.MessageService }, { type: i4__namespace.IntegrationState }, { type: i5__namespace.Location }]; } });
2849
+ }], ctorParameters: function () { return [{ type: i1__namespace$2.ContextService }, { type: i1__namespace$2.QuoteDraftService }, { type: i2__namespace.QuoteApiService }, { type: i1__namespace$2.ConfigurationRuntimeService }, { type: i1__namespace$2.ConfigurationService }, { type: i2__namespace$1.MessageService }, { type: i1__namespace$1.IntegrationState }, { type: i5__namespace$1.Location }]; } });
2573
2850
 
2574
2851
  var RemoteModule = /** @class */ (function () {
2575
2852
  function RemoteModule() {
@@ -2577,13 +2854,13 @@
2577
2854
  return RemoteModule;
2578
2855
  }());
2579
2856
  RemoteModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: RemoteModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
2580
- RemoteModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: RemoteModule, declarations: [RemoteComponent], imports: [i5.CommonModule, i4.PreviewModule, i3.LoaderModule], exports: [RemoteComponent] });
2581
- RemoteModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: RemoteModule, imports: [[i5.CommonModule, i4.PreviewModule, i3.LoaderModule]] });
2857
+ RemoteModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: RemoteModule, declarations: [RemoteComponent], imports: [i5$1.CommonModule, i1$1.PreviewModule, i3.LoaderModule], exports: [RemoteComponent] });
2858
+ RemoteModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: RemoteModule, imports: [[i5$1.CommonModule, i1$1.PreviewModule, i3.LoaderModule]] });
2582
2859
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: RemoteModule, decorators: [{
2583
2860
  type: i0.NgModule,
2584
2861
  args: [{
2585
2862
  declarations: [RemoteComponent],
2586
- imports: [i5.CommonModule, i4.PreviewModule, i3.LoaderModule],
2863
+ imports: [i5$1.CommonModule, i1$1.PreviewModule, i3.LoaderModule],
2587
2864
  exports: [RemoteComponent],
2588
2865
  }]
2589
2866
  }] });
@@ -2681,8 +2958,8 @@
2681
2958
  };
2682
2959
  return ShoppingCartComponent;
2683
2960
  }());
2684
- ShoppingCartComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ShoppingCartComponent, deps: [{ token: i2__namespace$1.UITemplatesApiService }, { token: i1__namespace$1.ContextService }, { token: i0__namespace.ChangeDetectorRef }, { token: i3__namespace.ToastService }, { token: FLOW_CUSTOMIZATION, optional: true }], target: i0__namespace.ɵɵFactoryTarget.Component });
2685
- ShoppingCartComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: ShoppingCartComponent, selector: "vl-flow-shopping-cart", ngImport: i0__namespace, template: "<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", styles: [""], components: [{ type: i3__namespace.LoaderComponent, selector: "vl-loader", inputs: ["label", "overlayVisible"] }, { type: i4__namespace.PreviewComponent, selector: "vl-cms-preview", inputs: ["modelId", "uiDefinition", "clearState"] }], directives: [{ type: i5__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i5__namespace.AsyncPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
2961
+ ShoppingCartComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ShoppingCartComponent, deps: [{ token: i2__namespace.UITemplatesApiService }, { token: i1__namespace$2.ContextService }, { token: i0__namespace.ChangeDetectorRef }, { token: i3__namespace.ToastService }, { token: FLOW_CUSTOMIZATION, optional: true }], target: i0__namespace.ɵɵFactoryTarget.Component });
2962
+ ShoppingCartComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: ShoppingCartComponent, selector: "vl-flow-shopping-cart", ngImport: i0__namespace, template: "<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", styles: [""], components: [{ type: i3__namespace.LoaderComponent, selector: "vl-loader", inputs: ["label", "overlayVisible"] }, { type: i1__namespace$1.PreviewComponent, selector: "vl-cms-preview", inputs: ["modelId", "uiDefinition", "clearState"] }], directives: [{ type: i5__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i5__namespace$1.AsyncPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
2686
2963
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ShoppingCartComponent, decorators: [{
2687
2964
  type: i0.Component,
2688
2965
  args: [{
@@ -2692,7 +2969,7 @@
2692
2969
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
2693
2970
  }]
2694
2971
  }], ctorParameters: function () {
2695
- return [{ type: i2__namespace$1.UITemplatesApiService }, { type: i1__namespace$1.ContextService }, { type: i0__namespace.ChangeDetectorRef }, { type: i3__namespace.ToastService }, { type: undefined, decorators: [{
2972
+ return [{ type: i2__namespace.UITemplatesApiService }, { type: i1__namespace$2.ContextService }, { type: i0__namespace.ChangeDetectorRef }, { type: i3__namespace.ToastService }, { type: undefined, decorators: [{
2696
2973
  type: i0.Optional
2697
2974
  }, {
2698
2975
  type: i0.Inject,
@@ -2706,13 +2983,13 @@
2706
2983
  return ShoppingCartModule;
2707
2984
  }());
2708
2985
  ShoppingCartModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ShoppingCartModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
2709
- ShoppingCartModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ShoppingCartModule, declarations: [ShoppingCartComponent], imports: [i5.CommonModule, i4.PreviewModule, i3.LoaderModule], exports: [ShoppingCartComponent] });
2710
- ShoppingCartModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ShoppingCartModule, imports: [[i5.CommonModule, i4.PreviewModule, i3.LoaderModule]] });
2986
+ ShoppingCartModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ShoppingCartModule, declarations: [ShoppingCartComponent], imports: [i5$1.CommonModule, i1$1.PreviewModule, i3.LoaderModule], exports: [ShoppingCartComponent] });
2987
+ ShoppingCartModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ShoppingCartModule, imports: [[i5$1.CommonModule, i1$1.PreviewModule, i3.LoaderModule]] });
2711
2988
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ShoppingCartModule, decorators: [{
2712
2989
  type: i0.NgModule,
2713
2990
  args: [{
2714
2991
  declarations: [ShoppingCartComponent],
2715
- imports: [i5.CommonModule, i4.PreviewModule, i3.LoaderModule],
2992
+ imports: [i5$1.CommonModule, i1$1.PreviewModule, i3.LoaderModule],
2716
2993
  exports: [ShoppingCartComponent],
2717
2994
  }]
2718
2995
  }] });
@@ -2770,11 +3047,11 @@
2770
3047
  };
2771
3048
  return FlowResolver;
2772
3049
  }());
2773
- FlowResolver.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowResolver, deps: [{ token: i1__namespace$2.Router }, { token: i2__namespace$1.FlowsApiService }, { token: FlowRouterService }, { token: i1__namespace$1.ContextService }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
3050
+ FlowResolver.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowResolver, deps: [{ token: i1__namespace$3.Router }, { token: i2__namespace.FlowsApiService }, { token: FlowRouterService }, { token: i1__namespace$2.ContextService }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
2774
3051
  FlowResolver.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowResolver });
2775
3052
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowResolver, decorators: [{
2776
3053
  type: i0.Injectable
2777
- }], ctorParameters: function () { return [{ type: i1__namespace$2.Router }, { type: i2__namespace$1.FlowsApiService }, { type: FlowRouterService }, { type: i1__namespace$1.ContextService }]; } });
3054
+ }], ctorParameters: function () { return [{ type: i1__namespace$3.Router }, { type: i2__namespace.FlowsApiService }, { type: FlowRouterService }, { type: i1__namespace$2.ContextService }]; } });
2778
3055
 
2779
3056
  var QuoteResolver = /** @class */ (function () {
2780
3057
  function QuoteResolver(router, quoteDraftService, routerService, contextService, flowConfiguration) {
@@ -2839,11 +3116,11 @@
2839
3116
  };
2840
3117
  return QuoteResolver;
2841
3118
  }());
2842
- QuoteResolver.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: QuoteResolver, deps: [{ token: i1__namespace$2.Router }, { token: i1__namespace$1.QuoteDraftService }, { token: FlowRouterService }, { token: i1__namespace$1.ContextService }, { token: i1__namespace$1.FlowConfigurationService }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
3119
+ QuoteResolver.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: QuoteResolver, deps: [{ token: i1__namespace$3.Router }, { token: i1__namespace$2.QuoteDraftService }, { token: FlowRouterService }, { token: i1__namespace$2.ContextService }, { token: i1__namespace$2.FlowConfigurationService }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
2843
3120
  QuoteResolver.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: QuoteResolver });
2844
3121
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: QuoteResolver, decorators: [{
2845
3122
  type: i0.Injectable
2846
- }], ctorParameters: function () { return [{ type: i1__namespace$2.Router }, { type: i1__namespace$1.QuoteDraftService }, { type: FlowRouterService }, { type: i1__namespace$1.ContextService }, { type: i1__namespace$1.FlowConfigurationService }]; } });
3123
+ }], ctorParameters: function () { return [{ type: i1__namespace$3.Router }, { type: i1__namespace$2.QuoteDraftService }, { type: FlowRouterService }, { type: i1__namespace$2.ContextService }, { type: i1__namespace$2.FlowConfigurationService }]; } });
2847
3124
 
2848
3125
  var rootRoute = {
2849
3126
  id: VELOCE_FLOW_ROOT_ROUTE,
@@ -2927,26 +3204,26 @@
2927
3204
  return FlowRoutingModule;
2928
3205
  }());
2929
3206
  FlowRoutingModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowRoutingModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
2930
- FlowRoutingModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowRoutingModule, imports: [i1__namespace$2.RouterModule, ProductModule,
3207
+ FlowRoutingModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowRoutingModule, imports: [i1__namespace$3.RouterModule, ProductModule,
2931
3208
  LegacyProductModule,
2932
3209
  ShoppingCartModule,
2933
3210
  CatalogModule,
2934
3211
  RemoteModule,
2935
- EmptyAccountModule], exports: [i1$2.RouterModule] });
3212
+ EmptyAccountModule], exports: [i1$3.RouterModule] });
2936
3213
  FlowRoutingModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowRoutingModule, providers: [FlowRouterService, RootGuard, ContextGuard, ProductUnloadGuard, FlowResolver, QuoteResolver], imports: [[
2937
- i1$2.RouterModule.forChild([rootRoute]),
3214
+ i1$3.RouterModule.forChild([rootRoute]),
2938
3215
  ProductModule,
2939
3216
  LegacyProductModule,
2940
3217
  ShoppingCartModule,
2941
3218
  CatalogModule,
2942
3219
  RemoteModule,
2943
3220
  EmptyAccountModule,
2944
- ], i1$2.RouterModule] });
3221
+ ], i1$3.RouterModule] });
2945
3222
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowRoutingModule, decorators: [{
2946
3223
  type: i0.NgModule,
2947
3224
  args: [{
2948
3225
  imports: [
2949
- i1$2.RouterModule.forChild([rootRoute]),
3226
+ i1$3.RouterModule.forChild([rootRoute]),
2950
3227
  ProductModule,
2951
3228
  LegacyProductModule,
2952
3229
  ShoppingCartModule,
@@ -2954,7 +3231,7 @@
2954
3231
  RemoteModule,
2955
3232
  EmptyAccountModule,
2956
3233
  ],
2957
- exports: [i1$2.RouterModule],
3234
+ exports: [i1$3.RouterModule],
2958
3235
  providers: [FlowRouterService, RootGuard, ContextGuard, ProductUnloadGuard, FlowResolver, QuoteResolver],
2959
3236
  }]
2960
3237
  }] });
@@ -2965,25 +3242,25 @@
2965
3242
  return FlowModule;
2966
3243
  }());
2967
3244
  FlowModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
2968
- FlowModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowModule, declarations: [FlowComponent], imports: [i5.CommonModule,
3245
+ FlowModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowModule, declarations: [FlowComponent], imports: [i5$1.CommonModule,
2969
3246
  FlowRoutingModule,
2970
- i2$1.ApiModule,
2971
- i4.LauncherModule,
3247
+ i2.ApiModule,
3248
+ i1$1.LauncherModule,
2972
3249
  i3.LoaderModule,
2973
3250
  FlowHeaderModule,
2974
3251
  FlowDialogModule,
2975
- i1$1.SdkCoreModule,
3252
+ i1$2.SdkCoreModule,
2976
3253
  DocGenModule,
2977
3254
  i3.LetDirectiveModule] });
2978
3255
  FlowModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowModule, providers: [FlowService, FlowDialogService, FlowDocGenService], imports: [[
2979
- i5.CommonModule,
3256
+ i5$1.CommonModule,
2980
3257
  FlowRoutingModule,
2981
- i2$1.ApiModule,
2982
- i4.LauncherModule,
3258
+ i2.ApiModule,
3259
+ i1$1.LauncherModule,
2983
3260
  i3.LoaderModule,
2984
3261
  FlowHeaderModule,
2985
3262
  FlowDialogModule,
2986
- i1$1.SdkCoreModule,
3263
+ i1$2.SdkCoreModule,
2987
3264
  DocGenModule,
2988
3265
  i3.LetDirectiveModule,
2989
3266
  ]] });
@@ -2992,14 +3269,14 @@
2992
3269
  args: [{
2993
3270
  declarations: [FlowComponent],
2994
3271
  imports: [
2995
- i5.CommonModule,
3272
+ i5$1.CommonModule,
2996
3273
  FlowRoutingModule,
2997
- i2$1.ApiModule,
2998
- i4.LauncherModule,
3274
+ i2.ApiModule,
3275
+ i1$1.LauncherModule,
2999
3276
  i3.LoaderModule,
3000
3277
  FlowHeaderModule,
3001
3278
  FlowDialogModule,
3002
- i1$1.SdkCoreModule,
3279
+ i1$2.SdkCoreModule,
3003
3280
  DocGenModule,
3004
3281
  i3.LetDirectiveModule,
3005
3282
  ],