@openui5/sap.ui.core 1.104.0 → 1.105.1

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 (294) hide show
  1. package/.reuse/dep5 +1 -1
  2. package/THIRDPARTY.txt +1 -1
  3. package/package.json +1 -1
  4. package/src/jquery.sap.global.js +1 -1
  5. package/src/jquery.sap.properties.js +1 -1
  6. package/src/jquery.sap.resources.js +1 -1
  7. package/src/jquery.sap.script.js +1 -1
  8. package/src/jquery.sap.storage.js +3 -3
  9. package/src/sap/base/util/fetch.js +3 -0
  10. package/src/sap/base/util/restricted/_CancelablePromise.js +1 -1
  11. package/src/sap/base/util/restricted/_castArray.js +1 -1
  12. package/src/sap/base/util/restricted/_compact.js +1 -1
  13. package/src/sap/base/util/restricted/_curry.js +1 -1
  14. package/src/sap/base/util/restricted/_debounce.js +1 -1
  15. package/src/sap/base/util/restricted/_difference.js +1 -1
  16. package/src/sap/base/util/restricted/_differenceBy.js +1 -1
  17. package/src/sap/base/util/restricted/_differenceWith.js +1 -1
  18. package/src/sap/base/util/restricted/_flatMap.js +1 -1
  19. package/src/sap/base/util/restricted/_flatMapDeep.js +1 -1
  20. package/src/sap/base/util/restricted/_flatMapDepth.js +1 -1
  21. package/src/sap/base/util/restricted/_flatten.js +1 -1
  22. package/src/sap/base/util/restricted/_flattenDeep.js +1 -1
  23. package/src/sap/base/util/restricted/_flattenDepth.js +1 -1
  24. package/src/sap/base/util/restricted/_intersection.js +1 -1
  25. package/src/sap/base/util/restricted/_intersectionBy.js +1 -1
  26. package/src/sap/base/util/restricted/_intersectionWith.js +1 -1
  27. package/src/sap/base/util/restricted/_isEqual.js +1 -1
  28. package/src/sap/base/util/restricted/_isEqualWith.js +1 -1
  29. package/src/sap/base/util/restricted/_isNil.js +1 -1
  30. package/src/sap/base/util/restricted/_max.js +1 -1
  31. package/src/sap/base/util/restricted/_merge.js +1 -1
  32. package/src/sap/base/util/restricted/_mergeWith.js +1 -1
  33. package/src/sap/base/util/restricted/_min.js +1 -1
  34. package/src/sap/base/util/restricted/_omit.js +1 -1
  35. package/src/sap/base/util/restricted/_pick.js +1 -1
  36. package/src/sap/base/util/restricted/_pickBy.js +1 -1
  37. package/src/sap/base/util/restricted/_throttle.js +1 -1
  38. package/src/sap/base/util/restricted/_toArray.js +1 -1
  39. package/src/sap/base/util/restricted/_union.js +1 -1
  40. package/src/sap/base/util/restricted/_unionBy.js +1 -1
  41. package/src/sap/base/util/restricted/_unionWith.js +1 -1
  42. package/src/sap/base/util/restricted/_uniq.js +1 -1
  43. package/src/sap/base/util/restricted/_uniqBy.js +1 -1
  44. package/src/sap/base/util/restricted/_uniqWith.js +1 -1
  45. package/src/sap/base/util/restricted/_without.js +1 -1
  46. package/src/sap/base/util/restricted/_xor.js +1 -1
  47. package/src/sap/base/util/restricted/_xorBy.js +1 -1
  48. package/src/sap/base/util/restricted/_xorWith.js +1 -1
  49. package/src/sap/base/util/restricted/_zipObject.js +1 -1
  50. package/src/sap/base/util/restricted/_zipObjectDeep.js +1 -1
  51. package/src/sap/ui/Device.js +5 -5
  52. package/src/sap/ui/Global.js +4 -4
  53. package/src/sap/ui/base/Event.js +1 -1
  54. package/src/sap/ui/base/EventProvider.js +1 -1
  55. package/src/sap/ui/base/Interface.js +1 -1
  56. package/src/sap/ui/base/ManagedObject.js +1 -1
  57. package/src/sap/ui/base/ManagedObjectMetadata.js +1 -1
  58. package/src/sap/ui/base/ManagedObjectObserver.js +2 -2
  59. package/src/sap/ui/base/Metadata.js +1 -1
  60. package/src/sap/ui/base/Object.js +1 -1
  61. package/src/sap/ui/base/ObjectPool.js +1 -1
  62. package/src/sap/ui/core/.library +54 -51
  63. package/src/sap/ui/core/AccessKeysEnablement.js +173 -0
  64. package/src/sap/ui/core/BusyIndicator.js +1 -1
  65. package/src/sap/ui/core/Component.js +1 -1
  66. package/src/sap/ui/core/ComponentContainer.js +1 -1
  67. package/src/sap/ui/core/ComponentMetadata.js +11 -11
  68. package/src/sap/ui/core/ComponentSupport.js +1 -1
  69. package/src/sap/ui/core/Configuration.js +33 -5
  70. package/src/sap/ui/core/Control.js +1 -1
  71. package/src/sap/ui/core/Core.js +1 -1
  72. package/src/sap/ui/core/CustomData.js +1 -1
  73. package/src/sap/ui/core/DeclarativeSupport.js +1 -1
  74. package/src/sap/ui/core/Element.js +1 -1
  75. package/src/sap/ui/core/ElementMetadata.js +6 -4
  76. package/src/sap/ui/core/EnabledPropagator.js +1 -1
  77. package/src/sap/ui/core/EventBus.js +1 -1
  78. package/src/sap/ui/core/ExtensionPoint.js +2 -2
  79. package/src/sap/ui/core/Fragment.js +1 -1
  80. package/src/sap/ui/core/HTML.js +1 -1
  81. package/src/sap/ui/core/History.js +1 -1
  82. package/src/sap/ui/core/Icon.js +1 -1
  83. package/src/sap/ui/core/IndicationColorSupport.js +1 -1
  84. package/src/sap/ui/core/IntervalTrigger.js +1 -1
  85. package/src/sap/ui/core/InvisibleMessage.js +1 -1
  86. package/src/sap/ui/core/InvisibleRenderer.js +1 -1
  87. package/src/sap/ui/core/InvisibleText.js +1 -1
  88. package/src/sap/ui/core/Item.js +1 -1
  89. package/src/sap/ui/core/LabelEnablement.js +1 -1
  90. package/src/sap/ui/core/LayoutData.js +1 -1
  91. package/src/sap/ui/core/ListItem.js +1 -1
  92. package/src/sap/ui/core/LocalBusyIndicator.js +1 -1
  93. package/src/sap/ui/core/Locale.js +1 -1
  94. package/src/sap/ui/core/LocaleData.js +2 -3
  95. package/src/sap/ui/core/Manifest.js +3 -5
  96. package/src/sap/ui/core/Message.js +1 -1
  97. package/src/sap/ui/core/Popup.js +12 -7
  98. package/src/sap/ui/core/RenderManager.js +1 -1
  99. package/src/sap/ui/core/Renderer.js +1 -1
  100. package/src/sap/ui/core/ResizeHandler.js +1 -1
  101. package/src/sap/ui/core/ScrollBar.js +1 -1
  102. package/src/sap/ui/core/SeparatorItem.js +1 -1
  103. package/src/sap/ui/core/Title.js +1 -1
  104. package/src/sap/ui/core/TooltipBase.js +1 -1
  105. package/src/sap/ui/core/UIArea.js +1 -1
  106. package/src/sap/ui/core/UIComponent.js +1 -1
  107. package/src/sap/ui/core/UIComponentMetadata.js +1 -1
  108. package/src/sap/ui/core/ValueStateSupport.js +1 -1
  109. package/src/sap/ui/core/VariantLayoutData.js +1 -1
  110. package/src/sap/ui/core/XMLComposite.js +4 -1
  111. package/src/sap/ui/core/XMLCompositeMetadata.js +1 -1
  112. package/src/sap/ui/core/_IconRegistry.js +1 -1
  113. package/src/sap/ui/core/date/Buddhist.js +4 -4
  114. package/src/sap/ui/core/date/UniversalDate.js +144 -34
  115. package/src/sap/ui/core/delegate/ItemNavigation.js +2 -2
  116. package/src/sap/ui/core/delegate/ScrollEnablement.js +1 -1
  117. package/src/sap/ui/core/dnd/DragDropBase.js +1 -1
  118. package/src/sap/ui/core/dnd/DragDropInfo.js +3 -3
  119. package/src/sap/ui/core/dnd/DragInfo.js +1 -1
  120. package/src/sap/ui/core/dnd/DropInfo.js +1 -1
  121. package/src/sap/ui/core/format/DateFormat.js +31 -9
  122. package/src/sap/ui/core/format/TimezoneUtil.js +1 -1
  123. package/src/sap/ui/core/hyphenation/Hyphenation.js +1 -1
  124. package/src/sap/ui/core/library.js +44 -3
  125. package/src/sap/ui/core/message/ControlMessageProcessor.js +1 -1
  126. package/src/sap/ui/core/message/Message.js +1 -1
  127. package/src/sap/ui/core/message/MessageManager.js +1 -1
  128. package/src/sap/ui/core/message/MessageParser.js +1 -1
  129. package/src/sap/ui/core/message/MessageProcessor.js +1 -1
  130. package/src/sap/ui/core/messagebundle.properties +2 -0
  131. package/src/sap/ui/core/messagebundle_cy.properties +1 -1
  132. package/src/sap/ui/core/messagebundle_el.properties +1 -1
  133. package/src/sap/ui/core/messagebundle_en.properties +57 -56
  134. package/src/sap/ui/core/messagebundle_en_GB.properties +57 -56
  135. package/src/sap/ui/core/messagebundle_fr.properties +1 -1
  136. package/src/sap/ui/core/messagebundle_fr_CA.properties +1 -1
  137. package/src/sap/ui/core/messagebundle_hi.properties +1 -1
  138. package/src/sap/ui/core/messagebundle_hu.properties +1 -1
  139. package/src/sap/ui/core/messagebundle_ko.properties +4 -4
  140. package/src/sap/ui/core/messagebundle_sh.properties +1 -1
  141. package/src/sap/ui/core/messagebundle_vi.properties +1 -1
  142. package/src/sap/ui/core/mvc/Controller.js +12 -12
  143. package/src/sap/ui/core/mvc/HTMLView.js +1 -1
  144. package/src/sap/ui/core/mvc/JSONView.js +1 -1
  145. package/src/sap/ui/core/mvc/JSView.js +1 -1
  146. package/src/sap/ui/core/mvc/TemplateView.js +1 -1
  147. package/src/sap/ui/core/mvc/View.js +7 -7
  148. package/src/sap/ui/core/mvc/XMLView.js +1 -1
  149. package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
  150. package/src/sap/ui/core/plugin/LessSupport.js +1 -1
  151. package/src/sap/ui/core/plugin/TemplatingSupport.js +1 -1
  152. package/src/sap/ui/core/postmessage/Bus.js +1 -1
  153. package/src/sap/ui/core/postmessage/confirmationDialog.js +1 -1
  154. package/src/sap/ui/core/routing/Router.js +3 -3
  155. package/src/sap/ui/core/search/OpenSearchProvider.js +2 -2
  156. package/src/sap/ui/core/search/SearchProvider.js +2 -2
  157. package/src/sap/ui/core/service/Service.js +1 -1
  158. package/src/sap/ui/core/service/ServiceFactory.js +1 -1
  159. package/src/sap/ui/core/service/ServiceFactoryRegistry.js +1 -1
  160. package/src/sap/ui/core/support/Plugin.js +1 -1
  161. package/src/sap/ui/core/support/Support.js +2 -3
  162. package/src/sap/ui/core/support/plugins/ControlTree.js +1 -1
  163. package/src/sap/ui/core/support/plugins/Debugging.js +1 -1
  164. package/src/sap/ui/core/support/plugins/Interaction.js +1 -1
  165. package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -1
  166. package/src/sap/ui/core/support/plugins/Performance.js +1 -1
  167. package/src/sap/ui/core/support/plugins/Selector.js +1 -1
  168. package/src/sap/ui/core/support/plugins/TechInfo.js +1 -1
  169. package/src/sap/ui/core/support/plugins/Trace.js +1 -1
  170. package/src/sap/ui/core/support/plugins/ViewInfo.js +2 -3
  171. package/src/sap/ui/core/themes/base/Icon.less +4 -0
  172. package/src/sap/ui/core/themes/base/global.less +5 -1
  173. package/src/sap/ui/core/themes/base/shared.less +6 -0
  174. package/src/sap/ui/core/tmpl/DOMAttribute.js +1 -1
  175. package/src/sap/ui/core/tmpl/DOMElement.js +1 -1
  176. package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +1 -1
  177. package/src/sap/ui/core/tmpl/Template.js +1 -1
  178. package/src/sap/ui/core/tmpl/TemplateControl.js +1 -1
  179. package/src/sap/ui/core/util/AsyncHintsHelper.js +1 -1
  180. package/src/sap/ui/core/util/Export.js +1 -1
  181. package/src/sap/ui/core/util/ExportCell.js +1 -1
  182. package/src/sap/ui/core/util/ExportColumn.js +1 -1
  183. package/src/sap/ui/core/util/ExportRow.js +1 -1
  184. package/src/sap/ui/core/util/ExportType.js +1 -1
  185. package/src/sap/ui/core/util/ExportTypeCSV.js +1 -1
  186. package/src/sap/ui/core/util/File.js +1 -1
  187. package/src/sap/ui/core/util/LibraryInfo.js +1 -1
  188. package/src/sap/ui/core/util/MockServer.js +1 -1
  189. package/src/sap/ui/core/util/PasteHelper.js +1 -1
  190. package/src/sap/ui/core/util/reflection/BaseTreeModifier.js +0 -3
  191. package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +1 -1
  192. package/src/sap/ui/core/util/serializer/Serializer.js +1 -1
  193. package/src/sap/ui/core/util/serializer/ViewSerializer.js +1 -1
  194. package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +1 -1
  195. package/src/sap/ui/core/util/serializer/delegate/Delegate.js +1 -1
  196. package/src/sap/ui/core/util/serializer/delegate/HTML.js +1 -1
  197. package/src/sap/ui/core/util/serializer/delegate/XML.js +1 -1
  198. package/src/sap/ui/core/ws/ReadyState.js +1 -1
  199. package/src/sap/ui/core/ws/SapPcpWebSocket.js +1 -1
  200. package/src/sap/ui/core/ws/WebSocket.js +1 -1
  201. package/src/sap/ui/debug/ControlTree.js +1 -1
  202. package/src/sap/ui/debug/DebugEnv.js +1 -1
  203. package/src/sap/ui/debug/PropertyList.js +1 -1
  204. package/src/sap/ui/model/ClientModel.js +1 -1
  205. package/src/sap/ui/model/CompositeDataState.js +1 -1
  206. package/src/sap/ui/model/CompositeType.js +1 -1
  207. package/src/sap/ui/model/DataState.js +1 -1
  208. package/src/sap/ui/model/MetaModel.js +1 -1
  209. package/src/sap/ui/model/Model.js +1 -1
  210. package/src/sap/ui/model/SelectionModel.js +1 -1
  211. package/src/sap/ui/model/SimpleType.js +1 -1
  212. package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
  213. package/src/sap/ui/model/Type.js +1 -1
  214. package/src/sap/ui/model/_Helper.js +3 -1
  215. package/src/sap/ui/model/base/ManagedObjectModel.js +2 -2
  216. package/src/sap/ui/model/json/JSONModel.js +1 -1
  217. package/src/sap/ui/model/message/MessageModel.js +1 -1
  218. package/src/sap/ui/model/odata/ODataAnnotations.js +1 -1
  219. package/src/sap/ui/model/odata/ODataMessageParser.js +4 -4
  220. package/src/sap/ui/model/odata/ODataMetaModel.js +31 -8
  221. package/src/sap/ui/model/odata/ODataMetadata.js +1 -1
  222. package/src/sap/ui/model/odata/ODataModel.js +1 -1
  223. package/src/sap/ui/model/odata/ODataTreeBindingFlat.js +332 -182
  224. package/src/sap/ui/model/odata/type/Boolean.js +1 -1
  225. package/src/sap/ui/model/odata/type/Byte.js +1 -1
  226. package/src/sap/ui/model/odata/type/Currency.js +1 -1
  227. package/src/sap/ui/model/odata/type/Date.js +1 -1
  228. package/src/sap/ui/model/odata/type/DateTime.js +1 -1
  229. package/src/sap/ui/model/odata/type/DateTimeBase.js +1 -1
  230. package/src/sap/ui/model/odata/type/DateTimeOffset.js +1 -1
  231. package/src/sap/ui/model/odata/type/DateTimeWithTimezone.js +1 -1
  232. package/src/sap/ui/model/odata/type/Decimal.js +1 -1
  233. package/src/sap/ui/model/odata/type/Double.js +1 -1
  234. package/src/sap/ui/model/odata/type/Guid.js +1 -1
  235. package/src/sap/ui/model/odata/type/Int.js +1 -1
  236. package/src/sap/ui/model/odata/type/Int16.js +1 -1
  237. package/src/sap/ui/model/odata/type/Int32.js +1 -1
  238. package/src/sap/ui/model/odata/type/Int64.js +1 -1
  239. package/src/sap/ui/model/odata/type/ODataType.js +1 -1
  240. package/src/sap/ui/model/odata/type/Raw.js +1 -1
  241. package/src/sap/ui/model/odata/type/SByte.js +1 -1
  242. package/src/sap/ui/model/odata/type/Single.js +1 -1
  243. package/src/sap/ui/model/odata/type/Stream.js +1 -1
  244. package/src/sap/ui/model/odata/type/String.js +1 -1
  245. package/src/sap/ui/model/odata/type/Time.js +1 -1
  246. package/src/sap/ui/model/odata/type/TimeOfDay.js +1 -1
  247. package/src/sap/ui/model/odata/type/Unit.js +1 -1
  248. package/src/sap/ui/model/odata/v2/Context.js +1 -1
  249. package/src/sap/ui/model/odata/v2/ODataAnnotations.js +1 -1
  250. package/src/sap/ui/model/odata/v2/ODataListBinding.js +25 -0
  251. package/src/sap/ui/model/odata/v2/ODataModel.js +50 -19
  252. package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +4 -1
  253. package/src/sap/ui/model/odata/v4/Context.js +84 -30
  254. package/src/sap/ui/model/odata/v4/ODataBinding.js +8 -8
  255. package/src/sap/ui/model/odata/v4/ODataContextBinding.js +26 -27
  256. package/src/sap/ui/model/odata/v4/ODataListBinding.js +217 -133
  257. package/src/sap/ui/model/odata/v4/ODataMetaModel.js +1 -1
  258. package/src/sap/ui/model/odata/v4/ODataModel.js +3 -2
  259. package/src/sap/ui/model/odata/v4/ODataParentBinding.js +10 -13
  260. package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +4 -4
  261. package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +135 -28
  262. package/src/sap/ui/model/odata/v4/lib/_AggregationHelper.js +133 -16
  263. package/src/sap/ui/model/odata/v4/lib/_Cache.js +278 -143
  264. package/src/sap/ui/model/odata/v4/lib/_Helper.js +31 -9
  265. package/src/sap/ui/model/odata/v4/lib/_Requestor.js +5 -5
  266. package/src/sap/ui/model/resource/ResourceModel.js +1 -1
  267. package/src/sap/ui/model/type/Boolean.js +1 -1
  268. package/src/sap/ui/model/type/Currency.js +1 -1
  269. package/src/sap/ui/model/type/Date.js +1 -1
  270. package/src/sap/ui/model/type/DateInterval.js +1 -1
  271. package/src/sap/ui/model/type/DateTime.js +1 -1
  272. package/src/sap/ui/model/type/DateTimeInterval.js +1 -1
  273. package/src/sap/ui/model/type/FileSize.js +1 -1
  274. package/src/sap/ui/model/type/Float.js +1 -1
  275. package/src/sap/ui/model/type/Integer.js +1 -1
  276. package/src/sap/ui/model/type/String.js +1 -1
  277. package/src/sap/ui/model/type/Time.js +1 -1
  278. package/src/sap/ui/model/type/TimeInterval.js +1 -1
  279. package/src/sap/ui/model/type/Unit.js +1 -1
  280. package/src/sap/ui/model/xml/XMLModel.js +4 -2
  281. package/src/sap/ui/performance/trace/FESR.js +27 -24
  282. package/src/sap/ui/performance/trace/Interaction.js +66 -16
  283. package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
  284. package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +1 -1
  285. package/src/sap/ui/test/actions/Press.js +7 -0
  286. package/src/sap/ui/test/generic/TestBase.js +1 -1
  287. package/src/sap/ui/test/matchers/AggregationContainsPropertyEqual.js +2 -3
  288. package/src/sap/ui/test/matchers/AggregationFilled.js +2 -3
  289. package/src/sap/ui/test/matchers/AggregationLengthEquals.js +2 -3
  290. package/src/sap/ui/test/opaQunit.js +11 -6
  291. package/src/sap/ui/test/pipelines/ActionPipeline.js +2 -3
  292. package/src/sap/ui/test/pipelines/MatcherPipeline.js +2 -3
  293. package/src/sap/ui/test/pipelines/PipelineFactory.js +2 -3
  294. package/src/sap/ui/util/Storage.js +1 -1
