@openui5/sap.ui.core 1.129.0 → 1.130.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.
- package/THIRDPARTY.txt +1 -1
- package/package.json +1 -1
- package/src/jquery.sap.global.js +7 -7
- 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/jquery.sap.trace.js +18 -18
- package/src/sap/base/Event.js +1 -1
- package/src/sap/base/Eventing.js +1 -1
- package/src/sap/base/config.js +1 -1
- package/src/sap/base/future.js +10 -2
- package/src/sap/base/i18n/LanguageTag.js +1 -1
- package/src/sap/base/i18n/date/TimezoneUtils.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/ui/Device.js +3 -3
- package/src/sap/ui/Global.js +3 -3
- package/src/sap/ui/base/BindingParser.js +1 -3
- 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 +4 -9
- package/src/sap/ui/base/ManagedObjectMetadata.js +1 -1
- 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 +2 -2
- package/src/sap/ui/core/BusyIndicator.js +1 -1
- package/src/sap/ui/core/Component.js +32 -130
- package/src/sap/ui/core/ComponentContainer.js +2 -2
- package/src/sap/ui/core/ComponentHooks.js +174 -0
- 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 +2 -2
- 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 +6 -2
- 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 +6 -5
- 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 +2 -15
- 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 +43 -37
- package/src/sap/ui/core/Manifest.js +2 -2
- package/src/sap/ui/core/Message.js +1 -1
- package/src/sap/ui/core/RenderManager.js +41 -32
- package/src/sap/ui/core/Renderer.js +1 -1
- 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/StaticArea.js +0 -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 +1 -1
- package/src/sap/ui/core/UIComponent.js +3 -3
- 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 +3 -3
- package/src/sap/ui/core/_IconRegistry.js +1 -1
- package/src/sap/ui/core/cldr/ar.json +5 -1
- package/src/sap/ui/core/cldr/ar_EG.json +5 -1
- package/src/sap/ui/core/cldr/ar_SA.json +5 -1
- package/src/sap/ui/core/cldr/bg.json +4 -0
- package/src/sap/ui/core/cldr/ca.json +4 -0
- package/src/sap/ui/core/cldr/cnr.json +4 -0
- package/src/sap/ui/core/cldr/cs.json +4 -0
- package/src/sap/ui/core/cldr/cy.json +4 -0
- package/src/sap/ui/core/cldr/da.json +4 -0
- package/src/sap/ui/core/cldr/de.json +4 -0
- package/src/sap/ui/core/cldr/de_AT.json +4 -0
- package/src/sap/ui/core/cldr/de_CH.json +4 -0
- package/src/sap/ui/core/cldr/el.json +4 -0
- package/src/sap/ui/core/cldr/el_CY.json +4 -0
- package/src/sap/ui/core/cldr/en.json +4 -0
- package/src/sap/ui/core/cldr/en_AU.json +4 -0
- package/src/sap/ui/core/cldr/en_GB.json +4 -0
- package/src/sap/ui/core/cldr/en_HK.json +5 -1
- package/src/sap/ui/core/cldr/en_IE.json +4 -0
- package/src/sap/ui/core/cldr/en_IN.json +5 -1
- package/src/sap/ui/core/cldr/en_NZ.json +4 -0
- package/src/sap/ui/core/cldr/en_PG.json +4 -0
- package/src/sap/ui/core/cldr/en_SG.json +5 -1
- package/src/sap/ui/core/cldr/en_ZA.json +4 -0
- package/src/sap/ui/core/cldr/es.json +4 -0
- package/src/sap/ui/core/cldr/es_AR.json +4 -0
- package/src/sap/ui/core/cldr/es_BO.json +4 -0
- package/src/sap/ui/core/cldr/es_CL.json +4 -0
- package/src/sap/ui/core/cldr/es_CO.json +4 -0
- package/src/sap/ui/core/cldr/es_MX.json +4 -0
- package/src/sap/ui/core/cldr/es_PE.json +4 -0
- package/src/sap/ui/core/cldr/es_UY.json +4 -0
- package/src/sap/ui/core/cldr/es_VE.json +4 -0
- package/src/sap/ui/core/cldr/et.json +4 -0
- package/src/sap/ui/core/cldr/fa.json +6 -3
- package/src/sap/ui/core/cldr/fi.json +4 -0
- package/src/sap/ui/core/cldr/fr.json +4 -0
- package/src/sap/ui/core/cldr/fr_BE.json +4 -0
- package/src/sap/ui/core/cldr/fr_CA.json +4 -0
- package/src/sap/ui/core/cldr/fr_CH.json +4 -0
- package/src/sap/ui/core/cldr/fr_LU.json +4 -0
- package/src/sap/ui/core/cldr/he.json +6 -3
- package/src/sap/ui/core/cldr/hi.json +5 -1
- package/src/sap/ui/core/cldr/hr.json +4 -0
- package/src/sap/ui/core/cldr/hu.json +4 -0
- package/src/sap/ui/core/cldr/id.json +5 -1
- package/src/sap/ui/core/cldr/it.json +4 -0
- package/src/sap/ui/core/cldr/it_CH.json +4 -0
- package/src/sap/ui/core/cldr/ja.json +5 -1
- package/src/sap/ui/core/cldr/kk.json +4 -0
- package/src/sap/ui/core/cldr/ko.json +5 -1
- package/src/sap/ui/core/cldr/lt.json +4 -0
- package/src/sap/ui/core/cldr/lv.json +4 -0
- package/src/sap/ui/core/cldr/mk.json +4 -0
- package/src/sap/ui/core/cldr/ms.json +5 -1
- package/src/sap/ui/core/cldr/nb.json +5 -2
- package/src/sap/ui/core/cldr/nl.json +4 -0
- package/src/sap/ui/core/cldr/nl_BE.json +4 -0
- package/src/sap/ui/core/cldr/pl.json +4 -0
- package/src/sap/ui/core/cldr/pt.json +4 -0
- package/src/sap/ui/core/cldr/pt_PT.json +4 -0
- package/src/sap/ui/core/cldr/ro.json +4 -0
- package/src/sap/ui/core/cldr/ru.json +4 -0
- package/src/sap/ui/core/cldr/ru_UA.json +4 -0
- package/src/sap/ui/core/cldr/sk.json +4 -0
- package/src/sap/ui/core/cldr/sl.json +4 -0
- package/src/sap/ui/core/cldr/sr.json +4 -0
- package/src/sap/ui/core/cldr/sr_Latn.json +6 -2
- package/src/sap/ui/core/cldr/sv.json +4 -0
- package/src/sap/ui/core/cldr/th.json +5 -1
- package/src/sap/ui/core/cldr/tr.json +5 -1
- package/src/sap/ui/core/cldr/uk.json +4 -0
- package/src/sap/ui/core/cldr/vi.json +4 -0
- package/src/sap/ui/core/cldr/zh_CN.json +5 -1
- package/src/sap/ui/core/cldr/zh_HK.json +6 -3
- package/src/sap/ui/core/cldr/zh_SG.json +6 -3
- package/src/sap/ui/core/cldr/zh_TW.json +5 -1
- package/src/sap/ui/core/date/UI5Date.js +1 -1
- 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/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/fieldhelp/FieldHelp.js +5 -7
- package/src/sap/ui/core/fieldhelp/FieldHelpCustomData.js +88 -0
- package/src/sap/ui/core/fieldhelp/FieldHelpUtil.js +22 -26
- package/src/sap/ui/core/format/FormatUtils.js +1 -1
- package/src/sap/ui/core/format/NumberFormat.js +16 -27
- package/src/sap/ui/core/format/TimezoneUtil.js +1 -1
- package/src/sap/ui/core/getCompatibilityVersion.js +1 -1
- package/src/sap/ui/core/hyphenation/Hyphenation.js +1 -1
- package/src/sap/ui/core/library.js +5 -7
- package/src/sap/ui/core/library.support.js +10 -1
- 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/messagebundle.properties +6 -12
- package/src/sap/ui/core/messagebundle_ar.properties +3 -6
- package/src/sap/ui/core/messagebundle_bg.properties +3 -6
- package/src/sap/ui/core/messagebundle_ca.properties +3 -6
- package/src/sap/ui/core/messagebundle_cnr.properties +3 -6
- package/src/sap/ui/core/messagebundle_cs.properties +3 -6
- package/src/sap/ui/core/messagebundle_cy.properties +3 -6
- package/src/sap/ui/core/messagebundle_da.properties +3 -6
- package/src/sap/ui/core/messagebundle_de.properties +3 -6
- package/src/sap/ui/core/messagebundle_el.properties +3 -6
- package/src/sap/ui/core/messagebundle_en.properties +3 -6
- package/src/sap/ui/core/messagebundle_en_GB.properties +3 -6
- package/src/sap/ui/core/messagebundle_en_US_saprigi.properties +3 -6
- package/src/sap/ui/core/messagebundle_es.properties +3 -6
- package/src/sap/ui/core/messagebundle_es_MX.properties +3 -6
- package/src/sap/ui/core/messagebundle_et.properties +3 -6
- package/src/sap/ui/core/messagebundle_fi.properties +3 -6
- package/src/sap/ui/core/messagebundle_fr.properties +3 -6
- package/src/sap/ui/core/messagebundle_fr_CA.properties +3 -6
- package/src/sap/ui/core/messagebundle_hi.properties +3 -6
- package/src/sap/ui/core/messagebundle_hr.properties +3 -6
- package/src/sap/ui/core/messagebundle_hu.properties +3 -6
- package/src/sap/ui/core/messagebundle_id.properties +3 -6
- package/src/sap/ui/core/messagebundle_it.properties +53 -56
- package/src/sap/ui/core/messagebundle_iw.properties +3 -6
- package/src/sap/ui/core/messagebundle_ja.properties +3 -6
- package/src/sap/ui/core/messagebundle_kk.properties +3 -6
- package/src/sap/ui/core/messagebundle_ko.properties +3 -6
- package/src/sap/ui/core/messagebundle_lt.properties +3 -6
- package/src/sap/ui/core/messagebundle_lv.properties +3 -6
- package/src/sap/ui/core/messagebundle_mk.properties +3 -6
- package/src/sap/ui/core/messagebundle_ms.properties +3 -6
- package/src/sap/ui/core/messagebundle_nl.properties +3 -6
- package/src/sap/ui/core/messagebundle_no.properties +4 -7
- package/src/sap/ui/core/messagebundle_pl.properties +3 -6
- package/src/sap/ui/core/messagebundle_pt.properties +3 -6
- package/src/sap/ui/core/messagebundle_pt_PT.properties +3 -6
- package/src/sap/ui/core/messagebundle_ro.properties +3 -6
- package/src/sap/ui/core/messagebundle_ru.properties +3 -6
- package/src/sap/ui/core/messagebundle_sh.properties +3 -6
- package/src/sap/ui/core/messagebundle_sk.properties +3 -6
- package/src/sap/ui/core/messagebundle_sl.properties +3 -6
- package/src/sap/ui/core/messagebundle_sr.properties +3 -6
- package/src/sap/ui/core/messagebundle_sv.properties +3 -6
- package/src/sap/ui/core/messagebundle_th.properties +3 -6
- package/src/sap/ui/core/messagebundle_tr.properties +3 -6
- package/src/sap/ui/core/messagebundle_uk.properties +3 -6
- package/src/sap/ui/core/messagebundle_vi.properties +3 -6
- package/src/sap/ui/core/messagebundle_zh_CN.properties +3 -6
- package/src/sap/ui/core/messagebundle_zh_TW.properties +3 -6
- package/src/sap/ui/core/mvc/Controller.js +2 -2
- 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/XMLView.js +2 -2
- 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 +1 -1
- package/src/sap/ui/core/postmessage/confirmationDialog.js +1 -1
- package/src/sap/ui/core/routing/Route.js +4 -4
- package/src/sap/ui/core/routing/Router.js +5 -5
- package/src/sap/ui/core/routing/Targets.js +3 -3
- package/src/sap/ui/core/routing/async/Target.js +1 -1
- package/src/sap/ui/core/routing/async/Targets.js +2 -2
- package/src/sap/ui/core/rules/App.support.js +13 -2
- 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/theming/Parameters.js +6 -6
- package/src/sap/ui/core/theming/ThemeHelper.js +16 -13
- package/src/sap/ui/core/theming/ThemeManager.js +1 -1
- 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/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/webc/WebComponent.js +1 -1
- package/src/sap/ui/core/webc/WebComponentMetadata.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/dom/findTabbable.js +10 -1
- package/src/sap/ui/model/ClientModel.js +1 -1
- package/src/sap/ui/model/ClientTreeBinding.js +32 -19
- package/src/sap/ui/model/CompositeDataState.js +1 -1
- package/src/sap/ui/model/CompositeType.js +1 -1
- package/src/sap/ui/model/Context.js +0 -2
- package/src/sap/ui/model/DataState.js +1 -1
- package/src/sap/ui/model/ListBinding.js +19 -0
- 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/TreeBinding.js +21 -17
- package/src/sap/ui/model/Type.js +1 -1
- package/src/sap/ui/model/analytics/AnalyticalBinding.js +4 -4
- package/src/sap/ui/model/json/JSONModel.js +12 -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/ODataTreeBindingFlat.js +106 -19
- 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/ODataModel.js +33 -2
- package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +1 -1
- package/src/sap/ui/model/odata/v4/Context.js +62 -13
- package/src/sap/ui/model/odata/v4/ODataBinding.js +4 -0
- package/src/sap/ui/model/odata/v4/ODataContextBinding.js +1 -1
- package/src/sap/ui/model/odata/v4/ODataListBinding.js +58 -81
- package/src/sap/ui/model/odata/v4/ODataMetaModel.js +20 -10
- package/src/sap/ui/model/odata/v4/ODataModel.js +65 -11
- package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +1 -1
- package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +75 -8
- package/src/sap/ui/model/odata/v4/lib/_AggregationHelper.js +13 -4
- package/src/sap/ui/model/odata/v4/lib/_Cache.js +106 -10
- package/src/sap/ui/model/odata/v4/lib/_Helper.js +62 -4
- package/src/sap/ui/model/odata/v4/lib/_MetadataRequestor.js +49 -31
- package/src/sap/ui/model/odata/v4/lib/_Requestor.js +22 -28
- package/src/sap/ui/model/odata/v4/lib/_TreeState.js +51 -30
- 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 +3 -2
- package/src/sap/ui/model/type/DateInterval.js +3 -2
- 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/performance/trace/FESR.js +19 -10
- package/src/sap/ui/performance/trace/Interaction.js +45 -659
- package/src/sap/ui/performance/trace/_InteractionImpl.js +705 -0
- 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/TestUtils.js +6 -5
- package/src/sap/ui/test/generic/TestBase.js +1 -1
- package/src/sap/ui/test/gherkin/opa5TestHarness.js +6 -2
- package/src/sap/ui/util/Storage.js +1 -1
- package/src/sap/ui/util/_enforceNoReturnValue.js +1 -1
- package/src/ui5loader.js +1 -1
|
@@ -66,7 +66,7 @@ sap.ui.define([
|
|
|
66
66
|
* @extends sap.ui.model.type.Unit
|
|
67
67
|
* @public
|
|
68
68
|
* @since 1.63.0
|
|
69
|
-
* @version 1.
|
|
69
|
+
* @version 1.130.1
|
|
70
70
|
*/
|
|
71
71
|
var Unit = BaseUnit.extend("sap.ui.model.odata.type.Unit", {
|
|
72
72
|
constructor : function (oFormatOptions, oConstraints, aDynamicFormatOptionNames) {
|
|
@@ -64,7 +64,7 @@ sap.ui.define([
|
|
|
64
64
|
* @hideconstructor
|
|
65
65
|
* @public
|
|
66
66
|
* @since 1.93.0
|
|
67
|
-
* @version 1.
|
|
67
|
+
* @version 1.130.1
|
|
68
68
|
*/
|
|
69
69
|
var Context = BaseContext.extend("sap.ui.model.odata.v2.Context", {
|
|
70
70
|
constructor : function (oModel, sPath, sDeepPath, oCreatePromise, bInactive,
|
|
@@ -63,6 +63,11 @@ sap.ui.define([
|
|
|
63
63
|
) {
|
|
64
64
|
|
|
65
65
|
"use strict";
|
|
66
|
+
/**
|
|
67
|
+
* Whether the ODataModel is marked as final.
|
|
68
|
+
* @ui5-transform-hint replace-local true
|
|
69
|
+
*/
|
|
70
|
+
const bFinal = false;
|
|
66
71
|
|
|
67
72
|
var sClassName = "sap.ui.model.odata.v2.ODataModel",
|
|
68
73
|
aDeepCreateParametersAllowlist = ["context", "properties"],
|
|
@@ -213,7 +218,7 @@ sap.ui.define([
|
|
|
213
218
|
* This model is not prepared to be inherited from.
|
|
214
219
|
*
|
|
215
220
|
* @author SAP SE
|
|
216
|
-
* @version 1.
|
|
221
|
+
* @version 1.130.1
|
|
217
222
|
*
|
|
218
223
|
* @public
|
|
219
224
|
* @alias sap.ui.model.odata.v2.ODataModel
|
|
@@ -533,7 +538,8 @@ sap.ui.define([
|
|
|
533
538
|
"setDefaultBindingMode", "getDefaultBindingMode", "getDefaultCountMode",
|
|
534
539
|
"setProperty", "getSecurityToken", "refreshSecurityToken", "setHeaders",
|
|
535
540
|
"getHeaders", "setUseBatch", "setDeferredBatchGroups", "getDeferredBatchGroups",
|
|
536
|
-
"setChangeBatchGroups", "getChangeBatchGroups"]
|
|
541
|
+
"setChangeBatchGroups", "getChangeBatchGroups"],
|
|
542
|
+
"final": bFinal
|
|
537
543
|
}
|
|
538
544
|
});
|
|
539
545
|
|
|
@@ -1794,6 +1800,19 @@ sap.ui.define([
|
|
|
1794
1800
|
});
|
|
1795
1801
|
};
|
|
1796
1802
|
|
|
1803
|
+
/**
|
|
1804
|
+
* Returns this model's base URI of the data service (as defined by the "serviceUrl" model parameter; see
|
|
1805
|
+
* {@link #constructor}), without query options.
|
|
1806
|
+
*
|
|
1807
|
+
* @returns {string} The service's base URI without query options
|
|
1808
|
+
*
|
|
1809
|
+
* @public
|
|
1810
|
+
* @since 1.130.0
|
|
1811
|
+
*/
|
|
1812
|
+
ODataModel.prototype.getServiceUrl = function () {
|
|
1813
|
+
return this.sServiceUrl;
|
|
1814
|
+
};
|
|
1815
|
+
|
|
1797
1816
|
/**
|
|
1798
1817
|
* Invalidate the model data.
|
|
1799
1818
|
*
|
|
@@ -9063,6 +9082,18 @@ sap.ui.define([
|
|
|
9063
9082
|
|
|
9064
9083
|
return this.pAnnotationChanges;
|
|
9065
9084
|
};
|
|
9085
|
+
/** @deprecated */
|
|
9086
|
+
const fnOriginalExtend = ODataModel.extend;
|
|
9087
|
+
/**
|
|
9088
|
+
* DO NOT EXTEND THIS CLASS.
|
|
9089
|
+
*
|
|
9090
|
+
* @returns {function} The created class / constructor function
|
|
9091
|
+
* @deprecated
|
|
9092
|
+
*/
|
|
9093
|
+
ODataModel.extend = function () {
|
|
9094
|
+
Log.error("[FUTURE FATAL] sap.ui.model.odata.v2.ODataModel must not be extended");
|
|
9095
|
+
return fnOriginalExtend.apply(this, arguments);
|
|
9096
|
+
};
|
|
9066
9097
|
|
|
9067
9098
|
return ODataModel;
|
|
9068
9099
|
});
|
|
@@ -103,7 +103,7 @@ sap.ui.define([
|
|
|
103
103
|
* @extends sap.ui.model.TreeBinding
|
|
104
104
|
* @hideconstructor
|
|
105
105
|
* @public
|
|
106
|
-
* @version 1.
|
|
106
|
+
* @version 1.130.1
|
|
107
107
|
*/
|
|
108
108
|
var ODataTreeBinding = TreeBinding.extend("sap.ui.model.odata.v2.ODataTreeBinding", /** @lends sap.ui.model.odata.v2.ODataTreeBinding.prototype */ {
|
|
109
109
|
|
|
@@ -42,7 +42,7 @@ sap.ui.define([
|
|
|
42
42
|
* @hideconstructor
|
|
43
43
|
* @public
|
|
44
44
|
* @since 1.39.0
|
|
45
|
-
* @version 1.
|
|
45
|
+
* @version 1.130.1
|
|
46
46
|
*/
|
|
47
47
|
Context = BaseContext.extend("sap.ui.model.odata.v4.Context", {
|
|
48
48
|
constructor : constructor
|
|
@@ -238,8 +238,8 @@ sap.ui.define([
|
|
|
238
238
|
*
|
|
239
239
|
* Since 1.105 such a pending deletion is a pending change. It causes
|
|
240
240
|
* <code>hasPendingChanges</code> to return <code>true</code> for the context, the binding
|
|
241
|
-
* containing it, and the model. The <code>resetChanges</code> method called on the context
|
|
242
|
-
*
|
|
241
|
+
* containing it, and the model. The <code>resetChanges</code> method called on the context, the
|
|
242
|
+
* binding, or the model cancels the deletion and restores the context.
|
|
243
243
|
*
|
|
244
244
|
* If the DELETE request succeeds, the context is destroyed and must not be used anymore. If it
|
|
245
245
|
* fails or is canceled, the context is restored, reinserted into the list, and fully functional
|
|
@@ -322,6 +322,9 @@ sap.ui.define([
|
|
|
322
322
|
}
|
|
323
323
|
this.oBinding.checkSuspended();
|
|
324
324
|
if (this.isTransient()) {
|
|
325
|
+
if (this.iIndex === undefined) {
|
|
326
|
+
return Promise.resolve(); // already deleted, nothing to do
|
|
327
|
+
}
|
|
325
328
|
sGroupId = null;
|
|
326
329
|
} else if (sGroupId === null) {
|
|
327
330
|
if (!(this.isKeepAlive() && this.iIndex === undefined)) {
|
|
@@ -651,6 +654,9 @@ sap.ui.define([
|
|
|
651
654
|
* The number of levels to expand (@experimental as of version 1.127.0),
|
|
652
655
|
* <code>iLevels >= Number.MAX_SAFE_INTEGER</code> can be used to expand all levels. If a node
|
|
653
656
|
* is expanded a second time, the expand state of the descendants is not changed.
|
|
657
|
+
* @returns {Promise<void>}
|
|
658
|
+
* A promise which is resolved without a defined result when the expand is successful, or
|
|
659
|
+
* rejected in case of an error
|
|
654
660
|
* @throws {Error}
|
|
655
661
|
* If the context points to a node that is not expandable or already expanded, the given
|
|
656
662
|
* number of levels is not a positive number, or the given number of levels is greater than
|
|
@@ -667,8 +673,7 @@ sap.ui.define([
|
|
|
667
673
|
}
|
|
668
674
|
switch (this.isExpanded()) {
|
|
669
675
|
case false:
|
|
670
|
-
this.oBinding.expand(this, iLevels).
|
|
671
|
-
break;
|
|
676
|
+
return Promise.resolve(this.oBinding.expand(this, iLevels)).then(() => {});
|
|
672
677
|
case true:
|
|
673
678
|
throw new Error("Already expanded: " + this);
|
|
674
679
|
default:
|
|
@@ -845,6 +850,46 @@ sap.ui.define([
|
|
|
845
850
|
*/
|
|
846
851
|
Context.prototype.getCanonicalPath = _Helper.createGetMethod("fetchCanonicalPath", true);
|
|
847
852
|
|
|
853
|
+
/**
|
|
854
|
+
* Returns a filter object corresponding to this context. For an ordinary row context of a list
|
|
855
|
+
* binding, the filter matches exactly the entity's key properties. For a subtotal row (see
|
|
856
|
+
* {@link sap.ui.model.odata.v4.ODataListBinding.setAggregation}), the filter matches exactly
|
|
857
|
+
* the groupable properties corresponding to this context. For a grand total, <code>null</code>
|
|
858
|
+
* is returned.
|
|
859
|
+
*
|
|
860
|
+
* @returns {sap.ui.model.Filter|null}
|
|
861
|
+
* A filter object corresponding to this context
|
|
862
|
+
* @throws {Error} If this context is
|
|
863
|
+
* <ul>
|
|
864
|
+
* <li> not a list binding's row context,
|
|
865
|
+
* <li> currently transient,
|
|
866
|
+
* <li> using key aliases,
|
|
867
|
+
* <li> using an index, not a key predicate in the last segment of its path,
|
|
868
|
+
* <li> just created via {@link sap.ui.model.odata.v4.ODataModel#getKeepAliveContext} and
|
|
869
|
+
* metadata is not yet available
|
|
870
|
+
* </ul>
|
|
871
|
+
*
|
|
872
|
+
* @public
|
|
873
|
+
* @since 1.130.0
|
|
874
|
+
*/
|
|
875
|
+
Context.prototype.getFilter = function () {
|
|
876
|
+
if (!this.oBinding.getHeaderContext || this.isTransient()) {
|
|
877
|
+
throw new Error("Not a list context path to an entity: " + this);
|
|
878
|
+
}
|
|
879
|
+
|
|
880
|
+
const iPredicateIndex = _Helper.getPredicateIndex(this.sPath);
|
|
881
|
+
const sPredicate = this.sPath.slice(iPredicateIndex).replace(/,?\$isTotal=true\)$/, ")");
|
|
882
|
+
if (sPredicate === "()") {
|
|
883
|
+
return null; // grand total
|
|
884
|
+
}
|
|
885
|
+
|
|
886
|
+
const oMetaModel = this.oModel.getMetaModel();
|
|
887
|
+
const sMetaPath = _Helper.getMetaPath(this.sPath);
|
|
888
|
+
const oEntityType = oMetaModel.getObject(sMetaPath + "/");
|
|
889
|
+
|
|
890
|
+
return _Helper.getFilterForPredicate(sPredicate, oEntityType, oMetaModel, sMetaPath, true);
|
|
891
|
+
};
|
|
892
|
+
|
|
848
893
|
/**
|
|
849
894
|
* Returns the unique number of this context's generation, or <code>0</code> if it does not
|
|
850
895
|
* belong to any specific generation. This number can be inherited from a parent binding.
|
|
@@ -1295,15 +1340,15 @@ sap.ui.define([
|
|
|
1295
1340
|
|
|
1296
1341
|
/**
|
|
1297
1342
|
* Tells whether this context is currently selected, but not {@link #delete deleted} on the
|
|
1298
|
-
* client. Since 1.122.0 the selection state
|
|
1299
|
-
* "@$ui5.context.isSelected" at the entity. Note
|
|
1300
|
-
* state into account.
|
|
1343
|
+
* client. Selection was experimental as of version 1.111.0. Since 1.122.0, the selection state
|
|
1344
|
+
* can also be accessed via instance annotation "@$ui5.context.isSelected" at the entity. Note
|
|
1345
|
+
* that the annotation does not take the deletion state into account.
|
|
1301
1346
|
*
|
|
1302
1347
|
* @returns {boolean} Whether this context is currently selected
|
|
1303
1348
|
*
|
|
1304
|
-
* @experimental As of version 1.111.0
|
|
1305
1349
|
* @public
|
|
1306
1350
|
* @see #setSelected
|
|
1351
|
+
* @since 1.130.0
|
|
1307
1352
|
*/
|
|
1308
1353
|
Context.prototype.isSelected = function () {
|
|
1309
1354
|
return this.bSelected && !this.oDeletePromise;
|
|
@@ -2346,9 +2391,11 @@ sap.ui.define([
|
|
|
2346
2391
|
* event is fired on the list binding which this context belongs to. While a context is
|
|
2347
2392
|
* currently {@link #delete deleted} on the client, it does not appear as
|
|
2348
2393
|
* {@link #isSelected selected}. If the preconditions of {@link #setKeepAlive} hold, a best
|
|
2349
|
-
* effort is made to implicitly keep a selected context alive in order to preserve the
|
|
2350
|
-
* state
|
|
2351
|
-
*
|
|
2394
|
+
* effort is made to implicitly keep a (de-)selected context alive in order to preserve the
|
|
2395
|
+
* selection state of every exception to the "select all" state defined by the list binding's
|
|
2396
|
+
* {@link sap.ui.model.odata.v4.ODataListBinding#getHeaderContext header context}. Once the
|
|
2397
|
+
* selection is no longer needed, for example because you perform an operation on this context
|
|
2398
|
+
* which logically removes it from its list, you need to reset the selection.
|
|
2352
2399
|
*
|
|
2353
2400
|
* If this context is a header context of a list binding, the new selection state is propagated
|
|
2354
2401
|
* to all row contexts. If the selection state of this header context changes, a
|
|
@@ -2360,6 +2407,8 @@ sap.ui.define([
|
|
|
2360
2407
|
* {@link sap.ui.model.odata.v4.ODataListBinding#event:selectionChanged 'selectionChanged'}
|
|
2361
2408
|
* event is nevertheless fired for this header context, but not for the row context.
|
|
2362
2409
|
*
|
|
2410
|
+
* Selection was experimental as of version 1.111.0.
|
|
2411
|
+
*
|
|
2363
2412
|
* <b>Note:</b> It is unsafe to keep a reference to a context instance which is not
|
|
2364
2413
|
* {@link #isKeepAlive kept alive}.
|
|
2365
2414
|
*
|
|
@@ -2368,9 +2417,9 @@ sap.ui.define([
|
|
|
2368
2417
|
* If this context does not belong to a list binding, or if it is {@link #isDeleted deleted}
|
|
2369
2418
|
* and <code>bSelected</code> is <code>true</code>
|
|
2370
2419
|
*
|
|
2371
|
-
* @experimental As of version 1.111.0
|
|
2372
2420
|
* @public
|
|
2373
2421
|
* @see #isSelected
|
|
2422
|
+
* @since 1.130.0
|
|
2374
2423
|
*/
|
|
2375
2424
|
Context.prototype.setSelected = function (bSelected) {
|
|
2376
2425
|
if (this.oBinding && !this.oBinding.getHeaderContext) {
|
|
@@ -1345,6 +1345,10 @@ sap.ui.define([
|
|
|
1345
1345
|
var aPaths = [],
|
|
1346
1346
|
sMetaPath = _Helper.getMetaPath(this.getResolvedPath());
|
|
1347
1347
|
|
|
1348
|
+
if (this.oCache === undefined) {
|
|
1349
|
+
return undefined; // nothing to do - looks like a refresh in progress
|
|
1350
|
+
}
|
|
1351
|
+
|
|
1348
1352
|
aAbsolutePaths.some(function (sAbsolutePath) {
|
|
1349
1353
|
var sRelativePath = _Helper.getRelativePath(sAbsolutePath, sMetaPath);
|
|
1350
1354
|
|
|
@@ -74,7 +74,7 @@ sap.ui.define([
|
|
|
74
74
|
* @mixes sap.ui.model.odata.v4.ODataParentBinding
|
|
75
75
|
* @public
|
|
76
76
|
* @since 1.37.0
|
|
77
|
-
* @version 1.
|
|
77
|
+
* @version 1.130.1
|
|
78
78
|
*
|
|
79
79
|
* @borrows sap.ui.model.odata.v4.ODataBinding#getGroupId as #getGroupId
|
|
80
80
|
* @borrows sap.ui.model.odata.v4.ODataBinding#getRootBinding as #getRootBinding
|
|
@@ -13,7 +13,6 @@ sap.ui.define([
|
|
|
13
13
|
"./lib/_Cache",
|
|
14
14
|
"./lib/_GroupLock",
|
|
15
15
|
"./lib/_Helper",
|
|
16
|
-
"./lib/_Parser",
|
|
17
16
|
"sap/base/Log",
|
|
18
17
|
"sap/ui/base/SyncPromise",
|
|
19
18
|
"sap/ui/model/Binding",
|
|
@@ -26,8 +25,8 @@ sap.ui.define([
|
|
|
26
25
|
"sap/ui/model/Sorter",
|
|
27
26
|
"sap/ui/model/odata/OperationMode"
|
|
28
27
|
], function (Context, asODataParentBinding, _AggregationCache, _AggregationHelper, _Cache,
|
|
29
|
-
_GroupLock, _Helper,
|
|
30
|
-
|
|
28
|
+
_GroupLock, _Helper, Log, SyncPromise, Binding, ChangeReason, Filter, FilterOperator,
|
|
29
|
+
FilterProcessor, FilterType, ListBinding, Sorter, OperationMode) {
|
|
31
30
|
"use strict";
|
|
32
31
|
|
|
33
32
|
var sClassName = "sap.ui.model.odata.v4.ODataListBinding",
|
|
@@ -58,7 +57,7 @@ sap.ui.define([
|
|
|
58
57
|
* @mixes sap.ui.model.odata.v4.ODataParentBinding
|
|
59
58
|
* @public
|
|
60
59
|
* @since 1.37.0
|
|
61
|
-
* @version 1.
|
|
60
|
+
* @version 1.130.1
|
|
62
61
|
* @borrows sap.ui.model.odata.v4.ODataBinding#getGroupId as #getGroupId
|
|
63
62
|
* @borrows sap.ui.model.odata.v4.ODataBinding#getRootBinding as #getRootBinding
|
|
64
63
|
* @borrows sap.ui.model.odata.v4.ODataBinding#getUpdateGroupId as #getUpdateGroupId
|
|
@@ -551,7 +550,8 @@ sap.ui.define([
|
|
|
551
550
|
|
|
552
551
|
/**
|
|
553
552
|
* The 'selectionChanged' event is fired if the selection state of a context changes; for more
|
|
554
|
-
* information see {@link sap.ui.model.odata.v4.Context#setSelected}.
|
|
553
|
+
* information see {@link sap.ui.model.odata.v4.Context#setSelected}. This event was
|
|
554
|
+
* experimental as of version 1.126.0.
|
|
555
555
|
*
|
|
556
556
|
* @param {sap.ui.base.Event} oEvent The event object
|
|
557
557
|
* @param {sap.ui.model.odata.v4.ODataListBinding} oEvent.getSource() This binding
|
|
@@ -561,8 +561,8 @@ sap.ui.define([
|
|
|
561
561
|
* The context for which {@link sap.ui.model.odata.v4.Context#setSelected} was called
|
|
562
562
|
*
|
|
563
563
|
* @event sap.ui.model.odata.v4.ODataListBinding#selectionChanged
|
|
564
|
-
* @experimental As of version 1.126.0
|
|
565
564
|
* @public
|
|
565
|
+
* @since 1.130.0
|
|
566
566
|
*/
|
|
567
567
|
|
|
568
568
|
/**
|
|
@@ -706,7 +706,7 @@ sap.ui.define([
|
|
|
706
706
|
|
|
707
707
|
iCount ??= this.oCache.collapse(
|
|
708
708
|
_Helper.getRelativePath(oContext.getPath(), this.oHeaderContext.getPath()),
|
|
709
|
-
bAll);
|
|
709
|
+
bAll ? this.lockGroup() : undefined);
|
|
710
710
|
|
|
711
711
|
if (iCount > 0) {
|
|
712
712
|
const aContexts = this.aContexts;
|
|
@@ -812,13 +812,12 @@ sap.ui.define([
|
|
|
812
812
|
* {@link sap.ui.model.odata.v4.Context#move move} must be pending, and no other modification
|
|
813
813
|
* (including collapse of some ancestor node) must happen while this creation is pending!
|
|
814
814
|
*
|
|
815
|
-
* When using the <code>createInPlace</code> parameter
|
|
816
|
-
*
|
|
817
|
-
* {@link sap.ui.model.odata.v4.Context#
|
|
818
|
-
*
|
|
819
|
-
*
|
|
820
|
-
*
|
|
821
|
-
* following scenarios:
|
|
815
|
+
* When using the <code>createInPlace</code> parameter (see {@link #setAggregation},
|
|
816
|
+
* since 1.130.0), the new {@link sap.ui.model.odata.v4.Context#isTransient transient} child is
|
|
817
|
+
* hidden until its {@link sap.ui.model.odata.v4.Context#created created promise} resolves, and
|
|
818
|
+
* then it is shown at a position determined by the back end and the current sort order. Note
|
|
819
|
+
* that the returned context is not always part of this list binding's collection and can only
|
|
820
|
+
* be used for the following scenarios:
|
|
822
821
|
* <ul>
|
|
823
822
|
* <li> The position of the new child can be retrieved by using its
|
|
824
823
|
* {@link sap.ui.model.odata.v4.Context#getIndex index}. If the created child does not
|
|
@@ -1511,8 +1510,8 @@ sap.ui.define([
|
|
|
1511
1510
|
}
|
|
1512
1511
|
oCache ??= _AggregationCache.create(this.oModel.oRequestor, sResourcePath,
|
|
1513
1512
|
sDeepResourcePath, mQueryOptions, this.mParameters.$$aggregation,
|
|
1514
|
-
this.oModel.bAutoExpandSelect
|
|
1515
|
-
this.mParameters.$$separate);
|
|
1513
|
+
this.oModel.bAutoExpandSelect || "$$separate" in this.mParameters,
|
|
1514
|
+
this.bSharedRequest, this.isGrouped(), this.mParameters.$$separate);
|
|
1516
1515
|
if (mKeptElementsByPredicate) {
|
|
1517
1516
|
aKeepAlivePredicates.forEach(function (sPredicate) {
|
|
1518
1517
|
oCache.addKeptElement(mKeptElementsByPredicate[sPredicate]);
|
|
@@ -1865,7 +1864,8 @@ sap.ui.define([
|
|
|
1865
1864
|
* @private
|
|
1866
1865
|
*/
|
|
1867
1866
|
ODataListBinding.prototype.fetchFilter = function (oContext, sStaticFilter) {
|
|
1868
|
-
|
|
1867
|
+
const oMetaModel = this.oModel.getMetaModel();
|
|
1868
|
+
const oMetaContext = oMetaModel.getMetaContext(this.oModel.resolve(this.sPath, oContext));
|
|
1869
1869
|
|
|
1870
1870
|
/*
|
|
1871
1871
|
* Returns the $filter value for the given single filter using the given Edm type to
|
|
@@ -2009,26 +2009,32 @@ sap.ui.define([
|
|
|
2009
2009
|
return bWrap ? "(" + sFilter + ")" : sFilter;
|
|
2010
2010
|
}
|
|
2011
2011
|
|
|
2012
|
-
oCombinedFilter
|
|
2012
|
+
const oCombinedFilter
|
|
2013
|
+
= FilterProcessor.combineFilters(this.aFilters, this.aApplicationFilters);
|
|
2013
2014
|
if (!oCombinedFilter) {
|
|
2014
2015
|
return SyncPromise.resolve([sStaticFilter]);
|
|
2015
2016
|
}
|
|
2016
2017
|
if (oCombinedFilter === Filter.NONE) {
|
|
2017
2018
|
return SyncPromise.resolve(["false"]);
|
|
2018
2019
|
}
|
|
2019
|
-
|
|
2020
|
-
|
|
2021
|
-
|
|
2022
|
-
|
|
2023
|
-
|
|
2024
|
-
|
|
2025
|
-
|
|
2026
|
-
|
|
2027
|
-
|
|
2028
|
-
|
|
2029
|
-
|
|
2030
|
-
|
|
2031
|
-
|
|
2020
|
+
|
|
2021
|
+
const oPromise = _Helper.isDataAggregation(this.mParameters)
|
|
2022
|
+
? oMetaModel.fetchObject(oMetaContext.getPath() + "/")
|
|
2023
|
+
: SyncPromise.resolve();
|
|
2024
|
+
|
|
2025
|
+
return oPromise.then((oEntityType) => {
|
|
2026
|
+
const aFilters = _AggregationHelper.splitFilter(oCombinedFilter,
|
|
2027
|
+
this.mParameters.$$aggregation, oEntityType);
|
|
2028
|
+
|
|
2029
|
+
return SyncPromise.all([
|
|
2030
|
+
fetchFilter(aFilters[0], {}, /*bWithinAnd*/sStaticFilter)
|
|
2031
|
+
.then((sFilter) => (sFilter && sStaticFilter
|
|
2032
|
+
? sFilter + " and (" + sStaticFilter + ")"
|
|
2033
|
+
: sFilter || sStaticFilter)),
|
|
2034
|
+
fetchFilter(aFilters[1], {}), // $$filterBeforeAggregate
|
|
2035
|
+
fetchFilter(aFilters[2], {}, undefined, /*bThese*/true) // $$filterOnAggregate
|
|
2036
|
+
]);
|
|
2037
|
+
});
|
|
2032
2038
|
};
|
|
2033
2039
|
|
|
2034
2040
|
/**
|
|
@@ -2532,7 +2538,10 @@ sap.ui.define([
|
|
|
2532
2538
|
* Whether this call keeps the result of {@link #getCurrentContexts} untouched; since 1.86.0.
|
|
2533
2539
|
* @returns {sap.ui.model.odata.v4.Context[]}
|
|
2534
2540
|
* The array of already created contexts with the first entry containing the context for
|
|
2535
|
-
* <code>iStart</code
|
|
2541
|
+
* <code>iStart</code>. Since 1.130.0, the array has an additional property
|
|
2542
|
+
* <code>bExpectMore</code>, which is <code>true</code> if the response is not complete, a
|
|
2543
|
+
* {@link #event:change 'change'} event will follow, and a busy indicator should be switched
|
|
2544
|
+
* on.
|
|
2536
2545
|
* @throws {Error}
|
|
2537
2546
|
* If the binding's root binding is suspended, if <code>iMaximumPrefetchSize</code> and
|
|
2538
2547
|
* <code>bKeepCurrent</code> are set, if extended change detection is enabled and
|
|
@@ -2548,8 +2557,8 @@ sap.ui.define([
|
|
|
2548
2557
|
bKeepCurrent) {
|
|
2549
2558
|
var sChangeReason,
|
|
2550
2559
|
aContexts,
|
|
2551
|
-
bDataRequested = false,
|
|
2552
2560
|
bFireChange = false,
|
|
2561
|
+
bFireDataReceived,
|
|
2553
2562
|
bPreventBubbling,
|
|
2554
2563
|
oPromise,
|
|
2555
2564
|
bRefreshEvent = !!this.sChangeReason, // ignored for "*VirtualContext"
|
|
@@ -2641,8 +2650,10 @@ sap.ui.define([
|
|
|
2641
2650
|
// make sure "refresh" is followed by async "change"
|
|
2642
2651
|
oPromise = this.fetchContexts(iStart, iLength, iMaximumPrefetchSize, undefined,
|
|
2643
2652
|
/*bAsync*/bRefreshEvent, function () {
|
|
2644
|
-
|
|
2645
|
-
|
|
2653
|
+
if (bFireDataReceived === undefined) {
|
|
2654
|
+
bFireDataReceived = true;
|
|
2655
|
+
that.fireDataRequested(bPreventBubbling);
|
|
2656
|
+
}
|
|
2646
2657
|
});
|
|
2647
2658
|
if (!bRefreshEvent && oPromise.isPending()) {
|
|
2648
2659
|
this.createContextsForCachedData(iStart, iLength);
|
|
@@ -2661,12 +2672,13 @@ sap.ui.define([
|
|
|
2661
2672
|
that.oDiff = undefined;
|
|
2662
2673
|
}
|
|
2663
2674
|
}
|
|
2664
|
-
if (
|
|
2675
|
+
if (bFireDataReceived) {
|
|
2665
2676
|
that.fireDataReceived({data : {}}, bPreventBubbling);
|
|
2666
2677
|
}
|
|
2678
|
+
bFireDataReceived = false; // no subsequent #fireDataRequested allowed
|
|
2667
2679
|
}, function (oError) {
|
|
2668
2680
|
// cache shares promises for concurrent read
|
|
2669
|
-
if (
|
|
2681
|
+
if (bFireDataReceived) {
|
|
2670
2682
|
that.fireDataReceived(oError.canceled ? {data : {}} : {error : oError},
|
|
2671
2683
|
bPreventBubbling);
|
|
2672
2684
|
}
|
|
@@ -2685,6 +2697,7 @@ sap.ui.define([
|
|
|
2685
2697
|
this.iCurrentEnd = iStart + iLength;
|
|
2686
2698
|
}
|
|
2687
2699
|
aContexts = this.getContextsInViewOrder(iStart, iLength);
|
|
2700
|
+
aContexts.bExpectMore = this._isExpectingMoreContexts(aContexts, iStart, iLength);
|
|
2688
2701
|
if (this.bUseExtendedChangeDetection) {
|
|
2689
2702
|
if (this.oDiff && iLength !== this.oDiff.iLength) {
|
|
2690
2703
|
throw new Error("Extended change detection protocol violation: Expected "
|
|
@@ -4074,6 +4087,7 @@ sap.ui.define([
|
|
|
4074
4087
|
}
|
|
4075
4088
|
}
|
|
4076
4089
|
this.aContexts.splice(iIndex, 1);
|
|
4090
|
+
oContext.iIndex = undefined;
|
|
4077
4091
|
if (!oContext.isEffectivelyKeptAlive()) {
|
|
4078
4092
|
this.destroyLater(oContext);
|
|
4079
4093
|
}
|
|
@@ -4224,8 +4238,8 @@ sap.ui.define([
|
|
|
4224
4238
|
});
|
|
4225
4239
|
|
|
4226
4240
|
aFilters = Object.keys(mPredicates).map(function (sPredicate) {
|
|
4227
|
-
return
|
|
4228
|
-
oMetaModel, sMetaPath);
|
|
4241
|
+
return _Helper
|
|
4242
|
+
.getFilterForPredicate(sPredicate, oEntityType, oMetaModel, sMetaPath);
|
|
4229
4243
|
});
|
|
4230
4244
|
|
|
4231
4245
|
if (aFilters.length === 0) {
|
|
@@ -4305,6 +4319,9 @@ sap.ui.define([
|
|
|
4305
4319
|
}
|
|
4306
4320
|
}
|
|
4307
4321
|
if (bSingle) {
|
|
4322
|
+
this.oModel.withUnresolvedBindings("removeCachesAndMessages",
|
|
4323
|
+
oContext.getPath().slice(1));
|
|
4324
|
+
|
|
4308
4325
|
return this.refreshSingle(oContext, this.lockGroup(sGroupId), /*bAllowRemoval*/false,
|
|
4309
4326
|
/*bKeepCacheOnError*/true, /*bWithMessages*/true);
|
|
4310
4327
|
}
|
|
@@ -4539,7 +4556,7 @@ sap.ui.define([
|
|
|
4539
4556
|
* </ul>
|
|
4540
4557
|
* @param {boolean} [oAggregation.createInPlace]
|
|
4541
4558
|
* Whether created nodes are shown in place at the position specified by the service
|
|
4542
|
-
* (
|
|
4559
|
+
* (since 1.130.0); only the value <code>true</code> is allowed.
|
|
4543
4560
|
* Otherwise, created nodes are displayed out of place as the first children of their parent
|
|
4544
4561
|
* or as the first roots, but not in their usual position as defined by the service and the
|
|
4545
4562
|
* current sort order.
|
|
@@ -4559,7 +4576,7 @@ sap.ui.define([
|
|
|
4559
4576
|
* <ul>
|
|
4560
4577
|
* <li> <code>additionally</code>: An optional list of strings that provides the paths to
|
|
4561
4578
|
* properties (like texts or attributes) related to this groupable property in a 1:1
|
|
4562
|
-
* relation (since 1.87.0). They are requested additionally via <code>groupby
|
|
4579
|
+
* relation (since 1.87.0). They are requested additionally via <code>groupby</code> and
|
|
4563
4580
|
* must not change the actual grouping; a <code>unit</code> for an aggregatable property
|
|
4564
4581
|
* must not be repeated here.
|
|
4565
4582
|
* </ul>
|
|
@@ -4999,46 +5016,6 @@ sap.ui.define([
|
|
|
4999
5016
|
// "static" functions
|
|
5000
5017
|
//*********************************************************************************************
|
|
5001
5018
|
|
|
5002
|
-
/**
|
|
5003
|
-
* Calculates the filter for the given key predicate.
|
|
5004
|
-
*
|
|
5005
|
-
* @param {string} sPredicate The key predicate of a message target
|
|
5006
|
-
* @param {object} oEntityType The metadata for the entity type
|
|
5007
|
-
* @param {sap.ui.model.odata.v4.ODataMetaModel} oMetaModel The meta model
|
|
5008
|
-
* @param {string} sMetaPath The meta path
|
|
5009
|
-
* @returns {sap.ui.model.Filter} an {@link sap.ui.model.Filter} for the given key predicate
|
|
5010
|
-
*
|
|
5011
|
-
* @private
|
|
5012
|
-
*/
|
|
5013
|
-
ODataListBinding.getFilterForPredicate = function (sPredicate, oEntityType, oMetaModel,
|
|
5014
|
-
sMetaPath) {
|
|
5015
|
-
var aFilters,
|
|
5016
|
-
mValueByKeyOrAlias = _Parser.parseKeyPredicate(sPredicate);
|
|
5017
|
-
|
|
5018
|
-
if ("" in mValueByKeyOrAlias) {
|
|
5019
|
-
// unnamed key e.g. {"" : ('42')} => replace it by the name of the only key property
|
|
5020
|
-
mValueByKeyOrAlias[oEntityType.$Key[0]] = mValueByKeyOrAlias[""];
|
|
5021
|
-
delete mValueByKeyOrAlias[""];
|
|
5022
|
-
}
|
|
5023
|
-
|
|
5024
|
-
aFilters = oEntityType.$Key.map(function (vKey) {
|
|
5025
|
-
var sKeyOrAlias, sKeyPath;
|
|
5026
|
-
|
|
5027
|
-
if (typeof vKey === "string") {
|
|
5028
|
-
sKeyPath = sKeyOrAlias = vKey;
|
|
5029
|
-
} else {
|
|
5030
|
-
sKeyOrAlias = Object.keys(vKey)[0]; // alias
|
|
5031
|
-
sKeyPath = vKey[sKeyOrAlias];
|
|
5032
|
-
}
|
|
5033
|
-
|
|
5034
|
-
return new Filter(sKeyPath, FilterOperator.EQ,
|
|
5035
|
-
_Helper.parseLiteral(decodeURIComponent(mValueByKeyOrAlias[sKeyOrAlias]),
|
|
5036
|
-
oMetaModel.getObject(sMetaPath + "/" + sKeyPath + "/$Type"), sKeyPath));
|
|
5037
|
-
});
|
|
5038
|
-
|
|
5039
|
-
return aFilters.length === 1 ? aFilters[0] : new Filter({and : true, filters : aFilters});
|
|
5040
|
-
};
|
|
5041
|
-
|
|
5042
5019
|
/**
|
|
5043
5020
|
* Returns whether this binding is below an ODLB with data aggregation.
|
|
5044
5021
|
*
|
|
@@ -57,9 +57,11 @@ sap.ui.define([
|
|
|
57
57
|
}
|
|
58
58
|
}
|
|
59
59
|
}),
|
|
60
|
-
|
|
60
|
+
oBooleanType,
|
|
61
61
|
mCodeListUrl2Promise = new Map(),
|
|
62
62
|
DEBUG = Log.Level.DEBUG,
|
|
63
|
+
aInt64Names = ["$count", "@$ui5.node.groupLevelCount", "@$ui5.node.level"],
|
|
64
|
+
oInt64Type,
|
|
63
65
|
rLeftBraces = /\$\(/g,
|
|
64
66
|
rNumber = /^-?\d+$/,
|
|
65
67
|
sODataMetaModel = "sap.ui.model.odata.v4.ODataMetaModel",
|
|
@@ -156,7 +158,7 @@ sap.ui.define([
|
|
|
156
158
|
* @hideconstructor
|
|
157
159
|
* @public
|
|
158
160
|
* @since 1.37.0
|
|
159
|
-
* @version 1.
|
|
161
|
+
* @version 1.130.1
|
|
160
162
|
*/
|
|
161
163
|
ODataMetaModel = MetaModel.extend("sap.ui.model.odata.v4.ODataMetaModel", {
|
|
162
164
|
constructor : constructor
|
|
@@ -1664,17 +1666,25 @@ sap.ui.define([
|
|
|
1664
1666
|
* @see #requestUI5Type
|
|
1665
1667
|
*/
|
|
1666
1668
|
ODataMetaModel.prototype.fetchUI5Type = function (sPath, mFormatOptions) {
|
|
1667
|
-
|
|
1668
|
-
|
|
1669
|
-
|
|
1670
|
-
|
|
1671
|
-
|
|
1672
|
-
|
|
1669
|
+
const sLastSegment = sPath.slice(sPath.lastIndexOf("/") + 1);
|
|
1670
|
+
if (sLastSegment[0] === "$" || sLastSegment[0] === "@") {
|
|
1671
|
+
if (aInt64Names.includes(sLastSegment)) {
|
|
1672
|
+
oInt64Type ??= new Int64();
|
|
1673
|
+
return SyncPromise.resolve(oInt64Type);
|
|
1674
|
+
}
|
|
1675
|
+
if (sLastSegment.startsWith("@$ui5.context.is")
|
|
1676
|
+
|| sLastSegment.startsWith("@$ui5.node.is")) {
|
|
1677
|
+
oBooleanType ??= new Boolean();
|
|
1678
|
+
return SyncPromise.resolve(oBooleanType);
|
|
1679
|
+
}
|
|
1673
1680
|
}
|
|
1681
|
+
|
|
1682
|
+
const oMetaContext = this.getMetaContext(sPath);
|
|
1683
|
+
|
|
1674
1684
|
// Note: undefined is more efficient than "" here
|
|
1675
1685
|
return this.fetchObject(undefined, oMetaContext).catch(
|
|
1676
1686
|
this.oModel.getReporter()
|
|
1677
|
-
).then(
|
|
1687
|
+
).then((oProperty) => {
|
|
1678
1688
|
var oType = oRawType,
|
|
1679
1689
|
oTypeInfo;
|
|
1680
1690
|
|
|
@@ -1709,7 +1719,7 @@ sap.ui.define([
|
|
|
1709
1719
|
oTypeInfo = mUi5TypeForEdmType[oProperty.$Type];
|
|
1710
1720
|
if (oTypeInfo) {
|
|
1711
1721
|
oType = new oTypeInfo.Type(mFormatOptions,
|
|
1712
|
-
|
|
1722
|
+
this.getConstraints(oProperty, oMetaContext.getPath()));
|
|
1713
1723
|
} else {
|
|
1714
1724
|
Log.warning("Unsupported type '" + oProperty.$Type + "', using "
|
|
1715
1725
|
+ oType.getName(), sPath, sODataMetaModel);
|