@veloceapps/sdk 3.1.0 → 3.1.1

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.
@@ -2,7 +2,7 @@
2
2
  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/common'), require('@angular/core'), require('@veloce/api'), require('@veloce/components'), require('@veloce/sdk/cms'), require('@veloce/sdk/core'), require('primeng/button'), require('primeng/dynamicdialog'), require('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
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
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, i2$1, i2, i1$4, i1$2, i5, i1, i4, i10, i7, i6, rxjs, i1$3, i1$1, i3, i4$1, i8, i6$1, operators, i4$2, i1$5, http) { 'use strict';
5
+ })(this, (function (exports, i9, i0, i1$3, i3$1, i1$4, i2, i5, i1, i4, i10, i7, i6, rxjs, i1$2, i1$1, i3, i4$1, i8, i6$1, operators, i4$2, i1$5, http) { 'use strict';
6
6
 
7
7
  function _interopNamespace(e) {
8
8
  if (e && e.__esModule) return e;
@@ -24,17 +24,17 @@
24
24
 
25
25
  var i9__namespace = /*#__PURE__*/_interopNamespace(i9);
26
26
  var i0__namespace = /*#__PURE__*/_interopNamespace(i0);
27
- var i2__namespace$1 = /*#__PURE__*/_interopNamespace(i2$1);
28
- var i2__namespace = /*#__PURE__*/_interopNamespace(i2);
27
+ var i1__namespace$3 = /*#__PURE__*/_interopNamespace(i1$3);
28
+ var i3__namespace$1 = /*#__PURE__*/_interopNamespace(i3$1);
29
29
  var i1__namespace$4 = /*#__PURE__*/_interopNamespace(i1$4);
30
- var i1__namespace$2 = /*#__PURE__*/_interopNamespace(i1$2);
30
+ var i2__namespace = /*#__PURE__*/_interopNamespace(i2);
31
31
  var i5__namespace = /*#__PURE__*/_interopNamespace(i5);
32
32
  var i1__namespace = /*#__PURE__*/_interopNamespace(i1);
33
33
  var i4__namespace = /*#__PURE__*/_interopNamespace(i4);
34
34
  var i10__namespace = /*#__PURE__*/_interopNamespace(i10);
35
35
  var i7__namespace = /*#__PURE__*/_interopNamespace(i7);
36
36
  var i6__namespace = /*#__PURE__*/_interopNamespace(i6);
37
- var i1__namespace$3 = /*#__PURE__*/_interopNamespace(i1$3);
37
+ var i1__namespace$2 = /*#__PURE__*/_interopNamespace(i1$2);
38
38
  var i1__namespace$1 = /*#__PURE__*/_interopNamespace(i1$1);
39
39
  var i3__namespace = /*#__PURE__*/_interopNamespace(i3);
40
40
  var i4__namespace$1 = /*#__PURE__*/_interopNamespace(i4$1);
@@ -493,6 +493,9 @@
493
493
  FlowRouterService.prototype.isCartRoute$ = function () {
494
494
  return this.getFlowSubpath$().pipe(rxjs.map(function (url) { return url.startsWith('cart'); }));
495
495
  };
496
+ FlowRouterService.prototype.isCatalogRoute$ = function () {
497
+ return this.getFlowSubpath$().pipe(rxjs.map(function (url) { return url.startsWith('catalog'); }));
498
+ };
496
499
  FlowRouterService.prototype.navigateToProductConfiguration = function (productId) {
497
500
  this.contextService.update({ properties: { productId: productId } });
498
501
  var routeSnapshot = this.getLastChildRouteSnapshot(this.route.snapshot);
@@ -507,14 +510,20 @@
507
510
  var flowRouteUrl = this.getFlowRootPath(routeSnapshot);
508
511
  this.router.navigate([flowRouteUrl, 'cart'], { queryParams: routeSnapshot.queryParams });
509
512
  };
513
+ FlowRouterService.prototype.navigateToCatalog = function () {
514
+ this.contextService.update({ properties: { productId: undefined } });
515
+ var routeSnapshot = this.getLastChildRouteSnapshot(this.route.snapshot);
516
+ var flowRouteUrl = this.getFlowRootPath(routeSnapshot);
517
+ this.router.navigate([flowRouteUrl, 'catalog'], { queryParams: routeSnapshot.queryParams });
518
+ };
510
519
  return FlowRouterService;
511
520
  }());
512
- 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 });
521
+ 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.ContextService }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
513
522
  FlowRouterService.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowRouterService, providedIn: 'root' });
514
523
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowRouterService, decorators: [{
515
524
  type: i0.Injectable,
516
525
  args: [{ providedIn: 'root' }]
517
- }], ctorParameters: function () { return [{ type: i1__namespace$1.Router }, { type: i1__namespace$1.ActivatedRoute }, { type: i1__namespace$2.ContextService }]; } });
526
+ }], ctorParameters: function () { return [{ type: i1__namespace$1.Router }, { type: i1__namespace$1.ActivatedRoute }, { type: i2__namespace.ContextService }]; } });
518
527
 
519
528
  var HeaderCartOverlayComponent = /** @class */ (function () {
520
529
  function HeaderCartOverlayComponent(baseHttpService, flowConfiguration, routerService) {
@@ -629,8 +638,8 @@
629
638
  };
630
639
  return HeaderCartOverlayComponent;
631
640
  }());
632
- 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 });
633
- 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)\"\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: i3__namespace.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { type: i2__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 });
641
+ HeaderCartOverlayComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: HeaderCartOverlayComponent, deps: [{ token: i1__namespace$2.BaseHttpService }, { token: i2__namespace.FlowConfigurationService }, { token: FlowRouterService }], target: i0__namespace.ɵɵFactoryTarget.Component });
642
+ 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)\"\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: i3__namespace.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 });
634
643
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: HeaderCartOverlayComponent, decorators: [{
635
644
  type: i0.Component,
636
645
  args: [{
@@ -639,7 +648,7 @@
639
648
  styleUrls: ['./cart-overlay.component.scss'],
640
649
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
641
650
  }]
642
- }], ctorParameters: function () { return [{ type: i1__namespace$3.BaseHttpService }, { type: i1__namespace$2.FlowConfigurationService }, { type: FlowRouterService }]; }, propDecorators: { overlayPanel: [{
651
+ }], ctorParameters: function () { return [{ type: i1__namespace$2.BaseHttpService }, { type: i2__namespace.FlowConfigurationService }, { type: FlowRouterService }]; }, propDecorators: { overlayPanel: [{
643
652
  type: i0.ViewChild,
644
653
  args: [i4.OverlayPanel]
645
654
  }], products: [{
@@ -652,13 +661,13 @@
652
661
  return HeaderCartOverlayModule;
653
662
  }());
654
663
  HeaderCartOverlayModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: HeaderCartOverlayModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
655
- 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, i2.LetDirectiveModule, i6.InputNumberModule], exports: [HeaderCartOverlayComponent] });
656
- 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, i2.LetDirectiveModule, i6.InputNumberModule]] });
664
+ 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$1.LetDirectiveModule, i6.InputNumberModule], exports: [HeaderCartOverlayComponent] });
665
+ 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$1.LetDirectiveModule, i6.InputNumberModule]] });
657
666
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: HeaderCartOverlayModule, decorators: [{
658
667
  type: i0.NgModule,
659
668
  args: [{
660
669
  declarations: [HeaderCartOverlayComponent],
661
- imports: [i9.CommonModule, i7.ReactiveFormsModule, i5.ButtonModule, i4.OverlayPanelModule, i2.LetDirectiveModule, i6.InputNumberModule],
670
+ imports: [i9.CommonModule, i7.ReactiveFormsModule, i5.ButtonModule, i4.OverlayPanelModule, i3$1.LetDirectiveModule, i6.InputNumberModule],
662
671
  exports: [HeaderCartOverlayComponent],
663
672
  }]
664
673
  }] });
