@veloceapps/sdk 7.0.2-7 → 7.0.2-71

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 (192) hide show
  1. package/cms/cms.actions.d.ts +102 -11
  2. package/cms/cms.default.d.ts +2 -2
  3. package/cms/components/element-children/element-children.component.d.ts +3 -1
  4. package/cms/components/element-tools-panel/element-tools-panel.component.d.ts +14 -0
  5. package/cms/components/preview/preview.component.d.ts +6 -5
  6. package/cms/components/preview/preview.module.d.ts +2 -1
  7. package/cms/components/preview/preview.types.d.ts +4 -0
  8. package/cms/definitions/index.d.ts +1 -0
  9. package/cms/definitions/ui-builder.definitions.d.ts +6 -0
  10. package/cms/index.d.ts +2 -0
  11. package/cms/injection-tokens.d.ts +2 -4
  12. package/cms/modules/migrations/services/migrations.service.d.ts +1 -1
  13. package/cms/modules/migrations/types/migrations.types.d.ts +1 -1
  14. package/cms/modules/runtime/index.d.ts +1 -0
  15. package/cms/modules/runtime/services/compilation.service.d.ts +3 -2
  16. package/cms/modules/runtime/services/runtime-editor.service.d.ts +6 -4
  17. package/cms/modules/runtime/services/runtime.service.d.ts +6 -2
  18. package/cms/modules/runtime/types/runtime.actions.d.ts +5 -2
  19. package/cms/plugins/element-hover.plugin.d.ts +33 -0
  20. package/cms/plugins/page.plugin.d.ts +15 -0
  21. package/cms/plugins/script.plugin.d.ts +0 -3
  22. package/cms/types/common.types.d.ts +11 -1
  23. package/cms/types/index.d.ts +2 -0
  24. package/cms/types/integration.types.d.ts +1 -0
  25. package/cms/types/layouts.types.d.ts +30 -2
  26. package/cms/types/pages.types.d.ts +1 -0
  27. package/cms/utils/element.utils.d.ts +1 -1
  28. package/cms/utils/elements-resolver.d.ts +6 -2
  29. package/cms/utils/index.d.ts +1 -0
  30. package/cms/utils/script.utils.d.ts +2 -0
  31. package/cms/utils/ui-builder-layout.utils.d.ts +4 -0
  32. package/cms/vendor-map.d.ts +15 -19
  33. package/core/core.module.d.ts +2 -0
  34. package/core/directives/directives.module.d.ts +7 -0
  35. package/core/directives/index.d.ts +2 -0
  36. package/core/directives/primeng-calendar.directive.d.ts +14 -0
  37. package/core/index.d.ts +2 -0
  38. package/core/modules/configuration/helpers.d.ts +4 -2
  39. package/core/modules/configuration/index.d.ts +1 -0
  40. package/core/modules/configuration/services/configuration-runtime.service.d.ts +2 -2
  41. package/core/modules/configuration/services/configuration.service.d.ts +6 -4
  42. package/core/modules/configuration/types/configuration-runtime.types.d.ts +1 -0
  43. package/core/modules/configuration/types/configuration.types.d.ts +10 -0
  44. package/core/modules/flow-configuration/services/flow-configuration.service.d.ts +2 -1
  45. package/core/pipes/date.pipe.d.ts +12 -0
  46. package/core/pipes/index.d.ts +4 -0
  47. package/core/pipes/number.pipe.d.ts +10 -0
  48. package/core/pipes/pipes.module.d.ts +9 -0
  49. package/core/pipes/price.pipe.d.ts +10 -0
  50. package/core/services/index.d.ts +1 -0
  51. package/core/services/runtime-settings.service.d.ts +21 -0
  52. package/core/types/formatting-settings.types.d.ts +11 -0
  53. package/core/types/index.d.ts +1 -0
  54. package/core/types/runtime.types.d.ts +1 -2
  55. package/core/types/ui-definition.types.d.ts +0 -40
  56. package/core/utils/line-item.utils.d.ts +10 -15
  57. package/core/utils/line-item.worker.d.ts +3 -6
  58. package/core/utils/ui-definition.utils.d.ts +1 -1
  59. package/esm2020/cms/cms.actions.mjs +140 -40
  60. package/esm2020/cms/cms.default.mjs +1 -1
  61. package/esm2020/cms/cms.elements.mjs +16 -4
  62. package/esm2020/cms/cms.layouts.mjs +73 -13
  63. package/esm2020/cms/components/element-children/element-children.component.mjs +11 -6
  64. package/esm2020/cms/components/element-drop-handle/element-drop-handle.component.mjs +2 -2
  65. package/esm2020/cms/components/element-tools-panel/element-tools-panel.component.mjs +35 -0
  66. package/esm2020/cms/components/preview/preview.component.mjs +18 -16
  67. package/esm2020/cms/components/preview/preview.module.mjs +22 -4
  68. package/esm2020/cms/components/preview/preview.types.mjs +1 -1
  69. package/esm2020/cms/definitions/index.mjs +2 -0
  70. package/esm2020/cms/definitions/ui-builder.definitions.mjs +18 -0
  71. package/esm2020/cms/index.mjs +3 -1
  72. package/esm2020/cms/injection-tokens.mjs +1 -2
  73. package/esm2020/cms/modules/migrations/migrations.mjs +10 -3
  74. package/esm2020/cms/modules/migrations/services/migrations.service.mjs +1 -1
  75. package/esm2020/cms/modules/migrations/types/migrations.types.mjs +1 -1
  76. package/esm2020/cms/modules/runtime/index.mjs +2 -1
  77. package/esm2020/cms/modules/runtime/services/compilation.service.mjs +5 -3
  78. package/esm2020/cms/modules/runtime/services/runtime-editor.service.mjs +5 -3
  79. package/esm2020/cms/modules/runtime/services/runtime.service.mjs +41 -6
  80. package/esm2020/cms/modules/runtime/types/runtime.actions.mjs +1 -1
  81. package/esm2020/cms/plugins/element-hover.plugin.mjs +121 -0
  82. package/esm2020/cms/plugins/page.plugin.mjs +37 -0
  83. package/esm2020/cms/plugins/region.plugin.mjs +3 -2
  84. package/esm2020/cms/plugins/script.plugin.mjs +6 -40
  85. package/esm2020/cms/services/integration.state.mjs +3 -6
  86. package/esm2020/cms/services/io-provider.service.mjs +7 -5
  87. package/esm2020/cms/types/common.types.mjs +1 -1
  88. package/esm2020/cms/types/index.mjs +3 -1
  89. package/esm2020/cms/types/integration.types.mjs +1 -1
  90. package/esm2020/cms/types/layouts.types.mjs +70 -1
  91. package/esm2020/cms/types/pages.types.mjs +2 -0
  92. package/esm2020/cms/utils/element.utils.mjs +1 -1
  93. package/esm2020/cms/utils/elements-resolver.mjs +22 -8
  94. package/esm2020/cms/utils/index.mjs +2 -1
  95. package/esm2020/cms/utils/script.utils.mjs +42 -0
  96. package/esm2020/cms/utils/ui-builder-layout.utils.mjs +46 -0
  97. package/esm2020/cms/vendor-map.mjs +5 -3
  98. package/esm2020/core/core.module.mjs +33 -4
  99. package/esm2020/core/directives/directives.module.mjs +16 -0
  100. package/esm2020/core/directives/index.mjs +3 -0
  101. package/esm2020/core/directives/primeng-calendar.directive.mjs +41 -0
  102. package/esm2020/core/index.mjs +3 -1
  103. package/esm2020/core/modules/configuration/configuration.module.mjs +2 -2
  104. package/esm2020/core/modules/configuration/helpers.mjs +37 -7
  105. package/esm2020/core/modules/configuration/index.mjs +2 -1
  106. package/esm2020/core/modules/configuration/services/configuration-runtime.service.mjs +3 -2
  107. package/esm2020/core/modules/configuration/services/configuration.service.mjs +35 -10
  108. package/esm2020/core/modules/configuration/services/runtime-context.service.mjs +6 -12
  109. package/esm2020/core/modules/configuration/types/configuration-runtime.types.mjs +1 -1
  110. package/esm2020/core/modules/configuration/types/configuration.types.mjs +2 -0
  111. package/esm2020/core/modules/flow-configuration/services/flow-configuration.service.mjs +4 -4
  112. package/esm2020/core/pipes/date.pipe.mjs +38 -0
  113. package/esm2020/core/pipes/index.mjs +5 -0
  114. package/esm2020/core/pipes/number.pipe.mjs +27 -0
  115. package/esm2020/core/pipes/pipes.module.mjs +18 -0
  116. package/esm2020/core/pipes/price.pipe.mjs +30 -0
  117. package/esm2020/core/services/index.mjs +2 -1
  118. package/esm2020/core/services/runtime-settings.service.mjs +88 -0
  119. package/esm2020/core/types/formatting-settings.types.mjs +3 -0
  120. package/esm2020/core/types/index.mjs +2 -1
  121. package/esm2020/core/types/runtime.types.mjs +1 -1
  122. package/esm2020/core/types/ui-definition.types.mjs +1 -1
  123. package/esm2020/core/utils/line-item.utils.mjs +22 -9
  124. package/esm2020/core/utils/line-item.worker.mjs +5 -5
  125. package/esm2020/core/utils/ui-definition.utils.mjs +1 -1
  126. package/esm2020/runtime/components/ui-runtime-preview/runtime-preview.component.mjs +2 -2
  127. package/esm2020/runtime/services/runtime-context.service.mjs +8 -5
  128. package/esm2020/runtime/services/runtime.service.mjs +1 -1
  129. package/esm2020/runtime/types/runtime.types.mjs +1 -1
  130. package/esm2020/src/components/dialog/dialog.component.mjs +3 -3
  131. package/esm2020/src/components/doc-gen/doc-gen.component.mjs +30 -7
  132. package/esm2020/src/components/guided-selling/guided-selling.component.mjs +117 -0
  133. package/esm2020/src/components/guided-selling/guided-selling.module.mjs +19 -0
  134. package/esm2020/src/components/header/cart-overlay/cart-preview.component.mjs +5 -6
  135. package/esm2020/src/components/header/cart-overlay/cart-preview.module.mjs +7 -4
  136. package/esm2020/src/components/header/header.component.mjs +59 -45
  137. package/esm2020/src/components/header/header.module.mjs +7 -3
  138. package/esm2020/src/components/header/metrics/metrics.component.mjs +35 -7
  139. package/esm2020/src/components/header/metrics/metrics.module.mjs +7 -3
  140. package/esm2020/src/flow-routing.module.mjs +1 -1
  141. package/esm2020/src/flow.component.mjs +4 -3
  142. package/esm2020/src/flow.module.mjs +11 -6
  143. package/esm2020/src/guards/context.guard.mjs +11 -8
  144. package/esm2020/src/pages/assets/assets.component.mjs +2 -2
  145. package/esm2020/src/pages/catalog/catalog.component.mjs +3 -3
  146. package/esm2020/src/pages/product/product.component.mjs +16 -9
  147. package/esm2020/src/pages/remote/remote.component.mjs +1 -1
  148. package/esm2020/src/pages/shopping-cart/shopping-cart.component.mjs +3 -3
  149. package/esm2020/src/services/flow-dialog.service.mjs +15 -15
  150. package/esm2020/src/services/flow-router.service.mjs +10 -5
  151. package/esm2020/src/services/flow.service.mjs +2 -2
  152. package/esm2020/src/services/guided-selling.service.mjs +33 -0
  153. package/esm2020/src/types/flow-customization.types.mjs +1 -1
  154. package/fesm2015/veloceapps-sdk-cms.mjs +872 -394
  155. package/fesm2015/veloceapps-sdk-cms.mjs.map +1 -1
  156. package/fesm2015/veloceapps-sdk-core.mjs +371 -47
  157. package/fesm2015/veloceapps-sdk-core.mjs.map +1 -1
  158. package/fesm2015/veloceapps-sdk-runtime.mjs +7 -4
  159. package/fesm2015/veloceapps-sdk-runtime.mjs.map +1 -1
  160. package/fesm2015/veloceapps-sdk.mjs +374 -135
  161. package/fesm2015/veloceapps-sdk.mjs.map +1 -1
  162. package/fesm2020/veloceapps-sdk-cms.mjs +955 -396
  163. package/fesm2020/veloceapps-sdk-cms.mjs.map +1 -1
  164. package/fesm2020/veloceapps-sdk-core.mjs +361 -44
  165. package/fesm2020/veloceapps-sdk-core.mjs.map +1 -1
  166. package/fesm2020/veloceapps-sdk-runtime.mjs +7 -4
  167. package/fesm2020/veloceapps-sdk-runtime.mjs.map +1 -1
  168. package/fesm2020/veloceapps-sdk.mjs +364 -133
  169. package/fesm2020/veloceapps-sdk.mjs.map +1 -1
  170. package/package.json +1 -1
  171. package/runtime/components/ui-runtime-preview/runtime-preview.component.d.ts +3 -3
  172. package/runtime/services/runtime.service.d.ts +2 -2
  173. package/runtime/types/runtime.types.d.ts +2 -2
  174. package/src/components/doc-gen/doc-gen.component.d.ts +7 -3
  175. package/src/components/guided-selling/guided-selling.component.d.ts +29 -0
  176. package/src/components/guided-selling/guided-selling.module.d.ts +9 -0
  177. package/src/components/header/cart-overlay/cart-preview.component.d.ts +1 -1
  178. package/src/components/header/cart-overlay/cart-preview.module.d.ts +1 -1
  179. package/src/components/header/header.component.d.ts +3 -4
  180. package/src/components/header/header.module.d.ts +2 -1
  181. package/src/components/header/metrics/metrics.component.d.ts +10 -2
  182. package/src/components/header/metrics/metrics.module.d.ts +2 -1
  183. package/src/flow.module.d.ts +6 -5
  184. package/src/guards/context.guard.d.ts +3 -2
  185. package/src/pages/assets/assets.component.d.ts +2 -1
  186. package/src/pages/catalog/catalog.component.d.ts +2 -1
  187. package/src/pages/product/product.component.d.ts +6 -3
  188. package/src/pages/remote/remote.component.d.ts +2 -1
  189. package/src/pages/shopping-cart/shopping-cart.component.d.ts +2 -1
  190. package/src/services/flow-router.service.d.ts +3 -1
  191. package/src/services/guided-selling.service.d.ts +13 -0
  192. package/src/types/flow-customization.types.d.ts +2 -2
