@openui5/sap.ui.core 1.96.5 → 1.99.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 (426) hide show
  1. package/.eslintrc.json +93 -3
  2. package/.reuse/dep5 +26 -31
  3. package/THIRDPARTY.txt +15 -21
  4. package/package.json +1 -1
  5. package/src/jquery.sap.global.js +1 -1
  6. package/src/jquery.sap.mobile.js +29 -19
  7. package/src/jquery.sap.properties.js +1 -1
  8. package/src/jquery.sap.resources.js +2 -2
  9. package/src/jquery.sap.script.js +1 -1
  10. package/src/jquery.sap.storage.js +3 -3
  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/ui/Device.js +81 -169
  53. package/src/sap/ui/Global.js +11 -16
  54. package/src/sap/ui/VersionInfo.js +13 -10
  55. package/src/sap/ui/base/BindingParser.js +34 -7
  56. package/src/sap/ui/base/Event.js +1 -1
  57. package/src/sap/ui/base/EventProvider.js +1 -1
  58. package/src/sap/ui/base/Interface.js +1 -1
  59. package/src/sap/ui/base/ManagedObject.js +50 -29
  60. package/src/sap/ui/base/ManagedObjectMetadata.js +1 -1
  61. package/src/sap/ui/base/Metadata.js +1 -3
  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 +1 -27
  65. package/src/sap/ui/core/AppCacheBuster.js +4 -4
  66. package/src/sap/ui/core/BusyIndicator.js +1 -1
  67. package/src/sap/ui/core/BusyIndicatorUtils.js +1 -1
  68. package/src/sap/ui/core/Component.js +33 -11
  69. package/src/sap/ui/core/ComponentContainer.js +1 -1
  70. package/src/sap/ui/core/ComponentMetadata.js +1 -1
  71. package/src/sap/ui/core/ComponentSupport.js +1 -1
  72. package/src/sap/ui/core/Configuration.js +79 -13
  73. package/src/sap/ui/core/Control.js +4 -3
  74. package/src/sap/ui/core/Core.js +4 -7
  75. package/src/sap/ui/core/CustomData.js +1 -1
  76. package/src/sap/ui/core/DeclarativeSupport.js +1 -1
  77. package/src/sap/ui/core/Element.js +6 -12
  78. package/src/sap/ui/core/ElementMetadata.js +1 -1
  79. package/src/sap/ui/core/EnabledPropagator.js +1 -1
  80. package/src/sap/ui/core/EventBus.js +1 -1
  81. package/src/sap/ui/core/ExtensionPoint.js +1 -1
  82. package/src/sap/ui/core/FocusHandler.js +1 -1
  83. package/src/sap/ui/core/Fragment.js +1 -1
  84. package/src/sap/ui/core/HTML.js +3 -3
  85. package/src/sap/ui/core/HTMLRenderer.js +1 -1
  86. package/src/sap/ui/core/History.js +1 -1
  87. package/src/sap/ui/core/Icon.js +2 -3
  88. package/src/sap/ui/core/IconRenderer.js +1 -1
  89. package/src/sap/ui/core/IndicationColorSupport.js +1 -1
  90. package/src/sap/ui/core/IntervalTrigger.js +1 -1
  91. package/src/sap/ui/core/InvisibleMessage.js +1 -1
  92. package/src/sap/ui/core/InvisibleRenderer.js +1 -1
  93. package/src/sap/ui/core/InvisibleText.js +1 -1
  94. package/src/sap/ui/core/Item.js +1 -1
  95. package/src/sap/ui/core/LabelEnablement.js +9 -2
  96. package/src/sap/ui/core/LayoutData.js +1 -1
  97. package/src/sap/ui/core/ListItem.js +1 -1
  98. package/src/sap/ui/core/LocalBusyIndicator.js +1 -1
  99. package/src/sap/ui/core/LocalBusyIndicatorRenderer.js +2 -2
  100. package/src/sap/ui/core/LocalBusyIndicatorSupport.js +1 -1
  101. package/src/sap/ui/core/Locale.js +1 -1
  102. package/src/sap/ui/core/LocaleData.js +39 -4
  103. package/src/sap/ui/core/Manifest.js +1 -1
  104. package/src/sap/ui/core/Message.js +1 -1
  105. package/src/sap/ui/core/Placeholder.js +28 -28
  106. package/src/sap/ui/core/Popup.js +3 -3
  107. package/src/sap/ui/core/RenderManager.js +3 -3
  108. package/src/sap/ui/core/Renderer.js +1 -1
  109. package/src/sap/ui/core/ResizeHandler.js +1 -1
  110. package/src/sap/ui/core/ScrollBar.js +4 -3
  111. package/src/sap/ui/core/ScrollBarRenderer.js +1 -1
  112. package/src/sap/ui/core/SeparatorItem.js +1 -1
  113. package/src/sap/ui/core/ThemeCheck.js +2 -2
  114. package/src/sap/ui/core/Title.js +1 -1
  115. package/src/sap/ui/core/TooltipBase.js +2 -2
  116. package/src/sap/ui/core/UIArea.js +3 -3
  117. package/src/sap/ui/core/UIComponent.js +1 -1
  118. package/src/sap/ui/core/UIComponentMetadata.js +1 -1
  119. package/src/sap/ui/core/ValueStateSupport.js +1 -1
  120. package/src/sap/ui/core/VariantLayoutData.js +1 -1
  121. package/src/sap/ui/core/XMLComposite.js +1 -1
  122. package/src/sap/ui/core/XMLCompositeMetadata.js +1 -1
  123. package/src/sap/ui/core/XMLTemplateProcessor.js +26 -5
  124. package/src/sap/ui/core/_IconRegistry.js +10 -1
  125. package/src/sap/ui/core/cache/LRUPersistentCache.js +4 -2
  126. package/src/sap/ui/core/date/Japanese.js +1 -1
  127. package/src/sap/ui/core/date/UniversalDateUtils.js +205 -2
  128. package/src/sap/ui/core/delegate/ItemNavigation.js +1 -1
  129. package/src/sap/ui/core/delegate/ScrollEnablement.js +9 -6
  130. package/src/sap/ui/core/dnd/DragAndDrop.js +2 -2
  131. package/src/sap/ui/core/dnd/DragDropBase.js +1 -1
  132. package/src/sap/ui/core/dnd/DragDropInfo.js +1 -1
  133. package/src/sap/ui/core/dnd/DragInfo.js +1 -1
  134. package/src/sap/ui/core/dnd/DropInfo.js +1 -1
  135. package/src/sap/ui/core/format/DateFormat.js +562 -174
  136. package/src/sap/ui/core/format/DateFormatTimezoneDisplay.js +43 -0
  137. package/src/sap/ui/core/format/ListFormat.js +2 -2
  138. package/src/sap/ui/core/format/NumberFormat.js +1 -1
  139. package/src/sap/ui/core/format/TimezoneUtil.js +248 -0
  140. package/src/sap/ui/core/hyphenation/Hyphenation.js +1 -1
  141. package/src/sap/ui/core/library.js +47 -10
  142. package/src/sap/ui/core/message/ControlMessageProcessor.js +5 -5
  143. package/src/sap/ui/core/message/Message.js +1 -1
  144. package/src/sap/ui/core/message/MessageManager.js +1 -1
  145. package/src/sap/ui/core/message/MessageMixin.js +2 -1
  146. package/src/sap/ui/core/message/MessageParser.js +1 -1
  147. package/src/sap/ui/core/message/MessageProcessor.js +22 -12
  148. package/src/sap/ui/core/messagebundle.properties +4 -0
  149. package/src/sap/ui/core/messagebundle_ar.properties +2 -0
  150. package/src/sap/ui/core/messagebundle_bg.properties +7 -5
  151. package/src/sap/ui/core/messagebundle_ca.properties +2 -0
  152. package/src/sap/ui/core/messagebundle_cs.properties +2 -0
  153. package/src/sap/ui/core/messagebundle_cy.properties +2 -0
  154. package/src/sap/ui/core/messagebundle_da.properties +2 -0
  155. package/src/sap/ui/core/messagebundle_de.properties +3 -1
  156. package/src/sap/ui/core/messagebundle_el.properties +2 -0
  157. package/src/sap/ui/core/messagebundle_en.properties +2 -0
  158. package/src/sap/ui/core/messagebundle_en_GB.properties +2 -0
  159. package/src/sap/ui/core/messagebundle_en_US_sappsd.properties +2 -0
  160. package/src/sap/ui/core/messagebundle_en_US_saprigi.properties +1 -0
  161. package/src/sap/ui/core/messagebundle_en_US_saptrc.properties +2 -0
  162. package/src/sap/ui/core/messagebundle_es.properties +2 -0
  163. package/src/sap/ui/core/messagebundle_es_MX.properties +2 -0
  164. package/src/sap/ui/core/messagebundle_et.properties +2 -0
  165. package/src/sap/ui/core/messagebundle_fi.properties +2 -0
  166. package/src/sap/ui/core/messagebundle_fr.properties +9 -7
  167. package/src/sap/ui/core/messagebundle_fr_CA.properties +2 -0
  168. package/src/sap/ui/core/messagebundle_hi.properties +2 -0
  169. package/src/sap/ui/core/messagebundle_hr.properties +2 -0
  170. package/src/sap/ui/core/messagebundle_hu.properties +2 -0
  171. package/src/sap/ui/core/messagebundle_id.properties +4 -2
  172. package/src/sap/ui/core/messagebundle_it.properties +3 -1
  173. package/src/sap/ui/core/messagebundle_iw.properties +2 -0
  174. package/src/sap/ui/core/messagebundle_ja.properties +2 -0
  175. package/src/sap/ui/core/messagebundle_kk.properties +2 -0
  176. package/src/sap/ui/core/messagebundle_ko.properties +2 -0
  177. package/src/sap/ui/core/messagebundle_lt.properties +2 -0
  178. package/src/sap/ui/core/messagebundle_lv.properties +3 -1
  179. package/src/sap/ui/core/messagebundle_ms.properties +2 -0
  180. package/src/sap/ui/core/messagebundle_nl.properties +2 -0
  181. package/src/sap/ui/core/messagebundle_no.properties +6 -4
  182. package/src/sap/ui/core/messagebundle_pl.properties +2 -0
  183. package/src/sap/ui/core/messagebundle_pt.properties +2 -0
  184. package/src/sap/ui/core/messagebundle_pt_PT.properties +2 -0
  185. package/src/sap/ui/core/messagebundle_ro.properties +2 -0
  186. package/src/sap/ui/core/messagebundle_ru.properties +23 -21
  187. package/src/sap/ui/core/messagebundle_sh.properties +2 -0
  188. package/src/sap/ui/core/messagebundle_sk.properties +2 -0
  189. package/src/sap/ui/core/messagebundle_sl.properties +2 -0
  190. package/src/sap/ui/core/messagebundle_sv.properties +2 -0
  191. package/src/sap/ui/core/messagebundle_th.properties +2 -0
  192. package/src/sap/ui/core/messagebundle_tr.properties +2 -0
  193. package/src/sap/ui/core/messagebundle_uk.properties +2 -0
  194. package/src/sap/ui/core/messagebundle_vi.properties +2 -0
  195. package/src/sap/ui/core/messagebundle_zh_CN.properties +2 -0
  196. package/src/sap/ui/core/messagebundle_zh_TW.properties +2 -0
  197. package/src/sap/ui/core/mvc/Controller.js +4 -4
  198. package/src/sap/ui/core/mvc/HTMLView.js +1 -1
  199. package/src/sap/ui/core/mvc/HTMLViewRenderer.js +1 -1
  200. package/src/sap/ui/core/mvc/JSONView.js +2 -1
  201. package/src/sap/ui/core/mvc/JSONViewRenderer.js +1 -1
  202. package/src/sap/ui/core/mvc/JSView.js +1 -1
  203. package/src/sap/ui/core/mvc/JSViewRenderer.js +1 -1
  204. package/src/sap/ui/core/mvc/TemplateView.js +1 -1
  205. package/src/sap/ui/core/mvc/TemplateViewRenderer.js +1 -1
  206. package/src/sap/ui/core/mvc/View.js +2 -1
  207. package/src/sap/ui/core/mvc/ViewRenderer.js +1 -1
  208. package/src/sap/ui/core/mvc/XMLView.js +16 -3
  209. package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
  210. package/src/sap/ui/core/plugin/LessSupport.js +1 -1
  211. package/src/sap/ui/core/plugin/TemplatingSupport.js +1 -1
  212. package/src/sap/ui/core/postmessage/Bus.js +1 -1
  213. package/src/sap/ui/core/postmessage/confirmationDialog.js +1 -1
  214. package/src/sap/ui/core/routing/Route.js +6 -6
  215. package/src/sap/ui/core/routing/Router.js +4 -3
  216. package/src/sap/ui/core/routing/Targets.js +17 -13
  217. package/src/sap/ui/core/rules/Misc.support.js +51 -1
  218. package/src/sap/ui/core/rules/Model.support.js +95 -8
  219. package/src/sap/ui/core/rules/Rendering.support.js +1 -4
  220. package/src/sap/ui/core/rules/View.support.js +14 -46
  221. package/src/sap/ui/core/search/OpenSearchProvider.js +1 -1
  222. package/src/sap/ui/core/search/SearchProvider.js +1 -1
  223. package/src/sap/ui/core/service/Service.js +1 -1
  224. package/src/sap/ui/core/service/ServiceFactory.js +1 -1
  225. package/src/sap/ui/core/service/ServiceFactoryRegistry.js +1 -1
  226. package/src/sap/ui/core/support/Plugin.js +2 -2
  227. package/src/sap/ui/core/support/RuleEngineOpaExtension.js +0 -1
  228. package/src/sap/ui/core/support/Support.js +1 -1
  229. package/src/sap/ui/core/support/controls/TreeViewer.js +1 -1
  230. package/src/sap/ui/core/support/plugins/ControlTree.js +1 -1
  231. package/src/sap/ui/core/support/plugins/Interaction.js +1 -1
  232. package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -1
  233. package/src/sap/ui/core/support/plugins/Performance.js +1 -2
  234. package/src/sap/ui/core/support/plugins/Selector.js +1 -1
  235. package/src/sap/ui/core/support/plugins/TechInfo.js +1 -1
  236. package/src/sap/ui/core/support/plugins/Trace.js +1 -1
  237. package/src/sap/ui/core/support/plugins/ViewInfo.js +1 -1
  238. package/src/sap/ui/core/support/techinfo/TechnicalInfo.js +2 -6
  239. package/src/sap/ui/core/support/trace/E2eTraceLib.js +3 -3
  240. package/src/sap/ui/core/themes/base/fonts/SAP-icons.woff2 +0 -0
  241. package/src/sap/ui/core/tmpl/DOMAttribute.js +1 -1
  242. package/src/sap/ui/core/tmpl/DOMElement.js +1 -1
  243. package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +1 -1
  244. package/src/sap/ui/core/tmpl/Template.js +1 -1
  245. package/src/sap/ui/core/tmpl/TemplateControl.js +1 -1
  246. package/src/sap/ui/core/util/AsyncHintsHelper.js +1 -1
  247. package/src/sap/ui/core/util/DraftEnabledMockServer.js +21 -16
  248. package/src/sap/ui/core/util/Export.js +1 -1
  249. package/src/sap/ui/core/util/ExportCell.js +1 -1
  250. package/src/sap/ui/core/util/ExportColumn.js +1 -1
  251. package/src/sap/ui/core/util/ExportRow.js +1 -1
  252. package/src/sap/ui/core/util/ExportType.js +1 -1
  253. package/src/sap/ui/core/util/ExportTypeCSV.js +1 -1
  254. package/src/sap/ui/core/util/File.js +1 -1
  255. package/src/sap/ui/core/util/LibraryInfo.js +1 -1
  256. package/src/sap/ui/core/util/MockServer.js +157 -58
  257. package/src/sap/ui/core/util/PasteHelper.js +4 -4
  258. package/src/sap/ui/core/util/XMLPreprocessor.js +16 -4
  259. package/src/sap/ui/core/util/reflection/XmlTreeModifier.js +1 -1
  260. package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +1 -1
  261. package/src/sap/ui/core/util/serializer/Serializer.js +1 -1
  262. package/src/sap/ui/core/util/serializer/ViewSerializer.js +1 -1
  263. package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +1 -1
  264. package/src/sap/ui/core/util/serializer/delegate/Delegate.js +1 -1
  265. package/src/sap/ui/core/util/serializer/delegate/HTML.js +1 -1
  266. package/src/sap/ui/core/util/serializer/delegate/XML.js +1 -1
  267. package/src/sap/ui/core/ws/ReadyState.js +1 -1
  268. package/src/sap/ui/core/ws/SapPcpWebSocket.js +1 -1
  269. package/src/sap/ui/core/ws/WebSocket.js +1 -1
  270. package/src/sap/ui/debug/ControlTree.js +1 -1
  271. package/src/sap/ui/debug/DebugEnv.js +1 -1
  272. package/src/sap/ui/debug/PropertyList.js +1 -1
  273. package/src/sap/ui/dom/includeStylesheet.js +8 -3
  274. package/src/sap/ui/events/jquery/EventExtension.js +1 -1
  275. package/src/sap/ui/events/jquery/EventSimulation.js +3 -13
  276. package/src/sap/ui/model/Binding.js +4 -3
  277. package/src/sap/ui/model/ChangeReason.js +1 -1
  278. package/src/sap/ui/model/ClientListBinding.js +7 -0
  279. package/src/sap/ui/model/ClientModel.js +6 -5
  280. package/src/sap/ui/model/ClientTreeBinding.js +1 -1
  281. package/src/sap/ui/model/ClientTreeBindingAdapter.js +1 -1
  282. package/src/sap/ui/model/CompositeBinding.js +1 -1
  283. package/src/sap/ui/model/CompositeDataState.js +26 -4
  284. package/src/sap/ui/model/CompositeType.js +1 -1
  285. package/src/sap/ui/model/ContextBinding.js +1 -1
  286. package/src/sap/ui/model/DataState.js +27 -6
  287. package/src/sap/ui/model/ListBinding.js +24 -5
  288. package/src/sap/ui/model/MetaModel.js +2 -3
  289. package/src/sap/ui/model/Model.js +6 -11
  290. package/src/sap/ui/model/SelectionModel.js +1 -1
  291. package/src/sap/ui/model/SimpleType.js +1 -1
  292. package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
  293. package/src/sap/ui/model/TreeBindingAdapter.js +0 -2
  294. package/src/sap/ui/model/TreeBindingUtils.js +2 -0
  295. package/src/sap/ui/model/Type.js +1 -1
  296. package/src/sap/ui/model/analytics/AnalyticalBinding.js +13 -8
  297. package/src/sap/ui/model/analytics/AnalyticalTreeBindingAdapter.js +16 -18
  298. package/src/sap/ui/model/analytics/ODataModelAdapter.js +2 -15
  299. package/src/sap/ui/model/base/ManagedObjectModel.js +1 -1
  300. package/src/sap/ui/model/json/JSONListBinding.js +1 -1
  301. package/src/sap/ui/model/json/JSONModel.js +7 -7
  302. package/src/sap/ui/model/json/JSONPropertyBinding.js +2 -2
  303. package/src/sap/ui/model/message/MessageListBinding.js +1 -1
  304. package/src/sap/ui/model/message/MessageModel.js +3 -3
  305. package/src/sap/ui/model/message/MessagePropertyBinding.js +2 -2
  306. package/src/sap/ui/model/odata/AnnotationHelper.js +2 -2
  307. package/src/sap/ui/model/odata/AnnotationParser.js +4 -2
  308. package/src/sap/ui/model/odata/ODataAnnotations.js +1 -1
  309. package/src/sap/ui/model/odata/ODataListBinding.js +62 -39
  310. package/src/sap/ui/model/odata/ODataMessageParser.js +2 -2
  311. package/src/sap/ui/model/odata/ODataMetaModel.js +3 -3
  312. package/src/sap/ui/model/odata/ODataMetadata.js +138 -87
  313. package/src/sap/ui/model/odata/ODataModel.js +443 -216
  314. package/src/sap/ui/model/odata/ODataPropertyBinding.js +7 -5
  315. package/src/sap/ui/model/odata/ODataTreeBinding.js +1 -1
  316. package/src/sap/ui/model/odata/ODataTreeBindingAdapter.js +27 -17
  317. package/src/sap/ui/model/odata/ODataTreeBindingFlat.js +440 -260
  318. package/src/sap/ui/model/odata/ODataUtils.js +24 -9
  319. package/src/sap/ui/model/odata/_AnnotationHelperBasics.js +3 -2
  320. package/src/sap/ui/model/odata/_AnnotationHelperExpression.js +11 -9
  321. package/src/sap/ui/model/odata/_ODataMetaModelUtils.js +7 -5
  322. package/src/sap/ui/model/odata/type/Boolean.js +1 -1
  323. package/src/sap/ui/model/odata/type/Byte.js +1 -1
  324. package/src/sap/ui/model/odata/type/Currency.js +1 -1
  325. package/src/sap/ui/model/odata/type/Date.js +1 -1
  326. package/src/sap/ui/model/odata/type/DateTime.js +1 -1
  327. package/src/sap/ui/model/odata/type/DateTimeBase.js +1 -1
  328. package/src/sap/ui/model/odata/type/DateTimeOffset.js +1 -1
  329. package/src/sap/ui/model/odata/type/DateTimeWithTimezone.js +338 -0
  330. package/src/sap/ui/model/odata/type/Decimal.js +5 -1
  331. package/src/sap/ui/model/odata/type/Double.js +1 -1
  332. package/src/sap/ui/model/odata/type/Guid.js +1 -1
  333. package/src/sap/ui/model/odata/type/Int.js +1 -1
  334. package/src/sap/ui/model/odata/type/Int16.js +1 -1
  335. package/src/sap/ui/model/odata/type/Int32.js +1 -1
  336. package/src/sap/ui/model/odata/type/Int64.js +1 -1
  337. package/src/sap/ui/model/odata/type/ODataType.js +1 -1
  338. package/src/sap/ui/model/odata/type/Raw.js +1 -1
  339. package/src/sap/ui/model/odata/type/SByte.js +1 -1
  340. package/src/sap/ui/model/odata/type/Single.js +1 -1
  341. package/src/sap/ui/model/odata/type/Stream.js +1 -1
  342. package/src/sap/ui/model/odata/type/String.js +1 -1
  343. package/src/sap/ui/model/odata/type/Time.js +1 -1
  344. package/src/sap/ui/model/odata/type/TimeOfDay.js +1 -1
  345. package/src/sap/ui/model/odata/type/Unit.js +1 -1
  346. package/src/sap/ui/model/odata/type/UnitMixin.js +1 -2
  347. package/src/sap/ui/model/odata/v2/Context.js +98 -14
  348. package/src/sap/ui/model/odata/v2/ODataAnnotations.js +1 -1
  349. package/src/sap/ui/model/odata/v2/ODataContextBinding.js +8 -4
  350. package/src/sap/ui/model/odata/v2/ODataListBinding.js +418 -172
  351. package/src/sap/ui/model/odata/v2/ODataModel.js +242 -138
  352. package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +164 -92
  353. package/src/sap/ui/model/odata/v2/_CreatedContextsCache.js +117 -7
  354. package/src/sap/ui/model/odata/v4/AnnotationHelper.js +21 -22
  355. package/src/sap/ui/model/odata/v4/Context.js +249 -83
  356. package/src/sap/ui/model/odata/v4/ODataBinding.js +100 -43
  357. package/src/sap/ui/model/odata/v4/ODataContextBinding.js +309 -228
  358. package/src/sap/ui/model/odata/v4/ODataListBinding.js +573 -278
  359. package/src/sap/ui/model/odata/v4/ODataMetaModel.js +131 -100
  360. package/src/sap/ui/model/odata/v4/ODataModel.js +342 -259
  361. package/src/sap/ui/model/odata/v4/ODataParentBinding.js +113 -100
  362. package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +87 -81
  363. package/src/sap/ui/model/odata/v4/ODataUtils.js +5 -5
  364. package/src/sap/ui/model/odata/v4/SubmitMode.js +0 -1
  365. package/src/sap/ui/model/odata/v4/ValueListType.js +0 -1
  366. package/src/sap/ui/model/odata/v4/_AnnotationHelperExpression.js +20 -20
  367. package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +3 -5
  368. package/src/sap/ui/model/odata/v4/lib/_AggregationHelper.js +5 -4
  369. package/src/sap/ui/model/odata/v4/lib/_Batch.js +21 -20
  370. package/src/sap/ui/model/odata/v4/lib/_Cache.js +278 -103
  371. package/src/sap/ui/model/odata/v4/lib/_GroupLock.js +1 -1
  372. package/src/sap/ui/model/odata/v4/lib/_Helper.js +55 -21
  373. package/src/sap/ui/model/odata/v4/lib/_MetadataConverter.js +62 -61
  374. package/src/sap/ui/model/odata/v4/lib/_MetadataRequestor.js +1 -1
  375. package/src/sap/ui/model/odata/v4/lib/_Parser.js +52 -43
  376. package/src/sap/ui/model/odata/v4/lib/_Requestor.js +61 -41
  377. package/src/sap/ui/model/odata/v4/lib/_V2MetadataConverter.js +147 -147
  378. package/src/sap/ui/model/odata/v4/lib/_V2Requestor.js +14 -13
  379. package/src/sap/ui/model/odata/v4/lib/_V4MetadataConverter.js +66 -67
  380. package/src/sap/ui/model/resource/ResourceModel.js +1 -1
  381. package/src/sap/ui/model/resource/ResourcePropertyBinding.js +1 -1
  382. package/src/sap/ui/model/type/Boolean.js +1 -1
  383. package/src/sap/ui/model/type/Currency.js +1 -1
  384. package/src/sap/ui/model/type/Date.js +1 -1
  385. package/src/sap/ui/model/type/DateInterval.js +1 -1
  386. package/src/sap/ui/model/type/DateTime.js +1 -1
  387. package/src/sap/ui/model/type/DateTimeInterval.js +1 -1
  388. package/src/sap/ui/model/type/FileSize.js +1 -1
  389. package/src/sap/ui/model/type/Float.js +1 -1
  390. package/src/sap/ui/model/type/Integer.js +1 -1
  391. package/src/sap/ui/model/type/String.js +1 -1
  392. package/src/sap/ui/model/type/Time.js +1 -1
  393. package/src/sap/ui/model/type/TimeInterval.js +1 -1
  394. package/src/sap/ui/model/type/Unit.js +1 -1
  395. package/src/sap/ui/model/xml/XMLListBinding.js +1 -1
  396. package/src/sap/ui/model/xml/XMLModel.js +5 -5
  397. package/src/sap/ui/model/xml/XMLPropertyBinding.js +2 -2
  398. package/src/sap/ui/performance/trace/Passport.js +3 -3
  399. package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
  400. package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +1 -1
  401. package/src/sap/ui/test/BlanketReporter.js +1 -1
  402. package/src/sap/ui/test/Opa5.js +1 -1
  403. package/src/sap/ui/test/TestUtils.js +2 -2
  404. package/src/sap/ui/test/_LogCollector.js +1 -1
  405. package/src/sap/ui/test/actions/Action.js +11 -2
  406. package/src/sap/ui/test/actions/Press.js +79 -3
  407. package/src/sap/ui/test/autowaiter/_XHRWaiter.js +1 -1
  408. package/src/sap/ui/test/generic/_EnforceSemanticRendering.js +111 -0
  409. package/src/sap/ui/test/starter/createSuite.js +1 -2
  410. package/src/sap/ui/thirdparty/jquery-mobile-custom.js +3 -6
  411. package/src/sap/ui/thirdparty/jqueryui/jquery-ui-datepicker.js +143 -3
  412. package/src/sap/ui/thirdparty/jqueryui/jquery-ui-position.js +8 -1
  413. package/src/sap/ui/util/Mobile.js +28 -39
  414. package/src/sap/ui/util/Storage.js +1 -1
  415. package/src/sap/ui/util/XMLHelper.js +53 -30
  416. package/src/ui5loader.js +9 -9
  417. package/ui5.yaml +244 -1
  418. package/src/sap/ui/core/CustomizingConfiguration.js +0 -47
  419. package/src/sap/ui/thirdparty/baseuri.js +0 -1
  420. package/src/sap/ui/thirdparty/es6-object-assign.js +0 -1
  421. package/src/sap/ui/thirdparty/es6-promise.js +0 -1
  422. package/src/sap/ui/thirdparty/es6-shim-nopromise.js +0 -1
  423. package/src/sap/ui/thirdparty/es6-string-methods.js +0 -1
  424. package/src/sap/ui/thirdparty/flexie.js +0 -1
  425. package/src/sap/ui/thirdparty/unorm.js +0 -1
  426. package/src/sap/ui/thirdparty/unormdata.js +0 -1
