@veloceapps/sdk 5.0.8 → 5.0.10

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 (38) hide show
  1. package/bundles/veloce-sdk-cms.umd.js +97 -45
  2. package/bundles/veloce-sdk-cms.umd.js.map +1 -1
  3. package/bundles/veloce-sdk.umd.js +457 -195
  4. package/bundles/veloce-sdk.umd.js.map +1 -1
  5. package/cms/cms.actions.d.ts +4 -2
  6. package/cms/services/launcher.service.d.ts +3 -3
  7. package/cms/types/common.types.d.ts +5 -0
  8. package/cms/types/compilation.types.d.ts +6 -0
  9. package/cms/types/index.d.ts +2 -0
  10. package/cms/types/metrics.types.d.ts +5 -0
  11. package/cms/utils/elements-resolver.d.ts +4 -1
  12. package/cms/vendor-map.d.ts +1 -0
  13. package/esm2015/cms/cms.actions.js +6 -1
  14. package/esm2015/cms/components/preview/preview.component.js +7 -4
  15. package/esm2015/cms/services/launcher.service.js +10 -10
  16. package/esm2015/cms/types/common.types.js +1 -1
  17. package/esm2015/cms/types/compilation.types.js +2 -0
  18. package/esm2015/cms/types/index.js +3 -1
  19. package/esm2015/cms/types/metrics.types.js +2 -0
  20. package/esm2015/cms/utils/element.utils.js +6 -1
  21. package/esm2015/cms/utils/elements-resolver.js +55 -24
  22. package/esm2015/src/components/header/header.component.js +12 -19
  23. package/esm2015/src/components/header/header.module.js +6 -2
  24. package/esm2015/src/components/header/metrics/index.js +2 -0
  25. package/esm2015/src/components/header/metrics/metrics.component.js +216 -0
  26. package/esm2015/src/components/header/metrics/metrics.definitions.js +9 -0
  27. package/esm2015/src/components/header/metrics/metrics.module.js +64 -0
  28. package/fesm2015/veloce-sdk-cms.js +80 -35
  29. package/fesm2015/veloce-sdk-cms.js.map +1 -1
  30. package/fesm2015/veloce-sdk.js +341 -85
  31. package/fesm2015/veloce-sdk.js.map +1 -1
  32. package/package.json +1 -1
  33. package/src/components/header/header.component.d.ts +0 -8
  34. package/src/components/header/header.module.d.ts +2 -1
  35. package/src/components/header/metrics/index.d.ts +1 -0
  36. package/src/components/header/metrics/metrics.component.d.ts +49 -0
  37. package/src/components/header/metrics/metrics.definitions.d.ts +4 -0
  38. package/src/components/header/metrics/metrics.module.d.ts +17 -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, i11, 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);
35
- var i11__namespace = /*#__PURE__*/_interopNamespace(i11);
36
- var i6__namespace$1 = /*#__PURE__*/_interopNamespace(i6);
37
- var i6__namespace = /*#__PURE__*/_interopNamespace(i6$1);
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);
41
+ var i12__namespace = /*#__PURE__*/_interopNamespace(i12);
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
  }
@@ -686,12 +689,12 @@
686
689
  };
687
690
  return FlowRouterService;
688
691
  }());
689
- 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 });
690
693
  FlowRouterService.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowRouterService, providedIn: 'root' });
691
694
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowRouterService, decorators: [{
692
695
  type: i0.Injectable,
693
696
  args: [{ providedIn: 'root' }]
694
- }], 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 }]; } });
695
698
 
696
699
  var CartPreviewComponent = /** @class */ (function () {
697
700
  function CartPreviewComponent(flowConfiguration, routerService, productImagesService, quoteDraftService) {
@@ -700,7 +703,7 @@
700
703
  this.productImagesService = productImagesService;
701
704
  this.quoteDraftService = quoteDraftService;
702
705
  this.productRowHeight = 97;
703
- this.form = new i6.FormGroup({});
706
+ this.form = new i10.FormGroup({});
704
707
  this.hasTermInProducts = false;
705
708
  this.scrollHeight = 0;
706
709
  this.shouldUpdate$ = new rxjs.BehaviorSubject(true);
@@ -772,7 +775,7 @@
772
775
  }
773
776
  ids.push(item.id);
774
777
  if (!_this.form.controls[item.id]) {
775
- _this.form.addControl(item.id, new i6.FormControl(item.qty, []));
778
+ _this.form.addControl(item.id, new i10.FormControl(item.qty, []));
776
779
  }
777
780
  else {
778
781
  (_a = _this.form.controls[item.id]) === null || _a === void 0 ? void 0 : _a.setValue(item.qty);
@@ -790,8 +793,8 @@
790
793
  };
791
794
  return CartPreviewComponent;
792
795
  }());
793
- 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 });
794
- 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 });
795
798
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: CartPreviewComponent, decorators: [{
796
799
  type: i0.Component,
797
800
  args: [{
@@ -800,7 +803,7 @@
800
803
  styleUrls: ['./cart-preview.component.scss'],
801
804
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
802
805
  }]
803
- }], 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: [{
804
807
  type: i0.ViewChild,
805
808
  args: [i3$1.OverlayPanel]
806
809
  }], products: [{
@@ -813,34 +816,34 @@
813
816
  return CartPreviewModule;
814
817
  }());
