@veloceapps/sdk 4.0.20 → 4.0.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,8 +1,8 @@
1
1
  (function (global, factory) {
2
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
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, 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, i11, i0, i2$2, i3, i5, i2$1, i2, i1, core, rxjs, i3$1, i9, i12, i6, i6$1, i4, i1$1, i2$3, http, dropdown, i7, i5$1, operators, i4$1, i1$2) { 'use strict';
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.veloce = global.veloce || {}, global.veloce.sdk = {}), global.ng.common, global.ng.core, global["@veloce/api"], global["@veloce/components"], global.veloce.sdk.cms, global.veloce.sdk.core, global["primeng/button"], global["primeng/dynamicdialog"], global["@veloce/core"], global.rxjs, global["primeng/overlaypanel"], global.i9, global["primeng/tooltip"], global.ng.forms, global["primeng/inputnumber"], global.i4$1, global.ng.router, global["primeng/api"], global.ng.common.http, global["primeng/dropdown"], global["primeng/inputtext"], global["primeng/radiobutton"], global.rxjs.operators, global.veloce.sdk.runtime, global["ngx-bootstrap/tooltip"]));
5
+ })(this, (function (exports, i5, i0, i2$1, i3, i4, i1$1, i2, i1, core, rxjs, i3$1, i9, i12, i6, i6$1, i4$1, i1$2, i2$2, http, dropdown, i7, i5$1, operators, i4$2, i1$3) { 'use strict';
6
6
 
7
7
  function _interopNamespace(e) {
8
8
  if (e && e.__esModule) return e;
@@ -22,12 +22,12 @@
22
22
  return Object.freeze(n);
23
23
  }
24
24
 
25
- var i11__namespace = /*#__PURE__*/_interopNamespace(i11);
26
- var i0__namespace = /*#__PURE__*/_interopNamespace(i0);
27
- var i2__namespace$2 = /*#__PURE__*/_interopNamespace(i2$2);
28
- var i3__namespace = /*#__PURE__*/_interopNamespace(i3);
29
25
  var i5__namespace = /*#__PURE__*/_interopNamespace(i5);
26
+ var i0__namespace = /*#__PURE__*/_interopNamespace(i0);
30
27
  var i2__namespace$1 = /*#__PURE__*/_interopNamespace(i2$1);
28
+ var i3__namespace = /*#__PURE__*/_interopNamespace(i3);
29
+ var i4__namespace = /*#__PURE__*/_interopNamespace(i4);
30
+ var i1__namespace$1 = /*#__PURE__*/_interopNamespace(i1$1);
31
31
  var i2__namespace = /*#__PURE__*/_interopNamespace(i2);
32
32
  var i1__namespace = /*#__PURE__*/_interopNamespace(i1);
33
33
  var i3__namespace$1 = /*#__PURE__*/_interopNamespace(i3$1);
@@ -35,13 +35,13 @@
35
35
  var i12__namespace = /*#__PURE__*/_interopNamespace(i12);
36
36
  var i6__namespace$1 = /*#__PURE__*/_interopNamespace(i6);
37
37
  var i6__namespace = /*#__PURE__*/_interopNamespace(i6$1);
38
- var i4__namespace = /*#__PURE__*/_interopNamespace(i4);
39
- var i1__namespace$1 = /*#__PURE__*/_interopNamespace(i1$1);
40
- var i2__namespace$3 = /*#__PURE__*/_interopNamespace(i2$3);
41
- var i7__namespace = /*#__PURE__*/_interopNamespace(i7);
42
- var i5__namespace$1 = /*#__PURE__*/_interopNamespace(i5$1);
43
38
  var i4__namespace$1 = /*#__PURE__*/_interopNamespace(i4$1);
44
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 i4__namespace$2 = /*#__PURE__*/_interopNamespace(i4$2);
44
+ var i1__namespace$3 = /*#__PURE__*/_interopNamespace(i1$3);
45
45
 
46
46
  var VELOCE_FLOW_ROOT_ROUTE = 'VELOCE_FLOW_ROOT_ROUTE';
47
47
 
@@ -60,7 +60,7 @@
60
60
  return FlowDialogComponent;
61
61
  }());
62
62
  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: i11__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
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 });
64
64
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowDialogComponent, decorators: [{
65
65
  type: i0.Component,
66
66
  args: [{
@@ -77,13 +77,13 @@
77
77
  return FlowDialogModule;
78
78
  }());
79
79
  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: [i11.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: [[i11.CommonModule, i2.ButtonModule]] });
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]] });
82
82
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowDialogModule, decorators: [{
83
83
  type: i0.NgModule,
84
84
  args: [{
85
85
  declarations: [FlowDialogComponent],
86
- imports: [i11.CommonModule, i2.ButtonModule],
86
+ imports: [i5.CommonModule, i2.ButtonModule],
87
87
  exports: [FlowDialogComponent],
88
88
  }]
89
89
  }] });
@@ -102,21 +102,21 @@
102
102
  FlowDocGenService.prototype.initSubscriptions = function () {
103
103
  var _this = this;
104
104
  this.integrationState
105
- .listen$(i5.FlowAction.FLOW_OPEN_DOC_GEN)
105
+ .listen$(i4.FlowAction.FLOW_OPEN_DOC_GEN)
106
106
  .pipe(rxjs.tap(function () { return _this.isVisibleSubj$.next(true); }), rxjs.takeUntil(this.cleanup$))
107
107
  .subscribe();
108
108
  this.integrationState
109
- .listen$(i5.FlowAction.FLOW_CLOSE_DOC_GEN)
109
+ .listen$(i4.FlowAction.FLOW_CLOSE_DOC_GEN)
110
110
  .pipe(rxjs.tap(function () { return _this.isVisibleSubj$.next(false); }), rxjs.takeUntil(this.cleanup$))
111
111
  .subscribe();
112
112
  };
113
113
  return FlowDocGenService;
114
114
  }());
115
- FlowDocGenService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowDocGenService, deps: [{ token: i5__namespace.IntegrationState }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
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 });
116
116
  FlowDocGenService.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowDocGenService });
117
117
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowDocGenService, decorators: [{
118
118
  type: i0.Injectable
119
- }], ctorParameters: function () { return [{ type: i5__namespace.IntegrationState }]; } });
119
+ }], ctorParameters: function () { return [{ type: i4__namespace.IntegrationState }]; } });
120
120
 
121
121
  var DocGenComponent = /** @class */ (function () {
122
122
  function DocGenComponent(quoteDraftService, contextService, templatesApi, docGenService, toastService) {
@@ -183,8 +183,8 @@
183
183
  var headerId = (_a = _this.contextService.resolve().properties.Id) !== null && _a !== void 0 ? _a : null;
184
184
  var script = meta.js;
185
185
  if (script) {
186
- var metadata = i5.extractElementMetadata(script);
187
- script = i5.extendElementMetadata(script, {
186
+ var metadata = i4.extractElementMetadata(script);
187
+ script = i4.extendElementMetadata(script, {
188
188
  inputs: Object.assign(Object.assign({}, metadata.inputs), { Id: headerId ? "\"" + headerId + "\"" : null }),
189
189
  });
190
190
  }
@@ -208,8 +208,8 @@
208
208
  };
209
209
  return DocGenComponent;
210
210
  }());
211
- DocGenComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: DocGenComponent, deps: [{ token: i2__namespace$1.QuoteDraftService }, { token: i2__namespace$1.ContextService }, { token: i2__namespace$2.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: i5__namespace.PreviewComponent, selector: "vl-cms-preview", inputs: ["modelId", "uiDefinition", "clearState"] }], directives: [{ type: i11__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i11__namespace.AsyncPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
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 });
213
213
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: DocGenComponent, decorators: [{
214
214
  type: i0.Component,
215
215
  args: [{
@@ -218,7 +218,7 @@
218
218
  styleUrls: ['./doc-gen.component.scss'],
219
219
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
220
220
  }]
221
- }], ctorParameters: function () { return [{ type: i2__namespace$1.QuoteDraftService }, { type: i2__namespace$1.ContextService }, { type: i2__namespace$2.UITemplatesApiService }, { type: FlowDocGenService }, { type: i3__namespace.ToastService }]; } });
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 }]; } });
222
222
 
223
223
  var DocGenModule = /** @class */ (function () {
224
224
  function DocGenModule() {
@@ -226,13 +226,13 @@
226
226
  return DocGenModule;
227
227
  }());
228
228
  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: [i11.CommonModule, i5.PreviewModule], exports: [DocGenComponent] });
230
- DocGenModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: DocGenModule, imports: [[i11.CommonModule, i5.PreviewModule]] });
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]] });
231
231
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: DocGenModule, decorators: [{
232
232
  type: i0.NgModule,
233
233
  args: [{
234
234
  declarations: [DocGenComponent],
235
- imports: [i11.CommonModule, i5.PreviewModule],
235
+ imports: [i5.CommonModule, i4.PreviewModule],
236
236
  exports: [DocGenComponent],
237
237
  }]
238
238
  }] });
@@ -590,14 +590,14 @@
590
590
  return url.replace(flowRootUrl, '');
591
591
  }));
592
592
  };
593
- this.routeChange$ = this.router.events.pipe(rxjs.filter(function (e) { return e instanceof i1$1.NavigationEnd; }), rxjs.shareReplay());
593
+ this.routeChange$ = this.router.events.pipe(rxjs.filter(function (e) { return e instanceof i1$2.NavigationEnd; }), rxjs.shareReplay());
594
594
  this.lastChildParams$ = this.watchLastChildParams$(this.route).pipe(rxjs.startWith(this.getLastChildParams(this.route.snapshot)), rxjs.shareReplay());
595
595
  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$1.NavigationStart ||
597
- e instanceof i1$1.NavigationCancel ||
598
- e instanceof i1$1.NavigationEnd ||
599
- e instanceof i1$1.NavigationError; }), rxjs.map(function (e) { return e instanceof i1$1.NavigationStart; }), rxjs.startWith(false), rxjs.distinctUntilChanged());
600
- this.router.events.pipe(rxjs.filter(function (e) { return e instanceof i1$1.NavigationEnd; })).subscribe(function () {
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 () {
601
601
  _this.urlHistory.push(_this.router.url);
602
602
  });
603
603
  }
@@ -675,12 +675,12 @@
675
675
  };
676
676
  return FlowRouterService;
677
677
  }());
678
- FlowRouterService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowRouterService, deps: [{ token: i1__namespace$1.Router }, { token: i1__namespace$1.ActivatedRoute }, { token: i2__namespace$1.ContextService }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
678
+ FlowRouterService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowRouterService, deps: [{ token: i1__namespace$2.Router }, { token: i1__namespace$2.ActivatedRoute }, { token: i1__namespace$1.ContextService }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
679
679
  FlowRouterService.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowRouterService, providedIn: 'root' });
680
680
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowRouterService, decorators: [{
681
681
  type: i0.Injectable,
682
682
  args: [{ providedIn: 'root' }]
683
- }], ctorParameters: function () { return [{ type: i1__namespace$1.Router }, { type: i1__namespace$1.ActivatedRoute }, { type: i2__namespace$1.ContextService }]; } });
683
+ }], ctorParameters: function () { return [{ type: i1__namespace$2.Router }, { type: i1__namespace$2.ActivatedRoute }, { type: i1__namespace$1.ContextService }]; } });
684
684
 
685
685
  var CartPreviewComponent = /** @class */ (function () {
686
686
  function CartPreviewComponent(flowConfiguration, routerService, productImagesService, quoteDraftService) {
@@ -779,8 +779,8 @@
779
779
  };
780
780
  return CartPreviewComponent;
781
781
  }());
