i18nizeelement 0.5.2 → 0.7.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.
@@ -11,12 +11,13 @@
11
11
 
12
12
  // Private vars - star
13
13
  const _regexEscape = /([\.\*\+\^\$\[\]\\\(\)\|\{\}\,\-\:\?])/g; // eslint-disable-line no-useless-escape
14
- const _regexParseLocale = /^([a-zA-Z]+)([-a-zA-Z]*)$/;
14
+ const _regexParseLocale = /^([a-zA-Z]{2,3}|[a-zA-Z]{5,8})(-[a-zA-Z]{4})?(-(?:[a-zA-Z]{2}|\d{3}))?(-(?:[a-zA-Z\d]{5,8}|\d[a-zA-Z\d]{3}))?$/;
15
15
  // Private vars - end
16
16
 
17
17
  class Locale {
18
- // eslint-disable-line consistent-this
19
-
18
+ /**
19
+ * @param {string} locale
20
+ */
20
21
  constructor(locale) {
21
22
  if (typeof locale !== 'string') {
22
23
  throw new TypeError('A string argument is expected');
@@ -28,27 +29,53 @@
28
29
  }
29
30
 
30
31
  // Private functions - star
32
+
33
+ /**
34
+ * @param {null|undefined|string} [str]
35
+ * @returns {null|undefined|string}
36
+ */
31
37
  static _escapeRegExpPattern(str) {
32
38
  if (typeof str !== 'string') {
33
39
  return str;
34
40
  }
35
41
  return str.replace(_regexEscape, '\\$1');
36
42
  }
43
+
44
+ /**
45
+ * @param {string|null} [str]
46
+ * @param {boolean} [reserveReturnValue]
47
+ */
37
48
  static _toLowerCase(str, reserveReturnValue) {
38
49
  if (typeof str !== 'string') {
39
50
  return reserveReturnValue && str;
40
51
  }
41
52
  return str.toLowerCase();
42
53
  }
54
+
55
+ /**
56
+ * @param {string|null} [str]
57
+ * @param {boolean} [reserveReturnValue]
58
+ */
43
59
  static _toUpperCase(str, reserveReturnValue) {
44
60
  if (typeof str !== 'string') {
45
61
  return reserveReturnValue && str;
46
62
  }
47
63
  return str.toUpperCase();
48
64
  }
65
+
66
+ /**
67
+ * @param {string|null} [str]
68
+ * @param {string|null|string[]|boolean} [delimiter]
69
+ * @param {boolean} [reserveReturnValue]
70
+ */
49
71
  static _trim(str, delimiter, reserveReturnValue) {
72
+ /** @type {string[]} */
50
73
  const patterns = [];
51
74
  let regexp;
75
+
76
+ /**
77
+ * @param {string|null|undefined} pattern
78
+ */
52
79
  const addPatterns = function (pattern) {
53
80
  // Build trim RegExp pattern and push it to patterns array
54
81
  patterns.push('^' + pattern + '+|' + pattern + '+$');
@@ -60,14 +87,14 @@
60
87
  delimiter = null;
61
88
  }
62
89
  if (typeof str !== 'string') {
63
- return reserveReturnValue && str;
90
+ return reserveReturnValue ? str : undefined;
64
91
  }
65
92
 
66
93
  // Trim based on delimiter array values
67
94
  if (Array.isArray(delimiter)) {
68
95
  // Loop through delimiter array
69
96
  delimiter.map(item => {
70
- // Escape delimiter to be valid RegExp Pattern
97
+ // Escape delimiter to be valid RegExp pattern
71
98
  const pattern = this._escapeRegExpPattern(item);
72
99
  // Push pattern to patterns array
73
100
  addPatterns(pattern);
@@ -76,13 +103,13 @@
76
103
 
77
104
  // Trim based on delimiter string value
78
105
  if (typeof delimiter === 'string') {
79
- // Escape delimiter to be valid RegExp Pattern
106
+ // Escape delimiter to be valid RegExp pattern
80
107
  const patternDelimiter = this._escapeRegExpPattern(delimiter);
81
108
  // push pattern to patterns array
82
109
  addPatterns(patternDelimiter);
83
110
  }
84
111
 
85
- // If delimiter is not defined, Trim white spaces
112
+ // If delimiter is not defined, trim white spaces
86
113
  if (!delimiter) {
87
114
  // Push white space pattern to patterns array
88
115
  addPatterns('\\s');
@@ -101,23 +128,44 @@
101
128
  // Return trim string
102
129
  return str;
103
130
  }
131
+
132
+ /**
133
+ * @typedef {{
134
+ * lang: string,
135
+ * script: string|undefined,
136
+ * countryCode: string|undefined
137
+ * }} LocaleInfo
138
+ */
139
+
140
+ /**
141
+ * @param {string|null} [strLocale]
142
+ * @returns {undefined|LocaleInfo}
143
+ */
104
144
  static _parseLocale(strLocale) {
105
- var matches = _regexParseLocale.exec(strLocale); // exec regex
106
- let parsedLocale;
145
+ if (typeof strLocale !== 'string') {
146
+ return undefined;
147
+ }
148
+ const matches = _regexParseLocale.exec(strLocale); // exec regex
107
149
  let lang;
150
+ let script;
108
151
  let countryCode;
109
152
  if (!strLocale || !matches) {
110
- return;
153
+ return undefined;
111
154
  }
112
155
 
156
+ // fix script string by trimming '-' and '_'
157
+ const matches2 = this._trim(matches[2], ['-', '_']);
158
+
113
159
  // fix countryCode string by trimming '-' and '_'
114
- matches[2] = this._trim(matches[2], ['-', '_']);
115
- lang = this._toLowerCase(matches[1]);
116
- countryCode = this._toUpperCase(matches[2]) || countryCode;
160
+ const matches3 = this._trim(matches[3], ['-', '_']);
161
+ lang = /** @type {string} */this._toLowerCase(matches[1]);
162
+ script = this._toLowerCase(matches2) || script;
163
+ countryCode = this._toUpperCase(matches3) || countryCode;
117
164
 
118
- // object with lang, countryCode properties
119
- parsedLocale = {
165
+ // object with lang, script properties
166
+ const parsedLocale = {
120
167
  lang,
168
+ script,
121
169
  countryCode
122
170
  };
123
171
 
@@ -127,14 +175,21 @@
127
175
  // Private functions - End
128
176
 
129
177
  _isRtlLang() {
130
- const objLocale = this.constructor._parseLocale(this._locale);
178
+ const {
179
+ lang,
180
+ script
181
+ } = /** @type {LocaleInfo} */
182
+ Locale._parseLocale(this._locale);
183
+ if (script) {
184
+ return Locale._RTL_SCRIPTS.indexOf(script) >= 0;
185
+ }
131
186
 
132
187
  // return true if the intel string lang exists in the BID RTL LANGS array else return false
133
- return this.constructor._BIDI_RTL_LANGS.indexOf(objLocale.lang) >= 0;
188
+ return Locale._BIDI_RTL_LANGS.indexOf(lang) >= 0;
134
189
  }
135
190
 
136
191
  // Public functions - star
137
- get textInfo() {
192
+ getTextInfo() {
138
193
  // return 'rtl' if the intel string lang exists in the BID RTL LANGS array else return 'ltr'
139
194
  const direction = this._isRtlLang() ? 'rtl' : 'ltr';
140
195
  return {
@@ -144,50 +199,260 @@
144
199
 
145
200
  // Public functions - End
146
201
  }
202
+ Locale._RTL_SCRIPTS = ['adlm', 'arab', 'armi', 'avst', 'chrs', 'cprt', 'elym', 'hatr', 'hebr', 'hung', 'khar', 'lydi', 'mand', 'mani', 'mend', 'merc', 'mero', 'narb', 'nbat', 'nkoo', 'orkh', 'ougr', 'palm', 'phli', 'phlp', 'phnx', 'prti', 'rohg', 'samr', 'sarb', 'sogd', 'sogo', 'syrc', 'thaa', 'yezi'];
147
203
 
148
204
  // Why not working as static property
149
205
  Locale._BIDI_RTL_LANGS = [
150
206
  // Const BIDI_RTL_LANGS Array
151
207
  // BIDI_RTL_LANGS ref: http://en.wikipedia.org/wiki/Right-to-left
152
208
  // Table of scripts in Unicode: https://en.wikipedia.org/wiki/Script_(Unicode)
153
- 'ae', /* Avestan */
154
- 'ar', /* 'العربية', Arabic */
155
- 'arc', /* Aramaic */
156
- 'bcc', /* 'بلوچی مکرانی', Southern Balochi */
157
- 'bqi', /* 'بختياري', Bakthiari */
158
- 'ckb', /* 'Soranî / کوردی', Sorani */
159
- 'dv', /* Dhivehi */
160
- 'fa', /* 'فارسی', Persian */
161
- 'glk', /* 'گیلکی', Gilaki */
162
- 'he', /* 'עברית', Hebrew */
163
- 'ku', /* 'Kurdî / كوردی', Kurdish */
164
- 'mzn', /* 'مازِرونی', Mazanderani */
165
- 'nqo', /* N'Ko */
166
- 'pnb', /* 'پنجابی', Western Punjabi */
167
- 'prs', /* 'دری', Darī */
168
- 'ps', /* 'پښتو', Pashto, */
169
- 'sd', /* 'سنڌي', Sindhi */
170
- 'ug', /* 'Uyghurche / ئۇيغۇرچە', Uyghur */
171
- 'ur', /* 'اردو', Urdu */
172
- 'yi' /* 'ייִדיש', Yiddish */];
209
+ 'ae',
210
+ // Avestan
211
+ 'aeb',
212
+ // Tunisian Arabic
213
+ 'ajt',
214
+ // Tunisian Arabic (old)
215
+ 'apc',
216
+ // Levantine Arabic
217
+ 'apd',
218
+ // Sudanese Arabic
219
+ 'ar',
220
+ // 'العربية', Arabic
221
+ 'ara',
222
+ // Arabic
223
+ 'arb',
224
+ // Standard Arabic
225
+ 'arc',
226
+ // Aramaic
227
+ 'arq',
228
+ // Algerian Arabic
229
+ 'ars',
230
+ // Najdi Arabic
231
+ 'ary',
232
+ // Moroccan Arabic
233
+ 'arz',
234
+ // Egyptian Arabic
235
+ 'ave',
236
+ // Avestan
237
+ 'avl',
238
+ // Eastern Egyptian Bedawi Arabic
239
+ 'bal',
240
+ // Baluchi
241
+ 'bcc',
242
+ // 'بلوچی مکرانی', Southern Balochi
243
+ 'bej',
244
+ // Beja; Bedawiyet
245
+ 'bft',
246
+ // Balti
247
+ 'bgn',
248
+ // Western Balochi
249
+ 'bqi',
250
+ // 'بختياري', Bakthiari
251
+ 'brh',
252
+ // Brahui
253
+ 'cja',
254
+ // Cham, Western
255
+ 'ckb',
256
+ // 'Soranî / کوردی', Sorani
257
+ 'cld',
258
+ // Chaldean Neo-Aramaic
259
+ 'dcc',
260
+ // Deccan
261
+ 'dgl',
262
+ // Andaandi
263
+ 'div',
264
+ // Divehi
265
+ 'drw',
266
+ // Darwazi (old)
267
+ 'dv',
268
+ // Dhivehi
269
+ 'fa',
270
+ // 'فارسی', Persian
271
+ 'fas',
272
+ // Persian
273
+ 'fia',
274
+ // Nobiin
275
+ 'fub',
276
+ // Fulfulde (Adamawa)
277
+ 'gbz',
278
+ // Dari, Zoroastrian
279
+ 'gjk',
280
+ // Koli, Kachi
281
+ 'gju',
282
+ // Gujari
283
+ 'glk',
284
+ // 'گیلکی', Gilaki
285
+ 'grc',
286
+ // Greek, Ancient (to 1453)
287
+ 'gwc',
288
+ // Kalami
289
+ 'gwt',
290
+ // Gawar-Bati
291
+ 'haz',
292
+ // Hazaragi
293
+ 'he',
294
+ // 'עברית', Hebrew
295
+ 'heb',
296
+ // Hebrew
297
+ 'hnd',
298
+ // Hindko, Southern
299
+ 'hno',
300
+ // Hindko, Northern
301
+ 'iw',
302
+ // Hebrew (old)
303
+ 'ji',
304
+ // Yiddish (old)
305
+ 'kas',
306
+ // Kashmiri
307
+ 'kby',
308
+ // Kanuri, Manga
309
+ 'khw',
310
+ // Khowar
311
+ 'ks',
312
+ // Kashmiri
313
+ 'kvx',
314
+ // Koli, Parkari
315
+ 'kxp',
316
+ // Koli, Wadiyara
317
+ 'kzh',
318
+ // Kenuzi-Dongola (old)
319
+ 'lad',
320
+ // Ladino
321
+ 'lah',
322
+ // Lahnda
323
+ 'lki',
324
+ // Laki
325
+ 'lrc',
326
+ // Luri, Northern
327
+ 'luz',
328
+ // Luri, Southern
329
+ 'mde',
330
+ // Maba (Chad)
331
+ 'mfa',
332
+ // Malay, Pattani
333
+ 'mki',
334
+ // Dhatki
335
+ 'mvy',
336
+ // Kohistani, Indus
337
+ 'myz',
338
+ // Mandaic, Classical
339
+ 'mzn',
340
+ // 'مازِرونی', Mazanderani
341
+ 'nqo',
342
+ // N'Ko
343
+ 'oru',
344
+ // Ormuri
345
+ 'ota',
346
+ // Turkish, Ottoman (1500–1928)
347
+ 'otk',
348
+ // Turkish, Old
349
+ 'oui',
350
+ // Uighur, Old
351
+ 'pal',
352
+ // Pahlavi
353
+ 'pbu',
354
+ // Pashto, Northern
355
+ 'per',
356
+ // Persian
357
+ 'pes',
358
+ // Western Farsi
359
+ 'phl',
360
+ // Phalura
361
+ 'phn',
362
+ // Phoenician
363
+ 'pnb',
364
+ // 'پنجابی', Western Punjabi
365
+ 'pra',
366
+ // Prakrit languages
367
+ 'prd',
368
+ // Dari (Persian)
369
+ 'prs',
370
+ // 'دری', Darī
371
+ 'ps',
372
+ // 'پښتو', Pashto,
373
+ 'pus',
374
+ // Pushto
375
+ 'rhg',
376
+ // Rohingya
377
+ 'rmt',
378
+ // Domari
379
+ 'scl',
380
+ // Shina
381
+ 'sd',
382
+ // 'سنڌي', Sindhi
383
+ 'sdh',
384
+ // Kurdish, Southern
385
+ 'shu',
386
+ // Arabic (Chadian)
387
+ 'skr',
388
+ // Saraiki
389
+ 'smp',
390
+ // Samaritan
391
+ 'snd',
392
+ // Sindhi
393
+ 'sog',
394
+ // Sogdian
395
+ 'swb',
396
+ // Comorian
397
+ 'syr',
398
+ // Syriac
399
+ 'tnf',
400
+ // Tangshewi (old)
401
+ 'trw',
402
+ // Torwali
403
+ 'ug',
404
+ // 'Uyghurche / ئۇيغۇرچە', Uyghur
405
+ 'uig',
406
+ // Uighur
407
+ 'ur',
408
+ // 'اردو', Urdu
409
+ 'urd',
410
+ // Urdu
411
+ 'wni',
412
+ // Comorian, Ndzwani
413
+ 'xco',
414
+ // Chorasmian
415
+ 'xld',
416
+ // Lydian
417
+ 'xmn',
418
+ // Manichaean Middle Persian
419
+ 'xmr',
420
+ // Meroitic
421
+ 'xna',
422
+ // North Arabian, Ancient
423
+ 'xpr',
424
+ // Parthian
425
+ 'xsa',
426
+ // Sabaean
427
+ 'ydd',
428
+ // Yiddish, Eastern
429
+ 'yi',
430
+ // 'ייִדיש', Yiddish
431
+ 'yid',
432
+ // Yiddish
433
+ 'zdj' // Comorian, Ngazidja
434
+ ];
173
435
 
174
436
  if (typeof Intl === 'undefined') {
437
+ // @ts-expect-error Not a complete polyfill
175
438
  globalThis.Intl = {};
176
439
  }
177
- if (typeof Intl.Locale === 'undefined') {
178
- Intl.Locale = Locale;
179
- }
180
-
181
- // e.g., `i18nizeElement(document.title, {language: 'ar-AR'});`
440
+ Intl.Locale = Locale;
182
441
 
183
442
  /**
184
- * @param {HTMLElement} element
185
- * @param {{
443
+ * @typedef {{
186
444
  * language?: string,
187
445
  * avoidLangIfSet?: boolean,
188
446
  * avoidDirIfSet?: boolean,
189
447
  * avoidLTRByDefault?: boolean
190
- * }} cfg
448
+ * }} I18nizeElementOptions
449
+ */
450
+
451
+ // e.g., `i18nizeElement(document.title, {language: 'ar-AR'});`
452
+
453
+ /**
454
+ * @param {HTMLElement} element
455
+ * @param {I18nizeElementOptions} cfg
191
456
  */
192
457
  const i18nizeElement = (element, {
193
458
  language,
@@ -232,10 +497,10 @@
232
497
  } =
233
498
  /**
234
499
  * @type {Intl.Locale & {
235
- * textInfo: {direction: "ltr"|"rtl"|"ttb"}
500
+ * getTextInfo: () => {direction: "ltr"|"rtl"|"ttb"}
236
501
  * }}
237
502
  */
238
- new Intl.Locale(language).textInfo;
503
+ new Intl.Locale(language).getTextInfo();
239
504
 
240
505
  /** @type {HTMLElement|undefined} */
241
506
  let presetDirElement;
@@ -1 +1 @@
1
- {"version":3,"file":"i18nizeelement.umd.js","sources":["../node_modules/.pnpm/intl-locale-textinfo-polyfill@1.0.1/node_modules/intl-locale-textinfo-polyfill/lib/Locale.js","../node_modules/.pnpm/intl-locale-textinfo-polyfill@1.0.1/node_modules/intl-locale-textinfo-polyfill/lib/polyfill.js","../src/index.js"],"sourcesContent":["/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\n\n// Private vars - star\nconst _regexEscape = /([\\.\\*\\+\\^\\$\\[\\]\\\\\\(\\)\\|\\{\\}\\,\\-\\:\\?])/g; // eslint-disable-line no-useless-escape\nconst _regexParseLocale = /^([a-zA-Z]+)([-a-zA-Z]*)$/;\n// Private vars - end\n\nclass Locale { // eslint-disable-line consistent-this\n\n constructor (locale) {\n if (typeof locale !== 'string') {\n throw new TypeError('A string argument is expected');\n }\n if (!_regexParseLocale.test(locale)) {\n throw new RangeError('A proper locale must be provided');\n }\n this._locale = locale;\n }\n\n // Private functions - star\n static _escapeRegExpPattern (str) {\n if (typeof str !== 'string') {\n return str;\n }\n return str.replace(_regexEscape, '\\\\$1');\n }\n\n static _toLowerCase (str, reserveReturnValue) {\n if (typeof str !== 'string') {\n return reserveReturnValue && str;\n }\n return str.toLowerCase();\n }\n\n static _toUpperCase (str, reserveReturnValue) {\n if (typeof str !== 'string') {\n return reserveReturnValue && str;\n }\n return str.toUpperCase();\n }\n\n static _trim (str, delimiter, reserveReturnValue) {\n const patterns = [];\n let regexp;\n const addPatterns = function (pattern) {\n // Build trim RegExp pattern and push it to patterns array\n patterns.push('^' + pattern + '+|' + pattern + '+$');\n };\n\n // fix reserveReturnValue value\n if (typeof delimiter === 'boolean') {\n reserveReturnValue = delimiter;\n delimiter = null;\n }\n\n if (typeof str !== 'string') {\n return reserveReturnValue && str;\n }\n\n // Trim based on delimiter array values\n if (Array.isArray(delimiter)) {\n // Loop through delimiter array\n delimiter.map((item) => {\n // Escape delimiter to be valid RegExp Pattern\n const pattern = this._escapeRegExpPattern(item);\n // Push pattern to patterns array\n addPatterns(pattern);\n });\n }\n\n // Trim based on delimiter string value\n if (typeof delimiter === 'string') {\n // Escape delimiter to be valid RegExp Pattern\n const patternDelimiter = this._escapeRegExpPattern(delimiter);\n // push pattern to patterns array\n addPatterns(patternDelimiter);\n }\n\n // If delimiter is not defined, Trim white spaces\n if (!delimiter) {\n // Push white space pattern to patterns array\n addPatterns('\\\\s');\n }\n\n // Build RegExp pattern\n const pattern = '(' + patterns.join('|') + ')';\n // Build RegExp object\n regexp = new RegExp(pattern, 'g');\n\n // trim string for all patterns\n while (str.match(regexp)) {\n str = str.replace(regexp, '');\n }\n\n // Return trim string\n return str;\n }\n\n static _parseLocale (strLocale) {\n var matches = _regexParseLocale.exec(strLocale); // exec regex\n let parsedLocale;\n let lang;\n let countryCode;\n\n if (!strLocale || !matches) {\n return;\n }\n\n // fix countryCode string by trimming '-' and '_'\n matches[2] = this._trim(matches[2], ['-', '_']);\n\n lang = this._toLowerCase(matches[1]);\n countryCode = this._toUpperCase(matches[2]) || countryCode;\n\n // object with lang, countryCode properties\n parsedLocale = {\n lang,\n countryCode\n };\n\n // return parsed locale object\n return parsedLocale;\n }\n // Private functions - End\n\n _isRtlLang () {\n const objLocale = this.constructor._parseLocale(this._locale);\n\n // return true if the intel string lang exists in the BID RTL LANGS array else return false\n return (this.constructor._BIDI_RTL_LANGS.indexOf(objLocale.lang) >= 0);\n }\n\n // Public functions - star\n get textInfo () {\n // return 'rtl' if the intel string lang exists in the BID RTL LANGS array else return 'ltr'\n const direction = this._isRtlLang() ? 'rtl' : 'ltr';\n return { direction };\n }\n\n // Public functions - End\n}\n\n// Why not working as static property\nLocale._BIDI_RTL_LANGS = [\n // Const BIDI_RTL_LANGS Array\n // BIDI_RTL_LANGS ref: http://en.wikipedia.org/wiki/Right-to-left\n // Table of scripts in Unicode: https://en.wikipedia.org/wiki/Script_(Unicode)\n 'ae',\t/* Avestan */\n 'ar', /* 'العربية', Arabic */\n 'arc', /* Aramaic */\n 'bcc', /* 'بلوچی مکرانی', Southern Balochi */\n 'bqi', /* 'بختياري', Bakthiari */\n 'ckb', /* 'Soranî / کوردی', Sorani */\n 'dv', /* Dhivehi */\n 'fa', /* 'فارسی', Persian */\n 'glk', /* 'گیلکی', Gilaki */\n 'he', /* 'עברית', Hebrew */\n 'ku', /* 'Kurdî / كوردی', Kurdish */\n 'mzn', /* 'مازِرونی', Mazanderani */\n 'nqo', /* N'Ko */\n 'pnb', /* 'پنجابی', Western Punjabi */\n 'prs', /* 'دری', Darī */\n 'ps', /* 'پښتو', Pashto, */\n 'sd', /* 'سنڌي', Sindhi */\n 'ug', /* 'Uyghurche / ئۇيغۇرچە', Uyghur */\n 'ur', /* 'اردو', Urdu */\n 'yi' /* 'ייִדיש', Yiddish */\n];\n\nexport default Locale;\n","import Locale from './Locale.js';\n\nif (typeof Intl === 'undefined') {\n globalThis.Intl = {};\n}\n\nif (typeof Intl.Locale === 'undefined') {\n Intl.Locale = Locale;\n}\n","import 'intl-locale-textinfo-polyfill/lib/polyfill.js';\n\n// e.g., `i18nizeElement(document.title, {language: 'ar-AR'});`\n\n/**\n * @param {HTMLElement} element\n * @param {{\n * language?: string,\n * avoidLangIfSet?: boolean,\n * avoidDirIfSet?: boolean,\n * avoidLTRByDefault?: boolean\n * }} cfg\n */\nconst i18nizeElement = (element, {\n language,\n // These avoid setting if found to be already set with the same value\n // on the closest ancestor\n avoidLangIfSet = true, avoidDirIfSet = true,\n // This avoids setting LTR if there is no ancestor with `dir` (since\n // LTR is the default)\n avoidLTRByDefault = true\n} = {}) => {\n if (!element || !language) {\n throw new TypeError('You must supply an element and language');\n }\n let presetLangElement;\n\n // We set `lang` if:\n // 1. The user is not avoiding setting `lang` when the supplied language\n // is the same as the closest ancestor with `lang`\n // 2. There is no ancestor with `lang`\n // 3. The closest ancestor with `lang` has a different language from\n // the supplied\n if (avoidLangIfSet) {\n presetLangElement = /** @type {HTMLElement} */ (\n element.closest('[lang]')\n );\n }\n if (!presetLangElement || presetLangElement.lang !== language) {\n element.lang = language;\n }\n\n // See <https://github.com/tc39/ecma402/issues/205> for request for JavaScript to detect this\n // We set `dir` if:\n // 1. The user is not avoiding setting `dir` when the supplied\n // language's directionality is the same as the closest ancestor\n // with `dir`\n // 2. There is no ancestor with `dir` (and this is either not an LTR\n // direction or the user isn't avoiding (the default) LTR)\n // 3. The closest ancestor with `dir` has a different `dir` from the\n // direction of the supplied language\n const {direction: dir} =\n /**\n * @type {Intl.Locale & {\n * textInfo: {direction: \"ltr\"|\"rtl\"|\"ttb\"}\n * }}\n */ (\n new Intl.Locale(language)\n ).textInfo;\n\n /** @type {HTMLElement|undefined} */\n let presetDirElement;\n if (avoidDirIfSet ||\n // If avoiding the default LTR except when different (even if not\n // avoiding an (RTL) already-set dir), we need to know if different\n (avoidLTRByDefault && dir === 'ltr')\n ) {\n presetDirElement = /** @type {HTMLElement} */ (\n element.closest('[dir]')\n );\n }\n if (\n // If the closest ancestor with `dir` is different, we need to\n // set regardless\n (presetDirElement && presetDirElement.dir !== dir) ||\n // We set if the user is not avoiding (whether there is no ancestor\n // with `div` or even when there is and the language has the same\n // directionality as the closest ancestor with `dir`) OR\n (!avoidDirIfSet ||\n // ...if there is no ancestor with `dir` AND...\n (!presetDirElement &&\n // this is either not an LTR direction or the user isn't\n // avoiding (the default) LTR\n (!avoidLTRByDefault || dir !== 'ltr'))\n )\n ) {\n element.dir = dir;\n\n /* c8 ignore next 3 */\n if (dir === 'ttb') {\n element.style.writingMode = 'vertical-lr';\n }\n }\n};\nexport default i18nizeElement;\n"],"names":["_regexEscape","_regexParseLocale","Locale","constructor","locale","TypeError","test","RangeError","_locale","_escapeRegExpPattern","str","replace","_toLowerCase","reserveReturnValue","toLowerCase","_toUpperCase","toUpperCase","_trim","delimiter","patterns","regexp","addPatterns","pattern","push","Array","isArray","map","item","patternDelimiter","join","RegExp","match","_parseLocale","strLocale","matches","exec","parsedLocale","lang","countryCode","_isRtlLang","objLocale","_BIDI_RTL_LANGS","indexOf","textInfo","direction","Intl","globalThis","i18nizeElement","element","language","avoidLangIfSet","avoidDirIfSet","avoidLTRByDefault","presetLangElement","closest","dir","presetDirElement","style","writingMode"],"mappings":"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","x_google_ignoreList":[0,1]}
1
+ {"version":3,"file":"i18nizeelement.umd.js","sources":["../node_modules/.pnpm/intl-locale-textinfo-polyfill@3.0.0/node_modules/intl-locale-textinfo-polyfill/lib/Locale.js","../node_modules/.pnpm/intl-locale-textinfo-polyfill@3.0.0/node_modules/intl-locale-textinfo-polyfill/lib/polyfill.js","../src/index.js"],"sourcesContent":["/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\n\n// Private vars - star\nconst _regexEscape = /([\\.\\*\\+\\^\\$\\[\\]\\\\\\(\\)\\|\\{\\}\\,\\-\\:\\?])/g; // eslint-disable-line no-useless-escape\nconst _regexParseLocale = /^([a-zA-Z]{2,3}|[a-zA-Z]{5,8})(-[a-zA-Z]{4})?(-(?:[a-zA-Z]{2}|\\d{3}))?(-(?:[a-zA-Z\\d]{5,8}|\\d[a-zA-Z\\d]{3}))?$/;\n// Private vars - end\n\nclass Locale {\n\n /**\n * @param {string} locale\n */\n constructor (locale) {\n if (typeof locale !== 'string') {\n throw new TypeError('A string argument is expected');\n }\n if (!_regexParseLocale.test(locale)) {\n throw new RangeError('A proper locale must be provided');\n }\n this._locale = locale;\n }\n\n // Private functions - star\n\n /**\n * @param {null|undefined|string} [str]\n * @returns {null|undefined|string}\n */\n static _escapeRegExpPattern (str) {\n if (typeof str !== 'string') {\n return str;\n }\n return str.replace(_regexEscape, '\\\\$1');\n }\n\n /**\n * @param {string|null} [str]\n * @param {boolean} [reserveReturnValue]\n */\n static _toLowerCase (str, reserveReturnValue) {\n if (typeof str !== 'string') {\n return reserveReturnValue && str;\n }\n return str.toLowerCase();\n }\n\n /**\n * @param {string|null} [str]\n * @param {boolean} [reserveReturnValue]\n */\n static _toUpperCase (str, reserveReturnValue) {\n if (typeof str !== 'string') {\n return reserveReturnValue && str;\n }\n return str.toUpperCase();\n }\n\n /**\n * @param {string|null} [str]\n * @param {string|null|string[]|boolean} [delimiter]\n * @param {boolean} [reserveReturnValue]\n */\n static _trim (str, delimiter, reserveReturnValue) {\n /** @type {string[]} */\n const patterns = [];\n let regexp;\n\n /**\n * @param {string|null|undefined} pattern\n */\n const addPatterns = function (pattern) {\n // Build trim RegExp pattern and push it to patterns array\n patterns.push('^' + pattern + '+|' + pattern + '+$');\n };\n\n // fix reserveReturnValue value\n if (typeof delimiter === 'boolean') {\n reserveReturnValue = delimiter;\n delimiter = null;\n }\n\n if (typeof str !== 'string') {\n return reserveReturnValue ? str : undefined;\n }\n\n // Trim based on delimiter array values\n if (Array.isArray(delimiter)) {\n // Loop through delimiter array\n delimiter.map((item) => {\n // Escape delimiter to be valid RegExp pattern\n const pattern = this._escapeRegExpPattern(item);\n // Push pattern to patterns array\n addPatterns(pattern);\n });\n }\n\n // Trim based on delimiter string value\n if (typeof delimiter === 'string') {\n // Escape delimiter to be valid RegExp pattern\n const patternDelimiter = this._escapeRegExpPattern(delimiter);\n // push pattern to patterns array\n addPatterns(patternDelimiter);\n }\n\n // If delimiter is not defined, trim white spaces\n if (!delimiter) {\n // Push white space pattern to patterns array\n addPatterns('\\\\s');\n }\n\n // Build RegExp pattern\n const pattern = '(' + patterns.join('|') + ')';\n // Build RegExp object\n regexp = new RegExp(pattern, 'g');\n\n // trim string for all patterns\n while (str.match(regexp)) {\n str = str.replace(regexp, '');\n }\n\n // Return trim string\n return str;\n }\n\n /**\n * @typedef {{\n * lang: string,\n * script: string|undefined,\n * countryCode: string|undefined\n * }} LocaleInfo\n */\n\n /**\n * @param {string|null} [strLocale]\n * @returns {undefined|LocaleInfo}\n */\n static _parseLocale (strLocale) {\n if (typeof strLocale !== 'string') {\n return undefined;\n }\n\n const matches = _regexParseLocale.exec(strLocale); // exec regex\n let lang;\n let script;\n let countryCode;\n\n if (!strLocale || !matches) {\n return undefined;\n }\n\n // fix script string by trimming '-' and '_'\n const matches2 = this._trim(matches[2], ['-', '_']);\n\n // fix countryCode string by trimming '-' and '_'\n const matches3 = this._trim(matches[3], ['-', '_']);\n\n lang = /** @type {string} */ (this._toLowerCase(matches[1]));\n script = this._toLowerCase(matches2) || script;\n countryCode = this._toUpperCase(matches3) || countryCode;\n\n // object with lang, script properties\n const parsedLocale = {\n lang,\n script,\n countryCode\n };\n\n // return parsed locale object\n return parsedLocale;\n }\n // Private functions - End\n\n _isRtlLang () {\n const { lang, script } = /** @type {LocaleInfo} */ (\n Locale._parseLocale(this._locale)\n );\n\n if (script) {\n return Locale._RTL_SCRIPTS.indexOf(script) >= 0;\n }\n\n // return true if the intel string lang exists in the BID RTL LANGS array else return false\n return (Locale._BIDI_RTL_LANGS.indexOf(lang) >= 0);\n }\n\n // Public functions - star\n getTextInfo () {\n // return 'rtl' if the intel string lang exists in the BID RTL LANGS array else return 'ltr'\n const direction = this._isRtlLang() ? 'rtl' : 'ltr';\n return { direction };\n }\n\n // Public functions - End\n}\n\nLocale._RTL_SCRIPTS = [\n 'adlm', 'arab', 'armi', 'avst', 'chrs', 'cprt',\n 'elym', 'hatr', 'hebr', 'hung', 'khar', 'lydi',\n 'mand', 'mani', 'mend', 'merc', 'mero', 'narb',\n 'nbat', 'nkoo', 'orkh', 'ougr', 'palm', 'phli',\n 'phlp', 'phnx', 'prti', 'rohg', 'samr', 'sarb',\n 'sogd', 'sogo', 'syrc', 'thaa', 'yezi'\n];\n\n// Why not working as static property\nLocale._BIDI_RTL_LANGS = [\n // Const BIDI_RTL_LANGS Array\n // BIDI_RTL_LANGS ref: http://en.wikipedia.org/wiki/Right-to-left\n // Table of scripts in Unicode: https://en.wikipedia.org/wiki/Script_(Unicode)\n 'ae',\t// Avestan\n 'aeb', // Tunisian Arabic\n 'ajt', // Tunisian Arabic (old)\n 'apc', // Levantine Arabic\n 'apd', // Sudanese Arabic\n 'ar', // 'العربية', Arabic\n 'ara', // Arabic\n 'arb', // Standard Arabic\n 'arc', // Aramaic\n 'arq', // Algerian Arabic\n 'ars', // Najdi Arabic\n 'ary', // Moroccan Arabic\n 'arz', // Egyptian Arabic\n 'ave', // Avestan\n 'avl', // Eastern Egyptian Bedawi Arabic\n 'bal', // Baluchi\n 'bcc', // 'بلوچی مکرانی', Southern Balochi\n 'bej', // Beja; Bedawiyet\n 'bft', // Balti\n 'bgn', // Western Balochi\n 'bqi', // 'بختياري', Bakthiari\n 'brh', // Brahui\n 'cja', // Cham, Western\n 'ckb', // 'Soranî / کوردی', Sorani\n 'cld', // Chaldean Neo-Aramaic\n 'dcc', // Deccan\n 'dgl', // Andaandi\n 'div', // Divehi\n 'drw', // Darwazi (old)\n 'dv', // Dhivehi\n 'fa', // 'فارسی', Persian\n 'fas', // Persian\n 'fia', // Nobiin\n 'fub', // Fulfulde (Adamawa)\n 'gbz', // Dari, Zoroastrian\n 'gjk', // Koli, Kachi\n 'gju', // Gujari\n 'glk', // 'گیلکی', Gilaki\n 'grc', // Greek, Ancient (to 1453)\n 'gwc', // Kalami\n 'gwt', // Gawar-Bati\n 'haz', // Hazaragi\n 'he', // 'עברית', Hebrew\n 'heb', // Hebrew\n 'hnd', // Hindko, Southern\n 'hno', // Hindko, Northern\n 'iw', // Hebrew (old)\n 'ji', // Yiddish (old)\n 'kas', // Kashmiri\n 'kby', // Kanuri, Manga\n 'khw', // Khowar\n 'ks', // Kashmiri\n 'kvx', // Koli, Parkari\n 'kxp', // Koli, Wadiyara\n 'kzh', // Kenuzi-Dongola (old)\n 'lad', // Ladino\n 'lah', // Lahnda\n 'lki', // Laki\n 'lrc', // Luri, Northern\n 'luz', // Luri, Southern\n 'mde', // Maba (Chad)\n 'mfa', // Malay, Pattani\n 'mki', // Dhatki\n 'mvy', // Kohistani, Indus\n 'myz', // Mandaic, Classical\n 'mzn', // 'مازِرونی', Mazanderani\n 'nqo', // N'Ko\n 'oru', // Ormuri\n 'ota', // Turkish, Ottoman (1500–1928)\n 'otk', // Turkish, Old\n 'oui', // Uighur, Old\n 'pal', // Pahlavi\n 'pbu', // Pashto, Northern\n 'per', // Persian\n 'pes', // Western Farsi\n 'phl', // Phalura\n 'phn', // Phoenician\n 'pnb', // 'پنجابی', Western Punjabi\n 'pra', // Prakrit languages\n 'prd', // Dari (Persian)\n 'prs', // 'دری', Darī\n 'ps', // 'پښتو', Pashto,\n 'pus', // Pushto\n 'rhg', // Rohingya\n 'rmt', // Domari\n 'scl', // Shina\n 'sd', // 'سنڌي', Sindhi\n 'sdh', // Kurdish, Southern\n 'shu', // Arabic (Chadian)\n 'skr', // Saraiki\n 'smp', // Samaritan\n 'snd', // Sindhi\n 'sog', // Sogdian\n 'swb', // Comorian\n 'syr', // Syriac\n 'tnf', // Tangshewi (old)\n 'trw', // Torwali\n 'ug', // 'Uyghurche / ئۇيغۇرچە', Uyghur\n 'uig', // Uighur\n 'ur', // 'اردو', Urdu\n 'urd', // Urdu\n 'wni', // Comorian, Ndzwani\n 'xco', // Chorasmian\n 'xld', // Lydian\n 'xmn', // Manichaean Middle Persian\n 'xmr', // Meroitic\n 'xna', // North Arabian, Ancient\n 'xpr', // Parthian\n 'xsa', // Sabaean\n 'ydd', // Yiddish, Eastern\n 'yi', // 'ייִדיש', Yiddish\n 'yid', // Yiddish\n 'zdj' // Comorian, Ngazidja\n];\n\nexport default Locale;\n","import Locale from './Locale.js';\n\nif (typeof Intl === 'undefined') {\n // @ts-expect-error Not a complete polyfill\n globalThis.Intl = {};\n}\n\nIntl.Locale = Locale;\n","import 'intl-locale-textinfo-polyfill/lib/polyfill.js';\n\n/**\n * @typedef {{\n * language?: string,\n * avoidLangIfSet?: boolean,\n * avoidDirIfSet?: boolean,\n * avoidLTRByDefault?: boolean\n * }} I18nizeElementOptions\n */\n\n// e.g., `i18nizeElement(document.title, {language: 'ar-AR'});`\n\n/**\n * @param {HTMLElement} element\n * @param {I18nizeElementOptions} cfg\n */\nconst i18nizeElement = (element, {\n language,\n // These avoid setting if found to be already set with the same value\n // on the closest ancestor\n avoidLangIfSet = true, avoidDirIfSet = true,\n // This avoids setting LTR if there is no ancestor with `dir` (since\n // LTR is the default)\n avoidLTRByDefault = true\n} = {}) => {\n if (!element || !language) {\n throw new TypeError('You must supply an element and language');\n }\n let presetLangElement;\n\n // We set `lang` if:\n // 1. The user is not avoiding setting `lang` when the supplied language\n // is the same as the closest ancestor with `lang`\n // 2. There is no ancestor with `lang`\n // 3. The closest ancestor with `lang` has a different language from\n // the supplied\n if (avoidLangIfSet) {\n presetLangElement = /** @type {HTMLElement} */ (\n element.closest('[lang]')\n );\n }\n if (!presetLangElement || presetLangElement.lang !== language) {\n element.lang = language;\n }\n\n // See <https://github.com/tc39/ecma402/issues/205> for request for JavaScript to detect this\n // We set `dir` if:\n // 1. The user is not avoiding setting `dir` when the supplied\n // language's directionality is the same as the closest ancestor\n // with `dir`\n // 2. There is no ancestor with `dir` (and this is either not an LTR\n // direction or the user isn't avoiding (the default) LTR)\n // 3. The closest ancestor with `dir` has a different `dir` from the\n // direction of the supplied language\n const {direction: dir} =\n /**\n * @type {Intl.Locale & {\n * getTextInfo: () => {direction: \"ltr\"|\"rtl\"|\"ttb\"}\n * }}\n */ (\n new Intl.Locale(language)\n ).getTextInfo();\n\n /** @type {HTMLElement|undefined} */\n let presetDirElement;\n if (avoidDirIfSet ||\n // If avoiding the default LTR except when different (even if not\n // avoiding an (RTL) already-set dir), we need to know if different\n (avoidLTRByDefault && dir === 'ltr')\n ) {\n presetDirElement = /** @type {HTMLElement} */ (\n element.closest('[dir]')\n );\n }\n if (\n // If the closest ancestor with `dir` is different, we need to\n // set regardless\n (presetDirElement && presetDirElement.dir !== dir) ||\n // We set if the user is not avoiding (whether there is no ancestor\n // with `div` or even when there is and the language has the same\n // directionality as the closest ancestor with `dir`) OR\n (!avoidDirIfSet ||\n // ...if there is no ancestor with `dir` AND...\n (!presetDirElement &&\n // this is either not an LTR direction or the user isn't\n // avoiding (the default) LTR\n (!avoidLTRByDefault || dir !== 'ltr'))\n )\n ) {\n element.dir = dir;\n\n /* c8 ignore next 3 */\n if (dir === 'ttb') {\n element.style.writingMode = 'vertical-lr';\n }\n }\n};\nexport default i18nizeElement;\n"],"names":["_regexEscape","_regexParseLocale","Locale","constructor","locale","TypeError","test","RangeError","_locale","_escapeRegExpPattern","str","replace","_toLowerCase","reserveReturnValue","toLowerCase","_toUpperCase","toUpperCase","_trim","delimiter","patterns","regexp","addPatterns","pattern","push","undefined","Array","isArray","map","item","patternDelimiter","join","RegExp","match","_parseLocale","strLocale","matches","exec","lang","script","countryCode","matches2","matches3","parsedLocale","_isRtlLang","_RTL_SCRIPTS","indexOf","_BIDI_RTL_LANGS","getTextInfo","direction","Intl","globalThis","i18nizeElement","element","language","avoidLangIfSet","avoidDirIfSet","avoidLTRByDefault","presetLangElement","closest","dir","presetDirElement","style","writingMode"],"mappings":"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","x_google_ignoreList":[0,1]}
package/dist/index.d.ts CHANGED
@@ -1,17 +1,21 @@
1
1
  export default i18nizeElement;
2
+ export type I18nizeElementOptions = {
3
+ language?: string;
4
+ avoidLangIfSet?: boolean;
5
+ avoidDirIfSet?: boolean;
6
+ avoidLTRByDefault?: boolean;
7
+ };
2
8
  /**
3
- * @param {HTMLElement} element
4
- * @param {{
9
+ * @typedef {{
5
10
  * language?: string,
6
11
  * avoidLangIfSet?: boolean,
7
12
  * avoidDirIfSet?: boolean,
8
13
  * avoidLTRByDefault?: boolean
9
- * }} cfg
14
+ * }} I18nizeElementOptions
10
15
  */
11
- declare function i18nizeElement(element: HTMLElement, { language, avoidLangIfSet, avoidDirIfSet, avoidLTRByDefault }?: {
12
- language?: string;
13
- avoidLangIfSet?: boolean;
14
- avoidDirIfSet?: boolean;
15
- avoidLTRByDefault?: boolean;
16
- }): void;
16
+ /**
17
+ * @param {HTMLElement} element
18
+ * @param {I18nizeElementOptions} cfg
19
+ */
20
+ declare function i18nizeElement(element: HTMLElement, { language, avoidLangIfSet, avoidDirIfSet, avoidLTRByDefault }?: I18nizeElementOptions): void;
17
21
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.js"],"names":[],"mappings":";AAIA;;;;;;;;GAQG;AACH,yCARW,WAAW,mEACX;IACV,QAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,aAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,iBAAqB,CAAC,EAAE,OAAO,CAAA;CAC5B,QAkFH"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.js"],"names":[],"mappings":";oCAGa;IACR,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAC5B;AANJ;;;;;;;GAOG;AAIH;;;GAGG;AACH,yCAHW,WAAW,mEACX,qBAAqB,QAkF/B"}