815
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 });
816
- CartPreviewModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: CartPreviewModule, declarations: [CartPreviewComponent], imports: [i5.CommonModule,
817
- i6.ReactiveFormsModule,
818
- 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,
819
822
  i3$1.OverlayPanelModule,
820
823
  i3.LetDirectiveModule,
821
- i6$1.InputNumberModule,
822
- i4$1.VirtualScrollerModule], exports: [CartPreviewComponent] });
824
+ i6.InputNumberModule,
825
+ i4.VirtualScrollerModule], exports: [CartPreviewComponent] });
823
826
  CartPreviewModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: CartPreviewModule, imports: [[
824
- i5.CommonModule,
825
- i6.ReactiveFormsModule,
826
- i2.ButtonModule,
827
+ i5$1.CommonModule,
828
+ i10.ReactiveFormsModule,
829
+ i5.ButtonModule,
827
830
  i3$1.OverlayPanelModule,
828
831
  i3.LetDirectiveModule,
829
- i6$1.InputNumberModule,
830
- i4$1.VirtualScrollerModule,
832
+ i6.InputNumberModule,
833
+ i4.VirtualScrollerModule,
831
834
  ]] });
832
835
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: CartPreviewModule, decorators: [{
833
836
  type: i0.NgModule,
834
837
  args: [{
835
838
  declarations: [CartPreviewComponent],
836
839
  imports: [
837
- i5.CommonModule,
838
- i6.ReactiveFormsModule,
839
- i2.ButtonModule,
840
+ i5$1.CommonModule,
841
+ i10.ReactiveFormsModule,
842
+ i5.ButtonModule,
840
843
  i3$1.OverlayPanelModule,
841
844
  i3.LetDirectiveModule,
842
- i6$1.InputNumberModule,
843
- i4$1.VirtualScrollerModule,
845
+ i6.InputNumberModule,
846
+ i4.VirtualScrollerModule,
844
847
  ],
845
848
  exports: [CartPreviewComponent],
846
849
  }]
@@ -959,11 +962,221 @@
959
962
  };
960
963
  return FlowDialogService;
961
964
  }());
962
- 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 });
963
966
  FlowDialogService.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowDialogService });
964
967
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowDialogService, decorators: [{
965
968
  type: i0.Injectable
966
- }], 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
+ }] } });
967
1180
 
968
1181
  var FlowHeaderComponent = /** @class */ (function () {
969
1182
  function FlowHeaderComponent(contextService, quoteDraftService, quoteApiService, sfApiService, flowConfiguration, routerService, dialogService, integrationState) {
@@ -992,10 +1205,6 @@
992
1205
  this.isCartRoute$ = this.routerService.isCartRoute$();
993
1206
  this.isCatalogRoute$ = this.routerService.isCatalogRoute$();
994
1207
  this.objectDetails$ = this.getObjectDetails$();
995
- 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); }));
996
- 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); }));
997
- 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); }));
998
- 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); }));
999
1208
  }
1000
1209
  FlowHeaderComponent.prototype.ngOnInit = function () {
1001
1210
  var _this = this;
@@ -1108,7 +1317,7 @@
1108
1317
  }));
1109
1318
  }
1110
1319
  shouldOpen$
1111
- .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()); }))
1112
1321
  .subscribe();
1113
1322
  };
1114
1323
  FlowHeaderComponent.prototype.saveButtonClickHandler = function (isCartRoute) {
@@ -1271,19 +1480,15 @@
1271
1480
  return (((_a = this.quoteDraftService.quoteDraft) === null || _a === void 0 ? void 0 : _a.context.properties.mode) === core.ConfigurationContextMode.ACCOUNT &&
1272
1481
  !this.quoteDraftService.hasAssets);
1273
1482
  };
1274
- /**
1275
- * Convert a value from string|undefined to number.
1276
- */
1277
- FlowHeaderComponent.prototype.toNumber = function (value) {
1278
- return +(value || 0);
1279
- };
1280
1483
  FlowHeaderComponent.prototype.isUpsellQuoteWithoutChanges = function () {
1281
- return this.quoteDraftService.activeCurrentState.every(function (lineItem) { return lineItem.actionCode === 'EXIST'; });
1484
+ var noUpdates = this.quoteDraftService.activeCurrentState.every(function (lineItem) { return lineItem.actionCode === 'EXIST'; });
1485
+ var sameNumberOfProducts = this.quoteDraftService.getInitialCurrentState().length === this.quoteDraftService.activeCurrentState.length;
1486
+ return noUpdates && sameNumberOfProducts;
1282
1487
  };
1283
1488
  return FlowHeaderComponent;
1284
1489
  }());
1285
- 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 });
1286
- 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 <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: i11__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: i3__namespace.LetDirective, selector: "[vlLet]", inputs: ["vlLet"] }, { 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 });
1490
+ 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 });
1491
+ 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 });
1287
1492
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowHeaderComponent, decorators: [{
1288
1493
  type: i0.Component,
1289
1494
  args: [{
@@ -1292,7 +1497,61 @@
1292
1497
  styleUrls: ['./header.component.scss'],
1293
1498
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
1294
1499
  }]
1295
- }], 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 }]; } });
1500
+ }], 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 }]; } });
1501
+
1502
+ var MetricsModule = /** @class */ (function () {
1503
+ function MetricsModule() {
1504
+ }
1505
+ return MetricsModule;
1506
+ }());
1507
+ MetricsModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: MetricsModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
1508
+ MetricsModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: MetricsModule, declarations: [MetricsComponent], imports: [i5$1.CommonModule,
1509
+ i10.FormsModule,
1510
+ i10.ReactiveFormsModule,
1511
+ i12.DragDropModule,
1512
+ i5.ButtonModule,
1513
+ i3$1.OverlayPanelModule,
1514
+ i4$1.SidebarModule,
1515
+ i11.InputTextModule,
1516
+ i6$1.CheckboxModule,
1517
+ i3.LetDirectiveModule,
1518
+ i4.VirtualScrollerModule,
1519
+ i3.ErrorTooltipModule], exports: [MetricsComponent] });
1520
+ MetricsModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: MetricsModule, imports: [[
1521
+ i5$1.CommonModule,
1522
+ i10.FormsModule,
1523
+ i10.ReactiveFormsModule,
1524
+ i12.DragDropModule,
1525
+ i5.ButtonModule,
1526
+ i3$1.OverlayPanelModule,
1527
+ i4$1.SidebarModule,
1528
+ i11.InputTextModule,
1529
+ i6$1.CheckboxModule,
1530
+ i3.LetDirectiveModule,
1531
+ i4.VirtualScrollerModule,
1532
+ i3.ErrorTooltipModule,
1533
+ ]] });
1534
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: MetricsModule, decorators: [{
1535
+ type: i0.NgModule,
1536
+ args: [{
1537
+ declarations: [MetricsComponent],
1538
+ imports: [
1539
+ i5$1.CommonModule,
1540
+ i10.FormsModule,
1541
+ i10.ReactiveFormsModule,
1542
+ i12.DragDropModule,
1543
+ i5.ButtonModule,
1544
+ i3$1.OverlayPanelModule,
1545
+ i4$1.SidebarModule,
1546
+ i11.InputTextModule,
1547
+ i6$1.CheckboxModule,
1548
+ i3.LetDirectiveModule,
1549
+ i4.VirtualScrollerModule,
1550
+ i3.ErrorTooltipModule,
1551
+ ],
1552
+ exports: [MetricsComponent],
1553
+ }]
1554
+ }] });
1296
1555
 