@@ -675,10 +684,10 @@
675
684
  }
676
685
  };
677
686
  var getIsEditMode = function (context) {
678
- if (context.mode === i1$3.ConfigurationContextMode.QUOTE) {
687
+ if (context.mode === i1$2.ConfigurationContextMode.QUOTE) {
679
688
  return context.properties.Status === 'Draft';
680
689
  }
681
- else if (context.mode === i1$3.ConfigurationContextMode.ACCOUNT) {
690
+ else if (context.mode === i1$2.ConfigurationContextMode.ACCOUNT) {
682
691
  return true;
683
692
  }
684
693
  return false;
@@ -732,11 +741,11 @@
732
741
  };
733
742
  return FlowDialogService;
734
743
  }());
735
- 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 });
744
+ 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.ContextService }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
736
745
  FlowDialogService.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowDialogService });
737
746
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowDialogService, decorators: [{
738
747
  type: i0.Injectable
739
- }], ctorParameters: function () { return [{ type: i1__namespace.DialogService }, { type: i1__namespace$2.ContextService }]; } });
748
+ }], ctorParameters: function () { return [{ type: i1__namespace.DialogService }, { type: i2__namespace.ContextService }]; } });
740
749
 
741
750
  var FlowHeaderComponent = /** @class */ (function () {
742
751
  function FlowHeaderComponent(context, quoteDraftService, quoteApiService, sfApiService, flowConfiguration, routerService, dialogService) {
@@ -760,6 +769,7 @@
760
769
  this.products$ = this.flowConfiguration.get().pipe(rxjs.map(function (lineItems) { return _this.generateProducts(lineItems); }));
761
770
  this.isConfigurationRoute$ = this.routerService.isConfigurationRoute$();
762
771
  this.isCartRoute$ = this.routerService.isCartRoute$();
772
+ this.isCatalogRoute$ = this.routerService.isCatalogRoute$();
763
773
  }
764
774
  FlowHeaderComponent.prototype.ngOnInit = function () {
765
775
  this.populateObjectDetails();
@@ -770,14 +780,14 @@
770
780
  };
771
781
  Object.defineProperty(FlowHeaderComponent.prototype, "isAccountMode", {
772
782
  get: function () {
773
- return this.mode === i1$3.ConfigurationContextMode.ACCOUNT;
783
+ return this.mode === i1$2.ConfigurationContextMode.ACCOUNT;
774
784
  },
775
785
  enumerable: false,
776
786
  configurable: true
777
787
  });
778
788
  Object.defineProperty(FlowHeaderComponent.prototype, "isQuoteMode", {
779
789
  get: function () {
780
- return this.mode === i1$3.ConfigurationContextMode.QUOTE;
790
+ return this.mode === i1$2.ConfigurationContextMode.QUOTE;
781
791
  },
782
792
  enumerable: false,
783
793
  configurable: true
@@ -798,10 +808,13 @@
798
808
  FlowHeaderComponent.prototype.navigateToShoppingCart = function () {
799
809
  this.routerService.navigateToShoppingCart();
800
810
  };
811
+ FlowHeaderComponent.prototype.navigateToCatalog = function () {
812
+ this.routerService.navigateToCatalog();
813
+ };
801
814
  FlowHeaderComponent.prototype.saveButtonClickHandler = function () {
802
815
  var _this = this;
803
816
  if (!this.isEditMode) {
804
- if (this.mode === i1$3.ConfigurationContextMode.QUOTE) {
817
+ if (this.mode === i1$2.ConfigurationContextMode.QUOTE) {
805
818
  this.dialogService.showQuoteReadonlyModeDialog().subscribe();
806
819
  }
807
820
  else {
@@ -809,7 +822,7 @@
809
822
  }
810
823
  return;
811
824
  }
812
- if (this.mode === i1$3.ConfigurationContextMode.ACCOUNT && !this.quoteDraftService.hasUnsavedChanges) {
825
+ if (this.mode === i1$2.ConfigurationContextMode.ACCOUNT && !this.quoteDraftService.hasUnsavedChanges) {
813
826
  this.dialogService.showAccountNoChangesDialog().subscribe();
814
827
  return;
815
828
  }
@@ -828,7 +841,7 @@
828
841
  .upsertQuote(Object.assign(Object.assign({}, quoteDraft), { context: context, currentState: lineItems }))
829
842
  .pipe(rxjs.tap(function () {
830
843
  // navigate back to quote on successful save
831
- if (_this.mode === i1$3.ConfigurationContextMode.QUOTE) {
844
+ if (_this.mode === i1$2.ConfigurationContextMode.QUOTE) {
832
845
  _this.back();
833
846
  }
834
847
  }), rxjs.finalize(function () { return _this.isSaveInProgress$.next(false); }))
@@ -890,8 +903,8 @@
890
903
  };
891
904
  return FlowHeaderComponent;
892
905
  }());
893
- FlowHeaderComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowHeaderComponent, deps: [{ token: i1__namespace$2.ContextService }, { token: i1__namespace$2.QuoteDraftService }, { token: i2__namespace$1.QuoteApiService }, { token: i2__namespace$1.SalesforceApiService }, { token: i1__namespace$2.FlowConfigurationService }, { token: FlowRouterService }, { token: FlowDialogService }], target: i0__namespace.ɵɵFactoryTarget.Component });
894
- 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>{{ contextProperties.Status }}</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 disabled\">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 <p-button label=\"Generate Doc\" styleClass=\"p-button-outlined\"></p-button>\n <p-button\n label=\"Save\"\n styleClass=\"p-button-outlined\"\n (onClick)=\"saveButtonClickHandler()\"\n [loading]=\"(isSaveInProgress$ | async) === true\"\n ></p-button>\n <p-button label=\"Submit For Approval\" styleClass=\"p-button\"></p-button>\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-loading .p-button-loading-icon{position:absolute;left:calc(50% - 5px)}:host ::ng-deep .p-button.p-button-loading .p-button-label{opacity:0;margin:0}.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: i2__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: i3__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 });
906
+ FlowHeaderComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowHeaderComponent, deps: [{ token: i2__namespace.ContextService }, { token: i2__namespace.QuoteDraftService }, { token: i1__namespace$3.QuoteApiService }, { token: i1__namespace$3.SalesforceApiService }, { token: i2__namespace.FlowConfigurationService }, { token: FlowRouterService }, { token: FlowDialogService }], target: i0__namespace.ɵɵFactoryTarget.Component });
907
+ 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>{{ contextProperties.Status }}</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 <p-button label=\"Generate Doc\" styleClass=\"p-button-outlined\"></p-button>\n <p-button\n label=\"Save\"\n styleClass=\"p-button-outlined\"\n (onClick)=\"saveButtonClickHandler()\"\n [loading]=\"(isSaveInProgress$ | async) === true\"\n ></p-button>\n <p-button label=\"Submit For Approval\" styleClass=\"p-button\"></p-button>\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-loading .p-button-loading-icon{position:absolute;left:calc(50% - 5px)}:host ::ng-deep .p-button.p-button-loading .p-button-label{opacity:0;margin:0}.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$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: i3__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 });
895
908
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowHeaderComponent, decorators: [{
896
909
  type: i0.Component,
897
910
  args: [{
@@ -900,7 +913,7 @@
900
913
  styleUrls: ['./header.component.scss'],
901
914
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
902
915
  }]
903
- }], ctorParameters: function () { return [{ type: i1__namespace$2.ContextService }, { type: i1__namespace$2.QuoteDraftService }, { type: i2__namespace$1.QuoteApiService }, { type: i2__namespace$1.SalesforceApiService }, { type: i1__namespace$2.FlowConfigurationService }, { type: FlowRouterService }, { type: FlowDialogService }]; } });
916
+ }], ctorParameters: function () { return [{ type: i2__namespace.ContextService }, { type: i2__namespace.QuoteDraftService }, { type: i1__namespace$3.QuoteApiService }, { type: i1__namespace$3.SalesforceApiService }, { type: i2__namespace.FlowConfigurationService }, { type: FlowRouterService }, { type: FlowDialogService }]; } });
904
917
 