@@ -1,24 +1,59 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Injectable, NgModule } from '@angular/core';
3
- import { UUID, ConfigurationContext, RuntimeModel, ConfigurationContextMode, SalesforceIdUtils, ConfigurationMode, ConfigurationTranslatorUtils, ChargeGroupUtils } from '@veloceapps/core';
2
+ import { InjectionToken, Injectable, NgModule, inject, Directive, Input, LOCALE_ID, Pipe } from '@angular/core';
3
+ import { UUID, ConfigurationContextMode, ConfigurationContext, RuntimeModel, isLegacyUIDefinition, SalesforceIdUtils, ConfigurationMode, ConfigurationTranslatorUtils, ChargeGroupUtils, DEFAULT_CURRENCY_ISO_CODE, DEFAULT_CURRENCY_SYMBOL, validateDateFormat, DEFAULT_DATE_FORMAT, DEFAULT_DECIMAL_SEPARATOR, DEFAULT_THOUSANDS_SEPARATOR, getSupportedDateFormats, DEFAULT_DECIMALS_COUNT, parseJsonSafely, formatNumber } from '@veloceapps/core';
4
4
  import { BehaviorSubject, combineLatest, zip, noop, throwError, shareReplay as shareReplay$1, tap as tap$1, map as map$2, of, switchMap as switchMap$1, catchError as catchError$1, Subject, take as take$1, distinctUntilChanged } from 'rxjs';