782
- CartPreviewComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: CartPreviewComponent, deps: [{ token: i2__namespace$1.FlowConfigurationService }, { token: FlowRouterService }, { token: i2__namespace$1.ProductImagesService }, { token: i2__namespace$1.QuoteDraftService }], target: i0__namespace.ɵɵFactoryTarget.Component });
783
- CartPreviewComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: CartPreviewComponent, selector: "vl-cart-preview", inputs: { products: "products" }, viewQueries: [{ propertyName: "overlayPanel", first: true, predicate: i3$1.OverlayPanel, descendants: true }], usesOnChanges: true, ngImport: i0__namespace, template: "<p-overlayPanel\n styleClass=\"navigation-settings-overlay flow-header-overlay center no-padding\"\n showTransitionOptions=\"0ms\"\n hideTransitionOptions=\"0ms\"\n>\n <ng-template pTemplate>\n <div class=\"flow-header-overlay__wrapper\" *vlLet=\"lockedProductId$ | async as lockedProductId\">\n <ng-container *vlLet=\"isEditMode$ | async as isEditMode\">\n <ng-container *ngIf=\"products.length > 0; else empty\">\n <h2 class=\"flow-header-overlay__title\">\n <span>Products ({{ products.length }})</span>\n <i class=\"vl-icon vl-icon-close close-icon\" (click)=\"overlayPanel.hide()\"></i>\n </h2>\n\n <p-virtualScroller [value]=\"products\" scrollHeight=\"{{ scrollHeight }}px\" [itemSize]=\"productRowHeight\">\n <ng-template pTemplate=\"header\">\n <div class=\"product header\">\n <span>Product</span>\n <span class=\"text-right\">Qty</span>\n <span class=\"text-right\">MRR</span>\n <span class=\"text-right\">NRR</span>\n </div>\n </ng-template>\n\n <ng-template pTemplate=\"item\" let-product>\n <div\n class=\"product item\"\n *vlLet=\"!isEditMode || product.deleted as isReadonlyProduct\"\n [class.readonly]=\"isReadonlyProduct\"\n [class.deleted]=\"product.deleted\"\n >\n <ng-container *vlLet=\"lockedProductId === product.productId as isLockedProduct\">\n <div class=\"product__info\">\n <div class=\"product__image-wrapper\">\n <div\n *ngIf=\"getImageUrl(product.productId) | async as imageUrl; else noImage\"\n class=\"product__image\"\n [ngStyle]=\"{ 'background-image': 'url(' + imageUrl + ')' }\"\n ></div>\n </div>\n <div class=\"flex flex-column justify-content-center\">\n <div class=\"word-break\" [class.line-through]=\"product.deleted\">{{ product.name }}</div>\n <div *ngIf=\"!isReadonlyProduct\">\n <p-button\n label=\"Configure\"\n [disabled]=\"isLockedProduct || !product.configurable || product.hasTerm\"\n styleClass=\"p-button-link p-button-sm p-2 pl-0\"\n (onClick)=\"navigateToProductConfiguration(product.productId, product.id)\"\n ></p-button>\n <p-button\n label=\"Delete\"\n [disabled]=\"isLockedProduct || product.hasTerm\"\n styleClass=\"p-button-link p-button-sm p-button-danger p-2 pr-0\"\n (onClick)=\"deleteHandler(product)\"\n ></p-button>\n </div>\n </div>\n </div>\n\n <ng-container *ngIf=\"form.controls[product.id] as control\">\n <span class=\"pt-2\" *ngIf=\"!isReadonlyProduct; else readonlyQty\">\n <p-inputNumber\n class=\"qty-control\"\n [formControl]=\"$any(control)\"\n [min]=\"1\"\n [required]=\"true\"\n (onBlur)=\"controlBlurHandler(product)\"\n ></p-inputNumber>\n </span>\n <ng-template #readonlyQty\n ><span class=\"text-right\">{{ control.value }}</span></ng-template\n >\n </ng-container>\n\n <span class=\"text-right\" [class.pt-3]=\"!isReadonlyProduct\">${{ product.mrr }}</span>\n <span class=\"text-right\" [class.pt-3]=\"!isReadonlyProduct\">${{ product.nrr }}</span>\n </ng-container>\n </div>\n </ng-template>\n </p-virtualScroller>\n\n <ng-template #noImage>\n <i class=\"vl-icon vl-icon-no-image no-image-icon\"></i>\n </ng-template>\n\n <div class=\"flex justify-content-end footer\">\n <p-button\n label=\"Clear cart\"\n styleClass=\"p-button-link p-button-sm p-button-danger pl-0 pr-0\"\n [disabled]=\"!isEditMode || !!lockedProductId || hasTermInProducts\"\n (onClick)=\"deleteAllHandler()\"\n ></p-button>\n </div>\n </ng-container>\n </ng-container>\n\n <ng-template #empty>\n <h2 class=\"flow-header-overlay__title\">\n <span>Empty Cart</span>\n <i class=\"vl-icon vl-icon-close close-icon\" (click)=\"overlayPanel.hide()\"></i>\n </h2>\n\n <span class=\"empty-state\">There are no products added to the Shopping Cart yet.</span>\n </ng-template>\n </div>\n </ng-template>\n</p-overlayPanel>\n", styles: ["p-virtualscroller ::ng-deep .p-virtualscroller-header{background:none;padding:0;border:none;font-weight:unset}p-virtualscroller ::ng-deep cdk-virtual-scroll-viewport{overflow-y:scroll}.flow-header-overlay__wrapper{display:flex;flex-direction:column;width:460px;max-height:600px}.flow-header-overlay__wrapper .close-icon{cursor:pointer}.flow-header-overlay__title{display:flex;justify-content:space-between;align-items:center;margin:0;padding:16px}.empty-state{color:var(--vl-text-color-deep-accent);padding:0 16px 16px}.product{display:grid;grid-template-columns:auto 60px 70px 70px;padding:16px;border-bottom:1px solid var(--vl-border-color)}.product.readonly{align-items:center}.product.deleted{opacity:.5}.product.header{position:-webkit-sticky;position:sticky;top:0;background-color:var(--surface-card);z-index:1;color:var(--vl-text-color-deep-accent);padding-bottom:0;border-bottom:none;overflow-y:scroll}.product .item{height:97px;overflow:hidden}.product__info{display:flex;grid-gap:16px;gap:16px}.product__image-wrapper{flex-shrink:0;height:64px;width:64px;display:flex;justify-content:center;align-items:center;background:var(--vl-primary-nav-overlay-bg);border-radius:4px}.product__image{background-size:contain;background-repeat:no-repeat;background-position:center;height:calc(100% - 12px);width:calc(100% - 12px)}.product .qty-control ::ng-deep .p-inputnumber-input{align-self:flex-start;text-align:right;height:24px;width:100%}.footer{padding:12px 16px}.word-break{word-break:break-word}.no-image-icon{color:#b4d1ef;height:18px;width:18px}:host ::ng-deep .p-overlaypanel.navigation-settings-overlay{margin-top:20px}\n"], components: [{ type: i3__namespace$1.OverlayPanel, selector: "p-overlayPanel", inputs: ["dismissable", "showCloseIcon", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }, { type: i4__namespace.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$3.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { type: i3__namespace.LetDirective, selector: "[vlLet]", inputs: ["vlLet"] }, { type: i11__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i11__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": i11__namespace.AsyncPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
782
+ CartPreviewComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: CartPreviewComponent, deps: [{ token: i1__namespace$1.FlowConfigurationService }, { token: FlowRouterService }, { token: i1__namespace$1.ProductImagesService }, { token: i1__namespace$1.QuoteDraftService }], target: i0__namespace.ɵɵFactoryTarget.Component });
783
+ CartPreviewComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: CartPreviewComponent, selector: "vl-cart-preview", inputs: { products: "products" }, viewQueries: [{ propertyName: "overlayPanel", first: true, predicate: i3$1.OverlayPanel, descendants: true }], usesOnChanges: true, ngImport: i0__namespace, template: "<p-overlayPanel\n styleClass=\"navigation-settings-overlay flow-header-overlay center no-padding\"\n showTransitionOptions=\"0ms\"\n hideTransitionOptions=\"0ms\"\n>\n <ng-template pTemplate>\n <div class=\"flow-header-overlay__wrapper\" *vlLet=\"lockedProductId$ | async as lockedProductId\">\n <ng-container *vlLet=\"isEditMode$ | async as isEditMode\">\n <ng-container *ngIf=\"products.length > 0; else empty\">\n <h2 class=\"flow-header-overlay__title\">\n <span>Products ({{ products.length }})</span>\n <i class=\"vl-icon vl-icon-close close-icon\" (click)=\"overlayPanel.hide()\"></i>\n </h2>\n\n <p-virtualScroller [value]=\"products\" scrollHeight=\"{{ scrollHeight }}px\" [itemSize]=\"productRowHeight\">\n <ng-template pTemplate=\"header\">\n <div class=\"product header\">\n <span>Product</span>\n <span class=\"text-right\">Qty</span>\n <span class=\"text-right\">MRR</span>\n <span class=\"text-right\">NRR</span>\n </div>\n </ng-template>\n\n <ng-template pTemplate=\"item\" let-product>\n <div\n class=\"product item\"\n *vlLet=\"!isEditMode || product.deleted as isReadonlyProduct\"\n [class.readonly]=\"isReadonlyProduct\"\n [class.deleted]=\"product.deleted\"\n >\n <ng-container *vlLet=\"lockedProductId === product.productId as isLockedProduct\">\n <div class=\"product__info\">\n <div class=\"product__image-wrapper\">\n <div\n *ngIf=\"getImageUrl(product.productId) | async as imageUrl; else noImage\"\n class=\"product__image\"\n [ngStyle]=\"{ 'background-image': 'url(' + imageUrl + ')' }\"\n ></div>\n </div>\n <div class=\"flex flex-column justify-content-center\">\n <div class=\"word-break\" [class.line-through]=\"product.deleted\">{{ product.name }}</div>\n <div *ngIf=\"!isReadonlyProduct\">\n <p-button\n label=\"Configure\"\n [disabled]=\"isLockedProduct || !product.configurable || product.hasTerm\"\n styleClass=\"p-button-link p-button-sm p-2 pl-0\"\n (onClick)=\"navigateToProductConfiguration(product.productId, product.id)\"\n ></p-button>\n <p-button\n label=\"Delete\"\n [disabled]=\"isLockedProduct || product.hasTerm\"\n styleClass=\"p-button-link p-button-sm p-button-danger p-2 pr-0\"\n (onClick)=\"deleteHandler(product)\"\n ></p-button>\n </div>\n </div>\n </div>\n\n <ng-container *ngIf=\"form.controls[product.id] as control\">\n <span class=\"pt-2\" *ngIf=\"!isReadonlyProduct; else readonlyQty\">\n <p-inputNumber\n class=\"qty-control\"\n [formControl]=\"$any(control)\"\n [min]=\"1\"\n [required]=\"true\"\n (onBlur)=\"controlBlurHandler(product)\"\n ></p-inputNumber>\n </span>\n <ng-template #readonlyQty\n ><span class=\"text-right\">{{ control.value }}</span></ng-template\n >\n </ng-container>\n\n <span class=\"text-right\" [class.pt-3]=\"!isReadonlyProduct\">${{ product.mrr }}</span>\n <span class=\"text-right\" [class.pt-3]=\"!isReadonlyProduct\">${{ product.nrr }}</span>\n </ng-container>\n </div>\n </ng-template>\n </p-virtualScroller>\n\n <ng-template #noImage>\n <i class=\"vl-icon vl-icon-no-image no-image-icon\"></i>\n </ng-template>\n\n <div class=\"flex justify-content-end footer\">\n <p-button\n label=\"Clear cart\"\n styleClass=\"p-button-link p-button-sm p-button-danger pl-0 pr-0\"\n [disabled]=\"!isEditMode || !!lockedProductId || hasTermInProducts\"\n (onClick)=\"deleteAllHandler()\"\n ></p-button>\n </div>\n </ng-container>\n </ng-container>\n\n <ng-template #empty>\n <h2 class=\"flow-header-overlay__title\">\n <span>Empty Cart</span>\n <i class=\"vl-icon vl-icon-close close-icon\" (click)=\"overlayPanel.hide()\"></i>\n </h2>\n\n <span class=\"empty-state\">There are no products added to the Shopping Cart yet.</span>\n </ng-template>\n </div>\n </ng-template>\n</p-overlayPanel>\n", styles: ["p-virtualscroller ::ng-deep .p-virtualscroller-header{background:none;padding:0;border:none;font-weight:unset}p-virtualscroller ::ng-deep cdk-virtual-scroll-viewport{overflow-y:scroll}.flow-header-overlay__wrapper{display:flex;flex-direction:column;width:460px;max-height:600px}.flow-header-overlay__wrapper .close-icon{cursor:pointer}.flow-header-overlay__title{display:flex;justify-content:space-between;align-items:center;margin:0;padding:16px}.empty-state{color:var(--vl-text-color-deep-accent);padding:0 16px 16px}.product{display:grid;grid-template-columns:auto 60px 70px 70px;padding:16px;border-bottom:1px solid var(--vl-border-color)}.product.readonly{align-items:center}.product.deleted{opacity:.5}.product.header{position:-webkit-sticky;position:sticky;top:0;background-color:var(--surface-card);z-index:1;color:var(--vl-text-color-deep-accent);padding-bottom:0;border-bottom:none;overflow-y:scroll}.product .item{height:97px;overflow:hidden}.product__info{display:flex;grid-gap:16px;gap:16px}.product__image-wrapper{flex-shrink:0;height:64px;width:64px;display:flex;justify-content:center;align-items:center;background:var(--vl-primary-nav-overlay-bg);border-radius:4px}.product__image{background-size:contain;background-repeat:no-repeat;background-position:center;height:calc(100% - 12px);width:calc(100% - 12px)}.product .qty-control ::ng-deep .p-inputnumber-input{align-self:flex-start;text-align:right;height:24px;width:100%}.footer{padding:12px 16px}.word-break{word-break:break-word}.no-image-icon{color:#b4d1ef;height:18px;width:18px}:host ::ng-deep .p-overlaypanel.navigation-settings-overlay{margin-top:20px}\n"], components: [{ type: i3__namespace$1.OverlayPanel, selector: "p-overlayPanel", inputs: ["dismissable", "showCloseIcon", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }, { type: i4__namespace$1.VirtualScroller, selector: "p-virtualScroller", inputs: ["value", "itemSize", "style", "styleClass", "scrollHeight", "lazy", "rows", "minBufferPx", "maxBufferPx", "delay", "trackBy", "totalRecords", "first", "cache"], outputs: ["onLazyLoad"] }, { type: i2__namespace.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "style", "styleClass", "badgeClass"], outputs: ["onClick", "onFocus", "onBlur"] }, { type: i6__namespace.InputNumber, selector: "p-inputNumber", inputs: ["showButtons", "format", "buttonLayout", "inputId", "styleClass", "style", "placeholder", "size", "maxlength", "tabindex", "title", "ariaLabel", "ariaRequired", "name", "required", "autocomplete", "min", "max", "incrementButtonClass", "decrementButtonClass", "incrementButtonIcon", "decrementButtonIcon", "readonly", "step", "allowEmpty", "locale", "localeMatcher", "mode", "currency", "currencyDisplay", "useGrouping", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "inputStyle", "inputStyleClass", "disabled"], outputs: ["onInput", "onFocus", "onBlur", "onKeyDown"] }], directives: [{ type: i2__namespace$2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { type: i3__namespace.LetDirective, selector: "[vlLet]", inputs: ["vlLet"] }, { type: i5__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5__namespace.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i6__namespace$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i6__namespace$1.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i6__namespace$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }], pipes: { "async": i5__namespace.AsyncPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
784
784
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: CartPreviewComponent, decorators: [{
785
785
  type: i0.Component,
786
786
  args: [{
@@ -789,7 +789,7 @@
789
789
  styleUrls: ['./cart-preview.component.scss'],
790
790
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
791
791
  }]
792
- }], ctorParameters: function () { return [{ type: i2__namespace$1.FlowConfigurationService }, { type: FlowRouterService }, { type: i2__namespace$1.ProductImagesService }, { type: i2__namespace$1.QuoteDraftService }]; }, propDecorators: { overlayPanel: [{
792
+ }], ctorParameters: function () { return [{ type: i1__namespace$1.FlowConfigurationService }, { type: FlowRouterService }, { type: i1__namespace$1.ProductImagesService }, { type: i1__namespace$1.QuoteDraftService }]; }, propDecorators: { overlayPanel: [{
793
793
  type: i0.ViewChild,
794
794
  args: [i3$1.OverlayPanel]
795
795
  }], products: [{
@@ -802,34 +802,34 @@
802
802
  return CartPreviewModule;
803
803
  }());
804
804
  CartPreviewModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: CartPreviewModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
805
- CartPreviewModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: CartPreviewModule, declarations: [CartPreviewComponent], imports: [i11.CommonModule,
805
+ CartPreviewModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: CartPreviewModule, declarations: [CartPreviewComponent], imports: [i5.CommonModule,
806
806
  i6.ReactiveFormsModule,
807
807
  i2.ButtonModule,
808
808
  i3$1.OverlayPanelModule,
809
809
  i3.LetDirectiveModule,
810
810
  i6$1.InputNumberModule,
811
- i4.VirtualScrollerModule], exports: [CartPreviewComponent] });
811
+ i4$1.VirtualScrollerModule], exports: [CartPreviewComponent] });
812
812
  CartPreviewModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: CartPreviewModule, imports: [[
813
- i11.CommonModule,
813
+ i5.CommonModule,
814
814
  i6.ReactiveFormsModule,
815
815
  i2.ButtonModule,
816
816
  i3$1.OverlayPanelModule,
817
817
  i3.LetDirectiveModule,
818
818
  i6$1.InputNumberModule,
819
- i4.VirtualScrollerModule,
819
+ i4$1.VirtualScrollerModule,
820
820
  ]] });
