@veloceapps/sdk 7.0.2-77 → 7.0.2-79

Sign up to get free protection for your applications and to get access to all the features.
@@ -41,16 +41,23 @@ export class RuntimeSettingsService {
41
41
  const currencySettings = this.getCurrencySettings();
42
42
  const dateFormat = (validateDateFormat(shoppingCartSettings?.DATE_FORMAT ?? '') && shoppingCartSettings?.DATE_FORMAT) ||
43
43
  DEFAULT_DATE_FORMAT;
44
- const decimalSeparator = shoppingCartSettings?.DECIMAL_SEPARATOR ?? DEFAULT_DECIMAL_SEPARATOR;
45
- const thousandsSeparator = shoppingCartSettings?.THOUSANDS_SEPARATOR ?? DEFAULT_THOUSANDS_SEPARATOR;
44
+ const decimalSeparator = shoppingCartSettings?.DECIMAL_SEPARATOR;
45
+ const thousandsSeparator = shoppingCartSettings?.THOUSANDS_SEPARATOR;
46
+ // the number of decimal places can be 0
47
+ const priceScale = shoppingCartSettings?.PRICE_SCALE;
48
+ const decimalsCount = priceScale !== null && priceScale !== '' && !isNaN(Number(priceScale)) && Number(priceScale) >= 0
49
+ ? Number(priceScale)
50
+ : DEFAULT_DECIMALS_COUNT;
46
51
  return {
47
52
  currencySymbol: currencySettings.symbol,
48
53
  dateFormats: getSupportedDateFormats(dateFormat),
49
- decimalSeparator: (['.', ','].includes(decimalSeparator) && decimalSeparator) || DEFAULT_DECIMAL_SEPARATOR,
50
- decimalsCount: (!isNaN(Number(shoppingCartSettings?.PRICE_SCALE)) && Number(shoppingCartSettings?.PRICE_SCALE)) ||
51
- DEFAULT_DECIMALS_COUNT,
52
- thousandsSeparator: ['.', ',', ''].includes(thousandsSeparator)
53
- ? thousandsSeparator
54
+ decimalsCount,
55
+ decimalSeparator: decimalSeparator !== undefined && ['.', ','].includes(decimalSeparator)
56
+ ? decimalSeparator
57
+ : DEFAULT_DECIMAL_SEPARATOR,
58
+ // thousands separator can be a blank value, so it can also be null
59
+ thousandsSeparator: thousandsSeparator !== undefined && ['.', ',', '', null].includes(thousandsSeparator)
60
+ ? thousandsSeparator || ''
54
61
  : DEFAULT_THOUSANDS_SEPARATOR,
55
62
  };
56
63
  }
@@ -85,4 +92,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
85
92
  type: Injectable,
86
93
  args: [{ providedIn: 'root' }]