5
5
  import { filter, tap, map, first, switchMap, skip, take, shareReplay, catchError, finalize } from 'rxjs/operators';
6
6
  import * as i1 from '@veloceapps/api';
7
7
  import { PriceApiService, ContextApiService, ProductModelApiService, ConfigurationApiService } from '@veloceapps/api';
8
- import { merge, flatten, sortBy, map as map$1, isEqual, omit, cloneDeep, uniq } from 'lodash';
8
+ import { merge, flatten, sortBy, map as map$1, isEqual, transform, omit, cloneDeep, uniq } from 'lodash';
9
+ import { HttpErrorResponse } from '@angular/common/http';
9
10
  import { ToastType, ConfirmationComponent, ConfirmationDialogModule } from '@veloceapps/components';
10
11
  import * as i5 from 'primeng/api';
11
12
  import * as i6 from 'primeng/dynamicdialog';
12
13
  import moment from 'moment';
14
+ import { NgControl } from '@angular/forms';
15
+ import { DATE_PIPE_DEFAULT_OPTIONS, formatDate } from '@angular/common';
13
16
 
14
17
  const getDefaultLineItem = (context, uiDefinitionProperties, qty = 1) => {
15
18
  var _a, _b, _c;
16
19
  const id = UUID.UUID();
17
- const lineItem = Object.assign({ id, type: (_a = uiDefinitionProperties.rootType) !== null && _a !== void 0 ? _a : '', cfgStatus: 'Default', actionCode: 'ADD', qty, productName: ((_b = context.properties) === null || _b === void 0 ? void 0 : _b['displayName']) || context.productName, productId: (_c = context.productId) !== null && _c !== void 0 ? _c : '' }, (context.offeringId
18
- ? { offeringId: context.offeringId, offeringInstanceId: context.offeringInstanceId || id }
19
- : {}));
20
- return lineItem;
20
+ const attributes = [];
21
+ const lineItems = [];
22
+ return Object.assign({ id, type: (_a = uiDefinitionProperties.rootType) !== null && _a !== void 0 ? _a : '', cfgStatus: 'Default', actionCode: 'ADD', qty,
23
+ attributes,
24
+ lineItems, productName: ((_b = context.properties) === null || _b === void 0 ? void 0 : _b['displayName']) || context.productName, productId: (_c = context.productId) !== null && _c !== void 0 ? _c : '' }, (uiDefinitionProperties.offeringId ? { offeringId: uiDefinitionProperties.offeringId } : {}));
21
25
  };
26
+ const getGuidedSellingConfigurationRequest = (data) => {
27
+ return {
28
+ mode: 'SEARCH',
29
+ step: 'START',
30
+ attributeDomainMode: 'ALL',
31
+ context: {
32
+ headerId: 'TestId',
33
+ mode: ConfigurationContextMode.TEST,
34
+ properties: {
35
+ ModelId: data.modelId,
36
+ Name: 'Veloce Guided Selling',
37
+ PricingEnabled: 'false',
38
+ RuntimeMode: 'TEST',
39
+ },
40
+ },
41
+ lineItem: {
42
+ actionCode: 'ADD',
43
+ cfgStatus: 'Default',
44
+ id: UUID.UUID(),
45
+ qty: 1,
46
+ type: data.modelType,
47
+ attributes: Object.entries(data.attributesMap).map(([name, value]) => ({
48
+ name,
49
+ value,
50
+ cfgStatus: 'User',
51
+ })),
52
+ },
53
+ };
54
+ };
55
+
56
+ const FORMATTING_SETTINGS_TOKEN = new InjectionToken('Summary of formatting settings for variant types of data, e.g. numbers, text, dates, etc');
22
57
 
23
58
  var RuntimeMode;