821
821
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: CartPreviewModule, decorators: [{
822
822
  type: i0.NgModule,
823
823
  args: [{
824
824
  declarations: [CartPreviewComponent],
825
825
  imports: [
826
- i11.CommonModule,
826
+ i5.CommonModule,
827
827
  i6.ReactiveFormsModule,
828
828
  i2.ButtonModule,
829
829
  i3$1.OverlayPanelModule,
830
830
  i3.LetDirectiveModule,
831
831
  i6$1.InputNumberModule,
832
- i4.VirtualScrollerModule,
832
+ i4$1.VirtualScrollerModule,
833
833
  ],
834
834
  exports: [CartPreviewComponent],
835
835
  }]
@@ -948,11 +948,11 @@
948
948
  };
949
949
  return FlowDialogService;
950
950
  }());
951
- FlowDialogService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowDialogService, deps: [{ token: i1__namespace.DialogService }, { token: i2__namespace$1.ContextService }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
951
+ FlowDialogService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowDialogService, deps: [{ token: i1__namespace.DialogService }, { token: i1__namespace$1.ContextService }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
952
952
  FlowDialogService.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowDialogService });
953
953
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowDialogService, decorators: [{
954
954
  type: i0.Injectable
955
- }], ctorParameters: function () { return [{ type: i1__namespace.DialogService }, { type: i2__namespace$1.ContextService }]; } });
955
+ }], ctorParameters: function () { return [{ type: i1__namespace.DialogService }, { type: i1__namespace$1.ContextService }]; } });
956
956
 
957
957
  var FlowHeaderComponent = /** @class */ (function () {
958
958
  function FlowHeaderComponent(contextService, quoteDraftService, quoteApiService, sfApiService, flowConfiguration, routerService, dialogService, integrationState) {
@@ -1075,7 +1075,7 @@
1075
1075
  }));
1076
1076
  }
1077
1077
  shouldOpen$
1078
- .pipe(rxjs.first(), rxjs.tap(function (shouldOpen) { return shouldOpen && _this.integrationState.dispatch(i5.OpenDocGenAction()); }))
1078
+ .pipe(rxjs.first(), rxjs.tap(function (shouldOpen) { return shouldOpen && _this.integrationState.dispatch(i4.OpenDocGenAction()); }))
1079
1079
  .subscribe();
1080
1080
  };
1081
1081
  FlowHeaderComponent.prototype.saveButtonClickHandler = function (isCartRoute) {
@@ -1222,8 +1222,8 @@
1222
1222
  };
1223
1223
  return FlowHeaderComponent;
1224
1224
  }());
1225
- FlowHeaderComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowHeaderComponent, deps: [{ token: i2__namespace$1.ContextService }, { token: i2__namespace$1.QuoteDraftService }, { token: i2__namespace$2.QuoteApiService }, { token: i2__namespace$2.SalesforceApiService }, { token: i2__namespace$1.FlowConfigurationService }, { token: FlowRouterService }, { token: FlowDialogService }, { token: i5__namespace.IntegrationState }], target: i0__namespace.ɵɵFactoryTarget.Component });
1226
- FlowHeaderComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: FlowHeaderComponent, selector: "vl-flow-header", ngImport: i0__namespace, template: "<div class=\"flow-info\" *vlLet=\"objectDetails$ | async as details\">\n <nav class=\"nav-item nav-back\" (click)=\"back()\">\n <i class=\"nav-icon vl-icon vl-icon-arrow-left\"></i>\n\n <span> Back to {{ objectName | titlecase }}</span>\n </nav>\n\n <ng-container *ngIf=\"isAccountMode\">\n <span class=\"dot-separator\"></span>\n\n <nav class=\"account-name\" [pTooltip]=\"contextProperties.Name ?? ''\" tooltipPosition=\"bottom\" [showDelay]=\"1000\">\n <a target=\"_blank\" [href]=\"getSalesforceObjectLink(contextProperties.Id)\">{{ contextProperties.Name }}</a>\n </nav>\n </ng-container>\n\n <ng-container *ngIf=\"isQuoteMode\">\n <span class=\"dot-separator\"></span>\n\n <span>Quote #{{ details.quoteNumber }}</span>\n\n <span class=\"dot-separator\"></span>\n\n <nav class=\"nav-item\" (click)=\"quoteDetails.toggle($event)\">\n <span>{{ status$ | async }}</span>\n\n <i *ngIf=\"!quoteDetails.overlayVisible\" class=\"vl-icon vl-icon-chevron-down icon-with-margin\"></i>\n <i *ngIf=\"quoteDetails.overlayVisible\" class=\"vl-icon vl-icon-chevron-up icon-with-margin\"></i>\n </nav>\n\n <p-overlayPanel styleClass=\"navigation-settings-overlay flow-header-overlay center\" #quoteDetails>\n <ng-template pTemplate>\n <div class=\"flow-header-overlay__wrapper\">\n <h2 class=\"flow-header-overlay__title\">\n <span>Quote Information</span>\n <i class=\"vl-icon vl-icon-close close-icon\" (click)=\"quoteDetails.hide()\"></i>\n </h2>\n\n <ul class=\"info-list\">\n <li class=\"info-list__row\">\n <span>Account Name:</span>\n <a target=\"_blank\" [href]=\"getSalesforceObjectLink(details.accountId)\">\n <span>{{ details.accountName }}</span>\n </a>\n </li>\n <li class=\"info-list__row\">\n <span>Opportunity Name:</span>\n <a target=\"_blank\" [href]=\"getSalesforceObjectLink(details.opportunityId)\">\n <span>{{ details.opportunityName }}</span>\n </a>\n </li>\n <li class=\"info-list__row\">\n <span>Quote Name:</span>\n <a target=\"_blank\" [href]=\"getSalesforceObjectLink(details.quoteId)\">\n <span>{{ details.quoteName }}</span>\n </a>\n </li>\n </ul>\n </div>\n </ng-template>\n </p-overlayPanel>\n </ng-container>\n</div>\n\n<div class=\"flow-navigation\">\n <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\" *vlLet=\"objectDetails$ | async as details\">\n <ng-container *vlLet=\"activePriceList$ | async as priceList\">\n <div>\n <ng-container *ngIf=\"isAccountMode && assetPriceLists.length > 1; else singlePriceList\">\n <nav class=\"nav-item\" (click)=\"priceListsOverlay?.toggle($event)\">\n <span>{{ priceList?.name }}</span>\n <i *ngIf=\"!priceListsOverlay?.overlayVisible\" class=\"vl-icon vl-icon-chevron-down icon-with-margin\"></i>\n <i *ngIf=\"priceListsOverlay?.overlayVisible\" class=\"vl-icon vl-icon-chevron-up icon-with-margin\"></i>\n </nav>\n\n <p-overlayPanel styleClass=\"price-list-overlay\" #priceListsOverlay>\n <ng-template pTemplate>\n <span\n *ngFor=\"let option of assetPriceLists\"\n class=\"price-list-option\"\n [class.active]=\"priceList?.id === option.id\"\n (click)=\"selectPriceList(option.id); priceListsOverlay.hide()\"\n >{{ option.name }}</span\n >\n </ng-template>\n </p-overlayPanel>\n </ng-container>\n\n <ng-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\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 <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", 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:not(.disabled),.flow-navigation .nav-item:not(.disabled):hover,.flow-navigation .nav-popover-toggle.active:not(.disabled),.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: i3__namespace.LetDirective, selector: "[vlLet]", inputs: ["vlLet"] }, { type: i11__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i12__namespace.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { type: i2__namespace$3.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { type: i11__namespace.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i11__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "async": i11__namespace.AsyncPipe, "titlecase": i11__namespace.TitleCasePipe, "date": i11__namespace.DatePipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
1225
+ 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 });
1226
+ FlowHeaderComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: FlowHeaderComponent, selector: "vl-flow-header", ngImport: i0__namespace, template: "<div class=\"flow-info\" *vlLet=\"objectDetails$ | async as details\">\n <nav class=\"nav-item nav-back\" (click)=\"back()\">\n <i class=\"nav-icon vl-icon vl-icon-arrow-left\"></i>\n\n <span> Back to {{ objectName | titlecase }}</span>\n </nav>\n\n <ng-container *ngIf=\"isAccountMode\">\n <span class=\"dot-separator\"></span>\n\n <nav class=\"account-name\" [pTooltip]=\"contextProperties.Name ?? ''\" tooltipPosition=\"bottom\" [showDelay]=\"1000\">\n <a target=\"_blank\" [href]=\"getSalesforceObjectLink(contextProperties.Id)\">{{ contextProperties.Name }}</a>\n </nav>\n </ng-container>\n\n <ng-container *ngIf=\"isQuoteMode\">\n <span class=\"dot-separator\"></span>\n\n <span>Quote #{{ details.quoteNumber }}</span>\n\n <span class=\"dot-separator\"></span>\n\n <nav class=\"nav-item\" (click)=\"quoteDetails.toggle($event)\">\n <span>{{ status$ | async }}</span>\n\n <i *ngIf=\"!quoteDetails.overlayVisible\" class=\"vl-icon vl-icon-chevron-down icon-with-margin\"></i>\n <i *ngIf=\"quoteDetails.overlayVisible\" class=\"vl-icon vl-icon-chevron-up icon-with-margin\"></i>\n </nav>\n\n <p-overlayPanel styleClass=\"navigation-settings-overlay flow-header-overlay center\" #quoteDetails>\n <ng-template pTemplate>\n <div class=\"flow-header-overlay__wrapper\">\n <h2 class=\"flow-header-overlay__title\">\n <span>Quote Information</span>\n <i class=\"vl-icon vl-icon-close close-icon\" (click)=\"quoteDetails.hide()\"></i>\n </h2>\n\n <ul class=\"info-list\">\n <li class=\"info-list__row\">\n <span>Account Name:</span>\n <a target=\"_blank\" [href]=\"getSalesforceObjectLink(details.accountId)\">\n <span>{{ details.accountName }}</span>\n </a>\n </li>\n <li class=\"info-list__row\">\n <span>Opportunity Name:</span>\n <a target=\"_blank\" [href]=\"getSalesforceObjectLink(details.opportunityId)\">\n <span>{{ details.opportunityName }}</span>\n </a>\n </li>\n <li class=\"info-list__row\">\n <span>Quote Name:</span>\n <a target=\"_blank\" [href]=\"getSalesforceObjectLink(details.quoteId)\">\n <span>{{ details.quoteName }}</span>\n </a>\n </li>\n </ul>\n </div>\n </ng-template>\n </p-overlayPanel>\n </ng-container>\n</div>\n\n<div class=\"flow-navigation\">\n <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\" *vlLet=\"objectDetails$ | async as details\">\n <ng-container *vlLet=\"activePriceList$ | async as priceList\">\n <div>\n <ng-container *ngIf=\"isAccountMode && assetPriceLists.length > 1; else singlePriceList\">\n <nav class=\"nav-item\" (click)=\"priceListsOverlay?.toggle($event)\">\n <span>{{ priceList?.name }}</span>\n <i *ngIf=\"!priceListsOverlay?.overlayVisible\" class=\"vl-icon vl-icon-chevron-down icon-with-margin\"></i>\n <i *ngIf=\"priceListsOverlay?.overlayVisible\" class=\"vl-icon vl-icon-chevron-up icon-with-margin\"></i>\n </nav>\n\n <p-overlayPanel styleClass=\"price-list-overlay\" #priceListsOverlay>\n <ng-template pTemplate>\n <span\n *ngFor=\"let option of assetPriceLists\"\n class=\"price-list-option\"\n [class.active]=\"priceList?.id === option.id\"\n (click)=\"selectPriceList(option.id); priceListsOverlay.hide()\"\n >{{ option.name }}</span\n >\n </ng-template>\n </p-overlayPanel>\n </ng-container>\n\n <ng-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\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 <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", 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:not(.disabled),.flow-navigation .nav-item:not(.disabled):hover,.flow-navigation .nav-popover-toggle.active:not(.disabled),.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: i3__namespace.LetDirective, selector: "[vlLet]", inputs: ["vlLet"] }, { type: i5__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i12__namespace.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { type: i2__namespace$2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { type: i5__namespace.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i5__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "async": i5__namespace.AsyncPipe, "titlecase": i5__namespace.TitleCasePipe, "date": i5__namespace.DatePipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
1227
1227
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowHeaderComponent, decorators: [{
1228
1228
  type: i0.Component,
1229
1229
  args: [{
@@ -1232,7 +1232,7 @@
1232
1232
  styleUrls: ['./header.component.scss'],
1233
1233
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
1234
1234
  }]
1235
- }], ctorParameters: function () { return [{ type: i2__namespace$1.ContextService }, { type: i2__namespace$1.QuoteDraftService }, { type: i2__namespace$2.QuoteApiService }, { type: i2__namespace$2.SalesforceApiService }, { type: i2__namespace$1.FlowConfigurationService }, { type: FlowRouterService }, { type: FlowDialogService }, { type: i5__namespace.IntegrationState }]; } });
1235
+ }], 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 }]; } });
1236
1236
 
