@openui5/sap.ui.core 1.101.0 → 1.102.2

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 (362) hide show
  1. package/.eslintrc.json +26 -5
  2. package/THIRDPARTY.txt +1 -1
  3. package/package.json +1 -1
  4. package/src/jquery.sap.global.js +1 -1
  5. package/src/jquery.sap.properties.js +1 -1
  6. package/src/jquery.sap.resources.js +1 -1
  7. package/src/jquery.sap.script.js +1 -1
  8. package/src/jquery.sap.storage.js +3 -3
  9. package/src/sap/base/assert.js +1 -1
  10. package/src/sap/base/strings/whitespaceReplacer.js +1 -1
  11. package/src/sap/base/util/restricted/_CancelablePromise.js +2 -2
  12. package/src/sap/base/util/restricted/_castArray.js +1 -1
  13. package/src/sap/base/util/restricted/_compact.js +1 -1
  14. package/src/sap/base/util/restricted/_curry.js +1 -1
  15. package/src/sap/base/util/restricted/_debounce.js +1 -1
  16. package/src/sap/base/util/restricted/_difference.js +1 -1
  17. package/src/sap/base/util/restricted/_differenceBy.js +1 -1
  18. package/src/sap/base/util/restricted/_differenceWith.js +1 -1
  19. package/src/sap/base/util/restricted/_flatMap.js +1 -1
  20. package/src/sap/base/util/restricted/_flatMapDeep.js +1 -1
  21. package/src/sap/base/util/restricted/_flatMapDepth.js +1 -1
  22. package/src/sap/base/util/restricted/_flatten.js +1 -1
  23. package/src/sap/base/util/restricted/_flattenDeep.js +1 -1
  24. package/src/sap/base/util/restricted/_flattenDepth.js +1 -1
  25. package/src/sap/base/util/restricted/_intersection.js +1 -1
  26. package/src/sap/base/util/restricted/_intersectionBy.js +1 -1
  27. package/src/sap/base/util/restricted/_intersectionWith.js +1 -1
  28. package/src/sap/base/util/restricted/_isEqual.js +1 -1
  29. package/src/sap/base/util/restricted/_isEqualWith.js +1 -1
  30. package/src/sap/base/util/restricted/_isNil.js +1 -1
  31. package/src/sap/base/util/restricted/_max.js +1 -1
  32. package/src/sap/base/util/restricted/_merge.js +1 -1
  33. package/src/sap/base/util/restricted/_mergeWith.js +1 -1
  34. package/src/sap/base/util/restricted/_min.js +1 -1
  35. package/src/sap/base/util/restricted/_omit.js +1 -1
  36. package/src/sap/base/util/restricted/_pick.js +1 -1
  37. package/src/sap/base/util/restricted/_pickBy.js +1 -1
  38. package/src/sap/base/util/restricted/_throttle.js +1 -1
  39. package/src/sap/base/util/restricted/_toArray.js +1 -1
  40. package/src/sap/base/util/restricted/_union.js +1 -1
  41. package/src/sap/base/util/restricted/_unionBy.js +1 -1
  42. package/src/sap/base/util/restricted/_unionWith.js +1 -1
  43. package/src/sap/base/util/restricted/_uniq.js +1 -1
  44. package/src/sap/base/util/restricted/_uniqBy.js +1 -1
  45. package/src/sap/base/util/restricted/_uniqWith.js +1 -1
  46. package/src/sap/base/util/restricted/_without.js +1 -1
  47. package/src/sap/base/util/restricted/_xor.js +1 -1
  48. package/src/sap/base/util/restricted/_xorBy.js +1 -1
  49. package/src/sap/base/util/restricted/_xorWith.js +1 -1
  50. package/src/sap/base/util/restricted/_zipObject.js +1 -1
  51. package/src/sap/base/util/restricted/_zipObjectDeep.js +1 -1
  52. package/src/sap/ui/Device.js +3 -3
  53. package/src/sap/ui/Global.js +4 -4
  54. package/src/sap/ui/base/Event.js +1 -1
  55. package/src/sap/ui/base/EventProvider.js +1 -1
  56. package/src/sap/ui/base/Interface.js +1 -1
  57. package/src/sap/ui/base/ManagedObject.js +1 -1
  58. package/src/sap/ui/base/ManagedObjectMetadata.js +1 -1
  59. package/src/sap/ui/base/Metadata.js +1 -1
  60. package/src/sap/ui/base/Object.js +1 -1
  61. package/src/sap/ui/base/ObjectPool.js +1 -1
  62. package/src/sap/ui/core/.library +2 -1
  63. package/src/sap/ui/core/BusyIndicator.js +1 -1
  64. package/src/sap/ui/core/CommandExecution.js +15 -12
  65. package/src/sap/ui/core/Component.js +31 -12
  66. package/src/sap/ui/core/ComponentContainer.js +1 -1
  67. package/src/sap/ui/core/ComponentMetadata.js +27 -12
  68. package/src/sap/ui/core/ComponentSupport.js +1 -1
  69. package/src/sap/ui/core/Configuration.js +22 -8
  70. package/src/sap/ui/core/Control.js +2 -3
  71. package/src/sap/ui/core/Core.js +95 -27
  72. package/src/sap/ui/core/CustomData.js +1 -1
  73. package/src/sap/ui/core/DeclarativeSupport.js +1 -1
  74. package/src/sap/ui/core/Element.js +1 -1
  75. package/src/sap/ui/core/ElementMetadata.js +1 -1
  76. package/src/sap/ui/core/EnabledPropagator.js +1 -1
  77. package/src/sap/ui/core/EventBus.js +1 -1
  78. package/src/sap/ui/core/ExtensionPoint.js +1 -1
  79. package/src/sap/ui/core/FocusHandler.js +2 -3
  80. package/src/sap/ui/core/Fragment.js +1 -1
  81. package/src/sap/ui/core/HTML.js +1 -1
  82. package/src/sap/ui/core/History.js +1 -1
  83. package/src/sap/ui/core/Icon.js +2 -2
  84. package/src/sap/ui/core/IndicationColorSupport.js +1 -1
  85. package/src/sap/ui/core/IntervalTrigger.js +1 -1
  86. package/src/sap/ui/core/InvisibleMessage.js +1 -1
  87. package/src/sap/ui/core/InvisibleRenderer.js +1 -1
  88. package/src/sap/ui/core/InvisibleText.js +1 -1
  89. package/src/sap/ui/core/Item.js +1 -1
  90. package/src/sap/ui/core/LabelEnablement.js +1 -1
  91. package/src/sap/ui/core/LayoutData.js +1 -1
  92. package/src/sap/ui/core/ListItem.js +1 -1
  93. package/src/sap/ui/core/LocalBusyIndicator.js +1 -1
  94. package/src/sap/ui/core/Locale.js +1 -1
  95. package/src/sap/ui/core/LocaleData.js +119 -1
  96. package/src/sap/ui/core/Manifest.js +1 -1
  97. package/src/sap/ui/core/Message.js +1 -1
  98. package/src/sap/ui/core/Popup.js +12 -14
  99. package/src/sap/ui/core/RenderManager.js +1 -1
  100. package/src/sap/ui/core/Renderer.js +1 -1
  101. package/src/sap/ui/core/ResizeHandler.js +1 -1
  102. package/src/sap/ui/core/ScrollBar.js +21 -15
  103. package/src/sap/ui/core/SeparatorItem.js +1 -1
  104. package/src/sap/ui/core/ShortcutHintsMixin.js +2 -4
  105. package/src/sap/ui/core/Title.js +1 -1
  106. package/src/sap/ui/core/TooltipBase.js +1 -1
  107. package/src/sap/ui/core/UIArea.js +3 -5
  108. package/src/sap/ui/core/UIComponent.js +1 -1
  109. package/src/sap/ui/core/UIComponentMetadata.js +1 -1
  110. package/src/sap/ui/core/ValueStateSupport.js +1 -1
  111. package/src/sap/ui/core/VariantLayoutData.js +1 -1
  112. package/src/sap/ui/core/XMLComposite.js +1 -1
  113. package/src/sap/ui/core/XMLCompositeMetadata.js +1 -1
  114. package/src/sap/ui/core/XMLTemplateProcessor.js +512 -387
  115. package/src/sap/ui/core/cache/CacheManager.js +27 -0
  116. package/src/sap/ui/core/cache/CacheManagerNOP.js +3 -0
  117. package/src/sap/ui/core/cache/LRUPersistentCache.js +74 -3
  118. package/src/sap/ui/core/cldr/ar.json +469 -1
  119. package/src/sap/ui/core/cldr/ar_EG.json +469 -1
  120. package/src/sap/ui/core/cldr/ar_SA.json +469 -1
  121. package/src/sap/ui/core/cldr/bg.json +469 -1
  122. package/src/sap/ui/core/cldr/ca.json +469 -1
  123. package/src/sap/ui/core/cldr/cs.json +469 -1
  124. package/src/sap/ui/core/cldr/cy.json +469 -1
  125. package/src/sap/ui/core/cldr/da.json +469 -1
  126. package/src/sap/ui/core/cldr/de.json +469 -1
  127. package/src/sap/ui/core/cldr/de_AT.json +469 -1
  128. package/src/sap/ui/core/cldr/de_CH.json +469 -1
  129. package/src/sap/ui/core/cldr/el.json +469 -1
  130. package/src/sap/ui/core/cldr/el_CY.json +469 -1
  131. package/src/sap/ui/core/cldr/en.json +469 -1
  132. package/src/sap/ui/core/cldr/en_AU.json +469 -1
  133. package/src/sap/ui/core/cldr/en_GB.json +469 -1
  134. package/src/sap/ui/core/cldr/en_HK.json +469 -1
  135. package/src/sap/ui/core/cldr/en_IE.json +469 -1
  136. package/src/sap/ui/core/cldr/en_IN.json +469 -1
  137. package/src/sap/ui/core/cldr/en_NZ.json +469 -1
  138. package/src/sap/ui/core/cldr/en_PG.json +469 -1
  139. package/src/sap/ui/core/cldr/en_SG.json +469 -1
  140. package/src/sap/ui/core/cldr/en_ZA.json +469 -1
  141. package/src/sap/ui/core/cldr/es.json +469 -1
  142. package/src/sap/ui/core/cldr/es_AR.json +469 -1
  143. package/src/sap/ui/core/cldr/es_BO.json +469 -1
  144. package/src/sap/ui/core/cldr/es_CL.json +469 -1
  145. package/src/sap/ui/core/cldr/es_CO.json +469 -1
  146. package/src/sap/ui/core/cldr/es_MX.json +469 -1
  147. package/src/sap/ui/core/cldr/es_PE.json +469 -1
  148. package/src/sap/ui/core/cldr/es_UY.json +469 -1
  149. package/src/sap/ui/core/cldr/es_VE.json +469 -1
  150. package/src/sap/ui/core/cldr/et.json +469 -1
  151. package/src/sap/ui/core/cldr/fa.json +469 -1
  152. package/src/sap/ui/core/cldr/fi.json +469 -1
  153. package/src/sap/ui/core/cldr/fr.json +469 -1
  154. package/src/sap/ui/core/cldr/fr_BE.json +469 -1
  155. package/src/sap/ui/core/cldr/fr_CA.json +469 -1
  156. package/src/sap/ui/core/cldr/fr_CH.json +469 -1
  157. package/src/sap/ui/core/cldr/fr_LU.json +469 -1
  158. package/src/sap/ui/core/cldr/he.json +469 -1
  159. package/src/sap/ui/core/cldr/hi.json +469 -1
  160. package/src/sap/ui/core/cldr/hr.json +469 -1
  161. package/src/sap/ui/core/cldr/hu.json +469 -1
  162. package/src/sap/ui/core/cldr/id.json +469 -1
  163. package/src/sap/ui/core/cldr/it.json +469 -1
  164. package/src/sap/ui/core/cldr/it_CH.json +469 -1
  165. package/src/sap/ui/core/cldr/ja.json +469 -1
  166. package/src/sap/ui/core/cldr/kk.json +469 -1
  167. package/src/sap/ui/core/cldr/ko.json +469 -1
  168. package/src/sap/ui/core/cldr/lt.json +469 -1
  169. package/src/sap/ui/core/cldr/lv.json +469 -1
  170. package/src/sap/ui/core/cldr/ms.json +469 -1
  171. package/src/sap/ui/core/cldr/nb.json +469 -1
  172. package/src/sap/ui/core/cldr/nl.json +469 -1
  173. package/src/sap/ui/core/cldr/nl_BE.json +469 -1
  174. package/src/sap/ui/core/cldr/pl.json +469 -1
  175. package/src/sap/ui/core/cldr/pt.json +469 -1
  176. package/src/sap/ui/core/cldr/pt_PT.json +469 -1
  177. package/src/sap/ui/core/cldr/ro.json +469 -1
  178. package/src/sap/ui/core/cldr/ru.json +469 -1
  179. package/src/sap/ui/core/cldr/ru_UA.json +469 -1
  180. package/src/sap/ui/core/cldr/sk.json +469 -1
  181. package/src/sap/ui/core/cldr/sl.json +469 -1
  182. package/src/sap/ui/core/cldr/sr.json +469 -1
  183. package/src/sap/ui/core/cldr/sr_Latn.json +469 -1
  184. package/src/sap/ui/core/cldr/sv.json +469 -1
  185. package/src/sap/ui/core/cldr/th.json +469 -1
  186. package/src/sap/ui/core/cldr/tr.json +469 -1
  187. package/src/sap/ui/core/cldr/uk.json +469 -1
  188. package/src/sap/ui/core/cldr/vi.json +469 -1
  189. package/src/sap/ui/core/cldr/zh_CN.json +470 -2
  190. package/src/sap/ui/core/cldr/zh_HK.json +470 -2
  191. package/src/sap/ui/core/cldr/zh_SG.json +470 -2
  192. package/src/sap/ui/core/cldr/zh_TW.json +469 -1
  193. package/src/sap/ui/core/delegate/ItemNavigation.js +13 -14
  194. package/src/sap/ui/core/delegate/ScrollEnablement.js +11 -7
  195. package/src/sap/ui/core/dnd/DragAndDrop.js +2 -2
  196. package/src/sap/ui/core/dnd/DragDropBase.js +1 -1
  197. package/src/sap/ui/core/dnd/DragDropInfo.js +1 -1
  198. package/src/sap/ui/core/dnd/DragInfo.js +1 -1
  199. package/src/sap/ui/core/dnd/DropInfo.js +1 -1
  200. package/src/sap/ui/core/format/DateFormat.js +41 -26
  201. package/src/sap/ui/core/format/NumberFormat.js +119 -53
  202. package/src/sap/ui/core/format/TimezoneUtil.js +48 -16
  203. package/src/sap/ui/core/hyphenation/Hyphenation.js +1 -1
  204. package/src/sap/ui/core/library.js +3 -3
  205. package/src/sap/ui/core/message/ControlMessageProcessor.js +1 -1
  206. package/src/sap/ui/core/message/Message.js +1 -1
  207. package/src/sap/ui/core/message/MessageManager.js +1 -1
  208. package/src/sap/ui/core/message/MessageParser.js +1 -1
  209. package/src/sap/ui/core/message/MessageProcessor.js +1 -1
  210. package/src/sap/ui/core/mvc/HTMLView.js +1 -1
  211. package/src/sap/ui/core/mvc/JSONView.js +1 -1
  212. package/src/sap/ui/core/mvc/JSView.js +2 -2
  213. package/src/sap/ui/core/mvc/TemplateView.js +1 -1
  214. package/src/sap/ui/core/mvc/View.js +2 -1
  215. package/src/sap/ui/core/mvc/XMLView.js +12 -20
  216. package/src/sap/ui/core/mvc/XMLViewRenderer.js +81 -62
  217. package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
  218. package/src/sap/ui/core/plugin/LessSupport.js +3 -3
  219. package/src/sap/ui/core/plugin/TemplatingSupport.js +1 -1
  220. package/src/sap/ui/core/postmessage/Bus.js +1 -1
  221. package/src/sap/ui/core/postmessage/confirmationDialog.js +1 -1
  222. package/src/sap/ui/core/routing/Router.js +1 -1
  223. package/src/sap/ui/core/rules/App.support.js +8 -8
  224. package/src/sap/ui/core/rules/Config.support.js +12 -12
  225. package/src/sap/ui/core/rules/Model.support.js +8 -8
  226. package/src/sap/ui/core/rules/Rendering.support.js +1 -1
  227. package/src/sap/ui/core/rules/Theming.support.js +4 -4
  228. package/src/sap/ui/core/rules/View.support.js +9 -9
  229. package/src/sap/ui/core/search/OpenSearchProvider.js +1 -1
  230. package/src/sap/ui/core/search/SearchProvider.js +1 -1
  231. package/src/sap/ui/core/service/Service.js +1 -1
  232. package/src/sap/ui/core/service/ServiceFactory.js +1 -1
  233. package/src/sap/ui/core/service/ServiceFactoryRegistry.js +1 -1
  234. package/src/sap/ui/core/support/Plugin.js +1 -1
  235. package/src/sap/ui/core/support/Support.js +2 -2
  236. package/src/sap/ui/core/support/plugins/ControlTree.js +7 -3
  237. package/src/sap/ui/core/support/plugins/Interaction.js +1 -1
  238. package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -1
  239. package/src/sap/ui/core/support/plugins/Performance.js +1 -1
  240. package/src/sap/ui/core/support/plugins/Selector.js +1 -1
  241. package/src/sap/ui/core/support/plugins/TechInfo.js +1 -1
  242. package/src/sap/ui/core/support/plugins/Trace.js +1 -1
  243. package/src/sap/ui/core/support/plugins/ViewInfo.js +8 -22
  244. package/src/sap/ui/core/support/support.html +1 -1
  245. package/src/sap/ui/core/themes/base/LocalBusyIndicator.less +15 -1
  246. package/src/sap/ui/core/themes/base/base.less +4 -4
  247. package/src/sap/ui/core/themes/base/global.less +2 -0
  248. package/src/sap/ui/core/themes/sap_hcb/global.less +2 -0
  249. package/src/sap/ui/core/tmpl/DOMAttribute.js +1 -1
  250. package/src/sap/ui/core/tmpl/DOMElement.js +1 -1
  251. package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +1 -1
  252. package/src/sap/ui/core/tmpl/Template.js +1 -1
  253. package/src/sap/ui/core/tmpl/TemplateControl.js +1 -1
  254. package/src/sap/ui/core/util/AsyncHintsHelper.js +1 -1
  255. package/src/sap/ui/core/util/Export.js +1 -1
  256. package/src/sap/ui/core/util/ExportCell.js +1 -1
  257. package/src/sap/ui/core/util/ExportColumn.js +1 -1
  258. package/src/sap/ui/core/util/ExportRow.js +1 -1
  259. package/src/sap/ui/core/util/ExportType.js +1 -1
  260. package/src/sap/ui/core/util/ExportTypeCSV.js +1 -1
  261. package/src/sap/ui/core/util/File.js +1 -1
  262. package/src/sap/ui/core/util/LibraryInfo.js +1 -1
  263. package/src/sap/ui/core/util/MockServer.js +2 -2
  264. package/src/sap/ui/core/util/PasteHelper.js +1 -1
  265. package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +1 -1
  266. package/src/sap/ui/core/util/serializer/Serializer.js +1 -1
  267. package/src/sap/ui/core/util/serializer/ViewSerializer.js +1 -1
  268. package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +1 -1
  269. package/src/sap/ui/core/util/serializer/delegate/Delegate.js +1 -1
  270. package/src/sap/ui/core/util/serializer/delegate/HTML.js +1 -1
  271. package/src/sap/ui/core/util/serializer/delegate/XML.js +1 -1
  272. package/src/sap/ui/core/ws/ReadyState.js +1 -1
  273. package/src/sap/ui/core/ws/SapPcpWebSocket.js +1 -1
  274. package/src/sap/ui/core/ws/WebSocket.js +7 -8
  275. package/src/sap/ui/debug/ControlTree.js +1 -1
  276. package/src/sap/ui/debug/DebugEnv.js +1 -1
  277. package/src/sap/ui/debug/PropertyList.js +1 -1
  278. package/src/sap/ui/model/ClientListBinding.js +127 -21
  279. package/src/sap/ui/model/ClientModel.js +1 -1
  280. package/src/sap/ui/model/CompositeDataState.js +1 -1
  281. package/src/sap/ui/model/CompositeType.js +1 -1
  282. package/src/sap/ui/model/DataState.js +1 -1
  283. package/src/sap/ui/model/ListBinding.js +32 -13
  284. package/src/sap/ui/model/MetaModel.js +1 -1
  285. package/src/sap/ui/model/Model.js +1 -1
  286. package/src/sap/ui/model/SelectionModel.js +1 -1
  287. package/src/sap/ui/model/SimpleType.js +1 -1
  288. package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
  289. package/src/sap/ui/model/Type.js +1 -1
  290. package/src/sap/ui/model/_Helper.js +3 -1
  291. package/src/sap/ui/model/json/JSONListBinding.js +0 -58
  292. package/src/sap/ui/model/json/JSONModel.js +1 -1
  293. package/src/sap/ui/model/message/MessageListBinding.js +0 -42
  294. package/src/sap/ui/model/message/MessageModel.js +1 -1
  295. package/src/sap/ui/model/odata/ODataAnnotations.js +1 -1
  296. package/src/sap/ui/model/odata/ODataMessageParser.js +1 -1
  297. package/src/sap/ui/model/odata/ODataMetaModel.js +1 -1
  298. package/src/sap/ui/model/odata/ODataMetadata.js +1 -1
  299. package/src/sap/ui/model/odata/ODataModel.js +1 -1
  300. package/src/sap/ui/model/odata/OperationMode.js +6 -0
  301. package/src/sap/ui/model/odata/type/Boolean.js +1 -1
  302. package/src/sap/ui/model/odata/type/Byte.js +1 -1
  303. package/src/sap/ui/model/odata/type/Currency.js +1 -1
  304. package/src/sap/ui/model/odata/type/Date.js +1 -1
  305. package/src/sap/ui/model/odata/type/DateTime.js +1 -1
  306. package/src/sap/ui/model/odata/type/DateTimeBase.js +1 -1
  307. package/src/sap/ui/model/odata/type/DateTimeOffset.js +1 -1
  308. package/src/sap/ui/model/odata/type/DateTimeWithTimezone.js +1 -2
  309. package/src/sap/ui/model/odata/type/Decimal.js +1 -1
  310. package/src/sap/ui/model/odata/type/Double.js +1 -1
  311. package/src/sap/ui/model/odata/type/Guid.js +1 -1
  312. package/src/sap/ui/model/odata/type/Int.js +1 -1
  313. package/src/sap/ui/model/odata/type/Int16.js +1 -1
  314. package/src/sap/ui/model/odata/type/Int32.js +1 -1
  315. package/src/sap/ui/model/odata/type/Int64.js +1 -1
  316. package/src/sap/ui/model/odata/type/ODataType.js +1 -1
  317. package/src/sap/ui/model/odata/type/Raw.js +1 -1
  318. package/src/sap/ui/model/odata/type/SByte.js +1 -1
  319. package/src/sap/ui/model/odata/type/Single.js +1 -1
  320. package/src/sap/ui/model/odata/type/Stream.js +1 -1
  321. package/src/sap/ui/model/odata/type/String.js +1 -1
  322. package/src/sap/ui/model/odata/type/Time.js +1 -1
  323. package/src/sap/ui/model/odata/type/TimeOfDay.js +1 -1
  324. package/src/sap/ui/model/odata/type/Unit.js +1 -1
  325. package/src/sap/ui/model/odata/type/UnitMixin.js +1 -1
  326. package/src/sap/ui/model/odata/v2/Context.js +13 -4
  327. package/src/sap/ui/model/odata/v2/ODataAnnotations.js +1 -1
  328. package/src/sap/ui/model/odata/v2/ODataListBinding.js +107 -34
  329. package/src/sap/ui/model/odata/v2/ODataModel.js +70 -22
  330. package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +8 -4
  331. package/src/sap/ui/model/odata/v4/Context.js +25 -1
  332. package/src/sap/ui/model/odata/v4/ODataContextBinding.js +1 -1
  333. package/src/sap/ui/model/odata/v4/ODataListBinding.js +55 -26
  334. package/src/sap/ui/model/odata/v4/ODataMetaModel.js +13 -6
  335. package/src/sap/ui/model/odata/v4/ODataModel.js +111 -5
  336. package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +1 -1
  337. package/src/sap/ui/model/odata/v4/lib/_Cache.js +74 -74
  338. package/src/sap/ui/model/odata/v4/lib/_Helper.js +109 -39
  339. package/src/sap/ui/model/odata/v4/lib/_Requestor.js +60 -29
  340. package/src/sap/ui/model/resource/ResourceModel.js +1 -1
  341. package/src/sap/ui/model/type/Boolean.js +1 -1
  342. package/src/sap/ui/model/type/Currency.js +1 -1
  343. package/src/sap/ui/model/type/Date.js +1 -1
  344. package/src/sap/ui/model/type/DateInterval.js +1 -1
  345. package/src/sap/ui/model/type/DateTime.js +1 -1
  346. package/src/sap/ui/model/type/DateTimeInterval.js +1 -1
  347. package/src/sap/ui/model/type/FileSize.js +1 -1
  348. package/src/sap/ui/model/type/Float.js +1 -1
  349. package/src/sap/ui/model/type/Integer.js +1 -1
  350. package/src/sap/ui/model/type/String.js +1 -1
  351. package/src/sap/ui/model/type/Time.js +1 -1
  352. package/src/sap/ui/model/type/TimeInterval.js +1 -1
  353. package/src/sap/ui/model/type/Unit.js +1 -1
  354. package/src/sap/ui/model/xml/XMLListBinding.js +0 -53
  355. package/src/sap/ui/model/xml/XMLModel.js +1 -1
  356. package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
  357. package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +1 -1
  358. package/src/sap/ui/test/actions/Action.js +3 -3
  359. package/src/sap/ui/test/actions/Press.js +1 -1
  360. package/src/sap/ui/test/generic/TestBase.js +1 -1
  361. package/src/sap/ui/util/Storage.js +1 -1
  362. package/ui5.yaml +1 -1
