UNPKG

2.18 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../source/PluralRules.js"],"names":["PluralRules","locale","options","locales","supportedLocalesOf","length","RangeError","type","$","PluralRuleFunctions","number","filter"],"mappings":";;;;;;;AAIA;;AACA;;;;;;;;;;AAEA;;;;IAIqBA,W;;;AACpB,uBAAYC,MAAZ,EAAoBC,OAApB,EAA6B;AAAA;;AAC5B,QAAMC,OAAO,GAAGH,WAAW,CAACI,kBAAZ,CAA+BH,MAA/B,CAAhB;;AACA,QAAIE,OAAO,CAACE,MAAR,KAAmB,CAAvB,EAA0B;AACzB,YAAM,IAAIC,UAAJ,CAAe,yBAAyBL,MAAxC,CAAN;AACA;;AACD,QAAIC,OAAO,IAAIA,OAAO,CAACK,IAAR,KAAiB,UAAhC,EAA4C;AAC3C,YAAM,IAAID,UAAJ,CAAe,yCAAf,CAAN;AACA;;AACD,SAAKE,CAAL,GAASC,6BAAoB,mCAAqBN,OAAO,CAAC,CAAD,CAA5B,CAApB,CAAT;AACA;;;;2BACMO,M,EAAQ;AACd,aAAO,KAAKF,CAAL,CAAOE,MAAP,CAAP;AACA;;;uCACyBP,O,EAAS;AAClC,UAAI,OAAOA,OAAP,KAAmB,QAAvB,EAAiC;AAChCA,QAAAA,OAAO,GAAG,CAACA,OAAD,CAAV;AACA;;AACD,aAAOA,OAAO,CAACQ,MAAR,CAAe,UAAAV,MAAM;AAAA,eAAIQ,6BAAoB,mCAAqBR,MAArB,CAApB,CAAJ;AAAA,OAArB,CAAP;AACA","sourcesContent":["// Importing `PluralRule` polyfill from a separate package\r\n// results in a bundle that is larger by 1kB for some reason.\r\n// export { default as default } from 'intl-plural-rules-polyfill/cardinal'\r\n\r\nimport PluralRuleFunctions from \"./PluralRuleFunctions\"\r\nimport getPluralRulesLocale from \"./getPluralRulesLocale\"\r\n\r\n/**\r\n * `Intl.PluralRules` polyfill.\r\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/PluralRules\r\n */\r\nexport default class PluralRules {\r\n\tconstructor(locale, options) {\r\n\t\tconst locales = PluralRules.supportedLocalesOf(locale)\r\n\t\tif (locales.length === 0) {\r\n\t\t\tthrow new RangeError(\"Unsupported locale: \" + locale)\r\n\t\t}\r\n\t\tif (options && options.type !== \"cardinal\") {\r\n\t\t\tthrow new RangeError(\"Only \\\"cardinal\\\" \\\"type\\\" is supported\")\r\n\t\t}\r\n\t\tthis.$ = PluralRuleFunctions[getPluralRulesLocale(locales[0])]\r\n\t}\r\n\tselect(number) {\r\n\t\treturn this.$(number)\r\n\t}\r\n\tstatic supportedLocalesOf(locales) {\r\n\t\tif (typeof locales === \"string\") {\r\n\t\t\tlocales = [locales]\r\n\t\t}\r\n\t\treturn locales.filter(locale => PluralRuleFunctions[getPluralRulesLocale(locale)])\r\n\t}\r\n}"],"file":"PluralRules.js"}
\No newline at end of file