@ui5/webcomponents-localization 0.0.0-b053ad005 → 0.0.0-b0b835975

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 (200) hide show
  1. package/.eslintignore +1 -1
  2. package/.npsrc.json +3 -0
  3. package/CHANGELOG.md +571 -0
  4. package/README.md +5 -6
  5. package/{src/Assets-static.js → dist/Assets-static.d.ts} +0 -1
  6. package/dist/Assets-static.js +1 -0
  7. package/dist/Assets-static.js.map +1 -0
  8. package/dist/Assets.d.ts +1 -0
  9. package/dist/Assets.js +1 -0
  10. package/dist/Assets.js.map +1 -0
  11. package/dist/DateFormat.d.ts +6 -0
  12. package/dist/DateFormat.js +6 -2
  13. package/dist/DateFormat.js.map +1 -0
  14. package/dist/LocaleData.d.ts +6 -0
  15. package/dist/LocaleData.js +6 -2
  16. package/dist/LocaleData.js.map +1 -0
  17. package/dist/dates/CalendarDate.d.ts +43 -0
  18. package/dist/dates/CalendarDate.js +171 -201
  19. package/dist/dates/CalendarDate.js.map +1 -0
  20. package/dist/dates/ExtremeDates.d.ts +5 -0
  21. package/dist/dates/ExtremeDates.js +25 -35
  22. package/dist/dates/ExtremeDates.js.map +1 -0
  23. package/dist/dates/UI5Date.d.ts +6 -0
  24. package/dist/dates/UI5Date.js +7 -0
  25. package/dist/dates/UI5Date.js.map +1 -0
  26. package/dist/dates/UniversalDate.d.ts +47 -0
  27. package/dist/dates/UniversalDate.js +5 -0
  28. package/dist/dates/UniversalDate.js.map +1 -0
  29. package/dist/dates/calculateWeekNumber.d.ts +5 -0
  30. package/dist/dates/calculateWeekNumber.js +42 -48
  31. package/dist/dates/calculateWeekNumber.js.map +1 -0
  32. package/dist/dates/convertMonthNumbersToMonthNames.d.ts +16 -0
  33. package/dist/dates/convertMonthNumbersToMonthNames.js +30 -0
  34. package/dist/dates/convertMonthNumbersToMonthNames.js.map +1 -0
  35. package/dist/dates/getDaysInMonth.d.ts +3 -0
  36. package/dist/dates/getDaysInMonth.js +10 -0
  37. package/dist/dates/getDaysInMonth.js.map +1 -0
  38. package/dist/dates/getRoundedTimestamp.d.ts +7 -0
  39. package/dist/dates/getRoundedTimestamp.js +10 -9
  40. package/dist/dates/getRoundedTimestamp.js.map +1 -0
  41. package/dist/dates/getTodayUTCTimestamp.d.ts +7 -0
  42. package/dist/dates/getTodayUTCTimestamp.js +3 -3
  43. package/dist/dates/getTodayUTCTimestamp.js.map +1 -0
  44. package/dist/dates/modifyDateBy.d.ts +14 -0
  45. package/dist/dates/modifyDateBy.js +42 -29
  46. package/dist/dates/modifyDateBy.js.map +1 -0
  47. package/dist/dates/transformDateToSecondaryType.d.ts +7 -0
  48. package/dist/dates/transformDateToSecondaryType.js +18 -0
  49. package/dist/dates/transformDateToSecondaryType.js.map +1 -0
  50. package/dist/features/calendar/Buddhist.js +1 -0
  51. package/dist/features/calendar/Buddhist.js.map +1 -0
  52. package/dist/features/calendar/Gregorian.js +1 -0
  53. package/dist/features/calendar/Gregorian.js.map +1 -0
  54. package/dist/features/calendar/Islamic.js +1 -0
  55. package/dist/features/calendar/Islamic.js.map +1 -0
  56. package/dist/features/calendar/Japanese.js +1 -0
  57. package/dist/features/calendar/Japanese.js.map +1 -0
  58. package/dist/features/calendar/Persian.js +1 -0
  59. package/dist/features/calendar/Persian.js.map +1 -0
  60. package/dist/generated/assets/cldr/ar.json +5531 -5906
  61. package/dist/generated/assets/cldr/ar_EG.json +5531 -5906
  62. package/dist/generated/assets/cldr/ar_SA.json +5530 -5906
  63. package/dist/generated/assets/cldr/bg.json +4452 -4979
  64. package/dist/generated/assets/cldr/ca.json +4440 -4996
  65. package/dist/generated/assets/cldr/cs.json +4960 -5498
  66. package/dist/generated/assets/cldr/cy.json +5211 -5884
  67. package/dist/generated/assets/cldr/da.json +4308 -4888
  68. package/dist/generated/assets/cldr/de.json +4313 -4916
  69. package/dist/generated/assets/cldr/de_AT.json +4314 -4917
  70. package/dist/generated/assets/cldr/de_CH.json +4312 -4915
  71. package/dist/generated/assets/cldr/el.json +4281 -4883
  72. package/dist/generated/assets/cldr/el_CY.json +4281 -4883
  73. package/dist/generated/assets/cldr/en.json +4316 -4971
  74. package/dist/generated/assets/cldr/en_AU.json +4319 -4962
  75. package/dist/generated/assets/cldr/en_GB.json +4329 -4971
  76. package/dist/generated/assets/cldr/en_HK.json +4337 -4977
  77. package/dist/generated/assets/cldr/en_IE.json +4328 -4971
  78. package/dist/generated/assets/cldr/en_IN.json +4333 -4972
  79. package/dist/generated/assets/cldr/en_NZ.json +4328 -4971
  80. package/dist/generated/assets/cldr/en_PG.json +4329 -4972
  81. package/dist/generated/assets/cldr/en_SG.json +4333 -4973
  82. package/dist/generated/assets/cldr/en_ZA.json +4329 -4972
  83. package/dist/generated/assets/cldr/es.json +4331 -4912
  84. package/dist/generated/assets/cldr/es_AR.json +4334 -4914
  85. package/dist/generated/assets/cldr/es_BO.json +4333 -4913
  86. package/dist/generated/assets/cldr/es_CL.json +4334 -4914
  87. package/dist/generated/assets/cldr/es_CO.json +4333 -4913
  88. package/dist/generated/assets/cldr/es_MX.json +4335 -4915
  89. package/dist/generated/assets/cldr/es_PE.json +4333 -4913
  90. package/dist/generated/assets/cldr/es_UY.json +4335 -4915
  91. package/dist/generated/assets/cldr/es_VE.json +4334 -4914
  92. package/dist/generated/assets/cldr/et.json +4340 -4967
  93. package/dist/generated/assets/cldr/fa.json +4367 -4883
  94. package/dist/generated/assets/cldr/fi.json +4463 -5008
  95. package/dist/generated/assets/cldr/fr.json +4357 -4979
  96. package/dist/generated/assets/cldr/fr_BE.json +4357 -4979
  97. package/dist/generated/assets/cldr/fr_CA.json +4351 -4973
  98. package/dist/generated/assets/cldr/fr_CH.json +4375 -4997
  99. package/dist/generated/assets/cldr/fr_LU.json +4357 -4979
  100. package/dist/generated/assets/cldr/he.json +4869 -5378
  101. package/dist/generated/assets/cldr/hi.json +4295 -4829
  102. package/dist/generated/assets/cldr/hr.json +4583 -4919
  103. package/dist/generated/assets/cldr/hu.json +4364 -4856
  104. package/dist/generated/assets/cldr/id.json +4060 -4658
  105. package/dist/generated/assets/cldr/it.json +4299 -4950
  106. package/dist/generated/assets/cldr/it_CH.json +4299 -4950
  107. package/dist/generated/assets/cldr/ja.json +4211 -4830
  108. package/dist/generated/assets/cldr/kk.json +4339 -4725
  109. package/dist/generated/assets/cldr/ko.json +4189 -4738
  110. package/dist/generated/assets/cldr/lt.json +4850 -5481
  111. package/dist/generated/assets/cldr/lv.json +4587 -5112
  112. package/dist/generated/assets/cldr/ms.json +4021 -4515
  113. package/dist/generated/assets/cldr/nb.json +4335 -4977
  114. package/dist/generated/assets/cldr/nl.json +4294 -4884
  115. package/dist/generated/assets/cldr/nl_BE.json +4294 -4884
  116. package/dist/generated/assets/cldr/pl.json +4667 -5176
  117. package/dist/generated/assets/cldr/pt.json +4235 -4805
  118. package/dist/generated/assets/cldr/pt_PT.json +4372 -4940
  119. package/dist/generated/assets/cldr/ro.json +4563 -5090
  120. package/dist/generated/assets/cldr/ru.json +4909 -5407
  121. package/dist/generated/assets/cldr/ru_UA.json +4909 -5407
  122. package/dist/generated/assets/cldr/sk.json +4939 -5370
  123. package/dist/generated/assets/cldr/sl.json +4910 -5340
  124. package/dist/generated/assets/cldr/sr.json +4585 -5126
  125. package/dist/generated/assets/cldr/sr_Latn.json +4574 -5127
  126. package/dist/generated/assets/cldr/sv.json +4362 -5011
  127. package/dist/generated/assets/cldr/th.json +4214 -4797
  128. package/dist/generated/assets/cldr/tr.json +4400 -4979
  129. package/dist/generated/assets/cldr/uk.json +4858 -5353
  130. package/dist/generated/assets/cldr/vi.json +4070 -4673
  131. package/dist/generated/assets/cldr/zh_CN.json +4100 -4632
  132. package/dist/generated/assets/cldr/zh_HK.json +4108 -4640
  133. package/dist/generated/assets/cldr/zh_SG.json +4108 -4640
  134. package/dist/generated/assets/cldr/zh_TW.json +4131 -4728
  135. package/dist/generated/json-imports/LocaleData-static.js +2 -1
  136. package/dist/generated/json-imports/LocaleData.js +2 -1
  137. package/dist/getCachedLocaleDataInstance.d.ts +4 -0
  138. package/dist/getCachedLocaleDataInstance.js +6 -9
  139. package/dist/getCachedLocaleDataInstance.js.map +1 -0
  140. package/dist/locale/getLocaleData.d.ts +11 -0
  141. package/dist/locale/getLocaleData.js +13 -17
  142. package/dist/locale/getLocaleData.js.map +1 -0
  143. package/dist/sap/base/Log.js +28 -29
  144. package/dist/sap/base/assert.js +5 -6
  145. package/dist/sap/base/i18n/LanguageTag.js +35 -0
  146. package/dist/sap/base/i18n/Localization.d.ts +4 -0
  147. package/dist/sap/base/i18n/Localization.js +12 -0
  148. package/dist/sap/base/i18n/Localization.js.map +1 -0
  149. package/dist/sap/base/i18n/date/CalendarType.js +8 -0
  150. package/dist/sap/base/i18n/date/CalendarWeekNumbering.js +30 -0
  151. package/dist/sap/base/i18n/date/TimezoneUtils.js +89 -0
  152. package/dist/sap/base/util/LoaderExtensions.d.ts +4 -0
  153. package/dist/sap/base/util/LoaderExtensions.js +9 -12
  154. package/dist/sap/base/util/LoaderExtensions.js.map +1 -0
  155. package/dist/sap/ui/base/Metadata.js +20 -9
  156. package/dist/sap/ui/core/CalendarType.js +2 -8
  157. package/dist/sap/ui/core/Configuration.d.ts +17 -0
  158. package/dist/sap/ui/core/Configuration.js +21 -0
  159. package/dist/sap/ui/core/Configuration.js.map +1 -0
  160. package/dist/sap/ui/core/Core.d.ts +26 -0
  161. package/dist/sap/ui/core/Core.js +7 -32
  162. package/dist/sap/ui/core/Core.js.map +1 -0
  163. package/dist/sap/ui/core/FormatSettings.d.ts +10 -0
  164. package/dist/sap/ui/core/FormatSettings.js +14 -0
  165. package/dist/sap/ui/core/FormatSettings.js.map +1 -0
  166. package/dist/sap/ui/core/Locale.js +28 -112
  167. package/dist/sap/ui/core/LocaleData.js +213 -40
  168. package/dist/sap/ui/core/date/Buddhist.js +0 -6
  169. package/dist/sap/ui/core/date/CalendarUtils.js +25 -0
  170. package/dist/sap/ui/core/date/CalendarWeekNumbering.js +2 -0
  171. package/dist/sap/ui/core/date/Islamic.js +3 -3
  172. package/dist/sap/ui/core/date/Japanese.js +4 -4
  173. package/dist/sap/ui/core/date/UI5Date.js +305 -0
  174. package/dist/sap/ui/core/date/UniversalDate.js +73 -26
  175. package/dist/sap/ui/core/format/DateFormat.js +848 -497
  176. package/dist/sap/ui/core/format/TimezoneUtil.js +2 -0
  177. package/{package-scripts.js → package-scripts.cjs} +7 -10
  178. package/package.json +7 -5
  179. package/tsconfig.json +14 -0
  180. package/used-modules.txt +9 -1
  181. package/hash.txt +0 -1
  182. package/src/Assets.js +0 -2
  183. package/src/DateFormat.js +0 -3
  184. package/src/LocaleData.js +0 -3
  185. package/src/dates/CalendarDate.js +0 -223
  186. package/src/dates/ExtremeDates.js +0 -39
  187. package/src/dates/calculateWeekNumber.js +0 -51
  188. package/src/dates/getRoundedTimestamp.js +0 -14
  189. package/src/dates/getTodayUTCTimestamp.js +0 -9
  190. package/src/dates/modifyDateBy.js +0 -42
  191. package/src/getCachedLocaleDataInstance.js +0 -13
  192. package/src/locale/getLocaleData.js +0 -27
  193. package/src/sap/base/util/LoaderExtensions.js +0 -17
  194. package/src/sap/ui/core/Core.js +0 -38
  195. /package/{config/.eslintrc.js → .eslintrc.cjs} +0 -0
  196. /package/{src/features/calendar/Buddhist.js → dist/features/calendar/Buddhist.d.ts} +0 -0
  197. /package/{src/features/calendar/Gregorian.js → dist/features/calendar/Gregorian.d.ts} +0 -0
  198. /package/{src/features/calendar/Islamic.js → dist/features/calendar/Islamic.d.ts} +0 -0
  199. /package/{src/features/calendar/Japanese.js → dist/features/calendar/Japanese.d.ts} +0 -0
  200. /package/{src/features/calendar/Persian.js → dist/features/calendar/Persian.d.ts} +0 -0
