@ui5/webcomponents-localization 0.0.0-c6d8872f3 → 0.0.0-cad512aa3

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 (188) hide show
  1. package/.eslintignore +1 -0
  2. package/.eslintrc.js +3 -0
  3. package/CHANGELOG.md +394 -0
  4. package/README.md +36 -6
  5. package/dist/Assets-static.d.ts +1 -0
  6. package/dist/Assets-static.js +3 -0
  7. package/dist/Assets-static.js.map +1 -0
  8. package/dist/Assets.d.ts +1 -0
  9. package/dist/Assets.js +2 -1
  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 +41 -0
  18. package/dist/dates/CalendarDate.js +170 -181
  19. package/dist/dates/CalendarDate.js.map +1 -0
  20. package/dist/dates/ExtremeDates.d.ts +5 -0
  21. package/dist/dates/ExtremeDates.js +29 -0
  22. package/dist/dates/ExtremeDates.js.map +1 -0
  23. package/dist/dates/UniversalDate.d.ts +46 -0
  24. package/dist/dates/UniversalDate.js +5 -0
  25. package/dist/dates/UniversalDate.js.map +1 -0
  26. package/dist/dates/calculateWeekNumber.d.ts +4 -0
  27. package/dist/dates/calculateWeekNumber.js +42 -48
  28. package/dist/dates/calculateWeekNumber.js.map +1 -0
  29. package/dist/dates/convertMonthNumbersToMonthNames.d.ts +16 -0
  30. package/dist/dates/convertMonthNumbersToMonthNames.js +30 -0
  31. package/dist/dates/convertMonthNumbersToMonthNames.js.map +1 -0
  32. package/dist/dates/getDaysInMonth.d.ts +3 -0
  33. package/dist/dates/getDaysInMonth.js +10 -0
  34. package/dist/dates/getDaysInMonth.js.map +1 -0
  35. package/dist/dates/getRoundedTimestamp.d.ts +7 -0
  36. package/dist/dates/getRoundedTimestamp.js +14 -0
  37. package/dist/dates/getRoundedTimestamp.js.map +1 -0
  38. package/dist/dates/getTodayUTCTimestamp.d.ts +7 -0
  39. package/dist/dates/getTodayUTCTimestamp.js +8 -0
  40. package/dist/dates/getTodayUTCTimestamp.js.map +1 -0
  41. package/dist/dates/modifyDateBy.d.ts +13 -0
  42. package/dist/dates/modifyDateBy.js +40 -0
  43. package/dist/dates/modifyDateBy.js.map +1 -0
  44. package/dist/dates/transformDateToSecondaryType.d.ts +7 -0
  45. package/dist/dates/transformDateToSecondaryType.js +17 -0
  46. package/dist/dates/transformDateToSecondaryType.js.map +1 -0
  47. package/dist/features/calendar/Buddhist.js +1 -0
  48. package/dist/features/calendar/Buddhist.js.map +1 -0
  49. package/dist/features/calendar/Gregorian.js +1 -0
  50. package/dist/features/calendar/Gregorian.js.map +1 -0
  51. package/dist/features/calendar/Islamic.js +1 -0
  52. package/dist/features/calendar/Islamic.js.map +1 -0
  53. package/dist/features/calendar/Japanese.js +1 -0
  54. package/dist/features/calendar/Japanese.js.map +1 -0
  55. package/dist/features/calendar/Persian.js +1 -0
  56. package/dist/features/calendar/Persian.js.map +1 -0
  57. package/dist/generated/assets/cldr/ar.json +2804 -5904
  58. package/dist/generated/assets/cldr/ar_EG.json +2804 -5904
  59. package/dist/generated/assets/cldr/ar_SA.json +2804 -5904
  60. package/dist/generated/assets/cldr/bg.json +2727 -4977
  61. package/dist/generated/assets/cldr/ca.json +2670 -4994
  62. package/dist/generated/assets/cldr/cs.json +2710 -5496
  63. package/dist/generated/assets/cldr/cy.json +2793 -0
  64. package/dist/generated/assets/cldr/da.json +2591 -4886
  65. package/dist/generated/assets/cldr/de.json +2608 -4914
  66. package/dist/generated/assets/cldr/de_AT.json +2608 -4915
  67. package/dist/generated/assets/cldr/de_CH.json +2608 -4913
  68. package/dist/generated/assets/cldr/el.json +2589 -4881
  69. package/dist/generated/assets/cldr/el_CY.json +2589 -4881
  70. package/dist/generated/assets/cldr/en.json +2577 -4968
  71. package/dist/generated/assets/cldr/en_AU.json +2586 -4960
  72. package/dist/generated/assets/cldr/en_GB.json +2578 -4969
  73. package/dist/generated/assets/cldr/en_HK.json +2584 -4975
  74. package/dist/generated/assets/cldr/en_IE.json +2578 -4969
  75. package/dist/generated/assets/cldr/en_IN.json +2579 -4970
  76. package/dist/generated/assets/cldr/en_NZ.json +2578 -4969
  77. package/dist/generated/assets/cldr/en_PG.json +2578 -4970
  78. package/dist/generated/assets/cldr/en_SG.json +2579 -4971
  79. package/dist/generated/assets/cldr/en_ZA.json +2578 -4970
  80. package/dist/generated/assets/cldr/es.json +2633 -4910
  81. package/dist/generated/assets/cldr/es_AR.json +2638 -4912
  82. package/dist/generated/assets/cldr/es_BO.json +2638 -4911
  83. package/dist/generated/assets/cldr/es_CL.json +2638 -4912
  84. package/dist/generated/assets/cldr/es_CO.json +2637 -4911
  85. package/dist/generated/assets/cldr/es_MX.json +2638 -4913
  86. package/dist/generated/assets/cldr/es_PE.json +2638 -4911
  87. package/dist/generated/assets/cldr/es_UY.json +2638 -4913
  88. package/dist/generated/assets/cldr/es_VE.json +2638 -4912
  89. package/dist/generated/assets/cldr/et.json +2593 -4965
  90. package/dist/generated/assets/cldr/fa.json +2606 -4881
  91. package/dist/generated/assets/cldr/fi.json +2635 -5006
  92. package/dist/generated/assets/cldr/fr.json +2583 -4977
  93. package/dist/generated/assets/cldr/fr_BE.json +2583 -4977
  94. package/dist/generated/assets/cldr/fr_CA.json +2598 -4971
  95. package/dist/generated/assets/cldr/fr_CH.json +2600 -4995
  96. package/dist/generated/assets/cldr/fr_LU.json +2583 -4977
  97. package/dist/generated/assets/cldr/he.json +2699 -5376
  98. package/dist/generated/assets/cldr/hi.json +2593 -4827
  99. package/dist/generated/assets/cldr/hr.json +2646 -4917
  100. package/dist/generated/assets/cldr/hu.json +2592 -4854
  101. package/dist/generated/assets/cldr/id.json +2538 -4656
  102. package/dist/generated/assets/cldr/it.json +2583 -4948
  103. package/dist/generated/assets/cldr/it_CH.json +2583 -4948
  104. package/dist/generated/assets/cldr/ja.json +2655 -4828
  105. package/dist/generated/assets/cldr/kk.json +2583 -4723
  106. package/dist/generated/assets/cldr/ko.json +2632 -4736
  107. package/dist/generated/assets/cldr/lt.json +2714 -5479
  108. package/dist/generated/assets/cldr/lv.json +2638 -5110
  109. package/dist/generated/assets/cldr/ms.json +2532 -4513
  110. package/dist/generated/assets/cldr/nb.json +2615 -4975
  111. package/dist/generated/assets/cldr/nl.json +2595 -4882
  112. package/dist/generated/assets/cldr/nl_BE.json +2595 -4882
  113. package/dist/generated/assets/cldr/pl.json +2717 -5174
  114. package/dist/generated/assets/cldr/pt.json +2600 -4803
  115. package/dist/generated/assets/cldr/pt_PT.json +2651 -4938
  116. package/dist/generated/assets/cldr/ro.json +2639 -5088
  117. package/dist/generated/assets/cldr/ru.json +2698 -5405
  118. package/dist/generated/assets/cldr/ru_UA.json +2698 -5405
  119. package/dist/generated/assets/cldr/sk.json +2720 -5368
  120. package/dist/generated/assets/cldr/sl.json +2682 -5338
  121. package/dist/generated/assets/cldr/sr.json +2657 -5124
  122. package/dist/generated/assets/cldr/sr_Latn.json +2660 -0
  123. package/dist/generated/assets/cldr/sv.json +2625 -5009
  124. package/dist/generated/assets/cldr/th.json +2626 -4795
  125. package/dist/generated/assets/cldr/tr.json +2606 -4977
  126. package/dist/generated/assets/cldr/uk.json +2678 -5351
  127. package/dist/generated/assets/cldr/vi.json +2549 -4671
  128. package/dist/generated/assets/cldr/zh_CN.json +2541 -4630
  129. package/dist/generated/assets/cldr/zh_HK.json +2549 -4638
  130. package/dist/generated/assets/cldr/zh_SG.json +2548 -4638
  131. package/dist/generated/assets/cldr/zh_TW.json +2556 -4726
  132. package/dist/generated/json-imports/LocaleData-static.js +90 -0
  133. package/dist/generated/json-imports/LocaleData.js +93 -0
  134. package/dist/getCachedLocaleDataInstance.d.ts +4 -0
  135. package/dist/getCachedLocaleDataInstance.js +10 -0
  136. package/dist/getCachedLocaleDataInstance.js.map +1 -0
  137. package/dist/locale/getLocaleData.d.ts +11 -0
  138. package/dist/locale/getLocaleData.js +13 -17
  139. package/dist/locale/getLocaleData.js.map +1 -0
  140. package/dist/sap/base/Log.js +28 -37
  141. package/dist/sap/base/assert.js +5 -10
  142. package/dist/sap/base/util/LoaderExtensions.d.ts +4 -0
  143. package/dist/sap/base/util/LoaderExtensions.js +11 -4
  144. package/dist/sap/base/util/LoaderExtensions.js.map +1 -0
  145. package/dist/sap/base/util/ObjectPath.js +1 -1
  146. package/dist/sap/base/util/array/uniqueSort.js +7 -7
  147. package/dist/sap/base/util/deepEqual.js +1 -5
  148. package/dist/sap/ui/base/Interface.js +3 -5
  149. package/dist/sap/ui/base/Metadata.js +1 -3
  150. package/dist/sap/ui/base/Object.js +26 -2
  151. package/dist/sap/ui/core/Configuration.d.ts +17 -0
  152. package/dist/sap/ui/core/Configuration.js +20 -0
  153. package/dist/sap/ui/core/Configuration.js.map +1 -0
  154. package/dist/sap/ui/core/Core.d.ts +26 -0
  155. package/dist/sap/ui/core/Core.js +7 -32
  156. package/dist/sap/ui/core/Core.js.map +1 -0
  157. package/dist/sap/ui/core/FormatSettings.d.ts +10 -0
  158. package/dist/sap/ui/core/FormatSettings.js +14 -0
  159. package/dist/sap/ui/core/FormatSettings.js.map +1 -0
  160. package/dist/sap/ui/core/Locale.js +70 -31
  161. package/dist/sap/ui/core/LocaleData.js +133 -1506
  162. package/dist/sap/ui/core/date/Buddhist.js +0 -6
  163. package/dist/sap/ui/core/date/CalendarUtils.js +36 -0
  164. package/dist/sap/ui/core/date/CalendarWeekNumbering.js +7 -0
  165. package/dist/sap/ui/core/date/Islamic.js +3 -3
  166. package/dist/sap/ui/core/date/Japanese.js +4 -4
  167. package/dist/sap/ui/core/date/UniversalDate.js +82 -23
  168. package/dist/sap/ui/core/format/DateFormat.js +530 -222
  169. package/dist/sap/ui/core/format/TimezoneUtil.js +94 -0
  170. package/package-scripts.js +16 -8
  171. package/package.json +13 -12
  172. package/tsconfig.json +14 -0
  173. package/used-modules.txt +10 -7
  174. package/dist/json-imports/LocaleData.js +0 -171
  175. package/src/Assets.js +0 -2
  176. package/src/DateFormat.js +0 -3
  177. package/src/LocaleData.js +0 -3
  178. package/src/dates/CalendarDate.js +0 -203
  179. package/src/dates/calculateWeekNumber.js +0 -51
  180. package/src/json-imports/LocaleData.js +0 -171
  181. package/src/locale/getLocaleData.js +0 -27
  182. package/src/sap/base/util/LoaderExtensions.js +0 -7
  183. package/src/sap/ui/core/Core.js +0 -38
  184. /package/{src/features/calendar/Buddhist.js → dist/features/calendar/Buddhist.d.ts} +0 -0
  185. /package/{src/features/calendar/Gregorian.js → dist/features/calendar/Gregorian.d.ts} +0 -0
  186. /package/{src/features/calendar/Islamic.js → dist/features/calendar/Islamic.d.ts} +0 -0
  187. /package/{src/features/calendar/Japanese.js → dist/features/calendar/Japanese.d.ts} +0 -0
  188. /package/{src/features/calendar/Persian.js → dist/features/calendar/Persian.d.ts} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Configuration.js","sourceRoot":"","sources":["../../../../src/sap/ui/core/Configuration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iDAAiD,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,qDAAqD,CAAC;AACtF,OAAO,4BAA4B,MAAM,mEAAmE,CAAC;AAC7G,aAAa;AACb,OAAO,YAAY,MAAM,0BAA0B,CAAC;AACpD,OAAO,cAAc,MAAM,qBAAqB,CAAC;AAEjD,MAAM,OAAO,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;AAEzB;;GAEG;AACH,MAAM,aAAa,GAAG;IACrB,WAAW;IACX,eAAe;IACf,qBAAqB,EAAE,GAAG,EAAE,CAAC,4BAA4B,CAAC,2IAA2I,CAAC;IACtM,aAAa,EAAE,OAAO;IACtB,iBAAiB,EAAE,GAAG,EAAE,CAAC,cAAc;IACvC,WAAW,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,gBAAgB,EAAY;CAC5D,CAAC;AAEF,eAAe,aAAa,CAAC","sourcesContent":["import { getLanguage } from \"@ui5/webcomponents-base/dist/config/Language.js\";\nimport { getCalendarType } from \"@ui5/webcomponents-base/dist/config/CalendarType.js\";\nimport getDesigntimePropertyAsArray from \"@ui5/webcomponents-base/dist/util/getDesigntimePropertyAsArray.js\";\n// @ts-ignore\nimport TimezoneUtil from \"./format/TimezoneUtil.js\";\nimport FormatSettings from \"./FormatSettings.js\";\n\nconst emptyFn = () => {};\n\n/**\n * OpenUI5 Configuration Shim\n */\nconst Configuration = {\n\tgetLanguage,\n\tgetCalendarType,\n\tgetSupportedLanguages: () => 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$\"),\n\tgetOriginInfo: emptyFn,\n\tgetFormatSettings: () => FormatSettings,\n\tgetTimezone: () => TimezoneUtil.getLocalTimezone() as string,\n};\n\nexport default Configuration;\n"]}