1297
1556
  var FlowHeaderModule = /** @class */ (function () {
1298
1557
  function FlowHeaderModule() {
@@ -1300,34 +1559,37 @@
1300
1559
  return FlowHeaderModule;
1301
1560
  }());
1302
1561
  FlowHeaderModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowHeaderModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
1303
- FlowHeaderModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowHeaderModule, declarations: [FlowHeaderComponent], imports: [i5.CommonModule,
1562
+ FlowHeaderModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowHeaderModule, declarations: [FlowHeaderComponent], imports: [i5$1.CommonModule,
1304
1563
  i3$1.OverlayPanelModule,
1305
1564
  i3.LetDirectiveModule,
1306
- i11.TooltipModule,
1307
- i2.ButtonModule,
1565
+ i12$1.TooltipModule,
1566
+ i5.ButtonModule,
1308
1567
  CartPreviewModule,
1309
- i9.SplitButtonModule], exports: [FlowHeaderComponent] });
1568
+ i10$1.SplitButtonModule,
1569
+ MetricsModule], exports: [FlowHeaderComponent] });
1310
1570
  FlowHeaderModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowHeaderModule, imports: [[
1311
- i5.CommonModule,
1571
+ i5$1.CommonModule,
1312
1572
  i3$1.OverlayPanelModule,
1313
1573
  i3.LetDirectiveModule,
1314
- i11.TooltipModule,
1315
- i2.ButtonModule,
1574
+ i12$1.TooltipModule,
1575
+ i5.ButtonModule,
1316
1576
  CartPreviewModule,
1317
- i9.SplitButtonModule,
1577
+ i10$1.SplitButtonModule,
1578
+ MetricsModule,
1318
1579
  ]] });
1319
1580
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowHeaderModule, decorators: [{
1320
1581
  type: i0.NgModule,
1321
1582
  args: [{
1322
1583
  declarations: [FlowHeaderComponent],
1323
1584
  imports: [
1324
- i5.CommonModule,
1585
+ i5$1.CommonModule,
1325
1586
  i3$1.OverlayPanelModule,
1326
1587
  i3.LetDirectiveModule,
1327
- i11.TooltipModule,
1328
- i2.ButtonModule,
1588
+ i12$1.TooltipModule,
1589
+ i5.ButtonModule,
1329
1590
  CartPreviewModule,
1330
- i9.SplitButtonModule,
1591
+ i10$1.SplitButtonModule,
1592
+ MetricsModule,
1331
1593
  ],
1332
1594
  exports: [FlowHeaderComponent],
1333
1595
  }]
@@ -1345,7 +1607,7 @@
1345
1607
  FlowService.prototype.initSubscriptions = function () {
1346
1608
  var _this = this;
1347
1609
  this.integrationState
1348
- .listen$(i4.FlowAction.FLOW_CONFIGURE_PRODUCT)
1610
+ .listen$(i1$1.FlowAction.FLOW_CONFIGURE_PRODUCT)
1349
1611
  .pipe(rxjs.tap(function (payload) {
1350
1612
  var _a, _b;
1351
1613
  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;
@@ -1358,21 +1620,21 @@
1358
1620
  }), rxjs.takeUntil(this.cleanup$))
1359
1621
  .subscribe();
1360
1622
  this.integrationState
1361
- .listen$(i4.FlowAction.FLOW_SWITCH_OBJECT)
1623
+ .listen$(i1$1.FlowAction.FLOW_SWITCH_OBJECT)
1362
1624
  .pipe(rxjs.tap(function (payload) {
1363
1625
  _this.flowRouterService.switchObject(payload.id);
1364
1626
  }), rxjs.takeUntil(this.cleanup$))
1365
1627
  .subscribe();
1366
1628
  this.integrationState
1367
- .listen$(i4.FlowAction.FLOW_NAVIGATE_BACK)
1629
+ .listen$(i1$1.FlowAction.FLOW_NAVIGATE_BACK)
1368
1630
  .pipe(rxjs.tap(function () { return _this.flowRouterService.navigateBack(); }), rxjs.takeUntil(this.cleanup$))
1369
1631
  .subscribe();
1370
1632
  this.integrationState
1371
- .listen$(i4.FlowAction.FLOW_NAVIGATE_TO_CATALOG)
1633
+ .listen$(i1$1.FlowAction.FLOW_NAVIGATE_TO_CATALOG)
1372
1634
  .pipe(rxjs.tap(function () { return _this.flowRouterService.navigateToCatalog(); }), rxjs.takeUntil(this.cleanup$))
1373
1635
  .subscribe();
1374
1636
  this.integrationState
1375
- .listen$(i4.FlowAction.FLOW_APPLY_PRODUCT_CONFIGURATION)
1637
+ .listen$(i1$1.FlowAction.FLOW_APPLY_PRODUCT_CONFIGURATION)
1376
1638
  .pipe(rxjs.switchMap(function () {
1377
1639
  var quoteDraft = _this.quoteDraftService.quoteDraft;
1378
1640
  var lineItem = _this.configurationService.getSnapshot();
@@ -1399,11 +1661,11 @@
1399
1661
  };
1400
1662
  return FlowService;
1401
1663
  }());
1402
- 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 });
1664
+ 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 });
1403
1665
  FlowService.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowService });
1404
1666
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowService, decorators: [{
1405
1667
  type: i0.Injectable
1406
- }], ctorParameters: function () { return [{ type: i4__namespace.IntegrationState }, { type: FlowRouterService }, { type: i1__namespace$1.QuoteDraftService }, { type: i1__namespace$1.ConfigurationService }, { type: i1__namespace$1.FlowConfigurationService }]; } });
1668
+ }], 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 }]; } });
1407
1669
 
1408
1670
  var FlowComponent = /** @class */ (function () {
1409
1671
  function FlowComponent(routerService, quoteDraftService, flowService, docGenService, integrationState) {
@@ -1427,8 +1689,8 @@
1427
1689
  };
1428
1690
  return FlowComponent;
1429
1691
  }());
1430
- 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 });
1431
- 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 });
1692
+ 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 });
1693
+ 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 });
1432
1694
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowComponent, decorators: [{
1433
1695
  type: i0.Component,
1434
1696
  args: [{
@@ -1437,7 +1699,7 @@
1437
1699
  styleUrls: ['./flow.component.scss'],
1438
1700
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
1439
1701
  }]
1440
- }], ctorParameters: function () { return [{ type: FlowRouterService }, { type: i1__namespace$1.QuoteDraftService }, { type: FlowService }, { type: FlowDocGenService }, { type: i4__namespace.IntegrationState }]; } });
1702
+ }], ctorParameters: function () { return [{ type: FlowRouterService }, { type: i1__namespace$2.QuoteDraftService }, { type: FlowService }, { type: FlowDocGenService }, { type: i1__namespace$1.IntegrationState }]; } });
1441
1703
 
1442
1704
  var getFlowObjectIdPropertyName = function (id) {
1443
1705
  var objectName = core.SalesforceIdUtils.getSfObjectNameById(id);
@@ -1535,11 +1797,11 @@
1535
1797
  };
1536
1798
  return ContextGuard;
1537
1799
  }());
1538
- 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 });
1800
+ 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 });
1539
1801
  ContextGuard.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ContextGuard });
1540
1802
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ContextGuard, decorators: [{
1541
1803
  type: i0.Injectable
1542
- }], ctorParameters: function () { return [{ type: i1__namespace$2.Router }, { type: FlowRouterService }, { type: i1__namespace$1.ContextService }]; } });
1804
+ }], ctorParameters: function () { return [{ type: i1__namespace$3.Router }, { type: FlowRouterService }, { type: i1__namespace$2.ContextService }]; } });
1543
1805
 
1544
1806
  var ProductUnloadGuard = /** @class */ (function () {
1545
1807
  function ProductUnloadGuard(router, contextService, quoteDraftService, configurationService, flowDialogService) {
@@ -1574,11 +1836,11 @@
1574
1836
  };
1575
1837
  return ProductUnloadGuard;
1576
1838
  }());
1577
- 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 });
1839
+ 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 });
1578
1840
  ProductUnloadGuard.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ProductUnloadGuard });
1579
1841
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ProductUnloadGuard, decorators: [{
1580
1842
  type: i0.Injectable
1581
- }], 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 }]; } });
1843
+ }], 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 }]; } });
1582
1844
 
1583
1845
  var RootGuard = /** @class */ (function () {
1584
1846
  function RootGuard(router, routerService) {
@@ -1612,12 +1874,12 @@
1612
1874
  };
1613
1875
  return RootGuard;
1614
1876
  }());
1615
- 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 });
1877
+ 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 });
1616
1878
  RootGuard.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: RootGuard, providedIn: 'root' });
1617
1879
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: RootGuard, decorators: [{
1618
1880
  type: i0.Injectable,
1619
1881
  args: [{ providedIn: 'root' }]
1620
- }], ctorParameters: function () { return [{ type: i1__namespace$2.Router }, { type: FlowRouterService }]; } });
1882
+ }], ctorParameters: function () { return [{ type: i1__namespace$3.Router }, { type: FlowRouterService }]; } });
1621
1883
 
1622
1884
  var FLOW_CUSTOMIZATION = new i0.InjectionToken('FLOW_CUSTOMIZATION');
1623
1885
 
@@ -1714,8 +1976,8 @@
1714
1976
  };
1715
1977
  return CatalogComponent;
1716
1978
  }());
