@ui5/webcomponents-localization 0.0.0-9e104af01 → 0.0.0-9ed6f23c6

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 (159) hide show
  1. package/.eslintignore +1 -1
  2. package/.npsrc.json +3 -0
  3. package/CHANGELOG.md +279 -0
  4. package/dist/Assets-static.js.map +1 -1
  5. package/dist/Assets.js.map +1 -1
  6. package/dist/DateFormat.js.map +1 -1
  7. package/dist/LocaleData.js.map +1 -1
  8. package/dist/dates/CalendarDate.d.ts +7 -5
  9. package/dist/dates/CalendarDate.js +8 -7
  10. package/dist/dates/CalendarDate.js.map +1 -1
  11. package/dist/dates/ExtremeDates.d.ts +2 -2
  12. package/dist/dates/ExtremeDates.js.map +1 -1
  13. package/dist/dates/UI5Date.d.ts +6 -0
  14. package/dist/dates/UI5Date.js +7 -0
  15. package/dist/dates/UI5Date.js.map +1 -0
  16. package/dist/dates/UniversalDate.d.ts +2 -1
  17. package/dist/dates/UniversalDate.js.map +1 -1
  18. package/dist/dates/calculateWeekNumber.d.ts +2 -1
  19. package/dist/dates/calculateWeekNumber.js.map +1 -1
  20. package/dist/dates/convertMonthNumbersToMonthNames.d.ts +1 -1
  21. package/dist/dates/convertMonthNumbersToMonthNames.js.map +1 -1
  22. package/dist/dates/getDaysInMonth.js.map +1 -1
  23. package/dist/dates/getRoundedTimestamp.js +1 -0
  24. package/dist/dates/getRoundedTimestamp.js.map +1 -1
  25. package/dist/dates/getTodayUTCTimestamp.d.ts +1 -1
  26. package/dist/dates/getTodayUTCTimestamp.js +2 -1
  27. package/dist/dates/getTodayUTCTimestamp.js.map +1 -1
  28. package/dist/dates/modifyDateBy.d.ts +2 -1
  29. package/dist/dates/modifyDateBy.js +34 -19
  30. package/dist/dates/modifyDateBy.js.map +1 -1
  31. package/dist/dates/transformDateToSecondaryType.d.ts +1 -1
  32. package/dist/dates/transformDateToSecondaryType.js +3 -2
  33. package/dist/dates/transformDateToSecondaryType.js.map +1 -1
  34. package/dist/features/calendar/Buddhist.js.map +1 -1
  35. package/dist/features/calendar/Gregorian.js.map +1 -1
  36. package/dist/features/calendar/Islamic.js.map +1 -1
  37. package/dist/features/calendar/Japanese.js.map +1 -1
  38. package/dist/features/calendar/Persian.js.map +1 -1
  39. package/dist/generated/assets/cldr/ar.json +5531 -6704
  40. package/dist/generated/assets/cldr/ar_EG.json +5531 -6704
  41. package/dist/generated/assets/cldr/ar_SA.json +5530 -6704
  42. package/dist/generated/assets/cldr/bg.json +4452 -5742
  43. package/dist/generated/assets/cldr/ca.json +4440 -5793
  44. package/dist/generated/assets/cldr/cs.json +4960 -6294
  45. package/dist/generated/assets/cldr/cy.json +5211 -6612
  46. package/dist/generated/assets/cldr/da.json +4308 -5651
  47. package/dist/generated/assets/cldr/de.json +4313 -5713
  48. package/dist/generated/assets/cldr/de_AT.json +4314 -5714
  49. package/dist/generated/assets/cldr/de_CH.json +4312 -5712
  50. package/dist/generated/assets/cldr/el.json +4281 -5579
  51. package/dist/generated/assets/cldr/el_CY.json +4281 -5579
  52. package/dist/generated/assets/cldr/en.json +4316 -5732
  53. package/dist/generated/assets/cldr/en_AU.json +4319 -5724
  54. package/dist/generated/assets/cldr/en_GB.json +4329 -5733
  55. package/dist/generated/assets/cldr/en_HK.json +4337 -5739
  56. package/dist/generated/assets/cldr/en_IE.json +4328 -5733
  57. package/dist/generated/assets/cldr/en_IN.json +4333 -5734
  58. package/dist/generated/assets/cldr/en_NZ.json +4328 -5733
  59. package/dist/generated/assets/cldr/en_PG.json +4329 -5734
  60. package/dist/generated/assets/cldr/en_SG.json +4333 -5735
  61. package/dist/generated/assets/cldr/en_ZA.json +4329 -5734
  62. package/dist/generated/assets/cldr/es.json +4331 -5641
  63. package/dist/generated/assets/cldr/es_AR.json +4334 -5643
  64. package/dist/generated/assets/cldr/es_BO.json +4333 -5642
  65. package/dist/generated/assets/cldr/es_CL.json +4334 -5643
  66. package/dist/generated/assets/cldr/es_CO.json +4333 -5642
  67. package/dist/generated/assets/cldr/es_MX.json +4335 -5644
  68. package/dist/generated/assets/cldr/es_PE.json +4333 -5642
  69. package/dist/generated/assets/cldr/es_UY.json +4335 -5644
  70. package/dist/generated/assets/cldr/es_VE.json +4334 -5643
  71. package/dist/generated/assets/cldr/et.json +4340 -5729
  72. package/dist/generated/assets/cldr/fa.json +4367 -5647
  73. package/dist/generated/assets/cldr/fi.json +4463 -5804
  74. package/dist/generated/assets/cldr/fr.json +4357 -5741
  75. package/dist/generated/assets/cldr/fr_BE.json +4357 -5741
  76. package/dist/generated/assets/cldr/fr_CA.json +4351 -5735
  77. package/dist/generated/assets/cldr/fr_CH.json +4375 -5759
  78. package/dist/generated/assets/cldr/fr_LU.json +4357 -5741
  79. package/dist/generated/assets/cldr/he.json +4869 -6175
  80. package/dist/generated/assets/cldr/hi.json +4295 -5558
  81. package/dist/generated/assets/cldr/hr.json +4583 -5681
  82. package/dist/generated/assets/cldr/hu.json +4364 -5686
  83. package/dist/generated/assets/cldr/id.json +4060 -5420
  84. package/dist/generated/assets/cldr/it.json +4299 -5712
  85. package/dist/generated/assets/cldr/it_CH.json +4299 -5712
  86. package/dist/generated/assets/cldr/ja.json +4211 -5626
  87. package/dist/generated/assets/cldr/kk.json +4339 -5487
  88. package/dist/generated/assets/cldr/ko.json +4189 -5534
  89. package/dist/generated/assets/cldr/lt.json +4850 -6243
  90. package/dist/generated/assets/cldr/lv.json +4587 -5874
  91. package/dist/generated/assets/cldr/ms.json +4021 -5245
  92. package/dist/generated/assets/cldr/nb.json +4335 -5740
  93. package/dist/generated/assets/cldr/nl.json +4294 -5613
  94. package/dist/generated/assets/cldr/nl_BE.json +4294 -5613
  95. package/dist/generated/assets/cldr/pl.json +4667 -5972
  96. package/dist/generated/assets/cldr/pt.json +4235 -5567
  97. package/dist/generated/assets/cldr/pt_PT.json +4372 -5702
  98. package/dist/generated/assets/cldr/ro.json +4563 -5852
  99. package/dist/generated/assets/cldr/ru.json +4909 -6169
  100. package/dist/generated/assets/cldr/ru_UA.json +4909 -6169
  101. package/dist/generated/assets/cldr/sk.json +4939 -6166
  102. package/dist/generated/assets/cldr/sl.json +4910 -6136
  103. package/dist/generated/assets/cldr/sr.json +4585 -5888
  104. package/dist/generated/assets/cldr/sr_Latn.json +4574 -5889
  105. package/dist/generated/assets/cldr/sv.json +4362 -5774
  106. package/dist/generated/assets/cldr/th.json +4214 -5627
  107. package/dist/generated/assets/cldr/tr.json +4400 -5809
  108. package/dist/generated/assets/cldr/uk.json +4858 -6115
  109. package/dist/generated/assets/cldr/vi.json +4070 -5435
  110. package/dist/generated/assets/cldr/zh_CN.json +4100 -5429
  111. package/dist/generated/assets/cldr/zh_HK.json +4108 -5437
  112. package/dist/generated/assets/cldr/zh_SG.json +4108 -5437
  113. package/dist/generated/assets/cldr/zh_TW.json +4131 -5525
  114. package/dist/getCachedLocaleDataInstance.js.map +1 -1
  115. package/dist/locale/getLocaleData.js.map +1 -1
  116. package/dist/sap/base/util/LoaderExtensions.js.map +1 -1
  117. package/dist/sap/ui/core/Configuration.d.ts +1 -1
  118. package/dist/sap/ui/core/Configuration.js +2 -1
  119. package/dist/sap/ui/core/Configuration.js.map +1 -1
  120. package/dist/sap/ui/core/Core.d.ts +2 -2
  121. package/dist/sap/ui/core/Core.js.map +1 -1
  122. package/dist/sap/ui/core/FormatSettings.d.ts +1 -1
  123. package/dist/sap/ui/core/FormatSettings.js +2 -1
  124. package/dist/sap/ui/core/FormatSettings.js.map +1 -1
  125. package/dist/sap/ui/core/LocaleData.js +73 -19
  126. package/dist/sap/ui/core/date/UI5Date.js +305 -0
  127. package/dist/sap/ui/core/date/UniversalDate.js +7 -6
  128. package/dist/sap/ui/core/format/DateFormat.js +307 -293
  129. package/dist/sap/ui/core/format/TimezoneUtil.js +7 -12
  130. package/{package-scripts.js → package-scripts.cjs} +2 -3
  131. package/package.json +7 -6
  132. package/tsconfig.json +1 -0
  133. package/used-modules.txt +1 -0
  134. package/src/Assets-static.ts +0 -2
  135. package/src/Assets.ts +0 -2
  136. package/src/DateFormat.ts +0 -8
  137. package/src/LocaleData.ts +0 -8
  138. package/src/dates/CalendarDate.ts +0 -232
  139. package/src/dates/ExtremeDates.ts +0 -40
  140. package/src/dates/UniversalDate.ts +0 -51
  141. package/src/dates/calculateWeekNumber.ts +0 -53
  142. package/src/dates/convertMonthNumbersToMonthNames.ts +0 -34
  143. package/src/dates/getDaysInMonth.ts +0 -11
  144. package/src/dates/getRoundedTimestamp.ts +0 -14
  145. package/src/dates/getTodayUTCTimestamp.ts +0 -10
  146. package/src/dates/modifyDateBy.ts +0 -42
  147. package/src/dates/transformDateToSecondaryType.ts +0 -21
  148. package/src/features/calendar/Buddhist.ts +0 -1
  149. package/src/features/calendar/Gregorian.ts +0 -1
  150. package/src/features/calendar/Islamic.ts +0 -1
  151. package/src/features/calendar/Japanese.ts +0 -1
  152. package/src/features/calendar/Persian.ts +0 -1
  153. package/src/getCachedLocaleDataInstance.ts +0 -15
  154. package/src/locale/getLocaleData.ts +0 -28
  155. package/src/sap/base/util/LoaderExtensions.ts +0 -17
  156. package/src/sap/ui/core/Configuration.ts +0 -22
  157. package/src/sap/ui/core/Core.ts +0 -15
  158. package/src/sap/ui/core/FormatSettings.ts +0 -15
  159. /package/{config/.eslintrc.js → .eslintrc.cjs} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"getCachedLocaleDataInstance.js","sourceRoot":"","sources":["../src/getCachedLocaleDataInstance.ts"],"names":[],"mappings":"AAEA,OAAO,UAAU,MAAM,iBAAiB,CAAC;AAEzC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAsB,CAAC;AAE5C,MAAM,2BAA2B,GAAG,CAAC,MAAc,EAAE,EAAE;IACtD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;QACvB,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,UAAU,CAAC,MAA4B,CAAC,CAAC,CAAC;KAChE;IAED,OAAO,KAAK,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC;AAC3B,CAAC,CAAC;AAEF,eAAe,2BAA2B,CAAC"}