905
918
  var FlowHeaderModule = /** @class */ (function () {
906
919
  function FlowHeaderModule() {
@@ -908,13 +921,13 @@
908
921
  return FlowHeaderModule;
909
922
  }());
910
923
  FlowHeaderModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowHeaderModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
911
- 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, i2.LetDirectiveModule, i10.TooltipModule, i5.ButtonModule, HeaderCartOverlayModule], exports: [FlowHeaderComponent] });
912
- FlowHeaderModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowHeaderModule, imports: [[i9.CommonModule, i4.OverlayPanelModule, i2.LetDirectiveModule, i10.TooltipModule, i5.ButtonModule, HeaderCartOverlayModule]] });
924
+ 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$1.LetDirectiveModule, i10.TooltipModule, i5.ButtonModule, HeaderCartOverlayModule], exports: [FlowHeaderComponent] });
925
+ FlowHeaderModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowHeaderModule, imports: [[i9.CommonModule, i4.OverlayPanelModule, i3$1.LetDirectiveModule, i10.TooltipModule, i5.ButtonModule, HeaderCartOverlayModule]] });
913
926
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowHeaderModule, decorators: [{
914
927
  type: i0.NgModule,
915
928
  args: [{
916
929
  declarations: [FlowHeaderComponent],
917
- imports: [i9.CommonModule, i4.OverlayPanelModule, i2.LetDirectiveModule, i10.TooltipModule, i5.ButtonModule, HeaderCartOverlayModule],
930
+ imports: [i9.CommonModule, i4.OverlayPanelModule, i3$1.LetDirectiveModule, i10.TooltipModule, i5.ButtonModule, HeaderCartOverlayModule],
918
931
  exports: [FlowHeaderComponent],
919
932
  }]
920
933
  }] });
@@ -963,8 +976,8 @@
963
976
  };
964
977
  return FlowComponent;
965
978
  }());
966
- 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.ContextService }, { token: FlowService }], target: i0__namespace.ɵɵFactoryTarget.Component });
967
- 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: i2__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 });
979
+ FlowComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowComponent, deps: [{ token: FlowRouterService }, { token: i2__namespace.ContextService }, { token: FlowService }], target: i0__namespace.ɵɵFactoryTarget.Component });
980
+ 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 });
968
981
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowComponent, decorators: [{
969
982
  type: i0.Component,
970
983
  args: [{
@@ -973,7 +986,7 @@
973
986
  styleUrls: ['./flow.component.scss'],
974
987
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
975
988
  }]
976
- }], ctorParameters: function () { return [{ type: FlowRouterService }, { type: i1__namespace$2.ContextService }, { type: FlowService }]; } });
989
+ }], ctorParameters: function () { return [{ type: FlowRouterService }, { type: i2__namespace.ContextService }, { type: FlowService }]; } });
977
990
 
978
991
  var ContextGuard = /** @class */ (function () {
979
992
  function ContextGuard(router, routerService) {
@@ -982,16 +995,16 @@
982
995
  }
983
996
  ContextGuard.prototype.getConfigurationContextMode = function (accountId, quoteId, orderId, rpcMessage) {
984
997
  if (accountId) {
985
- return i1$3.ConfigurationContextMode.ACCOUNT;
998
+ return i1$2.ConfigurationContextMode.ACCOUNT;
986
999
  }
987
1000
  if (quoteId) {
988
- return i1$3.ConfigurationContextMode.QUOTE;
1001
+ return i1$2.ConfigurationContextMode.QUOTE;
989
1002
  }
990
1003
  if (orderId) {
991
- return i1$3.ConfigurationContextMode.ORDER;
1004
+ return i1$2.ConfigurationContextMode.ORDER;
992
1005
  }
993
1006
  if (rpcMessage) {
994
- return i1$3.ConfigurationContextMode.REMOTE;
1007
+ return i1$2.ConfigurationContextMode.REMOTE;
995
1008
  }
996
1009
  return;
997
1010
  };
@@ -1073,6 +1086,137 @@
1073
1086
  args: [{ providedIn: 'root' }]
1074
1087
  }], ctorParameters: function () { return [{ type: i1__namespace$1.Router }, { type: FlowRouterService }]; } });
1075
1088
 
