@veloceapps/sdk 3.1.8 → 3.1.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/bundles/veloce-sdk-cms.umd.js +1 -1
  2. package/bundles/veloce-sdk-cms.umd.js.map +1 -1
  3. package/bundles/veloce-sdk-core.umd.js +35 -2
  4. package/bundles/veloce-sdk-core.umd.js.map +1 -1
  5. package/bundles/veloce-sdk.umd.js +208 -262
  6. package/bundles/veloce-sdk.umd.js.map +1 -1
  7. package/cms/vendor-map.d.ts +2 -1
  8. package/core/services/index.d.ts +1 -0
  9. package/core/services/product-images.service.d.ts +12 -0
  10. package/esm2015/cms/vendor-map.js +4 -3
  11. package/esm2015/core/core.module.js +4 -4
  12. package/esm2015/core/services/index.js +2 -1
  13. package/esm2015/core/services/product-images.service.js +30 -0
  14. package/esm2015/src/components/header/cart-overlay/cart-preview.component.js +116 -0
  15. package/esm2015/src/components/header/cart-overlay/cart-preview.module.js +23 -0
  16. package/esm2015/src/components/header/header.component.js +3 -3
  17. package/esm2015/src/components/header/header.module.js +5 -5
  18. package/esm2015/src/flow-routing.module.js +7 -24
  19. package/esm2015/src/guards/context.guard.js +45 -33
  20. package/esm2015/src/guards/product-unload.guard.js +22 -10
  21. package/esm2015/src/resolvers/quote.resolver.js +3 -2
  22. package/fesm2015/veloce-sdk-cms.js +3 -2
  23. package/fesm2015/veloce-sdk-cms.js.map +1 -1
  24. package/fesm2015/veloce-sdk-core.js +34 -8
  25. package/fesm2015/veloce-sdk-core.js.map +1 -1
  26. package/fesm2015/veloce-sdk.js +136 -184
  27. package/fesm2015/veloce-sdk.js.map +1 -1
  28. package/package.json +1 -1
  29. package/src/components/header/cart-overlay/{cart-overlay.component.d.ts → cart-preview.component.d.ts} +7 -10
  30. package/src/components/header/cart-overlay/cart-preview.module.d.ts +13 -0
  31. package/src/components/header/header.module.d.ts +2 -2
  32. package/src/guards/context.guard.d.ts +6 -4
  33. package/src/guards/product-unload.guard.d.ts +5 -3
  34. package/esm2015/src/components/header/cart-overlay/cart-overlay.component.js +0 -133
  35. package/esm2015/src/components/header/cart-overlay/cart-overlay.module.js +0 -23
  36. package/esm2015/src/resolvers/context.resolver.js +0 -44
  37. package/src/components/header/cart-overlay/cart-overlay.module.d.ts +0 -13
  38. package/src/resolvers/context.resolver.d.ts +0 -16
@@ -1,8 +1,8 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/common'), require('@angular/core'), require('@veloce/api'), require('@veloce/components'), require('@veloce/sdk/cms'), require('@veloce/sdk/core'), require('primeng/button'), require('primeng/dynamicdialog'), require('primeng/overlaypanel'), require('primeng/tooltip'), require('@angular/forms'), require('primeng/inputnumber'), require('rxjs'), require('@veloce/core'), require('@angular/router'), require('primeng/api'), require('primeng/dropdown'), require('primeng/inputtext'), require('primeng/radiobutton'), require('rxjs/operators'), require('@veloce/sdk/runtime'), require('ngx-bootstrap/tooltip'), require('@angular/common/http')) :
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', 'primeng/overlaypanel', 'primeng/tooltip', '@angular/forms', 'primeng/inputnumber', 'rxjs', '@veloce/core', '@angular/router', 'primeng/api', 'primeng/dropdown', 'primeng/inputtext', 'primeng/radiobutton', 'rxjs/operators', '@veloce/sdk/runtime', 'ngx-bootstrap/tooltip', '@angular/common/http'], 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["primeng/overlaypanel"], global["primeng/tooltip"], global.ng.forms, global["primeng/inputnumber"], global.rxjs, global["@veloce/core"], global.ng.router, global["primeng/api"], global["primeng/dropdown"], global["primeng/inputtext"], global["primeng/radiobutton"], global.rxjs.operators, global.veloce.sdk.runtime, global["ngx-bootstrap/tooltip"], global.ng.common.http));
5
- })(this, (function (exports, i9, i0, i1$4, i3, i4$1, i1$2, i5, i1, i4, i10, i7, i6, rxjs, i1$3, i1$1, i2, i4$2, i8, i6$1, operators, i4$3, i1$5, http) { 'use strict';
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/common'), require('@angular/core'), require('@veloce/api'), require('@veloce/components'), require('@veloce/sdk/cms'), require('@veloce/sdk/core'), require('primeng/button'), require('primeng/dynamicdialog'), require('primeng/overlaypanel'), require('primeng/tooltip'), require('@angular/forms'), require('primeng/inputnumber'), require('rxjs'), require('@angular/router'), require('primeng/api'), require('@veloce/core'), require('@angular/common/http'), require('primeng/dropdown'), require('primeng/inputtext'), require('primeng/radiobutton'), require('rxjs/operators'), require('@veloce/sdk/runtime'), require('ngx-bootstrap/tooltip')) :
3
+ typeof define === 'function' && define.amd ? define('@veloce/sdk', ['exports', '@angular/common', '@angular/core', '@veloce/api', '@veloce/components', '@veloce/sdk/cms', '@veloce/sdk/core', 'primeng/button', 'primeng/dynamicdialog', 'primeng/overlaypanel', 'primeng/tooltip', '@angular/forms', 'primeng/inputnumber', 'rxjs', '@angular/router', 'primeng/api', '@veloce/core', '@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["primeng/overlaypanel"], global["primeng/tooltip"], global.ng.forms, global["primeng/inputnumber"], global.rxjs, global.ng.router, global["primeng/api"], global["@veloce/core"], 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, i9, i0, i1$2, i3$1, i4, i2$1, i2, i1, i3, i10, i7, i5, rxjs, i1$1, i2$2, core, http, i4$1, i8, i6, operators, i4$2, i1$3) { 'use strict';
6
6
 
7
7
  function _interopNamespace(e) {
8
8
  if (e && e.__esModule) return e;
@@ -24,24 +24,23 @@
24
24
 
25
25
  var i9__namespace = /*#__PURE__*/_interopNamespace(i9);
26
26
  var i0__namespace = /*#__PURE__*/_interopNamespace(i0);
27
- var i1__namespace$4 = /*#__PURE__*/_interopNamespace(i1$4);
28
- var i3__namespace = /*#__PURE__*/_interopNamespace(i3);
29
- var i4__namespace$1 = /*#__PURE__*/_interopNamespace(i4$1);
30
27
  var i1__namespace$2 = /*#__PURE__*/_interopNamespace(i1$2);
31
- var i5__namespace = /*#__PURE__*/_interopNamespace(i5);
32
- var i1__namespace = /*#__PURE__*/_interopNamespace(i1);
28
+ var i3__namespace$1 = /*#__PURE__*/_interopNamespace(i3$1);
33
29
  var i4__namespace = /*#__PURE__*/_interopNamespace(i4);
30
+ var i2__namespace$1 = /*#__PURE__*/_interopNamespace(i2$1);
31
+ var i2__namespace = /*#__PURE__*/_interopNamespace(i2);
32
+ var i1__namespace = /*#__PURE__*/_interopNamespace(i1);
33
+ var i3__namespace = /*#__PURE__*/_interopNamespace(i3);
34
34
  var i10__namespace = /*#__PURE__*/_interopNamespace(i10);
35
35
  var i7__namespace = /*#__PURE__*/_interopNamespace(i7);
36
- var i6__namespace = /*#__PURE__*/_interopNamespace(i6);
37
- var i1__namespace$3 = /*#__PURE__*/_interopNamespace(i1$3);
36
+ var i5__namespace = /*#__PURE__*/_interopNamespace(i5);
38
37
  var i1__namespace$1 = /*#__PURE__*/_interopNamespace(i1$1);
39
- var i2__namespace = /*#__PURE__*/_interopNamespace(i2);
40
- var i4__namespace$2 = /*#__PURE__*/_interopNamespace(i4$2);
38
+ var i2__namespace$2 = /*#__PURE__*/_interopNamespace(i2$2);
39
+ var i4__namespace$1 = /*#__PURE__*/_interopNamespace(i4$1);
41
40
  var i8__namespace = /*#__PURE__*/_interopNamespace(i8);
42
- var i6__namespace$1 = /*#__PURE__*/_interopNamespace(i6$1);
43
- var i4__namespace$3 = /*#__PURE__*/_interopNamespace(i4$3);
44
- var i1__namespace$5 = /*#__PURE__*/_interopNamespace(i1$5);
41
+ var i6__namespace = /*#__PURE__*/_interopNamespace(i6);
42
+ var i4__namespace$2 = /*#__PURE__*/_interopNamespace(i4$2);
43
+ var i1__namespace$3 = /*#__PURE__*/_interopNamespace(i1$3);
45
44
 
46
45
  var VELOCE_FLOW_ROOT_ROUTE = 'VELOCE_FLOW_ROOT_ROUTE';
47
46
 
@@ -60,7 +59,7 @@
60
59
  return FlowDialogComponent;
61
60
  }());
62
61
  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: i5__namespace.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "style", "styleClass", "badgeClass"], outputs: ["onClick", "onFocus", "onBlur"] }], directives: [{ type: i9__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
62
+ 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: i9__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
64
63
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowDialogComponent, decorators: [{
65
64
  type: i0.Component,
66
65
  args: [{
@@ -77,13 +76,13 @@
77
76
  return FlowDialogModule;
78
77
  }());
79
78
  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: [i9.CommonModule, i5.ButtonModule], exports: [FlowDialogComponent] });
81
- FlowDialogModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowDialogModule, imports: [[i9.CommonModule, i5.ButtonModule]] });
79
+ FlowDialogModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowDialogModule, declarations: [FlowDialogComponent], imports: [i9.CommonModule, i2.ButtonModule], exports: [FlowDialogComponent] });
80
+ FlowDialogModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowDialogModule, imports: [[i9.CommonModule, i2.ButtonModule]] });
82
81
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowDialogModule, decorators: [{
83
82
  type: i0.NgModule,
84
83
  args: [{
85
84
  declarations: [FlowDialogComponent],
86
- imports: [i9.CommonModule, i5.ButtonModule],
85
+ imports: [i9.CommonModule, i2.ButtonModule],
87
86
  exports: [FlowDialogComponent],
88
87
  }]
89
88
  }] });
@@ -526,21 +525,20 @@
526
525
  };
527
526
  return FlowRouterService;
528
527
  }());
529
- 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: i1__namespace$2.ContextService }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
528
+ 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 });
530
529
  FlowRouterService.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowRouterService, providedIn: 'root' });
531
530
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowRouterService, decorators: [{
532
531
  type: i0.Injectable,
533
532
  args: [{ providedIn: 'root' }]
534
- }], ctorParameters: function () { return [{ type: i1__namespace$1.Router }, { type: i1__namespace$1.ActivatedRoute }, { type: i1__namespace$2.ContextService }]; } });
533
+ }], ctorParameters: function () { return [{ type: i1__namespace$1.Router }, { type: i1__namespace$1.ActivatedRoute }, { type: i2__namespace$1.ContextService }]; } });
535
534
 