@@ -175,7 +175,7 @@ sap.ui.define([
175
175
  *
176
176
  * @extends sap.ui.base.ManagedObject
177
177
  * @author SAP SE
178
- * @version 1.104.0
178
+ * @version 1.105.1
179
179
  * @param {sap.ui.core.Core} oCore internal API of the <core>Core</code> that manages this UIArea
180
180
  * @param {object} [oRootNode] reference to the DOM element that should be 'hosting' the UI Area.
181
181
  * @public
@@ -54,7 +54,7 @@ sap.ui.define([
54
54
  * @extends sap.ui.core.Component
55
55
  * @abstract
56
56
  * @author SAP SE
57
- * @version 1.104.0
57
+ * @version 1.105.1
58
58
  * @alias sap.ui.core.UIComponent
59
59
  * @since 1.9.2
60
60
  * @ui5-metamodel This control/element also will be described in the UI5 (legacy) designtime metamodel
@@ -18,7 +18,7 @@ sap.ui.define(['./ComponentMetadata', 'sap/ui/core/mvc/ViewType'],
18
18
  * @experimental Since 1.15.1. The Component concept is still under construction, so some implementation details can be changed in future.
19
19
  * @class
20
20
  * @author SAP SE
21
- * @version 1.104.0
21
+ * @version 1.105.1
22
22
  * @since 1.15.1
23
23
  * @alias sap.ui.core.UIComponentMetadata
24
24
  * @extends sap.ui.core.ComponentMetadata
@@ -16,7 +16,7 @@ sap.ui.define(['./Element', './library', "sap/base/assert"],
16
16
  * Helper functionality for value state support.
17
17
  *
18
18
  * @author SAP SE
19
- * @version 1.104.0
19
+ * @version 1.105.1
20
20
  * @public
21
21
  * @namespace sap.ui.core.ValueStateSupport
22
22
  */
@@ -20,7 +20,7 @@ sap.ui.define(['./LayoutData', './library'],
20
20
  * @class
21
21
  * Allows to add multiple LayoutData to one control in case that an easy switch of layouts (e.g. in a Form) is needed.
22
22
  * @extends sap.ui.core.LayoutData
23
- * @version 1.104.0
23
+ * @version 1.105.1
24
24
  *
25
25
  * @public
26
26
  * @since 1.9.2
@@ -136,6 +136,9 @@ sap.ui.define([
136
136
  * }
137
137
  * </pre>
138
138
  *
139
+ * <b>Note:</b> {@link topic:b11d853a8e784db6b2d210ef57b0f7d7 Requiring modules in XML} will result in side effects that might cause the XMLComposite to not work properly.
140
+ * We suggest you require the needed modules inside the JavaScript coding of the class extending the XMLComposite.
141
+ *
139
142
  * @see sap.ui.core.Control
140
143
  * @see sap.ui.core.Fragment
141
144
  *
@@ -143,7 +146,7 @@ sap.ui.define([
143
146
  * @extends sap.ui.core.Control
144
147
  *
145
148
  * @author SAP SE
146
- * @version 1.104.0
149
+ * @version 1.105.1
147
150
  * @since 1.56.0
148
151
  * @alias sap.ui.core.XMLComposite
149
152
  * @see {@link topic:b83a4dcb7d0e46969027345b8d32fd44 XML Composite Controls}
@@ -30,7 +30,7 @@ sap.ui.define([
30
30
  * @param {object} oClassInfo static info to construct the metadata from
31
31
  *
32
32
  * @author SAP SE
33
- * @version 1.104.0
33
+ * @version 1.105.1
34
34
  * @since 1.50.0
35
35
  * @alias sap.ui.core.XMLCompositeMetadata
36
36
  * @extends sap.ui.core.ElementMetadata
@@ -723,7 +723,7 @@ sap.ui.define([
723
723
  'heart-2': 0xe294,
724
724
  'paint-bucket': 0xe29b,
725
725
  'tri-state': 0xe295,
726
- 'binary': 0xe29d,
726
+ 'non-binary': 0xe29d,
727
727
  'direction-arrows': 0xe29c,
728
728
  'female': 0xe29e,
729
729
  'gender-male-and-female': 0x1e300,
@@ -52,8 +52,8 @@ sap.ui.define(['./UniversalDate', '../CalendarType', './_Calendars'],
52
52
  /**
53
53
  * Find the matching Buddhist date for the given gregorian date
54
54
  *
55
- * @param {{year:int,month:int,day:int}} oGregorian Gregorian date
56
- * @return {{year:int,month:int,day:int}} the resulting Buddhist date
55
+ * @param {{year: int, month: int, day: int}} oGregorian Gregorian date
56
+ * @return {{year: int, month: int, day: int}} the resulting Buddhist date
57
57
  */
58
58
  function toBuddhist(oGregorian) {
59
59
  var iEraStartYear = UniversalDate.getEraStartDate(CalendarType.Buddhist, 0).year,
@@ -75,8 +75,8 @@ sap.ui.define(['./UniversalDate', '../CalendarType', './_Calendars'],
75
75
  /**
76
76
  * Calculate gregorian year from Buddhist year and month
77
77
  *
78
- * @param {{year:int,month:int,day:int}} oBuddhist Buddhist date
79
- * @return {{year:int,month:int,day:int}} the resulting Gregorian date
78
+ * @param {{year: int, month: int, day: int}} oBuddhist Buddhist date
79
+ * @return {{year: int, month: int, day: int}} the resulting Gregorian date
80
80
  */
81
81
  function toGregorian(oBuddhist) {
82
82
  var iEraStartYear = UniversalDate.getEraStartDate(CalendarType.Buddhist, 0).year,
@@ -153,18 +153,64 @@ sap.ui.define(['sap/ui/base/Object', 'sap/ui/core/LocaleData', './_Calendars'],
153
153
  UniversalDate.prototype.setUTCEra = function(iEra) {
154
154
  // The default implementation does not support setting the era
155
155
  };
156
- UniversalDate.prototype.getWeek = function() {
157
- return UniversalDate.getWeekByDate(this.sCalendarType, this.getFullYear(), this.getMonth(), this.getDate());
156
+
157
+ /**
158
+ * Retrieves the calendar week
159
+ *
160
+ * @param {sap.ui.core.Locale} oLocale the locale used to get the calendar week calculation properties, defaults to the formatLocale
161
+ * @param {{firstDayOfWeek: int, minimalDaysInFirstWeek: int}} oWeekConfig calendar week calculation parameters,
162
+ * defaults to oLocale but has precedence over oLocale if both are provided.
163
+ * @returns {{week: number, year: number}} resulting calendar week, note: week index starts with <code>0</code>
164
+ * @private
165
+ */
166
+ UniversalDate.prototype.getWeek = function(oLocale, oWeekConfig) {
167
+ checkWeekConfig(oWeekConfig);
168
+ return UniversalDate.getWeekByDate(this.sCalendarType, this.getFullYear(), this.getMonth(), this.getDate(), oLocale, oWeekConfig);
158
169
  };
159
- UniversalDate.prototype.setWeek = function(oWeek) {
160
- var oDate = UniversalDate.getFirstDateOfWeek(this.sCalendarType, oWeek.year || this.getFullYear(), oWeek.week);
170
+
171
+ /**
172
+ * Sets the calendar week
173
+ *
174
+ * @param {{week: number, year: number}} oWeek the calendar week, note: week index starts with <code>0</code>,
175
+ * <code>oWeek.year</code> is optional and defaults to {@link sap.ui.core.date.UniversalDate#getFullYear}
176
+ * @param {sap.ui.core.Locale} oLocale the locale used to get the calendar week calculation properties, defaults to the formatLocale
177
+ * @param {{firstDayOfWeek: int, minimalDaysInFirstWeek: int}} oWeekConfig calendar week calculation parameters,
178
+ * defaults to oLocale but has precedence over oLocale if both are provided.
179
+ * @private
180
+ */
181
+ UniversalDate.prototype.setWeek = function(oWeek, oLocale, oWeekConfig) {
182
+ checkWeekConfig(oWeekConfig);
183
+ var oDate = UniversalDate.getFirstDateOfWeek(this.sCalendarType, oWeek.year || this.getFullYear(), oWeek.week, oLocale, oWeekConfig);
161
184
  this.setFullYear(oDate.year, oDate.month, oDate.day);
162
185
  };
163
- UniversalDate.prototype.getUTCWeek = function() {
164
- return UniversalDate.getWeekByDate(this.sCalendarType, this.getUTCFullYear(), this.getUTCMonth(), this.getUTCDate());
186
+
187
+ /**
188
+ * Retrieves the UTC calendar week
189
+ *
190
+ * @param {sap.ui.core.Locale} oLocale the locale used to get the calendar week calculation properties, defaults to the formatLocale
191
+ * @param {{firstDayOfWeek: int, minimalDaysInFirstWeek: int}} oWeekConfig calendar week calculation parameters,
192
+ * defaults to oLocale but has precedence over oLocale if both are provided.
193
+ * @returns {{week: number, year: number}} resulting calendar week, note: week index starts with <code>0</code>
194
+ * @private
195
+ */
196
+ UniversalDate.prototype.getUTCWeek = function(oLocale, oWeekConfig) {
197
+ checkWeekConfig(oWeekConfig);
198
+ return UniversalDate.getWeekByDate(this.sCalendarType, this.getUTCFullYear(), this.getUTCMonth(), this.getUTCDate(), oLocale, oWeekConfig);
165
199
  };
166
- UniversalDate.prototype.setUTCWeek = function(oWeek) {
167
- var oDate = UniversalDate.getFirstDateOfWeek(this.sCalendarType, oWeek.year || this.getFullYear(), oWeek.week);
200
+
201
+ /**
202
+ * Sets the UTC calendar week
203
+ *
204
+ * @param {{week: number, year: number}} oWeek the calendar week, note: week index starts with <code>0</code>,
205
+ * <code>oWeek.year</code> is optional and defaults to {@link sap.ui.core.date.UniversalDate#getFullYear}
206
+ * @param {sap.ui.core.Locale} oLocale the locale used to get the calendar week calculation properties, defaults to the formatLocale
207
+ * @param {{firstDayOfWeek: int, minimalDaysInFirstWeek: int}} oWeekConfig calendar week calculation parameters,
208
+ * defaults to oLocale but has precedence over oLocale if both are provided.
209
+ * @private
210
+ */
211
+ UniversalDate.prototype.setUTCWeek = function(oWeek, oLocale, oWeekConfig) {
212
+ checkWeekConfig(oWeekConfig);
213
+ var oDate = UniversalDate.getFirstDateOfWeek(this.sCalendarType, oWeek.year || this.getFullYear(), oWeek.week, oLocale, oWeekConfig);
168
214
  this.setUTCFullYear(oDate.year, oDate.month, oDate.day);
169
215
  };
170
216
  UniversalDate.prototype.getQuarter = function() {
@@ -207,22 +253,40 @@ sap.ui.define(['sap/ui/base/Object', 'sap/ui/core/LocaleData', './_Calendars'],
207
253
  */
208
254
  var iMillisecondsInWeek = 7 * 24 * 60 * 60 * 1000;
209
255
 
210
- UniversalDate.getWeekByDate = function(sCalendarType, iYear, iMonth, iDay) {
211
- var oLocale = sap.ui.getCore().getConfiguration().getFormatSettings().getFormatLocale(),
212
- oLocaleData = LocaleData.getInstance(oLocale),
213
- clDate = this.getClass(sCalendarType),
214
- oFirstDay = getFirstDayOfFirstWeek(clDate, iYear),
215
- oDate = new clDate(clDate.UTC(iYear, iMonth, iDay)),
216
- iWeek, iLastYear, iNextYear, oLastFirstDay, oNextFirstDay;
256
+ /**
257
+ * Retrieves the calendar week for a given date, specified by year, month, and day.
258
+ *
259
+ * @param {string} sCalendarType the calendar type, e.g. <code>"Gregorian"</code>
260
+ * @param {int} iYear year, e.g. <code>2016</code>
261
+ * @param {int} iMonth the month, e.g. <code>2</code>
262
+ * @param {int} iDay the date, e.g. <code>3</code>
263
+ * @param {sap.ui.core.Locale} [oLocale] the locale used for the week calculation, if oWeekConfig is not provided (falls back to the formatLocale)
264
+ * e.g. <code>new Locale("de-DE")</code>
265
+ * @param {{firstDayOfWeek: int, minimalDaysInFirstWeek: int}} [oWeekConfig] calendar week calculation parameters,
266
+ * defaults to oLocale but has precedence over oLocale if both are provided.
267
+ * Both properties firstDayOfWeek and minimalDaysInFirstWeek must be provided, otherwise it will be ignored.
268
+ * If provided US split week is ignored.
269
+ * e.g. <code>{firstDayOfWeek: 1, minimalDaysInFirstWeek: 4}</code>
270
+ * @returns {{week: number, year: number}} resulting calendar week, note: week index starts with <code>0</code>, e.g. <code>{year: 2016, week: 8}</code>
271
+ * @private
272
+ */
273
+ UniversalDate.getWeekByDate = function(sCalendarType, iYear, iMonth, iDay, oLocale, oWeekConfig) {
274
+ oLocale = oLocale || sap.ui.getCore().getConfiguration().getFormatSettings().getFormatLocale();
275
+ var oLocaleData = LocaleData.getInstance(oLocale);
276
+ var clDate = this.getClass(sCalendarType);
277
+ var oFirstDay = getFirstDayOfFirstWeek(clDate, iYear, oLocale, oWeekConfig);
278
+ var oDate = new clDate(clDate.UTC(iYear, iMonth, iDay));
279
+ var iWeek, iLastYear, iNextYear, oLastFirstDay, oNextFirstDay;
217
280
  // If region is US, always calculate the week for the current year, otherwise
218
281
  // the week might be the last week of the previous year or first week of next year
219
- if (oLocaleData.firstDayStartsFirstWeek()) {
282
+ var bSplitWeek = (!oWeekConfig || oWeekConfig.minimalDaysInFirstWeek === undefined || oWeekConfig.firstDayOfWeek === undefined) && oLocaleData.firstDayStartsFirstWeek();
283
+ if (bSplitWeek) {
220
284
  iWeek = calculateWeeks(oFirstDay, oDate);
221
285
  } else {
222
286
  iLastYear = iYear - 1;
223
287
  iNextYear = iYear + 1;
224
- oLastFirstDay = getFirstDayOfFirstWeek(clDate, iLastYear);
225
- oNextFirstDay = getFirstDayOfFirstWeek(clDate, iNextYear);
288
+ oLastFirstDay = getFirstDayOfFirstWeek(clDate, iLastYear, oLocale, oWeekConfig);
289
+ oNextFirstDay = getFirstDayOfFirstWeek(clDate, iNextYear, oLocale, oWeekConfig);
226
290
  if (oDate >= oNextFirstDay) {
227
291
  iYear = iNextYear;
228
292
  iWeek = 0;
@@ -239,17 +303,32 @@ sap.ui.define(['sap/ui/base/Object', 'sap/ui/core/LocaleData', './_Calendars'],
239
303
  };
240
304
  };
241
305
 
242
- UniversalDate.getFirstDateOfWeek = function(sCalendarType, iYear, iWeek) {
243
- var oLocale = sap.ui.getCore().getConfiguration().getFormatSettings().getFormatLocale(),
244
- oLocaleData = LocaleData.getInstance(oLocale),
245
- clDate = this.getClass(sCalendarType),
246
- oFirstDay = getFirstDayOfFirstWeek(clDate, iYear),
247
- oDate = new clDate(oFirstDay.valueOf() + iWeek * iMillisecondsInWeek),
248
- bIsRegionUS = oLocaleData.firstDayStartsFirstWeek();
306
+ /**
307
+ * Retrieves the first day's date of the given week in the given year.
308
+ *
309
+ * @param {string} sCalendarType the calendar type, e.g. <code>"Gregorian"</code>
310
+ * @param {int} iYear year, e.g. <code>2016</code>
311
+ * @param {int} iWeek the calendar week index, e.g. <code>8</code>
312
+ * @param {sap.ui.core.Locale} [oLocale] the locale used for the week calculation, if oWeekConfig is not provided (falls back to the formatLocale)
313
+ * e.g. <code>new Locale("de-DE")</code>
314
+ * @param {{firstDayOfWeek: int, minimalDaysInFirstWeek: int}} [oWeekConfig] calendar week calculation parameters,
315
+ * defaults to oLocale but has precedence over oLocale if both are provided.
316
+ * Both properties firstDayOfWeek and minimalDaysInFirstWeek must be provided, otherwise it will be ignored.
317
+ * If provided US split week is ignored.
318
+ * e.g. <code>{firstDayOfWeek: 1, minimalDaysInFirstWeek: 4}</code>
319
+ * @returns {{month: number, year: number, day: number}} the resulting date, e.g. <code>{year: 2016, month: 1, day: 29}</code>
320
+ * @private
321
+ */
322
+ UniversalDate.getFirstDateOfWeek = function(sCalendarType, iYear, iWeek, oLocale, oWeekConfig) {
323
+ oLocale = oLocale || sap.ui.getCore().getConfiguration().getFormatSettings().getFormatLocale();
324
+ var oLocaleData = LocaleData.getInstance(oLocale);
325
+ var clDate = this.getClass(sCalendarType);
326
+ var oFirstDay = getFirstDayOfFirstWeek(clDate, iYear, oLocale, oWeekConfig);
327
+ var oDate = new clDate(oFirstDay.valueOf() + iWeek * iMillisecondsInWeek);
249
328
  //If first day of week is in last year and region is US, return the
250
329
  //1st of January instead for symmetric behaviour
251
-
252
- if (bIsRegionUS && iWeek === 0 && oFirstDay.getUTCFullYear() < iYear) {
330
+ var bSplitWeek = (!oWeekConfig || oWeekConfig.minimalDaysInFirstWeek === undefined || oWeekConfig.firstDayOfWeek === undefined) && oLocaleData.firstDayStartsFirstWeek();
331
+ if (bSplitWeek && iWeek === 0 && oFirstDay.getUTCFullYear() < iYear) {
253
332
  return {
254
333
  year: iYear,
255
334
  month: 0,
@@ -263,13 +342,44 @@ sap.ui.define(['sap/ui/base/Object', 'sap/ui/core/LocaleData', './_Calendars'],
263
342
  };
264
343
  };
265
344
 
266
- function getFirstDayOfFirstWeek(clDate, iYear) {
267
- var oLocale = sap.ui.getCore().getConfiguration().getFormatSettings().getFormatLocale(),
268
- oLocaleData = LocaleData.getInstance(oLocale),
269
- iMinDays = oLocaleData.getMinimalDaysInFirstWeek(),
270
- iFirstDayOfWeek = oLocaleData.getFirstDayOfWeek(),
271
- oFirstDay = new clDate(clDate.UTC(iYear, 0, 1)),
272
- iDayCount = 7;
345
+ function checkWeekConfig(oWeekConfig) {
346
+ if (oWeekConfig) {
347
+ if (oWeekConfig.firstDayOfWeek === undefined && oWeekConfig.minimalDaysInFirstWeek !== undefined
348
+ || oWeekConfig.firstDayOfWeek !== undefined && oWeekConfig.minimalDaysInFirstWeek === undefined) {
349
+ throw new Error("Week config requires both firstDayOfWeek and minimalDaysInFirstWeek to be set");
350
+ }
351
+ }
352
+ }
353
+
354
+ /**
355
+ * Returns the first day of the first week in the given year.
356
+ *
357
+ * @param {UniversalDate} clDate the date class
358
+ * @param {int} iYear year, e.g. <code>2016</code>
359
+ * @param {sap.ui.core.Locale} [oLocale] the locale used for the week calculation, if oWeekConfig is not provided (falls back to the formatLocale)
360
+ * e.g. <code>new Locale("de-DE")</code>
361
+ * @param {{firstDayOfWeek: int, minimalDaysInFirstWeek: int}} [oWeekConfig] calendar week calculation parameters,
362
+ * defaults to oLocale but has precedence over oLocale if both are provided.
363
+ * Both properties firstDayOfWeek and minimalDaysInFirstWeek must be provided, otherwise it will be ignored.
364
+ * If provided US split week is ignored.
365
+ * e.g. <code>{firstDayOfWeek: 1, minimalDaysInFirstWeek: 4}</code>
366
+ * @returns {Date} first day of the first week in the given year, e.g. <code>Mon Jan 04 2016 01:00:00 GMT+0100</code>
367
+ * @private
368
+ */
369
+ function getFirstDayOfFirstWeek(clDate, iYear, oLocale, oWeekConfig) {
370
+ oLocale = oLocale || sap.ui.getCore().getConfiguration().getFormatSettings().getFormatLocale();
371
+ var oLocaleData = LocaleData.getInstance(oLocale);
372
+ var iMinDays;
373
+ var iFirstDayOfWeek;
374
+ if (oWeekConfig && oWeekConfig.minimalDaysInFirstWeek !== undefined && oWeekConfig.firstDayOfWeek !== undefined) {
375
+ iMinDays = oWeekConfig.minimalDaysInFirstWeek;
376
+ iFirstDayOfWeek = oWeekConfig.firstDayOfWeek;
377
+ } else {
378
+ iMinDays = oLocaleData.getMinimalDaysInFirstWeek();
379
+ iFirstDayOfWeek = oLocaleData.getFirstDayOfWeek();
380
+ }
381
+ var oFirstDay = new clDate(clDate.UTC(iYear, 0, 1));
382
+ var iDayCount = 7;
273
383
 
274
384
  if (isNaN(oFirstDay.getTime())) {
275
385
  throw new Error("Could not determine the first day of the week, because the date " +
@@ -81,7 +81,7 @@ sap.ui.define([
81
81
  * @param {Element[]} aItemDomRefs Array of DOM references representing the items for the navigation
82
82
  * @param {boolean} [bNotInTabChain=false] Whether the selected element should be in the tab chain or not
83
83
  *
84
- * @version 1.104.0
84
+ * @version 1.105.1
85
85
  * @alias sap.ui.core.delegate.ItemNavigation
86
86
  * @public
87
87
  */
@@ -257,7 +257,7 @@ sap.ui.define([
257
257
  /**
258
258
  * Sets the root DOM reference surrounding the items
259
259
  *
260
- * @param {object} oDomRef Root DOM reference
260
+ * @param {Element} oDomRef Root DOM reference
261
261
  * @return {this} <code>this</code> to allow method chaining
262
262
  * @public
263
263
  */
@@ -58,7 +58,7 @@ sap.ui.define([
58
58
  *
59
59
  * @protected
60
60
  * @alias sap.ui.core.delegate.ScrollEnablement
61
- * @version 1.104.0
61
+ * @version 1.105.1
62
62
  * @author SAP SE
63
63
  */
64
64
  var ScrollEnablement = BaseObject.extend("sap.ui.core.delegate.ScrollEnablement", /** @lends sap.ui.core.delegate.ScrollEnablement.prototype */ {
@@ -37,7 +37,7 @@ sap.ui.define([
37
37
  *
38
38
  * @extends sap.ui.core.Element
39
39
  * @author SAP SE
40
- * @version 1.104.0
40
+ * @version 1.105.1
41
41
  *
42
42
  * @public
43
43
  * @since 1.52
@@ -4,8 +4,8 @@
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
 
7
- sap.ui.define(["./DragInfo", "./DropInfo", "sap/ui/Device", "sap/base/Log"],
8
- function(DragInfo, DropInfo, Device, Log) {
7
+ sap.ui.define(["./DragInfo", "./DropInfo", "sap/base/Log"],
8
+ function(DragInfo, DropInfo, Log) {
9
9
  "use strict";
10
10
 
11
11
  /**
@@ -22,7 +22,7 @@ sap.ui.define(["./DragInfo", "./DropInfo", "sap/ui/Device", "sap/base/Log"],
22
22
  * @extends sap.ui.core.dnd.DropInfo
23
23
  *
24
24
  * @author SAP SE
25
- * @version 1.104.0
25
+ * @version 1.105.1
26
26
  *
27
27
  * @public
28
28
  * @since 1.52
@@ -22,7 +22,7 @@ sap.ui.define(["./DragDropBase"],
22
22
  * @extends sap.ui.core.dnd.DragDropBase
23
23
  *
24
24
  * @author SAP SE
25
- * @version 1.104.0
25
+ * @version 1.105.1
26
26
  *
27
27
  * @public
28
28
  * @since 1.56
@@ -21,7 +21,7 @@ sap.ui.define(["./DragDropBase"],
21
21
  * @extends sap.ui.core.dnd.DragDropBase
22
22
  *
23
23
  * @author SAP SE
24
- * @version 1.104.0
24
+ * @version 1.105.1
25
25
  *
26
26
  * @public
27
27
  * @since 1.56
@@ -222,6 +222,8 @@ sap.ui.define([
222
222
  * Get a date instance of the DateFormat, which can be used for formatting.
223
223
  *
224
224
  * @param {object} [oFormatOptions] Object which defines the format options
225
+ * @param {int} [oFormatOptions.firstDayOfWeek] @since 1.105.0 specifies the first day of the week starting with <code>0</code> (which is Sunday); if not defined, the value taken from the locale is used
226
+ * @param {int} [oFormatOptions.minimalDaysInFirstWeek] @since 1.105.0 minimal days at the beginning of the year which define the first calendar week; if not defined, the value taken from the locale is used
225
227
  * @param {string} [oFormatOptions.format] @since 1.34.0 contains pattern symbols (e.g. "yMMMd" or "Hms") which will be converted into the pattern in the used locale, which matches the wanted symbols best.
226
228
  * The symbols must be in canonical order, that is: Era (G), Year (y/Y), Quarter (q/Q), Month (M/L), Week (w), Day-Of-Week (E/e/c), Day (d), Hour (h/H/k/K/j/J), Minute (m), Second (s), Timezone (z/Z/v/V/O/X/x)
227
229
  * See {@link http://unicode.org/reports/tr35/tr35-dates.html#availableFormats_appendItems}
@@ -250,6 +252,8 @@ sap.ui.define([
250
252
  * Get a datetime instance of the DateFormat, which can be used for formatting.
251
253
  *
252
254
  * @param {object} [oFormatOptions] Object which defines the format options
255
+ * @param {int} [oFormatOptions.firstDayOfWeek] @since 1.105.0 specifies the first day of the week starting with <code>0</code> (which is Sunday); if not defined, the value taken from the locale is used
256
+ * @param {int} [oFormatOptions.minimalDaysInFirstWeek] @since 1.105.0 minimal days at the beginning of the year which define the first calendar week; if not defined, the value taken from the locale is used
253
257
  * @param {string} [oFormatOptions.format] @since 1.34.0 contains pattern symbols (e.g. "yMMMd" or "Hms") which will be converted into the pattern in the used locale, which matches the wanted symbols best.
254
258
  * The symbols must be in canonical order, that is: Era (G), Year (y/Y), Quarter (q/Q), Month (M/L), Week (w), Day-Of-Week (E/e/c), Day (d), Hour (h/H/k/K/j/J), Minute (m), Second (s), Timezone (z/Z/v/V/O/X/x)
255
259
  * See http://unicode.org/reports/tr35/tr35-dates.html#availableFormats_appendItems
@@ -379,6 +383,8 @@ sap.ui.define([
379
383
  * Get a datetimeWithTimezone instance of the DateFormat, which can be used for formatting.
380
384
  *
381
385
  * @param {object} [oFormatOptions] An object which defines the format options
386
+ * @param {int} [oFormatOptions.firstDayOfWeek] @since 1.105.0 specifies the first day of the week starting with <code>0</code> (which is Sunday); if not defined, the value taken from the locale is used
387
+ * @param {int} [oFormatOptions.minimalDaysInFirstWeek] @since 1.105.0 minimal days at the beginning of the year which define the first calendar week; if not defined, the value taken from the locale is used
382
388
  * @param {string} [oFormatOptions.format] A string containing pattern symbols (e.g. "yMMMd" or "Hms") which will be converted into a pattern for the used locale that matches the wanted symbols best.
383
389
  * The symbols must be in canonical order, that is: Era (G), Year (y/Y), Quarter (q/Q), Month (M/L), Week (w), Day-Of-Week (E/e/c), Day (d), Hour (h/H/k/K/j/J), Minute (m), Second (s), Timezone (z/Z/v/V/O/X/x)
384
390
  * See http://unicode.org/reports/tr35/tr35-dates.html#availableFormats_appendItems
@@ -435,6 +441,8 @@ sap.ui.define([
435
441
  * Get a time instance of the DateFormat, which can be used for formatting.
436
442
  *
437
443
  * @param {object} [oFormatOptions] Object which defines the format options
444
+ * @param {int} [oFormatOptions.firstDayOfWeek] @since 1.105.0 specifies the first day of the week starting with <code>0</code> (which is Sunday); if not defined, the value taken from the locale is used
445
+ * @param {int} [oFormatOptions.minimalDaysInFirstWeek] @since 1.105.0 minimal days at the beginning of the year which define the first calendar week; if not defined, the value taken from the locale is used
438
446
  * @param {string} [oFormatOptions.format] @since 1.34.0 contains pattern symbols (e.g. "yMMMd" or "Hms") which will be converted into the pattern in the used locale, which matches the wanted symbols best.
439
447
  * The symbols must be in canonical order, that is: Era (G), Year (y/Y), Quarter (q/Q), Month (M/L), Week (w), Day-Of-Week (E/e/c), Day (d), Hour (h/H/k/K/j/J), Minute (m), Second (s), Timezone (z/Z/v/V/O/X/x)
440
448
  * See http://unicode.org/reports/tr35/tr35-dates.html#availableFormats_appendItems
@@ -517,6 +525,11 @@ sap.ui.define([
517
525
  oFormat.oFormatOptions.calendarType = sap.ui.getCore().getConfiguration().getCalendarType();
518
526
  }
519
527
 
528
+ if (oFormat.oFormatOptions.firstDayOfWeek === undefined && oFormat.oFormatOptions.minimalDaysInFirstWeek !== undefined
529
+ || oFormat.oFormatOptions.firstDayOfWeek !== undefined && oFormat.oFormatOptions.minimalDaysInFirstWeek === undefined) {
530
+ throw new Error("Format options firstDayOfWeek and minimalDaysInFirstWeek need both to be set, but only one was provided.");
531
+ }
532
+
520
533
  if (!oFormat.oFormatOptions.pattern) {
521
534
  if (oFormat.oFormatOptions.format) {
522
535
  oFormat.oFormatOptions.pattern = oFormat.oLocaleData.getCustomDateTimePattern(oFormat.oFormatOptions.format, oFormat.oFormatOptions.calendarType);
@@ -1019,7 +1032,10 @@ sap.ui.define([
1019
1032
  "Y": {
1020
1033
  name: "weekYear",
1021
1034
  format: function(oField, oDate, bUTC, oFormat) {
1022
- var oWeek = oDate.getUTCWeek();
1035
+ var oWeek = oDate.getUTCWeek(oFormat.oLocale, {
1036
+ firstDayOfWeek: oFormat.oFormatOptions.firstDayOfWeek,
1037
+ minimalDaysInFirstWeek: oFormat.oFormatOptions.minimalDaysInFirstWeek
1038
+ });
1023
1039
  var iWeekYear = oWeek.year;
1024
1040
  var sWeekYear = String(iWeekYear);
1025
1041
  var sCalendarType = oFormat.oFormatOptions.calendarType;
@@ -1165,7 +1181,10 @@ sap.ui.define([
1165
1181
  "w": {
1166
1182
  name: "weekInYear",
1167
1183
  format: function(oField, oDate, bUTC, oFormat) {
1168
- var oWeek = oDate.getUTCWeek();
1184
+ var oWeek = oDate.getUTCWeek(oFormat.oLocale, {
1185
+ firstDayOfWeek: oFormat.oFormatOptions.firstDayOfWeek,
1186
+ minimalDaysInFirstWeek: oFormat.oFormatOptions.minimalDaysInFirstWeek
1187
+ });
1169
1188
  var iWeek = oWeek.week;
1170
1189
  var sWeek = String(iWeek + 1);
1171
1190
  if (oField.digits < 3) {
@@ -2241,7 +2260,7 @@ sap.ui.define([
2241
2260
 
2242
2261
  // recreate javascript date object from the given oDateValues.
2243
2262
  // In case of oDateValue.valid == false, null value will be returned
2244
- var fnCreateDate = function(oDateValue, sCalendarType, bUTC, bStrict, sTimezone) {
2263
+ var fnCreateDate = function(oDateValue, sCalendarType, bUTC, bStrict, sTimezone, oFormatOptions, oLocale) {
2245
2264
  if (!oDateValue.valid) {
2246
2265
  return null;
2247
2266
  }
@@ -2267,9 +2286,12 @@ sap.ui.define([
2267
2286
  oDate.setUTCWeek({
2268
2287
  year: oDateValue.weekYear || oDateValue.year,
2269
2288
  week: oDateValue.week
2289
+ }, oLocale, {
2290
+ firstDayOfWeek: oFormatOptions.firstDayOfWeek,
2291
+ minimalDaysInFirstWeek: oFormatOptions.minimalDaysInFirstWeek
2270
2292
  });
2271
2293
 
2272
- //add the dayNumberOfWeek to the current day
2294
+ // add the dayNumberOfWeek to the current day
2273
2295
  if (oDateValue.dayNumberOfWeek !== undefined) {
2274
2296
  oDate.setUTCDate(oDate.getUTCDate() + oDateValue.dayNumberOfWeek - 1);
2275
2297
  }
@@ -2296,7 +2318,7 @@ sap.ui.define([
2296
2318
  // tzDiff is in seconds for a higher precision (historical timezone might have differences in seconds)
2297
2319
  // e.g. new Date(Date.UTC(1730, 0, 1))
2298
2320
  // is in Berlin: Sun Jan 01 1730 00:53:28 GMT+0053 (Central European Standard Time)
2299
- oDate.setUTCSeconds((oDateValue.second || 0) + oDateValue.tzDiff);
2321
+ oDate.setUTCSeconds(oDate.getUTCSeconds() + oDateValue.tzDiff);
2300
2322
  }
2301
2323
  return oDate;
2302
2324
  };
@@ -2419,7 +2441,7 @@ sap.ui.define([
2419
2441
  oDateValue.valid = false;
2420
2442
  }
2421
2443
 
2422
- oJSDate = fnCreateDate(oDateValue, sCalendarType, bUTC, bStrict, sTimezone);
2444
+ oJSDate = fnCreateDate(oDateValue, sCalendarType, bUTC, bStrict, sTimezone, this.oFormatOptions, this.oLocale);
2423
2445
 
2424
2446
  if (oJSDate) {
2425
2447
  if (this.type === mDateFormatTypes.DATETIME_WITH_TIMEZONE) {
@@ -2443,8 +2465,8 @@ sap.ui.define([
2443
2465
  var oDateValue1 = mergeWithoutOverwrite(aDateValues[0], aDateValues[1]);
2444
2466
  var oDateValue2 = mergeWithoutOverwrite(aDateValues[1], aDateValues[0]);
2445
2467
 
2446
- oJSDate1 = fnCreateDate(oDateValue1, sCalendarType, bUTC, bStrict, sTimezone);
2447
- oJSDate2 = fnCreateDate(oDateValue2, sCalendarType, bUTC, bStrict, sTimezone);
2468
+ oJSDate1 = fnCreateDate(oDateValue1, sCalendarType, bUTC, bStrict, sTimezone, this.oFormatOptions, this.oLocale);
2469
+ oJSDate2 = fnCreateDate(oDateValue2, sCalendarType, bUTC, bStrict, sTimezone, this.oFormatOptions, this.oLocale);
2448
2470
 
2449
2471
  if (oJSDate1 && oJSDate2) {
2450
2472
 
@@ -2862,7 +2884,7 @@ sap.ui.define([
2862
2884
  DateFormat.prototype._adaptDayOfWeek = function(iDayOfWeek) {
2863
2885
  // day of week depends on the format locale
2864
2886
  // the DateFormat's locale is independent
2865
- var iFirstDayOfWeek = LocaleData.getInstance(sap.ui.getCore().getConfiguration().getFormatSettings().getFormatLocale()).getFirstDayOfWeek();
2887
+ var iFirstDayOfWeek = this.oFormatOptions.firstDayOfWeek !== undefined ? this.oFormatOptions.firstDayOfWeek : LocaleData.getInstance(this.oLocale).getFirstDayOfWeek();
2866
2888
  var iDayNumberOfWeek = iDayOfWeek - (iFirstDayOfWeek - 1);
2867
2889
 
2868
2890
  if (iDayNumberOfWeek <= 0) {
@@ -11,7 +11,7 @@ sap.ui.define([], function() {
11
11
  * Static collection of utility functions to handle time zone related conversions
12
12
  *
13
13
  * @author SAP SE
14
- * @version 1.104.0
14
+ * @version 1.105.1
15
15
  * @namespace
16
16
  * @alias sap.ui.core.format.TimezoneUtil
17
17
  * @private
@@ -398,7 +398,7 @@ sap.ui.define([
398
398
  * @see {@link topic:6322164936f047de941ec522b95d7b70 Hyphenation for Text Controls}
399
399
  * @extends sap.ui.base.ManagedObject
400
400
  * @author SAP SE
401
- * @version 1.104.0
401
+ * @version 1.105.1
402
402
  * @hideconstructor
403
403
  * @public
404
404
  * @since 1.60
@@ -25,13 +25,13 @@ sap.ui.define([
25
25
  * @namespace
26
26
  * @alias sap.ui.core
27
27
  * @author SAP SE
28
- * @version 1.104.0
28
+ * @version 1.105.1
29
29
  * @since 0.8
30
30
  * @public
31
31
  */
32
32
  var thisLib = sap.ui.getCore().initLibrary({
33
33
  name : "sap.ui.core",
34
- version: "1.104.0",
34
+ version: "1.105.1",
35
35
  designtime: "sap/ui/core/designtime/library.designtime",
36
36
  types: [
37
37
 
@@ -1509,7 +1509,7 @@ sap.ui.define([
1509
1509
  /**
1510
1510
  * Sort order of a column.
1511
1511
  *
1512
- * @version 1.104.0
1512
+ * @version 1.105.1
1513
1513
  * @enum {string}
1514
1514
  * @public
1515
1515
  * @since 1.61.0
@@ -1735,6 +1735,7 @@ sap.ui.define([
1735
1735
  * @public
1736
1736
  * @experimental As of version 1.98
1737
1737
  * @since 1.98.0
1738
+ *
1738
1739
  */
1739
1740
 
1740
1741
  /**
@@ -1762,7 +1763,47 @@ sap.ui.define([
1762
1763
  */
1763
1764
 
1764
1765
  /**
1766
+ * Implementing this interface allows a control to be accessible via access keys.
1767
+ *
1768
+ * @name sap.ui.core.IAccessKeySupport
1769
+ * @interface
1770
+ * @public
1771
+ * @experimental As of version 1.104
1772
+ * @since 1.104
1773
+ */
1774
+
1775
+ /**
1776
+ * Returns a refence to DOM element to be focused during Access key navigation.
1777
+ * If not implemented getFocusDomRef() method is used.
1778
+ *
1779
+ * @public
1780
+ * @function
1781
+ * @experimental As of version 1.104
1782
+ * @since 1.104
1783
+ * @name sap.ui.core.IAccessKeySupport.getAccessKeysFocusTarget?
1784
+ */
1785
+
1786
+ /**
1787
+ * If implemented called when access keys feature is enabled and highlighting is ongoing
1788
+ *
1789
+ * @public
1790
+ * @function
1791
+ * @experimental As of version 1.104
1792
+ * @since 1.104
1793
+ * @name sap.ui.core.IAccessKeySupport.onAccKeysHighlightStart?
1794
+ */
1795
+
1796
+ /**
1797
+ * If implemented called when access keys feature is enabled and highlighting is over
1798
+ *
1799
+ * @public
1800
+ * @function
1801
+ * @experimental As of version 1.104
1802
+ * @since 1.104
1803
+ * @name sap.ui.core.IAccessKeySupport.onAccKeysHighlightEnd?
1804
+ */
1765
1805
 
1806
+ /**
1766
1807
  * Marker interface for controls that can serve as a context menu.
1767
1808
  *
1768
1809
  * Implementation of this interface should implement the <code>openAsContextMenu</code> method.