1089
+ var FLOW_CUSTOMIZATION = new i0.InjectionToken('FLOW_CUSTOMIZATION');
1090
+
1091
+ var CatalogComponent = /** @class */ (function () {
1092
+ function CatalogComponent(templatesApi, contextService, cdr, toastService, customizationService) {
1093
+ var _a, _b, _c;
1094
+ this.templatesApi = templatesApi;
1095
+ this.contextService = contextService;
1096
+ this.cdr = cdr;
1097
+ this.toastService = toastService;
1098
+ this.customizationService = customizationService;
1099
+ this.uiDefinition = undefined;
1100
+ this.state$ = new rxjs.BehaviorSubject({ loading: true, failure: false });
1101
+ this.templateApiName = '';
1102
+ this.destroyed$ = new rxjs.Subject();
1103
+ this.templateApiName = (_c = (_b = (_a = this.contextService.resolve()) === null || _a === void 0 ? void 0 : _a.properties) === null || _b === void 0 ? void 0 : _b.catalogTemplateApiName) !== null && _c !== void 0 ? _c : '';
1104
+ }
1105
+ CatalogComponent.prototype.ngOnInit = function () {
1106
+ var _this = this;
1107
+ this.generateUIDefinition$()
1108
+ .pipe(rxjs.tap(function (uiDef) {
1109
+ if (!uiDef) {
1110
+ throw new Error("Component with name '" + _this.templateApiName + "' not found.");
1111
+ }
1112
+ _this.uiDefinition = uiDef;
1113
+ _this.state$.next({ loading: false, failure: false });
1114
+ }), rxjs.catchError(function (err) {
1115
+ var _a;
1116
+ var message = 'Failed to resolve Catalog component. ' + ((_a = err.message) !== null && _a !== void 0 ? _a : '');
1117
+ _this.toastService.add({ severity: i3$1.ToastType.error, summary: message, sticky: true });
1118
+ _this.uiDefinition = undefined;
1119
+ _this.state$.next({ loading: false, failure: true });
1120
+ return rxjs.of();
1121
+ }), rxjs.takeUntil(this.destroyed$))
1122
+ .subscribe(function () { return _this.cdr.detectChanges(); });
1123
+ };
1124
+ CatalogComponent.prototype.ngOnDestroy = function () {
1125
+ this.destroyed$.next();
1126
+ this.destroyed$.complete();
1127
+ };
1128
+ CatalogComponent.prototype.getTemplateRootComponent$ = function (template) {
1129
+ return this.templatesApi
1130
+ .fetchComponents$(template.id)
1131
+ .pipe(rxjs.map(function (components) { var _a; return (_a = components.find(function (c) { return c.type === i1$2.UITemplateComponentType.ROOT; })) !== null && _a !== void 0 ? _a : undefined; }));
1132
+ };
1133
+ CatalogComponent.prototype.getLocalCatalogComponentMeta$ = function () {
1134
+ var _a, _b;
1135
+ if (!((_a = this.customizationService) === null || _a === void 0 ? void 0 : _a.getCatalogComponent)) {
1136
+ return rxjs.of(undefined);
1137
+ }
1138
+ return (_b = this.customizationService) === null || _b === void 0 ? void 0 : _b.getCatalogComponent(this.templateApiName).pipe(rxjs.map(function (component) {
1139
+ if (!component) {
1140
+ return;
1141
+ }
1142
+ return {
1143
+ html: component.html,
1144
+ css: component.css,
1145
+ js: component.js,
1146
+ json: component.json,
1147
+ };
1148
+ }));
1149
+ };
1150
+ CatalogComponent.prototype.getCatalogComponentMeta$ = function () {
1151
+ var _this = this;
1152
+ return this.templatesApi.fetchTemplates$().pipe(rxjs.map(function (templates) { return templates.find(function (template) { return template.type === i1$2.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); }));
1153
+ };
1154
+ CatalogComponent.prototype.generateUIDefinition$ = function () {
1155
+ var _this = this;
1156
+ return rxjs.of(undefined).pipe(rxjs.tap(function () {
1157
+ if (!_this.templateApiName) {
1158
+ throw new Error("Flow Query parameter 'catalogTemplateApiName' is missing.");
1159
+ }
1160
+ }), rxjs.switchMap(function () { return _this.getLocalCatalogComponentMeta$(); }), rxjs.switchMap(function (meta) { return (meta ? rxjs.of(meta) : _this.getCatalogComponentMeta$()); }), rxjs.map(function (meta) {
1161
+ if (!meta) {
1162
+ return;
1163
+ }
1164
+ var uiDef = {
1165
+ name: '',
1166
+ createdTimestamp: 0,
1167
+ primary: true,
1168
+ type: 'DEFAULT',
1169
+ version: 2,
1170
+ children: [
1171
+ {
1172
+ children: [],
1173
+ template: meta.html && btoa(meta.html),
1174
+ script: meta.js && btoa(meta.js),
1175
+ styles: meta.css && btoa(meta.css),
1176
+ },
1177
+ ],
1178
+ };
1179
+ return uiDef;
1180
+ }));
1181
+ };
1182
+ return CatalogComponent;
1183
+ }());
1184
+ CatalogComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: CatalogComponent, deps: [{ token: i1__namespace$3.UITemplatesApiService }, { token: i2__namespace.ContextService }, { token: i0__namespace.ChangeDetectorRef }, { token: i3__namespace$1.ToastService }, { token: FLOW_CUSTOMIZATION, optional: true }], target: i0__namespace.ɵɵFactoryTarget.Component });
1185
+ 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: i1__namespace$4.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 });
1186
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: CatalogComponent, decorators: [{
1187
+ type: i0.Component,
1188
+ args: [{
1189
+ selector: 'vl-flow-catalog',
1190
+ templateUrl: './catalog.component.html',
1191
+ styleUrls: ['./catalog.component.scss'],
1192
+ changeDetection: i0.ChangeDetectionStrategy.OnPush,
1193
+ }]
1194
+ }], ctorParameters: function () {
1195
+ return [{ type: i1__namespace$3.UITemplatesApiService }, { type: i2__namespace.ContextService }, { type: i0__namespace.ChangeDetectorRef }, { type: i3__namespace$1.ToastService }, { type: undefined, decorators: [{
1196
+ type: i0.Optional
1197
+ }, {
1198
+ type: i0.Inject,
1199
+ args: [FLOW_CUSTOMIZATION]
1200
+ }] }];
1201
+ } });
1202
+
1203
+ var CatalogModule = /** @class */ (function () {
1204
+ function CatalogModule() {
1205
+ }
1206
+ return CatalogModule;
1207
+ }());
1208
+ CatalogModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: CatalogModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
1209
+ CatalogModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: CatalogModule, declarations: [CatalogComponent], imports: [i9.CommonModule, i1$4.PreviewModule, i3$1.LoaderModule], exports: [CatalogComponent] });
1210
+ CatalogModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: CatalogModule, imports: [[i9.CommonModule, i1$4.PreviewModule, i3$1.LoaderModule]] });
1211
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: CatalogModule, decorators: [{
1212
+ type: i0.NgModule,
1213
+ args: [{
1214
+ declarations: [CatalogComponent],
1215
+ imports: [i9.CommonModule, i1$4.PreviewModule, i3$1.LoaderModule],
1216
+ exports: [CatalogComponent],
1217
+ }]
1218
+ }] });
1219
+
1076
1220
  var DebugComponent = /** @class */ (function () {
1077
1221
  function DebugComponent(flowsApiService, router, activatedRoute, context, flowConfiguration, quoteDraftService) {
1078
1222
  this.flowsApiService = flowsApiService;
@@ -1114,7 +1258,7 @@
1114
1258
  };
1115
1259
  return DebugComponent;
1116
1260
  }());
