@eternl/formats 0.9.15 → 0.9.16

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.
Files changed (51) hide show
  1. package/LICENSE +177 -0
  2. package/README.md +3 -3
  3. package/dist/index.cjs +810 -0
  4. package/dist/index.cjs.map +1 -0
  5. package/dist/index.d.cts +112 -0
  6. package/dist/index.d.mts +112 -0
  7. package/dist/index.mjs +759 -0
  8. package/dist/index.mjs.map +1 -0
  9. package/package.json +23 -35
  10. package/dist/cjs/constants.js +0 -22
  11. package/dist/cjs/csv.js +0 -98
  12. package/dist/cjs/date.js +0 -70
  13. package/dist/cjs/display.js +0 -556
  14. package/dist/cjs/errors.js +0 -48
  15. package/dist/cjs/index.js +0 -31
  16. package/dist/cjs/internal/intl-cache.js +0 -92
  17. package/dist/cjs/internal/locale.js +0 -9
  18. package/dist/cjs/internal/numeric.js +0 -167
  19. package/dist/cjs/package.json +0 -3
  20. package/dist/cjs/types.js +0 -16
  21. package/dist/esm/constants.js +0 -20
  22. package/dist/esm/constants.js.map +0 -1
  23. package/dist/esm/csv.js +0 -92
  24. package/dist/esm/csv.js.map +0 -1
  25. package/dist/esm/date.js +0 -66
  26. package/dist/esm/date.js.map +0 -1
  27. package/dist/esm/display.js +0 -545
  28. package/dist/esm/display.js.map +0 -1
  29. package/dist/esm/errors.js +0 -42
  30. package/dist/esm/errors.js.map +0 -1
  31. package/dist/esm/index.js +0 -6
  32. package/dist/esm/index.js.map +0 -1
  33. package/dist/esm/internal/intl-cache.js +0 -87
  34. package/dist/esm/internal/intl-cache.js.map +0 -1
  35. package/dist/esm/internal/locale.js +0 -6
  36. package/dist/esm/internal/locale.js.map +0 -1
  37. package/dist/esm/internal/numeric.js +0 -157
  38. package/dist/esm/internal/numeric.js.map +0 -1
  39. package/dist/esm/package.json +0 -3
  40. package/dist/esm/types.js +0 -14
  41. package/dist/esm/types.js.map +0 -1
  42. package/dist/types/constants.d.ts +0 -20
  43. package/dist/types/csv.d.ts +0 -5
  44. package/dist/types/date.d.ts +0 -3
  45. package/dist/types/display.d.ts +0 -7
  46. package/dist/types/errors.d.ts +0 -21
  47. package/dist/types/index.d.ts +0 -6
  48. package/dist/types/internal/intl-cache.d.ts +0 -17
  49. package/dist/types/internal/locale.d.ts +0 -1
  50. package/dist/types/internal/numeric.d.ts +0 -19
  51. package/dist/types/types.d.ts +0 -59
