@openui5/sap.ui.core 1.108.1 → 1.109.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/THIRDPARTY.txt +1 -1
- package/package.json +1 -1
- package/src/jquery.sap.global.js +1 -1
- package/src/jquery.sap.properties.js +1 -1
- package/src/jquery.sap.resources.js +1 -1
- package/src/jquery.sap.script.js +1 -1
- package/src/jquery.sap.storage.js +3 -3
- package/src/sap/base/Log.js +125 -84
- package/src/sap/base/i18n/ResourceBundle.js +41 -11
- package/src/sap/base/util/includes.js +1 -1
- package/src/sap/base/util/restricted/_CancelablePromise.js +1 -1
- package/src/sap/base/util/restricted/_castArray.js +1 -1
- package/src/sap/base/util/restricted/_compact.js +1 -1
- package/src/sap/base/util/restricted/_curry.js +1 -1
- package/src/sap/base/util/restricted/_debounce.js +1 -1
- package/src/sap/base/util/restricted/_difference.js +1 -1
- package/src/sap/base/util/restricted/_differenceBy.js +1 -1
- package/src/sap/base/util/restricted/_differenceWith.js +1 -1
- package/src/sap/base/util/restricted/_flatMap.js +1 -1
- package/src/sap/base/util/restricted/_flatMapDeep.js +1 -1
- package/src/sap/base/util/restricted/_flatMapDepth.js +1 -1
- package/src/sap/base/util/restricted/_flatten.js +1 -1
- package/src/sap/base/util/restricted/_flattenDeep.js +1 -1
- package/src/sap/base/util/restricted/_flattenDepth.js +1 -1
- package/src/sap/base/util/restricted/_intersection.js +1 -1
- package/src/sap/base/util/restricted/_intersectionBy.js +1 -1
- package/src/sap/base/util/restricted/_intersectionWith.js +1 -1
- package/src/sap/base/util/restricted/_isEqual.js +1 -1
- package/src/sap/base/util/restricted/_isEqualWith.js +1 -1
- package/src/sap/base/util/restricted/_isNil.js +1 -1
- package/src/sap/base/util/restricted/_max.js +1 -1
- package/src/sap/base/util/restricted/_merge.js +1 -1
- package/src/sap/base/util/restricted/_mergeWith.js +1 -1
- package/src/sap/base/util/restricted/_min.js +1 -1
- package/src/sap/base/util/restricted/_omit.js +1 -1
- package/src/sap/base/util/restricted/_pick.js +1 -1
- package/src/sap/base/util/restricted/_pickBy.js +1 -1
- package/src/sap/base/util/restricted/_throttle.js +1 -1
- package/src/sap/base/util/restricted/_toArray.js +1 -1
- package/src/sap/base/util/restricted/_union.js +1 -1
- package/src/sap/base/util/restricted/_unionBy.js +1 -1
- package/src/sap/base/util/restricted/_unionWith.js +1 -1
- package/src/sap/base/util/restricted/_uniq.js +1 -1
- package/src/sap/base/util/restricted/_uniqBy.js +1 -1
- package/src/sap/base/util/restricted/_uniqWith.js +1 -1
- package/src/sap/base/util/restricted/_without.js +1 -1
- package/src/sap/base/util/restricted/_xor.js +1 -1
- package/src/sap/base/util/restricted/_xorBy.js +1 -1
- package/src/sap/base/util/restricted/_xorWith.js +1 -1
- package/src/sap/base/util/restricted/_zipObject.js +1 -1
- package/src/sap/base/util/restricted/_zipObjectDeep.js +1 -1
- package/src/sap/base/util/values.js +2 -1
- package/src/sap/ui/Device.js +3 -3
- package/src/sap/ui/Global.js +4 -4
- package/src/sap/ui/base/Event.js +1 -1
- package/src/sap/ui/base/EventProvider.js +1 -1
- package/src/sap/ui/base/Interface.js +1 -1
- package/src/sap/ui/base/ManagedObject.js +1 -1
- package/src/sap/ui/base/ManagedObjectMetadata.js +1 -1
- package/src/sap/ui/base/ManagedObjectObserver.js +33 -11
- package/src/sap/ui/base/Metadata.js +1 -1
- package/src/sap/ui/base/Object.js +1 -1
- package/src/sap/ui/base/ObjectPool.js +1 -1
- package/src/sap/ui/core/.library +3 -3
- package/src/sap/ui/core/BusyIndicator.js +1 -1
- package/src/sap/ui/core/Component.js +1 -1
- package/src/sap/ui/core/ComponentContainer.js +1 -1
- package/src/sap/ui/core/ComponentMetadata.js +1 -1
- package/src/sap/ui/core/ComponentSupport.js +1 -1
- package/src/sap/ui/core/Configuration.js +1 -1
- package/src/sap/ui/core/Control.js +1 -1
- package/src/sap/ui/core/Core.js +4 -4
- package/src/sap/ui/core/CustomData.js +1 -1
- package/src/sap/ui/core/DeclarativeSupport.js +1 -1
- package/src/sap/ui/core/Element.js +1 -1
- package/src/sap/ui/core/ElementMetadata.js +1 -1
- package/src/sap/ui/core/EnabledPropagator.js +1 -1
- package/src/sap/ui/core/EventBus.js +1 -1
- package/src/sap/ui/core/Fragment.js +1 -1
- package/src/sap/ui/core/HTML.js +1 -1
- package/src/sap/ui/core/History.js +1 -1
- package/src/sap/ui/core/Icon.js +1 -1
- package/src/sap/ui/core/IndicationColorSupport.js +1 -1
- package/src/sap/ui/core/IntervalTrigger.js +1 -1
- package/src/sap/ui/core/InvisibleMessage.js +1 -1
- package/src/sap/ui/core/InvisibleRenderer.js +1 -1
- package/src/sap/ui/core/InvisibleText.js +1 -1
- package/src/sap/ui/core/Item.js +1 -1
- package/src/sap/ui/core/LabelEnablement.js +1 -1
- package/src/sap/ui/core/LayoutData.js +1 -1
- package/src/sap/ui/core/ListItem.js +1 -1
- package/src/sap/ui/core/LocalBusyIndicator.js +1 -1
- package/src/sap/ui/core/Locale.js +1 -1
- package/src/sap/ui/core/LocaleData.js +133 -1
- package/src/sap/ui/core/Manifest.js +1 -1
- package/src/sap/ui/core/Message.js +1 -1
- package/src/sap/ui/core/RenderManager.js +82 -50
- package/src/sap/ui/core/Renderer.js +1 -1
- package/src/sap/ui/core/Rendering.js +29 -9
- package/src/sap/ui/core/ResizeHandler.js +1 -1
- package/src/sap/ui/core/ScrollBar.js +1 -1
- package/src/sap/ui/core/SeparatorItem.js +1 -1
- package/src/sap/ui/core/Title.js +1 -1
- package/src/sap/ui/core/TooltipBase.js +1 -1
- package/src/sap/ui/core/UIArea.js +7 -5
- package/src/sap/ui/core/UIComponent.js +1 -1
- package/src/sap/ui/core/UIComponentMetadata.js +1 -1
- package/src/sap/ui/core/ValueStateSupport.js +1 -1
- package/src/sap/ui/core/VariantLayoutData.js +1 -1
- package/src/sap/ui/core/XMLComposite.js +1 -1
- package/src/sap/ui/core/XMLCompositeMetadata.js +1 -1
- package/src/sap/ui/core/XMLTemplateProcessor.js +1 -3
- package/src/sap/ui/core/cldr/ar.json +330 -0
- package/src/sap/ui/core/cldr/ar_EG.json +330 -0
- package/src/sap/ui/core/cldr/ar_SA.json +330 -0
- package/src/sap/ui/core/cldr/bg.json +295 -0
- package/src/sap/ui/core/cldr/ca.json +329 -0
- package/src/sap/ui/core/cldr/cs.json +328 -0
- package/src/sap/ui/core/cldr/cy.json +260 -0
- package/src/sap/ui/core/cldr/da.json +295 -0
- package/src/sap/ui/core/cldr/de.json +329 -0
- package/src/sap/ui/core/cldr/de_AT.json +329 -0
- package/src/sap/ui/core/cldr/de_CH.json +329 -0
- package/src/sap/ui/core/cldr/el.json +228 -0
- package/src/sap/ui/core/cldr/el_CY.json +228 -0
- package/src/sap/ui/core/cldr/en.json +294 -0
- package/src/sap/ui/core/cldr/en_AU.json +294 -0
- package/src/sap/ui/core/cldr/en_GB.json +294 -0
- package/src/sap/ui/core/cldr/en_HK.json +294 -0
- package/src/sap/ui/core/cldr/en_IE.json +294 -0
- package/src/sap/ui/core/cldr/en_IN.json +294 -0
- package/src/sap/ui/core/cldr/en_NZ.json +294 -0
- package/src/sap/ui/core/cldr/en_PG.json +294 -0
- package/src/sap/ui/core/cldr/en_SG.json +294 -0
- package/src/sap/ui/core/cldr/en_ZA.json +294 -0
- package/src/sap/ui/core/cldr/es.json +261 -0
- package/src/sap/ui/core/cldr/es_AR.json +261 -0
- package/src/sap/ui/core/cldr/es_BO.json +261 -0
- package/src/sap/ui/core/cldr/es_CL.json +261 -0
- package/src/sap/ui/core/cldr/es_CO.json +261 -0
- package/src/sap/ui/core/cldr/es_MX.json +261 -0
- package/src/sap/ui/core/cldr/es_PE.json +261 -0
- package/src/sap/ui/core/cldr/es_UY.json +261 -0
- package/src/sap/ui/core/cldr/es_VE.json +261 -0
- package/src/sap/ui/core/cldr/et.json +294 -0
- package/src/sap/ui/core/cldr/fa.json +296 -0
- package/src/sap/ui/core/cldr/fi.json +328 -0
- package/src/sap/ui/core/cldr/fr.json +294 -0
- package/src/sap/ui/core/cldr/fr_BE.json +294 -0
- package/src/sap/ui/core/cldr/fr_CA.json +294 -0
- package/src/sap/ui/core/cldr/fr_CH.json +294 -0
- package/src/sap/ui/core/cldr/fr_LU.json +294 -0
- package/src/sap/ui/core/cldr/he.json +329 -0
- package/src/sap/ui/core/cldr/hi.json +261 -0
- package/src/sap/ui/core/cldr/hr.json +294 -0
- package/src/sap/ui/core/cldr/hu.json +362 -0
- package/src/sap/ui/core/cldr/id.json +294 -0
- package/src/sap/ui/core/cldr/it.json +294 -0
- package/src/sap/ui/core/cldr/it_CH.json +294 -0
- package/src/sap/ui/core/cldr/ja.json +328 -0
- package/src/sap/ui/core/cldr/kk.json +294 -0
- package/src/sap/ui/core/cldr/ko.json +328 -0
- package/src/sap/ui/core/cldr/lt.json +294 -0
- package/src/sap/ui/core/cldr/lv.json +294 -0
- package/src/sap/ui/core/cldr/ms.json +262 -0
- package/src/sap/ui/core/cldr/nb.json +295 -0
- package/src/sap/ui/core/cldr/nl.json +261 -0
- package/src/sap/ui/core/cldr/nl_BE.json +261 -0
- package/src/sap/ui/core/cldr/pl.json +328 -0
- package/src/sap/ui/core/cldr/pt.json +294 -0
- package/src/sap/ui/core/cldr/pt_PT.json +294 -0
- package/src/sap/ui/core/cldr/ro.json +294 -0
- package/src/sap/ui/core/cldr/ru.json +294 -0
- package/src/sap/ui/core/cldr/ru_UA.json +294 -0
- package/src/sap/ui/core/cldr/sk.json +328 -0
- package/src/sap/ui/core/cldr/sl.json +328 -0
- package/src/sap/ui/core/cldr/sr.json +294 -0
- package/src/sap/ui/core/cldr/sr_Latn.json +294 -0
- package/src/sap/ui/core/cldr/sv.json +295 -0
- package/src/sap/ui/core/cldr/th.json +362 -0
- package/src/sap/ui/core/cldr/tr.json +362 -0
- package/src/sap/ui/core/cldr/uk.json +294 -0
- package/src/sap/ui/core/cldr/vi.json +294 -0
- package/src/sap/ui/core/cldr/zh_CN.json +329 -0
- package/src/sap/ui/core/cldr/zh_HK.json +329 -0
- package/src/sap/ui/core/cldr/zh_SG.json +329 -0
- package/src/sap/ui/core/cldr/zh_TW.json +329 -0
- package/src/sap/ui/core/date/Japanese.js +30 -0
- package/src/sap/ui/core/delegate/ItemNavigation.js +1 -1
- package/src/sap/ui/core/delegate/ScrollEnablement.js +1 -1
- package/src/sap/ui/core/dnd/DragAndDrop.js +2 -2
- package/src/sap/ui/core/dnd/DragDropBase.js +1 -1
- package/src/sap/ui/core/dnd/DragDropInfo.js +1 -1
- package/src/sap/ui/core/dnd/DragInfo.js +1 -1
- package/src/sap/ui/core/dnd/DropInfo.js +1 -1
- package/src/sap/ui/core/format/DateFormat.js +122 -2
- package/src/sap/ui/core/format/NumberFormat.js +111 -70
- package/src/sap/ui/core/format/TimezoneUtil.js +2 -2
- package/src/sap/ui/core/hyphenation/Hyphenation.js +1 -1
- package/src/sap/ui/core/library.js +3 -3
- package/src/sap/ui/core/message/ControlMessageProcessor.js +1 -1
- package/src/sap/ui/core/message/Message.js +1 -1
- package/src/sap/ui/core/message/MessageManager.js +1 -1
- package/src/sap/ui/core/message/MessageParser.js +1 -1
- package/src/sap/ui/core/message/MessageProcessor.js +1 -1
- package/src/sap/ui/core/mvc/HTMLView.js +1 -1
- package/src/sap/ui/core/mvc/JSONView.js +1 -1
- package/src/sap/ui/core/mvc/JSView.js +1 -1
- package/src/sap/ui/core/mvc/TemplateView.js +1 -1
- package/src/sap/ui/core/mvc/View.js +3 -3
- package/src/sap/ui/core/mvc/ViewType.js +4 -0
- package/src/sap/ui/core/mvc/XMLView.js +1 -1
- package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
- package/src/sap/ui/core/plugin/LessSupport.js +1 -1
- package/src/sap/ui/core/plugin/TemplatingSupport.js +1 -1
- package/src/sap/ui/core/postmessage/Bus.js +12 -17
- package/src/sap/ui/core/postmessage/confirmationDialog.js +1 -1
- package/src/sap/ui/core/search/OpenSearchProvider.js +1 -1
- package/src/sap/ui/core/search/SearchProvider.js +1 -1
- package/src/sap/ui/core/service/Service.js +1 -1
- package/src/sap/ui/core/service/ServiceFactory.js +1 -1
- package/src/sap/ui/core/service/ServiceFactoryRegistry.js +1 -1
- package/src/sap/ui/core/support/Plugin.js +1 -1
- package/src/sap/ui/core/support/Support.js +1 -1
- package/src/sap/ui/core/support/plugins/ControlTree.js +1 -1
- package/src/sap/ui/core/support/plugins/Interaction.js +1 -1
- package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -1
- package/src/sap/ui/core/support/plugins/Performance.js +1 -1
- package/src/sap/ui/core/support/plugins/Selector.js +1 -1
- package/src/sap/ui/core/support/plugins/TechInfo.js +1 -1
- package/src/sap/ui/core/support/plugins/Trace.js +1 -1
- package/src/sap/ui/core/support/plugins/ViewInfo.js +1 -1
- package/src/sap/ui/core/themes/base/Icon.less +17 -4
- package/src/sap/ui/core/themes/base/LocalBusyIndicator.less +1 -1
- package/src/sap/ui/core/themes/base/base.less +599 -90
- package/src/sap/ui/core/themes/base/global.less +64 -0
- package/src/sap/ui/core/themes/sap_hcb/global.less +65 -0
- package/src/sap/ui/core/tmpl/DOMAttribute.js +1 -1
- package/src/sap/ui/core/tmpl/DOMElement.js +1 -1
- package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +1 -1
- package/src/sap/ui/core/tmpl/Template.js +1 -1
- package/src/sap/ui/core/tmpl/TemplateControl.js +1 -1
- package/src/sap/ui/core/util/AsyncHintsHelper.js +1 -1
- package/src/sap/ui/core/util/Export.js +1 -1
- package/src/sap/ui/core/util/ExportCell.js +1 -1
- package/src/sap/ui/core/util/ExportColumn.js +1 -1
- package/src/sap/ui/core/util/ExportRow.js +1 -1
- package/src/sap/ui/core/util/ExportType.js +1 -1
- package/src/sap/ui/core/util/ExportTypeCSV.js +1 -1
- package/src/sap/ui/core/util/File.js +1 -1
- package/src/sap/ui/core/util/LibraryInfo.js +1 -1
- package/src/sap/ui/core/util/MockServer.js +1 -1
- package/src/sap/ui/core/util/PasteHelper.js +1 -1
- package/src/sap/ui/core/util/reflection/XmlTreeModifier.js +1 -3
- package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +1 -1
- package/src/sap/ui/core/util/serializer/Serializer.js +1 -1
- package/src/sap/ui/core/util/serializer/ViewSerializer.js +1 -1
- package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +1 -1
- package/src/sap/ui/core/util/serializer/delegate/Delegate.js +1 -1
- package/src/sap/ui/core/util/serializer/delegate/HTML.js +1 -1
- package/src/sap/ui/core/util/serializer/delegate/XML.js +1 -1
- package/src/sap/ui/core/ws/ReadyState.js +1 -1
- package/src/sap/ui/core/ws/SapPcpWebSocket.js +1 -1
- package/src/sap/ui/core/ws/WebSocket.js +1 -1
- package/src/sap/ui/debug/ControlTree.js +1 -1
- package/src/sap/ui/debug/DebugEnv.js +1 -1
- package/src/sap/ui/debug/PropertyList.js +1 -1
- package/src/sap/ui/model/ClientModel.js +1 -1
- package/src/sap/ui/model/CompositeDataState.js +1 -1
- package/src/sap/ui/model/CompositeType.js +1 -1
- package/src/sap/ui/model/DataState.js +1 -1
- package/src/sap/ui/model/MetaModel.js +1 -1
- package/src/sap/ui/model/Model.js +1 -1
- package/src/sap/ui/model/SelectionModel.js +1 -1
- package/src/sap/ui/model/SimpleType.js +1 -1
- package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
- package/src/sap/ui/model/Type.js +1 -1
- package/src/sap/ui/model/controlhelper/TreeBindingProxy.js +11 -3
- package/src/sap/ui/model/json/JSONModel.js +1 -1
- package/src/sap/ui/model/message/MessageModel.js +1 -1
- package/src/sap/ui/model/odata/ODataAnnotations.js +1 -1
- package/src/sap/ui/model/odata/ODataMessageParser.js +1 -1
- package/src/sap/ui/model/odata/ODataMetaModel.js +1 -1
- package/src/sap/ui/model/odata/ODataMetadata.js +1 -1
- package/src/sap/ui/model/odata/ODataModel.js +1 -1
- package/src/sap/ui/model/odata/type/Boolean.js +1 -1
- package/src/sap/ui/model/odata/type/Byte.js +1 -1
- package/src/sap/ui/model/odata/type/Currency.js +1 -1
- package/src/sap/ui/model/odata/type/Date.js +1 -1
- package/src/sap/ui/model/odata/type/DateTime.js +1 -1
- package/src/sap/ui/model/odata/type/DateTimeBase.js +1 -1
- package/src/sap/ui/model/odata/type/DateTimeOffset.js +1 -1
- package/src/sap/ui/model/odata/type/DateTimeWithTimezone.js +1 -1
- package/src/sap/ui/model/odata/type/Decimal.js +1 -1
- package/src/sap/ui/model/odata/type/Double.js +1 -1
- package/src/sap/ui/model/odata/type/Guid.js +1 -1
- package/src/sap/ui/model/odata/type/Int.js +1 -1
- package/src/sap/ui/model/odata/type/Int16.js +1 -1
- package/src/sap/ui/model/odata/type/Int32.js +1 -1
- package/src/sap/ui/model/odata/type/Int64.js +1 -1
- package/src/sap/ui/model/odata/type/ODataType.js +1 -1
- package/src/sap/ui/model/odata/type/Raw.js +1 -1
- package/src/sap/ui/model/odata/type/SByte.js +1 -1
- package/src/sap/ui/model/odata/type/Single.js +1 -1
- package/src/sap/ui/model/odata/type/Stream.js +1 -1
- package/src/sap/ui/model/odata/type/String.js +1 -1
- package/src/sap/ui/model/odata/type/Time.js +1 -1
- package/src/sap/ui/model/odata/type/TimeOfDay.js +1 -1
- package/src/sap/ui/model/odata/type/Unit.js +1 -1
- package/src/sap/ui/model/odata/v2/Context.js +1 -1
- package/src/sap/ui/model/odata/v2/ODataAnnotations.js +1 -1
- package/src/sap/ui/model/odata/v2/ODataListBinding.js +1 -1
- package/src/sap/ui/model/odata/v2/ODataModel.js +1 -1
- package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +3 -4
- package/src/sap/ui/model/odata/v4/Context.js +82 -29
- package/src/sap/ui/model/odata/v4/ODataBinding.js +3 -0
- package/src/sap/ui/model/odata/v4/ODataContextBinding.js +3 -2
- package/src/sap/ui/model/odata/v4/ODataListBinding.js +77 -23
- package/src/sap/ui/model/odata/v4/ODataMetaModel.js +1 -1
- package/src/sap/ui/model/odata/v4/ODataModel.js +2 -2
- package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +1 -1
- package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +334 -142
- package/src/sap/ui/model/odata/v4/lib/_AggregationHelper.js +109 -16
- package/src/sap/ui/model/odata/v4/lib/_Cache.js +82 -42
- package/src/sap/ui/model/odata/v4/lib/_Helper.js +26 -0
- package/src/sap/ui/model/resource/ResourceModel.js +1 -1
- package/src/sap/ui/model/type/Boolean.js +1 -1
- package/src/sap/ui/model/type/Currency.js +1 -1
- package/src/sap/ui/model/type/Date.js +1 -1
- package/src/sap/ui/model/type/DateInterval.js +1 -1
- package/src/sap/ui/model/type/DateTime.js +1 -1
- package/src/sap/ui/model/type/DateTimeInterval.js +1 -1
- package/src/sap/ui/model/type/FileSize.js +1 -1
- package/src/sap/ui/model/type/Float.js +1 -1
- package/src/sap/ui/model/type/Integer.js +1 -1
- package/src/sap/ui/model/type/String.js +1 -1
- package/src/sap/ui/model/type/Time.js +1 -1
- package/src/sap/ui/model/type/TimeInterval.js +1 -1
- package/src/sap/ui/model/type/Unit.js +1 -1
- package/src/sap/ui/model/xml/XMLModel.js +1 -1
- package/src/sap/ui/qunit/QUnitUtils.js +14 -2
- package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
- package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +1 -1
- package/src/sap/ui/test/OpaExtension.js +1 -1
- package/src/sap/ui/test/OpaPlugin.js +6 -4
- package/src/sap/ui/test/PageObjectFactory.js +11 -9
- package/src/sap/ui/test/RecordReplay.js +1 -1
- package/src/sap/ui/test/_OpaLogger.js +1 -1
- package/src/sap/ui/test/autowaiter/_promiseWaiter.js +4 -1
- package/src/sap/ui/test/generic/TestBase.js +1 -1
- package/src/sap/ui/util/Mobile.js +17 -18
- package/src/sap/ui/util/Storage.js +90 -63
|
@@ -36,6 +36,8 @@ sap.ui.define([
|
|
|
36
36
|
search : "string",
|
|
37
37
|
subtotalsAtBottomOnly : "boolean"
|
|
38
38
|
},
|
|
39
|
+
oFrozenCollapsed = Object.freeze({"@$ui5.node.isExpanded" : false}),
|
|
40
|
+
oFrozenExpanded = Object.freeze({"@$ui5.node.isExpanded" : true}),
|
|
39
41
|
// Example: "Texts/Country asc"
|
|
40
42
|
// capture groups: 1 - the property path
|
|
41
43
|
rOrderbyItem = new RegExp("^(" + _Parser.sODataIdentifier
|
|
@@ -97,6 +99,7 @@ sap.ui.define([
|
|
|
97
99
|
/*
|
|
98
100
|
* Takes care of the $skip/$top system query options and returns the corresponding
|
|
99
101
|
* transformation(s).
|
|
102
|
+
*
|
|
100
103
|
* @param {object} mQueryOptions
|
|
101
104
|
* A modifiable map of key-value pairs representing the query string
|
|
102
105
|
* @param {number} [mQueryOptions.$skip]
|
|
@@ -122,6 +125,54 @@ sap.ui.define([
|
|
|
122
125
|
}
|
|
123
126
|
|
|
124
127
|
_AggregationHelper = {
|
|
128
|
+
/**
|
|
129
|
+
* Before overwriting the given placeholder with the given element, perform some sanity
|
|
130
|
+
* checks and restore some data from the placeholder to the element.
|
|
131
|
+
*
|
|
132
|
+
* @param {object} oPlaceholder - A placeholder
|
|
133
|
+
* @param {object} oElement - Any node or leaf element
|
|
134
|
+
* @param {sap.ui.model.odata.v4.lib._CollectionCache} oCache
|
|
135
|
+
* The group level cache which the given element has been read from
|
|
136
|
+
* @param {number} iIndex
|
|
137
|
+
* The index of the given element within the cache's collection
|
|
138
|
+
* @throws {Error}
|
|
139
|
+
* In case an unexpected element or placeholder would be overwritten, or in case of a
|
|
140
|
+
* structural change
|
|
141
|
+
*
|
|
142
|
+
* @private
|
|
143
|
+
*/
|
|
144
|
+
beforeOverwritePlaceholder : function (oPlaceholder, oElement, oCache, iIndex) {
|
|
145
|
+
var oParent = _Helper.getPrivateAnnotation(oPlaceholder, "parent");
|
|
146
|
+
|
|
147
|
+
if (!_Helper.hasPrivateAnnotation(oPlaceholder, "placeholder")) {
|
|
148
|
+
throw new Error("Unexpected element");
|
|
149
|
+
}
|
|
150
|
+
if (oParent !== oCache
|
|
151
|
+
|| _Helper.getPrivateAnnotation(oPlaceholder, "index") !== iIndex
|
|
152
|
+
|| oPlaceholder["@$ui5.node.level"] !== oElement["@$ui5.node.level"]
|
|
153
|
+
// Note: level 0 is used for initial placeholders of 1st level cache in case
|
|
154
|
+
// expandTo > 1
|
|
155
|
+
&& oPlaceholder["@$ui5.node.level"] !== 0) {
|
|
156
|
+
throw new Error("Wrong placeholder");
|
|
157
|
+
}
|
|
158
|
+
["descendants", "filter", "predicate"].forEach(function (sAnnotation) {
|
|
159
|
+
if (_Helper.hasPrivateAnnotation(oPlaceholder, sAnnotation)
|
|
160
|
+
&& _Helper.getPrivateAnnotation(oElement, sAnnotation)
|
|
161
|
+
!== _Helper.getPrivateAnnotation(oPlaceholder, sAnnotation)) {
|
|
162
|
+
throw new Error("Unexpected structural change: " + sAnnotation);
|
|
163
|
+
}
|
|
164
|
+
});
|
|
165
|
+
|
|
166
|
+
_Helper.copyPrivateAnnotation(oPlaceholder, "spliced", oElement);
|
|
167
|
+
if ("@$ui5.node.isExpanded" in oPlaceholder) {
|
|
168
|
+
if ((oElement["@$ui5.node.isExpanded"] === undefined)
|
|
169
|
+
!== (oPlaceholder["@$ui5.node.isExpanded"] === undefined)) {
|
|
170
|
+
throw new Error("Not a leaf anymore (or vice versa)");
|
|
171
|
+
}
|
|
172
|
+
oElement["@$ui5.node.isExpanded"] = oPlaceholder["@$ui5.node.isExpanded"];
|
|
173
|
+
}
|
|
174
|
+
},
|
|
175
|
+
|
|
125
176
|
/**
|
|
126
177
|
* Builds the value for a "$apply" system query option based on the given data aggregation
|
|
127
178
|
* information. The value is "groupby((<groupable_1,...,groupable_N),aggregate(
|
|
@@ -344,7 +395,9 @@ sap.ui.define([
|
|
|
344
395
|
/**
|
|
345
396
|
* Builds the value for a "$apply" system query option based on the given data aggregation
|
|
346
397
|
* information for a recursive hierarchy. If no query options are given, only a symbolic
|
|
347
|
-
* "$apply" is constructed to avoid timing issues with metadata.
|
|
398
|
+
* "$apply" is constructed to avoid timing issues with metadata. The property paths for
|
|
399
|
+
* DistanceFromRootProperty, DrillStateProperty, and LimitedDescendantCountProperty are
|
|
400
|
+
* stored at <code>oAggregation</code> using a "$" prefix (if not already stored).
|
|
348
401
|
*
|
|
349
402
|
* @param {object} oAggregation
|
|
350
403
|
* An object holding the information needed for a recursive hierarchy; see
|
|
@@ -383,14 +436,21 @@ sap.ui.define([
|
|
|
383
436
|
sSeparator = "";
|
|
384
437
|
|
|
385
438
|
function select(sProperty) {
|
|
439
|
+
var sPropertyPath;
|
|
440
|
+
|
|
386
441
|
if (mQueryOptions.$select) {
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
442
|
+
sPropertyPath = oAggregation["$" + sProperty];
|
|
443
|
+
if (!sPropertyPath) {
|
|
444
|
+
if (!mRecursiveHierarchy) {
|
|
445
|
+
mRecursiveHierarchy = oAggregation.$fetchMetadata(sPath
|
|
446
|
+
+ "/@com.sap.vocabularies.Hierarchy.v1.RecursiveHierarchy#"
|
|
447
|
+
+ sHierarchyQualifier).getResult();
|
|
448
|
+
}
|
|
392
449
|
|
|
393
|
-
|
|
450
|
+
sPropertyPath = oAggregation["$" + sProperty]
|
|
451
|
+
= mRecursiveHierarchy[sProperty].$PropertyPath;
|
|
452
|
+
}
|
|
453
|
+
mQueryOptions.$select.push(sPropertyPath);
|
|
394
454
|
}
|
|
395
455
|
}
|
|
396
456
|
|
|
@@ -434,8 +494,8 @@ sap.ui.define([
|
|
|
434
494
|
+ "',Levels=" + (oAggregation.expandTo || 1)
|
|
435
495
|
+ ")";
|
|
436
496
|
if (oAggregation.expandTo > 1) {
|
|
437
|
-
select("DescendantCountProperty");
|
|
438
497
|
select("DistanceFromRootProperty");
|
|
498
|
+
select("LimitedDescendantCountProperty");
|
|
439
499
|
}
|
|
440
500
|
}
|
|
441
501
|
select("DrillStateProperty");
|
|
@@ -499,7 +559,7 @@ sap.ui.define([
|
|
|
499
559
|
*
|
|
500
560
|
* @param {number} iLevel - The level
|
|
501
561
|
* @param {number} iIndex - The index within the parent cache
|
|
502
|
-
* @param {
|
|
562
|
+
* @param {sap.ui.model.odata.v4.lib._CollectionCache} oParentCache - The parent cache
|
|
503
563
|
* @returns {object} A placeholder object
|
|
504
564
|
*
|
|
505
565
|
* @public
|
|
@@ -509,6 +569,7 @@ sap.ui.define([
|
|
|
509
569
|
|
|
510
570
|
_Helper.setPrivateAnnotation(oPlaceholder, "index", iIndex);
|
|
511
571
|
_Helper.setPrivateAnnotation(oPlaceholder, "parent", oParentCache);
|
|
572
|
+
_Helper.setPrivateAnnotation(oPlaceholder, "placeholder", true);
|
|
512
573
|
|
|
513
574
|
return oPlaceholder;
|
|
514
575
|
},
|
|
@@ -631,6 +692,21 @@ sap.ui.define([
|
|
|
631
692
|
return aAllProperties;
|
|
632
693
|
},
|
|
633
694
|
|
|
695
|
+
/**
|
|
696
|
+
* Gets an object with property updates to be applied when collapsing the given group node.
|
|
697
|
+
*
|
|
698
|
+
* @param {object} oGroupNode
|
|
699
|
+
* The group node which is about to be expanded
|
|
700
|
+
* @returns {object}
|
|
701
|
+
* An object with property updates to be applied when collapsing the given group node
|
|
702
|
+
*
|
|
703
|
+
* @public
|
|
704
|
+
* @see .getOrCreateExpandedObject
|
|
705
|
+
*/
|
|
706
|
+
getCollapsedObject : function (oGroupNode) {
|
|
707
|
+
return _Helper.getPrivateAnnotation(oGroupNode, "collapsed") || oFrozenCollapsed;
|
|
708
|
+
},
|
|
709
|
+
|
|
634
710
|
/**
|
|
635
711
|
* Returns the "$orderby" system query option filtered in such a way that only aggregatable
|
|
636
712
|
* or groupable properties, units, or additionally requested properties are used, provided
|
|
@@ -722,7 +798,7 @@ sap.ui.define([
|
|
|
722
798
|
/**
|
|
723
799
|
* Gets an object with property updates to be applied when expanding the given group node,
|
|
724
800
|
* creating it when needed for the first time. Creates a corresponding object to be applied
|
|
725
|
-
* when collapsing the node again. Takes placement of subtotals into account.
|
|
801
|
+
* when collapsing the node again, if needed. Takes placement of subtotals into account.
|
|
726
802
|
*
|
|
727
803
|
* @param {object} oAggregation
|
|
728
804
|
* An object holding the information needed for data aggregation;
|
|
@@ -733,20 +809,23 @@ sap.ui.define([
|
|
|
733
809
|
* An object with property updates to be applied when expanding the given group node
|
|
734
810
|
*
|
|
735
811
|
* @public
|
|
812
|
+
* @see .getCollapsedObject
|
|
736
813
|
*/
|
|
737
814
|
getOrCreateExpandedObject : function (oAggregation, oGroupNode) {
|
|
738
|
-
var oCollapsed,
|
|
739
|
-
oExpanded = _Helper.getPrivateAnnotation(oGroupNode, "expanded");
|
|
815
|
+
var oCollapsed, oExpanded;
|
|
740
816
|
|
|
817
|
+
if (oAggregation.subtotalsAtBottomOnly === undefined) { // "top only"
|
|
818
|
+
return oFrozenExpanded;
|
|
819
|
+
}
|
|
820
|
+
|
|
821
|
+
oExpanded = _Helper.getPrivateAnnotation(oGroupNode, "expanded");
|
|
741
822
|
if (!oExpanded) {
|
|
742
823
|
oCollapsed = {"@$ui5.node.isExpanded" : false};
|
|
743
824
|
_Helper.setPrivateAnnotation(oGroupNode, "collapsed", oCollapsed);
|
|
744
825
|
oExpanded = {"@$ui5.node.isExpanded" : true};
|
|
745
826
|
_Helper.setPrivateAnnotation(oGroupNode, "expanded", oExpanded);
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
oAggregation.subtotalsAtBottomOnly ? oExpanded : null);
|
|
749
|
-
}
|
|
827
|
+
_AggregationHelper.extractSubtotals(oAggregation, oGroupNode, oCollapsed,
|
|
828
|
+
oAggregation.subtotalsAtBottomOnly ? oExpanded : null);
|
|
750
829
|
}
|
|
751
830
|
|
|
752
831
|
return oExpanded;
|
|
@@ -840,6 +919,20 @@ sap.ui.define([
|
|
|
840
919
|
});
|
|
841
920
|
},
|
|
842
921
|
|
|
922
|
+
/**
|
|
923
|
+
* Marks the value of the given element's private annotation "spliced" with
|
|
924
|
+
* <code>$stale : true</code>, if available.
|
|
925
|
+
*
|
|
926
|
+
* @param {object} oElement - Any node or leaf element
|
|
927
|
+
*/
|
|
928
|
+
markSplicedStale : function (oElement) {
|
|
929
|
+
var aSpliced = _Helper.getPrivateAnnotation(oElement, "spliced");
|
|
930
|
+
|
|
931
|
+
if (aSpliced) { // => collapsed
|
|
932
|
+
aSpliced.$stale = true;
|
|
933
|
+
}
|
|
934
|
+
},
|
|
935
|
+
|
|
843
936
|
/**
|
|
844
937
|
* Removes any potential "UI5grand__" prefix from the given grand totals.
|
|
845
938
|
*
|
|
@@ -1772,7 +1772,7 @@ sap.ui.define([
|
|
|
1772
1772
|
* Path of the entity, relative to the cache (as used by change listeners)
|
|
1773
1773
|
* @param {boolean} [bUpdating]
|
|
1774
1774
|
* Whether the given property will not be overwritten by a creation POST(+GET) response
|
|
1775
|
-
* @returns {
|
|
1775
|
+
* @returns {sap.ui.base.SyncPromise}
|
|
1776
1776
|
* A promise which resolves with <code>undefined</code> once the value has been set, or is
|
|
1777
1777
|
* rejected with an error if setting fails somehow
|
|
1778
1778
|
* @throws {Error} If the cache is shared
|
|
@@ -1880,6 +1880,9 @@ sap.ui.define([
|
|
|
1880
1880
|
* If no back-end request is needed, the function is not called.
|
|
1881
1881
|
* @param {function} fnIsKeepAlive
|
|
1882
1882
|
* A function to tell whether the entity is kept-alive
|
|
1883
|
+
* @param {boolean} [bInactive]
|
|
1884
|
+
* If <code>true</code>, the cache and the POST request will be updated, but the entity stays
|
|
1885
|
+
* inactive
|
|
1883
1886
|
* @returns {Promise}
|
|
1884
1887
|
* A promise for the PATCH request (resolves with <code>undefined</code>); rejected in case of
|
|
1885
1888
|
* cancellation or if no <code>fnErrorCallback</code> is given
|
|
@@ -1889,7 +1892,7 @@ sap.ui.define([
|
|
|
1889
1892
|
*/
|
|
1890
1893
|
_Cache.prototype.update = function (oGroupLock, sPropertyPath, vValue, fnErrorCallback,
|
|
1891
1894
|
sEditUrl, sEntityPath, sUnitOrCurrencyPath, bPatchWithoutSideEffects, fnPatchSent,
|
|
1892
|
-
fnIsKeepAlive) {
|
|
1895
|
+
fnIsKeepAlive, bInactive) {
|
|
1893
1896
|
var oPromise,
|
|
1894
1897
|
aPropertyPath = sPropertyPath.split("/"),
|
|
1895
1898
|
aUnitOrCurrencyPath,
|
|
@@ -2081,7 +2084,7 @@ sap.ui.define([
|
|
|
2081
2084
|
if (oPostBody) {
|
|
2082
2085
|
// change listeners are informed later
|
|
2083
2086
|
_Helper.updateAll({}, sEntityPath, oPostBody, oUpdateData);
|
|
2084
|
-
if (oEntity["@$ui5.context.isInactive"]) {
|
|
2087
|
+
if (oEntity["@$ui5.context.isInactive"] && !bInactive) {
|
|
2085
2088
|
oUpdateData["@$ui5.context.isInactive"] = false;
|
|
2086
2089
|
that.iActiveElements += 1;
|
|
2087
2090
|
addToCount(that.mChangeListeners, "", that.aElements, 1);
|
|
@@ -2105,9 +2108,10 @@ sap.ui.define([
|
|
|
2105
2108
|
}
|
|
2106
2109
|
}
|
|
2107
2110
|
if (sTransientGroup) {
|
|
2108
|
-
// When updating a transient entity, _Helper.updateAll has already updated
|
|
2109
|
-
// POST request.
|
|
2110
|
-
|
|
2111
|
+
// When updating a transient entity, the above _Helper.updateAll has already updated
|
|
2112
|
+
// the POST request.
|
|
2113
|
+
// If the entity remains inactive, update the request, but keep it parked
|
|
2114
|
+
if (sParkedGroup && !bInactive) {
|
|
2111
2115
|
_Helper.setPrivateAnnotation(oEntity, "transient", sTransientGroup);
|
|
2112
2116
|
that.oRequestor.relocate(sParkedGroup, oPostBody, sTransientGroup);
|
|
2113
2117
|
}
|
|
@@ -2451,6 +2455,17 @@ sap.ui.define([
|
|
|
2451
2455
|
this.addKeptElement(oElement); // maintain $byPredicate
|
|
2452
2456
|
};
|
|
2453
2457
|
|
|
2458
|
+
/**
|
|
2459
|
+
* Drops the element with the given index and predicate from this cache's collection.
|
|
2460
|
+
*
|
|
2461
|
+
* @param {number} iIndex - An index
|
|
2462
|
+
* @param {string} sPredicate - A key predicate
|
|
2463
|
+
*/
|
|
2464
|
+
_CollectionCache.prototype.drop = function (iIndex, sPredicate) {
|
|
2465
|
+
delete this.aElements[iIndex];
|
|
2466
|
+
delete this.aElements.$byPredicate[sPredicate];
|
|
2467
|
+
};
|
|
2468
|
+
|
|
2454
2469
|
/**
|
|
2455
2470
|
* Returns a promise to be resolved (synchronously if possible) with an OData object for the
|
|
2456
2471
|
* requested data.
|
|
@@ -2543,6 +2558,57 @@ sap.ui.define([
|
|
|
2543
2558
|
this.oSyncPromiseAll = undefined; // from now on, fetchValue has to wait again
|
|
2544
2559
|
};
|
|
2545
2560
|
|
|
2561
|
+
/**
|
|
2562
|
+
* Determines the list of visible or kept-alive elements determined by the given predicates. All
|
|
2563
|
+
* other elements from the back end are discarded!
|
|
2564
|
+
*
|
|
2565
|
+
* @param {string[]} aPredicates
|
|
2566
|
+
* The key predicates of the root elements to request side effects for
|
|
2567
|
+
* @returns {object[]}
|
|
2568
|
+
* The list of visible or kept-alive elements
|
|
2569
|
+
*
|
|
2570
|
+
* @private
|
|
2571
|
+
*/
|
|
2572
|
+
_CollectionCache.prototype.filterVisibleElements = function (aPredicates) {
|
|
2573
|
+
var aElements,
|
|
2574
|
+
iMaxIndex = -1,
|
|
2575
|
+
mPredicates = {}, // a set of the predicates (as map to true) to speed up the search
|
|
2576
|
+
that = this;
|
|
2577
|
+
|
|
2578
|
+
aPredicates.forEach(function (sPredicate) {
|
|
2579
|
+
mPredicates[sPredicate] = true;
|
|
2580
|
+
});
|
|
2581
|
+
|
|
2582
|
+
aElements = this.aElements.filter(function (oElement, i) {
|
|
2583
|
+
var sPredicate;
|
|
2584
|
+
|
|
2585
|
+
if (!oElement) {
|
|
2586
|
+
return false; // ignore
|
|
2587
|
+
}
|
|
2588
|
+
if (_Helper.hasPrivateAnnotation(oElement, "transient")) {
|
|
2589
|
+
iMaxIndex = i;
|
|
2590
|
+
return false; // keep, but do not request
|
|
2591
|
+
}
|
|
2592
|
+
|
|
2593
|
+
sPredicate = _Helper.getPrivateAnnotation(oElement, "predicate");
|
|
2594
|
+
if (mPredicates[sPredicate]
|
|
2595
|
+
|| _Helper.hasPrivateAnnotation(oElement, "transientPredicate")) {
|
|
2596
|
+
iMaxIndex = i;
|
|
2597
|
+
delete mPredicates[sPredicate];
|
|
2598
|
+
return true; // keep and request
|
|
2599
|
+
}
|
|
2600
|
+
|
|
2601
|
+
that.drop(i, sPredicate);
|
|
2602
|
+
return false;
|
|
2603
|
+
});
|
|
2604
|
+
this.aElements.length = iMaxIndex + 1;
|
|
2605
|
+
Object.keys(mPredicates).forEach(function (sPredicate) {
|
|
2606
|
+
aElements.push(that.aElements.$byPredicate[sPredicate]);
|
|
2607
|
+
});
|
|
2608
|
+
|
|
2609
|
+
return aElements;
|
|
2610
|
+
};
|
|
2611
|
+
|
|
2546
2612
|
/**
|
|
2547
2613
|
* Returns a filter that excludes all created entities in this cache's collection and all
|
|
2548
2614
|
* entities that have been deleted on the client, but not on the server yet.
|
|
@@ -3122,10 +3188,8 @@ sap.ui.define([
|
|
|
3122
3188
|
_CollectionCache.prototype.requestSideEffects = function (oGroupLock, aPaths, aPredicates,
|
|
3123
3189
|
bSingle) {
|
|
3124
3190
|
var aElements,
|
|
3125
|
-
iMaxIndex = -1,
|
|
3126
3191
|
mMergeableQueryOptions,
|
|
3127
3192
|
mQueryOptions,
|
|
3128
|
-
mPredicates = {}, // a set of the predicates (as map to true) to speed up the search
|
|
3129
3193
|
sResourcePath,
|
|
3130
3194
|
bSkip,
|
|
3131
3195
|
mTypeForMetaPath = this.fetchTypes().getResult(),
|
|
@@ -3145,44 +3209,17 @@ sap.ui.define([
|
|
|
3145
3209
|
if (!mQueryOptions) {
|
|
3146
3210
|
return SyncPromise.resolve(); // micro optimization: use *sync.* promise which is cached
|
|
3147
3211
|
}
|
|
3212
|
+
if (this.beforeRequestSideEffects) {
|
|
3213
|
+
this.beforeRequestSideEffects(mQueryOptions);
|
|
3214
|
+
}
|
|
3148
3215
|
|
|
3149
3216
|
if (bSingle) {
|
|
3150
3217
|
aElements = [this.aElements.$byPredicate[aPredicates[0]]];
|
|
3151
3218
|
} else {
|
|
3152
|
-
|
|
3153
|
-
mPredicates[sPredicate] = true;
|
|
3154
|
-
});
|
|
3155
|
-
|
|
3156
|
-
aElements = this.aElements.filter(function (oElement, i) {
|
|
3157
|
-
var sPredicate;
|
|
3158
|
-
|
|
3159
|
-
if (!oElement) {
|
|
3160
|
-
return false; // ignore
|
|
3161
|
-
}
|
|
3162
|
-
if (_Helper.hasPrivateAnnotation(oElement, "transient")) {
|
|
3163
|
-
iMaxIndex = i;
|
|
3164
|
-
return false; // keep, but do not request
|
|
3165
|
-
}
|
|
3166
|
-
|
|
3167
|
-
sPredicate = _Helper.getPrivateAnnotation(oElement, "predicate");
|
|
3168
|
-
if (mPredicates[sPredicate]
|
|
3169
|
-
|| _Helper.hasPrivateAnnotation(oElement, "transientPredicate")) {
|
|
3170
|
-
iMaxIndex = i;
|
|
3171
|
-
delete mPredicates[sPredicate];
|
|
3172
|
-
return true; // keep and request
|
|
3173
|
-
}
|
|
3174
|
-
|
|
3175
|
-
delete that.aElements[i];
|
|
3176
|
-
delete that.aElements.$byPredicate[sPredicate];
|
|
3177
|
-
return false;
|
|
3178
|
-
});
|
|
3179
|
-
this.aElements.length = iMaxIndex + 1;
|
|
3219
|
+
aElements = this.filterVisibleElements(aPredicates);
|
|
3180
3220
|
if (!aElements.length) {
|
|
3181
3221
|
return SyncPromise.resolve(); // micro optimization: use cached *sync.* promise
|
|
3182
3222
|
}
|
|
3183
|
-
Object.keys(mPredicates).forEach(function (sPredicate) {
|
|
3184
|
-
aElements.push(that.aElements.$byPredicate[sPredicate]);
|
|
3185
|
-
});
|
|
3186
3223
|
}
|
|
3187
3224
|
mQueryOptions.$filter = aElements.map(function (oElement) {
|
|
3188
3225
|
// all elements have a key predicate, so we will get a key filter
|
|
@@ -3922,7 +3959,8 @@ sap.ui.define([
|
|
|
3922
3959
|
* @param {sap.ui.model.odata.v4.lib._Requestor} oRequestor
|
|
3923
3960
|
* The requestor
|
|
3924
3961
|
* @param {string} sResourcePath
|
|
3925
|
-
* A resource path relative to the service URL; it must not contain a query string
|
|
3962
|
+
* A resource path relative to the service URL; it must not contain a query string
|
|
3963
|
+
* <br>
|
|
3926
3964
|
* Example: Products
|
|
3927
3965
|
* @param {object} [mQueryOptions]
|
|
3928
3966
|
* A map of key-value pairs representing the query string, the value in this pair has to
|
|
@@ -3994,7 +4032,8 @@ sap.ui.define([
|
|
|
3994
4032
|
* @param {sap.ui.model.odata.v4.lib._Requestor} oRequestor
|
|
3995
4033
|
* The requestor
|
|
3996
4034
|
* @param {string} sResourcePath
|
|
3997
|
-
* A resource path relative to the service URL; it must not contain a query string
|
|
4035
|
+
* A resource path relative to the service URL; it must not contain a query string
|
|
4036
|
+
* <br>
|
|
3998
4037
|
* Example: Products
|
|
3999
4038
|
* @param {object} [mQueryOptions]
|
|
4000
4039
|
* A map of key-value pairs representing the query string, the value in this pair has to
|
|
@@ -4021,7 +4060,8 @@ sap.ui.define([
|
|
|
4021
4060
|
* @param {sap.ui.model.odata.v4.lib._Requestor} oRequestor
|
|
4022
4061
|
* The requestor
|
|
4023
4062
|
* @param {string} sResourcePath
|
|
4024
|
-
* A resource path relative to the service URL; it must not contain a query string
|
|
4063
|
+
* A resource path relative to the service URL; it must not contain a query string
|
|
4064
|
+
* <br>
|
|
4025
4065
|
* Example: Products
|
|
4026
4066
|
* @param {object} [mQueryOptions]
|
|
4027
4067
|
* A map of key-value pairs representing the query string, the value in this pair has to
|
|
@@ -356,6 +356,32 @@ sap.ui.define([
|
|
|
356
356
|
: JSON.parse(JSON.stringify(vValue, fnReplacer));
|
|
357
357
|
},
|
|
358
358
|
|
|
359
|
+
/**
|
|
360
|
+
* Copies the value of the private client-side instance annotation with the given
|
|
361
|
+
* unqualified name from the given source to the given target object, if present at the
|
|
362
|
+
* source.
|
|
363
|
+
*
|
|
364
|
+
* @param {object} oSource
|
|
365
|
+
* Any object
|
|
366
|
+
* @param {string} sAnnotation
|
|
367
|
+
* The unqualified name of a private client-side instance annotation (hidden inside
|
|
368
|
+
* namespace "@$ui5._")
|
|
369
|
+
* @param {object} oTarget
|
|
370
|
+
* Any object
|
|
371
|
+
* @throws {Error}
|
|
372
|
+
* If the annotation to be copied is already present at the target, no matter if the value
|
|
373
|
+
* is the same or not
|
|
374
|
+
*/
|
|
375
|
+
copyPrivateAnnotation : function (oSource, sAnnotation, oTarget) {
|
|
376
|
+
if (_Helper.hasPrivateAnnotation(oSource, sAnnotation)) {
|
|
377
|
+
if (_Helper.hasPrivateAnnotation(oTarget, sAnnotation)) {
|
|
378
|
+
throw new Error("Must not overwrite: " + sAnnotation);
|
|
379
|
+
}
|
|
380
|
+
_Helper.setPrivateAnnotation(oTarget, sAnnotation,
|
|
381
|
+
_Helper.getPrivateAnnotation(oSource, sAnnotation));
|
|
382
|
+
}
|
|
383
|
+
},
|
|
384
|
+
|
|
359
385
|
/**
|
|
360
386
|
* Returns an <code>Error</code> instance from a jQuery XHR wrapper.
|
|
361
387
|
*
|
|
@@ -229,7 +229,7 @@ sap.ui.define([
|
|
|
229
229
|
*
|
|
230
230
|
* @extends sap.ui.model.Model
|
|
231
231
|
* @public
|
|
232
|
-
* @version 1.
|
|
232
|
+
* @version 1.109.0
|
|
233
233
|
*/
|
|
234
234
|
var ResourceModel = Model.extend("sap.ui.model.resource.ResourceModel", /** @lends sap.ui.model.resource.ResourceModel.prototype */ {
|
|
235
235
|
|
|
@@ -26,7 +26,7 @@ sap.ui.define([
|
|
|
26
26
|
* @extends sap.ui.model.SimpleType
|
|
27
27
|
*
|
|
28
28
|
* @author SAP SE
|
|
29
|
-
* @version 1.
|
|
29
|
+
* @version 1.109.0
|
|
30
30
|
*
|
|
31
31
|
* @public
|
|
32
32
|
* @param {object} [oFormatOptions] Formatting options. For a list of all available options, see {@link sap.ui.core.format.DateFormat.getDateInstance DateFormat}.
|
|
@@ -33,7 +33,7 @@ sap.ui.define([
|
|
|
33
33
|
* @extends sap.ui.model.CompositeType
|
|
34
34
|
*
|
|
35
35
|
* @author SAP SE
|
|
36
|
-
* @version 1.
|
|
36
|
+
* @version 1.109.0
|
|
37
37
|
*
|
|
38
38
|
* @public
|
|
39
39
|
* @param {object} [oFormatOptions] Formatting options. For a list of all available options, see {@link sap.ui.core.format.DateFormat.getDateInstance DateFormat}.
|
|
@@ -19,7 +19,7 @@ sap.ui.define(['./Date', 'sap/ui/core/format/DateFormat'],
|
|
|
19
19
|
* @extends sap.ui.model.type.Date
|
|
20
20
|
*
|
|
21
21
|
* @author SAP SE
|
|
22
|
-
* @version 1.
|
|
22
|
+
* @version 1.109.0
|
|
23
23
|
*
|
|
24
24
|
* @public
|
|
25
25
|
* @param {object} [oFormatOptions] Formatting options. For a list of all available options, see {@link sap.ui.core.format.DateFormat.getDateTimeInstance DateFormat}.
|
|
@@ -19,7 +19,7 @@ sap.ui.define(['./DateInterval', 'sap/ui/core/format/DateFormat'],
|
|
|
19
19
|
* @extends sap.ui.model.type.DateInterval
|
|
20
20
|
*
|
|
21
21
|
* @author SAP SE
|
|
22
|
-
* @version 1.
|
|
22
|
+
* @version 1.109.0
|
|
23
23
|
*
|
|
24
24
|
* @public
|
|
25
25
|
* @param {object} [oFormatOptions] Formatting options. For a list of all available options, see {@link sap.ui.core.format.DateFormat.getDateTimeInstance DateFormat}.
|
|
@@ -24,7 +24,7 @@ sap.ui.define([
|
|
|
24
24
|
* @extends sap.ui.model.SimpleType
|
|
25
25
|
*
|
|
26
26
|
* @author SAP SE
|
|
27
|
-
* @version 1.
|
|
27
|
+
* @version 1.109.0
|
|
28
28
|
*
|
|
29
29
|
* @public
|
|
30
30
|
* @param {object} [oFormatOptions] formatting options. Supports the same options as {@link sap.ui.core.format.FileSizeFormat.getInstance FileSizeFormat.getInstance}
|
|
@@ -26,7 +26,7 @@ sap.ui.define([
|
|
|
26
26
|
* @extends sap.ui.model.SimpleType
|
|
27
27
|
*
|
|
28
28
|
* @author SAP SE
|
|
29
|
-
* @version 1.
|
|
29
|
+
* @version 1.109.0
|
|
30
30
|
*
|
|
31
31
|
* @public
|
|
32
32
|
* @param {object} [oFormatOptions] Formatting options. For a list of all available options, see {@link sap.ui.core.format.NumberFormat NumberFormat}.
|
|
@@ -26,7 +26,7 @@ sap.ui.define([
|
|
|
26
26
|
* @extends sap.ui.model.SimpleType
|
|
27
27
|
*
|
|
28
28
|
* @author SAP SE
|
|
29
|
-
* @version 1.
|
|
29
|
+
* @version 1.109.0
|
|
30
30
|
*
|
|
31
31
|
* @public
|
|
32
32
|
* @param {object} [oFormatOptions] Formatting options. For a list of all available options, see {@link sap.ui.core.format.NumberFormat NumberFormat}.
|
|
@@ -19,7 +19,7 @@ sap.ui.define(['./Date', 'sap/ui/core/format/DateFormat'],
|
|
|
19
19
|
* @extends sap.ui.model.type.Date
|
|
20
20
|
*
|
|
21
21
|
* @author SAP SE
|
|
22
|
-
* @version 1.
|
|
22
|
+
* @version 1.109.0
|
|
23
23
|
*
|
|
24
24
|
* @public
|
|
25
25
|
* @param {object} [oFormatOptions] Formatting options. For a list of all available options, see {@link sap.ui.core.format.DateFormat.getTimeInstance DateFormat}.
|
|
@@ -19,7 +19,7 @@ sap.ui.define(['./DateInterval', 'sap/ui/core/format/DateFormat'],
|
|
|
19
19
|
* @extends sap.ui.model.type.DateInterval
|
|
20
20
|
*
|
|
21
21
|
* @author SAP SE
|
|
22
|
-
* @version 1.
|
|
22
|
+
* @version 1.109.0
|
|
23
23
|
*
|
|
24
24
|
* @public
|
|
25
25
|
* @param {object} [oFormatOptions] Formatting options. For a list of all available options, see {@link sap.ui.core.format.DateFormat.getTimeInstance DateFormat}.
|
|
@@ -24,6 +24,7 @@ sap.ui.define('sap/ui/qunit/QUnitUtils', [
|
|
|
24
24
|
"sap/base/strings/capitalize",
|
|
25
25
|
"sap/base/util/UriParameters",
|
|
26
26
|
"sap/base/Log",
|
|
27
|
+
"sap/ui/core/Element",
|
|
27
28
|
"sap/ui/dom/jquery/control" // jQuery Plugin "control"
|
|
28
29
|
],
|
|
29
30
|
function(
|
|
@@ -34,7 +35,8 @@ sap.ui.define('sap/ui/qunit/QUnitUtils', [
|
|
|
34
35
|
camelize,
|
|
35
36
|
capitalize,
|
|
36
37
|
UriParameters,
|
|
37
|
-
Log
|
|
38
|
+
Log,
|
|
39
|
+
Element
|
|
38
40
|
) {
|
|
39
41
|
"use strict";
|
|
40
42
|
|
|
@@ -218,6 +220,16 @@ sap.ui.define('sap/ui/qunit/QUnitUtils', [
|
|
|
218
220
|
|
|
219
221
|
};
|
|
220
222
|
|
|
223
|
+
var fnClosestTo = Element.closestTo && Element.closestTo.bind(Element);
|
|
224
|
+
|
|
225
|
+
/**
|
|
226
|
+
* @deprecated Since 1.106
|
|
227
|
+
*/
|
|
228
|
+
if ( fnClosestTo == null ) {
|
|
229
|
+
fnClosestTo = function(oElement) {
|
|
230
|
+
return jQuery(oElement).control(0);
|
|
231
|
+
};
|
|
232
|
+
}
|
|
221
233
|
|
|
222
234
|
/**
|
|
223
235
|
* Programmatically triggers a touch event specified by its name.
|
|
@@ -236,7 +248,7 @@ sap.ui.define('sap/ui/qunit/QUnitUtils', [
|
|
|
236
248
|
}
|
|
237
249
|
|
|
238
250
|
var oEvent = fakeEvent(sEventName, oTarget, oParams),
|
|
239
|
-
oElement =
|
|
251
|
+
oElement = fnClosestTo(oTarget),
|
|
240
252
|
sEventHandlerName = (sEventHandlerPrefix == null ? 'on' : sEventHandlerPrefix) + sEventName;
|
|
241
253
|
|
|
242
254
|
if (oElement && oElement[sEventHandlerName]) {
|