@@ -53,7 +53,7 @@ sap.ui.define(["sap/ui/performance/XHRInterceptor", "sap/ui/thirdparty/URI"], fu
53
53
  var Passport = {};
54
54
 
55
55
  /**
56
- * @returns {String} a generated a passport header
56
+ * @returns {string} a generated a passport header
57
57
  * @private
58
58
  */
59
59
  Passport.header = function(trcLvl, RootID, TransID, component, action) {
@@ -125,7 +125,7 @@ sap.ui.define(["sap/ui/performance/XHRInterceptor", "sap/ui/thirdparty/URI"], fu
125
125
  };
126
126
 
127
127
  /**
128
- * @param {String} lvl Tracing level to be calculated
128
+ * @param {string} lvl Tracing level to be calculated
129
129
  * @return {int[]} Array with two int representations of characters for trace level
130
130
  * @private
131
131
  */
@@ -151,7 +151,7 @@ sap.ui.define(["sap/ui/performance/XHRInterceptor", "sap/ui/thirdparty/URI"], fu
151
151
  };
152
152
 
153
153
  /**
154
- * @returns {String} a generated GUID
154
+ * @returns {string} a generated GUID
155
155
  * @private
156
156
  */
157
157
  Passport.createGUID = function() {
@@ -53,7 +53,7 @@ sap.ui.define(['sap/ui/core/Core', "sap/ui/VersionInfo"],
53
53
  * @namespace
54
54
  *
55
55
  * @author SAP SE
56
- * @version 1.96.5
56
+ * @version 1.99.0
57
57
  *
58
58
  * @public
59
59
  * @since 1.48.0
@@ -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.96.5
30
+ * @version 1.99.0
31
31
  *
32
32
  * @public
33
33
  * @since 1.48.0
@@ -514,4 +514,4 @@ sap.ui.define([
514
514
  });
515
515
  }
516
516
  };
517
- }, /* bExport= */ false);
517
+ });
@@ -1115,7 +1115,7 @@ sap.ui.define([
1115
1115
  /**
1116
1116
  * Settings for a new page object, consisting of actions and assertions.
1117
1117
  *
1118
- * @typedef {Object} sap.ui.test.PageObjectDefinition
1118
+ * @typedef {object} sap.ui.test.PageObjectDefinition
1119
1119
  *
1120
1120
  * @property {string} [viewName]
1121
1121
  * When a <code>viewName</code> is given, all <code>waitFor</code> calls inside of the page object
@@ -5,12 +5,12 @@
5
5
  */
6
6
 
7
7
  sap.ui.define([
8
- "jquery.sap.sjax",
9
8
  "sap/base/Log",
10
9
  "sap/base/util/merge",
11
10
  "sap/base/util/UriParameters",
11
+ "sap/ui/thirdparty/jquery",
12
12
  "sap/ui/core/Core" // provides sap.ui.getCore()
13
- ], function (jQuery, Log, merge, UriParameters) {
13
+ ], function (Log, merge, UriParameters, jQuery) {
14
14
  "use strict";
15
15
  /*global QUnit, sinon */
16
16
  // Note: The dependency to Sinon.JS has been omitted deliberately. Most test files load it via
@@ -15,7 +15,7 @@ sap.ui.define([
15
15
 
16
16
  /**
17
17
  * A central place to collect logs during the execution of a task
18
- * Listens to jQuery.sap.log.* to collect the logs
18
+ * Listens to sap/base/Log.* to collect the logs
19
19
  * Only collects logs from loggers with a certain component name
20
20
  * By default only logs from components in sap.ui.test are collected - this can be used to collect all the logs during an OPA test
21
21
  * You always need to start the collector to control when to actually collect logs
@@ -207,9 +207,12 @@ function (ManagedObject, QUnitUtils, Opa5, Device, jQueryDOM, _OpaLogger) {
207
207
  *
208
208
  * @param {string} sName Name of the mouse event
209
209
  * @param {Element} oDomRef DOM element on which the event is going to be triggered
210
+ * @param {boolean} bShiftKey Indicates whether the shift key is down in addition
211
+ * @param {boolean} bAltKey Indicates whether the alt key is down in addition
212
+ * @param {boolean} bCtrlKey Indicates whether the ctrl key is down in addition
210
213
  * @private
211
214
  */
212
- _createAndDispatchMouseEvent: function (sName, oDomRef) {
215
+ _createAndDispatchMouseEvent: function (sName, oDomRef, bShiftKey, bAltKey, bCtrlKey, iClientX, iClientY) {
213
216
  // ignore scrolled down stuff (client X, Y not set)
214
217
  // and assume stuff is over the whole screen (screen X, Y not set)
215
218
  // See file jquery.sap.events.js for some insights to the magic
@@ -224,8 +227,14 @@ function (ManagedObject, QUnitUtils, Opa5, Device, jQueryDOM, _OpaLogger) {
224
227
  radiusY: 1,
225
228
  rotationAngle: 0,
226
229
  button: iLeftMouseButtonIndex,
227
- type: sName // include the type so jQuery.event.fixHooks can copy properties properly
230
+ type: sName, // include the type so jQuery.event.fixHooks can copy properties properly
231
+ shiftKey: bShiftKey,
232
+ altKey: bAltKey,
233
+ ctrlKey: bCtrlKey,
234
+ clientX: iClientX,
235
+ clientY: iClientY
228
236
  });
237
+
229
238
  oDomRef.dispatchEvent(oMouseEvent);
230
239
  },
231
240
 
@@ -42,6 +42,45 @@ sap.ui.define([
42
42
  var Press = Action.extend("sap.ui.test.actions.Press", /** @lends sap.ui.test.actions.Press.prototype */ {
43
43
 
44
44
  metadata : {
45
+ properties: {
46
+ /**
47
+ * If it is set to <code>true</code>, the Alt Key modifier will be used
48
+ * @since 1.97
49
+ */
50
+ altKey: {
51
+ type: "boolean"
52
+ },
53
+ /**
54
+ * If it is set to <code>true</code>, the Shift Key modifier will be used
55
+ * @since 1.97
56
+ */
57
+ shiftKey: {
58
+ type: "boolean"
59
+ },
60
+ /**
61
+ * If it is set to <code>true</code>, the Control Key modifier will be used
62
+ * @since 1.97
63
+ */
64
+ ctrlKey: {
65
+ type: "boolean"
66
+ },
67
+ /**
68
+ * Provide percent value for the X coordinate axis to calculate the position of the click event.
69
+ * The value must be in the range [0 - 100]
70
+ * @since 1.98
71
+ */
72
+ xPercentage: {
73
+ type: "float"
74
+ },
75
+ /**
76
+ * Provide percent value for the Y coordinate axis to calculate the position of the click event.
77
+ * The value must be in the range [0 - 100]
78
+ * @since 1.98
79
+ */
80
+ yPercentage: {
81
+ type: "float"
82
+ }
83
+ },
45
84
  publicMethods : [ "executeOn" ]
46
85
  },
47
86
 
@@ -62,6 +101,43 @@ sap.ui.define([
62
101
  var $ActionDomRef = this.$(oControl),
63
102
  oActionDomRef = $ActionDomRef[0];
64
103
 
104
+ var iClientX, iClientY;
105
+
106
+ var bAltKey = this.getAltKey();
107
+ var bCtrlKey = this.getCtrlKey();
108
+ var bShiftKey = this.getShiftKey();
109
+
110
+ var iXPercentage = this.getXPercentage();
111
+ var iYPercentage = this.getYPercentage();
112
+
113
+ // check if the percentage is in the range 0-100
114
+ if (iXPercentage < 0 || iXPercentage > 100){
115
+ this.oLogger.error("Please provide a valid X percentage in the range: 0 - 100");
116
+ return;
117
+ }
118
+
119
+ if (iYPercentage < 0 || iYPercentage > 100){
120
+ this.oLogger.error("Please provide a valid Y percentage in the range: 0 - 100");
121
+ return;
122
+ }
123
+
124
+ // get the width and the height of the control
125
+ var oRect = oActionDomRef.getBoundingClientRect();
126
+
127
+ var iWidth = oRect.width;
128
+ var iHeight = oRect.height;
129
+
130
+ var iX = oRect.left + window.scrollX;
131
+ var iY = oRect.top + window.scrollY;
132
+
133
+ if (iXPercentage || iXPercentage === 0){
134
+ iClientX = ((iXPercentage / 100) * iWidth) + iX;
135
+ }
136
+
137
+ if (iYPercentage || iYPercentage === 0){
138
+ iClientY = ((iYPercentage / 100) * iHeight) + iY;
139
+ }
140
+
65
141
  if ($ActionDomRef.length) {
66
142
  this.oLogger.timestamp("opa.actions.press");
67
143
  this.oLogger.debug("Pressed the control " + oControl);
@@ -69,10 +145,10 @@ sap.ui.define([
69
145
  this._tryOrSimulateFocusin($ActionDomRef, oControl);
70
146
 
71
147
  // the missing events like saptouchstart and tap will be fired by the event simulation
72
- this._createAndDispatchMouseEvent("mousedown", oActionDomRef);
148
+ this._createAndDispatchMouseEvent("mousedown", oActionDomRef, null, null, null, iClientX, iClientY);
73
149
  this.getUtils().triggerEvent("selectstart", oActionDomRef);
74
- this._createAndDispatchMouseEvent("mouseup", oActionDomRef);
75
- this._createAndDispatchMouseEvent("click", oActionDomRef);
150
+ this._createAndDispatchMouseEvent("mouseup", oActionDomRef, null, null, null, iClientX, iClientY);
151
+ this._createAndDispatchMouseEvent("click", oActionDomRef, bShiftKey, bAltKey, bCtrlKey);
76
152
  //Focusout simulation removed in order to fix Press action behavior
77
153
  //since in real scenario manual press action does not fire focusout event
78
154
  }
@@ -49,7 +49,7 @@ sap.ui.define([
49
49
  // Check if sinon is already faking the Xhr
50
50
  hookIntoSinonRestore();
51
51
 
52
- // Hook into XHR opent for sinon XHRs
52
+ // Hook into XHR open for sinon XHRs
53
53
  var fnOriginalFakeOpen = sinon.FakeXMLHttpRequest.prototype.open;
54
54
  sinon.FakeXMLHttpRequest.prototype.open = function () {
55
55
  return fnOriginalFakeOpen.apply(this, hookIntoXHROpen.apply(this, arguments));
@@ -0,0 +1,111 @@
1
+ /*!
2
+ * OpenUI5
3
+ * (c) Copyright 2009-2022 SAP SE or an SAP affiliate company.
4
+ * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
+ */
6
+
7
+ /* global QUnit */
8
+ sap.ui.define([], function() {
9
+ "use strict";
10
+
11
+ /**
12
+ * @namespace
13
+ * @private
14
+ * @ui5-restricted Only for DIST layer libraries
15
+ */
16
+ var _EnforceSemanticRendering = {
17
+ /**
18
+ * @param {object} mLibInfo Info object containing the library name and an array with excludes
19
+ * @param {string} mLibInfo.library The library name in dot notation, e.g. "sap.ui.core"
20
+ * @param {string[]} mLibInfo.exlcudes An array of control names in dot notation, which are NOT migrated and should be excluded from the test
21
+ * @returns {Promise<undefined>} Returns resovled Promise after all tests are executed
22
+ *
23
+ * @private
24
+ * @ui5-restricted Only for DIST layer libraries
25
+ */
26
+ run : function(mLibInfo) {
27
+ var sLib = mLibInfo.library;
28
+ var aExcludes = mLibInfo.excludes || [];
29
+
30
+ return new Promise(function(res, rej) {
31
+ sap.ui.getCore().loadLibrary(sLib, { async: true }).then(function(library) {
32
+ var aControls = (library && library.controls) || [];
33
+ var aPromises = [];
34
+
35
+ aControls.forEach(function(sClass) {
36
+ // Generate QUnit test for all controls
37
+ aPromises.push(new Promise(function(res, rej) {
38
+ var oInfo = {
39
+ control: sClass
40
+ };
41
+
42
+ var sControlClass = sClass.replace(/\./g, "/");
43
+ sap.ui.require([sControlClass], function(ControlClass) {
44
+ try {
45
+ var oRenderer = ControlClass.getMetadata().getRenderer();
46
+
47
+ if (oRenderer) {
48
+ oInfo.version = Object.prototype.hasOwnProperty.call(oRenderer, "apiVersion") ? oRenderer.apiVersion : 1;
49
+
50
+ if (aExcludes.includes(sClass)) {
51
+ if (oInfo.version == 2) {
52
+ oInfo.wrongExclude = true;
53
+ oInfo.description = "defined in the excludes";
54
+ } else { // version 1
55
+ oInfo.skip = true;
56
+ }
57
+ }
58
+ } else {
59
+ oInfo.description = "No Renderer Class available";
60
+ oInfo.skip = true;
61
+ }
62
+
63
+ } catch (e) {
64
+ oInfo.description = "No Renderer Class available";
65
+ oInfo.skip = true;
66
+ }
67
+
68
+ res(oInfo);
69
+ }, function() {
70
+ oInfo.description = "Control Class could not be loaded";
71
+
72
+ if (aExcludes.includes(sClass)) {
73
+ oInfo.skip = true;
74
+ } // else don't skip if control class is not maintained in excludes
75
+
76
+ res(oInfo);
77
+ });
78
+ }));
79
+ });
80
+
81
+ res(aPromises);
82
+ });
83
+ }).then(function(aPromises) {
84
+ // Add tests
85
+ return new Promise(function(res, rej) {
86
+ Promise.all(aPromises).then(function(aInfo) {
87
+ QUnit.module("EnforceSemanticRendering Tests: " + mLibInfo.library);
88
+
89
+ QUnit.test("library controls loaded", function(assert) {
90
+ assert.ok(aInfo, aInfo.length + " controls loaded");
91
+ });
92
+
93
+ aInfo.forEach(function(oInfo) {
94
+ QUnit[oInfo.skip ? "skip" : "test"](oInfo.control + " " + (oInfo.description || ""), function(assert) {
95
+ if (oInfo.wrongExclude) {
96
+ assert.ok(false, "The control '" + oInfo.control + "' is maintained in the exclude configuration, but its renderer is configured with apiVersion 2.");
97
+ } else {
98
+ assert.equal(oInfo.version, 2, "Semantic Rendering enabled.");
99
+ }
100
+ });
101
+ });
102
+
103
+ res();
104
+ });
105
+ });
106
+ });
107
+ }
108
+ };
109
+
110
+ return _EnforceSemanticRendering;
111
+ });
@@ -216,8 +216,7 @@
216
216
 
217
217
  };
218
218
 
219
- var oSuiteReadyEvent = document.createEvent("CustomEvent");
220
- oSuiteReadyEvent.initCustomEvent("sap-ui-testsuite-ready", true, true, {});
219
+ var oSuiteReadyEvent = new CustomEvent("sap-ui-testsuite-ready");
221
220
  window.dispatchEvent(oSuiteReadyEvent);
222
221
 
223
222
  }));
@@ -1857,12 +1857,9 @@ if ( eventCaptureSupported ) {
1857
1857
  // coordinate is proximitely the same as the coordinate of recorded touch
1858
1858
  // events and the mouse event's target is different than the target of the
1859
1859
  // touch event.
1860
- // Do not suppress mouse and click events on Windows Phone.
1861
- if (!(sap.ui.Device.os.windows_phone && sap.ui.Device.os.version < 10)) {
1862
- document.addEventListener( "mousedown", suppressEvent, true );
1863
- document.addEventListener( "mouseup", suppressEvent, true );
1864
- document.addEventListener( "click", suppressEvent, true );
1865
- }
1860
+ document.addEventListener( "mousedown", suppressEvent, true );
1861
+ document.addEventListener( "mouseup", suppressEvent, true );
1862
+ document.addEventListener( "click", suppressEvent, true );
1866
1863
  }
1867
1864
  })( jQuery, window, document );
1868
1865
 
@@ -197,7 +197,12 @@ $.extend(Datepicker.prototype, {
197
197
  inst.append.remove();
198
198
  }
199
199
  if (appendText) {
200
- inst.append = $("<span class='" + this._appendClass + "'>" + appendText + "</span>");
200
+ // ##### BEGIN: MODIFIED BY SAP
201
+ // inst.append = $("<span class='" + this._appendClass + "'>" + appendText + "</span>");
202
+ inst.append = $( "<span></span>" )
203
+ .addClass( this._appendClass )
204
+ .text( appendText );
205
+ // ##### END: MODIFIED BY SAP
201
206
  input[isRTL ? "before" : "after"](inst.append);
202
207
  }
203
208
 
@@ -220,12 +225,43 @@ $.extend(Datepicker.prototype, {
220
225
  if (showOn === "button" || showOn === "both") { // pop-up date picker when button clicked
221
226
  buttonText = this._get(inst, "buttonText");
222
227
  buttonImage = this._get(inst, "buttonImage");
223
- inst.trigger = $(this._get(inst, "buttonImageOnly") ?
228
+
229
+ // ##### BEGIN: MODIFIED BY SAP
230
+ /*
231
+ inst.trigger = $( this._get(inst, "buttonImageOnly" ) ?
224
232
  $("<img/>").addClass(this._triggerClass).
225
233
  attr({ src: buttonImage, alt: buttonText, title: buttonText }) :
226
234
  $("<button type='button'></button>").addClass(this._triggerClass).
227
235
  html(!buttonImage ? buttonText : $("<img/>").attr(
228
236
  { src:buttonImage, alt:buttonText, title:buttonText })));
237
+ */
238
+
239
+ if ( this._get( inst, "buttonImageOnly" ) ) {
240
+ inst.trigger = $( "<img>" )
241
+ .addClass( this._triggerClass )
242
+ .attr( {
243
+ src: buttonImage,
244
+ alt: buttonText,
245
+ title: buttonText
246
+ } );
247
+ } else {
248
+ inst.trigger = $( "<button type='button'></button>" )
249
+ .addClass( this._triggerClass );
250
+ if ( buttonImage ) {
251
+ inst.trigger.html(
252
+ $( "<img>" )
253
+ .attr( {
254
+ src: buttonImage,
255
+ alt: buttonText,
256
+ title: buttonText
257
+ } )
258
+ );
259
+ } else {
260
+ inst.trigger.text( buttonText );
261
+ }
262
+ }
263
+ // ##### END: MODIFIED BY SAP
264
+
229
265
  input[isRTL ? "before" : "after"](inst.trigger);
230
266
  inst.trigger.click(function() {
231
267
  if ($.datepicker._datepickerShowing && $.datepicker._lastInput === input[0]) {
@@ -1047,7 +1083,10 @@ $.extend(Datepicker.prototype, {
1047
1083
  altFormat = this._get(inst, "altFormat") || this._get(inst, "dateFormat");
1048
1084
  date = this._getDate(inst);
1049
1085
  dateStr = this.formatDate(altFormat, date, this._getFormatConfig(inst));
1050
- $(altField).each(function() { $(this).val(dateStr); });
1086
+ // ##### BEGIN: MODIFIED BY SAP
1087
+ // $(altField).each(function() { $(this).val(dateStr); });
1088
+ $( document ).find( altField ).val( dateStr );
1089
+ // ##### END: MODIFIED BY SAP
1051
1090
  }
1052
1091
  },
1053
1092
 
@@ -1654,32 +1693,133 @@ $.extend(Datepicker.prototype, {
1654
1693
  this._daylightSavingAdjust(new Date(drawYear, drawMonth - stepMonths, 1)),
1655
1694
  this._getFormatConfig(inst)));
1656
1695
 
1696
+ // ##### BEGIN: MODIFIED BY SAP
1697
+ /*
1657
1698
  prev = (this._canAdjustMonth(inst, -1, drawYear, drawMonth) ?
1658
1699
  "<a class='ui-datepicker-prev ui-corner-all' data-handler='prev' data-event='click'" +
1659
1700
  " title='" + prevText + "'><span class='ui-icon ui-icon-circle-triangle-" + ( isRTL ? "e" : "w") + "'>" + prevText + "</span></a>" :
1660
1701
  (hideIfNoPrevNext ? "" : "<a class='ui-datepicker-prev ui-corner-all ui-state-disabled' title='"+ prevText +"'><span class='ui-icon ui-icon-circle-triangle-" + ( isRTL ? "e" : "w") + "'>" + prevText + "</span></a>"));
1702
+ */
1703
+
1704
+ if ( this._canAdjustMonth( inst, -1, drawYear, drawMonth ) ) {
1705
+ prev = $( "<a></a>" )
1706
+ .attr( {
1707
+ "class": "ui-datepicker-prev ui-corner-all",
1708
+ "data-handler": "prev",
1709
+ "data-event": "click",
1710
+ title: prevText
1711
+ } )
1712
+ .append(
1713
+ $( "<span></span>" )
1714
+ .addClass( "ui-icon ui-icon-circle-triangle-" +
1715
+ ( isRTL ? "e" : "w" ) )
1716
+ .text( prevText )
1717
+ )[ 0 ].outerHTML;
1718
+ } else if ( hideIfNoPrevNext ) {
1719
+ prev = "";
1720
+ } else {
1721
+ prev = $( "<a></a>" )
1722
+ .attr( {
1723
+ "class": "ui-datepicker-prev ui-corner-all ui-state-disabled",
1724
+ title: prevText
1725
+ } )
1726
+ .append(
1727
+ $( "<span></span>" )
1728
+ .addClass( "ui-icon ui-icon-circle-triangle-" +
1729
+ ( isRTL ? "e" : "w" ) )
1730
+ .text( prevText )
1731
+ )[ 0 ].outerHTML;
1732
+ }
1733
+ // ##### END: MODIFIED BY SAP
1661
1734
 
1662
1735
  nextText = this._get(inst, "nextText");
1663
1736
  nextText = (!navigationAsDateFormat ? nextText : this.formatDate(nextText,
1664
1737
  this._daylightSavingAdjust(new Date(drawYear, drawMonth + stepMonths, 1)),
1665
1738
  this._getFormatConfig(inst)));
1666
1739
 
1740
+ // ##### BEGIN: MODIFIED BY SAP
1741
+ /*
1667
1742
  next = (this._canAdjustMonth(inst, +1, drawYear, drawMonth) ?
1668
1743
  "<a class='ui-datepicker-next ui-corner-all' data-handler='next' data-event='click'" +
1669
1744
  " title='" + nextText + "'><span class='ui-icon ui-icon-circle-triangle-" + ( isRTL ? "w" : "e") + "'>" + nextText + "</span></a>" :
1670
1745
  (hideIfNoPrevNext ? "" : "<a class='ui-datepicker-next ui-corner-all ui-state-disabled' title='"+ nextText + "'><span class='ui-icon ui-icon-circle-triangle-" + ( isRTL ? "w" : "e") + "'>" + nextText + "</span></a>"));
1746
+ */
1747
+
1748
+ if ( this._canAdjustMonth( inst, +1, drawYear, drawMonth ) ) {
1749
+ next = $( "<a></a>" )
1750
+ .attr( {
1751
+ "class": "ui-datepicker-next ui-corner-all",
1752
+ "data-handler": "next",
1753
+ "data-event": "click",
1754
+ title: nextText
1755
+ } )
1756
+ .append(
1757
+ $( "<span></span>" )
1758
+ .addClass( "ui-icon ui-icon-circle-triangle-" +
1759
+ ( isRTL ? "w" : "e" ) )
1760
+ .text( nextText )
1761
+ )[ 0 ].outerHTML;
1762
+ } else if ( hideIfNoPrevNext ) {
1763
+ next = "";
1764
+ } else {
1765
+ next = $( "<a></a>" )
1766
+ .attr( {
1767
+ "class": "ui-datepicker-next ui-corner-all ui-state-disabled",
1768
+ title: nextText
1769
+ } )
1770
+ .append(
1771
+ $( "<span></span>" )
1772
+ .attr( "class", "ui-icon ui-icon-circle-triangle-" +
1773
+ ( isRTL ? "w" : "e" ) )
1774
+ .text( nextText )
1775
+ )[ 0 ].outerHTML;
1776
+ }
1777
+ // ##### END: MODIFIED BY SAP
1671
1778
 
1672
1779
  currentText = this._get(inst, "currentText");
1673
1780
  gotoDate = (this._get(inst, "gotoCurrent") && inst.currentDay ? currentDate : today);
1674
1781
  currentText = (!navigationAsDateFormat ? currentText :
1675
1782
  this.formatDate(currentText, gotoDate, this._getFormatConfig(inst)));
1676
1783
 
1784
+ // ##### BEGIN: MODIFIED BY SAP
1785
+ /*
1677
1786
  controls = (!inst.inline ? "<button type='button' class='ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all' data-handler='hide' data-event='click'>" +
1678
1787
  this._get(inst, "closeText") + "</button>" : "");
1679
1788
 
1680
1789
  buttonPanel = (showButtonPanel) ? "<div class='ui-datepicker-buttonpane ui-widget-content'>" + (isRTL ? controls : "") +
1681
1790
  (this._isInRange(inst, gotoDate) ? "<button type='button' class='ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all' data-handler='today' data-event='click'" +
1682
1791
  ">" + currentText + "</button>" : "") + (isRTL ? "" : controls) + "</div>" : "";
1792
+ */
1793
+
1794
+ controls = "";
1795
+ if ( !inst.inline ) {
1796
+ controls = $( "<button></button>" )
1797
+ .attr( {
1798
+ type: "button",
1799
+ "class": "ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all",
1800
+ "data-handler": "hide",
1801
+ "data-event": "click"
1802
+ } )
1803
+ .text( this._get( inst, "closeText" ) )[ 0 ].outerHTML;
1804
+ }
1805
+
1806
+ buttonPanel = "";
1807
+ if ( showButtonPanel ) {
1808
+ buttonPanel = $( "<div class='ui-datepicker-buttonpane ui-widget-content'></div>" )
1809
+ .append( isRTL ? controls : "" )
1810
+ .append( this._isInRange( inst, gotoDate ) ?
1811
+ $( "<button></button>" )
1812
+ .attr( {
1813
+ type: "button",
1814
+ "class": "ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all",
1815
+ "data-handler": "today",
1816
+ "data-event": "click"
1817
+ } )
1818
+ .text( currentText ) :
1819
+ "" )
1820
+ .append( isRTL ? "" : controls )[ 0 ].outerHTML;
1821
+ }
1822
+ // ##### END: MODIFIED BY SAP
1683
1823
 
1684
1824
  firstDay = parseInt(this._get(inst, "firstDay"),10);
1685
1825
  firstDay = (isNaN(firstDay) ? 0 : firstDay);
@@ -157,7 +157,14 @@ $.fn.position = function( options ) {
157
157
  options = $.extend( {}, options );
158
158
 
159
159
  var atOffset, targetWidth, targetHeight, targetOffset, basePosition, dimensions,
160
- target = $( options.of ),
160
+ // ##### BEGIN: MODIFIED BY SAP
161
+ // target = $( options.of ),
162
+
163
+ // Make sure string options are treated as CSS selectors
164
+ target = typeof options.of === "string" ?
165
+ $( document ).find( options.of ) :
166
+ $( options.of ),
167
+ // ##### END: MODIFIED BY SAP
161
168
  within = $.position.getWithinInfo( options.within ),
162
169
  scrollInfo = $.position.getScrollInfo( within ),
163
170
  collision = ( options.collision || "flip" ).split( " " ),