@formatjs/intl-pluralrules 6.3.16 → 6.4.0

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 (187) hide show
  1. package/index.d.ts +12 -1
  2. package/index.js +9 -1
  3. package/index.js.map +1 -1
  4. package/locale-data/af.js +2 -2
  5. package/locale-data/ak.js +2 -2
  6. package/locale-data/am.js +2 -2
  7. package/locale-data/an.js +2 -2
  8. package/locale-data/ar.js +32 -16
  9. package/locale-data/ars.js +32 -16
  10. package/locale-data/as.js +14 -14
  11. package/locale-data/asa.js +2 -2
  12. package/locale-data/az.js +26 -10
  13. package/locale-data/bal.js +4 -4
  14. package/locale-data/be.js +26 -10
  15. package/locale-data/bem.js +2 -2
  16. package/locale-data/bez.js +2 -2
  17. package/locale-data/bg.js +2 -2
  18. package/locale-data/bho.js +2 -2
  19. package/locale-data/blo.js +14 -14
  20. package/locale-data/bn.js +14 -14
  21. package/locale-data/br.js +28 -12
  22. package/locale-data/brx.js +2 -2
  23. package/locale-data/bs.js +22 -6
  24. package/locale-data/ca.js +28 -12
  25. package/locale-data/ce.js +2 -2
  26. package/locale-data/ceb.js +18 -2
  27. package/locale-data/cgg.js +2 -2
  28. package/locale-data/chr.js +2 -2
  29. package/locale-data/ckb.js +2 -2
  30. package/locale-data/cs.js +4 -4
  31. package/locale-data/csw.js +2 -2
  32. package/locale-data/cv.js +6 -6
  33. package/locale-data/cy.js +32 -32
  34. package/locale-data/da.js +2 -2
  35. package/locale-data/doi.js +2 -2
  36. package/locale-data/dsb.js +24 -8
  37. package/locale-data/dv.js +2 -2
  38. package/locale-data/ee.js +2 -2
  39. package/locale-data/el.js +2 -2
  40. package/locale-data/en.js +24 -8
  41. package/locale-data/eo.js +2 -2
  42. package/locale-data/es.js +22 -6
  43. package/locale-data/eu.js +2 -2
  44. package/locale-data/fa.js +2 -2
  45. package/locale-data/fil.js +20 -4
  46. package/locale-data/fo.js +2 -2
  47. package/locale-data/fr.js +22 -6
  48. package/locale-data/fur.js +2 -2
  49. package/locale-data/ga.js +14 -14
  50. package/locale-data/gd.js +16 -16
  51. package/locale-data/gsw.js +2 -2
  52. package/locale-data/gu.js +14 -14
  53. package/locale-data/guw.js +2 -2
  54. package/locale-data/gv.js +26 -10
  55. package/locale-data/ha.js +2 -2
  56. package/locale-data/haw.js +2 -2
  57. package/locale-data/hi.js +14 -14
  58. package/locale-data/hr.js +22 -6
  59. package/locale-data/hsb.js +24 -8
  60. package/locale-data/hu.js +4 -4
  61. package/locale-data/hy.js +2 -2
  62. package/locale-data/is.js +18 -2
  63. package/locale-data/it.js +22 -6
  64. package/locale-data/iu.js +4 -4
  65. package/locale-data/jgo.js +2 -2
  66. package/locale-data/jmc.js +2 -2
  67. package/locale-data/ka.js +22 -6
  68. package/locale-data/kaj.js +2 -2
  69. package/locale-data/kcg.js +2 -2
  70. package/locale-data/kk.js +20 -4
  71. package/locale-data/kkj.js +2 -2
  72. package/locale-data/kl.js +2 -2
  73. package/locale-data/kn.js +2 -2
  74. package/locale-data/kok-Latn.js +10 -10
  75. package/locale-data/kok.js +10 -10
  76. package/locale-data/ks.js +2 -2
  77. package/locale-data/ksb.js +2 -2
  78. package/locale-data/ksh.js +6 -6
  79. package/locale-data/ku.js +2 -2
  80. package/locale-data/kw.js +38 -22
  81. package/locale-data/ky.js +2 -2
  82. package/locale-data/lag.js +6 -6
  83. package/locale-data/lb.js +2 -2
  84. package/locale-data/lg.js +2 -2
  85. package/locale-data/lij.js +2 -2
  86. package/locale-data/lld.js +22 -6
  87. package/locale-data/ln.js +2 -2
  88. package/locale-data/lo.js +2 -2
  89. package/locale-data/lt.js +22 -6
  90. package/locale-data/lv.js +22 -6
  91. package/locale-data/mas.js +2 -2
  92. package/locale-data/mg.js +2 -2
  93. package/locale-data/mgo.js +2 -2
  94. package/locale-data/mk.js +26 -10
  95. package/locale-data/ml.js +2 -2
  96. package/locale-data/mn.js +2 -2
  97. package/locale-data/mo.js +22 -6
  98. package/locale-data/mr.js +10 -10
  99. package/locale-data/ms.js +2 -2
  100. package/locale-data/mt.js +28 -12
  101. package/locale-data/nah.js +2 -2
  102. package/locale-data/naq.js +4 -4
  103. package/locale-data/nb.js +2 -2
  104. package/locale-data/nd.js +2 -2
  105. package/locale-data/ne.js +4 -4
  106. package/locale-data/nn.js +2 -2
  107. package/locale-data/nnh.js +2 -2
  108. package/locale-data/no.js +2 -2
  109. package/locale-data/nr.js +2 -2
  110. package/locale-data/nso.js +2 -2
  111. package/locale-data/ny.js +2 -2
  112. package/locale-data/nyn.js +2 -2
  113. package/locale-data/om.js +2 -2
  114. package/locale-data/or.js +14 -14
  115. package/locale-data/os.js +2 -2
  116. package/locale-data/pa.js +2 -2
  117. package/locale-data/pap.js +2 -2
  118. package/locale-data/pcm.js +2 -2
  119. package/locale-data/pl.js +24 -8
  120. package/locale-data/prg.js +22 -6
  121. package/locale-data/ps.js +2 -2
  122. package/locale-data/pt-PT.js +20 -4
  123. package/locale-data/pt.js +20 -4
  124. package/locale-data/rm.js +2 -2
  125. package/locale-data/ro.js +22 -6
  126. package/locale-data/rof.js +2 -2
  127. package/locale-data/ru.js +24 -8
  128. package/locale-data/rwk.js +2 -2
  129. package/locale-data/saq.js +2 -2
  130. package/locale-data/sat.js +4 -4
  131. package/locale-data/sc.js +2 -2
  132. package/locale-data/scn.js +22 -6
  133. package/locale-data/sd.js +2 -2
  134. package/locale-data/sdh.js +2 -2
  135. package/locale-data/se.js +4 -4
  136. package/locale-data/seh.js +2 -2
  137. package/locale-data/sgs.js +26 -10
  138. package/locale-data/sh.js +22 -6
  139. package/locale-data/shi.js +6 -6
  140. package/locale-data/si.js +2 -2
  141. package/locale-data/sk.js +4 -4
  142. package/locale-data/sl.js +24 -8
  143. package/locale-data/sma.js +4 -4
  144. package/locale-data/smi.js +4 -4
  145. package/locale-data/smj.js +4 -4
  146. package/locale-data/smn.js +4 -4
  147. package/locale-data/sms.js +4 -4
  148. package/locale-data/sn.js +2 -2
  149. package/locale-data/so.js +2 -2
  150. package/locale-data/sq.js +24 -8
  151. package/locale-data/sr.js +22 -6
  152. package/locale-data/ss.js +2 -2
  153. package/locale-data/ssy.js +2 -2
  154. package/locale-data/st.js +2 -2
  155. package/locale-data/sv.js +18 -2
  156. package/locale-data/syr.js +2 -2
  157. package/locale-data/ta.js +2 -2
  158. package/locale-data/te.js +2 -2
  159. package/locale-data/teo.js +2 -2
  160. package/locale-data/ti.js +2 -2
  161. package/locale-data/tig.js +2 -2
  162. package/locale-data/tk.js +20 -4
  163. package/locale-data/tl.js +20 -4
  164. package/locale-data/tn.js +2 -2
  165. package/locale-data/tr.js +2 -2
  166. package/locale-data/ts.js +2 -2
  167. package/locale-data/tzm.js +2 -2
  168. package/locale-data/ug.js +2 -2
  169. package/locale-data/uk.js +26 -10
  170. package/locale-data/uz.js +2 -2
  171. package/locale-data/ve.js +2 -2
  172. package/locale-data/vec.js +22 -6
  173. package/locale-data/vi.js +2 -2
  174. package/locale-data/vo.js +2 -2
  175. package/locale-data/vun.js +2 -2
  176. package/locale-data/wa.js +2 -2
  177. package/locale-data/wae.js +2 -2
  178. package/locale-data/xh.js +2 -2
  179. package/locale-data/xog.js +2 -2
  180. package/locale-data/zu.js +2 -2
  181. package/package.json +2 -2
  182. package/polyfill-force.js +9 -1
  183. package/polyfill-force.js.map +1 -1
  184. package/polyfill.iife.js +2077 -3435
  185. package/polyfill.js +9 -1
  186. package/polyfill.js.map +1 -1
  187. package/should-polyfill.js.map +1 -1