87
94
  }], ctorParameters: function () { return [{ type: i1.ConfigurationSettingsApiService }]; } });
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS1zZXR0aW5ncy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvY29yZS9zZXJ2aWNlcy9ydW50aW1lLXNldHRpbmdzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRSxPQUFPLEVBRUwseUJBQXlCLEVBQ3pCLHVCQUF1QixFQUN2QixtQkFBbUIsRUFDbkIsc0JBQXNCLEVBQ3RCLHlCQUF5QixFQUN6QiwyQkFBMkIsRUFNM0IsdUJBQXVCLEVBQ3ZCLGVBQWUsRUFDZixrQkFBa0IsR0FDbkIsTUFBTSxrQkFBa0IsQ0FBQztBQUUxQixPQUFPLEVBQUUsZUFBZSxFQUFjLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7OztBQUk3RCxNQUFNLE9BQU8sc0JBQXNCO0lBUWpDLFlBQW9CLCtCQUFnRTtRQUFoRSxvQ0FBK0IsR0FBL0IsK0JBQStCLENBQWlDO1FBUDVFLDJCQUFzQixHQUFHLElBQUksZUFBZSxDQUErQixFQUFFLENBQUMsQ0FBQztRQUMvRSxzQkFBaUIsR0FBRyxJQUFJLGVBQWUsQ0FBMEI7WUFDdkUsR0FBRyxFQUFFLHlCQUF5QjtZQUM5QixNQUFNLEVBQUUsdUJBQXVCO1NBQ2hDLENBQUMsQ0FBQztRQStFSyxzQkFBaUIsR0FBRyxDQUFDLE1BQWMsRUFBRSxRQUFnQixFQUFFLEVBQUU7WUFDL0QsT0FBTyxDQUFDLENBQUMsQ0FBQztpQkFDUCxjQUFjLENBQUMsTUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUscUJBQXFCLEVBQUUsQ0FBQyxFQUFFLHFCQUFxQixFQUFFLENBQUMsRUFBRSxDQUFDO2lCQUMzRyxPQUFPLENBQUMsS0FBSyxFQUFFLEVB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QkFBMEIsQ0FBQyxRQUFpQztRQUNsRSxPQUFPLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFpQyxFQUFFLE9BQU8sRUFBRSxFQUFFO1lBQ3BFLFFBQVEsT0FBTyxDQUFDLEdBQUcsRUFBRTtnQkFDbkIsS0FBSyxlQUFlO29CQUNsQixHQUFHLENBQUMsZUFBZSxDQUFDLEdBQUcsZUFBZSxDQUF3QixPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO29CQUNqRixNQUFNO2dCQUNSLEtBQUssWUFBWTtvQkFDZixHQUFHLENBQUMsVUFBVSxHQUFHLGVBQWUsQ0FBc0IsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztvQkFDekUsTUFBTTtnQkFDUixLQUFLLE9BQU87b0JBQ1YsR0FBRyxDQUFDLEtBQUssR0FBRyxlQUFlLENBQVMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztvQkFDdkQsTUFBTTtnQkFDUjtvQkFDRSxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7YUFDcEM7WUFFRCxPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNULENBQUM7O21IQWxGVSxzQkFBc0I7dUhBQXRCLHNCQUFzQixjQURULE1BQU07MkZBQ25CLHNCQUFzQjtrQkFEbEMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb25maWd1cmF0aW9uU2V0dGluZ3NBcGlTZXJ2aWNlIH0gZnJvbSAnQHZlbG9jZWFwcHMvYXBpJztcbmltcG9ydCB7XG4gIENvbmZpZ3VyYXRpb25TZXR0aW5ncyxcbiAgREVGQVVMVF9DVVJSRU5DWV9JU09fQ09ERSxcbiAgREVGQVVMVF9DVVJSRU5DWV9TWU1CT0wsXG4gIERFRkFVTFRfREFURV9GT1JNQVQsXG4gIERFRkFVTFRfREVDSU1BTFNfQ09VTlQsXG4gIERFRkFVTFRfREVDSU1BTF9TRVBBUkFUT1IsXG4gIERFRkFVTFRfVEhPVVNBTkRTX1NFUEFSQVRPUixcbiAgRmxvdyxcbiAgUnVudGltZUNvbmZpZ3VyYXRpb25TZXR0aW5ncyxcbiAgUnVudGltZUN1cnJlbmN5U2V0dGluZ3MsXG4gIFNob3BwaW5nQ2FydFNldHRpbmcsXG4gIFNob3BwaW5nQ2FydFNldHRpbmdzLFxuICBnZXRTdXBwb3J0ZWREYXRlRm9ybWF0cyxcbiAgcGFyc2VKc29uU2FmZWx5LFxuICB2YWxpZGF0ZURhdGVGb3JtYXQsXG59IGZyb20gJ0B2ZWxvY2VhcHBzL2NvcmUnO1xuaW1wb3J0IHsgRGljdGlvbmFyeSB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIG1hcCwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGb3JtYXR0aW5nU2V0dGluZ3MgfSBmcm9tICcuLi90eXBlcyc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgUnVudGltZVNldHRpbmdzU2VydmljZSB7XG4gIHByaXZhdGUgY29uZmlndXJhdGlvblNldHRpbmdzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UnVudGltZUNvbmZpZ3VyYXRpb25TZXR0aW5ncz4oe30pO1xuICBwcml2YXRlIGN1cnJlbmN5U2V0dGluZ3MkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxSdW50aW1lQ3VycmVuY3lTZXR0aW5ncz4oe1xuICAgIGlzbzogREVGQVVMVF9DVVJSRU5DWV9JU09fQ09ERSxcbiAgICBzeW1ib2w6IERFRkFVTFRfQ1VSUkVOQ1lfU1lNQk9MLFxuICB9KTtcbiAgcHJpdmF0ZSBmb3JtYXR0aW5nU2V0dGluZ3MhOiBGb3JtYXR0aW5nU2V0dGluZ3M7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjb25maWd1cmF0aW9uU2V0dGluZ3NBcGlTZXJ2aWNlOiBDb25maWd1cmF0aW9uU2V0dGluZ3NBcGlTZXJ2aWNlKSB7fVxuXG4gIHB1YmxpYyBjcmVhdGUoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlndXJhdGlvblNldHRpbmdzQXBpU2VydmljZS5mZXRjaFNldHRpbmdzKCkucGlwZShcbiAgICAgIG1hcChzZXR0aW5ncyA9PiB0aGlzLnBhcnNlQ29uZmlndXJhdGlvblNldHRpbmdzKHNldHRpbmdzKSksXG4gICAgICB0YXAoY29uZmlndXJhdGlvblNldHRpbmdzID0+IHtcbiAgICAgICAgdGhpcy5jb25maWd1cmF0aW9uU2V0dGluZ3MkLm5leHQoY29uZmlndXJhdGlvblNldHRpbmdzKTtcbiAgICAgICAgdGhpcy5mb3JtYXR0aW5nU2V0dGluZ3MgPSB0aGlzLmdldEZvcm1hdHRpbmdTZXR0aW5ncygpO1xuICAgICAgfSksXG4gICAgICBtYXAoKCkgPT4gdW5kZWZpbmVkKSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGluaXRDdXJyZW5jeShpc28/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoaXNvKSB7XG4gICAgICBjb25zdCBzeW1ib2wgPSB0aGlzLmdldEN1cnJlbmN5U3ltYm9sKCdlbi1VUycsIGlzbyk7XG4gICAgICB0aGlzLmN1cnJlbmN5U2V0dGluZ3MkLm5leHQoeyBpc28sIHN5bWJvbCB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0Rm9ybWF0dGluZ1NldHRpbmdzKCk6IEZvcm1hdHRpbmdTZXR0aW5ncyB7XG4gICAgaWYgKHRoaXMuZm9ybWF0dGluZ1NldHRpbmdzKSB7XG4gICAgICByZXR1cm4gdGhpcy5mb3JtYXR0aW5nU2V0dGluZ3M7XG4gICAgfVxuXG4gICAgY29uc3Qgc2hvcHBpbmdDYXJ0U2V0dGluZ3MgPSB0aGlzLmdldENvbmZpZ3VyYXRpb25TZXR0aW5ncygpWydzaG9wcGluZy1jYXJ0J10/LnJlZHVjZSgoYWNjLCBzZXR0aW5nKSA9PiB7XG4gICAgICByZXR1cm4geyAuLi5hY2MsIFtzZXR0aW5nLmlkXTogc2V0dGluZy5wcm9wZXJ0aWVzIH07XG4gICAgfSwge30gYXMgU2hvcHBpbmdDYXJ0U2V0dGluZ3MpO1xuICAgIGNvbnN0IGN1cnJlbmN5U2V0dGluZ3MgPSB0aGlzLmdldEN1cnJlbmN5U2V0dGluZ3MoKTtcbiAgICBjb25zdCBkYXRlRm9ybWF0ID1cbiAgICAgICh2YWxpZGF0ZURhdGVGb3JtYXQoc2hvcHBpbmdDYXJ0U2V0dGluZ3M/LkRBVEVfRk9STUFUID8/ICcnKSAmJiBzaG9wcGluZ0NhcnRTZXR0aW5ncz8uREFURV9GT1JNQVQpIHx8XG4gICAgICBERUZBVUxUX0RBVEVfRk9STUFUO1xuICAgIGNvbnN0IGRlY2ltYWxTZXBhcmF0b3IgPSBzaG9wcGluZ0NhcnRTZXR0aW5ncz8uREVDSU1BTF9TRVBBUkFUT1IgPz8gREVGQVVMVF9ERUNJTUFMX1NFUEFSQVRPUjtcbiAgICBjb25zdCB0aG91c2FuZHNTZXBhcmF0b3IgPSBzaG9wcGluZ0NhcnRTZXR0aW5ncz8uVEhPVVNBTkRTX1NFUEFSQVRPUiA/PyBERUZBVUxUX1RIT1VTQU5EU19TRVBBUkFUT1I7XG5cbiAgICByZXR1cm4ge1xuICAgICAgY3VycmVuY3lTeW1ib2w6IGN1cnJlbmN5U2V0dGluZ3Muc3ltYm9sLFxuICAgICAgZGF0ZUZvcm1hdHM6IGdldFN1cHBvcnRlZERhdGVGb3JtYXRzKGRhdGVGb3JtYXQpLFxuICAgICAgZGVjaW1hbFNlcGFyYXRvcjogKFsnLicsICcsJ10uaW5jbHVkZXMoZGVjaW1hbFNlcGFyYXRvcikgJiYgZGVjaW1hbFNlcGFyYXRvcikgfHwgREVGQVVMVF9ERUNJTUFMX1NFUEFSQVRPUixcbiAgICAgIGRlY2ltYWxzQ291bnQ6XG4gICAgICAgICghaXNOYU4oTnVtYmVyKHNob3BwaW5nQ2FydFNldHRpbmdzPy5QUklDRV9TQ0FMRSkpICYmIE51bWJlcihzaG9wcGluZ0NhcnRTZXR0aW5ncz8uUFJJQ0VfU0NBTEUpKSB8fFxuICAgICAgICBERUZBVUxUX0RFQ0lNQUxTX0NPVU5ULFxuICAgICAgdGhvdXNhbmRzU2VwYXJhdG9yOiBbJy4nLCAnLCcsICcnXS5pbmNsdWRlcyh0aG91c2FuZHNTZXBhcmF0b3IpXG4gICAgICAgID8gdGhvdXNhbmRzU2VwYXJhdG9yXG4gICAgICAgIDogREVGQVVMVF9USE9VU0FORFNfU0VQQVJBVE9SLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgZ2V0Q29uZmlndXJhdGlvblNldHRpbmdzKCk6IFJ1bnRpbWVDb25maWd1cmF0aW9uU2V0dGluZ3Mge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZ3VyYXRpb25TZXR0aW5ncyQudmFsdWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q3VycmVuY3lTZXR0aW5ncygpOiBSdW50aW1lQ3VycmVuY3lTZXR0aW5ncyB7XG4gICAgcmV0dXJuIHRoaXMuY3VycmVuY3lTZXR0aW5ncyQudmFsdWU7XG4gIH1cblxuICBwcml2YXRlIHBhcnNlQ29uZmlndXJhdGlvblNldHRpbmdzKHNldHRpbmdzOiBDb25maWd1cmF0aW9uU2V0dGluZ3NbXSk6IFJ1bnRpbWVDb25maWd1cmF0aW9uU2V0dGluZ3Mge1xuICAgIHJldHVybiBzZXR0aW5ncy5yZWR1Y2UoKGFjYzogUnVudGltZUNvbmZpZ3VyYXRpb25TZXR0aW5ncywgc2V0dGluZykgPT4ge1xuICAgICAgc3dpdGNoIChzZXR0aW5nLmtleSkge1xuICAgICAgICBjYXNlICdzaG9wcGluZy1jYXJ0JzpcbiAgICAgICAgICBhY2NbJ3Nob3BwaW5nLWNhcnQnXSA9IHBhcnNlSnNvblNhZmVseTxTaG9wcGluZ0NhcnRTZXR0aW5nW10+KHNldHRpbmcudmFsdWUsIFtdKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnbmF2aWdhdGlvbic6XG4gICAgICAgICAgYWNjLm5hdmlnYXRpb24gPSBwYXJzZUpzb25TYWZlbHk8RGljdGlvbmFyeTxib29sZWFuPj4oc2V0dGluZy52YWx1ZSwge30pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdmbG93cyc6XG4gICAgICAgICAgYWNjLmZsb3dzID0gcGFyc2VKc29uU2FmZWx5PEZsb3dbXT4oc2V0dGluZy52YWx1ZSwgW10pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIGFjY1tzZXR0aW5nLmtleV0gPSBzZXR0aW5nLnZhbHVlO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sIHt9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q3VycmVuY3lTeW1ib2wgPSAobG9jYWxlOiBzdHJpbmcsIGN1cnJlbmN5OiBzdHJpbmcpID0+IHtcbiAgICByZXR1cm4gKDApXG4gICAgICAudG9Mb2NhbGVTdHJpbmcobG9jYWxlLCB7IHN0eWxlOiAnY3VycmVuY3knLCBjdXJyZW5jeSwgbWluaW11bUZyYWN0aW9uRGlnaXRzOiAwLCBtYXhpbXVtRnJhY3Rpb25EaWdpdHM6IDAgfSlcbiAgICAgIC5yZXBsYWNlKC9cXGQvZywgJycpXG4gICAgICAudHJpbSgpO1xuICB9O1xufVxuIl19
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS1zZXR0aW5ncy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zZGsvY29yZS9zZXJ2aWNlcy9ydW50aW1lLXNldHRpbmdzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRSxPQUFPLEVBRUwseUJBQXlCLEVBQ3pCLHVCQUF1QixFQUN2QixtQkFBbUIsRUFDbkIsc0JBQXNCLEVBQ3RCLHlCQUF5QixFQUN6QiwyQkFBMkIsRUFNM0IsdUJBQXVCLEVBQ3ZCLGVBQWUsRUFDZixrQkFBa0IsR0FDbkIsTUFBTSxrQkFBa0IsQ0FBQztBQUUxQixPQUFPLEVBQUUsZUFBZSxFQUFjLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7OztBQUk3RCxNQUFNLE9BQU8sc0JBQXNCO0lBUWpDLFlBQW9CLCtCQUFnRTtRQUFoRSxvQ0FBK0IsR0FBL0IsK0JBQStCLENBQWlDO1FBUDVFLDJCQUFzQixHQUFHLElBQUksZUFBZSxDQUErQixFQUFFLENBQUMsQ0FBQztRQUMvRSxzQkFBaUIsR0FBRyxJQUFJLGVBQWUsQ0FBMEI7WUFDdkUsR0FBRyxFQUFFLHlCQUF5QjtZQUM5QixNQUFNLEVBQUUsdUJBQXVCO1NBQ2hDLENBQUMsQ0FBQztRQXdGSyxzQkFBaUIsR0FBRyxDQUFDLE1BQWMsRUFBRSxRQUFnQixFQUFFLEVBQUU7WUFDL0QsT0FBTyxDQUFDLENBQUMsQ0FBQztpQkFDUCxjQUFjLENBQUMsTUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUscUJBQXFCLEVBQUUsQ0FBQyxFQUFFLHFCQUFxQixFQUFFLENBQUMsRUFBRSxDQUFDO2lCQUMzRyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQztpQkFDbEIsSUFBSSxFQUFFLENBQUM7UUFDWixDQUFDLENBQUM7SUExRnFGLENBQUM7SUFFakYsTUFBTTtRQUNYLE9BQU8sSUFBSSxDQUFDLCtCQUErQixDQUFDLGFBQWEsRUFBRSxDQUFDLElBQUksQ0FDOUQsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLDBCQUEwQixDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQzFELEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFO1lBQzFCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQztZQUN4RCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDekQsQ0FBQyxDQUFDLEVBQ0YsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUNyQixDQUFDO0lBQ0osQ0FBQztJQUVNLFlBQVksQ0FBQyxHQUFZO1FBQzlCLElBQUksR0FBRyxFQUFFO1lBQ1AsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQztZQUNwRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7U0FDOUM7SUFDSCxDQUFDO0lBRU0scUJBQXFCO1FBQzFCLElBQUksSUFBSSxDQUFDLGtCQUFrQixFQUFFO1lBQzNCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDO1NBQ2hDO1FBRUQsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQyxlQUFlLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLEVBQUU7WUFDckcsT0FBTyxFQUFFLEdBQUcsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUN0RCxDQUFDLEVBQUUsRUFBMEIsQ0FBQyxDQUFDO1FBQy9CLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDcEQsTUFBTSxVQUFVLEdBQ2QsQ0FBQyxrQkFBa0IsQ0FBQyxvQkFBb0IsRUFBRSxXQUFXLElBQUksRUFBRSxDQUFDLElBQUksb0JBQW9CLEVBQUUsV0FBVyxDQUFDO1lBQ2xHLG1CQUFtQixDQUFDO1FBQ3RCLE1BQU0sZ0JBQWdCLEdBQUcsb0JBQW9CLEVBQUUsaUJBQWlCLENBQUM7UUFDakUsTUFBTSxrQkFBa0IsR0FBRyxvQkFBb0IsRUFBRSxtQkFBbUIsQ0FBQztRQUNyRSx3Q0FBd0M7UUFDeEMsTUFBTSxVQUFVLEdBQUcsb0JBQW9CLEVBQUUsV0FBVyxDQUFDO1FBQ3JELE1BQU0sYUFBYSxHQUNqQixVQUFVLEtBQUssSUFBSSxJQUFJLFVBQVUsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7WUFDL0YsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUM7WUFDcEIsQ0FBQyxDQUFDLHNCQUFzQixDQUFDO1FBRTdCLE9BQU87WUFDTCxjQUFjLEVBQUUsZ0JBQWdCLENBQUMsTUFBTTtZQUN2QyxXQUFXLEVBQUUsdUJBQXVCLENBQUMsVUFBVSxDQUFDO1lBQ2hELGFBQWE7WUFDYixnQkFBZ0IsRUFDZCxnQkFBZ0IsS0FBSyxTQUFTLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDO2dCQUNyRSxDQUFDLENBQUMsZ0JBQWdCO2dCQUNsQixDQUFDLENBQUMseUJBQXlCO1lBQy9CLG1FQUFtRTtZQUNuRSxrQkFBa0IsRUFDaEIsa0JBQWtCLEtBQUssU0FBUyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDO2dCQUNuRixDQUFDLENBQUMsa0JBQWtCLElBQUksRUFBRTtnQkFDMUIsQ0FBQyxDQUFDLDJCQUEyQjtTQUNsQyxDQUFDO0lBQ0osQ0FBQztJQUVNLHdCQUF3QjtRQUM3QixPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLENBQUM7SUFDM0MsQ0FBQztJQUVNLG1CQUFtQjtRQUN4QixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUM7SUFDdEMsQ0FBQztJQUVPLDBCQUEwQixDQUFDLFFBQWlDO1FBQ2xFLE9BQU8sUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQWlDLEVBQUUsT0FBTyxFQUFFLEVBQUU7WUFDcEUsUUFBUSxPQUFPLENBQUMsR0FBRyxFQUFFO2dCQUNuQixLQUFLLGVBQWU7b0JBQ2xCLEdBQUcsQ0FBQyxlQUFlLENBQUMsR0FBRyxlQUFlLENBQXdCLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7b0JBQ2pGLE1BQU07Z0JBQ1IsS0FBSyxZQUFZO29CQUNmLEdBQUcsQ0FBQyxVQUFVLEdBQUcsZUFBZSxDQUFzQixPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO29CQUN6RSxNQUFNO2dCQUNSLEtBQUssT0FBTztvQkFDVixHQUFHLENBQUMsS0FBSyxHQUFHLGVBQWUsQ0FBUyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO29CQUN2RCxNQUFNO2dCQUNSO29CQUNFLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQzthQUNwQztZQUVELE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ1QsQ0FBQzs7bUhBM0ZVLHNCQUFzQjt1SEFBdEIsc0JBQXNCLGNBRFQsTUFBTTsyRkFDbkIsc0JBQXNCO2tCQURsQyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbmZpZ3VyYXRpb25TZXR0aW5nc0FwaVNlcnZpY2UgfSBmcm9tICdAdmVsb2NlYXBwcy9hcGknO1xuaW1wb3J0IHtcbiAgQ29uZmlndXJhdGlvblNldHRpbmdzLFxuICBERUZBVUxUX0NVUlJFTkNZX0lTT19DT0RFLFxuICBERUZBVUxUX0NVUlJFTkNZX1NZTUJPTCxcbiAgREVGQVVMVF9EQVRFX0ZPUk1BVCxcbiAgREVGQVVMVF9ERUNJTUFMU19DT1VOVCxcbiAgREVGQVVMVF9ERUNJTUFMX1NFUEFSQVRPUixcbiAgREVGQVVMVF9USE9VU0FORFNfU0VQQVJBVE9SLFxuICBGbG93LFxuICBSdW50aW1lQ29uZmlndXJhdGlvblNldHRpbmdzLFxuICBSdW50aW1lQ3VycmVuY3lTZXR0aW5ncyxcbiAgU2hvcHBpbmdDYXJ0U2V0dGluZyxcbiAgU2hvcHBpbmdDYXJ0U2V0dGluZ3MsXG4gIGdldFN1cHBvcnRlZERhdGVGb3JtYXRzLFxuICBwYXJzZUpzb25TYWZlbHksXG4gIHZhbGlkYXRlRGF0ZUZvcm1hdCxcbn0gZnJvbSAnQHZlbG9jZWFwcHMvY29yZSc7XG5pbXBvcnQgeyBEaWN0aW9uYXJ5IH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgbWFwLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZvcm1hdHRpbmdTZXR0aW5ncyB9IGZyb20gJy4uL3R5cGVzJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBSdW50aW1lU2V0dGluZ3NTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBjb25maWd1cmF0aW9uU2V0dGluZ3MkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxSdW50aW1lQ29uZmlndXJhdGlvblNldHRpbmdzPih7fSk7XG4gIHByaXZhdGUgY3VycmVuY3lTZXR0aW5ncyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFJ1bnRpbWVDdXJyZW5jeVNldHRpbmdzPih7XG4gICAgaXNvOiBERUZBVUxUX0NVUlJFTkNZX0lTT19DT0RFLFxuICAgIHN5bWJvbDogREVGQVVMVF9DVVJSRU5DWV9TWU1CT0wsXG4gIH0pO1xuICBwcml2YXRlIGZvcm1hdHRpbmdTZXR0aW5ncyE6IEZvcm1hdHRpbmdTZXR0aW5ncztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbmZpZ3VyYXRpb25TZXR0aW5nc0FwaVNlcnZpY2U6IENvbmZpZ3VyYXRpb25TZXR0aW5nc0FwaVNlcnZpY2UpIHt9XG5cbiAgcHVibGljIGNyZWF0ZSgpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5jb25maWd1cmF0aW9uU2V0dGluZ3NBcGlTZXJ2aWNlLmZldGNoU2V0dGluZ3MoKS5waXBlKFxuICAgICAgbWFwKHNldHRpbmdzID0+IHRoaXMucGFyc2VDb25maWd1cmF0aW9uU2V0dGluZ3Moc2V0dGluZ3MpKSxcbiAgICAgIHRhcChjb25maWd1cmF0aW9uU2V0dGluZ3MgPT4ge1xuICAgICAgICB0aGlzLmNvbmZpZ3VyYXRpb25TZXR0aW5ncyQubmV4dChjb25maWd1cmF0aW9uU2V0dGluZ3MpO1xuICAgICAgICB0aGlzLmZvcm1hdHRpbmdTZXR0aW5ncyA9IHRoaXMuZ2V0Rm9ybWF0dGluZ1NldHRpbmdzKCk7XG4gICAgICB9KSxcbiAgICAgIG1hcCgoKSA9PiB1bmRlZmluZWQpLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgaW5pdEN1cnJlbmN5KGlzbz86IHN0cmluZyk6IHZvaWQge1xuICAgIGlmIChpc28pIHtcbiAgICAgIGNvbnN0IHN5bWJvbCA9IHRoaXMuZ2V0Q3VycmVuY3lTeW1ib2woJ2VuLVVTJywgaXNvKTtcbiAgICAgIHRoaXMuY3VycmVuY3lTZXR0aW5ncyQubmV4dCh7IGlzbywgc3ltYm9sIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXRGb3JtYXR0aW5nU2V0dGluZ3MoKTogRm9ybWF0dGluZ1NldHRpbmdzIHtcbiAgICBpZiAodGhpcy5mb3JtYXR0aW5nU2V0dGluZ3MpIHtcbiAgICAgIHJldHVybiB0aGlzLmZvcm1hdHRpbmdTZXR0aW5ncztcbiAgICB9XG5cbiAgICBjb25zdCBzaG9wcGluZ0NhcnRTZXR0aW5ncyA9IHRoaXMuZ2V0Q29uZmlndXJhdGlvblNldHRpbmdzKClbJ3Nob3BwaW5nLWNhcnQnXT8ucmVkdWNlKChhY2MsIHNldHRpbmcpID0+IHtcbiAgICAgIHJldHVybiB7IC4uLmFjYywgW3NldHRpbmcuaWRdOiBzZXR0aW5nLnByb3BlcnRpZXMgfTtcbiAgICB9LCB7fSBhcyBTaG9wcGluZ0NhcnRTZXR0aW5ncyk7XG4gICAgY29uc3QgY3VycmVuY3lTZXR0aW5ncyA9IHRoaXMuZ2V0Q3VycmVuY3lTZXR0aW5ncygpO1xuICAgIGNvbnN0IGRhdGVGb3JtYXQgPVxuICAgICAgKHZhbGlkYXRlRGF0ZUZvcm1hdChzaG9wcGluZ0NhcnRTZXR0aW5ncz8uREFURV9GT1JNQVQgPz8gJycpICYmIHNob3BwaW5nQ2FydFNldHRpbmdzPy5EQVRFX0ZPUk1BVCkgfHxcbiAgICAgIERFRkFVTFRfREFURV9GT1JNQVQ7XG4gICAgY29uc3QgZGVjaW1hbFNlcGFyYXRvciA9IHNob3BwaW5nQ2FydFNldHRpbmdzPy5ERUNJTUFMX1NFUEFSQVRPUjtcbiAgICBjb25zdCB0aG91c2FuZHNTZXBhcmF0b3IgPSBzaG9wcGluZ0NhcnRTZXR0aW5ncz8uVEhPVVNBTkRTX1NFUEFSQVRPUjtcbiAgICAvLyB0aGUgbnVtYmVyIG9mIGRlY2ltYWwgcGxhY2VzIGNhbiBiZSAwXG4gICAgY29uc3QgcHJpY2VTY2FsZSA9IHNob3BwaW5nQ2FydFNldHRpbmdzPy5QUklDRV9TQ0FMRTtcbiAgICBjb25zdCBkZWNpbWFsc0NvdW50ID1cbiAgICAgIHByaWNlU2NhbGUgIT09IG51bGwgJiYgcHJpY2VTY2FsZSAhPT0gJycgJiYgIWlzTmFOKE51bWJlcihwcmljZVNjYWxlKSkgJiYgTnVtYmVyKHByaWNlU2NhbGUpID49IDBcbiAgICAgICAgPyBOdW1iZXIocHJpY2VTY2FsZSlcbiAgICAgICAgOiBERUZBVUxUX0RFQ0lNQUxTX0NPVU5UO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGN1cnJlbmN5U3ltYm9sOiBjdXJyZW5jeVNldHRpbmdzLnN5bWJvbCxcbiAgICAgIGRhdGVGb3JtYXRzOiBnZXRTdXBwb3J0ZWREYXRlRm9ybWF0cyhkYXRlRm9ybWF0KSxcbiAgICAgIGRlY2ltYWxzQ291bnQsXG4gICAgICBkZWNpbWFsU2VwYXJhdG9yOlxuICAgICAgICBkZWNpbWFsU2VwYXJhdG9yICE9PSB1bmRlZmluZWQgJiYgWycuJywgJywnXS5pbmNsdWRlcyhkZWNpbWFsU2VwYXJhdG9yKVxuICAgICAgICAgID8gZGVjaW1hbFNlcGFyYXRvclxuICAgICAgICAgIDogREVGQVVMVF9ERUNJTUFMX1NFUEFSQVRPUixcbiAgICAgIC8vIHRob3VzYW5kcyBzZXBhcmF0b3IgY2FuIGJlIGEgYmxhbmsgdmFsdWUsIHNvIGl0IGNhbiBhbHNvIGJlIG51bGxcbiAgICAgIHRob3VzYW5kc1NlcGFyYXRvcjpcbiAgICAgICAgdGhvdXNhbmRzU2VwYXJhdG9yICE9PSB1bmRlZmluZWQgJiYgWycuJywgJywnLCAnJywgbnVsbF0uaW5jbHVkZXModGhvdXNhbmRzU2VwYXJhdG9yKVxuICAgICAgICAgID8gdGhvdXNhbmRzU2VwYXJhdG9yIHx8ICcnXG4gICAgICAgICAgOiBERUZBVUxUX1RIT1VTQU5EU19TRVBBUkFUT1IsXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDb25maWd1cmF0aW9uU2V0dGluZ3MoKTogUnVudGltZUNvbmZpZ3VyYXRpb25TZXR0aW5ncyB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlndXJhdGlvblNldHRpbmdzJC52YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDdXJyZW5jeVNldHRpbmdzKCk6IFJ1bnRpbWVDdXJyZW5jeVNldHRpbmdzIHtcbiAgICByZXR1cm4gdGhpcy5jdXJyZW5jeVNldHRpbmdzJC52YWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgcGFyc2VDb25maWd1cmF0aW9uU2V0dGluZ3Moc2V0dGluZ3M6IENvbmZpZ3VyYXRpb25TZXR0aW5nc1tdKTogUnVudGltZUNvbmZpZ3VyYXRpb25TZXR0aW5ncyB7XG4gICAgcmV0dXJuIHNldHRpbmdzLnJlZHVjZSgoYWNjOiBSdW50aW1lQ29uZmlndXJhdGlvblNldHRpbmdzLCBzZXR0aW5nKSA9PiB7XG4gICAgICBzd2l0Y2ggKHNldHRpbmcua2V5KSB7XG4gICAgICAgIGNhc2UgJ3Nob3BwaW5nLWNhcnQnOlxuICAgICAgICAgIGFjY1snc2hvcHBpbmctY2FydCddID0gcGFyc2VKc29uU2FmZWx5PFNob3BwaW5nQ2FydFNldHRpbmdbXT4oc2V0dGluZy52YWx1ZSwgW10pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICduYXZpZ2F0aW9uJzpcbiAgICAgICAgICBhY2MubmF2aWdhdGlvbiA9IHBhcnNlSnNvblNhZmVseTxEaWN0aW9uYXJ5PGJvb2xlYW4+PihzZXR0aW5nLnZhbHVlLCB7fSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2Zsb3dzJzpcbiAgICAgICAgICBhY2MuZmxvd3MgPSBwYXJzZUpzb25TYWZlbHk8Rmxvd1tdPihzZXR0aW5nLnZhbHVlLCBbXSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgYWNjW3NldHRpbmcua2V5XSA9IHNldHRpbmcudmFsdWU7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSwge30pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDdXJyZW5jeVN5bWJvbCA9IChsb2NhbGU6IHN0cmluZywgY3VycmVuY3k6IHN0cmluZykgPT4ge1xuICAgIHJldHVybiAoMClcbiAgICAgIC50b0xvY2FsZVN0cmluZyhsb2NhbGUsIHsgc3R5bGU6ICdjdXJyZW5jeScsIGN1cnJlbmN5LCBtaW5pbXVtRnJhY3Rpb25EaWdpdHM6IDAsIG1heGltdW1GcmFjdGlvbkRpZ2l0czogMCB9KVxuICAgICAgLnJlcGxhY2UoL1xcZC9nLCAnJylcbiAgICAgIC50cmltKCk7XG4gIH07XG59XG4iXX0=
@@ -1,6 +1,6 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { InjectionToken, Injectable, 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 { 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';
5
5
  import { filter, tap, map, first, switchMap, skip, take, shareReplay, catchError, finalize } from 'rxjs/operators';
6
6
  import * as i1 from '@veloceapps/api';
@@ -1478,7 +1478,7 @@ class RuntimeSettingsService {
1478
1478
  }
1479
1479
  }
1480
1480
  getFormattingSettings() {
1481
- var _a, _b, _c, _d;
1481
+ var _a, _b;
1482
1482
  if (this.formattingSettings) {
1483
1483
  return this.formattingSettings;
1484
1484
  }
@@ -1488,16 +1488,23 @@ class RuntimeSettingsService {
1488
1488
  const currencySettings = this.getCurrencySettings();
1489
1489
  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)) ||
1490
1490
  DEFAULT_DATE_FORMAT;
1491
- const decimalSeparator = (_c = shoppingCartSettings === null || shoppingCartSettings === void 0 ? void 0 : shoppingCartSettings.DECIMAL_SEPARATOR) !== null && _c !== void 0 ? _c : DEFAULT_DECIMAL_SEPARATOR;
1492
- const thousandsSeparator = (_d = shoppingCartSettings === null || shoppingCartSettings === void 0 ? void 0 : shoppingCartSettings.THOUSANDS_SEPARATOR) !== null && _d !== void 0 ? _d : DEFAULT_THOUSANDS_SEPARATOR;
1491
+ const decimalSeparator = shoppingCartSettings === null || shoppingCartSettings === void 0 ? void 0 : shoppingCartSettings.DECIMAL_SEPARATOR;
1492
+ const thousandsSeparator = shoppingCartSettings === null || shoppingCartSettings === void 0 ? void 0 : shoppingCartSettings.THOUSANDS_SEPARATOR;
1493
+ // the number of decimal places can be 0
1494
+ const priceScale = shoppingCartSettings === null || shoppingCartSettings === void 0 ? void 0 : shoppingCartSettings.PRICE_SCALE;
1495
+ const decimalsCount = priceScale !== null && priceScale !== '' && !isNaN(Number(priceScale)) && Number(priceScale) >= 0
1496
+ ? Number(priceScale)
1497
+ : DEFAULT_DECIMALS_COUNT;
1493
1498
  return {
1494
1499
  currencySymbol: currencySettings.symbol,
1495
1500
  dateFormats: getSupportedDateFormats(dateFormat),
1496
- decimalSeparator: (['.', ','].includes(decimalSeparator) && decimalSeparator) || DEFAULT_DECIMAL_SEPARATOR,
1497
- decimalsCount: (!isNaN(Number(shoppingCartSettings === null || shoppingCartSettings === void 0 ? void 0 : shoppingCartSettings.PRICE_SCALE)) && Number(shoppingCartSettings === null || shoppingCartSettings === void 0 ? void 0 : shoppingCartSettings.PRICE_SCALE)) ||
1498
- DEFAULT_DECIMALS_COUNT,
1499
- thousandsSeparator: ['.', ',', ''].includes(thousandsSeparator)
1500
- ? thousandsSeparator
1501
+ decimalsCount,
1502
+ decimalSeparator: decimalSeparator !== undefined && ['.', ','].includes(decimalSeparator)
1503
+ ? decimalSeparator
1504
+ : DEFAULT_DECIMAL_SEPARATOR,
1505
+ // thousands separator can be a blank value, so it can also be null
1506
+ thousandsSeparator: thousandsSeparator !== undefined && ['.', ',', '', null].includes(thousandsSeparator)
1507
+ ? thousandsSeparator || ''
1501
1508
  : DEFAULT_THOUSANDS_SEPARATOR,
1502
1509
  };
1503
1510
  }