@@ -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,12 +1,13 @@
1
1
  import BaseObject from '../base/Object.js';
2
2
  import assert from '../../base/assert.js';
3
+ import CalendarType from './CalendarType.js';
3
4
  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;
4
5
  var Locale = BaseObject.extend('sap.ui.core.Locale', {
5
6
  constructor: function (sLocaleId) {
6
7
  BaseObject.apply(this);
7
8
  var aResult = rLocale.exec(sLocaleId.replace(/_/g, '-'));
8
9
  if (aResult === null) {
9
- throw 'The given language \'' + sLocaleId + '\' does not adhere to BCP-47.';
10
+ throw new TypeError('The given language \'' + sLocaleId + '\' does not adhere to BCP-47.');
10
11
  }
11
12
  this.sLocaleId = sLocaleId;
12
13
  this.sLanguage = aResult[1] || null;
@@ -59,54 +60,74 @@ var Locale = BaseObject.extend('sap.ui.core.Locale', {
59
60
  return this.getPrivateUseSubtags().indexOf(sSubtag) >= 0;
60
61
  },
61
62
  toString: function () {
62
- var r = [this.sLanguage];
63
- if (this.sScript) {
64
- r.push(this.sScript);
65
- }
66
- if (this.sRegion) {
67
- r.push(this.sRegion);
68
- }
69
- if (this.sVariant) {
70
- r.push(this.sVariant);
71
- }
72
- if (this.sExtension) {
73
- r.push(this.sExtension);
74
- }
75
- if (this.sPrivateUse) {
76
- r.push(this.sPrivateUse);
63
+ return join(this.sLanguage, this.sScript, this.sRegion, this.sVariant, this.sExtension, this.sPrivateUse);
64
+ },
65
+ toLanguageTag: function () {
66
+ var sLanguage = this.getModernLanguage();
67
+ var sScript = this.sScript;
68
+ if (sLanguage === 'sr' && sScript === 'Latn') {
69
+ sLanguage = 'sh';
70
+ sScript = null;
77
71
  }
78
- return r.join('-');
72
+ return join(sLanguage, sScript, this.sRegion, this.sVariant, this.sExtension, this.sPrivateUse);
73
+ },
74
+ getModernLanguage: function () {
75
+ return M_ISO639_OLD_TO_NEW[this.sLanguage] || this.sLanguage;
79
76
  },
80
77
  getSAPLogonLanguage: function () {
81
- var sLanguage = this.sLanguage || '', m;
78
+ return this._getSAPLogonLanguage();
79
+ },
80
+ _getSAPLogonLanguage: function () {
81
+ var sLanguage = this.sLanguage || '';
82
82
  if (sLanguage.indexOf('-') >= 0) {
83
83
  sLanguage = sLanguage.slice(0, sLanguage.indexOf('-'));
84
84
  }
85
85
  sLanguage = M_ISO639_OLD_TO_NEW[sLanguage] || sLanguage;
86
- if (sLanguage === 'zh') {
87
- if (this.sScript === 'Hant' || !this.sScript && this.sRegion === 'TW') {
88
- sLanguage = 'zf';
89
- }
90
- }
91
- if (this.sPrivateUse && (m = /-(saptrc|sappsd)(?:-|$)/i.exec(this.sPrivateUse))) {
92
- sLanguage = m[1].toLowerCase() === 'saptrc' ? '1Q' : '2Q';
86
+ if (sLanguage === 'zh' && !this.sScript && this.sRegion === 'TW') {
87
+ return 'ZF';
93
88
  }
94
- return sLanguage.toUpperCase();
89
+ 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();
90
+ },
91
+ getPreferredCalendarType: function () {
92
+ return Locale._mPreferredCalendar[this.getLanguage() + '-' + this.getRegion()] || Locale._mPreferredCalendar[this.getLanguage()] || Locale._mPreferredCalendar['default'];
95
93
  }
96
94
  });
95
+ function getPseudoLanguageTag(sPrivateUse) {
96
+ if (sPrivateUse) {
97
+ var m = /-(saptrc|sappsd|saprigi)(?:-|$)/i.exec(sPrivateUse);
98
+ return m && 'en-US-x-' + m[1].toLowerCase();
99
+ }
100
+ }
97
101
  var M_ISO639_OLD_TO_NEW = {
98
102
  'iw': 'he',
99
- 'ji': 'yi',
100
- 'in': 'id',
101
- 'sh': 'sr'
103
+ 'ji': 'yi'
102
104
  };
105
+ var M_ABAP_LANGUAGE_TO_LOCALE = {
106
+ 'ZH': 'zh-Hans',
107
+ 'ZF': 'zh-Hant',
108
+ 'SH': 'sr-Latn',
109
+ '6N': 'en-GB',
110
+ '1P': 'pt-PT',
111
+ '1X': 'es-MX',
112
+ '3F': 'fr-CA',
113
+ '1Q': 'en-US-x-saptrc',
114
+ '2Q': 'en-US-x-sappsd',
115
+ '3Q': 'en-US-x-saprigi'
116
+ };
117
+ var M_LOCALE_TO_ABAP_LANGUAGE = inverse(M_ABAP_LANGUAGE_TO_LOCALE);
103
118
  function getDesigntimePropertyAsArray(sValue) {
104
119
  var m = /\$([-a-z0-9A-Z._]+)(?::([^$]*))?\$/.exec(sValue);
105
120
  return m && m[2] ? m[2].split(/,/) : null;
106
121
  }
107
122
  var A_RTL_LOCALES = getDesigntimePropertyAsArray('$cldr-rtl-locales:ar,fa,he$') || [];
108
- Locale._cldrLocales = getDesigntimePropertyAsArray('$cldr-locales:ar,ar_EG,ar_SA,bg,br,ca,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,nn,pl,pt,pt_PT,ro,ru,ru_UA,sk,sl,sr,sv,th,tr,uk,vi,zh_CN,zh_HK,zh_SG,zh_TW$');
109
- Locale._coreI18nLocales = getDesigntimePropertyAsArray('$core-i18n-locales:,ar,bg,ca,cs,da,de,el,en,es,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$');
123
+ 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$');
124
+ Locale._mPreferredCalendar = {
125
+ 'ar-SA': CalendarType.Islamic,
126
+ 'fa': CalendarType.Persian,
127
+ 'th': CalendarType.Buddhist,
128
+ 'default': CalendarType.Gregorian
129
+ };
130
+ 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$');
110
131
  Locale._impliesRTL = function (vLanguage) {
111
132
  var oLocale = vLanguage instanceof Locale ? vLanguage : new Locale(vLanguage);
112
133
  var sLanguage = oLocale.getLanguage() || '';
@@ -117,4 +138,22 @@ Locale._impliesRTL = function (vLanguage) {
117
138
  }
118
139
  return A_RTL_LOCALES.indexOf(sLanguage) >= 0;
119
140
  };
141
+ Locale.fromSAPLogonLanguage = function (sSAPLogonLanguage) {
142
+ if (sSAPLogonLanguage && typeof sSAPLogonLanguage === 'string') {
143
+ sSAPLogonLanguage = M_ABAP_LANGUAGE_TO_LOCALE[sSAPLogonLanguage.toUpperCase()] || sSAPLogonLanguage;
144
+ try {
145
+ return new Locale(sSAPLogonLanguage);
146
+ } catch (e) {
147
+ }
148
+ }
149
+ };
150
+ function join() {
151
+ return Array.prototype.filter.call(arguments, Boolean).join('-');
152
+ }
153
+ function inverse(obj) {
154
+ return Object.keys(obj).reduce(function (inv, key) {
155
+ inv[obj[key]] = key;
156
+ return inv;
157
+ }, {});
158
+ }
120
159
  export default Locale;