@salespark/toolkit 2.1.1 → 2.1.2

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/dist/index.d.cts CHANGED
@@ -358,6 +358,19 @@ declare function randomDigits(length?: number, options?: {
358
358
  * @deprecated Use `randomDigits` instead.
359
359
  */
360
360
  declare const otp: typeof randomDigits;
361
+ /******************************************************
362
+ * ##: Decimal Number Formatter
363
+ * Formats a number with specified decimal places, handling comma/dot normalization.
364
+ *
365
+ * Intelligently handles European number formats (1.234,56) and US formats (1,234.56).
366
+ * Converts strings to numbers and applies decimal formatting.
367
+ * @param {number|string|null|undefined} value Number value to format
368
+ * @param {number} decimals Number of decimal places (default: 2)
369
+ * @returns {string} Formatted number string with specified decimals
370
+ * History:
371
+ * 16-10-2025: Created
372
+ ****************************************************/
373
+ declare const formatDecimalNumber: (value: number | string | null | undefined, decimals?: number) => string;
361
374
 
362
375
  /******************************************************
363
376
  * ##: Debounce Function
@@ -681,4 +694,4 @@ declare const assessSecurityRisks: (risks: SecurityRisk[]) => {
681
694
  declare const isBrowser: boolean;
682
695
  declare const isNode: boolean;
683
696
 
684
- export { type SecurityCheckResult, type SecurityRisk, addSpaceBetweenNumbers, addThousandsSpace, areArraysDeepEqualUnordered, areArraysEqual, assessSecurityRisks, basicSanitize, checkMarkdownSecurity, chunk, clamp, cleanObject, compact, currencyToSymbol, debounce, deburr, delay, difference, fill, flatten, flattenDepth, flattenDepthBase, flattenOnce, formatBytes, formatCurrency, getStringSimilarity, groupBy, hasNilOrEmpty, humanFileSize, intersection, isBrowser, isFlattenable, isNil, isNilEmptyOrZeroLen, isNilOrEmpty, isNilOrNaN, isNilOrZeroLen, isNilText, isNilTextOrEmpty, isNode, isNullOrUndefined, isNullOrUndefinedEmptyOrZero, isNullOrUndefinedInArray, isNullOrUndefinedOrNaN, isNullOrUndefinedTextInc, isNullUndefinedOrEmpty, isNullUndefinedOrEmptyEnforced, isNullUndefinedOrZero, isPTTaxId, isValidIBAN, isValidPTTaxId, objectToString, omit, otp, parseName, parseToBool, parseToNumber, pick, pluck, pushAll, randomDigits, removeDiacritics, round, safeParseInt, sanitize, sanitizeMarkdown, shuffle, slugify, sortBy, stringSimilarity, symbolToCurrency, throttle, toBool, toInteger, toNumber, uniq, uniqBy };
697
+ export { type SecurityCheckResult, type SecurityRisk, addSpaceBetweenNumbers, addThousandsSpace, areArraysDeepEqualUnordered, areArraysEqual, assessSecurityRisks, basicSanitize, checkMarkdownSecurity, chunk, clamp, cleanObject, compact, currencyToSymbol, debounce, deburr, delay, difference, fill, flatten, flattenDepth, flattenDepthBase, flattenOnce, formatBytes, formatCurrency, formatDecimalNumber, getStringSimilarity, groupBy, hasNilOrEmpty, humanFileSize, intersection, isBrowser, isFlattenable, isNil, isNilEmptyOrZeroLen, isNilOrEmpty, isNilOrNaN, isNilOrZeroLen, isNilText, isNilTextOrEmpty, isNode, isNullOrUndefined, isNullOrUndefinedEmptyOrZero, isNullOrUndefinedInArray, isNullOrUndefinedOrNaN, isNullOrUndefinedTextInc, isNullUndefinedOrEmpty, isNullUndefinedOrEmptyEnforced, isNullUndefinedOrZero, isPTTaxId, isValidIBAN, isValidPTTaxId, objectToString, omit, otp, parseName, parseToBool, parseToNumber, pick, pluck, pushAll, randomDigits, removeDiacritics, round, safeParseInt, sanitize, sanitizeMarkdown, shuffle, slugify, sortBy, stringSimilarity, symbolToCurrency, throttle, toBool, toInteger, toNumber, uniq, uniqBy };
package/dist/index.d.ts CHANGED
@@ -358,6 +358,19 @@ declare function randomDigits(length?: number, options?: {
358
358
  * @deprecated Use `randomDigits` instead.
359
359
  */
360
360
  declare const otp: typeof randomDigits;
361
+ /******************************************************
362
+ * ##: Decimal Number Formatter
363
+ * Formats a number with specified decimal places, handling comma/dot normalization.
364
+ *
365
+ * Intelligently handles European number formats (1.234,56) and US formats (1,234.56).
366
+ * Converts strings to numbers and applies decimal formatting.
367
+ * @param {number|string|null|undefined} value Number value to format
368
+ * @param {number} decimals Number of decimal places (default: 2)
369
+ * @returns {string} Formatted number string with specified decimals
370
+ * History:
371
+ * 16-10-2025: Created
372
+ ****************************************************/
373
+ declare const formatDecimalNumber: (value: number | string | null | undefined, decimals?: number) => string;
361
374
 
362
375
  /******************************************************
363
376
  * ##: Debounce Function
@@ -681,4 +694,4 @@ declare const assessSecurityRisks: (risks: SecurityRisk[]) => {
681
694
  declare const isBrowser: boolean;
682
695
  declare const isNode: boolean;
683
696
 
684
- export { type SecurityCheckResult, type SecurityRisk, addSpaceBetweenNumbers, addThousandsSpace, areArraysDeepEqualUnordered, areArraysEqual, assessSecurityRisks, basicSanitize, checkMarkdownSecurity, chunk, clamp, cleanObject, compact, currencyToSymbol, debounce, deburr, delay, difference, fill, flatten, flattenDepth, flattenDepthBase, flattenOnce, formatBytes, formatCurrency, getStringSimilarity, groupBy, hasNilOrEmpty, humanFileSize, intersection, isBrowser, isFlattenable, isNil, isNilEmptyOrZeroLen, isNilOrEmpty, isNilOrNaN, isNilOrZeroLen, isNilText, isNilTextOrEmpty, isNode, isNullOrUndefined, isNullOrUndefinedEmptyOrZero, isNullOrUndefinedInArray, isNullOrUndefinedOrNaN, isNullOrUndefinedTextInc, isNullUndefinedOrEmpty, isNullUndefinedOrEmptyEnforced, isNullUndefinedOrZero, isPTTaxId, isValidIBAN, isValidPTTaxId, objectToString, omit, otp, parseName, parseToBool, parseToNumber, pick, pluck, pushAll, randomDigits, removeDiacritics, round, safeParseInt, sanitize, sanitizeMarkdown, shuffle, slugify, sortBy, stringSimilarity, symbolToCurrency, throttle, toBool, toInteger, toNumber, uniq, uniqBy };
697
+ export { type SecurityCheckResult, type SecurityRisk, addSpaceBetweenNumbers, addThousandsSpace, areArraysDeepEqualUnordered, areArraysEqual, assessSecurityRisks, basicSanitize, checkMarkdownSecurity, chunk, clamp, cleanObject, compact, currencyToSymbol, debounce, deburr, delay, difference, fill, flatten, flattenDepth, flattenDepthBase, flattenOnce, formatBytes, formatCurrency, formatDecimalNumber, getStringSimilarity, groupBy, hasNilOrEmpty, humanFileSize, intersection, isBrowser, isFlattenable, isNil, isNilEmptyOrZeroLen, isNilOrEmpty, isNilOrNaN, isNilOrZeroLen, isNilText, isNilTextOrEmpty, isNode, isNullOrUndefined, isNullOrUndefinedEmptyOrZero, isNullOrUndefinedInArray, isNullOrUndefinedOrNaN, isNullOrUndefinedTextInc, isNullUndefinedOrEmpty, isNullUndefinedOrEmptyEnforced, isNullUndefinedOrZero, isPTTaxId, isValidIBAN, isValidPTTaxId, objectToString, omit, otp, parseName, parseToBool, parseToNumber, pick, pluck, pushAll, randomDigits, removeDiacritics, round, safeParseInt, sanitize, sanitizeMarkdown, shuffle, slugify, sortBy, stringSimilarity, symbolToCurrency, throttle, toBool, toInteger, toNumber, uniq, uniqBy };
package/dist/index.js CHANGED
@@ -308,6 +308,30 @@ function randomDigits(length = 6, options) {
308
308
  return out;
309
309
  }
310
310
  var otp = randomDigits;
311
+ var formatDecimalNumber = (value, decimals = 2) => {
312
+ try {
313
+ let processedValue = value ?? 0;
314
+ if (typeof processedValue === "string") {
315
+ const trimmed = processedValue.trim();
316
+ if (trimmed.includes(",") && trimmed.includes(".")) {
317
+ const lastComma = trimmed.lastIndexOf(",");
318
+ const lastDot = trimmed.lastIndexOf(".");
319
+ processedValue = lastComma > lastDot ? trimmed.replace(/\./g, "").replace(",", ".") : trimmed.replace(/,/g, "");
320
+ } else if (trimmed.includes(",")) {
321
+ processedValue = trimmed.replace(/,/g, ".");
322
+ } else {
323
+ processedValue = trimmed;
324
+ }
325
+ }
326
+ const numValue = parseFloat(String(processedValue));
327
+ if (isNaN(numValue)) {
328
+ return 0 .toFixed(Math.max(0, Math.floor(decimals)));
329
+ }
330
+ return numValue.toFixed(Math.max(0, Math.floor(decimals)));
331
+ } catch (error) {
332
+ return 0 .toFixed(Math.max(0, Math.floor(decimals)));
333
+ }
334
+ };
311
335
 
312
336
  // src/utils/func.ts
313
337
  function debounce(fn, wait = 250) {
@@ -1590,6 +1614,6 @@ var assessSecurityRisks = (risks) => {
1590
1614
  var isBrowser = typeof globalThis !== "undefined" && typeof globalThis.document !== "undefined";
1591
1615
  var isNode = typeof process !== "undefined" && !!process.versions?.node;
1592
1616
 
1593
- export { addSpaceBetweenNumbers, addThousandsSpace, areArraysDeepEqualUnordered, areArraysEqual, assessSecurityRisks, basicSanitize, checkMarkdownSecurity, chunk, clamp, cleanObject, compact, currencyToSymbol, debounce, deburr, delay, difference, fill, flatten, flattenDepth, flattenDepthBase, flattenOnce, formatBytes, formatCurrency, getStringSimilarity, groupBy, hasNilOrEmpty, humanFileSize, intersection, isBrowser, isFlattenable, isNil, isNilEmptyOrZeroLen, isNilOrEmpty, isNilOrNaN, isNilOrZeroLen, isNilText, isNilTextOrEmpty, isNode, isNullOrUndefined, isNullOrUndefinedEmptyOrZero, isNullOrUndefinedInArray, isNullOrUndefinedOrNaN, isNullOrUndefinedTextInc, isNullUndefinedOrEmpty, isNullUndefinedOrEmptyEnforced, isNullUndefinedOrZero, isPTTaxId, isValidIBAN, isValidPTTaxId, objectToString, omit, otp, parseName, parseToBool, parseToNumber, pick, pluck, pushAll, randomDigits, removeDiacritics, round, safeParseInt, sanitize, sanitizeMarkdown, shuffle, slugify, sortBy, stringSimilarity, symbolToCurrency, throttle, toBool, toInteger, toNumber, uniq, uniqBy };
1617
+ export { addSpaceBetweenNumbers, addThousandsSpace, areArraysDeepEqualUnordered, areArraysEqual, assessSecurityRisks, basicSanitize, checkMarkdownSecurity, chunk, clamp, cleanObject, compact, currencyToSymbol, debounce, deburr, delay, difference, fill, flatten, flattenDepth, flattenDepthBase, flattenOnce, formatBytes, formatCurrency, formatDecimalNumber, getStringSimilarity, groupBy, hasNilOrEmpty, humanFileSize, intersection, isBrowser, isFlattenable, isNil, isNilEmptyOrZeroLen, isNilOrEmpty, isNilOrNaN, isNilOrZeroLen, isNilText, isNilTextOrEmpty, isNode, isNullOrUndefined, isNullOrUndefinedEmptyOrZero, isNullOrUndefinedInArray, isNullOrUndefinedOrNaN, isNullOrUndefinedTextInc, isNullUndefinedOrEmpty, isNullUndefinedOrEmptyEnforced, isNullUndefinedOrZero, isPTTaxId, isValidIBAN, isValidPTTaxId, objectToString, omit, otp, parseName, parseToBool, parseToNumber, pick, pluck, pushAll, randomDigits, removeDiacritics, round, safeParseInt, sanitize, sanitizeMarkdown, shuffle, slugify, sortBy, stringSimilarity, symbolToCurrency, throttle, toBool, toInteger, toNumber, uniq, uniqBy };
1594
1618
  //# sourceMappingURL=index.js.map
1595
1619
  //# sourceMappingURL=index.js.map