1117
- DebugComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: DebugComponent, deps: [{ token: i2__namespace$1.FlowsApiService }, { token: i1__namespace$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 });
1261
+ DebugComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: DebugComponent, deps: [{ token: i1__namespace$3.FlowsApiService }, { token: i1__namespace$1.Router }, { token: i1__namespace$1.ActivatedRoute }, { token: i2__namespace.ContextService }, { token: i2__namespace.FlowConfigurationService }, { token: i2__namespace.QuoteDraftService }], target: i0__namespace.ɵɵFactoryTarget.Component });
1118
1262
  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: 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 });
1119
1263
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: DebugComponent, decorators: [{
1120
1264
  type: i0.Component,
@@ -1124,7 +1268,7 @@
1124
1268
  styleUrls: ['./debug.component.scss'],
1125
1269
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
1126
1270
  }]
1127
- }], ctorParameters: function () { return [{ type: i2__namespace$1.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 }]; } });
1271
+ }], ctorParameters: function () { return [{ type: i1__namespace$3.FlowsApiService }, { type: i1__namespace$1.Router }, { type: i1__namespace$1.ActivatedRoute }, { type: i2__namespace.ContextService }, { type: i2__namespace.FlowConfigurationService }, { type: i2__namespace.QuoteDraftService }]; } });
1128
1272
 
1129
1273
  var routes$1 = [{ path: '', component: DebugComponent }];
1130
1274
  var DebugModule = /** @class */ (function () {
@@ -1166,8 +1310,6 @@
1166
1310
  }]
1167
1311
  }] });
1168
1312
 
1169
- var FLOW_CUSTOMIZATION = new i0.InjectionToken('FLOW_CUSTOMIZATION');
1170
-
1171
1313
  var LegacyProductComponent = /** @class */ (function () {
1172
1314
  function LegacyProductComponent(route, quoteDraftService, quoteApiService, contextService, runtimeContextService, runtimeService, currentStateService, customizationService) {
1173
1315
  this.route = route;
@@ -1229,7 +1371,7 @@
1229
1371
  lineItemId && quote.currentState ? this.reConfigure(lineItemId, quote.currentState) : this.configure(productId);
1230
1372
  };
1231
1373
  LegacyProductComponent.prototype.getLineItemId = function (quote, queryParams) {
1232
- if (i1$3.EntityUtil.isPresent(queryParams['lineItemId'])) {
1374
+ if (i1$2.EntityUtil.isPresent(queryParams['lineItemId'])) {
1233
1375
  return queryParams['lineItemId'];
1234
1376
  }
1235
1377
  return quote.currentState
@@ -1238,12 +1380,12 @@
1238
1380
  .find(function (id) { return id; });
1239
1381
  };
1240
1382
  LegacyProductComponent.prototype.configure = function (productId) {
1241
- var runtimeContext = this.getRuntimeContext(productId, '', i1$2.RuntimeOperation.INIT);
1383
+ var runtimeContext = this.getRuntimeContext(productId, '', i2.RuntimeOperation.INIT);
1242
1384
  this.startRuntime({}, runtimeContext);
1243
1385
  };
1244
1386
  LegacyProductComponent.prototype.reConfigure = function (lineItemId, currentState) {
1245
- var currentStateItem = i1$3.EntityUtil.findById(lineItemId, currentState);
1246
- var runtimeContext = this.getRuntimeContext(currentStateItem.productId, currentStateItem.offeringId, i1$2.RuntimeOperation.UPDATE);
1387
+ var currentStateItem = i1$2.EntityUtil.findById(lineItemId, currentState);
1388
+ var runtimeContext = this.getRuntimeContext(currentStateItem.productId, currentStateItem.offeringId, i2.RuntimeOperation.UPDATE);
1247
1389
  var states = {
1248
1390
  configurableRamp: currentStateItem,
1249
1391
  currentState: currentState,
@@ -1273,13 +1415,13 @@
1273
1415
  LegacyProductComponent.prototype.getRuntimeContext = function (productId, offeringId, runtimeOperation) {
1274
1416
  var _this = this;
1275
1417
  return this.runtimeContextService.getRuntimeContext(productId, offeringId).pipe(operators.map(function (runtimeContext) {
1276
- runtimeContext.invocationContext = { runtimeOperation: i1$2.RuntimeOperation[runtimeOperation] };
1418
+ runtimeContext.invocationContext = { runtimeOperation: i2.RuntimeOperation[runtimeOperation] };
1277
1419
  return runtimeContext;
1278
1420
  }), operators.switchMap(function (runtimeContext) { return _this.customizeContext(productId, runtimeContext); }));
1279
1421
  };
1280
1422
  return LegacyProductComponent;
1281
1423
  }());
1282
- 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: i2__namespace$1.QuoteApiService }, { token: i1__namespace$2.ContextService }, { token: i4__namespace$2.RuntimeContextService }, { token: i4__namespace$2.RuntimeService }, { token: i4__namespace$2.CurrentStateService }, { token: FLOW_CUSTOMIZATION, optional: true }], target: i0__namespace.ɵɵFactoryTarget.Component });
1424
+ 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.QuoteDraftService }, { token: i1__namespace$3.QuoteApiService }, { token: i2__namespace.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 });
1283
1425
  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"] }] });
1284
1426
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: LegacyProductComponent, decorators: [{
1285
1427
  type: i0.Component,
@@ -1288,7 +1430,7 @@
1288
1430
  styleUrls: ['./legacy-product.component.scss'],
1289
1431
  }]