536
- var HeaderCartOverlayComponent = /** @class */ (function () {
537
- function HeaderCartOverlayComponent(baseHttpService, flowConfiguration, routerService) {
538
- this.baseHttpService = baseHttpService;
535
+ var CartPreviewComponent = /** @class */ (function () {
536
+ function CartPreviewComponent(flowConfiguration, routerService, productImagesService) {
539
537
  this.flowConfiguration = flowConfiguration;
540
538
  this.routerService = routerService;
539
+ this.productImagesService = productImagesService;
541
540
  this.form = new i7.FormGroup({});
542
541
  this.shouldUpdate$ = new rxjs.BehaviorSubject(true);
543
- this.imagesMap$ = new rxjs.BehaviorSubject({});
544
542
  this.destroyed$ = new rxjs.Subject();
545
543
  this.readonlyProductId$ = rxjs.combineLatest([
546
544
  this.routerService.route$,
@@ -553,12 +551,12 @@
553
551
  return route.queryParams.productId;
554
552
  }));
555
553
  }
556
- HeaderCartOverlayComponent.prototype.ngOnChanges = function (changes) {
554
+ CartPreviewComponent.prototype.ngOnChanges = function (changes) {
557
555
  if (changes.products) {
558
556
  this.shouldUpdate$.next(true);
559
557
  }
560
558
  };
561
- HeaderCartOverlayComponent.prototype.ngAfterViewInit = function () {
559
+ CartPreviewComponent.prototype.ngAfterViewInit = function () {
562
560
  var _this = this;
563
561
  rxjs.combineLatest([this.readonlyProductId$, this.shouldUpdate$, this.overlayPanel.onShow])
564
562
  .pipe(rxjs.filter(function () { return _this.overlayPanel.overlayVisible; }), rxjs.takeUntil(this.destroyed$))
@@ -567,23 +565,18 @@
567
565
  return _this.updateControls(_this.products, readonlyProductId);
568
566
  });
569
567
  };
570
- HeaderCartOverlayComponent.prototype.ngOnDestroy = function () {
568
+ CartPreviewComponent.prototype.ngOnDestroy = function () {
571
569
  this.destroyed$.next();
572
570
  this.destroyed$.complete();
573
571
  };
574
- HeaderCartOverlayComponent.prototype.getImageUrl = function (productId) {
575
- var _b;
576
- if (this.imagesMap$.value[productId] == null) {
577
- this.imagesMap$.next(Object.assign(Object.assign({}, this.imagesMap$.value), (_b = {}, _b[productId] = '', _b)));
578
- this.fetchProductImage(productId);
579
- }
580
- return this.imagesMap$.pipe(rxjs.map(function (imagesMap) { return imagesMap[productId]; }), rxjs.distinctUntilChanged());
572
+ CartPreviewComponent.prototype.getImageUrl = function (productId) {
573
+ return this.productImagesService.getImageUrl$(productId);
581
574
  };
582
- HeaderCartOverlayComponent.prototype.navigateToProductConfiguration = function (productId, lineItemId) {
575
+ CartPreviewComponent.prototype.navigateToProductConfiguration = function (productId, lineItemId) {
583
576
  this.overlayPanel.hide();
584
577
  this.routerService.navigateToProductConfiguration(productId, lineItemId);
585
578
  };
586
- HeaderCartOverlayComponent.prototype.controlBlurHandler = function (product) {
579
+ CartPreviewComponent.prototype.controlBlurHandler = function (product) {
587
580
  var control = this.form.controls[product.id];
588
581
  if (control.invalid) {
589
582
  return;
@@ -597,29 +590,14 @@
597
590
  },
598
591
  ]);
599
592
  };
600
- HeaderCartOverlayComponent.prototype.deleteHandler = function (product) {
593
+ CartPreviewComponent.prototype.deleteHandler = function (product) {
601
594
  this.flowConfiguration.delete([product.id]);
602
595
  };
603
- HeaderCartOverlayComponent.prototype.deleteAllHandler = function () {
596
+ CartPreviewComponent.prototype.deleteAllHandler = function () {
604
597
  var productIds = this.products.map(function (product) { return product.id; });
605
598
  this.flowConfiguration.delete(productIds);
606
599
  };
607
- HeaderCartOverlayComponent.prototype.fetchProductImage = function (productId) {
608
- var _this = this;
609
- this.baseHttpService
610
- .api({
611
- url: "/products/" + productId + "/image",
612
- method: 'get',
613
- responseType: 'blob',
614
- errorHandler: rxjs.noop,
615
- })
616
- .pipe(rxjs.map(function (file) { return URL.createObjectURL(file); }), rxjs.catchError(function () { return rxjs.of(''); }), rxjs.tap(function (url) {
617
- var _b;
618
- return _this.imagesMap$.next(Object.assign(Object.assign({}, _this.imagesMap$.value), (_b = {}, _b[productId] = url, _b)));
619
- }), rxjs.takeUntil(this.destroyed$))
620
- .subscribe();
621
- };
622
- HeaderCartOverlayComponent.prototype.updateControls = function (products, readonlyProductId) {
600
+ CartPreviewComponent.prototype.updateControls = function (products, readonlyProductId) {
623
601
  var _this = this;
624
602
  var ids = [];
625
603
  products.forEach(function (item) {
@@ -644,39 +622,39 @@
644
622
  var removedIds = Object.keys(this.form.controls).filter(function (id) { return !ids.includes(id); });
645
623
  removedIds.forEach(function (id) { return _this.form.removeControl(id); });
646
624
  };
647
- return HeaderCartOverlayComponent;
625
+ return CartPreviewComponent;
648
626
  }());
649
- HeaderCartOverlayComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: HeaderCartOverlayComponent, deps: [{ token: i1__namespace$3.BaseHttpService }, { token: i1__namespace$2.FlowConfigurationService }, { token: FlowRouterService }], target: i0__namespace.ɵɵFactoryTarget.Component });
650
- HeaderCartOverlayComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: HeaderCartOverlayComponent, selector: "vl-header-cart-overlay", inputs: { products: "products" }, viewQueries: [{ propertyName: "overlayPanel", first: true, predicate: i4.OverlayPanel, descendants: true }], usesOnChanges: true, ngImport: i0__namespace, template: "<p-overlayPanel\n styleClass=\"navigation-settings-overlay flow-header-overlay center\"\n showTransitionOptions=\"0ms\"\n hideTransitionOptions=\"0ms\"\n>\n <ng-template pTemplate>\n <div class=\"flow-header-overlay__wrapper\" *vlLet=\"readonlyProductId$ | async as readonlyProductId\">\n <ng-container *ngIf=\"products.length > 0; else empty\">\n <h2 class=\"flow-header-overlay__title\">\n <span>Products ({{ products.length }})</span>\n <i class=\"vl-icon vl-icon-close close-icon\" (click)=\"overlayPanel.hide()\"></i>\n </h2>\n\n <div class=\"product header\">\n <span>Product</span>\n <span class=\"text-right\">Qty</span>\n <span class=\"text-right\">MRR</span>\n <span class=\"text-right\">NRR</span>\n </div>\n\n <div class=\"scrollable-wrapper\">\n <div class=\"product\" *ngFor=\"let product of products\">\n <div 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\">{{ product.name }}</div>\n <div>\n <p-button\n label=\"Configure\"\n [disabled]=\"!product.configurable || readonlyProductId === product.productId\"\n styleClass=\"p-button-link p-button-sm pl-0\"\n (onClick)=\"navigateToProductConfiguration(product.productId, product.id)\"\n ></p-button>\n <p-button\n label=\"Delete\"\n [disabled]=\"readonlyProductId === product.productId\"\n styleClass=\"p-button-link p-button-sm p-button-danger pl-0 pr-0\"\n (onClick)=\"deleteHandler(product)\"\n ></p-button>\n </div>\n </div>\n </div>\n\n <span>\n <p-inputNumber\n *ngIf=\"form.controls[product.id] as control\"\n class=\"qty-control\"\n [formControl]=\"$any(control)\"\n [min]=\"1\"\n [required]=\"true\"\n (onBlur)=\"controlBlurHandler(product)\"\n ></p-inputNumber>\n </span>\n <span class=\"text-right pt-3\">$0.00</span>\n <span class=\"text-right pt-3\">$0.00</span>\n </div>\n\n <ng-template #noImage>\n <i class=\"vl-icon vl-icon-no-image no-image-icon\"></i>\n </ng-template>\n </div>\n\n <div class=\"flex justify-content-end mt-3\">\n <p-button\n label=\"Clear cart\"\n styleClass=\"p-button-link p-button-sm p-button-danger pl-0 pr-0\"\n [disabled]=\"readonlyProductId\"\n (onClick)=\"deleteAllHandler()\"\n ></p-button>\n </div>\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: [".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 0 16px}.empty-state{color:var(--vl-text-color-deep-accent)}.scrollable-wrapper{overflow:auto}.product{display:grid;grid-template-columns:auto 60px 80px 80px;padding:16px 0}.product:not(.header){border-bottom:1px solid var(--vl-border-color)}.product.header{color:var(--vl-text-color-deep-accent)}.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;width:100%}.word-break{word-break:break-word}.no-image-icon{color:#b4d1ef;height:18px;width:18px}\n"], components: [{ type: i4__namespace.OverlayPanel, selector: "p-overlayPanel", inputs: ["dismissable", "showCloseIcon", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }, { type: i5__namespace.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "style", "styleClass", "badgeClass"], outputs: ["onClick", "onFocus", "onBlur"] }, { type: i6__namespace.InputNumber, selector: "p-inputNumber", inputs: ["showButtons", "format", "buttonLayout", "inputId", "styleClass", "style", "placeholder", "size", "maxlength", "tabindex", "title", "ariaLabel", "ariaRequired", "name", "required", "autocomplete", "min", "max", "incrementButtonClass", "decrementButtonClass", "incrementButtonIcon", "decrementButtonIcon", "readonly", "step", "allowEmpty", "locale", "localeMatcher", "mode", "currency", "currencyDisplay", "useGrouping", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "inputStyle", "inputStyleClass", "disabled"], outputs: ["onInput", "onFocus", "onBlur", "onKeyDown"] }], directives: [{ type: i2__namespace.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { type: i3__namespace.LetDirective, selector: "[vlLet]", inputs: ["vlLet"] }, { type: i9__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i9__namespace.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i7__namespace.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i7__namespace.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i7__namespace.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }], pipes: { "async": i9__namespace.AsyncPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
651
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: HeaderCartOverlayComponent, decorators: [{
627
+ 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 }], target: i0__namespace.ɵɵFactoryTarget.Component });
628
+ 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.OverlayPanel, descendants: true }], usesOnChanges: true, ngImport: i0__namespace, template: "<p-overlayPanel\n styleClass=\"navigation-settings-overlay flow-header-overlay center\"\n showTransitionOptions=\"0ms\"\n hideTransitionOptions=\"0ms\"\n>\n <ng-template pTemplate>\n <div class=\"flow-header-overlay__wrapper\" *vlLet=\"readonlyProductId$ | async as readonlyProductId\">\n <ng-container *ngIf=\"products.length > 0; else empty\">\n <h2 class=\"flow-header-overlay__title\">\n <span>Products ({{ products.length }})</span>\n <i class=\"vl-icon vl-icon-close close-icon\" (click)=\"overlayPanel.hide()\"></i>\n </h2>\n\n <div class=\"product header\">\n <span>Product</span>\n <span class=\"text-right\">Qty</span>\n <span class=\"text-right\">MRR</span>\n <span class=\"text-right\">NRR</span>\n </div>\n\n <div class=\"scrollable-wrapper\">\n <div class=\"product\" *ngFor=\"let product of products\">\n <div 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\">{{ product.name }}</div>\n <div>\n <p-button\n label=\"Configure\"\n [disabled]=\"!product.configurable || readonlyProductId === product.productId\"\n styleClass=\"p-button-link p-button-sm pl-0\"\n (onClick)=\"navigateToProductConfiguration(product.productId, product.id)\"\n ></p-button>\n <p-button\n label=\"Delete\"\n [disabled]=\"readonlyProductId === product.productId\"\n styleClass=\"p-button-link p-button-sm p-button-danger pl-0 pr-0\"\n (onClick)=\"deleteHandler(product)\"\n ></p-button>\n </div>\n </div>\n </div>\n\n <span>\n <p-inputNumber\n *ngIf=\"form.controls[product.id] as control\"\n class=\"qty-control\"\n [formControl]=\"$any(control)\"\n [min]=\"1\"\n [required]=\"true\"\n (onBlur)=\"controlBlurHandler(product)\"\n ></p-inputNumber>\n </span>\n <span class=\"text-right pt-3\">$0.00</span>\n <span class=\"text-right pt-3\">$0.00</span>\n </div>\n\n <ng-template #noImage>\n <i class=\"vl-icon vl-icon-no-image no-image-icon\"></i>\n </ng-template>\n </div>\n\n <div class=\"flex justify-content-end mt-3\">\n <p-button\n label=\"Clear cart\"\n styleClass=\"p-button-link p-button-sm p-button-danger pl-0 pr-0\"\n [disabled]=\"readonlyProductId\"\n (onClick)=\"deleteAllHandler()\"\n ></p-button>\n </div>\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: [".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 0 16px}.empty-state{color:var(--vl-text-color-deep-accent)}.scrollable-wrapper{overflow:auto}.product{display:grid;grid-template-columns:auto 60px 80px 80px;padding:16px 0}.product:not(.header){border-bottom:1px solid var(--vl-border-color)}.product.header{color:var(--vl-text-color-deep-accent)}.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;width:100%}.word-break{word-break:break-word}.no-image-icon{color:#b4d1ef;height:18px;width:18px}\n"], components: [{ type: i3__namespace.OverlayPanel, selector: "p-overlayPanel", inputs: ["dismissable", "showCloseIcon", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }, { 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.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$1.LetDirective, selector: "[vlLet]", inputs: ["vlLet"] }, { type: i9__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i9__namespace.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i7__namespace.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i7__namespace.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i7__namespace.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }], pipes: { "async": i9__namespace.AsyncPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
629
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: CartPreviewComponent, decorators: [{
652
630
  type: i0.Component,
653
631
  args: [{
654
- selector: 'vl-header-cart-overlay',
655
- templateUrl: './cart-overlay.component.html',
656
- styleUrls: ['./cart-overlay.component.scss'],
632
+ selector: 'vl-cart-preview',
633
+ templateUrl: './cart-preview.component.html',
634
+ styleUrls: ['./cart-preview.component.scss'],
657
635
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
658
636
  }]
659
- }], ctorParameters: function () { return [{ type: i1__namespace$3.BaseHttpService }, { type: i1__namespace$2.FlowConfigurationService }, { type: FlowRouterService }]; }, propDecorators: { overlayPanel: [{
637
+ }], ctorParameters: function () { return [{ type: i2__namespace$1.FlowConfigurationService }, { type: FlowRouterService }, { type: i2__namespace$1.ProductImagesService }]; }, propDecorators: { overlayPanel: [{
660
638
  type: i0.ViewChild,
661
- args: [i4.OverlayPanel]
639
+ args: [i3.OverlayPanel]
662
640
  }], products: [{
663
641
  type: i0.Input
664
642
  }] } });
665
643
 
