@openui5/sap.ui.core 1.108.1 → 1.109.0

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 (352) hide show
  1. package/THIRDPARTY.txt +1 -1
  2. package/package.json +1 -1
  3. package/src/jquery.sap.global.js +1 -1
  4. package/src/jquery.sap.properties.js +1 -1
  5. package/src/jquery.sap.resources.js +1 -1
  6. package/src/jquery.sap.script.js +1 -1
  7. package/src/jquery.sap.storage.js +3 -3
  8. package/src/sap/base/Log.js +125 -84
  9. package/src/sap/base/i18n/ResourceBundle.js +41 -11
  10. package/src/sap/base/util/includes.js +1 -1
  11. package/src/sap/base/util/restricted/_CancelablePromise.js +1 -1
  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/base/util/values.js +2 -1
  53. package/src/sap/ui/Device.js +3 -3
  54. package/src/sap/ui/Global.js +4 -4
  55. package/src/sap/ui/base/Event.js +1 -1
  56. package/src/sap/ui/base/EventProvider.js +1 -1
  57. package/src/sap/ui/base/Interface.js +1 -1
  58. package/src/sap/ui/base/ManagedObject.js +1 -1
  59. package/src/sap/ui/base/ManagedObjectMetadata.js +1 -1
  60. package/src/sap/ui/base/ManagedObjectObserver.js +33 -11
  61. package/src/sap/ui/base/Metadata.js +1 -1
  62. package/src/sap/ui/base/Object.js +1 -1
  63. package/src/sap/ui/base/ObjectPool.js +1 -1
  64. package/src/sap/ui/core/.library +3 -3
  65. package/src/sap/ui/core/BusyIndicator.js +1 -1
  66. package/src/sap/ui/core/Component.js +1 -1
  67. package/src/sap/ui/core/ComponentContainer.js +1 -1
  68. package/src/sap/ui/core/ComponentMetadata.js +1 -1
  69. package/src/sap/ui/core/ComponentSupport.js +1 -1
  70. package/src/sap/ui/core/Configuration.js +1 -1
  71. package/src/sap/ui/core/Control.js +1 -1
  72. package/src/sap/ui/core/Core.js +4 -4
  73. package/src/sap/ui/core/CustomData.js +1 -1
  74. package/src/sap/ui/core/DeclarativeSupport.js +1 -1
  75. package/src/sap/ui/core/Element.js +1 -1
  76. package/src/sap/ui/core/ElementMetadata.js +1 -1
  77. package/src/sap/ui/core/EnabledPropagator.js +1 -1
  78. package/src/sap/ui/core/EventBus.js +1 -1
  79. package/src/sap/ui/core/Fragment.js +1 -1
  80. package/src/sap/ui/core/HTML.js +1 -1
  81. package/src/sap/ui/core/History.js +1 -1
  82. package/src/sap/ui/core/Icon.js +1 -1
  83. package/src/sap/ui/core/IndicationColorSupport.js +1 -1
  84. package/src/sap/ui/core/IntervalTrigger.js +1 -1
  85. package/src/sap/ui/core/InvisibleMessage.js +1 -1
  86. package/src/sap/ui/core/InvisibleRenderer.js +1 -1
  87. package/src/sap/ui/core/InvisibleText.js +1 -1
  88. package/src/sap/ui/core/Item.js +1 -1
  89. package/src/sap/ui/core/LabelEnablement.js +1 -1
  90. package/src/sap/ui/core/LayoutData.js +1 -1
  91. package/src/sap/ui/core/ListItem.js +1 -1
  92. package/src/sap/ui/core/LocalBusyIndicator.js +1 -1
  93. package/src/sap/ui/core/Locale.js +1 -1
  94. package/src/sap/ui/core/LocaleData.js +133 -1
  95. package/src/sap/ui/core/Manifest.js +1 -1
  96. package/src/sap/ui/core/Message.js +1 -1
  97. package/src/sap/ui/core/RenderManager.js +82 -50
  98. package/src/sap/ui/core/Renderer.js +1 -1
  99. package/src/sap/ui/core/Rendering.js +29 -9
  100. package/src/sap/ui/core/ResizeHandler.js +1 -1
  101. package/src/sap/ui/core/ScrollBar.js +1 -1
  102. package/src/sap/ui/core/SeparatorItem.js +1 -1
  103. package/src/sap/ui/core/Title.js +1 -1
  104. package/src/sap/ui/core/TooltipBase.js +1 -1
  105. package/src/sap/ui/core/UIArea.js +7 -5
  106. package/src/sap/ui/core/UIComponent.js +1 -1
  107. package/src/sap/ui/core/UIComponentMetadata.js +1 -1
  108. package/src/sap/ui/core/ValueStateSupport.js +1 -1
  109. package/src/sap/ui/core/VariantLayoutData.js +1 -1
  110. package/src/sap/ui/core/XMLComposite.js +1 -1
  111. package/src/sap/ui/core/XMLCompositeMetadata.js +1 -1
  112. package/src/sap/ui/core/XMLTemplateProcessor.js +1 -3
  113. package/src/sap/ui/core/cldr/ar.json +330 -0
  114. package/src/sap/ui/core/cldr/ar_EG.json +330 -0
  115. package/src/sap/ui/core/cldr/ar_SA.json +330 -0
  116. package/src/sap/ui/core/cldr/bg.json +295 -0
  117. package/src/sap/ui/core/cldr/ca.json +329 -0
  118. package/src/sap/ui/core/cldr/cs.json +328 -0
  119. package/src/sap/ui/core/cldr/cy.json +260 -0
  120. package/src/sap/ui/core/cldr/da.json +295 -0
  121. package/src/sap/ui/core/cldr/de.json +329 -0
  122. package/src/sap/ui/core/cldr/de_AT.json +329 -0
  123. package/src/sap/ui/core/cldr/de_CH.json +329 -0
  124. package/src/sap/ui/core/cldr/el.json +228 -0
  125. package/src/sap/ui/core/cldr/el_CY.json +228 -0
  126. package/src/sap/ui/core/cldr/en.json +294 -0
  127. package/src/sap/ui/core/cldr/en_AU.json +294 -0
  128. package/src/sap/ui/core/cldr/en_GB.json +294 -0
  129. package/src/sap/ui/core/cldr/en_HK.json +294 -0
  130. package/src/sap/ui/core/cldr/en_IE.json +294 -0
  131. package/src/sap/ui/core/cldr/en_IN.json +294 -0
  132. package/src/sap/ui/core/cldr/en_NZ.json +294 -0
  133. package/src/sap/ui/core/cldr/en_PG.json +294 -0
  134. package/src/sap/ui/core/cldr/en_SG.json +294 -0
  135. package/src/sap/ui/core/cldr/en_ZA.json +294 -0
  136. package/src/sap/ui/core/cldr/es.json +261 -0
  137. package/src/sap/ui/core/cldr/es_AR.json +261 -0
  138. package/src/sap/ui/core/cldr/es_BO.json +261 -0
  139. package/src/sap/ui/core/cldr/es_CL.json +261 -0
  140. package/src/sap/ui/core/cldr/es_CO.json +261 -0
  141. package/src/sap/ui/core/cldr/es_MX.json +261 -0
  142. package/src/sap/ui/core/cldr/es_PE.json +261 -0
  143. package/src/sap/ui/core/cldr/es_UY.json +261 -0
  144. package/src/sap/ui/core/cldr/es_VE.json +261 -0
  145. package/src/sap/ui/core/cldr/et.json +294 -0
  146. package/src/sap/ui/core/cldr/fa.json +296 -0
  147. package/src/sap/ui/core/cldr/fi.json +328 -0
  148. package/src/sap/ui/core/cldr/fr.json +294 -0
  149. package/src/sap/ui/core/cldr/fr_BE.json +294 -0
  150. package/src/sap/ui/core/cldr/fr_CA.json +294 -0
  151. package/src/sap/ui/core/cldr/fr_CH.json +294 -0
  152. package/src/sap/ui/core/cldr/fr_LU.json +294 -0
  153. package/src/sap/ui/core/cldr/he.json +329 -0
  154. package/src/sap/ui/core/cldr/hi.json +261 -0
  155. package/src/sap/ui/core/cldr/hr.json +294 -0
  156. package/src/sap/ui/core/cldr/hu.json +362 -0
  157. package/src/sap/ui/core/cldr/id.json +294 -0
  158. package/src/sap/ui/core/cldr/it.json +294 -0
  159. package/src/sap/ui/core/cldr/it_CH.json +294 -0
  160. package/src/sap/ui/core/cldr/ja.json +328 -0
  161. package/src/sap/ui/core/cldr/kk.json +294 -0
  162. package/src/sap/ui/core/cldr/ko.json +328 -0
  163. package/src/sap/ui/core/cldr/lt.json +294 -0
  164. package/src/sap/ui/core/cldr/lv.json +294 -0
  165. package/src/sap/ui/core/cldr/ms.json +262 -0
  166. package/src/sap/ui/core/cldr/nb.json +295 -0
  167. package/src/sap/ui/core/cldr/nl.json +261 -0
  168. package/src/sap/ui/core/cldr/nl_BE.json +261 -0
  169. package/src/sap/ui/core/cldr/pl.json +328 -0
  170. package/src/sap/ui/core/cldr/pt.json +294 -0
  171. package/src/sap/ui/core/cldr/pt_PT.json +294 -0
  172. package/src/sap/ui/core/cldr/ro.json +294 -0
  173. package/src/sap/ui/core/cldr/ru.json +294 -0
  174. package/src/sap/ui/core/cldr/ru_UA.json +294 -0
  175. package/src/sap/ui/core/cldr/sk.json +328 -0
  176. package/src/sap/ui/core/cldr/sl.json +328 -0
  177. package/src/sap/ui/core/cldr/sr.json +294 -0
  178. package/src/sap/ui/core/cldr/sr_Latn.json +294 -0
  179. package/src/sap/ui/core/cldr/sv.json +295 -0
  180. package/src/sap/ui/core/cldr/th.json +362 -0
  181. package/src/sap/ui/core/cldr/tr.json +362 -0
  182. package/src/sap/ui/core/cldr/uk.json +294 -0
  183. package/src/sap/ui/core/cldr/vi.json +294 -0
  184. package/src/sap/ui/core/cldr/zh_CN.json +329 -0
  185. package/src/sap/ui/core/cldr/zh_HK.json +329 -0
  186. package/src/sap/ui/core/cldr/zh_SG.json +329 -0
  187. package/src/sap/ui/core/cldr/zh_TW.json +329 -0
  188. package/src/sap/ui/core/date/Japanese.js +30 -0
  189. package/src/sap/ui/core/delegate/ItemNavigation.js +1 -1
  190. package/src/sap/ui/core/delegate/ScrollEnablement.js +1 -1
  191. package/src/sap/ui/core/dnd/DragAndDrop.js +2 -2
  192. package/src/sap/ui/core/dnd/DragDropBase.js +1 -1
  193. package/src/sap/ui/core/dnd/DragDropInfo.js +1 -1
  194. package/src/sap/ui/core/dnd/DragInfo.js +1 -1
  195. package/src/sap/ui/core/dnd/DropInfo.js +1 -1
  196. package/src/sap/ui/core/format/DateFormat.js +122 -2
  197. package/src/sap/ui/core/format/NumberFormat.js +111 -70
  198. package/src/sap/ui/core/format/TimezoneUtil.js +2 -2
  199. package/src/sap/ui/core/hyphenation/Hyphenation.js +1 -1
  200. package/src/sap/ui/core/library.js +3 -3
  201. package/src/sap/ui/core/message/ControlMessageProcessor.js +1 -1
  202. package/src/sap/ui/core/message/Message.js +1 -1
  203. package/src/sap/ui/core/message/MessageManager.js +1 -1
  204. package/src/sap/ui/core/message/MessageParser.js +1 -1
  205. package/src/sap/ui/core/message/MessageProcessor.js +1 -1
  206. package/src/sap/ui/core/mvc/HTMLView.js +1 -1
  207. package/src/sap/ui/core/mvc/JSONView.js +1 -1
  208. package/src/sap/ui/core/mvc/JSView.js +1 -1
  209. package/src/sap/ui/core/mvc/TemplateView.js +1 -1
  210. package/src/sap/ui/core/mvc/View.js +3 -3
  211. package/src/sap/ui/core/mvc/ViewType.js +4 -0
  212. package/src/sap/ui/core/mvc/XMLView.js +1 -1
  213. package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
  214. package/src/sap/ui/core/plugin/LessSupport.js +1 -1
  215. package/src/sap/ui/core/plugin/TemplatingSupport.js +1 -1
  216. package/src/sap/ui/core/postmessage/Bus.js +12 -17
  217. package/src/sap/ui/core/postmessage/confirmationDialog.js +1 -1
  218. package/src/sap/ui/core/search/OpenSearchProvider.js +1 -1
  219. package/src/sap/ui/core/search/SearchProvider.js +1 -1
  220. package/src/sap/ui/core/service/Service.js +1 -1
  221. package/src/sap/ui/core/service/ServiceFactory.js +1 -1
  222. package/src/sap/ui/core/service/ServiceFactoryRegistry.js +1 -1
  223. package/src/sap/ui/core/support/Plugin.js +1 -1
  224. package/src/sap/ui/core/support/Support.js +1 -1
  225. package/src/sap/ui/core/support/plugins/ControlTree.js +1 -1
  226. package/src/sap/ui/core/support/plugins/Interaction.js +1 -1
  227. package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -1
  228. package/src/sap/ui/core/support/plugins/Performance.js +1 -1
  229. package/src/sap/ui/core/support/plugins/Selector.js +1 -1
  230. package/src/sap/ui/core/support/plugins/TechInfo.js +1 -1
  231. package/src/sap/ui/core/support/plugins/Trace.js +1 -1
  232. package/src/sap/ui/core/support/plugins/ViewInfo.js +1 -1
  233. package/src/sap/ui/core/themes/base/Icon.less +17 -4
  234. package/src/sap/ui/core/themes/base/LocalBusyIndicator.less +1 -1
  235. package/src/sap/ui/core/themes/base/base.less +599 -90
  236. package/src/sap/ui/core/themes/base/global.less +64 -0
  237. package/src/sap/ui/core/themes/sap_hcb/global.less +65 -0
  238. package/src/sap/ui/core/tmpl/DOMAttribute.js +1 -1
  239. package/src/sap/ui/core/tmpl/DOMElement.js +1 -1
  240. package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +1 -1
  241. package/src/sap/ui/core/tmpl/Template.js +1 -1
  242. package/src/sap/ui/core/tmpl/TemplateControl.js +1 -1
  243. package/src/sap/ui/core/util/AsyncHintsHelper.js +1 -1
  244. package/src/sap/ui/core/util/Export.js +1 -1
  245. package/src/sap/ui/core/util/ExportCell.js +1 -1
  246. package/src/sap/ui/core/util/ExportColumn.js +1 -1
  247. package/src/sap/ui/core/util/ExportRow.js +1 -1
  248. package/src/sap/ui/core/util/ExportType.js +1 -1
  249. package/src/sap/ui/core/util/ExportTypeCSV.js +1 -1
  250. package/src/sap/ui/core/util/File.js +1 -1
  251. package/src/sap/ui/core/util/LibraryInfo.js +1 -1
  252. package/src/sap/ui/core/util/MockServer.js +1 -1
  253. package/src/sap/ui/core/util/PasteHelper.js +1 -1
  254. package/src/sap/ui/core/util/reflection/XmlTreeModifier.js +1 -3
  255. package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +1 -1
  256. package/src/sap/ui/core/util/serializer/Serializer.js +1 -1
  257. package/src/sap/ui/core/util/serializer/ViewSerializer.js +1 -1
  258. package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +1 -1
  259. package/src/sap/ui/core/util/serializer/delegate/Delegate.js +1 -1
  260. package/src/sap/ui/core/util/serializer/delegate/HTML.js +1 -1
  261. package/src/sap/ui/core/util/serializer/delegate/XML.js +1 -1
  262. package/src/sap/ui/core/ws/ReadyState.js +1 -1
  263. package/src/sap/ui/core/ws/SapPcpWebSocket.js +1 -1
  264. package/src/sap/ui/core/ws/WebSocket.js +1 -1
  265. package/src/sap/ui/debug/ControlTree.js +1 -1
  266. package/src/sap/ui/debug/DebugEnv.js +1 -1
  267. package/src/sap/ui/debug/PropertyList.js +1 -1
  268. package/src/sap/ui/model/ClientModel.js +1 -1
  269. package/src/sap/ui/model/CompositeDataState.js +1 -1
  270. package/src/sap/ui/model/CompositeType.js +1 -1
  271. package/src/sap/ui/model/DataState.js +1 -1
  272. package/src/sap/ui/model/MetaModel.js +1 -1
  273. package/src/sap/ui/model/Model.js +1 -1
  274. package/src/sap/ui/model/SelectionModel.js +1 -1
  275. package/src/sap/ui/model/SimpleType.js +1 -1
  276. package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
  277. package/src/sap/ui/model/Type.js +1 -1
  278. package/src/sap/ui/model/controlhelper/TreeBindingProxy.js +11 -3
  279. package/src/sap/ui/model/json/JSONModel.js +1 -1
  280. package/src/sap/ui/model/message/MessageModel.js +1 -1
  281. package/src/sap/ui/model/odata/ODataAnnotations.js +1 -1
  282. package/src/sap/ui/model/odata/ODataMessageParser.js +1 -1
  283. package/src/sap/ui/model/odata/ODataMetaModel.js +1 -1
  284. package/src/sap/ui/model/odata/ODataMetadata.js +1 -1
  285. package/src/sap/ui/model/odata/ODataModel.js +1 -1
  286. package/src/sap/ui/model/odata/type/Boolean.js +1 -1
  287. package/src/sap/ui/model/odata/type/Byte.js +1 -1
  288. package/src/sap/ui/model/odata/type/Currency.js +1 -1
  289. package/src/sap/ui/model/odata/type/Date.js +1 -1
  290. package/src/sap/ui/model/odata/type/DateTime.js +1 -1
  291. package/src/sap/ui/model/odata/type/DateTimeBase.js +1 -1
  292. package/src/sap/ui/model/odata/type/DateTimeOffset.js +1 -1
  293. package/src/sap/ui/model/odata/type/DateTimeWithTimezone.js +1 -1
  294. package/src/sap/ui/model/odata/type/Decimal.js +1 -1
  295. package/src/sap/ui/model/odata/type/Double.js +1 -1
  296. package/src/sap/ui/model/odata/type/Guid.js +1 -1
  297. package/src/sap/ui/model/odata/type/Int.js +1 -1
  298. package/src/sap/ui/model/odata/type/Int16.js +1 -1
  299. package/src/sap/ui/model/odata/type/Int32.js +1 -1
  300. package/src/sap/ui/model/odata/type/Int64.js +1 -1
  301. package/src/sap/ui/model/odata/type/ODataType.js +1 -1
  302. package/src/sap/ui/model/odata/type/Raw.js +1 -1
  303. package/src/sap/ui/model/odata/type/SByte.js +1 -1
  304. package/src/sap/ui/model/odata/type/Single.js +1 -1
  305. package/src/sap/ui/model/odata/type/Stream.js +1 -1
  306. package/src/sap/ui/model/odata/type/String.js +1 -1
  307. package/src/sap/ui/model/odata/type/Time.js +1 -1
  308. package/src/sap/ui/model/odata/type/TimeOfDay.js +1 -1
  309. package/src/sap/ui/model/odata/type/Unit.js +1 -1
  310. package/src/sap/ui/model/odata/v2/Context.js +1 -1
  311. package/src/sap/ui/model/odata/v2/ODataAnnotations.js +1 -1
  312. package/src/sap/ui/model/odata/v2/ODataListBinding.js +1 -1
  313. package/src/sap/ui/model/odata/v2/ODataModel.js +1 -1
  314. package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +3 -4
  315. package/src/sap/ui/model/odata/v4/Context.js +82 -29
  316. package/src/sap/ui/model/odata/v4/ODataBinding.js +3 -0
  317. package/src/sap/ui/model/odata/v4/ODataContextBinding.js +3 -2
  318. package/src/sap/ui/model/odata/v4/ODataListBinding.js +77 -23
  319. package/src/sap/ui/model/odata/v4/ODataMetaModel.js +1 -1
  320. package/src/sap/ui/model/odata/v4/ODataModel.js +2 -2
  321. package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +1 -1
  322. package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +334 -142
  323. package/src/sap/ui/model/odata/v4/lib/_AggregationHelper.js +109 -16
  324. package/src/sap/ui/model/odata/v4/lib/_Cache.js +82 -42
  325. package/src/sap/ui/model/odata/v4/lib/_Helper.js +26 -0
  326. package/src/sap/ui/model/resource/ResourceModel.js +1 -1
  327. package/src/sap/ui/model/type/Boolean.js +1 -1
  328. package/src/sap/ui/model/type/Currency.js +1 -1
  329. package/src/sap/ui/model/type/Date.js +1 -1
  330. package/src/sap/ui/model/type/DateInterval.js +1 -1
  331. package/src/sap/ui/model/type/DateTime.js +1 -1
  332. package/src/sap/ui/model/type/DateTimeInterval.js +1 -1
  333. package/src/sap/ui/model/type/FileSize.js +1 -1
  334. package/src/sap/ui/model/type/Float.js +1 -1
  335. package/src/sap/ui/model/type/Integer.js +1 -1
  336. package/src/sap/ui/model/type/String.js +1 -1
  337. package/src/sap/ui/model/type/Time.js +1 -1
  338. package/src/sap/ui/model/type/TimeInterval.js +1 -1
  339. package/src/sap/ui/model/type/Unit.js +1 -1
  340. package/src/sap/ui/model/xml/XMLModel.js +1 -1
  341. package/src/sap/ui/qunit/QUnitUtils.js +14 -2
  342. package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
  343. package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +1 -1
  344. package/src/sap/ui/test/OpaExtension.js +1 -1
  345. package/src/sap/ui/test/OpaPlugin.js +6 -4
  346. package/src/sap/ui/test/PageObjectFactory.js +11 -9
  347. package/src/sap/ui/test/RecordReplay.js +1 -1
  348. package/src/sap/ui/test/_OpaLogger.js +1 -1
  349. package/src/sap/ui/test/autowaiter/_promiseWaiter.js +4 -1
  350. package/src/sap/ui/test/generic/TestBase.js +1 -1
  351. package/src/sap/ui/util/Mobile.js +17 -18
  352. package/src/sap/ui/util/Storage.js +90 -63
