@veloceapps/sdk 7.0.2-27 → 7.0.2-28

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,6 +1,6 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { Injectable, NgModule } from '@angular/core';
3
- import { UUID, ConfigurationContext, RuntimeModel, ConfigurationContextMode, SalesforceIdUtils, ConfigurationMode, ConfigurationTranslatorUtils, ChargeGroupUtils } from '@veloceapps/core';
3
+ import { UUID, ConfigurationContext, RuntimeModel, ConfigurationContextMode, SalesforceIdUtils, ConfigurationMode, ConfigurationTranslatorUtils, ChargeGroupUtils, parseJsonSafely } 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';
@@ -1290,16 +1290,84 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
1290
1290
  args: [{ providedIn: 'root' }]
1291
1291
  }], ctorParameters: function () { return [{ type: i1.ProductApiService }]; } });
1292
1292
 
1293
+ class RuntimeSettingsService {
1294
+ constructor(configurationSettingsApiService) {
1295
+ this.configurationSettingsApiService = configurationSettingsApiService;
1296
+ this.configurationSettings$ = new BehaviorSubject({});
1297
+ this.currencySettings$ = new BehaviorSubject({
1298
+ iso: 'USD',
1299
+ symbol: '$',
1300
+ });
1301
+ this.getCurrencySymbol = (locale, currency) => {
1302
+ return (0)
1303
+ .toLocaleString(locale, { style: 'currency', currency, minimumFractionDigits: 0, maximumFractionDigits: 0 })
1304
+ .replace(/\d/g, '')
1305
+ .trim();
1306
+ };
1307
+ }
1308
+ create() {
1309
+ return this.configurationSettingsApiService.fetchSettings().pipe(map$2(settings => this.parseConfigurationSettings(settings)), tap$1(configurationSettings => this.configurationSettings$.next(configurationSettings)), map$2(() => undefined));
1310
+ }
1311
+ initCurrency(iso) {
1312
+ if (iso) {
1313
+ const symbol = this.getCurrencySymbol('en-US', iso);
1314
+ this.currencySettings$.next({ iso, symbol });
1315
+ }
1316
+ }
1317
+ getConfigurationSettings() {
1318
+ return this.configurationSettings$.value;
1319
+ }
1320
+ getCurrencySettings() {
1321
+ return this.currencySettings$.value;
1322
+ }
1323
+ parseConfigurationSettings(settings) {
1324
+ return settings.reduce((acc, setting) => {
1325
+ switch (setting.key) {
1326
+ case 'shopping-cart':
1327
+ acc['shopping-cart'] = parseJsonSafely(setting.value, []);
1328
+ break;
1329
+ case 'navigation':
1330
+ acc.navigation = parseJsonSafely(setting.value, {});
1331
+ break;
1332
+ case 'flows':
1333
+ acc.flows = parseJsonSafely(setting.value, []);
1334
+ break;
1335
+ default:
1336
+ acc[setting.key] = setting.value;
1337
+ }
1338
+ return acc;
1339
+ }, {});
1340
+ }
1341
+ }
1342
+ RuntimeSettingsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: RuntimeSettingsService, deps: [{ token: i1.ConfigurationSettingsApiService }], target: i0.ɵɵFactoryTarget.Injectable });
1343
+ RuntimeSettingsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: RuntimeSettingsService, providedIn: 'root' });
1344
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: RuntimeSettingsService, decorators: [{
1345
+ type: Injectable,
1346
+ args: [{ providedIn: 'root' }]
1347
+ }], ctorParameters: function () { return [{ type: i1.ConfigurationSettingsApiService }]; } });
1348
+
1293
1349
  class SdkCoreModule {
1294
1350
  }
1295
1351
  SdkCoreModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: SdkCoreModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1296
1352
  SdkCoreModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.8", ngImport: i0, type: SdkCoreModule, imports: [ConfigurationModule, FlowConfigurationModule] });
1297
- SdkCoreModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: SdkCoreModule, providers: [ContextService, QuoteDraftService, ProductImagesService, MetricsCalculationService], imports: [ConfigurationModule, FlowConfigurationModule] });
1353
+ SdkCoreModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: SdkCoreModule, providers: [
1354
+ ContextService,
1355
+ QuoteDraftService,
1356
+ ProductImagesService,
1357
+ MetricsCalculationService,
1358
+ RuntimeSettingsService,
1359
+ ], imports: [ConfigurationModule, FlowConfigurationModule] });
1298
1360
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: SdkCoreModule, decorators: [{
1299
1361
  type: NgModule,
1300
1362
  args: [{
1301
1363
  imports: [ConfigurationModule, FlowConfigurationModule],
1302
- providers: [ContextService, QuoteDraftService, ProductImagesService, MetricsCalculationService],
1364
+ providers: [
1365
+ ContextService,
1366
+ QuoteDraftService,
1367
+ ProductImagesService,
1368
+ MetricsCalculationService,
1369
+ RuntimeSettingsService,
1370
+ ],
1303
1371
  }]
1304
1372
  }] });
1305
1373
 
@@ -1307,5 +1375,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
1307
1375
  * Generated bundle index. Do not edit.
1308
1376
  */
1309
1377
 
1310
- 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 };
1378
+ export { ConfigurationRuntimeService, ConfigurationService, ContextService, FlowConfigurationModule, FlowConfigurationService, FlowUpdateService, LineItemWorker, MetricsCalculationService, ProductImagesService, QuoteDraftService, RuntimeMode, RuntimeOperation, RuntimeSettingsService, 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 };
1311
1379
  //# sourceMappingURL=veloceapps-sdk-core.mjs.map