@@ -0,0 +1,26 @@
1
+ /**
2
+ * OpenUI5 Core shim
3
+ */
4
+ declare const Core: {
5
+ getConfiguration: () => {
6
+ getLanguage: () => string | undefined;
7
+ getCalendarType: () => import("@ui5/webcomponents-base/dist/types/CalendarType.js").default;
8
+ getSupportedLanguages: () => string[] | null;
9
+ getOriginInfo: () => void;
10
+ getFormatSettings: () => {
11
+ getFormatLocale: (lang?: string | undefined) => import("@ui5/webcomponents-base/dist/locale/Locale.js").default;
12
+ getLegacyDateFormat: () => void;
13
+ getCustomLocaleData: () => void;
14
+ getLegacyDateCalendarCustomizing: typeof import("@ui5/webcomponents-base/dist/features/LegacyDateFormats.js").default.getLegacyDateCalendarCustomizing;
15
+ };
16
+ getTimezone: () => string;
17
+ };
18
+ getLibraryResourceBundle: void;
19
+ getFormatSettings: () => {
20
+ getFormatLocale: (lang?: string | undefined) => import("@ui5/webcomponents-base/dist/locale/Locale.js").default;
21
+ getLegacyDateFormat: () => void;
22
+ getCustomLocaleData: () => void;
23
+ getLegacyDateCalendarCustomizing: typeof import("@ui5/webcomponents-base/dist/features/LegacyDateFormats.js").default.getLegacyDateCalendarCustomizing;
24
+ };
25
+ };
26
+ export default Core;
@@ -1,38 +1,13 @@
1
- import { getLanguage } from "@ui5/webcomponents-base/dist/config/Language.js";
2
- import { getCalendarType } from "@ui5/webcomponents-base/dist/config/CalendarType.js";
3
- import getDesigntimePropertyAsArray from "@ui5/webcomponents-base/dist/util/getDesigntimePropertyAsArray.js";
4
- import getLocale from "@ui5/webcomponents-base/dist/locale/getLocale.js";
5
-
6
- const emptyFn = () => {};
7
-
8
- /**
9
- * OpenUI5 FormatSettings shim
10
- */
11
- const FormatSettings = {
12
- getFormatLocale: getLocale,
13
- getLegacyDateFormat: emptyFn,
14
- getLegacyDateCalendarCustomizing: emptyFn,
15
- getCustomLocaleData: emptyFn,
16
- };
17
-
18
- /**
19
- * OpenUI5 Configuration Shim
20
- */
21
- const Configuration = {
22
- getLanguage,
23
- getCalendarType,
24
- getSupportedLanguages: () => getDesigntimePropertyAsArray("$core-i18n-locales:,ar,bg,ca,cs,da,de,el,en,es,et,fi,fr,hi,hr,hu,it,iw,ja,ko,lt,lv,nl,no,pl,pt,ro,ru,sh,sk,sl,sv,th,tr,uk,vi,zh_CN,zh_TW$"),
25
- getOriginInfo: emptyFn,
26
- getFormatSettings: () => FormatSettings,
27
- };
28
-
1
+ import FormatSettings from "./FormatSettings.js";
2
+ import Configuration from "./Configuration.js";
3
+ const emptyFn = () => { };
29
4
  /**
30
5
  * OpenUI5 Core shim
31
6
  */