1290
1432
  }], ctorParameters: function () {
1291
- return [{ type: i1__namespace$1.ActivatedRoute }, { type: i1__namespace$2.QuoteDraftService }, { type: i2__namespace$1.QuoteApiService }, { type: i1__namespace$2.ContextService }, { type: i4__namespace$2.RuntimeContextService }, { type: i4__namespace$2.RuntimeService }, { type: i4__namespace$2.CurrentStateService }, { type: undefined, decorators: [{
1433
+ return [{ type: i1__namespace$1.ActivatedRoute }, { type: i2__namespace.QuoteDraftService }, { type: i1__namespace$3.QuoteApiService }, { type: i2__namespace.ContextService }, { type: i4__namespace$2.RuntimeContextService }, { type: i4__namespace$2.RuntimeService }, { type: i4__namespace$2.CurrentStateService }, { type: undefined, decorators: [{
1292
1434
  type: i0.Optional
1293
1435
  }, {
1294
1436
  type: i0.Inject,
@@ -1365,7 +1507,7 @@
1365
1507
  var _this = this;
1366
1508
  var _a;
1367
1509
  var lineItemId = this.getLineItemId(quote, queryParams);
1368
- var currentStateItem = i1$3.EntityUtil.findById(lineItemId, quote.currentState);
1510
+ var currentStateItem = i1$2.EntityUtil.findById(lineItemId, quote.currentState);
1369
1511
  var productId = (_a = currentStateItem === null || currentStateItem === void 0 ? void 0 : currentStateItem.productId) !== null && _a !== void 0 ? _a : queryParams['productId'];
1370
1512
  var offeringId = (currentStateItem !== null && currentStateItem !== void 0 ? currentStateItem : {}).offeringId;
1371
1513
  if (currentStateItem) {
@@ -1387,7 +1529,7 @@
1387
1529
  .subscribe();
1388
1530
  };
1389
1531
  ProductComponent.prototype.getLineItemId = function (quote, queryParams) {
1390
- if (i1$3.EntityUtil.isPresent(queryParams['lineItemId'])) {
1532
+ if (i1$2.EntityUtil.isPresent(queryParams['lineItemId'])) {
1391
1533
  return queryParams['lineItemId'];
1392
1534
  }
1393
1535
  return quote.currentState
@@ -1397,8 +1539,8 @@
1397
1539
  };
1398
1540
  return ProductComponent;
1399
1541
  }());
1400
- 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.FlowConfigurationService }, { token: i1__namespace$2.QuoteDraftService }, { token: i1__namespace$1.ActivatedRoute }, { token: i3__namespace.MessageService }, { token: FLOW_CUSTOMIZATION, optional: true }], target: i0__namespace.ɵɵFactoryTarget.Component });
1401
- 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: i2__namespace.LoaderComponent, selector: "vl-loader", inputs: ["label", "overlayVisible"] }, { type: i1__namespace$4.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 });
1542
+ ProductComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ProductComponent, deps: [{ token: i2__namespace.ContextService }, { token: i2__namespace.ConfigurationRuntimeService }, { token: i2__namespace.ConfigurationService }, { token: i2__namespace.FlowConfigurationService }, { token: i2__namespace.QuoteDraftService }, { token: i1__namespace$1.ActivatedRoute }, { token: i3__namespace.MessageService }, { token: FLOW_CUSTOMIZATION, optional: true }], target: i0__namespace.ɵɵFactoryTarget.Component });
1543
+ 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: i1__namespace$4.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 });
1402
1544
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ProductComponent, decorators: [{
1403
1545
  type: i0.Component,
1404
1546
  args: [{
@@ -1408,7 +1550,7 @@
1408
1550
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
1409
1551
  }]
1410
1552
  }], ctorParameters: function () {
1411
- return [{ type: i1__namespace$2.ContextService }, { type: i1__namespace$2.ConfigurationRuntimeService }, { type: i1__namespace$2.ConfigurationService }, { type: i1__namespace$2.FlowConfigurationService }, { type: i1__namespace$2.QuoteDraftService }, { type: i1__namespace$1.ActivatedRoute }, { type: i3__namespace.MessageService }, { type: undefined, decorators: [{
1553
+ return [{ type: i2__namespace.ContextService }, { type: i2__namespace.ConfigurationRuntimeService }, { type: i2__namespace.ConfigurationService }, { type: i2__namespace.FlowConfigurationService }, { type: i2__namespace.QuoteDraftService }, { type: i1__namespace$1.ActivatedRoute }, { type: i3__namespace.MessageService }, { type: undefined, decorators: [{
1412
1554
  type: i0.Optional
1413
1555
  }, {
1414
1556
  type: i0.Inject,
@@ -1422,13 +1564,13 @@
1422
1564
  return ProductModule;
1423
1565
  }());
1424
1566
  ProductModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ProductModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
1425
- ProductModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ProductModule, declarations: [ProductComponent], imports: [i9.CommonModule, i1$4.PreviewModule, i2.LoaderModule], exports: [ProductComponent] });
1426
- ProductModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ProductModule, imports: [[i9.CommonModule, i1$4.PreviewModule, i2.LoaderModule]] });
1567
+ ProductModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ProductModule, declarations: [ProductComponent], imports: [i9.CommonModule, i1$4.PreviewModule, i3$1.LoaderModule], exports: [ProductComponent] });
1568
+ ProductModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ProductModule, imports: [[i9.CommonModule, i1$4.PreviewModule, i3$1.LoaderModule]] });
1427
1569
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ProductModule, decorators: [{
1428
1570
  type: i0.NgModule,
1429
1571
  args: [{
1430
1572
  declarations: [ProductComponent],
1431
- imports: [i9.CommonModule, i1$4.PreviewModule, i2.LoaderModule],
1573
+ imports: [i9.CommonModule, i1$4.PreviewModule, i3$1.LoaderModule],
1432
1574
  exports: [ProductComponent],
1433
1575
  }]
1434
1576
  }] });
@@ -1477,29 +1619,35 @@
1477
1619
  }] });
1478
1620
 
1479
1621
  var ShoppingCartComponent = /** @class */ (function () {
1480
- function ShoppingCartComponent(templatesApi, cdr, toastService, customizationService) {
1622
+ function ShoppingCartComponent(templatesApi, contextService, cdr, toastService, customizationService) {
1623
+ var _a, _b;
1481
1624
  this.templatesApi = templatesApi;
1625
+ this.contextService = contextService;
1482
1626
  this.cdr = cdr;
1483
1627
  this.toastService = toastService;
1484
1628
  this.customizationService = customizationService;
1485
1629
  this.uiDefinition = undefined;
1486
1630
  this.state$ = new rxjs.BehaviorSubject({ loading: true, failure: false });
1631
+ this.templateApiName = '';
1487
1632
  this.destroyed$ = new rxjs.Subject();
1633
+ this.templateApiName = (_b = (_a = this.contextService.resolve()) === null || _a === void 0 ? void 0 : _a.properties.cartTemplateApiName) !== null && _b !== void 0 ? _b : '';
1488
1634
  }
1489
1635
  ShoppingCartComponent.prototype.ngOnInit = function () {
1490
1636
  var _this = this;
1491
1637
  this.generateUIDefinition$()
1492
1638
  .pipe(rxjs.tap(function (uiDef) {
1493
1639
  if (!uiDef) {
1494
- throw 'Not found';
1640
+ throw new Error("Component with name '" + _this.templateApiName + "' not found.");
1495
1641
  }
1496
1642
  _this.uiDefinition = uiDef;
1497
1643
  _this.state$.next({ loading: false, failure: false });
1498
1644
  }), rxjs.catchError(function (err) {
1645
+ var _a;
1646
+ var message = 'Failed to resolve Shopping cart component. ' + ((_a = err.message) !== null && _a !== void 0 ? _a : '');
1647
+ _this.toastService.add({ severity: i3$1.ToastType.error, summary: message, sticky: true });
1499
1648
  _this.uiDefinition = undefined;
1500
- _this.toastService.add({ severity: i2.ToastType.error, summary: 'Failed to resolve Shopping Cart component' });
1501
1649
  _this.state$.next({ loading: false, failure: true });
1502
- throw err;
1650
+ return rxjs.of();
1503
1651
  }), rxjs.takeUntil(this.destroyed$))
1504
1652
  .subscribe(function () { return _this.cdr.detectChanges(); });
1505
1653
  };
@@ -1510,23 +1658,36 @@
1510
1658
  ShoppingCartComponent.prototype.getTemplateRootComponent$ = function (template) {
1511
1659
  return this.templatesApi
1512
1660
  .fetchComponents$(template.id)
1513
- .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; }));
1661
+ .pipe(rxjs.map(function (components) { var _a; return (_a = components.find(function (c) { return c.type === i1$2.UITemplateComponentType.ROOT; })) !== null && _a !== void 0 ? _a : undefined; }));
1514
1662
  };