666
- var HeaderCartOverlayModule = /** @class */ (function () {
667
- function HeaderCartOverlayModule() {
644
+ var CartPreviewModule = /** @class */ (function () {
645
+ function CartPreviewModule() {
668
646
  }
669
- return HeaderCartOverlayModule;
647
+ return CartPreviewModule;
670
648
  }());
671
- HeaderCartOverlayModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: HeaderCartOverlayModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
672
- HeaderCartOverlayModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: HeaderCartOverlayModule, declarations: [HeaderCartOverlayComponent], imports: [i9.CommonModule, i7.ReactiveFormsModule, i5.ButtonModule, i4.OverlayPanelModule, i3.LetDirectiveModule, i6.InputNumberModule], exports: [HeaderCartOverlayComponent] });
673
- HeaderCartOverlayModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: HeaderCartOverlayModule, imports: [[i9.CommonModule, i7.ReactiveFormsModule, i5.ButtonModule, i4.OverlayPanelModule, i3.LetDirectiveModule, i6.InputNumberModule]] });
674
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: HeaderCartOverlayModule, decorators: [{
649
+ CartPreviewModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: CartPreviewModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
650
+ CartPreviewModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: CartPreviewModule, declarations: [CartPreviewComponent], imports: [i9.CommonModule, i7.ReactiveFormsModule, i2.ButtonModule, i3.OverlayPanelModule, i3$1.LetDirectiveModule, i5.InputNumberModule], exports: [CartPreviewComponent] });
651
+ CartPreviewModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: CartPreviewModule, imports: [[i9.CommonModule, i7.ReactiveFormsModule, i2.ButtonModule, i3.OverlayPanelModule, i3$1.LetDirectiveModule, i5.InputNumberModule]] });
652
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: CartPreviewModule, decorators: [{
675
653
  type: i0.NgModule,
676
654
  args: [{
677
- declarations: [HeaderCartOverlayComponent],
678
- imports: [i9.CommonModule, i7.ReactiveFormsModule, i5.ButtonModule, i4.OverlayPanelModule, i3.LetDirectiveModule, i6.InputNumberModule],
679
- exports: [HeaderCartOverlayComponent],
655
+ declarations: [CartPreviewComponent],
656
+ imports: [i9.CommonModule, i7.ReactiveFormsModule, i2.ButtonModule, i3.OverlayPanelModule, i3$1.LetDirectiveModule, i5.InputNumberModule],
657
+ exports: [CartPreviewComponent],
680
658
  }]
681
659
  }] });
682
660
 
@@ -750,11 +728,11 @@
750
728
  };
751
729
  return FlowDialogService;
752
730
  }());
753
- FlowDialogService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowDialogService, deps: [{ token: i1__namespace.DialogService }, { token: i1__namespace$2.ContextService }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
731
+ 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 });
754
732
  FlowDialogService.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowDialogService });
755
733
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowDialogService, decorators: [{
756
734
  type: i0.Injectable
757
- }], ctorParameters: function () { return [{ type: i1__namespace.DialogService }, { type: i1__namespace$2.ContextService }]; } });
735
+ }], ctorParameters: function () { return [{ type: i1__namespace.DialogService }, { type: i2__namespace$1.ContextService }]; } });
758
736
 
759
737
  var FlowHeaderComponent = /** @class */ (function () {
760
738
  function FlowHeaderComponent(contextService, quoteDraftService, quoteApiService, sfApiService, flowConfiguration, routerService, dialogService) {
@@ -791,14 +769,14 @@
791
769
  };
792
770
  Object.defineProperty(FlowHeaderComponent.prototype, "isAccountMode", {
793
771
  get: function () {
794
- return this.mode === i1$3.ConfigurationContextMode.ACCOUNT;
772
+ return this.mode === core.ConfigurationContextMode.ACCOUNT;
795
773
  },
796
774
  enumerable: false,
797
775
  configurable: true
798
776
  });
799
777
  Object.defineProperty(FlowHeaderComponent.prototype, "isQuoteMode", {
800
778
  get: function () {
801
- return this.mode === i1$3.ConfigurationContextMode.QUOTE;
779
+ return this.mode === core.ConfigurationContextMode.QUOTE;
802
780
  },
803
781
  enumerable: false,
804
782
  configurable: true
@@ -824,7 +802,7 @@
824
802
  FlowHeaderComponent.prototype.saveButtonClickHandler = function () {
825
803
  var _this = this;
826
804
  if (!this.quoteDraftService.isEditMode()) {
827
- if (this.mode === i1$3.ConfigurationContextMode.QUOTE) {
805
+ if (this.mode === core.ConfigurationContextMode.QUOTE) {
828
806
  this.dialogService.showQuoteReadonlyModeDialog().subscribe();
829
807
  }
830
808
  else {
@@ -832,7 +810,7 @@
832
810
  }
833
811
  return;
834
812
  }
835
- if (this.mode === i1$3.ConfigurationContextMode.ACCOUNT && !this.quoteDraftService.hasUnsavedChanges) {
813
+ if (this.mode === core.ConfigurationContextMode.ACCOUNT && !this.quoteDraftService.hasUnsavedChanges) {
836
814
  this.dialogService.showAccountNoChangesDialog().subscribe();
837
815
  return;
838
816
  }
@@ -850,7 +828,7 @@
850
828
  .upsertQuote(quoteDraft)
851
829
  .pipe(rxjs.tap(function () {
852
830
  // navigate back to quote on successful save
853
- if (_this.mode === i1$3.ConfigurationContextMode.QUOTE) {
831
+ if (_this.mode === core.ConfigurationContextMode.QUOTE) {
854
832
  _this.back();
855
833
  }
856
834
  }), rxjs.finalize(function () { return _this.isSaveInProgress$.next(false); }))
@@ -858,11 +836,11 @@
858
836
  };
859
837
  FlowHeaderComponent.prototype.submitButtonClickHandler = function () {
860
838
  var _this = this;
861
- if (this.mode === i1$3.ConfigurationContextMode.QUOTE && !this.quoteDraftService.isEditMode()) {
839
+ if (this.mode === core.ConfigurationContextMode.QUOTE && !this.quoteDraftService.isEditMode()) {
862
840
  this.dialogService.showReadonlyQuoteSubmitFailureDialog();
863
841
  return;
864
842
  }
865
- if (this.mode === i1$3.ConfigurationContextMode.ACCOUNT) {
843
+ if (this.mode === core.ConfigurationContextMode.ACCOUNT) {
866
844
  this.dialogService.showAccountSubmitFailureDialog();
867
845
  return;
868
846
  }
@@ -932,8 +910,8 @@
932
910
  };
933
911
  return FlowHeaderComponent;
934
912
  }());
935
- FlowHeaderComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowHeaderComponent, deps: [{ token: i1__namespace$2.ContextService }, { token: i1__namespace$2.QuoteDraftService }, { token: i1__namespace$4.QuoteApiService }, { token: i1__namespace$4.SalesforceApiService }, { token: i1__namespace$2.FlowConfigurationService }, { token: FlowRouterService }, { token: FlowDialogService }], target: i0__namespace.ɵɵFactoryTarget.Component });
936
- 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 </span>\n <span *ngIf=\"objectName\" class=\"object-name\">&nbsp;To {{ objectName }}</span>\n </nav>\n\n <ng-container *ngIf=\"isAccountMode\">\n <span class=\"dot-separator\"></span>\n\n <span>Account name</span>\n\n <nav class=\"account-name\" [pTooltip]=\"contextProperties.Name ?? ''\" tooltipPosition=\"bottom\" [showDelay]=\"1000\">\n <a target=\"_blank\" [href]=\"getSalesforceObjectLink(contextProperties.Id)\">{{ contextProperties.Name }}</a>\n </nav>\n </ng-container>\n\n <ng-container *ngIf=\"isQuoteMode\">\n <span class=\"dot-separator\"></span>\n\n <span>Quote #{{ details.quoteNumber }}</span>\n\n <span class=\"dot-separator\"></span>\n\n <nav class=\"nav-item\" (click)=\"quoteDetails.toggle($event)\">\n <span>{{ status$ | async }}</span>\n\n <i *ngIf=\"!quoteDetails.overlayVisible\" class=\"vl-icon vl-icon-chevron-down icon-with-margin\"></i>\n <i *ngIf=\"quoteDetails.overlayVisible\" class=\"vl-icon vl-icon-chevron-up icon-with-margin\"></i>\n </nav>\n\n <p-overlayPanel styleClass=\"navigation-settings-overlay flow-header-overlay center\" #quoteDetails>\n <ng-template pTemplate>\n <div class=\"flow-header-overlay__wrapper\">\n <h2 class=\"flow-header-overlay__title\">\n <span>Quote Information</span>\n <i class=\"vl-icon vl-icon-close close-icon\" (click)=\"quoteDetails.hide()\"></i>\n </h2>\n\n <ul class=\"info-list\">\n <li class=\"info-list__row\">\n <span>Account Name:</span>\n <a target=\"_blank\" [href]=\"getSalesforceObjectLink(details.accountId)\">{{ details.accountName }}</a>\n </li>\n <li class=\"info-list__row\">\n <span>Opportunity Name:</span>\n <a target=\"_blank\" [href]=\"getSalesforceObjectLink(details.opportunityId)\">{{\n details.opportunityName\n }}</a>\n </li>\n <li class=\"info-list__row\">\n <span>Quote Name:</span>\n <a target=\"_blank\" [href]=\"getSalesforceObjectLink(details.quoteId)\">{{ details.quoteName }}</a>\n </li>\n </ul>\n </div>\n </ng-template>\n </p-overlayPanel>\n </ng-container>\n</div>\n\n<div class=\"flow-navigation\">\n <nav class=\"nav-item\" [ngClass]=\"{ active: isCatalogRoute$ | async }\" (click)=\"navigateToCatalog()\">Catalog</nav>\n <nav class=\"nav-item disabled\" [ngClass]=\"{ active: isConfigurationRoute$ | async }\">Configurator</nav>\n <ng-container *vlLet=\"products$ | async as products\">\n <nav class=\"nav-item\" [ngClass]=\"{ active: isCartRoute$ | async }\" (click)=\"navigateToShoppingCart()\">\n Shopping Cart ({{ products.length }})\n </nav>\n\n <nav class=\"nav-popover-toggle active\" (click)=\"cart?.overlayPanel?.toggle($event)\">\n <i *ngIf=\"!cart?.overlayPanel?.overlayVisible\" class=\"vl-icon vl-icon-chevron-down icon-with-margin\"></i>\n <i *ngIf=\"cart?.overlayPanel?.overlayVisible\" class=\"vl-icon vl-icon-chevron-up icon-with-margin\"></i>\n </nav>\n\n <vl-header-cart-overlay #cart [products]=\"products\"></vl-header-cart-overlay>\n </ng-container>\n</div>\n\n<div class=\"flow-controls\" *vlLet=\"objectDetails$ | async as details\">\n <ng-container *ngIf=\"isQuoteMode\">\n <span *ngIf=\"details.priceListName\">{{ details.priceListName }}</span>\n <span *ngIf=\"contextProperties.StartDate\">{{ contextProperties.StartDate | date: 'MM.dd.yyyy' }}</span>\n\n <span class=\"slash-separator\"></span>\n\n <span>MRR: <span class=\"font-semibold\">$0.00</span></span>\n <span>NRR: <span class=\"font-semibold\">$0.00</span></span>\n </ng-container>\n\n <ng-container *vlLet=\"isCartRoute$ | async as isCartRoute\">\n <p-button\n styleClass=\"p-button-outlined\"\n label=\"Generate Doc\"\n [disabled]=\"!isCartRoute\"\n tooltipPosition=\"bottom\"\n [showDelay]=\"300\"\n [pTooltip]=\"isCartRoute ? '' : disabledActionButtonTooltip\"\n ></p-button>\n\n <p-button\n *vlLet=\"isSaveInProgress$ | async as isSaveInProgress\"\n class=\"save-button\"\n styleClass=\"p-button-outlined\"\n [label]=\"isSaveInProgress ? 'Saving' : 'Save to Quote'\"\n (onClick)=\"saveButtonClickHandler()\"\n [loading]=\"isSaveInProgress\"\n ></p-button>\n\n <p-button\n *vlLet=\"isSubmitInProgress$ | async as isSubmitInProgress\"\n class=\"submit-button\"\n styleClass=\"p-button\"\n [label]=\"isSubmitInProgress ? 'Submitting' : 'Submit For Approval'\"\n [disabled]=\"!isCartRoute\"\n tooltipPosition=\"bottom\"\n [showDelay]=\"300\"\n [pTooltip]=\"isCartRoute ? '' : disabledActionButtonTooltip\"\n (onClick)=\"submitButtonClickHandler()\"\n [loading]=\"isSubmitInProgress\"\n ></p-button>\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.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}:host ::ng-deep .p-button{padding:5px 15px;font-size:12px}:host ::ng-deep .p-button{color:var(--vl-primary-color);background-color:#fff;border-color:#fff}:host ::ng-deep .p-button:enabled:hover{background-color:var(--vl-primary-color);color:#fff;border-color:#fff}:host ::ng-deep .p-button.p-button-outlined{background-color:var(--vl-primary-color);color:#fff;border-color:#fff}:host ::ng-deep .p-button.p-button-outlined:enabled:hover{color:var(--vl-primary-color);background-color:#fff;border-color:#fff}:host ::ng-deep .p-button .p-button-label{white-space:nowrap}:host ::ng-deep .save-button .p-button{width:120px}:host ::ng-deep .submit-button .p-button{width:160px}.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 .object-name{text-transform:capitalize}.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;padding:4px 0}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}.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__title{display:flex;justify-content:space-between;align-items:center;margin:0 0 24px}.flow-navigation{flex-grow:1;display:flex;grid-gap:16px;gap:16px;justify-content:center;font-weight:600}.flow-navigation .cart-nav-container{display:flex}.flow-navigation .nav-popover-toggle{margin-left:-14px}.flow-navigation .nav-item,.flow-navigation .nav-popover-toggle{opacity:.6}.flow-navigation .nav-item.active,.flow-navigation .nav-item:not(.disabled):hover,.flow-navigation .nav-popover-toggle.active,.flow-navigation .nav-popover-toggle:not(.disabled):hover{opacity:1}.flow-controls{flex-shrink:0;display:flex;align-items:center;grid-gap:8px;gap:8px}\n"], components: [{ type: i4__namespace.OverlayPanel, selector: "p-overlayPanel", inputs: ["dismissable", "showCloseIcon", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }, { type: HeaderCartOverlayComponent, selector: "vl-header-cart-overlay", inputs: ["products"] }, { type: i5__namespace.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "style", "styleClass", "badgeClass"], outputs: ["onClick", "onFocus", "onBlur"] }], directives: [{ type: i3__namespace.LetDirective, selector: "[vlLet]", inputs: ["vlLet"] }, { type: i9__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i10__namespace.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { type: i2__namespace.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { type: i9__namespace.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "async": i9__namespace.AsyncPipe, "date": i9__namespace.DatePipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
913
+ 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: i1__namespace$2.QuoteApiService }, { token: i1__namespace$2.SalesforceApiService }, { token: i2__namespace$1.FlowConfigurationService }, { token: FlowRouterService }, { token: FlowDialogService }], target: i0__namespace.ɵɵFactoryTarget.Component });
914
+ 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 </span>\n <span *ngIf=\"objectName\" class=\"object-name\">&nbsp;To {{ objectName }}</span>\n </nav>\n\n <ng-container *ngIf=\"isAccountMode\">\n <span class=\"dot-separator\"></span>\n\n <span>Account name</span>\n\n <nav class=\"account-name\" [pTooltip]=\"contextProperties.Name ?? ''\" tooltipPosition=\"bottom\" [showDelay]=\"1000\">\n <a target=\"_blank\" [href]=\"getSalesforceObjectLink(contextProperties.Id)\">{{ contextProperties.Name }}</a>\n </nav>\n </ng-container>\n\n <ng-container *ngIf=\"isQuoteMode\">\n <span class=\"dot-separator\"></span>\n\n <span>Quote #{{ details.quoteNumber }}</span>\n\n <span class=\"dot-separator\"></span>\n\n <nav class=\"nav-item\" (click)=\"quoteDetails.toggle($event)\">\n <span>{{ status$ | async }}</span>\n\n <i *ngIf=\"!quoteDetails.overlayVisible\" class=\"vl-icon vl-icon-chevron-down icon-with-margin\"></i>\n <i *ngIf=\"quoteDetails.overlayVisible\" class=\"vl-icon vl-icon-chevron-up icon-with-margin\"></i>\n </nav>\n\n <p-overlayPanel styleClass=\"navigation-settings-overlay flow-header-overlay center\" #quoteDetails>\n <ng-template pTemplate>\n <div class=\"flow-header-overlay__wrapper\">\n <h2 class=\"flow-header-overlay__title\">\n <span>Quote Information</span>\n <i class=\"vl-icon vl-icon-close close-icon\" (click)=\"quoteDetails.hide()\"></i>\n </h2>\n\n <ul class=\"info-list\">\n <li class=\"info-list__row\">\n <span>Account Name:</span>\n <a target=\"_blank\" [href]=\"getSalesforceObjectLink(details.accountId)\">{{ details.accountName }}</a>\n </li>\n <li class=\"info-list__row\">\n <span>Opportunity Name:</span>\n <a target=\"_blank\" [href]=\"getSalesforceObjectLink(details.opportunityId)\">{{\n details.opportunityName\n }}</a>\n </li>\n <li class=\"info-list__row\">\n <span>Quote Name:</span>\n <a target=\"_blank\" [href]=\"getSalesforceObjectLink(details.quoteId)\">{{ details.quoteName }}</a>\n </li>\n </ul>\n </div>\n </ng-template>\n </p-overlayPanel>\n </ng-container>\n</div>\n\n<div class=\"flow-navigation\">\n <nav class=\"nav-item\" [ngClass]=\"{ active: isCatalogRoute$ | async }\" (click)=\"navigateToCatalog()\">Catalog</nav>\n <nav class=\"nav-item disabled\" [ngClass]=\"{ active: isConfigurationRoute$ | async }\">Configurator</nav>\n <ng-container *vlLet=\"products$ | async as products\">\n <nav class=\"nav-item\" [ngClass]=\"{ active: isCartRoute$ | async }\" (click)=\"navigateToShoppingCart()\">\n Shopping Cart ({{ products.length }})\n </nav>\n\n <nav class=\"nav-popover-toggle active\" (click)=\"cart?.overlayPanel?.toggle($event)\">\n <i *ngIf=\"!cart?.overlayPanel?.overlayVisible\" class=\"vl-icon vl-icon-chevron-down icon-with-margin\"></i>\n <i *ngIf=\"cart?.overlayPanel?.overlayVisible\" class=\"vl-icon vl-icon-chevron-up icon-with-margin\"></i>\n </nav>\n\n <vl-cart-preview #cart [products]=\"products\"></vl-cart-preview>\n </ng-container>\n</div>\n\n<div class=\"flow-controls\" *vlLet=\"objectDetails$ | async as details\">\n <ng-container *ngIf=\"isQuoteMode\">\n <span *ngIf=\"details.priceListName\">{{ details.priceListName }}</span>\n <span *ngIf=\"contextProperties.StartDate\">{{ contextProperties.StartDate | date: 'MM.dd.yyyy' }}</span>\n\n <span class=\"slash-separator\"></span>\n\n <span>MRR: <span class=\"font-semibold\">$0.00</span></span>\n <span>NRR: <span class=\"font-semibold\">$0.00</span></span>\n </ng-container>\n\n <ng-container *vlLet=\"isCartRoute$ | async as isCartRoute\">\n <p-button\n styleClass=\"p-button-outlined\"\n label=\"Generate Doc\"\n [disabled]=\"!isCartRoute\"\n tooltipPosition=\"bottom\"\n [showDelay]=\"300\"\n [pTooltip]=\"isCartRoute ? '' : disabledActionButtonTooltip\"\n ></p-button>\n\n <p-button\n *vlLet=\"isSaveInProgress$ | async as isSaveInProgress\"\n class=\"save-button\"\n styleClass=\"p-button-outlined\"\n [label]=\"isSaveInProgress ? 'Saving' : 'Save to Quote'\"\n (onClick)=\"saveButtonClickHandler()\"\n [loading]=\"isSaveInProgress\"\n ></p-button>\n\n <p-button\n *vlLet=\"isSubmitInProgress$ | async as isSubmitInProgress\"\n class=\"submit-button\"\n styleClass=\"p-button\"\n [label]=\"isSubmitInProgress ? 'Submitting' : 'Submit For Approval'\"\n [disabled]=\"!isCartRoute\"\n tooltipPosition=\"bottom\"\n [showDelay]=\"300\"\n [pTooltip]=\"isCartRoute ? '' : disabledActionButtonTooltip\"\n (onClick)=\"submitButtonClickHandler()\"\n [loading]=\"isSubmitInProgress\"\n ></p-button>\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.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}:host ::ng-deep .p-button{padding:5px 15px;font-size:12px}:host ::ng-deep .p-button{color:var(--vl-primary-color);background-color:#fff;border-color:#fff}:host ::ng-deep .p-button:enabled:hover{background-color:var(--vl-primary-color);color:#fff;border-color:#fff}:host ::ng-deep .p-button.p-button-outlined{background-color:var(--vl-primary-color);color:#fff;border-color:#fff}:host ::ng-deep .p-button.p-button-outlined:enabled:hover{color:var(--vl-primary-color);background-color:#fff;border-color:#fff}:host ::ng-deep .p-button .p-button-label{white-space:nowrap}:host ::ng-deep .save-button .p-button{width:120px}:host ::ng-deep .submit-button .p-button{width:160px}.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 .object-name{text-transform:capitalize}.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;padding:4px 0}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}.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__title{display:flex;justify-content:space-between;align-items:center;margin:0 0 24px}.flow-navigation{flex-grow:1;display:flex;grid-gap:16px;gap:16px;justify-content:center;font-weight:600}.flow-navigation .cart-nav-container{display:flex}.flow-navigation .nav-popover-toggle{margin-left:-14px}.flow-navigation .nav-item,.flow-navigation .nav-popover-toggle{opacity:.6}.flow-navigation .nav-item.active,.flow-navigation .nav-item:not(.disabled):hover,.flow-navigation .nav-popover-toggle.active,.flow-navigation .nav-popover-toggle:not(.disabled):hover{opacity:1}.flow-controls{flex-shrink:0;display:flex;align-items:center;grid-gap:8px;gap:8px}\n"], components: [{ type: i3__namespace.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"] }], directives: [{ type: i3__namespace$1.LetDirective, selector: "[vlLet]", inputs: ["vlLet"] }, { type: i9__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i10__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: i9__namespace.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "async": i9__namespace.AsyncPipe, "date": i9__namespace.DatePipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
937
915
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowHeaderComponent, decorators: [{
938
916
  type: i0.Component,
939
917
  args: [{
@@ -942,7 +920,7 @@
942
920
  styleUrls: ['./header.component.scss'],
943
921
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
944
922
  }]
945
- }], ctorParameters: function () { return [{ type: i1__namespace$2.ContextService }, { type: i1__namespace$2.QuoteDraftService }, { type: i1__namespace$4.QuoteApiService }, { type: i1__namespace$4.SalesforceApiService }, { type: i1__namespace$2.FlowConfigurationService }, { type: FlowRouterService }, { type: FlowDialogService }]; } });
923
+ }], ctorParameters: function () { return [{ type: i2__namespace$1.ContextService }, { type: i2__namespace$1.QuoteDraftService }, { type: i1__namespace$2.QuoteApiService }, { type: i1__namespace$2.SalesforceApiService }, { type: i2__namespace$1.FlowConfigurationService }, { type: FlowRouterService }, { type: FlowDialogService }]; } });
946
924
 