32
7
  const Core = {
33
- getConfiguration: () => Configuration,
34
- getLibraryResourceBundle: emptyFn(),
35
- getFormatSettings: () => FormatSettings,
8
+ getConfiguration: () => Configuration,
9
+ getLibraryResourceBundle: emptyFn(),
10
+ getFormatSettings: () => FormatSettings,
36
11
  };
37
-
38
12
  export default Core;
13
+ //# sourceMappingURL=Core.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Core.js","sourceRoot":"","sources":["../../../../src/sap/ui/core/Core.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,qBAAqB,CAAC;AACjD,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAE/C,MAAM,OAAO,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;AAEzB;;GAEG;AACH,MAAM,IAAI,GAAG;IACZ,gBAAgB,EAAE,GAAG,EAAE,CAAC,aAAa;IACrC,wBAAwB,EAAE,OAAO,EAAE;IACnC,iBAAiB,EAAE,GAAG,EAAE,CAAC,cAAc;CACvC,CAAC;AAEF,eAAe,IAAI,CAAC","sourcesContent":["import FormatSettings from \"./FormatSettings.js\";\nimport Configuration from \"./Configuration.js\";\n\nconst emptyFn = () => {};\n\n/**\n * OpenUI5 Core shim\n */\nconst Core = {\n\tgetConfiguration: () => Configuration,\n\tgetLibraryResourceBundle: emptyFn(),\n\tgetFormatSettings: () => FormatSettings,\n};\n\nexport default Core;\n"]}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * OpenUI5 FormatSettings shim
3
+ */
4
+ declare const FormatSettings: {
5
+ getFormatLocale: (lang?: string | undefined) => import("@ui5/webcomponents-base/dist/locale/Locale").default;
6
+ getLegacyDateFormat: () => void;
7
+ getCustomLocaleData: () => void;
8
+ getLegacyDateCalendarCustomizing: typeof import("@ui5/webcomponents-base/dist/features/LegacyDateFormats").default.getLegacyDateCalendarCustomizing;
9
+ };
10
+ export default FormatSettings;
@@ -0,0 +1,14 @@
1
+ import getLocale from "@ui5/webcomponents-base/dist/locale/getLocale.js";
2
+ import { getLegacyDateCalendarCustomizing } from "@ui5/webcomponents-base/dist/config/FormatSettings.js";
3
+ const emptyFn = () => { };
4
+ /**
5
+ * OpenUI5 FormatSettings shim
6
+ */
7
+ const FormatSettings = {
8
+ getFormatLocale: getLocale,
9
+ getLegacyDateFormat: emptyFn,
10
+ getCustomLocaleData: emptyFn,
11
+ getLegacyDateCalendarCustomizing,
12
+ };
13
+ export default FormatSettings;
14
+ //# sourceMappingURL=FormatSettings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormatSettings.js","sourceRoot":"","sources":["../../../../src/sap/ui/core/FormatSettings.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,kDAAkD,CAAC;AACzE,OAAO,EAAE,gCAAgC,EAAE,MAAM,uDAAuD,CAAC;AAEzG,MAAM,OAAO,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;AAEzB;;GAEG;AACH,MAAM,cAAc,GAAG;IACtB,eAAe,EAAE,SAAS;IAC1B,mBAAmB,EAAE,OAAO;IAC5B,mBAAmB,EAAE,OAAO;IAC5B,gCAAgC;CAChC,CAAC;AAEF,eAAe,cAAc,CAAC","sourcesContent":["import getLocale from \"@ui5/webcomponents-base/dist/locale/getLocale.js\";\nimport { getLegacyDateCalendarCustomizing } from \"@ui5/webcomponents-base/dist/config/FormatSettings.js\";\n\nconst emptyFn = () => {};\n\n/**\n * OpenUI5 FormatSettings shim\n */\nconst FormatSettings = {\n\tgetFormatLocale: getLocale,\n\tgetLegacyDateFormat: emptyFn,\n\tgetCustomLocaleData: emptyFn,\n\tgetLegacyDateCalendarCustomizing,\n};\n\nexport default FormatSettings;\n"]}
@@ -1,146 +1,62 @@
1
- import BaseObject from '../base/Object.js';
2
1
  import assert from '../../base/assert.js';
