@openui5/sap.ui.core 1.99.1 → 1.102.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 (469) hide show
  1. package/.eslintrc.json +27 -5
  2. package/THIRDPARTY.txt +5 -5
  3. package/package.json +1 -1
  4. package/src/jquery.sap.global.js +6 -3
  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/Log.js +1 -1
  10. package/src/sap/base/assert.js +1 -1
  11. package/src/sap/base/strings/whitespaceReplacer.js +1 -1
  12. package/src/sap/base/util/LoaderExtensions.js +1 -10
  13. package/src/sap/base/util/UriParameters.js +2 -2
  14. package/src/sap/base/util/restricted/_CancelablePromise.js +2 -2
  15. package/src/sap/base/util/restricted/_castArray.js +1 -1
  16. package/src/sap/base/util/restricted/_compact.js +1 -1
  17. package/src/sap/base/util/restricted/_curry.js +1 -1
  18. package/src/sap/base/util/restricted/_debounce.js +1 -1
  19. package/src/sap/base/util/restricted/_difference.js +1 -1
  20. package/src/sap/base/util/restricted/_differenceBy.js +1 -1
  21. package/src/sap/base/util/restricted/_differenceWith.js +1 -1
  22. package/src/sap/base/util/restricted/_flatMap.js +1 -1
  23. package/src/sap/base/util/restricted/_flatMapDeep.js +1 -1
  24. package/src/sap/base/util/restricted/_flatMapDepth.js +1 -1
  25. package/src/sap/base/util/restricted/_flatten.js +1 -1
  26. package/src/sap/base/util/restricted/_flattenDeep.js +1 -1
  27. package/src/sap/base/util/restricted/_flattenDepth.js +1 -1
  28. package/src/sap/base/util/restricted/_intersection.js +1 -1
  29. package/src/sap/base/util/restricted/_intersectionBy.js +1 -1
  30. package/src/sap/base/util/restricted/_intersectionWith.js +1 -1
  31. package/src/sap/base/util/restricted/_isEqual.js +1 -1
  32. package/src/sap/base/util/restricted/_isEqualWith.js +1 -1
  33. package/src/sap/base/util/restricted/_isNil.js +1 -1
  34. package/src/sap/base/util/restricted/_max.js +1 -1
  35. package/src/sap/base/util/restricted/_merge.js +1 -1
  36. package/src/sap/base/util/restricted/_mergeWith.js +1 -1
  37. package/src/sap/base/util/restricted/_min.js +1 -1
  38. package/src/sap/base/util/restricted/_omit.js +1 -1
  39. package/src/sap/base/util/restricted/_pick.js +1 -1
  40. package/src/sap/base/util/restricted/_pickBy.js +1 -1
  41. package/src/sap/base/util/restricted/_throttle.js +1 -1
  42. package/src/sap/base/util/restricted/_toArray.js +1 -1
  43. package/src/sap/base/util/restricted/_union.js +1 -1
  44. package/src/sap/base/util/restricted/_unionBy.js +1 -1
  45. package/src/sap/base/util/restricted/_unionWith.js +1 -1
  46. package/src/sap/base/util/restricted/_uniq.js +1 -1
  47. package/src/sap/base/util/restricted/_uniqBy.js +1 -1
  48. package/src/sap/base/util/restricted/_uniqWith.js +1 -1
  49. package/src/sap/base/util/restricted/_without.js +1 -1
  50. package/src/sap/base/util/restricted/_xor.js +1 -1
  51. package/src/sap/base/util/restricted/_xorBy.js +1 -1
  52. package/src/sap/base/util/restricted/_xorWith.js +1 -1
  53. package/src/sap/base/util/restricted/_zipObject.js +1 -1
  54. package/src/sap/base/util/restricted/_zipObjectDeep.js +1 -1
  55. package/src/sap/ui/Device.js +3 -3
  56. package/src/sap/ui/Global.js +4 -4
  57. package/src/sap/ui/base/Event.js +1 -1
  58. package/src/sap/ui/base/EventProvider.js +2 -2
  59. package/src/sap/ui/base/ExpressionParser.js +1 -1
  60. package/src/sap/ui/base/Interface.js +1 -1
  61. package/src/sap/ui/base/ManagedObject.js +1 -1
  62. package/src/sap/ui/base/ManagedObjectMetadata.js +1 -1
  63. package/src/sap/ui/base/ManagedObjectObserver.js +2 -0
  64. package/src/sap/ui/base/ManagedObjectRegistry.js +10 -5
  65. package/src/sap/ui/base/Metadata.js +1 -1
  66. package/src/sap/ui/base/Object.js +1 -1
  67. package/src/sap/ui/base/ObjectPool.js +1 -1
  68. package/src/sap/ui/core/.library +2 -1
  69. package/src/sap/ui/core/BusyIndicator.js +1 -1
  70. package/src/sap/ui/core/CommandExecution.js +15 -12
  71. package/src/sap/ui/core/Component.js +50 -27
  72. package/src/sap/ui/core/ComponentContainer.js +1 -1
  73. package/src/sap/ui/core/ComponentMetadata.js +28 -13
  74. package/src/sap/ui/core/ComponentSupport.js +1 -1
  75. package/src/sap/ui/core/Configuration.js +25 -9
  76. package/src/sap/ui/core/Control.js +2 -3
  77. package/src/sap/ui/core/Core.js +121 -36
  78. package/src/sap/ui/core/CustomData.js +1 -1
  79. package/src/sap/ui/core/DeclarativeSupport.js +1 -1
  80. package/src/sap/ui/core/Element.js +1 -1
  81. package/src/sap/ui/core/ElementMetadata.js +1 -1
  82. package/src/sap/ui/core/EnabledPropagator.js +1 -1
  83. package/src/sap/ui/core/EventBus.js +1 -1
  84. package/src/sap/ui/core/ExtensionPoint.js +6 -1
  85. package/src/sap/ui/core/FocusHandler.js +2 -3
  86. package/src/sap/ui/core/Fragment.js +1 -1
  87. package/src/sap/ui/core/HTML.js +1 -1
  88. package/src/sap/ui/core/History.js +1 -1
  89. package/src/sap/ui/core/Icon.js +17 -3
  90. package/src/sap/ui/core/IndicationColorSupport.js +1 -1
  91. package/src/sap/ui/core/IntervalTrigger.js +1 -1
  92. package/src/sap/ui/core/InvisibleMessage.js +1 -1
  93. package/src/sap/ui/core/InvisibleRenderer.js +1 -1
  94. package/src/sap/ui/core/InvisibleText.js +1 -1
  95. package/src/sap/ui/core/Item.js +1 -1
  96. package/src/sap/ui/core/LabelEnablement.js +1 -1
  97. package/src/sap/ui/core/LayoutData.js +1 -1
  98. package/src/sap/ui/core/ListItem.js +1 -1
  99. package/src/sap/ui/core/LocalBusyIndicator.js +1 -1
  100. package/src/sap/ui/core/Locale.js +1 -1
  101. package/src/sap/ui/core/LocaleData.js +159 -9
  102. package/src/sap/ui/core/Manifest.js +5 -3
  103. package/src/sap/ui/core/Message.js +1 -1
  104. package/src/sap/ui/core/Patcher.js +6 -4
  105. package/src/sap/ui/core/Popup.js +21 -20
  106. package/src/sap/ui/core/RenderManager.js +1 -1
  107. package/src/sap/ui/core/Renderer.js +1 -1
  108. package/src/sap/ui/core/ResizeHandler.js +1 -1
  109. package/src/sap/ui/core/ScrollBar.js +21 -15
  110. package/src/sap/ui/core/SeparatorItem.js +1 -1
  111. package/src/sap/ui/core/ShortcutHintsMixin.js +2 -4
  112. package/src/sap/ui/core/Title.js +1 -1
  113. package/src/sap/ui/core/TooltipBase.js +1 -1
  114. package/src/sap/ui/core/UIArea.js +3 -5
  115. package/src/sap/ui/core/UIComponent.js +1 -1
  116. package/src/sap/ui/core/UIComponentMetadata.js +1 -1
  117. package/src/sap/ui/core/ValueStateSupport.js +1 -1
  118. package/src/sap/ui/core/VariantLayoutData.js +1 -1
  119. package/src/sap/ui/core/XMLComposite.js +1 -1
  120. package/src/sap/ui/core/XMLCompositeMetadata.js +1 -1
  121. package/src/sap/ui/core/XMLTemplateProcessor.js +521 -395
  122. package/src/sap/ui/core/_IconRegistry.js +3 -2
  123. package/src/sap/ui/core/cache/CacheManager.js +28 -1
  124. package/src/sap/ui/core/cache/CacheManagerNOP.js +3 -0
  125. package/src/sap/ui/core/cache/LRUPersistentCache.js +76 -4
  126. package/src/sap/ui/core/cldr/ar.json +469 -1
  127. package/src/sap/ui/core/cldr/ar_EG.json +469 -1
  128. package/src/sap/ui/core/cldr/ar_SA.json +469 -1
  129. package/src/sap/ui/core/cldr/bg.json +469 -1
  130. package/src/sap/ui/core/cldr/ca.json +469 -1
  131. package/src/sap/ui/core/cldr/cs.json +469 -1
  132. package/src/sap/ui/core/cldr/cy.json +469 -1
  133. package/src/sap/ui/core/cldr/da.json +469 -1
  134. package/src/sap/ui/core/cldr/de.json +469 -1
  135. package/src/sap/ui/core/cldr/de_AT.json +469 -1
  136. package/src/sap/ui/core/cldr/de_CH.json +469 -1
  137. package/src/sap/ui/core/cldr/el.json +469 -1
  138. package/src/sap/ui/core/cldr/el_CY.json +469 -1
  139. package/src/sap/ui/core/cldr/en.json +469 -1
  140. package/src/sap/ui/core/cldr/en_AU.json +470 -2
  141. package/src/sap/ui/core/cldr/en_GB.json +469 -1
  142. package/src/sap/ui/core/cldr/en_HK.json +469 -1
  143. package/src/sap/ui/core/cldr/en_IE.json +469 -1
  144. package/src/sap/ui/core/cldr/en_IN.json +469 -1
  145. package/src/sap/ui/core/cldr/en_NZ.json +469 -1
  146. package/src/sap/ui/core/cldr/en_PG.json +469 -1
  147. package/src/sap/ui/core/cldr/en_SG.json +469 -1
  148. package/src/sap/ui/core/cldr/en_ZA.json +469 -1
  149. package/src/sap/ui/core/cldr/es.json +469 -1
  150. package/src/sap/ui/core/cldr/es_AR.json +469 -1
  151. package/src/sap/ui/core/cldr/es_BO.json +469 -1
  152. package/src/sap/ui/core/cldr/es_CL.json +469 -1
  153. package/src/sap/ui/core/cldr/es_CO.json +469 -1
  154. package/src/sap/ui/core/cldr/es_MX.json +469 -1
  155. package/src/sap/ui/core/cldr/es_PE.json +469 -1
  156. package/src/sap/ui/core/cldr/es_UY.json +469 -1
  157. package/src/sap/ui/core/cldr/es_VE.json +469 -1
  158. package/src/sap/ui/core/cldr/et.json +469 -1
  159. package/src/sap/ui/core/cldr/fa.json +469 -1
  160. package/src/sap/ui/core/cldr/fi.json +469 -1
  161. package/src/sap/ui/core/cldr/fr.json +469 -1
  162. package/src/sap/ui/core/cldr/fr_BE.json +469 -1
  163. package/src/sap/ui/core/cldr/fr_CA.json +469 -1
  164. package/src/sap/ui/core/cldr/fr_CH.json +469 -1
  165. package/src/sap/ui/core/cldr/fr_LU.json +469 -1
  166. package/src/sap/ui/core/cldr/he.json +469 -1
  167. package/src/sap/ui/core/cldr/hi.json +469 -1
  168. package/src/sap/ui/core/cldr/hr.json +469 -1
  169. package/src/sap/ui/core/cldr/hu.json +469 -1
  170. package/src/sap/ui/core/cldr/id.json +469 -1
  171. package/src/sap/ui/core/cldr/it.json +469 -1
  172. package/src/sap/ui/core/cldr/it_CH.json +469 -1
  173. package/src/sap/ui/core/cldr/ja.json +469 -1
  174. package/src/sap/ui/core/cldr/kk.json +469 -1
  175. package/src/sap/ui/core/cldr/ko.json +469 -1
  176. package/src/sap/ui/core/cldr/lt.json +469 -1
  177. package/src/sap/ui/core/cldr/lv.json +469 -1
  178. package/src/sap/ui/core/cldr/ms.json +469 -1
  179. package/src/sap/ui/core/cldr/nb.json +469 -1
  180. package/src/sap/ui/core/cldr/nl.json +469 -1
  181. package/src/sap/ui/core/cldr/nl_BE.json +469 -1
  182. package/src/sap/ui/core/cldr/pl.json +469 -1
  183. package/src/sap/ui/core/cldr/pt.json +469 -1
  184. package/src/sap/ui/core/cldr/pt_PT.json +469 -1
  185. package/src/sap/ui/core/cldr/ro.json +469 -1
  186. package/src/sap/ui/core/cldr/ru.json +469 -1
  187. package/src/sap/ui/core/cldr/ru_UA.json +469 -1
  188. package/src/sap/ui/core/cldr/sk.json +469 -1
  189. package/src/sap/ui/core/cldr/sl.json +469 -1
  190. package/src/sap/ui/core/cldr/sr.json +469 -1
  191. package/src/sap/ui/core/cldr/sr_Latn.json +469 -1
  192. package/src/sap/ui/core/cldr/sv.json +469 -1
  193. package/src/sap/ui/core/cldr/th.json +469 -1
  194. package/src/sap/ui/core/cldr/tr.json +469 -1
  195. package/src/sap/ui/core/cldr/uk.json +469 -1
  196. package/src/sap/ui/core/cldr/vi.json +469 -1
  197. package/src/sap/ui/core/cldr/zh_CN.json +470 -2
  198. package/src/sap/ui/core/cldr/zh_HK.json +470 -2
  199. package/src/sap/ui/core/cldr/zh_SG.json +470 -2
  200. package/src/sap/ui/core/cldr/zh_TW.json +469 -1
  201. package/src/sap/ui/core/date/Buddhist.js +3 -3
  202. package/src/sap/ui/core/date/Japanese.js +3 -3
  203. package/src/sap/ui/core/date/UniversalDate.js +10 -0
  204. package/src/sap/ui/core/date/UniversalDateUtils.js +49 -49
  205. package/src/sap/ui/core/delegate/ItemNavigation.js +13 -14
  206. package/src/sap/ui/core/delegate/ScrollEnablement.js +11 -7
  207. package/src/sap/ui/core/dnd/DragAndDrop.js +27 -22
  208. package/src/sap/ui/core/dnd/DragDropBase.js +1 -2
  209. package/src/sap/ui/core/dnd/DragDropInfo.js +1 -1
  210. package/src/sap/ui/core/dnd/DragInfo.js +1 -1
  211. package/src/sap/ui/core/dnd/DropInfo.js +3 -3
  212. package/src/sap/ui/core/format/DateFormat.js +285 -151
  213. package/src/sap/ui/core/format/DateFormatTimezoneDisplay.js +4 -0
  214. package/src/sap/ui/core/format/NumberFormat.js +331 -179
  215. package/src/sap/ui/core/format/TimezoneUtil.js +50 -18
  216. package/src/sap/ui/core/hyphenation/Hyphenation.js +1 -1
  217. package/src/sap/ui/core/library.js +219 -188
  218. package/src/sap/ui/core/message/ControlMessageProcessor.js +1 -1
  219. package/src/sap/ui/core/message/Message.js +1 -1
  220. package/src/sap/ui/core/message/MessageManager.js +1 -1
  221. package/src/sap/ui/core/message/MessageParser.js +1 -1
  222. package/src/sap/ui/core/message/MessageProcessor.js +1 -1
  223. package/src/sap/ui/core/messagebundle.properties +0 -2
  224. package/src/sap/ui/core/messagebundle_ar.properties +0 -1
  225. package/src/sap/ui/core/messagebundle_bg.properties +0 -1
  226. package/src/sap/ui/core/messagebundle_ca.properties +0 -1
  227. package/src/sap/ui/core/messagebundle_cs.properties +0 -1
  228. package/src/sap/ui/core/messagebundle_cy.properties +0 -1
  229. package/src/sap/ui/core/messagebundle_da.properties +0 -1
  230. package/src/sap/ui/core/messagebundle_de.properties +0 -1
  231. package/src/sap/ui/core/messagebundle_el.properties +0 -1
  232. package/src/sap/ui/core/messagebundle_en.properties +0 -1
  233. package/src/sap/ui/core/messagebundle_en_GB.properties +0 -1
  234. package/src/sap/ui/core/messagebundle_en_US_sappsd.properties +0 -1
  235. package/src/sap/ui/core/messagebundle_en_US_saptrc.properties +0 -1
  236. package/src/sap/ui/core/messagebundle_es.properties +0 -1
  237. package/src/sap/ui/core/messagebundle_es_MX.properties +0 -1
  238. package/src/sap/ui/core/messagebundle_et.properties +0 -1
  239. package/src/sap/ui/core/messagebundle_fi.properties +0 -1
  240. package/src/sap/ui/core/messagebundle_fr.properties +0 -1
  241. package/src/sap/ui/core/messagebundle_fr_CA.properties +0 -1
  242. package/src/sap/ui/core/messagebundle_hi.properties +0 -1
  243. package/src/sap/ui/core/messagebundle_hr.properties +0 -1
  244. package/src/sap/ui/core/messagebundle_hu.properties +0 -1
  245. package/src/sap/ui/core/messagebundle_id.properties +0 -1
  246. package/src/sap/ui/core/messagebundle_it.properties +0 -1
  247. package/src/sap/ui/core/messagebundle_iw.properties +0 -1
  248. package/src/sap/ui/core/messagebundle_ja.properties +0 -1
  249. package/src/sap/ui/core/messagebundle_kk.properties +0 -1
  250. package/src/sap/ui/core/messagebundle_ko.properties +1 -2
  251. package/src/sap/ui/core/messagebundle_lt.properties +0 -1
  252. package/src/sap/ui/core/messagebundle_lv.properties +0 -1
  253. package/src/sap/ui/core/messagebundle_ms.properties +0 -1
  254. package/src/sap/ui/core/messagebundle_nl.properties +0 -1
  255. package/src/sap/ui/core/messagebundle_no.properties +0 -1
  256. package/src/sap/ui/core/messagebundle_pl.properties +0 -1
  257. package/src/sap/ui/core/messagebundle_pt.properties +0 -1
  258. package/src/sap/ui/core/messagebundle_pt_PT.properties +0 -1
  259. package/src/sap/ui/core/messagebundle_ro.properties +0 -1
  260. package/src/sap/ui/core/messagebundle_ru.properties +0 -1
  261. package/src/sap/ui/core/messagebundle_sh.properties +0 -1
  262. package/src/sap/ui/core/messagebundle_sk.properties +0 -1
  263. package/src/sap/ui/core/messagebundle_sl.properties +0 -1
  264. package/src/sap/ui/core/messagebundle_sv.properties +0 -1
  265. package/src/sap/ui/core/messagebundle_th.properties +0 -1
  266. package/src/sap/ui/core/messagebundle_tr.properties +0 -1
  267. package/src/sap/ui/core/messagebundle_uk.properties +0 -1
  268. package/src/sap/ui/core/messagebundle_vi.properties +0 -1
  269. package/src/sap/ui/core/messagebundle_zh_CN.properties +0 -1
  270. package/src/sap/ui/core/messagebundle_zh_TW.properties +0 -1
  271. package/src/sap/ui/core/mvc/Controller.js +1 -1
  272. package/src/sap/ui/core/mvc/ControllerExtensionProvider.js +1 -1
  273. package/src/sap/ui/core/mvc/HTMLView.js +1 -1
  274. package/src/sap/ui/core/mvc/JSONView.js +1 -1
  275. package/src/sap/ui/core/mvc/JSView.js +2 -2
  276. package/src/sap/ui/core/mvc/TemplateView.js +1 -1
  277. package/src/sap/ui/core/mvc/View.js +2 -1
  278. package/src/sap/ui/core/mvc/XMLView.js +25 -21
  279. package/src/sap/ui/core/mvc/XMLViewRenderer.js +81 -59
  280. package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
  281. package/src/sap/ui/core/plugin/LessSupport.js +3 -3
  282. package/src/sap/ui/core/plugin/TemplatingSupport.js +1 -1
  283. package/src/sap/ui/core/postmessage/Bus.js +1 -1
  284. package/src/sap/ui/core/postmessage/confirmationDialog.js +1 -1
  285. package/src/sap/ui/core/routing/Router.js +1 -1
  286. package/src/sap/ui/core/rules/App.support.js +14 -9
  287. package/src/sap/ui/core/rules/Config.support.js +12 -12
  288. package/src/sap/ui/core/rules/Misc.support.js +8 -3
  289. package/src/sap/ui/core/rules/Model.support.js +8 -8
  290. package/src/sap/ui/core/rules/Rendering.support.js +1 -1
  291. package/src/sap/ui/core/rules/Theming.support.js +4 -4
  292. package/src/sap/ui/core/rules/View.support.js +9 -9
  293. package/src/sap/ui/core/search/OpenSearchProvider.js +1 -1
  294. package/src/sap/ui/core/search/SearchProvider.js +1 -1
  295. package/src/sap/ui/core/service/Service.js +1 -1
  296. package/src/sap/ui/core/service/ServiceFactory.js +1 -1
  297. package/src/sap/ui/core/service/ServiceFactoryRegistry.js +1 -1
  298. package/src/sap/ui/core/support/Plugin.js +29 -1
  299. package/src/sap/ui/core/support/Support.js +4 -4
  300. package/src/sap/ui/core/support/controls/InteractionSlider.js +395 -407
  301. package/src/sap/ui/core/support/plugins/Breakpoint.js +5 -5
  302. package/src/sap/ui/core/support/plugins/ControlTree.js +440 -349
  303. package/src/sap/ui/core/support/plugins/Debugging.js +153 -129
  304. package/src/sap/ui/core/support/plugins/Interaction.js +71 -85
  305. package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -1
  306. package/src/sap/ui/core/support/plugins/Performance.js +10 -13
  307. package/src/sap/ui/core/support/plugins/Selector.js +1 -1
  308. package/src/sap/ui/core/support/plugins/TechInfo.js +5 -3
  309. package/src/sap/ui/core/support/plugins/Trace.js +7 -7
  310. package/src/sap/ui/core/support/plugins/ViewInfo.js +91 -43
  311. package/src/sap/ui/core/support/support.css +23 -23
  312. package/src/sap/ui/core/support/support.html +5 -7
  313. package/src/sap/ui/core/support/techinfo/TechnicalInfo.js +1 -1
  314. package/src/sap/ui/core/themes/base/CommandShortcutHints.less +1 -1
  315. package/src/sap/ui/core/themes/base/DragAndDrop.less +3 -3
  316. package/src/sap/ui/core/themes/base/LocalBusyIndicator.less +15 -1
  317. package/src/sap/ui/core/themes/base/base.less +1524 -54
  318. package/src/sap/ui/core/themes/base/global.less +171 -13
  319. package/src/sap/ui/core/themes/base/shared.less +1 -0
  320. package/src/sap/ui/core/themes/sap_hcb/global.less +166 -7
  321. package/src/sap/ui/core/theming/Parameters.js +1 -1
  322. package/src/sap/ui/core/tmpl/DOMAttribute.js +1 -1
  323. package/src/sap/ui/core/tmpl/DOMElement.js +1 -1
  324. package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +1 -1
  325. package/src/sap/ui/core/tmpl/Template.js +1 -1
  326. package/src/sap/ui/core/tmpl/TemplateControl.js +1 -1
  327. package/src/sap/ui/core/util/AsyncHintsHelper.js +1 -1
  328. package/src/sap/ui/core/util/Export.js +1 -1
  329. package/src/sap/ui/core/util/ExportCell.js +1 -1
  330. package/src/sap/ui/core/util/ExportColumn.js +1 -1
  331. package/src/sap/ui/core/util/ExportRow.js +1 -1
  332. package/src/sap/ui/core/util/ExportType.js +1 -1
  333. package/src/sap/ui/core/util/ExportTypeCSV.js +1 -1
  334. package/src/sap/ui/core/util/File.js +1 -1
  335. package/src/sap/ui/core/util/LibraryInfo.js +1 -1
  336. package/src/sap/ui/core/util/MockServer.js +4 -3
  337. package/src/sap/ui/core/util/PasteHelper.js +2 -2
  338. package/src/sap/ui/core/util/XMLPreprocessor.js +1 -0
  339. package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +1 -1
  340. package/src/sap/ui/core/util/serializer/Serializer.js +1 -1
  341. package/src/sap/ui/core/util/serializer/ViewSerializer.js +1 -1
  342. package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +1 -1
  343. package/src/sap/ui/core/util/serializer/delegate/Delegate.js +1 -1
  344. package/src/sap/ui/core/util/serializer/delegate/HTML.js +1 -1
  345. package/src/sap/ui/core/util/serializer/delegate/XML.js +1 -1
  346. package/src/sap/ui/core/ws/ReadyState.js +1 -1
  347. package/src/sap/ui/core/ws/SapPcpWebSocket.js +1 -1
  348. package/src/sap/ui/core/ws/WebSocket.js +7 -8
  349. package/src/sap/ui/debug/ControlTree.js +1 -1
  350. package/src/sap/ui/debug/DebugEnv.js +1 -1
  351. package/src/sap/ui/debug/LogViewer.js +2 -2
  352. package/src/sap/ui/debug/PropertyList.js +1 -1
  353. package/src/sap/ui/model/ClientListBinding.js +127 -21
  354. package/src/sap/ui/model/ClientModel.js +1 -1
  355. package/src/sap/ui/model/CompositeBinding.js +3 -0
  356. package/src/sap/ui/model/CompositeDataState.js +1 -1
  357. package/src/sap/ui/model/CompositeType.js +13 -1
  358. package/src/sap/ui/model/DataState.js +1 -1
  359. package/src/sap/ui/model/ListBinding.js +32 -13
  360. package/src/sap/ui/model/MetaModel.js +1 -1
  361. package/src/sap/ui/model/Model.js +10 -7
  362. package/src/sap/ui/model/SelectionModel.js +1 -1
  363. package/src/sap/ui/model/SimpleType.js +1 -1
  364. package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
  365. package/src/sap/ui/model/Type.js +1 -1
  366. package/src/sap/ui/model/_Helper.js +26 -0
  367. package/src/sap/ui/model/analytics/AnalyticalBinding.js +29 -13
  368. package/src/sap/ui/model/analytics/ODataModelAdapter.js +2 -1
  369. package/src/sap/ui/model/base/ManagedObjectModel.js +8 -6
  370. package/src/sap/ui/model/json/JSONListBinding.js +0 -58
  371. package/src/sap/ui/model/json/JSONModel.js +15 -8
  372. package/src/sap/ui/model/message/MessageListBinding.js +0 -42
  373. package/src/sap/ui/model/message/MessageModel.js +1 -1
  374. package/src/sap/ui/model/odata/ODataAnnotations.js +1 -1
  375. package/src/sap/ui/model/odata/ODataMessageParser.js +1 -1
  376. package/src/sap/ui/model/odata/ODataMetaModel.js +1 -1
  377. package/src/sap/ui/model/odata/ODataMetadata.js +1 -1
  378. package/src/sap/ui/model/odata/ODataModel.js +1 -1
  379. package/src/sap/ui/model/odata/ODataPropertyBinding.js +3 -1
  380. package/src/sap/ui/model/odata/ODataTreeBindingFlat.js +5 -4
  381. package/src/sap/ui/model/odata/ODataUtils.js +7 -9
  382. package/src/sap/ui/model/odata/OperationMode.js +6 -0
  383. package/src/sap/ui/model/odata/type/Boolean.js +1 -1
  384. package/src/sap/ui/model/odata/type/Byte.js +1 -1
  385. package/src/sap/ui/model/odata/type/Currency.js +1 -1
  386. package/src/sap/ui/model/odata/type/Date.js +1 -1
  387. package/src/sap/ui/model/odata/type/DateTime.js +1 -1
  388. package/src/sap/ui/model/odata/type/DateTimeBase.js +1 -1
  389. package/src/sap/ui/model/odata/type/DateTimeOffset.js +1 -1
  390. package/src/sap/ui/model/odata/type/DateTimeWithTimezone.js +78 -68
  391. package/src/sap/ui/model/odata/type/Decimal.js +1 -1
  392. package/src/sap/ui/model/odata/type/Double.js +1 -1
  393. package/src/sap/ui/model/odata/type/Guid.js +1 -1
  394. package/src/sap/ui/model/odata/type/Int.js +1 -1
  395. package/src/sap/ui/model/odata/type/Int16.js +1 -1
  396. package/src/sap/ui/model/odata/type/Int32.js +1 -1
  397. package/src/sap/ui/model/odata/type/Int64.js +1 -1
  398. package/src/sap/ui/model/odata/type/ODataType.js +1 -1
  399. package/src/sap/ui/model/odata/type/Raw.js +1 -1
  400. package/src/sap/ui/model/odata/type/SByte.js +1 -1
  401. package/src/sap/ui/model/odata/type/Single.js +1 -1
  402. package/src/sap/ui/model/odata/type/Stream.js +1 -1
  403. package/src/sap/ui/model/odata/type/String.js +1 -1
  404. package/src/sap/ui/model/odata/type/Time.js +1 -1
  405. package/src/sap/ui/model/odata/type/TimeOfDay.js +1 -1
  406. package/src/sap/ui/model/odata/type/Unit.js +1 -1
  407. package/src/sap/ui/model/odata/type/UnitMixin.js +1 -1
  408. package/src/sap/ui/model/odata/v2/Context.js +78 -5
  409. package/src/sap/ui/model/odata/v2/ODataAnnotations.js +1 -1
  410. package/src/sap/ui/model/odata/v2/ODataListBinding.js +280 -76
  411. package/src/sap/ui/model/odata/v2/ODataModel.js +342 -96
  412. package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +8 -4
  413. package/src/sap/ui/model/odata/v4/Context.js +52 -25
  414. package/src/sap/ui/model/odata/v4/ODataBinding.js +50 -32
  415. package/src/sap/ui/model/odata/v4/ODataContextBinding.js +35 -6
  416. package/src/sap/ui/model/odata/v4/ODataListBinding.js +302 -110
  417. package/src/sap/ui/model/odata/v4/ODataMetaModel.js +13 -6
  418. package/src/sap/ui/model/odata/v4/ODataModel.js +297 -30
  419. package/src/sap/ui/model/odata/v4/ODataParentBinding.js +25 -57
  420. package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +3 -2
  421. package/src/sap/ui/model/odata/v4/_AnnotationHelperExpression.js +59 -5
  422. package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +15 -0
  423. package/src/sap/ui/model/odata/v4/lib/_Cache.js +309 -130
  424. package/src/sap/ui/model/odata/v4/lib/_ConcatHelper.js +5 -13
  425. package/src/sap/ui/model/odata/v4/lib/_GroupLock.js +16 -0
  426. package/src/sap/ui/model/odata/v4/lib/_Helper.js +114 -41
  427. package/src/sap/ui/model/odata/v4/lib/_Requestor.js +270 -36
  428. package/src/sap/ui/model/resource/ResourceModel.js +1 -1
  429. package/src/sap/ui/model/type/Boolean.js +1 -1
  430. package/src/sap/ui/model/type/Currency.js +1 -1
  431. package/src/sap/ui/model/type/Date.js +1 -1
  432. package/src/sap/ui/model/type/DateInterval.js +1 -1
  433. package/src/sap/ui/model/type/DateTime.js +1 -1
  434. package/src/sap/ui/model/type/DateTimeInterval.js +1 -1
  435. package/src/sap/ui/model/type/FileSize.js +1 -1
  436. package/src/sap/ui/model/type/Float.js +1 -1
  437. package/src/sap/ui/model/type/Integer.js +1 -1
  438. package/src/sap/ui/model/type/String.js +1 -1
  439. package/src/sap/ui/model/type/Time.js +1 -1
  440. package/src/sap/ui/model/type/TimeInterval.js +1 -1
  441. package/src/sap/ui/model/type/Unit.js +1 -1
  442. package/src/sap/ui/model/xml/XMLListBinding.js +0 -53
  443. package/src/sap/ui/model/xml/XMLModel.js +1 -1
  444. package/src/sap/ui/performance/trace/FESR.js +1 -1
  445. package/src/sap/ui/performance/trace/FESRHelper.js +72 -0
  446. package/src/sap/ui/performance/trace/Interaction.js +6 -2
  447. package/src/sap/ui/qunit/qunit-2-css.js +4 -4
  448. package/src/sap/ui/qunit/qunit-css.js +4 -4
  449. package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
  450. package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +1 -1
  451. package/src/sap/ui/test/BranchTracking.js +1 -0
  452. package/src/sap/ui/test/Opa5.js +9 -5
  453. package/src/sap/ui/test/OpaBuilder.js +7 -7
  454. package/src/sap/ui/test/TestUtils.js +11 -0
  455. package/src/sap/ui/test/_UsageReport.js +1 -1
  456. package/src/sap/ui/test/actions/Action.js +3 -3
  457. package/src/sap/ui/test/actions/Press.js +1 -1
  458. package/src/sap/ui/test/generic/GenericTestCollection.js +176 -0
  459. package/src/sap/ui/test/generic/TestBase.js +151 -0
  460. package/src/sap/ui/test/generic/Utils.js +284 -0
  461. package/src/sap/ui/test/gherkin/opa5TestHarness.js +14 -5
  462. package/src/sap/ui/test/opaQunit.js +11 -10
  463. package/src/sap/ui/test/selectors/_ControlSelectorGenerator.js +9 -8
  464. package/src/sap/ui/test/selectors/_ControlSelectorValidator.js +1 -1
  465. package/src/sap/ui/test/starter/_setupAndStart.js +4 -0
  466. package/src/sap/ui/thirdparty/jszip.js +0 -1
  467. package/src/sap/ui/util/Storage.js +1 -1
  468. package/src/ui5loader.js +8 -4
  469. package/ui5.yaml +1 -1
