@openui5/sap.ui.core 1.71.41 → 1.71.44

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 (228) hide show
  1. package/LICENSE.txt +1 -1
  2. package/package.json +1 -1
  3. package/src/jquery.sap.global.js +1 -1
  4. package/src/jquery.sap.properties.js +1 -1
  5. package/src/jquery.sap.resources.js +1 -1
  6. package/src/jquery.sap.script.js +1 -1
  7. package/src/jquery.sap.storage.js +3 -3
  8. package/src/sap/base/util/restricted/_castArray.js +1 -1
  9. package/src/sap/base/util/restricted/_curry.js +1 -1
  10. package/src/sap/base/util/restricted/_debounce.js +1 -1
  11. package/src/sap/base/util/restricted/_intersection.js +1 -1
  12. package/src/sap/base/util/restricted/_intersectionBy.js +1 -1
  13. package/src/sap/base/util/restricted/_intersectionWith.js +1 -1
  14. package/src/sap/base/util/restricted/_max.js +1 -1
  15. package/src/sap/base/util/restricted/_merge.js +1 -1
  16. package/src/sap/base/util/restricted/_mergeWith.js +1 -1
  17. package/src/sap/base/util/restricted/_min.js +1 -1
  18. package/src/sap/base/util/restricted/_omit.js +1 -1
  19. package/src/sap/base/util/restricted/_pick.js +1 -1
  20. package/src/sap/base/util/restricted/_pickBy.js +1 -1
  21. package/src/sap/base/util/restricted/_throttle.js +1 -1
  22. package/src/sap/base/util/restricted/_uniq.js +1 -1
  23. package/src/sap/base/util/restricted/_uniqBy.js +1 -1
  24. package/src/sap/base/util/restricted/_uniqWith.js +1 -1
  25. package/src/sap/ui/Device.js +3 -3
  26. package/src/sap/ui/Global.js +4 -4
  27. package/src/sap/ui/base/Event.js +1 -1
  28. package/src/sap/ui/base/EventProvider.js +1 -1
  29. package/src/sap/ui/base/Interface.js +1 -1
  30. package/src/sap/ui/base/ManagedObject.js +1 -1
  31. package/src/sap/ui/base/ManagedObjectMetadata.js +1 -1
  32. package/src/sap/ui/base/Metadata.js +1 -1
  33. package/src/sap/ui/base/Object.js +1 -1
  34. package/src/sap/ui/base/ObjectPool.js +1 -1
  35. package/src/sap/ui/core/.library +1 -1
  36. package/src/sap/ui/core/BusyIndicator.js +1 -1
  37. package/src/sap/ui/core/Component.js +1 -1
  38. package/src/sap/ui/core/ComponentContainer.js +1 -1
  39. package/src/sap/ui/core/ComponentMetadata.js +1 -1
  40. package/src/sap/ui/core/ComponentSupport.js +1 -1
  41. package/src/sap/ui/core/Control.js +1 -1
  42. package/src/sap/ui/core/Core.js +1 -1
  43. package/src/sap/ui/core/CustomData.js +1 -1
  44. package/src/sap/ui/core/CustomizingConfiguration.js +1 -1
  45. package/src/sap/ui/core/DeclarativeSupport.js +1 -1
  46. package/src/sap/ui/core/Element.js +1 -1
  47. package/src/sap/ui/core/ElementMetadata.js +1 -1
  48. package/src/sap/ui/core/EnabledPropagator.js +1 -1
  49. package/src/sap/ui/core/EventBus.js +1 -1
  50. package/src/sap/ui/core/Fragment.js +1 -1
  51. package/src/sap/ui/core/HTML.js +1 -1
  52. package/src/sap/ui/core/History.js +1 -1
  53. package/src/sap/ui/core/Icon.js +1 -1
  54. package/src/sap/ui/core/IndicationColorSupport.js +1 -1
  55. package/src/sap/ui/core/IntervalTrigger.js +1 -1
  56. package/src/sap/ui/core/InvisibleRenderer.js +1 -1
  57. package/src/sap/ui/core/InvisibleText.js +1 -1
  58. package/src/sap/ui/core/Item.js +1 -1
  59. package/src/sap/ui/core/LabelEnablement.js +1 -1
  60. package/src/sap/ui/core/LayoutData.js +1 -1
  61. package/src/sap/ui/core/ListItem.js +1 -1
  62. package/src/sap/ui/core/LocalBusyIndicator.js +1 -1
  63. package/src/sap/ui/core/Locale.js +1 -1
  64. package/src/sap/ui/core/LocaleData.js +1 -1
  65. package/src/sap/ui/core/Manifest.js +1 -1
  66. package/src/sap/ui/core/Message.js +1 -1
  67. package/src/sap/ui/core/RenderManager.js +1 -1
  68. package/src/sap/ui/core/Renderer.js +1 -1
  69. package/src/sap/ui/core/ResizeHandler.js +1 -1
  70. package/src/sap/ui/core/ScrollBar.js +1 -1
  71. package/src/sap/ui/core/SeparatorItem.js +1 -1
  72. package/src/sap/ui/core/Title.js +1 -1
  73. package/src/sap/ui/core/TooltipBase.js +1 -1
  74. package/src/sap/ui/core/UIArea.js +1 -1
  75. package/src/sap/ui/core/UIComponent.js +1 -1
  76. package/src/sap/ui/core/UIComponentMetadata.js +1 -1
  77. package/src/sap/ui/core/ValueStateSupport.js +1 -1
  78. package/src/sap/ui/core/VariantLayoutData.js +1 -1
  79. package/src/sap/ui/core/XMLComposite.js +1 -1
  80. package/src/sap/ui/core/XMLCompositeMetadata.js +1 -1
  81. package/src/sap/ui/core/cldr/en_AU.json +1 -1
  82. package/src/sap/ui/core/delegate/ItemNavigation.js +1 -1
  83. package/src/sap/ui/core/delegate/ScrollEnablement.js +1 -1
  84. package/src/sap/ui/core/dnd/DragDropBase.js +1 -1
  85. package/src/sap/ui/core/dnd/DragDropInfo.js +1 -1
  86. package/src/sap/ui/core/dnd/DragInfo.js +1 -1
  87. package/src/sap/ui/core/dnd/DropInfo.js +1 -1
  88. package/src/sap/ui/core/hyphenation/Hyphenation.js +1 -1
  89. package/src/sap/ui/core/library.js +3 -3
  90. package/src/sap/ui/core/message/ControlMessageProcessor.js +1 -1
  91. package/src/sap/ui/core/message/Message.js +1 -1
  92. package/src/sap/ui/core/message/MessageManager.js +1 -1
  93. package/src/sap/ui/core/message/MessageParser.js +1 -1
  94. package/src/sap/ui/core/message/MessageProcessor.js +1 -1
  95. package/src/sap/ui/core/messagebundle_bg.properties +4 -4
  96. package/src/sap/ui/core/messagebundle_de.properties +1 -1
  97. package/src/sap/ui/core/mvc/HTMLView.js +1 -1
  98. package/src/sap/ui/core/mvc/JSONView.js +1 -1
  99. package/src/sap/ui/core/mvc/JSView.js +1 -1
  100. package/src/sap/ui/core/mvc/TemplateView.js +1 -1
  101. package/src/sap/ui/core/mvc/View.js +1 -1
  102. package/src/sap/ui/core/mvc/XMLView.js +1 -1
  103. package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
  104. package/src/sap/ui/core/plugin/LessSupport.js +1 -1
  105. package/src/sap/ui/core/plugin/TemplatingSupport.js +1 -1
  106. package/src/sap/ui/core/postmessage/Bus.js +1 -1
  107. package/src/sap/ui/core/postmessage/confirmationDialog.js +1 -1
  108. package/src/sap/ui/core/search/OpenSearchProvider.js +1 -1
  109. package/src/sap/ui/core/search/SearchProvider.js +1 -1
  110. package/src/sap/ui/core/service/Service.js +1 -1
  111. package/src/sap/ui/core/service/ServiceFactory.js +1 -1
  112. package/src/sap/ui/core/service/ServiceFactoryRegistry.js +1 -1
  113. package/src/sap/ui/core/support/Plugin.js +1 -1
  114. package/src/sap/ui/core/support/Support.js +1 -1
  115. package/src/sap/ui/core/support/plugins/ControlTree.js +1 -1
  116. package/src/sap/ui/core/support/plugins/Interaction.js +1 -1
  117. package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -1
  118. package/src/sap/ui/core/support/plugins/MessageTest.js +1 -1
  119. package/src/sap/ui/core/support/plugins/Performance.js +1 -1
  120. package/src/sap/ui/core/support/plugins/Selector.js +1 -1
  121. package/src/sap/ui/core/support/plugins/TechInfo.js +1 -1
  122. package/src/sap/ui/core/support/plugins/Trace.js +1 -1
  123. package/src/sap/ui/core/support/plugins/ViewInfo.js +1 -1
  124. package/src/sap/ui/core/tmpl/DOMAttribute.js +1 -1
  125. package/src/sap/ui/core/tmpl/DOMElement.js +1 -1
  126. package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +1 -1
  127. package/src/sap/ui/core/tmpl/Template.js +1 -1
  128. package/src/sap/ui/core/tmpl/TemplateControl.js +1 -1
  129. package/src/sap/ui/core/util/AsyncHintsHelper.js +1 -1
  130. package/src/sap/ui/core/util/Export.js +1 -1
  131. package/src/sap/ui/core/util/ExportCell.js +1 -1
  132. package/src/sap/ui/core/util/ExportColumn.js +1 -1
  133. package/src/sap/ui/core/util/ExportRow.js +1 -1
  134. package/src/sap/ui/core/util/ExportType.js +1 -1
  135. package/src/sap/ui/core/util/ExportTypeCSV.js +1 -1
  136. package/src/sap/ui/core/util/File.js +1 -1
  137. package/src/sap/ui/core/util/LibraryInfo.js +1 -1
  138. package/src/sap/ui/core/util/MockServer.js +1 -1
  139. package/src/sap/ui/core/util/PasteHelper.js +1 -1
  140. package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +1 -1
  141. package/src/sap/ui/core/util/serializer/Serializer.js +1 -1
  142. package/src/sap/ui/core/util/serializer/ViewSerializer.js +1 -1
  143. package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +1 -1
  144. package/src/sap/ui/core/util/serializer/delegate/Delegate.js +1 -1
  145. package/src/sap/ui/core/util/serializer/delegate/HTML.js +1 -1
  146. package/src/sap/ui/core/util/serializer/delegate/XML.js +1 -1
  147. package/src/sap/ui/core/ws/ReadyState.js +1 -1
  148. package/src/sap/ui/core/ws/SapPcpWebSocket.js +1 -1
  149. package/src/sap/ui/core/ws/WebSocket.js +1 -1
  150. package/src/sap/ui/debug/ControlTree.js +1 -1
  151. package/src/sap/ui/debug/DebugEnv.js +1 -1
  152. package/src/sap/ui/debug/PropertyList.js +1 -1
  153. package/src/sap/ui/model/ClientModel.js +1 -1
  154. package/src/sap/ui/model/CompositeDataState.js +1 -1
  155. package/src/sap/ui/model/CompositeType.js +1 -1
  156. package/src/sap/ui/model/DataState.js +1 -1
  157. package/src/sap/ui/model/MetaModel.js +1 -1
  158. package/src/sap/ui/model/Model.js +1 -1
  159. package/src/sap/ui/model/SelectionModel.js +1 -1
  160. package/src/sap/ui/model/SimpleType.js +1 -1
  161. package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
  162. package/src/sap/ui/model/Type.js +1 -1
  163. package/src/sap/ui/model/control/ControlModel.js +1 -1
  164. package/src/sap/ui/model/json/JSONModel.js +1 -1
  165. package/src/sap/ui/model/message/MessageModel.js +1 -1
  166. package/src/sap/ui/model/odata/ODataAnnotations.js +1 -1
  167. package/src/sap/ui/model/odata/ODataMessageParser.js +1 -1
  168. package/src/sap/ui/model/odata/ODataMetaModel.js +1 -1
  169. package/src/sap/ui/model/odata/ODataMetadata.js +1 -1
  170. package/src/sap/ui/model/odata/ODataModel.js +1 -1
  171. package/src/sap/ui/model/odata/type/Boolean.js +1 -1
  172. package/src/sap/ui/model/odata/type/Byte.js +1 -1
  173. package/src/sap/ui/model/odata/type/Currency.js +1 -1
  174. package/src/sap/ui/model/odata/type/Date.js +1 -1
  175. package/src/sap/ui/model/odata/type/DateTime.js +1 -1
  176. package/src/sap/ui/model/odata/type/DateTimeBase.js +1 -1
  177. package/src/sap/ui/model/odata/type/DateTimeOffset.js +1 -1
  178. package/src/sap/ui/model/odata/type/Decimal.js +1 -1
  179. package/src/sap/ui/model/odata/type/Double.js +1 -1
  180. package/src/sap/ui/model/odata/type/Guid.js +1 -1
  181. package/src/sap/ui/model/odata/type/Int.js +1 -1
  182. package/src/sap/ui/model/odata/type/Int16.js +1 -1
  183. package/src/sap/ui/model/odata/type/Int32.js +1 -1
  184. package/src/sap/ui/model/odata/type/Int64.js +1 -1
  185. package/src/sap/ui/model/odata/type/ODataType.js +1 -1
  186. package/src/sap/ui/model/odata/type/Raw.js +1 -1
  187. package/src/sap/ui/model/odata/type/SByte.js +1 -1
  188. package/src/sap/ui/model/odata/type/Single.js +1 -1
  189. package/src/sap/ui/model/odata/type/Stream.js +1 -1
  190. package/src/sap/ui/model/odata/type/String.js +1 -1
  191. package/src/sap/ui/model/odata/type/Time.js +1 -1
  192. package/src/sap/ui/model/odata/type/TimeOfDay.js +1 -1
  193. package/src/sap/ui/model/odata/type/Unit.js +1 -1
  194. package/src/sap/ui/model/odata/v2/ODataAnnotations.js +1 -1
  195. package/src/sap/ui/model/odata/v2/ODataModel.js +1 -1
  196. package/src/sap/ui/model/odata/v4/Context.js +1 -1
  197. package/src/sap/ui/model/odata/v4/ODataContextBinding.js +1 -1
  198. package/src/sap/ui/model/odata/v4/ODataListBinding.js +1 -1
  199. package/src/sap/ui/model/odata/v4/ODataMetaModel.js +1 -1
  200. package/src/sap/ui/model/odata/v4/ODataModel.js +1 -1
  201. package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +1 -1
  202. package/src/sap/ui/model/resource/ResourceModel.js +1 -1
  203. package/src/sap/ui/model/type/Boolean.js +1 -1
  204. package/src/sap/ui/model/type/Currency.js +1 -1
  205. package/src/sap/ui/model/type/Date.js +1 -1
  206. package/src/sap/ui/model/type/DateInterval.js +1 -1
  207. package/src/sap/ui/model/type/DateTime.js +1 -1
  208. package/src/sap/ui/model/type/DateTimeInterval.js +1 -1
  209. package/src/sap/ui/model/type/FileSize.js +1 -1
  210. package/src/sap/ui/model/type/Float.js +1 -1
  211. package/src/sap/ui/model/type/Integer.js +1 -1
  212. package/src/sap/ui/model/type/String.js +1 -1
  213. package/src/sap/ui/model/type/Time.js +1 -1
  214. package/src/sap/ui/model/type/TimeInterval.js +1 -1
  215. package/src/sap/ui/model/type/Unit.js +1 -1
  216. package/src/sap/ui/model/xml/XMLModel.js +1 -1
  217. package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
  218. package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +1 -1
  219. package/src/sap/ui/thirdparty/IPv6.js +1 -1
  220. package/src/sap/ui/thirdparty/SecondLevelDomains.js +1 -1
  221. package/src/sap/ui/thirdparty/URI.js +7 -3
  222. package/src/sap/ui/thirdparty/URITemplate.js +1 -1
  223. package/src/sap/ui/thirdparty/jquery-mobile-custom.js +82 -93
  224. package/src/sap/ui/thirdparty/jqueryui/jquery-ui-datepicker.js +143 -3
  225. package/src/sap/ui/thirdparty/jqueryui/jquery-ui-position.js +8 -1
  226. package/src/sap/ui/thirdparty/jszip.js +18 -7
  227. package/src/sap/ui/thirdparty/mobify-carousel.js +1 -1
  228. package/src/sap/ui/util/Storage.js +1 -1