1717
- 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 });
1718
- 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 });
1979
+ 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 });
1980
+ 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 });
1719
1981
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: CatalogComponent, decorators: [{
1720
1982
  type: i0.Component,
1721
1983
  args: [{
@@ -1725,7 +1987,7 @@
1725
1987
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
1726
1988
  }]
1727
1989
  }], ctorParameters: function () {
1728
- return [{ type: i2__namespace$1.UITemplatesApiService }, { type: i1__namespace$1.ContextService }, { type: i0__namespace.ChangeDetectorRef }, { type: i3__namespace.ToastService }, { type: undefined, decorators: [{
1990
+ return [{ type: i2__namespace.UITemplatesApiService }, { type: i1__namespace$2.ContextService }, { type: i0__namespace.ChangeDetectorRef }, { type: i3__namespace.ToastService }, { type: undefined, decorators: [{
1729
1991
  type: i0.Optional
1730
1992
  }, {
1731
1993
  type: i0.Inject,
@@ -1739,13 +2001,13 @@
1739
2001
  return CatalogModule;
1740
2002
  }());
1741
2003
  CatalogModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: CatalogModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
1742
- 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] });
1743
- 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]] });
2004
+ 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] });
2005
+ 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]] });
1744
2006
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: CatalogModule, decorators: [{
1745
2007
  type: i0.NgModule,
1746
2008
  args: [{
1747
2009
  declarations: [CatalogComponent],
1748
- imports: [i5.CommonModule, i4.PreviewModule, i3.LoaderModule],
2010
+ imports: [i5$1.CommonModule, i1$1.PreviewModule, i3.LoaderModule],
1749
2011
  exports: [CatalogComponent],
1750
2012
  }]
1751
2013
  }] });
@@ -1757,8 +2019,8 @@
1757
2019
  this.activatedRoute = activatedRoute;
1758
2020
  this.context = context;
1759
2021
  this.quoteDraftService = quoteDraftService;
1760
- this.form = new i6.FormGroup({
1761
- id: new i6.FormControl(''),
2022
+ this.form = new i10.FormGroup({
2023
+ id: new i10.FormControl(''),
1762
2024
  });
1763
2025
  this.flows$ = this.flowsApiService.fetchFlows().pipe(rxjs.map(function (flows) { return flows.map(function (flow) {
1764
2026
  var _a, _b, _c;
@@ -1788,8 +2050,8 @@
1788
2050
  };
1789
2051
  return DebugComponent;
1790
2052
  }());
1791
- 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 });
1792
- 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 });
2053
+ 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 });
2054
+ 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 });
1793
2055
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: DebugComponent, decorators: [{
1794
2056
  type: i0.Component,
1795
2057
  args: [{
@@ -1798,7 +2060,7 @@
1798
2060
  styleUrls: ['./debug.component.scss'],
1799
2061
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
1800
2062
  }]
1801
- }], 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 }]; } });
2063
+ }], 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 }]; } });
1802
2064
 
1803
2065
  var routes$1 = [{ path: '', component: DebugComponent }];
1804
2066
  var DebugModule = /** @class */ (function () {
@@ -1807,20 +2069,20 @@
1807
2069
  return DebugModule;
1808
2070
  }());
1809
2071
  DebugModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: DebugModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
1810
- DebugModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: DebugModule, declarations: [DebugComponent], imports: [i5.CommonModule,
1811
- i6.FormsModule,
1812
- i6.ReactiveFormsModule, i1__namespace$2.RouterModule, i5$1.RadioButtonModule,
1813
- i2.ButtonModule,
1814
- i7.InputTextModule,
2072
+ DebugModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: DebugModule, declarations: [DebugComponent], imports: [i5$1.CommonModule,
2073
+ i10.FormsModule,
2074
+ i10.ReactiveFormsModule, i1__namespace$3.RouterModule, i5$2.RadioButtonModule,
2075
+ i5.ButtonModule,
2076
+ i11.InputTextModule,
1815
2077
  dropdown.DropdownModule] });
1816
2078
  DebugModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: DebugModule, imports: [[
1817
- i5.CommonModule,
1818
- i6.FormsModule,
1819
- i6.ReactiveFormsModule,
1820
- i1$2.RouterModule.forChild(routes$1),
1821
- i5$1.RadioButtonModule,
1822
- i2.ButtonModule,
1823
- i7.InputTextModule,
2079
+ i5$1.CommonModule,
2080
+ i10.FormsModule,
2081
+ i10.ReactiveFormsModule,
2082
+ i1$3.RouterModule.forChild(routes$1),
2083
+ i5$2.RadioButtonModule,
2084
+ i5.ButtonModule,
2085
+ i11.InputTextModule,
1824
2086
  dropdown.DropdownModule,
1825
2087
  ]] });
1826
2088
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: DebugModule, decorators: [{
@@ -1828,13 +2090,13 @@
1828
2090
  args: [{
1829
2091
  declarations: [DebugComponent],
1830
2092
  imports: [
1831
- i5.CommonModule,
1832
- i6.FormsModule,
1833
- i6.ReactiveFormsModule,
1834
- i1$2.RouterModule.forChild(routes$1),
1835
- i5$1.RadioButtonModule,
1836
- i2.ButtonModule,
1837
- i7.InputTextModule,
2093
+ i5$1.CommonModule,
2094
+ i10.FormsModule,
2095
+ i10.ReactiveFormsModule,
2096
+ i1$3.RouterModule.forChild(routes$1),
2097
+ i5$2.RadioButtonModule,
2098
+ i5.ButtonModule,
2099
+ i11.InputTextModule,
1838
2100
  dropdown.DropdownModule,
1839
2101
  ],
1840
2102
  }]
@@ -1863,13 +2125,13 @@
1863
2125
  return EmptyAccountModule;
1864
2126
  }());
1865
2127
  EmptyAccountModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: EmptyAccountModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
1866
- 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] });
1867
- 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]] });
2128
+ 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] });
2129
+ 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]] });
1868
2130
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: EmptyAccountModule, decorators: [{
1869
2131
  type: i0.NgModule,
1870
2132
  args: [{
1871
2133
  declarations: [EmptyAccountComponent],
1872
- imports: [i5.CommonModule, i4.PreviewModule, i3.LoaderModule, i3.EmptyStateModule],
2134
+ imports: [i5$1.CommonModule, i1$1.PreviewModule, i3.LoaderModule, i3.EmptyStateModule],
1873
2135
  exports: [EmptyAccountComponent],
1874
2136
  }]
1875
2137
  }] });
