@ui5/webcomponents-localization 0.0.0-974b11d82 → 0.0.0-97db186fd

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 (153) hide show
  1. package/.eslintignore +1 -1
  2. package/.npsrc.json +3 -0
  3. package/CHANGELOG.md +146 -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.js.map +1 -1
  29. package/dist/dates/transformDateToSecondaryType.d.ts +1 -1
  30. package/dist/dates/transformDateToSecondaryType.js +3 -2
  31. package/dist/dates/transformDateToSecondaryType.js.map +1 -1
  32. package/dist/features/calendar/Buddhist.js.map +1 -1
  33. package/dist/features/calendar/Gregorian.js.map +1 -1
  34. package/dist/features/calendar/Islamic.js.map +1 -1
  35. package/dist/features/calendar/Japanese.js.map +1 -1
  36. package/dist/features/calendar/Persian.js.map +1 -1
  37. package/dist/generated/assets/cldr/ar.json +5531 -6704
  38. package/dist/generated/assets/cldr/ar_EG.json +5531 -6704
  39. package/dist/generated/assets/cldr/ar_SA.json +5530 -6704
  40. package/dist/generated/assets/cldr/bg.json +4452 -5742
  41. package/dist/generated/assets/cldr/ca.json +4440 -5793
  42. package/dist/generated/assets/cldr/cs.json +4960 -6294
  43. package/dist/generated/assets/cldr/cy.json +5211 -6612
  44. package/dist/generated/assets/cldr/da.json +4308 -5651
  45. package/dist/generated/assets/cldr/de.json +4313 -5713
  46. package/dist/generated/assets/cldr/de_AT.json +4314 -5714
  47. package/dist/generated/assets/cldr/de_CH.json +4312 -5712
  48. package/dist/generated/assets/cldr/el.json +4281 -5579
  49. package/dist/generated/assets/cldr/el_CY.json +4281 -5579
  50. package/dist/generated/assets/cldr/en.json +4316 -5732
  51. package/dist/generated/assets/cldr/en_AU.json +4319 -5724
  52. package/dist/generated/assets/cldr/en_GB.json +4329 -5733
  53. package/dist/generated/assets/cldr/en_HK.json +4337 -5739
  54. package/dist/generated/assets/cldr/en_IE.json +4328 -5733
  55. package/dist/generated/assets/cldr/en_IN.json +4333 -5734
  56. package/dist/generated/assets/cldr/en_NZ.json +4328 -5733
  57. package/dist/generated/assets/cldr/en_PG.json +4329 -5734
  58. package/dist/generated/assets/cldr/en_SG.json +4333 -5735
  59. package/dist/generated/assets/cldr/en_ZA.json +4329 -5734
  60. package/dist/generated/assets/cldr/es.json +4331 -5641
  61. package/dist/generated/assets/cldr/es_AR.json +4334 -5643
  62. package/dist/generated/assets/cldr/es_BO.json +4333 -5642
  63. package/dist/generated/assets/cldr/es_CL.json +4334 -5643
  64. package/dist/generated/assets/cldr/es_CO.json +4333 -5642
  65. package/dist/generated/assets/cldr/es_MX.json +4335 -5644
  66. package/dist/generated/assets/cldr/es_PE.json +4333 -5642
  67. package/dist/generated/assets/cldr/es_UY.json +4335 -5644
  68. package/dist/generated/assets/cldr/es_VE.json +4334 -5643
  69. package/dist/generated/assets/cldr/et.json +4340 -5729
  70. package/dist/generated/assets/cldr/fa.json +4367 -5647
  71. package/dist/generated/assets/cldr/fi.json +4463 -5804
  72. package/dist/generated/assets/cldr/fr.json +4357 -5741
  73. package/dist/generated/assets/cldr/fr_BE.json +4357 -5741
  74. package/dist/generated/assets/cldr/fr_CA.json +4351 -5735
  75. package/dist/generated/assets/cldr/fr_CH.json +4375 -5759
  76. package/dist/generated/assets/cldr/fr_LU.json +4357 -5741
  77. package/dist/generated/assets/cldr/he.json +4869 -6175
  78. package/dist/generated/assets/cldr/hi.json +4295 -5558
  79. package/dist/generated/assets/cldr/hr.json +4583 -5681
  80. package/dist/generated/assets/cldr/hu.json +4364 -5686
  81. package/dist/generated/assets/cldr/id.json +4060 -5420
  82. package/dist/generated/assets/cldr/it.json +4299 -5712
  83. package/dist/generated/assets/cldr/it_CH.json +4299 -5712
  84. package/dist/generated/assets/cldr/ja.json +4211 -5626
  85. package/dist/generated/assets/cldr/kk.json +4339 -5487
  86. package/dist/generated/assets/cldr/ko.json +4189 -5534
  87. package/dist/generated/assets/cldr/lt.json +4850 -6243
  88. package/dist/generated/assets/cldr/lv.json +4587 -5874
  89. package/dist/generated/assets/cldr/ms.json +4021 -5245
  90. package/dist/generated/assets/cldr/nb.json +4335 -5740
  91. package/dist/generated/assets/cldr/nl.json +4294 -5613
  92. package/dist/generated/assets/cldr/nl_BE.json +4294 -5613
  93. package/dist/generated/assets/cldr/pl.json +4667 -5972
  94. package/dist/generated/assets/cldr/pt.json +4235 -5567
  95. package/dist/generated/assets/cldr/pt_PT.json +4372 -5702
  96. package/dist/generated/assets/cldr/ro.json +4563 -5852
  97. package/dist/generated/assets/cldr/ru.json +4909 -6169
  98. package/dist/generated/assets/cldr/ru_UA.json +4909 -6169
  99. package/dist/generated/assets/cldr/sk.json +4939 -6166
  100. package/dist/generated/assets/cldr/sl.json +4910 -6136
  101. package/dist/generated/assets/cldr/sr.json +4585 -5888
  102. package/dist/generated/assets/cldr/sr_Latn.json +4574 -5889
  103. package/dist/generated/assets/cldr/sv.json +4362 -5774
  104. package/dist/generated/assets/cldr/th.json +4214 -5627
  105. package/dist/generated/assets/cldr/tr.json +4400 -5809
  106. package/dist/generated/assets/cldr/uk.json +4858 -6115
  107. package/dist/generated/assets/cldr/vi.json +4070 -5435
  108. package/dist/generated/assets/cldr/zh_CN.json +4100 -5429
  109. package/dist/generated/assets/cldr/zh_HK.json +4108 -5437
  110. package/dist/generated/assets/cldr/zh_SG.json +4108 -5437
  111. package/dist/generated/assets/cldr/zh_TW.json +4131 -5525
  112. package/dist/getCachedLocaleDataInstance.js.map +1 -1
  113. package/dist/locale/getLocaleData.js.map +1 -1
  114. package/dist/sap/base/util/LoaderExtensions.js.map +1 -1
  115. package/dist/sap/ui/core/Configuration.js +2 -1
  116. package/dist/sap/ui/core/Configuration.js.map +1 -1
  117. package/dist/sap/ui/core/Core.js.map +1 -1
  118. package/dist/sap/ui/core/FormatSettings.js.map +1 -1
  119. package/dist/sap/ui/core/LocaleData.js +73 -19
  120. package/dist/sap/ui/core/date/UI5Date.js +305 -0
  121. package/dist/sap/ui/core/date/UniversalDate.js +7 -6
  122. package/dist/sap/ui/core/format/DateFormat.js +307 -293
  123. package/dist/sap/ui/core/format/TimezoneUtil.js +7 -12
  124. package/{package-scripts.js → package-scripts.cjs} +2 -3
  125. package/package.json +7 -6
  126. package/tsconfig.json +1 -0
  127. package/used-modules.txt +1 -0
  128. package/src/Assets-static.ts +0 -2
  129. package/src/Assets.ts +0 -2
  130. package/src/DateFormat.ts +0 -8
  131. package/src/LocaleData.ts +0 -8
  132. package/src/dates/CalendarDate.ts +0 -232
  133. package/src/dates/ExtremeDates.ts +0 -40
  134. package/src/dates/UniversalDate.ts +0 -51
  135. package/src/dates/calculateWeekNumber.ts +0 -53
  136. package/src/dates/convertMonthNumbersToMonthNames.ts +0 -34
  137. package/src/dates/getDaysInMonth.ts +0 -11
  138. package/src/dates/getRoundedTimestamp.ts +0 -14
  139. package/src/dates/getTodayUTCTimestamp.ts +0 -10
  140. package/src/dates/modifyDateBy.ts +0 -42
  141. package/src/dates/transformDateToSecondaryType.ts +0 -21
  142. package/src/features/calendar/Buddhist.ts +0 -1
  143. package/src/features/calendar/Gregorian.ts +0 -1
  144. package/src/features/calendar/Islamic.ts +0 -1
  145. package/src/features/calendar/Japanese.ts +0 -1
  146. package/src/features/calendar/Persian.ts +0 -1
  147. package/src/getCachedLocaleDataInstance.ts +0 -15
  148. package/src/locale/getLocaleData.ts +0 -28
  149. package/src/sap/base/util/LoaderExtensions.ts +0 -17
  150. package/src/sap/ui/core/Configuration.ts +0 -22
  151. package/src/sap/ui/core/Core.ts +0 -15
  152. package/src/sap/ui/core/FormatSettings.ts +0 -16
  153. /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"]}
@@ -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"]}
@@ -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"]}
@@ -1 +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"}
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) {