947
925
  var FlowHeaderModule = /** @class */ (function () {
948
926
  function FlowHeaderModule() {
@@ -950,13 +928,13 @@
950
928
  return FlowHeaderModule;
951
929
  }());
952
930
  FlowHeaderModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowHeaderModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
953
- FlowHeaderModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowHeaderModule, declarations: [FlowHeaderComponent], imports: [i9.CommonModule, i4.OverlayPanelModule, i3.LetDirectiveModule, i10.TooltipModule, i5.ButtonModule, HeaderCartOverlayModule], exports: [FlowHeaderComponent] });
954
- FlowHeaderModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowHeaderModule, imports: [[i9.CommonModule, i4.OverlayPanelModule, i3.LetDirectiveModule, i10.TooltipModule, i5.ButtonModule, HeaderCartOverlayModule]] });
931
+ FlowHeaderModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowHeaderModule, declarations: [FlowHeaderComponent], imports: [i9.CommonModule, i3.OverlayPanelModule, i3$1.LetDirectiveModule, i10.TooltipModule, i2.ButtonModule, CartPreviewModule], exports: [FlowHeaderComponent] });
932
+ FlowHeaderModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowHeaderModule, imports: [[i9.CommonModule, i3.OverlayPanelModule, i3$1.LetDirectiveModule, i10.TooltipModule, i2.ButtonModule, CartPreviewModule]] });
955
933
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowHeaderModule, decorators: [{
956
934
  type: i0.NgModule,
957
935
  args: [{
958
936
  declarations: [FlowHeaderComponent],
959
- imports: [i9.CommonModule, i4.OverlayPanelModule, i3.LetDirectiveModule, i10.TooltipModule, i5.ButtonModule, HeaderCartOverlayModule],
937
+ imports: [i9.CommonModule, i3.OverlayPanelModule, i3$1.LetDirectiveModule, i10.TooltipModule, i2.ButtonModule, CartPreviewModule],
960
938
  exports: [FlowHeaderComponent],
961
939
  }]
962
940
  }] });
@@ -973,7 +951,7 @@
973
951
  FlowService.prototype.initSubscriptions = function () {
974
952
  var _this = this;
975
953
  this.integrationState
976
- .listen$(i4$1.FlowAction.FLOW_CONFIGURE_PRODUCT)
954
+ .listen$(i4.FlowAction.FLOW_CONFIGURE_PRODUCT)
977
955
  .pipe(rxjs.takeUntil(this.cleanup$), rxjs.tap(function (payload) {
978
956
  var _a, _b, _c;
979
957
  var productId = (_a = payload.productId) !== null && _a !== void 0 ? _a : (_c = (_b = _this.quoteDraftService.quoteSnapshot) === null || _b === void 0 ? void 0 : _b.currentState.find(function (li) { return li.id === payload.lineItemId; })) === null || _c === void 0 ? void 0 : _c.productId;
@@ -986,11 +964,11 @@
986
964
  }))
987
965
  .subscribe();
988
966
  this.integrationState
989
- .listen$(i4$1.FlowAction.FLOW_NAVIGATE_BACK)
967
+ .listen$(i4.FlowAction.FLOW_NAVIGATE_BACK)
990
968
  .pipe(rxjs.takeUntil(this.cleanup$), rxjs.tap(function () { return _this.flowRouterService.navigateBack(); }))
991
969
  .subscribe();
992
970
  this.integrationState
993
- .listen$(i4$1.FlowAction.FLOW_APPLY_PRODUCT_CONFIGURATION)
971
+ .listen$(i4.FlowAction.FLOW_APPLY_PRODUCT_CONFIGURATION)
994
972
  .pipe(rxjs.takeUntil(this.cleanup$), rxjs.switchMap(function () {
995
973
  var lineItem = _this.configurationService.getSnapshot();
996
974
  if (!lineItem) {
@@ -1017,11 +995,11 @@
1017
995
  };
1018
996
  return FlowService;
1019
997
  }());
1020
- FlowService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowService, deps: [{ token: i4__namespace$1.IntegrationState }, { token: FlowRouterService }, { token: i1__namespace$2.QuoteDraftService }, { token: i1__namespace$2.ConfigurationService }, { token: i1__namespace$2.FlowConfigurationService }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
998
+ 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: i2__namespace$1.QuoteDraftService }, { token: i2__namespace$1.ConfigurationService }, { token: i2__namespace$1.FlowConfigurationService }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
1021
999
  FlowService.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowService });
1022
1000
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowService, decorators: [{
1023
1001
  type: i0.Injectable
1024
- }], ctorParameters: function () { return [{ type: i4__namespace$1.IntegrationState }, { type: FlowRouterService }, { type: i1__namespace$2.QuoteDraftService }, { type: i1__namespace$2.ConfigurationService }, { type: i1__namespace$2.FlowConfigurationService }]; } });
1002
+ }], ctorParameters: function () { return [{ type: i4__namespace.IntegrationState }, { type: FlowRouterService }, { type: i2__namespace$1.QuoteDraftService }, { type: i2__namespace$1.ConfigurationService }, { type: i2__namespace$1.FlowConfigurationService }]; } });
1025
1003
 
1026
1004
  var FlowComponent = /** @class */ (function () {
1027
1005
  function FlowComponent(routerService, quoteDraftService, flowService) {
@@ -1038,8 +1016,8 @@
1038
1016
  };
1039
1017
  return FlowComponent;
1040
1018
  }());
1041
- FlowComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowComponent, deps: [{ token: FlowRouterService }, { token: i1__namespace$2.QuoteDraftService }, { token: FlowService }], target: i0__namespace.ɵɵFactoryTarget.Component });
1042
- 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", 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"] }], directives: [{ type: i9__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1__namespace$1.RouterOutlet, selector: "router-outlet", outputs: ["activate", "deactivate"], exportAs: ["outlet"] }], pipes: { "async": i9__namespace.AsyncPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
1019
+ 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 }], target: i0__namespace.ɵɵFactoryTarget.Component });
1020
+ 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", 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$1.LoaderComponent, selector: "vl-loader", inputs: ["label", "overlayVisible"] }], directives: [{ type: i9__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1__namespace$1.RouterOutlet, selector: "router-outlet", outputs: ["activate", "deactivate"], exportAs: ["outlet"] }], pipes: { "async": i9__namespace.AsyncPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
1043
1021
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowComponent, decorators: [{
1044
1022
  type: i0.Component,
1045
1023
  args: [{
@@ -1048,45 +1026,42 @@
1048
1026
  styleUrls: ['./flow.component.scss'],
1049
1027
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
1050
1028
  }]
1051
- }], ctorParameters: function () { return [{ type: FlowRouterService }, { type: i1__namespace$2.QuoteDraftService }, { type: FlowService }]; } });
1029
+ }], ctorParameters: function () { return [{ type: FlowRouterService }, { type: i2__namespace$1.QuoteDraftService }, { type: FlowService }]; } });
1052
1030
 
1053
1031
  var ContextGuard = /** @class */ (function () {
1054
- function ContextGuard(router, routerService) {
1032
+ function ContextGuard(router, routerService, contextService) {
1055
1033
  this.router = router;
1056
1034
  this.routerService = routerService;
1035
+ this.contextService = contextService;
1057
1036
  }
1058
- ContextGuard.prototype.getConfigurationContextMode = function (accountId, quoteId, orderId, rpcMessage) {
1059
- if (accountId) {
1060
- return i1$3.ConfigurationContextMode.ACCOUNT;
1061
- }
1062
- if (quoteId) {
1063
- return i1$3.ConfigurationContextMode.QUOTE;
1064
- }
1065
- if (orderId) {
1066
- return i1$3.ConfigurationContextMode.ORDER;
1067
- }
1068
- if (rpcMessage) {
1069
- return i1$3.ConfigurationContextMode.REMOTE;
1070
- }
1071
- return;
1072
- };
1073
1037
  ContextGuard.prototype.checkActivation = function (route) {
1038
+ var _this = this;
1074
1039
  var _a, _b;
1075
1040
  var queryParams = route.queryParams;
1076
1041
  var accountId = queryParams.accountId, quoteId = queryParams.quoteId, orderId = queryParams.orderId;
1077
- var rpcMessage = window['RPC_MESSAGE'];
1042
+ var rpcMessage = window.RPC_MESSAGE;
1043
+ var mode = this.getConfigurationContextMode(accountId, quoteId, orderId, rpcMessage);
1044
+ // Restrict if mode is not defined
1045
+ if (mode == null) {
1046
+ return this.handleError(route, 'Mode is undefined');
1047
+ }
1078
1048
  var rpcMessageId = rpcMessage && ((_b = (_a = JSON.parse(rpcMessage)) === null || _a === void 0 ? void 0 : _a.quote) === null || _b === void 0 ? void 0 : _b.Id);
1079
1049
  var headerId = accountId || quoteId || orderId || rpcMessageId || 'empty-for-test-mode';
1080
- var mode = this.getConfigurationContextMode(accountId, quoteId, orderId, rpcMessage);
1081
- if (mode === void 0) {
1082
- return this.reject(route, 'Mode is undefined');
1050
+ // Allow if context is already initialized with the same headerId
1051
+ if (this.contextService.isInitialized) {
1052
+ var currentContext = this.contextService.resolve();
1053
+ if (headerId && currentContext.headerId === headerId) {
1054
+ return rxjs.of(true);
1055
+ }
1083
1056
  }
1084
- var contextRouteData = {
1085
- headerId: headerId,
1086
- mode: mode,
1087
- };
1088
- route.data = Object.assign(Object.assign({}, route.data), contextRouteData);
1089
- return true;
1057
+ // Initialize context
1058
+ return this.contextService.create(headerId, mode).pipe(rxjs.tap(function (context) {
1059
+ // Update context with queryParams
1060
+ _this.contextService.update(Object.assign(Object.assign({}, context), { properties: Object.assign(Object.assign({}, context.properties), (queryParams !== null && queryParams !== void 0 ? queryParams : {})) }));
1061
+ }), rxjs.map(function () { return true; }), rxjs.catchError(function (e) {
1062
+ var message = e instanceof http.HttpErrorResponse ? e.error.message : e;
1063
+ return _this.handleError(route, message);
1064
+ }));
1090
1065
  };
1091
1066
  ContextGuard.prototype.canActivate = function (route) {
1092
1067
  return this.checkActivation(route);
@@ -1094,48 +1069,72 @@
1094
1069
  ContextGuard.prototype.canActivateChild = function (childRoute) {
1095
1070
  return this.checkActivation(childRoute);
1096
1071
  };
1097
- ContextGuard.prototype.reject = function (route, message) {
1072
+ ContextGuard.prototype.getConfigurationContextMode = function (accountId, quoteId, orderId, rpcMessage) {
1073
+ if (accountId) {
1074
+ return core.ConfigurationContextMode.ACCOUNT;
1075
+ }
1076
+ if (quoteId) {
1077
+ return core.ConfigurationContextMode.QUOTE;
1078
+ }
1079
+ if (orderId) {
1080
+ return core.ConfigurationContextMode.ORDER;
1081
+ }
1082
+ if (rpcMessage) {
1083
+ return core.ConfigurationContextMode.REMOTE;
1084
+ }
1085
+ return;
1086
+ };
1087
+ ContextGuard.prototype.handleError = function (route, message) {
1088
+ this.contextService.delete();
1098
1089
  var parentUrl = this.routerService.getFlowRootPath(route);
1099
- this.router.navigate([parentUrl, '404'], {
1100
- state: { message: message },
1101
- });
1102
- return false;
1090
+ return rxjs.from(this.router.navigate([parentUrl, '404'], { state: { message: message } })).pipe(rxjs.map(function () { return false; }));
1103
1091
  };
1104
1092
  return ContextGuard;
1105
1093
  }());
1106
- 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 }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
1094
+ 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 });
1107
1095
  ContextGuard.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ContextGuard });
1108
1096
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ContextGuard, decorators: [{
1109
1097
  type: i0.Injectable
1110
- }], ctorParameters: function () { return [{ type: i1__namespace$1.Router }, { type: FlowRouterService }]; } });
1098
+ }], ctorParameters: function () { return [{ type: i1__namespace$1.Router }, { type: FlowRouterService }, { type: i2__namespace$1.ContextService }]; } });
1111
1099
 
1112
1100
  var ProductUnloadGuard = /** @class */ (function () {
1113
- function ProductUnloadGuard(contextService, quoteDraftService, configurationService, flowDialogService) {
1101
+ function ProductUnloadGuard(router, contextService, quoteDraftService, configurationService, flowDialogService) {
1102
+ this.router = router;
1114
1103
  this.contextService = contextService;
1115
1104
  this.quoteDraftService = quoteDraftService;
1116
1105
  this.configurationService = configurationService;
1117
1106
  this.flowDialogService = flowDialogService;
1118
1107
  }
1119
- ProductUnloadGuard.prototype.canDeactivate = function () {
1108
+ ProductUnloadGuard.prototype.canDeactivate = function (_, route, currentState, nextState) {
1120
1109
  var _this = this;
1121
1110
  var observable = rxjs.of(true);
1122
1111
  if (!this.quoteDraftService.isStandalone && this.configurationService.hasUnsavedChanges) {
1123
1112
  observable = this.flowDialogService.showUnsavedChangesDialog().pipe(rxjs.map(function (confirmed) { return !confirmed; }));
1124
1113
  }
1125
- return observable.pipe(rxjs.tap(function (unload) {
1114
+ return observable.pipe(rxjs.map(function (unload) {
1126
1115
  if (unload) {
1127
- _this.contextService.update({ properties: { productId: undefined, lineItemId: undefined } });
1128
1116
  _this.configurationService.reset();
1117
+ _this.contextService.update({ properties: { productId: undefined, lineItemId: undefined } });
1118
+ if (!nextState || currentState.url === nextState.url) {
1119
+ return true;
1120
+ }
1121
+ // clear obsolete queryParams
1122
+ var urlTree_1 = _this.router.parseUrl(nextState.url);
1123
+ delete urlTree_1.queryParams.productId;
1124
+ // replace url after deactivation has finished
1125
+ setTimeout(function () { return _this.router.navigateByUrl(urlTree_1.toString(), { replaceUrl: true }); });
1126
+ return true;
1129
1127
  }
1128
+ return false;
1130
1129
  }));
1131
1130
  };
1132
1131
  return ProductUnloadGuard;
1133
1132
  }());
1134
- ProductUnloadGuard.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ProductUnloadGuard, deps: [{ token: i1__namespace$2.ContextService }, { token: i1__namespace$2.QuoteDraftService }, { token: i1__namespace$2.ConfigurationService }, { token: FlowDialogService }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
1133
+ 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 });
1135
1134
  ProductUnloadGuard.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ProductUnloadGuard });
1136
1135
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ProductUnloadGuard, decorators: [{
1137
1136
  type: i0.Injectable
1138
- }], ctorParameters: function () { return [{ type: i1__namespace$2.ContextService }, { type: i1__namespace$2.QuoteDraftService }, { type: i1__namespace$2.ConfigurationService }, { type: FlowDialogService }]; } });
1137
+ }], 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 }]; } });
1139
1138
 