24
59
  (function (RuntimeMode) {
@@ -111,16 +146,10 @@ class RuntimeContextService {
111
146
  }
112
147
  getUIDefinition(runtimeData) {
113
148
  var _a;
114
- let rawUiDefinitions;
115
- try {
116
- rawUiDefinitions = JSON.parse(runtimeData.uiDefinitionsSource);
117
- }
118
- catch (e) {
119
- return;
120
- }
121
- const uiDefinitions = rawUiDefinitions.filter(uiDef => uiDef.version);
122
- const uiDefinition = (_a = uiDefinitions.find(uiDef => uiDef.primary)) !== null && _a !== void 0 ? _a : uiDefinitions[0];
123
- return uiDefinition;
149
+ const uiDefinitions = runtimeData.uiDefinitions
150
+ .map(({ source }) => source)
151
+ .filter((uiDefinition) => !isLegacyUIDefinition(uiDefinition));
152
+ return (_a = uiDefinitions.find(uiDef => uiDef.primary)) !== null && _a !== void 0 ? _a : uiDefinitions[0];
124
153
  }
125
154
  }
126
155
  RuntimeContextService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: RuntimeContextService, deps: [{ token: i1.ConfigurationApiService }], target: i0.ɵɵFactoryTarget.Injectable });
@@ -158,7 +187,7 @@ class ConfigurationRuntimeService {
158
187
  runtimeMode: RuntimeMode.TEST,
159
188
  };
160
189
  this.contextService.update({
161
- properties: Object.assign(Object.assign(Object.assign(Object.assign({}, (_a = this.runtimeContext) === null || _a === void 0 ? void 0 : _a.properties), context.properties), { ModelId: modelId, RuntimeMode: ConfigurationContextMode.TEST, PricingEnabled: this.uiDefinitionProperties.pricingEnabled ? 'true' : 'false', StartDate: new Date().toISOString().substring(0, 10), PriceListId: this.uiDefinitionProperties.priceList, standalone: 'true' }), uiDefinitionExternals),
190
+ properties: Object.assign(Object.assign(Object.assign(Object.assign({}, (_a = this.runtimeContext) === null || _a === void 0 ? void 0 : _a.properties), context.properties), { ModelId: modelId, RuntimeMode: ConfigurationContextMode.TEST, PricingEnabled: this.uiDefinitionProperties.pricingEnabled ? 'true' : 'false', StartDate: new Date().toISOString().substring(0, 10), PriceListId: this.uiDefinitionProperties.priceList, offeringId: this.uiDefinitionProperties.offeringId, standalone: 'true' }), uiDefinitionExternals),
162
191
  });
163
192
  this._isInitialized = true;
164
193
  }));
@@ -243,15 +272,22 @@ const removeLineItem = (lineItem, idToRemove) => {
243
272
  })
244
273
  .filter(r => !!r) });
245
274
  };
