@veloceapps/sdk 3.1.31 → 3.1.33
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-core.umd.js +12 -1
- package/bundles/veloce-sdk-core.umd.js.map +1 -1
- package/bundles/veloce-sdk.umd.js +95 -18
- package/bundles/veloce-sdk.umd.js.map +1 -1
- package/cms/vendor-map.d.ts +116 -124
- package/core/services/quote-draft.service.d.ts +1 -0
- package/esm2015/core/services/quote-draft.service.js +9 -2
- package/esm2015/src/components/header/header.component.js +39 -11
- package/esm2015/src/components/header/header.module.js +27 -4
- package/esm2015/src/pages/product/product.component.js +10 -5
- package/esm2015/src/services/flow-dialog.service.js +22 -1
- package/fesm2015/veloce-sdk-core.js +8 -1
- package/fesm2015/veloce-sdk-core.js.map +1 -1
- package/fesm2015/veloce-sdk.js +91 -14
- package/fesm2015/veloce-sdk.js.map +1 -1
- package/package.json +1 -1
- package/src/components/header/header.component.d.ts +5 -4
- package/src/components/header/header.module.d.ts +2 -1
- package/src/services/flow-dialog.service.d.ts +3 -0
@@ -1,8 +1,8 @@
|
|
1
1
|
(function (global, factory) {
|
2
|
-
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/common'), require('@angular/core'), require('@veloce/api'), require('@veloce/components'), require('@veloce/sdk/cms'), require('@veloce/sdk/core'), require('primeng/button'), require('primeng/dynamicdialog'), require('@veloce/core'), require('rxjs'), require('primeng/overlaypanel'), require('primeng/tooltip'), require('@angular/forms'), require('primeng/inputnumber'), require('@angular/router'), require('primeng/api'), require('@angular/common/http'), require('primeng/dropdown'), require('primeng/inputtext'), require('primeng/radiobutton'), require('rxjs/operators'), require('@veloce/sdk/runtime'), require('ngx-bootstrap/tooltip')) :
|
3
|
-
typeof define === 'function' && define.amd ? define('@veloce/sdk', ['exports', '@angular/common', '@angular/core', '@veloce/api', '@veloce/components', '@veloce/sdk/cms', '@veloce/sdk/core', 'primeng/button', 'primeng/dynamicdialog', '@veloce/core', 'rxjs', 'primeng/overlaypanel', 'primeng/tooltip', '@angular/forms', 'primeng/inputnumber', '@angular/router', 'primeng/api', '@angular/common/http', 'primeng/dropdown', 'primeng/inputtext', 'primeng/radiobutton', 'rxjs/operators', '@veloce/sdk/runtime', 'ngx-bootstrap/tooltip'], factory) :
|
4
|
-
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.veloce = global.veloce || {}, global.veloce.sdk = {}), global.ng.common, global.ng.core, global["@veloce/api"], global["@veloce/components"], global.veloce.sdk.cms, global.veloce.sdk.core, global["primeng/button"], global["primeng/dynamicdialog"], global["@veloce/core"], global.rxjs, global["primeng/overlaypanel"], global["primeng/tooltip"], global.ng.forms, global["primeng/inputnumber"], global.ng.router, global["primeng/api"], global.ng.common.http, global["primeng/dropdown"], global["primeng/inputtext"], global["primeng/radiobutton"], global.rxjs.operators, global.veloce.sdk.runtime, global["ngx-bootstrap/tooltip"]));
|
5
|
-
})(this, (function (exports, i8, i0, i2$2, i3, i1$1, i2$1, i2, i1, core, rxjs, i3$1,
|
2
|
+
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/common'), require('@angular/core'), require('@veloce/api'), require('@veloce/components'), require('@veloce/sdk/cms'), require('@veloce/sdk/core'), require('primeng/button'), require('primeng/dynamicdialog'), require('@veloce/core'), require('rxjs'), require('primeng/overlaypanel'), require('primeng/splitbutton'), require('primeng/tooltip'), require('@angular/forms'), require('primeng/inputnumber'), require('@angular/router'), require('primeng/api'), require('@angular/common/http'), require('primeng/dropdown'), require('primeng/inputtext'), require('primeng/radiobutton'), require('rxjs/operators'), require('@veloce/sdk/runtime'), require('ngx-bootstrap/tooltip')) :
|
3
|
+
typeof define === 'function' && define.amd ? define('@veloce/sdk', ['exports', '@angular/common', '@angular/core', '@veloce/api', '@veloce/components', '@veloce/sdk/cms', '@veloce/sdk/core', 'primeng/button', 'primeng/dynamicdialog', '@veloce/core', 'rxjs', 'primeng/overlaypanel', 'primeng/splitbutton', 'primeng/tooltip', '@angular/forms', 'primeng/inputnumber', '@angular/router', 'primeng/api', '@angular/common/http', 'primeng/dropdown', 'primeng/inputtext', 'primeng/radiobutton', 'rxjs/operators', '@veloce/sdk/runtime', 'ngx-bootstrap/tooltip'], factory) :
|
4
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.veloce = global.veloce || {}, global.veloce.sdk = {}), global.ng.common, global.ng.core, global["@veloce/api"], global["@veloce/components"], global.veloce.sdk.cms, global.veloce.sdk.core, global["primeng/button"], global["primeng/dynamicdialog"], global["@veloce/core"], global.rxjs, global["primeng/overlaypanel"], global.i9, global["primeng/tooltip"], global.ng.forms, global["primeng/inputnumber"], global.ng.router, global["primeng/api"], global.ng.common.http, global["primeng/dropdown"], global["primeng/inputtext"], global["primeng/radiobutton"], global.rxjs.operators, global.veloce.sdk.runtime, global["ngx-bootstrap/tooltip"]));
|
5
|
+
})(this, (function (exports, i8, i0, i2$2, i3, i1$1, i2$1, i2, i1, core, rxjs, i3$1, i9, i12, i7, i5, i1$2, i2$3, http, i4, i8$1, i6, operators, i4$1, i1$3) { 'use strict';
|
6
6
|
|
7
7
|
function _interopNamespace(e) {
|
8
8
|
if (e && e.__esModule) return e;
|
@@ -31,7 +31,8 @@
|
|
31
31
|
var i2__namespace = /*#__PURE__*/_interopNamespace(i2);
|
32
32
|
var i1__namespace = /*#__PURE__*/_interopNamespace(i1);
|
33
33
|
var i3__namespace$1 = /*#__PURE__*/_interopNamespace(i3$1);
|
34
|
-
var
|
34
|
+
var i9__namespace = /*#__PURE__*/_interopNamespace(i9);
|
35
|
+
var i12__namespace = /*#__PURE__*/_interopNamespace(i12);
|
35
36
|
var i7__namespace = /*#__PURE__*/_interopNamespace(i7);
|
36
37
|
var i5__namespace = /*#__PURE__*/_interopNamespace(i5);
|
37
38
|
var i1__namespace$2 = /*#__PURE__*/_interopNamespace(i1$2);
|
@@ -848,6 +849,13 @@
|
|
848
849
|
primaryButton: 'OK',
|
849
850
|
});
|
850
851
|
};
|
852
|
+
FlowDialogService.prototype.showQuoteOutsideShoppingCartDialog = function () {
|
853
|
+
return this.show({
|
854
|
+
title: 'Quote Cannot be Saved',
|
855
|
+
description: 'It is only possible to save quotes from the Shopping Cart. To proceed, go to the Shopping Cart.',
|
856
|
+
primaryButton: 'OK',
|
857
|
+
});
|
858
|
+
};
|
851
859
|
FlowDialogService.prototype.showAccountNoChangesDialog = function () {
|
852
860
|
return this.show({
|
853
861
|
title: 'No Changes to Save',
|
@@ -870,6 +878,13 @@
|
|
870
878
|
primaryButton: 'OK',
|
871
879
|
});
|
872
880
|
};
|
881
|
+
FlowDialogService.prototype.showOutsideShoppingCartQuoteSubmitFailureDialog = function () {
|
882
|
+
return this.show({
|
883
|
+
title: 'Cannot Submit for Approval',
|
884
|
+
description: 'It is only possible to submit quotes for approval from the Shopping Cart. To proceed, go to the Shopping Cart.',
|
885
|
+
primaryButton: 'OK',
|
886
|
+
});
|
887
|
+
};
|
873
888
|
FlowDialogService.prototype.showAccountSubmitFailureDialog = function () {
|
874
889
|
return this.show({
|
875
890
|
title: 'Save Changes',
|
@@ -891,6 +906,13 @@
|
|
891
906
|
primaryButton: 'OK',
|
892
907
|
});
|
893
908
|
};
|
909
|
+
FlowDialogService.prototype.showDocgenOutsideShoppingCartDialog = function () {
|
910
|
+
return this.show({
|
911
|
+
title: 'Document Generation is not Available',
|
912
|
+
description: 'It is only possible to generate documents for quotes from the Shopping Cart. To proceed, go to the Shopping Cart.',
|
913
|
+
primaryButton: 'OK',
|
914
|
+
});
|
915
|
+
};
|
894
916
|
FlowDialogService.prototype.showDocgenUnsavedChangesDialog = function () {
|
895
917
|
return this.show({
|
896
918
|
title: 'Unsaved Changes',
|
@@ -918,7 +940,6 @@
|
|
918
940
|
this.routerService = routerService;
|
919
941
|
this.dialogService = dialogService;
|
920
942
|
this.integrationState = integrationState;
|
921
|
-
this.disabledActionButtonTooltip = 'Available from the Shopping Cart';
|
922
943
|
this.objectDetails$ = new rxjs.BehaviorSubject({});
|
923
944
|
this.isSaveInProgress$ = new rxjs.BehaviorSubject(false);
|
924
945
|
this.isSubmitInProgress$ = new rxjs.BehaviorSubject(false);
|
@@ -959,6 +980,23 @@
|
|
959
980
|
enumerable: false,
|
960
981
|
configurable: true
|
961
982
|
});
|
983
|
+
FlowHeaderComponent.prototype.getSplitButtonActions = function (isCartRoute) {
|
984
|
+
var _this = this;
|
985
|
+
return [
|
986
|
+
{
|
987
|
+
label: 'Save to Quote',
|
988
|
+
command: function () {
|
989
|
+
_this.saveButtonClickHandler(isCartRoute);
|
990
|
+
},
|
991
|
+
},
|
992
|
+
{
|
993
|
+
label: 'Submit For Approval',
|
994
|
+
command: function () {
|
995
|
+
_this.submitButtonClickHandler(isCartRoute);
|
996
|
+
},
|
997
|
+
},
|
998
|
+
];
|
999
|
+
};
|
962
1000
|
FlowHeaderComponent.prototype.back = function (objectId) {
|
963
1001
|
var targetId = objectId !== null && objectId !== void 0 ? objectId : this.contextService.resolve().headerId;
|
964
1002
|
if (targetId) {
|
@@ -977,7 +1015,7 @@
|
|
977
1015
|
FlowHeaderComponent.prototype.navigateToCatalog = function () {
|
978
1016
|
this.routerService.navigateToCatalog();
|
979
1017
|
};
|
980
|
-
FlowHeaderComponent.prototype.docGenButtonClickHandler = function () {
|
1018
|
+
FlowHeaderComponent.prototype.docGenButtonClickHandler = function (isCartRoute) {
|
981
1019
|
var _this = this;
|
982
1020
|
if (this.mode === core.ConfigurationContextMode.ACCOUNT) {
|
983
1021
|
if (!this.quoteDraftService.hasUnsavedChanges) {
|
@@ -992,6 +1030,10 @@
|
|
992
1030
|
this.dialogService.showDocgenReadonlyDialog().subscribe();
|
993
1031
|
return;
|
994
1032
|
}
|
1033
|
+
if (!isCartRoute) {
|
1034
|
+
this.dialogService.showDocgenOutsideShoppingCartDialog().subscribe();
|
1035
|
+
return;
|
1036
|
+
}
|
995
1037
|
var observable = rxjs.of(true);
|
996
1038
|
if (this.quoteDraftService.hasUnsavedChanges) {
|
997
1039
|
observable = this.dialogService.showDocgenUnsavedChangesDialog().pipe(rxjs.switchMap(function (confirmed) { return (confirmed ? _this.saveQuote$(true) : rxjs.of(true)); }), rxjs.map(function () { return true; }));
|
@@ -1000,7 +1042,7 @@
|
|
1000
1042
|
.pipe(rxjs.first(), rxjs.tap(function () { return _this.integrationState.dispatch(i1$1.OpenDocGenAction()); }))
|
1001
1043
|
.subscribe();
|
1002
1044
|
};
|
1003
|
-
FlowHeaderComponent.prototype.saveButtonClickHandler = function () {
|
1045
|
+
FlowHeaderComponent.prototype.saveButtonClickHandler = function (isCartRoute) {
|
1004
1046
|
if (!this.quoteDraftService.isEditMode()) {
|
1005
1047
|
if (this.mode === core.ConfigurationContextMode.QUOTE) {
|
1006
1048
|
this.dialogService.showQuoteReadonlyModeDialog().subscribe();
|
@@ -1014,6 +1056,10 @@
|
|
1014
1056
|
this.dialogService.showAccountNoChangesDialog().subscribe();
|
1015
1057
|
return;
|
1016
1058
|
}
|
1059
|
+
if (!isCartRoute) {
|
1060
|
+
this.dialogService.showQuoteOutsideShoppingCartDialog().subscribe();
|
1061
|
+
return;
|
1062
|
+
}
|
1017
1063
|
var lineItems = this.flowConfiguration.getSnapshot();
|
1018
1064
|
if (!lineItems.length) {
|
1019
1065
|
this.dialogService.showEmptyCartDialog().subscribe();
|
@@ -1021,7 +1067,7 @@
|
|
1021
1067
|
}
|
1022
1068
|
this.saveQuote$().subscribe();
|
1023
1069
|
};
|
1024
|
-
FlowHeaderComponent.prototype.submitButtonClickHandler = function () {
|
1070
|
+
FlowHeaderComponent.prototype.submitButtonClickHandler = function (isCartRoute) {
|
1025
1071
|
var _this = this;
|
1026
1072
|
if (this.mode === core.ConfigurationContextMode.QUOTE && !this.quoteDraftService.isEditMode()) {
|
1027
1073
|
this.dialogService.showReadonlyQuoteSubmitFailureDialog();
|
@@ -1031,6 +1077,10 @@
|
|
1031
1077
|
this.dialogService.showAccountSubmitFailureDialog();
|
1032
1078
|
return;
|
1033
1079
|
}
|
1080
|
+
if (!isCartRoute) {
|
1081
|
+
this.dialogService.showOutsideShoppingCartQuoteSubmitFailureDialog().subscribe();
|
1082
|
+
return;
|
1083
|
+
}
|
1034
1084
|
var quoteDraft = this.quoteDraftService.quoteDraft;
|
1035
1085
|
if (!quoteDraft) {
|
1036
1086
|
return;
|
@@ -1051,7 +1101,7 @@
|
|
1051
1101
|
FlowHeaderComponent.prototype.saveQuote$ = function (stayOnPage) {
|
1052
1102
|
var _this = this;
|
1053
1103
|
if (stayOnPage === void 0) { stayOnPage = false; }
|
1054
|
-
var quoteDraft = this.quoteDraftService.
|
1104
|
+
var quoteDraft = this.quoteDraftService.quoteDraftForActivePriceList;
|
1055
1105
|
if (!quoteDraft) {
|
1056
1106
|
return rxjs.of(undefined);
|
1057
1107
|
}
|
@@ -1124,7 +1174,7 @@
|
|
1124
1174
|
return FlowHeaderComponent;
|
1125
1175
|
}());
|
1126
1176
|
FlowHeaderComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowHeaderComponent, deps: [{ token: i2__namespace$1.ContextService }, { token: i2__namespace$1.QuoteDraftService }, { token: i2__namespace$2.QuoteApiService }, { token: i2__namespace$2.SalesforceApiService }, { token: i2__namespace$1.FlowConfigurationService }, { token: FlowRouterService }, { token: FlowDialogService }, { token: i1__namespace$1.IntegrationState }], target: i0__namespace.ɵɵFactoryTarget.Component });
|
1127
|
-
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>{{ status$ | async }}</span>\n\n <i *ngIf=\"!quoteDetails.overlayVisible\" class=\"vl-icon vl-icon-chevron-down icon-with-margin\"></i>\n <i *ngIf=\"quoteDetails.overlayVisible\" class=\"vl-icon vl-icon-chevron-up icon-with-margin\"></i>\n </nav>\n\n <p-overlayPanel styleClass=\"navigation-settings-overlay flow-header-overlay center\" #quoteDetails>\n <ng-template pTemplate>\n <div class=\"flow-header-overlay__wrapper\">\n <h2 class=\"flow-header-overlay__title\">\n <span>Quote Information</span>\n <i class=\"vl-icon vl-icon-close close-icon\" (click)=\"quoteDetails.hide()\"></i>\n </h2>\n\n <ul class=\"info-list\">\n <li class=\"info-list__row\">\n <span>Account Name:</span>\n <a target=\"_blank\" [href]=\"getSalesforceObjectLink(details.accountId)\">\n <span>{{ details.accountName }}</span>\n </a>\n </li>\n <li class=\"info-list__row\">\n <span>Opportunity Name:</span>\n <a target=\"_blank\" [href]=\"getSalesforceObjectLink(details.opportunityId)\">\n <span>{{ details.opportunityName }}</span>\n </a>\n </li>\n <li class=\"info-list__row\">\n <span>Quote Name:</span>\n <a target=\"_blank\" [href]=\"getSalesforceObjectLink(details.quoteId)\">\n <span>{{ details.quoteName }}</span>\n </a>\n </li>\n </ul>\n </div>\n </ng-template>\n </p-overlayPanel>\n </ng-container>\n</div>\n\n<div class=\"flow-navigation\">\n <nav class=\"nav-item\" [ngClass]=\"{ active: isCatalogRoute$ | async }\" (click)=\"navigateToCatalog()\">Catalog</nav>\n <nav class=\"nav-item disabled\" [ngClass]=\"{ active: isConfigurationRoute$ | async }\">Configurator</nav>\n <ng-container *vlLet=\"products$ | async as products\">\n <nav class=\"nav-item\" [ngClass]=\"{ active: isCartRoute$ | async }\" (click)=\"navigateToShoppingCart()\">\n Shopping Cart ({{ products.length }})\n </nav>\n\n <nav class=\"nav-popover-toggle active\" (click)=\"cart?.overlayPanel?.toggle($event)\">\n <i *ngIf=\"!cart?.overlayPanel?.overlayVisible\" class=\"vl-icon vl-icon-chevron-down icon-with-margin\"></i>\n <i *ngIf=\"cart?.overlayPanel?.overlayVisible\" class=\"vl-icon vl-icon-chevron-up icon-with-margin\"></i>\n </nav>\n\n <vl-cart-preview #cart [products]=\"products\"></vl-cart-preview>\n </ng-container>\n</div>\n\n<div class=\"flow-controls\" *vlLet=\"objectDetails$ | async as details\">\n <ng-container *vlLet=\"activePriceList$ | async as priceList\">\n <ng-container *ngIf=\"isAccountMode && assetPriceLists.length > 1\">\n <nav class=\"nav-item\" (click)=\"priceListsOverlay?.toggle($event)\">\n <span>{{ priceList?.name }}</span>\n <i *ngIf=\"!priceListsOverlay?.overlayVisible\" class=\"vl-icon vl-icon-chevron-down icon-with-margin\"></i>\n <i *ngIf=\"priceListsOverlay?.overlayVisible\" class=\"vl-icon vl-icon-chevron-up icon-with-margin\"></i>\n </nav>\n\n <p-overlayPanel styleClass=\"price-list-overlay\" #priceListsOverlay>\n <ng-template pTemplate>\n <span\n *ngFor=\"let option of assetPriceLists\"\n class=\"price-list-option\"\n [class.active]=\"priceList?.id === option.id\"\n (click)=\"selectPriceList(option.id); priceListsOverlay.hide()\"\n >{{ option.name }}</span\n >\n </ng-template>\n </p-overlayPanel>\n </ng-container>\n\n <ng-container *ngIf=\"isQuoteMode\">\n <span>{{ priceList?.name }}</span>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"isQuoteMode\">\n <span *ngIf=\"contextProperties.StartDate\">{{ contextProperties.StartDate | date: 'MM.dd.yyyy' }}</span>\n\n <span class=\"slash-separator\"></span>\n\n <span class=\"metrics\">\n <div class=\"metrics__row\">\n MRR: <span class=\"font-semibold\">${{ totalMRR$ | async }}</span>\n </div>\n <div class=\"metrics__row\">\n NRR: <span class=\"font-semibold\">${{ totalNRR$ | async }}</span>\n </div>\n </span>\n </ng-container>\n\n <ng-container *vlLet=\"isCartRoute$ | async as isCartRoute\">\n <p-button\n styleClass=\"p-button-outlined\"\n label=\"Generate Doc\"\n [disabled]=\"!isCartRoute\"\n tooltipPosition=\"bottom\"\n [showDelay]=\"300\"\n [pTooltip]=\"isCartRoute ? '' : disabledActionButtonTooltip\"\n (onClick)=\"docGenButtonClickHandler()\"\n ></p-button>\n\n <p-button\n *vlLet=\"isSaveInProgress$ | async as isSaveInProgress\"\n class=\"save-button\"\n styleClass=\"p-button-outlined\"\n [label]=\"isSaveInProgress ? 'Saving' : 'Save to Quote'\"\n (onClick)=\"saveButtonClickHandler()\"\n [loading]=\"isSaveInProgress\"\n ></p-button>\n\n <p-button\n *vlLet=\"isSubmitInProgress$ | async as isSubmitInProgress\"\n class=\"submit-button\"\n styleClass=\"p-button\"\n [label]=\"isSubmitInProgress ? 'Submitting' : 'Submit For Approval'\"\n [disabled]=\"!isCartRoute\"\n tooltipPosition=\"bottom\"\n [showDelay]=\"300\"\n [pTooltip]=\"isCartRoute ? '' : disabledActionButtonTooltip\"\n (onClick)=\"submitButtonClickHandler()\"\n [loading]=\"isSubmitInProgress\"\n ></p-button>\n </ng-container>\n</div>\n", styles: [":host{display:flex;align-items:center;height:48px;width:100%;background-color:var(--vl-primary-color);color:#fff;padding:0 32px;flex-shrink:0}::ng-deep .p-overlaypanel.flow-header-overlay .p-overlaypanel-content{background-color:#fff;padding:16px}::ng-deep .p-overlaypanel.flow-header-overlay.left:before{left:6px!important}::ng-deep .p-overlaypanel.flow-header-overlay.right:before{right:6px!important}::ng-deep .p-overlaypanel.flow-header-overlay.left .p-overlaypanel-content{margin-left:-16px}::ng-deep .p-overlaypanel.flow-header-overlay.right .p-overlaypanel-content{margin-right:-16px}::ng-deep .p-overlaypanel.flow-header-overlay:before{background-color:#fff}::ng-deep .p-overlaypanel.price-list-overlay .p-overlaypanel-content{border-radius:5px;border-color:var(--vl-border-color);padding:0;display:flex;flex-direction:column;max-height:140px;overflow:auto}:host ::ng-deep .p-button{padding:5px 15px;font-size:12px}:host ::ng-deep .p-button{color:var(--vl-primary-color);background-color:#fff;border-color:#fff}:host ::ng-deep .p-button:enabled:hover{background-color:var(--vl-primary-color);color:#fff;border-color:#fff}:host ::ng-deep .p-button.p-button-outlined{background-color:var(--vl-primary-color);color:#fff;border-color:#fff}:host ::ng-deep .p-button.p-button-outlined:enabled:hover{color:var(--vl-primary-color);background-color:#fff;border-color:#fff}:host ::ng-deep .p-button .p-button-label{white-space:nowrap}:host ::ng-deep .save-button .p-button{width:120px}:host ::ng-deep .submit-button .p-button{width:160px}.vl-icon{display:inline-block}.flow-info{flex-shrink:0;display:flex;grid-gap:8px;gap:8px;align-items:center}.flow-info .nav-popover-toggle{margin-left:-8px}.flow-info .object-name{text-transform:capitalize}.flow-info .nav-back{font-weight:bold}.flow-info .nav-item:not(.disabled):hover,.flow-info .nav-popover-toggle:not(.disabled):hover{opacity:.6}nav{display:flex;align-items:center;cursor:pointer;padding:4px 0}nav.disabled{opacity:.6;cursor:default}nav .nav-icon{margin-right:10px}nav .icon-with-margin{margin:0 4px}nav a{color:#fff}nav.account-name{margin-left:4px;display:block;max-width:200px;overflow:hidden;text-overflow:ellipsis}nav.nav-popover-toggle{width:24px;display:flex;justify-content:center}nav.nav-popover-toggle i{pointer-events:none;margin:0}nav i{pointer-events:none}.dot-separator:after{content:\"\";display:block;width:4px;height:4px;border-radius:50%;background:#fff}.slash-separator:after{content:\"\";display:block;background:#fff;width:1px;height:16px}.flow-header-overlay__wrapper{width:360px}.flow-header-overlay__wrapper .close-icon{cursor:pointer}.flow-header-overlay__wrapper .info-list{list-style:none;padding:0;font-size:12px}.flow-header-overlay__wrapper .info-list__row{padding:8px 0;display:flex;justify-content:space-between}.flow-header-overlay__wrapper .info-list__row a{text-align:right}.flow-header-overlay__title{display:flex;justify-content:space-between;align-items:center;margin:0 0 24px}.flow-navigation{flex-grow:1;display:flex;grid-gap:16px;gap:16px;justify-content:center;font-weight:600}.flow-navigation .cart-nav-container{display:flex}.flow-navigation .nav-popover-toggle{margin-left:-14px}.flow-navigation .nav-item,.flow-navigation .nav-popover-toggle{opacity:.6}.flow-navigation .nav-item.active,.flow-navigation .nav-item:not(.disabled):hover,.flow-navigation .nav-popover-toggle.active,.flow-navigation .nav-popover-toggle:not(.disabled):hover{opacity:1}.price-list-option{padding:8px;color:var(--vl-primary-color);cursor:pointer}.price-list-option.active,.price-list-option:hover{background:var(--vl-secondary-nav-bg)}.flow-controls{flex-shrink:0;display:flex;align-items:center;grid-gap:8px;gap:8px}\n"], components: [{ type: i3__namespace$1.OverlayPanel, selector: "p-overlayPanel", inputs: ["dismissable", "showCloseIcon", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }, { type: CartPreviewComponent, selector: "vl-cart-preview", inputs: ["products"] }, { type: i2__namespace.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "style", "styleClass", "badgeClass"], outputs: ["onClick", "onFocus", "onBlur"] }], directives: [{ type: i3__namespace.LetDirective, selector: "[vlLet]", inputs: ["vlLet"] }, { type: i8__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i11__namespace.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { type: i2__namespace$3.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { type: i8__namespace.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i8__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "async": i8__namespace.AsyncPipe, "date": i8__namespace.DatePipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
|
1177
|
+
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>{{ status$ | async }}</span>\n\n <i *ngIf=\"!quoteDetails.overlayVisible\" class=\"vl-icon vl-icon-chevron-down icon-with-margin\"></i>\n <i *ngIf=\"quoteDetails.overlayVisible\" class=\"vl-icon vl-icon-chevron-up icon-with-margin\"></i>\n </nav>\n\n <p-overlayPanel styleClass=\"navigation-settings-overlay flow-header-overlay center\" #quoteDetails>\n <ng-template pTemplate>\n <div class=\"flow-header-overlay__wrapper\">\n <h2 class=\"flow-header-overlay__title\">\n <span>Quote Information</span>\n <i class=\"vl-icon vl-icon-close close-icon\" (click)=\"quoteDetails.hide()\"></i>\n </h2>\n\n <ul class=\"info-list\">\n <li class=\"info-list__row\">\n <span>Account Name:</span>\n <a target=\"_blank\" [href]=\"getSalesforceObjectLink(details.accountId)\">\n <span>{{ details.accountName }}</span>\n </a>\n </li>\n <li class=\"info-list__row\">\n <span>Opportunity Name:</span>\n <a target=\"_blank\" [href]=\"getSalesforceObjectLink(details.opportunityId)\">\n <span>{{ details.opportunityName }}</span>\n </a>\n </li>\n <li class=\"info-list__row\">\n <span>Quote Name:</span>\n <a target=\"_blank\" [href]=\"getSalesforceObjectLink(details.quoteId)\">\n <span>{{ details.quoteName }}</span>\n </a>\n </li>\n </ul>\n </div>\n </ng-template>\n </p-overlayPanel>\n </ng-container>\n</div>\n\n<div class=\"flow-navigation\">\n <nav class=\"nav-item\" [ngClass]=\"{ active: isCatalogRoute$ | async }\" (click)=\"navigateToCatalog()\">Catalog</nav>\n <nav class=\"nav-item disabled\" [ngClass]=\"{ active: isConfigurationRoute$ | async }\">Configurator</nav>\n <ng-container *vlLet=\"products$ | async as products\">\n <nav class=\"nav-item\" [ngClass]=\"{ active: isCartRoute$ | async }\" (click)=\"navigateToShoppingCart()\">\n Shopping Cart ({{ products.length }})\n </nav>\n\n <nav class=\"nav-popover-toggle active\" (click)=\"cart?.overlayPanel?.toggle($event)\">\n <i *ngIf=\"!cart?.overlayPanel?.overlayVisible\" class=\"vl-icon vl-icon-chevron-down icon-with-margin\"></i>\n <i *ngIf=\"cart?.overlayPanel?.overlayVisible\" class=\"vl-icon vl-icon-chevron-up icon-with-margin\"></i>\n </nav>\n\n <vl-cart-preview #cart [products]=\"products\"></vl-cart-preview>\n </ng-container>\n</div>\n\n<div class=\"flow-controls\" *vlLet=\"objectDetails$ | async as details\">\n <ng-container *vlLet=\"activePriceList$ | async as priceList\">\n <ng-container *ngIf=\"isAccountMode && assetPriceLists.length > 1\">\n <nav class=\"nav-item\" (click)=\"priceListsOverlay?.toggle($event)\">\n <span>{{ priceList?.name }}</span>\n <i *ngIf=\"!priceListsOverlay?.overlayVisible\" class=\"vl-icon vl-icon-chevron-down icon-with-margin\"></i>\n <i *ngIf=\"priceListsOverlay?.overlayVisible\" class=\"vl-icon vl-icon-chevron-up icon-with-margin\"></i>\n </nav>\n\n <p-overlayPanel styleClass=\"price-list-overlay\" #priceListsOverlay>\n <ng-template pTemplate>\n <span\n *ngFor=\"let option of assetPriceLists\"\n class=\"price-list-option\"\n [class.active]=\"priceList?.id === option.id\"\n (click)=\"selectPriceList(option.id); priceListsOverlay.hide()\"\n >{{ option.name }}</span\n >\n </ng-template>\n </p-overlayPanel>\n </ng-container>\n\n <ng-container *ngIf=\"isQuoteMode\">\n <span>{{ priceList?.name }}</span>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"isQuoteMode\">\n <span *ngIf=\"contextProperties.StartDate\">{{ contextProperties.StartDate | date: 'MM.dd.yyyy' }}</span>\n\n <span class=\"slash-separator\"></span>\n\n <span class=\"metrics\">\n <div class=\"metrics__row\">\n MRR: <span class=\"font-semibold\">${{ totalMRR$ | async }}</span>\n </div>\n <div class=\"metrics__row\">\n NRR: <span class=\"font-semibold\">${{ totalNRR$ | async }}</span>\n </div>\n </span>\n </ng-container>\n\n <ng-container *vlLet=\"isCartRoute$ | async as isCartRoute\">\n <p-button\n class=\"doc-gen-button\"\n icon=\"vl-icon vl-icon-doc-gen\"\n (onClick)=\"docGenButtonClickHandler(isCartRoute)\"\n ></p-button>\n\n <ng-container *vlLet=\"isSaveInProgress$ | async as isSaveInProgress\">\n <ng-container *vlLet=\"isSubmitInProgress$ | async as isSubmitInProgress\">\n <p-splitButton\n *ngIf=\"!isSaveInProgress && !isSubmitInProgress\"\n label=\"Save to Quote\"\n (onClick)=\"saveButtonClickHandler(isCartRoute)\"\n [model]=\"getSplitButtonActions(isCartRoute)\"\n styleClass=\"p-button-outlined\"\n >\n </p-splitButton>\n\n <p-button\n *ngIf=\"isSaveInProgress\"\n class=\"save-button\"\n styleClass=\"p-button\"\n label=\"Saving\"\n [loading]=\"true\"\n ></p-button>\n\n <p-button\n *ngIf=\"isSubmitInProgress\"\n class=\"submit-button\"\n styleClass=\"p-button\"\n label=\"Submitting\"\n [loading]=\"true\"\n ></p-button>\n </ng-container>\n </ng-container>\n </ng-container>\n</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}::ng-deep .p-overlaypanel.price-list-overlay .p-overlaypanel-content{border-radius:5px;border-color:var(--vl-border-color);padding:0;display:flex;flex-direction:column;max-height:140px;overflow:auto}:host ::ng-deep p-splitButton{height:32px;width:146px;display:flex}:host ::ng-deep p-splitButton .p-splitbutton{display:flex;font-size:12px;border-radius:2px;height:100%;width:100%}:host ::ng-deep p-splitButton .p-splitbutton.p-button-outlined .p-button{background-color:#fff;color:var(--vl-primary-color);border:none}:host ::ng-deep p-splitButton .p-splitbutton.p-button-outlined .p-button:enabled:hover{background-color:var(--vl-secondary-nav-bg);color:var(--vl-primary-color);border:none}:host ::ng-deep p-splitButton .p-splitbutton.p-button-outlined .p-button.p-splitbutton-menubutton{background-color:var(--vl-secondary-nav-bg);border-radius:0 2px 2px 0;border-left:none}:host ::ng-deep p-splitButton .p-splitbutton.p-button-outlined .p-button.p-splitbutton-menubutton:hover{background-color:var(--vl-secondary-nav-bg);border-left:none}:host ::ng-deep p-splitButton .p-splitbutton.p-button-outlined .p-button.p-splitbutton-defaultbutton{border-radius:2px 0 0 2px}:host ::ng-deep p-splitButton .p-splitbutton.p-button-outlined .p-button.p-splitbutton-defaultbutton .p-button-label{font-size:12px;line-height:16px;letter-spacing:.3px;white-space:nowrap}:host ::ng-deep p-splitButton .p-splitbutton .p-menu{display:flex;width:auto;margin-top:2px;border-radius:4px;border:1px solid var(--vl-border-color);box-shadow:0 4px 20px #2767c11a}:host ::ng-deep p-splitButton .p-splitbutton .p-menu .p-menu-list{display:flex;flex-direction:column}:host ::ng-deep p-splitButton .p-splitbutton .p-menu .p-menu-list .p-menuitem{display:flex;width:100%;height:32px}:host ::ng-deep p-splitButton .p-splitbutton .p-menu .p-menu-list .p-menuitem .p-menuitem-link{padding:8px;width:100%;height:100%}:host ::ng-deep p-splitButton .p-splitbutton .p-menu .p-menu-list .p-menuitem .p-menuitem-link:not(.p-disabled):hover{background-color:var(--vl-secondary-nav-bg)}:host ::ng-deep p-splitButton .p-splitbutton .p-menu .p-menu-list .p-menuitem .p-menuitem-link:not(.p-disabled):hover .p-menuitem-text{color:var(--vl-primary-color)}:host ::ng-deep p-splitButton .p-splitbutton .p-menu .p-menu-list .p-menuitem .p-menuitem-link .p-menuitem-text{line-height:16px;font-size:12px;letter-spacing:.3px;white-space:nowrap}:host ::ng-deep .doc-gen-button{height:32px;width:32px;display:inline-flex}:host ::ng-deep .doc-gen-button .p-button{border:1px solid #fff;border-radius:2px;width:100%;height:100%}:host ::ng-deep .save-button,:host ::ng-deep .submit-button{height:32px;width:146px;display:flex}:host ::ng-deep .save-button .p-button,:host ::ng-deep .submit-button .p-button{border-radius:3px;width:100%;height:100%;background:rgba(255,255,255,.3);opacity:1;border:none}:host ::ng-deep .save-button .p-button .p-button-label,:host ::ng-deep .submit-button .p-button .p-button-label{font-size:12px;line-height:16px;letter-spacing:.3px;white-space:nowrap}.vl-icon{display:inline-block}.flow-info{flex-shrink:0;display:flex;grid-gap:8px;gap:8px;align-items:center}.flow-info .nav-popover-toggle{margin-left:-8px}.flow-info .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__wrapper .info-list__row a{text-align:right}.flow-header-overlay__title{display:flex;justify-content:space-between;align-items:center;margin:0 0 24px}.flow-navigation{flex-grow:1;display:flex;grid-gap:16px;gap:16px;justify-content:center;font-weight:600}.flow-navigation .cart-nav-container{display:flex}.flow-navigation .nav-popover-toggle{margin-left:-14px}.flow-navigation .nav-item,.flow-navigation .nav-popover-toggle{opacity:.6}.flow-navigation .nav-item.active,.flow-navigation .nav-item:not(.disabled):hover,.flow-navigation .nav-popover-toggle.active,.flow-navigation .nav-popover-toggle:not(.disabled):hover{opacity:1}.price-list-option{padding:8px;color:var(--vl-primary-color);cursor:pointer}.price-list-option.active,.price-list-option:hover{background:var(--vl-secondary-nav-bg)}.flow-controls{flex-shrink:0;display:flex;align-items:center;grid-gap:8px;gap:8px}\n"], components: [{ type: i3__namespace$1.OverlayPanel, selector: "p-overlayPanel", inputs: ["dismissable", "showCloseIcon", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }, { type: CartPreviewComponent, selector: "vl-cart-preview", inputs: ["products"] }, { type: i2__namespace.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "style", "styleClass", "badgeClass"], outputs: ["onClick", "onFocus", "onBlur"] }, { type: i9__namespace.SplitButton, selector: "p-splitButton", inputs: ["model", "icon", "iconPos", "label", "style", "styleClass", "menuStyle", "menuStyleClass", "disabled", "tabindex", "appendTo", "dir", "expandAriaLabel", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onClick", "onDropdownClick"] }], directives: [{ type: i3__namespace.LetDirective, selector: "[vlLet]", inputs: ["vlLet"] }, { type: i8__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i12__namespace.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { type: i2__namespace$3.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { type: i8__namespace.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i8__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "async": i8__namespace.AsyncPipe, "date": i8__namespace.DatePipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
|
1128
1178
|
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowHeaderComponent, decorators: [{
|
1129
1179
|
type: i0.Component,
|
1130
1180
|
args: [{
|
@@ -1141,13 +1191,35 @@
|
|
1141
1191
|
return FlowHeaderModule;
|
1142
1192
|
}());
|
1143
1193
|
FlowHeaderModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowHeaderModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
|
1144
|
-
FlowHeaderModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowHeaderModule, declarations: [FlowHeaderComponent], imports: [i8.CommonModule,
|
1145
|
-
|
1194
|
+
FlowHeaderModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowHeaderModule, declarations: [FlowHeaderComponent], imports: [i8.CommonModule,
|
1195
|
+
i3$1.OverlayPanelModule,
|
1196
|
+
i3.LetDirectiveModule,
|
1197
|
+
i12.TooltipModule,
|
1198
|
+
i2.ButtonModule,
|
1199
|
+
CartPreviewModule,
|
1200
|
+
i9.SplitButtonModule], exports: [FlowHeaderComponent] });
|
1201
|
+
FlowHeaderModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowHeaderModule, imports: [[
|
1202
|
+
i8.CommonModule,
|
1203
|
+
i3$1.OverlayPanelModule,
|
1204
|
+
i3.LetDirectiveModule,
|
1205
|
+
i12.TooltipModule,
|
1206
|
+
i2.ButtonModule,
|
1207
|
+
CartPreviewModule,
|
1208
|
+
i9.SplitButtonModule,
|
1209
|
+
]] });
|
1146
1210
|
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: FlowHeaderModule, decorators: [{
|
1147
1211
|
type: i0.NgModule,
|
1148
1212
|
args: [{
|
1149
1213
|
declarations: [FlowHeaderComponent],
|
1150
|
-
imports: [
|
1214
|
+
imports: [
|
1215
|
+
i8.CommonModule,
|
1216
|
+
i3$1.OverlayPanelModule,
|
1217
|
+
i3.LetDirectiveModule,
|
1218
|
+
i12.TooltipModule,
|
1219
|
+
i2.ButtonModule,
|
1220
|
+
CartPreviewModule,
|
1221
|
+
i9.SplitButtonModule,
|
1222
|
+
],
|
1151
1223
|
exports: [FlowHeaderComponent],
|
1152
1224
|
}]
|
1153
1225
|
}] });
|
@@ -1817,7 +1889,7 @@
|
|
1817
1889
|
if (!productId) {
|
1818
1890
|
return;
|
1819
1891
|
}
|
1820
|
-
var lineItemId = this.getLineItemId(quote, contextProperties.lineItemId);
|
1892
|
+
var lineItemId = this.getLineItemId(quote, productId, contextProperties.lineItemId);
|
1821
1893
|
var currentStateItem = quote.currentState.find(function (_c) {
|
1822
1894
|
var id = _c.id;
|
1823
1895
|
return id === lineItemId;
|
@@ -1853,9 +1925,14 @@
|
|
1853
1925
|
}));
|
1854
1926
|
};
|
1855
1927
|
};
|
1856
|
-
ProductComponent.prototype.getLineItemId = function (quote, lineItemId) {
|
1857
|
-
var _a;
|
1858
|
-
|
1928
|
+
ProductComponent.prototype.getLineItemId = function (quote, productId, lineItemId) {
|
1929
|
+
var _a, _b;
|
1930
|
+
// search by lineItemId first
|
1931
|
+
var id = (_a = quote.currentState.find(function (li) { return li.id === lineItemId; })) === null || _a === void 0 ? void 0 : _a.id;
|
1932
|
+
if (!id && this.quoteDraftService.isStandalone) {
|
1933
|
+
id = (_b = quote.currentState.find(function (li) { return li.productId === productId; })) === null || _b === void 0 ? void 0 : _b.id;
|
1934
|
+
}
|
1935
|
+
return id;
|
1859
1936
|
};
|
1860
1937
|
ProductComponent.prototype.getAsset = function (quote, lineItem) {
|
1861
1938
|
return quote.initialState.find(function (a) { return a.id === lineItem.openOrderLineItemId || a.id === lineItem.assetId; });
|