@openui5/sap.ui.core 1.132.1 → 1.133.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/.dtsgenrc +5 -0
- package/.eslintrc.json +4 -0
- package/.reuse/dep5 +2 -2
- package/LICENSES/LicenseRef-Unicode-3.0.txt +39 -0
- package/THIRDPARTY.txt +54 -66
- 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/Event.js +1 -1
- package/src/sap/base/Eventing.js +1 -1
- package/src/sap/base/config.js +1 -1
- package/src/sap/base/i18n/LanguageTag.js +1 -1
- package/src/sap/base/i18n/date/TimezoneUtils.js +159 -12
- package/src/sap/base/util/JSTokenizer.js +25 -18
- 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/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/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/base/SyncPromise.js +120 -25
- package/src/sap/ui/core/.library +6 -6
- 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 +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 +3 -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 +96 -79
- 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 +1 -1
- 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/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 +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 +22 -3
- package/src/sap/ui/core/_IconRegistry.js +2 -0
- package/src/sap/ui/core/boot/_bootConfig.js +134 -105
- package/src/sap/ui/core/cldr/Unicode-Data-Files-LICENSE.txt +36 -24
- package/src/sap/ui/core/cldr/ar.json +106 -98
- package/src/sap/ui/core/cldr/ar_EG.json +106 -98
- package/src/sap/ui/core/cldr/ar_SA.json +106 -98
- package/src/sap/ui/core/cldr/bg.json +44 -38
- package/src/sap/ui/core/cldr/ca.json +65 -65
- package/src/sap/ui/core/cldr/cnr.json +182 -170
- package/src/sap/ui/core/cldr/cs.json +39 -31
- package/src/sap/ui/core/cldr/cy.json +319 -233
- package/src/sap/ui/core/cldr/da.json +36 -32
- package/src/sap/ui/core/cldr/de.json +134 -135
- package/src/sap/ui/core/cldr/de_AT.json +134 -135
- package/src/sap/ui/core/cldr/de_CH.json +135 -136
- package/src/sap/ui/core/cldr/el.json +44 -37
- package/src/sap/ui/core/cldr/el_CY.json +44 -37
- package/src/sap/ui/core/cldr/en.json +91 -53
- package/src/sap/ui/core/cldr/en_AU.json +108 -70
- package/src/sap/ui/core/cldr/en_GB.json +123 -85
- package/src/sap/ui/core/cldr/en_HK.json +102 -64
- package/src/sap/ui/core/cldr/en_IE.json +102 -64
- package/src/sap/ui/core/cldr/en_IN.json +207 -67
- package/src/sap/ui/core/cldr/en_NZ.json +102 -64
- package/src/sap/ui/core/cldr/en_PG.json +102 -64
- package/src/sap/ui/core/cldr/en_SG.json +102 -64
- package/src/sap/ui/core/cldr/en_ZA.json +106 -66
- package/src/sap/ui/core/cldr/es.json +43 -39
- package/src/sap/ui/core/cldr/es_AR.json +92 -64
- package/src/sap/ui/core/cldr/es_BO.json +92 -64
- package/src/sap/ui/core/cldr/es_CL.json +92 -64
- package/src/sap/ui/core/cldr/es_CO.json +92 -64
- package/src/sap/ui/core/cldr/es_MX.json +131 -83
- package/src/sap/ui/core/cldr/es_PE.json +69 -41
- package/src/sap/ui/core/cldr/es_UY.json +93 -65
- package/src/sap/ui/core/cldr/es_VE.json +92 -64
- package/src/sap/ui/core/cldr/et.json +60 -59
- package/src/sap/ui/core/cldr/fa.json +122 -116
- package/src/sap/ui/core/cldr/fi.json +186 -82
- package/src/sap/ui/core/cldr/fr.json +57 -56
- package/src/sap/ui/core/cldr/fr_BE.json +56 -55
- package/src/sap/ui/core/cldr/fr_CA.json +139 -89
- package/src/sap/ui/core/cldr/fr_CH.json +47 -46
- package/src/sap/ui/core/cldr/fr_LU.json +57 -56
- package/src/sap/ui/core/cldr/he.json +458 -381
- package/src/sap/ui/core/cldr/hi.json +204 -170
- package/src/sap/ui/core/cldr/hr.json +64 -57
- package/src/sap/ui/core/cldr/hu.json +145 -148
- package/src/sap/ui/core/cldr/id.json +72 -62
- package/src/sap/ui/core/cldr/it.json +76 -75
- package/src/sap/ui/core/cldr/it_CH.json +76 -75
- package/src/sap/ui/core/cldr/ja.json +62 -44
- package/src/sap/ui/core/cldr/kk.json +171 -146
- package/src/sap/ui/core/cldr/ko.json +91 -73
- package/src/sap/ui/core/cldr/lt.json +134 -135
- package/src/sap/ui/core/cldr/lv.json +119 -111
- package/src/sap/ui/core/cldr/mk.json +316 -314
- package/src/sap/ui/core/cldr/ms.json +91 -75
- package/src/sap/ui/core/cldr/nb.json +37 -37
- package/src/sap/ui/core/cldr/nl.json +45 -48
- package/src/sap/ui/core/cldr/nl_BE.json +45 -48
- package/src/sap/ui/core/cldr/pl.json +47 -42
- package/src/sap/ui/core/cldr/pt.json +129 -124
- package/src/sap/ui/core/cldr/pt_PT.json +43 -38
- package/src/sap/ui/core/cldr/ro.json +42 -37
- package/src/sap/ui/core/cldr/ru.json +59 -51
- package/src/sap/ui/core/cldr/ru_UA.json +59 -51
- package/src/sap/ui/core/cldr/sk.json +55 -46
- package/src/sap/ui/core/cldr/sl.json +45 -31
- package/src/sap/ui/core/cldr/sr.json +189 -177
- package/src/sap/ui/core/cldr/sr_Latn.json +189 -177
- package/src/sap/ui/core/cldr/sv.json +42 -41
- package/src/sap/ui/core/cldr/th.json +104 -90
- package/src/sap/ui/core/cldr/tr.json +40 -39
- package/src/sap/ui/core/cldr/uk.json +143 -123
- package/src/sap/ui/core/cldr/vi.json +136 -133
- package/src/sap/ui/core/cldr/zh_CN.json +47 -41
- package/src/sap/ui/core/cldr/zh_HK.json +47 -41
- package/src/sap/ui/core/cldr/zh_SG.json +47 -41
- package/src/sap/ui/core/cldr/zh_TW.json +163 -160
- package/src/sap/ui/core/date/Buddhist.js +2 -2
- package/src/sap/ui/core/date/CalendarUtils.js +4 -4
- package/src/sap/ui/core/date/Gregorian.js +2 -2
- package/src/sap/ui/core/date/Islamic.js +2 -2
- package/src/sap/ui/core/date/Japanese.js +2 -2
- package/src/sap/ui/core/date/Persian.js +2 -2
- package/src/sap/ui/core/date/UI5Date.js +1 -1
- package/src/sap/ui/core/date/UniversalDate.js +12 -12
- package/src/sap/ui/core/delegate/ItemNavigation.js +1 -1
- package/src/sap/ui/core/delegate/ScrollEnablement.js +7 -5
- 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 +204 -4
- package/src/sap/ui/core/fieldhelp/FieldHelpUtil.js +8 -8
- package/src/sap/ui/core/format/DateFormat.js +18 -16
- package/src/sap/ui/core/format/FormatUtils.js +1 -1
- package/src/sap/ui/core/format/NumberFormat.js +336 -353
- 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 +7 -5
- 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/MessageMixin.js +12 -4
- 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_sv.properties +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 +1 -1
- 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 +1 -1
- 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/fonts/SAP-icons.ttf +0 -0
- package/src/sap/ui/core/themes/base/fonts/SAP-icons.woff2 +0 -0
- package/src/sap/ui/core/theming/ThemeManager.js +84 -33
- 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 +5 -2
- 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/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/ManagedObjectBindingSupport.js +21 -12
- 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/base/ManagedObjectModel.js +5 -2
- 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/ODataUtils.js +2 -2
- package/src/sap/ui/model/odata/UpdateMethod.js +18 -1
- package/src/sap/ui/model/odata/_AnnotationHelperExpression.js +2 -2
- 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 +3 -3
- 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 +2 -2
- 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 +3 -3
- 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 +39 -22
- package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +1 -1
- package/src/sap/ui/model/odata/v4/Context.js +48 -16
- package/src/sap/ui/model/odata/v4/ODataBinding.js +2 -0
- package/src/sap/ui/model/odata/v4/ODataContextBinding.js +3 -1
- package/src/sap/ui/model/odata/v4/ODataListBinding.js +22 -13
- package/src/sap/ui/model/odata/v4/ODataMetaModel.js +17 -6
- package/src/sap/ui/model/odata/v4/ODataModel.js +3 -3
- package/src/sap/ui/model/odata/v4/ODataParentBinding.js +6 -0
- package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +1 -1
- package/src/sap/ui/model/odata/v4/ODataUtils.js +1 -1
- package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +9 -9
- package/src/sap/ui/model/odata/v4/lib/_AggregationHelper.js +4 -7
- package/src/sap/ui/model/odata/v4/lib/_Cache.js +251 -129
- package/src/sap/ui/model/odata/v4/lib/_Helper.js +20 -0
- package/src/sap/ui/model/odata/v4/lib/_Requestor.js +8 -3
- package/src/sap/ui/model/odata/v4/lib/_V2Requestor.js +1 -1
- 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/utils/ControlIterator.js +1 -1
- package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +1 -1
- package/src/sap/ui/test/generic/TestBase.js +1 -1
- package/src/sap/ui/test/starter/_setupAndStart.js +1 -1
- package/src/sap/ui/thirdparty/jquery-compat.js +1 -1
- package/src/sap/ui/util/Storage.js +1 -1
- package/src/ui5loader.js +1 -1
- package/test/sap/ui/qunit/TestRunner.js +6 -10
- package/LICENSES/Unicode-DFS-2015.txt +0 -51
|
@@ -124,7 +124,7 @@ sap.ui.define([
|
|
|
124
124
|
* Sets the default count mode for the model
|
|
125
125
|
* @param {sap.ui.model.odata.OperationMode} [mParameters.defaultOperationMode=Default]
|
|
126
126
|
* Sets the default operation mode for the model
|
|
127
|
-
* @param {sap.ui.model.odata.UpdateMethod} [mParameters.defaultUpdateMethod=
|
|
127
|
+
* @param {sap.ui.model.odata.UpdateMethod} [mParameters.defaultUpdateMethod=MERGE]
|
|
128
128
|
* Default update method which is used for all update requests
|
|
129
129
|
* @param {boolean} [mParameters.disableHeadRequestForToken=false]
|
|
130
130
|
* Set this flag to <code>true</code> if your service does not support <code>HEAD</code>
|
|
@@ -218,7 +218,7 @@ sap.ui.define([
|
|
|
218
218
|
* This model is not prepared to be inherited from.
|
|
219
219
|
*
|
|
220
220
|
* @author SAP SE
|
|
221
|
-
* @version 1.
|
|
221
|
+
* @version 1.133.0
|
|
222
222
|
*
|
|
223
223
|
* @public
|
|
224
224
|
* @alias sap.ui.model.odata.v2.ODataModel
|
|
@@ -337,7 +337,7 @@ sap.ui.define([
|
|
|
337
337
|
this.mChangeHandles = {};
|
|
338
338
|
this.mDeferredGroups = {};
|
|
339
339
|
this.mLaunderingState = {};
|
|
340
|
-
this.sDefaultUpdateMethod = sDefaultUpdateMethod || UpdateMethod.
|
|
340
|
+
this.sDefaultUpdateMethod = ODataModel._fixUpdateMethod(sDefaultUpdateMethod) || UpdateMethod.MERGE;
|
|
341
341
|
|
|
342
342
|
this.bTokenHandling = vTokenHandling !== false;
|
|
343
343
|
this.bWithCredentials = bWithCredentials === true;
|
|
@@ -967,6 +967,23 @@ sap.ui.define([
|
|
|
967
967
|
meta: {}
|
|
968
968
|
};
|
|
969
969
|
|
|
970
|
+
/**
|
|
971
|
+
* Maps "Put" to "PUT" and "Merge" to "MERGE" to fix wrong usage of deprecated enum keys as manifest entries. If
|
|
972
|
+
* the given update method is neither "Put" nor "Merge", it is returned as is.
|
|
973
|
+
*
|
|
974
|
+
* @param {string} [sUpdateMethod] The update method to fix
|
|
975
|
+
* @returns {string|undefined} The fixed update method
|
|
976
|
+
* @private
|
|
977
|
+
*/
|
|
978
|
+
ODataModel._fixUpdateMethod = function (sUpdateMethod) {
|
|
979
|
+
if (sUpdateMethod === "Put") {
|
|
980
|
+
return UpdateMethod.PUT;
|
|
981
|
+
} else if (sUpdateMethod === "Merge") {
|
|
982
|
+
return UpdateMethod.MERGE;
|
|
983
|
+
}
|
|
984
|
+
return sUpdateMethod;
|
|
985
|
+
};
|
|
986
|
+
|
|
970
987
|
/**
|
|
971
988
|
* Get the shared data for the section and the key. If it doesn't exist yet, an empty shared
|
|
972
989
|
* data object is created and stored under the section and the key.
|
|
@@ -2243,8 +2260,7 @@ sap.ui.define([
|
|
|
2243
2260
|
* @returns {sap.ui.model.odata.v2.ODataTreeBinding}
|
|
2244
2261
|
* The new tree binding
|
|
2245
2262
|
* @public
|
|
2246
|
-
* @see {@link http://www.sap.com/protocols/SAPData
|
|
2247
|
-
* "SAP Annotations for OData Version 2.0" Specification}
|
|
2263
|
+
* @see {@link http://www.sap.com/protocols/SAPData "SAP Annotations for OData Version 2.0" Specification}
|
|
2248
2264
|
*/
|
|
2249
2265
|
ODataModel.prototype.bindTree = function(sPath, oContext, vFilters, mParameters, vSorters) {
|
|
2250
2266
|
var oBinding = new ODataTreeBinding(this, sPath, oContext, vFilters, mParameters, vSorters);
|
|
@@ -4150,7 +4166,7 @@ sap.ui.define([
|
|
|
4150
4166
|
oStoredRequest.data = oRequest.data;
|
|
4151
4167
|
oStoredRequest.sideEffects = oRequest.sideEffects;
|
|
4152
4168
|
|
|
4153
|
-
if (oRequest.method ===
|
|
4169
|
+
if (oRequest.method === UpdateMethod.PUT) {
|
|
4154
4170
|
// if stored request was a MERGE before (created by setProperty) but is now sent via PUT
|
|
4155
4171
|
// (by submitChanges) the merge header must be removed
|
|
4156
4172
|
delete oStoredRequest.headers["x-http-method"];
|
|
@@ -4744,8 +4760,8 @@ sap.ui.define([
|
|
|
4744
4760
|
* The entry data
|
|
4745
4761
|
* @param {string} sGroupId
|
|
4746
4762
|
* The group ID
|
|
4747
|
-
* @param {
|
|
4748
|
-
*
|
|
4763
|
+
* @param {sap.ui.model.odata.UpdateMethod} [sUpdateMethod]
|
|
4764
|
+
* The update method, defaults to the model's default update method
|
|
4749
4765
|
* @returns {object}
|
|
4750
4766
|
* The request object
|
|
4751
4767
|
*
|
|
@@ -4787,12 +4803,12 @@ sap.ui.define([
|
|
|
4787
4803
|
//delete the uri flag when a new entity was created, since the uri for the create request is generated and does not point to a valid resource
|
|
4788
4804
|
delete oPayload.__metadata['uri'];
|
|
4789
4805
|
}
|
|
4790
|
-
} else if (sUpdateMethod ===
|
|
4791
|
-
sMethod =
|
|
4806
|
+
} else if (sUpdateMethod === UpdateMethod.MERGE) {
|
|
4807
|
+
sMethod = UpdateMethod.MERGE;
|
|
4792
4808
|
// get original unmodified entry for diff
|
|
4793
4809
|
oUnModifiedEntry = this._getEntity(sKey);
|
|
4794
4810
|
} else {
|
|
4795
|
-
sMethod =
|
|
4811
|
+
sMethod = UpdateMethod.PUT;
|
|
4796
4812
|
}
|
|
4797
4813
|
|
|
4798
4814
|
// remove metadata, navigation properties to reduce payload
|
|
@@ -4812,7 +4828,7 @@ sap.ui.define([
|
|
|
4812
4828
|
});
|
|
4813
4829
|
}
|
|
4814
4830
|
|
|
4815
|
-
if (sMethod ===
|
|
4831
|
+
if (sMethod === UpdateMethod.MERGE && oEntityType && oUnModifiedEntry) {
|
|
4816
4832
|
each(oPayload, function(sPropName, oPropValue) {
|
|
4817
4833
|
if (sPropName !== '__metadata') {
|
|
4818
4834
|
// remove unmodified properties and keep only modified properties for delta MERGE
|
|
@@ -5135,8 +5151,8 @@ sap.ui.define([
|
|
|
5135
5151
|
mHeaders["Accept"] = "text/plain, */*;q=0.5";
|
|
5136
5152
|
}
|
|
5137
5153
|
|
|
5138
|
-
if (sMethod ===
|
|
5139
|
-
mHeaders["x-http-method"] =
|
|
5154
|
+
if (sMethod === UpdateMethod.MERGE && !this.bUseBatch) {
|
|
5155
|
+
mHeaders["x-http-method"] = UpdateMethod.MERGE;
|
|
5140
5156
|
sMethod = "POST";
|
|
5141
5157
|
}
|
|
5142
5158
|
|
|
@@ -5257,7 +5273,7 @@ sap.ui.define([
|
|
|
5257
5273
|
* Trigger a <code>PUT/MERGE</code> request to the OData service that was specified in the model constructor.
|
|
5258
5274
|
*
|
|
5259
5275
|
* The update method used is defined by the global <code>defaultUpdateMethod</code> parameter which is
|
|
5260
|
-
* <code>sap.ui.model.odata.UpdateMethod.
|
|
5276
|
+
* <code>sap.ui.model.odata.UpdateMethod.MERGE</code> by default. Please note that deep updates are not
|
|
5261
5277
|
* supported and may not work. These should be done separately and directly on the corresponding entry.
|
|
5262
5278
|
*
|
|
5263
5279
|
* @param {string} sPath A string containing the path to the data that should be updated.
|
|
@@ -5305,7 +5321,7 @@ sap.ui.define([
|
|
|
5305
5321
|
bCanonical = mParameters.canonicalRequest;
|
|
5306
5322
|
// ensure merge parameter backwards compatibility
|
|
5307
5323
|
if (mParameters.merge !== undefined) {
|
|
5308
|
-
sMethod =
|
|
5324
|
+
sMethod = mParameters.merge ? UpdateMethod.MERGE : UpdateMethod.PUT;
|
|
5309
5325
|
}
|
|
5310
5326
|
}
|
|
5311
5327
|
|
|
@@ -6344,7 +6360,8 @@ sap.ui.define([
|
|
|
6344
6360
|
* Submits the collected changes which were collected by the {@link #setProperty} method and other deferred requests.
|
|
6345
6361
|
*
|
|
6346
6362
|
* The update method is defined by the global <code>defaultUpdateMethod</code> parameter which is
|
|
6347
|
-
* <code>sap.ui.model.odata.UpdateMethod.
|
|
6363
|
+
* <code>sap.ui.model.odata.UpdateMethod.MERGE</code> by default. In case of a
|
|
6364
|
+
* <code>sap.ui.model.odata.UpdateMethod.MERGE</code>
|
|
6348
6365
|
* request only the changed properties will be updated.
|
|
6349
6366
|
* If a URI with a <code>$expand</code> query option was used then the expand entries will be removed from the collected changes.
|
|
6350
6367
|
* Changes to this entries should be done on the entry itself. So no deep updates are supported.
|
|
@@ -6369,8 +6386,8 @@ sap.ui.define([
|
|
|
6369
6386
|
* @param {boolean} [mParameters.merge]
|
|
6370
6387
|
* <b>Deprecated</b> since 1.38.0; use the <code>defaultUpdateMethod</code> constructor parameter instead.
|
|
6371
6388
|
* If unset, the update method is determined from the <code>defaultUpdateMethod</code> constructor parameter.
|
|
6372
|
-
* If <code>true</code>, <code>sap.ui.model.odata.UpdateMethod.
|
|
6373
|
-
* if set to <code>false</code>, <code>sap.ui.model.odata.UpdateMethod.
|
|
6389
|
+
* If <code>true</code>, <code>sap.ui.model.odata.UpdateMethod.MERGE</code> is used for update operations;
|
|
6390
|
+
* if set to <code>false</code>, <code>sap.ui.model.odata.UpdateMethod.PUT</code> is used.
|
|
6374
6391
|
* @return {object} An object which has an <code>abort</code> function to abort the current request or requests
|
|
6375
6392
|
*
|
|
6376
6393
|
* @public
|
|
@@ -6403,8 +6420,8 @@ sap.ui.define([
|
|
|
6403
6420
|
* @param {string} [mParameters.batchGroupId]
|
|
6404
6421
|
* <b>Deprecated</b>, use <code>groupId</code> instead
|
|
6405
6422
|
* @param {boolean} [mParameters.merge]
|
|
6406
|
-
* <b>Deprecated</b> since 1.38.0; whether the update method
|
|
6407
|
-
* is used
|
|
6423
|
+
* <b>Deprecated</b> since 1.38.0; whether the update method
|
|
6424
|
+
* <code>sap.ui.model.odata.UpdateMethod.MERGE</code> is used
|
|
6408
6425
|
* @returns {object}
|
|
6409
6426
|
* An object which has an <code>abort</code> function
|
|
6410
6427
|
* @throws {Error}
|
|
@@ -6428,7 +6445,7 @@ sap.ui.define([
|
|
|
6428
6445
|
fnError = mParameters.error;
|
|
6429
6446
|
// ensure merge parameter backwards compatibility
|
|
6430
6447
|
if (mParameters.merge !== undefined) {
|
|
6431
|
-
sMethod =
|
|
6448
|
+
sMethod = mParameters.merge ? UpdateMethod.MERGE : UpdateMethod.PUT;
|
|
6432
6449
|
}
|
|
6433
6450
|
sPrivateHeader = Object.keys(mParameters.changeHeaders || {}).find(function (sHeader) {
|
|
6434
6451
|
return that._isHeaderPrivate(sHeader);
|
|
@@ -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.133.0
|
|
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.133.0
|
|
46
46
|
*/
|
|
47
47
|
Context = BaseContext.extend("sap.ui.model.odata.v4.Context", {
|
|
48
48
|
constructor : constructor
|
|
@@ -88,10 +88,7 @@ sap.ui.define([
|
|
|
88
88
|
}
|
|
89
89
|
BaseContext.call(this, oModel, sPath);
|
|
90
90
|
this.oBinding = oBinding;
|
|
91
|
-
this.
|
|
92
|
-
// ensure to return a promise that is resolved w/o data
|
|
93
|
-
&& Promise.resolve(oCreatePromise).then(function () {});
|
|
94
|
-
this.oSyncCreatePromise = oCreatePromise;
|
|
91
|
+
this.setCreated(oCreatePromise);
|
|
95
92
|
// a promise waiting for the deletion, also used as indicator for #isDeleted
|
|
96
93
|
this.oDeletePromise = null;
|
|
97
94
|
// avoids recursion when calling #doSetProperty within the createActivate event handler
|
|
@@ -294,6 +291,8 @@ sap.ui.define([
|
|
|
294
291
|
* {@link #isKeepAlive kept alive},
|
|
295
292
|
* <li> the context is already being deleted,
|
|
296
293
|
* <li> the context's binding is a list binding with data aggregation,
|
|
294
|
+
* <li> the context is transient but its binding is not a list binding ("upsert") and it
|
|
295
|
+
* therefore must be reset via {@link #resetChanges},
|
|
297
296
|
* <li> the restrictions for deleting from a recursive hierarchy (see above) are not met.
|
|
298
297
|
* </ul>
|
|
299
298
|
*
|
|
@@ -322,12 +321,15 @@ sap.ui.define([
|
|
|
322
321
|
}
|
|
323
322
|
this.oBinding.checkSuspended();
|
|
324
323
|
if (this.isTransient()) {
|
|
324
|
+
if (!this.oBinding.getHeaderContext) { // upsert
|
|
325
|
+
throw new Error("Cannot delete " + this);
|
|
326
|
+
}
|
|
325
327
|
if (this.iIndex === undefined) {
|
|
326
328
|
return Promise.resolve(); // already deleted, nothing to do
|
|
327
329
|
}
|
|
328
330
|
sGroupId = null;
|
|
329
331
|
} else if (sGroupId === null) {
|
|
330
|
-
if (
|
|
332
|
+
if (this.iIndex !== undefined || !this.isKeepAlive()) {
|
|
331
333
|
throw new Error("Cannot delete " + this);
|
|
332
334
|
}
|
|
333
335
|
}
|
|
@@ -584,7 +586,7 @@ sap.ui.define([
|
|
|
584
586
|
bUpdating);
|
|
585
587
|
}
|
|
586
588
|
|
|
587
|
-
if (that.
|
|
589
|
+
if (that.bInactive && !that.bFiringCreateActivate) {
|
|
588
590
|
// early cache update so that the new value is properly available on the
|
|
589
591
|
// event listener
|
|
590
592
|
// runs synchronously - setProperty calls fetchValue with $cached
|
|
@@ -596,6 +598,10 @@ sap.ui.define([
|
|
|
596
598
|
oCache.setInactive(sEntityPath, that.bInactive);
|
|
597
599
|
}
|
|
598
600
|
|
|
601
|
+
const fnSetUpsertPromise = _Helper.hasPathSuffix(that.sPath, sEntityPath)
|
|
602
|
+
? that.setCreated.bind(that)
|
|
603
|
+
: null;
|
|
604
|
+
|
|
599
605
|
// if request is canceled fnPatchSent and fnErrorCallback are not called and
|
|
600
606
|
// returned Promise is rejected -> no patch events
|
|
601
607
|
return oCache.update(oGroupLock, oResult.propertyPath, vValue,
|
|
@@ -603,7 +609,7 @@ sap.ui.define([
|
|
|
603
609
|
// Note: use that.oModel intentionally, fails if already destroyed!
|
|
604
610
|
oMetaModel.getUnitOrCurrencyPath(that.oModel.resolve(sPath, that)),
|
|
605
611
|
oBinding.isPatchWithoutSideEffects(), patchSent,
|
|
606
|
-
that.isEffectivelyKeptAlive.bind(that)
|
|
612
|
+
that.isEffectivelyKeptAlive.bind(that), fnSetUpsertPromise
|
|
607
613
|
).then(function () {
|
|
608
614
|
firePatchCompleted(true);
|
|
609
615
|
}, function (oError) {
|
|
@@ -673,6 +679,7 @@ sap.ui.define([
|
|
|
673
679
|
if (!bAll) {
|
|
674
680
|
throw new Error("Already expanded: " + this);
|
|
675
681
|
}
|
|
682
|
+
this.oBinding.collapse(this, /*bAll*/false, /*bSilent*/true);
|
|
676
683
|
// falls through
|
|
677
684
|
case false: {
|
|
678
685
|
const iLevels = bAll ? Number.MAX_SAFE_INTEGER : 1;
|
|
@@ -1195,7 +1202,7 @@ sap.ui.define([
|
|
|
1195
1202
|
var that = this;
|
|
1196
1203
|
|
|
1197
1204
|
return this.isTransient() && this.isInactive() !== true
|
|
1198
|
-
|| this.oDeletePromise
|
|
1205
|
+
|| this.oDeletePromise?.isPending()
|
|
1199
1206
|
|| this.oBinding.hasPendingChangesForPath(this.sPath)
|
|
1200
1207
|
|| this.oModel.getDependentBindings(this).some(function (oDependentBinding) {
|
|
1201
1208
|
return oDependentBinding.oCache
|
|
@@ -1287,7 +1294,7 @@ sap.ui.define([
|
|
|
1287
1294
|
|| !mParameters.$$sharedRequest
|
|
1288
1295
|
&& this.oBinding.getHeaderContext?.()
|
|
1289
1296
|
&& this.oBinding.getHeaderContext().isSelected() !== this.isSelected()
|
|
1290
|
-
&& !
|
|
1297
|
+
&& (mParameters.$$ownRequest || !this.oBinding.isRelative())
|
|
1291
1298
|
&& !_Helper.isDataAggregation(mParameters)
|
|
1292
1299
|
// check for key predicate in the last path segment
|
|
1293
1300
|
&& this.sPath.indexOf("(", this.sPath.lastIndexOf("/")) > 0;
|
|
@@ -1403,7 +1410,7 @@ sap.ui.define([
|
|
|
1403
1410
|
* @since 1.43.0
|
|
1404
1411
|
*/
|
|
1405
1412
|
Context.prototype.isTransient = function () {
|
|
1406
|
-
return this.oSyncCreatePromise
|
|
1413
|
+
return this.oSyncCreatePromise?.isPending();
|
|
1407
1414
|
};
|
|
1408
1415
|
|
|
1409
1416
|
/**
|
|
@@ -1475,11 +1482,11 @@ sap.ui.define([
|
|
|
1475
1482
|
if (oNextSibling === undefined && oParent === undefined) {
|
|
1476
1483
|
return Promise.resolve(); // "no move happens"
|
|
1477
1484
|
}
|
|
1478
|
-
if (this.
|
|
1485
|
+
if (this.iIndex === undefined || this.isDeleted() || this.isTransient()) {
|
|
1479
1486
|
throw new Error("Cannot move " + this);
|
|
1480
1487
|
}
|
|
1481
1488
|
if (oParent
|
|
1482
|
-
&& (oParent.
|
|
1489
|
+
&& (oParent.iIndex === undefined || oParent.isDeleted() || oParent.isTransient())) {
|
|
1483
1490
|
throw new Error("Cannot move to " + oParent);
|
|
1484
1491
|
}
|
|
1485
1492
|
if (this.isAncestorOf(oParent)) {
|
|
@@ -2126,8 +2133,8 @@ sap.ui.define([
|
|
|
2126
2133
|
* <li> the binding's root binding is suspended,
|
|
2127
2134
|
* <li> a change of this context has already been sent to the server and there is no response
|
|
2128
2135
|
* yet,
|
|
2129
|
-
* <li> this context is transient
|
|
2130
|
-
* {@link #delete}.
|
|
2136
|
+
* <li> this context is a transient row context but not inactive and therefore must be reset
|
|
2137
|
+
* via {@link #delete}.
|
|
2131
2138
|
* <li> this context is a
|
|
2132
2139
|
* {@link sap.ui.model.odata.v4.ODataListBinding#getHeaderContext header context}.
|
|
2133
2140
|
* <li> this context is a
|
|
@@ -2144,7 +2151,8 @@ sap.ui.define([
|
|
|
2144
2151
|
: [],
|
|
2145
2152
|
that = this;
|
|
2146
2153
|
|
|
2147
|
-
if (this.iIndex === iVIRTUAL
|
|
2154
|
+
if (this.iIndex === iVIRTUAL
|
|
2155
|
+
|| this.oBinding.getHeaderContext && !this.bInactive && this.isTransient()
|
|
2148
2156
|
|| this === this.oBinding.getHeaderContext?.()
|
|
2149
2157
|
// only operation bindings have a parameter context, for others the function fails
|
|
2150
2158
|
|| this.oBinding.oOperation && this === this.oBinding.getParameterContext()) {
|
|
@@ -2180,6 +2188,30 @@ sap.ui.define([
|
|
|
2180
2188
|
this.bSelected = false;
|
|
2181
2189
|
};
|
|
2182
2190
|
|
|
2191
|
+
/**
|
|
2192
|
+
* Sets this context's {@link #created created} promise based on the given one.
|
|
2193
|
+
*
|
|
2194
|
+
* Note: this is a private and internal API. Do not call this!
|
|
2195
|
+
*
|
|
2196
|
+
* @param {sap.ui.base.SyncPromise} [oSyncCreatePromise]
|
|
2197
|
+
* A promise which is resolved with the created entity when the PATCH or POST request has been
|
|
2198
|
+
* successfully sent and the entity has been marked as non-transient; used as base for
|
|
2199
|
+
* {@link #created}. If missing, this context's {@link #created created} promise is removed
|
|
2200
|
+
* again. Don't use <code>null</code>!
|
|
2201
|
+
* @throws {Error} If this context is not "created" or still transient
|
|
2202
|
+
*
|
|
2203
|
+
* @private
|
|
2204
|
+
*/
|
|
2205
|
+
Context.prototype.setCreated = function (oSyncCreatePromise) {
|
|
2206
|
+
if (oSyncCreatePromise && this.oCreatedPromise) {
|
|
2207
|
+
throw new Error("Already 'created'");
|
|
2208
|
+
}
|
|
2209
|
+
this.oCreatedPromise = oSyncCreatePromise
|
|
2210
|
+
// ensure to return a promise that is resolved w/o data
|
|
2211
|
+
&& Promise.resolve(oSyncCreatePromise).then(function () {});
|
|
2212
|
+
this.oSyncCreatePromise = oSyncCreatePromise;
|
|
2213
|
+
};
|
|
2214
|
+
|
|
2183
2215
|
/**
|
|
2184
2216
|
* Sets the inactive flag to <code>true</code>
|
|
2185
2217
|
*
|
|
@@ -1157,6 +1157,8 @@ sap.ui.define([
|
|
|
1157
1157
|
* @param {string} sCanonicalPath
|
|
1158
1158
|
* The canonical path of the entity (as a context path with the leading "/")
|
|
1159
1159
|
*
|
|
1160
|
+
* @abstract
|
|
1161
|
+
* @function
|
|
1160
1162
|
* @name sap.ui.model.odata.v4.ODataBinding#onDelete
|
|
1161
1163
|
* @private
|
|
1162
1164
|
*/
|
|
@@ -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.133.0
|
|
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
|
|
@@ -841,6 +841,8 @@ sap.ui.define([
|
|
|
841
841
|
/**
|
|
842
842
|
* Handles setting a parameter property in case of a deferred operation binding, otherwise it
|
|
843
843
|
* returns <code>undefined</code>.
|
|
844
|
+
*
|
|
845
|
+
* @private
|
|
844
846
|
*/
|
|
845
847
|
// @override sap.ui.model.odata.v4.ODataParentBinding#doSetProperty
|
|
846
848
|
ODataContextBinding.prototype.doSetProperty = function (sPath, vValue, oGroupLock) {
|
|
@@ -59,7 +59,7 @@ sap.ui.define([
|
|
|
59
59
|
* @mixes sap.ui.model.odata.v4.ODataParentBinding
|
|
60
60
|
* @public
|
|
61
61
|
* @since 1.37.0
|
|
62
|
-
* @version 1.
|
|
62
|
+
* @version 1.133.0
|
|
63
63
|
* @borrows sap.ui.model.odata.v4.ODataBinding#getGroupId as #getGroupId
|
|
64
64
|
* @borrows sap.ui.model.odata.v4.ODataBinding#getRootBinding as #getRootBinding
|
|
65
65
|
* @borrows sap.ui.model.odata.v4.ODataBinding#getUpdateGroupId as #getUpdateGroupId
|
|
@@ -738,7 +738,7 @@ sap.ui.define([
|
|
|
738
738
|
|
|
739
739
|
iCount ??= this.oCache.collapse(
|
|
740
740
|
_Helper.getRelativePath(oContext.getPath(), this.oHeaderContext.getPath()),
|
|
741
|
-
bAll ? this.lockGroup() : undefined);
|
|
741
|
+
bAll ? this.lockGroup() : undefined, bSilent);
|
|
742
742
|
|
|
743
743
|
if (iCount > 0) {
|
|
744
744
|
const aContexts = this.aContexts;
|
|
@@ -1543,7 +1543,8 @@ sap.ui.define([
|
|
|
1543
1543
|
oCache ??= _AggregationCache.create(this.oModel.oRequestor, sResourcePath,
|
|
1544
1544
|
sDeepResourcePath, mQueryOptions, this.mParameters.$$aggregation,
|
|
1545
1545
|
this.oModel.bAutoExpandSelect || "$$separate" in this.mParameters,
|
|
1546
|
-
this.bSharedRequest, this.isGrouped()
|
|
1546
|
+
this.bSharedRequest, this.isGrouped());
|
|
1547
|
+
oCache.setSeparate?.(this.mParameters.$$separate);
|
|
1547
1548
|
if (mKeptElementsByPredicate) {
|
|
1548
1549
|
aKeepAlivePredicates.forEach(function (sPredicate) {
|
|
1549
1550
|
oCache.addKeptElement(mKeptElementsByPredicate[sPredicate]);
|
|
@@ -2065,8 +2066,12 @@ sap.ui.define([
|
|
|
2065
2066
|
return oPromise.then((oEntityType) => {
|
|
2066
2067
|
const oAggregation = this.mParameters.$$aggregation;
|
|
2067
2068
|
if (oEntityType) {
|
|
2068
|
-
oAggregation.$leafLevelAggregated
|
|
2069
|
-
|
|
2069
|
+
oAggregation.$leafLevelAggregated = !oEntityType.$Key?.every((sKey) => {
|
|
2070
|
+
// "group" and "additionally" determine groupby()
|
|
2071
|
+
return sKey in oAggregation.group
|
|
2072
|
+
|| Object.keys(oAggregation.group).some(
|
|
2073
|
+
(sGroup) => oAggregation.group[sGroup].additionally?.includes(sKey));
|
|
2074
|
+
});
|
|
2070
2075
|
}
|
|
2071
2076
|
|
|
2072
2077
|
if (!oCombinedFilter) {
|
|
@@ -3403,6 +3408,8 @@ sap.ui.define([
|
|
|
3403
3408
|
* The insertion index
|
|
3404
3409
|
* @param {boolean} [bAtEnd]
|
|
3405
3410
|
* The relative position in the creation area
|
|
3411
|
+
*
|
|
3412
|
+
* @private
|
|
3406
3413
|
*/
|
|
3407
3414
|
ODataListBinding.prototype.insertContext = function (oContext, iIndex, bAtEnd) {
|
|
3408
3415
|
if (iIndex !== undefined) {
|
|
@@ -3557,6 +3564,7 @@ sap.ui.define([
|
|
|
3557
3564
|
*
|
|
3558
3565
|
* @returns {sap.ui.model.odata.v4.Context[]} The list of kept contexts
|
|
3559
3566
|
*
|
|
3567
|
+
* @private
|
|
3560
3568
|
* @see #getCurrentContexts
|
|
3561
3569
|
*/
|
|
3562
3570
|
ODataListBinding.prototype.keepOnlyVisibleContexts = function () {
|
|
@@ -4596,14 +4604,6 @@ sap.ui.define([
|
|
|
4596
4604
|
* used to remove the data aggregation object, which allows to set <code>$apply</code>
|
|
4597
4605
|
* explicitly afterwards. <code>null</code> is not supported.
|
|
4598
4606
|
* <br>
|
|
4599
|
-
* Since 1.89.0, the <b>deprecated</b> property <code>"grandTotal like 1.84" : true</code> can
|
|
4600
|
-
* be used to turn on the handling of grand totals like in 1.84.0, using aggregates of
|
|
4601
|
-
* aggregates and thus allowing to filter by aggregated properties while grand totals are
|
|
4602
|
-
* needed. Beware that methods like "average" or "countdistinct" are not compatible with this
|
|
4603
|
-
* approach, and it cannot be combined with group levels. Since 1.129.0, this property is not
|
|
4604
|
-
* needed anymore and filtering by aggregated properties is supported even while grand totals
|
|
4605
|
-
* or subtotals are needed.
|
|
4606
|
-
* <br>
|
|
4607
4607
|
* Since 1.117.0, either a read-only recursive hierarchy or pure data aggregation is
|
|
4608
4608
|
* supported, but no mix; <code>hierarchyQualifier</code> is the leading property that decides
|
|
4609
4609
|
* between those two use cases. Since 1.125.0, maintenance of a recursive hierarchy is
|
|
@@ -4701,6 +4701,14 @@ sap.ui.define([
|
|
|
4701
4701
|
* separate row after all children, when a group level node is expanded (since 1.86.0);
|
|
4702
4702
|
* <code>true</code> for bottom only, <code>false</code> for top and bottom, the default is
|
|
4703
4703
|
* top only (that is, as part of the group level node)
|
|
4704
|
+
* @param {boolean} [oAggregation."grandTotal like 1.84"]
|
|
4705
|
+
* Since 1.89.0, the <b>deprecated</b> property <code>"grandTotal like 1.84" : true</code> can
|
|
4706
|
+
* be used to turn on the handling of grand totals like in 1.84.0, using aggregates of
|
|
4707
|
+
* aggregates and thus allowing to filter by aggregated properties while grand totals are
|
|
4708
|
+
* needed. Beware that methods like "average" or "countdistinct" are not compatible with this
|
|
4709
|
+
* approach, and it cannot be combined with group levels. Since 1.129.0, this property is not
|
|
4710
|
+
* needed anymore and filtering by aggregated properties is supported even while grand totals
|
|
4711
|
+
* or subtotals are needed.
|
|
4704
4712
|
* @throws {Error} If
|
|
4705
4713
|
* <ul>
|
|
4706
4714
|
* <li> the given data aggregation object is unsupported,
|
|
@@ -4738,6 +4746,7 @@ sap.ui.define([
|
|
|
4738
4746
|
* @public
|
|
4739
4747
|
* @see #getAggregation
|
|
4740
4748
|
* @since 1.55.0
|
|
4749
|
+
* @ui5-transform-hint replace-param oAggregation."grandTotal like 1.84" false
|
|
4741
4750
|
*/
|
|
4742
4751
|
ODataListBinding.prototype.setAggregation = function (oAggregation) {
|
|
4743
4752
|
var mParameters;
|
|
@@ -157,7 +157,7 @@ sap.ui.define([
|
|
|
157
157
|
* @hideconstructor
|
|
158
158
|
* @public
|
|
159
159
|
* @since 1.37.0
|
|
160
|
-
* @version 1.
|
|
160
|
+
* @version 1.133.0
|
|
161
161
|
*/
|
|
162
162
|
ODataMetaModel = MetaModel.extend("sap.ui.model.odata.v4.ODataMetaModel", {
|
|
163
163
|
constructor : constructor
|
|
@@ -1817,7 +1817,9 @@ sap.ui.define([
|
|
|
1817
1817
|
* @param {sap.ui.model.odata.v4.Context} oContext
|
|
1818
1818
|
* A context, used for building the path and for determining the key predicate
|
|
1819
1819
|
* @param {boolean} [bNoEditUrl]
|
|
1820
|
-
* Whether no edit URL is required
|
|
1820
|
+
* Whether no edit URL is required; must be <code>undefined</code> from APIs for canonical
|
|
1821
|
+
* paths (based on {@link #fetchCanonicalPath}). Since 1.133.0, when a boolean value is given,
|
|
1822
|
+
* the edit URL is allowed to be adjusted for upsert use cases.
|
|
1821
1823
|
* @returns {sap.ui.base.SyncPromise}
|
|
1822
1824
|
* A promise that gets resolved with an object having the following properties:
|
|
1823
1825
|
* <ul>
|
|
@@ -1840,7 +1842,9 @@ sap.ui.define([
|
|
|
1840
1842
|
function error(sMessage) {
|
|
1841
1843
|
var oError = new Error(sResolvedPath + ": " + sMessage);
|
|
1842
1844
|
|
|
1843
|
-
|
|
1845
|
+
if (bNoEditUrl !== undefined) {
|
|
1846
|
+
oModel.reportError(sMessage, sODataMetaModel, oError);
|
|
1847
|
+
} // else: do not log to console or message model for APIs
|
|
1844
1848
|
throw oError;
|
|
1845
1849
|
}
|
|
1846
1850
|
|
|
@@ -1865,7 +1869,8 @@ sap.ui.define([
|
|
|
1865
1869
|
//sPropertyPath,
|
|
1866
1870
|
aSegments, // The resource path split in segments (encoded)
|
|
1867
1871
|
bTransient = false, // Whether the property is within a transient entity
|
|
1868
|
-
oType
|
|
1872
|
+
oType, // The type of the data at sInstancePath
|
|
1873
|
+
bUpsert = false; // Whether the entity is already or about to be created via upsert
|
|
1869
1874
|
|
|
1870
1875
|
// Determines the predicate from a segment (empty string if there is none)
|
|
1871
1876
|
function predicate(sSegment) {
|
|
@@ -1965,7 +1970,7 @@ sap.ui.define([
|
|
|
1965
1970
|
}
|
|
1966
1971
|
|
|
1967
1972
|
// aEditUrl may still contain key predicate requests, run them and wait for the promises
|
|
1968
|
-
return SyncPromise.all(aEditUrl.map(function (vSegment) {
|
|
1973
|
+
return SyncPromise.all(aEditUrl.map(function (vSegment, i) {
|
|
1969
1974
|
if (typeof vSegment === "string") {
|
|
1970
1975
|
return vSegment;
|
|
1971
1976
|
}
|
|
@@ -1973,6 +1978,12 @@ sap.ui.define([
|
|
|
1973
1978
|
return oContext.fetchValue(vSegment.path).then(function (oEntity) {
|
|
1974
1979
|
var sPredicate;
|
|
1975
1980
|
|
|
1981
|
+
if (bNoEditUrl !== undefined && i === aEditUrl.length - 1
|
|
1982
|
+
&& (oEntity === null
|
|
1983
|
+
|| oEntity && _Helper.hasPrivateAnnotation(oEntity, "upsert"))) {
|
|
1984
|
+
bUpsert = true;
|
|
1985
|
+
return undefined;
|
|
1986
|
+
}
|
|
1976
1987
|
if (!oEntity) {
|
|
1977
1988
|
error("No instance to calculate key predicate at " + vSegment.path);
|
|
1978
1989
|
}
|
|
@@ -1986,7 +1997,7 @@ sap.ui.define([
|
|
|
1986
1997
|
});
|
|
1987
1998
|
})).then(function (aFinalEditUrl) {
|
|
1988
1999
|
return {
|
|
1989
|
-
editUrl : aFinalEditUrl.join("/"),
|
|
2000
|
+
editUrl : bUpsert ? sEntityPath.slice(1) : aFinalEditUrl.join("/"),
|
|
1990
2001
|
entityPath : sEntityPath,
|
|
1991
2002
|
propertyPath : sPropertyPath
|
|
1992
2003
|
};
|
|
@@ -240,7 +240,7 @@ sap.ui.define([
|
|
|
240
240
|
* @extends sap.ui.model.Model
|
|
241
241
|
* @public
|
|
242
242
|
* @since 1.37.0
|
|
243
|
-
* @version 1.
|
|
243
|
+
* @version 1.133.0
|
|
244
244
|
*/
|
|
245
245
|
ODataModel = Model.extend("sap.ui.model.odata.v4.ODataModel",
|
|
246
246
|
/** @lends sap.ui.model.odata.v4.ODataModel.prototype */{
|
|
@@ -1883,10 +1883,10 @@ sap.ui.define([
|
|
|
1883
1883
|
/**
|
|
1884
1884
|
* Returns a map of HTTP headers used for data and metadata requests. While the "X-CSRF-Token"
|
|
1885
1885
|
* header is not used for metadata requests, it is still included here if available. The
|
|
1886
|
-
* "SAP-ContextId" header is only included if requested explicitly (
|
|
1886
|
+
* "SAP-ContextId" header is only included if requested explicitly (since 1.86.0).
|
|
1887
1887
|
*
|
|
1888
1888
|
* @param {boolean} [bIncludeContextId]
|
|
1889
|
-
* Whether to include the "SAP-ContextId" header (
|
|
1889
|
+
* Whether to include the "SAP-ContextId" header (since 1.86.0)
|
|
1890
1890
|
* @returns {Object<string>}
|
|
1891
1891
|
* The map of HTTP headers
|
|
1892
1892
|
*
|
|
@@ -599,6 +599,8 @@ sap.ui.define([
|
|
|
599
599
|
* @throws {Error}
|
|
600
600
|
* If the cache promise for this binding is not yet fulfilled, or if the cache is shared
|
|
601
601
|
*
|
|
602
|
+
* @abstract
|
|
603
|
+
* @function
|
|
602
604
|
* @name sap.ui.model.odata.v4.ODataParentBinding#delete
|
|
603
605
|
* @private
|
|
604
606
|
*/
|
|
@@ -1020,6 +1022,7 @@ sap.ui.define([
|
|
|
1020
1022
|
* @returns {sap.ui.model.odata.v4.Context}
|
|
1021
1023
|
* A matching context or <code>undefined</code> if there is none
|
|
1022
1024
|
*
|
|
1025
|
+
* @abstract
|
|
1023
1026
|
* @function
|
|
1024
1027
|
* @name sap.ui.model.odata.v4.ODataParentBinding#findContextForCanonicalPath
|
|
1025
1028
|
* @private
|
|
@@ -1029,6 +1032,7 @@ sap.ui.define([
|
|
|
1029
1032
|
* Fire event 'patchCompleted' to attached listeners, if the last PATCH request is completed.
|
|
1030
1033
|
*
|
|
1031
1034
|
* @param {boolean} bSuccess Whether the current PATCH request has been processed successfully
|
|
1035
|
+
*
|
|
1032
1036
|
* @private
|
|
1033
1037
|
*/
|
|
1034
1038
|
ODataParentBinding.prototype.firePatchCompleted = function (bSuccess) {
|
|
@@ -1257,6 +1261,8 @@ sap.ui.define([
|
|
|
1257
1261
|
* @param {string} sName - The parameter's name
|
|
1258
1262
|
* @param {any} vOtherValue - The parameter's other value
|
|
1259
1263
|
* @returns {boolean} Whether the parameter is "unchanged"
|
|
1264
|
+
*
|
|
1265
|
+
* @private
|
|
1260
1266
|
*/
|
|
1261
1267
|
ODataParentBinding.prototype.isUnchangedParameter = function (sName, vOtherValue) {
|
|
1262
1268
|
return this.mParameters[sName] === vOtherValue;
|
|
@@ -42,7 +42,7 @@ sap.ui.define([
|
|
|
42
42
|
* @mixes sap.ui.model.odata.v4.ODataBinding
|
|
43
43
|
* @public
|
|
44
44
|
* @since 1.37.0
|
|
45
|
-
* @version 1.
|
|
45
|
+
* @version 1.133.0
|
|
46
46
|
* @borrows sap.ui.model.odata.v4.ODataBinding#getGroupId as #getGroupId
|
|
47
47
|
* @borrows sap.ui.model.odata.v4.ODataBinding#getRootBinding as #getRootBinding
|
|
48
48
|
* @borrows sap.ui.model.odata.v4.ODataBinding#getUpdateGroupId as #getUpdateGroupId
|