1515
- ShoppingCartComponent.prototype.getShoppingCartComponentMeta$ = function () {
1516
- var _this = this;
1663
+ ShoppingCartComponent.prototype.getLocalShoppingCartComponentMeta$ = function () {
1517
1664
  var _a, _b;
1518
- if ((_a = this.customizationService) === null || _a === void 0 ? void 0 : _a.getShoppingCartComponent) {
1519
- return (_b = this.customizationService) === null || _b === void 0 ? void 0 : _b.getShoppingCartComponent().pipe(rxjs.map(function (component) { return ({
1520
- html: component === null || component === void 0 ? void 0 : component.html,
1521
- css: component === null || component === void 0 ? void 0 : component.css,
1522
- js: component === null || component === void 0 ? void 0 : component.js,
1523
- json: component === null || component === void 0 ? void 0 : component.json,
1524
- }); }));
1665
+ if (!((_a = this.customizationService) === null || _a === void 0 ? void 0 : _a.getShoppingCartComponent)) {
1666
+ return rxjs.of(undefined);
1525
1667
  }
1526
- return this.templatesApi.fetchTemplates$().pipe(rxjs.map(function (templates) { return templates.filter(function (template) { return template.type === i1$3.UITemplateType.SHOPPING_CART; }).reverse()[0]; }), 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); }));
1668
+ return (_b = this.customizationService) === null || _b === void 0 ? void 0 : _b.getShoppingCartComponent(this.templateApiName).pipe(rxjs.map(function (component) {
1669
+ if (!component) {
1670
+ return;
1671
+ }
1672
+ return {
1673
+ html: component.html,
1674
+ css: component.css,
1675
+ js: component.js,
1676
+ json: component.json,
1677
+ };
1678
+ }));
1679
+ };
1680
+ ShoppingCartComponent.prototype.getShoppingCartComponentMeta$ = function () {
1681
+ var _this = this;
1682
+ return this.templatesApi.fetchTemplates$().pipe(rxjs.map(function (templates) { return templates.find(function (template) { return template.type === i1$2.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); }));
1527
1683
  };
1528
1684
  ShoppingCartComponent.prototype.generateUIDefinition$ = function () {
1529
- return this.getShoppingCartComponentMeta$().pipe(rxjs.map(function (meta) {
1685
+ var _this = this;
1686
+ return rxjs.of(undefined).pipe(rxjs.tap(function () {
1687
+ if (!_this.templateApiName) {
1688
+ throw new Error("Flow Query parameter 'cartTemplateApiName' is missing.");
1689
+ }
1690
+ }), rxjs.switchMap(function () { return _this.getLocalShoppingCartComponentMeta$(); }), rxjs.switchMap(function (meta) { return (meta ? rxjs.of(meta) : _this.getShoppingCartComponentMeta$()); }), rxjs.map(function (meta) {
1530
1691
  if (!meta) {
1531
1692
  return;
1532
1693
  }
@@ -1550,8 +1711,8 @@
1550
1711
  };
1551
1712
  return ShoppingCartComponent;
1552
1713
  }());
1553
- ShoppingCartComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ShoppingCartComponent, deps: [{ token: i2__namespace$1.UITemplatesApiService }, { token: i0__namespace.ChangeDetectorRef }, { token: i2__namespace.ToastService }, { token: FLOW_CUSTOMIZATION, optional: true }], target: i0__namespace.ɵɵFactoryTarget.Component });
1554
- 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: i2__namespace.LoaderComponent, selector: "vl-loader", inputs: ["label", "overlayVisible"] }, { type: i1__namespace$4.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 });
1714
+ ShoppingCartComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ShoppingCartComponent, deps: [{ token: i1__namespace$3.UITemplatesApiService }, { token: i2__namespace.ContextService }, { token: i0__namespace.ChangeDetectorRef }, { token: i3__namespace$1.ToastService }, { token: FLOW_CUSTOMIZATION, optional: true }], target: i0__namespace.ɵɵFactoryTarget.Component });
1715
+ 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: i1__namespace$4.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 });
1555
1716
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ShoppingCartComponent, decorators: [{
1556
1717
  type: i0.Component,
1557
1718
  args: [{
@@ -1561,7 +1722,7 @@
1561
1722
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
1562
1723
  }]
1563
1724
  }], ctorParameters: function () {
1564
- return [{ type: i2__namespace$1.UITemplatesApiService }, { type: i0__namespace.ChangeDetectorRef }, { type: i2__namespace.ToastService }, { type: undefined, decorators: [{
1725
+ return [{ type: i1__namespace$3.UITemplatesApiService }, { type: i2__namespace.ContextService }, { type: i0__namespace.ChangeDetectorRef }, { type: i3__namespace$1.ToastService }, { type: undefined, decorators: [{
1565
1726
  type: i0.Optional
1566
1727
  }, {
1567
1728
  type: i0.Inject,
@@ -1575,13 +1736,13 @@
1575
1736
  return ShoppingCartModule;
1576
1737
  }());
1577
1738
  ShoppingCartModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ShoppingCartModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
1578
- ShoppingCartModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ShoppingCartModule, declarations: [ShoppingCartComponent], imports: [i9.CommonModule, i1$4.PreviewModule, i2.LoaderModule], exports: [ShoppingCartComponent] });
1579
- ShoppingCartModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ShoppingCartModule, imports: [[i9.CommonModule, i1$4.PreviewModule, i2.LoaderModule]] });
1739
+ ShoppingCartModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ShoppingCartModule, declarations: [ShoppingCartComponent], imports: [i9.CommonModule, i1$4.PreviewModule, i3$1.LoaderModule], exports: [ShoppingCartComponent] });
1740
+ ShoppingCartModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ShoppingCartModule, imports: [[i9.CommonModule, i1$4.PreviewModule, i3$1.LoaderModule]] });
1580
1741
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ShoppingCartModule, decorators: [{
1581
1742
  type: i0.NgModule,
1582
1743
  args: [{
1583
1744
  declarations: [ShoppingCartComponent],
1584
- imports: [i9.CommonModule, i1$4.PreviewModule, i2.LoaderModule],
1745
+ imports: [i9.CommonModule, i1$4.PreviewModule, i3$1.LoaderModule],
1585
1746
  exports: [ShoppingCartComponent],
1586
1747
  }]
1587
1748
  }] });
@@ -1616,11 +1777,11 @@
1616
1777
  };
1617
1778
  return ContextResolver;
1618
1779
  }());
