@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.
- package/cms/cms.actions.d.ts +102 -11
- package/cms/cms.default.d.ts +2 -2
- package/cms/components/element-children/element-children.component.d.ts +3 -1
- package/cms/components/element-tools-panel/element-tools-panel.component.d.ts +14 -0
- package/cms/components/preview/preview.component.d.ts +6 -5
- package/cms/components/preview/preview.module.d.ts +2 -1
- package/cms/components/preview/preview.types.d.ts +4 -0
- package/cms/definitions/index.d.ts +1 -0
- package/cms/definitions/ui-builder.definitions.d.ts +6 -0
- package/cms/index.d.ts +2 -0
- package/cms/injection-tokens.d.ts +2 -4
- package/cms/modules/migrations/services/migrations.service.d.ts +1 -1
- package/cms/modules/migrations/types/migrations.types.d.ts +1 -1
- package/cms/modules/runtime/index.d.ts +1 -0
- package/cms/modules/runtime/services/compilation.service.d.ts +3 -2
- package/cms/modules/runtime/services/runtime-editor.service.d.ts +6 -4
- package/cms/modules/runtime/services/runtime.service.d.ts +6 -2
- package/cms/modules/runtime/types/runtime.actions.d.ts +5 -2
- package/cms/plugins/element-hover.plugin.d.ts +33 -0
- package/cms/plugins/page.plugin.d.ts +15 -0
- package/cms/plugins/script.plugin.d.ts +0 -3
- package/cms/types/common.types.d.ts +11 -1
- package/cms/types/index.d.ts +2 -0
- package/cms/types/integration.types.d.ts +1 -0
- package/cms/types/layouts.types.d.ts +30 -2
- package/cms/types/pages.types.d.ts +1 -0
- package/cms/utils/element.utils.d.ts +1 -1
- package/cms/utils/elements-resolver.d.ts +6 -2
- package/cms/utils/index.d.ts +1 -0
- package/cms/utils/script.utils.d.ts +2 -0
- package/cms/utils/ui-builder-layout.utils.d.ts +4 -0
- package/cms/vendor-map.d.ts +15 -19
- package/core/core.module.d.ts +2 -0
- package/core/directives/directives.module.d.ts +7 -0
- package/core/directives/index.d.ts +2 -0
- package/core/directives/primeng-calendar.directive.d.ts +14 -0
- package/core/index.d.ts +2 -0
- package/core/modules/configuration/helpers.d.ts +4 -2
- package/core/modules/configuration/index.d.ts +1 -0
- package/core/modules/configuration/services/configuration-runtime.service.d.ts +2 -2
- package/core/modules/configuration/services/configuration.service.d.ts +6 -4
- package/core/modules/configuration/types/configuration-runtime.types.d.ts +1 -0
- package/core/modules/configuration/types/configuration.types.d.ts +10 -0
- package/core/modules/flow-configuration/services/flow-configuration.service.d.ts +2 -1
- package/core/pipes/date.pipe.d.ts +12 -0
- package/core/pipes/index.d.ts +4 -0
- package/core/pipes/number.pipe.d.ts +10 -0
- package/core/pipes/pipes.module.d.ts +9 -0
- package/core/pipes/price.pipe.d.ts +10 -0
- package/core/services/index.d.ts +1 -0
- package/core/services/runtime-settings.service.d.ts +21 -0
- package/core/types/formatting-settings.types.d.ts +11 -0
- package/core/types/index.d.ts +1 -0
- package/core/types/runtime.types.d.ts +1 -2
- package/core/types/ui-definition.types.d.ts +0 -40
- package/core/utils/line-item.utils.d.ts +10 -15
- package/core/utils/line-item.worker.d.ts +3 -6
- package/core/utils/ui-definition.utils.d.ts +1 -1
- package/esm2020/cms/cms.actions.mjs +140 -40
- package/esm2020/cms/cms.default.mjs +1 -1
- package/esm2020/cms/cms.elements.mjs +16 -4
- package/esm2020/cms/cms.layouts.mjs +73 -13
- package/esm2020/cms/components/element-children/element-children.component.mjs +11 -6
- package/esm2020/cms/components/element-drop-handle/element-drop-handle.component.mjs +2 -2
- package/esm2020/cms/components/element-tools-panel/element-tools-panel.component.mjs +35 -0
- package/esm2020/cms/components/preview/preview.component.mjs +18 -16
- package/esm2020/cms/components/preview/preview.module.mjs +22 -4
- package/esm2020/cms/components/preview/preview.types.mjs +1 -1
- package/esm2020/cms/definitions/index.mjs +2 -0
- package/esm2020/cms/definitions/ui-builder.definitions.mjs +18 -0
- package/esm2020/cms/index.mjs +3 -1
- package/esm2020/cms/injection-tokens.mjs +1 -2
- package/esm2020/cms/modules/migrations/migrations.mjs +10 -3
- package/esm2020/cms/modules/migrations/services/migrations.service.mjs +1 -1
- package/esm2020/cms/modules/migrations/types/migrations.types.mjs +1 -1
- package/esm2020/cms/modules/runtime/index.mjs +2 -1
- package/esm2020/cms/modules/runtime/services/compilation.service.mjs +5 -3
- package/esm2020/cms/modules/runtime/services/runtime-editor.service.mjs +5 -3
- package/esm2020/cms/modules/runtime/services/runtime.service.mjs +41 -6
- package/esm2020/cms/modules/runtime/types/runtime.actions.mjs +1 -1
- package/esm2020/cms/plugins/element-hover.plugin.mjs +121 -0
- package/esm2020/cms/plugins/page.plugin.mjs +37 -0
- package/esm2020/cms/plugins/region.plugin.mjs +3 -2
- package/esm2020/cms/plugins/script.plugin.mjs +6 -40
- package/esm2020/cms/services/integration.state.mjs +3 -6
- package/esm2020/cms/services/io-provider.service.mjs +7 -5
- package/esm2020/cms/types/common.types.mjs +1 -1
- package/esm2020/cms/types/index.mjs +3 -1
- package/esm2020/cms/types/integration.types.mjs +1 -1
- package/esm2020/cms/types/layouts.types.mjs +70 -1
- package/esm2020/cms/types/pages.types.mjs +2 -0
- package/esm2020/cms/utils/element.utils.mjs +1 -1
- package/esm2020/cms/utils/elements-resolver.mjs +22 -8
- package/esm2020/cms/utils/index.mjs +2 -1
- package/esm2020/cms/utils/script.utils.mjs +42 -0
- package/esm2020/cms/utils/ui-builder-layout.utils.mjs +46 -0
- package/esm2020/cms/vendor-map.mjs +5 -3
- package/esm2020/core/core.module.mjs +33 -4
- package/esm2020/core/directives/directives.module.mjs +16 -0
- package/esm2020/core/directives/index.mjs +3 -0
- package/esm2020/core/directives/primeng-calendar.directive.mjs +41 -0
- package/esm2020/core/index.mjs +3 -1
- package/esm2020/core/modules/configuration/configuration.module.mjs +2 -2
- package/esm2020/core/modules/configuration/helpers.mjs +37 -7
- package/esm2020/core/modules/configuration/index.mjs +2 -1
- package/esm2020/core/modules/configuration/services/configuration-runtime.service.mjs +3 -2
- package/esm2020/core/modules/configuration/services/configuration.service.mjs +35 -10
- package/esm2020/core/modules/configuration/services/runtime-context.service.mjs +6 -12
- package/esm2020/core/modules/configuration/types/configuration-runtime.types.mjs +1 -1
- package/esm2020/core/modules/configuration/types/configuration.types.mjs +2 -0
- package/esm2020/core/modules/flow-configuration/services/flow-configuration.service.mjs +4 -4
- package/esm2020/core/pipes/date.pipe.mjs +38 -0
- package/esm2020/core/pipes/index.mjs +5 -0
- package/esm2020/core/pipes/number.pipe.mjs +27 -0
- package/esm2020/core/pipes/pipes.module.mjs +18 -0
- package/esm2020/core/pipes/price.pipe.mjs +30 -0
- package/esm2020/core/services/index.mjs +2 -1
- package/esm2020/core/services/runtime-settings.service.mjs +88 -0
- package/esm2020/core/types/formatting-settings.types.mjs +3 -0
- package/esm2020/core/types/index.mjs +2 -1
- package/esm2020/core/types/runtime.types.mjs +1 -1
- package/esm2020/core/types/ui-definition.types.mjs +1 -1
- package/esm2020/core/utils/line-item.utils.mjs +22 -9
- package/esm2020/core/utils/line-item.worker.mjs +5 -5
- package/esm2020/core/utils/ui-definition.utils.mjs +1 -1
- package/esm2020/runtime/components/ui-runtime-preview/runtime-preview.component.mjs +2 -2
- package/esm2020/runtime/services/runtime-context.service.mjs +8 -5
- package/esm2020/runtime/services/runtime.service.mjs +1 -1
- package/esm2020/runtime/types/runtime.types.mjs +1 -1
- package/esm2020/src/components/dialog/dialog.component.mjs +3 -3
- package/esm2020/src/components/doc-gen/doc-gen.component.mjs +30 -7
- package/esm2020/src/components/guided-selling/guided-selling.component.mjs +117 -0
- package/esm2020/src/components/guided-selling/guided-selling.module.mjs +19 -0
- package/esm2020/src/components/header/cart-overlay/cart-preview.component.mjs +5 -6
- package/esm2020/src/components/header/cart-overlay/cart-preview.module.mjs +7 -4
- package/esm2020/src/components/header/header.component.mjs +59 -45
- package/esm2020/src/components/header/header.module.mjs +7 -3
- package/esm2020/src/components/header/metrics/metrics.component.mjs +35 -7
- package/esm2020/src/components/header/metrics/metrics.module.mjs +7 -3
- package/esm2020/src/flow-routing.module.mjs +1 -1
- package/esm2020/src/flow.component.mjs +4 -3
- package/esm2020/src/flow.module.mjs +11 -6
- package/esm2020/src/guards/context.guard.mjs +11 -8
- package/esm2020/src/pages/assets/assets.component.mjs +2 -2
- package/esm2020/src/pages/catalog/catalog.component.mjs +3 -3
- package/esm2020/src/pages/product/product.component.mjs +16 -9
- package/esm2020/src/pages/remote/remote.component.mjs +1 -1
- package/esm2020/src/pages/shopping-cart/shopping-cart.component.mjs +3 -3
- package/esm2020/src/services/flow-dialog.service.mjs +15 -15
- package/esm2020/src/services/flow-router.service.mjs +10 -5
- package/esm2020/src/services/flow.service.mjs +2 -2
- package/esm2020/src/services/guided-selling.service.mjs +33 -0
- package/esm2020/src/types/flow-customization.types.mjs +1 -1
- package/fesm2015/veloceapps-sdk-cms.mjs +872 -394
- package/fesm2015/veloceapps-sdk-cms.mjs.map +1 -1
- package/fesm2015/veloceapps-sdk-core.mjs +371 -47
- package/fesm2015/veloceapps-sdk-core.mjs.map +1 -1
- package/fesm2015/veloceapps-sdk-runtime.mjs +7 -4
- package/fesm2015/veloceapps-sdk-runtime.mjs.map +1 -1
- package/fesm2015/veloceapps-sdk.mjs +374 -135
- package/fesm2015/veloceapps-sdk.mjs.map +1 -1
- package/fesm2020/veloceapps-sdk-cms.mjs +955 -396
- package/fesm2020/veloceapps-sdk-cms.mjs.map +1 -1
- package/fesm2020/veloceapps-sdk-core.mjs +361 -44
- package/fesm2020/veloceapps-sdk-core.mjs.map +1 -1
- package/fesm2020/veloceapps-sdk-runtime.mjs +7 -4
- package/fesm2020/veloceapps-sdk-runtime.mjs.map +1 -1
- package/fesm2020/veloceapps-sdk.mjs +364 -133
- package/fesm2020/veloceapps-sdk.mjs.map +1 -1
- package/package.json +1 -1
- package/runtime/components/ui-runtime-preview/runtime-preview.component.d.ts +3 -3
- package/runtime/services/runtime.service.d.ts +2 -2
- package/runtime/types/runtime.types.d.ts +2 -2
- package/src/components/doc-gen/doc-gen.component.d.ts +7 -3
- package/src/components/guided-selling/guided-selling.component.d.ts +29 -0
- package/src/components/guided-selling/guided-selling.module.d.ts +9 -0
- package/src/components/header/cart-overlay/cart-preview.component.d.ts +1 -1
- package/src/components/header/cart-overlay/cart-preview.module.d.ts +1 -1
- package/src/components/header/header.component.d.ts +3 -4
- package/src/components/header/header.module.d.ts +2 -1
- package/src/components/header/metrics/metrics.component.d.ts +10 -2
- package/src/components/header/metrics/metrics.module.d.ts +2 -1
- package/src/flow.module.d.ts +6 -5
- package/src/guards/context.guard.d.ts +3 -2
- package/src/pages/assets/assets.component.d.ts +2 -1
- package/src/pages/catalog/catalog.component.d.ts +2 -1
- package/src/pages/product/product.component.d.ts +6 -3
- package/src/pages/remote/remote.component.d.ts +2 -1
- package/src/pages/shopping-cart/shopping-cart.component.d.ts +2 -1
- package/src/services/flow-router.service.d.ts +3 -1
- package/src/services/guided-selling.service.d.ts +13 -0
- package/src/types/flow-customization.types.d.ts +2 -2
|
@@ -1,31 +1,65 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Injectable, NgModule } from '@angular/core';
|
|
3
|
-
import { UUID, ConfigurationContext, RuntimeModel,
|
|
2
|
+
import { Injectable, InjectionToken, 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 * as i1 from '@veloceapps/api';
|
|
5
5
|
import { PriceApiService, ContextApiService, ProductModelApiService, ConfigurationApiService } from '@veloceapps/api';
|
|
6
6
|
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';
|
|
7
7
|
import { filter, tap, map, first, switchMap, skip, take, shareReplay, catchError, finalize } from 'rxjs/operators';
|
|
8
|
-
import { merge, isEqual, flatten, sortBy, map as map$1, omit, cloneDeep, uniq } from 'lodash';
|
|
8
|
+
import { merge, isEqual, flatten, sortBy, map as map$1, 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 'primeng/calendar';
|
|
16
|
+
import { DATE_PIPE_DEFAULT_OPTIONS, formatDate } from '@angular/common';
|
|
13
17
|
|
|
14
18
|
const getDefaultLineItem = (context, uiDefinitionProperties, qty = 1) => {
|
|
15
19
|
const id = UUID.UUID();
|
|
16
|
-
const
|
|
20
|
+
const attributes = [];
|
|
21
|
+
const lineItems = [];
|
|
22
|
+
return {
|
|
17
23
|
id,
|
|
18
24
|
type: uiDefinitionProperties.rootType ?? '',
|
|
19
25
|
cfgStatus: 'Default',
|
|
20
26
|
actionCode: 'ADD',
|
|
21
27
|
qty,
|
|
28
|
+
attributes,
|
|
29
|
+
lineItems,
|
|
22
30
|
productName: context.properties?.['displayName'] || context.productName,
|
|
23
31
|
productId: context.productId ?? '',
|
|
24
|
-
...(
|
|
25
|
-
|
|
26
|
-
|
|
32
|
+
...(uiDefinitionProperties.offeringId ? { offeringId: uiDefinitionProperties.offeringId } : {}),
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
const getGuidedSellingConfigurationRequest = (data) => {
|
|
36
|
+
return {
|
|
37
|
+
mode: 'SEARCH',
|
|
38
|
+
step: 'START',
|
|
39
|
+
attributeDomainMode: 'ALL',
|
|
40
|
+
context: {
|
|
41
|
+
headerId: 'TestId',
|
|
42
|
+
mode: ConfigurationContextMode.TEST,
|
|
43
|
+
properties: {
|
|
44
|
+
ModelId: data.modelId,
|
|
45
|
+
Name: 'Veloce Guided Selling',
|
|
46
|
+
PricingEnabled: 'false',
|
|
47
|
+
RuntimeMode: 'TEST',
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
lineItem: {
|
|
51
|
+
actionCode: 'ADD',
|
|
52
|
+
cfgStatus: 'Default',
|
|
53
|
+
id: UUID.UUID(),
|
|
54
|
+
qty: 1,
|
|
55
|
+
type: data.modelType,
|
|
56
|
+
attributes: Object.entries(data.attributesMap).map(([name, value]) => ({
|
|
57
|
+
name,
|
|
58
|
+
value,
|
|
59
|
+
cfgStatus: 'User',
|
|
60
|
+
})),
|
|
61
|
+
},
|
|
27
62
|
};
|
|
28
|
-
return lineItem;
|
|
29
63
|
};
|
|
30
64
|
|
|
31
65
|
class ContextService {
|
|
@@ -84,6 +118,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
|
|
|
84
118
|
args: [{ providedIn: 'root' }]
|
|
85
119
|
}], ctorParameters: function () { return [{ type: i1.ContextApiService }]; } });
|
|
86
120
|
|
|
121
|
+
const FORMATTING_SETTINGS_TOKEN = new InjectionToken('Summary of formatting settings for variant types of data, e.g. numbers, text, dates, etc');
|
|
122
|
+
|
|
87
123
|
var RuntimeMode;
|
|
88
124
|
(function (RuntimeMode) {
|
|
89
125
|
RuntimeMode[RuntimeMode["TEST"] = 0] = "TEST";
|
|
@@ -127,16 +163,10 @@ class RuntimeContextService {
|
|
|
127
163
|
}));
|
|
128
164
|
}
|
|
129
165
|
getUIDefinition(runtimeData) {
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
catch (e) {
|
|
135
|
-
return;
|
|
136
|
-
}
|
|
137
|
-
const uiDefinitions = rawUiDefinitions.filter(uiDef => uiDef.version);
|
|
138
|
-
const uiDefinition = uiDefinitions.find(uiDef => uiDef.primary) ?? uiDefinitions[0];
|
|
139
|
-
return uiDefinition;
|
|
166
|
+
const uiDefinitions = runtimeData.uiDefinitions
|
|
167
|
+
.map(({ source }) => source)
|
|
168
|
+
.filter((uiDefinition) => !isLegacyUIDefinition(uiDefinition));
|
|
169
|
+
return uiDefinitions.find(uiDef => uiDef.primary) ?? uiDefinitions[0];
|
|
140
170
|
}
|
|
141
171
|
}
|
|
142
172
|
RuntimeContextService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: RuntimeContextService, deps: [{ token: i1.ConfigurationApiService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
@@ -180,6 +210,7 @@ class ConfigurationRuntimeService {
|
|
|
180
210
|
PricingEnabled: this.uiDefinitionProperties.pricingEnabled ? 'true' : 'false',
|
|
181
211
|
StartDate: new Date().toISOString().substring(0, 10),
|
|
182
212
|
PriceListId: this.uiDefinitionProperties.priceList,
|
|
213
|
+
offeringId: this.uiDefinitionProperties.offeringId,
|
|
183
214
|
standalone: 'true',
|
|
184
215
|
...uiDefinitionExternals,
|
|
185
216
|
},
|
|
@@ -503,18 +534,25 @@ const removeLineItem = (lineItem, idToRemove) => {
|
|
|
503
534
|
.filter(r => !!r),
|
|
504
535
|
};
|
|
505
536
|
};
|
|
506
|
-
const replaceLineItem = (lineItem, replaceTo) => {
|
|
537
|
+
const replaceLineItem = (lineItem, replaceTo, skipCardinalityCalculation = false) => {
|
|
507
538
|
if (lineItem.id === replaceTo.id) {
|
|
508
|
-
|
|
539
|
+
if (!skipCardinalityCalculation) {
|
|
540
|
+
return { ...recalculateCardinalityVariables(lineItem, replaceTo) };
|
|
541
|
+
}
|
|
542
|
+
else {
|
|
543
|
+
return { ...replaceTo };
|
|
544
|
+
}
|
|
509
545
|
}
|
|
510
546
|
return {
|
|
511
547
|
...lineItem,
|
|
512
|
-
lineItems: lineItem.lineItems.map(li => replaceLineItem(li, replaceTo)),
|
|
548
|
+
lineItems: lineItem.lineItems.map(li => replaceLineItem(li, replaceTo, skipCardinalityCalculation)),
|
|
513
549
|
};
|
|
514
550
|
};
|
|
515
551
|
const calculateCardinalityVariables = (lineItems) => {
|
|
516
552
|
const cardVars = new Map();
|
|
517
|
-
lineItems
|
|
553
|
+
lineItems
|
|
554
|
+
.filter(({ port, type }) => !!port && !!type)
|
|
555
|
+
.forEach(li => {
|
|
518
556
|
const cardinalityVariableName = `#CV-${li.type}@${li.port}`;
|
|
519
557
|
cardVars.set(cardinalityVariableName, (cardVars.get(cardinalityVariableName) ?? 0) + li.qty);
|
|
520
558
|
});
|
|
@@ -554,13 +592,13 @@ const upsertAttributes = (originalAttributes, attributesToUpsert) => {
|
|
|
554
592
|
];
|
|
555
593
|
}, originalAttributes);
|
|
556
594
|
};
|
|
557
|
-
const patchAttributes = (rootLineItem, id, attrs) => {
|
|
595
|
+
const patchAttributes = (rootLineItem, id, attrs, skipCardinalityCalculation = false) => {
|
|
558
596
|
const lineItem = findLineItem(id, [rootLineItem]);
|
|
559
597
|
if (!lineItem) {
|
|
560
598
|
return rootLineItem;
|
|
561
599
|
}
|
|
562
600
|
const attributes = upsertAttributes(lineItem.attributes, attrs);
|
|
563
|
-
return replaceLineItem(rootLineItem, { ...lineItem, attributes });
|
|
601
|
+
return replaceLineItem(rootLineItem, { ...lineItem, attributes }, skipCardinalityCalculation);
|
|
564
602
|
};
|
|
565
603
|
const getAttributeValue = (attributes, name) => attributes.find(attr => attr.name === name)?.value;
|
|
566
604
|
const generateLineItem = (port, type, parentId, attributes = [], lineItems = []) => {
|
|
@@ -608,10 +646,10 @@ const getOriginParent = (lineItems, currentLineItem) => {
|
|
|
608
646
|
return target;
|
|
609
647
|
};
|
|
610
648
|
const isLineItemModified = (lineItem) => {
|
|
611
|
-
if (lineItem.
|
|
649
|
+
if (lineItem.actionCode === 'EXIST' && lineItem.status === 'PENDING') {
|
|
612
650
|
return false;
|
|
613
651
|
}
|
|
614
|
-
return lineItem.
|
|
652
|
+
return lineItem.actionCode !== 'EXIST';
|
|
615
653
|
};
|
|
616
654
|
const multiplyLineItems = (lineItem, qty, split) => {
|
|
617
655
|
if (split) {
|
|
@@ -631,10 +669,17 @@ const multiplyLineItems = (lineItem, qty, split) => {
|
|
|
631
669
|
];
|
|
632
670
|
}
|
|
633
671
|
};
|
|
672
|
+
const isTechnicalAttribute = (name) => {
|
|
673
|
+
return name.startsWith('#') || name.startsWith('$');
|
|
674
|
+
};
|
|
675
|
+
const filterOutTechnicalAttributes = (attributes) => {
|
|
676
|
+
return attributes.filter(({ name }) => !isTechnicalAttribute(name));
|
|
677
|
+
};
|
|
634
678
|
|
|
635
679
|
var lineItem_utils = /*#__PURE__*/Object.freeze({
|
|
636
680
|
__proto__: null,
|
|
637
681
|
calculateCardinalityVariables: calculateCardinalityVariables,
|
|
682
|
+
filterOutTechnicalAttributes: filterOutTechnicalAttributes,
|
|
638
683
|
findLineItem: findLineItem,
|
|
639
684
|
findLineItemWithComparator: findLineItemWithComparator,
|
|
640
685
|
generateLineItem: generateLineItem,
|
|
@@ -645,6 +690,7 @@ var lineItem_utils = /*#__PURE__*/Object.freeze({
|
|
|
645
690
|
getRecommendedPrices: getRecommendedPrices,
|
|
646
691
|
insertLineItem: insertLineItem,
|
|
647
692
|
isLineItemModified: isLineItemModified,
|
|
693
|
+
isTechnicalAttribute: isTechnicalAttribute,
|
|
648
694
|
mapAttributes: mapAttributes,
|
|
649
695
|
multiplyLineItems: multiplyLineItems,
|
|
650
696
|
patchAttributes: patchAttributes,
|
|
@@ -664,11 +710,11 @@ class LineItemWorker {
|
|
|
664
710
|
remove(id) {
|
|
665
711
|
return new LineItemWorker(removeLineItem(this.li, id));
|
|
666
712
|
}
|
|
667
|
-
replace(toReplace) {
|
|
668
|
-
return new LineItemWorker(replaceLineItem(this.li, toReplace));
|
|
713
|
+
replace(toReplace, skipCardinalityCalculation = false) {
|
|
714
|
+
return new LineItemWorker(replaceLineItem(this.li, toReplace, skipCardinalityCalculation));
|
|
669
715
|
}
|
|
670
|
-
patchAttribute(attrs, id) {
|
|
671
|
-
return new LineItemWorker(patchAttributes(this.li, id ?? this.li.id, attrs));
|
|
716
|
+
patchAttribute(attrs, id, skipCardinalityCalculation = false) {
|
|
717
|
+
return new LineItemWorker(patchAttributes(this.li, id ?? this.li.id, attrs, skipCardinalityCalculation));
|
|
672
718
|
}
|
|
673
719
|
}
|
|
674
720
|
|
|
@@ -694,11 +740,12 @@ class ConfigurationService {
|
|
|
694
740
|
this.charges.next({});
|
|
695
741
|
this.pricePlans.next({});
|
|
696
742
|
}
|
|
697
|
-
patch$(lineItem) {
|
|
743
|
+
patch$(lineItem, options) {
|
|
698
744
|
if (!this.lineItem.value) {
|
|
699
745
|
return throwError(() => new Error(`Source LineItem not found`));
|
|
700
746
|
}
|
|
701
|
-
|
|
747
|
+
const skipCardinalityCalculation = options?.skipCardinalityCalculation || this.contextSnapshot.properties['#skipCardinalityCalculation'] === 'true';
|
|
748
|
+
this.configurableRamp = new LineItemWorker(this.lineItem.value).replace(lineItem, skipCardinalityCalculation).li;
|
|
702
749
|
return this.configure().pipe(catchError(error => {
|
|
703
750
|
console.error(error);
|
|
704
751
|
if (!this.runtimeService.uiDefinitionProperties.suppressToastMessages) {
|
|
@@ -713,8 +760,8 @@ class ConfigurationService {
|
|
|
713
760
|
}
|
|
714
761
|
}));
|
|
715
762
|
}
|
|
716
|
-
patch(lineItem) {
|
|
717
|
-
this.patch$(lineItem).subscribe();
|
|
763
|
+
patch(lineItem, options) {
|
|
764
|
+
this.patch$(lineItem, options).subscribe();
|
|
718
765
|
}
|
|
719
766
|
setConfigurableRamp(lineItem) {
|
|
720
767
|
this.configurableRamp = lineItem;
|
|
@@ -759,8 +806,16 @@ class ConfigurationService {
|
|
|
759
806
|
...(runtimeContext.uiDefinition?.properties ?? {}),
|
|
760
807
|
...(this.runtimeService.uiDefinitionProperties ?? {}),
|
|
761
808
|
};
|
|
762
|
-
|
|
763
|
-
|
|
809
|
+
let lineItem = this.configurableRamp;
|
|
810
|
+
if (!lineItem) {
|
|
811
|
+
const { initializationProps } = this.runtimeService ?? {};
|
|
812
|
+
lineItem = getDefaultLineItem(runtimeContext, uiDefinitionProperties, initializationProps?.defaultQty);
|
|
813
|
+
// Set default attributes
|
|
814
|
+
if (initializationProps?.attributesMap) {
|
|
815
|
+
const attributes = transform(initializationProps?.attributesMap, (acc, value, name) => acc.push({ name, value }), []);
|
|
816
|
+
lineItem = new LineItemWorker(lineItem).patchAttribute(attributes).li;
|
|
817
|
+
}
|
|
818
|
+
}
|
|
764
819
|
const configurationRequest = this.createRequest(lineItem);
|
|
765
820
|
const mainPricingEnabled = runtimeContext.properties?.PricingEnabled;
|
|
766
821
|
const pricingEnabled = mainPricingEnabled ? mainPricingEnabled === 'true' : uiDefinitionProperties.pricingEnabled;
|
|
@@ -777,12 +832,26 @@ class ConfigurationService {
|
|
|
777
832
|
}))
|
|
778
833
|
.pipe(tap(lineItem => lineItem && this.lineItem.next(lineItem)), catchError(error => throwError(() => new Error(error.error?.message || error.message || JSON.stringify(error)))));
|
|
779
834
|
}
|
|
780
|
-
configureExternal$(
|
|
781
|
-
return this.runtimeService
|
|
835
|
+
configureExternal$(props) {
|
|
836
|
+
return this.runtimeService
|
|
837
|
+
.init({ productId: props.productId, defaultQty: props.qty, attributesMap: props.attributesMap })
|
|
838
|
+
.pipe(switchMap(() => this.configure()), first(), catchError(error => {
|
|
782
839
|
this.messageService.add({ severity: ToastType.error, summary: error });
|
|
783
840
|
throw error;
|
|
784
841
|
}), finalize(() => this.reset()));
|
|
785
842
|
}
|
|
843
|
+
configureGuidedSelling$(data) {
|
|
844
|
+
return this.configurationApiService
|
|
845
|
+
.configureLineItem({
|
|
846
|
+
configurationRequest: getGuidedSellingConfigurationRequest(data),
|
|
847
|
+
})
|
|
848
|
+
.pipe(catchError(error => {
|
|
849
|
+
if (error instanceof HttpErrorResponse) {
|
|
850
|
+
this.messageService.add({ severity: ToastType.error, summary: error.error.message || error.error });
|
|
851
|
+
}
|
|
852
|
+
throw error;
|
|
853
|
+
}));
|
|
854
|
+
}
|
|
786
855
|
createRequest(lineItem) {
|
|
787
856
|
let request = {
|
|
788
857
|
lineItem,
|
|
@@ -1038,15 +1107,15 @@ class FlowConfigurationService {
|
|
|
1038
1107
|
const updatedState = [...quoteDraft.currentState, term];
|
|
1039
1108
|
return of([]).pipe(switchMap$1(() => this.calculate$({ ...quoteDraft, currentState: updatedState })), map$2(() => this.quoteDraftService.quoteDraft), this.handleErrorAndBounceBack());
|
|
1040
1109
|
}
|
|
1041
|
-
addToCart$(
|
|
1110
|
+
addToCart$(props) {
|
|
1042
1111
|
const quoteDraft = this.quoteDraftService.quoteDraft;
|
|
1043
1112
|
if (!quoteDraft) {
|
|
1044
1113
|
return of(null);
|
|
1045
1114
|
}
|
|
1046
|
-
return this.configurationService.configureExternal$(
|
|
1115
|
+
return this.configurationService.configureExternal$(props).pipe(map$2(lineItem => {
|
|
1047
1116
|
const model = this.configurationService.getRuntimeModel();
|
|
1048
1117
|
const split = model?.types.find(type => type.name === lineItem.type)?.split ?? false;
|
|
1049
|
-
const lineItems = multiplyLineItems(lineItem, qty ?? 1, split);
|
|
1118
|
+
const lineItems = multiplyLineItems(lineItem, props.qty ?? 1, split);
|
|
1050
1119
|
return [...quoteDraft.currentState, ...lineItems];
|
|
1051
1120
|
}), switchMap$1(updatedState => this.calculate$({ ...quoteDraft, currentState: updatedState })), map$2(() => this.quoteDraftService.quoteDraft), this.handleErrorAndBounceBack());
|
|
1052
1121
|
}
|
|
@@ -1282,16 +1351,264 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
|
|
|
1282
1351
|
args: [{ providedIn: 'root' }]
|
|
1283
1352
|
}], ctorParameters: function () { return [{ type: i1.ProductApiService }]; } });
|
|
1284
1353
|
|
|
1354
|
+
class RuntimeSettingsService {
|
|
1355
|
+
constructor(configurationSettingsApiService) {
|
|
1356
|
+
this.configurationSettingsApiService = configurationSettingsApiService;
|
|
1357
|
+
this.configurationSettings$ = new BehaviorSubject({});
|
|
1358
|
+
this.currencySettings$ = new BehaviorSubject({
|
|
1359
|
+
iso: DEFAULT_CURRENCY_ISO_CODE,
|
|
1360
|
+
symbol: DEFAULT_CURRENCY_SYMBOL,
|
|
1361
|
+
});
|
|
1362
|
+
this.getCurrencySymbol = (locale, currency) => {
|
|
1363
|
+
return (0)
|
|
1364
|
+
.toLocaleString(locale, { style: 'currency', currency, minimumFractionDigits: 0, maximumFractionDigits: 0 })
|
|
1365
|
+
.replace(/\d/g, '')
|
|
1366
|
+
.trim();
|
|
1367
|
+
};
|
|
1368
|
+
}
|
|
1369
|
+
create() {
|
|
1370
|
+
return this.configurationSettingsApiService.fetchSettings().pipe(map$2(settings => this.parseConfigurationSettings(settings)), tap$1(configurationSettings => {
|
|
1371
|
+
this.configurationSettings$.next(configurationSettings);
|
|
1372
|
+
this.formattingSettings = this.getFormattingSettings();
|
|
1373
|
+
}), map$2(() => undefined));
|
|
1374
|
+
}
|
|
1375
|
+
initCurrency(iso) {
|
|
1376
|
+
if (iso) {
|
|
1377
|
+
const symbol = this.getCurrencySymbol('en-US', iso);
|
|
1378
|
+
this.currencySettings$.next({ iso, symbol });
|
|
1379
|
+
}
|
|
1380
|
+
}
|
|
1381
|
+
getFormattingSettings() {
|
|
1382
|
+
if (this.formattingSettings) {
|
|
1383
|
+
return this.formattingSettings;
|
|
1384
|
+
}
|
|
1385
|
+
const shoppingCartSettings = this.getConfigurationSettings()['shopping-cart']?.reduce((acc, setting) => {
|
|
1386
|
+
return { ...acc, [setting.id]: setting.properties };
|
|
1387
|
+
}, {});
|
|
1388
|
+
const currencySettings = this.getCurrencySettings();
|
|
1389
|
+
const dateFormat = (validateDateFormat(shoppingCartSettings?.DATE_FORMAT ?? '') && shoppingCartSettings?.DATE_FORMAT) ||
|
|
1390
|
+
DEFAULT_DATE_FORMAT;
|
|
1391
|
+
const decimalSeparator = shoppingCartSettings?.DECIMAL_SEPARATOR ?? DEFAULT_DECIMAL_SEPARATOR;
|
|
1392
|
+
const thousandsSeparator = shoppingCartSettings?.THOUSANDS_SEPARATOR ?? DEFAULT_THOUSANDS_SEPARATOR;
|
|
1393
|
+
return {
|
|
1394
|
+
currencySymbol: currencySettings.symbol,
|
|
1395
|
+
dateFormats: getSupportedDateFormats(dateFormat),
|
|
1396
|
+
decimalSeparator: (['.', ','].includes(decimalSeparator) && decimalSeparator) || DEFAULT_DECIMAL_SEPARATOR,
|
|
1397
|
+
decimalsCount: (!isNaN(Number(shoppingCartSettings?.PRICE_SCALE)) && Number(shoppingCartSettings?.PRICE_SCALE)) ||
|
|
1398
|
+
DEFAULT_DECIMALS_COUNT,
|
|
1399
|
+
thousandsSeparator: ['.', ',', ''].includes(thousandsSeparator)
|
|
1400
|
+
? thousandsSeparator
|
|
1401
|
+
: DEFAULT_THOUSANDS_SEPARATOR,
|
|
1402
|
+
};
|
|
1403
|
+
}
|
|
1404
|
+
getConfigurationSettings() {
|
|
1405
|
+
return this.configurationSettings$.value;
|
|
1406
|
+
}
|
|
1407
|
+
getCurrencySettings() {
|
|
1408
|
+
return this.currencySettings$.value;
|
|
1409
|
+
}
|
|
1410
|
+
parseConfigurationSettings(settings) {
|
|
1411
|
+
return settings.reduce((acc, setting) => {
|
|
1412
|
+
switch (setting.key) {
|
|
1413
|
+
case 'shopping-cart':
|
|
1414
|
+
acc['shopping-cart'] = parseJsonSafely(setting.value, []);
|
|
1415
|
+
break;
|
|
1416
|
+
case 'navigation':
|
|
1417
|
+
acc.navigation = parseJsonSafely(setting.value, {});
|
|
1418
|
+
break;
|
|
1419
|
+
case 'flows':
|
|
1420
|
+
acc.flows = parseJsonSafely(setting.value, []);
|
|
1421
|
+
break;
|
|
1422
|
+
default:
|
|
1423
|
+
acc[setting.key] = setting.value;
|
|
1424
|
+
}
|
|
1425
|
+
return acc;
|
|
1426
|
+
}, {});
|
|
1427
|
+
}
|
|
1428
|
+
}
|
|
1429
|
+
RuntimeSettingsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: RuntimeSettingsService, deps: [{ token: i1.ConfigurationSettingsApiService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1430
|
+
RuntimeSettingsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: RuntimeSettingsService, providedIn: 'root' });
|
|
1431
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: RuntimeSettingsService, decorators: [{
|
|
1432
|
+
type: Injectable,
|
|
1433
|
+
args: [{ providedIn: 'root' }]
|
|
1434
|
+
}], ctorParameters: function () { return [{ type: i1.ConfigurationSettingsApiService }]; } });
|
|
1435
|
+
|
|
1436
|
+
const DEFAULT_FORMATTING_SETTINGS = {
|
|
1437
|
+
currencySymbol: DEFAULT_CURRENCY_SYMBOL,
|
|
1438
|
+
decimalsCount: DEFAULT_DECIMALS_COUNT,
|
|
1439
|
+
dateFormats: getSupportedDateFormats(DEFAULT_DATE_FORMAT),
|
|
1440
|
+
decimalSeparator: DEFAULT_DECIMAL_SEPARATOR,
|
|
1441
|
+
thousandsSeparator: DEFAULT_THOUSANDS_SEPARATOR,
|
|
1442
|
+
};
|
|
1285
1443
|
class SdkCoreModule {
|
|
1286
1444
|
}
|
|
1287
1445
|
SdkCoreModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: SdkCoreModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
1288
1446
|
SdkCoreModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.8", ngImport: i0, type: SdkCoreModule, imports: [ConfigurationModule, FlowConfigurationModule] });
|
|
1289
|
-
SdkCoreModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: SdkCoreModule, providers: [
|
|
1447
|
+
SdkCoreModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: SdkCoreModule, providers: [
|
|
1448
|
+
ContextService,
|
|
1449
|
+
QuoteDraftService,
|
|
1450
|
+
ProductImagesService,
|
|
1451
|
+
MetricsCalculationService,
|
|
1452
|
+
RuntimeSettingsService,
|
|
1453
|
+
{
|
|
1454
|
+
provide: FORMATTING_SETTINGS_TOKEN,
|
|
1455
|
+
useExisting: RuntimeSettingsService,
|
|
1456
|
+
},
|
|
1457
|
+
], imports: [ConfigurationModule, FlowConfigurationModule] });
|
|
1290
1458
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: SdkCoreModule, decorators: [{
|
|
1291
1459
|
type: NgModule,
|
|
1292
1460
|
args: [{
|
|
1293
1461
|
imports: [ConfigurationModule, FlowConfigurationModule],
|
|
1294
|
-
providers: [
|
|
1462
|
+
providers: [
|
|
1463
|
+
ContextService,
|
|
1464
|
+
QuoteDraftService,
|
|
1465
|
+
ProductImagesService,
|
|
1466
|
+
MetricsCalculationService,
|
|
1467
|
+
RuntimeSettingsService,
|
|
1468
|
+
{
|
|
1469
|
+
provide: FORMATTING_SETTINGS_TOKEN,
|
|
1470
|
+
useExisting: RuntimeSettingsService,
|
|
1471
|
+
},
|
|
1472
|
+
],
|
|
1473
|
+
}]
|
|
1474
|
+
}] });
|
|
1475
|
+
|
|
1476
|
+
class CalendarDirective {
|
|
1477
|
+
constructor() {
|
|
1478
|
+
this.ngControl = inject(NgControl, { host: true, optional: true });
|
|
1479
|
+
this.formattingSettings = inject(FORMATTING_SETTINGS_TOKEN, { optional: true })?.getFormattingSettings();
|
|
1480
|
+
this.destroy$ = new Subject();
|
|
1481
|
+
}
|
|
1482
|
+
set vlCalendar(calendar) {
|
|
1483
|
+
this.calendar = calendar;
|
|
1484
|
+
}
|
|
1485
|
+
ngOnDestroy() {
|
|
1486
|
+
this.destroy$.next();
|
|
1487
|
+
this.destroy$.complete();
|
|
1488
|
+
}
|
|
1489
|
+
ngOnInit() {
|
|
1490
|
+
if (this.calendar) {
|
|
1491
|
+
this.calendar.dateFormat = this.formattingSettings?.dateFormats.primengFormat ?? DEFAULT_DATE_FORMAT;
|
|
1492
|
+
if (this.ngControl && this.ngControl.control) {
|
|
1493
|
+
const control = this.ngControl.control;
|
|
1494
|
+
control.setValue(control.value, { emitEvent: false });
|
|
1495
|
+
}
|
|
1496
|
+
}
|
|
1497
|
+
}
|
|
1498
|
+
}
|
|
1499
|
+
CalendarDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: CalendarDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
1500
|
+
CalendarDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.8", type: CalendarDirective, selector: "[vlCalendar]", inputs: { vlCalendar: "vlCalendar" }, ngImport: i0 });
|
|
1501
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: CalendarDirective, decorators: [{
|
|
1502
|
+
type: Directive,
|
|
1503
|
+
args: [{
|
|
1504
|
+
selector: '[vlCalendar]',
|
|
1505
|
+
}]
|
|
1506
|
+
}], propDecorators: { vlCalendar: [{
|
|
1507
|
+
type: Input
|
|
1508
|
+
}] } });
|
|
1509
|
+
|
|
1510
|
+
class SdkDirectivesModule {
|
|
1511
|
+
}
|
|
1512
|
+
SdkDirectivesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: SdkDirectivesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
1513
|
+
SdkDirectivesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.8", ngImport: i0, type: SdkDirectivesModule, declarations: [CalendarDirective], exports: [CalendarDirective] });
|
|
1514
|
+
SdkDirectivesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: SdkDirectivesModule });
|
|
1515
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: SdkDirectivesModule, decorators: [{
|
|
1516
|
+
type: NgModule,
|
|
1517
|
+
args: [{
|
|
1518
|
+
declarations: [CalendarDirective],
|
|
1519
|
+
exports: [CalendarDirective],
|
|
1520
|
+
}]
|
|
1521
|
+
}] });
|
|
1522
|
+
|
|
1523
|
+
class DatePipe {
|
|
1524
|
+
constructor() {
|
|
1525
|
+
this.locale = inject(LOCALE_ID);
|
|
1526
|
+
this.defaultOptions = inject(DATE_PIPE_DEFAULT_OPTIONS, { optional: true });
|
|
1527
|
+
this.formattingSettings = inject(FORMATTING_SETTINGS_TOKEN, { optional: true })?.getFormattingSettings();
|
|
1528
|
+
this.destroy$ = new Subject();
|
|
1529
|
+
}
|
|
1530
|
+
ngOnDestroy() {
|
|
1531
|
+
this.destroy$.next();
|
|
1532
|
+
this.destroy$.complete();
|
|
1533
|
+
}
|
|
1534
|
+
transform(date) {
|
|
1535
|
+
if (!date) {
|
|
1536
|
+
return '';
|
|
1537
|
+
}
|
|
1538
|
+
try {
|
|
1539
|
+
return formatDate(date, this.formattingSettings?.dateFormats.datePipeFormat || DEFAULT_DATE_FORMAT, this.locale, this.defaultOptions?.timezone);
|
|
1540
|
+
}
|
|
1541
|
+
catch (error) {
|
|
1542
|
+
return new Date(date).toString();
|
|
1543
|
+
}
|
|
1544
|
+
}
|
|
1545
|
+
}
|
|
1546
|
+
DatePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: DatePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
1547
|
+
DatePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.8", ngImport: i0, type: DatePipe, name: "vlDate" });
|
|
1548
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: DatePipe, decorators: [{
|
|
1549
|
+
type: Pipe,
|
|
1550
|
+
args: [{
|
|
1551
|
+
name: 'vlDate',
|
|
1552
|
+
}]
|
|
1553
|
+
}] });
|
|
1554
|
+
|
|
1555
|
+
class NumberPipe {
|
|
1556
|
+
constructor() {
|
|
1557
|
+
this.formattingSettings = inject(FORMATTING_SETTINGS_TOKEN, { optional: true })?.getFormattingSettings();
|
|
1558
|
+
this.destroy$ = new Subject();
|
|
1559
|
+
}
|
|
1560
|
+
ngOnDestroy() {
|
|
1561
|
+
this.destroy$.next();
|
|
1562
|
+
this.destroy$.complete();
|
|
1563
|
+
}
|
|
1564
|
+
transform(price) {
|
|
1565
|
+
return formatNumber(price, this.formattingSettings?.thousandsSeparator, this.formattingSettings?.decimalSeparator, this.formattingSettings?.decimalsCount);
|
|
1566
|
+
}
|
|
1567
|
+
}
|
|
1568
|
+
NumberPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NumberPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
1569
|
+
NumberPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.8", ngImport: i0, type: NumberPipe, name: "vlNumber" });
|
|
1570
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NumberPipe, decorators: [{
|
|
1571
|
+
type: Pipe,
|
|
1572
|
+
args: [{
|
|
1573
|
+
name: 'vlNumber',
|
|
1574
|
+
}]
|
|
1575
|
+
}] });
|
|
1576
|
+
|
|
1577
|
+
class PricePipe {
|
|
1578
|
+
constructor() {
|
|
1579
|
+
this.formattingSettings = inject(FORMATTING_SETTINGS_TOKEN, { optional: true })?.getFormattingSettings();
|
|
1580
|
+
this.destroy$ = new Subject();
|
|
1581
|
+
}
|
|
1582
|
+
ngOnDestroy() {
|
|
1583
|
+
this.destroy$.next();
|
|
1584
|
+
this.destroy$.complete();
|
|
1585
|
+
}
|
|
1586
|
+
transform(price) {
|
|
1587
|
+
if (price == null || price === '') {
|
|
1588
|
+
return '';
|
|
1589
|
+
}
|
|
1590
|
+
return `${this.formattingSettings?.currencySymbol || DEFAULT_CURRENCY_SYMBOL}${formatNumber(price, this.formattingSettings?.thousandsSeparator, this.formattingSettings?.decimalSeparator, this.formattingSettings?.decimalsCount)}`;
|
|
1591
|
+
}
|
|
1592
|
+
}
|
|
1593
|
+
PricePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: PricePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
1594
|
+
PricePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.8", ngImport: i0, type: PricePipe, name: "vlPrice" });
|
|
1595
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: PricePipe, decorators: [{
|
|
1596
|
+
type: Pipe,
|
|
1597
|
+
args: [{
|
|
1598
|
+
name: 'vlPrice',
|
|
1599
|
+
}]
|
|
1600
|
+
}] });
|
|
1601
|
+
|
|
1602
|
+
class SdkPipesModule {
|
|
1603
|
+
}
|
|
1604
|
+
SdkPipesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: SdkPipesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
1605
|
+
SdkPipesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.8", ngImport: i0, type: SdkPipesModule, declarations: [NumberPipe, PricePipe, DatePipe], exports: [NumberPipe, PricePipe, DatePipe] });
|
|
1606
|
+
SdkPipesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: SdkPipesModule });
|
|
1607
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: SdkPipesModule, decorators: [{
|
|
1608
|
+
type: NgModule,
|
|
1609
|
+
args: [{
|
|
1610
|
+
declarations: [NumberPipe, PricePipe, DatePipe],
|
|
1611
|
+
exports: [NumberPipe, PricePipe, DatePipe],
|
|
1295
1612
|
}]
|
|
1296
1613
|
}] });
|
|
1297
1614
|
|
|
@@ -1299,5 +1616,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
|
|
|
1299
1616
|
* Generated bundle index. Do not edit.
|
|
1300
1617
|
*/
|
|
1301
1618
|
|
|
1302
|
-
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 };
|
|
1619
|
+
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 };
|
|
1303
1620
|
//# sourceMappingURL=veloceapps-sdk-core.mjs.map
|