@@ -27,7 +27,7 @@ sap.ui.define([ 'sap/ui/core/Element', 'sap/ui/core/Control', 'sap/ui/core/Core'
27
27
  * @namespace
28
28
  *
29
29
  * @author SAP SE
30
- * @version 1.108.1
30
+ * @version 1.109.0
31
31
  *
32
32
  * @public
33
33
  * @since 1.48.0
@@ -10,7 +10,7 @@ sap.ui.define(['sap/ui/base/Object'],function(Ui5Object) {
10
10
 
11
11
  /*
12
12
  var oLogger = _OpaLogger.getLogger("sap.ui.test.OpaExtension",
13
- $.sap.log.Level.DEBUG);
13
+ Log.Level.DEBUG);
14
14
  */
15
15
 
16
16
  /**
@@ -18,6 +18,8 @@
18
18
  }
19
19
 
20
20
  sap.ui.define([
21
+ 'sap/base/util/extend',
22
+ 'sap/base/util/ObjectPath',
21
23
  'sap/ui/thirdparty/jquery',
22
24
  'sap/ui/base/Object',
23
25
  'sap/ui/core/Element',
@@ -26,7 +28,7 @@ sap.ui.define([
26
28
  'sap/ui/test/matchers/MatcherFactory',
27
29
  'sap/ui/test/pipelines/MatcherPipeline',
28
30
  'sap/ui/test/_OpaLogger'
29
- ], function ($, UI5Object, UI5Element, View, Ancestor, MatcherFactory,
31
+ ], function (extend, ObjectPath, $, UI5Object, UI5Element, View, Ancestor, MatcherFactory,
30
32
  MatcherPipeline, _OpaLogger) {
31
33
 
32
34
  /**
@@ -419,7 +421,7 @@ sap.ui.define([
419
421
  */
420
422
  _getFilteredControls : function(oOptions) {
421
423
  var vControl = this._filterControlsByCondition(oOptions);
422
- var oFilterOptions = $.extend({}, oOptions);
424
+ var oFilterOptions = extend({}, oOptions);
423
425
 
424
426
  // when on the root level of oOptions, these options are already processed (see _filterControlsByCondition) and should not be processed again,
425
427
  // as this results in error when no controls are passed to the matcher pipeline (see _filterControlsByMatchers)
@@ -456,7 +458,7 @@ sap.ui.define([
456
458
 
457
459
  // instantiate any matchers with declarative syntax and run controls through matcher pipeline
458
460
  _filterControlsByMatchers: function (oOptions, vControl) {
459
- var oOptionsWithMatchers = $.extend({}, oOptions);
461
+ var oOptionsWithMatchers = extend({}, oOptions);
460
462
  var aMatchers = this._oMatcherFactory.getFilteringMatchers(oOptionsWithMatchers);
461
463
  var bPluginLooksForControls = this._isLookingForAControl(oOptions);
462
464
  var vResult = null;
@@ -561,7 +563,7 @@ sap.ui.define([
561
563
  return null;
562
564
  }
563
565
 
564
- var fnControlType = $.sap.getObject(sControlType);
566
+ var fnControlType = ObjectPath.get(sControlType);
565
567
 
566
568
  // no control type
567
569
  if (!fnControlType) {
@@ -5,11 +5,13 @@
5
5
  */
6
6
 
7
7
  sap.ui.define([
8
- 'sap/ui/thirdparty/jquery',
9
- 'sap/ui/test/Opa',
8
+ 'sap/base/Log',
9
+ 'sap/base/util/deepExtend',
10
+ 'sap/base/util/isEmptyObject',
11
+ 'sap/base/util/ObjectPath',
10
12
  'sap/ui/base/Object',
11
- "sap/base/Log"
12
- ], function($, Opa, Ui5Object, Log) {
13
+ 'sap/ui/test/Opa'
14
+ ], function(Log, deepExtend, isEmptyObject, ObjectPath, Ui5Object, Opa) {
13
15
  "use strict";
14
16
 
15
17
  /**
@@ -39,7 +41,7 @@ sap.ui.define([
39
41
  var mPageObjects = {};
40
42
 
41
43
  for (var sPageObjectName in mPageDefinitions) {
42
- if (mPageDefinitions.hasOwnProperty(sPageObjectName) && $.isEmptyObject(mPageObjects[sPageObjectName])) {
44
+ if (mPageDefinitions.hasOwnProperty(sPageObjectName) && isEmptyObject(mPageObjects[sPageObjectName])) {
43
45
 
44
46
  mPageObjects[sPageObjectName] = PageObjectFactory._createPageObject({
45
47
  name: sPageObjectName,
@@ -97,7 +99,7 @@ sap.ui.define([
97
99
  // create class name for an operation object
98
100
  function _createClassName(sNamespace, sPageObjectName, sOperationType) {
99
101
  var sClassName = sNamespace + "." + sPageObjectName + "." + sOperationType;
100
- var oObj = $.sap.getObject(sClassName,NaN);
102
+ var oObj = ObjectPath.get(sClassName);
101
103
  if (oObj){
102
104
  Log.error("Opa5 Page Object namespace clash: You have loaded multiple page objects with the same name '" + sClassName + "'. " +
103
105
  "To prevent override, specify the namespace parameter.");
@@ -107,10 +109,10 @@ sap.ui.define([
107
109
 
108
110
  // add default values to the waitFor method of an operation instance
109
111
  function _configureWaitFor(oOperation, mView){
110
- if (!$.isEmptyObject(mView) && oOperation.waitFor) {
112
+ if (!isEmptyObject(mView) && oOperation.waitFor) {
111
113
  var fnOriginalWaitFor = oOperation.waitFor;
112
114
  oOperation.waitFor = function (oOptions) {
113
- return fnOriginalWaitFor.call(this, $.extend(true, {}, mView, oOptions));
115
+ return fnOriginalWaitFor.call(this, deepExtend({}, mView, oOptions));
114
116
  };
115
117
  }
116
118
  }
@@ -137,7 +139,7 @@ sap.ui.define([
137
139
  function _mixinTestLibraries(oOperation, sOperationType) {
138
140
  if (Opa.config.testLibs) {
139
141
  for (var sTestLib in Opa.config.testLibs) { // the test library is configured by the test
140
- if (Opa.config.testLibBase && !$.isEmptyObject(Opa.config.testLibBase[sTestLib])) { // the test library exposes methods
142
+ if (Opa.config.testLibBase && !isEmptyObject(Opa.config.testLibBase[sTestLib])) { // the test library exposes methods
141
143
  // add a plain object property to the operation prototype, that will contain all methods of the desired type
142
144
  // the property name is with the same as the test library name
143
145
  var oOperationPrototype = Object.getPrototypeOf(oOperation);
@@ -201,7 +201,7 @@ sap.ui.define([
201
201
  resolve();
202
202
  }
203
203
  });
204
- });
204
+ }, "PROMISE_WAITER_IGNORE");
205
205
  };
206
206
 
207
207
  return RecordReplay;
@@ -20,7 +20,7 @@ sap.ui.define([
20
20
 
21
21
  return {
22
22
  // _OpaLogger might also be loaded in an iFrame. setLevel should be called for each iFrame
23
- // $.sap.log reference changes depending on the contentWindow
23
+ // `Log` reference changes depending on the contentWindow
24
24
  setLevel: function (sNewLogLevel) {
25
25
  sNewLogLevel = sNewLogLevel && sNewLogLevel.toUpperCase();
26
26
  if (sNewLogLevel && Log.Level[sNewLogLevel]) {
@@ -116,7 +116,7 @@ sap.ui.define([
116
116
  return false;
117
117
  }
118
118
 
119
- var WrappedPromise = function (fnOriginalExecutor) {
119
+ var WrappedPromise = function (fnOriginalExecutor, tracking) {
120
120
  var mPendingPromise;
121
121
 
122
122
  var fnWrappedExecutor = function (fnOriginalResolve, fnOriginalReject) {
@@ -128,6 +128,9 @@ sap.ui.define([
128
128
  } else if (sArguments === "'function () { [native code] }'") {
129
129
  oPromiseWaiter._oLogger.trace("Ignoring internal Promise constructor");
130
130
  return fnOriginalExecutor(fnOriginalResolve, fnOriginalReject);
131
+ } else if (tracking === "PROMISE_WAITER_IGNORE") {
132
+ oPromiseWaiter._oLogger.trace("Ignoring Promise marked to ignore");
133
+ return fnOriginalExecutor(fnOriginalResolve, fnOriginalReject);
131
134
  } else {
132
135
  mPendingPromise = _trackPromise(sArguments);
133
136
  var fnWrappedResolve = function wrappedResolve () {
@@ -24,7 +24,7 @@ sap.ui.define([
24
24
  * @extends sap.ui.base.Object
25
25
  * @abstract
26
26
  * @author SAP SE
27
- * @version 1.108.1
27
+ * @version 1.109.0
28
28
  * @since 1.100
29
29
  */
30
30
  return BaseObject.extend("sap.ui.test.generic.TestBase", {
@@ -201,17 +201,17 @@ sap.ui.define(['sap/ui/Device', 'sap/base/Log', 'sap/base/util/extend', 'sap/ui/
201
201
  * When at least one home icon is given, all existing home icons will be removed and new home icon tags for all
202
202
  * four resolutions will be created.
203
203
  *
204
- * The home icons must be in PNG format and given in different sizes for iPad/iPhone with and without retina
204
+ * The home icons must be in PNG format and given in different sizes for iPad/iPhone with low and high pixel density
205
205
  * display. The favicon is used in the browser and for desktop shortcuts and should optimally be in ICO format:
206
206
  * ICO files can contain different image sizes for different usage locations. E.g. a 16x16px version is used
207
207
  * inside browsers.
208
208
  *
209
209
  * All icons are given in an an object holding icon URLs and other settings. The properties of this object are:
210
210
  * <ul>
211
- * <li>phone: a 60x60 pixel version for non-retina iPhones</li>
212
- * <li>tablet: a 76x76 pixel version for non-retina iPads</li>
213
- * <li>phone@2: a 120x120 pixel version for retina iPhones</li>
214
- * <li>tablet@2: a 152x152 pixel version for retina iPads</li>
211
+ * <li>phone: a 120x120 pixel version for iPhones with low pixel density</li>
212
+ * <li>tablet: a 152x152 pixel version for iPads with low pixel density</li>
213
+ * <li>phone@2: a 180x180 pixel version for iPhones with high pixel density</li>
214
+ * <li>tablet@2: a 167x167 pixel version for iPads with high pixel density</li>
215
215
  * <li>precomposed: whether the home icons already have some glare effect (otherwise iOS will add it) (default:
216
216
  * false)</li>
217
217
  * <li>favicon: the ICO file to be used inside the browser and for desktop shortcuts</li>
@@ -220,10 +220,10 @@ sap.ui.define(['sap/ui/Device', 'sap/base/Log', 'sap/base/util/extend', 'sap/ui/
220
220
  * One example is:
221
221
  * <pre>
222
222
  * {
223
- * 'phone':'phone-icon_60x60.png',
224
- * 'phone@2':'phone-retina_120x120.png',
225
- * 'tablet':'tablet-icon_76x76.png',
226
- * 'tablet@2':'tablet-retina_152x152.png',
223
+ * 'phone':'phone-icon_120x120.png',
224
+ * 'phone@2':'phone-retina_180x180.png',
225
+ * 'tablet':'tablet-icon_152x152.png',
226
+ * 'tablet@2':'tablet-retina_167x167.png',
227
227
  * 'precomposed':true,
228
228
  * 'favicon':'desktop.ico'
229
229
  * }
@@ -247,14 +247,12 @@ sap.ui.define(['sap/ui/Device', 'sap/base/Log', 'sap/base/util/extend', 'sap/ui/
247
247
  }
248
248
 
249
249
  var precomposed = oIcons.precomposed ? "-precomposed" : "",
250
- getBestFallback = function(res) {
251
- return oIcons[res] || oIcons['tablet@2'] || oIcons['phone@2'] || oIcons['phone'] || oIcons['tablet']; // fallback logic
252
- },
250
+ // Sizes according to https://developer.apple.com/library/archive/documentation/AppleApplications/Reference/SafariWebContent/ConfiguringWebApplications/ConfiguringWebApplications.html#//apple_ref/doc/uid/TP40002051-CH3-SW4
253
251
  mSizes = {
254
252
  "phone": "",
255
- "tablet": "76x76",
256
- "phone@2": "120x120",
257
- "tablet@2": "152x152"
253
+ "tablet": "152x152",
254
+ "phone@2": "180x180",
255
+ "tablet@2": "167x167"
258
256
  };
259
257
 
260
258
  // desktop icon
@@ -269,16 +267,17 @@ sap.ui.define(['sap/ui/Device', 'sap/base/Log', 'sap/base/util/extend', 'sap/ui/
269
267
  });
270
268
  }
271
269
 
270
+ var bMobileUpdateIcon = Object.keys(mSizes).some(function (sPlatform) {
271
+ return oIcons.hasOwnProperty(sPlatform);
272
+ });
272
273
  // mobile home screen icons
273
- if (getBestFallback("phone")) {
274
-
274
+ if (bMobileUpdateIcon) {
275
275
  // if any home icon is given remove old ones
276
276
  removeFromHead("[rel=apple-touch-icon]");
277
277
  removeFromHead("[rel=apple-touch-icon-precomposed]");
278
278
  }
279
279
 
280
280
  for (var platform in mSizes) {
281
- oIcons[platform] = oIcons[platform] || getBestFallback(platform);
282
281
  if (oIcons[platform]) {
283
282
  addElementToHead("link", {
284
283
  rel: "apple-touch-icon" + precomposed,
@@ -12,7 +12,8 @@ sap.ui.define(["sap/base/assert"], function (assert) {
12
12
 
13
13
 
14
14
  /**
15
- * Prefix added to all storage keys. The prefix is used as namespace for data using the same key.
15
+ * Default prefix to be used for a storage instance when no other prefix is provided
16
+ * at construction time.
16
17
  *
17
18
  * @private
18
19
  */
@@ -21,23 +22,31 @@ sap.ui.define(["sap/base/assert"], function (assert) {
21
22
  /**
22
23
  * @class A Storage API for JavaScript.
23
24
  *
24
- * <b>Note:</b> The Web Storage API stores the data on the client. Therefore, you must not use this API for confidential information.
25
+ * <b>Note:</b> The Web Storage API stores the data on the client. Therefore, you must not use
26
+ * this API for confidential information.
25
27
  *
26
- * Provides a unified interface and methods to store data on the client using the Web Storage API or a custom implementation.
27
- * By default, data can be persisted inside localStorage or a sessionStorage.
28
- *
29
- * You can access the 'default' storage by using {@link module:sap/ui/util/Storage} methods
30
- * static on the module export or by creating an own instance of Storage via the constructor.
28
+ * Provides a unified interface and methods to store data on the client using the
29
+ * Web Storage API or a custom implementation. By default, data can be persisted inside
30
+ * localStorage or sessionStorage.
31
31
  *
32
32
  * A typical intended usage of this API is the storage of a string representing the state of
33
33
  * a control. In this case, the data is stored in the browser session, and the methods to be
34
34
  * used are {@link #put} and {@link #get}. The method {@link #remove} can be used to delete
35
35
  * the previously saved state.
36
36
  *
37
- * For the sake of completeness, the method {@link #clear} is available. However, it should be
38
- * called only in very particular situations, when a global erasing of data is required. If
39
- * only keys with certain prefix should be deleted, the method {@link #removeAll} should be
40
- * used.
37
+ * The <code>Storage</code> class allows a simple scoping by prefixing the keys of all
38
+ * <code>put/get/remove</code> operations with a fixed prefix given when constructing a
39
+ * storage instance. By choosing unique prefixes, different instances can write/read/delete
40
+ * data to the same underlying storage implementation without interfering with each other.
41
+ *
42
+ * For the sake of completeness, the method {@link #clear} is available. However, it does not
43
+ * honor the scoping and therefore should only be called when a global erasing of data is
44
+ * required. If only keys with certain prefix should be deleted, the method {@link #removeAll}
45
+ * should be used.
46
+ *
47
+ * Besides creating an own storage instance, callers can use the static methods of the
48
+ * <code>Storage</code> class to access a default session storage instance. All calls will use
49
+ * the same scope (same prefix).
41
50
  *
42
51
  * @example
43
52
  * <pre>
@@ -46,6 +55,7 @@ sap.ui.define(["sap/base/assert"], function (assert) {
46
55
  * Storage.get("stored_data");
47
56
  * });
48
57
  * </pre>
58
+ *
49
59
  * @example
50
60
  * <pre>
51
61
  * // Storage Instance
@@ -55,20 +65,32 @@ sap.ui.define(["sap/base/assert"], function (assert) {
55
65
  * oMyStorage.get("stored_data");
56
66
  * });
57
67
  * </pre>
68
+ *
58
69
  * @since 1.58
59
70
  * @alias module:sap/ui/util/Storage
60
- * @param {module:sap/ui/util/Storage.Type | Storage} [pStorage=module:sap/ui/util/Storage.Type.session] The type this storage should be of or an Object implementing the typical Storage API for direct usage.
61
- * @param {string} [sStorageKeyPrefix='state.key_'] The prefix to use in this storage.
71
+ * @param {module:sap/ui/util/Storage.Type | Storage} [vStorage=module:sap/ui/util/Storage.Type.session]
72
+ * The type of native storage implementation that this <code>Storage</code> instance should
73
+ * use internally. Alternatively, this can be a custom implementation of the
74
+ * {@link https://developer.mozilla.org/en-US/docs/Web/API/Storage Storage Web API).
75
+ * @param {string} [sStorageKeyPrefix='state.key_']
76
+ * The scope prefix to be used by this storage instance
62
77
  * @public
78
+ * @borrows module:sap/ui/util/Storage#isSupported as isSupported
79
+ * @borrows module:sap/ui/util/Storage#put as put
80
+ * @borrows module:sap/ui/util/Storage#get as get
81
+ * @borrows module:sap/ui/util/Storage#remove as remove
82
+ * @borrows module:sap/ui/util/Storage#removeAll as removeAll
83
+ * @borrows module:sap/ui/util/Storage#clear as clear
84
+ * @borrows module:sap/ui/util/Storage#getType as getType
63
85
  */
64
- var Storage = function (pStorage, sStorageKeyPrefix) {
86
+ var Storage = function (vStorage, sStorageKeyPrefix) {
65
87
 
66
88
  var sType = "unknown",
67
89
  sPrefix = (sStorageKeyPrefix || STATE_STORAGE_KEY_PREFIX) + "-",
68
90
  oStorageImpl;
69
91
 
70
- if (!pStorage || typeof (pStorage) === "string") {
71
- sType = pStorage || Storage.Type.session;
92
+ if (!vStorage || typeof (vStorage) === "string") {
93
+ sType = vStorage || Storage.Type.session;
72
94
  try {
73
95
  oStorageImpl = window[sType + "Storage"];
74
96
  // Test for QUOTA_EXCEEDED_ERR (Happens e.g. in mobile Safari when private browsing active)
@@ -80,9 +102,9 @@ sap.ui.define(["sap/base/assert"], function (assert) {
80
102
  } catch (e) {
81
103
  oStorageImpl = null;
82
104
  }
83
- } else if (typeof (pStorage) === "object") {
84
- sType = pStorage.getType ? pStorage.getType() : "unknown";
85
- oStorageImpl = pStorage;
105
+ } else if (typeof (vStorage) === "object") {
106
+ sType = vStorage.getType ? vStorage.getType() : "unknown";
107
+ oStorageImpl = vStorage;
86
108
  }
87
109
 
88
110
  /**
@@ -108,10 +130,8 @@ sap.ui.define(["sap/base/assert"], function (assert) {
108
130
  /**
109
131
  * Returns whether the given storage is supported.
110
132
  *
111
- * @return {boolean} true if storage is supported, false otherwise (e.g. due to browser security settings)
133
+ * @returns {boolean} true if storage is supported, false otherwise (e.g. due to browser security settings)
112
134
  * @public
113
- * @function
114
- * @name module:sap/ui/util/Storage#isSupported
115
135
  */
116
136
  this.isSupported = function () {
117
137
  //Possibility to define for custom storage
@@ -119,33 +139,42 @@ sap.ui.define(["sap/base/assert"], function (assert) {
119
139
  };
120
140
 
121
141
  /**
122
- * Add key to the storage or updates value if the key already exists.
142
+ * Stores the given value under the given key in the storage or updates the value
143
+ * if the key already exists.
123
144
  *
124
- * @param {string} sKey key to create
125
- * @param {string} sValue value to create/update
126
- * @return {boolean} true if the data was successfully stored, otherwise false
145
+ * This method supports the same types of values as <code>JSON.stringify</code>.
146
+ *
147
+ * @param {string} sKey
148
+ * Key to store the given value under; will be prefixed with the prefix given when
149
+ * constructing this <code>Storage</code>
150
+ * @param {any} vValue
151
+ * Value to store/update under the given key
152
+ * @returns {boolean}
153
+ * Whether the data was successfully stored
127
154
  *
128
155
  * @public
129
- * @function
130
- * @name module:sap/ui/util/Storage#put
131
156
  */
132
- this.put = function (sKey, sStateToStore) {
157
+ this.put = function (sKey, vValue) {
133
158
  //precondition: non-empty sKey and available storage feature
134
159
  assert(typeof sKey === "string" && sKey.length > 0, "key must be a non-empty string");
135
160
  return hasExecuted(function () {
136
- oStorageImpl.setItem(sPrefix + sKey, JSON.stringify(sStateToStore));
161
+ oStorageImpl.setItem(sPrefix + sKey, JSON.stringify(vValue));
137
162
  });
138
163
  };
139
164
 
140
165
 
141
166
  /**
142
- * Retrieves data item for a specific key.
167
+ * Retrieves the value for the given key or <code>null</code> if the key does not exist
168
+ * in this storage.
169
+ *
170
+ * The returned value will be of a type that <code>JSON.parse</code> could return, too.
143
171
  *
144
- * @param {string} sKey key to retrieve
145
- * @returns {object|null} key's value or <code>null</code>
172
+ * @param {string} sKey
173
+ * Key to retrieve the value for; will be prefixed with the prefix given when
174
+ * constructing this <code>Storage</code>
175
+ * @returns {any}
176
+ * The key's value or <code>null</code> if the key does not exist in the storage.
146
177
  * @public
147
- * @function
148
- * @name module:sap/ui/util/Storage#get
149
178
  */
150
179
  this.get = function (sKey) {
151
180
  //precondition: non-empty sKey and available storage feature
@@ -161,18 +190,18 @@ sap.ui.define(["sap/base/assert"], function (assert) {
161
190
  };
162
191
 
163
192
  /**
164
- * Removes key from storage if it exists.
193
+ * Removes the key and its value from storage, if the key exists.
165
194
  *
166
- * @param {string} sKey key to remove
167
- * @return {boolean} true if the deletion
168
- * was successful or the data doesn't exist under the specified key,
169
- * and false if the feature is unavailable or a problem occurred
195
+ * @param {string} sKey
196
+ * Key to remove; will be prefixed with the prefix given when constructing this
197
+ * <code>Storage</code>
198
+ * @returns {boolean}
199
+ * Whether the deletion succeeded; if the key didn't exists, the method also
200
+ * reports a success
170
201
  * @public
171
- * @function
172
- * @name module:sap/ui/util/Storage#remove
173
202
  */
174
203
  this.remove = function (sKey) {
175
- //precondition: non-empty sKey and available storage feature
204
+ // precondition: non-empty sKey and available storage feature
176
205
  assert(typeof sKey === "string" && sKey.length > 0, "key must be a non-empty string");
177
206
  return hasExecuted(function () {
178
207
  oStorageImpl.removeItem(sPrefix + sKey);
@@ -180,19 +209,20 @@ sap.ui.define(["sap/base/assert"], function (assert) {
180
209
  };
181
210
 
182
211
  /**
183
- * Removes all stored keys.
212
+ * Removes all key/value pairs form the storage where the key starts with the given
213
+ * <code>sKeyPrefix</code>.
184
214
  *
185
- * @param {string} [sIdPrefix=""] prefix id for the states to delete
186
- * @return {boolean} true if the deletion
187
- * was successful or the data doesn't exist under the specified key,
188
- * and false if the feature is unavailable or a problem occurred
215
+ * @param {string} [sKeyPrefix=""]
216
+ * Key prefix for the keys/values to delete; will be additionally prefixed with the
217
+ * prefix given when constructing this <code>Storage</code>
218
+ * @returns {boolean}
219
+ * Whether the deletion was successful; if no key matches the prefix, this is also
220
+ * a success
189
221
  * @public
190
- * @function
191
- * @name module:sap/ui/util/Storage#removeAll
192
222
  */
193
- this.removeAll = function (sIdPrefix) {
223
+ this.removeAll = function (sKeyPrefix) {
194
224
  return hasExecuted(function () {
195
- var p = sPrefix + (sIdPrefix || ""),
225
+ var p = sPrefix + (sKeyPrefix || ""),
196
226
  keysToRemove = [],
197
227
  key, i;
198
228
 
@@ -216,15 +246,12 @@ sap.ui.define(["sap/base/assert"], function (assert) {
216
246
  *
217
247
  * <b>CAUTION</b> This method should be called only in very particular situations,
218
248
  * when a global erasing of data is required. Given that the method deletes
219
- * the data saved under any ID, it should not be called when managing data
249
+ * the data saved under any key, it should not be called when managing data
220
250
  * for specific controls.
221
251
  *
222
- * @return {boolean} true if execution of removal
223
- * was successful or the data to remove doesn't exist,
224
- * and false if the feature is unavailable or a problem occurred
252
+ * @returns {boolean}
253
+ * Whether clearing the storage was successful
225
254
  * @public
226
- * @function
227
- * @name module:sap/ui/util/Storage#clear
228
255
  */
229
256
  this.clear = function () {
230
257
  return hasExecuted(function () {
@@ -233,12 +260,12 @@ sap.ui.define(["sap/base/assert"], function (assert) {
233
260
  };
234
261
 
235
262
  /**
236
- * Returns the storage type.
263
+ * Returns the type of this storage.
237
264
  *
238
- * @returns {module:sap/ui/util/Storage.Type | string} storage type or "unknown"
265
+ * @returns {module:sap/ui/util/Storage.Type | string}
266
+ * Type of this storage or "unknown" when the Storage was created with an
267
+ * unknown type or implementation
239
268
  * @public
240
- * @function
241
- * @name module:sap/ui/util/Storage#getType
242
269
  */
243
270
  this.getType = function () {
244
271
  return sType;
@@ -250,7 +277,7 @@ sap.ui.define(["sap/base/assert"], function (assert) {
250
277
  *
251
278
  * @enum {string}
252
279
  * @public
253
- * @version 1.108.1
280
+ * @version 1.109.0
254
281
  */
255
282
  Storage.Type = {
256
283
  /**