@veloceapps/sdk 7.0.2-78 → 7.0.2-79

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, InjectionToken, NgModule, inject, Directive, Input, LOCALE_ID, Pipe } from '@angular/core';
3
- import { UUID, ConfigurationContextMode, ConfigurationContext, RuntimeModel, getUIDefinitionProperties, isLegacyUIDefinition, SalesforceIdUtils, ConfigurationMode, ConfigurationTranslatorUtils, EntityUtil, 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';
3
+ import { UUID, ConfigurationContextMode, ConfigurationContext, RuntimeModel, getUIDefinitionProperties, isLegacyUIDefinition, SalesforceIdUtils, ConfigurationMode, ConfigurationTranslatorUtils, EntityUtil, ChargeGroupUtils, DEFAULT_CURRENCY_ISO_CODE, DEFAULT_CURRENCY_SYMBOL, validateDateFormat, DEFAULT_DATE_FORMAT, DEFAULT_DECIMALS_COUNT, getSupportedDateFormats, DEFAULT_DECIMAL_SEPARATOR, DEFAULT_THOUSANDS_SEPARATOR, 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, switchMap as switchMap$1, of, tap as tap$1, map as map$2, catchError as catchError$1, Subject, take as take$1, distinctUntilChanged } from 'rxjs';
@@ -1542,16 +1542,23 @@ class RuntimeSettingsService {
1542
1542
  const currencySettings = this.getCurrencySettings();
1543
1543
  const dateFormat = (validateDateFormat(shoppingCartSettings?.DATE_FORMAT ?? '') && shoppingCartSettings?.DATE_FORMAT) ||
1544
1544
  DEFAULT_DATE_FORMAT;
1545
- const decimalSeparator = shoppingCartSettings?.DECIMAL_SEPARATOR ?? DEFAULT_DECIMAL_SEPARATOR;
1546
- const thousandsSeparator = shoppingCartSettings?.THOUSANDS_SEPARATOR ?? DEFAULT_THOUSANDS_SEPARATOR;
1545
+ const decimalSeparator = shoppingCartSettings?.DECIMAL_SEPARATOR;
1546
+ const thousandsSeparator = shoppingCartSettings?.THOUSANDS_SEPARATOR;
1547
+ // the number of decimal places can be 0
1548
+ const priceScale = shoppingCartSettings?.PRICE_SCALE;
1549
+ const decimalsCount = priceScale !== null && priceScale !== '' && !isNaN(Number(priceScale)) && Number(priceScale) >= 0
1550
+ ? Number(priceScale)
1551
+ : DEFAULT_DECIMALS_COUNT;
1547
1552
  return {
1548
1553
  currencySymbol: currencySettings.symbol,
1549
1554
  dateFormats: getSupportedDateFormats(dateFormat),
1550
- decimalSeparator: (['.', ','].includes(decimalSeparator) && decimalSeparator) || DEFAULT_DECIMAL_SEPARATOR,
1551
- decimalsCount: (!isNaN(Number(shoppingCartSettings?.PRICE_SCALE)) && Number(shoppingCartSettings?.PRICE_SCALE)) ||
1552
- DEFAULT_DECIMALS_COUNT,
1553
- thousandsSeparator: ['.', ',', ''].includes(thousandsSeparator)
1554
- ? thousandsSeparator
1555
+ decimalsCount,
1556
+ decimalSeparator: decimalSeparator !== undefined && ['.', ','].includes(decimalSeparator)
1557
+ ? decimalSeparator
1558
+ : DEFAULT_DECIMAL_SEPARATOR,
1559
+ // thousands separator can be a blank value, so it can also be null
1560
+ thousandsSeparator: thousandsSeparator !== undefined && ['.', ',', '', null].includes(thousandsSeparator)
1561
+ ? thousandsSeparator || ''
1555
1562
  : DEFAULT_THOUSANDS_SEPARATOR,
1556
1563
  };
1557
1564
  }