@openui5/sap.ui.core 1.126.1 → 1.127.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/THIRDPARTY.txt +1 -1
- package/package.json +1 -1
- package/src/jquery.sap.global.js +1 -1
- package/src/jquery.sap.properties.js +1 -1
- package/src/jquery.sap.resources.js +1 -1
- package/src/jquery.sap.script.js +1 -1
- package/src/jquery.sap.storage.js +3 -3
- package/src/sap/base/Event.js +1 -1
- package/src/sap/base/Eventing.js +1 -1
- package/src/sap/base/config.js +1 -1
- package/src/sap/base/i18n/LanguageTag.js +1 -1
- package/src/sap/base/i18n/date/TimezoneUtils.js +1 -1
- package/src/sap/base/util/restricted/_CancelablePromise.js +1 -1
- package/src/sap/base/util/restricted/_castArray.js +1 -1
- package/src/sap/base/util/restricted/_compact.js +1 -1
- package/src/sap/base/util/restricted/_curry.js +1 -1
- package/src/sap/base/util/restricted/_debounce.js +1 -1
- package/src/sap/base/util/restricted/_difference.js +1 -1
- package/src/sap/base/util/restricted/_differenceBy.js +1 -1
- package/src/sap/base/util/restricted/_differenceWith.js +1 -1
- package/src/sap/base/util/restricted/_flatMap.js +1 -1
- package/src/sap/base/util/restricted/_flatMapDeep.js +1 -1
- package/src/sap/base/util/restricted/_flatMapDepth.js +1 -1
- package/src/sap/base/util/restricted/_flatten.js +1 -1
- package/src/sap/base/util/restricted/_flattenDeep.js +1 -1
- package/src/sap/base/util/restricted/_flattenDepth.js +1 -1
- package/src/sap/base/util/restricted/_intersection.js +1 -1
- package/src/sap/base/util/restricted/_intersectionBy.js +1 -1
- package/src/sap/base/util/restricted/_intersectionWith.js +1 -1
- package/src/sap/base/util/restricted/_isEqual.js +1 -1
- package/src/sap/base/util/restricted/_isEqualWith.js +1 -1
- package/src/sap/base/util/restricted/_isNil.js +1 -1
- package/src/sap/base/util/restricted/_max.js +1 -1
- package/src/sap/base/util/restricted/_merge.js +1 -1
- package/src/sap/base/util/restricted/_mergeWith.js +1 -1
- package/src/sap/base/util/restricted/_min.js +1 -1
- package/src/sap/base/util/restricted/_omit.js +1 -1
- package/src/sap/base/util/restricted/_pick.js +1 -1
- package/src/sap/base/util/restricted/_pickBy.js +1 -1
- package/src/sap/base/util/restricted/_throttle.js +1 -1
- package/src/sap/base/util/restricted/_toArray.js +1 -1
- package/src/sap/base/util/restricted/_union.js +1 -1
- package/src/sap/base/util/restricted/_unionBy.js +1 -1
- package/src/sap/base/util/restricted/_unionWith.js +1 -1
- package/src/sap/base/util/restricted/_uniq.js +1 -1
- package/src/sap/base/util/restricted/_uniqBy.js +1 -1
- package/src/sap/base/util/restricted/_uniqWith.js +1 -1
- package/src/sap/base/util/restricted/_without.js +1 -1
- package/src/sap/base/util/restricted/_xor.js +1 -1
- package/src/sap/base/util/restricted/_xorBy.js +1 -1
- package/src/sap/base/util/restricted/_xorWith.js +1 -1
- package/src/sap/base/util/restricted/_zipObject.js +1 -1
- package/src/sap/base/util/restricted/_zipObjectDeep.js +1 -1
- package/src/sap/ui/Device.js +3 -3
- package/src/sap/ui/Global.js +5 -15
- package/src/sap/ui/base/BindingInfo.js +45 -24
- package/src/sap/ui/base/DataType.js +19 -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 +31 -1
- package/src/sap/ui/base/ManagedObject.js +3 -4
- package/src/sap/ui/base/ManagedObjectMetadata.js +1 -1
- package/src/sap/ui/base/Metadata.js +1 -1
- package/src/sap/ui/base/Object.js +1 -1
- package/src/sap/ui/base/ObjectPool.js +1 -1
- package/src/sap/ui/core/.library +1 -1
- package/src/sap/ui/core/.theming +8 -0
- package/src/sap/ui/core/BusyIndicator.js +1 -1
- package/src/sap/ui/core/Component.js +1 -1
- package/src/sap/ui/core/ComponentContainer.js +1 -1
- package/src/sap/ui/core/ComponentMetadata.js +1 -1
- package/src/sap/ui/core/ComponentSupport.js +1 -1
- package/src/sap/ui/core/Configuration.js +1 -1
- package/src/sap/ui/core/Control.js +2 -2
- package/src/sap/ui/core/Core.js +57 -2
- package/src/sap/ui/core/CustomData.js +1 -1
- package/src/sap/ui/core/DeclarativeSupport.js +1 -1
- package/src/sap/ui/core/Element.js +166 -16
- package/src/sap/ui/core/ElementMetadata.js +1 -1
- package/src/sap/ui/core/EnabledPropagator.js +17 -31
- package/src/sap/ui/core/EventBus.js +1 -1
- package/src/sap/ui/core/Fragment.js +1 -1
- package/src/sap/ui/core/HTML.js +1 -1
- package/src/sap/ui/core/History.js +1 -1
- package/src/sap/ui/core/Icon.js +1 -1
- package/src/sap/ui/core/IndicationColorSupport.js +1 -1
- package/src/sap/ui/core/IntervalTrigger.js +1 -1
- package/src/sap/ui/core/InvisibleMessage.js +1 -1
- package/src/sap/ui/core/InvisibleRenderer.js +1 -1
- package/src/sap/ui/core/InvisibleText.js +1 -1
- package/src/sap/ui/core/Item.js +2 -2
- 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 +118 -55
- package/src/sap/ui/core/Manifest.js +1 -1
- package/src/sap/ui/core/Message.js +1 -1
- package/src/sap/ui/core/Popup.js +8 -0
- package/src/sap/ui/core/RenderManager.js +1 -1
- package/src/sap/ui/core/Renderer.js +1 -1
- package/src/sap/ui/core/ResizeHandler.js +1 -1
- package/src/sap/ui/core/ScrollBar.js +1 -1
- package/src/sap/ui/core/SeparatorItem.js +1 -1
- package/src/sap/ui/core/Theming.js +4 -4
- package/src/sap/ui/core/Title.js +2 -2
- package/src/sap/ui/core/TooltipBase.js +2 -2
- package/src/sap/ui/core/UIArea.js +1 -1
- package/src/sap/ui/core/UIComponent.js +1 -1
- package/src/sap/ui/core/UIComponentMetadata.js +1 -1
- package/src/sap/ui/core/ValueStateSupport.js +1 -1
- package/src/sap/ui/core/VariantLayoutData.js +1 -1
- package/src/sap/ui/core/XMLComposite.js +1 -1
- package/src/sap/ui/core/XMLCompositeMetadata.js +1 -1
- package/src/sap/ui/core/cache/CacheManagerNOP.js +3 -0
- package/src/sap/ui/core/cache/LRUPersistentCache.js +13 -4
- package/src/sap/ui/core/date/UI5Date.js +1 -1
- package/src/sap/ui/core/delegate/ItemNavigation.js +1 -1
- package/src/sap/ui/core/delegate/ScrollEnablement.js +1 -1
- package/src/sap/ui/core/dnd/DragDropBase.js +1 -1
- package/src/sap/ui/core/dnd/DragDropInfo.js +1 -1
- package/src/sap/ui/core/dnd/DragInfo.js +1 -1
- package/src/sap/ui/core/dnd/DropInfo.js +1 -1
- package/src/sap/ui/core/fieldhelp/FieldHelp.js +53 -11
- package/src/sap/ui/core/fieldhelp/FieldHelpUtil.js +4 -0
- package/src/sap/ui/core/format/FormatUtils.js +1 -1
- package/src/sap/ui/core/format/TimezoneUtil.js +1 -1
- package/src/sap/ui/core/getCompatibilityVersion.js +1 -1
- package/src/sap/ui/core/hyphenation/Hyphenation.js +1 -1
- package/src/sap/ui/core/library.js +37 -21
- package/src/sap/ui/core/message/ControlMessageProcessor.js +1 -1
- package/src/sap/ui/core/message/Message.js +1 -1
- package/src/sap/ui/core/message/MessageManager.js +1 -1
- package/src/sap/ui/core/message/MessageParser.js +1 -1
- package/src/sap/ui/core/message/MessageProcessor.js +1 -1
- package/src/sap/ui/core/messagebundle_en_US_sappsd.properties +30 -18
- package/src/sap/ui/core/messagebundle_en_US_saptrc.properties +294 -282
- package/src/sap/ui/core/mvc/HTMLView.js +1 -1
- package/src/sap/ui/core/mvc/JSONView.js +1 -1
- package/src/sap/ui/core/mvc/JSView.js +1 -1
- package/src/sap/ui/core/mvc/TemplateView.js +1 -1
- package/src/sap/ui/core/mvc/View.js +1 -1
- package/src/sap/ui/core/mvc/XMLView.js +4 -4
- package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
- package/src/sap/ui/core/plugin/LessSupport.js +1 -1
- package/src/sap/ui/core/plugin/TemplatingSupport.js +1 -1
- package/src/sap/ui/core/postmessage/Bus.js +1 -1
- package/src/sap/ui/core/postmessage/confirmationDialog.js +1 -1
- package/src/sap/ui/core/search/OpenSearchProvider.js +1 -1
- package/src/sap/ui/core/search/SearchProvider.js +1 -1
- package/src/sap/ui/core/service/Service.js +1 -1
- package/src/sap/ui/core/service/ServiceFactory.js +1 -1
- package/src/sap/ui/core/service/ServiceFactoryRegistry.js +1 -1
- package/src/sap/ui/core/support/Plugin.js +1 -1
- package/src/sap/ui/core/support/Support.js +1 -1
- package/src/sap/ui/core/support/ToolsAPI.js +5 -5
- package/src/sap/ui/core/support/plugins/ControlTree.js +1 -1
- package/src/sap/ui/core/support/plugins/Interaction.js +1 -1
- package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -1
- package/src/sap/ui/core/support/plugins/Performance.js +1 -1
- package/src/sap/ui/core/support/plugins/Selector.js +1 -1
- package/src/sap/ui/core/support/plugins/TechInfo.js +1 -1
- package/src/sap/ui/core/support/plugins/Trace.js +1 -1
- package/src/sap/ui/core/support/plugins/ViewInfo.js +1 -1
- package/src/sap/ui/core/themes/base/base.less +119 -49
- package/src/sap/ui/core/themes/base/fonts/SAP-icons.ttf +0 -0
- package/src/sap/ui/core/themes/base/fonts/SAP-icons.woff2 +0 -0
- package/src/sap/ui/core/themes/base/library.source.less +2 -0
- package/src/sap/ui/core/themes/base/skeleton.less +958 -0
- package/src/sap/ui/core/theming/ThemeManager.js +56 -73
- package/src/sap/ui/core/tmpl/DOMAttribute.js +1 -1
- package/src/sap/ui/core/tmpl/DOMElement.js +1 -1
- package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +1 -1
- package/src/sap/ui/core/tmpl/Template.js +1 -1
- package/src/sap/ui/core/tmpl/TemplateControl.js +1 -1
- package/src/sap/ui/core/util/AsyncHintsHelper.js +1 -1
- package/src/sap/ui/core/util/Export.js +1 -1
- package/src/sap/ui/core/util/ExportCell.js +1 -1
- package/src/sap/ui/core/util/ExportColumn.js +1 -1
- package/src/sap/ui/core/util/ExportRow.js +1 -1
- package/src/sap/ui/core/util/ExportType.js +1 -1
- package/src/sap/ui/core/util/ExportTypeCSV.js +1 -1
- package/src/sap/ui/core/util/File.js +1 -1
- package/src/sap/ui/core/util/LibraryInfo.js +1 -1
- package/src/sap/ui/core/util/MockServer.js +1 -1
- package/src/sap/ui/core/util/PasteHelper.js +1 -1
- package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +1 -1
- package/src/sap/ui/core/util/serializer/Serializer.js +1 -1
- package/src/sap/ui/core/util/serializer/ViewSerializer.js +1 -1
- package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +1 -1
- package/src/sap/ui/core/util/serializer/delegate/Delegate.js +1 -1
- package/src/sap/ui/core/util/serializer/delegate/HTML.js +1 -1
- package/src/sap/ui/core/util/serializer/delegate/XML.js +1 -1
- package/src/sap/ui/core/webc/WebComponent.js +1 -1
- package/src/sap/ui/core/webc/WebComponentMetadata.js +1 -1
- package/src/sap/ui/core/ws/ReadyState.js +1 -1
- package/src/sap/ui/core/ws/SapPcpWebSocket.js +1 -1
- package/src/sap/ui/core/ws/WebSocket.js +1 -1
- package/src/sap/ui/debug/ControlTree.js +1 -1
- package/src/sap/ui/debug/DebugEnv.js +1 -1
- package/src/sap/ui/debug/PropertyList.js +1 -1
- package/src/sap/ui/dom/findTabbable.js +244 -0
- package/src/sap/ui/dom/isElementCovered.js +51 -0
- package/src/sap/ui/events/F6Navigation.js +10 -164
- package/src/sap/ui/model/ClientModel.js +1 -1
- package/src/sap/ui/model/CompositeDataState.js +1 -1
- package/src/sap/ui/model/CompositeType.js +1 -1
- package/src/sap/ui/model/DataState.js +1 -1
- package/src/sap/ui/model/MetaModel.js +1 -1
- package/src/sap/ui/model/Model.js +1 -1
- package/src/sap/ui/model/SelectionModel.js +1 -1
- package/src/sap/ui/model/SimpleType.js +1 -1
- package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
- package/src/sap/ui/model/Type.js +1 -1
- package/src/sap/ui/model/json/JSONModel.js +1 -1
- package/src/sap/ui/model/message/MessageModel.js +1 -1
- package/src/sap/ui/model/odata/ODataAnnotations.js +1 -1
- package/src/sap/ui/model/odata/ODataMessageParser.js +1 -1
- package/src/sap/ui/model/odata/ODataMetaModel.js +1 -1
- package/src/sap/ui/model/odata/ODataMetadata.js +1 -1
- package/src/sap/ui/model/odata/ODataModel.js +1 -1
- package/src/sap/ui/model/odata/type/Boolean.js +1 -1
- package/src/sap/ui/model/odata/type/Byte.js +1 -1
- package/src/sap/ui/model/odata/type/Currency.js +1 -1
- package/src/sap/ui/model/odata/type/Date.js +1 -1
- package/src/sap/ui/model/odata/type/DateTime.js +1 -1
- package/src/sap/ui/model/odata/type/DateTimeBase.js +1 -1
- package/src/sap/ui/model/odata/type/DateTimeOffset.js +1 -1
- package/src/sap/ui/model/odata/type/DateTimeWithTimezone.js +1 -1
- package/src/sap/ui/model/odata/type/Decimal.js +1 -1
- package/src/sap/ui/model/odata/type/Double.js +1 -1
- package/src/sap/ui/model/odata/type/Guid.js +1 -1
- package/src/sap/ui/model/odata/type/Int.js +1 -1
- package/src/sap/ui/model/odata/type/Int16.js +1 -1
- package/src/sap/ui/model/odata/type/Int32.js +1 -1
- package/src/sap/ui/model/odata/type/Int64.js +1 -1
- package/src/sap/ui/model/odata/type/ODataType.js +1 -1
- package/src/sap/ui/model/odata/type/Raw.js +1 -1
- package/src/sap/ui/model/odata/type/SByte.js +1 -1
- package/src/sap/ui/model/odata/type/Single.js +1 -1
- package/src/sap/ui/model/odata/type/Stream.js +1 -1
- package/src/sap/ui/model/odata/type/String.js +1 -1
- package/src/sap/ui/model/odata/type/Time.js +1 -1
- package/src/sap/ui/model/odata/type/TimeOfDay.js +1 -1
- package/src/sap/ui/model/odata/type/Unit.js +1 -1
- package/src/sap/ui/model/odata/v2/Context.js +1 -1
- package/src/sap/ui/model/odata/v2/ODataAnnotations.js +1 -1
- package/src/sap/ui/model/odata/v2/ODataModel.js +144 -14
- package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +1 -1
- package/src/sap/ui/model/odata/v4/Context.js +18 -8
- package/src/sap/ui/model/odata/v4/ODataBinding.js +1 -1
- package/src/sap/ui/model/odata/v4/ODataContextBinding.js +12 -9
- package/src/sap/ui/model/odata/v4/ODataListBinding.js +30 -14
- package/src/sap/ui/model/odata/v4/ODataMetaModel.js +254 -189
- package/src/sap/ui/model/odata/v4/ODataModel.js +51 -13
- package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +4 -1
- package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +68 -32
- package/src/sap/ui/model/odata/v4/lib/_AggregationHelper.js +9 -6
- package/src/sap/ui/model/odata/v4/lib/_Cache.js +7 -7
- package/src/sap/ui/model/odata/v4/lib/_Helper.js +17 -11
- package/src/sap/ui/model/odata/v4/lib/_Requestor.js +11 -3
- package/src/sap/ui/model/odata/v4/lib/_TreeState.js +10 -4
- package/src/sap/ui/model/resource/ResourceModel.js +1 -1
- package/src/sap/ui/model/type/Boolean.js +1 -1
- package/src/sap/ui/model/type/Currency.js +1 -1
- package/src/sap/ui/model/type/Date.js +1 -1
- package/src/sap/ui/model/type/DateInterval.js +1 -1
- package/src/sap/ui/model/type/DateTime.js +1 -1
- package/src/sap/ui/model/type/DateTimeInterval.js +1 -1
- package/src/sap/ui/model/type/FileSize.js +1 -1
- package/src/sap/ui/model/type/Float.js +1 -1
- package/src/sap/ui/model/type/Integer.js +1 -1
- package/src/sap/ui/model/type/String.js +1 -1
- package/src/sap/ui/model/type/Time.js +1 -1
- package/src/sap/ui/model/type/TimeInterval.js +1 -1
- package/src/sap/ui/model/type/Unit.js +1 -1
- package/src/sap/ui/model/xml/XMLModel.js +1 -1
- package/src/sap/ui/performance/trace/FESR.js +3 -0
- package/src/sap/ui/performance/trace/Interaction.js +4 -2
- package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
- package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +1 -1
- package/src/sap/ui/qunit/utils/nextUIUpdate.js +7 -53
- package/src/sap/ui/qunit/utils/waitForThemeApplied.js +6 -42
- package/src/sap/ui/test/ModuleTracking.js +1 -1
- package/src/sap/ui/test/generic/TestBase.js +1 -1
- package/src/sap/ui/test/generic/Utils.js +3 -7
- package/src/sap/ui/test/opaQunit.js +3 -3
- package/src/sap/ui/test/utils/nextUIUpdate.js +64 -0
- package/src/sap/ui/test/utils/waitForThemeApplied.js +58 -0
- package/src/sap/ui/util/Storage.js +1 -1
- package/src/ui5loader.js +9 -0
- package/test/sap/ui/core/demokit/sample/Messaging/ODataBackendMessagesComp/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/sample/matcher/BindingPath/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/sample/matcher/Descendant/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/sample/matcher/I18NText/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/sample/matcher/LabelFor/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/FlexibleColumnLayout/SandboxModel.js +1 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/FlexibleColumnLayout/data/SalesOrderList('0500000000')-requestSideEffects.json +14 -14
- package/test/sap/ui/core/demokit/sample/odata/v4/HierarchyBindAction/Main.controller.js +32 -2
- package/test/sap/ui/core/demokit/sample/odata/v4/HierarchyBindAction/Main.view.xml +22 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/ListBindingTemplate/Component.js +69 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/ListBindingTemplate/MIT.ListBindingTemplate.AnnotationChanges.html +63 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/ListBindingTemplate/Main.view.xml +19 -7
- package/test/sap/ui/core/demokit/sample/odata/v4/ListBindingTemplate/SandboxModel.js +1 -4
- package/test/sap/ui/core/demokit/sample/odata/v4/ListBindingTemplate/data/equipments.json +37 -22
- package/test/sap/ui/core/demokit/sample/odata/v4/ListBindingTemplate/data/localAnnotations.xml +10 -2
- package/test/sap/ui/core/demokit/sample/odata/v4/MultipleInlineCreationRowsGrid/Main.controller.js +5 -5
- package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/RecursiveHierarchy.controller.js +32 -2
- package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/RecursiveHierarchy.view.xml +30 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/SandboxModel.js +12 -6
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/Main.controller.js +7 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/Main.view.xml +2 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/SandboxModel.js +14 -14
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrdersTemplate/pages/Main.js +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/01/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/02/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/03/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/04/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/05/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/06/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/07/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/08/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/09/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/10/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/11/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/12/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/13/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/14/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/15/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/mockserver/01/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/mockserver/02/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/mockserver/03/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/mockserver/04/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/01/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/02/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/03/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/04/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/05/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/06/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/07/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/08/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/09/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/10/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/11/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/12/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/13/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/14/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/15/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/16/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/17/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/01/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/02/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/03/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/04/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/05/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/06/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/07/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/08/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/09/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/10/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/11/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/troubleshooting/01/package.json +3 -0
- package/test/sap/ui/core/demokit/tutorial/troubleshooting/01/ui5.yaml +1 -1
- package/test/sap/ui/core/qunit/BlockLayerUtils.qunit.js +1 -1
- package/test/sap/ui/core/qunit/CalculatedFields.qunit.js +1 -1
- package/test/sap/ui/core/qunit/ContextMenuSupport.qunit.js +1 -1
- package/test/sap/ui/core/qunit/ControlDefinition.qunit.js +2 -2
- package/test/sap/ui/core/qunit/ControlRenderer.qunit.js +1 -1
- package/test/sap/ui/core/qunit/Core.qunit.js +1 -1
- package/test/sap/ui/core/qunit/CustomStyleClassSupport.qunit.js +1 -1
- package/test/sap/ui/core/qunit/CustomThemeFallback.qunit.js +1 -1
- package/test/sap/ui/core/qunit/CustomThemeFallback_unavoidablySync.qunit.js +1 -1
- package/test/sap/ui/core/qunit/Element_data.qunit.js +1 -1
- package/test/sap/ui/core/qunit/Element_destroy.qunit.js +1 -1
- package/test/sap/ui/core/qunit/Element_focus.qunit.js +196 -3
- package/test/sap/ui/core/qunit/Element_metadata_selector.qunit.js +1 -1
- package/test/sap/ui/core/qunit/EnabledPropagator.qunit.js +2 -3
- package/test/sap/ui/core/qunit/FastNavigationWithWebComponents.qunit.js +1 -1
- package/test/sap/ui/core/qunit/FieldGroup.qunit.js +1 -1
- package/test/sap/ui/core/qunit/FocusHandler.qunit.js +1 -1
- package/test/sap/ui/core/qunit/Fragment.qunit.js +1 -1
- package/test/sap/ui/core/qunit/Fragment_legacyAPIs.qunit.js +1 -1
- package/test/sap/ui/core/qunit/HTML.qunit.js +1 -1
- package/test/sap/ui/core/qunit/Icon.qunit.js +1 -1
- package/test/sap/ui/core/qunit/InvisibleText.qunit.js +1 -1
- package/test/sap/ui/core/qunit/LRUPersistentCache.qunit.js +8 -4
- package/test/sap/ui/core/qunit/LocalBusyIndicator.qunit.js +1 -1
- package/test/sap/ui/core/qunit/RenderManager.qunit.js +1 -1
- package/test/sap/ui/core/qunit/Rendering.qunit.js +1 -1
- package/test/sap/ui/core/qunit/ResizeHandler.qunit.js +1 -1
- package/test/sap/ui/core/qunit/ScrollBar.qunit.js +1 -1
- package/test/sap/ui/core/qunit/ShortcutHints.qunit.js +1 -1
- package/test/sap/ui/core/qunit/StashedControlSupport.qunit.js +1 -1
- package/test/sap/ui/core/qunit/StashedControlSupport_unavoidablySync.qunit.js +1 -1
- package/test/sap/ui/core/qunit/ThemeManager.qunit.js +1 -1
- package/test/sap/ui/core/qunit/ThemeParameters.qunit.js +1 -1
- package/test/sap/ui/core/qunit/ThemeParameters_legacyAPIs.qunit.js +1 -1
- package/test/sap/ui/core/qunit/Theming.qunit.js +1 -1
- package/test/sap/ui/core/qunit/Theming_default_and_fallback.qunit.js +1 -1
- package/test/sap/ui/core/qunit/TooltipBase.qunit.js +1 -1
- package/test/sap/ui/core/qunit/UIArea.qunit.js +1 -1
- package/test/sap/ui/core/qunit/bootstrap/ThemeVersion.qunit.js +1 -1
- package/test/sap/ui/core/qunit/bootstrap/testsuite.bootstrap.qunit.js +1 -8
- package/test/sap/ui/core/qunit/component/Component.qunit.js +36 -36
- package/test/sap/ui/core/qunit/component/ComponentContainer.qunit.js +2 -10
- package/test/sap/ui/core/qunit/component/ComponentContainer_unavoidablySync.qunit.js +2 -10
- package/test/sap/ui/core/qunit/component/ComponentSupport.qunit.js +5 -5
- package/test/sap/ui/core/qunit/component/Component_containedInLibrary.qunit.js +10 -10
- package/test/sap/ui/core/qunit/component/Component_dependencyLoading.qunit.js +7 -7
- package/test/sap/ui/core/qunit/component/Component_dependencyLoading_unavoidablySync.qunit.js +6 -6
- package/test/sap/ui/core/qunit/component/Component_unavoidablySync.qunit.js +8 -8
- package/test/sap/ui/core/qunit/component/Customizing.qunit.js +1 -1
- package/test/sap/ui/core/qunit/component/Customizing_async.qunit.js +3 -3
- package/test/sap/ui/core/qunit/component/Customizing_disabled.qunit.js +1 -1
- package/test/sap/ui/core/qunit/component/Customizing_legacyAPIs.qunit.js +2 -2
- package/test/sap/ui/core/qunit/component/Customizing_multi.qunit.js +1 -1
- package/test/sap/ui/core/qunit/component/Customizing_unavoidablySync.qunit.js +1 -1
- package/test/sap/ui/core/qunit/component/ExtensionPoint.qunit.js +3 -3
- package/test/sap/ui/core/qunit/component/ExtensionPoint_unavoidablySync.qunit.js +1 -1
- package/test/sap/ui/core/qunit/component/Manifest.qunit.js +10 -10
- package/test/sap/ui/core/qunit/component/Manifest_unavoidablySync.qunit.js +1 -1
- package/test/sap/ui/core/qunit/component/Metadata.qunit.js +47 -47
- package/test/sap/ui/core/qunit/component/Metadata_unavoidablySync.qunit.js +33 -33
- package/test/sap/ui/core/qunit/component/Models.qunit.js +57 -57
- package/test/sap/ui/core/qunit/component/Models_unavoidablySync.qunit.js +12 -12
- package/test/sap/ui/core/qunit/component/UIComponent.qunit.js +2 -2
- package/test/sap/ui/core/qunit/component/UIComponent_unavoidablySync.qunit.js +1 -1
- package/test/sap/ui/core/qunit/component/testdata/dependencyLoading/component1/Component.js +2 -2
- package/test/sap/ui/core/qunit/component/testdata/dependencyLoading/component1/manifest.json +3 -3
- package/test/sap/ui/core/qunit/component/testdata/dependencyLoading/component2/Component.js +2 -2
- package/test/sap/ui/core/qunit/component/testdata/dependencyLoading/component2/manifest.json +1 -1
- package/test/sap/ui/core/qunit/component/testdata/dependencyLoading/component3/Component.js +2 -2
- package/test/sap/ui/core/qunit/component/testdata/dependencyLoading/component3/manifest.json +2 -2
- package/test/sap/ui/core/qunit/component/testdata/dependencyLoading/component4/Component.js +2 -2
- package/test/sap/ui/core/qunit/component/testdata/dependencyLoading/component4/manifest.json +2 -2
- package/test/sap/ui/core/qunit/component/testdata/dependencyLoading/component5/Component.js +2 -2
- package/test/sap/ui/core/qunit/component/testdata/dependencyLoading/component5/manifest.json +2 -2
- package/test/sap/ui/core/qunit/component/testdata/dependencyLoading/component6/Component.js +2 -2
- package/test/sap/ui/core/qunit/component/testdata/dependencyLoading/component6/manifest.json +2 -2
- package/test/sap/ui/core/qunit/component/testdata/dependencyLoading/componentVariant/manifest.json +2 -2
- package/test/sap/ui/core/qunit/component/testdata/embedded/Component.js +2 -2
- package/test/sap/ui/core/qunit/component/testdata/embedded/manifest.json +2 -2
- package/test/sap/ui/core/qunit/component/testdata/inherit/Component.js +2 -2
- package/test/sap/ui/core/qunit/component/testdata/inherit/component.json +1 -1
- package/test/sap/ui/core/qunit/component/testdata/inherit/manifest.json +9 -9
- package/test/sap/ui/core/qunit/component/testdata/inherit/parent/Component.js +2 -2
- package/test/sap/ui/core/qunit/component/testdata/inherit/parent/component.json +1 -1
- package/test/sap/ui/core/qunit/component/testdata/inherit/parent/manifest.json +9 -9
- package/test/sap/ui/core/qunit/component/testdata/inheritAsync/Component.js +2 -2
- package/test/sap/ui/core/qunit/component/testdata/inheritAsync/manifest.json +3 -3
- package/test/sap/ui/core/qunit/component/testdata/inheritAsync/parentA/Component.js +2 -2
- package/test/sap/ui/core/qunit/component/testdata/inheritAsync/parentA/manifest.json +2 -2
- package/test/sap/ui/core/qunit/component/testdata/inheritAsync/parentB/Component.js +2 -2
- package/test/sap/ui/core/qunit/component/testdata/inheritAsync/parentB/manifest.json +3 -3
- package/test/sap/ui/core/qunit/component/testdata/inheritAsyncError/Component.js +2 -2
- package/test/sap/ui/core/qunit/component/testdata/inheritAsyncError/manifest.json +3 -3
- package/test/sap/ui/core/qunit/component/testdata/inheritAsyncError/parentA/Component.js +2 -2
- package/test/sap/ui/core/qunit/component/testdata/inheritAsyncError/parentA/manifest.json +2 -2
- package/test/sap/ui/core/qunit/component/testdata/inheritAsyncError/parentB/Component.js +2 -2
- package/test/sap/ui/core/qunit/component/testdata/inheritAsyncError/parentB/manifest.json +3 -3
- package/test/sap/ui/core/qunit/component/testdata/manifestload/manifest.json +2 -2
- package/test/sap/ui/core/qunit/component/testdata/minUI5Version/Component.js +1 -1
- package/test/sap/ui/core/qunit/component/testdata/minUI5Version/manifest.json +1 -1
- package/test/sap/ui/core/qunit/component/testdata/mixed/Component.js +1 -1
- package/test/sap/ui/core/qunit/component/testdata/mixed/manifest.json +9 -9
- package/test/sap/ui/core/qunit/component/testdata/mixed_legacyAPIs/Component.js +1 -1
- package/test/sap/ui/core/qunit/component/testdata/mixed_legacyAPIs/component.json +8 -8
- package/test/sap/ui/core/qunit/component/testdata/mixed_legacyAPIs/manifest.json +9 -9
- package/test/sap/ui/core/qunit/component/testdata/modelsMisc/Component.js +1 -1
- package/test/sap/ui/core/qunit/component/testdata/modelsMisc/manifest.json +1 -1
- package/test/sap/ui/core/qunit/component/testdata/other/Component.js +2 -2
- package/test/sap/ui/core/qunit/component/testdata/routerClass/Component.js +1 -1
- package/test/sap/ui/core/qunit/component/testdata/routerClass/manifest.json +2 -2
- package/test/sap/ui/core/qunit/component/testdata/routerPreloading/Component.js +1 -1
- package/test/sap/ui/core/qunit/component/testdata/routerPreloading/manifest.json +2 -2
- package/test/sap/ui/core/qunit/component/testdata/routing/Component.js +2 -2
- package/test/sap/ui/core/qunit/component/testdata/routing/RouterExtension.js +1 -1
- package/test/sap/ui/core/qunit/component/testdata/routing/TestView.js +1 -8
- package/test/sap/ui/core/qunit/component/testdata/routing/targets/Component.js +2 -2
- package/test/sap/ui/core/qunit/component/testdata/routing_legacyAPIs/Component.js +5 -5
- package/test/sap/ui/core/qunit/component/testdata/routing_legacyAPIs/targets/Component.js +5 -5
- package/test/sap/ui/core/qunit/component/testdata/targetsPreloading/Component.js +1 -1
- package/test/sap/ui/core/qunit/component/testdata/targetsPreloading/manifest.json +2 -2
- package/test/sap/ui/core/qunit/component/testdata/terminologies/Component.js +1 -1
- package/test/sap/ui/core/qunit/component/testdata/terminologies/Main.controller.js +1 -1
- package/test/sap/ui/core/qunit/component/testdata/terminologies/component1/Component.js +1 -1
- package/test/sap/ui/core/qunit/component/testdata/terminologies/component1/Main.controller.js +1 -1
- package/test/sap/ui/core/qunit/component/testdata/terminologies/component2/Component.js +1 -1
- package/test/sap/ui/core/qunit/component/testdata/terminologies/component2/Main.controller.js +1 -1
- package/test/sap/ui/core/qunit/component/testdata/terminologies/component3/Component.js +1 -1
- package/test/sap/ui/core/qunit/component/testdata/terminologies/component3/Main.controller.js +1 -1
- package/test/sap/ui/core/qunit/component/testdata/terminologies/component4/Component.js +1 -1
- package/test/sap/ui/core/qunit/component/testdata/terminologies/component4/Main.controller.js +1 -1
- package/test/sap/ui/core/qunit/component/testdata/terminologies/component5/Component.js +1 -1
- package/test/sap/ui/core/qunit/component/testdata/terminologies/component5/Main.controller.js +1 -1
- package/test/sap/ui/core/qunit/component/testdata/terminologies/reuse/Component.js +1 -1
- package/test/sap/ui/core/qunit/component/testdata/terminologies/reuse/Main.controller.js +1 -1
- package/test/sap/ui/core/qunit/component/testdata/v1/Component.js +2 -2
- package/test/sap/ui/core/qunit/component/testdata/v1/component.json +8 -8
- package/test/sap/ui/core/qunit/component/testdata/v1empty/Component.js +2 -2
- package/test/sap/ui/core/qunit/component/testdata/v1empty/component.json +1 -1
- package/test/sap/ui/core/qunit/component/testdata/v1inline/Component.js +10 -10
- package/test/sap/ui/core/qunit/component/testdata/v1missing/Component.js +2 -2
- package/test/sap/ui/core/qunit/component/testdata/v2/Component.js +2 -2
- package/test/sap/ui/core/qunit/component/testdata/v2/manifest.json +9 -9
- package/test/sap/ui/core/qunit/component/testdata/v2asyncRootView/Component.js +2 -2
- package/test/sap/ui/core/qunit/component/testdata/v2asyncRootView/manifest.json +9 -9
- package/test/sap/ui/core/qunit/component/testdata/v2empty/Component.js +1 -1
- package/test/sap/ui/core/qunit/component/testdata/v2empty/manifest.json +1 -1
- package/test/sap/ui/core/qunit/component/testdata/v2inline/Component.js +10 -10
- package/test/sap/ui/core/qunit/component/testdata/v2missing/Component.js +1 -1
- package/test/sap/ui/core/qunit/component/testdata/v2models/empty/Component.js +3 -3
- package/test/sap/ui/core/qunit/component/testdata/v2models/empty/manifest.json +1 -1
- package/test/sap/ui/core/qunit/component/testdata/v2models/extension/Component.js +4 -4
- package/test/sap/ui/core/qunit/component/testdata/v2models/parent/Component.js +12 -12
- package/test/sap/ui/core/qunit/component/testdata/v2models/parent/CustomModel.js +2 -2
- package/test/sap/ui/core/qunit/component/testdata/v2models/parent/ModelNotDefined.js +2 -2
- package/test/sap/ui/core/qunit/component/testdata/v2models/parentValid/Component.js +11 -11
- package/test/sap/ui/core/qunit/component/testdata/v2models/ui5Urls/Component.js +2 -2
- package/test/sap/ui/core/qunit/component/testdata/v2models/ui5Urls/manifest.json +2 -2
- package/test/sap/ui/core/qunit/component/testdata/v2version/Component.js +2 -2
- package/test/sap/ui/core/qunit/component/testdata/v2version/manifest.json +2 -2
- package/test/sap/ui/core/qunit/component/testdata/v4models/Component.js +3 -3
- package/test/sap/ui/core/qunit/component/testdata/v4models/cacheTokens/Component.js +3 -3
- package/test/sap/ui/core/qunit/component/testdata/v4models/sapSystem/Component.js +2 -2
- package/test/sap/ui/core/qunit/component/testdata/v4models/sapSystem/manifest.json +1 -1
- package/test/sap/ui/core/qunit/component/testdata/v4models/unsupportedVersion/Component.js +3 -3
- package/test/sap/ui/core/qunit/component/testdata/verticalLayout/Component.js +1 -1
- package/test/sap/ui/core/qunit/component/testdata/verticalLayout_legacyAPIs/Component.js +1 -1
- package/test/sap/ui/core/qunit/component/testdata/view/Main.controller.js +2 -2
- package/test/sap/ui/core/qunit/component/testdata/view/Main.view.xml +1 -1
- package/test/sap/ui/core/qunit/component/testdata/view/MainAsync.view.xml +1 -1
- package/test/sap/ui/core/qunit/component/testdata/view/MainAsyncWithWrongNesting.view.xml +1 -1
- package/test/sap/ui/core/qunit/component/testdata/view/Nested.view.xml +1 -1
- package/test/sap/ui/core/qunit/component/testsuite.component.qunit.js +2 -8
- package/test/sap/ui/core/qunit/composite/XMLComposite.qunit.js +1 -1
- package/test/sap/ui/core/qunit/dnd/DragAndDrop.qunit.js +1 -1
- package/test/sap/ui/core/qunit/dnd/DragInfo.qunit.js +1 -1
- package/test/sap/ui/core/qunit/dnd/DropInfo.qunit.js +1 -1
- package/test/sap/ui/core/qunit/fieldhelp/FieldHelp.qunit.js +184 -51
- package/test/sap/ui/core/qunit/fieldhelp/FieldHelpUtil.qunit.js +2 -0
- package/test/sap/ui/core/qunit/generic/ControlMemoryLeaks.qunit.js +1 -1
- package/test/sap/ui/core/qunit/generic/DuplicateIdCheck.qunit.js +1 -1
- package/test/sap/ui/core/qunit/generic/legacy/ControlIterator.qunit.js +1 -1
- package/test/sap/ui/core/qunit/generic/legacy/ControlMemoryLeaks.qunit.js +1 -1
- package/test/sap/ui/core/qunit/generic/legacy/DuplicateIdCheck.qunit.js +1 -1
- package/test/sap/ui/core/qunit/i18n/LocaleData.qunit.js +188 -61
- package/test/sap/ui/core/qunit/isBehindOtherElement.qunit.js +1 -1
- package/test/sap/ui/core/qunit/jquery.sap.events.qunit.js +1 -1
- package/test/sap/ui/core/qunit/jquery.sap.ui.qunit.js +1 -1
- package/test/sap/ui/core/qunit/messages/messagesUsage.qunit.js +1 -1
- package/test/sap/ui/core/qunit/mvc/AnyView.qunit.js +1 -1
- package/test/sap/ui/core/qunit/mvc/AnyViewAsync.qunit.js +1 -1
- package/test/sap/ui/core/qunit/mvc/Controller.qunit.js +1 -1
- package/test/sap/ui/core/qunit/mvc/XMLTemplateProcessorAsync_unavoidablyUsingInlineStyle.qunit.js +1 -1
- package/test/sap/ui/core/qunit/mvc/XMLTemplateProcessorRequireXML.qunit.js +1 -1
- package/test/sap/ui/core/qunit/mvc/XMLView.qunit.js +1 -1
- package/test/sap/ui/core/qunit/mvc/viewprocessing/ViewProcessing.qunit.js +1 -1
- package/test/sap/ui/core/qunit/mvc/viewprocessing/ViewProcessing_legacyAPIs.qunit.js +1 -1
- package/test/sap/ui/core/qunit/mvc_legacyAPIs/AnyViewAsync_legacyAPIs.qunit.js +1 -1
- package/test/sap/ui/core/qunit/mvc_legacyAPIs/AnyView_legacyAPIs.qunit.js +1 -1
- package/test/sap/ui/core/qunit/mvc_legacyAPIs/HTMLView_legacyAPIs.qunit.js +1 -1
- package/test/sap/ui/core/qunit/mvc_legacyAPIs/XMLTemplateProcessorRequireXML_legacyAPIs.qunit.js +1 -1
- package/test/sap/ui/core/qunit/mvc_legacyAPIs/XMLView_legacyAPIs.qunit.js +1 -1
- package/test/sap/ui/core/qunit/odata/ODataAnnotations.qunit.js +1 -1
- package/test/sap/ui/core/qunit/odata/v2/ODataModel.integration.qunit.js +511 -21
- package/test/sap/ui/core/qunit/odata/v2/ODataModelNoFakeService.qunit.js +382 -3
- package/test/sap/ui/core/qunit/odata/v2/V2ODataModel.qunit.js +1 -1
- package/test/sap/ui/core/qunit/odata/v2/V2ODataModelB.qunit.js +1 -1
- package/test/sap/ui/core/qunit/odata/v4/Context.qunit.js +28 -4
- package/test/sap/ui/core/qunit/odata/v4/ODataContextBinding.qunit.js +34 -20
- package/test/sap/ui/core/qunit/odata/v4/ODataListBinding.qunit.js +80 -15
- package/test/sap/ui/core/qunit/odata/v4/ODataMetaModel.qunit.js +90 -6
- package/test/sap/ui/core/qunit/odata/v4/ODataModel.integration.qunit.js +1201 -202
- package/test/sap/ui/core/qunit/odata/v4/ODataModel.qunit.js +34 -0
- package/test/sap/ui/core/qunit/odata/v4/ODataPropertyBinding.qunit.js +38 -0
- package/test/sap/ui/core/qunit/odata/v4/data/annotations_tea_busi.xml +14 -0
- package/test/sap/ui/core/qunit/odata/v4/data/metadata_tea_busi_supplier.xml +36 -0
- package/test/sap/ui/core/qunit/odata/v4/lib/_AggregationCache.qunit.js +319 -38
- package/test/sap/ui/core/qunit/odata/v4/lib/_AggregationHelper.qunit.js +22 -9
- package/test/sap/ui/core/qunit/odata/v4/lib/_Cache.qunit.js +2 -2
- package/test/sap/ui/core/qunit/odata/v4/lib/_Helper.qunit.js +53 -10
- package/test/sap/ui/core/qunit/odata/v4/lib/_Requestor.qunit.js +6 -0
- package/test/sap/ui/core/qunit/odata/v4/lib/_TreeState.qunit.js +30 -1
- package/test/sap/ui/core/qunit/opa/Opa5PageObject.qunit.js +1 -1
- package/test/sap/ui/core/qunit/opa/OpaPlugin.qunit.js +1 -1
- package/test/sap/ui/core/qunit/opa/RecordReplay.qunit.js +1 -1
- package/test/sap/ui/core/qunit/opa/_ControlFinder.qunit.js +1 -1
- package/test/sap/ui/core/qunit/opa/actions/Action.qunit.js +1 -1
- package/test/sap/ui/core/qunit/opa/actions/EnterText.qunit.js +1 -1
- package/test/sap/ui/core/qunit/opa/actions/Press.qunit.js +1 -1
- package/test/sap/ui/core/qunit/opa/autowaiter/_cssAnimationWaiter.js +1 -1
- package/test/sap/ui/core/qunit/opa/autowaiter/_cssTransitionWaiter.js +1 -1
- package/test/sap/ui/core/qunit/opa/autowaiter/_jsAnimationWaiter.js +1 -1
- package/test/sap/ui/core/qunit/opa/autowaiter/_navigationContainerWaiter.js +1 -1
- package/test/sap/ui/core/qunit/opa/autowaiter/_resourceWaiter.js +1 -1
- package/test/sap/ui/core/qunit/opa/fixture/bindingPath.js +1 -1
- package/test/sap/ui/core/qunit/opa/matchers/Interactable.qunit.js +1 -1
- package/test/sap/ui/core/qunit/opa/matchers/LabelFor.qunit.js +1 -1
- package/test/sap/ui/core/qunit/opa/matchers/Sibling.qunit.js +1 -1
- package/test/sap/ui/core/qunit/opa/matchers/Visible.qunit.js +1 -1
- package/test/sap/ui/core/qunit/opa/matchers/_Busy.qunit.js +1 -1
- package/test/sap/ui/core/qunit/opa/matchers/_Editable.qunit.js +1 -1
- package/test/sap/ui/core/qunit/opa/matchers/_Enabled.qunit.js +1 -1
- package/test/sap/ui/core/qunit/opa/matchers/_Visitor.qunit.js +1 -1
- package/test/sap/ui/core/qunit/opa/opa5/actions.qunit.js +1 -1
- package/test/sap/ui/core/qunit/opa/opa5/basics.qunit.js +1 -1
- package/test/sap/ui/core/qunit/opa/opa5/logging.qunit.js +1 -1
- package/test/sap/ui/core/qunit/opa/opa5/matchers.qunit.js +1 -1
- package/test/sap/ui/core/qunit/opa/selectors/_BindingPath.js +1 -1
- package/test/sap/ui/core/qunit/opa/selectors/_ControlSelectorGenerator.js +1 -1
- package/test/sap/ui/core/qunit/opa/selectors/_ControlSelectorValidator.js +1 -1
- package/test/sap/ui/core/qunit/opa/selectors/_DropdownItem.js +1 -1
- package/test/sap/ui/core/qunit/opa/selectors/_GlobalID.js +1 -1
- package/test/sap/ui/core/qunit/opa/selectors/_LabelFor.js +1 -1
- package/test/sap/ui/core/qunit/opa/selectors/_Properties.js +1 -1
- package/test/sap/ui/core/qunit/opa/selectors/_Selector.js +1 -1
- package/test/sap/ui/core/qunit/opa/selectors/_TableRowItem.js +1 -1
- package/test/sap/ui/core/qunit/opa/selectors/_ViewID.js +1 -1
- package/test/sap/ui/core/qunit/opa/testsuite.opa.qunit.js +448 -426
- package/test/sap/ui/core/qunit/performance/trace/FESR.qunit.js +8 -4
- package/test/sap/ui/core/qunit/performance/trace/Interaction.qunit.js +1 -1
- package/test/sap/ui/core/qunit/routing/Placeholder.qunit.js +1 -1
- package/test/sap/ui/core/qunit/routing/PlaceholderOptOut.qunit.js +1 -1
- package/test/sap/ui/core/qunit/tmpl/Template.qunit.js +1 -1
- package/test/sap/ui/core/qunit/ui5classes/ManagedObject.qunit.js +62 -1
- package/test/sap/ui/core/qunit/util/InvisibleMessage.qunit.js +1 -1
- package/test/sap/ui/core/qunit/util/LabelEnablement.qunit.js +1 -1
- package/test/sap/ui/core/qunit/util/Popup.qunit.js +1 -1
- package/test/sap/ui/core/qunit/util/ResponsivePaddingsEnablement.qunit.js +1 -1
- package/test/sap/ui/core/qunit/util/XMLPreprocessor.qunit.js +1 -1
- package/test/sap/ui/core/qunit/util/jquery.sap.dom.qunit.js +1 -1
- package/test/sap/ui/core/qunit/util/reflection/BaseTreeModifier.qunit.js +3 -3
- package/test/sap/ui/core/qunit/util/reflection/JsControlTreeModifier.qunit.js +3 -3
- package/test/sap/ui/core/qunit/util/reflection/XmlTreeModifier.qunit.js +3 -3
- package/test/sap/ui/core/qunit/util/reflection/testdata/comp/Component.js +10 -0
- package/test/sap/ui/core/qunit/util/reflection/testsuite.reflection.qunit.html +14 -0
- package/test/sap/ui/core/qunit/util/reflection/testsuite.reflection.qunit.js +30 -0
- package/test/sap/ui/core/qunit/util/testsuite.util.qunit.js +3 -56
- package/test/sap/ui/core/relnotes/changes-1.126.json +1 -17
- package/test/sap/ui/core/relnotes/changes-1.127.json +52 -0
- package/test/sap/ui/core/samples/databinding/UnitTable/ui5.yaml +1 -1
- package/test/sap/ui/qunit/TestRunner.js +721 -521
- package/test/sap/ui/qunit/testrunner.css +123 -20
- package/test/sap/ui/qunit/testrunner.html +57 -287
- /package/test/sap/ui/core/qunit/{component/testdata/other → util/reflection/testdata/comp}/fragment-withTemplating.fragment.xml +0 -0
|
@@ -182,7 +182,7 @@ sap.ui.define([
|
|
|
182
182
|
* @param {string} [mParameters.updateGroupId]
|
|
183
183
|
* The group ID that is used for update requests. If no update group ID is specified,
|
|
184
184
|
* <code>mParameters.groupId</code> is used. Valid update group IDs are
|
|
185
|
-
* <code>undefined</code>, '$auto', '$direct' or an application group ID.
|
|
185
|
+
* <code>undefined</code>, '$auto', '$auto.*', '$direct' or an application group ID.
|
|
186
186
|
* @param {boolean} [mParameters.withCredentials]
|
|
187
187
|
* Whether the XMLHttpRequest is called with <code>withCredentials</code>, so that user
|
|
188
188
|
* credentials are included in cross-origin requests by the browser (since 1.120.0)
|
|
@@ -234,7 +234,7 @@ sap.ui.define([
|
|
|
234
234
|
* @extends sap.ui.model.Model
|
|
235
235
|
* @public
|
|
236
236
|
* @since 1.37.0
|
|
237
|
-
* @version 1.
|
|
237
|
+
* @version 1.127.0
|
|
238
238
|
*/
|
|
239
239
|
ODataModel = Model.extend("sap.ui.model.odata.v4.ODataModel",
|
|
240
240
|
/** @lends sap.ui.model.odata.v4.ODataModel.prototype */{
|
|
@@ -397,6 +397,7 @@ sap.ui.define([
|
|
|
397
397
|
}
|
|
398
398
|
|
|
399
399
|
this.aAllBindings = [];
|
|
400
|
+
this.oAnnotationChangePromise = null; // @see #_requestAnnotationChanges
|
|
400
401
|
// The bindings holding keep-alive contexts without a $$getKeepAlive binding
|
|
401
402
|
this.mKeepAliveBindingsByPath = {};
|
|
402
403
|
this.mSupportedBindingModes = {
|
|
@@ -419,6 +420,22 @@ sap.ui.define([
|
|
|
419
420
|
this.mPath2DataRequestedCount = {};
|
|
420
421
|
}
|
|
421
422
|
|
|
423
|
+
/**
|
|
424
|
+
* Requests changes to annotations.
|
|
425
|
+
*
|
|
426
|
+
* @returns {Promise<Array<object>>|sap.ui.base.SyncPromise<undefined>}
|
|
427
|
+
* A promise resolving with an optional array of change objects defining a metamodel path and
|
|
428
|
+
* a value to be set for that path
|
|
429
|
+
*
|
|
430
|
+
* @private
|
|
431
|
+
* @see #setAnnotationChangePromise
|
|
432
|
+
*/
|
|
433
|
+
ODataModel.prototype._requestAnnotationChanges = function () {
|
|
434
|
+
this.oAnnotationChangePromise ??= SyncPromise.resolve(); // now it's too late for the setter
|
|
435
|
+
|
|
436
|
+
return this.oAnnotationChangePromise;
|
|
437
|
+
};
|
|
438
|
+
|
|
422
439
|
/**
|
|
423
440
|
* Submits the requests associated with this group ID in one batch request.
|
|
424
441
|
*
|
|
@@ -1007,9 +1024,8 @@ sap.ui.define([
|
|
|
1007
1024
|
* and the binding is relative or points to metadata, the binding may have an object value;
|
|
1008
1025
|
* in this case and unless the binding refers to an action advertisement the binding's mode must
|
|
1009
1026
|
* be {@link sap.ui.model.BindingMode.OneTime}. {@link sap.ui.model.BindingMode.OneWay OneWay}
|
|
1010
|
-
* is also supported (@experimental as of version 1.126.0)
|
|
1011
|
-
*
|
|
1012
|
-
* parent entity.
|
|
1027
|
+
* is also supported (@experimental as of version 1.126.0) for complex types and collections
|
|
1028
|
+
* thereof; for entity types, use {@link #bindContext} instead.
|
|
1013
1029
|
*
|
|
1014
1030
|
* @param {string} sPath
|
|
1015
1031
|
* The binding path in the model; must not end with a slash
|
|
@@ -2753,18 +2769,25 @@ sap.ui.define([
|
|
|
2753
2769
|
};
|
|
2754
2770
|
|
|
2755
2771
|
/**
|
|
2756
|
-
*
|
|
2757
|
-
*
|
|
2758
|
-
*
|
|
2772
|
+
* Sets a promise resolving with changes which are applied to all annotations loaded by this
|
|
2773
|
+
* model, either as part of service metadata or from annotation files given via parameter
|
|
2774
|
+
* "annotationURI" (see {@link #constructor}).
|
|
2759
2775
|
*
|
|
2760
|
-
* @param {
|
|
2776
|
+
* @param {Promise<Array<object>>} oAnnotationChangePromise
|
|
2777
|
+
* A promise resolving with an array of change objects defining a metamodel path (pointing to
|
|
2778
|
+
* an annotation) and a value to be set for that annotation
|
|
2779
|
+
* @throws {Error}
|
|
2780
|
+
* In case the promise is set too late or has already been set
|
|
2761
2781
|
*
|
|
2762
2782
|
* @private
|
|
2763
|
-
* @since 1.
|
|
2764
|
-
* @ui5-restricted sap.
|
|
2783
|
+
* @since 1.127.0
|
|
2784
|
+
* @ui5-restricted sap.ui.fl
|
|
2765
2785
|
*/
|
|
2766
|
-
ODataModel.prototype.
|
|
2767
|
-
this.
|
|
2786
|
+
ODataModel.prototype.setAnnotationChangePromise = function (oAnnotationChangePromise) {
|
|
2787
|
+
if (this.oAnnotationChangePromise) {
|
|
2788
|
+
throw Error("Too late");
|
|
2789
|
+
}
|
|
2790
|
+
this.oAnnotationChangePromise = oAnnotationChangePromise;
|
|
2768
2791
|
};
|
|
2769
2792
|
|
|
2770
2793
|
/**
|
|
@@ -2788,6 +2811,21 @@ sap.ui.define([
|
|
|
2788
2811
|
this.fnHttpListener = fnListener;
|
|
2789
2812
|
};
|
|
2790
2813
|
|
|
2814
|
+
/**
|
|
2815
|
+
* Tells whether an entity's ETag should be actively ignored (If-Match:*) for PATCH requests.
|
|
2816
|
+
* Ignored if there is no ETag. Decided at the point in time when the PATCH is actually being
|
|
2817
|
+
* sent.
|
|
2818
|
+
*
|
|
2819
|
+
* @param {boolean} bIgnoreETag - Whether an entity's ETag should be actively ignored
|
|
2820
|
+
*
|
|
2821
|
+
* @private
|
|
2822
|
+
* @since 1.110.0
|
|
2823
|
+
* @ui5-restricted sap.fe
|
|
2824
|
+
*/
|
|
2825
|
+
ODataModel.prototype.setIgnoreETag = function (bIgnoreETag) {
|
|
2826
|
+
this.bIgnoreETag = bIgnoreETag;
|
|
2827
|
+
};
|
|
2828
|
+
|
|
2791
2829
|
/**
|
|
2792
2830
|
* Method not supported
|
|
2793
2831
|
*
|
|
@@ -42,7 +42,7 @@ sap.ui.define([
|
|
|
42
42
|
* @mixes sap.ui.model.odata.v4.ODataBinding
|
|
43
43
|
* @public
|
|
44
44
|
* @since 1.37.0
|
|
45
|
-
* @version 1.
|
|
45
|
+
* @version 1.127.0
|
|
46
46
|
* @borrows sap.ui.model.odata.v4.ODataBinding#getGroupId as #getGroupId
|
|
47
47
|
* @borrows sap.ui.model.odata.v4.ODataBinding#getRootBinding as #getRootBinding
|
|
48
48
|
* @borrows sap.ui.model.odata.v4.ODataBinding#getUpdateGroupId as #getUpdateGroupId
|
|
@@ -349,7 +349,10 @@ sap.ui.define([
|
|
|
349
349
|
// Use Promise to become async so that only the latest sync call to checkUpdateInternal
|
|
350
350
|
// wins
|
|
351
351
|
vValue = Promise.resolve(vValue);
|
|
352
|
+
} else if (vValue && typeof vValue === "object") {
|
|
353
|
+
vValue = _Helper.publicClone(vValue);
|
|
352
354
|
}
|
|
355
|
+
|
|
353
356
|
return SyncPromise.all([vValue, vType]).then(function (aResults) {
|
|
354
357
|
var oType = aResults[1],
|
|
355
358
|
vValue0 = aResults[0];
|
|
@@ -432,34 +432,31 @@ sap.ui.define([
|
|
|
432
432
|
_AggregationCache.prototype.countDescendants = function (oGroupNode, iIndex) {
|
|
433
433
|
var i;
|
|
434
434
|
|
|
435
|
-
|
|
436
|
-
//
|
|
437
|
-
|
|
438
|
-
|
|
435
|
+
const iGroupNodeLevel = oGroupNode["@$ui5.node.level"];
|
|
436
|
+
// Note: iExpandTo may be undefined (when using data aggregation)
|
|
437
|
+
const iExpandTo = this.bUnifiedCache ? Infinity : this.oAggregation.expandTo;
|
|
438
|
+
// Note: "descendants" refers to LimitedDescendantCount and counts descendants within
|
|
439
|
+
// "top pyramid" only!
|
|
439
440
|
let iDescendants = _Helper.getPrivateAnnotation(oGroupNode, "descendants");
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
iGroupNodeLevel
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
// it counts as descendant. Or it is a sibling if oGroupNode did not have descendants.
|
|
453
|
-
if (aElements[i]["@$ui5.node.level"] <= iGroupNodeLevel
|
|
454
|
-
&& (!bCheckRank || _Helper.hasPrivateAnnotation(aElements[i], "rank"))) {
|
|
455
|
-
// Note: level 0 or 1 is used for initial placeholders of 1st level cache!
|
|
441
|
+
for (i = iIndex + 1; i < this.aElements.length; i += 1) {
|
|
442
|
+
const oCandidate = this.aElements[i];
|
|
443
|
+
const iCandidateLevel = oCandidate["@$ui5.node.level"];
|
|
444
|
+
// level 0 means "don't know" for a placeholder, otherwise candidate is grand total
|
|
445
|
+
const bLevelUnknown = iCandidateLevel === 0
|
|
446
|
+
&& _Helper.hasPrivateAnnotation(oCandidate, "placeholder");
|
|
447
|
+
if (!bLevelUnknown && iCandidateLevel <= iGroupNodeLevel) {
|
|
448
|
+
break; // not a descendant
|
|
449
|
+
}
|
|
450
|
+
if (iCandidateLevel <= iExpandTo && _Helper.hasPrivateAnnotation(oCandidate, "rank")) {
|
|
451
|
+
// a node w/ rank in oFirstLevel => counted in "descendants"
|
|
452
|
+
// Note: a placeholder w/ level 0 has a rank
|
|
456
453
|
if (!iDescendants) {
|
|
457
|
-
break; //
|
|
454
|
+
break; // not a descendant
|
|
458
455
|
}
|
|
459
456
|
iDescendants -= 1;
|
|
460
|
-
if (
|
|
457
|
+
if (oCandidate["@$ui5.node.isExpanded"] === false) {
|
|
461
458
|
// skip descendants of manually collapsed node
|
|
462
|
-
iDescendants -= _Helper.getPrivateAnnotation(
|
|
459
|
+
iDescendants -= _Helper.getPrivateAnnotation(oCandidate, "descendants", 0);
|
|
463
460
|
}
|
|
464
461
|
}
|
|
465
462
|
}
|
|
@@ -580,6 +577,7 @@ sap.ui.define([
|
|
|
580
577
|
if (this.oAggregation.createInPlace) {
|
|
581
578
|
return oPromise.then(async () => {
|
|
582
579
|
_Helper.removeByPath(this.mPostRequests, sTransientPredicate, oEntityData);
|
|
580
|
+
delete oEntityData["@$ui5.context.isTransient"];
|
|
583
581
|
const [iRank] = await Promise.all([
|
|
584
582
|
this.requestRank(oEntityData, oGroupLock),
|
|
585
583
|
this.requestNodeProperty(oEntityData, oGroupLock)
|
|
@@ -684,13 +682,16 @@ sap.ui.define([
|
|
|
684
682
|
};
|
|
685
683
|
|
|
686
684
|
/**
|
|
687
|
-
* Expands the given group node.
|
|
685
|
+
* Expands the given group node by the given number of levels.
|
|
688
686
|
*
|
|
689
687
|
* @param {sap.ui.model.odata.v4.lib._GroupLock} oGroupLock
|
|
690
688
|
* An unlocked lock for the group to associate the requests with
|
|
691
689
|
* @param {object|string} vGroupNodeOrPath
|
|
692
690
|
* The group node or its path relative to the cache; a group node instance (instead of a path)
|
|
693
691
|
* MUST only be given in case of "expanding" continued
|
|
692
|
+
* @param {number} iLevels
|
|
693
|
+
* The number of levels to expand, <code>iLevels >= Number.MAX_SAFE_INTEGER</code> can be
|
|
694
|
+
* used to expand all levels
|
|
694
695
|
* @param {function} [fnDataRequested]
|
|
695
696
|
* The function is called just before the back-end request is sent.
|
|
696
697
|
* If no back-end request is needed, the function is not called.
|
|
@@ -702,7 +703,8 @@ sap.ui.define([
|
|
|
702
703
|
* @public
|
|
703
704
|
* @see #collapse
|
|
704
705
|
*/
|
|
705
|
-
_AggregationCache.prototype.expand = function (oGroupLock, vGroupNodeOrPath,
|
|
706
|
+
_AggregationCache.prototype.expand = function (oGroupLock, vGroupNodeOrPath, iLevels,
|
|
707
|
+
fnDataRequested) {
|
|
706
708
|
var iCount,
|
|
707
709
|
oGroupNode = typeof vGroupNodeOrPath === "string"
|
|
708
710
|
? this.getValue(vGroupNodeOrPath)
|
|
@@ -714,7 +716,7 @@ sap.ui.define([
|
|
|
714
716
|
// Note: this also prevents a 2nd expand of the same node
|
|
715
717
|
_Helper.updateAll(this.mChangeListeners, vGroupNodeOrPath, oGroupNode,
|
|
716
718
|
_AggregationHelper.getOrCreateExpandedObject(this.oAggregation, oGroupNode));
|
|
717
|
-
this.oTreeState.expand(oGroupNode);
|
|
719
|
+
this.oTreeState.expand(oGroupNode, iLevels);
|
|
718
720
|
} // else: no update needed!
|
|
719
721
|
|
|
720
722
|
if (aSpliced) {
|
|
@@ -743,7 +745,7 @@ sap.ui.define([
|
|
|
743
745
|
}
|
|
744
746
|
}
|
|
745
747
|
if (!_Helper.hasPrivateAnnotation(oElement, "placeholder")) {
|
|
746
|
-
if (aSpliced.$stale) {
|
|
748
|
+
if (aSpliced.$stale && !oElement["@$ui5.context.isSelected"]) {
|
|
747
749
|
that.turnIntoPlaceholder(oElement, sPredicate);
|
|
748
750
|
} else {
|
|
749
751
|
that.aElements.$byPredicate[sPredicate] = oElement;
|
|
@@ -761,7 +763,7 @@ sap.ui.define([
|
|
|
761
763
|
});
|
|
762
764
|
return SyncPromise.resolve(iCount);
|
|
763
765
|
}
|
|
764
|
-
if (this.bUnifiedCache) {
|
|
766
|
+
if (this.bUnifiedCache || iLevels > 1) {
|
|
765
767
|
return SyncPromise.resolve(-1); // refresh needed
|
|
766
768
|
}
|
|
767
769
|
|
|
@@ -997,6 +999,28 @@ sap.ui.define([
|
|
|
997
999
|
&& _Helper.getPrivateAnnotation(oNode, "parent") === oCache);
|
|
998
1000
|
};
|
|
999
1001
|
|
|
1002
|
+
/**
|
|
1003
|
+
* Returns the index in <code>this.aElements</code> of the first in-place child of the given
|
|
1004
|
+
* parent node, or the first in-place root if no parent is given.
|
|
1005
|
+
*
|
|
1006
|
+
* @param {number} iParentIndex
|
|
1007
|
+
* The parent node's index, or -1 if looking for a root node
|
|
1008
|
+
* @returns {number}
|
|
1009
|
+
* The array index, or -1 if there is no such first in-place node
|
|
1010
|
+
*
|
|
1011
|
+
* @public
|
|
1012
|
+
*/
|
|
1013
|
+
_AggregationCache.prototype.get1stInPlaceChildIndex = function (iParentIndex) {
|
|
1014
|
+
const iLevel = iParentIndex >= 0
|
|
1015
|
+
? this.aElements[iParentIndex]["@$ui5.node.level"] + 1
|
|
1016
|
+
: 1;
|
|
1017
|
+
|
|
1018
|
+
return this.aElements.findIndex(
|
|
1019
|
+
(oElement, iIndex) => iIndex > iParentIndex
|
|
1020
|
+
&& oElement["@$ui5.node.level"] === iLevel
|
|
1021
|
+
&& oElement["@$ui5.context.isTransient"] === undefined);
|
|
1022
|
+
};
|
|
1023
|
+
|
|
1000
1024
|
/**
|
|
1001
1025
|
* Returns an array containing all current elements of this aggregation cache's flat list; the
|
|
1002
1026
|
* array is annotated with the collection's $count. If there are placeholders, the corresponding
|
|
@@ -1131,7 +1155,7 @@ sap.ui.define([
|
|
|
1131
1155
|
|
|
1132
1156
|
/**
|
|
1133
1157
|
* Returns the index of the given node's sibling, either the next one (via offset +1) or the
|
|
1134
|
-
* previous one (via offset -1).
|
|
1158
|
+
* previous one (via offset -1), skipping out-of-place nodes.
|
|
1135
1159
|
*
|
|
1136
1160
|
* @param {number} iIndex - The index of a node
|
|
1137
1161
|
* @param {number} iOffset - An offset, either -1 or +1
|
|
@@ -1169,8 +1193,16 @@ sap.ui.define([
|
|
|
1169
1193
|
|
|
1170
1194
|
if (iSiblingRank >= 0) {
|
|
1171
1195
|
const iSiblingIndex = this.findIndex(iSiblingRank, oCache);
|
|
1196
|
+
if (iSiblingIndex < 0) {
|
|
1197
|
+
return -1; // no such sibling
|
|
1198
|
+
}
|
|
1199
|
+
const oSibling = this.aElements[iSiblingIndex];
|
|
1172
1200
|
if (bSingleLevelCache && bAllowPlaceholder
|
|
1173
|
-
|| !_Helper.hasPrivateAnnotation(
|
|
1201
|
+
|| !_Helper.hasPrivateAnnotation(oSibling, "placeholder")) {
|
|
1202
|
+
if (oSibling["@$ui5.context.isTransient"] !== undefined) {
|
|
1203
|
+
// sibling is out of place, skip it!
|
|
1204
|
+
return this.getSiblingIndex(iSiblingIndex, iOffset, bAllowPlaceholder);
|
|
1205
|
+
}
|
|
1174
1206
|
return iSiblingIndex; // sibling found
|
|
1175
1207
|
}
|
|
1176
1208
|
} // else: iSiblingRank === undefined => return undefined;
|
|
@@ -1345,7 +1377,7 @@ sap.ui.define([
|
|
|
1345
1377
|
mPredicates[sPredicate] = true;
|
|
1346
1378
|
});
|
|
1347
1379
|
|
|
1348
|
-
return this.aElements.filter(function (oElement) {
|
|
1380
|
+
return Object.values(this.aElements.$byPredicate).filter(function (oElement) {
|
|
1349
1381
|
var sPredicate = _Helper.getPrivateAnnotation(oElement, "predicate");
|
|
1350
1382
|
|
|
1351
1383
|
if (!sPredicate) {
|
|
@@ -1354,10 +1386,13 @@ sap.ui.define([
|
|
|
1354
1386
|
|
|
1355
1387
|
if (mPredicates[sPredicate]) {
|
|
1356
1388
|
_AggregationHelper.markSplicedStale(oElement);
|
|
1389
|
+
mPredicates[sPredicate] = false;
|
|
1357
1390
|
return true; // keep and request
|
|
1358
1391
|
}
|
|
1359
1392
|
|
|
1360
|
-
|
|
1393
|
+
if (!(sPredicate in mPredicates)) {
|
|
1394
|
+
that.turnIntoPlaceholder(oElement, sPredicate);
|
|
1395
|
+
}
|
|
1361
1396
|
});
|
|
1362
1397
|
};
|
|
1363
1398
|
|
|
@@ -1422,6 +1457,7 @@ sap.ui.define([
|
|
|
1422
1457
|
if (this.oTreeState.isOutOfPlace(sChildPredicate)) {
|
|
1423
1458
|
// remove OOP for all descendants (incl. itself) of a moved OOP node
|
|
1424
1459
|
this.oTreeState.deleteOutOfPlace(sChildPredicate);
|
|
1460
|
+
delete oChildNode["@$ui5.context.isTransient"];
|
|
1425
1461
|
bRefreshNeeded = true;
|
|
1426
1462
|
}
|
|
1427
1463
|
|
|
@@ -1086,14 +1086,17 @@ sap.ui.define([
|
|
|
1086
1086
|
oNodeFilters.add(sNodeFilter);
|
|
1087
1087
|
});
|
|
1088
1088
|
});
|
|
1089
|
+
const aSelect = [
|
|
1090
|
+
oAggregation.$DistanceFromRoot,
|
|
1091
|
+
oAggregation.$DrillState,
|
|
1092
|
+
oAggregation.$LimitedRank
|
|
1093
|
+
];
|
|
1094
|
+
if (oAggregation.$LimitedDescendantCount) {
|
|
1095
|
+
aSelect.push(oAggregation.$LimitedDescendantCount);
|
|
1096
|
+
}
|
|
1089
1097
|
mQueryOptions = Object.assign({}, mQueryOptions, {
|
|
1090
1098
|
$filter : [...oNodeFilters].sort().join(" or "),
|
|
1091
|
-
$select :
|
|
1092
|
-
oAggregation.$DistanceFromRoot,
|
|
1093
|
-
oAggregation.$DrillState,
|
|
1094
|
-
oAggregation.$LimitedDescendantCount,
|
|
1095
|
-
oAggregation.$LimitedRank
|
|
1096
|
-
],
|
|
1099
|
+
$select : aSelect,
|
|
1097
1100
|
$top : oNodeFilters.size
|
|
1098
1101
|
});
|
|
1099
1102
|
delete mQueryOptions.$count;
|
|
@@ -122,7 +122,7 @@ sap.ui.define([
|
|
|
122
122
|
*/
|
|
123
123
|
_Cache.prototype._delete = function (oGroupLock, sEditUrl, sPath, oETagEntity, fnCallback) {
|
|
124
124
|
var aSegments = sPath.split("/"),
|
|
125
|
-
// either a :1 nav.prop, the index as string, or a key-predicate (kept
|
|
125
|
+
// either a :1 nav.prop, the index as string, or a key-predicate (kept alive and hidden)
|
|
126
126
|
sDeleteProperty = aSegments.pop(),
|
|
127
127
|
sParentPath = aSegments.join("/"),
|
|
128
128
|
that = this;
|
|
@@ -1418,7 +1418,7 @@ sap.ui.define([
|
|
|
1418
1418
|
* The key predicate of the entity; only evaluated if <code>iIndex</code> is undefined or
|
|
1419
1419
|
* negative
|
|
1420
1420
|
* @param {boolean} [bKeepAlive]
|
|
1421
|
-
* Whether the entity is kept
|
|
1421
|
+
* Whether the entity is kept alive
|
|
1422
1422
|
* @param {boolean} [bWithMessages]
|
|
1423
1423
|
* Whether the "@com.sap.vocabularies.Common.v1.Messages" path is treated specially, supported
|
|
1424
1424
|
* only for <code>sPath === ""</code>
|
|
@@ -1494,7 +1494,7 @@ sap.ui.define([
|
|
|
1494
1494
|
* Refreshes a single entity within a collection cache and removes it from the cache if the
|
|
1495
1495
|
* filter does not match anymore.
|
|
1496
1496
|
* Since 1.84.0, only removes entities that do not match the filter from the cache in case they
|
|
1497
|
-
* are not kept
|
|
1497
|
+
* are not kept alive. If the entity is kept alive, checks also the existence and removes it
|
|
1498
1498
|
* from the cache if it is no longer exists. For a kept-alive entity late properties are taken
|
|
1499
1499
|
* into account.
|
|
1500
1500
|
*
|
|
@@ -1507,14 +1507,14 @@ sap.ui.define([
|
|
|
1507
1507
|
* @param {string} [sPredicate]
|
|
1508
1508
|
* The key predicate of the entity; only evaluated if the <code>iIndex === undefined</code>
|
|
1509
1509
|
* @param {boolean} [bKeepAlive]
|
|
1510
|
-
* Whether the entity is kept
|
|
1510
|
+
* Whether the entity is kept alive
|
|
1511
1511
|
* @param {function} [fnDataRequested]
|
|
1512
1512
|
* The function is called just before the back-end request is sent.
|
|
1513
1513
|
* If no back-end request is needed, the function is not called.
|
|
1514
1514
|
* @param {function} [fnOnRemove]
|
|
1515
1515
|
* A function which is called after the entity does not match the binding's filter anymore,
|
|
1516
1516
|
* see {@link sap.ui.model.odata.v4.ODataListBinding#filter}. Since 1.84.0, if the entity is
|
|
1517
|
-
* kept
|
|
1517
|
+
* kept alive and still exists, the function is called with <code>true</code>, otherwise with
|
|
1518
1518
|
* <code>false</code>
|
|
1519
1519
|
* @returns {sap.ui.base.SyncPromise}
|
|
1520
1520
|
* A promise which resolves with <code>undefined</code> when the entity is updated in
|
|
@@ -2099,7 +2099,7 @@ sap.ui.define([
|
|
|
2099
2099
|
* The function is called just before a back-end request is sent for the first time.
|
|
2100
2100
|
* If no back-end request is needed, the function is not called.
|
|
2101
2101
|
* @param {function} fnIsKeepAlive
|
|
2102
|
-
* A function to tell whether the entity is kept
|
|
2102
|
+
* A function to tell whether the entity is kept alive
|
|
2103
2103
|
* @returns {sap.ui.base.SyncPromise}
|
|
2104
2104
|
* A promise for the PATCH request (resolves with <code>undefined</code>); rejected in case of
|
|
2105
2105
|
* cancellation or if no <code>fnErrorCallback</code> is given
|
|
@@ -3543,7 +3543,7 @@ sap.ui.define([
|
|
|
3543
3543
|
mQueryOptions.$filter = aElements.map(function (oElement) {
|
|
3544
3544
|
// all elements have a key predicate, so we will get a key filter
|
|
3545
3545
|
return _Helper.getKeyFilter(oElement, that.sMetaPath, mTypeForMetaPath);
|
|
3546
|
-
}).join(" or ");
|
|
3546
|
+
}).sort().join(" or ");
|
|
3547
3547
|
if (aElements.length > 1) { // avoid small default page size for server-driven paging
|
|
3548
3548
|
mQueryOptions.$top = aElements.length;
|
|
3549
3549
|
}
|
|
@@ -1890,7 +1890,7 @@ sap.ui.define([
|
|
|
1890
1890
|
* properties of the related entity type to the "$select" query options. Although this is
|
|
1891
1891
|
* not needed in order to obtain the correct nested entity it enables
|
|
1892
1892
|
* {@link sap.ui.model.odata.v4.Context#requestSideEffects}) to check the consistency of the
|
|
1893
|
-
* key
|
|
1893
|
+
* key predicate.
|
|
1894
1894
|
*
|
|
1895
1895
|
* @param {object} [mCacheQueryOptions]
|
|
1896
1896
|
* A map of query options as returned by
|
|
@@ -2358,7 +2358,7 @@ sap.ui.define([
|
|
|
2358
2358
|
|
|
2359
2359
|
/**
|
|
2360
2360
|
* Returns a clone of the given value where all occurrences of the private namespace
|
|
2361
|
-
* object have been deleted.
|
|
2361
|
+
* object have been deleted. Also, properties starting with "$" are dropped from arrays.
|
|
2362
2362
|
*
|
|
2363
2363
|
* @param {any} vValue
|
|
2364
2364
|
* Any value, including <code>undefined</code>
|
|
@@ -2373,6 +2373,9 @@ sap.ui.define([
|
|
|
2373
2373
|
* @see sap.ui.model.odata.v4.lib._Helper.clone
|
|
2374
2374
|
*/
|
|
2375
2375
|
publicClone : function (vValue, bRemoveClientAnnotations, bAsString) {
|
|
2376
|
+
if (Array.isArray(vValue)) {
|
|
2377
|
+
vValue = vValue.slice(); // drop "$*" properties
|
|
2378
|
+
}
|
|
2376
2379
|
return _Helper.clone(vValue, function (sKey, vValue0) {
|
|
2377
2380
|
if (bRemoveClientAnnotations ? !sKey.startsWith("@$ui5.") : sKey !== "@$ui5._") {
|
|
2378
2381
|
return vValue0;
|
|
@@ -2688,7 +2691,7 @@ sap.ui.define([
|
|
|
2688
2691
|
* taken into account. Fires change events for all changed properties. The function
|
|
2689
2692
|
* recursively handles modified, added or removed structural properties (or single-valued
|
|
2690
2693
|
* navigation properties) and fires change events for all modified/added/removed primitive
|
|
2691
|
-
* properties therein. It also fires for each collection
|
|
2694
|
+
* properties therein. It also fires for each collection encountered, no matter if changed
|
|
2692
2695
|
* or not.
|
|
2693
2696
|
*
|
|
2694
2697
|
* Restrictions:
|
|
@@ -2721,10 +2724,10 @@ sap.ui.define([
|
|
|
2721
2724
|
oTarget[sProperty] = vSourceProperty;
|
|
2722
2725
|
_Helper.fireChange(mChangeListeners, sPropertyPath, vSourceProperty);
|
|
2723
2726
|
} else if (vSourceProperty && typeof vSourceProperty === "object") {
|
|
2724
|
-
oTarget[sProperty]
|
|
2727
|
+
vTargetProperty = oTarget[sProperty]
|
|
2725
2728
|
= _Helper.updateAll(mChangeListeners, sPropertyPath, vTargetProperty || {},
|
|
2726
2729
|
vSourceProperty);
|
|
2727
|
-
_Helper.fireChange(mChangeListeners, sPropertyPath,
|
|
2730
|
+
_Helper.fireChange(mChangeListeners, sPropertyPath, vTargetProperty);
|
|
2728
2731
|
} else if (vTargetProperty !== vSourceProperty) {
|
|
2729
2732
|
oTarget[sProperty] = vSourceProperty;
|
|
2730
2733
|
if (vTargetProperty && typeof vTargetProperty === "object") {
|
|
@@ -2743,14 +2746,15 @@ sap.ui.define([
|
|
|
2743
2746
|
* are updated. Fires change events for all changed properties. The function recursively
|
|
2744
2747
|
* handles modified, added or removed structural properties and fires change events for all
|
|
2745
2748
|
* modified/added/removed primitive properties therein. Also fires change events for new
|
|
2746
|
-
* advertised actions.
|
|
2749
|
+
* advertised actions. It also fires for each collection encountered, no matter if changed
|
|
2750
|
+
* or not.
|
|
2747
2751
|
*
|
|
2748
2752
|
* Restrictions:
|
|
2749
2753
|
* - oOldObject and oNewObject are expected to have the same structure: when there is an
|
|
2750
2754
|
* object at a given path in either of them, the other one must have an object or
|
|
2751
2755
|
* <code>null</code>.
|
|
2752
|
-
* -
|
|
2753
|
-
*
|
|
2756
|
+
* - does not update collection-valued navigation properties properly (ignores both key
|
|
2757
|
+
* predicates and $count)
|
|
2754
2758
|
*
|
|
2755
2759
|
* @param {object} mChangeListeners A map of change listeners by path
|
|
2756
2760
|
* @param {string} sPath The path of the old object in mChangeListeners
|
|
@@ -2772,14 +2776,15 @@ sap.ui.define([
|
|
|
2772
2776
|
|
|
2773
2777
|
if (sProperty in oNewObject || sProperty[0] === "#") {
|
|
2774
2778
|
if (Array.isArray(vNewProperty)) {
|
|
2775
|
-
// copy complete collection
|
|
2776
|
-
// properties are not supported
|
|
2779
|
+
// copy complete collection
|
|
2777
2780
|
oOldObject[sProperty] = vNewProperty;
|
|
2781
|
+
_Helper.fireChange(mChangeListeners, sPropertyPath, vNewProperty);
|
|
2778
2782
|
} else if (vNewProperty && typeof vNewProperty === "object") {
|
|
2779
2783
|
if (vOldProperty) {
|
|
2780
2784
|
// a structural property was modified
|
|
2781
2785
|
_Helper.updateExisting(mChangeListeners, sPropertyPath, vOldProperty,
|
|
2782
2786
|
vNewProperty);
|
|
2787
|
+
_Helper.fireChange(mChangeListeners, sPropertyPath, vOldProperty);
|
|
2783
2788
|
} else {
|
|
2784
2789
|
// a structural property was added; copy the whole structure because we
|
|
2785
2790
|
// cannot tell which primitive properties are required therein
|
|
@@ -2948,7 +2953,8 @@ sap.ui.define([
|
|
|
2948
2953
|
* object at a given path in either of them, the other one must have an object or
|
|
2949
2954
|
* <code>null</code>.
|
|
2950
2955
|
* - "*" in aSelect does not work correctly if oNewValue contains navigation properties
|
|
2951
|
-
* - does not update navigation properties (ignores both key
|
|
2956
|
+
* - does not update collection-valued navigation properties properly (ignores both key
|
|
2957
|
+
* predicates and $count)
|
|
2952
2958
|
*
|
|
2953
2959
|
* @param {object} mChangeListeners
|
|
2954
2960
|
* A map of change listeners by path
|
|
@@ -822,9 +822,17 @@ sap.ui.define([
|
|
|
822
822
|
break;
|
|
823
823
|
case "$select":
|
|
824
824
|
if (Array.isArray(vValue)) {
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
825
|
+
if (bSortExpandSelect) {
|
|
826
|
+
vValue = vValue.slice().sort(); // Note: Array#sort is "in place"
|
|
827
|
+
for (let i = 1; i < vValue.length;) {
|
|
828
|
+
if (_Helper.hasPathPrefix(vValue[i], vValue[i - 1])) {
|
|
829
|
+
vValue.splice(i, 1);
|
|
830
|
+
} else {
|
|
831
|
+
i += 1;
|
|
832
|
+
}
|
|
833
|
+
}
|
|
834
|
+
}
|
|
835
|
+
vValue = vValue.join(",");
|
|
828
836
|
}
|
|
829
837
|
break;
|
|
830
838
|
default:
|
|
@@ -57,7 +57,7 @@ sap.ui.define([
|
|
|
57
57
|
|
|
58
58
|
const sPredicate = _Helper.getPrivateAnnotation(oNode, "predicate");
|
|
59
59
|
const oExpandLevel = this.mPredicate2ExpandLevels[sPredicate];
|
|
60
|
-
if (oExpandLevel && oExpandLevel.Levels) {
|
|
60
|
+
if (oExpandLevel && oExpandLevel.Levels !== 0) {
|
|
61
61
|
delete this.mPredicate2ExpandLevels[sPredicate];
|
|
62
62
|
} else {
|
|
63
63
|
// must have NodeId as the node may be missing when calling #getExpandLevels
|
|
@@ -117,13 +117,16 @@ sap.ui.define([
|
|
|
117
117
|
}
|
|
118
118
|
|
|
119
119
|
/**
|
|
120
|
-
* Expand a node.
|
|
120
|
+
* Expand a node by the given number of levels.
|
|
121
121
|
*
|
|
122
122
|
* @param {object} oNode - The node
|
|
123
|
+
* @param {number} [iLevels=1]
|
|
124
|
+
* The number of levels to expand, <code>iLevels >= Number.MAX_SAFE_INTEGER</code> can be
|
|
125
|
+
* used to expand all levels
|
|
123
126
|
*
|
|
124
127
|
* @public
|
|
125
128
|
*/
|
|
126
|
-
expand(oNode) {
|
|
129
|
+
expand(oNode, iLevels = 1) {
|
|
127
130
|
if (!this.sNodeProperty) {
|
|
128
131
|
return;
|
|
129
132
|
}
|
|
@@ -135,7 +138,10 @@ sap.ui.define([
|
|
|
135
138
|
} else {
|
|
136
139
|
// must have NodeId as the node may be missing when calling #getExpandLevels
|
|
137
140
|
const sNodeId = _Helper.drillDown(oNode, this.sNodeProperty);
|
|
138
|
-
|
|
141
|
+
if (iLevels >= Number.MAX_SAFE_INTEGER) {
|
|
142
|
+
iLevels = null;
|
|
143
|
+
}
|
|
144
|
+
this.mPredicate2ExpandLevels[sPredicate] = {NodeID : sNodeId, Levels : iLevels};
|
|
139
145
|
}
|
|
140
146
|
}
|
|
141
147
|
|
|
@@ -227,7 +227,7 @@ sap.ui.define([
|
|
|
227
227
|
*
|
|
228
228
|
* @extends sap.ui.model.Model
|
|
229
229
|
* @public
|
|
230
|
-
* @version 1.
|
|
230
|
+
* @version 1.127.0
|
|
231
231
|
*/
|
|
232
232
|
var ResourceModel = Model.extend("sap.ui.model.resource.ResourceModel", /** @lends sap.ui.model.resource.ResourceModel.prototype */ {
|
|
233
233
|
|
|
@@ -27,7 +27,7 @@ sap.ui.define([
|
|
|
27
27
|
* @extends sap.ui.model.SimpleType
|
|
28
28
|
*
|
|
29
29
|
* @author SAP SE
|
|
30
|
-
* @version 1.
|
|
30
|
+
* @version 1.127.0
|
|
31
31
|
*
|
|
32
32
|
* @public
|
|
33
33
|
* @param {object} [oFormatOptions] Formatting options. For a list of all available options, see {@link sap.ui.core.format.DateFormat.getDateInstance DateFormat}.
|
|
@@ -19,7 +19,7 @@ sap.ui.define(['./Date', 'sap/ui/core/format/DateFormat'],
|
|
|
19
19
|
* @extends sap.ui.model.type.Date
|
|
20
20
|
*
|
|
21
21
|
* @author SAP SE
|
|
22
|
-
* @version 1.
|
|
22
|
+
* @version 1.127.0
|
|
23
23
|
*
|
|
24
24
|
* @public
|
|
25
25
|
* @param {object} [oFormatOptions] Formatting options. For a list of all available options, see {@link sap.ui.core.format.DateFormat.getDateTimeInstance DateFormat}.
|
|
@@ -19,7 +19,7 @@ sap.ui.define(['./DateInterval', 'sap/ui/core/format/DateFormat'],
|
|
|
19
19
|
* @extends sap.ui.model.type.DateInterval
|
|
20
20
|
*
|
|
21
21
|
* @author SAP SE
|
|
22
|
-
* @version 1.
|
|
22
|
+
* @version 1.127.0
|
|
23
23
|
*
|
|
24
24
|
* @public
|
|
25
25
|
* @param {object} [oFormatOptions] Formatting options. For a list of all available options, see {@link sap.ui.core.format.DateFormat.getDateTimeInstance DateFormat}.
|