@openui5/sap.ui.core 1.91.0 → 1.93.2
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/.eslintrc.json +37 -0
- package/.reuse/dep5 +46 -0
- package/THIRDPARTY.txt +59 -1
- package/package.json +1 -1
- package/src/jquery.sap.global.js +6 -2
- 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 +7 -4
- package/src/jquery.sap.stubs.js +0 -1
- package/src/sap/base/i18n/ResourceBundle.js +2 -2
- package/src/sap/base/security/encodeCSS.js +1 -0
- package/src/sap/base/security/encodeJS.js +1 -0
- package/src/sap/base/security/encodeURL.js +1 -0
- package/src/sap/base/security/encodeXML.js +2 -0
- package/src/sap/base/util/LoaderExtensions.js +1 -1
- package/src/sap/base/util/Properties.js +4 -1
- package/src/sap/base/util/isEmptyObject.js +1 -2
- 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 +10 -10
- package/src/sap/ui/Global.js +4 -4
- package/src/sap/ui/VersionInfo.js +1 -0
- package/src/sap/ui/base/DataType.js +1 -0
- 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 +121 -18
- package/src/sap/ui/base/ManagedObjectMetadata.js +13 -4
- 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 +4 -2
- package/src/sap/ui/core/BusyIndicator.js +1 -1
- package/src/sap/ui/core/BusyIndicatorUtils.js +4 -1
- package/src/sap/ui/core/Component.js +144 -43
- package/src/sap/ui/core/ComponentContainer.js +51 -2
- 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 +2 -1
- package/src/sap/ui/core/Control.js +1 -1
- package/src/sap/ui/core/Core.js +20 -22
- package/src/sap/ui/core/CustomData.js +1 -1
- package/src/sap/ui/core/CustomizingConfiguration.js +2 -2
- package/src/sap/ui/core/DeclarativeSupport.js +1 -1
- package/src/sap/ui/core/Element.js +1 -1
- package/src/sap/ui/core/ElementMetadata.js +1 -3
- package/src/sap/ui/core/EnabledPropagator.js +1 -1
- package/src/sap/ui/core/EventBus.js +1 -1
- package/src/sap/ui/core/ExtensionPoint.js +59 -16
- package/src/sap/ui/core/Fragment.js +3 -3
- 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 +9 -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 +15 -1328
- package/src/sap/ui/core/Manifest.js +124 -69
- package/src/sap/ui/core/Message.js +1 -1
- package/src/sap/ui/core/Patcher.js +143 -153
- package/src/sap/ui/core/Placeholder.js +173 -0
- package/src/sap/ui/core/Popup.js +29 -5
- package/src/sap/ui/core/RenderManager.js +344 -104
- 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/ThemeCheck.js +14 -62
- 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 +6 -3
- package/src/sap/ui/core/UIComponent.js +46 -23
- 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 +3 -5
- package/src/sap/ui/core/XMLCompositeMetadata.js +1 -1
- package/src/sap/ui/core/XMLTemplateProcessor.js +5 -6
- package/src/sap/ui/core/cldr/en.json +1 -0
- package/src/sap/ui/core/date/UniversalDate.js +4 -2
- package/src/sap/ui/core/delegate/ItemNavigation.js +4 -4
- package/src/sap/ui/core/delegate/ScrollEnablement.js +1 -1
- package/src/sap/ui/core/dnd/DragAndDrop.js +1 -1
- package/src/sap/ui/core/dnd/DragDropBase.js +2 -9
- package/src/sap/ui/core/dnd/DragDropInfo.js +1 -1
- package/src/sap/ui/core/dnd/DragInfo.js +41 -1
- package/src/sap/ui/core/dnd/DropInfo.js +1 -1
- package/src/sap/ui/core/format/DateFormat.js +4 -2
- package/src/sap/ui/core/format/NumberFormat.js +3 -0
- package/src/sap/ui/core/hyphenation/Hyphenation.js +1 -1
- package/src/sap/ui/core/library.js +26 -4
- 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 +4 -2
- 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_cs.properties +1 -1
- package/src/sap/ui/core/messagebundle_ms.properties +1 -1
- package/src/sap/ui/core/messagebundle_pt.properties +6 -6
- package/src/sap/ui/core/messagebundle_tr.properties +1 -1
- package/src/sap/ui/core/mvc/Controller.js +146 -8
- package/src/sap/ui/core/mvc/HTMLView.js +3 -1
- package/src/sap/ui/core/mvc/JSONView.js +7 -5
- package/src/sap/ui/core/mvc/JSView.js +4 -2
- package/src/sap/ui/core/mvc/TemplateView.js +1 -1
- package/src/sap/ui/core/mvc/View.js +145 -68
- package/src/sap/ui/core/mvc/ViewType.js +2 -0
- package/src/sap/ui/core/mvc/XMLView.js +13 -9
- 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/HashChangerBase.js +9 -2
- package/src/sap/ui/core/routing/History.js +188 -87
- package/src/sap/ui/core/routing/Route.js +10 -1
- package/src/sap/ui/core/routing/Router.js +8 -5
- package/src/sap/ui/core/routing/RouterHashChanger.js +26 -16
- package/src/sap/ui/core/routing/TargetCache.js +19 -8
- package/src/sap/ui/core/routing/Targets.js +29 -3
- package/src/sap/ui/core/routing/async/Route.js +9 -1
- package/src/sap/ui/core/routing/async/Target.js +249 -85
- package/src/sap/ui/core/routing/async/TargetCache.js +9 -7
- package/src/sap/ui/core/routing/async/Targets.js +4 -2
- package/src/sap/ui/core/routing/sync/Target.js +15 -0
- package/src/sap/ui/core/rules/App.support.js +36 -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/InteractionTree.css +0 -14
- package/src/sap/ui/core/support/Plugin.js +1 -1
- package/src/sap/ui/core/support/RuleEngineOpaExtension.js +0 -2
- package/src/sap/ui/core/support/Support.js +1 -1
- package/src/sap/ui/core/support/TimelineOverview.css +0 -35
- package/src/sap/ui/core/support/controls/ObjectViewer.js +5 -9
- package/src/sap/ui/core/support/controls/TreeViewer.js +0 -1
- package/src/sap/ui/core/support/interactionSlider.css +0 -3
- package/src/sap/ui/core/support/plugins/ControlTree.js +2 -2
- 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/MessageTest.js +1 -1
- package/src/sap/ui/core/support/plugins/Performance.js +2 -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 -3
- package/src/sap/ui/core/support/support.css +4 -164
- package/src/sap/ui/core/support/trace/E2eTraceLib.js +3 -3
- package/src/sap/ui/core/support/usage/EventBroadcaster.js +0 -22
- package/src/sap/ui/core/themes/base/BlindLayer.less +0 -2
- package/src/sap/ui/core/themes/base/BrowserScrollbar.less +0 -9
- package/src/sap/ui/core/themes/base/LocalBusyIndicator.less +5 -5
- package/src/sap/ui/core/themes/base/SAP-icons.css +2 -0
- package/src/sap/ui/core/themes/base/SAP-icons.less +10 -0
- package/src/sap/ui/core/themes/base/TechnicalInfo.less +0 -1
- package/src/sap/ui/core/themes/base/base.less +569 -414
- package/src/sap/ui/core/themes/base/global.less +38 -0
- package/src/sap/ui/core/themes/base/library.source.less +1 -2
- package/src/sap/ui/core/themes/base/shared.less +1 -1
- package/src/sap/ui/core/themes/sap_hcb/global.less +34 -0
- package/src/sap/ui/core/theming/Parameters.js +222 -60
- package/src/sap/ui/core/theming/ThemeHelper.js +94 -0
- package/src/sap/ui/core/tmpl/DOMAttribute.js +1 -1
- package/src/sap/ui/core/tmpl/DOMElement.js +1 -1
- package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +1 -1
- package/src/sap/ui/core/tmpl/Template.js +2 -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 +27 -7
- package/src/sap/ui/core/util/PasteHelper.js +1 -1
- package/src/sap/ui/core/util/XMLPreprocessor.js +2 -2
- package/src/sap/ui/core/util/reflection/BaseTreeModifier.js +18 -0
- 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 +2 -2
- package/src/sap/ui/core/util/serializer/delegate/XML.js +2 -2
- package/src/sap/ui/core/ws/ReadyState.js +1 -1
- package/src/sap/ui/core/ws/SapPcpWebSocket.js +2 -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/jquery/zIndex.js +3 -3
- package/src/sap/ui/events/jquery/EventSimulation.js +7 -6
- package/src/sap/ui/events/jquery/EventTriggerHook.js +1 -1
- package/src/sap/ui/model/Binding.js +7 -3
- package/src/sap/ui/model/ClientModel.js +1 -1
- package/src/sap/ui/model/CompositeBinding.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/Context.js +31 -11
- 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 +3 -3
- package/src/sap/ui/model/SelectionModel.js +5 -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/analytics/AnalyticalBinding.js +36 -45
- package/src/sap/ui/model/analytics/odata4analytics.js +31 -31
- package/src/sap/ui/model/base/ManagedObjectModel.js +11 -1
- 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/AnnotationParser.js +23 -18
- package/src/sap/ui/model/odata/ODataAnnotations.js +1 -1
- package/src/sap/ui/model/odata/ODataListBinding.js +1 -0
- package/src/sap/ui/model/odata/ODataMessageParser.js +1 -1
- package/src/sap/ui/model/odata/ODataMetaModel.js +52 -40
- package/src/sap/ui/model/odata/ODataMetadata.js +3 -3
- package/src/sap/ui/model/odata/ODataModel.js +6 -6
- package/src/sap/ui/model/odata/ODataTreeBindingFlat.js +1 -1
- package/src/sap/ui/model/odata/ODataUtils.js +126 -0
- package/src/sap/ui/model/odata/_AnnotationHelperBasics.js +30 -27
- 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 +7 -2
- 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/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 +3 -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 +7 -2
- package/src/sap/ui/model/odata/type/UnitMixin.js +20 -7
- package/src/sap/ui/model/odata/v2/Context.js +165 -0
- package/src/sap/ui/model/odata/v2/ODataAnnotations.js +1 -1
- package/src/sap/ui/model/odata/v2/ODataContextBinding.js +19 -5
- package/src/sap/ui/model/odata/v2/ODataListBinding.js +20 -79
- package/src/sap/ui/model/odata/v2/ODataModel.js +75 -53
- package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +55 -41
- package/src/sap/ui/model/odata/v4/Context.js +48 -15
- package/src/sap/ui/model/odata/v4/ODataBinding.js +89 -9
- package/src/sap/ui/model/odata/v4/ODataContextBinding.js +87 -21
- package/src/sap/ui/model/odata/v4/ODataListBinding.js +72 -50
- package/src/sap/ui/model/odata/v4/ODataMetaModel.js +8 -8
- package/src/sap/ui/model/odata/v4/ODataModel.js +109 -171
- package/src/sap/ui/model/odata/v4/ODataParentBinding.js +34 -67
- package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +18 -9
- package/src/sap/ui/model/odata/v4/ODataUtils.js +1 -1
- package/src/sap/ui/model/odata/v4/SubmitMode.js +3 -3
- package/src/sap/ui/model/odata/v4/_AnnotationHelperExpression.js +1 -1
- package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +17 -16
- package/src/sap/ui/model/odata/v4/lib/_AggregationHelper.js +5 -1
- package/src/sap/ui/model/odata/v4/lib/_Cache.js +86 -117
- package/src/sap/ui/model/odata/v4/lib/{_GrandTotalHelper.js → _ConcatHelper.js} +34 -27
- package/src/sap/ui/model/odata/v4/lib/_GroupLock.js +2 -2
- package/src/sap/ui/model/odata/v4/lib/_Helper.js +122 -7
- package/src/sap/ui/model/odata/v4/lib/_MetadataConverter.js +4 -4
- package/src/sap/ui/model/odata/v4/lib/_MetadataRequestor.js +2 -2
- package/src/sap/ui/model/odata/v4/lib/_MinMaxHelper.js +25 -74
- package/src/sap/ui/model/odata/v4/lib/_Requestor.js +49 -12
- package/src/sap/ui/model/odata/v4/lib/_V2Requestor.js +7 -7
- 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 +3 -3
- package/src/sap/ui/model/type/DateTime.js +1 -1
- package/src/sap/ui/model/type/DateTimeInterval.js +3 -3
- 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 +3 -3
- 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/Measurement.js +3 -5
- package/src/sap/ui/performance/trace/FESR.js +2 -1
- package/src/sap/ui/performance/trace/Interaction.js +11 -9
- package/src/sap/ui/qunit/QUnitUtils.js +1 -1
- package/src/sap/ui/qunit/qunit-coverage.js +1 -0
- package/src/sap/ui/qunit/qunit-junit.js +1 -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/security/FrameOptions.js +2 -1
- package/src/sap/ui/test/Opa5.js +1 -1
- package/src/sap/ui/test/OpaBuilder.js +1 -0
- package/src/sap/ui/test/TestUtils.js +17 -30
- package/src/sap/ui/test/_BrowserLogCollector.js +1 -0
- package/src/sap/ui/test/actions/Action.js +1 -1
- package/src/sap/ui/test/launchers/componentLauncher.js +2 -1
- package/src/sap/ui/test/opaQunit.js +6 -9
- package/src/sap/ui/test/pipelines/MatcherPipeline.js +1 -1
- package/src/sap/ui/test/selectors/_ControlSelectorGenerator.js +4 -4
- package/src/sap/ui/test/starter/_utils.js +6 -0
- package/src/sap/ui/test/starter/createSuite.js +1 -1
- package/src/sap/ui/thirdparty/IPv6.js +2 -2
- package/src/sap/ui/thirdparty/SecondLevelDomains.js +2 -2
- package/src/sap/ui/thirdparty/URI.js +14 -5
- package/src/sap/ui/thirdparty/URITemplate.js +2 -2
- package/src/sap/ui/thirdparty/caja-html-sanitizer.js +1 -1
- package/src/sap/ui/thirdparty/crossroads.js +10 -2
- package/src/sap/ui/util/Mobile.js +10 -7
- package/src/sap/ui/util/Storage.js +1 -1
- package/src/ui5loader-autoconfig.js +1 -1
- package/src/ui5loader.js +24 -6
- package/src/sap/ui/model/odata/v4/.eslintrc +0 -6
|
@@ -98,12 +98,12 @@ sap.ui.define([
|
|
|
98
98
|
* wins). The same annotations are overwritten; if an annotation file contains other elements
|
|
99
99
|
* (like a type definition) that are already merged, an error is thrown.
|
|
100
100
|
* Supported since 1.41.0
|
|
101
|
-
* @param {boolean} [mParameters.autoExpandSelect
|
|
101
|
+
* @param {boolean} [mParameters.autoExpandSelect]
|
|
102
102
|
* Whether the OData model's bindings automatically generate $select and $expand system query
|
|
103
103
|
* options from the binding hierarchy. Note: Dynamic changes to the binding hierarchy are not
|
|
104
104
|
* supported. This parameter is supported since 1.47.0, and since 1.75.0 it also enables
|
|
105
105
|
* property paths containing navigation properties in <code>$select</code>.
|
|
106
|
-
* @param {boolean} [mParameters.earlyRequests
|
|
106
|
+
* @param {boolean} [mParameters.earlyRequests]
|
|
107
107
|
* Whether the following is requested at the earliest convenience:
|
|
108
108
|
* <ul>
|
|
109
109
|
* <li> root $metadata document and annotation files;
|
|
@@ -208,7 +208,7 @@ sap.ui.define([
|
|
|
208
208
|
* @extends sap.ui.model.Model
|
|
209
209
|
* @public
|
|
210
210
|
* @since 1.37.0
|
|
211
|
-
* @version 1.
|
|
211
|
+
* @version 1.93.2
|
|
212
212
|
*/
|
|
213
213
|
var ODataModel = Model.extend("sap.ui.model.odata.v4.ODataModel",
|
|
214
214
|
/** @lends sap.ui.model.odata.v4.ODataModel.prototype */
|
|
@@ -345,7 +345,7 @@ sap.ui.define([
|
|
|
345
345
|
*
|
|
346
346
|
* @param {string} sGroupId
|
|
347
347
|
* The group ID
|
|
348
|
-
* @param {boolean} [bCatch
|
|
348
|
+
* @param {boolean} [bCatch]
|
|
349
349
|
* Whether the returned promise always resolves and never rejects
|
|
350
350
|
* @returns {sap.ui.base.SyncPromise}
|
|
351
351
|
* A promise on the outcome of the HTTP request resolving with <code>undefined</code>; it is
|
|
@@ -421,7 +421,7 @@ sap.ui.define([
|
|
|
421
421
|
*
|
|
422
422
|
* @param {function} fnPrerenderingTask
|
|
423
423
|
* A function that is called before the rendering
|
|
424
|
-
* @param {boolean} [bFirst
|
|
424
|
+
* @param {boolean} [bFirst]
|
|
425
425
|
* Whether the task should become the first one, not the last one
|
|
426
426
|
* @private
|
|
427
427
|
*/
|
|
@@ -446,7 +446,7 @@ sap.ui.define([
|
|
|
446
446
|
// runs after all setTimeout(0) tasks scheduled from within the current task, even those
|
|
447
447
|
// that were scheduled afterwards. A simple setTimeout(n) with n > 0 is not sufficient
|
|
448
448
|
// because this doesn't help if the current task runs very long.
|
|
449
|
-
iTimeoutId = setTimeout(function() {
|
|
449
|
+
iTimeoutId = setTimeout(function () {
|
|
450
450
|
iTimeoutId = setTimeout(fnRunTasks, 0);
|
|
451
451
|
}, 0);
|
|
452
452
|
}
|
|
@@ -812,9 +812,9 @@ sap.ui.define([
|
|
|
812
812
|
*
|
|
813
813
|
* @param {object} [mParameters={}]
|
|
814
814
|
* Map of binding parameters
|
|
815
|
-
* @param {boolean} [bSystemQueryOptionsAllowed
|
|
815
|
+
* @param {boolean} [bSystemQueryOptionsAllowed]
|
|
816
816
|
* Whether system query options are allowed
|
|
817
|
-
* @param {boolean} [bSapAllowed
|
|
817
|
+
* @param {boolean} [bSapAllowed]
|
|
818
818
|
* Whether custom query options starting with "sap-" are allowed (Note: "sap-valid-" is always
|
|
819
819
|
* allowed)
|
|
820
820
|
* @throws {Error}
|
|
@@ -958,7 +958,7 @@ sap.ui.define([
|
|
|
958
958
|
if (sHeaderName === "x-csrf-token") {
|
|
959
959
|
sKey = "X-CSRF-Token";
|
|
960
960
|
}
|
|
961
|
-
mHeadersCopy[sHeaderName] = {key : sKey, value: sHeaderValue};
|
|
961
|
+
mHeadersCopy[sHeaderName] = {key : sKey, value : sHeaderValue};
|
|
962
962
|
}
|
|
963
963
|
}
|
|
964
964
|
this.oRequestor.checkForOpenRequests();
|
|
@@ -1132,6 +1132,83 @@ sap.ui.define([
|
|
|
1132
1132
|
return new BaseContext(this, sResolvedPath);
|
|
1133
1133
|
};
|
|
1134
1134
|
|
|
1135
|
+
/**
|
|
1136
|
+
* Creates a {@link sap.ui.core.message.Message} from a given "raw" message object. For a
|
|
1137
|
+
* bound message, targets are resolved if they are not yet resolved. A message is called a bound
|
|
1138
|
+
* message if is has a target, even if it is empty.
|
|
1139
|
+
*
|
|
1140
|
+
* @param {object} oRawMessage
|
|
1141
|
+
* The raw message
|
|
1142
|
+
* @param {string} [oRawMessage.code]
|
|
1143
|
+
* The error code
|
|
1144
|
+
* @param {string} [oRawMessage.longtextUrl]
|
|
1145
|
+
* The message longtext URL; can be relative to the given <code>sResourcePath</code>
|
|
1146
|
+
* @param {string} [oRawMessage.message]
|
|
1147
|
+
* The message text
|
|
1148
|
+
* @param {number} [oRawMessage.numericSeverity]
|
|
1149
|
+
* The numeric message severity
|
|
1150
|
+
* @param {string} [oRawMessage.target]
|
|
1151
|
+
* The message target; can be relative to the <code>sResourcePath</code> plus
|
|
1152
|
+
* <code>sCachePath</code>
|
|
1153
|
+
* @param {string[]} [oRawMessage.additionalTargets]
|
|
1154
|
+
* Array of additional targets with the same meaning as <code>target</code>
|
|
1155
|
+
* @param {boolean} [oRawMessage.technical]
|
|
1156
|
+
* Whether the message is reported as <code>technical</code>
|
|
1157
|
+
* @param {boolean} [oRawMessage.transition]
|
|
1158
|
+
* Whether the message is a transition message and not a state message. Unbound messages
|
|
1159
|
+
* cannot be state messages
|
|
1160
|
+
* @param {object} [oRawMessage.@$ui5.error]
|
|
1161
|
+
* The original error instance
|
|
1162
|
+
* @param {object} [oRawMessage.@$ui5.originalMessage]
|
|
1163
|
+
* The original message object which is used to create the technical details
|
|
1164
|
+
* @param {string} [sResourcePath]
|
|
1165
|
+
* The resource path of the cache that saw the messages; used to resolve the targets and
|
|
1166
|
+
* the longtext URL
|
|
1167
|
+
* @param {string} [sCachePath]
|
|
1168
|
+
* The cache-relative path to the entity; used to resolve the targets
|
|
1169
|
+
* @returns {sap.ui.core.message.Message}
|
|
1170
|
+
* The created UI5 message object
|
|
1171
|
+
*
|
|
1172
|
+
* @private
|
|
1173
|
+
*/
|
|
1174
|
+
ODataModel.prototype.createUI5Message = function (oRawMessage, sResourcePath, sCachePath) {
|
|
1175
|
+
var bIsBound = typeof oRawMessage.target === "string",
|
|
1176
|
+
sMessageLongtextUrl = oRawMessage.longtextUrl,
|
|
1177
|
+
aTargets;
|
|
1178
|
+
|
|
1179
|
+
function resolveTarget(sTarget) {
|
|
1180
|
+
return sTarget[0] === "/"
|
|
1181
|
+
? sTarget
|
|
1182
|
+
: _Helper.buildPath("/" + sResourcePath, sCachePath, sTarget);
|
|
1183
|
+
}
|
|
1184
|
+
|
|
1185
|
+
if (bIsBound) {
|
|
1186
|
+
aTargets = [resolveTarget(oRawMessage.target)];
|
|
1187
|
+
if (oRawMessage.additionalTargets) {
|
|
1188
|
+
oRawMessage.additionalTargets.forEach(function (sTarget) {
|
|
1189
|
+
aTargets.push(resolveTarget(sTarget));
|
|
1190
|
+
});
|
|
1191
|
+
}
|
|
1192
|
+
}
|
|
1193
|
+
if (sMessageLongtextUrl && sResourcePath) {
|
|
1194
|
+
sMessageLongtextUrl = _Helper.makeAbsolute(sMessageLongtextUrl,
|
|
1195
|
+
this.sServiceUrl + sResourcePath);
|
|
1196
|
+
}
|
|
1197
|
+
|
|
1198
|
+
return new Message({
|
|
1199
|
+
code : oRawMessage.code,
|
|
1200
|
+
descriptionUrl : sMessageLongtextUrl || undefined,
|
|
1201
|
+
message : oRawMessage.message,
|
|
1202
|
+
persistent : bIsBound ? oRawMessage.transition : true,
|
|
1203
|
+
processor : this,
|
|
1204
|
+
// Note: "" instead of undefined makes filtering easier (agreement with FE!)
|
|
1205
|
+
target : bIsBound ? aTargets : "",
|
|
1206
|
+
technical : oRawMessage.technical,
|
|
1207
|
+
technicalDetails : _Helper.createTechnicalDetails(oRawMessage),
|
|
1208
|
+
type : aMessageTypes[oRawMessage.numericSeverity] || MessageType.None
|
|
1209
|
+
});
|
|
1210
|
+
};
|
|
1211
|
+
|
|
1135
1212
|
/**
|
|
1136
1213
|
* Destroys this model, its requestor and its meta model.
|
|
1137
1214
|
*
|
|
@@ -1586,37 +1663,14 @@ sap.ui.define([
|
|
|
1586
1663
|
* the new messages.
|
|
1587
1664
|
*
|
|
1588
1665
|
* @param {string} sResourcePath
|
|
1589
|
-
* The resource path of the cache that saw the messages
|
|
1666
|
+
* The resource path of the cache that saw the messages; used to resolve the targets and
|
|
1667
|
+
* the longtext URL
|
|
1590
1668
|
* @param {object} mPathToODataMessages
|
|
1591
|
-
* Maps a cache-relative path with key predicates or indices to an array of messages
|
|
1592
|
-
*
|
|
1593
|
-
* _Helper.createTechnicalDetails). Currently the "technicalDetails" only contain an attribute
|
|
1594
|
-
* named "originalMessage" that contains the message that is received from the back end.
|
|
1595
|
-
* {string} code
|
|
1596
|
-
* The error code
|
|
1597
|
-
* {string} [longtextUrl]
|
|
1598
|
-
* The absolute URL for the message's long text
|
|
1599
|
-
* {string} message
|
|
1600
|
-
* The message text
|
|
1601
|
-
* {number} numericSeverity
|
|
1602
|
-
* The numeric message severity (1 for "success", 2 for "info", 3 for "warning" and 4 for
|
|
1603
|
-
* "error")
|
|
1604
|
-
* {string} target
|
|
1605
|
-
* The target for the message; if relative the reported target path is a concatenation of
|
|
1606
|
-
* the resource path, the cache-relative path and this property
|
|
1607
|
-
* {string[]} [additionalTargets]
|
|
1608
|
-
* Array of additional targets with the same meaning as <code>target</code>
|
|
1609
|
-
* {boolean} [technical]
|
|
1610
|
-
* Whether the message is reported as <code>technical</code> (supplied by #reportError)
|
|
1611
|
-
* {boolean} [transition]
|
|
1612
|
-
* Whether the message is reported as <code>persistent=true</code> and therefore needs to be
|
|
1613
|
-
* managed by the application
|
|
1614
|
-
* {object} [@$ui5.originalMessage]
|
|
1615
|
-
* The original message object supplied by #reportError. In case this is supplied it is used
|
|
1616
|
-
* in _Helper.createTechnicalDetails to create the "originalMessage" property
|
|
1669
|
+
* Maps a cache-relative path with key predicates or indices to an array of messages suitable
|
|
1670
|
+
* for {@link #createUI5Message}
|
|
1617
1671
|
* @param {string[]} [aCachePaths]
|
|
1618
|
-
*
|
|
1619
|
-
*
|
|
1672
|
+
* An array of cache-relative paths of the entities for which non-persistent messages have to
|
|
1673
|
+
* be removed; if the array is not given, all entities are affected
|
|
1620
1674
|
*
|
|
1621
1675
|
* @private
|
|
1622
1676
|
*/
|
|
@@ -1629,32 +1683,7 @@ sap.ui.define([
|
|
|
1629
1683
|
|
|
1630
1684
|
Object.keys(mPathToODataMessages).forEach(function (sCachePath) {
|
|
1631
1685
|
mPathToODataMessages[sCachePath].forEach(function (oRawMessage) {
|
|
1632
|
-
|
|
1633
|
-
|
|
1634
|
-
function resolveTarget(sTarget) {
|
|
1635
|
-
return sTarget[0] === "/"
|
|
1636
|
-
? sTarget
|
|
1637
|
-
: _Helper.buildPath(sDataBindingPath, sCachePath, sTarget);
|
|
1638
|
-
}
|
|
1639
|
-
|
|
1640
|
-
aTargets = [resolveTarget(oRawMessage.target)];
|
|
1641
|
-
if (oRawMessage.additionalTargets) {
|
|
1642
|
-
oRawMessage.additionalTargets.forEach(function (sTarget) {
|
|
1643
|
-
aTargets.push(resolveTarget(sTarget));
|
|
1644
|
-
});
|
|
1645
|
-
}
|
|
1646
|
-
|
|
1647
|
-
aNewMessages.push(new Message({
|
|
1648
|
-
code : oRawMessage.code,
|
|
1649
|
-
descriptionUrl : oRawMessage.longtextUrl || undefined,
|
|
1650
|
-
message : oRawMessage.message,
|
|
1651
|
-
persistent : oRawMessage.transition,
|
|
1652
|
-
processor : that,
|
|
1653
|
-
target : aTargets,
|
|
1654
|
-
technical : oRawMessage.technical,
|
|
1655
|
-
technicalDetails : _Helper.createTechnicalDetails(oRawMessage),
|
|
1656
|
-
type : aMessageTypes[oRawMessage.numericSeverity] || MessageType.None
|
|
1657
|
-
}));
|
|
1686
|
+
aNewMessages.push(that.createUI5Message(oRawMessage, sResourcePath, sCachePath));
|
|
1658
1687
|
});
|
|
1659
1688
|
});
|
|
1660
1689
|
(aCachePaths || [""]).forEach(function (sCachePath) {
|
|
@@ -1708,57 +1737,8 @@ sap.ui.define([
|
|
|
1708
1737
|
* @private
|
|
1709
1738
|
*/
|
|
1710
1739
|
ODataModel.prototype.reportError = function (sLogMessage, sReportingClassName, oError) {
|
|
1711
|
-
var
|
|
1712
|
-
|
|
1713
|
-
sResourcePath,
|
|
1714
|
-
aUnboundMessages = [];
|
|
1715
|
-
|
|
1716
|
-
/*
|
|
1717
|
-
* Clones the message object taking all relevant properties, converts the annotations for
|
|
1718
|
-
* numeric severity and longtext to the corresponding properties and adds it to one of the
|
|
1719
|
-
* arrays to be reported later.
|
|
1720
|
-
* @param {object} oMessage The message
|
|
1721
|
-
* @param {number} [iNumericSeverity] The numeric severity
|
|
1722
|
-
* @param {boolean} [bTechnical] Whether the message is reported as technical
|
|
1723
|
-
*/
|
|
1724
|
-
function addMessage(oMessage, iNumericSeverity, bTechnical) {
|
|
1725
|
-
var oReportMessage = {
|
|
1726
|
-
additionalTargets : _Helper.getAdditionalTargets(oMessage),
|
|
1727
|
-
code : oMessage.code,
|
|
1728
|
-
message : oMessage.message,
|
|
1729
|
-
numericSeverity : iNumericSeverity,
|
|
1730
|
-
technical : bTechnical || oMessage.technical,
|
|
1731
|
-
// use "@$ui5." prefix to overcome name collisions with instance annotations
|
|
1732
|
-
// returned from back end.
|
|
1733
|
-
"@$ui5.error" : oError,
|
|
1734
|
-
"@$ui5.originalMessage" : oMessage
|
|
1735
|
-
};
|
|
1736
|
-
|
|
1737
|
-
Object.keys(oMessage).forEach(function (sProperty) {
|
|
1738
|
-
if (sProperty[0] === '@') {
|
|
1739
|
-
if (sProperty.endsWith(".numericSeverity")) {
|
|
1740
|
-
oReportMessage.numericSeverity = oMessage[sProperty];
|
|
1741
|
-
} else if (sProperty.endsWith(".longtextUrl") && oError.requestUrl
|
|
1742
|
-
&& oMessage[sProperty]) {
|
|
1743
|
-
oReportMessage.longtextUrl =
|
|
1744
|
-
_Helper.makeAbsolute(oMessage[sProperty], oError.requestUrl);
|
|
1745
|
-
}
|
|
1746
|
-
}
|
|
1747
|
-
});
|
|
1748
|
-
|
|
1749
|
-
if (typeof oMessage.target !== "string") {
|
|
1750
|
-
aUnboundMessages.push(oReportMessage);
|
|
1751
|
-
} else if (oMessage.target[0] === "$" || !sResourcePath) {
|
|
1752
|
-
// target for the bound message is a system query option or cannot be resolved
|
|
1753
|
-
// -> report as unbound message
|
|
1754
|
-
oReportMessage.message = oMessage.target + ": " + oReportMessage.message;
|
|
1755
|
-
aUnboundMessages.push(oReportMessage);
|
|
1756
|
-
} else {
|
|
1757
|
-
oReportMessage.target = oMessage.target;
|
|
1758
|
-
oReportMessage.transition = true;
|
|
1759
|
-
aBoundMessages.push(oReportMessage);
|
|
1760
|
-
}
|
|
1761
|
-
}
|
|
1740
|
+
var sDetails,
|
|
1741
|
+
oRawMessages;
|
|
1762
1742
|
|
|
1763
1743
|
if (oError.canceled === "noDebugLog") {
|
|
1764
1744
|
return;
|
|
@@ -1779,24 +1759,16 @@ sap.ui.define([
|
|
|
1779
1759
|
}
|
|
1780
1760
|
oError.$reported = true;
|
|
1781
1761
|
|
|
1782
|
-
|
|
1783
|
-
|
|
1784
|
-
|
|
1785
|
-
|
|
1786
|
-
|
|
1787
|
-
|
|
1788
|
-
|
|
1789
|
-
addMessage(oMessage);
|
|
1790
|
-
});
|
|
1791
|
-
}
|
|
1792
|
-
if (aBoundMessages.length) {
|
|
1793
|
-
this.reportBoundMessages(sResourcePath, {"" : aBoundMessages}, []);
|
|
1794
|
-
}
|
|
1795
|
-
} else {
|
|
1796
|
-
addMessage(oError, 4 /* Error */, true);
|
|
1762
|
+
oRawMessages = _Helper.extractMessages(oError);
|
|
1763
|
+
if (oRawMessages.bound.length) {
|
|
1764
|
+
this.reportBoundMessages(
|
|
1765
|
+
oError.resourcePath.split("?")[0],
|
|
1766
|
+
{"" : oRawMessages.bound},
|
|
1767
|
+
[]
|
|
1768
|
+
);
|
|
1797
1769
|
}
|
|
1798
1770
|
// The longtextUrls are already absolute, so sResourcePath is not needed here
|
|
1799
|
-
this.reportUnboundMessages(
|
|
1771
|
+
this.reportUnboundMessages(oRawMessages.unbound);
|
|
1800
1772
|
};
|
|
1801
1773
|
|
|
1802
1774
|
/**
|
|
@@ -1804,27 +1776,10 @@ sap.ui.define([
|
|
|
1804
1776
|
* the new messages.
|
|
1805
1777
|
*
|
|
1806
1778
|
* @param {object[]} aMessages
|
|
1807
|
-
*
|
|
1808
|
-
* the following properties. Each message is passed to the "technicalDetails" (see
|
|
1809
|
-
* _Helper.createTechnicalDetails). Currently the "technicalDetails" only contain an attribute
|
|
1810
|
-
* named "originalMessage" that contains the message that is received from the back end.
|
|
1811
|
-
* {string} code
|
|
1812
|
-
* The error code
|
|
1813
|
-
* {string} [longtextUrl]
|
|
1814
|
-
* The URL for the message's long text; it must be absolute if <code>sResourcePath</code> is
|
|
1815
|
-
* missing
|
|
1816
|
-
* {string} message
|
|
1817
|
-
* The message text
|
|
1818
|
-
* {number} numericSeverity
|
|
1819
|
-
* The numeric message severity (1 for "success", 2 for "info", 3 for "warning" and 4 for
|
|
1820
|
-
* "error")
|
|
1821
|
-
* {boolean} [technical]
|
|
1822
|
-
* Whether the message is reported as <code>technical</code> (supplied by #reportError)
|
|
1823
|
-
* {object} [@$ui5.originalMessage]
|
|
1824
|
-
* The original message object supplied by #reportError. In case this is supplied it is used
|
|
1825
|
-
* in _Helper.createTechnicalDetails to create the "originalMessage" property
|
|
1779
|
+
* An array of messages suitable for {@link #createUI5Message}
|
|
1826
1780
|
* @param {string} [sResourcePath]
|
|
1827
|
-
* The resource path of the
|
|
1781
|
+
* The resource path of the cache that saw the messages; used to resolve the longtext URL
|
|
1782
|
+
*
|
|
1828
1783
|
* @private
|
|
1829
1784
|
*/
|
|
1830
1785
|
ODataModel.prototype.reportUnboundMessages = function (aMessages, sResourcePath) {
|
|
@@ -1833,24 +1788,7 @@ sap.ui.define([
|
|
|
1833
1788
|
if (aMessages && aMessages.length) {
|
|
1834
1789
|
this.fireMessageChange({
|
|
1835
1790
|
newMessages : aMessages.map(function (oMessage) {
|
|
1836
|
-
|
|
1837
|
-
|
|
1838
|
-
if (sMessageLongTextUrl && sResourcePath) {
|
|
1839
|
-
sMessageLongTextUrl = _Helper.makeAbsolute(sMessageLongTextUrl,
|
|
1840
|
-
that.sServiceUrl + sResourcePath);
|
|
1841
|
-
}
|
|
1842
|
-
|
|
1843
|
-
return new Message({
|
|
1844
|
-
code : oMessage.code,
|
|
1845
|
-
descriptionUrl : sMessageLongTextUrl,
|
|
1846
|
-
message : oMessage.message,
|
|
1847
|
-
persistent : true,
|
|
1848
|
-
processor : that,
|
|
1849
|
-
target : "",
|
|
1850
|
-
technical : oMessage.technical,
|
|
1851
|
-
technicalDetails : _Helper.createTechnicalDetails(oMessage),
|
|
1852
|
-
type : aMessageTypes[oMessage.numericSeverity] || MessageType.None
|
|
1853
|
-
});
|
|
1791
|
+
return that.createUI5Message(oMessage, sResourcePath);
|
|
1854
1792
|
})
|
|
1855
1793
|
});
|
|
1856
1794
|
}
|
|
@@ -1902,7 +1840,7 @@ sap.ui.define([
|
|
|
1902
1840
|
|
|
1903
1841
|
return SyncPromise.all(
|
|
1904
1842
|
this.aAllBindings.filter(function (oBinding) {
|
|
1905
|
-
return oBinding.isRoot()
|
|
1843
|
+
return oBinding.isRoot();
|
|
1906
1844
|
}).map(function (oRootBinding) {
|
|
1907
1845
|
return oRootBinding.requestAbsoluteSideEffects(sGroupId, aAbsolutePaths);
|
|
1908
1846
|
})
|
|
@@ -2076,4 +2014,4 @@ sap.ui.define([
|
|
|
2076
2014
|
};
|
|
2077
2015
|
|
|
2078
2016
|
return ODataModel;
|
|
2079
|
-
});
|
|
2017
|
+
});
|
|
@@ -203,10 +203,9 @@ sap.ui.define([
|
|
|
203
203
|
* @param {object} mQueryOptions0 The query options to merge into the aggregated query
|
|
204
204
|
* options
|
|
205
205
|
* @param {string} sMetaPath The meta path for the current $expand
|
|
206
|
-
* @param {boolean} [bInsideExpand
|
|
207
|
-
*
|
|
208
|
-
*
|
|
209
|
-
* a $expand that has not been aggregated yet
|
|
206
|
+
* @param {boolean} [bInsideExpand] Whether the given query options are inside a $expand
|
|
207
|
+
* @param {boolean} [bAdd] Whether to add the given query options because they are in a
|
|
208
|
+
* $expand that has not been aggregated yet
|
|
210
209
|
* @returns {boolean} Whether the query options can be fulfilled by this binding
|
|
211
210
|
*/
|
|
212
211
|
function merge(mAggregatedQueryOptions, mQueryOptions0, sMetaPath, bInsideExpand, bAdd) {
|
|
@@ -308,7 +307,9 @@ sap.ui.define([
|
|
|
308
307
|
* If there are pending changes or if <code>mParameters</code> is missing, contains
|
|
309
308
|
* binding-specific or unsupported parameters, contains unsupported values, or contains the
|
|
310
309
|
* property "$expand" or "$select" when the model is in auto-$expand/$select mode.
|
|
311
|
-
* Since 1.90.0, binding-specific parameters are ignored if they are unchanged.
|
|
310
|
+
* Since 1.90.0, binding-specific parameters are ignored if they are unchanged. Since 1.93.0,
|
|
311
|
+
* string values for "$expand" and "$select" are ignored if they are unchanged; pending
|
|
312
|
+
* changes are ignored if all parameters are unchanged.
|
|
312
313
|
*
|
|
313
314
|
* @public
|
|
314
315
|
* @since 1.45.0
|
|
@@ -319,14 +320,6 @@ sap.ui.define([
|
|
|
319
320
|
sKey,
|
|
320
321
|
that = this;
|
|
321
322
|
|
|
322
|
-
function checkExpandSelect(sName) {
|
|
323
|
-
if (that.oModel.bAutoExpandSelect && sName in mParameters) {
|
|
324
|
-
throw new Error("Cannot change $expand or $select parameter in "
|
|
325
|
-
+ "auto-$expand/$select mode: "
|
|
326
|
-
+ sName + "=" + JSON.stringify(mParameters[sName]));
|
|
327
|
-
}
|
|
328
|
-
}
|
|
329
|
-
|
|
330
323
|
/*
|
|
331
324
|
* Updates <code>sChangeReason</code> depending on the given custom or system query option
|
|
332
325
|
* name:
|
|
@@ -338,8 +331,16 @@ sap.ui.define([
|
|
|
338
331
|
*
|
|
339
332
|
* @param {string} sName
|
|
340
333
|
* The name of a custom or system query option
|
|
334
|
+
* @throws {Error}
|
|
335
|
+
* If name is "$expand" or "$select" when the model is in auto-$expand/$select mode
|
|
341
336
|
*/
|
|
342
337
|
function updateChangeReason(sName) {
|
|
338
|
+
if (that.oModel.bAutoExpandSelect && (sName === "$expand" || sName === "$select")) {
|
|
339
|
+
throw new Error("Cannot change " + sName
|
|
340
|
+
+ " parameter in auto-$expand/$select mode: "
|
|
341
|
+
+ JSON.stringify(mParameters[sName])
|
|
342
|
+
+ " !== " + JSON.stringify(mBindingParameters[sName]));
|
|
343
|
+
}
|
|
343
344
|
if (sName === "$filter" || sName === "$search") {
|
|
344
345
|
sChangeReason = ChangeReason.Filter;
|
|
345
346
|
} else if (sName === "$orderby" && sChangeReason !== ChangeReason.Filter) {
|
|
@@ -352,11 +353,6 @@ sap.ui.define([
|
|
|
352
353
|
if (!mParameters) {
|
|
353
354
|
throw new Error("Missing map of binding parameters");
|
|
354
355
|
}
|
|
355
|
-
checkExpandSelect("$expand");
|
|
356
|
-
checkExpandSelect("$select");
|
|
357
|
-
if (this.hasPendingChanges()) {
|
|
358
|
-
throw new Error("Cannot change parameters due to pending changes");
|
|
359
|
-
}
|
|
360
356
|
|
|
361
357
|
for (sKey in mParameters) {
|
|
362
358
|
if (sKey.startsWith("$$")) {
|
|
@@ -379,6 +375,9 @@ sap.ui.define([
|
|
|
379
375
|
}
|
|
380
376
|
|
|
381
377
|
if (sChangeReason) {
|
|
378
|
+
if (this.hasPendingChanges()) {
|
|
379
|
+
throw new Error("Cannot change parameters due to pending changes");
|
|
380
|
+
}
|
|
382
381
|
this.applyParameters(mBindingParameters, sChangeReason);
|
|
383
382
|
}
|
|
384
383
|
};
|
|
@@ -631,8 +630,8 @@ sap.ui.define([
|
|
|
631
630
|
* <code>sChildPath</code> accordingly.
|
|
632
631
|
* @param {string} sChildPath
|
|
633
632
|
* The child binding's binding path relative to <code>oContext</code>
|
|
634
|
-
* @param {sap.ui.base.SyncPromise}
|
|
635
|
-
*
|
|
633
|
+
* @param {object|sap.ui.base.SyncPromise} vChildQueryOptions
|
|
634
|
+
* The child binding's (aggregated) query options or a promise resolving with them
|
|
636
635
|
* @returns {sap.ui.base.SyncPromise}
|
|
637
636
|
* A promise resolved with the reduced path for the child binding if the child binding can use
|
|
638
637
|
* this binding's or an ancestor binding's cache; <code>undefined</code> otherwise.
|
|
@@ -641,7 +640,7 @@ sap.ui.define([
|
|
|
641
640
|
* @see sap.ui.model.odata.v4.ODataMetaModel#getReducedPath
|
|
642
641
|
*/
|
|
643
642
|
ODataParentBinding.prototype.fetchIfChildCanUseCache = function (oContext, sChildPath,
|
|
644
|
-
|
|
643
|
+
vChildQueryOptions) {
|
|
645
644
|
// getBaseForPathReduction must be called early, because the (virtual) parent context may be
|
|
646
645
|
// lost again when the path is needed
|
|
647
646
|
var sBaseForPathReduction = this.getBaseForPathReduction(),
|
|
@@ -701,7 +700,7 @@ sap.ui.define([
|
|
|
701
700
|
// is loaded so that synchronous access in wrapChildQueryOptions via getObject is
|
|
702
701
|
// possible
|
|
703
702
|
fetchPropertyAndType(),
|
|
704
|
-
|
|
703
|
+
vChildQueryOptions
|
|
705
704
|
];
|
|
706
705
|
oCanUseCachePromise = SyncPromise.all(aPromises).then(function (aResult) {
|
|
707
706
|
var sChildMetaPath,
|
|
@@ -730,7 +729,7 @@ sap.ui.define([
|
|
|
730
729
|
that.bHasPathReductionToParent = true;
|
|
731
730
|
return that.oContext.getBinding().fetchIfChildCanUseCache(that.oContext,
|
|
732
731
|
_Helper.getRelativePath(sResolvedChildPath, that.oContext.getPath()),
|
|
733
|
-
|
|
732
|
+
vChildQueryOptions);
|
|
734
733
|
}
|
|
735
734
|
|
|
736
735
|
if (bDependsOnOperation) {
|
|
@@ -1107,42 +1106,6 @@ sap.ui.define([
|
|
|
1107
1106
|
this.setResumeChangeReason(ChangeReason.Refresh);
|
|
1108
1107
|
};
|
|
1109
1108
|
|
|
1110
|
-
/**
|
|
1111
|
-
* Requests side effects for the given absolute paths.
|
|
1112
|
-
*
|
|
1113
|
-
* @param {string} sGroupId
|
|
1114
|
-
* The effective group ID
|
|
1115
|
-
* @param {string[]} aAbsolutePaths
|
|
1116
|
-
* The absolute paths to request side effects for
|
|
1117
|
-
* @returns {sap.ui.base.SyncPromise}
|
|
1118
|
-
* A promise resolving without a defined result, or rejecting with an error if loading of side
|
|
1119
|
-
* effects fails, or <code>undefined</code> if there is nothing to do
|
|
1120
|
-
*
|
|
1121
|
-
* @private
|
|
1122
|
-
*/
|
|
1123
|
-
ODataParentBinding.prototype.requestAbsoluteSideEffects = function (sGroupId, aAbsolutePaths) {
|
|
1124
|
-
var aPaths = [],
|
|
1125
|
-
sMetaPath = _Helper.getMetaPath(this.getResolvedPath()),
|
|
1126
|
-
bRefresh;
|
|
1127
|
-
|
|
1128
|
-
bRefresh = aAbsolutePaths.some(function (sAbsolutePath) {
|
|
1129
|
-
var sRelativePath = _Helper.getRelativePath(sAbsolutePath, sMetaPath);
|
|
1130
|
-
|
|
1131
|
-
if (sRelativePath !== undefined) {
|
|
1132
|
-
aPaths.push(sRelativePath);
|
|
1133
|
-
}
|
|
1134
|
-
|
|
1135
|
-
return _Helper.hasPathPrefix(sMetaPath, sAbsolutePath);
|
|
1136
|
-
});
|
|
1137
|
-
|
|
1138
|
-
if (bRefresh) {
|
|
1139
|
-
return this.refreshInternal("", sGroupId);
|
|
1140
|
-
} else if (aPaths.length) {
|
|
1141
|
-
return this.requestSideEffects(sGroupId, aPaths);
|
|
1142
|
-
}
|
|
1143
|
-
// return undefined;
|
|
1144
|
-
};
|
|
1145
|
-
|
|
1146
1109
|
/**
|
|
1147
1110
|
* Loads side effects for the given context of this binding.
|
|
1148
1111
|
*
|
|
@@ -1211,20 +1174,24 @@ sap.ui.define([
|
|
|
1211
1174
|
*/
|
|
1212
1175
|
|
|
1213
1176
|
/**
|
|
1214
|
-
*
|
|
1215
|
-
* given
|
|
1177
|
+
* If there is a refresh promise created by {@link #createRefreshPromise}, it is resolved with
|
|
1178
|
+
* the given promise and cleared. Does not reject the refresh promise with a canceled error.
|
|
1216
1179
|
*
|
|
1217
|
-
* @param {
|
|
1218
|
-
* @returns {
|
|
1180
|
+
* @param {Promise} oPromise - The promise to resolve with
|
|
1181
|
+
* @returns {Promise} oPromise for chaining
|
|
1219
1182
|
*
|
|
1220
1183
|
* @private
|
|
1221
1184
|
*/
|
|
1222
|
-
ODataParentBinding.prototype.resolveRefreshPromise = function (
|
|
1185
|
+
ODataParentBinding.prototype.resolveRefreshPromise = function (oPromise) {
|
|
1223
1186
|
if (this.oRefreshPromise) {
|
|
1224
|
-
this.oRefreshPromise.$resolve(
|
|
1187
|
+
this.oRefreshPromise.$resolve(oPromise.catch(function (oError) {
|
|
1188
|
+
if (!oError.canceled) {
|
|
1189
|
+
throw oError;
|
|
1190
|
+
}
|
|
1191
|
+
}));
|
|
1225
1192
|
this.oRefreshPromise = null;
|
|
1226
1193
|
}
|
|
1227
|
-
return
|
|
1194
|
+
return oPromise;
|
|
1228
1195
|
};
|
|
1229
1196
|
|
|
1230
1197
|
/**
|
|
@@ -1467,4 +1434,4 @@ sap.ui.define([
|
|
|
1467
1434
|
});
|
|
1468
1435
|
|
|
1469
1436
|
return asODataParentBinding;
|
|
1470
|
-
}, /* bExport= */ false);
|
|
1437
|
+
}, /* bExport= */ false);
|
|
@@ -57,7 +57,7 @@ sap.ui.define([
|
|
|
57
57
|
* @mixes sap.ui.model.odata.v4.ODataBinding
|
|
58
58
|
* @public
|
|
59
59
|
* @since 1.37.0
|
|
60
|
-
* @version 1.
|
|
60
|
+
* @version 1.93.2
|
|
61
61
|
* @borrows sap.ui.model.odata.v4.ODataBinding#getGroupId as #getGroupId
|
|
62
62
|
* @borrows sap.ui.model.odata.v4.ODataBinding#getRootBinding as #getRootBinding
|
|
63
63
|
* @borrows sap.ui.model.odata.v4.ODataBinding#hasPendingChanges as #hasPendingChanges
|
|
@@ -226,8 +226,9 @@ sap.ui.define([
|
|
|
226
226
|
* The new value obtained from the cache, see {@link #onChange}
|
|
227
227
|
* @returns {sap.ui.base.SyncPromise}
|
|
228
228
|
* A promise resolving without a defined result when the check is finished, or rejecting in
|
|
229
|
-
* case of an error (e.g. thrown by the change event handler of a control)
|
|
230
|
-
*
|
|
229
|
+
* case of an error (e.g. thrown by the change event handler of a control). If the cache is no
|
|
230
|
+
* longer the active cache when the response arrives, that response is silently ignored and
|
|
231
|
+
* the value remains unchanged.
|
|
231
232
|
*
|
|
232
233
|
* @private
|
|
233
234
|
* @see sap.ui.model.PropertyBinding#checkDataState
|
|
@@ -496,15 +497,20 @@ sap.ui.define([
|
|
|
496
497
|
* @see sap.ui.model.odata.v4.ODataBinding#refreshInternal
|
|
497
498
|
*/
|
|
498
499
|
ODataPropertyBinding.prototype.refreshInternal = function (_sResourcePathPrefix, sGroupId,
|
|
499
|
-
bCheckUpdate
|
|
500
|
+
bCheckUpdate, _bKeepCacheOnError) {
|
|
501
|
+
var that = this;
|
|
502
|
+
|
|
500
503
|
if (this.isRootBindingSuspended()) {
|
|
501
504
|
this.sResumeChangeReason = ChangeReason.Refresh;
|
|
502
505
|
return SyncPromise.resolve();
|
|
503
506
|
}
|
|
504
|
-
this.
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
507
|
+
return this.oCachePromise.then(function () {
|
|
508
|
+
that.fetchCache(that.oContext, false, /*bKeepQueryOptions*/true);
|
|
509
|
+
|
|
510
|
+
if (bCheckUpdate) {
|
|
511
|
+
return that.checkUpdateInternal(undefined, ChangeReason.Refresh, sGroupId);
|
|
512
|
+
}
|
|
513
|
+
});
|
|
508
514
|
};
|
|
509
515
|
|
|
510
516
|
/**
|
|
@@ -528,7 +534,7 @@ sap.ui.define([
|
|
|
528
534
|
/**
|
|
529
535
|
* Requests information to retrieve a value list for this property.
|
|
530
536
|
*
|
|
531
|
-
* @param {boolean} [bAutoExpandSelect
|
|
537
|
+
* @param {boolean} [bAutoExpandSelect]
|
|
532
538
|
* The value of the parameter <code>autoExpandSelect</code> for value list models created by
|
|
533
539
|
* this method. If the value list model is this binding's model, this flag has no effect.
|
|
534
540
|
* Supported since 1.68.0
|
|
@@ -634,6 +640,8 @@ sap.ui.define([
|
|
|
634
640
|
*
|
|
635
641
|
* @param {sap.ui.model.Context} [oContext]
|
|
636
642
|
* The context which is required as base for a relative path
|
|
643
|
+
* @throws {Error}
|
|
644
|
+
* If the binding's root binding is suspended
|
|
637
645
|
*
|
|
638
646
|
* @private
|
|
639
647
|
*/
|
|
@@ -641,6 +649,7 @@ sap.ui.define([
|
|
|
641
649
|
ODataPropertyBinding.prototype.setContext = function (oContext) {
|
|
642
650
|
if (this.oContext !== oContext) {
|
|
643
651
|
if (this.bRelative) {
|
|
652
|
+
this.checkSuspended(true);
|
|
644
653
|
this.deregisterChange();
|
|
645
654
|
}
|
|
646
655
|
this.oContext = oContext;
|