@veloceapps/sdk 5.0.9 → 5.0.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (109) hide show
  1. package/bundles/veloce-sdk-cms.umd.js +102 -51
  2. package/bundles/veloce-sdk-cms.umd.js.map +1 -1
  3. package/bundles/veloce-sdk-core.umd.js.map +1 -1
  4. package/bundles/veloce-sdk-runtime.umd.js.map +1 -1
  5. package/bundles/veloce-sdk.umd.js +4 -2
  6. package/bundles/veloce-sdk.umd.js.map +1 -1
  7. package/cms/components/element-renderer/element-renderer.component.d.ts +1 -0
  8. package/cms/services/launcher.service.d.ts +3 -3
  9. package/cms/types/compilation.types.d.ts +6 -0
  10. package/cms/types/index.d.ts +1 -0
  11. package/cms/utils/elements-resolver.d.ts +3 -0
  12. package/cms/vendor-map.d.ts +124 -116
  13. package/core/modules/configuration/services/configuration-runtime.service.d.ts +1 -1
  14. package/esm2015/cms/components/element-renderer/element-renderer.component.js +23 -2
  15. package/esm2015/cms/components/element.component.js +1 -1
  16. package/esm2015/cms/components/preview/preview.component.js +7 -4
  17. package/esm2015/cms/decorators/element.decorator.js +1 -1
  18. package/esm2015/cms/directives/custom-template.directive.js +1 -1
  19. package/esm2015/cms/engine/models/entity.js +1 -1
  20. package/esm2015/cms/modules/federated/federated.component.js +1 -1
  21. package/esm2015/cms/modules/federated/federated.utils.js +1 -1
  22. package/esm2015/cms/plugins/configuration.plugin.js +1 -1
  23. package/esm2015/cms/plugins/script.plugin.js +1 -1
  24. package/esm2015/cms/services/dynamic-module.service.js +1 -1
  25. package/esm2015/cms/services/element-context.service.js +1 -1
  26. package/esm2015/cms/services/integration.state.js +1 -1
  27. package/esm2015/cms/services/launcher.service.js +10 -10
  28. package/esm2015/cms/services/templates.service.js +1 -1
  29. package/esm2015/cms/types/compilation.types.js +2 -0
  30. package/esm2015/cms/types/index.js +2 -1
  31. package/esm2015/cms/utils/element.utils.js +1 -1
  32. package/esm2015/cms/utils/elements-resolver.js +52 -30
  33. package/esm2015/core/modules/configuration/services/configuration-runtime.service.js +1 -1
  34. package/esm2015/core/modules/configuration/services/configuration.service.js +1 -1
  35. package/esm2015/core/modules/configuration/services/runtime-context.service.js +1 -1
  36. package/esm2015/core/modules/flow-configuration/services/flow-update.service.js +1 -1
  37. package/esm2015/core/services/context.service.js +1 -1
  38. package/esm2015/core/services/quote-draft.service.js +1 -1
  39. package/esm2015/core/utils/line-item.utils.js +1 -1
  40. package/esm2015/runtime/components/component-preview/component-preview.component.js +1 -1
  41. package/esm2015/runtime/components/section-renderer/section-renderer.component.js +1 -1
  42. package/esm2015/runtime/components/ui-runtime/runtime.component.js +1 -1
  43. package/esm2015/runtime/components/ui-runtime-preview/runtime-preview.component.js +1 -1
  44. package/esm2015/runtime/execution/components/children-placeholder/children-placeholder.component.js +1 -1
  45. package/esm2015/runtime/execution/components/context-provider/context-provider.component.js +1 -1
  46. package/esm2015/runtime/execution/components/execution-section-renderer/execution-section-renderer.component.js +1 -1
  47. package/esm2015/runtime/execution/components/federated/federated.component.js +1 -1
  48. package/esm2015/runtime/execution/components/velo-attribute/velo-attribute.component.js +1 -1
  49. package/esm2015/runtime/execution/components/velo-multiselect/velo-multiselect.component.js +1 -1
  50. package/esm2015/runtime/execution/components/velo-port-checkbox/velo-port-checkbox.component.js +1 -1
  51. package/esm2015/runtime/execution/components/velo-port-dropdown/velo-port-dropdown.component.js +1 -1
  52. package/esm2015/runtime/execution/components/velo-port-radio/velo-port-radio.component.js +1 -1
  53. package/esm2015/runtime/execution/components/velo-type/velo-type.component.js +1 -1
  54. package/esm2015/runtime/execution/directives/section-script.directive.js +1 -1
  55. package/esm2015/runtime/execution/directives/sf-query.directive.js +1 -1
  56. package/esm2015/runtime/execution/directives/velo-attribute.directive.js +1 -1
  57. package/esm2015/runtime/execution/directives/velo-port.directive.js +1 -1
  58. package/esm2015/runtime/execution/directives/vl-approval.directive.js +1 -1
  59. package/esm2015/runtime/execution/directives/vl-document-attachments.directive.js +1 -1
  60. package/esm2015/runtime/execution/directives/vl-document-templates.directive.js +1 -1
  61. package/esm2015/runtime/execution/directives/vl-quote.directive.js +1 -1
  62. package/esm2015/runtime/execution/directives/vl-ramp.directive.js +1 -1
  63. package/esm2015/runtime/execution/utils/federated.util.js +1 -1
  64. package/esm2015/runtime/services/cart.service.js +1 -1
  65. package/esm2015/runtime/services/collapsible-state.service.js +1 -1
  66. package/esm2015/runtime/services/configuration.service.js +1 -1
  67. package/esm2015/runtime/services/current-state.service.js +1 -1
  68. package/esm2015/runtime/services/form-scope.service.js +1 -1
  69. package/esm2015/runtime/services/product-model-cache.service.js +1 -1
  70. package/esm2015/runtime/services/runtime-context.service.js +1 -1
  71. package/esm2015/runtime/services/runtime-form.service.js +2 -2
  72. package/esm2015/runtime/services/runtime.service.js +1 -1
  73. package/esm2015/runtime/services/section-helper.service.js +1 -1
  74. package/esm2015/runtime/services/section-scope.service.js +1 -1
  75. package/esm2015/runtime/services/section-store.service.js +1 -1
  76. package/esm2015/runtime/services/section.service.js +1 -1
  77. package/esm2015/runtime/types/script-registry.types.js +1 -1
  78. package/esm2015/runtime/utils/line-item.util.js +1 -1
  79. package/esm2015/runtime/utils/sections-binder.helper.js +1 -1
  80. package/esm2015/src/components/dialog/dialog.component.js +1 -1
  81. package/esm2015/src/components/doc-gen/doc-gen.component.js +2 -2
  82. package/esm2015/src/components/header/cart-overlay/cart-preview.component.js +2 -2
  83. package/esm2015/src/components/header/header.component.js +4 -2
  84. package/esm2015/src/components/header/metrics/metrics.component.js +1 -1
  85. package/esm2015/src/flow-routing.module.js +1 -1
  86. package/esm2015/src/flow.component.js +1 -1
  87. package/esm2015/src/guards/product-unload.guard.js +1 -1
  88. package/esm2015/src/guards/root.guard.js +1 -1
  89. package/esm2015/src/pages/catalog/catalog.component.js +1 -1
  90. package/esm2015/src/pages/debug/debug.component.js +1 -1
  91. package/esm2015/src/pages/legacy-product/legacy-product.component.js +1 -1
  92. package/esm2015/src/pages/product/product.component.js +1 -1
  93. package/esm2015/src/pages/record-not-found/record-not-found.component.js +1 -1
  94. package/esm2015/src/pages/shopping-cart/shopping-cart.component.js +1 -1
  95. package/esm2015/src/resolvers/flow.resolver.js +1 -1
  96. package/esm2015/src/resolvers/quote.resolver.js +1 -1
  97. package/esm2015/src/services/flow-router.service.js +1 -1
  98. package/fesm2015/veloce-sdk-cms.js +86 -40
  99. package/fesm2015/veloce-sdk-cms.js.map +1 -1
  100. package/fesm2015/veloce-sdk-core.js.map +1 -1
  101. package/fesm2015/veloce-sdk-runtime.js +1 -1
  102. package/fesm2015/veloce-sdk-runtime.js.map +1 -1
  103. package/fesm2015/veloce-sdk.js +4 -2
  104. package/fesm2015/veloce-sdk.js.map +1 -1
  105. package/package.json +1 -1
  106. package/runtime/services/runtime-form.service.d.ts +3 -3
  107. package/runtime/utils/line-item.util.d.ts +1 -1
  108. package/src/guards/product-unload.guard.d.ts +2 -1
  109. package/src/resolvers/flow.resolver.d.ts +1 -1