1237
1237
  var FlowHeaderModule = /** @class */ (function () {
1238
1238
  function FlowHeaderModule() {
@@ -1240,7 +1240,7 @@
1240
1240
  return FlowHeaderModule;
1241
1241
  }());
1242
1242
  FlowHeaderModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowHeaderModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
1243
- FlowHeaderModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowHeaderModule, declarations: [FlowHeaderComponent], imports: [i11.CommonModule,
1243
+ FlowHeaderModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowHeaderModule, declarations: [FlowHeaderComponent], imports: [i5.CommonModule,
1244
1244
  i3$1.OverlayPanelModule,
1245
1245
  i3.LetDirectiveModule,
1246
1246
  i12.TooltipModule,
@@ -1248,7 +1248,7 @@
1248
1248
  CartPreviewModule,
1249
1249
  i9.SplitButtonModule], exports: [FlowHeaderComponent] });
1250
1250
  FlowHeaderModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowHeaderModule, imports: [[
1251
- i11.CommonModule,
1251
+ i5.CommonModule,
1252
1252
  i3$1.OverlayPanelModule,
1253
1253
  i3.LetDirectiveModule,
1254
1254
  i12.TooltipModule,
@@ -1261,7 +1261,7 @@
1261
1261
  args: [{
1262
1262
  declarations: [FlowHeaderComponent],
1263
1263
  imports: [
1264
- i11.CommonModule,
1264
+ i5.CommonModule,
1265
1265
  i3$1.OverlayPanelModule,
1266
1266
  i3.LetDirectiveModule,
1267
1267
  i12.TooltipModule,
@@ -1285,7 +1285,7 @@
1285
1285
  FlowService.prototype.initSubscriptions = function () {
1286
1286
  var _this = this;
1287
1287
  this.integrationState
1288
- .listen$(i5.FlowAction.FLOW_CONFIGURE_PRODUCT)
1288
+ .listen$(i4.FlowAction.FLOW_CONFIGURE_PRODUCT)
1289
1289
  .pipe(rxjs.tap(function (payload) {
1290
1290
  var _a, _b;
1291
1291
  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;
@@ -1298,15 +1298,15 @@
1298
1298
  }), rxjs.takeUntil(this.cleanup$))
1299
1299
  .subscribe();
1300
1300
  this.integrationState
1301
- .listen$(i5.FlowAction.FLOW_NAVIGATE_BACK)
1301
+ .listen$(i4.FlowAction.FLOW_NAVIGATE_BACK)
1302
1302
  .pipe(rxjs.tap(function () { return _this.flowRouterService.navigateBack(); }), rxjs.takeUntil(this.cleanup$))
1303
1303
  .subscribe();
1304
1304
  this.integrationState
1305
- .listen$(i5.FlowAction.FLOW_NAVIGATE_TO_CATALOG)
1305
+ .listen$(i4.FlowAction.FLOW_NAVIGATE_TO_CATALOG)
1306
1306
  .pipe(rxjs.tap(function () { return _this.flowRouterService.navigateToCatalog(); }), rxjs.takeUntil(this.cleanup$))
1307
1307
  .subscribe();
1308
1308
  this.integrationState
1309
- .listen$(i5.FlowAction.FLOW_APPLY_PRODUCT_CONFIGURATION)
1309
+ .listen$(i4.FlowAction.FLOW_APPLY_PRODUCT_CONFIGURATION)
1310
1310
  .pipe(rxjs.switchMap(function () {
1311
1311
  var quoteDraft = _this.quoteDraftService.quoteDraft;
1312
1312
  var lineItem = _this.configurationService.getSnapshot();
@@ -1333,11 +1333,11 @@
1333
1333
  };
1334
1334
  return FlowService;
1335
1335
  }());
1336
- FlowService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowService, deps: [{ token: i5__namespace.IntegrationState }, { token: FlowRouterService }, { token: i2__namespace$1.QuoteDraftService }, { token: i2__namespace$1.ConfigurationService }, { token: i2__namespace$1.FlowConfigurationService }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
1336
+ 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 });
1337
1337
  FlowService.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowService });
1338
1338
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowService, decorators: [{
1339
1339
  type: i0.Injectable
1340
- }], ctorParameters: function () { return [{ type: i5__namespace.IntegrationState }, { type: FlowRouterService }, { type: i2__namespace$1.QuoteDraftService }, { type: i2__namespace$1.ConfigurationService }, { type: i2__namespace$1.FlowConfigurationService }]; } });
1340
+ }], ctorParameters: function () { return [{ type: i4__namespace.IntegrationState }, { type: FlowRouterService }, { type: i1__namespace$1.QuoteDraftService }, { type: i1__namespace$1.ConfigurationService }, { type: i1__namespace$1.FlowConfigurationService }]; } });
1341
1341
 
1342
1342
  var FlowComponent = /** @class */ (function () {
1343
1343
  function FlowComponent(routerService, quoteDraftService, flowService, docGenService, integrationState) {
@@ -1361,8 +1361,8 @@
1361
1361
  };
1362
1362
  return FlowComponent;
1363
1363
  }());
1364
- FlowComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowComponent, deps: [{ token: FlowRouterService }, { token: i2__namespace$1.QuoteDraftService }, { token: FlowService }, { token: FlowDocGenService }, { token: i5__namespace.IntegrationState }], target: i0__namespace.ɵɵFactoryTarget.Component });
1365
- 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: i11__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1__namespace$1.RouterOutlet, selector: "router-outlet", outputs: ["activate", "deactivate"], exportAs: ["outlet"] }, { type: i3__namespace.LetDirective, selector: "[vlLet]", inputs: ["vlLet"] }], pipes: { "async": i11__namespace.AsyncPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
1364
+ 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 });
1365
+ 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 });
1366
1366
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowComponent, decorators: [{
1367
1367
  type: i0.Component,
1368
1368
  args: [{
@@ -1371,7 +1371,28 @@
1371
1371
  styleUrls: ['./flow.component.scss'],
1372
1372
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
1373
1373
  }]
1374
- }], ctorParameters: function () { return [{ type: FlowRouterService }, { type: i2__namespace$1.QuoteDraftService }, { type: FlowService }, { type: FlowDocGenService }, { type: i5__namespace.IntegrationState }]; } });
1374
+ }], ctorParameters: function () { return [{ type: FlowRouterService }, { type: i1__namespace$1.QuoteDraftService }, { type: FlowService }, { type: FlowDocGenService }, { type: i4__namespace.IntegrationState }]; } });
1375
+
1376
+ var getFlowObjectIdPropertyName = function (id) {
1377
+ var objectName = core.SalesforceIdUtils.getSfObjectNameById(id);
1378
+ switch (objectName) {
1379
+ case 'Account':
1380
+ return 'accountId';
1381
+ case 'Order':
1382
+ return 'orderId';
1383
+ case 'Quote':
1384
+ default:
1385
+ return 'quoteId';
1386
+ }
1387
+ };
1388
+ var getDefaultProperties = function (params) {
1389
+ var _a;
1390
+ var properties = {};
1391
+ if (((_a = params.flowParams) === null || _a === void 0 ? void 0 : _a.entryPath.includes('/product')) || params.mode === core.ConfigurationContextMode.REMOTE) {
1392
+ properties.standalone = 'true';
1393
+ }
1394
+ return properties;
1395
+ };
1375
1396
 
1376
1397
  var ContextGuard = /** @class */ (function () {
1377
1398
  function ContextGuard(router, routerService, contextService) {
@@ -1381,7 +1402,6 @@
1381
1402
  }
1382
1403
  ContextGuard.prototype.checkActivation = function (route) {
1383
1404
  var _this = this;
1384
- var _a, _b;
1385
1405
  var queryParams = route.queryParams;
1386
1406
  var accountId = queryParams.accountId, quoteId = queryParams.quoteId, orderId = queryParams.orderId;
1387
1407
  var rpcMessage = window.RPC_MESSAGE;
@@ -1390,8 +1410,7 @@
1390
1410
  if (mode == null) {
1391
1411
  return this.handleError(route, 'Mode is undefined');
1392
1412
  }
1393
- var rpcMessageId = rpcMessage && ((_b = (_a = JSON.parse(rpcMessage)) === null || _a === void 0 ? void 0 : _a.quote) === null || _b === void 0 ? void 0 : _b.Id);
1394
- var headerId = accountId || quoteId || orderId || rpcMessageId || 'empty-for-test-mode';
1413
+ var headerId = accountId || quoteId || orderId || this.rpcMessageId || 'empty-for-test-mode';
1395
1414
  // Allow if context is already initialized with the same headerId
1396
1415
  if (this.contextService.isInitialized) {
1397
1416
  var currentContext = this.contextService.resolve();
@@ -1402,7 +1421,7 @@
1402
1421
  // Initialize context
1403
1422
  return this.contextService.create(headerId, mode).pipe(rxjs.tap(function (context) {
1404
1423
  // Update context with queryParams
1405
- _this.contextService.update(Object.assign(Object.assign({}, context), { properties: Object.assign(Object.assign({}, context.properties), (queryParams !== null && queryParams !== void 0 ? queryParams : {})) }));
1424
+ _this.contextService.update(Object.assign(Object.assign({}, context), { properties: Object.assign(Object.assign(Object.assign({}, context.properties), (queryParams !== null && queryParams !== void 0 ? queryParams : {})), getDefaultProperties({ mode: mode })) }));
1406
1425
  }), rxjs.map(function () { return true; }), rxjs.catchError(function (e) {
1407
1426
  var message = e instanceof http.HttpErrorResponse ? e.error.message : e;
1408
1427
  return _this.handleError(route, message);
@@ -1414,6 +1433,20 @@
1414
1433
  ContextGuard.prototype.canActivateChild = function (childRoute) {
1415
1434
  return this.checkActivation(childRoute);
1416
1435
  };
1436
+ Object.defineProperty(ContextGuard.prototype, "rpcMessageId", {
1437
+ get: function () {
1438
+ var _a, _b;
1439
+ if (!window.RPC_MESSAGE) {
1440
+ return;
1441
+ }
1442
+ var rpcMessage = JSON.parse(window.RPC_MESSAGE);
1443
+ var veloceReferenceId = (_a = rpcMessage.configuration) === null || _a === void 0 ? void 0 : _a.VeloceReferenceId;
1444
+ var quoteId = (_b = rpcMessage.quote) === null || _b === void 0 ? void 0 : _b.Id;
1445
+ return veloceReferenceId || quoteId;
1446
+ },
1447
+ enumerable: false,
1448
+ configurable: true
1449
+ });
1417
1450
  ContextGuard.prototype.getConfigurationContextMode = function (accountId, quoteId, orderId, rpcMessage) {
1418
1451
  if (accountId) {
1419
1452
  return core.ConfigurationContextMode.ACCOUNT;
@@ -1436,11 +1469,11 @@
1436
1469
  };
1437
1470
  return ContextGuard;
1438
1471
  }());
1439
- ContextGuard.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ContextGuard, deps: [{ token: i1__namespace$1.Router }, { token: FlowRouterService }, { token: i2__namespace$1.ContextService }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
1472
+ 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 });
1440
1473
  ContextGuard.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ContextGuard });
1441
1474
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ContextGuard, decorators: [{
1442
1475
  type: i0.Injectable
1443
- }], ctorParameters: function () { return [{ type: i1__namespace$1.Router }, { type: FlowRouterService }, { type: i2__namespace$1.ContextService }]; } });
1476
+ }], ctorParameters: function () { return [{ type: i1__namespace$2.Router }, { type: FlowRouterService }, { type: i1__namespace$1.ContextService }]; } });
1444
1477
 