1140
1139
  var RootGuard = /** @class */ (function () {
1141
1140
  function RootGuard(router, routerService) {
@@ -1204,7 +1203,7 @@
1204
1203
  }), rxjs.catchError(function (err) {
1205
1204
  var _a;
1206
1205
  var message = 'Failed to resolve Catalog component. ' + ((_a = err.message) !== null && _a !== void 0 ? _a : '');
1207
- _this.toastService.add({ severity: i3.ToastType.error, summary: message, sticky: true });
1206
+ _this.toastService.add({ severity: i3$1.ToastType.error, summary: message, sticky: true });
1208
1207
  _this.uiDefinition = undefined;
1209
1208
  _this.state$.next({ loading: false, failure: true });
1210
1209
  return rxjs.of();
@@ -1218,7 +1217,7 @@
1218
1217
  CatalogComponent.prototype.getTemplateRootComponent$ = function (template) {
1219
1218
  return this.templatesApi
1220
1219
  .fetchComponents$(template.id)
1221
- .pipe(rxjs.map(function (components) { var _a; return (_a = components.find(function (c) { return c.type === i1$3.UITemplateComponentType.ROOT; })) !== null && _a !== void 0 ? _a : undefined; }));
1220
+ .pipe(rxjs.map(function (components) { var _a; return (_a = components.find(function (c) { return c.type === core.UITemplateComponentType.ROOT; })) !== null && _a !== void 0 ? _a : undefined; }));
1222
1221
  };
1223
1222
  CatalogComponent.prototype.getLocalCatalogComponentMeta$ = function () {
1224
1223
  var _a, _b;
@@ -1239,7 +1238,7 @@
1239
1238
  };
1240
1239
  CatalogComponent.prototype.getCatalogComponentMeta$ = function () {
1241
1240
  var _this = this;
1242
- return this.templatesApi.fetchTemplates$().pipe(rxjs.map(function (templates) { return templates.find(function (template) { return template.type === i1$3.UITemplateType.CATALOG && template.name === _this.templateApiName; }); }), rxjs.switchMap(function (template) { return (template ? _this.getTemplateRootComponent$(template) : rxjs.of(undefined)); }), rxjs.switchMap(function (component) { return component ? _this.templatesApi.fetchComponentAttachments$(component.uiTemplateId, component) : rxjs.of(undefined); }));
1241
+ return this.templatesApi.fetchTemplates$().pipe(rxjs.map(function (templates) { return templates.find(function (template) { return template.type === core.UITemplateType.CATALOG && template.name === _this.templateApiName; }); }), rxjs.switchMap(function (template) { return (template ? _this.getTemplateRootComponent$(template) : rxjs.of(undefined)); }), rxjs.switchMap(function (component) { return component ? _this.templatesApi.fetchComponentAttachments$(component.uiTemplateId, component) : rxjs.of(undefined); }));
1243
1242
  };
1244
1243
  CatalogComponent.prototype.generateUIDefinition$ = function () {
1245
1244
  var _this = this;
@@ -1271,8 +1270,8 @@
1271
1270
  };
1272
1271
  return CatalogComponent;
1273
1272
  }());
1274
- CatalogComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: CatalogComponent, deps: [{ token: i1__namespace$4.UITemplatesApiService }, { token: i1__namespace$2.ContextService }, { token: i0__namespace.ChangeDetectorRef }, { token: i3__namespace.ToastService }, { token: FLOW_CUSTOMIZATION, optional: true }], target: i0__namespace.ɵɵFactoryTarget.Component });
1275
- 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$1.PreviewComponent, selector: "vl-cms-preview", inputs: ["modelId", "uiDefinition", "clearState"] }], directives: [{ type: i9__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i9__namespace.AsyncPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
1273
+ CatalogComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: CatalogComponent, deps: [{ token: i1__namespace$2.UITemplatesApiService }, { token: i2__namespace$1.ContextService }, { token: i0__namespace.ChangeDetectorRef }, { token: i3__namespace$1.ToastService }, { token: FLOW_CUSTOMIZATION, optional: true }], target: i0__namespace.ɵɵFactoryTarget.Component });
1274
+ 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$1.LoaderComponent, selector: "vl-loader", inputs: ["label", "overlayVisible"] }, { type: i4__namespace.PreviewComponent, selector: "vl-cms-preview", inputs: ["modelId", "uiDefinition", "clearState"] }], directives: [{ type: i9__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i9__namespace.AsyncPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
1276
1275
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: CatalogComponent, decorators: [{
1277
1276
  type: i0.Component,
1278
1277
  args: [{
@@ -1282,7 +1281,7 @@
1282
1281
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
1283
1282
  }]
1284
1283
  }], ctorParameters: function () {
1285
- return [{ type: i1__namespace$4.UITemplatesApiService }, { type: i1__namespace$2.ContextService }, { type: i0__namespace.ChangeDetectorRef }, { type: i3__namespace.ToastService }, { type: undefined, decorators: [{
1284
+ return [{ type: i1__namespace$2.UITemplatesApiService }, { type: i2__namespace$1.ContextService }, { type: i0__namespace.ChangeDetectorRef }, { type: i3__namespace$1.ToastService }, { type: undefined, decorators: [{
1286
1285
  type: i0.Optional
1287
1286
  }, {
1288
1287
  type: i0.Inject,
@@ -1296,13 +1295,13 @@
1296
1295
  return CatalogModule;
1297
1296
  }());
1298
1297
  CatalogModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: CatalogModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
1299
- CatalogModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: CatalogModule, declarations: [CatalogComponent], imports: [i9.CommonModule, i4$1.PreviewModule, i3.LoaderModule], exports: [CatalogComponent] });
1300
- CatalogModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: CatalogModule, imports: [[i9.CommonModule, i4$1.PreviewModule, i3.LoaderModule]] });
1298
+ CatalogModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: CatalogModule, declarations: [CatalogComponent], imports: [i9.CommonModule, i4.PreviewModule, i3$1.LoaderModule], exports: [CatalogComponent] });
1299
+ CatalogModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: CatalogModule, imports: [[i9.CommonModule, i4.PreviewModule, i3$1.LoaderModule]] });
1301
1300
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: CatalogModule, decorators: [{
1302
1301
  type: i0.NgModule,
1303
1302
  args: [{
1304
1303
  declarations: [CatalogComponent],
1305
- imports: [i9.CommonModule, i4$1.PreviewModule, i3.LoaderModule],
1304
+ imports: [i9.CommonModule, i4.PreviewModule, i3$1.LoaderModule],
1306
1305
  exports: [CatalogComponent],
1307
1306
  }]
1308
1307
  }] });
@@ -1360,8 +1359,8 @@
1360
1359
  };
1361
1360
  return DebugComponent;
1362
1361
  }());
1363
- DebugComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: DebugComponent, deps: [{ token: i1__namespace$4.FlowsApiService }, { token: i1__namespace$1.Router }, { token: i1__namespace$1.ActivatedRoute }, { token: i1__namespace$2.ContextService }, { token: i1__namespace$2.FlowConfigurationService }, { token: i1__namespace$2.QuoteDraftService }], target: i0__namespace.ɵɵFactoryTarget.Component });
1364
- 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\n <div class=\"field\">\n <label>SF Object Name</label>\n <p-dropdown\n appendTo=\"body\"\n formControlName=\"name\"\n [autoDisplayFirst]=\"false\"\n [options]=\"objectNames\"\n ></p-dropdown>\n </div>\n </div>\n\n <p-button\n styleClass=\"p-button-primary\"\n label=\"Run Flow\"\n [disabled]=\"!form.value.id || !selectedFlow\"\n (onClick)=\"runFlow()\"\n ></p-button>\n</form>\n\n<table>\n <thead>\n <tr>\n <th [width]=\"30\"></th>\n <th [width]=\"160\">ID</th>\n <th [width]=\"160\">Entry Path</th>\n <th>QueryParams</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let flow of flows$ | async\" (click)=\"selectedFlow = flow\">\n <td><p-radioButton [inputId]=\"flow.id\" name=\"flow\" [value]=\"flow\" [(ngModel)]=\"selectedFlow\"></p-radioButton></td>\n <td>{{ flow.id }}</td>\n <td>{{ flow.entryPath }}</td>\n <td>{{ flow.queryParamsStr }}</td>\n </tr>\n </tbody>\n</table>\n", 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: i4__namespace$2.Dropdown, selector: "p-dropdown", inputs: ["scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "filterPlaceholder", "filterLocale", "inputId", "selectId", "dataKey", "filterBy", "autofocus", "resetFilterOnHide", "dropdownIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "virtualScroll", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "ariaFilterLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "disabled", "options", "filterValue"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear"] }, { type: i5__namespace.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "style", "styleClass", "badgeClass"], outputs: ["onClick", "onFocus", "onBlur"] }, { type: i6__namespace$1.RadioButton, selector: "p-radioButton", inputs: ["value", "formControlName", "name", "disabled", "label", "tabindex", "inputId", "ariaLabelledBy", "ariaLabel", "style", "styleClass", "labelStyleClass"], outputs: ["onClick", "onFocus", "onBlur"] }], directives: [{ type: i7__namespace.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i7__namespace.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i7__namespace.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i7__namespace.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i7__namespace.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i7__namespace.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i8__namespace.InputText, selector: "[pInputText]" }, { type: i9__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i7__namespace.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], pipes: { "async": i9__namespace.AsyncPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
1362
+ DebugComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: DebugComponent, deps: [{ token: i1__namespace$2.FlowsApiService }, { token: i1__namespace$1.Router }, { token: i1__namespace$1.ActivatedRoute }, { token: i2__namespace$1.ContextService }, { token: i2__namespace$1.FlowConfigurationService }, { token: i2__namespace$1.QuoteDraftService }], target: i0__namespace.ɵɵFactoryTarget.Component });
1363
+ 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\n <div class=\"field\">\n <label>SF Object Name</label>\n <p-dropdown\n appendTo=\"body\"\n formControlName=\"name\"\n [autoDisplayFirst]=\"false\"\n [options]=\"objectNames\"\n ></p-dropdown>\n </div>\n </div>\n\n <p-button\n styleClass=\"p-button-primary\"\n label=\"Run Flow\"\n [disabled]=\"!form.value.id || !selectedFlow\"\n (onClick)=\"runFlow()\"\n ></p-button>\n</form>\n\n<table>\n <thead>\n <tr>\n <th [width]=\"30\"></th>\n <th [width]=\"160\">ID</th>\n <th [width]=\"160\">Entry Path</th>\n <th>QueryParams</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let flow of flows$ | async\" (click)=\"selectedFlow = flow\">\n <td><p-radioButton [inputId]=\"flow.id\" name=\"flow\" [value]=\"flow\" [(ngModel)]=\"selectedFlow\"></p-radioButton></td>\n <td>{{ flow.id }}</td>\n <td>{{ flow.entryPath }}</td>\n <td>{{ flow.queryParamsStr }}</td>\n </tr>\n </tbody>\n</table>\n", 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: i4__namespace$1.Dropdown, selector: "p-dropdown", inputs: ["scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "filterPlaceholder", "filterLocale", "inputId", "selectId", "dataKey", "filterBy", "autofocus", "resetFilterOnHide", "dropdownIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "virtualScroll", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "ariaFilterLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "disabled", "options", "filterValue"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear"] }, { 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.RadioButton, selector: "p-radioButton", inputs: ["value", "formControlName", "name", "disabled", "label", "tabindex", "inputId", "ariaLabelledBy", "ariaLabel", "style", "styleClass", "labelStyleClass"], outputs: ["onClick", "onFocus", "onBlur"] }], directives: [{ type: i7__namespace.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i7__namespace.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i7__namespace.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i7__namespace.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i7__namespace.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i7__namespace.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i8__namespace.InputText, selector: "[pInputText]" }, { type: i9__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i7__namespace.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], pipes: { "async": i9__namespace.AsyncPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
1365
1364
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: DebugComponent, decorators: [{
1366
1365
  type: i0.Component,
1367
1366
  args: [{
@@ -1370,7 +1369,7 @@
1370
1369
  styleUrls: ['./debug.component.scss'],
1371
1370
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
1372
1371
  }]
1373
- }], ctorParameters: function () { return [{ type: i1__namespace$4.FlowsApiService }, { type: i1__namespace$1.Router }, { type: i1__namespace$1.ActivatedRoute }, { type: i1__namespace$2.ContextService }, { type: i1__namespace$2.FlowConfigurationService }, { type: i1__namespace$2.QuoteDraftService }]; } });
1372
+ }], ctorParameters: function () { return [{ type: i1__namespace$2.FlowsApiService }, { type: i1__namespace$1.Router }, { type: i1__namespace$1.ActivatedRoute }, { type: i2__namespace$1.ContextService }, { type: i2__namespace$1.FlowConfigurationService }, { type: i2__namespace$1.QuoteDraftService }]; } });
1374
1373
 
1375
1374
  var routes$1 = [{ path: '', component: DebugComponent }];
1376
1375
  var DebugModule = /** @class */ (function () {
@@ -1381,19 +1380,19 @@
1381
1380
  DebugModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: DebugModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
1382
1381
  DebugModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: DebugModule, declarations: [DebugComponent], imports: [i9.CommonModule,
1383
1382
  i7.FormsModule,
1384
- i7.ReactiveFormsModule, i1__namespace$1.RouterModule, i6$1.RadioButtonModule,
1385
- i5.ButtonModule,
1383
+ i7.ReactiveFormsModule, i1__namespace$1.RouterModule, i6.RadioButtonModule,
1384
+ i2.ButtonModule,
1386
1385
  i8.InputTextModule,
1387
- i4$2.DropdownModule] });
1386
+ i4$1.DropdownModule] });
1388
1387
  DebugModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: DebugModule, imports: [[
1389
1388
  i9.CommonModule,
1390
1389
  i7.FormsModule,
1391
1390
  i7.ReactiveFormsModule,
1392
1391
  i1$1.RouterModule.forChild(routes$1),
1393
- i6$1.RadioButtonModule,
1394
- i5.ButtonModule,
1392
+ i6.RadioButtonModule,
1393
+ i2.ButtonModule,
1395
1394
  i8.InputTextModule,
1396
- i4$2.DropdownModule,
1395
+ i4$1.DropdownModule,
1397
1396
  ]] });
1398
1397
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: DebugModule, decorators: [{
1399
1398
  type: i0.NgModule,
@@ -1404,10 +1403,10 @@
1404
1403
  i7.FormsModule,
1405
1404
  i7.ReactiveFormsModule,
1406
1405
  i1$1.RouterModule.forChild(routes$1),
1407
- i6$1.RadioButtonModule,
1408
- i5.ButtonModule,
1406
+ i6.RadioButtonModule,
1407
+ i2.ButtonModule,
1409
1408
  i8.InputTextModule,
1410
- i4$2.DropdownModule,
1409
+ i4$1.DropdownModule,
1411
1410
  ],
1412
1411
  }]
1413
1412
  }] });
@@ -1473,7 +1472,7 @@
1473
1472
  lineItemId && quote.currentState ? this.reConfigure(lineItemId, quote.currentState) : this.configure(productId);
1474
1473
  };