@@ -216,6 +216,33 @@ sap.ui.define([
216
216
  return pDel;
217
217
  },
218
218
 
219
+ /**
220
+ * Deletes entries, filtered using several criteria.
221
+ * @param {object} [filters] The filters that will be applied to find the entries for deletion. If not
222
+ * provided - all entries are included.
223
+ * @param {string} [filters.prefix] Only includes entries that have a key starting with this prefix.
224
+ * If not provided - entries with all keys are included.
225
+ * @param {Date} [filters.olderThan] Only includes entries with older usage dates. If not provided
226
+ * - entries with any/no usage date are included.
227
+ * @returns {Promise} A promise that would be resolved in case of successful operation or rejected with
228
+ * value of the error message if the operation fails.
229
+ * @public
230
+ * @since 1.102.0
231
+ */
232
+ delWithFilters: function(filters) {
233
+ var pDel;
234
+ Log.debug("Cache Manager: delWithFilters called.");
235
+
236
+ pDel = this._callInstanceMethod("delWithFilters", arguments).then(function callInstanceHandler() {
237
+ Log.debug("Cache Manager: delWithFilters completed successfully.");
238
+ }, function (e) {
239
+ Log.debug("Cache Manager: delWithFilters failed. Error: " + e);
240
+ throw e;
241
+ });
242
+
243
+ return pDel;
244
+ },
245
+
219
246
  /**
220
247
  * Clears all entries in the cache.
221
248
  * @returns {Promise} a promise that would be resolved in case of successful operation or rejected with
@@ -32,6 +32,9 @@ sap.ui.define([],
32
32
  del: function () {
33
33
  return Promise.resolve();
34
34
  },
35
+ delWithFilters: function() {
36
+ return Promise.resolve();
37
+ },
35
38
  reset: function () {
36
39
  return Promise.resolve();
37
40
  },
@@ -245,6 +245,9 @@ sap.ui.define(["sap/base/Log", "sap/ui/performance/Measurement"],
245
245
  transaction.abort();
246
246
  });
247
247
  } else {
248
+ if (!self._metadata.timestamps) {
249
+ self._metadata.timestamps = {};
250
+ }
248
251
  resolve();
249
252
  }
250
253
  };
@@ -275,6 +278,61 @@ sap.ui.define(["sap/base/Log", "sap/ui/performance/Measurement"],
275
278
  return del(this, key);
276
279
  },
277
280
 
281
+ delWithFilters: function(filters) {
282
+ var self = this,
283
+ oFilters = filters || {};
284
+
285
+ return new Promise(function (resolve, reject) {
286
+ var oMetadataBackup = cloneMetadata(self._metadata),
287
+ oTransaction = self._db.transaction([ self.defaultOptions._contentStoreName, self.defaultOptions._metadataStoreName ], "readwrite"),
288
+ oContentStore = oTransaction.objectStore(self.defaultOptions._contentStoreName),
289
+ oMetadataStore = oTransaction.objectStore(self.defaultOptions._metadataStoreName),
290
+ oContentCursor = oContentStore.openCursor(),
291
+ sPrefix = oFilters.prefix || "";
292
+
293
+ function restoreMetadata() {
294
+ self._metadata = oMetadataBackup;
295
+ assignRUCounters(self);
296
+ }
297
+
298
+ function onTransactionFail(event) {
299
+ restoreMetadata();
300
+ reject(collectErrorData(event));
301
+ }
302
+
303
+ oTransaction.onerror = onTransactionFail;
304
+ oTransaction.onabort = onTransactionFail;
305
+
306
+ oTransaction.oncomplete = function(event) {
307
+ resolve();
308
+ };
309
+
310
+ oContentCursor.onsuccess = function(event) {
311
+ var oCursor = event.target.result,
312
+ sKey,
313
+ oRequest;
314
+
315
+ if (!oCursor) {
316
+ oMetadataStore.put(self._metadata, self.defaultOptions._metadataKey);
317
+ return;
318
+ }
319
+
320
+ sKey = oCursor.value.key;
321
+
322
+ if (sKey.indexOf(sPrefix) === 0
323
+ && (!oFilters.olderThan || self._metadata.timestamps[sKey] <= oFilters.olderThan)) {
324
+ oRequest = oCursor.delete();
325
+ oRequest.onsuccess = function() {
326
+ Log.debug('Deleted ' + sKey + '!');
327
+ deleteMetadataForEntry(self, sKey);
328
+ };
329
+ }
330
+
331
+ oCursor.continue();
332
+ };
333
+ });
334
+ },
335
+
278
336
  reset: function () {
279
337
  var self = this;
280
338
  return new Promise(function (resolve, reject) {
@@ -322,9 +380,13 @@ sap.ui.define(["sap/base/Log", "sap/ui/performance/Measurement"],
322
380
  sMsrCatSet = "LRUPersistentCache,set",
323
381
  iMsrCounter = 0;
324
382
 
325
- function scheduleMetadataSave(self) {//an async store of the metadata , the caller should not be interested in the result, since no reporting status back is supported
383
+ function scheduleMetadataSave(self, oItem) {//an async store of the metadata , the caller should not be interested in the result, since no reporting status back is supported
384
+ var transaction;
385
+
386
+ self._metadata.timestamps[oItem.oData.key] = Date.now();
387
+
326
388
  //locking both stores as no further modification is required. This will block any further metadata update and sets, but this is the way to keep the metadata consistent
327
- var transaction = self._db.transaction([self.defaultOptions._contentStoreName, self.defaultOptions._metadataStoreName], "readwrite");
389
+ transaction = self._db.transaction([self.defaultOptions._contentStoreName, self.defaultOptions._metadataStoreName], "readwrite");
328
390
 
329
391
  transaction.onerror = transaction.onabort = function (event) {
330
392
  Log.warning("Cache Manager cannot persist the information about usage of an entry. This may lead to earlier removal of the entry if browser storage space is over. Details: " + transaction.error);
@@ -434,9 +496,11 @@ sap.ui.define(["sap/base/Log", "sap/ui/performance/Measurement"],
434
496
  if (oItem.oData.lu !== self._mru) { // Update the usage data only if the item is not already the most used one
435
497
  oItem.oData.lu = ++self._mru;
436
498
  updateItemUsage(self, oItem);
437
- scheduleMetadataSave(self); //postponed as update of the metadata is not crucial here
438
499
  }
439
500
 
501
+ //postponed as update of the metadata is not crucial here
502
+ scheduleMetadataSave(self, oItem);
503
+
440
504
  Measurement.end(sMsrPutMetadata);
441
505
  result = oItem.deserialize().oData.value;
442
506
  }
@@ -705,6 +769,7 @@ sap.ui.define(["sap/base/Log", "sap/ui/performance/Measurement"],
705
769
 
706
770
  function initMetadata(ui5version) {
707
771
  return {
772
+ timestamps: {},
708
773
  __byKey__: {},
709
774
  __byIndex__: {},
710
775
  __ui5version: ui5version
@@ -724,6 +789,9 @@ sap.ui.define(["sap/base/Log", "sap/ui/performance/Measurement"],
724
789
  for (var key in source.__byKey__) {
725
790
  backupMetadata.__byKey__[key] = source.__byKey__[key];
726
791
  }
792
+ for (var key in source.timestamps) {
793
+ backupMetadata.timestamps[key] = source.timestamps[key];
794
+ }
727
795
  return backupMetadata;
728
796
  }
729
797
 
@@ -819,6 +887,9 @@ sap.ui.define(["sap/base/Log", "sap/ui/performance/Measurement"],
819
887
  var iIndex = self._metadata.__byKey__[key];
820
888
  delete self._metadata.__byKey__[key];
821
889
  delete self._metadata.__byIndex__[iIndex];
890
+ if (self._metadata.timestamps[key]) {
891
+ delete self._metadata.timestamps[key];
892
+ }
822
893
  seekMetadataLRU(self);
823
894
  }
824
895
 
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "__license": "This file has been derived from Unicode Common Locale Data Repository (CLDR) files (http://cldr.unicode.org). See the copyright and permission notice in the Unicode-Data-Files-LICENSE.txt available at the same location as this file or visit http://www.unicode.org/copyright.html",
3
3
  "__version": "35.1.0",
4
- "__buildtime": "2020-10-20T05:15:22.539Z",
4
+ "__buildtime": "2022-05-02T19:26:05.809Z",
5
5
  "languages": {
6
6
  "aa": "الأفارية",
7
7
  "ab": "الأبخازية",
@@ -3950,6 +3950,474 @@
3950
3950
  "displayName": "التوقيت"
3951
3951
  }
3952
3952
  },
3953
+ "timezoneNames": {
3954
+ "Africa": {
3955
+ "Abidjan": "أبيدجان",
3956
+ "Accra": "أكرا",
3957
+ "Addis_Ababa": "أديس أبابا",
3958
+ "Algiers": "الجزائر",
3959
+ "Asmara": "أسمرة",
3960
+ "Bamako": "باماكو",
3961
+ "Bangui": "بانغوي",
3962
+ "Banjul": "بانجول",
3963
+ "Bissau": "بيساو",
3964
+ "Blantyre": "بلانتاير",
3965
+ "Brazzaville": "برازافيل",
3966
+ "Bujumbura": "بوجومبورا",
3967
+ "Cairo": "القاهرة",
3968
+ "Casablanca": "الدار البيضاء",
3969
+ "Ceuta": "سيتا",
3970
+ "Conakry": "كوناكري",
3971
+ "Dakar": "داكار",
3972
+ "Dar_es_Salaam": "دار السلام",
3973
+ "Djibouti": "جيبوتي",
3974
+ "Douala": "دوالا",
3975
+ "El_Aaiun": "العيون",
3976
+ "Freetown": "فري تاون",
3977
+ "Gaborone": "غابورون",
3978
+ "Harare": "هراري",
3979
+ "Johannesburg": "جوهانسبرغ",
3980
+ "Juba": "جوبا",
3981
+ "Kampala": "كامبالا",
3982
+ "Khartoum": "الخرطوم",
3983
+ "Kigali": "كيغالي",
3984
+ "Kinshasa": "كينشاسا",
3985
+ "Lagos": "لاغوس",
3986
+ "Libreville": "ليبرفيل",
3987
+ "Lome": "لومي",
3988
+ "Luanda": "لواندا",
3989
+ "Lubumbashi": "لومبباشا",
3990
+ "Lusaka": "لوساكا",
3991
+ "Malabo": "مالابو",
3992
+ "Maputo": "مابوتو",
3993
+ "Maseru": "ماسيرو",
3994
+ "Mbabane": "مباباني",
3995
+ "Mogadishu": "مقديشيو",
3996
+ "Monrovia": "مونروفيا",
3997
+ "Nairobi": "نيروبي",
3998
+ "Ndjamena": "نجامينا",
3999
+ "Niamey": "نيامي",
4000
+ "Nouakchott": "نواكشوط",
4001
+ "Ouagadougou": "واغادوغو",
4002
+ "Porto-Novo": "بورتو نوفو",
4003
+ "Sao_Tome": "ساو تومي",
4004
+ "Tripoli": "طرابلس",
4005
+ "Tunis": "تونس",
4006
+ "Windhoek": "ويندهوك",
4007
+ "_parent": "أفريقيا"
4008
+ },
4009
+ "America": {
4010
+ "Adak": "أداك",
4011
+ "Anchorage": "أنشوراج",
4012
+ "Anguilla": "أنغويلا",
4013
+ "Antigua": "أنتيغوا",
4014
+ "Araguaina": "أروجوانيا",
4015
+ "Argentina": {
4016
+ "Buenos_Aires": "بوينوس أيرس",
4017
+ "Catamarca": "كاتاماركا",
4018
+ "Cordoba": "كوردوبا",
4019
+ "Jujuy": "جوجو",
4020
+ "La_Rioja": "لا ريوجا",
4021
+ "Mendoza": "ميندوزا",
4022
+ "Rio_Gallegos": "ريو جالييوس",
4023
+ "Salta": "سالطا",
4024
+ "San_Juan": "سان خوان",
4025
+ "San_Luis": "سان لويس",
4026
+ "Tucuman": "تاكمان",
4027
+ "Ushuaia": "أشوا",
4028
+ "_parent": "الأرجنتين"
4029
+ },
4030
+ "Aruba": "أروبا",
4031
+ "Asuncion": "أسونسيون",
4032
+ "Atikokan": "كورال هاربر",
4033
+ "Bahia": "باهيا",
4034
+ "Bahia_Banderas": "باهيا بانديراس",
4035
+ "Barbados": "بربادوس",
4036
+ "Belem": "بلم",
4037
+ "Belize": "بليز",
4038
+ "Blanc-Sablon": "بلانك-سابلون",
4039
+ "Boa_Vista": "باو فيستا",
4040
+ "Bogota": "بوغوتا",
4041
+ "Boise": "بويس",
4042
+ "Cambridge_Bay": "كامبرديج باي",
4043
+ "Campo_Grande": "كومبو جراند",
4044
+ "Cancun": "كانكون",
4045
+ "Caracas": "كاراكاس",
4046
+ "Cayenne": "كايين",
4047
+ "Cayman": "كايمان",
4048
+ "Chicago": "شيكاغو",
4049
+ "Chihuahua": "تشيواوا",
4050
+ "Costa_Rica": "كوستاريكا",
4051
+ "Creston": "كريستون",
4052
+ "Cuiaba": "كيابا",
4053
+ "Curacao": "كوراساو",
4054
+ "Danmarkshavn": "دانمرك شافن",
4055
+ "Dawson": "داوسان",
4056
+ "Dawson_Creek": "داوسن كريك",
4057
+ "Denver": "دنفر",
4058
+ "Detroit": "ديترويت",
4059
+ "Dominica": "دومينيكا",
4060
+ "Edmonton": "ايدمونتون",
4061
+ "Eirunepe": "ايرونبي",
4062
+ "El_Salvador": "السلفادور",
4063
+ "Fort_Nelson": "فورت نيلسون",
4064
+ "Fortaleza": "فورتاليزا",
4065
+ "Glace_Bay": "جلاس باي",
4066
+ "Goose_Bay": "جوس باي",
4067
+ "Grand_Turk": "غراند ترك",
4068
+ "Grenada": "غرينادا",
4069
+ "Guadeloupe": "غوادلوب",
4070
+ "Guatemala": "غواتيمالا",
4071
+ "Guayaquil": "غواياكويل",
4072
+ "Guyana": "غيانا",
4073
+ "Halifax": "هاليفاكس",
4074
+ "Havana": "هافانا",
4075
+ "Hermosillo": "هيرموسيلو",
4076
+ "Indiana": {
4077
+ "Indianapolis": "إنديانابوليس",
4078
+ "Knox": "كونكس",
4079
+ "Marengo": "مارنجو",
4080
+ "Petersburg": "بيترسبرغ",
4081
+ "Tell_City": "مدينة تل، إنديانا",
4082
+ "Vevay": "فيفاي",
4083
+ "Vincennes": "فينسينس",
4084
+ "Winamac": "ويناماك"
4085
+ },
4086
+ "Inuvik": "اينوفيك",
4087
+ "Iqaluit": "اكويلت",
4088
+ "Jamaica": "جامايكا",
4089
+ "Juneau": "جوني",
4090
+ "Kentucky": {
4091
+ "Louisville": "لويس فيل",
4092
+ "Monticello": "مونتيسيلو"
4093
+ },
4094
+ "Kralendijk": "كرالنديك",
4095
+ "La_Paz": "لا باز",
4096
+ "Lima": "ليما",
4097
+ "Los_Angeles": "لوس انجلوس",
4098
+ "Lower_Princes": "حي الأمير السفلي",
4099
+ "Maceio": "ماشيو",
4100
+ "Managua": "ماناغوا",
4101
+ "Manaus": "ماناوس",
4102
+ "Marigot": "ماريغوت",
4103
+ "Martinique": "المارتينيك",
4104
+ "Matamoros": "ماتاموروس",
4105
+ "Mazatlan": "مازاتلان",
4106
+ "Menominee": "مينوميني",
4107
+ "Merida": "ميريدا",
4108
+ "Metlakatla": "ميتلاكاتلا",
4109
+ "Mexico_City": "مكسيكو سيتي",
4110
+ "Miquelon": "مكويلون",
4111
+ "Moncton": "وينكتون",
4112
+ "Monterrey": "مونتيري",
4113
+ "Montevideo": "مونتفيديو",
4114
+ "Montserrat": "مونتسيرات",
4115
+ "Nassau": "ناسو",
4116
+ "New_York": "نيويورك",
4117
+ "Nipigon": "نيبيجون",
4118
+ "Nome": "نوم",
4119
+ "Noronha": "نوروناه",
4120
+ "North_Dakota": {
4121
+ "Beulah": "بيولا، داكوتا الشمالية",
4122
+ "Center": "سنتر",
4123
+ "New_Salem": "نيو ساليم"
4124
+ },
4125
+ "Nuuk": "غودثاب",
4126
+ "Ojinaga": "أوجيناجا",
4127
+ "Panama": "بنما",
4128
+ "Pangnirtung": "بانجينتينج",
4129
+ "Paramaribo": "باراماريبو",
4130
+ "Phoenix": "فينكس",
4131
+ "Port-au-Prince": "بورت أو برنس",
4132
+ "Port_of_Spain": "بورت أوف سبين",
4133
+ "Porto_Velho": "بورتو فيلو",
4134
+ "Puerto_Rico": "بورتوريكو",
4135
+ "Punta_Arenas": "بونتا أريناز",
4136
+ "Rainy_River": "راني ريفر",
4137
+ "Rankin_Inlet": "رانكن انلت",
4138
+ "Recife": "ريسيف",
4139
+ "Regina": "ريجينا",
4140
+ "Resolute": "ريزولوت",
4141
+ "Rio_Branco": "ريوبرانكو",
4142
+ "Santa_Isabel": "سانتا إيزابيل",
4143
+ "Santarem": "سانتاريم",
4144
+ "Santiago": "سانتياغو",
4145
+ "Santo_Domingo": "سانتو دومينغو",
4146
+ "Sao_Paulo": "ساو باولو",
4147
+ "Scoresbysund": "سكورسبيسند",
4148
+ "Sitka": "سيتكا",
4149
+ "St_Barthelemy": "سانت بارتيليمي",
4150
+ "St_Johns": "سانت جونس",
4151
+ "St_Kitts": "سانت كيتس",
4152
+ "St_Lucia": "سانت لوشيا",
4153
+ "St_Thomas": "سانت توماس",
4154
+ "St_Vincent": "سانت فنسنت",
4155
+ "Swift_Current": "سوفت كارنت",
4156
+ "Tegucigalpa": "تيغوسيغالبا",
4157
+ "Thule": "ثيل",
4158
+ "Thunder_Bay": "ثندر باي",
4159
+ "Tijuana": "تيخوانا",
4160
+ "Toronto": "تورونتو",
4161
+ "Tortola": "تورتولا",
4162
+ "Vancouver": "فانكوفر",
4163
+ "Whitehorse": "وايت هورس",
4164
+ "Winnipeg": "وينيبيج",
4165
+ "Yakutat": "ياكوتات",
4166
+ "Yellowknife": "يلونيف",
4167
+ "_parent": "الأمريكتان"
4168
+ },
4169
+ "Antarctica": {
4170
+ "Casey": "كاساي",
4171
+ "Davis": "دافيز",
4172
+ "DumontDUrville": "دي مونت دو روفيل",
4173
+ "Macquarie": "ماكواري",
4174
+ "Mawson": "ماوسون",
4175
+ "McMurdo": "ماك موردو",
4176
+ "Palmer": "بالمير",
4177
+ "Rothera": "روثيرا",
4178
+ "Syowa": "سايووا",
4179
+ "Troll": "ترول",
4180
+ "Vostok": "فوستوك",
4181
+ "_parent": "أنتاركتيكا"
4182
+ },
4183
+ "Arctic": {
4184
+ "Longyearbyen": "لونجيربين"
4185
+ },
4186
+ "Asia": {
4187
+ "Aden": "عدن",
4188
+ "Almaty": "ألماتي",
4189
+ "Amman": "عمان",
4190
+ "Anadyr": "أندير",
4191
+ "Aqtau": "أكتاو",
4192
+ "Aqtobe": "أكتوب",
4193
+ "Ashgabat": "عشق آباد",
4194
+ "Atyrau": "أتيراو",
4195
+ "Baghdad": "بغداد",
4196
+ "Bahrain": "البحرين",
4197
+ "Baku": "باكو",
4198
+ "Bangkok": "بانكوك",
4199
+ "Barnaul": "بارناول",
4200
+ "Beirut": "بيروت",
4201
+ "Bishkek": "بشكيك",
4202
+ "Brunei": "بروناي",
4203
+ "Chita": "تشيتا",
4204
+ "Choibalsan": "تشوبالسان",
4205
+ "Colombo": "كولومبو",
4206
+ "Damascus": "دمشق",
4207
+ "Dhaka": "دكا",
4208
+ "Dili": "ديلي",
4209
+ "Dubai": "دبي",
4210
+ "Dushanbe": "دوشانبي",
4211
+ "Famagusta": "فاماغوستا",
4212
+ "Gaza": "غزة",
4213
+ "Hebron": "هيبرون (مدينة الخليل)",
4214
+ "Ho_Chi_Minh": "مدينة هو تشي منة",
4215
+ "Hong_Kong": "هونغ كونغ",
4216
+ "Hovd": "هوفد",
4217
+ "Irkutsk": "ايركيتسك",
4218
+ "Jakarta": "جاكرتا",
4219
+ "Jayapura": "جايابيورا",
4220
+ "Jerusalem": "القدس",
4221
+ "Kabul": "كابول",
4222
+ "Kamchatka": "كامتشاتكا",
4223
+ "Karachi": "كراتشي",
4224
+ "Kathmandu": "كاتماندو",
4225
+ "Khandyga": "خانديجا",
4226
+ "Kolkata": "كالكتا",
4227
+ "Krasnoyarsk": "كراسنويارسك",
4228
+ "Kuala_Lumpur": "كوالا لامبور",
4229
+ "Kuching": "كيشينج",
4230
+ "Kuwait": "الكويت",
4231
+ "Macau": "ماكاو",
4232
+ "Magadan": "مجادن",
4233
+ "Makassar": "ماكسار",
4234
+ "Manila": "مانيلا",
4235
+ "Muscat": "مسقط",
4236
+ "Nicosia": "نيقوسيا",
4237
+ "Novokuznetsk": "نوفوكوزنتسك",
4238
+ "Novosibirsk": "نوفوسبيرسك",
4239
+ "Omsk": "أومسك",
4240
+ "Oral": "أورال",
4241
+ "Phnom_Penh": "بنوم بنه",
4242
+ "Pontianak": "بونتيانك",
4243
+ "Pyongyang": "بيونغ يانغ",
4244
+ "Qatar": "قطر",
4245
+ "Qostanay": "قوستاناي",
4246
+ "Qyzylorda": "كيزيلوردا",
4247
+ "Riyadh": "الرياض",
4248
+ "Sakhalin": "سكالين",
4249
+ "Samarkand": "سمرقند",
4250
+ "Seoul": "سول",
4251
+ "Shanghai": "شنغهاي",
4252
+ "Singapore": "سنغافورة",
4253
+ "Srednekolymsk": "سريدنكوليمسك",
4254
+ "Taipei": "تايبيه",
4255
+ "Tashkent": "طشقند",
4256
+ "Tbilisi": "تبليسي",
4257
+ "Tehran": "طهران",
4258
+ "Thimphu": "تيمفو",
4259
+ "Tokyo": "طوكيو",
4260
+ "Tomsk": "تومسك",
4261
+ "Ulaanbaatar": "آلانباتار",
4262
+ "Urumqi": "أرومكي",
4263
+ "Ust-Nera": "أوست نيرا",
4264
+ "Vientiane": "فيانتيان",
4265
+ "Vladivostok": "فلاديفوستك",
4266
+ "Yakutsk": "ياكتسك",
4267
+ "Yangon": "رانغون",
4268
+ "Yekaterinburg": "يكاترنبيرج",
4269
+ "Yerevan": "يريفان",
4270
+ "_parent": "آسيا"
4271
+ },
4272
+ "Atlantic": {
4273
+ "Azores": "أزورس",
4274
+ "Bermuda": "برمودا",
4275
+ "Canary": "كناري",
4276
+ "Cape_Verde": "الرأس الأخضر",
4277
+ "Faroe": "فارو",
4278
+ "Madeira": "ماديرا",
4279
+ "Reykjavik": "ريكيافيك",
4280
+ "South_Georgia": "جورجيا الجنوبية",
4281
+ "St_Helena": "سانت هيلينا",
4282
+ "Stanley": "استانلي"
4283
+ },
4284
+ "Australia": {
4285
+ "Adelaide": "أديليد",
4286
+ "Brisbane": "برسيبان",
4287
+ "Broken_Hill": "بروكن هيل",
4288
+ "Darwin": "دارون",
4289
+ "Eucla": "أوكلا",
4290
+ "Hobart": "هوبارت",
4291
+ "Lindeman": "ليندمان",
4292
+ "Lord_Howe": "لورد هاو",
4293
+ "Melbourne": "ميلبورن",
4294
+ "Perth": "برثا",
4295
+ "Sydney": "سيدني",
4296
+ "_parent": "أستراليا"
4297
+ },
4298
+ "Etc": {
4299
+ "UTC": "UTC",
4300
+ "Universal": "التوقيت العالمي المنسق"
4301
+ },
4302
+ "Europe": {
4303
+ "Amsterdam": "أمستردام",
4304
+ "Andorra": "أندورا",
4305
+ "Astrakhan": "أستراخان",
4306
+ "Athens": "أثينا",
4307
+ "Belgrade": "بلغراد",
4308
+ "Berlin": "برلين",
4309
+ "Bratislava": "براتيسلافا",
4310
+ "Brussels": "بروكسل",
4311
+ "Bucharest": "بوخارست",
4312
+ "Budapest": "بودابست",
4313
+ "Busingen": "بوسنغن",
4314
+ "Chisinau": "تشيسيناو",
4315
+ "Copenhagen": "كوبنهاغن",
4316
+ "Dublin": "دبلن",
4317
+ "Gibraltar": "جبل طارق",
4318
+ "Guernsey": "غيرنزي",
4319
+ "Helsinki": "هلسنكي",
4320
+ "Isle_of_Man": "جزيرة مان",
4321
+ "Istanbul": "إسطنبول",
4322
+ "Jersey": "جيرسي",
4323
+ "Kaliningrad": "كالينجراد",
4324
+ "Kiev": "كييف",
4325
+ "Kirov": "كيروف",
4326
+ "Lisbon": "لشبونة",
4327
+ "Ljubljana": "ليوبليانا",
4328
+ "London": "لندن",
4329
+ "Luxembourg": "لوكسمبورغ",
4330
+ "Madrid": "مدريد",
4331
+ "Malta": "مالطة",
4332
+ "Mariehamn": "ماريهامن",
4333
+ "Minsk": "مينسك",
4334
+ "Monaco": "موناكو",
4335
+ "Moscow": "موسكو",
4336
+ "Oslo": "أوسلو",
4337
+ "Paris": "باريس",
4338
+ "Podgorica": "بودغوريكا",
4339
+ "Prague": "براغ",
4340
+ "Riga": "ريغا",
4341
+ "Rome": "روما",
4342
+ "Samara": "سمراء",
4343
+ "San_Marino": "سان مارينو",
4344
+ "Sarajevo": "سراييفو",
4345
+ "Saratov": "ساراتوف",
4346
+ "Simferopol": "سيمفروبول",
4347
+ "Skopje": "سكوبي",
4348
+ "Sofia": "صوفيا",
4349
+ "Stockholm": "ستوكهولم",
4350
+ "Tallinn": "تالين",
4351
+ "Tirane": "تيرانا",
4352
+ "Ulyanovsk": "أوليانوفسك",
4353
+ "Uzhgorod": "أوزجرود",
4354
+ "Vaduz": "فادوز",
4355
+ "Vatican": "الفاتيكان",
4356
+ "Vienna": "فيينا",
4357
+ "Vilnius": "فيلنيوس",
4358
+ "Volgograd": "فولوجراد",
4359
+ "Warsaw": "وارسو",
4360
+ "Zagreb": "زغرب",
4361
+ "Zaporozhye": "زابوروزي",
4362
+ "Zurich": "زيورخ",
4363
+ "_parent": "أوروبا"
4364
+ },
4365
+ "Indian": {
4366
+ "Antananarivo": "أنتاناناريفو",
4367
+ "Chagos": "تشاغوس",
4368
+ "Christmas": "كريسماس",
4369
+ "Cocos": "كوكوس",
4370
+ "Comoro": "جزر القمر",
4371
+ "Kerguelen": "كيرغويلين",
4372
+ "Mahe": "ماهي",
4373
+ "Maldives": "المالديف",
4374
+ "Mauritius": "موريشيوس",
4375
+ "Mayotte": "مايوت",
4376
+ "Reunion": "ريونيون"
4377
+ },
4378
+ "Pacific": {
4379
+ "Apia": "أبيا",
4380
+ "Auckland": "أوكلاند",
4381
+ "Bougainville": "بوغانفيل",
4382
+ "Chatham": "تشاثام",
4383
+ "Chuuk": "ترك",
4384
+ "Easter": "استر",
4385
+ "Efate": "إيفات",
4386
+ "Fakaofo": "فاكاوفو",
4387
+ "Fiji": "فيجي",
4388
+ "Funafuti": "فونافوتي",
4389
+ "Galapagos": "جلاباجوس",
4390
+ "Gambier": "جامبير",
4391
+ "Guadalcanal": "غوادالكانال",
4392
+ "Guam": "غوام",
4393
+ "Honolulu": "هونولولو",
4394
+ "Kiritimati": "كيريتي ماتي",
4395
+ "Kosrae": "كوسرا",
4396
+ "Kwajalein": "كواجالين",
4397
+ "Majuro": "ماجورو",
4398
+ "Marquesas": "ماركيساس",
4399
+ "Midway": "ميدواي",
4400
+ "Nauru": "ناورو",
4401
+ "Niue": "نيوي",
4402
+ "Norfolk": "نورفولك",
4403
+ "Noumea": "نوميا",
4404
+ "Pago_Pago": "باغو باغو",
4405
+ "Palau": "بالاو",
4406
+ "Pitcairn": "بيتكيرن",
4407
+ "Pohnpei": "باناب",
4408
+ "Port_Moresby": "بور مورسبي",
4409
+ "Rarotonga": "راروتونغا",
4410
+ "Saipan": "سايبان",
4411
+ "Tahiti": "تاهيتي",
4412
+ "Tarawa": "تاراوا",
4413
+ "Tongatapu": "تونغاتابو",
4414
+ "Wake": "واك",
4415
+ "Wallis": "واليس"
4416
+ }
4417
+ },
4418
+ "timezoneNamesFormats": {
4419
+ "gmtFormat": "غرينتش{0}"
4420
+ },
3953
4421
  "decimalFormat": {
3954
4422
  "standard": "#,##0.###"
3955
4423
  },