@@ -1944,12 +2206,12 @@
1944
2206
  .find(function (id) { return id; });
1945
2207
  };
1946
2208
  LegacyProductComponent.prototype.configure = function (productId) {
1947
- var runtimeContext = this.getRuntimeContext(productId, '', i1$1.RuntimeOperation.INIT);
2209
+ var runtimeContext = this.getRuntimeContext(productId, '', i1$2.RuntimeOperation.INIT);
1948
2210
  this.startRuntime({}, runtimeContext);
1949
2211
  };
1950
2212
  LegacyProductComponent.prototype.reConfigure = function (lineItemId, currentState) {
1951
2213
  var currentStateItem = core.EntityUtil.findById(lineItemId, currentState);
1952
- var runtimeContext = this.getRuntimeContext(currentStateItem.productId, currentStateItem.offeringId, i1$1.RuntimeOperation.UPDATE);
2214
+ var runtimeContext = this.getRuntimeContext(currentStateItem.productId, currentStateItem.offeringId, i1$2.RuntimeOperation.UPDATE);
1953
2215
  var states = {
1954
2216
  configurableRamp: currentStateItem,
1955
2217
  currentState: currentState,
@@ -1979,13 +2241,13 @@
1979
2241
  LegacyProductComponent.prototype.getRuntimeContext = function (productId, offeringId, runtimeOperation) {
1980
2242
  var _this = this;
1981
2243
  return this.runtimeContextService.getRuntimeContext(productId, offeringId).pipe(operators.map(function (runtimeContext) {
1982
- runtimeContext.invocationContext = { runtimeOperation: i1$1.RuntimeOperation[runtimeOperation] };
2244
+ runtimeContext.invocationContext = { runtimeOperation: i1$2.RuntimeOperation[runtimeOperation] };
1983
2245
  return runtimeContext;
1984
2246
  }), operators.switchMap(function (runtimeContext) { return _this.customizeContext(productId, runtimeContext); }));
1985
2247
  };
1986
2248
  return LegacyProductComponent;
1987
2249
  }());
1988
- 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 });
2250
+ 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 });
1989
2251
  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"] }] });
1990
2252
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: LegacyProductComponent, decorators: [{
1991
2253
  type: i0.Component,
@@ -1994,7 +2256,7 @@
1994
2256
  styleUrls: ['./legacy-product.component.scss'],
1995
2257
  }]
1996
2258
  }], ctorParameters: function () {
1997
- 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: [{
2259
+ 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: [{
1998
2260
  type: i0.Optional
1999
2261
  }, {
2000
2262
  type: i0.Inject,
@@ -2008,13 +2270,13 @@
2008
2270
  return LegacyProductModule;
2009
2271
  }());
2010
2272
  LegacyProductModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: LegacyProductModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
2011
- 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] });
2012
- 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()]] });
2273
+ 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] });
2274
+ 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()]] });
2013
2275
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: LegacyProductModule, decorators: [{
2014
2276
  type: i0.NgModule,
2015
2277
  args: [{
2016
2278
  declarations: [LegacyProductComponent],
2017
- imports: [i5.CommonModule, i4$2.RuntimeModule, i1$3.TooltipModule.forRoot()],
2279
+ imports: [i5$1.CommonModule, i4$2.RuntimeModule, i1$4.TooltipModule.forRoot()],
2018
2280
  exports: [LegacyProductComponent],
2019
2281
  }]
2020
2282
  }] });
@@ -2109,8 +2371,8 @@
2109
2371
  };
2110
2372
  return ProductComponent;
2111
2373
  }());
2112
- 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 });
2113
- 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 });
2374
+ 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 });
2375
+ 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 });
2114
2376
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ProductComponent, decorators: [{
2115
2377
  type: i0.Component,
2116
2378
  args: [{
@@ -2120,7 +2382,7 @@
2120
2382
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
2121
2383
  }]
2122
2384
  }], ctorParameters: function () {
2123
- 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: [{
2385
+ 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: [{
2124
2386
  type: i0.Optional
2125
2387
  }, {
2126
2388
  type: i0.Inject,
@@ -2134,13 +2396,13 @@
2134
2396
  return ProductModule;
2135
2397
  }());
2136
2398
  ProductModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ProductModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
2137
- 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] });
2138
- 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]] });
2399
+ 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] });
2400
+ 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]] });
2139
2401
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ProductModule, decorators: [{
2140
2402
  type: i0.NgModule,
2141
2403
  args: [{
2142
2404
  declarations: [ProductComponent],
2143
- imports: [i5.CommonModule, i4.PreviewModule, i3.LoaderModule],
2405
+ imports: [i5$1.CommonModule, i1$1.PreviewModule, i3.LoaderModule],
2144
2406
  exports: [ProductComponent],
2145
2407
  }]
2146
2408
  }] });
@@ -2159,8 +2421,8 @@
2159
2421
  }
2160
2422
  return RecordNotFoundComponent;
2161
2423
  }());
2162
- 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 });
2163
- 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 });
2424
+ 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 });
2425
+ 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 });
2164
2426
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: RecordNotFoundComponent, decorators: [{
2165
2427
  type: i0.Component,
2166
2428
  args: [{
@@ -2169,7 +2431,7 @@
2169
2431
  styleUrls: ['./record-not-found.component.scss'],
2170
2432
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
2171
2433
  }]
2172
- }], ctorParameters: function () { return [{ type: i1__namespace$2.Router }, { type: i1__namespace$2.ActivatedRoute }]; } });
2434
+ }], ctorParameters: function () { return [{ type: i1__namespace$3.Router }, { type: i1__namespace$3.ActivatedRoute }]; } });
2173
2435
 