246
- const replaceLineItem = (lineItem, replaceTo) => {
275
+ const replaceLineItem = (lineItem, replaceTo, skipCardinalityCalculation = false) => {
247
276
  if (lineItem.id === replaceTo.id) {
248
- return Object.assign({}, recalculateCardinalityVariables(lineItem, replaceTo));
277
+ if (!skipCardinalityCalculation) {
278
+ return Object.assign({}, recalculateCardinalityVariables(lineItem, replaceTo));
279
+ }
280
+ else {
281
+ return Object.assign({}, replaceTo);
282
+ }
249
283
  }
250
- return Object.assign(Object.assign({}, lineItem), { lineItems: lineItem.lineItems.map(li => replaceLineItem(li, replaceTo)) });
284
+ return Object.assign(Object.assign({}, lineItem), { lineItems: lineItem.lineItems.map(li => replaceLineItem(li, replaceTo, skipCardinalityCalculation)) });
251
285
  };
252
286
  const calculateCardinalityVariables = (lineItems) => {
253
287
  const cardVars = new Map();
254
- lineItems.forEach(li => {
288
+ lineItems
289
+ .filter(({ port, type }) => !!port && !!type)
290
+ .forEach(li => {
255
291
  var _a;
256
292
  const cardinalityVariableName = `#CV-${li.type}@${li.port}`;
257
293
  cardVars.set(cardinalityVariableName, ((_a = cardVars.get(cardinalityVariableName)) !== null && _a !== void 0 ? _a : 0) + li.qty);
@@ -289,13 +325,13 @@ const upsertAttributes = (originalAttributes, attributesToUpsert) => {
289
325
  ];
290
326
  }, originalAttributes);
291
327
  };
292
- const patchAttributes = (rootLineItem, id, attrs) => {
328
+ const patchAttributes = (rootLineItem, id, attrs, skipCardinalityCalculation = false) => {
293
329
  const lineItem = findLineItem(id, [rootLineItem]);
294
330
  if (!lineItem) {
295
331
  return rootLineItem;
296
332
  }
297
333
  const attributes = upsertAttributes(lineItem.attributes, attrs);
298
- return replaceLineItem(rootLineItem, Object.assign(Object.assign({}, lineItem), { attributes }));
334
+ return replaceLineItem(rootLineItem, Object.assign(Object.assign({}, lineItem), { attributes }), skipCardinalityCalculation);
299
335
  };
300
336
  const getAttributeValue = (attributes, name) => { var _a; return (_a = attributes.find(attr => attr.name === name)) === null || _a === void 0 ? void 0 : _a.value; };
301
337
  const generateLineItem = (port, type, parentId, attributes = [], lineItems = []) => {
@@ -343,10 +379,10 @@ const getOriginParent = (lineItems, currentLineItem) => {
343
379
  return target;
344
380
  };
345
381
  const isLineItemModified = (lineItem) => {
346
- if (lineItem.status === 'PENDING' && lineItem.actionCode === 'EXIST') {
382
+ if (lineItem.actionCode === 'EXIST' && lineItem.status === 'PENDING') {
347
383
  return false;
348
384
  }
349
- return lineItem.status !== 'EXIST';
385
+ return lineItem.actionCode !== 'EXIST';
350
386
  };
351
387
  const multiplyLineItems = (lineItem, qty, split) => {
352
388
  if (split) {
@@ -359,10 +395,17 @@ const multiplyLineItems = (lineItem, qty, split) => {
359
395
  ];
360
396
  }
361
397
  };
398
+ const isTechnicalAttribute = (name) => {
399
+ return name.startsWith('#') || name.startsWith('$');
400
+ };
401
+ const filterOutTechnicalAttributes = (attributes) => {
402
+ return attributes.filter(({ name }) => !isTechnicalAttribute(name));
403
+ };
362
404
 
363
405
  var lineItem_utils = /*#__PURE__*/Object.freeze({
364
406
  __proto__: null,
365
407
  calculateCardinalityVariables: calculateCardinalityVariables,
408
+ filterOutTechnicalAttributes: filterOutTechnicalAttributes,
366
409
  findLineItem: findLineItem,
367
410
  findLineItemWithComparator: findLineItemWithComparator,
368
411
  generateLineItem: generateLineItem,
@@ -373,6 +416,7 @@ var lineItem_utils = /*#__PURE__*/Object.freeze({
373
416
  getRecommendedPrices: getRecommendedPrices,
374
417
  insertLineItem: insertLineItem,
375
418
  isLineItemModified: isLineItemModified,
419
+ isTechnicalAttribute: isTechnicalAttribute,
376
420
  mapAttributes: mapAttributes,
377
421
  multiplyLineItems: multiplyLineItems,
378
422
  patchAttributes: patchAttributes,
@@ -392,11 +436,11 @@ class LineItemWorker {
392
436
  remove(id) {
393
437
  return new LineItemWorker(removeLineItem(this.li, id));
394
438
  }
395
- replace(toReplace) {
396
- return new LineItemWorker(replaceLineItem(this.li, toReplace));
439
+ replace(toReplace, skipCardinalityCalculation = false) {
440
+ return new LineItemWorker(replaceLineItem(this.li, toReplace, skipCardinalityCalculation));
397
441
  }
398
- patchAttribute(attrs, id) {
399
- return new LineItemWorker(patchAttributes(this.li, id !== null && id !== void 0 ? id : this.li.id, attrs));
442
+ patchAttribute(attrs, id, skipCardinalityCalculation = false) {
443
+ return new LineItemWorker(patchAttributes(this.li, id !== null && id !== void 0 ? id : this.li.id, attrs, skipCardinalityCalculation));
400
444
  }
401
445
  }
402
446
 
@@ -631,11 +675,12 @@ class ConfigurationService {
631
675
  this.charges.next({});
632
676
  this.pricePlans.next({});
633
677
  }
634
- patch$(lineItem) {
678
+ patch$(lineItem, options) {
635
679
  if (!this.lineItem.value) {
636
680
  return throwError(() => new Error(`Source LineItem not found`));
637
681
  }
638
- this.configurableRamp = new LineItemWorker(this.lineItem.value).replace(lineItem).li;
682
+ const skipCardinalityCalculation = (options === null || options === void 0 ? void 0 : options.skipCardinalityCalculation) || this.contextSnapshot.properties['#skipCardinalityCalculation'] === 'true';
683
+ this.configurableRamp = new LineItemWorker(this.lineItem.value).replace(lineItem, skipCardinalityCalculation).li;
639
684
  return this.configure().pipe(catchError(error => {
640
685
  console.error(error);
641
686
  if (!this.runtimeService.uiDefinitionProperties.suppressToastMessages) {
@@ -650,8 +695,8 @@ class ConfigurationService {
650
695
  }
651
696
  }));
652
697
  }
653
- patch(lineItem) {
654
- this.patch$(lineItem).subscribe();
698
+ patch(lineItem, options) {
699
+ this.patch$(lineItem, options).subscribe();
655
700
  }
656
701
  setConfigurableRamp(lineItem) {
657
702
  this.configurableRamp = lineItem;
@@ -687,17 +732,25 @@ class ConfigurationService {
687
732
  return this.pricePlans.value;
688
733
  }
689
734
  configure() {
690
- var _a, _b, _c, _d, _e, _f;
735
+ var _a, _b, _c, _d, _e;
691
736
  const runtimeContext = this.getRuntimeContext();
692
737
  const runtimeModel = this.getRuntimeModel();
693
738
  if (!runtimeContext || !runtimeModel) {
694
739
  return throwError(() => new Error('Runtime context/model not initialized'));
695
740
  }
696
741
  const uiDefinitionProperties = Object.assign(Object.assign({}, ((_b = (_a = runtimeContext.uiDefinition) === null || _a === void 0 ? void 0 : _a.properties) !== null && _b !== void 0 ? _b : {})), ((_c = this.runtimeService.uiDefinitionProperties) !== null && _c !== void 0 ? _c : {}));
697
- const qty = (_d = this.runtimeService.initializationProps) === null || _d === void 0 ? void 0 : _d.defaultQty;
698
- const lineItem = (_e = this.configurableRamp) !== null && _e !== void 0 ? _e : getDefaultLineItem(runtimeContext, uiDefinitionProperties, qty);
742
+ let lineItem = this.configurableRamp;
743
+ if (!lineItem) {
744
+ const { initializationProps } = (_d = this.runtimeService) !== null && _d !== void 0 ? _d : {};
745
+ lineItem = getDefaultLineItem(runtimeContext, uiDefinitionProperties, initializationProps === null || initializationProps === void 0 ? void 0 : initializationProps.defaultQty);
746
+ // Set default attributes
747
+ if (initializationProps === null || initializationProps === void 0 ? void 0 : initializationProps.attributesMap) {
748
+ const attributes = transform(initializationProps === null || initializationProps === void 0 ? void 0 : initializationProps.attributesMap, (acc, value, name) => acc.push({ name, value }), []);
749
+ lineItem = new LineItemWorker(lineItem).patchAttribute(attributes).li;
750
+ }
751
+ }
699
752
  const configurationRequest = this.createRequest(lineItem);
700
- const mainPricingEnabled = (_f = runtimeContext.properties) === null || _f === void 0 ? void 0 : _f.PricingEnabled;
753
+ const mainPricingEnabled = (_e = runtimeContext.properties) === null || _e === void 0 ? void 0 : _e.PricingEnabled;
701
754
  const pricingEnabled = mainPricingEnabled ? mainPricingEnabled === 'true' : uiDefinitionProperties.pricingEnabled;
702
755
  return this.configurationApiService
703
756
  .configureLineItem({ configurationRequest, runtimeModel, pricingEnabled })
@@ -712,12 +765,26 @@ class ConfigurationService {
712
765
  }))
713
766
  .pipe(tap(lineItem => lineItem && this.lineItem.next(lineItem)), catchError(error => throwError(() => { var _a; return new Error(((_a = error.error) === null || _a === void 0 ? void 0 : _a.message) || error.message || JSON.stringify(error)); })));
714
767
  }
715
- configureExternal$(productId, qty) {
716
- return this.runtimeService.init({ productId, defaultQty: qty }).pipe(switchMap(() => this.configure()), first(), catchError(error => {
768
+ configureExternal$(props) {
769
+ return this.runtimeService
770
+ .init({ productId: props.productId, defaultQty: props.qty, attributesMap: props.attributesMap })
771
+ .pipe(switchMap(() => this.configure()), first(), catchError(error => {
717
772
  this.messageService.add({ severity: ToastType.error, summary: error });
718
773
  throw error;
719
774
  }), finalize(() => this.reset()));
720
775
  }
776
+ configureGuidedSelling$(data) {
777
+ return this.configurationApiService
778
+ .configureLineItem({
779
+ configurationRequest: getGuidedSellingConfigurationRequest(data),
780
+ })
781
+ .pipe(catchError(error => {
782
+ if (error instanceof HttpErrorResponse) {
783
+ this.messageService.add({ severity: ToastType.error, summary: error.error.message || error.error });
784
+ }
785
+ throw error;
786
+ }));
787
+ }
721
788
  createRequest(lineItem) {
722
789
  var _a;
723
790
  let request = {
@@ -975,16 +1042,16 @@ class FlowConfigurationService {
975
1042
  const updatedState = [...quoteDraft.currentState, term];
976
1043
  return of([]).pipe(switchMap$1(() => this.calculate$(Object.assign(Object.assign({}, quoteDraft), { currentState: updatedState }))), map$2(() => this.quoteDraftService.quoteDraft), this.handleErrorAndBounceBack());
977
1044
  }
978
- addToCart$(productId, qty) {
1045
+ addToCart$(props) {
979
1046
  const quoteDraft = this.quoteDraftService.quoteDraft;
980
1047
  if (!quoteDraft) {
981
1048
  return of(null);
982
1049
  }
983
- return this.configurationService.configureExternal$(productId, qty).pipe(map$2(lineItem => {
984
- var _a, _b;
1050
+ return this.configurationService.configureExternal$(props).pipe(map$2(lineItem => {
1051
+ var _a, _b, _c;
985
1052
  const model = this.configurationService.getRuntimeModel();
986
1053
  const split = (_b = (_a = model === null || model === void 0 ? void 0 : model.types.find(type => type.name === lineItem.type)) === null || _a === void 0 ? void 0 : _a.split) !== null && _b !== void 0 ? _b : false;
987
- const lineItems = multiplyLineItems(lineItem, qty !== null && qty !== void 0 ? qty : 1, split);
1054
+ const lineItems = multiplyLineItems(lineItem, (_c = props.qty) !== null && _c !== void 0 ? _c : 1, split);
988
1055
  return [...quoteDraft.currentState, ...lineItems];
989
1056
  }), switchMap$1(updatedState => this.calculate$(Object.assign(Object.assign({}, quoteDraft), { currentState: updatedState }))), map$2(() => this.quoteDraftService.quoteDraft), this.handleErrorAndBounceBack());
990
1057
  }
@@ -1225,16 +1292,273 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
1225
1292
  args: [{ providedIn: 'root' }]
1226
1293
  }], ctorParameters: function () { return [{ type: i1.ProductApiService }]; } });
1227
1294
 
1295
+ class RuntimeSettingsService {
1296
+ constructor(configurationSettingsApiService) {
1297
+ this.configurationSettingsApiService = configurationSettingsApiService;
1298
+ this.configurationSettings$ = new BehaviorSubject({});
1299
+ this.currencySettings$ = new BehaviorSubject({
1300
+ iso: DEFAULT_CURRENCY_ISO_CODE,
1301
+ symbol: DEFAULT_CURRENCY_SYMBOL,
1302
+ });
1303
+ this.getCurrencySymbol = (locale, currency) => {
1304
+ return (0)
1305
+ .toLocaleString(locale, { style: 'currency', currency, minimumFractionDigits: 0, maximumFractionDigits: 0 })
1306
+ .replace(/\d/g, '')
1307
+ .trim();
1308
+ };
1309
+ }
1310
+ create() {
1311
+ return this.configurationSettingsApiService.fetchSettings().pipe(map$2(settings => this.parseConfigurationSettings(settings)), tap$1(configurationSettings => {
1312
+ this.configurationSettings$.next(configurationSettings);
1313
+ this.formattingSettings = this.getFormattingSettings();
1314
+ }), map$2(() => undefined));
1315
+ }
1316
+ initCurrency(iso) {
1317
+ if (iso) {
1318
+ const symbol = this.getCurrencySymbol('en-US', iso);
1319
+ this.currencySettings$.next({ iso, symbol });
1320
+ }
1321
+ }
1322
+ getFormattingSettings() {
1323
+ var _a, _b, _c, _d;
1324
+ if (this.formattingSettings) {
1325
+ return this.formattingSettings;
1326
+ }
1327
+ const shoppingCartSettings = (_a = this.getConfigurationSettings()['shopping-cart']) === null || _a === void 0 ? void 0 : _a.reduce((acc, setting) => {
1328
+ return Object.assign(Object.assign({}, acc), { [setting.id]: setting.properties });
1329
+ }, {});
1330
+ const currencySettings = this.getCurrencySettings();
1331
+ const dateFormat = (validateDateFormat((_b = shoppingCartSettings === null || shoppingCartSettings === void 0 ? void 0 : shoppingCartSettings.DATE_FORMAT) !== null && _b !== void 0 ? _b : '') && (shoppingCartSettings === null || shoppingCartSettings === void 0 ? void 0 : shoppingCartSettings.DATE_FORMAT)) ||
1332
+ DEFAULT_DATE_FORMAT;
1333
+ const decimalSeparator = (_c = shoppingCartSettings === null || shoppingCartSettings === void 0 ? void 0 : shoppingCartSettings.DECIMAL_SEPARATOR) !== null && _c !== void 0 ? _c : DEFAULT_DECIMAL_SEPARATOR;
1334
+ const thousandsSeparator = (_d = shoppingCartSettings === null || shoppingCartSettings === void 0 ? void 0 : shoppingCartSettings.THOUSANDS_SEPARATOR) !== null && _d !== void 0 ? _d : DEFAULT_THOUSANDS_SEPARATOR;
1335
+ return {
1336
+ currencySymbol: currencySettings.symbol,
1337
+ dateFormats: getSupportedDateFormats(dateFormat),
1338
+ decimalSeparator: (['.', ','].includes(decimalSeparator) && decimalSeparator) || DEFAULT_DECIMAL_SEPARATOR,
1339
+ decimalsCount: (!isNaN(Number(shoppingCartSettings === null || shoppingCartSettings === void 0 ? void 0 : shoppingCartSettings.PRICE_SCALE)) && Number(shoppingCartSettings === null || shoppingCartSettings === void 0 ? void 0 : shoppingCartSettings.PRICE_SCALE)) ||
1340
+ DEFAULT_DECIMALS_COUNT,
1341
+ thousandsSeparator: ['.', ',', ''].includes(thousandsSeparator)
1342
+ ? thousandsSeparator
1343
+ : DEFAULT_THOUSANDS_SEPARATOR,
1344
+ };
1345
+ }
1346
+ getConfigurationSettings() {
1347
+ return this.configurationSettings$.value;
1348
+ }
1349
+ getCurrencySettings() {
1350
+ return this.currencySettings$.value;
1351
+ }
1352
+ parseConfigurationSettings(settings) {
1353
+ return settings.reduce((acc, setting) => {
1354
+ switch (setting.key) {
1355
+ case 'shopping-cart':
1356
+ acc['shopping-cart'] = parseJsonSafely(setting.value, []);
1357
+ break;
1358
+ case 'navigation':
1359
+ acc.navigation = parseJsonSafely(setting.value, {});
1360
+ break;
1361
+ case 'flows':
1362
+ acc.flows = parseJsonSafely(setting.value, []);
1363
+ break;
1364
+ default:
1365
+ acc[setting.key] = setting.value;
1366
+ }
1367
+ return acc;
1368
+ }, {});
1369
+ }
1370
+ }
1371
+ RuntimeSettingsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: RuntimeSettingsService, deps: [{ token: i1.ConfigurationSettingsApiService }], target: i0.ɵɵFactoryTarget.Injectable });
1372
+ RuntimeSettingsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: RuntimeSettingsService, providedIn: 'root' });
1373
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: RuntimeSettingsService, decorators: [{
1374
+ type: Injectable,
1375
+ args: [{ providedIn: 'root' }]
1376
+ }], ctorParameters: function () { return [{ type: i1.ConfigurationSettingsApiService }]; } });
1377
+
1378
+ const DEFAULT_FORMATTING_SETTINGS = {
1379
+ currencySymbol: DEFAULT_CURRENCY_SYMBOL,
1380
+ decimalsCount: DEFAULT_DECIMALS_COUNT,
1381
+ dateFormats: getSupportedDateFormats(DEFAULT_DATE_FORMAT),
1382
+ decimalSeparator: DEFAULT_DECIMAL_SEPARATOR,
1383
+ thousandsSeparator: DEFAULT_THOUSANDS_SEPARATOR,
1384
+ };
1228
1385
  class SdkCoreModule {
1229
1386
  }
1230
1387
  SdkCoreModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: SdkCoreModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1231
1388
  SdkCoreModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.8", ngImport: i0, type: SdkCoreModule, imports: [ConfigurationModule, FlowConfigurationModule] });
1232
- SdkCoreModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: SdkCoreModule, providers: [ContextService, QuoteDraftService, ProductImagesService, MetricsCalculationService], imports: [ConfigurationModule, FlowConfigurationModule] });
1389
+ SdkCoreModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: SdkCoreModule, providers: [
1390
+ ContextService,
1391
+ QuoteDraftService,
1392
+ ProductImagesService,
1393
+ MetricsCalculationService,
1394
+ RuntimeSettingsService,
1395
+ {
1396
+ provide: FORMATTING_SETTINGS_TOKEN,
1397
+ useExisting: RuntimeSettingsService,
1398
+ },
1399
+ ], imports: [ConfigurationModule, FlowConfigurationModule] });
1233
1400
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: SdkCoreModule, decorators: [{
1234
1401
  type: NgModule,
1235
1402
  args: [{
1236
1403
  imports: [ConfigurationModule, FlowConfigurationModule],
1237
- providers: [ContextService, QuoteDraftService, ProductImagesService, MetricsCalculationService],
1404
+ providers: [
1405
+ ContextService,
1406
+ QuoteDraftService,
1407
+ ProductImagesService,
1408
+ MetricsCalculationService,
1409
+ RuntimeSettingsService,
1410
+ {
1411
+ provide: FORMATTING_SETTINGS_TOKEN,
1412
+ useExisting: RuntimeSettingsService,
1413
+ },
1414
+ ],
1415
+ }]
1416
+ }] });
1417
+
1418
+ class CalendarDirective {
1419
+ constructor() {
1420
+ var _a;
1421
+ this.ngControl = inject(NgControl, { host: true, optional: true });
1422
+ this.formattingSettings = (_a = inject(FORMATTING_SETTINGS_TOKEN, { optional: true })) === null || _a === void 0 ? void 0 : _a.getFormattingSettings();
1423
+ this.destroy$ = new Subject();
1424
+ }
1425
+ set vlCalendar(calendar) {
1426
+ this.calendar = calendar;
1427
+ }
1428
+ ngOnDestroy() {
1429
+ this.destroy$.next();
1430
+ this.destroy$.complete();
1431
+ }
1432
+ ngOnInit() {
1433
+ var _a, _b;
1434
+ if (this.calendar) {
1435
+ this.calendar.dateFormat = (_b = (_a = this.formattingSettings) === null || _a === void 0 ? void 0 : _a.dateFormats.primengFormat) !== null && _b !== void 0 ? _b : DEFAULT_DATE_FORMAT;
1436
+ if (this.ngControl && this.ngControl.control) {
1437
+ const control = this.ngControl.control;
1438
+ control.setValue(control.value, { emitEvent: false });
1439
+ }
1440
+ }
1441
+ }
1442
+ }
1443
+ CalendarDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: CalendarDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1444
+ CalendarDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.8", type: CalendarDirective, selector: "[vlCalendar]", inputs: { vlCalendar: "vlCalendar" }, ngImport: i0 });
1445
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: CalendarDirective, decorators: [{
1446
+ type: Directive,
1447
+ args: [{
1448
+ selector: '[vlCalendar]',
1449
+ }]
1450
+ }], propDecorators: { vlCalendar: [{
1451
+ type: Input
1452
+ }] } });
1453
+
1454
+ class SdkDirectivesModule {
1455
+ }
1456
+ SdkDirectivesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: SdkDirectivesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1457
+ SdkDirectivesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.8", ngImport: i0, type: SdkDirectivesModule, declarations: [CalendarDirective], exports: [CalendarDirective] });
1458
+ SdkDirectivesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: SdkDirectivesModule });
1459
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: SdkDirectivesModule, decorators: [{
1460
+ type: NgModule,
1461
+ args: [{
1462
+ declarations: [CalendarDirective],
1463
+ exports: [CalendarDirective],
1464
+ }]
1465
+ }] });
1466
+
1467
+ class DatePipe {
1468
+ constructor() {
1469
+ var _a;
1470
+ this.locale = inject(LOCALE_ID);
1471
+ this.defaultOptions = inject(DATE_PIPE_DEFAULT_OPTIONS, { optional: true });
1472
+ this.formattingSettings = (_a = inject(FORMATTING_SETTINGS_TOKEN, { optional: true })) === null || _a === void 0 ? void 0 : _a.getFormattingSettings();
1473
+ this.destroy$ = new Subject();
1474
+ }
1475
+ ngOnDestroy() {
1476
+ this.destroy$.next();
1477
+ this.destroy$.complete();
1478
+ }
1479
+ transform(date) {
1480
+ var _a, _b;
1481
+ if (!date) {
1482
+ return '';
1483
+ }
1484
+ try {
1485
+ return formatDate(date, ((_a = this.formattingSettings) === null || _a === void 0 ? void 0 : _a.dateFormats.datePipeFormat) || DEFAULT_DATE_FORMAT, this.locale, (_b = this.defaultOptions) === null || _b === void 0 ? void 0 : _b.timezone);
1486
+ }
1487
+ catch (error) {
1488
+ return new Date(date).toString();
1489
+ }
1490
+ }
1491
+ }
1492
+ DatePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: DatePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
1493
+ DatePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.8", ngImport: i0, type: DatePipe, name: "vlDate" });
1494
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: DatePipe, decorators: [{
1495
+ type: Pipe,
1496
+ args: [{
1497
+ name: 'vlDate',
1498
+ }]
1499
+ }] });
1500
+
1501
+ class NumberPipe {
1502
+ constructor() {
1503
+ var _a;
1504
+ this.formattingSettings = (_a = inject(FORMATTING_SETTINGS_TOKEN, { optional: true })) === null || _a === void 0 ? void 0 : _a.getFormattingSettings();
1505
+ this.destroy$ = new Subject();
1506
+ }
1507
+ ngOnDestroy() {
1508
+ this.destroy$.next();
1509
+ this.destroy$.complete();
1510
+ }
1511
+ transform(price) {
1512
+ var _a, _b, _c;
1513
+ return formatNumber(price, (_a = this.formattingSettings) === null || _a === void 0 ? void 0 : _a.thousandsSeparator, (_b = this.formattingSettings) === null || _b === void 0 ? void 0 : _b.decimalSeparator, (_c = this.formattingSettings) === null || _c === void 0 ? void 0 : _c.decimalsCount);
1514
+ }
1515
+ }
1516
+ NumberPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NumberPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
1517
+ NumberPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.8", ngImport: i0, type: NumberPipe, name: "vlNumber" });
1518
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NumberPipe, decorators: [{
1519
+ type: Pipe,
1520
+ args: [{
1521
+ name: 'vlNumber',
1522
+ }]
1523
+ }] });
1524
+
1525
+ class PricePipe {
1526
+ constructor() {
1527
+ var _a;
1528
+ this.formattingSettings = (_a = inject(FORMATTING_SETTINGS_TOKEN, { optional: true })) === null || _a === void 0 ? void 0 : _a.getFormattingSettings();
1529
+ this.destroy$ = new Subject();
1530
+ }
1531
+ ngOnDestroy() {
1532
+ this.destroy$.next();
1533
+ this.destroy$.complete();
1534
+ }
1535
+ transform(price) {
1536
+ var _a, _b, _c, _d;
1537
+ if (price == null || price === '') {
1538
+ return '';
1539
+ }
1540
+ return `${((_a = this.formattingSettings) === null || _a === void 0 ? void 0 : _a.currencySymbol) || DEFAULT_CURRENCY_SYMBOL}${formatNumber(price, (_b = this.formattingSettings) === null || _b === void 0 ? void 0 : _b.thousandsSeparator, (_c = this.formattingSettings) === null || _c === void 0 ? void 0 : _c.decimalSeparator, (_d = this.formattingSettings) === null || _d === void 0 ? void 0 : _d.decimalsCount)}`;
1541
+ }
1542
+ }
1543
+ PricePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: PricePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
1544
+ PricePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.8", ngImport: i0, type: PricePipe, name: "vlPrice" });
1545
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: PricePipe, decorators: [{
1546
+ type: Pipe,
1547
+ args: [{
1548
+ name: 'vlPrice',
1549
+ }]
1550
+ }] });
1551
+
1552
+ class SdkPipesModule {
1553
+ }
1554
+ SdkPipesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: SdkPipesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1555
+ SdkPipesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.8", ngImport: i0, type: SdkPipesModule, declarations: [NumberPipe, PricePipe, DatePipe], exports: [NumberPipe, PricePipe, DatePipe] });
1556
+ SdkPipesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: SdkPipesModule });
1557
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: SdkPipesModule, decorators: [{
1558
+ type: NgModule,
1559
+ args: [{
1560
+ declarations: [NumberPipe, PricePipe, DatePipe],
1561
+ exports: [NumberPipe, PricePipe, DatePipe],
1238
1562
  }]
1239
1563
  }] });