1
+ {"version":3,"file":"getCachedLocaleDataInstance.js","sourceRoot":"","sources":["../src/getCachedLocaleDataInstance.ts"],"names":[],"mappings":"AAEA,OAAO,UAAU,MAAM,iBAAiB,CAAC;AAEzC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAsB,CAAC;AAE5C,MAAM,2BAA2B,GAAG,CAAC,MAAc,EAAE,EAAE;IACtD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;QACvB,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,UAAU,CAAC,MAA4B,CAAC,CAAC,CAAC;KAChE;IAED,OAAO,KAAK,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC;AAC3B,CAAC,CAAC;AAEF,eAAe,2BAA2B,CAAC","sourcesContent":["import type Locale from \"@ui5/webcomponents-base/dist/locale/Locale.js\";\nimport type LocaleT from \"sap/ui/core/Locale\";\nimport LocaleData from \"./LocaleData.js\";\n\nconst cache = new Map<Locale, LocaleData>();\n\nconst getCachedLocaleDataInstance = (locale: Locale) => {\n\tif (!cache.has(locale)) {\n\t\tcache.set(locale, new LocaleData(locale as unknown as LocaleT));\n\t}\n\n\treturn cache.get(locale)!;\n};\n\nexport default getCachedLocaleDataInstance;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"getLocaleData.js","sourceRoot":"","sources":["../../src/locale/getLocaleData.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,6DAA6D,CAAC;AACxF,OAAO,SAAS,MAAM,kDAAkD,CAAC;AAEzE,OAAO,UAAU,MAAM,kBAAkB,CAAC;AAE1C,MAAM,SAAS,GAAG,IAAI,GAAG,EAAsB,CAAC;AAEhD;;;;;;;GAOG;AACH,MAAM,aAAa,GAAG,KAAK,EAAE,IAAY,EAAuB,EAAE;IACjE,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IAExC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;QAC/B,MAAM,SAAS,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,MAAM,CAAC,SAAS,EAAE,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;QAC9E,SAAS,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,UAAU,CAAC,MAA4B,CAAC,CAAC,CAAC;KACxE;IAED,OAAO,SAAS,CAAC,GAAG,CAAC,UAAU,CAAE,CAAC;AACnC,CAAC,CAAC;AAEF,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"getLocaleData.js","sourceRoot":"","sources":["../../src/locale/getLocaleData.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,6DAA6D,CAAC;AACxF,OAAO,SAAS,MAAM,kDAAkD,CAAC;AAEzE,OAAO,UAAU,MAAM,kBAAkB,CAAC;AAE1C,MAAM,SAAS,GAAG,IAAI,GAAG,EAAsB,CAAC;AAEhD;;;;;;;GAOG;AACH,MAAM,aAAa,GAAG,KAAK,EAAE,IAAY,EAAuB,EAAE;IACjE,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IAExC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;QAC/B,MAAM,SAAS,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,MAAM,CAAC,SAAS,EAAE,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;QAC9E,SAAS,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,UAAU,CAAC,MAA4B,CAAC,CAAC,CAAC;KACxE;IAED,OAAO,SAAS,CAAC,GAAG,CAAC,UAAU,CAAE,CAAC;AACnC,CAAC,CAAC;AAEF,eAAe,aAAa,CAAC","sourcesContent":["import { fetchCldr } from \"@ui5/webcomponents-base/dist/asset-registries/LocaleData.js\";\nimport getLocale from \"@ui5/webcomponents-base/dist/locale/getLocale.js\";\nimport type LocaleT from \"sap/ui/core/Locale\";\nimport LocaleData from \"../LocaleData.js\";\n\nconst instances = new Map<string, LocaleData>();\n\n/**\n * Fetches and returns а LocaleData object for the required locale\n * For more information on this object's API, please see:\n * https://sdk.openui5.org/api/sap.ui.core.LocaleData\n *\n * @param { string } lang - if left empty, will use the configured/current locale\n * @returns { Promise<LocaleData> }\n */\nconst getLocaleData = async (lang: string): Promise<LocaleData> => {\n\tconst locale = getLocale(lang);\n\tconst localeLang = locale.getLanguage();\n\n\tif (!instances.has(localeLang)) {\n\t\tawait fetchCldr(locale.getLanguage(), locale.getRegion(), locale.getScript());\n\t\tinstances.set(localeLang, new LocaleData(locale as unknown as LocaleT));\n\t}\n\n\treturn instances.get(localeLang)!;\n};\n\nexport default getLocaleData;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"LoaderExtensions.js","sourceRoot":"","sources":["../../../../src/sap/base/util/LoaderExtensions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,6DAA6D,CAAC;AAE5F,MAAM,YAAY,GAAG,CAAC,UAAkB,EAAE,EAAE;IAC3C,MAAM,YAAY,GAAG,UAAU,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;IAC1E,IAAI,CAAC,YAAY,EAAE;QAClB,MAAM,IAAI,KAAK,CAAC,mBAAmB,UAAU,GAAG,CAAC,CAAC;KAClD;IAED,MAAM,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;IACjC,OAAO,aAAa,CAAC,QAAQ,CAAC,CAAC;AAChC,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG;IACxB,YAAY;CACZ,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"LoaderExtensions.js","sourceRoot":"","sources":["../../../../src/sap/base/util/LoaderExtensions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,6DAA6D,CAAC;AAE5F,MAAM,YAAY,GAAG,CAAC,UAAkB,EAAE,EAAE;IAC3C,MAAM,YAAY,GAAG,UAAU,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;IAC1E,IAAI,CAAC,YAAY,EAAE;QAClB,MAAM,IAAI,KAAK,CAAC,mBAAmB,UAAU,GAAG,CAAC,CAAC;KAClD;IAED,MAAM,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;IACjC,OAAO,aAAa,CAAC,QAAQ,CAAC,CAAC;AAChC,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG;IACxB,YAAY;CACZ,CAAC;AAEF,eAAe,gBAAgB,CAAC","sourcesContent":["import { getLocaleData } from \"@ui5/webcomponents-base/dist/asset-registries/LocaleData.js\";\n\nconst loadResource = (moduleName: string) => {\n\tconst moduleFormat = moduleName.match(/sap\\/ui\\/core\\/cldr\\/(\\w+)\\.json/);\n\tif (!moduleFormat) {\n\t\tthrow new Error(`Unknown module \"${moduleName}\"`);\n\t}\n\n\tconst localeId = moduleFormat[1];\n\treturn getLocaleData(localeId);\n};\n\nconst LoaderExtensions = {\n\tloadResource,\n};\n\nexport default LoaderExtensions;\n"]}
@@ -9,8 +9,8 @@ declare const Configuration: {
9
9
  getFormatSettings: () => {
10
10
  getFormatLocale: (lang?: string | undefined) => import("@ui5/webcomponents-base/dist/locale/Locale.js").default;
11
11
  getLegacyDateFormat: () => void;
12
- getLegacyDateCalendarCustomizing: () => void;
13
12
  getCustomLocaleData: () => void;
13
+ getLegacyDateCalendarCustomizing: typeof import("@ui5/webcomponents-base/dist/features/LegacyDateFormats.js").default.getLegacyDateCalendarCustomizing;
14
14
  };
15
15
  getTimezone: () => string;
16
16
  };
@@ -1,5 +1,6 @@
1
1
  import { getLanguage } from "@ui5/webcomponents-base/dist/config/Language.js";
2
2
  import { getCalendarType } from "@ui5/webcomponents-base/dist/config/CalendarType.js";
3
+ import { getTimezone as getConfigTimezone } from "@ui5/webcomponents-base/dist/config/Timezone.js";
3
4
  import getDesigntimePropertyAsArray from "@ui5/webcomponents-base/dist/util/getDesigntimePropertyAsArray.js";
4
5
  // @ts-ignore
5
6
  import TimezoneUtil from "./format/TimezoneUtil.js";
@@ -14,7 +15,7 @@ const Configuration = {
14
15
  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$"),
15
16
  getOriginInfo: emptyFn,
16
17
  getFormatSettings: () => FormatSettings,
17
- getTimezone: () => TimezoneUtil.getLocalTimezone(),
18
+ getTimezone: () => getConfigTimezone() || TimezoneUtil.getLocalTimezone(),
18
19
  };
19
20
  export default Configuration;
20
21
  //# sourceMappingURL=Configuration.js.map
@@ -1 +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"}
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,EAAE,WAAW,IAAI,iBAAiB,EAAE,MAAM,iDAAiD,CAAC;AACnG,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,iBAAiB,EAAE,IAAI,YAAY,CAAC,gBAAgB,EAAY;CACnF,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 { getTimezone as getConfigTimezone } from \"@ui5/webcomponents-base/dist/config/Timezone.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: () => getConfigTimezone() || TimezoneUtil.getLocalTimezone() as string,\n};\n\nexport default Configuration;\n"]}
@@ -10,8 +10,8 @@ declare const Core: {
10
10
  getFormatSettings: () => {
11
11
  getFormatLocale: (lang?: string | undefined) => import("@ui5/webcomponents-base/dist/locale/Locale.js").default;
12
12
  getLegacyDateFormat: () => void;
13
- getLegacyDateCalendarCustomizing: () => void;
14
13
  getCustomLocaleData: () => void;
14
+ getLegacyDateCalendarCustomizing: typeof import("@ui5/webcomponents-base/dist/features/LegacyDateFormats.js").default.getLegacyDateCalendarCustomizing;
15
15
  };
16
16
  getTimezone: () => string;
17
17
  };
@@ -19,8 +19,8 @@ declare const Core: {
19
19
  getFormatSettings: () => {
20
20
  getFormatLocale: (lang?: string | undefined) => import("@ui5/webcomponents-base/dist/locale/Locale.js").default;
21
21
  getLegacyDateFormat: () => void;
22
- getLegacyDateCalendarCustomizing: () => void;
23
22
  getCustomLocaleData: () => void;
23
+ getLegacyDateCalendarCustomizing: typeof import("@ui5/webcomponents-base/dist/features/LegacyDateFormats.js").default.getLegacyDateCalendarCustomizing;
24
24
  };
25
25
  };
26
26
  export default Core;
@@ -1 +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"}
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"]}
@@ -4,7 +4,7 @@
4
4
  declare const FormatSettings: {
5
5
  getFormatLocale: (lang?: string | undefined) => import("@ui5/webcomponents-base/dist/locale/Locale").default;
6
6
  getLegacyDateFormat: () => void;
7
- getLegacyDateCalendarCustomizing: () => void;
8
7
  getCustomLocaleData: () => void;
8
+ getLegacyDateCalendarCustomizing: typeof import("@ui5/webcomponents-base/dist/features/LegacyDateFormats").default.getLegacyDateCalendarCustomizing;
9
9
  };
10
10
  export default FormatSettings;
@@ -1,4 +1,5 @@
1
1
  import getLocale from "@ui5/webcomponents-base/dist/locale/getLocale.js";
2
+ import { getLegacyDateCalendarCustomizing } from "@ui5/webcomponents-base/dist/config/FormatSettings.js";
2
3
  const emptyFn = () => { };
3
4
  /**
4
5
  * OpenUI5 FormatSettings shim
@@ -6,8 +7,8 @@ const emptyFn = () => { };
6
7
  const FormatSettings = {
7
8
  getFormatLocale: getLocale,
8
9
  getLegacyDateFormat: emptyFn,
9
- getLegacyDateCalendarCustomizing: emptyFn,
10
10
  getCustomLocaleData: emptyFn,
11
+ getLegacyDateCalendarCustomizing,
11
12
  };
12
13
  export default FormatSettings;
13
14
  //# sourceMappingURL=FormatSettings.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FormatSettings.js","sourceRoot":"","sources":["../../../../src/sap/ui/core/FormatSettings.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,kDAAkD,CAAC;AAEzE,MAAM,OAAO,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;AAEzB;;GAEG;AACH,MAAM,cAAc,GAAG;IACtB,eAAe,EAAE,SAAS;IAC1B,mBAAmB,EAAE,OAAO;IAC5B,gCAAgC,EAAE,OAAO;IACzC,mBAAmB,EAAE,OAAO;CAC5B,CAAC;AAEF,eAAe,cAAc,CAAC"}
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"]}
@@ -6,6 +6,16 @@ import Locale from './Locale.js';
6
6
  import assert from '../../base/assert.js';
7
7
  import LoaderExtensions from '../../base/util/LoaderExtensions.js';
8
8
  import Configuration from './Configuration.js';
9
+ var rEIgnoreCase = /e/i, mLegacyUnit2CurrentUnit = {
10
+ 'acceleration-meter-per-second-squared': 'acceleration-meter-per-square-second',
11
+ 'concentr-milligram-per-deciliter': 'concentr-milligram-ofglucose-per-deciliter',
12
+ 'concentr-part-per-million': 'concentr-permillion',
13
+ 'consumption-liter-per-100kilometers': 'consumption-liter-per-100-kilometer',
14
+ 'pressure-millimeter-of-mercury': 'pressure-millimeter-ofhg',
15
+ 'pressure-pound-per-square-inch': 'pressure-pound-force-per-square-inch',
16
+ 'pressure-inch-hg': 'pressure-inch-ofhg',
17
+ 'torque-pound-foot': 'torque-pound-force-foot'
18
+ }, rNumberInScientificNotation = /^([+-]?)((\d+)(?:\.(\d+))?)[eE]([+-]?\d+)$/, rTrailingZeroes = /0+$/;
9
19
  var LocaleData = BaseObject.extend('sap.ui.core.LocaleData', {
10
20
  constructor: function (oLocale) {
11
21
  this.oLocale = oLocale;
@@ -642,11 +652,14 @@ var LocaleData = BaseObject.extend('sap.ui.core.LocaleData', {
642
652
  oTimeEntry = oScale[sEntry];
643
653
  iSign = sEntry.substr(18) === 'past' ? -1 : 1;
644
654
  aPluralCategories.forEach(function (sKey) {
645
- aPatterns.push({
646
- scale: sScale,
647
- sign: iSign,
648
- pattern: oTimeEntry['relativeTimePattern-count-' + sKey]
649
- });
655
+ var sPattern = oTimeEntry['relativeTimePattern-count-' + sKey];
656
+ if (sPattern) {
657
+ aPatterns.push({
658
+ scale: sScale,
659
+ sign: iSign,
660
+ pattern: sPattern
661
+ });
662
+ }
650
663
  });
651
664
  }
652
665
  }
@@ -769,7 +782,11 @@ var LocaleData = BaseObject.extend('sap.ui.core.LocaleData', {
769
782
  return this.getUnitFormat(sUnit);
770
783
  },
771
784
  getUnitFormat: function (sUnit) {
772
- return this._get('units', 'short', sUnit);
785
+ var oResult = this._get('units', 'short', sUnit);
786
+ if (!oResult && mLegacyUnit2CurrentUnit[sUnit]) {
787
+ oResult = this._get('units', 'short', mLegacyUnit2CurrentUnit[sUnit]);
788
+ }
789
+ return oResult;
773
790
  },
774
791
  getUnitFormats: function () {
775
792
  return this._getMerged('units', 'short');
@@ -801,7 +818,7 @@ var LocaleData = BaseObject.extend('sap.ui.core.LocaleData', {
801
818
  return this.oLocale.getLanguage() === 'en' && this.oLocale.getRegion() === 'US';
802
819
  },
803
820
  getPreferredCalendarType: function () {
804
- var sCalendarPreference = this._get('calendarPreference'), aCalendars = sCalendarPreference ? sCalendarPreference.split(' ') : [], sCalendarName, sType, i;
821
+ var sCalendarName, sType, i, aCalendars = this._get('calendarPreference') || [];
805
822
  for (i = 0; i < aCalendars.length; i++) {
806
823
  sCalendarName = aCalendars[i].split('-')[0];
807
824
  for (sType in CalendarType) {
@@ -834,14 +851,14 @@ var LocaleData = BaseObject.extend('sap.ui.core.LocaleData', {
834
851
  fnTest = this._parsePluralRule(oPlurals[sCategory]);
835
852
  this._pluralTest[sCategory] = fnTest;
836
853
  }
837
- if (fnTest(sNumber)) {
854
+ if (fnTest(sNumber).bMatch) {
838
855
  return sCategory;
839
856
  }
840
857
  }
841
858
  return 'other';
842
859
  },
843
860
  _parsePluralRule: function (sRule) {
844
- var OP_OR = 'or', OP_AND = 'and', OP_MOD = '%', OP_EQ = '=', OP_NEQ = '!=', OPD_N = 'n', OPD_I = 'i', OPD_F = 'f', OPD_T = 't', OPD_V = 'v', OPD_W = 'w', RANGE = '..', SEP = ',';
861
+ var OP_OR = 'or', OP_AND = 'and', OP_MOD = '%', OP_EQ = '=', OP_NEQ = '!=', OPD_N = 'n', OPD_I = 'i', OPD_F = 'f', OPD_T = 't', OPD_V = 'v', OPD_W = 'w', OPD_C = 'c', OPD_E = 'e', RANGE = '..', SEP = ',';
845
862
  var i = 0, aTokens;
846
863
  aTokens = sRule.split(' ');
847
864
  function accept(sToken) {
@@ -935,6 +952,14 @@ var LocaleData = BaseObject.extend('sap.ui.core.LocaleData', {
935
952
  return function (o) {
936
953
  return o.w;
937
954
  };
955
+ } else if (accept(OPD_C)) {
956
+ return function (o) {
957
+ return o.c;
958
+ };
959
+ } else if (accept(OPD_E)) {
960
+ return function (o) {
961
+ return o.c;
962
+ };
938
963
  } else {
939
964
  throw new Error('Unknown operand: ' + consume());
940
965
  }
@@ -962,28 +987,57 @@ var LocaleData = BaseObject.extend('sap.ui.core.LocaleData', {
962
987
  throw new Error('Not completely parsed');
963
988
  }
964
989
  return function (sValue) {
965
- var iDotPos = sValue.indexOf('.'), sDecimal, sFraction, sFractionNoZeros, o;
990
+ var iDotPos, iExponent, sFraction, sFractionNoZeros, sInteger, o, iExponentPos = sValue.search(rEIgnoreCase);
991
+ iExponent = iExponentPos < 0 ? 0 : parseInt(sValue.slice(iExponentPos + 1));
992
+ sValue = LocaleData.convertToDecimal(sValue);
993
+ iDotPos = sValue.indexOf('.');
966
994
  if (iDotPos === -1) {
967
- sDecimal = sValue;
995
+ sInteger = sValue;
968
996
  sFraction = '';
969
997
  sFractionNoZeros = '';
970
998
  } else {
971
- sDecimal = sValue.substr(0, iDotPos);
972
- sFraction = sValue.substr(iDotPos + 1);
973
- sFractionNoZeros = sFraction.replace(/0+$/, '');
999
+ sInteger = sValue.slice(0, iDotPos);
1000
+ sFraction = sValue.slice(iDotPos + 1);
1001
+ sFractionNoZeros = sFraction.replace(rTrailingZeroes, '');
974
1002
  }
975
1003
  o = {
976
1004
  n: parseFloat(sValue),
977
- i: parseInt(sDecimal),
1005
+ i: parseInt(sInteger),
978
1006
  v: sFraction.length,
979
1007
  w: sFractionNoZeros.length,
980
- f: parseInt(sFraction),
981
- t: parseInt(sFractionNoZeros)
1008
+ f: sFraction === '' ? 0 : parseInt(sFraction),
1009
+ t: sFractionNoZeros === '' ? 0 : parseInt(sFractionNoZeros),
1010
+ c: iExponent
1011
+ };
1012
+ return {
1013
+ bMatch: fnOr(o),
1014
+ oOperands: o
982
1015
  };
983
- return fnOr(o);
984
1016
  };
985
1017
  }
986
1018
  });
1019
+ LocaleData.convertToDecimal = function (vValue) {
1020
+ var iIntegerLength, iExponent, iFractionLength, bNegative, iNewIntegerLength, aResult, sValue = String(vValue);
1021
+ if (!sValue.includes('e') && !sValue.includes('E')) {
1022
+ return sValue;
1023
+ }
1024
+ aResult = sValue.match(rNumberInScientificNotation);
1025
+ bNegative = aResult[1] === '-';
1026
+ sValue = aResult[2].replace('.', '');
1027
+ iIntegerLength = aResult[3] ? aResult[3].length : 0;
1028
+ iFractionLength = aResult[4] ? aResult[4].length : 0;
1029
+ iExponent = parseInt(aResult[5]);
1030
+ iNewIntegerLength = iIntegerLength + iExponent;
1031
+ if (iExponent > 0) {
1032
+ sValue = iExponent < iFractionLength ? sValue.slice(0, iNewIntegerLength) + '.' + sValue.slice(iNewIntegerLength) : sValue = sValue.padEnd(iNewIntegerLength, '0');
1033
+ } else {
1034
+ sValue = -iExponent < iIntegerLength ? sValue = sValue.slice(0, iNewIntegerLength) + '.' + sValue.slice(iNewIntegerLength) : sValue = '0.' + sValue.padStart(iFractionLength - iExponent, '0');
1035
+ }
1036
+ if (bNegative) {
1037
+ sValue = '-' + sValue;
1038
+ }
1039
+ return sValue;
1040
+ };
987
1041
  var mCLDRSymbolGroups = {
988
1042
  'Era': {
989
1043
  field: 'era',
@@ -1267,7 +1321,7 @@ function getData(oLocale) {
1267
1321
  obj[name] = fallbackValue;
1268
1322
  } else if (value === null) {
1269
1323
  delete obj[name];
1270
- } else if (typeof value === 'object' && typeof fallbackValue === 'object') {
1324
+ } else if (typeof value === 'object' && typeof fallbackValue === 'object' && !Array.isArray(value)) {
1271
1325
  merge(value, fallbackValue);
1272
1326
  }
1273
1327
  }
@@ -0,0 +1,305 @@
1
+ import Configuration from '../Configuration.js';
2
+ import TimezoneUtil from '../format/TimezoneUtil.js';
3
+ var aAllParts = [
4
+ 'year',
5
+ 'month',
6
+ 'day',
7
+ 'hour',
8
+ 'minute',
9
+ 'second',
10
+ 'fractionalSecond'
11
+ ], rIsUTCString = /Z|GMT|:.*[\+|\-]|^([\+|\-]\d{2})?\d{4}(-\d{2}){0,2}$/, aWeekday = [
12
+ 'Sun',
13
+ 'Mon',
14
+ 'Tue',
15
+ 'Wed',
16
+ 'Thu',
17
+ 'Fri',
18
+ 'Sat'
19
+ ], aMonths = [
20
+ 'Jan',
21
+ 'Feb',
22
+ 'Mar',
23
+ 'Apr',
24
+ 'May',
25
+ 'Jun',
26
+ 'Jul',
27
+ 'Aug',
28
+ 'Sep',
29
+ 'Oct',
30
+ 'Nov',
31
+ 'Dec'
32
+ ], mWeekdayToDay = {
33
+ Sun: 0,
34
+ Mon: 1,
35
+ Tue: 2,
36
+ Wed: 3,
37
+ Thu: 4,
38
+ Fri: 5,
39
+ Sat: 6
40
+ };
41
+ function addLeadingZeros(iValue, iLength) {
42
+ return (iValue < 0 ? '-' : '') + Math.abs(iValue).toString().padStart(iLength, '0');
43
+ }
44
+ function UI5Date(vDateParts, sTimezoneID) {
45
+ var oDateInstance = UI5Date._createDateInstance(vDateParts);
46
+ Object.defineProperties(this, {
47
+ sTimezoneID: { value: sTimezoneID },
48
+ oDate: {
49
+ value: oDateInstance,
50
+ writable: true
51
+ },
52
+ oDateParts: {
53
+ value: undefined,
54
+ writable: true
55
+ }
56
+ });
57
+ if (isNaN(oDateInstance)) {
58
+ return;
59
+ }
60
+ if (vDateParts.length > 1 || vDateParts.length === 1 && typeof vDateParts[0] === 'string' && !rIsUTCString.test(vDateParts[0])) {
61
+ this._setParts(aAllParts, [
62
+ oDateInstance.getFullYear(),
63
+ oDateInstance.getMonth(),
64
+ oDateInstance.getDate(),
65
+ oDateInstance.getHours(),
66
+ oDateInstance.getMinutes(),
67
+ oDateInstance.getSeconds(),
68
+ oDateInstance.getMilliseconds()
69
+ ]);
70
+ }
71
+ }
72
+ UI5Date.prototype = Object.create(Date.prototype, { constructor: { value: Date } });
73
+ UI5Date.prototype[Symbol.toStringTag] = 'Date';
74
+ UI5Date.prototype._getPart = function (sPart) {
75
+ var iResult;
76
+ if (isNaN(this.oDate)) {
77
+ return NaN;
78
+ }
79
+ this.oDateParts = this.oDateParts || TimezoneUtil._getParts(this.oDate, this.sTimezoneID);
80
+ if (sPart === 'weekday') {
81
+ return mWeekdayToDay[this.oDateParts.weekday];
82
+ }
83
+ iResult = parseInt(this.oDateParts[sPart]);
84
+ if (sPart === 'month') {
85
+ iResult -= 1;
86
+ } else if (sPart === 'year') {
87
+ if (this.oDateParts.era === 'B') {
88
+ iResult = 1 - iResult;
89
+ }
90
+ }
91
+ return iResult;
92
+ };
93
+ UI5Date.prototype._setParts = function (aParts, aValues) {
94
+ var i, oCurrentDateParts, oNewDateAsUTCTimestamp, iNewTimestamp, sPart, vValue, oDateParts = {}, iMaxLength = Math.min(aParts.length, aValues.length);
95
+ if (iMaxLength === 0) {
96
+ return this.setTime(NaN);
97
+ }
98
+ for (i = 0; i < iMaxLength; i += 1) {
99
+ vValue = parseInt(+aValues[i]);
100
+ sPart = aParts[i];
101
+ if (isNaN(vValue)) {
102
+ return this.setTime(NaN);
103
+ }
104
+ if (sPart === 'month') {
105
+ vValue += 1;
106
+ } else if (sPart === 'year') {
107
+ if (vValue <= 0) {
108
+ vValue = 1 - vValue;
109
+ oDateParts.era = 'B';
110
+ } else {
111
+ oDateParts.era = 'A';
112
+ }
113
+ }
114
+ oDateParts[sPart] = vValue.toString();
115
+ }
116
+ if (this.oDateParts) {
117
+ oCurrentDateParts = this.oDateParts;
118
+ } else if (isNaN(this.oDate)) {
119
+ oCurrentDateParts = {
120
+ day: '1',
121
+ fractionalSecond: '0',
122
+ hour: '0',
123
+ minute: '0',
124
+ month: '1',
125
+ second: '0'
126
+ };
127
+ } else {
128
+ oCurrentDateParts = TimezoneUtil._getParts(this.oDate, this.sTimezoneID);
129
+ }
130
+ oDateParts = Object.assign({}, oCurrentDateParts, oDateParts);
131
+ oNewDateAsUTCTimestamp = TimezoneUtil._getDateFromParts(oDateParts);
132
+ if (isNaN(oNewDateAsUTCTimestamp)) {
133
+ return this.setTime(NaN);
134
+ }
135
+ iNewTimestamp = oNewDateAsUTCTimestamp.getTime() + TimezoneUtil.calculateOffset(oNewDateAsUTCTimestamp, this.sTimezoneID) * 1000;
136
+ return this.setTime(iNewTimestamp);
137
+ };
138
+ UI5Date.prototype.clone = function () {
139
+ return UI5Date.getInstance(this);
140
+ };
141
+ UI5Date.prototype.getDate = function () {
142
+ return this._getPart('day');
143
+ };
144
+ UI5Date.prototype.getDay = function () {
145
+ return this._getPart('weekday');
146
+ };
147
+ UI5Date.prototype.getFullYear = function () {
148
+ return this._getPart('year');
149
+ };
150
+ UI5Date.prototype.getHours = function () {
151
+ return this._getPart('hour');
152
+ };
153
+ UI5Date.prototype.getMilliseconds = function () {
154
+ return this._getPart('fractionalSecond');
155
+ };
156
+ UI5Date.prototype.getMinutes = function () {
157
+ return this._getPart('minute');
158
+ };
159
+ UI5Date.prototype.getMonth = function () {
160
+ return this._getPart('month');
161
+ };
162
+ UI5Date.prototype.getSeconds = function () {
163
+ return this._getPart('second');
164
+ };
165
+ UI5Date.prototype.getTimezoneOffset = function () {
166
+ return TimezoneUtil.calculateOffset(this.oDate, this.sTimezoneID) / 60;
167
+ };
168
+ UI5Date.prototype.getYear = function () {
169
+ return this._getPart('year') - 1900;
170
+ };
171
+ UI5Date.prototype.setDate = function (iDay) {
172
+ return this._setParts(['day'], arguments);
173
+ };
174
+ UI5Date.prototype.setFullYear = function (iYear, iMonth, iDay) {
175
+ return this._setParts([
176
+ 'year',
177
+ 'month',
178
+ 'day'
179
+ ], arguments);
180
+ };
181
+ UI5Date.prototype.setHours = function (iHours, iMinutes, iSeconds, iMilliseconds) {
182
+ return this._setParts([
183
+ 'hour',
184
+ 'minute',
185
+ 'second',
186
+ 'fractionalSecond'
187
+ ], arguments);
188
+ };
189
+ UI5Date.prototype.setMilliseconds = function (iMilliseconds) {
190
+ return this._setParts(['fractionalSecond'], arguments);
191
+ };
192
+ UI5Date.prototype.setMinutes = function (iMinutes, iSeconds, iMilliseconds) {
193
+ return this._setParts([
194
+ 'minute',
195
+ 'second',
196
+ 'fractionalSecond'
197
+ ], arguments);
198
+ };
199
+ UI5Date.prototype.setMonth = function (iMonth, iDay) {
200
+ return this._setParts([
201
+ 'month',
202
+ 'day'
203
+ ], arguments);
204
+ };
205
+ UI5Date.prototype.setSeconds = function (iSeconds, iMilliseconds) {
206
+ return this._setParts([
207
+ 'second',
208
+ 'fractionalSecond'
209
+ ], arguments);
210
+ };
211
+ UI5Date.prototype.setTime = function (iTime) {
212
+ this.oDateParts = undefined;
213
+ return this.oDate.setTime(iTime);
214
+ };
215
+ UI5Date.prototype.setYear = function (iYear) {
216
+ return this._setParts(['year'], [parseInt(iYear) + 1900]);
217
+ };
218
+ UI5Date.prototype.toDateString = function () {
219
+ if (isNaN(this.oDate)) {
220
+ return this.oDate.toDateString();
221
+ }
222
+ return aWeekday[this.getDay()] + ' ' + aMonths[this.getMonth()] + ' ' + addLeadingZeros(this.getDate(), 2) + ' ' + addLeadingZeros(this.getFullYear(), 4);
223
+ };
224
+ UI5Date.prototype.toString = function () {
225
+ if (isNaN(this.oDate)) {
226
+ return this.oDate.toString();
227
+ }
228
+ return this.toDateString() + ' ' + this.toTimeString();
229
+ };
230
+ UI5Date.prototype.toTimeString = function () {
231
+ var iHours, iMinutes, sSign, iTimeZoneOffset;
232
+ if (isNaN(this.oDate)) {
233
+ return this.oDate.toTimeString();
234
+ }
235
+ iTimeZoneOffset = this.getTimezoneOffset();
236
+ sSign = iTimeZoneOffset > 0 ? '-' : '+';
237
+ iHours = Math.floor(Math.abs(iTimeZoneOffset) / 60);
238
+ iMinutes = Math.abs(iTimeZoneOffset) % 60;
239
+ return addLeadingZeros(this.getHours(), 2) + ':' + addLeadingZeros(this.getMinutes(), 2) + ':' + addLeadingZeros(this.getSeconds(), 2) + ' GMT' + sSign + addLeadingZeros(iHours, 2) + addLeadingZeros(iMinutes, 2);
240
+ };
241
+ [
242
+ 'getTime',
243
+ 'getUTCDate',
244
+ 'getUTCDay',
245
+ 'getUTCFullYear',
246
+ 'getUTCHours',
247
+ 'getUTCMilliseconds',
248
+ 'getUTCMinutes',
249
+ 'getUTCMonth',
250
+ 'getUTCSeconds',
251
+ 'toGMTString',
252
+ 'toISOString',
253
+ 'toJSON',
254
+ 'toUTCString',
255
+ 'valueOf'
256
+ ].forEach(function (sMethod) {
257
+ UI5Date.prototype[sMethod] = function () {
258
+ return this.oDate[sMethod].apply(this.oDate, arguments);
259
+ };
260
+ });
261
+ [
262
+ 'toLocaleDateString',
263
+ 'toLocaleString',
264
+ 'toLocaleTimeString'
265
+ ].forEach(function (sMethod) {
266
+ UI5Date.prototype[sMethod] = function (sLocale, oOptions) {
267
+ return this.oDate[sMethod](sLocale || Configuration.getLanguageTag(), Object.assign({ timeZone: this.sTimezoneID }, oOptions));
268
+ };
269
+ });
270
+ [
271
+ 'setUTCDate',
272
+ 'setUTCFullYear',
273
+ 'setUTCHours',
274
+ 'setUTCMilliseconds',
275
+ 'setUTCMinutes',
276
+ 'setUTCMonth',
277
+ 'setUTCSeconds'
278
+ ].forEach(function (sMethod) {
279
+ UI5Date.prototype[sMethod] = function () {
280
+ this.oDateParts = undefined;
281
+ return this.oDate[sMethod].apply(this.oDate, arguments);
282
+ };
283
+ });
284
+ UI5Date._createDateInstance = function (vParts) {
285
+ if (vParts[0] instanceof Date) {
286
+ vParts[0] = vParts[0].valueOf();
287
+ }
288
+ return new (Function.prototype.bind.apply(Date, [].concat.apply([null], vParts)))();
289
+ };
290
+ UI5Date.getInstance = function () {
291
+ var sTimezone = Configuration.getTimezone();
292
+ if (sTimezone !== TimezoneUtil.getLocalTimezone()) {
293
+ return new UI5Date(arguments, sTimezone);
294
+ }
295
+ return UI5Date._createDateInstance(arguments);
296
+ };
297
+ UI5Date.checkDate = function (oDate) {
298
+ if (isNaN(oDate.getTime())) {
299
+ throw new Error('The given Date is not valid');
300
+ }
301
+ if (!(oDate instanceof UI5Date) && Configuration.getTimezone() !== TimezoneUtil.getLocalTimezone()) {
302
+ throw new Error('Configured time zone requires the parameter \'oDate\' to be an instance of' + ' sap.ui.core.date.UI5Date');
303
+ }
304
+ };
305
+ export default UI5Date;
@@ -1,10 +1,10 @@
1
1
  import BaseObject from '../../base/Object.js';
2
2
  import Configuration from '../Configuration.js';
3
- import Locale from '../Locale.js';
4
3
  import LocaleData from '../LocaleData.js';
5
4
  import _Calendars from './_Calendars.js';
6
5
  import CalendarUtils from './CalendarUtils.js';
7
6
  import CalendarWeekNumbering from './CalendarWeekNumbering.js';
7
+ import UI5Date from './UI5Date.js';
8
8
  var UniversalDate = BaseObject.extend('sap.ui.core.date.UniversalDate', {
9
9
  constructor: function () {
10
10
  var clDate = UniversalDate.getClass();
@@ -19,6 +19,9 @@ UniversalDate.now = function () {
19
19
  return Date.now();
20
20
  };
21
21
  UniversalDate.prototype.createDate = function (clDate, aArgs) {
22
+ if (clDate === Date) {
23
+ return UI5Date.getInstance.apply(null, aArgs);
24
+ }
22
25
  switch (aArgs.length) {
23
26
  case 0:
24
27
  return new clDate();
@@ -42,10 +45,8 @@ UniversalDate.getInstance = function (oDate, sCalendarType) {
42
45
  var clDate, oInstance;
43
46
  if (oDate instanceof UniversalDate) {
44
47
  oDate = oDate.getJSDate();
45
- } else if (!oDate) {
46
- oDate = new Date();
47
48
  }
48
- if (isNaN(oDate.getTime())) {
49
+ if (oDate && isNaN(oDate.getTime())) {
49
50
  throw new Error('The given date object is invalid');
50
51
  }
51
52
  if (!sCalendarType) {
@@ -53,7 +54,7 @@ UniversalDate.getInstance = function (oDate, sCalendarType) {
53
54
  }
54
55
  clDate = UniversalDate.getClass(sCalendarType);
55
56
  oInstance = Object.create(clDate.prototype);
56
- oInstance.oDate = oDate;
57
+ oInstance.oDate = oDate ? UI5Date.getInstance(oDate) : UI5Date.getInstance();
57
58
  oInstance.sCalendarType = sCalendarType;
58
59
  return oInstance;
59
60
  };
@@ -288,7 +289,7 @@ UniversalDate.getEraByDate = function (sCalendarType, iYear, iMonth, iDay) {
288
289
  }
289
290
  };
290
291
  UniversalDate.getCurrentEra = function (sCalendarType) {
291
- var oNow = new Date();
292
+ var oNow = UI5Date.getInstance();
292
293
  return this.getEraByDate(sCalendarType, oNow.getFullYear(), oNow.getMonth(), oNow.getDate());
293
294
  };
294
295
  UniversalDate.getEraStartDate = function (sCalendarType, iEra) {