@@ -1911,114 +1911,103 @@ if ( eventCaptureSupported ) {
1911
1911
 
1912
1912
  setup: function() {
1913
1913
  var thisObject = this,
1914
- $this = $( thisObject );
1914
+ $this = $( thisObject ),
1915
+ // SAP MODIFICATION: the variable declarations are moved out of the "mousedown" event handler because
1916
+ // the handlers where the variables are used are moved out
1917
+ mouseDownTarget,
1918
+ mouseDownEvent,
1919
+ timer;
1915
1920
 
1916
- $this.bind( "vmousedown", function( event ) {
1921
+ // SAP MODIFICATION: Workaround for an Edge browser issue which occurs with EdgeHTML 14 and higher.
1922
+ // The root cause are inconsistent event targets of fired events, when a button is tapped.
1923
+
1924
+ /**
1925
+ * Detects whether edge browser special tap handling is necessary.
1926
+ *
1927
+ * Inconsistent event targets for the sap.m.Button control:
1928
+ * EdgeHTML v.| 14 | 15 | 16 | 17 |
1929
+ * ----------------------------------
1930
+ * mousedown | S| S| B| S|
1931
+ * mouseup | B| B| B| B|
1932
+ * click | S| S/B| S| S/B|
1933
+ * ----------------------------------
1934
+ * S = SPAN, B = BUTTON
1935
+ *
1936
+ * @param {object} event either mouseup or click event.
1937
+ * @returns {boolean} Returns true, when a button was pressed in edge browser with inconsistent event targets.
1938
+ */
1939
+ function buttonTappedInEdgeBrowser( event ) {
1940
+ var eventTarget = event.target;
1941
+ var browser = sap.ui.Device.browser;
1942
+
1943
+ return browser.edge && browser.version >= 14 &&
1944
+ (eventTarget.tagName.toLowerCase() === "button" &&
1945
+ eventTarget.contains(mouseDownTarget) ||
1946
+ mouseDownTarget.tagName.toLowerCase() === "button" &&
1947
+ mouseDownTarget.contains(eventTarget));
1948
+ }
1917
1949
 
1918
- if ( event.which && event.which !== 1 ) {
1919
- // SAP MODIFICATION: 'return false' is changed with 'return' to let the event
1920
- // still propagate to the parent DOMs.
1921
- return;
1922
- }
1950
+ // SAP MODIFICATION: the following event handlers are moved out of the "mousedown" event handler to make it
1951
+ // possible to be deregistered in a later time point
1952
+ function clearTapTimer() {
1953
+ clearTimeout( timer );
1954
+ }
1923
1955
 
1924
- var mouseDownTarget = event.target,
1925
- mouseDownEvent = event.originalEvent,
1926
- timer,
1927
- // SAP MODIFICATION: save the coordinate from the 'mousedown' event
1928
- oMouseDownCoord = {
1929
- x: event.clientX,
1930
- y: event.clientY
1931
- },
1932
- // SAP Modification: Workaround for an Edge browser issue which occurs with EdgeHTML 14 and higher.
1933
- // The root cause are inconsistent event targets of fired events, when a button is tapped.
1934
-
1935
- /**
1936
- * Detects whether edge browser special tap handling is necessary.
1937
- *
1938
- * Inconsistent event targets for the sap.m.Button control:
1939
- * EdgeHTML v.| 14 | 15 | 16 | 17 |
1940
- * ----------------------------------
1941
- * mousedown | S| S| B| S|
1942
- * mouseup | B| B| B| B|
1943
- * click | S| S/B| S| S/B|
1944
- * ----------------------------------
1945
- * S = SPAN, B = BUTTON
1946
- *
1947
- * @param {object} event either mouseup or click event.
1948
- * @returns {boolean} Returns true, when a button was pressed in edge browser with inconsistent event targets.
1949
- */
1950
- buttonTappedInEdgeBrowser = function( event ) {
1951
- var eventTarget = event.target;
1952
- var browser = sap.ui.Device.browser;
1953
-
1954
- return browser.edge && browser.version >= 14 &&
1955
- (eventTarget.tagName.toLowerCase() === "button" &&
1956
- eventTarget.contains(mouseDownTarget) ||
1957
- mouseDownTarget.tagName.toLowerCase() === "button" &&
1958
- mouseDownTarget.contains(eventTarget));
1959
- };
1956
+ function clearTapHandlers() {
1957
+ clearTapTimer();
1960
1958
 
1961
- function clearTapTimer() {
1962
- clearTimeout( timer );
1963
- }
1959
+ // SAP MODIFICATION: remove the mark because the tap event runs to the end
1960
+ $this.removeData("__tap_event_in_progress");
1961
+
1962
+ $this.unbind( "vclick", clickHandler )
1963
+ .unbind( "vmouseup", clearTapTimer );
1964
+ $document.unbind( "vmousecancel", clearTapHandlers )
1965
+ // SAP MODIFICATION: deregister the function of clearing handlers from 'mouseup' event
1966
+ // on document
1967
+ .unbind( "vmouseup", checkAndClearTapHandlers );
1968
+ }
1964
1969
 
1965
- function clearTapHandlers() {
1966
- clearTapTimer();
1967
-
1968
- $this.unbind( "vclick", clickHandler )
1969
- .unbind( "vmouseup", clearTapTimer )
1970
- // SAP MODIFICATION: deregister the function of clearing handlers from 'mouseout' event
1971
- .unbind( "mouseout", checkAndClearTapHandlersOnMouseout );
1972
- $document.unbind( "vmousecancel", clearTapHandlers )
1973
- // SAP MODIFICATION: deregister the function of clearing handlers from 'mouseup' event
1974
- // on document
1975
- .unbind( "vmouseup", checkAndClearTapHandlers );
1970
+ // SAP MODIFICATION: terminate the firing of 'tap' event if 'mouseup' event occurs
1971
+ // out of the 'mousedown' target
1972
+ function checkAndClearTapHandlers( mouseUpEvent ) {
1973
+ // if the mouseup event occurs out of the origin target of the mousedown event,
1974
+ // unbind all of the listeners
1975
+ if (mouseUpEvent.target !== mouseDownTarget && !$.contains(mouseDownTarget, mouseUpEvent.target) && !buttonTappedInEdgeBrowser( mouseUpEvent )) {
1976
+ clearTapHandlers();
1976
1977
  }
1978
+ }
1977
1979
 
1978
- // SAP MODIFICATION: terminate the firing of 'tap' event if 'mouseup' event occurs
1979
- // out of the 'mousedown' target
1980
- function checkAndClearTapHandlers( mouseUpEvent ) {
1981
- // if the mouseup event occurs out of the origin target of the mousedown event,
1982
- // unbind all of the listeners
1983
- if (mouseUpEvent.target !== mouseDownTarget && !$.contains(mouseDownTarget, mouseUpEvent.target) && !buttonTappedInEdgeBrowser( mouseUpEvent )) {
1984
- clearTapHandlers();
1985
- }
1980
+ function clickHandler( event ) {
1981
+ clearTapHandlers();
1982
+
1983
+ // ONLY trigger a 'tap' event if the start target is
1984
+ // the same as the stop target.
1985
+ if ( mouseDownTarget === event.target || buttonTappedInEdgeBrowser( event )) {
1986
+ triggerCustomEvent( thisObject, "tap", event );
1986
1987
  }
1988
+ }
1987
1989
 
1988
- // SAP MODIFICATION: terminate the firing of 'tap" event if the element on the same coordinate as the
1989
- // mouse down event is changed when the 'mouseout' event is fired
1990
- // This is needed because BlockLayerUtils swallows the mouseup event and the checkAndClearTapHandlers
1991
- // can't terminate the fire of 'tap'
1992
- function checkAndClearTapHandlersOnMouseout() {
1993
- // some event objects which are fired in tests are mocked and don't have coordinates set correctly
1994
- if (oMouseDownCoord.x !== undefined && oMouseDownCoord.y !== undefined) {
1995
- // get the topmost dom element on the same coordinate as in the mousedown event
1996
- var dom = document.elementFromPoint(oMouseDownCoord.x, oMouseDownCoord.y);
1997
-
1998
- // when it's a different element than the mousedown target, it means that there's
1999
- // already some layer rendered on top of the mousedown target, and the browser
2000
- // won't fire the mouseup event on the mousedown target anymore. We need to clear
2001
- // tap handler by ourselves.
2002
- if (dom !== mouseDownTarget) {
2003
- clearTapHandlers();
2004
- }
2005
- }
1990
+
1991
+ $this.bind( "vmousedown", function( event ) {
1992
+ if ( event.which && event.which !== 1 ) {
1993
+ // SAP MODIFICATION: 'return false' is changed with 'return' to let the event
1994
+ // still propagate to the parent DOMs.
1995
+ return;
2006
1996
  }
2007
1997
 
2008
- function clickHandler( event ) {
2009
- clearTapHandlers();
1998
+ mouseDownTarget = event.target;
1999
+ mouseDownEvent = event.originalEvent;
2010
2000
 
2011
- // ONLY trigger a 'tap' event if the start target is
2012
- // the same as the stop target.
2013
- if ( mouseDownTarget === event.target || buttonTappedInEdgeBrowser( event )) {
2014
- triggerCustomEvent( thisObject, "tap", event );
2015
- }
2001
+ // SAP MODIFICATION: if the previous event handlers aren't cleared due to missing "mouseup" event, first
2002
+ // clear the event handlers
2003
+ if ($this.data("__tap_event_in_progress")) {
2004
+ clearTapHandlers();
2016
2005
  }
2006
+ // SAP MODIFICATION: set the mark that the tap event is in progress
2007
+ $this.data("__tap_event_in_progress", "X");
2017
2008
 
2018
2009
  $this.bind( "vmouseup", clearTapTimer )
2019
- .bind( "vclick", clickHandler )
2020
- // SAP MODIFICATION: register the function of clearing handlers to the 'mouseout' event
2021
- .bind( "mouseout", checkAndClearTapHandlersOnMouseout );
2010
+ .bind( "vclick", clickHandler );
2022
2011
  $document.bind( "vmousecancel", clearTapHandlers )
2023
2012
  // SAP MODIFICATION: register the function of clearing handlers to 'mouseup' event
2024
2013
  // on document
@@ -193,7 +193,12 @@ $.extend(Datepicker.prototype, {
193
193
  inst.append.remove();
194
194
  }
195
195
  if (appendText) {
196
- inst.append = $("<span class='" + this._appendClass + "'>" + appendText + "</span>");
196
+ // ##### BEGIN: MODIFIED BY SAP
197
+ // inst.append = $("<span class='" + this._appendClass + "'>" + appendText + "</span>");
198
+ inst.append = $( "<span></span>" )
199
+ .addClass( this._appendClass )
200
+ .text( appendText );
201
+ // ##### END: MODIFIED BY SAP
197
202
  input[isRTL ? "before" : "after"](inst.append);
198
203
  }
199
204
 
@@ -210,12 +215,43 @@ $.extend(Datepicker.prototype, {
210
215
  if (showOn === "button" || showOn === "both") { // pop-up date picker when button clicked
211
216
  buttonText = this._get(inst, "buttonText");
212
217
  buttonImage = this._get(inst, "buttonImage");
213
- inst.trigger = $(this._get(inst, "buttonImageOnly") ?
218
+
219
+ // ##### BEGIN: MODIFIED BY SAP
220
+ /*
221
+ inst.trigger = $( this._get(inst, "buttonImageOnly" ) ?
214
222
  $("<img/>").addClass(this._triggerClass).
215
223
  attr({ src: buttonImage, alt: buttonText, title: buttonText }) :
216
224
  $("<button type='button'></button>").addClass(this._triggerClass).
217
225
  html(!buttonImage ? buttonText : $("<img/>").attr(
218
226
  { src:buttonImage, alt:buttonText, title:buttonText })));
227
+ */
228
+
229
+ if ( this._get( inst, "buttonImageOnly" ) ) {
230
+ inst.trigger = $( "<img>" )
231
+ .addClass( this._triggerClass )
232
+ .attr( {
233
+ src: buttonImage,
234
+ alt: buttonText,
235
+ title: buttonText
236
+ } );
237
+ } else {
238
+ inst.trigger = $( "<button type='button'></button>" )
239
+ .addClass( this._triggerClass );
240
+ if ( buttonImage ) {
241
+ inst.trigger.html(
242
+ $( "<img>" )
243
+ .attr( {
244
+ src: buttonImage,
245
+ alt: buttonText,
246
+ title: buttonText
247
+ } )
248
+ );
249
+ } else {
250
+ inst.trigger.text( buttonText );
251
+ }
252
+ }
253
+ // ##### END: MODIFIED BY SAP
254
+
219
255
  input[isRTL ? "before" : "after"](inst.trigger);
220
256
  inst.trigger.click(function() {
221
257
  if ($.datepicker._datepickerShowing && $.datepicker._lastInput === input[0]) {
@@ -1024,7 +1060,10 @@ $.extend(Datepicker.prototype, {
1024
1060
  altFormat = this._get(inst, "altFormat") || this._get(inst, "dateFormat");
1025
1061
  date = this._getDate(inst);
1026
1062
  dateStr = this.formatDate(altFormat, date, this._getFormatConfig(inst));
1027
- $(altField).each(function() { $(this).val(dateStr); });
1063
+ // ##### BEGIN: MODIFIED BY SAP
1064
+ // $(altField).each(function() { $(this).val(dateStr); });
1065
+ $( document ).find( altField ).val( dateStr );
1066
+ // ##### END: MODIFIED BY SAP
1028
1067
  }
1029
1068
  },
1030
1069
 
@@ -1628,32 +1667,133 @@ $.extend(Datepicker.prototype, {
1628
1667
  this._daylightSavingAdjust(new Date(drawYear, drawMonth - stepMonths, 1)),
1629
1668
  this._getFormatConfig(inst)));
1630
1669
 
1670
+ // ##### BEGIN: MODIFIED BY SAP
1671
+ /*
1631
1672
  prev = (this._canAdjustMonth(inst, -1, drawYear, drawMonth) ?
1632
1673
  "<a class='ui-datepicker-prev ui-corner-all' data-handler='prev' data-event='click'" +
1633
1674
  " title='" + prevText + "'><span class='ui-icon ui-icon-circle-triangle-" + ( isRTL ? "e" : "w") + "'>" + prevText + "</span></a>" :
1634
1675
  (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>"));
1676
+ */
1677
+
1678
+ if ( this._canAdjustMonth( inst, -1, drawYear, drawMonth ) ) {
1679
+ prev = $( "<a></a>" )
1680
+ .attr( {
1681
+ "class": "ui-datepicker-prev ui-corner-all",
1682
+ "data-handler": "prev",
1683
+ "data-event": "click",
1684
+ title: prevText
1685
+ } )
1686
+ .append(
1687
+ $( "<span></span>" )
1688
+ .addClass( "ui-icon ui-icon-circle-triangle-" +
1689
+ ( isRTL ? "e" : "w" ) )
1690
+ .text( prevText )
1691
+ )[ 0 ].outerHTML;
1692
+ } else if ( hideIfNoPrevNext ) {
1693
+ prev = "";
1694
+ } else {
1695
+ prev = $( "<a></a>" )
1696
+ .attr( {
1697
+ "class": "ui-datepicker-prev ui-corner-all ui-state-disabled",
1698
+ title: prevText
1699
+ } )
1700
+ .append(
1701
+ $( "<span></span>" )
1702
+ .addClass( "ui-icon ui-icon-circle-triangle-" +
1703
+ ( isRTL ? "e" : "w" ) )
1704
+ .text( prevText )
1705
+ )[ 0 ].outerHTML;
1706
+ }
1707
+ // ##### END: MODIFIED BY SAP
1635
1708
 
1636
1709
  nextText = this._get(inst, "nextText");
1637
1710
  nextText = (!navigationAsDateFormat ? nextText : this.formatDate(nextText,
1638
1711
  this._daylightSavingAdjust(new Date(drawYear, drawMonth + stepMonths, 1)),
1639
1712
  this._getFormatConfig(inst)));
1640
1713
 
1714
+ // ##### BEGIN: MODIFIED BY SAP
1715
+ /*
1641
1716
  next = (this._canAdjustMonth(inst, +1, drawYear, drawMonth) ?
1642
1717
  "<a class='ui-datepicker-next ui-corner-all' data-handler='next' data-event='click'" +
1643
1718
  " title='" + nextText + "'><span class='ui-icon ui-icon-circle-triangle-" + ( isRTL ? "w" : "e") + "'>" + nextText + "</span></a>" :
1644
1719
  (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>"));
1720
+ */
1721
+
1722
+ if ( this._canAdjustMonth( inst, +1, drawYear, drawMonth ) ) {
1723
+ next = $( "<a></a>" )
1724
+ .attr( {
1725
+ "class": "ui-datepicker-next ui-corner-all",
1726
+ "data-handler": "next",
1727
+ "data-event": "click",
1728
+ title: nextText
1729
+ } )
1730
+ .append(
1731
+ $( "<span></span>" )
1732
+ .addClass( "ui-icon ui-icon-circle-triangle-" +
1733
+ ( isRTL ? "w" : "e" ) )
1734
+ .text( nextText )
1735
+ )[ 0 ].outerHTML;
1736
+ } else if ( hideIfNoPrevNext ) {
1737
+ next = "";
1738
+ } else {
1739
+ next = $( "<a></a>" )
1740
+ .attr( {
1741
+ "class": "ui-datepicker-next ui-corner-all ui-state-disabled",
1742
+ title: nextText
1743
+ } )
1744
+ .append(
1745
+ $( "<span></span>" )
1746
+ .attr( "class", "ui-icon ui-icon-circle-triangle-" +
1747
+ ( isRTL ? "w" : "e" ) )
1748
+ .text( nextText )
1749
+ )[ 0 ].outerHTML;
1750
+ }
1751
+ // ##### END: MODIFIED BY SAP
1645
1752
 
1646
1753
  currentText = this._get(inst, "currentText");
1647
1754
  gotoDate = (this._get(inst, "gotoCurrent") && inst.currentDay ? currentDate : today);
1648
1755
  currentText = (!navigationAsDateFormat ? currentText :
1649
1756
  this.formatDate(currentText, gotoDate, this._getFormatConfig(inst)));
1650
1757
 
1758
+ // ##### BEGIN: MODIFIED BY SAP
1759
+ /*
1651
1760
  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'>" +
1652
1761
  this._get(inst, "closeText") + "</button>" : "");
1653
1762
 
1654
1763
  buttonPanel = (showButtonPanel) ? "<div class='ui-datepicker-buttonpane ui-widget-content'>" + (isRTL ? controls : "") +
1655
1764
  (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'" +
1656
1765
  ">" + currentText + "</button>" : "") + (isRTL ? "" : controls) + "</div>" : "";
1766
+ */
1767
+
1768
+ controls = "";
1769
+ if ( !inst.inline ) {
1770
+ controls = $( "<button></button>" )
1771
+ .attr( {
1772
+ type: "button",
1773
+ "class": "ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all",
1774
+ "data-handler": "hide",
1775
+ "data-event": "click"
1776
+ } )
1777
+ .text( this._get( inst, "closeText" ) )[ 0 ].outerHTML;
1778
+ }
1779
+
1780
+ buttonPanel = "";
1781
+ if ( showButtonPanel ) {
1782
+ buttonPanel = $( "<div class='ui-datepicker-buttonpane ui-widget-content'></div>" )
1783
+ .append( isRTL ? controls : "" )
1784
+ .append( this._isInRange( inst, gotoDate ) ?
1785
+ $( "<button></button>" )
1786
+ .attr( {
1787
+ type: "button",
1788
+ "class": "ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all",
1789
+ "data-handler": "today",
1790
+ "data-event": "click"
1791
+ } )
1792
+ .text( currentText ) :
1793
+ "" )
1794
+ .append( isRTL ? "" : controls )[ 0 ].outerHTML;
1795
+ }
1796
+ // ##### END: MODIFIED BY SAP
1657
1797
 
1658
1798
  firstDay = parseInt(this._get(inst, "firstDay"),10);
1659
1799
  firstDay = (isNaN(firstDay) ? 0 : firstDay);
@@ -139,7 +139,14 @@ $.fn.position = function( options ) {
139
139
  options = $.extend( {}, options );
140
140
 
141
141
  var atOffset, targetWidth, targetHeight, targetOffset, basePosition, dimensions,
142
- target = $( options.of ),
142
+ // ##### BEGIN: MODIFIED BY SAP
143
+ // target = $( options.of ),
144
+
145
+ // Make sure string options are treated as CSS selectors
146
+ target = typeof options.of === "string" ?
147
+ $( document ).find( options.of ) :
148
+ $( options.of ),
149
+ // ##### END: MODIFIED BY SAP
143
150
  within = $.position.getWithinInfo( options.within ),
144
151
  scrollInfo = $.position.getScrollInfo( within ),
145
152
  collision = ( options.collision || "flip" ).split( " " ),
@@ -292,7 +292,14 @@ function JSZip(data, options) {
292
292
  // "folder/" : {...},
293
293
  // "folder/data.txt" : {...}
294
294
  // }
295
- this.files = {};
295
+ // ##### BEGIN: MODIFIED BY SAP
296
+ // gh-762
297
+ // this.files = {};
298
+ // NOTE: we use a null prototype because we do not
299
+ // want filenames like "toString" coming from a zip file
300
+ // to overwrite methods and attributes in a normal Object.
301
+ this.files = Object.create(null);
302
+ // ##### END: MODIFIED BY SAP
296
303
 
297
304
  // Where we are in the hierarchy
298
305
  this.root = "";
@@ -905,9 +912,11 @@ var out = {
905
912
  var result = [],
906
913
  filename, relativePath, file, fileClone;
907
914
  for (filename in this.files) {
908
- if (!this.files.hasOwnProperty(filename)) {
909
- continue;
910
- }
915
+ // ##### BEGIN: MODIFIED BY SAP
916
+ // if (!this.files.hasOwnProperty(filename)) {
917
+ // continue;
918
+ // }
919
+ // ##### END: MODIFIED BY SAP
911
920
  file = this.files[filename];
912
921
  // return a new object, don't let the user mess with our internal objects :)
913
922
  fileClone = new ZipObject(file.name, file._data, extend(file.options));
@@ -1036,9 +1045,11 @@ var out = {
1036
1045
 
1037
1046
  // first, generate all the zip parts.
1038
1047
  for (var name in this.files) {
1039
- if (!this.files.hasOwnProperty(name)) {
1040
- continue;
1041
- }
1048
+ // ##### BEGIN: MODIFIED BY SAP
1049
+ // if (!this.files.hasOwnProperty(name)) {
1050
+ // continue;
1051
+ // }
1052
+ // ##### END: MODIFIED BY SAP
1042
1053
  var file = this.files[name];
1043
1054
 
1044
1055
  var compressionName = file.options.compression || options.compression.toUpperCase();
@@ -186,7 +186,7 @@ Mobify.UI.Carousel = (function($, Utils) {
186
186
 
187
187
  this.element = element;
188
188
  this.$element = $(element);
189
- this.$inner = this.$element.find('.' + this._getClass('inner'));
189
+ this.$inner = this.$element.find('> .' + this._getClass('inner'));
190
190
  this.$items = this.$inner.children();
191
191
 
192
192
  this.$start = this.$items.eq(0);
@@ -244,7 +244,7 @@ sap.ui.define(["sap/base/assert"], function (assert) {
244
244
  *
245
245
  * @enum {string}
246
246
  * @public
247
- * @version 1.71.41
247
+ * @version 1.71.44
248
248
  */
249
249
  Storage.Type = {
250
250
  /**