1445
1478
  var ProductUnloadGuard = /** @class */ (function () {
1446
1479
  function ProductUnloadGuard(router, contextService, quoteDraftService, configurationService, flowDialogService) {
@@ -1475,11 +1508,11 @@
1475
1508
  };
1476
1509
  return ProductUnloadGuard;
1477
1510
  }());
1478
- ProductUnloadGuard.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ProductUnloadGuard, deps: [{ token: i1__namespace$1.Router }, { token: i2__namespace$1.ContextService }, { token: i2__namespace$1.QuoteDraftService }, { token: i2__namespace$1.ConfigurationService }, { token: FlowDialogService }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
1511
+ 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 });
1479
1512
  ProductUnloadGuard.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ProductUnloadGuard });
1480
1513
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ProductUnloadGuard, decorators: [{
1481
1514
  type: i0.Injectable
1482
- }], ctorParameters: function () { return [{ type: i1__namespace$1.Router }, { type: i2__namespace$1.ContextService }, { type: i2__namespace$1.QuoteDraftService }, { type: i2__namespace$1.ConfigurationService }, { type: FlowDialogService }]; } });
1515
+ }], 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 }]; } });
1483
1516
 
1484
1517
  var RootGuard = /** @class */ (function () {
1485
1518
  function RootGuard(router, routerService) {
@@ -1513,12 +1546,12 @@
1513
1546
  };
1514
1547
  return RootGuard;
1515
1548
  }());
1516
- RootGuard.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: RootGuard, deps: [{ token: i1__namespace$1.Router }, { token: FlowRouterService }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
1549
+ 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 });
1517
1550
  RootGuard.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: RootGuard, providedIn: 'root' });
1518
1551
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: RootGuard, decorators: [{
1519
1552
  type: i0.Injectable,
1520
1553
  args: [{ providedIn: 'root' }]
1521
- }], ctorParameters: function () { return [{ type: i1__namespace$1.Router }, { type: FlowRouterService }]; } });
1554
+ }], ctorParameters: function () { return [{ type: i1__namespace$2.Router }, { type: FlowRouterService }]; } });
1522
1555
 
1523
1556
  var FLOW_CUSTOMIZATION = new i0.InjectionToken('FLOW_CUSTOMIZATION');
1524
1557
 
@@ -1615,8 +1648,8 @@
1615
1648
  };
1616
1649
  return CatalogComponent;
1617
1650
  }());
1618
- CatalogComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: CatalogComponent, deps: [{ token: i2__namespace$2.UITemplatesApiService }, { token: i2__namespace$1.ContextService }, { token: i0__namespace.ChangeDetectorRef }, { token: i3__namespace.ToastService }, { token: FLOW_CUSTOMIZATION, optional: true }], target: i0__namespace.ɵɵFactoryTarget.Component });
1619
- 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: i5__namespace.PreviewComponent, selector: "vl-cms-preview", inputs: ["modelId", "uiDefinition", "clearState"] }], directives: [{ type: i11__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i11__namespace.AsyncPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
1651
+ 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 });
1652
+ 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 });
1620
1653
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: CatalogComponent, decorators: [{
1621
1654
  type: i0.Component,
1622
1655
  args: [{
@@ -1626,7 +1659,7 @@
1626
1659
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
1627
1660
  }]
1628
1661
  }], ctorParameters: function () {
1629
- return [{ type: i2__namespace$2.UITemplatesApiService }, { type: i2__namespace$1.ContextService }, { type: i0__namespace.ChangeDetectorRef }, { type: i3__namespace.ToastService }, { type: undefined, decorators: [{
1662
+ return [{ type: i2__namespace$1.UITemplatesApiService }, { type: i1__namespace$1.ContextService }, { type: i0__namespace.ChangeDetectorRef }, { type: i3__namespace.ToastService }, { type: undefined, decorators: [{
1630
1663
  type: i0.Optional
1631
1664
  }, {
1632
1665
  type: i0.Inject,
@@ -1640,30 +1673,17 @@
1640
1673
  return CatalogModule;
1641
1674
  }());
1642
1675
  CatalogModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: CatalogModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
1643
- CatalogModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: CatalogModule, declarations: [CatalogComponent], imports: [i11.CommonModule, i5.PreviewModule, i3.LoaderModule], exports: [CatalogComponent] });
1644
- CatalogModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: CatalogModule, imports: [[i11.CommonModule, i5.PreviewModule, i3.LoaderModule]] });
1676
+ 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] });
1677
+ 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]] });
1645
1678
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: CatalogModule, decorators: [{
1646
1679
  type: i0.NgModule,
1647
1680
  args: [{
1648
1681
  declarations: [CatalogComponent],
1649
- imports: [i11.CommonModule, i5.PreviewModule, i3.LoaderModule],
1682
+ imports: [i5.CommonModule, i4.PreviewModule, i3.LoaderModule],
1650
1683
  exports: [CatalogComponent],
1651
1684
  }]
1652
1685
  }] });
1653
1686
 
1654
- var getFlowObjectIdPropertyName = function (id) {
1655
- var objectName = core.SalesforceIdUtils.getSfObjectNameById(id);
1656
- switch (objectName) {
1657
- case 'Account':
1658
- return 'accountId';
1659
- case 'Order':
1660
- return 'orderId';
1661
- case 'Quote':
1662
- default:
1663
- return 'quoteId';
1664
- }
1665
- };
1666
-
1667
1687
  var DebugComponent = /** @class */ (function () {
1668
1688
  function DebugComponent(flowsApiService, router, activatedRoute, context, quoteDraftService) {
1669
1689
  this.flowsApiService = flowsApiService;
@@ -1702,8 +1722,8 @@
1702
1722
  };
1703
1723
  return DebugComponent;
1704
1724
  }());
1705
- DebugComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: DebugComponent, deps: [{ token: i2__namespace$2.FlowsApiService }, { token: i1__namespace$1.Router }, { token: i1__namespace$1.ActivatedRoute }, { token: i2__namespace$1.ContextService }, { token: i2__namespace$1.QuoteDraftService }], target: i0__namespace.ɵɵFactoryTarget.Component });
1706
- 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: i11__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": i11__namespace.AsyncPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
1725
+ 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 });
1726
+ 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 });
1707
1727
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: DebugComponent, decorators: [{
1708
1728
  type: i0.Component,
1709
1729
  args: [{
@@ -1712,7 +1732,7 @@
1712
1732
  styleUrls: ['./debug.component.scss'],
1713
1733
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
1714
1734
  }]
1715
- }], ctorParameters: function () { return [{ type: i2__namespace$2.FlowsApiService }, { type: i1__namespace$1.Router }, { type: i1__namespace$1.ActivatedRoute }, { type: i2__namespace$1.ContextService }, { type: i2__namespace$1.QuoteDraftService }]; } });
1735
+ }], 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 }]; } });
1716
1736
 
1717
1737
  var routes$1 = [{ path: '', component: DebugComponent }];
1718
1738
  var DebugModule = /** @class */ (function () {
@@ -1721,17 +1741,17 @@
1721
1741
  return DebugModule;
1722
1742
  }());
1723
1743
  DebugModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: DebugModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
1724
- DebugModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: DebugModule, declarations: [DebugComponent], imports: [i11.CommonModule,
1744
+ DebugModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: DebugModule, declarations: [DebugComponent], imports: [i5.CommonModule,
1725
1745
  i6.FormsModule,
1726
- i6.ReactiveFormsModule, i1__namespace$1.RouterModule, i5$1.RadioButtonModule,
1746
+ i6.ReactiveFormsModule, i1__namespace$2.RouterModule, i5$1.RadioButtonModule,
1727
1747
  i2.ButtonModule,
1728
1748
  i7.InputTextModule,
1729
1749
  dropdown.DropdownModule] });
1730
1750
  DebugModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: DebugModule, imports: [[
1731
- i11.CommonModule,
1751
+ i5.CommonModule,
1732
1752
  i6.FormsModule,
1733
1753
  i6.ReactiveFormsModule,
1734
- i1$1.RouterModule.forChild(routes$1),
1754
+ i1$2.RouterModule.forChild(routes$1),
1735
1755
  i5$1.RadioButtonModule,
1736
1756
  i2.ButtonModule,
1737
1757
  i7.InputTextModule,
@@ -1742,10 +1762,10 @@
1742
1762
  args: [{
1743
1763
  declarations: [DebugComponent],
1744
1764
  imports: [
1745
- i11.CommonModule,
1765
+ i5.CommonModule,
1746
1766
  i6.FormsModule,
1747
1767
  i6.ReactiveFormsModule,
1748
- i1$1.RouterModule.forChild(routes$1),
1768
+ i1$2.RouterModule.forChild(routes$1),
1749
1769
  i5$1.RadioButtonModule,
1750
1770
  i2.ButtonModule,
1751
1771
  i7.InputTextModule,
@@ -1777,13 +1797,13 @@
1777
1797
  return EmptyAccountModule;
1778
1798
  }());
1779
1799
  EmptyAccountModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: EmptyAccountModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
1780
- EmptyAccountModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: EmptyAccountModule, declarations: [EmptyAccountComponent], imports: [i11.CommonModule, i5.PreviewModule, i3.LoaderModule, i3.EmptyStateModule], exports: [EmptyAccountComponent] });
1781
- EmptyAccountModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: EmptyAccountModule, imports: [[i11.CommonModule, i5.PreviewModule, i3.LoaderModule, i3.EmptyStateModule]] });
1800
+ 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] });
1801
+ 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]] });
1782
1802
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: EmptyAccountModule, decorators: [{
1783
1803
  type: i0.NgModule,
1784
1804
  args: [{
1785
1805
  declarations: [EmptyAccountComponent],
1786
- imports: [i11.CommonModule, i5.PreviewModule, i3.LoaderModule, i3.EmptyStateModule],
1806
+ imports: [i5.CommonModule, i4.PreviewModule, i3.LoaderModule, i3.EmptyStateModule],
1787
1807
  exports: [EmptyAccountComponent],
1788
1808
  }]
1789
1809
  }] });
@@ -1858,12 +1878,12 @@
1858
1878
  .find(function (id) { return id; });
1859
1879
  };
1860
1880
  LegacyProductComponent.prototype.configure = function (productId) {
1861
- var runtimeContext = this.getRuntimeContext(productId, '', i2$1.RuntimeOperation.INIT);
1881
+ var runtimeContext = this.getRuntimeContext(productId, '', i1$1.RuntimeOperation.INIT);
1862
1882
  this.startRuntime({}, runtimeContext);
1863
1883
  };
1864
1884
  LegacyProductComponent.prototype.reConfigure = function (lineItemId, currentState) {
1865
1885
  var currentStateItem = core.EntityUtil.findById(lineItemId, currentState);
1866
- var runtimeContext = this.getRuntimeContext(currentStateItem.productId, currentStateItem.offeringId, i2$1.RuntimeOperation.UPDATE);
1886
+ var runtimeContext = this.getRuntimeContext(currentStateItem.productId, currentStateItem.offeringId, i1$1.RuntimeOperation.UPDATE);
1867
1887
  var states = {
1868
1888
  configurableRamp: currentStateItem,
1869
1889
  currentState: currentState,
@@ -1893,14 +1913,14 @@
1893
1913
  LegacyProductComponent.prototype.getRuntimeContext = function (productId, offeringId, runtimeOperation) {
1894
1914
  var _this = this;
1895
1915
  return this.runtimeContextService.getRuntimeContext(productId, offeringId).pipe(operators.map(function (runtimeContext) {
1896
- runtimeContext.invocationContext = { runtimeOperation: i2$1.RuntimeOperation[runtimeOperation] };
1916
+ runtimeContext.invocationContext = { runtimeOperation: i1$1.RuntimeOperation[runtimeOperation] };
1897
1917
  return runtimeContext;
1898
1918
  }), operators.switchMap(function (runtimeContext) { return _this.customizeContext(productId, runtimeContext); }));
1899
1919
  };
1900
1920
  return LegacyProductComponent;
1901
1921
  }());
1902
- LegacyProductComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: LegacyProductComponent, deps: [{ token: i1__namespace$1.ActivatedRoute }, { token: i2__namespace$1.QuoteDraftService }, { token: i2__namespace$2.QuoteApiService }, { token: i2__namespace$1.ContextService }, { token: i4__namespace$1.RuntimeContextService }, { token: i4__namespace$1.RuntimeService }, { token: i4__namespace$1.CurrentStateService }, { token: FLOW_CUSTOMIZATION, optional: true }], target: i0__namespace.ɵɵFactoryTarget.Component });
1903
- 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$1.RuntimeComponent, selector: "vl-runtime", outputs: ["solutionUpdated"] }] });
1922
+ 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 });
1923
+ 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"] }] });
1904
1924
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: LegacyProductComponent, decorators: [{
1905
1925
  type: i0.Component,
1906
1926
  args: [{
@@ -1908,7 +1928,7 @@
1908
1928
  styleUrls: ['./legacy-product.component.scss'],
1909
1929
  }]
1910
1930
  }], ctorParameters: function () {
1911
- return [{ type: i1__namespace$1.ActivatedRoute }, { type: i2__namespace$1.QuoteDraftService }, { type: i2__namespace$2.QuoteApiService }, { type: i2__namespace$1.ContextService }, { type: i4__namespace$1.RuntimeContextService }, { type: i4__namespace$1.RuntimeService }, { type: i4__namespace$1.CurrentStateService }, { type: undefined, decorators: [{
1931
+ 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: [{
1912
1932
  type: i0.Optional
1913
1933
  }, {
1914
1934
  type: i0.Inject,
@@ -1922,13 +1942,13 @@
1922
1942
  return LegacyProductModule;
1923
1943
  }());
1924
1944
  LegacyProductModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: LegacyProductModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
1925
- LegacyProductModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: LegacyProductModule, declarations: [LegacyProductComponent], imports: [i11.CommonModule, i4$1.RuntimeModule, i1__namespace$2.TooltipModule], exports: [LegacyProductComponent] });
1926
- LegacyProductModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: LegacyProductModule, imports: [[i11.CommonModule, i4$1.RuntimeModule, i1$2.TooltipModule.forRoot()]] });
1945
+ 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] });
1946
+ 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()]] });
1927
1947
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: LegacyProductModule, decorators: [{
1928
1948
  type: i0.NgModule,
1929
1949
  args: [{
1930
1950
  declarations: [LegacyProductComponent],
1931
- imports: [i11.CommonModule, i4$1.RuntimeModule, i1$2.TooltipModule.forRoot()],
1951
+ imports: [i5.CommonModule, i4$2.RuntimeModule, i1$3.TooltipModule.forRoot()],
1932
1952
  exports: [LegacyProductComponent],
1933
1953
  }]
1934
1954
  }] });
