@openui5/sap.ui.core 1.124.2 → 1.126.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/.eslintrc.json +4 -1
- package/.reuse/dep5 +9 -4
- package/THIRDPARTY.txt +13 -6
- 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/Log.js +0 -16
- 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/ObjectPath.js +6 -6
- 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 +35 -10
- package/src/sap/ui/Global.js +6 -6
- package/src/sap/ui/base/Event.js +1 -1
- package/src/sap/ui/base/EventProvider.js +1 -1
- package/src/sap/ui/base/Interface.js +1 -1
- package/src/sap/ui/base/ManagedObject.js +16 -1
- package/src/sap/ui/base/ManagedObjectMetadata.js +1 -1
- package/src/sap/ui/base/Metadata.js +1 -1
- package/src/sap/ui/base/Object.js +1 -1
- package/src/sap/ui/base/ObjectPool.js +1 -1
- package/src/sap/ui/core/.library +3 -3
- package/src/sap/ui/core/BusyIndicator.js +1 -1
- package/src/sap/ui/core/Component.js +22 -5
- package/src/sap/ui/core/ComponentContainer.js +1 -1
- package/src/sap/ui/core/ComponentMetadata.js +1 -1
- package/src/sap/ui/core/ComponentSupport.js +1 -1
- package/src/sap/ui/core/Configuration.js +1 -1
- package/src/sap/ui/core/Control.js +1 -1
- package/src/sap/ui/core/Core.js +31 -29
- 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 +1 -1
- package/src/sap/ui/core/ElementMetadata.js +4 -3
- package/src/sap/ui/core/EnabledPropagator.js +1 -1
- package/src/sap/ui/core/EventBus.js +1 -1
- package/src/sap/ui/core/ExtensionPoint.js +23 -9
- package/src/sap/ui/core/Fragment.js +15 -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 +84 -50
- 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 +66 -1
- package/src/sap/ui/core/LayoutData.js +1 -1
- package/src/sap/ui/core/Lib.js +2 -2
- 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 +148 -102
- package/src/sap/ui/core/Manifest.js +1 -1
- package/src/sap/ui/core/Message.js +1 -1
- package/src/sap/ui/core/RenderManager.js +1 -1
- package/src/sap/ui/core/Renderer.js +1 -1
- package/src/sap/ui/core/ResizeHandler.js +1 -1
- package/src/sap/ui/core/ScrollBar.js +1 -1
- package/src/sap/ui/core/SeparatorItem.js +1 -1
- package/src/sap/ui/core/Title.js +1 -1
- package/src/sap/ui/core/TooltipBase.js +1 -1
- package/src/sap/ui/core/UIArea.js +2 -2
- package/src/sap/ui/core/UIComponent.js +23 -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 +1 -1
- package/src/sap/ui/core/XMLCompositeMetadata.js +1 -1
- package/src/sap/ui/core/XMLTemplateProcessor.js +110 -74
- package/src/sap/ui/core/boot.js +1 -6
- package/src/sap/ui/core/cldr/zh_TW.json +20 -20
- 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 +2 -2
- package/src/sap/ui/core/dnd/DragAndDrop.js +180 -33
- package/src/sap/ui/core/dnd/DragDropBase.js +13 -2
- 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 +6 -3
- package/src/sap/ui/core/fieldhelp/FieldHelp.js +389 -0
- package/src/sap/ui/core/fieldhelp/FieldHelpUtil.js +62 -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 +2 -1
- package/src/sap/ui/core/library.js +49 -9
- 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/mvc/Controller.js +77 -77
- 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 +10 -2
- package/src/sap/ui/core/mvc/XMLProcessingMode.js +4 -1
- package/src/sap/ui/core/mvc/XMLView.js +33 -5
- package/src/sap/ui/core/mvc/XMLViewRenderer.js +40 -7
- 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/async/TargetCache.js +12 -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/bootstrapFallback.js +1 -1
- package/src/sap/ui/core/support/plugins/ControlTree.js +1 -1
- package/src/sap/ui/core/support/plugins/Interaction.js +1 -1
- package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -1
- package/src/sap/ui/core/support/plugins/Performance.js +1 -1
- package/src/sap/ui/core/support/plugins/Selector.js +1 -1
- package/src/sap/ui/core/support/plugins/TechInfo.js +1 -1
- package/src/sap/ui/core/support/plugins/Trace.js +1 -1
- package/src/sap/ui/core/support/plugins/ViewInfo.js +1 -1
- package/src/sap/ui/core/themes/sap_hcb/base_BlindLayer.less +37 -0
- package/src/sap/ui/core/themes/sap_hcb/base_BrowserScrollbar.less +36 -0
- package/src/sap/ui/core/themes/sap_hcb/base_BusyIndicator.less +19 -0
- package/src/sap/ui/core/themes/sap_hcb/base_CommandShortcutHints.less +20 -0
- package/src/sap/ui/core/themes/sap_hcb/base_DragAndDrop.less +76 -0
- package/src/sap/ui/core/themes/sap_hcb/base_Icon.less +144 -0
- package/src/sap/ui/core/themes/sap_hcb/base_LocalBusyIndicator.less +292 -0
- package/src/sap/ui/core/themes/sap_hcb/base_SAP-icons.less +10 -0
- package/src/sap/ui/core/themes/sap_hcb/base_ScrollBar.less +20 -0
- package/src/sap/ui/core/themes/sap_hcb/base_Shadow.less +3 -0
- package/src/sap/ui/core/themes/sap_hcb/base_TechnicalInfo.less +157 -0
- package/src/sap/ui/core/themes/sap_hcb/base_View.less +12 -0
- package/src/sap/ui/core/themes/sap_hcb/base_media.less +36 -0
- package/src/sap/ui/core/themes/sap_hcb/base_parameterClasses.less +83 -0
- package/src/sap/ui/core/themes/sap_hcb/base_shared.less +340 -0
- package/src/sap/ui/core/themes/sap_hcb/library.source.less +27 -1
- package/src/sap/ui/core/theming/Parameters.js +66 -6
- 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/XMLPreprocessor.js +14 -15
- 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/jquery/control.js +6 -3
- package/src/sap/ui/model/Binding.js +38 -0
- package/src/sap/ui/model/ClientModel.js +1 -1
- package/src/sap/ui/model/CompositeDataState.js +1 -1
- package/src/sap/ui/model/CompositeType.js +1 -1
- package/src/sap/ui/model/DataState.js +1 -1
- package/src/sap/ui/model/ManagedObjectBindingSupport.js +5 -0
- package/src/sap/ui/model/MetaModel.js +1 -1
- package/src/sap/ui/model/Model.js +1 -1
- package/src/sap/ui/model/SelectionModel.js +1 -1
- package/src/sap/ui/model/SimpleType.js +1 -1
- package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
- package/src/sap/ui/model/Type.js +1 -1
- package/src/sap/ui/model/analytics/AnalyticalBinding.js +8 -12
- package/src/sap/ui/model/base/ManagedObjectModel.js +12 -2
- package/src/sap/ui/model/json/JSONModel.js +6 -5
- package/src/sap/ui/model/message/MessageModel.js +1 -1
- package/src/sap/ui/model/odata/ODataAnnotations.js +1 -1
- package/src/sap/ui/model/odata/ODataMessageParser.js +1 -1
- package/src/sap/ui/model/odata/ODataMetaModel.js +1 -1
- package/src/sap/ui/model/odata/ODataMetadata.js +1 -1
- package/src/sap/ui/model/odata/ODataModel.js +1 -1
- package/src/sap/ui/model/odata/ODataUtils.js +22 -14
- 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 +50 -6
- package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +1 -1
- package/src/sap/ui/model/odata/v4/Context.js +127 -46
- package/src/sap/ui/model/odata/v4/ODataBinding.js +20 -20
- package/src/sap/ui/model/odata/v4/ODataContextBinding.js +72 -73
- package/src/sap/ui/model/odata/v4/ODataListBinding.js +406 -250
- package/src/sap/ui/model/odata/v4/ODataMetaModel.js +49 -47
- package/src/sap/ui/model/odata/v4/ODataModel.js +271 -217
- package/src/sap/ui/model/odata/v4/ODataParentBinding.js +205 -205
- package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +11 -10
- package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +232 -61
- package/src/sap/ui/model/odata/v4/lib/_AggregationHelper.js +53 -9
- package/src/sap/ui/model/odata/v4/lib/_Cache.js +53 -59
- package/src/sap/ui/model/odata/v4/lib/_Helper.js +140 -80
- package/src/sap/ui/model/odata/v4/lib/_Parser.js +3 -3
- package/src/sap/ui/model/odata/v4/lib/_Requestor.js +98 -90
- package/src/sap/ui/model/odata/v4/lib/_TreeState.js +1 -1
- package/src/sap/ui/model/odata/v4/lib/_V2MetadataConverter.js +22 -22
- package/src/sap/ui/model/odata/v4/lib/_V2Requestor.js +63 -63
- package/src/sap/ui/model/resource/ResourceModel.js +7 -2
- 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 +1 -1
- package/src/sap/ui/qunit/qunit-coverage-istanbul.js +1 -1
- package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
- package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +1 -1
- package/src/sap/ui/test/OpaPlugin.js +36 -12
- package/src/sap/ui/test/generic/TestBase.js +1 -1
- package/src/sap/ui/test/starter/_utils.js +18 -3
- package/src/sap/ui/util/Storage.js +1 -1
- package/src/ui5loader-autoconfig.js +0 -25
- package/test/sap/ui/core/BindableResponseHeaders.html +5 -6
- package/test/sap/ui/core/ComponentCleanup.html +46 -46
- package/test/sap/ui/core/ComponentManifestFirst.html +26 -20
- package/test/sap/ui/core/ContextMenuSupport.html +9 -10
- package/test/sap/ui/core/DesigntimeOverview.html +1 -1
- package/test/sap/ui/core/EventBroadcaster.html +2 -2
- package/test/sap/ui/core/FieldGroup.html +70 -61
- package/test/sap/ui/core/GenericEventBinding.html +26 -23
- package/test/sap/ui/core/HTMLControl.html +46 -38
- package/test/sap/ui/core/HTMLSanitizer.html +70 -45
- package/test/sap/ui/core/IntervalTrigger.html +22 -21
- package/test/sap/ui/core/InvisibleControls.html +72 -72
- package/test/sap/ui/core/InvisibleText.html +2 -2
- package/test/sap/ui/core/LRUPersistentCache.html +19 -18
- package/test/sap/ui/core/LabelEnablement.html +18 -29
- package/test/sap/ui/core/Localization.html +40 -65
- package/test/sap/ui/core/Localization_HeapUsage.html +11 -12
- package/test/sap/ui/core/ManagedObjectModel.html +6 -7
- package/test/sap/ui/core/ODataAnnotationsPerformance.html +592 -602
- package/test/sap/ui/core/ODataV2CanonicalRequests.html +16 -13
- package/test/sap/ui/core/ODataV2Messages.html +15 -12
- package/test/sap/ui/core/ODataV2MessagesPerf.html +156 -132
- package/test/sap/ui/core/Popup.html +18 -14
- package/test/sap/ui/core/PopupWithUserSelection.html +4 -4
- package/test/sap/ui/core/StashedControlSupport.html +1 -1
- package/test/sap/ui/core/ThemeParameters.html +32 -20
- package/test/sap/ui/core/ValidateURL.html +109 -75
- package/test/sap/ui/core/demokit/sample/Messaging/ODataBackendMessagesComp/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/sample/OpaStartup/iStartMyAppInAFrame/iStartMyAppInAFrame.html +2 -1
- package/test/sap/ui/core/demokit/sample/OpaStartup/iStartMyAppInAFrame/iStartMyAppInAFrame.js +2 -12
- package/test/sap/ui/core/demokit/sample/ViewTemplate/scenario/Component.js +1 -4
- package/test/sap/ui/core/demokit/sample/ViewTemplate/scenario/Detail.controller.js +0 -1
- package/test/sap/ui/core/demokit/sample/ViewTemplate/scenario/Main.controller.js +0 -1
- package/test/sap/ui/core/demokit/sample/ViewTemplate/scenario/Opa.qunit.html +0 -1
- package/test/sap/ui/core/demokit/sample/ViewTemplate/scenario/extension/Component.js +1 -5
- package/test/sap/ui/core/demokit/sample/ViewTemplate/scenario/manifest.json +2 -10
- package/test/sap/ui/core/demokit/sample/ViewTemplate/tiny/Component.js +4 -1
- package/test/sap/ui/core/demokit/sample/ViewTemplate/tiny/manifest.json +37 -0
- package/test/sap/ui/core/demokit/sample/ViewTemplate/types/Component.js +5 -1
- package/test/sap/ui/core/demokit/sample/ViewTemplate/types/manifest.json +42 -0
- package/test/sap/ui/core/demokit/sample/ViewTemplate/valuelist/Component.js +6 -3
- package/test/sap/ui/core/demokit/sample/ViewTemplate/valuelist/Main.view.xml +4 -1
- package/test/sap/ui/core/demokit/sample/ViewTemplate/valuelist/manifest.json +49 -0
- package/test/sap/ui/core/demokit/sample/common/Controller.js +2 -2
- package/test/sap/ui/core/demokit/sample/common/ValueHelp.js +2 -2
- 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/types/v2/DateTime/Component.js +1 -0
- package/test/sap/ui/core/demokit/sample/odata/types/v2/DateTime/manifest.json +1 -2
- package/test/sap/ui/core/demokit/sample/odata/types/v2/DateTimeOffset/Component.js +1 -0
- package/test/sap/ui/core/demokit/sample/odata/types/v2/DateTimeOffset/manifest.json +1 -2
- package/test/sap/ui/core/demokit/sample/odata/types/v2/Time/Component.js +1 -0
- package/test/sap/ui/core/demokit/sample/odata/types/v2/Time/manifest.json +1 -2
- package/test/sap/ui/core/demokit/sample/odata/types/v4/Date/Component.js +1 -0
- package/test/sap/ui/core/demokit/sample/odata/types/v4/Date/manifest.json +1 -2
- package/test/sap/ui/core/demokit/sample/odata/types/v4/DateTimeOffset/Component.js +1 -0
- package/test/sap/ui/core/demokit/sample/odata/types/v4/DateTimeOffset/manifest.json +1 -2
- package/test/sap/ui/core/demokit/sample/odata/types/v4/TimeOfDay/Component.js +1 -0
- package/test/sap/ui/core/demokit/sample/odata/types/v4/TimeOfDay/manifest.json +1 -2
- package/test/sap/ui/core/demokit/sample/odata/v4/Ancestry/Component.js +1 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/Ancestry/Main.controller.js +35 -31
- package/test/sap/ui/core/demokit/sample/odata/v4/Ancestry/manifest.json +1 -10
- package/test/sap/ui/core/demokit/sample/odata/v4/ConsumeV2Service/Component.js +1 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/ConsumeV2Service/manifest.json +2 -11
- package/test/sap/ui/core/demokit/sample/odata/v4/DataAggregation/Component.js +1 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/DataAggregation/DataAggregation.controller.js +71 -68
- package/test/sap/ui/core/demokit/sample/odata/v4/DataAggregation/Opa.qunit.html +0 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/DataAggregation/manifest.json +3 -11
- package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/Component.js +1 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/Opa.qunit.html +0 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/manifest.json +7 -16
- package/test/sap/ui/core/demokit/sample/odata/v4/Draft/Component.js +1 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/Draft/Main.controller.js +3 -3
- package/test/sap/ui/core/demokit/sample/odata/v4/Draft/Opa.qunit.html +0 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/Draft/manifest.json +1 -10
- package/test/sap/ui/core/demokit/sample/odata/v4/FieldGroups/Component.js +1 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/FieldGroups/FieldGroups.view.xml +0 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/FieldGroups/Opa.qunit.html +0 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/FieldGroups/manifest.json +3 -11
- package/test/sap/ui/core/demokit/sample/odata/v4/FlatDataAggregation/Component.js +1 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/FlatDataAggregation/FlatDataAggregation.controller.js +46 -43
- package/test/sap/ui/core/demokit/sample/odata/v4/FlatDataAggregation/FlatDataAggregation.view.xml +12 -10
- package/test/sap/ui/core/demokit/sample/odata/v4/FlatDataAggregation/manifest.json +3 -11
- package/test/sap/ui/core/demokit/sample/odata/v4/FlexibleColumnLayout/Component.js +1 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/FlexibleColumnLayout/Main.controller.js +21 -18
- package/test/sap/ui/core/demokit/sample/odata/v4/FlexibleColumnLayout/Opa.qunit.html +0 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/FlexibleColumnLayout/manifest.json +4 -7
- package/test/sap/ui/core/demokit/sample/odata/v4/GridTable/Component.js +1 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/GridTable/SandboxModel.js +6 -6
- package/test/sap/ui/core/demokit/sample/odata/v4/GridTable/manifest.json +1 -10
- package/test/sap/ui/core/demokit/sample/odata/v4/HierarchyBindAction/Component.js +1 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/HierarchyBindAction/Main.controller.js +130 -38
- package/test/sap/ui/core/demokit/sample/odata/v4/HierarchyBindAction/Main.view.xml +35 -43
- package/test/sap/ui/core/demokit/sample/odata/v4/HierarchyBindAction/manifest.json +1 -10
- package/test/sap/ui/core/demokit/sample/odata/v4/LateProperties/Component.js +1 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/LateProperties/Main.controller.js +25 -22
- package/test/sap/ui/core/demokit/sample/odata/v4/LateProperties/Opa.OptimisticBatch.qunit.html +0 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/LateProperties/Opa.OptimisticBatch.qunit.js +5 -4
- package/test/sap/ui/core/demokit/sample/odata/v4/LateProperties/Opa.qunit.html +0 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/LateProperties/manifest.json +3 -7
- package/test/sap/ui/core/demokit/sample/odata/v4/ListBinding/Component.js +1 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/ListBinding/Opa.qunit.html +0 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/ListBinding/manifest.json +3 -11
- package/test/sap/ui/core/demokit/sample/odata/v4/ListBindingTemplate/Component.js +1 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/ListBindingTemplate/Opa.qunit.html +0 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/ListBindingTemplate/manifest.json +2 -10
- package/test/sap/ui/core/demokit/sample/odata/v4/MultipleInlineCreationRowsGrid/Component.js +1 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/MultipleInlineCreationRowsGrid/Main.controller.js +60 -57
- package/test/sap/ui/core/demokit/sample/odata/v4/MultipleInlineCreationRowsGrid/Opa.qunit.html +0 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/MultipleInlineCreationRowsGrid/manifest.json +4 -6
- package/test/sap/ui/core/demokit/sample/odata/v4/MusicArtists/Component.js +1 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/MusicArtists/manifest.json +3 -11
- package/test/sap/ui/core/demokit/sample/odata/v4/Products/Component.js +1 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/Products/Main.view.xml +0 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/Products/Opa.qunit.html +0 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/Products/manifest.json +3 -10
- package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/Component.js +1 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/Opa.qunit.html +0 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/RecursiveHierarchy.controller.js +194 -90
- package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/RecursiveHierarchy.view.xml +102 -58
- package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/SandboxModel.js +135 -39
- package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/data/metadata.xml +14 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/manifest.json +1 -10
- package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/pages/Main.js +4 -3
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrderTP100_V2/Component.js +1 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrderTP100_V2/Opa.qunit.html +0 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrderTP100_V2/manifest.json +2 -11
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrderTP100_V4/Component.js +1 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrderTP100_V4/Opa.qunit.html +0 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrderTP100_V4/manifest.json +2 -11
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/Component.js +19 -2
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/Opa.qunit.html +0 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/manifest.json +3 -10
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/tests/CreateRelative.js +1 -8
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrdersRTATest/Component.js +1 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrdersRTATest/Main.controller.js +1 -2
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrdersRTATest/Opa.qunit.html +0 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrdersRTATest/manifest.json +6 -5
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrdersTemplate/Component.js +1 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrdersTemplate/Opa.qunit.html +0 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrdersTemplate/manifest.json +2 -10
- package/test/sap/ui/core/demokit/sample/odata/v4/ServerDrivenPaging/Component.js +1 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/ServerDrivenPaging/Opa.qunit.html +0 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/ServerDrivenPaging/manifest.json +3 -10
- package/test/sap/ui/core/demokit/sample/odata/v4/Sticky/Opa.qunit.html +0 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/Sticky/manifest.json +3 -11
- 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/Component.js +1 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/01/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/01/webapp/Component.js +1 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/01/webapp/index.html +0 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/01/webapp/localService/mockserver.js +4 -4
- package/test/sap/ui/core/demokit/tutorial/odatav4/01/webapp/manifest.json +2 -13
- package/test/sap/ui/core/demokit/tutorial/odatav4/02/Component.js +1 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/02/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/02/webapp/Component.js +1 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/02/webapp/index.html +0 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/02/webapp/localService/mockserver.js +4 -4
- package/test/sap/ui/core/demokit/tutorial/odatav4/02/webapp/manifest.json +2 -13
- package/test/sap/ui/core/demokit/tutorial/odatav4/03/Component.js +1 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/03/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/03/webapp/Component.js +1 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/03/webapp/index.html +0 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/03/webapp/localService/mockserver.js +4 -4
- package/test/sap/ui/core/demokit/tutorial/odatav4/03/webapp/manifest.json +2 -13
- package/test/sap/ui/core/demokit/tutorial/odatav4/04/Component.js +1 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/04/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/04/webapp/Component.js +1 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/04/webapp/index.html +0 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/04/webapp/localService/mockserver.js +4 -4
- package/test/sap/ui/core/demokit/tutorial/odatav4/04/webapp/manifest.json +2 -13
- package/test/sap/ui/core/demokit/tutorial/odatav4/05/Component.js +1 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/05/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/05/webapp/Component.js +1 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/05/webapp/index.html +0 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/05/webapp/localService/mockserver.js +4 -4
- package/test/sap/ui/core/demokit/tutorial/odatav4/05/webapp/manifest.json +2 -13
- package/test/sap/ui/core/demokit/tutorial/odatav4/06/Component.js +1 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/06/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/06/webapp/Component.js +1 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/06/webapp/index.html +0 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/06/webapp/localService/mockserver.js +4 -4
- package/test/sap/ui/core/demokit/tutorial/odatav4/06/webapp/manifest.json +2 -13
- package/test/sap/ui/core/demokit/tutorial/odatav4/07/Component.js +1 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/07/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/07/webapp/Component.js +1 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/07/webapp/index.html +0 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/07/webapp/localService/mockserver.js +4 -4
- package/test/sap/ui/core/demokit/tutorial/odatav4/07/webapp/manifest.json +2 -13
- package/test/sap/ui/core/demokit/tutorial/odatav4/08/Component.js +1 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/08/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/08/webapp/Component.js +1 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/08/webapp/index.html +0 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/08/webapp/localService/mockserver.js +4 -4
- package/test/sap/ui/core/demokit/tutorial/odatav4/08/webapp/manifest.json +2 -13
- package/test/sap/ui/core/demokit/tutorial/odatav4/08/webapp/test/integration/opaTests.qunit.html +0 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/09/Component.js +1 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/09/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/09/webapp/Component.js +1 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/09/webapp/index.html +0 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/09/webapp/localService/mockserver.js +4 -4
- package/test/sap/ui/core/demokit/tutorial/odatav4/09/webapp/manifest.json +2 -11
- package/test/sap/ui/core/demokit/tutorial/odatav4/10/Component.js +1 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/10/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/10/webapp/Component.js +1 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/10/webapp/index.html +0 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/10/webapp/localService/mockserver.js +4 -4
- package/test/sap/ui/core/demokit/tutorial/odatav4/10/webapp/manifest.json +2 -11
- package/test/sap/ui/core/demokit/tutorial/odatav4/11/Component.js +1 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/11/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/11/webapp/Component.js +1 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/11/webapp/index.html +0 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/11/webapp/localService/mockserver.js +4 -4
- package/test/sap/ui/core/demokit/tutorial/odatav4/11/webapp/manifest.json +2 -11
- package/test/sap/ui/core/demokit/tutorial/odatav4/11/webapp/test/integration/opaTests.qunit.html +0 -1
- package/test/sap/ui/core/demokit/tutorial/troubleshooting/01/ui5.yaml +1 -1
- package/test/sap/ui/core/getComputedStyle.html +2 -1
- package/test/sap/ui/core/getComputedStyleFF.html +1 -1
- package/test/sap/ui/core/internal/samples/client/MusicCollection/Component.js +5 -8
- package/test/sap/ui/core/internal/samples/client/MusicCollection/Main.controller.js +6 -2
- package/test/sap/ui/core/internal/samples/client/MusicCollection/Main.view.xml +7 -3
- package/test/sap/ui/core/internal/samples/client/MusicCollection/index.html +1 -3
- package/test/sap/ui/core/internal/samples/client/MusicCollection/manifest.json +1 -13
- package/test/sap/ui/core/internal/samples/odata/twoFields/Component.js +3 -45
- package/test/sap/ui/core/internal/samples/odata/twoFields/Main.controller.js +37 -1
- package/test/sap/ui/core/internal/samples/odata/twoFields/Main.view.xml +5 -5
- package/test/sap/ui/core/internal/samples/odata/twoFields/Opa.qunit.html +1 -3
- package/test/sap/ui/core/internal/samples/odata/twoFields/index.html +1 -3
- package/test/sap/ui/core/internal/samples/odata/twoFields/manifest.json +1 -11
- package/test/sap/ui/core/internal/samples/odata/v2/Products/Component.js +3 -22
- package/test/sap/ui/core/internal/samples/odata/v2/Products/Main.controller.js +16 -22
- package/test/sap/ui/core/internal/samples/odata/v2/Products/Main.view.xml +3 -2
- package/test/sap/ui/core/internal/samples/odata/v2/Products/SandboxModel.js +1 -1
- package/test/sap/ui/core/internal/samples/odata/v2/Products/index.html +1 -3
- package/test/sap/ui/core/internal/samples/odata/v2/Products/manifest.json +2 -13
- package/test/sap/ui/core/internal/samples/odata/v2/SalesOrders/Component.js +1 -0
- package/test/sap/ui/core/internal/samples/odata/v2/SalesOrders/Main.controller.js +49 -41
- package/test/sap/ui/core/internal/samples/odata/v2/SalesOrders/Main.view.xml +6 -4
- package/test/sap/ui/core/internal/samples/odata/v2/SalesOrders/manifest.json +3 -12
- package/test/sap/ui/core/internal/samples/odata/v2/TreeTable/Component.js +1 -0
- package/test/sap/ui/core/internal/samples/odata/v2/TreeTable/Main.controller.js +2 -2
- package/test/sap/ui/core/internal/samples/odata/v2/TreeTable/Main.view.xml +7 -6
- package/test/sap/ui/core/internal/samples/odata/v2/TreeTable/index.html +1 -3
- package/test/sap/ui/core/internal/samples/odata/v2/TreeTable/manifest.json +1 -11
- package/test/sap/ui/core/qunit/CommandExecution.qunit.js +96 -92
- package/test/sap/ui/core/qunit/Fragment.qunit.js +20 -20
- package/test/sap/ui/core/qunit/Fragment_legacyAPIs.qunit.js +4 -4
- package/test/sap/ui/core/qunit/Icon.qunit.js +217 -1
- package/test/sap/ui/core/qunit/ManagedObjectModel.qunit.js +24 -0
- package/test/sap/ui/core/qunit/RenderManager.qunit.js +18 -5
- package/test/sap/ui/core/qunit/ScrollBar.qunit.js +15 -18
- package/test/sap/ui/core/qunit/ThemeParameters.qunit.js +80 -0
- package/test/sap/ui/core/qunit/ThemeParameters_legacyAPIs.qunit.js +1 -0
- package/test/sap/ui/core/qunit/analytics/AnalyticalBinding.qunit.js +6 -14
- package/test/sap/ui/core/qunit/app/testsuite.app.qunit.js +2 -1
- package/test/sap/ui/core/qunit/base/Config.qunit.js +117 -114
- package/test/sap/ui/core/qunit/base/Config_bootstrap.qunit.html +3 -3
- package/test/sap/ui/core/qunit/base/Config_bootstrap.qunit.js +98 -95
- package/test/sap/ui/core/qunit/base/Config_cascade.qunit.js +20 -45
- package/test/sap/ui/core/qunit/base/Config_global.qunit.html +2 -2
- package/test/sap/ui/core/qunit/base/Config_meta.qunit.html +2 -2
- package/test/sap/ui/core/qunit/base/Config_noUrl.qunit.html +2 -2
- package/test/sap/ui/core/qunit/base/Config_noUrl.qunit.js +17 -16
- package/test/sap/ui/core/qunit/base/Config_url.qunit.html +2 -2
- package/test/sap/ui/core/qunit/bootstrap/BootstrapMainModule.beforeBootstrap.js +6 -0
- package/test/sap/ui/core/qunit/bootstrap/BootstrapMainModule.qunit.js +4 -4
- package/test/sap/ui/core/qunit/bootstrap/BootstrapMinimal.qunit.js +30 -10
- package/test/sap/ui/core/qunit/bootstrap/testsuite.bootstrap.qunit.js +5 -1
- package/test/sap/ui/core/qunit/component/Customizing.qunit.js +2 -2
- package/test/sap/ui/core/qunit/component/Customizing_async.qunit.js +36 -1
- package/test/sap/ui/core/qunit/component/ExtensionPoint.qunit.js +475 -290
- package/test/sap/ui/core/qunit/component/Models.qunit.js +0 -70
- package/test/sap/ui/core/qunit/component/Models_unavoidablySync.qunit.js +86 -0
- package/test/sap/ui/core/qunit/component/UIComponent.qunit.js +86 -1
- package/test/sap/ui/core/qunit/component/testdata/customizing/customer/ext/EP_In_Product_Table_Cell_Found.fragment.xml +5 -0
- package/test/sap/ui/core/qunit/component/testdata/customizing/customer/ext/EP_In_Product_Table_Column.fragment.xml +5 -0
- package/test/sap/ui/core/qunit/component/testdata/customizing/customer/ext/EPinNestedView.view.xml +51 -0
- package/test/sap/ui/core/qunit/component/testdata/customizing/customer/ext/ExtensionPointProvider.js +27 -4
- package/test/sap/ui/core/qunit/component/testdata/customizing/customer/ext/Main.view.xml +5 -0
- package/test/sap/ui/core/qunit/component/testdata/customizing/sap/Main.view.xml +0 -1
- package/test/sap/ui/core/qunit/component/testdata/customizing/sap/Sub2.view.xml +1 -3
- package/test/sap/ui/core/qunit/dnd/DragAndDrop.qunit.js +231 -5
- package/test/sap/ui/core/qunit/dnd/DropInfo.qunit.js +14 -2
- package/test/sap/ui/core/qunit/fieldhelp/FieldHelp.qunit.js +1146 -0
- package/test/sap/ui/core/qunit/fieldhelp/FieldHelpUtil.qunit.js +55 -0
- package/test/sap/ui/core/qunit/fieldhelp/testsuite.fieldhelp.qunit.html +12 -0
- package/test/sap/ui/core/qunit/fieldhelp/testsuite.fieldhelp.qunit.js +50 -0
- package/test/sap/ui/core/qunit/generic/ControlRenderer.qunit.js +4 -1
- package/test/sap/ui/core/qunit/generic/legacy/ControlRenderer.qunit.js +4 -0
- package/test/sap/ui/core/qunit/internal/1RingModels.qunit.html +1 -1
- package/test/sap/ui/core/qunit/internal/1RingModels.qunit.js +6 -0
- package/test/sap/ui/core/qunit/internal/testsuite.feature-odata-v4.qunit.js +1 -1
- package/test/sap/ui/core/qunit/jquery-mobile-custom.beforeBootstrap.js +11 -0
- package/test/sap/ui/core/qunit/jquery-mobile-custom.qunit.js +3 -3
- package/test/sap/ui/core/qunit/loader/amd/base_tag/_launchTest.js +2 -4
- package/test/sap/ui/core/qunit/loader/amd/config_paths/_launchTest.js +2 -4
- package/test/sap/ui/core/qunit/loader/amd/config_paths_relative/_launchTest.js +2 -4
- package/test/sap/ui/core/qunit/loader/amdAPIs.qunit.js +3 -0
- package/test/sap/ui/core/qunit/loader/asyncMode.qunit.js +2 -6
- package/test/sap/ui/core/qunit/loader/config.qunit.js +41 -2
- package/test/sap/ui/core/qunit/model/Binding.qunit.js +13 -0
- package/test/sap/ui/core/qunit/mvc/Controller.qunit.js +2 -2
- package/test/sap/ui/core/qunit/mvc/XMLTemplateProcessorAsync.qunit.js +8 -6
- package/test/sap/ui/core/qunit/mvc/XMLTemplateProcessorRequireXML.qunit.js +7 -7
- package/test/sap/ui/core/qunit/mvc/XMLView.qunit.js +131 -22
- package/test/sap/ui/core/qunit/mvc/testdata/Async.view.xml +1 -2
- package/test/sap/ui/core/qunit/mvc/testdata/asyncHooks.view.xml +1 -3
- package/test/sap/ui/core/qunit/mvc/testdata/cache.view.xml +1 -1
- package/test/sap/ui/core/qunit/mvc/testdata/legacy/test.view.xml +32 -0
- package/test/sap/ui/core/qunit/mvc/testdata/test.view.xml +2 -15
- package/test/sap/ui/core/qunit/mvc/testsuite.mvc.qunit.js +9 -4
- package/test/sap/ui/core/qunit/odata/ODataUtils.qunit.js +5 -12
- package/test/sap/ui/core/qunit/odata/type/testsuite.odata.types.qunit.js +1 -0
- package/test/sap/ui/core/qunit/odata/v2/ODataModel.integration.qunit.js +285 -12
- package/test/sap/ui/core/qunit/odata/v2/ODataModelNoFakeService.qunit.js +55 -6
- package/test/sap/ui/core/qunit/odata/v2/data/ZUI5_GWSAMPLE_BASIC.metadata.xml +18 -0
- package/test/sap/ui/core/qunit/odata/v4/Context.qunit.js +118 -61
- package/test/sap/ui/core/qunit/odata/v4/ODataContextBinding.qunit.js +17 -17
- package/test/sap/ui/core/qunit/odata/v4/ODataListBinding.qunit.js +559 -74
- package/test/sap/ui/core/qunit/odata/v4/ODataMetaModel.qunit.js +42 -42
- package/test/sap/ui/core/qunit/odata/v4/ODataModel.integration.qunit.js +2695 -97
- package/test/sap/ui/core/qunit/odata/v4/ODataModel.qunit.js +125 -12
- package/test/sap/ui/core/qunit/odata/v4/ODataModel.realOData.qunit.js +7 -6
- package/test/sap/ui/core/qunit/odata/v4/ODataPropertyBinding.qunit.js +12 -13
- package/test/sap/ui/core/qunit/odata/v4/_AnnotationHelperExpression.qunit.js +3 -3
- package/test/sap/ui/core/qunit/odata/v4/lib/_AggregationCache.qunit.js +796 -110
- package/test/sap/ui/core/qunit/odata/v4/lib/_AggregationHelper.qunit.js +102 -2
- package/test/sap/ui/core/qunit/odata/v4/lib/_Cache.qunit.js +48 -57
- package/test/sap/ui/core/qunit/odata/v4/lib/_Helper.qunit.js +141 -33
- package/test/sap/ui/core/qunit/odata/v4/lib/_MetadataRequestor.qunit.js +2 -2
- package/test/sap/ui/core/qunit/odata/v4/lib/_Requestor.qunit.js +175 -69
- package/test/sap/ui/core/qunit/odata/v4/lib/_V2Requestor.qunit.js +3 -3
- package/test/sap/ui/core/qunit/odata/v4/testsuite.odatav4.qunit.js +1 -1
- package/test/sap/ui/core/qunit/resource/ResourceBinding.qunit.js +17 -14
- package/test/sap/ui/core/qunit/routing/async/Views.qunit.js +3 -0
- package/test/sap/ui/core/qunit/rule/testsuite.rule.qunit.js +6 -1
- package/test/sap/ui/core/qunit/test/starter/find/main.js +6 -4
- package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib4/themes/sap_horizon_hcb/library.css +2 -0
- package/test/sap/ui/core/qunit/testdata/routing/HistoryIFrame.html +2 -1
- package/test/sap/ui/core/qunit/testsuite.qunit.js +1 -0
- package/test/sap/ui/core/qunit/testsuites/testsuite.browser.runtime.qunit.js +5 -1
- package/test/sap/ui/core/qunit/testsuites/testsuite.theming.qunit.js +4 -1
- package/test/sap/ui/core/qunit/ui/Device.qunit.js +92 -25
- package/test/sap/ui/core/qunit/ui5classes/ManagedObjectMetadata.qunit.js +3 -0
- package/test/sap/ui/core/qunit/util/LabelEnablement.qunit.js +47 -1
- package/test/sap/ui/core/qunit/util/XMLPreprocessor.qunit.js +20 -20
- package/test/sap/ui/core/relnotes/changes-1.124.json +1 -66
- package/test/sap/ui/core/relnotes/changes-1.125.json +32 -0
- package/test/sap/ui/core/relnotes/changes-1.126.json +47 -0
- package/test/sap/ui/core/samples/ResponsiveDemo.html +97 -103
- package/test/sap/ui/core/samples/databinding/UnitTable/ui5.yaml +1 -1
- package/test/sap/ui/core/samples/draganddrop/DragAndDrop.html +2 -2
- package/test/sap/ui/core/samples/mvc/Product.html +1 -7
- package/test/sap/ui/core/samples/mvc/ViewPreprocessor.html +20 -12
- package/test/sap/ui/core/samples/mvc/XMLView.html +77 -24
- package/test/sap/ui/core/samples/mvc/XMLViewAsync.html +13 -19
- package/test/sap/ui/core/samples/mvc/controller/Async.controller.js +0 -1
- package/test/sap/ui/core/samples/mvc/controller/Product.controller.js +0 -1
- package/test/sap/ui/core/samples/mvc/views/Async.view.xml +16 -57
- package/test/sap/ui/core/samples/mvc/views/Dummy.fragment.xml +2 -2
- package/test/sap/ui/core/samples/mvc/views/Dummy.view.xml +2 -2
- package/test/sap/ui/core/samples/mvc/views/Product.view.xml +16 -57
- package/test/sap/ui/core/util/PasteHelper.html +148 -147
- package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/firstItem-contextMenu.ref.lnk +1 -1
- package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/initial.ref.lnk +1 -1
- package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/lastItem-contextMenu.ref.lnk +1 -1
- package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/leftDownBtn-contextMenu.ref.lnk +1 -1
- package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/myButtonSample-contextMenu.ref.lnk +1 -1
- package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/rightDownBtn-contextMenu.ref.lnk +1 -1
- package/test/testsuite/js/settings.js +5 -4
- package/test/testsuite/styles/main.css +5 -0
- package/test/sap/ui/core/ResourceRoots.html +0 -28
- package/test/sap/ui/core/demokit/sample/ViewTemplate/tiny/component.json +0 -17
- package/test/sap/ui/core/demokit/sample/ViewTemplate/types/component.json +0 -18
- package/test/sap/ui/core/demokit/sample/ViewTemplate/valuelist/component.json +0 -30
- package/test/sap/ui/core/demokit/sample/odata/v2/AutoExpand/AutoExpand.view.xml +0 -52
- package/test/sap/ui/core/demokit/sample/odata/v2/AutoExpand/Component.js +0 -30
- package/test/sap/ui/core/demokit/sample/odata/v2/AutoExpand/Sandbox.js +0 -51
- package/test/sap/ui/core/demokit/sample/odata/v2/AutoExpand/data/Items_L0_top5.json +0 -32
- package/test/sap/ui/core/demokit/sample/odata/v2/AutoExpand/data/Items_L1_A_skip8.json +0 -138
- package/test/sap/ui/core/demokit/sample/odata/v2/AutoExpand/data/Items_L1_B.json +0 -17
- package/test/sap/ui/core/demokit/sample/odata/v2/AutoExpand/data/Items_L1_C.json +0 -17
- package/test/sap/ui/core/demokit/sample/odata/v2/AutoExpand/data/Items_L1_top8.json +0 -93
- package/test/sap/ui/core/demokit/sample/odata/v2/AutoExpand/data/metadata.xml +0 -2322
- package/test/sap/ui/core/demokit/sample/odata/v2/AutoExpand/i18n/i18n.properties +0 -3
- package/test/sap/ui/core/demokit/sample/odata/v2/AutoExpand/manifest.json +0 -69
|
@@ -121,7 +121,8 @@ sap.ui.define([
|
|
|
121
121
|
(oNode) => _Helper.getKeyFilter(oNode, this.sMetaPath, this.getTypes()));
|
|
122
122
|
// Whether this cache is a unified cache, using oFirstLevel with ExpandLevels instead of
|
|
123
123
|
// separate group level caches
|
|
124
|
-
this.bUnifiedCache = this.oAggregation.expandTo >= Number.MAX_SAFE_INTEGER
|
|
124
|
+
this.bUnifiedCache = this.oAggregation.expandTo >= Number.MAX_SAFE_INTEGER
|
|
125
|
+
|| !!this.oAggregation.createInPlace;
|
|
125
126
|
}
|
|
126
127
|
|
|
127
128
|
// make _AggregationCache a _Cache, but actively disinherit some critical methods
|
|
@@ -398,9 +399,14 @@ sap.ui.define([
|
|
|
398
399
|
}
|
|
399
400
|
|
|
400
401
|
for (let i = iIndex + 1; i < iIndex + 1 + iCount; i += 1) {
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
402
|
+
// selected elements are effectively kept alive (with recursive hierarchy)
|
|
403
|
+
if (!this.oAggregation.hierarchyQualifier
|
|
404
|
+
|| !aElements[i]["@$ui5.context.isSelected"]) {
|
|
405
|
+
delete aElements.$byPredicate[
|
|
406
|
+
_Helper.getPrivateAnnotation(aElements[i], "predicate")];
|
|
407
|
+
delete aElements.$byPredicate[
|
|
408
|
+
_Helper.getPrivateAnnotation(aElements[i], "transientPredicate")];
|
|
409
|
+
}
|
|
404
410
|
}
|
|
405
411
|
const aSpliced = aElements.splice(iIndex + 1, iCount);
|
|
406
412
|
aSpliced.$level = oGroupNode["@$ui5.node.level"];
|
|
@@ -426,7 +432,10 @@ sap.ui.define([
|
|
|
426
432
|
_AggregationCache.prototype.countDescendants = function (oGroupNode, iIndex) {
|
|
427
433
|
var i;
|
|
428
434
|
|
|
429
|
-
let iGroupNodeLevel = oGroupNode["@$ui5.node.level"];
|
|
435
|
+
let iGroupNodeLevel = oGroupNode["@$ui5.node.level"]; // max level of oGroupNode's cache
|
|
436
|
+
// We have to check a candidate's rank if oGroupNode is in oFirstLevel
|
|
437
|
+
// Note: expandTo may be undefined (when using data aggregation)
|
|
438
|
+
let bCheckRank = iGroupNodeLevel <= this.oAggregation.expandTo;
|
|
430
439
|
let iDescendants = _Helper.getPrivateAnnotation(oGroupNode, "descendants");
|
|
431
440
|
if (iDescendants) { // => this.oAggregation.expandTo > 1
|
|
432
441
|
// Note: "descendants" refers to LimitedDescendantCount and counts descendants within
|
|
@@ -435,10 +444,14 @@ sap.ui.define([
|
|
|
435
444
|
}
|
|
436
445
|
if (this.bUnifiedCache) {
|
|
437
446
|
iGroupNodeLevel = Infinity;
|
|
447
|
+
bCheckRank = true;
|
|
438
448
|
}
|
|
439
449
|
const aElements = this.aElements;
|
|
440
450
|
for (i = iIndex + 1; i < aElements.length; i += 1) {
|
|
441
|
-
|
|
451
|
+
// If the candidate is not in a nested level cache and (in oFirstLevel) it has a rank,
|
|
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"))) {
|
|
442
455
|
// Note: level 0 or 1 is used for initial placeholders of 1st level cache!
|
|
443
456
|
if (!iDescendants) {
|
|
444
457
|
break; // we've reached a sibling of the collapsed node
|
|
@@ -502,18 +515,11 @@ sap.ui.define([
|
|
|
502
515
|
if (oParentNode?.["@$ui5.node.isExpanded"] === false) {
|
|
503
516
|
throw new Error("Unsupported collapsed parent: " + sParentPath);
|
|
504
517
|
}
|
|
505
|
-
if (oParentNode && oParentNode["@$ui5.node.isExpanded"] === undefined) {
|
|
506
|
-
_Helper.updateAll(this.mChangeListeners, sParentPredicate, oParentNode,
|
|
507
|
-
{"@$ui5.node.isExpanded" : true}); // not a leaf anymore
|
|
508
|
-
if (oParentNode["@$ui5.node.level"] >= this.oAggregation.expandTo) {
|
|
509
|
-
this.oTreeState.expand(oParentNode);
|
|
510
|
-
} // else: already expanded automatically
|
|
511
|
-
}
|
|
512
518
|
|
|
513
519
|
const iLevel = oParentNode
|
|
514
520
|
? oParentNode["@$ui5.node.level"] + 1
|
|
515
521
|
: 1;
|
|
516
|
-
let oCache = iLevel > this.oAggregation.expandTo
|
|
522
|
+
let oCache = iLevel > this.oAggregation.expandTo && !this.oAggregation.createInPlace
|
|
517
523
|
? _Helper.getPrivateAnnotation(oParentNode, "cache")
|
|
518
524
|
: this.oFirstLevel;
|
|
519
525
|
if (!oCache) {
|
|
@@ -527,8 +533,8 @@ sap.ui.define([
|
|
|
527
533
|
const oPromise = oCache.create(oGroupLock, oPostPathPromise, sPath, sTransientPredicate,
|
|
528
534
|
oEntityData, bAtEndOfCreated, fnErrorCallback, fnSubmitCallback, /*onCancel*/() => {
|
|
529
535
|
_Helper.removeByPath(this.mPostRequests, sTransientPredicate, oEntityData);
|
|
530
|
-
if (
|
|
531
|
-
|
|
536
|
+
if (this.oAggregation.createInPlace) {
|
|
537
|
+
return;
|
|
532
538
|
}
|
|
533
539
|
aElements.$count -= 1;
|
|
534
540
|
delete aElements.$byPredicate[sTransientPredicate];
|
|
@@ -540,15 +546,59 @@ sap.ui.define([
|
|
|
540
546
|
[this.oAggregation.$ParentNavigationProperty + "@odata.bind"]
|
|
541
547
|
= _Helper.makeRelativeUrl("/" + sParentPath, "/" + this.sResourcePath);
|
|
542
548
|
}
|
|
543
|
-
oEntityData["@$ui5.node.level"] = iLevel; // do not send via POST!
|
|
544
549
|
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
if (
|
|
549
|
-
this.
|
|
550
|
+
const bParentIsLeaf = oParentNode && oParentNode["@$ui5.node.isExpanded"] === undefined;
|
|
551
|
+
const bExpandTreeState = bParentIsLeaf
|
|
552
|
+
&& oParentNode?.["@$ui5.node.level"] >= this.oAggregation.expandTo;
|
|
553
|
+
if (bExpandTreeState) {
|
|
554
|
+
this.oTreeState.expand(oParentNode);
|
|
555
|
+
} // else: already expanded automatically
|
|
556
|
+
|
|
557
|
+
const addElement = (iIndex0, iRank) => {
|
|
558
|
+
if (bParentIsLeaf) {
|
|
559
|
+
_Helper.updateAll(this.mChangeListeners, sParentPredicate, oParentNode,
|
|
560
|
+
{"@$ui5.node.isExpanded" : true}); // not a leaf anymore
|
|
561
|
+
}
|
|
562
|
+
oEntityData["@$ui5.node.level"] = iLevel; // do not send via POST!
|
|
563
|
+
aElements.splice(iIndex0, 0, null); // create a gap
|
|
564
|
+
this.addElements(oEntityData, iIndex0, oCache, iRank);
|
|
565
|
+
aElements.$count += 1;
|
|
566
|
+
};
|
|
567
|
+
|
|
568
|
+
const completeCreation = (iIndex0, iRank) => {
|
|
569
|
+
oCache.removeElement(0);
|
|
570
|
+
_Helper.deletePrivateAnnotation(oEntityData, "transientPredicate");
|
|
571
|
+
delete aElements.$byPredicate[sTransientPredicate];
|
|
572
|
+
if (iRank !== undefined) {
|
|
573
|
+
this.adjustDescendantCount(oEntityData, iIndex0, +1);
|
|
574
|
+
oCache.restoreElement(iRank, oEntityData);
|
|
575
|
+
_Helper.setPrivateAnnotation(oEntityData, "rank", iRank);
|
|
576
|
+
this.shiftRank(iIndex0, +1);
|
|
577
|
+
}
|
|
578
|
+
};
|
|
579
|
+
|
|
580
|
+
if (this.oAggregation.createInPlace) {
|
|
581
|
+
return oPromise.then(async () => {
|
|
582
|
+
_Helper.removeByPath(this.mPostRequests, sTransientPredicate, oEntityData);
|
|
583
|
+
const [iRank] = await Promise.all([
|
|
584
|
+
this.requestRank(oEntityData, oGroupLock),
|
|
585
|
+
this.requestNodeProperty(oEntityData, oGroupLock)
|
|
586
|
+
]);
|
|
587
|
+
if (bExpandTreeState) { // isRefreshNeededAfterCreate returns true
|
|
588
|
+
_Helper.setPrivateAnnotation(oEntityData, "rank", iRank);
|
|
589
|
+
} else if (iRank === undefined) {
|
|
590
|
+
oCache.removeElement(0);
|
|
591
|
+
} else {
|
|
592
|
+
addElement(iRank, iRank);
|
|
593
|
+
completeCreation(iRank, iRank);
|
|
594
|
+
}
|
|
595
|
+
|
|
596
|
+
return oEntityData;
|
|
597
|
+
});
|
|
550
598
|
}
|
|
551
599
|
|
|
600
|
+
addElement(iIndex, /*iRank*/undefined);
|
|
601
|
+
|
|
552
602
|
return oPromise.then(async () => {
|
|
553
603
|
_Helper.removeByPath(this.mPostRequests, sTransientPredicate, oEntityData);
|
|
554
604
|
aElements.$byPredicate[_Helper.getPrivateAnnotation(oEntityData, "predicate")]
|
|
@@ -564,13 +614,7 @@ sap.ui.define([
|
|
|
564
614
|
this.requestNodeProperty(oEntityData, oGroupLock, /*bDropFilter*/true)
|
|
565
615
|
]);
|
|
566
616
|
|
|
567
|
-
|
|
568
|
-
_Helper.deletePrivateAnnotation(oEntityData, "transientPredicate");
|
|
569
|
-
oCache.restoreElement(iRank, oEntityData);
|
|
570
|
-
|
|
571
|
-
delete this.aElements.$byPredicate[sTransientPredicate];
|
|
572
|
-
_Helper.setPrivateAnnotation(oEntityData, "rank", iRank);
|
|
573
|
-
this.shiftRank(iIndex, +1);
|
|
617
|
+
completeCreation(iIndex, iRank);
|
|
574
618
|
} else {
|
|
575
619
|
await this.requestNodeProperty(oEntityData, oGroupLock, /*bDropFilter*/true);
|
|
576
620
|
}
|
|
@@ -643,7 +687,7 @@ sap.ui.define([
|
|
|
643
687
|
* Expands the given group node.
|
|
644
688
|
*
|
|
645
689
|
* @param {sap.ui.model.odata.v4.lib._GroupLock} oGroupLock
|
|
646
|
-
*
|
|
690
|
+
* An unlocked lock for the group to associate the requests with
|
|
647
691
|
* @param {object|string} vGroupNodeOrPath
|
|
648
692
|
* The group node or its path relative to the cache; a group node instance (instead of a path)
|
|
649
693
|
* MUST only be given in case of "expanding" continued
|
|
@@ -808,7 +852,7 @@ sap.ui.define([
|
|
|
808
852
|
* @param {number} iIndex
|
|
809
853
|
* The index of the child node
|
|
810
854
|
* @param {sap.ui.model.odata.v4.lib._GroupLock} oGroupLock
|
|
811
|
-
*
|
|
855
|
+
* An unlocked lock for the group to associate the requests with
|
|
812
856
|
* @returns {sap.ui.base.SyncPromise}
|
|
813
857
|
* A promise to be resolved with the requested index of the parent.
|
|
814
858
|
*
|
|
@@ -869,7 +913,7 @@ sap.ui.define([
|
|
|
869
913
|
this.oFirstLevel.calculateKeyPredicate(oParent, this.getTypes(), this.sMetaPath);
|
|
870
914
|
|
|
871
915
|
const iParentIndex = this.findIndex(iRank);
|
|
872
|
-
if (_Helper.
|
|
916
|
+
if (_Helper.hasPrivateAnnotation(this.aElements[iParentIndex], "placeholder")) {
|
|
873
917
|
this.insertNode(oParent, iRank, iParentIndex);
|
|
874
918
|
} // else: parent already inside collection
|
|
875
919
|
|
|
@@ -888,8 +932,7 @@ sap.ui.define([
|
|
|
888
932
|
* Returns a promise to be resolved with an OData object for the requested data.
|
|
889
933
|
*
|
|
890
934
|
* @param {sap.ui.model.odata.v4.lib._GroupLock} oGroupLock
|
|
891
|
-
*
|
|
892
|
-
* request will be created
|
|
935
|
+
* An unlocked lock for the group to associate the request with
|
|
893
936
|
* @param {string} [sPath]
|
|
894
937
|
* Relative path to drill-down into
|
|
895
938
|
* @param {function} [fnDataRequested]
|
|
@@ -935,20 +978,23 @@ sap.ui.define([
|
|
|
935
978
|
|
|
936
979
|
/**
|
|
937
980
|
* Returns the index in <code>this.aElements</code> for a given (limited preorder) rank where
|
|
938
|
-
* either a node or placeholder with that rank is present and belongs to the first level
|
|
981
|
+
* either a node or placeholder with that rank is present and belongs to the given first level
|
|
982
|
+
* or group level cache.
|
|
939
983
|
*
|
|
940
984
|
* @param {number} iRank
|
|
941
985
|
* The (limited preorder) rank of a node
|
|
986
|
+
* @param {sap.ui.model.odata.v4.lib._CollectionCache} [oCache]
|
|
987
|
+
* A (group level) cache
|
|
942
988
|
* @returns {number}
|
|
943
989
|
* The array index
|
|
944
990
|
*
|
|
945
991
|
* @private
|
|
946
992
|
* @see #getInsertIndex
|
|
947
993
|
*/
|
|
948
|
-
_AggregationCache.prototype.findIndex = function (iRank) {
|
|
994
|
+
_AggregationCache.prototype.findIndex = function (iRank, oCache = this.oFirstLevel) {
|
|
949
995
|
return this.aElements.findIndex(
|
|
950
996
|
(oNode) => _Helper.getPrivateAnnotation(oNode, "rank") === iRank
|
|
951
|
-
&& _Helper.getPrivateAnnotation(oNode, "parent") ===
|
|
997
|
+
&& _Helper.getPrivateAnnotation(oNode, "parent") === oCache);
|
|
952
998
|
};
|
|
953
999
|
|
|
954
1000
|
/**
|
|
@@ -1083,6 +1129,53 @@ sap.ui.define([
|
|
|
1083
1129
|
// return undefined;
|
|
1084
1130
|
};
|
|
1085
1131
|
|
|
1132
|
+
/**
|
|
1133
|
+
* Returns the index of the given node's sibling, either the next one (via offset +1) or the
|
|
1134
|
+
* previous one (via offset -1).
|
|
1135
|
+
*
|
|
1136
|
+
* @param {number} iIndex - The index of a node
|
|
1137
|
+
* @param {number} iOffset - An offset, either -1 or +1
|
|
1138
|
+
* @param {boolean} [bAllowPlaceholder] - Whether the sibling is allowed to be a placeholder
|
|
1139
|
+
* @returns {number}
|
|
1140
|
+
* The sibling node's index, or -1 if no such sibling exists for sure, or
|
|
1141
|
+
* <code>undefined</code> if we cannot tell or if the sibling is currently a placeholder and
|
|
1142
|
+
* that is not allowed
|
|
1143
|
+
*
|
|
1144
|
+
* @public
|
|
1145
|
+
*/
|
|
1146
|
+
_AggregationCache.prototype.getSiblingIndex = function (iIndex, iOffset, bAllowPlaceholder) {
|
|
1147
|
+
const oNode = this.aElements[iIndex];
|
|
1148
|
+
const oCache = _Helper.getPrivateAnnotation(oNode, "parent");
|
|
1149
|
+
const bSingleLevelCache = oCache !== this.oFirstLevel
|
|
1150
|
+
|| this.oAggregation.expandTo === 1 && !this.oAggregation.$ExpandLevels;
|
|
1151
|
+
const iRank = _Helper.getPrivateAnnotation(oNode, "rank");
|
|
1152
|
+
let iSiblingRank = iRank + iOffset;
|
|
1153
|
+
if (iOffset < 0) { // previous sibling
|
|
1154
|
+
if (!bSingleLevelCache) {
|
|
1155
|
+
iSiblingRank // Note: may become undefined!
|
|
1156
|
+
= _AggregationHelper.findPreviousSiblingIndex(oCache.aElements, iRank);
|
|
1157
|
+
}
|
|
1158
|
+
if (iSiblingRank < 0) {
|
|
1159
|
+
return -1; // no such sibling
|
|
1160
|
+
}
|
|
1161
|
+
} else { // next sibling: skip descendants
|
|
1162
|
+
iSiblingRank += _Helper.getPrivateAnnotation(oNode, "descendants", 0);
|
|
1163
|
+
if (iSiblingRank >= oCache.aElements.$count
|
|
1164
|
+
|| oCache.aElements[iSiblingRank]?.["@$ui5.node.level"]
|
|
1165
|
+
< oNode["@$ui5.node.level"]) {
|
|
1166
|
+
return -1; // no such sibling
|
|
1167
|
+
}
|
|
1168
|
+
}
|
|
1169
|
+
|
|
1170
|
+
if (iSiblingRank >= 0) {
|
|
1171
|
+
const iSiblingIndex = this.findIndex(iSiblingRank, oCache);
|
|
1172
|
+
if (bSingleLevelCache && bAllowPlaceholder
|
|
1173
|
+
|| !_Helper.hasPrivateAnnotation(this.aElements[iSiblingIndex], "placeholder")) {
|
|
1174
|
+
return iSiblingIndex; // sibling found
|
|
1175
|
+
}
|
|
1176
|
+
} // else: iSiblingRank === undefined => return undefined;
|
|
1177
|
+
};
|
|
1178
|
+
|
|
1086
1179
|
/**
|
|
1087
1180
|
* @override
|
|
1088
1181
|
* @see sap.ui.model.odata.v4.lib._Cache#getValue
|
|
@@ -1116,7 +1209,7 @@ sap.ui.define([
|
|
|
1116
1209
|
const getPredicate
|
|
1117
1210
|
= (oNode) => _Helper.getKeyPredicate(oNode, this.sMetaPath, this.getTypes());
|
|
1118
1211
|
const getRank
|
|
1119
|
-
= (oNode) =>
|
|
1212
|
+
= (oNode) => parseInt(_Helper.drillDown(oNode, this.oAggregation.$LimitedRank));
|
|
1120
1213
|
const mPredicate2RankResult = {};
|
|
1121
1214
|
oRankResult.value.forEach((oNode) => {
|
|
1122
1215
|
mPredicate2RankResult[getPredicate(oNode)] = oNode;
|
|
@@ -1145,8 +1238,10 @@ sap.ui.define([
|
|
|
1145
1238
|
_Helper.merge(oNode, mPredicate2RankResult[sPredicate]);
|
|
1146
1239
|
// Note: overridden by _AggregationCache.calculateKeyPredicateRH
|
|
1147
1240
|
this.oFirstLevel.calculateKeyPredicate(oNode, this.getTypes(), this.sMetaPath);
|
|
1241
|
+
const iRank = getRank(oNode);
|
|
1242
|
+
_Helper.deleteProperty(oNode, this.oAggregation.$LimitedRank);
|
|
1148
1243
|
// insert at rank position to ensure correct placeholder is replaced
|
|
1149
|
-
this.insertNode(oNode,
|
|
1244
|
+
this.insertNode(oNode, iRank);
|
|
1150
1245
|
});
|
|
1151
1246
|
});
|
|
1152
1247
|
|
|
@@ -1213,6 +1308,22 @@ sap.ui.define([
|
|
|
1213
1308
|
return false;
|
|
1214
1309
|
};
|
|
1215
1310
|
|
|
1311
|
+
/**
|
|
1312
|
+
* Returns whether a refresh is needed, if a child is created below the given parent (index).
|
|
1313
|
+
*
|
|
1314
|
+
* @param {number} iParentIndex Index of the parent
|
|
1315
|
+
* @returns {boolean} Whether a refresh is needed
|
|
1316
|
+
*
|
|
1317
|
+
* @public
|
|
1318
|
+
*/
|
|
1319
|
+
_AggregationCache.prototype.isRefreshNeededAfterCreate = function (iParentIndex) {
|
|
1320
|
+
const oParent = this.aElements[iParentIndex];
|
|
1321
|
+
|
|
1322
|
+
return this.oAggregation.createInPlace
|
|
1323
|
+
&& oParent["@$ui5.node.isExpanded"] === undefined
|
|
1324
|
+
&& oParent["@$ui5.node.level"] >= this.oAggregation.expandTo;
|
|
1325
|
+
};
|
|
1326
|
+
|
|
1216
1327
|
/**
|
|
1217
1328
|
* Determines the list of elements determined by the given predicates. All other elements are
|
|
1218
1329
|
* turned into placeholders (lazily), except transient ones.
|
|
@@ -1284,12 +1395,15 @@ sap.ui.define([
|
|
|
1284
1395
|
* @param {string} [sNonCanonicalChildPath]
|
|
1285
1396
|
* The (child) node's non-canonical path (relative to the service); only used when
|
|
1286
1397
|
* <code>sSiblingPath</code> is given
|
|
1398
|
+
* @param {boolean} [bRequestSiblingRank]
|
|
1399
|
+
* Whether to request the next sibling's rank and return its new index
|
|
1287
1400
|
* @returns {{promise : sap.ui.base.SyncPromise<function():number|number[]>, refresh : boolean}}
|
|
1288
1401
|
* An object with two properties:
|
|
1289
1402
|
* - <code>promise</code>: A promise which is resolved when the move is finished, or rejected
|
|
1290
1403
|
* in case of an error. In case a refresh is needed, the promise is resolved with a function
|
|
1291
|
-
* that can be called w/o args once the refresh is finished
|
|
1292
|
-
* of the moved node (or <code>undefined</code>)
|
|
1404
|
+
* that can be called w/o args once the refresh is finished - it then returns an array with
|
|
1405
|
+
* the new indices of the moved node (or <code>undefined</code>) and of the next sibling (if
|
|
1406
|
+
* requested). Else it is resolved with an array of:
|
|
1293
1407
|
* - the number of child nodes added (normally one, but maybe more in case the parent node
|
|
1294
1408
|
* was collapsed before),
|
|
1295
1409
|
* - the new index of the moved node,
|
|
@@ -1300,7 +1414,7 @@ sap.ui.define([
|
|
|
1300
1414
|
* @public
|
|
1301
1415
|
*/
|
|
1302
1416
|
_AggregationCache.prototype.move = function (oGroupLock, sChildPath, sParentPath, sSiblingPath,
|
|
1303
|
-
sNonCanonicalChildPath) {
|
|
1417
|
+
sNonCanonicalChildPath, bRequestSiblingRank) {
|
|
1304
1418
|
let bRefreshNeeded = !this.bUnifiedCache;
|
|
1305
1419
|
|
|
1306
1420
|
const sChildPredicate = sChildPath.slice(sChildPath.indexOf("("));
|
|
@@ -1330,13 +1444,15 @@ sap.ui.define([
|
|
|
1330
1444
|
}
|
|
1331
1445
|
}
|
|
1332
1446
|
|
|
1447
|
+
let oSiblingNode; // side effect of calling invokeNextSibling()
|
|
1333
1448
|
const invokeNextSibling = () => {
|
|
1334
1449
|
if (sSiblingPath !== undefined) {
|
|
1335
1450
|
bRefreshNeeded = true;
|
|
1336
1451
|
const sActionPath = sNonCanonicalChildPath + "/"
|
|
1337
1452
|
+ this.oAggregation.$Actions.ChangeNextSiblingAction;
|
|
1338
1453
|
const sSiblingPredicate = sSiblingPath?.slice(sSiblingPath.indexOf("("));
|
|
1339
|
-
|
|
1454
|
+
oSiblingNode = this.aElements.$byPredicate[sSiblingPredicate];
|
|
1455
|
+
let oNextSibling = null;
|
|
1340
1456
|
if (oSiblingNode) {
|
|
1341
1457
|
// remove OOP for all descendants (incl. itself) of a next sibling
|
|
1342
1458
|
this.oTreeState.deleteOutOfPlace(sSiblingPredicate);
|
|
@@ -1344,18 +1460,16 @@ sap.ui.define([
|
|
|
1344
1460
|
_Helper.getMetaPath("/" + sActionPath + "/NextSibling/")
|
|
1345
1461
|
).getResult();
|
|
1346
1462
|
const aKeys = Object.keys(oNextSiblingType).filter((sKey) => sKey[0] !== "$");
|
|
1347
|
-
|
|
1463
|
+
oNextSibling = aKeys.reduce((oKeys, sKey) => {
|
|
1348
1464
|
oKeys[sKey] = oSiblingNode[sKey];
|
|
1349
1465
|
return oKeys;
|
|
1350
1466
|
}, {});
|
|
1351
|
-
} else {
|
|
1352
|
-
oSiblingNode = null;
|
|
1353
1467
|
}
|
|
1354
1468
|
|
|
1355
1469
|
return this.oRequestor.request("POST", sActionPath, oGroupLock.getUnlockedCopy(), {
|
|
1356
1470
|
"If-Match" : oChildNode,
|
|
1357
1471
|
Prefer : "return=minimal"
|
|
1358
|
-
}, {NextSibling :
|
|
1472
|
+
}, {NextSibling : oNextSibling});
|
|
1359
1473
|
}
|
|
1360
1474
|
};
|
|
1361
1475
|
|
|
@@ -1366,13 +1480,17 @@ sap.ui.define([
|
|
|
1366
1480
|
}, {[this.oAggregation.$ParentNavigationProperty + "@odata.bind"] : sParentPath},
|
|
1367
1481
|
/*fnSubmit*/null, function fnCancel() { /*nothing to do*/ }),
|
|
1368
1482
|
invokeNextSibling(),
|
|
1369
|
-
this.requestRank(oChildNode, oGroupLock, bRefreshNeeded)
|
|
1483
|
+
this.requestRank(oChildNode, oGroupLock, bRefreshNeeded),
|
|
1484
|
+
bRequestSiblingRank && this.requestRank(oSiblingNode, oGroupLock, true)
|
|
1370
1485
|
]);
|
|
1371
1486
|
|
|
1372
1487
|
if (bRefreshNeeded) {
|
|
1373
|
-
oPromise = oPromise.then(([,, iRank]) => {
|
|
1488
|
+
oPromise = oPromise.then(([,, iRank, iSiblingRank]) => {
|
|
1374
1489
|
return () => { // Note: caller MUST wait for side-effects refresh first
|
|
1375
|
-
return
|
|
1490
|
+
return [
|
|
1491
|
+
iRank === undefined ? undefined : this.findIndex(iRank),
|
|
1492
|
+
bRequestSiblingRank && this.findIndex(iSiblingRank)
|
|
1493
|
+
];
|
|
1376
1494
|
};
|
|
1377
1495
|
});
|
|
1378
1496
|
} else {
|
|
@@ -1483,7 +1601,6 @@ sap.ui.define([
|
|
|
1483
1601
|
_AggregationCache.prototype.read = function (iIndex, iLength, iPrefetchLength, oGroupLock,
|
|
1484
1602
|
fnDataRequested) {
|
|
1485
1603
|
var oCurrentParent,
|
|
1486
|
-
oElement,
|
|
1487
1604
|
iFirstLevelIndex = iIndex,
|
|
1488
1605
|
iFirstLevelLength = iLength,
|
|
1489
1606
|
oGapParent,
|
|
@@ -1501,9 +1618,9 @@ sap.ui.define([
|
|
|
1501
1618
|
* @param {number} iGapStart start of gap, inclusive
|
|
1502
1619
|
* @param {number} iGapEnd end of gap, exclusive
|
|
1503
1620
|
*/
|
|
1504
|
-
function readGap(
|
|
1621
|
+
function readGap(iGapStart0, iGapEnd) {
|
|
1505
1622
|
aReadPromises.push(
|
|
1506
|
-
that.readGap(oGapParent,
|
|
1623
|
+
that.readGap(oGapParent, iGapStart0, iGapEnd, oGroupLock.getUnlockedCopy(),
|
|
1507
1624
|
fnDataRequested));
|
|
1508
1625
|
}
|
|
1509
1626
|
|
|
@@ -1549,7 +1666,7 @@ sap.ui.define([
|
|
|
1549
1666
|
});
|
|
1550
1667
|
const n = Math.min(oReadRange.start + oReadRange.length, this.aElements.length);
|
|
1551
1668
|
for (i = oReadRange.start; i < n; i += 1) {
|
|
1552
|
-
oElement = this.aElements[i];
|
|
1669
|
+
const oElement = this.aElements[i];
|
|
1553
1670
|
oCurrentParent = _Helper.hasPrivateAnnotation(oElement, "placeholder")
|
|
1554
1671
|
? _Helper.getPrivateAnnotation(oElement, "parent")
|
|
1555
1672
|
: undefined;
|
|
@@ -1596,8 +1713,8 @@ sap.ui.define([
|
|
|
1596
1713
|
* search into account.
|
|
1597
1714
|
*
|
|
1598
1715
|
* @param {sap.ui.model.odata.v4.lib._GroupLock} oGroupLock
|
|
1599
|
-
*
|
|
1600
|
-
* {@link sap.ui.model.odata.v4.lib._GroupLock#getUnlockedCopy}
|
|
1716
|
+
* An original lock for the group ID to be used for the GET request, to be cloned via
|
|
1717
|
+
* {@link sap.ui.model.odata.v4.lib._GroupLock#getUnlockedCopy}
|
|
1601
1718
|
* @returns {Promise<void>|undefined}
|
|
1602
1719
|
* A promise which is resolved without a defined result when the read is finished, or
|
|
1603
1720
|
* rejected in case of an error; <code>undefined</code> in case no count needs to be read
|
|
@@ -1826,10 +1943,12 @@ sap.ui.define([
|
|
|
1826
1943
|
* @override
|
|
1827
1944
|
* @see sap.ui.model.odata.v4.lib._CollectionCache#refreshKeptElements
|
|
1828
1945
|
*/
|
|
1829
|
-
_AggregationCache.prototype.refreshKeptElements = function (oGroupLock, fnOnRemove
|
|
1946
|
+
_AggregationCache.prototype.refreshKeptElements = function (oGroupLock, fnOnRemove,
|
|
1947
|
+
bIgnorePendingChanges, _bDropApply) {
|
|
1830
1948
|
// "super" call (like @borrows ...)
|
|
1831
1949
|
const fnSuper = this.oFirstLevel.refreshKeptElements;
|
|
1832
|
-
return fnSuper.call(this, oGroupLock, fnOnRemove,
|
|
1950
|
+
return fnSuper.call(this, oGroupLock, fnOnRemove, bIgnorePendingChanges,
|
|
1951
|
+
/*bDropApply*/true);
|
|
1833
1952
|
};
|
|
1834
1953
|
|
|
1835
1954
|
/**
|
|
@@ -1864,7 +1983,8 @@ sap.ui.define([
|
|
|
1864
1983
|
* moved to their out-of-place position in the cache.
|
|
1865
1984
|
*
|
|
1866
1985
|
* @param {sap.ui.model.odata.v4.lib._GroupLock} oGroupLock
|
|
1867
|
-
*
|
|
1986
|
+
* An original lock for the group ID to be used for the GET request, to be cloned via
|
|
1987
|
+
* {@link sap.ui.model.odata.v4.lib._GroupLock#getUnlockedCopy}
|
|
1868
1988
|
* @returns {Promise[]}
|
|
1869
1989
|
* The request promises
|
|
1870
1990
|
*
|
|
@@ -1943,7 +2063,7 @@ sap.ui.define([
|
|
|
1943
2063
|
mQueryOptions = getApply(
|
|
1944
2064
|
_AggregationHelper.buildApply4Hierarchy(oAggregation, this.mQueryOptions));
|
|
1945
2065
|
} else {
|
|
1946
|
-
const oCache = _Helper.getPrivateAnnotation(oElement, "parent");
|
|
2066
|
+
const oCache = _Helper.getPrivateAnnotation(oElement, "parent", this.oFirstLevel);
|
|
1947
2067
|
mQueryOptions = bDropFilter
|
|
1948
2068
|
? _AggregationHelper
|
|
1949
2069
|
.dropFilter(this.oAggregation, this.mQueryOptions, oCache.$parentFilter)
|
|
@@ -1957,7 +2077,7 @@ sap.ui.define([
|
|
|
1957
2077
|
this.sMetaPath, undefined, false, {$select : aSelect}, this);
|
|
1958
2078
|
const oRequestedProperties = oResult.value[0];
|
|
1959
2079
|
|
|
1960
|
-
if (bInheritResult) {
|
|
2080
|
+
if (bInheritResult && oRequestedProperties) {
|
|
1961
2081
|
aSelect.forEach((sPath) => {
|
|
1962
2082
|
_Helper.inheritPathValue(sPath.split("/"), oRequestedProperties, oElement, true);
|
|
1963
2083
|
});
|
|
@@ -1991,6 +2111,57 @@ sap.ui.define([
|
|
|
1991
2111
|
return oResult && parseInt(_Helper.drillDown(oResult, this.oAggregation.$LimitedRank));
|
|
1992
2112
|
};
|
|
1993
2113
|
|
|
2114
|
+
/**
|
|
2115
|
+
* Returns the index of the given node's sibling, either the next one (via offset +1) or the
|
|
2116
|
+
* previous one (via offset -1).
|
|
2117
|
+
*
|
|
2118
|
+
* @param {number} iIndex - The index of a node
|
|
2119
|
+
* @param {number} iOffset - An offset, either -1 or +1
|
|
2120
|
+
* @param {sap.ui.model.odata.v4.lib._GroupLock} oGroupLock
|
|
2121
|
+
* An unlocked lock for the group to associate the requests with
|
|
2122
|
+
* @returns {Promise<number>}
|
|
2123
|
+
* The sibling node's index, or -1 if no such sibling exists
|
|
2124
|
+
*
|
|
2125
|
+
* @public
|
|
2126
|
+
*/
|
|
2127
|
+
_AggregationCache.prototype.requestSiblingIndex = async function (iIndex, iOffset, oGroupLock) {
|
|
2128
|
+
const iSiblingIndex = this.getSiblingIndex(iIndex, iOffset, true);
|
|
2129
|
+
if (iSiblingIndex !== undefined) {
|
|
2130
|
+
return iSiblingIndex;
|
|
2131
|
+
}
|
|
2132
|
+
|
|
2133
|
+
const oNode = this.aElements[iIndex];
|
|
2134
|
+
const mQueryOptions = {
|
|
2135
|
+
...this.oFirstLevel.mQueryOptions,
|
|
2136
|
+
$filter : this.oAggregation.$LimitedRank + (iOffset < 0 ? " lt " : " gt ")
|
|
2137
|
+
+ _Helper.getPrivateAnnotation(oNode, "rank") + " and "
|
|
2138
|
+
+ this.oAggregation.$DistanceFromRoot + " lt " + oNode["@$ui5.node.level"],
|
|
2139
|
+
$top : 1
|
|
2140
|
+
};
|
|
2141
|
+
if (iOffset < 0) {
|
|
2142
|
+
mQueryOptions.$orderby = this.oAggregation.$LimitedRank + " desc";
|
|
2143
|
+
}
|
|
2144
|
+
mQueryOptions.$select = [...mQueryOptions.$select, this.oAggregation.$LimitedRank];
|
|
2145
|
+
delete mQueryOptions.$count;
|
|
2146
|
+
const sResourcePath = this.sResourcePath
|
|
2147
|
+
+ this.oRequestor.buildQueryString("", mQueryOptions, false, true, true);
|
|
2148
|
+
|
|
2149
|
+
const oResult = await this.oRequestor.request("GET", sResourcePath, oGroupLock);
|
|
2150
|
+
|
|
2151
|
+
const oSibling = oResult.value[0];
|
|
2152
|
+
// Note: overridden by _AggregationCache.calculateKeyPredicateRH
|
|
2153
|
+
this.oFirstLevel.calculateKeyPredicate(oSibling, this.getTypes(), this.sMetaPath);
|
|
2154
|
+
const iSiblingRank = parseInt(_Helper.drillDown(oSibling, this.oAggregation.$LimitedRank));
|
|
2155
|
+
_Helper.deleteProperty(oSibling, this.oAggregation.$LimitedRank);
|
|
2156
|
+
if (_Helper.hasPrivateAnnotation(this.aElements[iSiblingRank], "placeholder")) {
|
|
2157
|
+
this.insertNode(oSibling, iSiblingRank);
|
|
2158
|
+
} // else: sibling already inside collection
|
|
2159
|
+
|
|
2160
|
+
return oSibling["@$ui5.node.level"] === oNode["@$ui5.node.level"]
|
|
2161
|
+
? iSiblingRank
|
|
2162
|
+
: -1; // no such sibling
|
|
2163
|
+
};
|
|
2164
|
+
|
|
1994
2165
|
/**
|
|
1995
2166
|
* @override
|
|
1996
2167
|
* @see sap.ui.model.odata.v4.lib._CollectionCache#reset
|
|
@@ -44,6 +44,7 @@ sap.ui.define([
|
|
|
44
44
|
+ "(?:/" + _Parser.sODataIdentifier + ")*"
|
|
45
45
|
+ ")(?:" + _Parser.sWhitespace + "+(?:asc|desc))?$"),
|
|
46
46
|
mRecursiveHierarchyType = {
|
|
47
|
+
createInPlace : true,
|
|
47
48
|
expandTo : /^[1-9]\d*$/, // a positive integer
|
|
48
49
|
hierarchyQualifier : "string",
|
|
49
50
|
search : "string"
|
|
@@ -182,6 +183,7 @@ sap.ui.define([
|
|
|
182
183
|
// restore previous expansion state
|
|
183
184
|
oElement["@$ui5.node.isExpanded"] = oPlaceholder["@$ui5.node.isExpanded"];
|
|
184
185
|
}
|
|
186
|
+
_Helper.copySelected(oPlaceholder, oElement);
|
|
185
187
|
}
|
|
186
188
|
},
|
|
187
189
|
|
|
@@ -636,6 +638,10 @@ sap.ui.define([
|
|
|
636
638
|
_AggregationHelper.checkTypeof(vValue[sKey], vType[bIsMap ? "*" : sKey],
|
|
637
639
|
sPath + "/" + sKey);
|
|
638
640
|
});
|
|
641
|
+
} else if (vType === true) {
|
|
642
|
+
if (vValue !== true) {
|
|
643
|
+
throw new Error("Not a true value for '" + sPath + "'");
|
|
644
|
+
}
|
|
639
645
|
} else if (typeof vValue !== vType) { // eslint-disable-line valid-typeof
|
|
640
646
|
throw new Error("Not a " + vType + " value for '" + sPath + "'");
|
|
641
647
|
}
|
|
@@ -793,6 +799,44 @@ sap.ui.define([
|
|
|
793
799
|
return mQueryOptions;
|
|
794
800
|
},
|
|
795
801
|
|
|
802
|
+
/**
|
|
803
|
+
* Finds the index of the previous sibling within the given list of elements (which is meant
|
|
804
|
+
* to contain different levels), starting from an original node at the given index.
|
|
805
|
+
*
|
|
806
|
+
* @param {object[]} aElements - A list of elements with possible holes
|
|
807
|
+
* @param {number} iIndex - The original node's index within list of elements
|
|
808
|
+
* @returns {number}
|
|
809
|
+
* The previous sibling's index, or -1 if there is no previous sibling for sure, or
|
|
810
|
+
* <code>undefined</code> if we cannot tell
|
|
811
|
+
*
|
|
812
|
+
* @public
|
|
813
|
+
*/
|
|
814
|
+
findPreviousSiblingIndex : function (aElements, iIndex) {
|
|
815
|
+
let bHole;
|
|
816
|
+
const iLevel = aElements[iIndex]["@$ui5.node.level"];
|
|
817
|
+
for (let iSibling = iIndex - 1; iSibling >= 0; iSibling -= 1) {
|
|
818
|
+
const oCandidate = aElements[iSibling];
|
|
819
|
+
if (!oCandidate) {
|
|
820
|
+
bHole = true;
|
|
821
|
+
continue; // skip holes
|
|
822
|
+
}
|
|
823
|
+
if (oCandidate["@$ui5.node.level"] < iLevel) {
|
|
824
|
+
break; // sibling missed or no such sibling
|
|
825
|
+
}
|
|
826
|
+
if (oCandidate["@$ui5.node.level"] > iLevel) {
|
|
827
|
+
continue; // ignore descendants
|
|
828
|
+
}
|
|
829
|
+
// else: same level
|
|
830
|
+
if (iSibling + _Helper.getPrivateAnnotation(oCandidate, "descendants", 0)
|
|
831
|
+
=== iIndex - 1) {
|
|
832
|
+
return iSibling; // sibling found
|
|
833
|
+
}
|
|
834
|
+
break; // sibling missed (implies bHole)
|
|
835
|
+
}
|
|
836
|
+
|
|
837
|
+
return bHole ? undefined : -1;
|
|
838
|
+
},
|
|
839
|
+
|
|
796
840
|
/**
|
|
797
841
|
* Returns an unsorted list of all aggregatable or groupable properties, including units.
|
|
798
842
|
*
|
|
@@ -1257,10 +1301,10 @@ sap.ui.define([
|
|
|
1257
1301
|
* @returns {boolean}
|
|
1258
1302
|
* Whether the filter must be applied after aggregating
|
|
1259
1303
|
*/
|
|
1260
|
-
function isAfter(
|
|
1261
|
-
return
|
|
1262
|
-
?
|
|
1263
|
-
:
|
|
1304
|
+
function isAfter(oFilter0) {
|
|
1305
|
+
return oFilter0.aFilters
|
|
1306
|
+
? oFilter0.aFilters.some(isAfter)
|
|
1307
|
+
: oFilter0.sPath in oAggregation.aggregate;
|
|
1264
1308
|
}
|
|
1265
1309
|
|
|
1266
1310
|
/*
|
|
@@ -1270,12 +1314,12 @@ sap.ui.define([
|
|
|
1270
1314
|
* @param {sap.ui.model.Filter} oFilter
|
|
1271
1315
|
* A filter
|
|
1272
1316
|
*/
|
|
1273
|
-
function split(
|
|
1274
|
-
if (
|
|
1275
|
-
|
|
1317
|
+
function split(oFilter0) {
|
|
1318
|
+
if (oFilter0.aFilters && oFilter0.bAnd) {
|
|
1319
|
+
oFilter0.aFilters.forEach(split);
|
|
1276
1320
|
} else {
|
|
1277
|
-
(isAfter(
|
|
1278
|
-
.push(
|
|
1321
|
+
(isAfter(oFilter0) ? aFiltersAfterAggregate : aFiltersBeforeAggregate)
|
|
1322
|
+
.push(oFilter0);
|
|
1279
1323
|
}
|
|
1280
1324
|
}
|
|
1281
1325
|
|