1475
1474
  LegacyProductComponent.prototype.getLineItemId = function (quote, queryParams) {
1476
- if (i1$3.EntityUtil.isPresent(queryParams['lineItemId'])) {
1475
+ if (core.EntityUtil.isPresent(queryParams['lineItemId'])) {
1477
1476
  return queryParams['lineItemId'];
1478
1477
  }
1479
1478
  return quote.currentState
@@ -1482,12 +1481,12 @@
1482
1481
  .find(function (id) { return id; });
1483
1482
  };
1484
1483
  LegacyProductComponent.prototype.configure = function (productId) {
1485
- var runtimeContext = this.getRuntimeContext(productId, '', i1$2.RuntimeOperation.INIT);
1484
+ var runtimeContext = this.getRuntimeContext(productId, '', i2$1.RuntimeOperation.INIT);
1486
1485
  this.startRuntime({}, runtimeContext);
1487
1486
  };
1488
1487
  LegacyProductComponent.prototype.reConfigure = function (lineItemId, currentState) {
1489
- var currentStateItem = i1$3.EntityUtil.findById(lineItemId, currentState);
1490
- var runtimeContext = this.getRuntimeContext(currentStateItem.productId, currentStateItem.offeringId, i1$2.RuntimeOperation.UPDATE);
1488
+ var currentStateItem = core.EntityUtil.findById(lineItemId, currentState);
1489
+ var runtimeContext = this.getRuntimeContext(currentStateItem.productId, currentStateItem.offeringId, i2$1.RuntimeOperation.UPDATE);
1491
1490
  var states = {
1492
1491
  configurableRamp: currentStateItem,
1493
1492
  currentState: currentState,
@@ -1517,14 +1516,14 @@
1517
1516
  LegacyProductComponent.prototype.getRuntimeContext = function (productId, offeringId, runtimeOperation) {
1518
1517
  var _this = this;
1519
1518
  return this.runtimeContextService.getRuntimeContext(productId, offeringId).pipe(operators.map(function (runtimeContext) {
1520
- runtimeContext.invocationContext = { runtimeOperation: i1$2.RuntimeOperation[runtimeOperation] };
1519
+ runtimeContext.invocationContext = { runtimeOperation: i2$1.RuntimeOperation[runtimeOperation] };
1521
1520
  return runtimeContext;
1522
1521
  }), operators.switchMap(function (runtimeContext) { return _this.customizeContext(productId, runtimeContext); }));
1523
1522
  };
1524
1523
  return LegacyProductComponent;
1525
1524
  }());
1526
- 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: i1__namespace$2.QuoteDraftService }, { token: i1__namespace$4.QuoteApiService }, { token: i1__namespace$2.ContextService }, { token: i4__namespace$3.RuntimeContextService }, { token: i4__namespace$3.RuntimeService }, { token: i4__namespace$3.CurrentStateService }, { token: FLOW_CUSTOMIZATION, optional: true }], target: i0__namespace.ɵɵFactoryTarget.Component });
1527
- 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$3.RuntimeComponent, selector: "vl-runtime", outputs: ["solutionUpdated"] }] });
1525
+ 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: i1__namespace$2.QuoteApiService }, { token: i2__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 });
1526
+ 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"] }] });
1528
1527
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: LegacyProductComponent, decorators: [{
1529
1528
  type: i0.Component,
1530
1529
  args: [{
@@ -1532,7 +1531,7 @@
1532
1531
  styleUrls: ['./legacy-product.component.scss'],
1533
1532
  }]
1534
1533
  }], ctorParameters: function () {
1535
- return [{ type: i1__namespace$1.ActivatedRoute }, { type: i1__namespace$2.QuoteDraftService }, { type: i1__namespace$4.QuoteApiService }, { type: i1__namespace$2.ContextService }, { type: i4__namespace$3.RuntimeContextService }, { type: i4__namespace$3.RuntimeService }, { type: i4__namespace$3.CurrentStateService }, { type: undefined, decorators: [{
1534
+ return [{ type: i1__namespace$1.ActivatedRoute }, { type: i2__namespace$1.QuoteDraftService }, { type: i1__namespace$2.QuoteApiService }, { type: i2__namespace$1.ContextService }, { type: i4__namespace$2.RuntimeContextService }, { type: i4__namespace$2.RuntimeService }, { type: i4__namespace$2.CurrentStateService }, { type: undefined, decorators: [{
1536
1535
  type: i0.Optional
1537
1536
  }, {
1538
1537
  type: i0.Inject,
@@ -1546,13 +1545,13 @@
1546
1545
  return LegacyProductModule;
1547
1546
  }());
1548
1547
  LegacyProductModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: LegacyProductModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
1549
- LegacyProductModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: LegacyProductModule, declarations: [LegacyProductComponent], imports: [i9.CommonModule, i4$3.RuntimeModule, i1__namespace$5.TooltipModule], exports: [LegacyProductComponent] });
1550
- LegacyProductModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: LegacyProductModule, imports: [[i9.CommonModule, i4$3.RuntimeModule, i1$5.TooltipModule.forRoot()]] });
1548
+ LegacyProductModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: LegacyProductModule, declarations: [LegacyProductComponent], imports: [i9.CommonModule, i4$2.RuntimeModule, i1__namespace$3.TooltipModule], exports: [LegacyProductComponent] });
1549
+ LegacyProductModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: LegacyProductModule, imports: [[i9.CommonModule, i4$2.RuntimeModule, i1$3.TooltipModule.forRoot()]] });
1551
1550
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: LegacyProductModule, decorators: [{
1552
1551
  type: i0.NgModule,
1553
1552
  args: [{
1554
1553
  declarations: [LegacyProductComponent],
1555
- imports: [i9.CommonModule, i4$3.RuntimeModule, i1$5.TooltipModule.forRoot()],
1554
+ imports: [i9.CommonModule, i4$2.RuntimeModule, i1$3.TooltipModule.forRoot()],
1556
1555
  exports: [LegacyProductComponent],
1557
1556
  }]
1558
1557
  }] });
@@ -1598,7 +1597,7 @@
1598
1597
  return;
1599
1598
  }
1600
1599
  var lineItemId = this.getLineItemId(quote, productId, contextProperties.lineItemId);
1601
- var currentStateItem = i1$3.EntityUtil.findById(lineItemId, quote.currentState);
1600
+ var currentStateItem = core.EntityUtil.findById(lineItemId, quote.currentState);
1602
1601
  var offeringId = (currentStateItem !== null && currentStateItem !== void 0 ? currentStateItem : {}).offeringId;
1603
1602
  if (currentStateItem) {
1604
1603
  this.conigurationService.updateCurrentStates({
@@ -1629,8 +1628,8 @@
1629
1628
  };
1630
1629
  return ProductComponent;
1631
1630
  }());
1632
- ProductComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ProductComponent, deps: [{ token: i1__namespace$2.ContextService }, { token: i1__namespace$2.ConfigurationRuntimeService }, { token: i1__namespace$2.ConfigurationService }, { token: i1__namespace$2.QuoteDraftService }, { token: i2__namespace.MessageService }, { token: FLOW_CUSTOMIZATION, optional: true }], target: i0__namespace.ɵɵFactoryTarget.Component });
1633
- 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$1.PreviewComponent, selector: "vl-cms-preview", inputs: ["modelId", "uiDefinition", "clearState"] }], directives: [{ type: i9__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i9__namespace.AsyncPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
1631
+ 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$2.MessageService }, { token: FLOW_CUSTOMIZATION, optional: true }], target: i0__namespace.ɵɵFactoryTarget.Component });
1632
+ 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$1.LoaderComponent, selector: "vl-loader", inputs: ["label", "overlayVisible"] }, { type: i4__namespace.PreviewComponent, selector: "vl-cms-preview", inputs: ["modelId", "uiDefinition", "clearState"] }], directives: [{ type: i9__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i9__namespace.AsyncPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
1634
1633
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ProductComponent, decorators: [{
1635
1634
  type: i0.Component,
1636
1635
  args: [{
@@ -1640,7 +1639,7 @@
1640
1639
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
1641
1640
  }]
1642
1641
  }], ctorParameters: function () {
1643
- return [{ type: i1__namespace$2.ContextService }, { type: i1__namespace$2.ConfigurationRuntimeService }, { type: i1__namespace$2.ConfigurationService }, { type: i1__namespace$2.QuoteDraftService }, { type: i2__namespace.MessageService }, { type: undefined, decorators: [{
1642
+ return [{ type: i2__namespace$1.ContextService }, { type: i2__namespace$1.ConfigurationRuntimeService }, { type: i2__namespace$1.ConfigurationService }, { type: i2__namespace$1.QuoteDraftService }, { type: i2__namespace$2.MessageService }, { type: undefined, decorators: [{
1644
1643
  type: i0.Optional
1645
1644
  }, {
1646
1645
  type: i0.Inject,
@@ -1654,13 +1653,13 @@
1654
1653
  return ProductModule;
1655
1654
  }());
1656
1655
  ProductModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ProductModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
1657
- ProductModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ProductModule, declarations: [ProductComponent], imports: [i9.CommonModule, i4$1.PreviewModule, i3.LoaderModule], exports: [ProductComponent] });
1658
- ProductModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ProductModule, imports: [[i9.CommonModule, i4$1.PreviewModule, i3.LoaderModule]] });
1656
+ ProductModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ProductModule, declarations: [ProductComponent], imports: [i9.CommonModule, i4.PreviewModule, i3$1.LoaderModule], exports: [ProductComponent] });
1657
+ ProductModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ProductModule, imports: [[i9.CommonModule, i4.PreviewModule, i3$1.LoaderModule]] });
1659
1658
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ProductModule, decorators: [{
1660
1659
  type: i0.NgModule,
1661
1660
  args: [{
1662
1661
  declarations: [ProductComponent],
1663
- imports: [i9.CommonModule, i4$1.PreviewModule, i3.LoaderModule],
1662
+ imports: [i9.CommonModule, i4.PreviewModule, i3$1.LoaderModule],
1664
1663
  exports: [ProductComponent],
1665
1664
  }]
1666
1665
  }] });
@@ -1734,7 +1733,7 @@
1734
1733
  }), rxjs.catchError(function (err) {
1735
1734
  var _a;
1736
1735
  var message = 'Failed to resolve Shopping cart component. ' + ((_a = err.message) !== null && _a !== void 0 ? _a : '');
1737
- _this.toastService.add({ severity: i3.ToastType.error, summary: message, sticky: true });
1736
+ _this.toastService.add({ severity: i3$1.ToastType.error, summary: message, sticky: true });
1738
1737
  _this.uiDefinition = undefined;
1739
1738
  _this.state$.next({ loading: false, failure: true });
1740
1739
  return rxjs.of();
@@ -1748,7 +1747,7 @@
1748
1747
  ShoppingCartComponent.prototype.getTemplateRootComponent$ = function (template) {
1749
1748
  return this.templatesApi
1750
1749
  .fetchComponents$(template.id)
1751
- .pipe(rxjs.map(function (components) { var _a; return (_a = components.find(function (c) { return c.type === i1$3.UITemplateComponentType.ROOT; })) !== null && _a !== void 0 ? _a : undefined; }));
1750
+ .pipe(rxjs.map(function (components) { var _a; return (_a = components.find(function (c) { return c.type === core.UITemplateComponentType.ROOT; })) !== null && _a !== void 0 ? _a : undefined; }));
1752
1751
  };
1753
1752
  ShoppingCartComponent.prototype.getLocalShoppingCartComponentMeta$ = function () {
1754
1753
  var _a, _b;
@@ -1769,7 +1768,7 @@
1769
1768
  };
1770
1769
  ShoppingCartComponent.prototype.getShoppingCartComponentMeta$ = function () {
1771
1770
  var _this = this;
1772
- return this.templatesApi.fetchTemplates$().pipe(rxjs.map(function (templates) { return templates.find(function (template) { return template.type === i1$3.UITemplateType.SHOPPING_CART && template.name === _this.templateApiName; }); }), rxjs.switchMap(function (template) { return (template ? _this.getTemplateRootComponent$(template) : rxjs.of(undefined)); }), rxjs.switchMap(function (component) { return component ? _this.templatesApi.fetchComponentAttachments$(component.uiTemplateId, component) : rxjs.of(undefined); }));
1771
+ return this.templatesApi.fetchTemplates$().pipe(rxjs.map(function (templates) { return templates.find(function (template) { return template.type === core.UITemplateType.SHOPPING_CART && template.name === _this.templateApiName; }); }), rxjs.switchMap(function (template) { return (template ? _this.getTemplateRootComponent$(template) : rxjs.of(undefined)); }), rxjs.switchMap(function (component) { return component ? _this.templatesApi.fetchComponentAttachments$(component.uiTemplateId, component) : rxjs.of(undefined); }));
1773
1772
  };
1774
1773
  ShoppingCartComponent.prototype.generateUIDefinition$ = function () {
1775
1774
  var _this = this;
@@ -1801,8 +1800,8 @@
1801
1800
  };
1802
1801
  return ShoppingCartComponent;
1803
1802
  }());