@@ -2023,8 +2043,8 @@
2023
2043
  };
2024
2044
  return ProductComponent;
2025
2045
  }());
2026
- ProductComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ProductComponent, deps: [{ token: i2__namespace$1.ContextService }, { token: i2__namespace$1.ConfigurationRuntimeService }, { token: i2__namespace$1.ConfigurationService }, { token: i2__namespace$1.QuoteDraftService }, { token: i2__namespace$3.MessageService }, { token: FLOW_CUSTOMIZATION, optional: true }], target: i0__namespace.ɵɵFactoryTarget.Component });
2027
- 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: i5__namespace.PreviewComponent, selector: "vl-cms-preview", inputs: ["modelId", "uiDefinition", "clearState"] }], directives: [{ type: i11__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i11__namespace.AsyncPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
2046
+ 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 });
2047
+ 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 });
2028
2048
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ProductComponent, decorators: [{
2029
2049
  type: i0.Component,
2030
2050
  args: [{
@@ -2034,7 +2054,7 @@
2034
2054
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
2035
2055
  }]
2036
2056
  }], ctorParameters: function () {
2037
- return [{ type: i2__namespace$1.ContextService }, { type: i2__namespace$1.ConfigurationRuntimeService }, { type: i2__namespace$1.ConfigurationService }, { type: i2__namespace$1.QuoteDraftService }, { type: i2__namespace$3.MessageService }, { type: undefined, decorators: [{
2057
+ 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: [{
2038
2058
  type: i0.Optional
2039
2059
  }, {
2040
2060
  type: i0.Inject,
@@ -2048,13 +2068,13 @@
2048
2068
  return ProductModule;
2049
2069
  }());
2050
2070
  ProductModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ProductModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
2051
- ProductModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ProductModule, declarations: [ProductComponent], imports: [i11.CommonModule, i5.PreviewModule, i3.LoaderModule], exports: [ProductComponent] });
2052
- ProductModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ProductModule, imports: [[i11.CommonModule, i5.PreviewModule, i3.LoaderModule]] });
2071
+ 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] });
2072
+ 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]] });
2053
2073
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ProductModule, decorators: [{
2054
2074
  type: i0.NgModule,
2055
2075
  args: [{
2056
2076
  declarations: [ProductComponent],
2057
- imports: [i11.CommonModule, i5.PreviewModule, i3.LoaderModule],
2077
+ imports: [i5.CommonModule, i4.PreviewModule, i3.LoaderModule],
2058
2078
  exports: [ProductComponent],
2059
2079
  }]
2060
2080
  }] });
@@ -2073,8 +2093,8 @@
2073
2093
  }
2074
2094
  return RecordNotFoundComponent;
2075
2095
  }());
2076
- RecordNotFoundComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: RecordNotFoundComponent, deps: [{ token: i1__namespace$1.Router }, { token: i1__namespace$1.ActivatedRoute }], target: i0__namespace.ɵɵFactoryTarget.Component });
2077
- 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: i11__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
2096
+ 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 });
2097
+ 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 });
2078
2098
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: RecordNotFoundComponent, decorators: [{
2079
2099
  type: i0.Component,
2080
2100
  args: [{
@@ -2083,7 +2103,7 @@
2083
2103
  styleUrls: ['./record-not-found.component.scss'],
2084
2104
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
2085
2105
  }]
2086
- }], ctorParameters: function () { return [{ type: i1__namespace$1.Router }, { type: i1__namespace$1.ActivatedRoute }]; } });
2106
+ }], ctorParameters: function () { return [{ type: i1__namespace$2.Router }, { type: i1__namespace$2.ActivatedRoute }]; } });
2087
2107
 
2088
2108
  var routes = [{ path: '', component: RecordNotFoundComponent }];
2089
2109
  var RecordNotFoundModule = /** @class */ (function () {
@@ -2092,13 +2112,430 @@
2092
2112
  return RecordNotFoundModule;
2093
2113
  }());
2094
2114
  RecordNotFoundModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: RecordNotFoundModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
