@openui5/sap.ui.core 1.93.3 → 1.96.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 +13 -2
- package/.reuse/dep5 +6 -11
- package/THIRDPARTY.txt +10 -16
- package/package.json +1 -1
- package/src/jquery.sap.global.js +5 -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 +3 -3
- package/src/jquery.sap.stubs.js +2 -1
- package/src/jquery.sap.trace.js +2 -1
- package/src/sap/base/i18n/ResourceBundle.js +6 -2
- package/src/sap/base/strings/whitespaceReplacer.js +52 -0
- 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 +37 -42
- package/src/sap/ui/Global.js +8 -7
- package/src/sap/ui/base/DataType.js +14 -8
- package/src/sap/ui/base/Event.js +1 -1
- package/src/sap/ui/base/EventProvider.js +1 -1
- package/src/sap/ui/base/ExpressionParser.js +9 -6
- package/src/sap/ui/base/Interface.js +3 -49
- package/src/sap/ui/base/ManagedObject.js +12 -7
- 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 +49 -4
- package/src/sap/ui/base/ObjectPool.js +1 -1
- package/src/sap/ui/base/syncXHRFix.js +2 -1
- package/src/sap/ui/core/.library +5 -5
- package/src/sap/ui/core/AppCacheBuster.js +4 -4
- package/src/sap/ui/core/BusyIndicator.js +1 -11
- package/src/sap/ui/core/Component.js +300 -140
- package/src/sap/ui/core/ComponentContainer.js +24 -8
- package/src/sap/ui/core/ComponentMetadata.js +14 -3
- package/src/sap/ui/core/ComponentSupport.js +1 -1
- package/src/sap/ui/core/Configuration.js +67 -31
- package/src/sap/ui/core/Control.js +1 -1
- package/src/sap/ui/core/Core.js +103 -25
- package/src/sap/ui/core/CustomData.js +1 -1
- package/src/sap/ui/core/CustomizingConfiguration.js +35 -260
- package/src/sap/ui/core/DeclarativeSupport.js +3 -2
- package/src/sap/ui/core/Element.js +1 -1
- package/src/sap/ui/core/ElementMetadata.js +4 -2
- package/src/sap/ui/core/EnabledPropagator.js +91 -73
- package/src/sap/ui/core/EventBus.js +1 -1
- package/src/sap/ui/core/ExtensionPoint.js +7 -14
- package/src/sap/ui/core/Fragment.js +30 -32
- 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 +7 -8
- package/src/sap/ui/core/IconPool.js +26 -1097
- package/src/sap/ui/core/IconRenderer.js +6 -6
- 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 +26 -4
- package/src/sap/ui/core/LocaleData.js +1 -1
- package/src/sap/ui/core/Manifest.js +4 -61
- package/src/sap/ui/core/Message.js +1 -1
- package/src/sap/ui/core/Patcher.js +27 -3
- package/src/sap/ui/core/Placeholder.js +28 -15
- package/src/sap/ui/core/RenderManager.js +36 -6
- package/src/sap/ui/core/Renderer.js +13 -3
- package/src/sap/ui/core/ResizeHandler.js +1 -1
- package/src/sap/ui/core/ScrollBar.js +2 -2
- package/src/sap/ui/core/SeparatorItem.js +1 -1
- package/src/sap/ui/core/ShortcutHintsMixin.js +14 -7
- 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 +42 -16
- 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 +2 -2
- package/src/sap/ui/core/XMLCompositeMetadata.js +2 -2
- package/src/sap/ui/core/XMLTemplateProcessor.js +116 -41
- package/src/sap/ui/core/_IconRegistry.js +1148 -0
- package/src/sap/ui/core/delegate/ItemNavigation.js +1 -1
- package/src/sap/ui/core/delegate/ScrollEnablement.js +6 -3
- 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 +2 -2
- package/src/sap/ui/core/dnd/DropInfo.js +1 -1
- package/src/sap/ui/core/format/NumberFormat.js +16 -1
- package/src/sap/ui/core/hyphenation/Hyphenation.js +73 -221
- package/src/sap/ui/core/hyphenation/HyphenationTestingWords.js +11 -10
- package/src/sap/ui/core/library.js +3 -3
- package/src/sap/ui/core/message/ControlMessageProcessor.js +1 -1
- package/src/sap/ui/core/message/Message.js +1 -1
- package/src/sap/ui/core/message/MessageManager.js +13 -15
- 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_de.properties +1 -1
- package/src/sap/ui/core/messagebundle_fr.properties +1 -1
- package/src/sap/ui/core/messagebundle_it.properties +1 -1
- package/src/sap/ui/core/messagebundle_pl.properties +1 -1
- package/src/sap/ui/core/messagebundle_th.properties +2 -2
- package/src/sap/ui/core/mvc/Controller.js +38 -19
- package/src/sap/ui/core/mvc/ControllerExtensionProvider.js +30 -32
- package/src/sap/ui/core/mvc/ControllerMetadata.js +18 -18
- package/src/sap/ui/core/mvc/HTMLView.js +2 -2
- package/src/sap/ui/core/mvc/JSONView.js +2 -2
- package/src/sap/ui/core/mvc/JSView.js +2 -2
- package/src/sap/ui/core/mvc/TemplateView.js +2 -2
- package/src/sap/ui/core/mvc/View.js +58 -85
- package/src/sap/ui/core/mvc/XMLView.js +2 -2
- package/src/sap/ui/core/mvc/XMLViewRenderer.js +17 -20
- 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/History.js +10 -2
- package/src/sap/ui/core/routing/Router.js +8 -1
- package/src/sap/ui/core/routing/Target.js +13 -0
- package/src/sap/ui/core/routing/Targets.js +13 -2
- package/src/sap/ui/core/routing/async/Route.js +1 -1
- package/src/sap/ui/core/routing/async/Target.js +353 -259
- 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/BootSupportTool.js +11 -0
- package/src/sap/ui/core/support/InteractionTree.css +4 -0
- 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/ViewInfo.css +599 -0
- package/src/sap/ui/core/support/controls/InteractionTree.js +352 -222
- package/src/sap/ui/core/support/controls/ObjectViewer.js +3 -41
- package/src/sap/ui/core/support/controls/TimelineOverview.js +49 -24
- package/src/sap/ui/core/support/controls/TreeViewer.js +12 -58
- package/src/sap/ui/core/support/plugins/ControlTree.js +59 -68
- package/src/sap/ui/core/support/plugins/Debugging.js +9 -11
- package/src/sap/ui/core/support/plugins/Interaction.js +2 -2
- package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -1
- package/src/sap/ui/core/support/plugins/Performance.js +147 -75
- package/src/sap/ui/core/support/plugins/Selector.js +19 -24
- package/src/sap/ui/core/support/plugins/TechInfo.js +5 -5
- package/src/sap/ui/core/support/plugins/Trace.js +95 -32
- package/src/sap/ui/core/support/plugins/ViewInfo.js +9 -73
- package/src/sap/ui/core/support/support.css +109 -14
- package/src/sap/ui/core/support/support.html +6 -2
- package/src/sap/ui/core/support/techinfo/TechnicalInfo.fragment.xml +1 -0
- package/src/sap/ui/core/support/techinfo/TechnicalInfo.js +149 -72
- package/src/sap/ui/core/themes/base/Icon.less +9 -0
- package/src/sap/ui/core/themes/base/fonts/SAP-icons.woff2 +0 -0
- package/src/sap/ui/core/theming/Parameters.js +6 -4
- 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 +10 -28
- package/src/sap/ui/core/tmpl/TemplateControl.js +4 -4
- package/src/sap/ui/core/tmpl/_parsePath.js +35 -0
- package/src/sap/ui/core/util/AsyncHintsHelper.js +1 -1
- package/src/sap/ui/core/util/DraftEnabledMockServer.js +9 -4
- 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 -5
- package/src/sap/ui/core/util/MockServerAnnotationsHandler.js +3 -2
- package/src/sap/ui/core/util/PasteHelper.js +1 -1
- package/src/sap/ui/core/util/XMLPreprocessor.js +11 -12
- package/src/sap/ui/core/util/reflection/BaseTreeModifier.js +136 -63
- package/src/sap/ui/core/util/reflection/JsControlTreeModifier.js +170 -153
- package/src/sap/ui/core/util/reflection/XmlTreeModifier.js +424 -293
- package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +1 -1
- package/src/sap/ui/core/util/serializer/Serializer.js +1 -1
- package/src/sap/ui/core/util/serializer/ViewSerializer.js +1 -1
- package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +1 -1
- package/src/sap/ui/core/util/serializer/delegate/Delegate.js +1 -1
- package/src/sap/ui/core/util/serializer/delegate/HTML.js +1 -1
- package/src/sap/ui/core/util/serializer/delegate/XML.js +1 -1
- package/src/sap/ui/core/ws/ReadyState.js +1 -1
- package/src/sap/ui/core/ws/SapPcpWebSocket.js +1 -1
- package/src/sap/ui/core/ws/WebSocket.js +1 -1
- package/src/sap/ui/debug/ControlTree.js +10 -4
- package/src/sap/ui/debug/DebugEnv.js +3 -4
- package/src/sap/ui/debug/Highlighter.js +8 -2
- package/src/sap/ui/debug/PropertyList.css +55 -0
- package/src/sap/ui/debug/PropertyList.js +111 -182
- package/src/sap/ui/model/Binding.js +174 -118
- package/src/sap/ui/model/ClientContextBinding.js +1 -1
- package/src/sap/ui/model/ClientListBinding.js +1 -3
- package/src/sap/ui/model/ClientModel.js +4 -4
- package/src/sap/ui/model/ClientPropertyBinding.js +4 -2
- package/src/sap/ui/model/ClientTreeBinding.js +15 -9
- package/src/sap/ui/model/ClientTreeBindingAdapter.js +28 -23
- package/src/sap/ui/model/CompositeBinding.js +98 -77
- package/src/sap/ui/model/CompositeDataState.js +2 -2
- package/src/sap/ui/model/CompositeType.js +2 -2
- package/src/sap/ui/model/Context.js +4 -2
- package/src/sap/ui/model/ContextBinding.js +6 -14
- package/src/sap/ui/model/DataState.js +2 -2
- package/src/sap/ui/model/Filter.js +255 -53
- package/src/sap/ui/model/FilterOperator.js +1 -1
- package/src/sap/ui/model/FilterProcessor.js +27 -17
- package/src/sap/ui/model/FilterType.js +1 -1
- package/src/sap/ui/model/ListBinding.js +180 -117
- package/src/sap/ui/model/MetaModel.js +4 -9
- package/src/sap/ui/model/Model.js +345 -294
- package/src/sap/ui/model/PropertyBinding.js +92 -58
- package/src/sap/ui/model/SelectionModel.js +2 -2
- package/src/sap/ui/model/SimpleType.js +2 -2
- package/src/sap/ui/model/Sorter.js +1 -1
- package/src/sap/ui/model/SorterProcessor.js +1 -1
- package/src/sap/ui/model/StaticBinding.js +1 -1
- package/src/sap/ui/model/TreeAutoExpandMode.js +2 -2
- package/src/sap/ui/model/TreeBinding.js +1 -1
- package/src/sap/ui/model/TreeBindingAdapter.js +251 -100
- package/src/sap/ui/model/TreeBindingCompatibilityAdapter.js +16 -9
- package/src/sap/ui/model/TreeBindingUtils.js +1 -0
- package/src/sap/ui/model/Type.js +1 -1
- package/src/sap/ui/model/analytics/AnalyticalBinding.js +8 -4
- package/src/sap/ui/model/analytics/AnalyticalTreeBindingAdapter.js +1 -1
- package/src/sap/ui/model/analytics/AnalyticalVersionInfo.js +1 -1
- package/src/sap/ui/model/analytics/BatchResponseCollector.js +1 -1
- package/src/sap/ui/model/analytics/ODataModelAdapter.js +1 -1
- package/src/sap/ui/model/analytics/odata4analytics.js +34 -25
- package/src/sap/ui/model/base/ManagedObjectModel.js +4 -0
- package/src/sap/ui/model/json/JSONListBinding.js +8 -5
- package/src/sap/ui/model/json/JSONModel.js +24 -15
- package/src/sap/ui/model/json/JSONPropertyBinding.js +4 -3
- package/src/sap/ui/model/json/JSONTreeBinding.js +1 -1
- package/src/sap/ui/model/message/MessageListBinding.js +6 -3
- package/src/sap/ui/model/message/MessageModel.js +23 -15
- package/src/sap/ui/model/message/MessagePropertyBinding.js +2 -2
- package/src/sap/ui/model/odata/AnnotationHelper.js +1 -1
- package/src/sap/ui/model/odata/AnnotationParser.js +1 -1
- package/src/sap/ui/model/odata/CountMode.js +1 -1
- package/src/sap/ui/model/odata/Filter.js +1 -1
- package/src/sap/ui/model/odata/ODataAnnotations.js +2 -2
- package/src/sap/ui/model/odata/ODataContextBinding.js +1 -1
- package/src/sap/ui/model/odata/ODataListBinding.js +1 -1
- package/src/sap/ui/model/odata/ODataMessageParser.js +2 -2
- package/src/sap/ui/model/odata/ODataMetaModel.js +5 -3
- package/src/sap/ui/model/odata/ODataMetadata.js +2 -2
- package/src/sap/ui/model/odata/ODataModel.js +8 -7
- package/src/sap/ui/model/odata/ODataPropertyBinding.js +1 -1
- package/src/sap/ui/model/odata/ODataTreeBinding.js +65 -33
- package/src/sap/ui/model/odata/ODataTreeBindingAdapter.js +1 -1
- package/src/sap/ui/model/odata/ODataTreeBindingFlat.js +2 -2
- package/src/sap/ui/model/odata/ODataUtils.js +13 -11
- package/src/sap/ui/model/odata/OperationMode.js +1 -1
- package/src/sap/ui/model/odata/_AnnotationHelperExpression.js +1 -1
- package/src/sap/ui/model/odata/type/Boolean.js +1 -1
- package/src/sap/ui/model/odata/type/Byte.js +1 -1
- package/src/sap/ui/model/odata/type/Currency.js +1 -1
- package/src/sap/ui/model/odata/type/Date.js +1 -1
- package/src/sap/ui/model/odata/type/DateTime.js +1 -1
- package/src/sap/ui/model/odata/type/DateTimeBase.js +1 -1
- package/src/sap/ui/model/odata/type/DateTimeOffset.js +1 -1
- package/src/sap/ui/model/odata/type/Decimal.js +1 -1
- package/src/sap/ui/model/odata/type/Double.js +1 -1
- package/src/sap/ui/model/odata/type/Guid.js +1 -1
- package/src/sap/ui/model/odata/type/Int.js +1 -1
- package/src/sap/ui/model/odata/type/Int16.js +1 -1
- package/src/sap/ui/model/odata/type/Int32.js +1 -1
- package/src/sap/ui/model/odata/type/Int64.js +1 -1
- package/src/sap/ui/model/odata/type/ODataType.js +1 -1
- package/src/sap/ui/model/odata/type/Raw.js +1 -1
- package/src/sap/ui/model/odata/type/SByte.js +1 -1
- package/src/sap/ui/model/odata/type/Single.js +1 -1
- package/src/sap/ui/model/odata/type/Stream.js +1 -1
- package/src/sap/ui/model/odata/type/String.js +1 -1
- package/src/sap/ui/model/odata/type/Time.js +1 -1
- package/src/sap/ui/model/odata/type/TimeOfDay.js +1 -1
- package/src/sap/ui/model/odata/type/Unit.js +1 -1
- package/src/sap/ui/model/odata/v2/Context.js +81 -9
- package/src/sap/ui/model/odata/v2/ODataAnnotations.js +3 -3
- package/src/sap/ui/model/odata/v2/ODataContextBinding.js +39 -49
- package/src/sap/ui/model/odata/v2/ODataListBinding.js +236 -73
- package/src/sap/ui/model/odata/v2/ODataModel.js +314 -164
- package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +110 -97
- package/src/sap/ui/model/odata/v2/_CreatedContextsCache.js +129 -0
- package/src/sap/ui/model/odata/v4/Context.js +6 -3
- package/src/sap/ui/model/odata/v4/ODataBinding.js +5 -6
- package/src/sap/ui/model/odata/v4/ODataContextBinding.js +117 -40
- package/src/sap/ui/model/odata/v4/ODataListBinding.js +95 -15
- package/src/sap/ui/model/odata/v4/ODataMetaModel.js +44 -31
- package/src/sap/ui/model/odata/v4/ODataModel.js +86 -78
- package/src/sap/ui/model/odata/v4/ODataParentBinding.js +47 -28
- package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +11 -7
- package/src/sap/ui/model/odata/v4/_AnnotationHelperExpression.js +10 -3
- package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +8 -1
- package/src/sap/ui/model/odata/v4/lib/_Cache.js +24 -16
- package/src/sap/ui/model/odata/v4/lib/_Helper.js +32 -30
- package/src/sap/ui/model/odata/v4/lib/_Requestor.js +52 -17
- package/src/sap/ui/model/odata/v4/lib/_V2Requestor.js +2 -2
- package/src/sap/ui/model/resource/ResourceModel.js +6 -2
- package/src/sap/ui/model/resource/ResourcePropertyBinding.js +1 -1
- package/src/sap/ui/model/type/Boolean.js +2 -2
- package/src/sap/ui/model/type/Currency.js +2 -2
- package/src/sap/ui/model/type/Date.js +9 -3
- package/src/sap/ui/model/type/DateInterval.js +4 -2
- package/src/sap/ui/model/type/DateTime.js +2 -2
- package/src/sap/ui/model/type/DateTimeInterval.js +2 -2
- package/src/sap/ui/model/type/FileSize.js +4 -2
- package/src/sap/ui/model/type/Float.js +4 -2
- package/src/sap/ui/model/type/Integer.js +4 -2
- package/src/sap/ui/model/type/String.js +2 -2
- package/src/sap/ui/model/type/Time.js +2 -2
- package/src/sap/ui/model/type/TimeInterval.js +2 -2
- package/src/sap/ui/model/type/Unit.js +14 -7
- package/src/sap/ui/model/xml/XMLListBinding.js +15 -9
- package/src/sap/ui/model/xml/XMLModel.js +70 -41
- package/src/sap/ui/model/xml/XMLPropertyBinding.js +4 -4
- package/src/sap/ui/model/xml/XMLTreeBinding.js +5 -4
- package/src/sap/ui/performance/trace/Interaction.js +30 -15
- package/src/sap/ui/performance/trace/initTraces.js +1 -1
- package/src/sap/ui/qunit/QUnitUtils.js +3 -2
- package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
- package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +9 -11
- package/src/sap/ui/test/TestUtils.js +11 -4
- package/src/sap/ui/test/actions/Drag.js +6 -2
- package/src/sap/ui/test/actions/Drop.js +6 -2
- package/src/sap/ui/test/actions/EnterText.js +6 -0
- package/src/sap/ui/test/actions/Press.js +6 -0
- package/src/sap/ui/test/actions/Scroll.js +6 -0
- package/src/sap/ui/test/autowaiter/_resourceWaiter.js +4 -4
- package/src/sap/ui/test/launchers/componentLauncher.js +0 -4
- package/src/sap/ui/test/matchers/I18NText.js +29 -11
- package/src/sap/ui/test/opaQunit.js +5 -0
- package/src/sap/ui/thirdparty/crossroads.js +6 -4
- package/src/sap/ui/thirdparty/hyphenopoly/Hyphenopoly.js +1196 -0
- package/src/sap/ui/thirdparty/hyphenopoly/Hyphenopoly_Loader.js +797 -0
- package/src/sap/ui/thirdparty/hyphenopoly/hyphenEngine.asm.js +108 -127
- package/src/sap/ui/thirdparty/hyphenopoly/hyphenEngine.wasm +0 -0
- package/src/sap/ui/thirdparty/hyphenopoly/patterns/bg.hpb +0 -0
- package/src/sap/ui/thirdparty/hyphenopoly/patterns/ca.hpb +0 -0
- package/src/sap/ui/thirdparty/hyphenopoly/patterns/da.hpb +0 -0
- package/src/sap/ui/thirdparty/hyphenopoly/patterns/de.hpb +0 -0
- package/src/sap/ui/thirdparty/hyphenopoly/patterns/el-monoton.hpb +0 -0
- package/src/sap/ui/thirdparty/hyphenopoly/patterns/en-us.hpb +0 -0
- package/src/sap/ui/thirdparty/hyphenopoly/patterns/es.hpb +0 -0
- package/src/sap/ui/thirdparty/hyphenopoly/patterns/et.hpb +0 -0
- package/src/sap/ui/thirdparty/hyphenopoly/patterns/fi.hpb +0 -0
- package/src/sap/ui/thirdparty/hyphenopoly/patterns/fr.hpb +0 -0
- package/src/sap/ui/thirdparty/hyphenopoly/patterns/hi.hpb +0 -0
- package/src/sap/ui/thirdparty/hyphenopoly/patterns/hr.hpb +0 -0
- package/src/sap/ui/thirdparty/hyphenopoly/patterns/hu.hpb +0 -0
- package/src/sap/ui/thirdparty/hyphenopoly/patterns/it.hpb +0 -0
- package/src/sap/ui/thirdparty/hyphenopoly/patterns/lt.hpb +0 -0
- package/src/sap/ui/thirdparty/hyphenopoly/patterns/nb-no.hpb +0 -0
- package/src/sap/ui/thirdparty/hyphenopoly/patterns/nl.hpb +0 -0
- package/src/sap/ui/thirdparty/hyphenopoly/patterns/pt.hpb +0 -0
- package/src/sap/ui/thirdparty/hyphenopoly/patterns/ru.hpb +0 -0
- package/src/sap/ui/thirdparty/hyphenopoly/patterns/sl.hpb +0 -0
- package/src/sap/ui/thirdparty/hyphenopoly/patterns/sv.hpb +0 -0
- package/src/sap/ui/thirdparty/hyphenopoly/patterns/th.hpb +0 -0
- package/src/sap/ui/thirdparty/hyphenopoly/patterns/tr.hpb +0 -0
- package/src/sap/ui/thirdparty/hyphenopoly/patterns/uk.hpb +0 -0
- package/src/sap/ui/thirdparty/jquery.js +9 -1
- package/src/sap/ui/thirdparty/qunit-2.js +1 -1
- package/src/sap/ui/thirdparty/qunit.js +1 -1
- package/src/sap/ui/util/Mobile.js +2 -20
- package/src/sap/ui/util/Storage.js +1 -1
- package/src/sap/ui/util/isCrossOriginURL.js +16 -6
- package/src/sap-ui-core-nojQuery.js +1 -1
- package/src/sap-ui-core.js +1 -1
- package/src/sap-ui-debug.js +3 -17
- package/ui5.yaml +5 -2
- package/src/sap/ui/core/support/plugins/MessageTest.js +0 -96
- package/src/sap/ui/thirdparty/hyphenopoly/hyphenopoly.bundle.js +0 -860
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* (c) Copyright 2009-2021 SAP SE or an SAP affiliate company.
|
|
4
4
|
* Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
|
|
5
5
|
*/
|
|
6
|
-
|
|
6
|
+
/*eslint-disable max-len */
|
|
7
7
|
// Provides the OData model implementation of a tree binding
|
|
8
8
|
sap.ui.define([
|
|
9
9
|
"sap/base/assert",
|
|
@@ -92,7 +92,7 @@ sap.ui.define([
|
|
|
92
92
|
* @extends sap.ui.model.TreeBinding
|
|
93
93
|
* @hideconstructor
|
|
94
94
|
* @public
|
|
95
|
-
* @version 1.
|
|
95
|
+
* @version 1.96.2
|
|
96
96
|
*/
|
|
97
97
|
var ODataTreeBinding = TreeBinding.extend("sap.ui.model.odata.v2.ODataTreeBinding", /** @lends sap.ui.model.odata.v2.ODataTreeBinding.prototype */ {
|
|
98
98
|
|
|
@@ -1503,23 +1503,29 @@ sap.ui.define([
|
|
|
1503
1503
|
/**
|
|
1504
1504
|
* Applies the given filters to the ODataTreeBinding.
|
|
1505
1505
|
*
|
|
1506
|
-
* Please note that filters of type <code>FilterType.Control</code> are not supported for
|
|
1507
|
-
*
|
|
1508
|
-
* of type <code>Application</code>
|
|
1509
|
-
*
|
|
1506
|
+
* Please note that filters of type <code>FilterType.Control</code> are not supported for
|
|
1507
|
+
* <code>OperationMode.Server</code>,
|
|
1508
|
+
* here only filters of type <code>FilterType.Application</code> are allowed. Filters given via
|
|
1509
|
+
* {@link sap.ui.model.odata.v2.ODataModel#bindTree} are always
|
|
1510
|
+
* of type <code>Application</code> and will be sent with every back-end request.
|
|
1511
|
+
* For more information, see {@link sap.ui.model.odata.v2.ODataModel#bindTree}.
|
|
1510
1512
|
*
|
|
1511
|
-
* Since 1.34.0, complete client-side filtering is supported for
|
|
1512
|
-
* <code>OperationMode.
|
|
1513
|
+
* Since 1.34.0, complete client-side filtering is supported for
|
|
1514
|
+
* <code>OperationMode.Client</code> and also in <code>OperationMode.Auto</code> if the
|
|
1515
|
+
* back-end count is lower than the threshold.
|
|
1513
1516
|
* In this case, all types of filters will be applied on the client.
|
|
1514
|
-
* See also: {@link sap.ui.model.odata.OperationMode.Auto}
|
|
1515
|
-
*
|
|
1516
|
-
* For the <code>OperationMode.Client</code> and <code>OperationMode.Auto</code>, you may also
|
|
1517
|
-
*
|
|
1518
|
-
* <code>Application</code> will always be applied
|
|
1519
|
-
*
|
|
1520
|
-
*
|
|
1521
|
-
*
|
|
1522
|
-
* @param {sap.ui.model.
|
|
1517
|
+
* See also: {@link sap.ui.model.odata.OperationMode.Auto} and {@link sap.ui.model.FilterType}.
|
|
1518
|
+
*
|
|
1519
|
+
* For the <code>OperationMode.Client</code> and <code>OperationMode.Auto</code>, you may also
|
|
1520
|
+
* specify the <code>useServersideApplicationFilters</code> binding parameter when creating an
|
|
1521
|
+
* instance. If it is set, the filters of type <code>Application</code> will always be applied
|
|
1522
|
+
* on the back end and trigger an OData request.
|
|
1523
|
+
* For more information, see {@link sap.ui.model.odata.v2.ODataModel#bindTree}.
|
|
1524
|
+
*
|
|
1525
|
+
* @param {sap.ui.model.Filter[]|sap.ui.model.Filter} aFilters
|
|
1526
|
+
* Filter or array of filters to apply
|
|
1527
|
+
* @param {sap.ui.model.FilterType} sFilterType
|
|
1528
|
+
* Type of the filter which should be adjusted. If it is not given,
|
|
1523
1529
|
* the type <code>FilterType.Control</code> is assumed
|
|
1524
1530
|
* @return {this} Returns <code>this</code> to facilitate method chaining
|
|
1525
1531
|
* @see sap.ui.model.TreeBinding.prototype.filter
|
|
@@ -1955,23 +1961,20 @@ sap.ui.define([
|
|
|
1955
1961
|
};
|
|
1956
1962
|
|
|
1957
1963
|
/**
|
|
1958
|
-
*
|
|
1959
|
-
*
|
|
1960
|
-
* metadata is loaded.
|
|
1964
|
+
* Initializes the binding. Fires a refresh event once initialization is completed in case the
|
|
1965
|
+
* binding is resolved, or immediately in case it is unresolved.
|
|
1961
1966
|
*
|
|
1962
1967
|
* @returns {sap.ui.model.odata.v2.ODataTreeBinding} The binding instance
|
|
1968
|
+
*
|
|
1963
1969
|
* @public
|
|
1964
1970
|
*/
|
|
1965
|
-
ODataTreeBinding.prototype.initialize = function() {
|
|
1971
|
+
ODataTreeBinding.prototype.initialize = function () {
|
|
1966
1972
|
if (this.oModel.oMetadata && this.oModel.oMetadata.isLoaded() && this.bInitial) {
|
|
1967
|
-
|
|
1968
|
-
|
|
1969
|
-
|
|
1970
|
-
|
|
1971
|
-
this._initialize();
|
|
1973
|
+
if (this.isResolved()) {
|
|
1974
|
+
this._initialize(this._fireRefresh.bind(this, {reason : ChangeReason.Refresh}));
|
|
1975
|
+
} else {
|
|
1976
|
+
this._fireRefresh({reason : ChangeReason.Refresh});
|
|
1972
1977
|
}
|
|
1973
|
-
|
|
1974
|
-
this._fireRefresh({reason: ChangeReason.Refresh});
|
|
1975
1978
|
}
|
|
1976
1979
|
return this;
|
|
1977
1980
|
};
|
|
@@ -1979,17 +1982,20 @@ sap.ui.define([
|
|
|
1979
1982
|
/**
|
|
1980
1983
|
* Private initialize.
|
|
1981
1984
|
* Triggers metadata checks for annotations and applies adapters if necessary.
|
|
1985
|
+
*
|
|
1986
|
+
* @param {function} fnFireEvent
|
|
1987
|
+
* A function which fires an event once the adapter has been applied
|
|
1988
|
+
* @returns {sap.ui.model.odata.v2.ODataTreeBinding}
|
|
1989
|
+
* The binding instance
|
|
1990
|
+
*
|
|
1982
1991
|
* @private
|
|
1983
1992
|
*/
|
|
1984
|
-
ODataTreeBinding.prototype._initialize = function () {
|
|
1993
|
+
ODataTreeBinding.prototype._initialize = function (fnFireEvent) {
|
|
1985
1994
|
this.bInitial = false;
|
|
1986
1995
|
this.bHasTreeAnnotations = this._hasTreeAnnotations();
|
|
1987
1996
|
this.oEntityType = this._getEntityType();
|
|
1988
|
-
|
|
1989
|
-
// build up the $select, based on the given select-properties and the known/necessary annotated properties
|
|
1990
1997
|
this._processSelectParameters();
|
|
1991
|
-
|
|
1992
|
-
this._applyAdapter();
|
|
1998
|
+
this._applyAdapter(fnFireEvent);
|
|
1993
1999
|
|
|
1994
2000
|
return this;
|
|
1995
2001
|
};
|
|
@@ -1998,9 +2004,10 @@ sap.ui.define([
|
|
|
1998
2004
|
* Sets the binding context.
|
|
1999
2005
|
*
|
|
2000
2006
|
* @param {sap.ui.model.Context} [oContext] The new binding context
|
|
2007
|
+
*
|
|
2001
2008
|
* @private
|
|
2002
2009
|
*/
|
|
2003
|
-
ODataTreeBinding.prototype.setContext = function(oContext) {
|
|
2010
|
+
ODataTreeBinding.prototype.setContext = function (oContext) {
|
|
2004
2011
|
if (oContext && oContext.isPreliminary() && !this.bUsePreliminaryContext) {
|
|
2005
2012
|
return;
|
|
2006
2013
|
}
|
|
@@ -2013,21 +2020,17 @@ sap.ui.define([
|
|
|
2013
2020
|
|
|
2014
2021
|
if (Context.hasChanged(this.oContext, oContext)) {
|
|
2015
2022
|
this.oContext = oContext;
|
|
2016
|
-
|
|
2017
2023
|
if (!this.isRelative()) {
|
|
2018
2024
|
return;
|
|
2019
2025
|
}
|
|
2020
2026
|
|
|
2021
2027
|
if (this.getResolvedPath()) {
|
|
2022
2028
|
this.resetData();
|
|
2023
|
-
this._initialize(
|
|
2024
|
-
|
|
2025
|
-
|
|
2026
|
-
|
|
2027
|
-
|
|
2028
|
-
this.resetData();
|
|
2029
|
-
this._fireChange({ reason: ChangeReason.Context });
|
|
2030
|
-
}
|
|
2029
|
+
this._initialize(this._fireChange.bind(this, {reason : ChangeReason.Context}));
|
|
2030
|
+
} else if (!isEmptyObject(this.oAllKeys) || !isEmptyObject(this.oKeys)
|
|
2031
|
+
|| !isEmptyObject(this._aNodes)) { // binding is now unresolved, but has data
|
|
2032
|
+
this.resetData();
|
|
2033
|
+
this._fireChange({reason : ChangeReason.Context});
|
|
2031
2034
|
}
|
|
2032
2035
|
}
|
|
2033
2036
|
};
|
|
@@ -2078,57 +2081,68 @@ sap.ui.define([
|
|
|
2078
2081
|
};
|
|
2079
2082
|
|
|
2080
2083
|
/**
|
|
2081
|
-
* Applies a TreeBindingAdapter, depending on the metadata.
|
|
2082
|
-
*
|
|
2083
|
-
*
|
|
2084
|
+
* Applies a TreeBindingAdapter, depending on the metadata. Either a hierarchical paging adapter
|
|
2085
|
+
* (nav-props & annotations) or a flat paging adapter (magnitude) is applied.
|
|
2086
|
+
*
|
|
2087
|
+
* @param {function} fnFireEvent A function which is called after the adapter has been applied
|
|
2084
2088
|
* @private
|
|
2085
2089
|
*/
|
|
2086
|
-
ODataTreeBinding.prototype._applyAdapter = function () {
|
|
2087
|
-
var
|
|
2088
|
-
|
|
2089
|
-
|
|
2090
|
+
ODataTreeBinding.prototype._applyAdapter = function (fnFireEvent) {
|
|
2091
|
+
var sAbsolutePath, oEntityType, i, j, sKeyProperty, sName,
|
|
2092
|
+
sAdapterModuleName = "sap/ui/model/odata/ODataTreeBindingAdapter",
|
|
2093
|
+
sMagnitudeAnnotation = "hierarchy-node-descendant-count-for",
|
|
2094
|
+
sPreorderRankAnnotation = "hierarchy-preorder-rank-for",
|
|
2095
|
+
sSiblingRankAnnotation = "hierarchy-sibling-rank-for",
|
|
2096
|
+
that = this;
|
|
2090
2097
|
|
|
2091
|
-
if (this.bHasTreeAnnotations) {
|
|
2098
|
+
if (!this.bHasTreeAnnotations && !this.oNavigationPaths) {
|
|
2099
|
+
Log.error("Neither hierarchy annotations, "
|
|
2100
|
+
+ "nor navigation properties are specified to build the tree.", this);
|
|
2101
|
+
return;
|
|
2102
|
+
}
|
|
2092
2103
|
|
|
2093
|
-
|
|
2104
|
+
if (this.bHasTreeAnnotations) {
|
|
2105
|
+
sAbsolutePath = this.getResolvedPath();
|
|
2094
2106
|
// remove url parameters if any to get correct path for entity type resolving
|
|
2095
2107
|
if (sAbsolutePath.indexOf("?") !== -1) {
|
|
2096
2108
|
sAbsolutePath = sAbsolutePath.split("?")[0];
|
|
2097
2109
|
}
|
|
2098
|
-
|
|
2099
|
-
var that = this;
|
|
2100
|
-
|
|
2110
|
+
oEntityType = this.oModel.oMetadata._getEntityTypeByPath(sAbsolutePath);
|
|
2101
2111
|
//Check if all required properties are available
|
|
2102
2112
|
each(oEntityType.property, function(iIndex, oProperty) {
|
|
2103
2113
|
if (!oProperty.extensions) {
|
|
2104
2114
|
return true;
|
|
2105
2115
|
}
|
|
2106
2116
|
each(oProperty.extensions, function(iIndex, oExtension) {
|
|
2107
|
-
|
|
2117
|
+
sName = oExtension.name;
|
|
2108
2118
|
if (oExtension.namespace === that.oModel.oMetadata.mNamespaces["sap"] &&
|
|
2109
|
-
(sName == sMagnitudeAnnotation || sName == sSiblingRankAnnotation
|
|
2119
|
+
(sName == sMagnitudeAnnotation || sName == sSiblingRankAnnotation
|
|
2120
|
+
|| sName == sPreorderRankAnnotation)) {
|
|
2110
2121
|
that.oTreeProperties[sName] = oProperty.name;
|
|
2111
2122
|
}
|
|
2112
2123
|
});
|
|
2113
2124
|
});
|
|
2114
|
-
|
|
2115
2125
|
//perform magnitude annotation check
|
|
2116
|
-
this.oTreeProperties[sMagnitudeAnnotation] = this.oTreeProperties[sMagnitudeAnnotation]
|
|
2117
|
-
(this.mParameters.treeAnnotationProperties
|
|
2118
|
-
|
|
2119
|
-
// apply
|
|
2120
|
-
// exception: the binding runs in operation-mode "Client"
|
|
2121
|
-
//
|
|
2122
|
-
if (this.oTreeProperties[sMagnitudeAnnotation]
|
|
2123
|
-
|
|
2126
|
+
this.oTreeProperties[sMagnitudeAnnotation] = this.oTreeProperties[sMagnitudeAnnotation]
|
|
2127
|
+
|| (this.mParameters.treeAnnotationProperties
|
|
2128
|
+
&& this.mParameters.treeAnnotationProperties.hierarchyNodeDescendantCountFor);
|
|
2129
|
+
// apply flat auto-expand mixin if the necessary annotations were found (in Server-Mode)
|
|
2130
|
+
// exception: the binding runs in operation-mode "Client". In this case, there is no
|
|
2131
|
+
// need for the advanced auto expand, since everything is loaded anyway.
|
|
2132
|
+
if (this.oTreeProperties[sMagnitudeAnnotation]
|
|
2133
|
+
&& this.sOperationMode == OperationMode.Server) {
|
|
2124
2134
|
// Add Flat-specific tree properties
|
|
2125
|
-
this.oTreeProperties[sSiblingRankAnnotation] =
|
|
2126
|
-
|
|
2127
|
-
|
|
2128
|
-
|
|
2129
|
-
|
|
2135
|
+
this.oTreeProperties[sSiblingRankAnnotation] =
|
|
2136
|
+
this.oTreeProperties[sSiblingRankAnnotation]
|
|
2137
|
+
|| (this.mParameters.treeAnnotationProperties
|
|
2138
|
+
&& this.mParameters.treeAnnotationProperties.hierarchySiblingRankFor);
|
|
2139
|
+
this.oTreeProperties[sPreorderRankAnnotation] =
|
|
2140
|
+
this.oTreeProperties[sPreorderRankAnnotation]
|
|
2141
|
+
|| (this.mParameters.treeAnnotationProperties
|
|
2142
|
+
&& this.mParameters.treeAnnotationProperties.hierarchyPreorderRankFor);
|
|
2130
2143
|
if (this.mParameters.restoreTreeStateAfterChange) {
|
|
2131
|
-
if (this.oTreeProperties[sSiblingRankAnnotation]
|
|
2144
|
+
if (this.oTreeProperties[sSiblingRankAnnotation]
|
|
2145
|
+
&& this.oTreeProperties[sPreorderRankAnnotation]) {
|
|
2132
2146
|
this._bRestoreTreeStateAfterChange = true;
|
|
2133
2147
|
// Collect entity type key properties
|
|
2134
2148
|
this._aTreeKeyProperties = [];
|
|
@@ -2136,21 +2150,23 @@ sap.ui.define([
|
|
|
2136
2150
|
this._aTreeKeyProperties.push(oEntityType.key.propertyRef[i].name);
|
|
2137
2151
|
}
|
|
2138
2152
|
} else {
|
|
2139
|
-
Log.warning("Tree state restoration not possible: Missing annotation
|
|
2153
|
+
Log.warning("Tree state restoration not possible: Missing annotation "
|
|
2154
|
+
+ "\"hierarchy-sibling-rank-for\" and/or "
|
|
2155
|
+
+ "\"hierarchy-preorder-rank-for\"");
|
|
2140
2156
|
this._bRestoreTreeStateAfterChange = false;
|
|
2141
2157
|
}
|
|
2142
2158
|
} else {
|
|
2143
2159
|
this._bRestoreTreeStateAfterChange = false;
|
|
2144
2160
|
}
|
|
2145
|
-
|
|
2146
|
-
|
|
2147
|
-
// make sure the magnitude is added to the $select if it was not added by the application anyway
|
|
2161
|
+
// make sure magnitude is added to $select if not added by the application anyway
|
|
2148
2162
|
if (this.mParameters && this.mParameters.select) {
|
|
2149
|
-
if (this.mParameters.select.indexOf(this.oTreeProperties[sMagnitudeAnnotation])
|
|
2163
|
+
if (this.mParameters.select.indexOf(this.oTreeProperties[sMagnitudeAnnotation])
|
|
2164
|
+
=== -1) {
|
|
2150
2165
|
this.mParameters.select += "," + this.oTreeProperties[sMagnitudeAnnotation];
|
|
2151
2166
|
}
|
|
2152
2167
|
if (this._bRestoreTreeStateAfterChange) {
|
|
2153
|
-
// Retrieve all key properties to allow filtering on them during tree state
|
|
2168
|
+
// Retrieve all key properties to allow filtering on them during tree state
|
|
2169
|
+
// restoration (PreorderPosition requests)
|
|
2154
2170
|
for (j = this._aTreeKeyProperties.length - 1; j >= 0; j--) {
|
|
2155
2171
|
sKeyProperty = this._aTreeKeyProperties[j];
|
|
2156
2172
|
if (this.mParameters.select.indexOf(sKeyProperty) === -1) {
|
|
@@ -2160,25 +2176,19 @@ sap.ui.define([
|
|
|
2160
2176
|
}
|
|
2161
2177
|
this.sCustomParams = this.oModel.createCustomParams(this.mParameters);
|
|
2162
2178
|
}
|
|
2163
|
-
|
|
2164
|
-
|
|
2165
|
-
ODataTreeBindingFlat.apply(this);
|
|
2166
|
-
} else {
|
|
2167
|
-
// apply hierarchical paging adapter
|
|
2168
|
-
var ODataTreeBindingAdapter = sap.ui.requireSync("sap/ui/model/odata/ODataTreeBindingAdapter");
|
|
2169
|
-
ODataTreeBindingAdapter.apply(this);
|
|
2170
|
-
}
|
|
2171
|
-
} else if (this.oNavigationPaths) {
|
|
2172
|
-
// apply hierarchical paging adapter
|
|
2173
|
-
var ODataTreeBindingAdapter = sap.ui.requireSync("sap/ui/model/odata/ODataTreeBindingAdapter");
|
|
2174
|
-
ODataTreeBindingAdapter.apply(this);
|
|
2175
|
-
} else {
|
|
2176
|
-
Log.error("Neither hierarchy annotations, nor navigation properties are specified to build the tree.", this);
|
|
2179
|
+
sAdapterModuleName = "sap/ui/model/odata/ODataTreeBindingFlat";
|
|
2180
|
+
}
|
|
2177
2181
|
}
|
|
2182
|
+
sap.ui.require([sAdapterModuleName], function (oAdapterModule) {
|
|
2183
|
+
oAdapterModule.apply(that);
|
|
2184
|
+
fnFireEvent();
|
|
2185
|
+
});
|
|
2178
2186
|
};
|
|
2179
2187
|
|
|
2180
2188
|
/**
|
|
2181
|
-
* Internal function to
|
|
2189
|
+
* Internal function to build up the $select, based on the select from the binding parameters
|
|
2190
|
+
* and the properties being the target of the tree annotations.
|
|
2191
|
+
*
|
|
2182
2192
|
* @private
|
|
2183
2193
|
*/
|
|
2184
2194
|
ODataTreeBinding.prototype._processSelectParameters = function () {
|
|
@@ -2313,10 +2323,13 @@ sap.ui.define([
|
|
|
2313
2323
|
};
|
|
2314
2324
|
|
|
2315
2325
|
/**
|
|
2316
|
-
* Sets the rootLevel
|
|
2317
|
-
* The root level is the level of the topmost tree nodes
|
|
2318
|
-
*
|
|
2319
|
-
*
|
|
2326
|
+
* Sets the <code>rootLevel</code>.
|
|
2327
|
+
* The root level is the level of the topmost tree nodes that will be used as an entry point
|
|
2328
|
+
* for OData services.
|
|
2329
|
+
* This is only possible (and necessary) for OData services implementing the hierarchy
|
|
2330
|
+
* annotation specification,
|
|
2331
|
+
* or when providing the annotation information locally as a binding parameter.
|
|
2332
|
+
* For more information, see {@link sap.ui.model.odata.v2.ODataModel#bindTree}.
|
|
2320
2333
|
* @param {int} iRootLevel
|
|
2321
2334
|
*
|
|
2322
2335
|
* @public
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* OpenUI5
|
|
3
|
+
* (c) Copyright 2009-2021 SAP SE or an SAP affiliate company.
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
//Provides class sap.ui.model.odata.v2._CreatedContextsCache
|
|
8
|
+
sap.ui.define([
|
|
9
|
+
], function () {
|
|
10
|
+
"use strict";
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Maps a binding path and a list ID, as given as <code>createdEntitiesKey</code> parameter to
|
|
14
|
+
* {@link sap.ui.model.odata.v2.ODataModel#bindList}, to a list of contexts for created
|
|
15
|
+
* entities, if the entities are created via
|
|
16
|
+
* {@link sap.ui.model.odata.v2.ODataListBinding#create}.
|
|
17
|
+
*
|
|
18
|
+
* @alias sap.ui.model.odata.v2._CreatedContextsCache
|
|
19
|
+
* @constructor
|
|
20
|
+
* @private
|
|
21
|
+
*/
|
|
22
|
+
function _CreatedContextsCache() {
|
|
23
|
+
// binding path => { list ID => array of created OData V2 contexts }
|
|
24
|
+
this.mCache = {};
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Adds a context to the list of contexts for created entities for the given path and list ID.
|
|
29
|
+
*
|
|
30
|
+
* @param {sap.ui.model.odata.v2.Context} oCreatedContext
|
|
31
|
+
* The context for a created entity
|
|
32
|
+
* @param {string} sPath
|
|
33
|
+
* The resolved binding path
|
|
34
|
+
* @param {string} sListID
|
|
35
|
+
* The identifier for the list showing the data
|
|
36
|
+
*
|
|
37
|
+
* @private
|
|
38
|
+
*/
|
|
39
|
+
_CreatedContextsCache.prototype.addContext = function (oCreatedContext, sPath, sListID) {
|
|
40
|
+
var aContexts, mListIDToContexts;
|
|
41
|
+
|
|
42
|
+
mListIDToContexts = this.mCache[sPath];
|
|
43
|
+
if (!mListIDToContexts) {
|
|
44
|
+
mListIDToContexts = this.mCache[sPath] = {};
|
|
45
|
+
}
|
|
46
|
+
aContexts = mListIDToContexts[sListID];
|
|
47
|
+
if (!aContexts) {
|
|
48
|
+
aContexts = mListIDToContexts[sListID] = [];
|
|
49
|
+
}
|
|
50
|
+
// currently we support only bAtEnd === false in ODataListBinding#create
|
|
51
|
+
aContexts.unshift(oCreatedContext);
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Finds and removes a context from the list of contexts for created entities.
|
|
56
|
+
*
|
|
57
|
+
* @param {sap.ui.model.odata.v2.Context} oCreatedContext
|
|
58
|
+
* The context for a created entity to be removed
|
|
59
|
+
*
|
|
60
|
+
* @private
|
|
61
|
+
*/
|
|
62
|
+
_CreatedContextsCache.prototype.findAndRemoveContext = function (oCreatedContext) {
|
|
63
|
+
var that = this;
|
|
64
|
+
|
|
65
|
+
Object.keys(this.mCache).some(function (sCachePath) {
|
|
66
|
+
var mListIDToContexts = that.mCache[sCachePath];
|
|
67
|
+
|
|
68
|
+
return Object.keys(mListIDToContexts).some(function (sListID) {
|
|
69
|
+
var aContexts = that.mCache[sCachePath][sListID];
|
|
70
|
+
|
|
71
|
+
if (aContexts.includes(oCreatedContext)) {
|
|
72
|
+
that.removeContext(oCreatedContext, sCachePath, sListID);
|
|
73
|
+
|
|
74
|
+
return true;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
return false;
|
|
78
|
+
});
|
|
79
|
+
});
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* Gets the contexts for created entities for the given path and list ID.
|
|
84
|
+
*
|
|
85
|
+
* @param {string} [sPath]
|
|
86
|
+
* The resolved binding path
|
|
87
|
+
* @param {string} sListID
|
|
88
|
+
* The identifier for the list showing the data
|
|
89
|
+
* @returns {sap.ui.model.odata.v2.Context[]}
|
|
90
|
+
* An array containing all contexts for created entities for the given path and list ID;
|
|
91
|
+
* returns an empty array if no path is given
|
|
92
|
+
*
|
|
93
|
+
* @private
|
|
94
|
+
*/
|
|
95
|
+
_CreatedContextsCache.prototype.getContexts = function (sPath, sListID) {
|
|
96
|
+
var mListIDToContexts = this.mCache[sPath],
|
|
97
|
+
aContexts = mListIDToContexts && mListIDToContexts[sListID];
|
|
98
|
+
|
|
99
|
+
return aContexts ? aContexts.slice() : [];
|
|
100
|
+
};
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* Removes a context from the list of contexts for created entities for the given path and list
|
|
104
|
+
* ID.
|
|
105
|
+
*
|
|
106
|
+
* @param {sap.ui.model.odata.v2.Context} oCreatedContext
|
|
107
|
+
* The context for a created entity to be removed
|
|
108
|
+
* @param {sPath} sPath
|
|
109
|
+
* The resolved binding path
|
|
110
|
+
* @param {string} sListID
|
|
111
|
+
* The identifier for the list showing the data
|
|
112
|
+
*
|
|
113
|
+
* @private
|
|
114
|
+
*/
|
|
115
|
+
_CreatedContextsCache.prototype.removeContext = function (oCreatedContext, sPath, sListID) {
|
|
116
|
+
var mListIDToContexts = this.mCache[sPath],
|
|
117
|
+
aContexts = mListIDToContexts[sListID];
|
|
118
|
+
|
|
119
|
+
aContexts.splice(aContexts.indexOf(oCreatedContext), 1);
|
|
120
|
+
if (!aContexts.length) {
|
|
121
|
+
delete mListIDToContexts[sListID];
|
|
122
|
+
if (!Object.keys(mListIDToContexts).length) {
|
|
123
|
+
delete this.mCache[sPath];
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
};
|
|
127
|
+
|
|
128
|
+
return _CreatedContextsCache;
|
|
129
|
+
}, /* bExport= */ false);
|
|
@@ -98,7 +98,7 @@ sap.ui.define([
|
|
|
98
98
|
* @hideconstructor
|
|
99
99
|
* @public
|
|
100
100
|
* @since 1.39.0
|
|
101
|
-
* @version 1.
|
|
101
|
+
* @version 1.96.2
|
|
102
102
|
*/
|
|
103
103
|
var Context = BaseContext.extend("sap.ui.model.odata.v4.Context", {
|
|
104
104
|
constructor : function (oModel, oBinding, sPath, iIndex, oCreatePromise, iGeneration) {
|
|
@@ -1440,7 +1440,8 @@ sap.ui.define([
|
|
|
1440
1440
|
* @since 1.67.0
|
|
1441
1441
|
*/
|
|
1442
1442
|
Context.prototype.setProperty = function (sPath, vValue, sGroupId, bRetry) {
|
|
1443
|
-
var oGroupLock = null
|
|
1443
|
+
var oGroupLock = null,
|
|
1444
|
+
that = this;
|
|
1444
1445
|
|
|
1445
1446
|
this.oBinding.checkSuspended();
|
|
1446
1447
|
if (typeof vValue === "function" || (vValue && typeof vValue === "object")) {
|
|
@@ -1456,6 +1457,8 @@ sap.ui.define([
|
|
|
1456
1457
|
if (oGroupLock) {
|
|
1457
1458
|
oGroupLock.unlock(true);
|
|
1458
1459
|
}
|
|
1460
|
+
that.oModel.reportError("Failed to update path " + that.oModel.resolve(sPath, that),
|
|
1461
|
+
sClassName, oError);
|
|
1459
1462
|
throw oError;
|
|
1460
1463
|
});
|
|
1461
1464
|
};
|
|
@@ -1559,4 +1562,4 @@ sap.ui.define([
|
|
|
1559
1562
|
Object.defineProperty(oModule, "VIRTUAL", {value : iVIRTUAL});
|
|
1560
1563
|
|
|
1561
1564
|
return oModule;
|
|
1562
|
-
}, /* bExport= */ false);
|
|
1565
|
+
}, /* bExport= */ false);
|
|
@@ -13,8 +13,8 @@ sap.ui.define([
|
|
|
13
13
|
], function (_Helper, SyncPromise, ChangeReason, OperationMode, Context) {
|
|
14
14
|
"use strict";
|
|
15
15
|
|
|
16
|
-
var aChangeReasonPrecedence = [ChangeReason.
|
|
17
|
-
ChangeReason.Filter],
|
|
16
|
+
var aChangeReasonPrecedence = [ChangeReason.Context, ChangeReason.Change, ChangeReason.Refresh,
|
|
17
|
+
ChangeReason.Sort, ChangeReason.Filter],
|
|
18
18
|
sClassName = "sap.ui.model.odata.v4.ODataBinding",
|
|
19
19
|
// Whether a path segment is an index or contains a transient predicate
|
|
20
20
|
rIndexOrTransientPredicate = /\/\d|\(\$uid=/;
|
|
@@ -155,9 +155,9 @@ sap.ui.define([
|
|
|
155
155
|
throw new Error("Unsupported binding parameter $$inheritExpandSelect: "
|
|
156
156
|
+ "binding is not an operation binding");
|
|
157
157
|
}
|
|
158
|
-
if (mParameters.$expand
|
|
158
|
+
if (mParameters.$expand) {
|
|
159
159
|
throw new Error("Must not set parameter $$inheritExpandSelect on a binding "
|
|
160
|
-
+ "which has a $expand
|
|
160
|
+
+ "which has a $expand binding parameter");
|
|
161
161
|
}
|
|
162
162
|
break;
|
|
163
163
|
case "$$operationMode":
|
|
@@ -291,7 +291,6 @@ sap.ui.define([
|
|
|
291
291
|
}
|
|
292
292
|
oCache.$deepResourcePath = sDeepResourcePath;
|
|
293
293
|
oCache.$generation = iGeneration;
|
|
294
|
-
oCache.$resourcePath = sResourcePath;
|
|
295
294
|
}
|
|
296
295
|
} else { // absolute binding
|
|
297
296
|
oCache = this.doCreateCache(sResourcePath, this.mCacheQueryOptions);
|
|
@@ -1306,4 +1305,4 @@ sap.ui.define([
|
|
|
1306
1305
|
});
|
|
1307
1306
|
|
|
1308
1307
|
return asODataBinding;
|
|
1309
|
-
}, /* bExport= */ false);
|
|
1308
|
+
}, /* bExport= */ false);
|