package/index.d.ts CHANGED
@@ -29,6 +29,17 @@ type NumberFormatNotation = "standard" | "scientific" | "engineering" | "compact
29
29
  type RoundingPriorityType = "auto" | "morePrecision" | "lessPrecision";
30
30
  type NumberFormatRoundingType = "morePrecision" | "lessPrecision" | "significantDigits" | "fractionDigits";
31
31
  type RoundingModeType = "ceil" | "floor" | "expand" | "trunc" | "halfCeil" | "halfFloor" | "halfExpand" | "halfTrunc" | "halfEven";
32
+ interface NumberFormatDigitOptions {
33
+ minimumIntegerDigits?: number;
34
+ minimumSignificantDigits?: number;
35
+ maximumSignificantDigits?: number;
36
+ minimumFractionDigits?: number;
37
+ maximumFractionDigits?: number;
38
+ roundingPriority?: RoundingPriorityType;
39
+ roundingIncrement?: number;
40
+ roundingMode?: RoundingModeType;
41
+ trailingZeroDisplay?: TrailingZeroDisplay;
42
+ }
32
43
  interface NumberFormatDigitInternalSlots {
33
44
  minimumIntegerDigits: number;
34
45
  minimumSignificantDigits: number;
@@ -59,7 +70,7 @@ declare global {
59
70
  interface PluralRules {
60
71
  selectRange(start: number | bigint, end: number | bigint): LDMLPluralRule;
61
72
  }
62
- interface PluralRulesOptions {
73
+ interface PluralRulesOptions extends NumberFormatDigitOptions {
63
74
  notation?: "standard" | "scientific" | "engineering" | "compact";
64
75
  compactDisplay?: "short" | "long";
65
76
  }
package/index.js CHANGED
@@ -507,6 +507,13 @@ function ToIntlMathematicalValue(input) {
507
507
  if (typeof input === "bigint") return new Decimal(input.toString());
508
508
  let primValue = ToPrimitive(input, "number");
509
509
  if (typeof primValue === "symbol") throw new TypeError("Cannot convert a Symbol value to a number");
510
+ if (typeof primValue === "string") {
511
+ const rounded = +primValue;
512
+ if (rounded !== rounded || rounded === Infinity || rounded === -Infinity || rounded === 0) return new Decimal(rounded);
513
+ const text = primValue.trim();
514
+ if (/^0[xob]/i.test(text)) return new Decimal(BigInt(text));
515
+ primValue = text;
516
+ }
510
517
  if (primValue === void 0) return new Decimal(NaN);
511
518
  if (primValue === true) return new Decimal(1);
512
519
  if (primValue === false) return new Decimal(0);
@@ -1368,7 +1375,8 @@ var PluralRules = class PluralRules {
1368
1375
  return SupportedLocales(PluralRules.availableLocales, CanonicalizeLocaleList(locales), options);
1369
1376
  }
1370
1377
  static __addLocaleData(...data) {
1371
- for (const { data: d, locale } of data) {
1378
+ for (const { data: d, locale: tag } of data) {
1379
+ const [locale] = CanonicalizeLocaleList(tag);
1372
1380
  registerLocaleData(locale, d, PluralRules.localeData, PluralRules.availableLocales);
1373
1381
  if (!PluralRules.__defaultLocale) PluralRules.__defaultLocale = locale;
1374
1382
  }