2095
- RecordNotFoundModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: RecordNotFoundModule, declarations: [RecordNotFoundComponent], imports: [i11.CommonModule, i1__namespace$1.RouterModule] });
2096
- RecordNotFoundModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: RecordNotFoundModule, imports: [[i11.CommonModule, i1$1.RouterModule.forChild(routes)]] });
2115
+ 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] });
2116
+ 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)]] });
2097
2117
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: RecordNotFoundModule, decorators: [{
2098
2118
  type: i0.NgModule,
2099
2119
  args: [{
2100
2120
  declarations: [RecordNotFoundComponent],
2101
- imports: [i11.CommonModule, i1$1.RouterModule.forChild(routes)],
2121
+ imports: [i5.CommonModule, i1$2.RouterModule.forChild(routes)],
2122
+ }]
2123
+ }] });
2124
+
2125
+ var RemoteComponent = /** @class */ (function () {
2126
+ function RemoteComponent(contextService, quoteDraftService, quoteApiService, runtimeService, configurationService, messageService, integrationState, location) {
2127
+ this.contextService = contextService;
2128
+ this.quoteDraftService = quoteDraftService;
2129
+ this.quoteApiService = quoteApiService;
2130
+ this.runtimeService = runtimeService;
2131
+ this.configurationService = configurationService;
2132
+ this.messageService = messageService;
2133
+ this.integrationState = integrationState;
2134
+ this.location = location;
2135
+ this.state$ = new rxjs.BehaviorSubject({ loading: true, failure: false });
2136
+ this.DYNAMIC_OPTION_PRODUCTS_KEY = 'Dynamic';
2137
+ this.destroyed$ = new rxjs.Subject();
2138
+ this.rpcMessage = JSON.parse(window.RPC_MESSAGE);
2139
+ this.rpcMessage.options.sort(function (a, b) { var _a, _b; return ((_a = a.featureNumber) !== null && _a !== void 0 ? _a : 99999) - ((_b = b.featureNumber) !== null && _b !== void 0 ? _b : 99999); });
2140
+ this.updateHasChildrenFlag(this.rpcMessage.product.configuredProductId);
2141
+ // update context properties
2142
+ if (this.rpcMessage.quote) {
2143
+ var properties_1 = {};
2144
+ if (this.rpcMessage.quote.SBQQ__Opportunity2__c) {
2145
+ properties_1.OpportunityId = this.rpcMessage.quote.SBQQ__Opportunity2__c;
2146
+ }
2147
+ Object.entries(this.rpcMessage.quote).forEach(function (_f) {
2148
+ var _g = __read(_f, 2), key = _g[0], value = _g[1];
2149
+ if (value !== undefined && !(value instanceof Object)) {
2150
+ properties_1[key] = value;
2151
+ }
2152
+ });
2153
+ this.contextService.update({ properties: properties_1 });
2154
+ }
2155
+ this.initSubscriptions();
2156
+ this.initConfiguration();
2157
+ }
2158
+ RemoteComponent.prototype.ngOnDestroy = function () {
2159
+ this.destroyed$.next();
2160
+ this.destroyed$.complete();
2161
+ };
2162
+ RemoteComponent.prototype.initConfiguration = function () {
2163
+ var _this = this;
2164
+ var productId = this.rpcMessage.product.configuredProductId;
2165
+ var quote = this.quoteDraftService.quoteDraft;
2166
+ if (!productId || !quote) {
2167
+ return;
2168
+ }
2169
+ this.runtimeService
2170
+ .init({ productId: productId })
2171
+ .pipe(rxjs.first(), rxjs.tap(function (context) {
2172
+ var _a, _b, _c, _d, _e;
2173
+ var pricingEnabled = ((_b = (_a = context === null || context === void 0 ? void 0 : context.uiDefinition) === null || _a === void 0 ? void 0 : _a.properties) === null || _b === void 0 ? void 0 : _b.pricingEnabled) ? 'true' : 'false';
2174
+ var priceListId = (_d = (_c = context === null || context === void 0 ? void 0 : context.uiDefinition) === null || _c === void 0 ? void 0 : _c.properties) === null || _d === void 0 ? void 0 : _d.priceList;
2175
+ var runtimeContextProperties = (_e = _this.runtimeService.runtimeContext) === null || _e === void 0 ? void 0 : _e.properties;
2176
+ if (runtimeContextProperties) {
2177
+ runtimeContextProperties.PriceListId = priceListId;
2178
+ runtimeContextProperties.PricingEnabled = pricingEnabled;
2179
+ }
2180
+ _this.contextService.update({
2181
+ properties: {
2182
+ ModelId: context === null || context === void 0 ? void 0 : context.modelId,
2183
+ RuntimeMode: 'TEST',
2184
+ PricingEnabled: pricingEnabled,
2185
+ PriceListId: priceListId,
2186
+ },
2187
+ });
2188
+ _this.uiDefinition = context === null || context === void 0 ? void 0 : context.uiDefinition;
2189
+ _this.configurationService.updateCurrentStates({
2190
+ configurableRamp: _this.createLineItem(),
2191
+ currentState: quote.currentState,
2192
+ });
2193
+ }), this.throwIfNoUIDefinition(), rxjs.switchMap(function () { return _this.configurationService.configure(); }), rxjs.tap(function () { return _this.state$.next({ loading: false, failure: false }); }), rxjs.catchError(function (error) {
2194
+ var _a, _b;
2195
+ if (!((_b = (_a = _this.uiDefinition) === null || _a === void 0 ? void 0 : _a.properties) === null || _b === void 0 ? void 0 : _b.suppressToastMessages)) {
2196
+ _this.messageService.add({ severity: 'error', summary: error });
2197
+ }
2198
+ _this.state$.next({ loading: false, failure: true });
2199
+ return rxjs.of();
2200
+ }), rxjs.takeUntil(this.destroyed$))
2201
+ .subscribe();
2202
+ };
2203
+ RemoteComponent.prototype.throwIfNoUIDefinition = function () {
2204
+ var _this = this;
2205
+ return function (source$) {
2206
+ return source$.pipe(rxjs.switchMap(function () {
2207
+ if (!_this.uiDefinition) {
2208
+ return rxjs.throwError(function () { return 'Product does not have Configuration UI'; });
2209
+ }
2210
+ return source$;
2211
+ }));
2212
+ };
2213
+ };
2214
+ RemoteComponent.prototype.initSubscriptions = function () {
2215
+ var _this = this;
2216
+ this.integrationState
2217
+ .listen$(i4.FlowAction.REMOTE_CANCEL)
2218
+ .pipe(rxjs.tap(function () { return _this.location.back(); }), rxjs.takeUntil(this.destroyed$))
2219
+ .subscribe();
2220
+ this.integrationState
2221
+ .listen$(i4.FlowAction.REMOTE_APPLY)
2222
+ .pipe(rxjs.tap(function () { return _this.saveRpcMessage(); }), rxjs.takeUntil(this.destroyed$))
2223
+ .subscribe();
2224
+ };
2225
+ RemoteComponent.prototype.createLineItem = function () {
2226
+ var _a, _b;
2227
+ var _f = __read((_b = (_a = this.quoteDraftService.quoteDraft) === null || _a === void 0 ? void 0 : _a.currentState) !== null && _b !== void 0 ? _b : [], 1), quoteDraftLineItem = _f[0];
2228
+ if (quoteDraftLineItem && (quoteDraftLineItem.attributes.length > 0 || quoteDraftLineItem.lineItems.length > 0)) {
2229
+ return quoteDraftLineItem;
2230
+ }
2231
+ var lineItem = this.createRootLineItem();
2232
+ var dynamicOptionProducts = this.rpcMessage.product.optionConfigurations[this.DYNAMIC_OPTION_PRODUCTS_KEY];
2233
+ if (dynamicOptionProducts) {
2234
+ var options = this.toParentChildMap(dynamicOptionProducts);
2235
+ var items = [lineItem];
2236
+ for (var i = 0; i < items.length; i++) {
2237
+ var item = items[i];
2238
+ var children = options.get(item.id);
2239
+ if (children) {
2240
+ item.lineItems = children;
2241
+ items = items.concat(children);
2242
+ }
2243
+ }
2244
+ }
2245
+ return lineItem;
2246
+ };
2247
+ RemoteComponent.prototype.createRootLineItem = function () {
2248
+ var _a, _b, _c, _d;
2249
+ var product = this.rpcMessage.product;
2250
+ var runtimeContext = this.runtimeService.runtimeContext;
2251
+ var veloceInstanceId = product.configurationAttributes.VeloceInstanceId__c;
2252
+ var quoteId = (_b = (_a = this.quoteDraftService.quoteDraft) === null || _a === void 0 ? void 0 : _a.currentState[0]) === null || _b === void 0 ? void 0 : _b.id;
2253
+ return {
2254
+ id: quoteId || veloceInstanceId || core.UUID.UUID(),
2255
+ type: (_c = runtimeContext.productType) !== null && _c !== void 0 ? _c : '',
2256
+ name: ((_d = runtimeContext.properties) === null || _d === void 0 ? void 0 : _d.displayName) || runtimeContext.productName,
2257
+ productName: runtimeContext.productName,
2258
+ productId: runtimeContext.productId,
2259
+ cfgStatus: 'Default',
2260
+ actionCode: 'ADD',
2261
+ qty: 1,
2262
+ };
2263
+ };
2264
+ RemoteComponent.prototype.toParentChildMap = function (remoteOptionProducts) {
2265
+ var e_1, _f;
2266
+ var _a;
2267
+ var result = new Map();
2268
+ try {
2269
+ for (var remoteOptionProducts_1 = __values(remoteOptionProducts), remoteOptionProducts_1_1 = remoteOptionProducts_1.next(); !remoteOptionProducts_1_1.done; remoteOptionProducts_1_1 = remoteOptionProducts_1.next()) {
2270
+ var option = remoteOptionProducts_1_1.value;
2271
+ var configurationData = (_a = option === null || option === void 0 ? void 0 : option.readOnly) === null || _a === void 0 ? void 0 : _a.line;
2272
+ var id = configurationData === null || configurationData === void 0 ? void 0 : configurationData.VeloceInstanceId__c;
2273
+ var parentId = configurationData === null || configurationData === void 0 ? void 0 : configurationData.VeloceParentInstanceId__c;
2274
+ if (!option.selected || !configurationData || !id || !parentId) {
2275
+ continue;
2276
+ }
2277
+ var productId = option.productId;
2278
+ var lineItem = {
2279
+ id: id,
2280
+ productId: productId,
2281
+ parentId: parentId,
2282
+ type: configurationData.ModelType__c,
2283
+ port: configurationData.ModelPort__c,
2284
+ cfgStatus: configurationData.ConfigurationStatus__c,
2285
+ actionCode: configurationData.ActionCode__c,
2286
+ qty: option.Quantity,
2287
+ };
2288
+ var siblings = result.get(productId);
2289
+ if (!siblings) {
2290
+ result.set(parentId, (siblings = []));
2291
+ }
2292
+ siblings.push(lineItem);
2293
+ }
2294
+ }
2295
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
2296
+ finally {
2297
+ try {
2298
+ if (remoteOptionProducts_1_1 && !remoteOptionProducts_1_1.done && (_f = remoteOptionProducts_1.return)) _f.call(remoteOptionProducts_1);
2299
+ }
2300
+ finally { if (e_1) throw e_1.error; }
2301
+ }
2302
+ return result;
2303
+ };
2304
+ RemoteComponent.prototype.saveRpcMessage = function () {
2305
+ var _this = this;
2306
+ var _a;
2307
+ var quote = this.quoteDraftService.quoteDraft;
2308
+ var lineItem = this.configurationService.getSnapshot();
2309
+ if (!quote || !lineItem) {
2310
+ return;
2311
+ }
2312
+ this.rpcMessage.VeloceReferenceId = quote.quoteId;
2313
+ this.rpcMessage.product.configurationData.VeloceInstanceId__c = lineItem.id;
2314
+ var childItems = this.flattenChildLineItems(lineItem);
2315
+ var savingMode = window.SavingMode;
2316
+ this.updateContentData(this.rpcMessage.product, lineItem);
2317
+ this.rpcMessage.quote = this.mapAttributesTo('Quote', lineItem);
2318
+ if (savingMode === 'ALL') {
2319
+ var optionConfigurations_1 = this.getOptionConfigurations(this.rpcMessage.product);
2320
+ var rootProductOptions_1 = this.rpcMessage.options.filter(function (po) { return po.configuredProductId === lineItem.productId; });
2321
+ childItems.forEach(function (lineItem) {
2322
+ var _a, _b, _c;
2323
+ var rootOption = rootProductOptions_1.find(function (po) { return po.optionalProductId === lineItem.productId; });
2324
+ if (rootOption) {
2325
+ var featureOptions = (_a = optionConfigurations_1[rootOption.featureName]) !== null && _a !== void 0 ? _a : (optionConfigurations_1[rootOption.featureName] = []);
2326
+ var originOption = !rootOption.hasChildren
2327
+ ? optionConfigurations_1[rootOption.featureName].find(function (_f) {
2328
+ var optionId = _f.optionId;
2329
+ return optionId === rootOption.optionId;
2330
+ })
2331
+ : undefined;
2332
+ var option = originOption !== null && originOption !== void 0 ? originOption : {};
2333
+ option.optionId = (_b = option.optionId) !== null && _b !== void 0 ? _b : rootOption.optionId;
2334
+ _this.updateContentData(option, lineItem);
2335
+ option.index = (_c = option.index) !== null && _c !== void 0 ? _c : featureOptions.length;
2336
+ option.selected = true;
2337
+ if (!originOption) {
2338
+ featureOptions.push(option);
2339
+ }
2340
+ if (lineItem.parentLineItem) {
2341
+ var nestedProductOption = _this.rpcMessage.options.find(function (po) {
2342
+ var _a;
2343
+ return po.configuredProductId === ((_a = lineItem.parentLineItem) === null || _a === void 0 ? void 0 : _a.productId) &&
2344
+ po.optionalProductId === lineItem.productId;
2345
+ });
2346
+ if (nestedProductOption) {
2347
+ option.configurationData = Object.assign(Object.assign({}, option.configurationData), { VeloceParentInstanceId__c: lineItem.parentLineItem.id, VeloceNestedOptionId__c: nestedProductOption.optionId, VeloceNestedFeatureId__c: nestedProductOption.featureId });
2348
+ }
2349
+ }
2350
+ }
2351
+ else {
2352
+ _this.rpcMessage.dynamicFeatures.forEach(function (feature) {
2353
+ var _a, _b;
2354
+ var featureOptions = (_a = optionConfigurations_1[feature.name]) !== null && _a !== void 0 ? _a : (optionConfigurations_1[feature.name] = []);
2355
+ var originOption = featureOptions.find(function (_f) {
2356
+ var productId = _f.productId;
2357
+ return productId === lineItem.productId;
2358
+ });
2359
+ var option = originOption !== null && originOption !== void 0 ? originOption : {};
2360
+ _this.updateContentData(option, lineItem);
2361
+ option.index = (_b = option.index) !== null && _b !== void 0 ? _b : featureOptions.length;
2362
+ option.selected = true;
2363
+ if (!originOption) {
2364
+ featureOptions.push(option);
2365
+ }
2366
+ });
2367
+ }
2368
+ });
2369
+ this.rpcMessage.product = Object.assign(Object.assign({}, this.rpcMessage.product), { optionConfigurations: optionConfigurations_1 });
2370
+ }
2371
+ (_a = window.RPC_BROADCAST) === null || _a === void 0 ? void 0 : _a.apply(null, [this.rpcMessage]);
2372
+ };
2373
+ RemoteComponent.prototype.updateHasChildrenFlag = function (bundleProductId) {
2374
+ var e_2, _f, e_3, _g;
2375
+ var bundleOptionsByOptionId = {};
2376
+ var notBundleOptions = [];
2377
+ try {
2378
+ for (var _h = __values(this.rpcMessage.options), _j = _h.next(); !_j.done; _j = _h.next()) {
2379
+ var productOption = _j.value;
2380
+ if (productOption.configuredProductId === bundleProductId) {
2381
+ bundleOptionsByOptionId[productOption.optionalProductId] = productOption;
2382
+ }
2383
+ else {
2384
+ notBundleOptions.push(productOption);
2385
+ }
2386
+ }
2387
+ }
2388
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
2389
+ finally {
2390
+ try {
2391
+ if (_j && !_j.done && (_f = _h.return)) _f.call(_h);
2392
+ }
2393
+ finally { if (e_2) throw e_2.error; }
2394
+ }
2395
+ try {
2396
+ for (var notBundleOptions_1 = __values(notBundleOptions), notBundleOptions_1_1 = notBundleOptions_1.next(); !notBundleOptions_1_1.done; notBundleOptions_1_1 = notBundleOptions_1.next()) {
2397
+ var option = notBundleOptions_1_1.value;
2398
+ if (bundleOptionsByOptionId[option.configuredProductId]) {
2399
+ bundleOptionsByOptionId[option.configuredProductId].hasChildren = true;
2400
+ }
2401
+ }
2402
+ }
2403
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
2404
+ finally {
2405
+ try {
2406
+ if (notBundleOptions_1_1 && !notBundleOptions_1_1.done && (_g = notBundleOptions_1.return)) _g.call(notBundleOptions_1);
2407
+ }
2408
+ finally { if (e_3) throw e_3.error; }
2409
+ }
2410
+ };
2411
+ RemoteComponent.prototype.flattenChildLineItems = function (lineItem) {
2412
+ var _a;
2413
+ var items = (_a = lineItem.lineItems) !== null && _a !== void 0 ? _a : [];
2414
+ var _loop_1 = function (i) {
2415
+ var item = items[i];
2416
+ if (item.lineItems) {
2417
+ items = items.concat(item.lineItems.map(function (li) { return (Object.assign(Object.assign({}, li), { parentLineItem: item })); }));
2418
+ }
2419
+ };
2420
+ for (var i = 0; i < items.length; i++) {
2421
+ _loop_1(i);
2422
+ }
2423
+ return items;
2424
+ };
2425
+ RemoteComponent.prototype.updateContentData = function (entity, lineItem) {
2426
+ var _a, _b;
2427
+ if (lineItem.productId) {
2428
+ entity.productId = lineItem.productId;
2429
+ }
2430
+ var quantityAttribute = lineItem.properties.quantityAttribute;
2431
+ entity.Quantity = quantityAttribute
2432
+ ? (_b = (_a = lineItem.attributes.find(function (attribute) { return attribute.name === quantityAttribute; })) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : 1
2433
+ : lineItem.qty;
2434
+ var totalPrice = this.computeNetPrice(lineItem);
2435
+ var targetTotalPriceField = lineItem.properties.TargetTotalPriceField || 'TotalPrice__c';
2436
+ entity.configurationData[targetTotalPriceField] = entity.configurationData[targetTotalPriceField]
2437
+ ? entity.configurationData[targetTotalPriceField] + totalPrice
2438
+ : totalPrice;
2439
+ var targetPriceField = lineItem.properties.TargetPriceField || 'SBQQ__ListPrice__c';
2440
+ var price = entity.Quantity != null ? entity.configurationData[targetTotalPriceField] / entity.Quantity || 0 : 0;
2441
+ var targetPriceValue = Number(entity.configurationData[targetPriceField]) || 0;
2442
+ entity.configurationData[targetPriceField] = targetPriceValue
2443
+ ? (targetPriceValue + price).toFixed(2)
2444
+ : price.toFixed(2);
2445
+ entity.configurationAttributes = this.mapAttributesTo('Attribute', lineItem);
2446
+ entity.configurationData = Object.assign(Object.assign(Object.assign(Object.assign({}, entity.configurationData), this.mapAttributesTo('Field', lineItem)), this.mapAttributesTo('', lineItem)), { VeloceInstanceId__c: lineItem.id });
2447
+ };
2448
+ RemoteComponent.prototype.computeNetPrice = function (lineItem) {
2449
+ if (lineItem.properties.GroupCharges) {
2450
+ return this.sumNetPrice(lineItem.chargeGroupItems, this.getChargeNameSet(lineItem.properties.GroupCharges));
2451
+ }
2452
+ return this.sumNetPrice(lineItem.chargeItems, this.getChargeNameSet(lineItem.properties.Charges));
2453
+ };
2454
+ RemoteComponent.prototype.getChargeNameSet = function (property) {
2455
+ if (property && property.length > 0) {
2456
+ return new Set(property.split(','));
2457
+ }
2458
+ return new Set();
2459
+ };
2460
+ RemoteComponent.prototype.sumNetPrice = function (chargeItems, charges) {
2461
+ var e_4, _f;
2462
+ var _a;
2463
+ var netPrice = 0;
2464
+ try {
2465
+ for (var chargeItems_1 = __values(chargeItems), chargeItems_1_1 = chargeItems_1.next(); !chargeItems_1_1.done; chargeItems_1_1 = chargeItems_1.next()) {
2466
+ var chargeItem = chargeItems_1_1.value;
2467
+ if (!charges || charges.has(chargeItem.chargeType)) {
2468
+ netPrice += (_a = chargeItem.netPrice) !== null && _a !== void 0 ? _a : 0;
2469
+ }
2470
+ }
2471
+ }
2472
+ catch (e_4_1) { e_4 = { error: e_4_1 }; }
2473
+ finally {
2474
+ try {
2475
+ if (chargeItems_1_1 && !chargeItems_1_1.done && (_f = chargeItems_1.return)) _f.call(chargeItems_1);
2476
+ }
2477
+ finally { if (e_4) throw e_4.error; }
2478
+ }
2479
+ return netPrice;
2480
+ };
2481
+ RemoteComponent.prototype.mapAttributesTo = function (target, lineItem) {
2482
+ var _a;
2483
+ var result = {};
2484
+ var component = (_a = this.runtimeService.runtimeModel) === null || _a === void 0 ? void 0 : _a.components.get(lineItem.type);
2485
+ if (!component) {
2486
+ return result;
2487
+ }
2488
+ var propertyName = 'mapTo' + target;
2489
+ component.attributes
2490
+ .filter(function (a) { return a.properties && a.properties[propertyName]; })
2491
+ .forEach(function (mapping) {
2492
+ var attribute = lineItem.attributes.find(function (a) { return a.name === mapping.name; });
2493
+ if (attribute) {
2494
+ new Set(mapping.properties[propertyName].split(',')).forEach(function (k) { return (result[k] = attribute.value); });
2495
+ }
2496
+ });
2497
+ return result;
2498
+ };
2499
+ RemoteComponent.prototype.getOptionConfigurations = function (product) {
2500
+ var _a;
2501
+ var optionConfigurations = {};
2502
+ var requestOptionConfigurations = (_a = product.optionConfigurations) !== null && _a !== void 0 ? _a : {};
2503
+ Object.keys(requestOptionConfigurations).forEach(function (k) {
2504
+ var _a;
2505
+ optionConfigurations[k] = ((_a = requestOptionConfigurations[k]) !== null && _a !== void 0 ? _a : []).map(function (opt) {
2506
+ return Object.assign(Object.assign({}, opt), { selected: false });
2507
+ });
2508
+ });
2509
+ return optionConfigurations;
2510
+ };
2511
+ return RemoteComponent;
2512
+ }());
2513
+ 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 });
2514
+ 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 });
2515
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: RemoteComponent, decorators: [{
2516
+ type: i0.Component,
2517
+ args: [{
2518
+ selector: 'vl-flow-remote',
2519
+ templateUrl: './remote.component.html',
2520
+ styleUrls: ['./remote.component.scss'],
2521
+ changeDetection: i0.ChangeDetectionStrategy.OnPush,
2522
+ }]
2523
+ }], 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 }]; } });
2524
+
2525
+ var RemoteModule = /** @class */ (function () {
2526
+ function RemoteModule() {
2527
+ }
2528
+ return RemoteModule;
2529
+ }());
2530
+ RemoteModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: RemoteModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
2531
+ 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] });
2532
+ 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]] });
2533
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: RemoteModule, decorators: [{
2534
+ type: i0.NgModule,
2535
+ args: [{
2536
+ declarations: [RemoteComponent],
2537
+ imports: [i5.CommonModule, i4.PreviewModule, i3.LoaderModule],
2538
+ exports: [RemoteComponent],
2102
2539
  }]
2103
2540
  }] });