3
- var rLocale = /^((?:[A-Z]{2,3}(?:-[A-Z]{3}){0,3})|[A-Z]{4}|[A-Z]{5,8})(?:-([A-Z]{4}))?(?:-([A-Z]{2}|[0-9]{3}))?((?:-[0-9A-Z]{5,8}|-[0-9][0-9A-Z]{3})*)((?:-[0-9A-WYZ](?:-[0-9A-Z]{2,8})+)*)(?:-(X(?:-[0-9A-Z]{1,8})+))?$/i;
2
+ import BaseObject from '../base/Object.js';
3
+ import Localization from '../../base/i18n/Localization.js';
4
+ import LanguageTag from '../../base/i18n/LanguageTag.js';
4
5
  var Locale = BaseObject.extend('sap.ui.core.Locale', {
5
- constructor: function (sLocaleId) {
6
+ constructor: function (vLocale) {
6
7
  BaseObject.apply(this);
7
- var aResult = rLocale.exec(sLocaleId.replace(/_/g, '-'));
8
- if (aResult === null) {
9
- throw new TypeError('The given language \'' + sLocaleId + '\' does not adhere to BCP-47.');
10
- }
11
- this.sLocaleId = sLocaleId;
12
- this.sLanguage = aResult[1] || null;
13
- this.sScript = aResult[2] || null;
14
- this.sRegion = aResult[3] || null;
15
- this.sVariant = aResult[4] && aResult[4].slice(1) || null;
16
- this.sExtension = aResult[5] && aResult[5].slice(1) || null;
17
- this.sPrivateUse = aResult[6] || null;
18
- if (this.sLanguage) {
19
- this.sLanguage = this.sLanguage.toLowerCase();
20
- }
21
- if (this.sScript) {
22
- this.sScript = this.sScript.toLowerCase().replace(/^[a-z]/, function ($) {
23
- return $.toUpperCase();
24
- });
25
- }
26
- if (this.sRegion) {
27
- this.sRegion = this.sRegion.toUpperCase();
8
+ if (vLocale instanceof LanguageTag) {
9
+ this.oLanguageTag = vLocale;
10
+ this.sLocaleId = this.oLanguageTag.toString();
11
+ } else {
12
+ this.oLanguageTag = new LanguageTag(vLocale);
13
+ this.sLocaleId = vLocale;
28
14
  }
15
+ Object.assign(this, this.oLanguageTag);
16
+ this.sLanguage = this.language;
29
17
  },
30
18
  getLanguage: function () {
31
- return this.sLanguage;
19
+ return this.language;
32
20
  },
33
21
  getScript: function () {
34
- return this.sScript;
22
+ return this.script;
35
23
  },
36
24
  getRegion: function () {
37
- return this.sRegion;
25
+ return this.region;
38
26
  },
39
27
  getVariant: function () {
40
- return this.sVariant;
28
+ return this.variant;
41
29
  },
42
30
  getVariantSubtags: function () {
43
- return this.sVariant ? this.sVariant.split('-') : [];
31
+ return this.variantSubtags;
44
32
  },
45
33
  getExtension: function () {
46
- return this.sExtension;
34
+ return this.extension;
47
35
  },
48
36
  getExtensionSubtags: function () {
49
- return this.sExtension ? this.sExtension.slice(2).split('-') : [];
37
+ return this.extensionSubtags;
50
38
  },
51
39
  getPrivateUse: function () {
52
- return this.sPrivateUse;
40
+ return this.privateUse;
53
41
  },
54
42
  getPrivateUseSubtags: function () {
55
- return this.sPrivateUse ? this.sPrivateUse.slice(2).split('-') : [];
43
+ return this.privateUseSubtags;
56
44
  },
57
45
  hasPrivateUseSubtag: function (sSubtag) {
58
46
  assert(sSubtag && sSubtag.match(/^[0-9A-Z]{1,8}$/i), 'subtag must be a valid BCP47 private use tag');
59
- return this.getPrivateUseSubtags().indexOf(sSubtag) >= 0;
47
+ return this.privateUseSubtags.indexOf(sSubtag) >= 0;
60
48
  },
61
49
  toString: function () {
62
- return join(this.sLanguage, this.sScript, this.sRegion, this.sVariant, this.sExtension, this.sPrivateUse);
63
- },
64
- toLanguageTag: function () {
65
- var sLanguage = this.getModernLanguage();
66
- var sScript = this.sScript;
67
- if (sLanguage === 'sr' && sScript === 'Latn') {
68
- sLanguage = 'sh';
69
- sScript = null;
70
- }
71
- return join(sLanguage, sScript, this.sRegion, this.sVariant, this.sExtension, this.sPrivateUse);
72
- },
73
- getModernLanguage: function () {
74
- return M_ISO639_OLD_TO_NEW[this.sLanguage] || this.sLanguage;
50
+ return this.oLanguageTag.toString();
75
51
  },
76
52
  getSAPLogonLanguage: function () {
77
- var sLanguage = this.sLanguage || '';
78
- if (sLanguage.indexOf('-') >= 0) {
79
- sLanguage = sLanguage.slice(0, sLanguage.indexOf('-'));
80
- }
81
- sLanguage = M_ISO639_OLD_TO_NEW[sLanguage] || sLanguage;
82
- if (sLanguage === 'zh' && !this.sScript && this.sRegion === 'TW') {
83
- return 'ZF';
84
- }
85
- return M_LOCALE_TO_ABAP_LANGUAGE[join(sLanguage, this.sScript)] || M_LOCALE_TO_ABAP_LANGUAGE[join(sLanguage, this.sRegion)] || M_LOCALE_TO_ABAP_LANGUAGE[getPseudoLanguageTag(this.sPrivateUse)] || sLanguage.toUpperCase();
53
+ return Localization._getSAPLogonLanguage(this);
86
54
  }
87
55
  });
88
- function getPseudoLanguageTag(sPrivateUse) {
89
- if (sPrivateUse) {
90
- var m = /-(saptrc|sappsd|saprigi)(?:-|$)/i.exec(sPrivateUse);
91
- return m && 'en-US-x-' + m[1].toLowerCase();
92
- }
93
- }
94
- var M_ISO639_OLD_TO_NEW = {
95
- 'iw': 'he',
96
- 'ji': 'yi'
97
- };
98
- var M_ABAP_LANGUAGE_TO_LOCALE = {
99
- 'ZH': 'zh-Hans',
100
- 'ZF': 'zh-Hant',
101
- 'SH': 'sr-Latn',
102
- '6N': 'en-GB',
103
- '1P': 'pt-PT',
104
- '1X': 'es-MX',
105
- '3F': 'fr-CA',
106
- '1Q': 'en-US-x-saptrc',
107
- '2Q': 'en-US-x-sappsd',
108
- '3Q': 'en-US-x-saprigi'
109
- };
110
- var M_LOCALE_TO_ABAP_LANGUAGE = inverse(M_ABAP_LANGUAGE_TO_LOCALE);
111
- function getDesigntimePropertyAsArray(sValue) {
112
- var m = /\$([-a-z0-9A-Z._]+)(?::([^$]*))?\$/.exec(sValue);
113
- return m && m[2] ? m[2].split(/,/) : null;
114
- }
115
- var A_RTL_LOCALES = getDesigntimePropertyAsArray('$cldr-rtl-locales:ar,fa,he$') || [];
116
- Locale._cldrLocales = getDesigntimePropertyAsArray('$cldr-locales:ar,ar_EG,ar_SA,bg,ca,cy,cs,da,de,de_AT,de_CH,el,el_CY,en,en_AU,en_GB,en_HK,en_IE,en_IN,en_NZ,en_PG,en_SG,en_ZA,es,es_AR,es_BO,es_CL,es_CO,es_MX,es_PE,es_UY,es_VE,et,fa,fi,fr,fr_BE,fr_CA,fr_CH,fr_LU,he,hi,hr,hu,id,it,it_CH,ja,kk,ko,lt,lv,ms,nb,nl,nl_BE,pl,pt,pt_PT,ro,ru,ru_UA,sk,sl,sr,sr_Latn,sv,th,tr,uk,vi,zh_CN,zh_HK,zh_SG,zh_TW$');
117
- Locale._coreI18nLocales = getDesigntimePropertyAsArray('$core-i18n-locales:,ar,bg,ca,cs,da,de,el,en,en_GB,es,es_MX,et,fi,fr,hi,hr,hu,it,iw,ja,kk,ko,lt,lv,ms,nl,no,pl,pt,ro,ru,sh,sk,sl,sv,th,tr,uk,vi,zh_CN,zh_TW$');
118
- Locale._impliesRTL = function (vLanguage) {
119
- var oLocale = vLanguage instanceof Locale ? vLanguage : new Locale(vLanguage);
120
- var sLanguage = oLocale.getLanguage() || '';
121
- sLanguage = sLanguage && M_ISO639_OLD_TO_NEW[sLanguage] || sLanguage;
122
- var sRegion = oLocale.getRegion() || '';
123
- if (sRegion && A_RTL_LOCALES.indexOf(sLanguage + '_' + sRegion) >= 0) {
124
- return true;
125
- }
126
- return A_RTL_LOCALES.indexOf(sLanguage) >= 0;
127
- };
128
- Locale.fromSAPLogonLanguage = function (sSAPLogonLanguage) {
129
- if (sSAPLogonLanguage && typeof sSAPLogonLanguage === 'string') {
130
- sSAPLogonLanguage = M_ABAP_LANGUAGE_TO_LOCALE[sSAPLogonLanguage.toUpperCase()] || sSAPLogonLanguage;
131
- try {
132
- return new Locale(sSAPLogonLanguage);
133
- } catch (e) {
134
- }
56
+ Locale._getCoreLocale = function (oLocale) {
57
+ if (oLocale instanceof LanguageTag) {
58
+ oLocale = new Locale(oLocale);
135
59
  }
60
+ return oLocale;
136
61
  };
137
- function join() {
138
- return Array.prototype.filter.call(arguments, Boolean).join('-');
139
- }
140
- function inverse(obj) {
141
- return Object.keys(obj).reduce(function (inv, key) {
142
- inv[obj[key]] = key;
143
- return inv;
144
- }, {});
145
- }
146
62
  export default Locale;