2174
2436
  var routes = [{ path: '', component: RecordNotFoundComponent }];
2175
2437
  var RecordNotFoundModule = /** @class */ (function () {
@@ -2178,13 +2440,13 @@
2178
2440
  return RecordNotFoundModule;
2179
2441
  }());
2180
2442
  RecordNotFoundModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: RecordNotFoundModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
2181
- 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] });
2182
- 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)]] });
2443
+ 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] });
2444
+ 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)]] });
2183
2445
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: RecordNotFoundModule, decorators: [{
2184
2446
  type: i0.NgModule,
2185
2447
  args: [{
2186
2448
  declarations: [RecordNotFoundComponent],
2187
- imports: [i5.CommonModule, i1$2.RouterModule.forChild(routes)],
2449
+ imports: [i5$1.CommonModule, i1$3.RouterModule.forChild(routes)],
2188
2450
  }]
2189
2451
  }] });
2190
2452
 
@@ -2280,11 +2542,11 @@
2280
2542
  RemoteComponent.prototype.initSubscriptions = function () {
2281
2543
  var _this = this;
2282
2544
  this.integrationState
2283
- .listen$(i4.FlowAction.REMOTE_CANCEL)
2545
+ .listen$(i1$1.FlowAction.REMOTE_CANCEL)
2284
2546
  .pipe(rxjs.tap(function () { return _this.location.back(); }), rxjs.takeUntil(this.destroyed$))
2285
2547
  .subscribe();
2286
2548
  this.integrationState
2287
- .listen$(i4.FlowAction.REMOTE_APPLY)
2549
+ .listen$(i1$1.FlowAction.REMOTE_APPLY)
2288
2550
  .pipe(rxjs.tap(function () { return _this.saveRpcMessage(); }), rxjs.takeUntil(this.destroyed$))
2289
2551
  .subscribe();
2290
2552
  };
@@ -2576,8 +2838,8 @@
2576
2838
  };
2577
2839
  return RemoteComponent;
2578
2840
  }());
2579
- 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 });
2580
- 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 });
2841
+ 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 });
2842
+ 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 });
2581
2843
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: RemoteComponent, decorators: [{
2582
2844
  type: i0.Component,
2583
2845
  args: [{
@@ -2586,7 +2848,7 @@
2586
2848
  styleUrls: ['./remote.component.scss'],
2587
2849
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
2588
2850
  }]
2589
- }], 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 }]; } });
2851
+ }], 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 }]; } });
2590
2852
 
2591
2853
  var RemoteModule = /** @class */ (function () {
2592
2854
  function RemoteModule() {
@@ -2594,13 +2856,13 @@
2594
2856
  return RemoteModule;
2595
2857
  }());
2596
2858
  RemoteModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: RemoteModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
2597
- 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] });
2598
- 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]] });
2859
+ 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] });
2860
+ 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]] });
2599
2861
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: RemoteModule, decorators: [{
2600
2862
  type: i0.NgModule,
2601
2863
  args: [{
2602
2864
  declarations: [RemoteComponent],
2603
- imports: [i5.CommonModule, i4.PreviewModule, i3.LoaderModule],
2865
+ imports: [i5$1.CommonModule, i1$1.PreviewModule, i3.LoaderModule],
2604
2866
  exports: [RemoteComponent],
2605
2867
  }]
2606
2868
  }] });
@@ -2698,8 +2960,8 @@
2698
2960
  };
2699
2961
  return ShoppingCartComponent;
2700
2962
  }());
2701
- 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 });
2702
- 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 });
2963
+ 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 });
2964
+ 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 });
2703
2965
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ShoppingCartComponent, decorators: [{
2704
2966
  type: i0.Component,
2705
2967
  args: [{
@@ -2709,7 +2971,7 @@
2709
2971
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
2710
2972
  }]
2711
2973
  }], ctorParameters: function () {
2712
- return [{ type: i2__namespace$1.UITemplatesApiService }, { type: i1__namespace$1.ContextService }, { type: i0__namespace.ChangeDetectorRef }, { type: i3__namespace.ToastService }, { type: undefined, decorators: [{
2974
+ return [{ type: i2__namespace.UITemplatesApiService }, { type: i1__namespace$2.ContextService }, { type: i0__namespace.ChangeDetectorRef }, { type: i3__namespace.ToastService }, { type: undefined, decorators: [{
2713
2975
  type: i0.Optional
2714
2976
  }, {
2715
2977
  type: i0.Inject,
@@ -2723,13 +2985,13 @@
2723
2985
  return ShoppingCartModule;
2724
2986
  }());
2725
2987
  ShoppingCartModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ShoppingCartModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
2726
- 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] });
2727
- 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]] });
2988
+ 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] });
2989
+ 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]] });
2728
2990
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ShoppingCartModule, decorators: [{
2729
2991
  type: i0.NgModule,
2730
2992
  args: [{
2731
2993
  declarations: [ShoppingCartComponent],
2732
- imports: [i5.CommonModule, i4.PreviewModule, i3.LoaderModule],
2994
+ imports: [i5$1.CommonModule, i1$1.PreviewModule, i3.LoaderModule],
2733
2995
  exports: [ShoppingCartComponent],
2734
2996
  }]
2735
2997
  }] });
@@ -2787,11 +3049,11 @@
2787
3049
  };
2788
3050
  return FlowResolver;
2789
3051
  }());
2790
- 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 });
3052
+ 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 });
2791
3053
  FlowResolver.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowResolver });
2792
3054
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowResolver, decorators: [{
2793
3055
  type: i0.Injectable
2794
- }], ctorParameters: function () { return [{ type: i1__namespace$2.Router }, { type: i2__namespace$1.FlowsApiService }, { type: FlowRouterService }, { type: i1__namespace$1.ContextService }]; } });
3056
+ }], ctorParameters: function () { return [{ type: i1__namespace$3.Router }, { type: i2__namespace.FlowsApiService }, { type: FlowRouterService }, { type: i1__namespace$2.ContextService }]; } });
2795
3057
 
2796
3058
  var QuoteResolver = /** @class */ (function () {
2797
3059
  function QuoteResolver(router, quoteDraftService, routerService, contextService, flowConfiguration) {
@@ -2856,11 +3118,11 @@
2856
3118
  };
2857
3119
  return QuoteResolver;
2858
3120
  }());
2859
- 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 });
3121
+ 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 });
2860
3122
  QuoteResolver.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: QuoteResolver });
2861
3123
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: QuoteResolver, decorators: [{
2862
3124
  type: i0.Injectable
2863
- }], 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 }]; } });
3125
+ }], 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 }]; } });
2864
3126
 
2865
3127
  var rootRoute = {
2866
3128
  id: VELOCE_FLOW_ROOT_ROUTE,
@@ -2944,26 +3206,26 @@
2944
3206
  return FlowRoutingModule;
2945
3207
  }());
2946
3208
  FlowRoutingModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowRoutingModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
2947
- FlowRoutingModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowRoutingModule, imports: [i1__namespace$2.RouterModule, ProductModule,
3209
+ FlowRoutingModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowRoutingModule, imports: [i1__namespace$3.RouterModule, ProductModule,
2948
3210
  LegacyProductModule,
2949
3211
  ShoppingCartModule,
2950
3212
  CatalogModule,
2951
3213
  RemoteModule,
2952
- EmptyAccountModule], exports: [i1$2.RouterModule] });
3214
+ EmptyAccountModule], exports: [i1$3.RouterModule] });
2953
3215
  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: [[
2954
- i1$2.RouterModule.forChild([rootRoute]),
3216
+ i1$3.RouterModule.forChild([rootRoute]),
2955
3217
  ProductModule,
2956
3218
  LegacyProductModule,
2957
3219
  ShoppingCartModule,
2958
3220
  CatalogModule,
2959
3221
  RemoteModule,
2960
3222
  EmptyAccountModule,
2961
- ], i1$2.RouterModule] });
3223
+ ], i1$3.RouterModule] });
2962
3224
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowRoutingModule, decorators: [{
2963
3225
  type: i0.NgModule,
2964
3226
  args: [{
2965
3227
  imports: [
2966
- i1$2.RouterModule.forChild([rootRoute]),
3228
+ i1$3.RouterModule.forChild([rootRoute]),
2967
3229
  ProductModule,
2968
3230
  LegacyProductModule,
2969
3231
  ShoppingCartModule,
@@ -2971,7 +3233,7 @@
2971
3233
  RemoteModule,
2972
3234
  EmptyAccountModule,
2973
3235
  ],
2974
- exports: [i1$2.RouterModule],
3236
+ exports: [i1$3.RouterModule],
2975
3237
  providers: [FlowRouterService, RootGuard, ContextGuard, ProductUnloadGuard, FlowResolver, QuoteResolver],
2976
3238
  }]
2977
3239
  }] });
@@ -2982,25 +3244,25 @@
2982
3244
  return FlowModule;
2983
3245
  }());
2984
3246
  FlowModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
2985
- FlowModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowModule, declarations: [FlowComponent], imports: [i5.CommonModule,
3247
+ FlowModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowModule, declarations: [FlowComponent], imports: [i5$1.CommonModule,
2986
3248
  FlowRoutingModule,
2987
- i2$1.ApiModule,
2988
- i4.LauncherModule,
3249
+ i2.ApiModule,
3250
+ i1$1.LauncherModule,
2989
3251
  i3.LoaderModule,
2990
3252
  FlowHeaderModule,
2991
3253
  FlowDialogModule,
2992
- i1$1.SdkCoreModule,
3254
+ i1$2.SdkCoreModule,
2993
3255
  DocGenModule,
2994
3256
  i3.LetDirectiveModule] });
2995
3257
  FlowModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowModule, providers: [FlowService, FlowDialogService, FlowDocGenService], imports: [[
2996
- i5.CommonModule,
3258
+ i5$1.CommonModule,
2997
3259
  FlowRoutingModule,
2998
- i2$1.ApiModule,
2999
- i4.LauncherModule,
3260
+ i2.ApiModule,
3261
+ i1$1.LauncherModule,
3000
3262
  i3.LoaderModule,
3001
3263
  FlowHeaderModule,
3002
3264
  FlowDialogModule,
3003
- i1$1.SdkCoreModule,
3265
+ i1$2.SdkCoreModule,
3004
3266
  DocGenModule,
3005
3267
  i3.LetDirectiveModule,
3006
3268
  ]] });
@@ -3009,14 +3271,14 @@
3009
3271
  args: [{
3010
3272
  declarations: [FlowComponent],
3011
3273
  imports: [
3012
- i5.CommonModule,
3274
+ i5$1.CommonModule,
3013
3275
  FlowRoutingModule,
3014
- i2$1.ApiModule,
3015
- i4.LauncherModule,
3276
+ i2.ApiModule,
3277
+ i1$1.LauncherModule,
3016
3278
  i3.LoaderModule,
3017
3279
  FlowHeaderModule,
3018
3280
  FlowDialogModule,
3019
- i1$1.SdkCoreModule,
3281
+ i1$2.SdkCoreModule,
3020
3282
  DocGenModule,
3021
3283
  i3.LetDirectiveModule,
3022
3284
  ],