2104
2541
 
@@ -2195,8 +2632,8 @@
2195
2632
  };
2196
2633
  return ShoppingCartComponent;
2197
2634
  }());
2198
- ShoppingCartComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ShoppingCartComponent, deps: [{ token: i2__namespace$2.UITemplatesApiService }, { token: i2__namespace$1.ContextService }, { token: i0__namespace.ChangeDetectorRef }, { token: i3__namespace.ToastService }, { token: FLOW_CUSTOMIZATION, optional: true }], target: i0__namespace.ɵɵFactoryTarget.Component });
2199
- 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: i5__namespace.PreviewComponent, selector: "vl-cms-preview", inputs: ["modelId", "uiDefinition", "clearState"] }], directives: [{ type: i11__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i11__namespace.AsyncPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
2635
+ 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 });
2636
+ 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 });
2200
2637
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ShoppingCartComponent, decorators: [{
2201
2638
  type: i0.Component,
2202
2639
  args: [{
@@ -2206,7 +2643,7 @@
2206
2643
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
2207
2644
  }]
2208
2645
  }], ctorParameters: function () {
2209
- return [{ type: i2__namespace$2.UITemplatesApiService }, { type: i2__namespace$1.ContextService }, { type: i0__namespace.ChangeDetectorRef }, { type: i3__namespace.ToastService }, { type: undefined, decorators: [{
2646
+ return [{ type: i2__namespace$1.UITemplatesApiService }, { type: i1__namespace$1.ContextService }, { type: i0__namespace.ChangeDetectorRef }, { type: i3__namespace.ToastService }, { type: undefined, decorators: [{
2210
2647
  type: i0.Optional
2211
2648
  }, {
2212
2649
  type: i0.Inject,
@@ -2220,13 +2657,13 @@
2220
2657
  return ShoppingCartModule;
2221
2658
  }());
2222
2659
  ShoppingCartModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ShoppingCartModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
2223
- ShoppingCartModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ShoppingCartModule, declarations: [ShoppingCartComponent], imports: [i11.CommonModule, i5.PreviewModule, i3.LoaderModule], exports: [ShoppingCartComponent] });
2224
- ShoppingCartModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ShoppingCartModule, imports: [[i11.CommonModule, i5.PreviewModule, i3.LoaderModule]] });
2660
+ 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] });
2661
+ 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]] });
2225
2662
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ShoppingCartModule, decorators: [{
2226
2663
  type: i0.NgModule,
2227
2664
  args: [{
2228
2665
  declarations: [ShoppingCartComponent],
2229
- imports: [i11.CommonModule, i5.PreviewModule, i3.LoaderModule],
2666
+ imports: [i5.CommonModule, i4.PreviewModule, i3.LoaderModule],
2230
2667
  exports: [ShoppingCartComponent],
2231
2668
  }]
2232
2669
  }] });
@@ -2260,8 +2697,7 @@
2260
2697
  }
2261
2698
  var properties = flow.properties;
2262
2699
  var flowQueryParams = properties.queryParams, entryPath = properties.entryPath;
2263
- var isProductFlow = entryPath.includes('/product');
2264
- var mergedParams = Object.assign(Object.assign(Object.assign({}, queryParams), flowQueryParams), Object.assign({}, (isProductFlow && { standalone: true })));
2700
+ var mergedParams = Object.assign(Object.assign(Object.assign({}, queryParams), flowQueryParams), getDefaultProperties({ flowParams: properties }));
2265
2701
  var contextProperties = Object.entries(mergedParams).reduce(function (trunk, _a) {
2266
2702
  var _b;
2267
2703
  var _c = __read(_a, 2), key = _c[0], value = _c[1];
@@ -2285,11 +2721,11 @@
2285
2721
  };
2286
2722
  return FlowResolver;
2287
2723
  }());
2288
- FlowResolver.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowResolver, deps: [{ token: i1__namespace$1.Router }, { token: i2__namespace$2.FlowsApiService }, { token: FlowRouterService }, { token: i2__namespace$1.ContextService }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
2724
+ 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 });
2289
2725
  FlowResolver.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowResolver });
2290
2726
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowResolver, decorators: [{
2291
2727
  type: i0.Injectable
2292
- }], ctorParameters: function () { return [{ type: i1__namespace$1.Router }, { type: i2__namespace$2.FlowsApiService }, { type: FlowRouterService }, { type: i2__namespace$1.ContextService }]; } });
2728
+ }], ctorParameters: function () { return [{ type: i1__namespace$2.Router }, { type: i2__namespace$1.FlowsApiService }, { type: FlowRouterService }, { type: i1__namespace$1.ContextService }]; } });
2293
2729
 
2294
2730
  var QuoteResolver = /** @class */ (function () {
2295
2731
  function QuoteResolver(router, quoteDraftService, routerService, contextService, flowConfiguration) {
@@ -2354,11 +2790,11 @@
2354
2790
  };
2355
2791
  return QuoteResolver;
2356
2792
  }());
2357
- QuoteResolver.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: QuoteResolver, deps: [{ token: i1__namespace$1.Router }, { token: i2__namespace$1.QuoteDraftService }, { token: FlowRouterService }, { token: i2__namespace$1.ContextService }, { token: i2__namespace$1.FlowConfigurationService }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
2793
+ 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 });
2358
2794
  QuoteResolver.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: QuoteResolver });
2359
2795
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: QuoteResolver, decorators: [{
2360
2796
  type: i0.Injectable
2361
- }], ctorParameters: function () { return [{ type: i1__namespace$1.Router }, { type: i2__namespace$1.QuoteDraftService }, { type: FlowRouterService }, { type: i2__namespace$1.ContextService }, { type: i2__namespace$1.FlowConfigurationService }]; } });
2797
+ }], 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 }]; } });
2362
2798
 
2363
2799
  var rootRoute = {
2364
2800
  id: VELOCE_FLOW_ROOT_ROUTE,
@@ -2419,6 +2855,13 @@
2419
2855
  canActivate: [ContextGuard],
2420
2856
  data: { showHeader: true },
2421
2857
  },
2858
+ {
2859
+ path: 'remote',
2860
+ component: RemoteComponent,
2861
+ runGuardsAndResolvers: 'paramsOrQueryParamsChange',
2862
+ resolve: { quote: QuoteResolver },
2863
+ canActivate: [ContextGuard],
2864
+ },
2422
2865
  {
2423
2866
  path: 'debug',
2424
2867
  loadChildren: function () { return DebugModule; },
@@ -2435,31 +2878,34 @@
2435
2878
  return FlowRoutingModule;
2436
2879
  }());
2437
2880
  FlowRoutingModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowRoutingModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
2438
- FlowRoutingModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowRoutingModule, imports: [i1__namespace$1.RouterModule, ProductModule,
2881
+ FlowRoutingModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowRoutingModule, imports: [i1__namespace$2.RouterModule, ProductModule,
2439
2882
  LegacyProductModule,
2440
2883
  ShoppingCartModule,
2441
2884
  CatalogModule,
2442
- EmptyAccountModule], exports: [i1$1.RouterModule] });
2885
+ RemoteModule,
2886
+ EmptyAccountModule], exports: [i1$2.RouterModule] });
2443
2887
  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: [[
2444
- i1$1.RouterModule.forChild([rootRoute]),
2888
+ i1$2.RouterModule.forChild([rootRoute]),
2445
2889
  ProductModule,
2446
2890
  LegacyProductModule,
2447
2891
  ShoppingCartModule,
2448
2892
  CatalogModule,
2893
+ RemoteModule,
2449
2894
  EmptyAccountModule,
2450
- ], i1$1.RouterModule] });
2895
+ ], i1$2.RouterModule] });
2451
2896
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowRoutingModule, decorators: [{
2452
2897
  type: i0.NgModule,
2453
2898
  args: [{
2454
2899
  imports: [
2455
- i1$1.RouterModule.forChild([rootRoute]),
2900
+ i1$2.RouterModule.forChild([rootRoute]),
2456
2901
  ProductModule,
2457
2902
  LegacyProductModule,
2458
2903
  ShoppingCartModule,
2459
2904
  CatalogModule,
2905
+ RemoteModule,
2460
2906
  EmptyAccountModule,
2461
2907
  ],
2462
- exports: [i1$1.RouterModule],
2908
+ exports: [i1$2.RouterModule],
2463
2909
  providers: [FlowRouterService, RootGuard, ContextGuard, ProductUnloadGuard, FlowResolver, QuoteResolver],
2464
2910
  }]
2465
2911
  }] });
@@ -2470,25 +2916,25 @@
2470
2916
  return FlowModule;
2471
2917
  }());
2472
2918
  FlowModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
2473
- FlowModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowModule, declarations: [FlowComponent], imports: [i11.CommonModule,
2919
+ FlowModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowModule, declarations: [FlowComponent], imports: [i5.CommonModule,
2474
2920
  FlowRoutingModule,
2475
- i2$2.ApiModule,
2476
- i5.LauncherModule,
2921
+ i2$1.ApiModule,
2922
+ i4.LauncherModule,
2477
2923
  i3.LoaderModule,
2478
2924
  FlowHeaderModule,
2479
2925
  FlowDialogModule,
2480
- i2$1.SdkCoreModule,
2926
+ i1$1.SdkCoreModule,
2481
2927
  DocGenModule,
2482
2928
  i3.LetDirectiveModule] });
2483
2929
  FlowModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowModule, providers: [FlowService, FlowDialogService, FlowDocGenService], imports: [[
2484
- i11.CommonModule,
2930
+ i5.CommonModule,
2485
2931
  FlowRoutingModule,
2486
- i2$2.ApiModule,
2487
- i5.LauncherModule,
2932
+ i2$1.ApiModule,
2933
+ i4.LauncherModule,
2488
2934
  i3.LoaderModule,
2489
2935
  FlowHeaderModule,
2490
2936
  FlowDialogModule,
2491
- i2$1.SdkCoreModule,
2937
+ i1$1.SdkCoreModule,
2492
2938
  DocGenModule,
2493
2939
  i3.LetDirectiveModule,
2494
2940
  ]] });
@@ -2497,14 +2943,14 @@
2497
2943
  args: [{
2498
2944
  declarations: [FlowComponent],
2499
2945
  imports: [
2500
- i11.CommonModule,
2946
+ i5.CommonModule,
2501
2947
  FlowRoutingModule,
2502
- i2$2.ApiModule,
2503
- i5.LauncherModule,
2948
+ i2$1.ApiModule,
2949
+ i4.LauncherModule,
2504
2950
  i3.LoaderModule,
2505
2951
  FlowHeaderModule,
2506
2952
  FlowDialogModule,
2507
- i2$1.SdkCoreModule,
2953
+ i1$1.SdkCoreModule,
2508
2954
  DocGenModule,
2509
2955
  i3.LetDirectiveModule,
2510
2956
  ],
@@ -2521,6 +2967,7 @@
2521
2967
  exports.FlowModule = FlowModule;
2522
2968
  exports.FlowService = FlowService;
2523
2969
  exports.VELOCE_FLOW_ROOT_ROUTE = VELOCE_FLOW_ROOT_ROUTE;
2970
+ exports.getDefaultProperties = getDefaultProperties;
2524
2971
  exports.getFlowObjectIdPropertyName = getFlowObjectIdPropertyName;
2525
2972
 
2526
2973
  Object.defineProperty(exports, '__esModule', { value: true });