@@ -8,13 +8,16 @@
8
8
  sap.ui.define([
9
9
  'sap/ui/core/support/Plugin',
10
10
  "sap/base/security/encodeXML",
11
- "sap/ui/events/KeyCodes"
11
+ "sap/base/util/each",
12
+ "sap/ui/events/KeyCodes",
13
+ "sap/ui/thirdparty/jquery",
14
+ "sap/ui/dom/jquery/cursorPos", // provides jQuery.fn.cursorPos
15
+ "sap/ui/dom/jquery/selectText" // provides jQuery.fn.selectText
12
16
  ],
13
- function(Plugin, encodeXML, KeyCodes) {
17
+ function(Plugin, encodeXML, each, KeyCodes, jQuery) {
14
18
  "use strict";
15
19
 
16
20
 
17
- var $ = jQuery;
18
21
  var Debugging = Plugin.extend("sap.ui.core.support.plugins.Debugging", {
19
22
  constructor: function(oSupportStub) {
20
23
  Plugin.apply(this, ["sapUiSupportDebugging", "Debugging", oSupportStub]);
@@ -48,23 +51,8 @@ sap.ui.define([
48
51
 
49
52
  Debugging.prototype.init = function(oSupportStub) {
50
53
  Plugin.prototype.init.apply(this, arguments);
51
- var _$ = this.$();
52
- _$.on("click", '#sapUiSupportDebuggingReboot', $.proxy(this._onUseOtherUI5Version, this));
53
- _$.on("change", '#sapUiSupportDebuggingRebootSelect', this._onUI5VersionDropdownChanged);
54
- _$.on("keyup", '#sapUiSupportDebuggingClassInput', $.proxy(this._autoComplete, this));
55
- _$.on("blur", '#sapUiSupportDebuggingClassInput', $.proxy(this._updateSelectOptions, this));
56
- _$.on("change", '#sapUiSupportDebuggingClassSelect', $.proxy(this._selectOptionsChanged, this));
57
- _$.on("click", '#sapUiSupportDebuggingAddClass', $.proxy(this._onAddClassClicked, this));
58
- _$.on("click", '#sapUiSupportDebuggingClassList li div', $.proxy(this._onSelectClass, this));
59
- _$.on("click", '#sapUiSupportDebuggingClassList li img.remove-class', $.proxy(this._onRemoveClass, this));
60
- _$.on("keyup", '#sapUiSupportDebuggingMethodInput', $.proxy(this._autoComplete, this));
61
- _$.on("blur", '#sapUiSupportDebuggingMethodInput', $.proxy(this._updateSelectOptions, this));
62
- _$.on("change", '#sapUiSupportDebuggingMethodSelect', $.proxy(this._selectOptionsChanged, this));
63
- _$.on("click", '#sapUiSupportDebuggingAddBreakpoint', $.proxy(this._onAddBreakpointClicked, this));
64
- _$.on("click", '#sapUiSupportDebuggingBreakpointList li img.remove-breakpoint', $.proxy(this._onRemoveBreakpoint, this));
65
54
 
66
55
  this.renderContainer();
67
-
68
56
  this._populateRebootUrls();
69
57
 
70
58
  this._oStub.sendEvent(this._breakpointId + "RequestClasses", {
@@ -74,43 +62,37 @@ sap.ui.define([
74
62
 
75
63
  Debugging.prototype.exit = function(oSupportStub) {
76
64
  Plugin.prototype.exit.apply(this, arguments);
77
- var _$ = this.$();
78
- _$.off("keyup", '#sapUiSupportDebuggingClassInput');
79
- _$.off("blur", '#sapUiSupportDebuggingClassInput');
80
- _$.off("change", '#sapUiSupportDebuggingClassSelect');
81
- _$.off("click", '#sapUiSupportDebuggingAddClass');
82
- _$.off("click", '#sapUiSupportDebuggingClassList li div');
83
- _$.off("click", '#sapUiSupportDebuggingClassList li img.remove-class');
84
- _$.off("keyup", '#sapUiSupportDebuggingMethodInput');
85
- _$.off("blur", '#sapUiSupportDebuggingMethodInput');
86
- _$.off("change", '#sapUiSupportDebuggingMethodSelect');
87
- _$.off("click", '#sapUiSupportDebuggingAddBreakpoint');
88
- _$.off("click", '#sapUiSupportDebuggingBreakpointList li img.remove-breakpoint');
89
65
  };
90
66
 
91
67
  Debugging.prototype.renderContainer = function() {
92
68
 
93
69
  var rm = sap.ui.getCore().createRenderManager();
94
70
 
95
- rm.write('<div id="sapUiSupportDebuggingRebootContainer" class="sapUiSupportContainer">');
96
-
97
- rm.write('<div class="sapUISupportLabel sapUISupportLabelBold">Note: Designed to work with apps loaded with the standard UI5 loading bootstrap script tag:</div>');
98
- rm.write('<div class="sapUISupportLabel sapUISupportLabelBold">&lt;script id="sap-ui-bootstrap" src="somepath/resources/sap-ui-core.js" ...<br/><br/></div>');
99
-
100
- rm.write('<div class="sapUISupportLabel">Boot application with different UI5 version on next reload:</div>');
101
- rm.write('<select id="sapUiSupportDebuggingRebootSelect" class="sapUiSupportSelect">');
102
- rm.write('<option value="none">Disabled (no custom reboot URL)</option>');
103
- rm.write('<option value="other" id="sapUiSupportDebuggingRebootOther">Other (enter URL to sap-ui-core.js below)...:</option>');
104
- rm.write('</select>');
105
- rm.write('<input type="text" id="sapUiSupportDebuggingRebootInput" disabled="disabled">');
106
- rm.write('<button id="sapUiSupportDebuggingReboot" class="sapUiSupportRoundedButton">Activate Reboot URL</button>');
107
- rm.write('</div>');
108
-
109
- rm.write('<div id="sapUiSupportDebuggingClassContainer" class="sapUiSupportContainer"></div>');
110
- rm.write('<div id="sapUiSupportDebuggingMethodContainer" class="sapUiSupportContainer"></div>');
111
-
112
- rm.flush(this.$().get(0));
71
+ rm.openStart("div", this.getId() + "-RebootContainer").class("sapUiSupportContainer").openEnd();
72
+ rm.openStart("div").class("sapUISupportLabel").class("sapUISupportLabelBold").openEnd().text("Note: Designed to work with apps loaded with the standard UI5 loading bootstrap script tag:").close("div");
73
+ rm.openStart("div").class("sapUISupportLabel").class("sapUISupportLabelBold").openEnd().text("<" + "script id=\"sap-ui-bootstrap\" src=\"somepath/resources/sap-ui-core.js\" ...");
74
+ rm.voidStart("br").voidEnd();
75
+ rm.voidStart("br").voidEnd();
76
+ rm.close("div");
77
+
78
+ rm.openStart("div").class("sapUISupportLabel").openEnd().text("Boot application with different UI5 version on next reload:").close("div");
79
+ rm.openStart("select", this.getId() + "-RebootSelect").class("sapUiSupportSelect").openEnd();
80
+ rm.openStart("option").attr("value", "none").openEnd().text("Disabled (no custom reboot URL").close("option");
81
+ rm.openStart("option", this.getId() + "-RebootOther").attr("value", "other").openEnd().text("Other (enter URL to sap-ui-core.js below)...:").close("option");
82
+ rm.close("select");
83
+ rm.voidStart("input", this.getId() + "-RebootInput").attr("type", "text").attr("disabled", "disabled").voidEnd();
84
+ rm.openStart("button", this.getId() + "-Reboot").class("sapUiSupportRoundedButton").openEnd().text("Activate Reboot URL").close("button");
85
+ rm.close("div");
86
+
87
+ rm.openStart("div", this.getId() + "-ClassContainer").class("sapUiSupportContainer").openEnd().close("div");
88
+ rm.openStart("div", this.getId() + "-MethodContainer").class("sapUiSupportContainer").openEnd().close("div");
89
+
90
+ rm.flush(this.dom());
113
91
  rm.destroy();
92
+
93
+ // register listeners
94
+ this.dom("Reboot").addEventListener("click", this._onUseOtherUI5Version.bind(this));
95
+ this.dom("RebootSelect").addEventListener("change", this._onUI5VersionDropdownChanged.bind(this));
114
96
  };
115
97
 
116
98
  Debugging.prototype.renderClasses = function() {
@@ -120,26 +102,28 @@ sap.ui.define([
120
102
  var aClasses = this._aClasses;
121
103
  var rm = sap.ui.getCore().createRenderManager();
122
104
 
123
- rm.write('<div class="sapUISupportLabel">Select Class:</div>');
105
+ rm.openStart("div").class("sapUISupportLabel").openEnd().text("Select Class:").close("div");
124
106
 
125
- rm.write('<select id="sapUiSupportDebuggingClassSelect" class="sapUiSupportAutocomplete sapUiSupportSelect"><option></option>');
107
+ rm.openStart("select", this.getId() + "-ClassSelect").class("sapUiSupportAutocomplete").class("sapUiSupportSelect").openEnd();
108
+ rm.openStart("option").openEnd().close("option");
126
109
 
127
- $.each(aClasses, function(iIndex, oValue) {
110
+ each(aClasses, function(iIndex, oValue) {
128
111
  if (typeof (that._mAddedClasses[oValue]) === 'undefined') {
129
- rm.write('<option>');
130
- rm.writeEscaped("" + oValue);
131
- rm.write('</option>');
112
+ rm.openStart("option").openEnd();
113
+ rm.text(oValue);
114
+ rm.close("option");
132
115
  }
133
116
  });
134
117
 
135
- rm.write('</select>');
118
+ rm.close("select");
136
119
 
137
- rm.write('<input id="sapUiSupportDebuggingClassInput" class="sapUiSupportAutocomplete" type="text">');
138
- rm.write('<button id="sapUiSupportDebuggingAddClass" class="sapUiSupportRoundedButton">Add class</button>');
120
+ rm.voidStart("input", this.getId() + "-ClassInput").class("sapUiSupportAutocomplete").attr("type", "text").voidEnd();
121
+ rm.openStart("button", this.getId() + "-AddClass").class("sapUiSupportRoundedButton").openEnd().text("Add class").close("button");
139
122
 
140
- rm.write('<hr class="no-border"><ul id="sapUiSupportDebuggingClassList" class="sapUiSupportList">');
123
+ rm.voidStart("hr").class("no-border").voidEnd();
124
+ rm.openStart("ul", this.getId() + "-ClassList").class("sapUiSupportList").openEnd();
141
125
 
142
- $.each(aClasses, function(iIndex, oValue) {
126
+ each(aClasses, function(iIndex, oValue) {
143
127
  if (typeof (that._mAddedClasses[oValue]) === 'undefined') {
144
128
  return;
145
129
  }
@@ -151,23 +135,36 @@ sap.ui.define([
151
135
  bpCountText = bpCount.active + " / " + bpCount.all;
152
136
  }
153
137
 
154
- rm.write('<li data-class-name="');
155
- rm.writeEscaped("" + oValue);
156
- rm.write('"');
157
-
138
+ rm.openStart("li").attr("data-class-name", oValue);
158
139
  if (that._sSelectedClass === oValue) {
159
- rm.write(' class="selected"');
140
+ rm.class("selected");
160
141
  }
161
-
162
- rm.write('><div><span class="className">' + encodeXML(oValue + "") + '</span>' +
163
- '<span class="breakpoints">' + encodeXML(bpCountText + "") + '</span></div>' +
164
- '<img class="remove-class" src="../../debug/images/delete.gif" alt="X"></li>');
142
+ rm.openEnd();
143
+
144
+ rm.openStart("div").openEnd()
145
+ .openStart("span").class("className").openEnd()
146
+ .text(oValue)
147
+ .close("span")
148
+ .openStart("span").class("breakpoints").openEnd()
149
+ .text(bpCountText)
150
+ .close("span")
151
+ .close("div")
152
+ .voidStart("img").class("remove-class").attr("src", "../../debug/images/delete.gif").attr("alt", "X").voidEnd();
153
+
154
+ rm.close("li");
165
155
  });
166
156
 
167
- rm.write('</ul>');
157
+ rm.close("ul");
168
158
 
169
- rm.flush($("#sapUiSupportDebuggingClassContainer").get(0));
159
+ rm.flush(this.dom("ClassContainer"));
170
160
  rm.destroy();
161
+
162
+ // register listeners
163
+ this.dom("ClassInput").addEventListener("keyup", this._autoComplete.bind(this));
164
+ this.dom("ClassInput").addEventListener("blur", this._updateSelectOptions.bind(this));
165
+ this.dom("ClassSelect").addEventListener("change", this._selectOptionsChanged.bind(this));
166
+ this.dom("AddClass").addEventListener("click", this._onAddClassClicked.bind(this));
167
+ this.dom("ClassList").addEventListener("click", this._onSelectOrRemoveClass.bind(this));
171
168
  };
172
169
 
173
170
  Debugging.prototype.renderMethods = function(mMethods) {
@@ -175,46 +172,55 @@ sap.ui.define([
175
172
  var rm = sap.ui.getCore().createRenderManager();
176
173
 
177
174
  if (typeof (mMethods) === 'undefined') {
178
- rm.write('<p>Select a class in the list on the left side to add breakpoint.</p>');
179
- rm.flush($("#sapUiSupportDebuggingMethodContainer").get(0));
175
+ rm.openStart("p").openEnd().text("Select a class in the list on the left side to add breakpoint.").close("p");
176
+ rm.flush(this.dom("MethodContainer"));
180
177
  rm.destroy();
181
178
  return;
182
179
  }
183
180
 
184
- rm.write('<div class="sapUISupportLabel">Select Method:</div>');
181
+ rm.openStart("div").class("sapUISupportLabel").openEnd().text("Select Method").close("div");
185
182
 
186
- rm.write('<select id="sapUiSupportDebuggingMethodSelect" class="sapUiSupportAutocomplete sapUiSupportSelect"><option></option>');
183
+ rm.openStart("select", this.getId() + "-MethodSelect").class("sapUiSupportAutocomplete").class("sapUiSupportSelect").openEnd()
184
+ .openStart("option").openEnd().close("option");
187
185
 
188
- $.each(mMethods, function(iIndex, oValue) {
186
+ each(mMethods, function(iIndex, oValue) {
189
187
  if (!oValue.active) {
190
- rm.write('<option data-method-type="');
191
- rm.writeEscaped("" + oValue.type);
192
- rm.write('">');
193
- rm.writeEscaped("" + oValue.name);
194
- rm.write('</option>');
188
+ rm.openStart("option").attr("data-method-type", oValue.type).openEnd();
189
+ rm.text(oValue.name);
190
+ rm.close("option");
195
191
  }
196
192
  });
197
193
 
198
- rm.write('</select>');
194
+ rm.close("select");
199
195
 
200
- rm.write('<input id="sapUiSupportDebuggingMethodInput" class="sapUiSupportAutocomplete" type="text">');
201
- rm.write('<button id="sapUiSupportDebuggingAddBreakpoint" class="sapUiSupportRoundedButton">Add breakpoint</button>');
196
+ rm.voidStart("input", this.getId() + "-MethodInput").class("sapUiSupportAutocomplete").attr("type", "text").voidEnd();
197
+ rm.openStart("button", this.getId() + "-AddBreakpoint").class("sapUiSupportRoundedButton").openEnd().text("Add breakpoint").close("button");
202
198
 
203
- rm.write('<hr class="no-border"><ul id="sapUiSupportDebuggingBreakpointList" class="sapUiSupportList sapUiSupportBreakpointList">');
199
+ rm.voidStart("hr").class("no-border").voidEnd();
200
+ rm.openStart("ul", this.getId() + "-BreakpointList").class("sapUiSupportList").class("sapUiSupportBreakpointList").openEnd();
204
201
 
205
- $.each(mMethods, function(iIndex, oValue) {
202
+ each(mMethods, function(iIndex, oValue) {
206
203
  if (!oValue.active) {
207
204
  return;
208
205
  }
209
206
 
210
- rm.write('<li data-method-type="' + encodeXML(oValue.type + "") + '"><span>' + encodeXML(oValue.name + "") + '</span>' +
211
- '<img class="remove-breakpoint" src="../../debug/images/delete.gif" alt="Remove"></li>');
207
+ rm.openStart("li").attr("data-method-name", oValue.name).attr("data-method-type", oValue.type).openEnd()
208
+ .openStart("span").openEnd().text(oValue.name).close("span")
209
+ .voidStart("img").class("remove-breakpoint").attr("src", "../../debug/images/delete.gif").attr("alt", "Remove").voidEnd()
210
+ .close("li");
212
211
  });
213
212
 
214
- rm.write('</ul>');
213
+ rm.close('ul');
215
214
 
216
- rm.flush($("#sapUiSupportDebuggingMethodContainer").get(0));
215
+ rm.flush(this.dom("MethodContainer"));
217
216
  rm.destroy();
217
+
218
+ this.dom("MethodInput").addEventListener("keyup", this._autoComplete.bind(this));
219
+ this.dom("MethodInput").addEventListener("blur", this._updateSelectOptions.bind(this));
220
+ this.dom("MethodSelect").addEventListener("change", this._selectOptionsChanged.bind(this));
221
+ this.dom("AddBreakpoint").addEventListener("click", this._onAddBreakpointClicked.bind(this));
222
+ this.dom("BreakpointList").addEventListener("click", this._onRemoveBreakpoint.bind(this));
223
+
218
224
  };
219
225
 
220
226
  Debugging.prototype.onsapUiSupportDebuggingReceiveClasses = function(oEvent) {
@@ -222,7 +228,7 @@ sap.ui.define([
222
228
  this.renderClasses();
223
229
  this.renderMethods();
224
230
 
225
- $('#sapUiSupportDebuggingClassInput').trigger("focus");
231
+ this.dom("ClassInput").focus();
226
232
  };
227
233
 
228
234
  Debugging.prototype.onsapUiSupportDebuggingReceiveClassMethods = function(oEvent) {
@@ -237,41 +243,41 @@ sap.ui.define([
237
243
  };
238
244
 
239
245
  // Update breakpoint-count
240
- var $breakpoints = $('li[data-class-name="' + sClassName + '"] span.breakpoints');
241
- $breakpoints.text(mBreakpointCount.active + " / " + mBreakpointCount.all);
246
+ var oBreakpoints = this.dom('li[data-class-name="' + sClassName + '"] span.breakpoints');
247
+ oBreakpoints.textContent = mBreakpointCount.active + " / " + mBreakpointCount.all;
242
248
 
243
- $('#sapUiSupportDebuggingMethodInput').trigger("focus");
249
+ this.dom("MethodInput").focus();
244
250
  };
245
251
 
246
252
  Debugging.prototype._autoComplete = function(oEvent) {
247
253
 
248
- var $input = $(oEvent.target);
254
+ var oInput = oEvent.target;
249
255
 
250
256
  if (oEvent.keyCode == KeyCodes.ENTER) {
251
257
  this._updateSelectOptions(oEvent);
252
258
 
253
- if ($input.attr('id') === "sapUiSupportDebuggingClassInput") {
259
+ if (oInput.id === this.getId() + "-ClassInput") {
254
260
  this._onAddClassClicked();
255
261
  } else {
256
262
  this._onAddBreakpointClicked();
257
263
  }
258
-
264
+ return;
259
265
  }
260
266
 
261
267
  if (oEvent.keyCode >= KeyCodes.ARROW_LEFT && oEvent.keyCode <= KeyCodes.ARROW_DOWN) {
262
268
  return;
263
269
  }
264
270
 
265
- var $select = $input.prev("select"),
266
- sInputVal = $input.val();
271
+ var sInputVal = oInput.value,
272
+ oSelect = oInput.previousElementSibling;
267
273
 
268
274
  if (sInputVal == "") {
269
275
  return;
270
276
  }
271
277
 
272
- var aOptions = $select.find("option").map(function() {
273
- return $(this).val();
274
- }).get();
278
+ var aOptions = Array.from(oSelect.querySelectorAll("option")).map(function(oOption) {
279
+ return oOption.value;
280
+ });
275
281
 
276
282
  var sOption;
277
283
 
@@ -280,13 +286,14 @@ sap.ui.define([
280
286
 
281
287
  if (sOption.toUpperCase().indexOf(sInputVal.toUpperCase()) == 0) {
282
288
 
283
- var iCurrentStart = $input.cursorPos();
289
+ var $input = jQuery(oInput),
290
+ iCurrentStart = $input.cursorPos();
284
291
 
285
292
  if (oEvent.keyCode == KeyCodes.BACKSPACE) {
286
293
  iCurrentStart--;
287
294
  }
288
295
 
289
- $input.val(sOption);
296
+ oInput.value = sOption;
290
297
  $input.selectText(iCurrentStart, sOption.length);
291
298
 
292
299
  break;
@@ -298,17 +305,18 @@ sap.ui.define([
298
305
 
299
306
  Debugging.prototype._onAddClassClicked = function() {
300
307
 
301
- var sClassName = $("#sapUiSupportDebuggingClassInput").val();
308
+ var sClassName = this.dom("ClassInput").value;
302
309
 
303
310
  this._mAddedClasses[sClassName] = {};
304
311
 
305
312
  this.renderClasses();
306
- $('#sapUiSupportDebuggingClassInput').trigger("focus");
313
+ this.dom("ClassInput").focus();
307
314
  };
308
315
 
309
316
  Debugging.prototype._onRemoveClass = function(oEvent) {
310
317
 
311
- var sClassName = $(oEvent.target).prev().find('span.className').text();
318
+ var oLi = oEvent.target.closest("li[data-class-name]");
319
+ var sClassName = oLi.dataset.className;
312
320
 
313
321
  delete this._mAddedClasses[sClassName];
314
322
 
@@ -330,19 +338,24 @@ sap.ui.define([
330
338
  this.renderMethods();
331
339
  }
332
340
 
333
- $('#sapUiSupportDebuggingClassInput').trigger("focus");
341
+ this.dom("ClassInput").focus();
334
342
  };
335
343
 
336
344
  Debugging.prototype._onAddBreakpointClicked = function() {
337
- this.changeBreakpoint($("#sapUiSupportDebuggingClassList li.selected span.className").text(),
338
- $("#sapUiSupportDebuggingMethodInput").val(),
339
- $("#sapUiSupportDebuggingMethodSelect option:selected").attr("data-method-type"), true);
345
+ this.changeBreakpoint(
346
+ this.dom("ClassList").querySelector("li.selected").dataset.className,
347
+ this.dom("MethodInput").value,
348
+ this.dom("MethodSelect").querySelector("option:checked").dataset.methodType, true);
340
349
  };
341
350
 
342
351
  Debugging.prototype._onRemoveBreakpoint = function(oEvent) {
343
- this.changeBreakpoint($("#sapUiSupportDebuggingClassList li.selected span.className").text(),
344
- $(oEvent.target).prev().text(),
345
- $(oEvent.target).parent("li").attr("data-method-type"), false);
352
+ if (oEvent.target.nodeName === "IMG" && oEvent.target.classList.contains("remove-breakpoint")) {
353
+ var oLi = oEvent.target.closest("li");
354
+ this.changeBreakpoint(
355
+ this.dom("ClassList").querySelector("li.selected").dataset.className,
356
+ oLi.dataset.methodName,
357
+ oLi.dataset.methodType, false);
358
+ }
346
359
  };
347
360
 
348
361
  Debugging.prototype._updateSelectOptions = function(oEvent) {
@@ -380,18 +393,29 @@ sap.ui.define([
380
393
  oInput.value = oSelect.options[oSelect.selectedIndex].value;
381
394
  };
382
395
 
396
+ Debugging.prototype._onSelectOrRemoveClass = function(oEvent) {
397
+ if (oEvent.target.nodeName === "IMG" && oEvent.target.classList.contains("remove-class")) {
398
+ this._onRemoveClass(oEvent);
399
+ } else {
400
+ this._onSelectClass(oEvent);
401
+ }
402
+ };
403
+
383
404
  Debugging.prototype._onSelectClass = function(oEvent) {
384
405
 
385
- var $li = $(oEvent.target).parents("li");
406
+ var oLi = oEvent.target.closest("li[data-class-name]");
386
407
 
387
- if ($li.hasClass("selected")) {
408
+ if (oLi == null || oLi.classList.contains("selected")) {
388
409
  return;
389
410
  }
390
411
 
391
- var className = $li.find('span.className').text();
412
+ // single selecT: deselect all others, select the current one
413
+ oLi.parentElement.querySelectorAll("li.selected").forEach(function(node) {
414
+ node.classList.remove("selected");
415
+ });
416
+ oLi.classList.add("selected");
392
417
 
393
- $li.addClass("selected").siblings("li").removeClass("selected");
394
- this._sSelectedClass = className;
418
+ var className = this._sSelectedClass = oLi.dataset.className;
395
419
 
396
420
  this._oStub.sendEvent(this._breakpointId + "RequestClassMethods", {
397
421
  className: className,
@@ -401,7 +425,7 @@ sap.ui.define([
401
425
 
402
426
  Debugging.prototype._isClassSelected = function() {
403
427
  var selected = false;
404
- $.each(this._mClasses, function(iIndex, oValue) {
428
+ each(this._mClasses, function(iIndex, oValue) {
405
429
  if (oValue.selected === true) {
406
430
  selected = true;
407
431
  }
@@ -448,12 +472,12 @@ sap.ui.define([
448
472
  };
449
473
 
450
474
  Debugging.prototype._testAndAddUrls = function(mUrls) {
451
- var $Other = jQuery("#sapUiSupportDebuggingRebootOther");
475
+ var oOther = this.dom("RebootOther");
452
476
  function createAppendFunction(sUrl) {
453
477
  return function() {
454
478
  // append URL and description to select box
455
479
  var sHtml = "<option value='" + encodeXML(sUrl) + "'>" + mUrls[sUrl] + "</option>";
456
- $Other.before(sHtml);
480
+ oOther.insertAdjacentHTML("beforebegin", sHtml);
457
481
  };
458
482
  }
459
483
 
@@ -483,29 +507,29 @@ sap.ui.define([
483
507
  };
484
508
 
485
509
  Debugging.prototype._onUI5VersionDropdownChanged = function() {
486
- var sRebootUrl = jQuery("#sapUiSupportDebuggingRebootSelect").val(),
487
- $Input = jQuery("#sapUiSupportDebuggingRebootInput");
510
+ var sRebootUrl = this.dom("RebootSelect").value,
511
+ oInput = this.dom("RebootInput");
488
512
 
489
513
  if (sRebootUrl === "other") {
490
514
  // enable input field for custom URL
491
- $Input.removeAttr("disabled");
515
+ oInput.disabled = false;
492
516
 
493
517
  } else {
494
518
  // disable input field and fill the selected URL (if any)
495
- $Input.attr("disabled", "disabled");
519
+ oInput.disabled = true;
496
520
  if (sRebootUrl === "none") {
497
- $Input.val("");
521
+ oInput.value = "";
498
522
  } else {
499
- $Input.val(sRebootUrl);
523
+ oInput.value = sRebootUrl;
500
524
  }
501
525
  }
502
526
  };
503
527
 
504
528
  Debugging.prototype._onUseOtherUI5Version = function() {
505
- var sRebootUrl = jQuery("#sapUiSupportDebuggingRebootSelect").val();
529
+ var sRebootUrl = this.dom("RebootSelect").value;
506
530
  if (sRebootUrl === "other") {
507
531
  // use content of input field
508
- sRebootUrl = jQuery("#sapUiSupportDebuggingRebootInput").val();
532
+ sRebootUrl = this.dom("RebootInput").value;
509
533
  }
510
534
 
511
535
  if (!sRebootUrl || sRebootUrl === "none") {