@@ -794,7 +794,7 @@
794
794
  return CartPreviewComponent;
795
795
  }());
796
796
  CartPreviewComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: CartPreviewComponent, deps: [{ token: i1__namespace$2.FlowConfigurationService }, { token: FlowRouterService }, { token: i1__namespace$2.ProductImagesService }, { token: i1__namespace$2.QuoteDraftService }], target: i0__namespace.ɵɵFactoryTarget.Component });
797
- CartPreviewComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: CartPreviewComponent, selector: "vl-cart-preview", inputs: { products: "products" }, viewQueries: [{ propertyName: "overlayPanel", first: true, predicate: i3$1.OverlayPanel, descendants: true }], usesOnChanges: true, ngImport: i0__namespace, template: "<p-overlayPanel\n styleClass=\"navigation-settings-overlay flow-header-overlay center no-padding\"\n showTransitionOptions=\"0ms\"\n hideTransitionOptions=\"0ms\"\n>\n <ng-template pTemplate>\n <div class=\"flow-header-overlay__wrapper\" *vlLet=\"lockedProductId$ | async as lockedProductId\">\n <ng-container *vlLet=\"isEditMode$ | async as isEditMode\">\n <ng-container *ngIf=\"products.length > 0; else empty\">\n <h2 class=\"flow-header-overlay__title\">\n <span>Products ({{ products.length }})</span>\n <i class=\"vl-icon vl-icon-close close-icon\" (click)=\"overlayPanel.hide()\"></i>\n </h2>\n\n <p-virtualScroller [value]=\"products\" scrollHeight=\"{{ scrollHeight }}px\" [itemSize]=\"productRowHeight\">\n <ng-template pTemplate=\"header\">\n <div class=\"product header\">\n <span>Product</span>\n <span class=\"text-right\">Qty</span>\n <span class=\"text-right\">MRR</span>\n <span class=\"text-right\">NRR</span>\n </div>\n </ng-template>\n\n <ng-template pTemplate=\"item\" let-product>\n <div\n class=\"product item\"\n *vlLet=\"!isEditMode || product.deleted as isReadonlyProduct\"\n [class.readonly]=\"isReadonlyProduct\"\n [class.deleted]=\"product.deleted\"\n >\n <ng-container *vlLet=\"lockedProductId === product.productId as isLockedProduct\">\n <div class=\"product__info\">\n <div class=\"product__image-wrapper\">\n <div\n *ngIf=\"getImageUrl(product.productId) | async as imageUrl; else noImage\"\n class=\"product__image\"\n [ngStyle]=\"{ 'background-image': 'url(' + imageUrl + ')' }\"\n ></div>\n </div>\n <div class=\"flex flex-column justify-content-center\">\n <div class=\"word-break\" [class.line-through]=\"product.deleted\">{{ product.name }}</div>\n <div *ngIf=\"!isReadonlyProduct\">\n <p-button\n label=\"Configure\"\n [disabled]=\"isLockedProduct || !product.configurable || product.hasTerm\"\n styleClass=\"p-button-link p-button-sm p-2 pl-0\"\n (onClick)=\"navigateToProductConfiguration(product.productId, product.id)\"\n ></p-button>\n <p-button\n label=\"Delete\"\n [disabled]=\"isLockedProduct || product.hasTerm\"\n styleClass=\"p-button-link p-button-sm p-button-danger p-2 pr-0\"\n (onClick)=\"deleteHandler(product)\"\n ></p-button>\n </div>\n </div>\n </div>\n\n <ng-container *ngIf=\"form.controls[product.id] as control\">\n <span class=\"pt-2\" *ngIf=\"!isReadonlyProduct; else readonlyQty\">\n <p-inputNumber\n class=\"qty-control\"\n [formControl]=\"$any(control)\"\n [min]=\"1\"\n [required]=\"true\"\n (onBlur)=\"controlBlurHandler(product)\"\n ></p-inputNumber>\n </span>\n <ng-template #readonlyQty\n ><span class=\"text-right\">{{ control.value }}</span></ng-template\n >\n </ng-container>\n\n <span class=\"text-right\" [class.pt-3]=\"!isReadonlyProduct\">${{ product.mrr }}</span>\n <span class=\"text-right\" [class.pt-3]=\"!isReadonlyProduct\">${{ product.nrr }}</span>\n </ng-container>\n </div>\n </ng-template>\n </p-virtualScroller>\n\n <ng-template #noImage>\n <i class=\"vl-icon vl-icon-no-image no-image-icon\"></i>\n </ng-template>\n\n <div class=\"flex justify-content-end footer\">\n <p-button\n label=\"Clear cart\"\n styleClass=\"p-button-link p-button-sm p-button-danger pl-0 pr-0\"\n [disabled]=\"!isEditMode || !!lockedProductId || hasTermInProducts\"\n (onClick)=\"deleteAllHandler()\"\n ></p-button>\n </div>\n </ng-container>\n </ng-container>\n\n <ng-template #empty>\n <h2 class=\"flow-header-overlay__title\">\n <span>Empty Cart</span>\n <i class=\"vl-icon vl-icon-close close-icon\" (click)=\"overlayPanel.hide()\"></i>\n </h2>\n\n <span class=\"empty-state\">There are no products added to the Shopping Cart yet.</span>\n </ng-template>\n </div>\n </ng-template>\n</p-overlayPanel>\n", styles: ["p-virtualscroller ::ng-deep .p-virtualscroller-header{background:none;padding:0;border:none;font-weight:unset}p-virtualscroller ::ng-deep cdk-virtual-scroll-viewport{overflow-y:scroll}.flow-header-overlay__wrapper{display:flex;flex-direction:column;width:460px;max-height:600px}.flow-header-overlay__wrapper .close-icon{cursor:pointer}.flow-header-overlay__title{display:flex;justify-content:space-between;align-items:center;margin:0;padding:16px}.empty-state{color:var(--vl-text-color-deep-accent);padding:0 16px 16px}.product{display:grid;grid-template-columns:auto 60px 70px 70px;padding:16px;border-bottom:1px solid var(--vl-border-color)}.product.readonly{align-items:center}.product.deleted{opacity:.5}.product.header{position:-webkit-sticky;position:sticky;top:0;background-color:var(--surface-card);z-index:1;color:var(--vl-text-color-deep-accent);padding-bottom:0;border-bottom:none;overflow-y:scroll}.product .item{height:97px;overflow:hidden}.product__info{display:flex;grid-gap:16px;gap:16px}.product__image-wrapper{flex-shrink:0;height:64px;width:64px;display:flex;justify-content:center;align-items:center;background:var(--vl-primary-nav-overlay-bg);border-radius:4px}.product__image{background-size:contain;background-repeat:no-repeat;background-position:center;height:calc(100% - 12px);width:calc(100% - 12px)}.product .qty-control ::ng-deep .p-inputnumber-input{align-self:flex-start;text-align:right;height:24px;width:100%}.footer{padding:12px 16px}.word-break{word-break:break-word}.no-image-icon{color:#b4d1ef;height:18px;width:18px}:host ::ng-deep .p-overlaypanel.navigation-settings-overlay{margin-top:20px}\n"], components: [{ type: i3__namespace$1.OverlayPanel, selector: "p-overlayPanel", inputs: ["dismissable", "showCloseIcon", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }, { type: i4__namespace.VirtualScroller, selector: "p-virtualScroller", inputs: ["value", "itemSize", "style", "styleClass", "scrollHeight", "lazy", "rows", "minBufferPx", "maxBufferPx", "delay", "trackBy", "totalRecords", "first", "cache"], outputs: ["onLazyLoad"] }, { type: i5__namespace.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "style", "styleClass", "badgeClass"], outputs: ["onClick", "onFocus", "onBlur"] }, { type: i6__namespace.InputNumber, selector: "p-inputNumber", inputs: ["showButtons", "format", "buttonLayout", "inputId", "styleClass", "style", "placeholder", "size", "maxlength", "tabindex", "title", "ariaLabel", "ariaRequired", "name", "required", "autocomplete", "min", "max", "incrementButtonClass", "decrementButtonClass", "incrementButtonIcon", "decrementButtonIcon", "readonly", "step", "allowEmpty", "locale", "localeMatcher", "mode", "currency", "currencyDisplay", "useGrouping", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "inputStyle", "inputStyleClass", "disabled"], outputs: ["onInput", "onFocus", "onBlur", "onKeyDown"] }], directives: [{ type: i2__namespace$1.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { type: i3__namespace.LetDirective, selector: "[vlLet]", inputs: ["vlLet"] }, { type: i5__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5__namespace$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i10__namespace.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i10__namespace.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i10__namespace.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }], pipes: { "async": i5__namespace$1.AsyncPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
797
+ CartPreviewComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: CartPreviewComponent, selector: "vl-cart-preview", inputs: { products: "products" }, viewQueries: [{ propertyName: "overlayPanel", first: true, predicate: i3$1.OverlayPanel, descendants: true }], usesOnChanges: true, ngImport: i0__namespace, template: "<p-overlayPanel\n styleClass=\"navigation-settings-overlay flow-header-overlay center no-padding\"\n showTransitionOptions=\"0ms\"\n hideTransitionOptions=\"0ms\"\n>\n <ng-template pTemplate>\n <div class=\"flow-header-overlay__wrapper\" *vlLet=\"lockedProductId$ | async as lockedProductId\">\n <ng-container *vlLet=\"isEditMode$ | async as isEditMode\">\n <ng-container *ngIf=\"products.length > 0; else empty\">\n <h2 class=\"flow-header-overlay__title\">\n <span>Products ({{ products.length }})</span>\n <i class=\"vl-icon vl-icon-close close-icon\" (click)=\"overlayPanel.hide()\"></i>\n </h2>\n\n <p-virtualScroller [value]=\"products\" scrollHeight=\"{{ scrollHeight }}px\" [itemSize]=\"productRowHeight\">\n <ng-template pTemplate=\"header\">\n <div class=\"product header\">\n <span>Product</span>\n <span class=\"text-right\">Qty</span>\n </div>\n </ng-template>\n\n <ng-template pTemplate=\"item\" let-product>\n <div\n class=\"product item\"\n *vlLet=\"!isEditMode || product.deleted as isReadonlyProduct\"\n [class.readonly]=\"isReadonlyProduct\"\n [class.deleted]=\"product.deleted\"\n >\n <ng-container *vlLet=\"lockedProductId === product.productId as isLockedProduct\">\n <div class=\"product__info\">\n <div class=\"product__image-wrapper\">\n <div\n *ngIf=\"getImageUrl(product.productId) | async as imageUrl; else noImage\"\n class=\"product__image\"\n [ngStyle]=\"{ 'background-image': 'url(' + imageUrl + ')' }\"\n ></div>\n </div>\n <div class=\"flex flex-column justify-content-center\">\n <div class=\"word-break\" [class.line-through]=\"product.deleted\">{{ product.name }}</div>\n <div *ngIf=\"!isReadonlyProduct\">\n <p-button\n label=\"Configure\"\n [disabled]=\"isLockedProduct || !product.configurable || product.hasTerm\"\n styleClass=\"p-button-link p-button-sm p-2 pl-0\"\n (onClick)=\"navigateToProductConfiguration(product.productId, product.id)\"\n ></p-button>\n <p-button\n label=\"Delete\"\n [disabled]=\"isLockedProduct || product.hasTerm\"\n styleClass=\"p-button-link p-button-sm p-button-danger p-2 pr-0\"\n (onClick)=\"deleteHandler(product)\"\n ></p-button>\n </div>\n </div>\n </div>\n\n <ng-container *ngIf=\"form.controls[product.id] as control\">\n <span class=\"pt-2\" *ngIf=\"!isReadonlyProduct; else readonlyQty\">\n <p-inputNumber\n class=\"qty-control\"\n [formControl]=\"$any(control)\"\n [min]=\"1\"\n [required]=\"true\"\n (onBlur)=\"controlBlurHandler(product)\"\n ></p-inputNumber>\n </span>\n <ng-template #readonlyQty\n ><span class=\"text-right\">{{ control.value }}</span></ng-template\n >\n </ng-container>\n </ng-container>\n </div>\n </ng-template>\n </p-virtualScroller>\n\n <ng-template #noImage>\n <i class=\"vl-icon vl-icon-no-image no-image-icon\"></i>\n </ng-template>\n\n <div class=\"flex justify-content-end footer\">\n <p-button\n label=\"Clear cart\"\n styleClass=\"p-button-link p-button-sm p-button-danger pl-0 pr-0\"\n [disabled]=\"!isEditMode || !!lockedProductId || hasTermInProducts\"\n (onClick)=\"deleteAllHandler()\"\n ></p-button>\n </div>\n </ng-container>\n </ng-container>\n\n <ng-template #empty>\n <h2 class=\"flow-header-overlay__title\">\n <span>Empty Cart</span>\n <i class=\"vl-icon vl-icon-close close-icon\" (click)=\"overlayPanel.hide()\"></i>\n </h2>\n\n <span class=\"empty-state\">There are no products added to the Shopping Cart yet.</span>\n </ng-template>\n </div>\n </ng-template>\n</p-overlayPanel>\n", styles: ["p-virtualscroller ::ng-deep .p-virtualscroller-header{background:none;padding:0;border:none;font-weight:unset}p-virtualscroller ::ng-deep cdk-virtual-scroll-viewport{overflow-y:scroll}.flow-header-overlay__wrapper{display:flex;flex-direction:column;width:460px;max-height:600px}.flow-header-overlay__wrapper .close-icon{cursor:pointer}.flow-header-overlay__title{display:flex;justify-content:space-between;align-items:center;margin:0;padding:16px}.empty-state{color:var(--vl-text-color-deep-accent);padding:0 16px 16px}.product{display:grid;grid-template-columns:auto 60px;padding:16px;border-bottom:1px solid var(--vl-border-color)}.product.readonly{align-items:center}.product.deleted{opacity:.5}.product.header{position:-webkit-sticky;position:sticky;top:0;background-color:var(--surface-card);z-index:1;color:var(--vl-text-color-deep-accent);padding-bottom:0;border-bottom:none;overflow-y:scroll}.product .item{height:97px;overflow:hidden}.product__info{display:flex;grid-gap:16px;gap:16px}.product__image-wrapper{flex-shrink:0;height:64px;width:64px;display:flex;justify-content:center;align-items:center;background:var(--vl-primary-nav-overlay-bg);border-radius:4px}.product__image{background-size:contain;background-repeat:no-repeat;background-position:center;height:calc(100% - 12px);width:calc(100% - 12px)}.product .qty-control ::ng-deep .p-inputnumber-input{align-self:flex-start;text-align:right;height:24px;width:100%}.footer{padding:12px 16px}.word-break{word-break:break-word}.no-image-icon{color:#b4d1ef;height:18px;width:18px}:host ::ng-deep .p-overlaypanel.navigation-settings-overlay{margin-top:20px}\n"], components: [{ type: i3__namespace$1.OverlayPanel, selector: "p-overlayPanel", inputs: ["dismissable", "showCloseIcon", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }, { type: i4__namespace.VirtualScroller, selector: "p-virtualScroller", inputs: ["value", "itemSize", "style", "styleClass", "scrollHeight", "lazy", "rows", "minBufferPx", "maxBufferPx", "delay", "trackBy", "totalRecords", "first", "cache"], outputs: ["onLazyLoad"] }, { type: i5__namespace.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "style", "styleClass", "badgeClass"], outputs: ["onClick", "onFocus", "onBlur"] }, { type: i6__namespace.InputNumber, selector: "p-inputNumber", inputs: ["showButtons", "format", "buttonLayout", "inputId", "styleClass", "style", "placeholder", "size", "maxlength", "tabindex", "title", "ariaLabel", "ariaRequired", "name", "required", "autocomplete", "min", "max", "incrementButtonClass", "decrementButtonClass", "incrementButtonIcon", "decrementButtonIcon", "readonly", "step", "allowEmpty", "locale", "localeMatcher", "mode", "currency", "currencyDisplay", "useGrouping", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "inputStyle", "inputStyleClass", "disabled"], outputs: ["onInput", "onFocus", "onBlur", "onKeyDown"] }], directives: [{ type: i2__namespace$1.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { type: i3__namespace.LetDirective, selector: "[vlLet]", inputs: ["vlLet"] }, { type: i5__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5__namespace$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i10__namespace.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i10__namespace.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i10__namespace.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }], pipes: { "async": i5__namespace$1.AsyncPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
798
798
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0__namespace, type: CartPreviewComponent, decorators: [{
799
799
  type: i0.Component,
800
800
  args: [{
@@ -1481,7 +1481,9 @@
1481
1481
  !this.quoteDraftService.hasAssets);
1482
1482
  };
1483
1483
  FlowHeaderComponent.prototype.isUpsellQuoteWithoutChanges = function () {
1484
- return this.quoteDraftService.activeCurrentState.every(function (lineItem) { return lineItem.actionCode === 'EXIST'; });
1484
+ var noUpdates = this.quoteDraftService.activeCurrentState.every(function (lineItem) { return lineItem.actionCode === 'EXIST'; });
1485
+ var sameNumberOfProducts = this.quoteDraftService.getInitialCurrentState().length === this.quoteDraftService.activeCurrentState.length;
1486
+ return noUpdates && sameNumberOfProducts;
1485
1487
  };
1486
1488
  return FlowHeaderComponent;
1487
1489
  }());