@@ -1,545 +0,0 @@
1
- import Big from 'big.js';
2
- import { COMPACT_ORDER, DEFAULT_SIGN_MINUS, DEFAULT_SIGN_PLUS, DISPLAY_SIGN_MINUS, DISPLAY_SIGN_NONE, DISPLAY_SIGN_PLUS, STYLE_CURRENCY, STYLE_DECIMAL, STYLE_PERCENT } from './constants';
3
- import { FormatError, toError } from './errors';
4
- import { applyGrouping, computeNumericParts, normalizeNumeric } from './internal/numeric';
5
- import { resolveLocale } from './internal/locale';
6
- import { getNumberFormatPattern } from './internal/intl-cache';
7
- import { SIGN_DISPLAYS } from './types';
8
- const defaultCompactThresholds = {
9
- K: new Big(1000),
10
- M: new Big(1000000),
11
- B: new Big(1000000000),
12
- T: new Big(1000000000000)
13
- };
14
- const defaultCompactSuffixes = {
15
- K: 'K',
16
- M: 'M',
17
- B: 'B',
18
- T: 'T'
19
- };
20
- const compactThresholdCache = new WeakMap();
21
- const COMPACT_DECIMAL_BUFFER = 12;
22
- const SUBSCRIPT_DIGITS = [
23
- '₀',
24
- '₁',
25
- '₂',
26
- '₃',
27
- '₄',
28
- '₅',
29
- '₆',
30
- '₇',
31
- '₈',
32
- '₉'
33
- ];
34
- const SUBSCRIPT_TO_DIGIT = SUBSCRIPT_DIGITS.reduce((acc, digit, index) => {
35
- acc[digit] = index.toString();
36
- return acc;
37
- }, {});
38
- const toSubscriptNumber = (value) => value
39
- .toString()
40
- .split('')
41
- .map((digit) => SUBSCRIPT_DIGITS[digit.charCodeAt(0) - 48])
42
- .join('');
43
- const expandSubscriptDigits = (value) => {
44
- let result = '';
45
- for (let index = 0; index < value.length; index += 1) {
46
- const char = value[index];
47
- const mapped = SUBSCRIPT_TO_DIGIT[char];
48
- if (mapped === undefined) {
49
- result += char;
50
- continue;
51
- }
52
- let subscriptBuffer = mapped;
53
- while (index + 1 < value.length) {
54
- const nextChar = value[index + 1];
55
- const nextMapped = SUBSCRIPT_TO_DIGIT[nextChar];
56
- if (nextMapped === undefined) {
57
- break;
58
- }
59
- subscriptBuffer += nextMapped;
60
- index += 1;
61
- }
62
- const zeroCount = Number(subscriptBuffer);
63
- if (Number.isNaN(zeroCount) || zeroCount <= 0) {
64
- continue;
65
- }
66
- result += '0'.repeat(zeroCount);
67
- }
68
- return result;
69
- };
70
- const compactFractionLeadingZeros = (fraction) => {
71
- const match = /^(0{2,})(.+)$/.exec(fraction);
72
- if (!match) {
73
- return fraction;
74
- }
75
- const [, zeros, remainder] = match;
76
- if (!remainder || /^0+$/.test(remainder)) {
77
- return fraction;
78
- }
79
- const annotation = toSubscriptNumber(zeros.length - 1);
80
- return `${zeros[0]}${annotation}${remainder}`;
81
- };
82
- const resolveSignKind = (isNegative, isZero, signDisplay, forceSign) => {
83
- const mode = signDisplay ?? (forceSign ? SIGN_DISPLAYS.always : SIGN_DISPLAYS.auto);
84
- switch (mode) {
85
- case SIGN_DISPLAYS.always: return isNegative ? DISPLAY_SIGN_MINUS : DISPLAY_SIGN_PLUS;
86
- case SIGN_DISPLAYS.exceptZero: return isNegative ? DISPLAY_SIGN_MINUS : (isZero ? DISPLAY_SIGN_NONE : DISPLAY_SIGN_PLUS);
87
- case SIGN_DISPLAYS.never: return DISPLAY_SIGN_NONE;
88
- case SIGN_DISPLAYS.negative: return isNegative ? DISPLAY_SIGN_MINUS : DISPLAY_SIGN_NONE;
89
- case SIGN_DISPLAYS.auto:
90
- default: return isNegative ? DISPLAY_SIGN_MINUS : DISPLAY_SIGN_NONE;
91
- }
92
- };
93
- const resolveCurrencyToken = (template, options) => {
94
- const code = options.currencyCode?.toUpperCase() ?? '';
95
- if (options.useSymbol === false) {
96
- return { value: code, fromCustom: false };
97
- }
98
- const custom = code ? options.customSymbols?.[code] : undefined;
99
- if (custom) {
100
- return { value: custom, fromCustom: true };
101
- }
102
- if (template && template !== code) {
103
- return { value: template, fromCustom: false };
104
- }
105
- return { value: code, fromCustom: false };
106
- };
107
- const getNormalizedThreshold = (options, unit) => {
108
- const overrides = options.compactThresholds;
109
- if (!overrides || overrides[unit] === undefined) {
110
- return undefined;
111
- }
112
- let cache = compactThresholdCache.get(options);
113
- if (!cache) {
114
- cache = new Map();
115
- compactThresholdCache.set(options, cache);
116
- }
117
- let normalized = cache.get(unit);
118
- if (!normalized) {
119
- normalized = normalizeNumeric(overrides[unit], true);
120
- cache.set(unit, normalized);
121
- }
122
- return normalized;
123
- };
124
- const resolveCompact = (value, options, enabled) => {
125
- if (!enabled) {
126
- return { value };
127
- }
128
- const abs = value.abs();
129
- for (const unit of COMPACT_ORDER) {
130
- const overrideThreshold = getNormalizedThreshold(options, unit);
131
- const threshold = overrideThreshold ?? getDefaultCompactThreshold(unit);
132
- if (abs.gte(threshold)) {
133
- const suffix = options.compactSuffixes?.[unit] ?? getDefaultCompactSuffix(unit);
134
- const scaled = threshold.eq(0) ? value : value.div(threshold);
135
- return { value: scaled, suffix };
136
- }
137
- }
138
- return { value };
139
- };
140
- const getDefaultCompactThreshold = (unit) => {
141
- return defaultCompactThresholds[unit];
142
- };
143
- const getDefaultCompactSuffix = (unit) => {
144
- return defaultCompactSuffixes[unit];
145
- };
146
- const buildNumberFormatOptions = (options, style) => {
147
- const nfOptions = {
148
- style,
149
- useGrouping: options.useGrouping !== false
150
- };
151
- if (options.signDisplay && options.signDisplay !== SIGN_DISPLAYS.negative) {
152
- nfOptions.signDisplay = options.signDisplay;
153
- }
154
- else if (!options.signDisplay && options.forceSign) {
155
- nfOptions.signDisplay = SIGN_DISPLAYS.always;
156
- }
157
- if (options.minDecimals !== undefined) {
158
- nfOptions.minimumFractionDigits = options.minDecimals;
159
- }
160
- if (options.maxDecimals !== undefined) {
161
- nfOptions.maximumFractionDigits = options.maxDecimals;
162
- }
163
- if (style === STYLE_CURRENCY && options.currencyCode) {
164
- nfOptions.currency = options.currencyCode;
165
- nfOptions.currencyDisplay = options.useSymbol === false ? 'code' : 'symbol';
166
- }
167
- return nfOptions;
168
- };
169
- const formatFromPattern = (options, style, integerPart, fractionPart, sign, pattern, suffix, currencyOverride, currencyOverrideIsCustom) => {
170
- const parts = sign === DISPLAY_SIGN_MINUS ? pattern.negative : pattern.positive;
171
- const useGrouping = options.useGrouping !== false;
172
- const groupedInteger = applyGrouping(integerPart, {
173
- separator: pattern.groupSeparator,
174
- primary: pattern.grouping.primary,
175
- secondary: pattern.grouping.secondary
176
- }, useGrouping);
177
- const hasFraction = fractionPart.length > 0;
178
- let result = '';
179
- let integerInjected = false;
180
- let currencyMeta;
181
- let previousType;
182
- let suffixInjected = false;
183
- const appendSuffix = () => {
184
- if (!suffix || suffixInjected) {
185
- return;
186
- }
187
- result += suffix;
188
- suffixInjected = true;
189
- };
190
- const stripTrailingWhitespace = () => {
191
- if (!result) {
192
- return;
193
- }
194
- const trimmed = result.replace(/\s+$/gu, '');
195
- if (trimmed !== result) {
196
- result = trimmed;
197
- }
198
- };
199
- for (const part of parts) {
200
- switch (part.type) {
201
- case 'integer': {
202
- if (!integerInjected) {
203
- result += groupedInteger;
204
- integerInjected = true;
205
- if (!hasFraction) {
206
- appendSuffix();
207
- }
208
- }
209
- break;
210
- }
211
- case 'group':
212
- break;
213
- case 'decimal': {
214
- if (hasFraction) {
215
- result += pattern.decimalSeparator;
216
- }
217
- break;
218
- }
219
- case 'fraction': {
220
- if (hasFraction) {
221
- result += fractionPart;
222
- appendSuffix();
223
- }
224
- break;
225
- }
226
- case 'minusSign': {
227
- if (sign === DISPLAY_SIGN_MINUS) {
228
- result += pattern.minusSign ?? part.value ?? DEFAULT_SIGN_MINUS;
229
- }
230
- break;
231
- }
232
- case 'plusSign': {
233
- if (sign === DISPLAY_SIGN_PLUS) {
234
- result += pattern.plusSign ?? part.value ?? DEFAULT_SIGN_PLUS;
235
- }
236
- break;
237
- }
238
- case 'currency': {
239
- if (integerInjected) {
240
- appendSuffix();
241
- }
242
- if (currencyOverride !== undefined) {
243
- currencyMeta = {
244
- value: currencyOverride,
245
- fromCustom: currencyOverrideIsCustom ?? false
246
- };
247
- }
248
- else {
249
- currencyMeta = currencyMeta ?? resolveCurrencyToken(part.value, options);
250
- }
251
- result += currencyMeta.value;
252
- break;
253
- }
254
- case 'percentSign': {
255
- stripTrailingWhitespace();
256
- result += part.value;
257
- break;
258
- }
259
- case 'literal': {
260
- if (previousType === 'currency' && currencyMeta?.fromCustom && /^\s+$/.test(part.value)) {
261
- break;
262
- }
263
- result += part.value;
264
- break;
265
- }
266
- default: {
267
- result += part.value;
268
- break;
269
- }
270
- }
271
- previousType = part.type;
272
- }
273
- appendSuffix();
274
- return result;
275
- };
276
- const resolveDisplayStyle = (options, overrideStyle) => {
277
- const style = overrideStyle ?? options.style ?? STYLE_DECIMAL;
278
- if (style === STYLE_CURRENCY && !options.currencyCode) {
279
- throw toError(FormatError.MissingCurrencyCode);
280
- }
281
- return style;
282
- };
283
- const formatDisplayInternal = (value, options, styleOverride, forceCompact) => {
284
- const style = resolveDisplayStyle(options, styleOverride);
285
- const base = normalizeNumeric(value);
286
- const percentAdjusted = style === STYLE_PERCENT ? base.times(100) : base;
287
- const { value: scaled, suffix } = resolveCompact(percentAdjusted, options, forceCompact ?? options.compact === true);
288
- const numericParts = computeNumericParts(scaled, options);
289
- const sign = resolveSignKind(numericParts.isNegative, numericParts.isZero, options.signDisplay, options.forceSign);
290
- let integerPart = numericParts.integer;
291
- let fractionPart = numericParts.fraction;
292
- const locale = resolveLocale(options.locale);
293
- let pattern;
294
- let currencyOverride;
295
- let currencyOverrideIsCustom = false;
296
- if (options.compactDecimalZeros && !options.isHidden) {
297
- const baseMatch = /^(0{2,})(.+)$/.exec(fractionPart);
298
- const baseRemainder = baseMatch?.[2];
299
- const hasBaseDigits = baseMatch && baseRemainder && !/^0+$/.test(baseRemainder);
300
- if (hasBaseDigits) {
301
- fractionPart = compactFractionLeadingZeros(fractionPart);
302
- }
303
- else {
304
- const extendedMax = options.maxDecimals !== undefined ? options.maxDecimals + COMPACT_DECIMAL_BUFFER : undefined;
305
- const extendedOptions = {
306
- ...options,
307
- maxDecimals: extendedMax,
308
- trimTrailingZeros: false
309
- };
310
- const extendedParts = computeNumericParts(scaled, extendedOptions);
311
- const extendedFraction = extendedParts.fraction;
312
- const match = /^(0{2,})(.+)$/.exec(extendedFraction);
313
- if (match) {
314
- const zerosPortion = match[1];
315
- let remainder = match[2];
316
- if (!/^0+$/.test(remainder)) {
317
- const targetMax = options.maxDecimals;
318
- const targetMin = options.minDecimals ?? 0;
319
- if (targetMax === 0) {
320
- fractionPart = '';
321
- }
322
- else {
323
- let digits = zerosPortion;
324
- const remainderNeeded = targetMax !== undefined ? Math.max(targetMax - 1, 0) : remainder.length;
325
- if (remainderNeeded > 0) {
326
- if (remainder.length < remainderNeeded) {
327
- remainder = remainder.padEnd(remainderNeeded, '0');
328
- }
329
- digits += remainder.slice(0, remainderNeeded);
330
- }
331
- if (targetMax === undefined && digits.length < targetMin) {
332
- const extraNeeded = targetMin - digits.length;
333
- let extraSource = remainder.slice(remainderNeeded);
334
- if (extraSource.length < extraNeeded) {
335
- extraSource = extraSource.padEnd(extraNeeded, '0');
336
- }
337
- digits += extraSource.slice(0, extraNeeded);
338
- }
339
- if (targetMax !== undefined && digits.length < targetMin) {
340
- digits = digits.padEnd(targetMin, '0');
341
- }
342
- if (options.trimTrailingZeros) {
343
- const minKeep = Math.max(targetMin, zerosPortion ? 1 : 0);
344
- while (digits.length > Math.max(minKeep, zerosPortion.length) && digits.endsWith('0')) {
345
- digits = digits.slice(0, -1);
346
- }
347
- }
348
- fractionPart = compactFractionLeadingZeros(digits);
349
- integerPart = extendedParts.integer;
350
- }
351
- }
352
- }
353
- }
354
- }
355
- if (options.isHidden) {
356
- const maskChar = options.hiddenCharacter && options.hiddenCharacter.length > 0
357
- ? options.hiddenCharacter[0]
358
- : '*';
359
- integerPart = maskChar;
360
- fractionPart = fractionPart.length > 0 ? maskChar.repeat(fractionPart.length) : fractionPart;
361
- }
362
- try {
363
- const nfOptions = buildNumberFormatOptions(options, style);
364
- pattern = getNumberFormatPattern(locale, nfOptions);
365
- }
366
- catch (error) {
367
- if (!(error instanceof RangeError) || style !== STYLE_CURRENCY || !options.currencyCode) {
368
- throw error;
369
- }
370
- const placeholderOptions = {
371
- ...options,
372
- currencyCode: 'USD'
373
- };
374
- const nfOptionsFallback = buildNumberFormatOptions(placeholderOptions, STYLE_CURRENCY);
375
- pattern = getNumberFormatPattern(locale, nfOptionsFallback);
376
- const rawCode = options.currencyCode;
377
- const code = rawCode.toUpperCase();
378
- if (options.useSymbol === false) {
379
- currencyOverride = rawCode;
380
- }
381
- else {
382
- const customSymbol = options.customSymbols?.[code] ?? options.customSymbols?.[rawCode];
383
- if (customSymbol) {
384
- currencyOverride = customSymbol;
385
- currencyOverrideIsCustom = true;
386
- }
387
- else {
388
- currencyOverride = rawCode;
389
- }
390
- }
391
- }
392
- return formatFromPattern(options, style, integerPart, fractionPart, sign, pattern, suffix, currencyOverride, currencyOverrideIsCustom);
393
- };
394
- export const formatDisplayNumber = (value, options) => formatDisplayInternal(value, options);
395
- export const formatDisplayCurrency = (value, options) => formatDisplayInternal(value, options, STYLE_CURRENCY);
396
- export const formatDisplayPercent = (value, options) => formatDisplayInternal(value, options, STYLE_PERCENT);
397
- export const formatDisplayCompact = (value, options) => formatDisplayInternal(value, options, undefined, true);
398
- const stripGroupSeparators = (value, separator) => {
399
- if (!separator) {
400
- return value;
401
- }
402
- return value.split(separator).join('');
403
- };
404
- const normalizeNumericCore = (core, pattern) => {
405
- let normalized = expandSubscriptDigits(core);
406
- if (pattern.groupSeparator) {
407
- normalized = stripGroupSeparators(normalized, pattern.groupSeparator);
408
- }
409
- normalized = normalized.replace(/\s+/gu, '');
410
- if (pattern.decimalSeparator && pattern.decimalSeparator !== '.') {
411
- normalized = normalized.replace(pattern.decimalSeparator, '.');
412
- }
413
- if (pattern.minusSign && pattern.minusSign !== DEFAULT_SIGN_MINUS) {
414
- normalized = normalized.split(pattern.minusSign).join(DEFAULT_SIGN_MINUS);
415
- }
416
- if (pattern.plusSign && pattern.plusSign !== DEFAULT_SIGN_PLUS) {
417
- normalized = normalized.split(pattern.plusSign).join(DEFAULT_SIGN_PLUS);
418
- }
419
- return normalized;
420
- };
421
- const parseDisplayInternal = (formatted, options) => {
422
- const numericCore = extractNumberCore(formatted);
423
- if (!numericCore) {
424
- return Number.NaN;
425
- }
426
- const locale = options?.locale;
427
- if (locale) {
428
- const resolvedLocale = resolveLocale(locale);
429
- const nfOptions = buildNumberFormatOptions(options ?? {}, STYLE_DECIMAL);
430
- const pattern = getNumberFormatPattern(resolvedLocale, nfOptions);
431
- const normalizedCore = normalizeNumericCore(numericCore, pattern);
432
- if (!normalizedCore || normalizedCore === DEFAULT_SIGN_MINUS || normalizedCore === DEFAULT_SIGN_PLUS) {
433
- return Number.NaN;
434
- }
435
- try {
436
- return Big(normalizedCore).toNumber();
437
- }
438
- catch (error) {
439
- // fall back to locale-agnostic heuristics below when locale pattern parsing fails
440
- }
441
- }
442
- let normalized = expandSubscriptDigits(numericCore);
443
- normalized = normalized.replace(/['’`_\s\u00A0]/gu, '');
444
- const lastDot = normalized.lastIndexOf('.');
445
- const lastComma = normalized.lastIndexOf(',');
446
- if (lastDot !== -1 || lastComma !== -1) {
447
- let decimalIndex = Math.max(lastDot, lastComma);
448
- let decimalChar = decimalIndex === lastDot ? '.' : ',';
449
- if (lastDot !== -1 && lastComma !== -1) {
450
- decimalChar = decimalIndex === lastDot ? '.' : ',';
451
- const thousandsChar = decimalChar === '.' ? ',' : '.';
452
- normalized = normalized.split(thousandsChar).join('');
453
- }
454
- else if (lastComma !== -1) {
455
- const fractionalPart = normalized.slice(lastComma + 1);
456
- if (fractionalPart.length === 3 && normalized.slice(0, lastComma).replace(/[^0-9]/g, '').length > 3) {
457
- normalized = normalized.replace(/,/g, '');
458
- decimalChar = '.';
459
- }
460
- else {
461
- decimalChar = ',';
462
- }
463
- }
464
- else if (lastDot !== -1) {
465
- const fractionalPart = normalized.slice(lastDot + 1);
466
- if (fractionalPart.length === 3 && normalized.slice(0, lastDot).replace(/[^0-9]/g, '').length > 3) {
467
- decimalChar = ',';
468
- normalized = normalized.replace(/\./g, '');
469
- }
470
- else {
471
- decimalChar = '.';
472
- }
473
- }
474
- if (decimalChar !== '.') {
475
- normalized = normalized.split(decimalChar).join('.');
476
- }
477
- }
478
- normalized = normalized.replace(/,/g, '');
479
- if (!normalized || normalized === DEFAULT_SIGN_MINUS || normalized === DEFAULT_SIGN_PLUS) {
480
- return Number.NaN;
481
- }
482
- try {
483
- return Big(normalized).toNumber();
484
- }
485
- catch (error) {
486
- return Number.NaN;
487
- }
488
- };
489
- export const parseDisplayValue = (formatted, options) => parseDisplayInternal(formatted, options);
490
- const NUMERIC_OR_SUBSCRIPT = /[0-9₀-₉]/;
491
- const MINUS_SIGNS = new Set(['-', '−', '﹣', '-']);
492
- const isWhitespace = (char) => /\s/.test(char);
493
- export const extractNumberCore = (formatted) => {
494
- let startIndex = -1;
495
- let endIndex = -1;
496
- for (let i = 0; i < formatted.length; i += 1) {
497
- if (NUMERIC_OR_SUBSCRIPT.test(formatted[i])) {
498
- startIndex = i;
499
- break;
500
- }
501
- }
502
- if (startIndex === -1) {
503
- return '';
504
- }
505
- for (let i = formatted.length - 1; i >= startIndex; i -= 1) {
506
- if (NUMERIC_OR_SUBSCRIPT.test(formatted[i])) {
507
- endIndex = i;
508
- break;
509
- }
510
- }
511
- if (endIndex === -1) {
512
- return '';
513
- }
514
- let signPrefix = '';
515
- for (let idx = startIndex - 1; idx >= 0; idx -= 1) {
516
- const candidate = formatted[idx];
517
- if (isWhitespace(candidate)) {
518
- continue;
519
- }
520
- if (MINUS_SIGNS.has(candidate)) {
521
- signPrefix = candidate;
522
- break;
523
- }
524
- if (NUMERIC_OR_SUBSCRIPT.test(candidate)) {
525
- break;
526
- }
527
- }
528
- if (!signPrefix) {
529
- for (let idx = endIndex + 1; idx < formatted.length; idx += 1) {
530
- const candidate = formatted[idx];
531
- if (isWhitespace(candidate)) {
532
- continue;
533
- }
534
- if (MINUS_SIGNS.has(candidate)) {
535
- signPrefix = candidate;
536
- break;
537
- }
538
- if (NUMERIC_OR_SUBSCRIPT.test(candidate)) {
539
- break;
540
- }
541
- }
542
- }
543
- return `${signPrefix}${formatted.slice(startIndex, endIndex + 1)}`;
544
- };
545
- //# sourceMappingURL=display.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"display.js","sourceRoot":"","sources":["../../src/display.ts"],"names":[],"mappings":"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"}
@@ -1,42 +0,0 @@
1
- export var FormatError;
2
- (function (FormatError) {
3
- FormatError["NonNegativeIntegerRequired"] = "nonNegativeIntegerRequired";
4
- FormatError["PositiveIntegerRequired"] = "positiveIntegerRequired";
5
- FormatError["NumericValueNonFinite"] = "numericValueNonFinite";
6
- FormatError["NumericStringEmpty"] = "numericStringEmpty";
7
- FormatError["UnsupportedNumericInput"] = "unsupportedNumericInput";
8
- FormatError["MaxDecimalsLessThanMinimum"] = "maxDecimalsLessThanMinimum";
9
- FormatError["MissingLocale"] = "missingLocale";
10
- FormatError["MissingCurrencyCode"] = "missingCurrencyCode";
11
- FormatError["DateValueInvalid"] = "dateValueInvalid";
12
- FormatError["DateStringEmpty"] = "dateStringEmpty";
13
- FormatError["DateNumberNonFinite"] = "dateNumberNonFinite";
14
- FormatError["InvalidDateString"] = "invalidDateString";
15
- FormatError["UnsupportedDateInput"] = "unsupportedDateInput";
16
- })(FormatError || (FormatError = {}));
17
- const FORMAT_ERROR_MESSAGES = {
18
- [FormatError.NonNegativeIntegerRequired]: '%label% must be a non-negative integer',
19
- [FormatError.PositiveIntegerRequired]: '%label% must be a positive integer',
20
- [FormatError.NumericValueNonFinite]: 'Numeric value must be a finite number',
21
- [FormatError.NumericStringEmpty]: 'Numeric string cannot be empty',
22
- [FormatError.UnsupportedNumericInput]: 'Unsupported numeric input type',
23
- [FormatError.MaxDecimalsLessThanMinimum]: 'maxDecimals cannot be less than minDecimals',
24
- [FormatError.MissingLocale]: 'Display formatting requires a locale',
25
- [FormatError.MissingCurrencyCode]: 'Currency formatting requires a currencyCode',
26
- [FormatError.DateValueInvalid]: 'Invalid date value',
27
- [FormatError.DateStringEmpty]: 'Date string cannot be empty',
28
- [FormatError.DateNumberNonFinite]: 'Date number must be finite',
29
- [FormatError.InvalidDateString]: 'Invalid date string',
30
- [FormatError.UnsupportedDateInput]: 'Unsupported date input type'
31
- };
32
- const applyDetails = (template, details) => {
33
- if (!details) {
34
- return template;
35
- }
36
- return Object.keys(details).reduce((message, key) => message.replace(new RegExp(`%${key}%`, 'g'), details[key]), template);
37
- };
38
- export const getFormatErrorMessage = (code, details) => applyDetails(FORMAT_ERROR_MESSAGES[code], details);
39
- export const toRangeError = (code, details) => new RangeError(getFormatErrorMessage(code, details));
40
- export const toTypeError = (code, details) => new TypeError(getFormatErrorMessage(code, details));
41
- export const toError = (code, details) => new Error(getFormatErrorMessage(code, details));
42
- //# sourceMappingURL=errors.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,WAeX;AAfD,WAAY,WAAW;IAErB,wEAA0D,CAAA;IAC1D,kEAAuD,CAAA;IACvD,8DAAqD,CAAA;IACrD,wDAAkD,CAAA;IAClD,kEAAuD,CAAA;IACvD,wEAA0D,CAAA;IAC1D,8CAA6C,CAAA;IAC7C,0DAAmD,CAAA;IACnD,oDAAgD,CAAA;IAChD,kDAA+C,CAAA;IAC/C,0DAAmD,CAAA;IACnD,sDAAiD,CAAA;IACjD,4DAAoD,CAAA;AACtD,CAAC,EAfW,WAAW,KAAX,WAAW,QAetB;AAMD,MAAM,qBAAqB,GAAK;IAE9B,CAAC,WAAW,CAAC,0BAA0B,CAAC,EAAQ,wCAAwC;IACxF,CAAC,WAAW,CAAC,uBAAuB,CAAC,EAAW,oCAAoC;IACpF,CAAC,WAAW,CAAC,qBAAqB,CAAC,EAAa,uCAAuC;IACvF,CAAC,WAAW,CAAC,kBAAkB,CAAC,EAAgB,gCAAgC;IAChF,CAAC,WAAW,CAAC,uBAAuB,CAAC,EAAW,gCAAgC;IAChF,CAAC,WAAW,CAAC,0BAA0B,CAAC,EAAQ,6CAA6C;IAC7F,CAAC,WAAW,CAAC,aAAa,CAAC,EAAqB,sCAAsC;IACtF,CAAC,WAAW,CAAC,mBAAmB,CAAC,EAAe,6CAA6C;IAC7F,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAkB,oBAAoB;IACpE,CAAC,WAAW,CAAC,eAAe,CAAC,EAAmB,6BAA6B;IAC7E,CAAC,WAAW,CAAC,mBAAmB,CAAC,EAAe,4BAA4B;IAC5E,CAAC,WAAW,CAAC,iBAAiB,CAAC,EAAiB,qBAAqB;IACrE,CAAC,WAAW,CAAC,oBAAoB,CAAC,EAAc,6BAA6B;CAEpD,CAAA;AAE3B,MAAM,YAAY,GAAc,CAAC,QAAuB,EACvB,OAA6B,EAAU,EAAE;IAExE,IAAI,CAAC,OAAO,EAAqB,CAAC;QAAC,OAAO,QAAQ,CAAA;IAAC,CAAC;IAEpD,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,IAAI,GAAG,GAAG,EAAE,GAAG,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAA;AAC5H,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,IAAuB,EACvB,OAAwB,EAAU,EAAE,CAAC,YAAY,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAA;AAE7H,MAAM,CAAC,MAAM,YAAY,GAAO,CAAC,IAAiB,EAAE,OAAsB,EAAc,EAAE,CAAC,IAAI,UAAU,CAAC,qBAAqB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAA;AAC/I,MAAM,CAAC,MAAM,WAAW,GAAQ,CAAC,IAAiB,EAAE,OAAsB,EAAc,EAAE,CAAC,IAAK,SAAS,CAAC,qBAAqB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAA;AAC/I,MAAM,CAAC,MAAM,OAAO,GAAY,CAAC,IAAiB,EAAE,OAAsB,EAAc,EAAE,CAAC,IAAS,KAAK,CAAC,qBAAqB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAA"}
package/dist/esm/index.js DELETED
@@ -1,6 +0,0 @@
1
- export { formatDisplayNumber, formatDisplayCurrency, formatDisplayPercent, formatDisplayCompact, parseDisplayValue, extractNumberCore } from './display';
2
- export { formatCsvNumber, formatCsvPercent, csvCurrencyCode, buildCsv } from './csv';
3
- export { formatDisplayDate, formatCsvDate } from './date';
4
- export { FormatError, getFormatErrorMessage, toError, toRangeError, toTypeError } from './errors';
5
- export { DISPLAY_SIGNS, DEFAULT_SIGN_MINUS, DEFAULT_SIGN_PLUS, DECIMAL_ZERO, DECIMAL_EMPTY, DECIMAL_DOT } from './constants';
6
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EAClB,MAAkC,WAAW,CAAA;AAE9C,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,QAAQ,EACT,MAAkC,OAAO,CAAA;AAE1C,OAAO,EACL,iBAAiB,EACjB,aAAa,EACd,MAAkC,QAAQ,CAAA;AAE3C,OAAO,EACL,WAAW,EACX,qBAAqB,EACrB,OAAO,EACP,YAAY,EACZ,WAAW,EACZ,MAAkC,UAAU,CAAA;AAgB7C,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,iBAAiB,EACjB,YAAY,EACZ,aAAa,EACb,WAAW,EACZ,MAAkC,aAAa,CAAA"}