@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.
- package/bundles/veloce-sdk.umd.js +263 -94
- package/bundles/veloce-sdk.umd.js.map +1 -1
- package/esm2015/src/components/header/header.component.js +6 -2
- package/esm2015/src/flow-routing.module.js +15 -5
- package/esm2015/src/pages/catalog/catalog.component.js +117 -0
- package/esm2015/src/pages/catalog/catalog.module.js +20 -0
- package/esm2015/src/pages/shopping-cart/shopping-cart.component.js +40 -21
- package/esm2015/src/pages/shopping-cart/shopping-cart.module.js +20 -0
- package/esm2015/src/services/flow-router.service.js +10 -1
- package/esm2015/src/services/flow.service.js +1 -1
- package/esm2015/src/types/flow-customization.types.js +1 -1
- package/fesm2015/veloce-sdk.js +218 -59
- package/fesm2015/veloce-sdk.js.map +1 -1
- package/package.json +1 -1
- package/src/components/header/header.component.d.ts +2 -0
- package/src/flow-routing.module.d.ts +3 -2
- package/src/pages/catalog/catalog.component.d.ts +32 -0
- package/src/pages/catalog/catalog.module.d.ts +10 -0
- package/src/pages/shopping-cart/shopping-cart.component.d.ts +6 -3
- package/src/pages/shopping-cart/{product.module.d.ts → shopping-cart.module.d.ts} +0 -0
- package/src/services/flow-router.service.d.ts +2 -0
- package/src/services/flow.service.d.ts +1 -1
- package/src/types/flow-customization.types.d.ts +2 -1
- package/esm2015/src/pages/shopping-cart/product.module.js +0 -20
|
@@ -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,
|
|
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
|
|
28
|
-
var
|
|
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
|
|
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$
|
|
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:
|
|
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:
|
|
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$
|
|
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:
|
|
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$
|
|
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,
|
|
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,
|
|
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,
|
|
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$
|
|
687
|
+
if (context.mode === i1$2.ConfigurationContextMode.QUOTE) {
|
|
679
688
|
return context.properties.Status === 'Draft';
|
|
680
689
|
}
|
|
681
|
-
else if (context.mode === i1$
|
|
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:
|
|
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:
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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:
|
|
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\"> 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
|
|
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\"> 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:
|
|
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,
|
|
912
|
-
FlowHeaderModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowHeaderModule, imports: [[i9.CommonModule, i4.OverlayPanelModule,
|
|
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,
|
|
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:
|
|
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:
|
|
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:
|
|
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$
|
|
998
|
+
return i1$2.ConfigurationContextMode.ACCOUNT;
|
|
986
999
|
}
|
|
987
1000
|
if (quoteId) {
|
|
988
|
-
return i1$
|
|
1001
|
+
return i1$2.ConfigurationContextMode.QUOTE;
|
|
989
1002
|
}
|
|
990
1003
|
if (orderId) {
|
|
991
|
-
return i1$
|
|
1004
|
+
return i1$2.ConfigurationContextMode.ORDER;
|
|
992
1005
|
}
|
|
993
1006
|
if (rpcMessage) {
|
|
994
|
-
return i1$
|
|
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:
|
|
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:
|
|
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$
|
|
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, '',
|
|
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$
|
|
1246
|
-
var runtimeContext = this.getRuntimeContext(currentStateItem.productId, currentStateItem.offeringId,
|
|
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:
|
|
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:
|
|
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:
|
|
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$
|
|
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$
|
|
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:
|
|
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:
|
|
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:
|
|
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,
|
|
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,
|
|
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,
|
|
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 '
|
|
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
|
-
|
|
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$
|
|
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.
|
|
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
|
|
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
|
|
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
|
-
|
|
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:
|
|
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:
|
|
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:
|
|
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,
|
|
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,
|
|
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,
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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
|
-
|
|
1963
|
+
i1$3.ApiModule,
|
|
1795
1964
|
i1$4.LauncherModule,
|
|
1796
|
-
|
|
1965
|
+
i3$1.LoaderModule,
|
|
1797
1966
|
FlowHeaderModule,
|
|
1798
1967
|
FlowDialogModule,
|
|
1799
|
-
|
|
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
|
-
|
|
1972
|
+
i1$3.ApiModule,
|
|
1804
1973
|
i1$4.LauncherModule,
|
|
1805
|
-
|
|
1974
|
+
i3$1.LoaderModule,
|
|
1806
1975
|
FlowHeaderModule,
|
|
1807
1976
|
FlowDialogModule,
|
|
1808
|
-
|
|
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
|
-
|
|
1986
|
+
i1$3.ApiModule,
|
|
1818
1987
|
i1$4.LauncherModule,
|
|
1819
|
-
|
|
1988
|
+
i3$1.LoaderModule,
|
|
1820
1989
|
FlowHeaderModule,
|
|
1821
1990
|
FlowDialogModule,
|
|
1822
|
-
|
|
1991
|
+
i2.SdkCoreModule,
|
|
1823
1992
|
],
|
|
1824
1993
|
providers: [FlowService, FlowDialogService],
|
|
1825
1994
|
}]
|