1240
1564
 
@@ -1242,5 +1566,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
1242
1566
  * Generated bundle index. Do not edit.
1243
1567
  */
1244
1568
 
1245
- export { ConfigurationRuntimeService, ConfigurationService, ContextService, FlowConfigurationModule, FlowConfigurationService, FlowUpdateService, LineItemWorker, MetricsCalculationService, ProductImagesService, QuoteDraftService, RuntimeMode, RuntimeOperation, RuntimeStep, SdkCoreModule, UI_DEFINITION_VERSION, calculateCardinalityVariables, extractMetadata, findLineItem, findLineItemWithComparator, generateLineItem, generateModifiedAssetsMap, getAttributeValue, getAttributes, getDefaultLineItem, getOriginParent, getRecommendedPrices, insertLineItem, isLineItemModified, lineItem_utils as lineItemUtils, mapAttributes, multiplyLineItems, patchAttributes, recalculateCardinalityVariables, removeLineItem, replaceLineItem, upsertAttributes };
1569
+ export { CalendarDirective, ConfigurationRuntimeService, ConfigurationService, ContextService, DEFAULT_FORMATTING_SETTINGS, DatePipe, FORMATTING_SETTINGS_TOKEN, FlowConfigurationModule, FlowConfigurationService, FlowUpdateService, LineItemWorker, MetricsCalculationService, NumberPipe, PricePipe, ProductImagesService, QuoteDraftService, RuntimeMode, RuntimeOperation, RuntimeSettingsService, RuntimeStep, SdkCoreModule, SdkDirectivesModule, SdkPipesModule, UI_DEFINITION_VERSION, calculateCardinalityVariables, extractMetadata, filterOutTechnicalAttributes, findLineItem, findLineItemWithComparator, generateLineItem, generateModifiedAssetsMap, getAttributeValue, getAttributes, getDefaultLineItem, getGuidedSellingConfigurationRequest, getOriginParent, getRecommendedPrices, insertLineItem, isLineItemModified, isTechnicalAttribute, lineItem_utils as lineItemUtils, mapAttributes, multiplyLineItems, patchAttributes, recalculateCardinalityVariables, removeLineItem, replaceLineItem, upsertAttributes };
1246
1570
  //# sourceMappingURL=veloceapps-sdk-core.mjs.map