1619
- 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 });
1780
+ ContextResolver.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ContextResolver, deps: [{ token: i2__namespace.ContextService }, { token: i1__namespace$1.Router }, { token: FlowRouterService }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
1620
1781
  ContextResolver.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ContextResolver });
1621
1782
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: ContextResolver, decorators: [{
1622
1783
  type: i0.Injectable
1623
- }], ctorParameters: function () { return [{ type: i1__namespace$2.ContextService }, { type: i1__namespace$1.Router }, { type: FlowRouterService }]; } });
1784
+ }], ctorParameters: function () { return [{ type: i2__namespace.ContextService }, { type: i1__namespace$1.Router }, { type: FlowRouterService }]; } });
1624
1785
 
1625
1786
  var FlowResolver = /** @class */ (function () {
1626
1787
  function FlowResolver(router, flowsApiService, routerService) {
@@ -1669,11 +1830,11 @@
1669
1830
  };
1670
1831
  return FlowResolver;
1671
1832
  }());
1672
- FlowResolver.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowResolver, deps: [{ token: i1__namespace$1.Router }, { token: i2__namespace$1.FlowsApiService }, { token: FlowRouterService }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
1833
+ 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$3.FlowsApiService }, { token: FlowRouterService }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
1673
1834
  FlowResolver.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowResolver });
1674
1835
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowResolver, decorators: [{
1675
1836
  type: i0.Injectable
1676
- }], ctorParameters: function () { return [{ type: i1__namespace$1.Router }, { type: i2__namespace$1.FlowsApiService }, { type: FlowRouterService }]; } });
1837
+ }], ctorParameters: function () { return [{ type: i1__namespace$1.Router }, { type: i1__namespace$3.FlowsApiService }, { type: FlowRouterService }]; } });
1677
1838
 
1678
1839
  var QuoteResolver = /** @class */ (function () {
1679
1840
  function QuoteResolver(router, quoteDraftService, routerService, contextService, flowConfiguration) {
@@ -1708,11 +1869,11 @@
1708
1869
  };
1709
1870
  return QuoteResolver;
1710
1871
  }());
1711
- 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 });
1872
+ 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.QuoteDraftService }, { token: FlowRouterService }, { token: i2__namespace.ContextService }, { token: i2__namespace.FlowConfigurationService }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
1712
1873
  QuoteResolver.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: QuoteResolver });
1713
1874
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: QuoteResolver, decorators: [{
1714
1875
  type: i0.Injectable
1715
- }], 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 }]; } });
1876
+ }], ctorParameters: function () { return [{ type: i1__namespace$1.Router }, { type: i2__namespace.QuoteDraftService }, { type: FlowRouterService }, { type: i2__namespace.ContextService }, { type: i2__namespace.FlowConfigurationService }]; } });
1716
1877
 
1717
1878
  var rootRoute = {
1718
1879
  id: VELOCE_FLOW_ROOT_ROUTE,
@@ -1756,6 +1917,14 @@
1756
1917
  canActivate: [ContextGuard],
1757
1918
  data: { showHeader: true },
1758
1919
  },
1920
+ {
1921
+ path: 'catalog',
1922
+ component: CatalogComponent,
1923
+ runGuardsAndResolvers: 'paramsOrQueryParamsChange',
1924
+ resolve: { context: ContextResolver, quote: QuoteResolver },
1925
+ canActivate: [ContextGuard],
1926
+ data: { showHeader: true },
1927
+ },
1759
1928
  {
1760
1929
  path: 'debug',
1761
1930
  loadChildren: function () { return DebugModule; },
@@ -1772,12 +1941,12 @@
1772
1941
  return FlowRoutingModule;
1773
1942
  }());
1774
1943
  FlowRoutingModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowRoutingModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
1775
- 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], exports: [i1$1.RouterModule] });
1776
- FlowRoutingModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowRoutingModule, providers: [FlowRouterService, RootGuard, ContextGuard, ContextResolver, FlowResolver, QuoteResolver], imports: [[i1$1.RouterModule.forChild([rootRoute]), ProductModule, LegacyProductModule, ShoppingCartModule], i1$1.RouterModule] });
1944
+ 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] });
1945
+ FlowRoutingModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowRoutingModule, providers: [FlowRouterService, RootGuard, ContextGuard, ContextResolver, FlowResolver, QuoteResolver], imports: [[i1$1.RouterModule.forChild([rootRoute]), ProductModule, LegacyProductModule, ShoppingCartModule, CatalogModule], i1$1.RouterModule] });
1777
1946
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowRoutingModule, decorators: [{
1778
1947
  type: i0.NgModule,
1779
1948
  args: [{
1780
- imports: [i1$1.RouterModule.forChild([rootRoute]), ProductModule, LegacyProductModule, ShoppingCartModule],
1949
+ imports: [i1$1.RouterModule.forChild([rootRoute]), ProductModule, LegacyProductModule, ShoppingCartModule, CatalogModule],
1781
1950
  exports: [i1$1.RouterModule],
1782
1951
  providers: [FlowRouterService, RootGuard, ContextGuard, ContextResolver, FlowResolver, QuoteResolver],
1783
1952
  }]
@@ -1791,21 +1960,21 @@
1791
1960
  FlowModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
1792
1961
  FlowModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowModule, declarations: [FlowComponent], imports: [i9.CommonModule,
1793
1962
  FlowRoutingModule,
1794
- i2$1.ApiModule,
1963
+ i1$3.ApiModule,
1795
1964
  i1$4.LauncherModule,
1796
- i2.LoaderModule,
1965
+ i3$1.LoaderModule,
1797
1966
  FlowHeaderModule,
1798
1967
  FlowDialogModule,
1799
- i1$2.SdkCoreModule] });
1968
+ i2.SdkCoreModule] });
1800
1969
  FlowModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowModule, providers: [FlowService, FlowDialogService], imports: [[
1801
1970
  i9.CommonModule,
1802
1971
  FlowRoutingModule,
1803
- i2$1.ApiModule,
1972
+ i1$3.ApiModule,
1804
1973
  i1$4.LauncherModule,
1805
- i2.LoaderModule,
1974
+ i3$1.LoaderModule,
1806
1975
  FlowHeaderModule,
1807
1976
  FlowDialogModule,
1808
- i1$2.SdkCoreModule,
1977
+ i2.SdkCoreModule,
1809
1978
  ]] });
1810
1979
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowModule, decorators: [{
1811
1980
  type: i0.NgModule,
@@ -1814,12 +1983,12 @@
1814
1983
  imports: [
1815
1984
  i9.CommonModule,
1816
1985
  FlowRoutingModule,
1817
- i2$1.ApiModule,
1986
+ i1$3.ApiModule,
1818
1987
  i1$4.LauncherModule,
1819
- i2.LoaderModule,
1988
+ i3$1.LoaderModule,
1820
1989
  FlowHeaderModule,
1821
1990
  FlowDialogModule,
1822
- i1$2.SdkCoreModule,
1991
+ i2.SdkCoreModule,
1823
1992
  ],
1824
1993
  providers: [FlowService, FlowDialogService],
1825
1994
  }]