1804
- ShoppingCartComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ShoppingCartComponent, deps: [{ token: i1__namespace$4.UITemplatesApiService }, { token: i1__namespace$2.ContextService }, { token: i0__namespace.ChangeDetectorRef }, { token: i3__namespace.ToastService }, { token: FLOW_CUSTOMIZATION, optional: true }], target: i0__namespace.ɵɵFactoryTarget.Component });
1805
- 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$1.PreviewComponent, selector: "vl-cms-preview", inputs: ["modelId", "uiDefinition", "clearState"] }], directives: [{ type: i9__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i9__namespace.AsyncPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
1803
+ ShoppingCartComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ShoppingCartComponent, deps: [{ token: i1__namespace$2.UITemplatesApiService }, { token: i2__namespace$1.ContextService }, { token: i0__namespace.ChangeDetectorRef }, { token: i3__namespace$1.ToastService }, { token: FLOW_CUSTOMIZATION, optional: true }], target: i0__namespace.ɵɵFactoryTarget.Component });
1804
+ 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$1.LoaderComponent, selector: "vl-loader", inputs: ["label", "overlayVisible"] }, { type: i4__namespace.PreviewComponent, selector: "vl-cms-preview", inputs: ["modelId", "uiDefinition", "clearState"] }], directives: [{ type: i9__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i9__namespace.AsyncPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
1806
1805
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ShoppingCartComponent, decorators: [{
1807
1806
  type: i0.Component,
1808
1807
  args: [{
@@ -1812,7 +1811,7 @@
1812
1811
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
1813
1812
  }]
1814
1813
  }], ctorParameters: function () {
1815
- return [{ type: i1__namespace$4.UITemplatesApiService }, { type: i1__namespace$2.ContextService }, { type: i0__namespace.ChangeDetectorRef }, { type: i3__namespace.ToastService }, { type: undefined, decorators: [{
1814
+ return [{ type: i1__namespace$2.UITemplatesApiService }, { type: i2__namespace$1.ContextService }, { type: i0__namespace.ChangeDetectorRef }, { type: i3__namespace$1.ToastService }, { type: undefined, decorators: [{
1816
1815
  type: i0.Optional
1817
1816
  }, {
1818
1817
  type: i0.Inject,
@@ -1826,55 +1825,17 @@
1826
1825
  return ShoppingCartModule;
1827
1826
  }());
1828
1827
  ShoppingCartModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ShoppingCartModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
1829
- ShoppingCartModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ShoppingCartModule, declarations: [ShoppingCartComponent], imports: [i9.CommonModule, i4$1.PreviewModule, i3.LoaderModule], exports: [ShoppingCartComponent] });
1830
- ShoppingCartModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ShoppingCartModule, imports: [[i9.CommonModule, i4$1.PreviewModule, i3.LoaderModule]] });
1828
+ ShoppingCartModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ShoppingCartModule, declarations: [ShoppingCartComponent], imports: [i9.CommonModule, i4.PreviewModule, i3$1.LoaderModule], exports: [ShoppingCartComponent] });
1829
+ ShoppingCartModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ShoppingCartModule, imports: [[i9.CommonModule, i4.PreviewModule, i3$1.LoaderModule]] });
1831
1830
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ShoppingCartModule, decorators: [{
1832
1831
  type: i0.NgModule,
1833
1832
  args: [{
1834
1833
  declarations: [ShoppingCartComponent],
1835
- imports: [i9.CommonModule, i4$1.PreviewModule, i3.LoaderModule],
1834
+ imports: [i9.CommonModule, i4.PreviewModule, i3$1.LoaderModule],
1836
1835
  exports: [ShoppingCartComponent],
1837
1836
  }]
1838
1837
  }] });
1839
1838
 
1840
- var ContextResolver = /** @class */ (function () {
1841
- function ContextResolver(contextService, router, routerService) {
1842
- this.contextService = contextService;
1843
- this.router = router;
1844
- this.routerService = routerService;
1845
- }
1846
- ContextResolver.prototype.handleError = function (route, message) {
1847
- this.contextService.delete();
1848
- var parentUrl = this.routerService.getFlowRootPath(route);
1849
- return rxjs.from(this.router.navigate([parentUrl, '404'], { state: { message: message } }));
1850
- };
1851
- ContextResolver.prototype.resolve = function (route) {
1852
- var _this = this;
1853
- var queryParams = route.queryParams, data = route.data;
1854
- var uiDefinitionId = queryParams.uiDefinitionId;
1855
- var _a = data !== null && data !== void 0 ? data : {}, headerId = _a.headerId, mode = _a.mode;
1856
- if (this.contextService.isInitialized) {
1857
- var currentContext = this.contextService.resolve();
1858
- if (headerId && currentContext.headerId === headerId) {
1859
- return rxjs.of(currentContext);
1860
- }
1861
- }
1862
- return this.contextService.create(headerId, mode).pipe(operators.tap(function (context) {
1863
- _this.contextService.update(Object.assign(Object.assign({}, context), { uiDefinitionId: uiDefinitionId, properties: Object.assign(Object.assign({}, context.properties), (queryParams !== null && queryParams !== void 0 ? queryParams : {})) }));
1864
- }), operators.catchError(function (e) {
1865
- var message = e instanceof http.HttpErrorResponse ? e.error.message : e;
1866
- _this.handleError(route, message);
1867
- return rxjs.of(null);
1868
- }));
1869
- };
1870
- return ContextResolver;
1871
- }());
1872
- ContextResolver.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ContextResolver, deps: [{ token: i1__namespace$2.ContextService }, { token: i1__namespace$1.Router }, { token: FlowRouterService }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
1873
- ContextResolver.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ContextResolver });
1874
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ContextResolver, decorators: [{
1875
- type: i0.Injectable
1876
- }], ctorParameters: function () { return [{ type: i1__namespace$2.ContextService }, { type: i1__namespace$1.Router }, { type: FlowRouterService }]; } });
1877
-
1878
1839
  var FlowResolver = /** @class */ (function () {
1879
1840
  function FlowResolver(router, flowsApiService, routerService) {
1880
1841
  this.router = router;
@@ -1922,11 +1883,11 @@
1922
1883
  };
1923
1884
  return FlowResolver;
1924
1885
  }());
1925
- 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: i1__namespace$4.FlowsApiService }, { token: FlowRouterService }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
1886
+ 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: i1__namespace$2.FlowsApiService }, { token: FlowRouterService }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
1926
1887
  FlowResolver.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowResolver });
1927
1888
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowResolver, decorators: [{
1928
1889
  type: i0.Injectable
1929
- }], ctorParameters: function () { return [{ type: i1__namespace$1.Router }, { type: i1__namespace$4.FlowsApiService }, { type: FlowRouterService }]; } });
1890
+ }], ctorParameters: function () { return [{ type: i1__namespace$1.Router }, { type: i1__namespace$2.FlowsApiService }, { type: FlowRouterService }]; } });
1930
1891
 
1931
1892
  var QuoteResolver = /** @class */ (function () {
1932
1893
  function QuoteResolver(router, quoteDraftService, routerService, contextService, flowConfiguration) {
@@ -1948,12 +1909,13 @@
1948
1909
  };
1949
1910
  QuoteResolver.prototype.resolve = function (route) {
1950
1911
  var _this = this;
1951
- var headerId = route.data.headerId;
1912
+ var headerId = this.contextService.resolve().headerId;
1952
1913
  var quote = this.quoteDraftService.quoteSnapshot;
1953
1914
  if (quote && quote.quoteId === headerId) {
1954
1915
  return rxjs.of(true);
1955
1916
  }
1956
1917
  var queryParams = route.queryParams;
1918
+ this.contextService.update({ properties: queryParams });
1957
1919
  return this.quoteDraftService.init(headerId, queryParams).pipe(rxjs.switchMap(function () { return _this.initFlow$(); }), rxjs.catchError(function (e) {
1958
1920
  var message = e instanceof http.HttpErrorResponse ? e.error.message : e;
1959
1921
  return _this.handleError(route, message);
@@ -1961,11 +1923,11 @@
1961
1923
  };
1962
1924
  return QuoteResolver;
1963
1925
  }());
1964
- 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: i1__namespace$2.QuoteDraftService }, { token: FlowRouterService }, { token: i1__namespace$2.ContextService }, { token: i1__namespace$2.FlowConfigurationService }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
1926
+ 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 });
1965
1927
  QuoteResolver.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: QuoteResolver });
1966
1928
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: QuoteResolver, decorators: [{
1967
1929
  type: i0.Injectable
1968
- }], ctorParameters: function () { return [{ type: i1__namespace$1.Router }, { type: i1__namespace$2.QuoteDraftService }, { type: FlowRouterService }, { type: i1__namespace$2.ContextService }, { type: i1__namespace$2.FlowConfigurationService }]; } });
1930
+ }], 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 }]; } });
1969
1931
 
1970
1932
  var rootRoute = {
1971
1933
  id: VELOCE_FLOW_ROOT_ROUTE,
@@ -1988,7 +1950,7 @@
1988
1950
  path: 'product',
1989
1951
  component: LegacyProductComponent,
1990
1952
  runGuardsAndResolvers: 'paramsOrQueryParamsChange',
1991
- resolve: { context: ContextResolver, quote: QuoteResolver },
1953
+ resolve: { quote: QuoteResolver },
1992
1954
  canActivate: [ContextGuard],
1993
1955
  },
1994
1956
  ],
@@ -1997,7 +1959,7 @@
1997
1959
  path: 'product',
1998
1960
  component: ProductComponent,
1999
1961
  runGuardsAndResolvers: 'paramsOrQueryParamsChange',
2000
- resolve: { context: ContextResolver, quote: QuoteResolver },
1962
+ resolve: { quote: QuoteResolver },
2001
1963
  canActivate: [ContextGuard],
2002
1964
  canDeactivate: [ProductUnloadGuard],
2003
1965
  data: { showHeader: true },
@@ -2006,7 +1968,7 @@
2006
1968
  path: 'cart',
2007
1969
  component: ShoppingCartComponent,
2008
1970
  runGuardsAndResolvers: 'paramsOrQueryParamsChange',
2009
- resolve: { context: ContextResolver, quote: QuoteResolver },
1971
+ resolve: { quote: QuoteResolver },
2010
1972
  canActivate: [ContextGuard],
2011
1973
  data: { showHeader: true },
2012
1974
  },
@@ -2014,7 +1976,7 @@
2014
1976
  path: 'catalog',
2015
1977
  component: CatalogComponent,
2016
1978
  runGuardsAndResolvers: 'paramsOrQueryParamsChange',
2017
- resolve: { context: ContextResolver, quote: QuoteResolver },
1979
+ resolve: { quote: QuoteResolver },
2018
1980
  canActivate: [ContextGuard],
2019
1981
  data: { showHeader: true },
2020
1982
  },
@@ -2035,29 +1997,13 @@
2035
1997
  }());
2036
1998
  FlowRoutingModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowRoutingModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
2037
1999
  FlowRoutingModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowRoutingModule, imports: [i1__namespace$1.RouterModule, ProductModule, LegacyProductModule, ShoppingCartModule, CatalogModule], exports: [i1$1.RouterModule] });
2038
- FlowRoutingModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowRoutingModule, providers: [
2039
- FlowRouterService,
2040
- RootGuard,
2041
- ContextGuard,
2042
- ProductUnloadGuard,
2043
- ContextResolver,
2044
- FlowResolver,
2045
- QuoteResolver,
2046
- ], imports: [[i1$1.RouterModule.forChild([rootRoute]), ProductModule, LegacyProductModule, ShoppingCartModule, CatalogModule], i1$1.RouterModule] });
2000
+ 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: [[i1$1.RouterModule.forChild([rootRoute]), ProductModule, LegacyProductModule, ShoppingCartModule, CatalogModule], i1$1.RouterModule] });
2047
2001
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowRoutingModule, decorators: [{
2048
2002
  type: i0.NgModule,
2049
2003
  args: [{
2050
2004
  imports: [i1$1.RouterModule.forChild([rootRoute]), ProductModule, LegacyProductModule, ShoppingCartModule, CatalogModule],
2051
2005
  exports: [i1$1.RouterModule],
2052
- providers: [
2053
- FlowRouterService,
2054
- RootGuard,
2055
- ContextGuard,
2056
- ProductUnloadGuard,
2057
- ContextResolver,
2058
- FlowResolver,
2059
- QuoteResolver,
2060
- ],
2006
+ providers: [FlowRouterService, RootGuard, ContextGuard, ProductUnloadGuard, FlowResolver, QuoteResolver],
2061
2007
  }]
2062
2008
  }] });
2063
2009
 
@@ -2069,21 +2015,21 @@
2069
2015
  FlowModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
2070
2016
  FlowModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowModule, declarations: [FlowComponent], imports: [i9.CommonModule,
2071
2017
  FlowRoutingModule,
2072
- i1$4.ApiModule,
2073
- i4$1.LauncherModule,
2074
- i3.LoaderModule,
2018
+ i1$2.ApiModule,
2019
+ i4.LauncherModule,
2020
+ i3$1.LoaderModule,
2075
2021
  FlowHeaderModule,
2076
2022
  FlowDialogModule,
2077
- i1$2.SdkCoreModule] });
2023
+ i2$1.SdkCoreModule] });
2078
2024
  FlowModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowModule, providers: [FlowService, FlowDialogService], imports: [[
2079
2025
  i9.CommonModule,
2080
2026
  FlowRoutingModule,
2081
- i1$4.ApiModule,
2082
- i4$1.LauncherModule,
2083
- i3.LoaderModule,
2027
+ i1$2.ApiModule,
2028
+ i4.LauncherModule,
2029
+ i3$1.LoaderModule,
2084
2030
  FlowHeaderModule,
2085
2031
  FlowDialogModule,
2086
- i1$2.SdkCoreModule,
2032
+ i2$1.SdkCoreModule,
2087
2033
  ]] });
2088
2034
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowModule, decorators: [{
2089
2035
  type: i0.NgModule,
@@ -2092,12 +2038,12 @@
2092
2038
  imports: [
2093
2039
  i9.CommonModule,
2094
2040
  FlowRoutingModule,
2095
- i1$4.ApiModule,
2096
- i4$1.LauncherModule,
2097
- i3.LoaderModule,
2041
+ i1$2.ApiModule,
2042
+ i4.LauncherModule,
2043
+ i3$1.LoaderModule,
2098
2044
  FlowHeaderModule,
2099
2045
  FlowDialogModule,
2100
- i1$2.SdkCoreModule,
2046
+ i2$1.SdkCoreModule,
2101
2047
  ],
2102
2048
  providers: [FlowService, FlowDialogService],
2103
2049
  }]