@openui5/sap.ui.core 1.124.1 → 1.125.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/.reuse/dep5 +5 -0
- package/THIRDPARTY.txt +7 -0
- package/package.json +1 -1
- package/src/jquery.sap.global.js +4 -4
- package/src/jquery.sap.properties.js +2 -2
- package/src/jquery.sap.resources.js +1 -1
- package/src/jquery.sap.script.js +1 -1
- package/src/jquery.sap.storage.js +3 -3
- package/src/jquery.sap.ui.js +6 -2
- 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 +4 -4
- package/src/sap/ui/base/Event.js +1 -1
- package/src/sap/ui/base/EventProvider.js +1 -1
- package/src/sap/ui/base/Interface.js +1 -1
- package/src/sap/ui/base/ManagedObject.js +1 -1
- package/src/sap/ui/base/ManagedObjectMetadata.js +1 -1
- package/src/sap/ui/base/Metadata.js +1 -1
- package/src/sap/ui/base/Object.js +1 -1
- package/src/sap/ui/base/ObjectPool.js +1 -1
- package/src/sap/ui/core/.library +3 -3
- package/src/sap/ui/core/BusyIndicator.js +1 -1
- package/src/sap/ui/core/Component.js +6 -3
- 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 +18 -25
- 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/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 +1 -1
- 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 +5 -5
- 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/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 +1 -1
- package/src/sap/ui/core/dnd/DragAndDrop.js +29 -23
- 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 +6 -3
- package/src/sap/ui/core/format/DateFormat.js +3 -3
- 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 +3 -3
- package/src/sap/ui/core/message/ControlMessageProcessor.js +1 -1
- package/src/sap/ui/core/message/Message.js +1 -1
- package/src/sap/ui/core/message/MessageManager.js +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 +2 -2
- package/src/sap/ui/core/search/SearchProvider.js +2 -2
- 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/theming/Parameters.js +2 -2
- package/src/sap/ui/core/tmpl/DOMAttribute.js +2 -2
- package/src/sap/ui/core/tmpl/DOMElement.js +2 -2
- package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +2 -2
- package/src/sap/ui/core/tmpl/Template.js +1 -1
- package/src/sap/ui/core/tmpl/TemplateControl.js +2 -2
- 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/jquery/control.js +6 -3
- package/src/sap/ui/model/Binding.js +10 -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/FieldHelp.js +362 -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/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/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 +45 -13
- package/src/sap/ui/model/odata/v4/ODataBinding.js +20 -20
- package/src/sap/ui/model/odata/v4/ODataContextBinding.js +68 -68
- package/src/sap/ui/model/odata/v4/ODataListBinding.js +283 -212
- package/src/sap/ui/model/odata/v4/ODataMetaModel.js +41 -39
- package/src/sap/ui/model/odata/v4/ODataModel.js +236 -209
- package/src/sap/ui/model/odata/v4/ODataParentBinding.js +202 -202
- package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +1 -1
- package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +90 -20
- package/src/sap/ui/model/odata/v4/lib/_AggregationHelper.js +5 -0
- package/src/sap/ui/model/odata/v4/lib/_Cache.js +38 -42
- package/src/sap/ui/model/odata/v4/lib/_Helper.js +93 -68
- package/src/sap/ui/model/odata/v4/lib/_Requestor.js +78 -78
- package/src/sap/ui/model/odata/v4/lib/_TreeState.js +1 -1
- package/src/sap/ui/model/odata/v4/lib/_V2MetadataConverter.js +20 -20
- package/src/sap/ui/model/odata/v4/lib/_V2Requestor.js +60 -60
- 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/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/util/Storage.js +1 -1
- package/test/sap/ui/core/BindableResponseHeaders.html +4 -4
- 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 +8 -8
- package/test/sap/ui/core/ODataV2Messages.html +1 -1
- package/test/sap/ui/core/ODataV2MessagesPerf.html +131 -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/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/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/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 +21 -18
- 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 +81 -69
- package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/RecursiveHierarchy.view.xml +44 -9
- package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/SandboxModel.js +49 -0
- 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/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 +1 -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/SalesOrdersRTATest/Component.js +1 -0
- 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/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/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/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/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/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/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/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/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/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/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/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 +4 -3
- 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/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/RenderManager.qunit.js +18 -5
- package/test/sap/ui/core/qunit/ScrollBar.qunit.js +15 -18
- package/test/sap/ui/core/qunit/analytics/AnalyticalBinding.qunit.js +5 -13
- 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 +72 -2
- package/test/sap/ui/core/qunit/dnd/DropInfo.qunit.js +14 -2
- 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.js +1 -0
- 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/model/Binding.qunit.js +13 -0
- package/test/sap/ui/core/qunit/model/FieldHelp.qunit.js +864 -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/odata/v2/ODataModel.integration.qunit.js +148 -1
- 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 +14 -0
- package/test/sap/ui/core/qunit/odata/v4/Context.qunit.js +54 -0
- package/test/sap/ui/core/qunit/odata/v4/ODataListBinding.qunit.js +277 -15
- package/test/sap/ui/core/qunit/odata/v4/ODataModel.integration.qunit.js +580 -13
- package/test/sap/ui/core/qunit/odata/v4/ODataModel.qunit.js +86 -5
- package/test/sap/ui/core/qunit/odata/v4/lib/_AggregationCache.qunit.js +268 -5
- package/test/sap/ui/core/qunit/odata/v4/lib/_AggregationHelper.qunit.js +20 -0
- package/test/sap/ui/core/qunit/odata/v4/lib/_Cache.qunit.js +4 -10
- package/test/sap/ui/core/qunit/odata/v4/lib/_Helper.qunit.js +61 -13
- 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/test/starter/find/main.js +6 -4
- package/test/sap/ui/core/qunit/testdata/routing/HistoryIFrame.html +2 -1
- package/test/sap/ui/core/qunit/testsuites/testsuite.databinding.qunit.js +3 -0
- package/test/sap/ui/core/qunit/types/DateFormat.qunit.js +51 -22
- package/test/sap/ui/core/qunit/ui/Device.qunit.js +24 -0
- package/test/sap/ui/core/qunit/util/LabelEnablement.qunit.js +47 -1
- package/test/sap/ui/core/relnotes/changes-1.124.json +1 -21
- package/test/sap/ui/core/relnotes/changes-1.125.json +37 -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
|
@@ -140,8 +140,10 @@ sap.ui.define([
|
|
|
140
140
|
// Note: "@$ui5.node.level" is outdated after #move!
|
|
141
141
|
const iLevel = oElement["@$ui5.node.level"] + iLevelOffset;
|
|
142
142
|
|
|
143
|
-
// every "created" element needs to know its context
|
|
144
|
-
|
|
143
|
+
// every "created" element needs to know its context (if not using createInPlace!),
|
|
144
|
+
// no others must do so
|
|
145
|
+
strictEqual(oElement["@$ui5.context.isTransient"] !== undefined
|
|
146
|
+
&& !oListBinding.getAggregation().createInPlace,
|
|
145
147
|
_Helper.hasPrivateAnnotation(oElement, "context"),
|
|
146
148
|
`"context" @ level ${iLevel}`, oElement);
|
|
147
149
|
if (_Helper.hasPrivateAnnotation(oElement, "context")) {
|
|
@@ -5756,8 +5758,20 @@ sap.ui.define([
|
|
|
5756
5758
|
// refreshSingle is able to calculate the key predicates in its response and a subsequent PATCH
|
|
5757
5759
|
// is possible.
|
|
5758
5760
|
// BCP: 2070137560
|
|
5761
|
+
//
|
|
5762
|
+
// A header message is returned in the response. The targets of the message are pointing to the
|
|
5763
|
+
// binding parameter. The UI5 message contains the adjusted targets. (SNOW: DINC0122620)
|
|
5759
5764
|
QUnit.test("Context.refresh() in a list relative to a return value context", function (assert) {
|
|
5760
|
-
var
|
|
5765
|
+
var oMessage = {
|
|
5766
|
+
additionalTargets : [
|
|
5767
|
+
"$Parameter/SalesOrder/SO_2_SOITEM(ProductID='HT-1000')/ProductID"
|
|
5768
|
+
],
|
|
5769
|
+
code : "foo-42",
|
|
5770
|
+
message : "text",
|
|
5771
|
+
numericSeverity : 1,
|
|
5772
|
+
target : "$Parameter/SalesOrder/SO_2_SOITEM(ProductID='HT-1000')/Name"
|
|
5773
|
+
},
|
|
5774
|
+
oTable,
|
|
5761
5775
|
sView = '\
|
|
5762
5776
|
<FlexBox binding="{/SalesOrderList(\'1\')}">\
|
|
5763
5777
|
<Text id="id" text="{SalesOrderID}"/>\
|
|
@@ -5794,7 +5808,22 @@ sap.ui.define([
|
|
|
5794
5808
|
ProductID : "HT-1000"
|
|
5795
5809
|
}
|
|
5796
5810
|
}]
|
|
5797
|
-
|
|
5811
|
+
}, {
|
|
5812
|
+
"sap-messages" : JSON.stringify([oMessage])
|
|
5813
|
+
})
|
|
5814
|
+
.expectMessages([{
|
|
5815
|
+
code : "foo-42",
|
|
5816
|
+
message : "text",
|
|
5817
|
+
persistent : true,
|
|
5818
|
+
targets : [
|
|
5819
|
+
"/SalesOrderList('1')/SO_2_SOITEM(ProductID='HT-1000')/Name",
|
|
5820
|
+
"/SalesOrderList('1')/SO_2_SOITEM(ProductID='HT-1000')/ProductID"
|
|
5821
|
+
],
|
|
5822
|
+
technicalDetails : {
|
|
5823
|
+
originalMessage : oMessage
|
|
5824
|
+
},
|
|
5825
|
+
type : "Success"
|
|
5826
|
+
}]);
|
|
5798
5827
|
|
|
5799
5828
|
return Promise.all([
|
|
5800
5829
|
that.oView.byId("action").getObjectBinding().invoke(),
|
|
@@ -18978,8 +19007,18 @@ sap.ui.define([
|
|
|
18978
19007
|
// result.
|
|
18979
19008
|
// JIRA: CPOUI5UISERVICESV3-965
|
|
18980
19009
|
// BCP: 2070134549
|
|
19010
|
+
//
|
|
19011
|
+
// A header message is returned in the response. The target of the message is pointing to the
|
|
19012
|
+
// binding parameter. The UI5 message contains the adjusted target. (SNOW: DINC0122620)
|
|
18981
19013
|
QUnit.test("Rel. bound function, auto-$expand/$select (BCP 2070134549)", function (assert) {
|
|
18982
|
-
var
|
|
19014
|
+
var oMessage = {
|
|
19015
|
+
// additional targets are missing intentionally
|
|
19016
|
+
code : "foo-42",
|
|
19017
|
+
message : "text",
|
|
19018
|
+
numericSeverity : 1,
|
|
19019
|
+
target : "$Parameter/_it/Name"
|
|
19020
|
+
},
|
|
19021
|
+
sFunctionName = "com.sap.gateway.default.iwbep.tea_busi.v0001"
|
|
18983
19022
|
+ ".__FAKE__FuGetEmployeesByManager",
|
|
18984
19023
|
oModel = this.createTeaBusiModel({autoExpandSelect : true}),
|
|
18985
19024
|
sView = '\
|
|
@@ -19005,7 +19044,21 @@ sap.ui.define([
|
|
|
19005
19044
|
ID : "6",
|
|
19006
19045
|
Name : "Susan Bay"
|
|
19007
19046
|
}]
|
|
19047
|
+
}, {
|
|
19048
|
+
"sap-messages" : JSON.stringify([oMessage])
|
|
19008
19049
|
})
|
|
19050
|
+
.expectMessages([{
|
|
19051
|
+
code : "foo-42",
|
|
19052
|
+
message : "text",
|
|
19053
|
+
persistent : true,
|
|
19054
|
+
targets : [
|
|
19055
|
+
"/MANAGERS('1')/Name"
|
|
19056
|
+
],
|
|
19057
|
+
technicalDetails : {
|
|
19058
|
+
originalMessage : oMessage
|
|
19059
|
+
},
|
|
19060
|
+
type : "Success"
|
|
19061
|
+
}])
|
|
19009
19062
|
.expectChange("TEAM_ID", "TEAM_03")
|
|
19010
19063
|
.expectChange("id", ["3", "6"])
|
|
19011
19064
|
.expectChange("name", ["Jonathan Smith", "Susan Bay"]);
|
|
@@ -25437,6 +25490,7 @@ sap.ui.define([
|
|
|
25437
25490
|
//
|
|
25438
25491
|
// Selection on header and root context (JIRA: CPOUI5ODATAV4-1943).
|
|
25439
25492
|
// Data binding for selection (JIRA: CPOUI5ODATAV4-1944).
|
|
25493
|
+
// Get previous or next sibling (JIRA: CPOUI5ODATAV4-2558)
|
|
25440
25494
|
//
|
|
25441
25495
|
// Use $count (JIRA: CPOUI5ODATAV4-1855).
|
|
25442
25496
|
// Old vs. new format of RecursiveHierarchy annotation (JIRA: CPOUI5ODATAV4-2401).
|
|
@@ -25520,7 +25574,7 @@ sap.ui.define([
|
|
|
25520
25574
|
})
|
|
25521
25575
|
.expectChange("count");
|
|
25522
25576
|
|
|
25523
|
-
return this.createView(assert, sView, oModel).then(function () {
|
|
25577
|
+
return this.createView(assert, sView, oModel).then(async function () {
|
|
25524
25578
|
oTable = that.oView.byId("table");
|
|
25525
25579
|
oRoot = oTable.getRows()[0].getBindingContext();
|
|
25526
25580
|
oListBinding = oRoot.getBinding();
|
|
@@ -25579,6 +25633,10 @@ sap.ui.define([
|
|
|
25579
25633
|
}
|
|
25580
25634
|
}, "technical properties have been removed");
|
|
25581
25635
|
|
|
25636
|
+
// code under test
|
|
25637
|
+
assert.strictEqual(await oRoot.requestSibling(-1), null, "CPOUI5ODATAV4-2558");
|
|
25638
|
+
assert.strictEqual(await oRoot.requestSibling(+1), null, "CPOUI5ODATAV4-2558");
|
|
25639
|
+
|
|
25582
25640
|
// code under test
|
|
25583
25641
|
checkSelected(assert, oRoot, undefined);
|
|
25584
25642
|
checkSelected(assert, oHeaderContext, false);
|
|
@@ -26645,6 +26703,7 @@ sap.ui.define([
|
|
|
26645
26703
|
// JIRA: CPOUI5ODATAV4-2355
|
|
26646
26704
|
//
|
|
26647
26705
|
// Use LimitedRank after #create (JIRA: CPOUI5ODATAV4-2430)
|
|
26706
|
+
// Get previous or next sibling (JIRA: CPOUI5ODATAV4-2558)
|
|
26648
26707
|
QUnit.test("Recursive Hierarchy: expand to 2, collapse & expand root etc.", function (assert) {
|
|
26649
26708
|
var oCollapsed,
|
|
26650
26709
|
oListBinding,
|
|
@@ -26725,7 +26784,7 @@ sap.ui.define([
|
|
|
26725
26784
|
})
|
|
26726
26785
|
.expectChange("count");
|
|
26727
26786
|
|
|
26728
|
-
return this.createView(assert, sView, oModel).then(function () {
|
|
26787
|
+
return this.createView(assert, sView, oModel).then(async function () {
|
|
26729
26788
|
oTable = that.oView.byId("table");
|
|
26730
26789
|
oListBinding = oTable.getBinding("rows");
|
|
26731
26790
|
|
|
@@ -26755,6 +26814,12 @@ sap.ui.define([
|
|
|
26755
26814
|
Name : "Kappa"
|
|
26756
26815
|
}, "technical properties have been removed");
|
|
26757
26816
|
|
|
26817
|
+
const [oBeta, oKappa, oLambda] = oListBinding.getCurrentContexts();
|
|
26818
|
+
// code under test
|
|
26819
|
+
assert.strictEqual(await oKappa.requestSibling(-1), oBeta, "CPOUI5ODATAV4-2558");
|
|
26820
|
+
assert.strictEqual(await oKappa.requestSibling(), oLambda, "CPOUI5ODATAV4-2558");
|
|
26821
|
+
assert.strictEqual(await oKappa.requestSibling(+1), oLambda, "CPOUI5ODATAV4-2558");
|
|
26822
|
+
|
|
26758
26823
|
// code under test
|
|
26759
26824
|
assert.strictEqual(oListBinding.getDownloadUrl(), sTeaBusi + "EMPLOYEES"
|
|
26760
26825
|
+ "?$apply=orderby(AGE%20desc)"
|
|
@@ -26786,7 +26851,7 @@ sap.ui.define([
|
|
|
26786
26851
|
oTable.setFirstVisibleRow(0);
|
|
26787
26852
|
|
|
26788
26853
|
return that.waitForChanges(assert, "scroll up");
|
|
26789
|
-
}).then(function () {
|
|
26854
|
+
}).then(async function () {
|
|
26790
26855
|
var oNameBinding;
|
|
26791
26856
|
|
|
26792
26857
|
oRoot = oTable.getRows()[0].getBindingContext();
|
|
@@ -26810,6 +26875,12 @@ sap.ui.define([
|
|
|
26810
26875
|
Name : "Alpha"
|
|
26811
26876
|
}, "technical properties have been removed");
|
|
26812
26877
|
|
|
26878
|
+
const [/*oAlpha*/, oBeta, oKappa, oLambda] = oListBinding.getAllCurrentContexts();
|
|
26879
|
+
// code under test
|
|
26880
|
+
//TODO assert.strictEqual(await oAlpha.requestSibling(), null, "CPOUI5ODATAV4-2558");
|
|
26881
|
+
assert.strictEqual(await oBeta.requestSibling(-1), null, "CPOUI5ODATAV4-2558");
|
|
26882
|
+
assert.strictEqual(await oKappa.requestSibling(), oLambda, "CPOUI5ODATAV4-2558");
|
|
26883
|
+
|
|
26813
26884
|
that.expectRequest({
|
|
26814
26885
|
batchNo : 3,
|
|
26815
26886
|
method : "PATCH",
|
|
@@ -26851,10 +26922,16 @@ sap.ui.define([
|
|
|
26851
26922
|
[false, 2, "1", "0", "Beta", 55],
|
|
26852
26923
|
[undefined, 2, "2", "0", "Kappa: κ", 66]
|
|
26853
26924
|
], 6);
|
|
26925
|
+
const [, oBeta] = oListBinding.getCurrentContexts();
|
|
26854
26926
|
|
|
26855
26927
|
// code under test
|
|
26856
26928
|
oRoot.collapse();
|
|
26857
26929
|
|
|
26930
|
+
assert.throws(function () {
|
|
26931
|
+
// code under test
|
|
26932
|
+
oBeta.requestSibling();
|
|
26933
|
+
}, new Error("Unsupported context: " + oBeta));
|
|
26934
|
+
|
|
26858
26935
|
return that.waitForChanges(assert, "collapse root");
|
|
26859
26936
|
}).then(function () {
|
|
26860
26937
|
checkTable("root collapsed", assert, oTable, [
|
|
@@ -26907,7 +26984,12 @@ sap.ui.define([
|
|
|
26907
26984
|
oCollapsed.expand();
|
|
26908
26985
|
|
|
26909
26986
|
return that.waitForChanges(assert, "expand initially collapsed node");
|
|
26910
|
-
}).then(function () {
|
|
26987
|
+
}).then(async function () {
|
|
26988
|
+
const [, oBeta, oGamma] = oListBinding.getCurrentContexts();
|
|
26989
|
+
// code under test (JIRA: CPOUI5ODATAV4-2558)
|
|
26990
|
+
const oZeta0 = await oGamma.requestSibling(); // Note: new context created here
|
|
26991
|
+
|
|
26992
|
+
// BEWARE: calls #getAllCurrentContexts!
|
|
26911
26993
|
checkTable("initially collapsed node expanded", assert, oTable, [
|
|
26912
26994
|
"/EMPLOYEES('0')",
|
|
26913
26995
|
"/EMPLOYEES('1')",
|
|
@@ -26930,6 +27012,16 @@ sap.ui.define([
|
|
|
26930
27012
|
Name : "Beta"
|
|
26931
27013
|
}, "technical properties have been removed");
|
|
26932
27014
|
|
|
27015
|
+
const [,,, oZeta, oKappa] = oListBinding.getAllCurrentContexts();
|
|
27016
|
+
assert.strictEqual(oZeta0, oZeta);
|
|
27017
|
+
// code under test
|
|
27018
|
+
assert.strictEqual(await oBeta.requestSibling(+1), oKappa, "CPOUI5ODATAV4-2558");
|
|
27019
|
+
assert.strictEqual(await oKappa.requestSibling(-1), oBeta, "CPOUI5ODATAV4-2558");
|
|
27020
|
+
assert.strictEqual(await oGamma.requestSibling(-1), null, "CPOUI5ODATAV4-2558");
|
|
27021
|
+
assert.strictEqual(await oGamma.requestSibling(+1), oZeta, "CPOUI5ODATAV4-2558");
|
|
27022
|
+
assert.strictEqual(await oZeta.requestSibling(-1), oGamma, "CPOUI5ODATAV4-2558");
|
|
27023
|
+
assert.strictEqual(await oZeta.requestSibling(+1), null, "CPOUI5ODATAV4-2558");
|
|
27024
|
+
|
|
26933
27025
|
that.expectRequest(sTopLevelsSelectUrl + "&$skip=4&$top=2", {
|
|
26934
27026
|
value : [{
|
|
26935
27027
|
AGE : 58,
|
|
@@ -27029,7 +27121,7 @@ sap.ui.define([
|
|
|
27029
27121
|
oListBinding.getHeaderContext().requestSideEffects(["AGE"]),
|
|
27030
27122
|
that.waitForChanges(assert, "create new root, side effect: AGE for all rows")
|
|
27031
27123
|
]);
|
|
27032
|
-
}).then(function () {
|
|
27124
|
+
}).then(async function () {
|
|
27033
27125
|
checkTable("new root created, after side effect: AGE for all rows", assert, oTable, [
|
|
27034
27126
|
"/EMPLOYEES('9')",
|
|
27035
27127
|
"/EMPLOYEES('0')"
|
|
@@ -27039,6 +27131,13 @@ sap.ui.define([
|
|
|
27039
27131
|
]);
|
|
27040
27132
|
checkCreatedPersisted(assert, oNewRoot);
|
|
27041
27133
|
|
|
27134
|
+
const [oAleph, oAlpha] = oListBinding.getCurrentContexts();
|
|
27135
|
+
// code under test
|
|
27136
|
+
assert.strictEqual(await oAlpha.requestSibling(+1), oAleph,
|
|
27137
|
+
"CPOUI5ODATAV4-2558 ignoring out-of-place nodes");
|
|
27138
|
+
assert.strictEqual(await oAleph.requestSibling(-1), oAlpha,
|
|
27139
|
+
"CPOUI5ODATAV4-2558 ignoring out-of-place nodes");
|
|
27140
|
+
|
|
27042
27141
|
that.expectRequest(sTopLevelsSelectUrl + "&$skip=1&$top=1", {
|
|
27043
27142
|
value : [{
|
|
27044
27143
|
AGE : 155,
|
|
@@ -30255,6 +30354,10 @@ sap.ui.define([
|
|
|
30255
30354
|
// code under test
|
|
30256
30355
|
oRoot.move({parent : oListBinding.getHeaderContext()});
|
|
30257
30356
|
}, new Error("Cannot move to " + sFriend));
|
|
30357
|
+
assert.throws(function () {
|
|
30358
|
+
// code under test
|
|
30359
|
+
oListBinding.getHeaderContext().requestSibling();
|
|
30360
|
+
}, new Error("Unsupported context: " + sFriend));
|
|
30258
30361
|
|
|
30259
30362
|
checkTable("root is leaf", assert, oTable, [
|
|
30260
30363
|
sFriend + "(ArtistID='0',IsActiveEntity=false)"
|
|
@@ -30316,6 +30419,10 @@ sap.ui.define([
|
|
|
30316
30419
|
// code under test
|
|
30317
30420
|
oRoot.move({parent : oBeta});
|
|
30318
30421
|
}, new Error("Cannot move to " + oBeta), "too early");
|
|
30422
|
+
assert.throws(function () {
|
|
30423
|
+
// code under test
|
|
30424
|
+
oBeta.requestSibling();
|
|
30425
|
+
}, new Error("Unsupported context: " + oBeta), "too early");
|
|
30319
30426
|
|
|
30320
30427
|
return that.waitForChanges(assert, "create 1st child");
|
|
30321
30428
|
}).then(function () {
|
|
@@ -31522,6 +31629,10 @@ sap.ui.define([
|
|
|
31522
31629
|
// code under test
|
|
31523
31630
|
oNewChild.move({parent : oNewRoot});
|
|
31524
31631
|
}, new Error("Cannot move to " + oNewRoot), "too late");
|
|
31632
|
+
assert.throws(function () {
|
|
31633
|
+
// code under test
|
|
31634
|
+
oNewRoot.requestSibling();
|
|
31635
|
+
}, new Error("Unsupported context: " + oNewRoot), "too late");
|
|
31525
31636
|
|
|
31526
31637
|
await Promise.all([
|
|
31527
31638
|
oDeleteNewRootPromise,
|
|
@@ -35836,6 +35947,11 @@ sap.ui.define([
|
|
|
35836
35947
|
[true, 1, "Alpha*"],
|
|
35837
35948
|
[undefined, 2, "Theta*"]
|
|
35838
35949
|
], 7);
|
|
35950
|
+
assert.deepEqual(oBinding.getAllCurrentContexts()[0].getObject(), {
|
|
35951
|
+
"@$ui5.node.level" : 1,
|
|
35952
|
+
ID : "7",
|
|
35953
|
+
Name : "Eta*"
|
|
35954
|
+
}, "no LimitedRank");
|
|
35839
35955
|
|
|
35840
35956
|
this.expectRequest(sUrlWithExpandLevels
|
|
35841
35957
|
+ "&$select=DescendantCount,DistanceFromRoot,DrillState,ID,Name"
|
|
@@ -37691,6 +37807,438 @@ make root = ${bMakeRoot}`;
|
|
|
37691
37807
|
assert.strictEqual(oBeta.getIndex(), 0);
|
|
37692
37808
|
});
|
|
37693
37809
|
|
|
37810
|
+
//*********************************************************************************************
|
|
37811
|
+
// Scenario: A hierarchy uses "$$aggregation.createInPlace". In this mode new nodes are not part
|
|
37812
|
+
// of the hierarchy as long as they are transient.
|
|
37813
|
+
// Create a node, but because of a filter this node doesn't become part of the hierarchy and is
|
|
37814
|
+
// therefore not displayed.
|
|
37815
|
+
// Create a child below an expanded parent on a level within the given expandTo range, it is
|
|
37816
|
+
// inserted "in place" at the last sibling position.
|
|
37817
|
+
// Create a child below a leaf, also on a level within the given expandTo range.
|
|
37818
|
+
// JIRA: CPOUI5ODATAV4-2560
|
|
37819
|
+
QUnit.test("Recursive Hierarchy: createInPlace", async function (assert) {
|
|
37820
|
+
const oModel = this.createTeaBusiModel({autoExpandSelect : true});
|
|
37821
|
+
const sSelect = "&$select=DescendantCount,DistanceFromRoot,DrillState,ID,Name";
|
|
37822
|
+
const sUrl = "EMPLOYEES"
|
|
37823
|
+
+ "?$apply=ancestors($root/EMPLOYEES,OrgChart,ID,filter(Is_Manager),keep start)"
|
|
37824
|
+
+ "/com.sap.vocabularies.Hierarchy.v1.TopLevels(HierarchyNodes=$root/EMPLOYEES"
|
|
37825
|
+
+ ",HierarchyQualifier='OrgChart',NodeProperty='ID',Levels=2)";
|
|
37826
|
+
const sView = `
|
|
37827
|
+
<t:Table id="table" rows="{path : '/EMPLOYEES',
|
|
37828
|
+
parameters : {
|
|
37829
|
+
$$aggregation : {
|
|
37830
|
+
createInPlace : true,
|
|
37831
|
+
expandTo : 2,
|
|
37832
|
+
hierarchyQualifier : 'OrgChart'
|
|
37833
|
+
},
|
|
37834
|
+
$count : true,
|
|
37835
|
+
$filter : 'Is_Manager'
|
|
37836
|
+
}}" threshold="0" visibleRowCount="1">
|
|
37837
|
+
<Text text="{= %{@$ui5.node.isExpanded} }"/>
|
|
37838
|
+
<Text text="{= %{@$ui5.node.level} }"/>
|
|
37839
|
+
<Text text="{ID}"/>
|
|
37840
|
+
<Text text="{Name}"/>
|
|
37841
|
+
</t:Table>`;
|
|
37842
|
+
|
|
37843
|
+
// 1 Alpha
|
|
37844
|
+
// 3 Gamma
|
|
37845
|
+
// 4 Delta (created)
|
|
37846
|
+
// 2 Beta
|
|
37847
|
+
// 5 Epsilon (created)
|
|
37848
|
+
// (42 FilteredOut (created, but filtered out))
|
|
37849
|
+
this.expectRequest("EMPLOYEES/$count?$filter=Is_Manager", 3)
|
|
37850
|
+
.expectRequest(sUrl + sSelect + "&$count=true&$skip=0&$top=1", {
|
|
37851
|
+
"@odata.count" : "3",
|
|
37852
|
+
value : [{
|
|
37853
|
+
DescendantCount : "1",
|
|
37854
|
+
DistanceFromRoot : "0",
|
|
37855
|
+
DrillState : "expanded",
|
|
37856
|
+
ID : "1",
|
|
37857
|
+
Name : "Alpha"
|
|
37858
|
+
}]
|
|
37859
|
+
});
|
|
37860
|
+
|
|
37861
|
+
await this.createView(assert, sView, oModel);
|
|
37862
|
+
|
|
37863
|
+
const oTable = this.oView.byId("table");
|
|
37864
|
+
checkTable("initial page", assert, oTable, [
|
|
37865
|
+
"/EMPLOYEES('1')"
|
|
37866
|
+
], [
|
|
37867
|
+
[true, 1, "1", "Alpha"]
|
|
37868
|
+
], 3);
|
|
37869
|
+
const oListBinding = oTable.getBinding("rows");
|
|
37870
|
+
|
|
37871
|
+
this.expectRequest({
|
|
37872
|
+
method : "POST",
|
|
37873
|
+
url : "EMPLOYEES",
|
|
37874
|
+
payload : {
|
|
37875
|
+
Name : "FilteredOut"
|
|
37876
|
+
}
|
|
37877
|
+
}, {
|
|
37878
|
+
ID : "42",
|
|
37879
|
+
Name : "FilteredOut"
|
|
37880
|
+
})
|
|
37881
|
+
.expectRequest(sUrl + "&$filter=ID eq '42'&$select=LimitedRank", {
|
|
37882
|
+
value : [] // filtered out
|
|
37883
|
+
});
|
|
37884
|
+
|
|
37885
|
+
// code under test
|
|
37886
|
+
const oFilteredOut = oListBinding.create({
|
|
37887
|
+
Name : "FilteredOut"
|
|
37888
|
+
}, /*bSkipRefresh*/true);
|
|
37889
|
+
|
|
37890
|
+
assert.strictEqual(oFilteredOut.getIndex(), undefined);
|
|
37891
|
+
assert.strictEqual(oFilteredOut.isTransient(), true);
|
|
37892
|
+
checkTable("while create FilteredOut is pending", assert, oTable, [
|
|
37893
|
+
"/EMPLOYEES('1')"
|
|
37894
|
+
], [
|
|
37895
|
+
[true, 1, "1", "Alpha"]
|
|
37896
|
+
], 3);
|
|
37897
|
+
assert.strictEqual(oListBinding.getCount(), 3);
|
|
37898
|
+
|
|
37899
|
+
await Promise.all([
|
|
37900
|
+
oFilteredOut.created(),
|
|
37901
|
+
this.waitForChanges(assert, "create FilteredOut")
|
|
37902
|
+
]);
|
|
37903
|
+
|
|
37904
|
+
assert.strictEqual(oFilteredOut.getIndex(), undefined, "not part of the hierarchy");
|
|
37905
|
+
assert.strictEqual(oFilteredOut.isTransient(), undefined);
|
|
37906
|
+
assert.strictEqual(oFilteredOut.getPath(), "/EMPLOYEES('42')");
|
|
37907
|
+
assert.strictEqual(oFilteredOut.getBinding(), undefined, "FilteredOut is destroyed");
|
|
37908
|
+
assert.throws(function () {
|
|
37909
|
+
oFilteredOut.setKeepAlive(true);
|
|
37910
|
+
}, "already destroyed");
|
|
37911
|
+
checkTable("after create FilteredOut", assert, oTable, [
|
|
37912
|
+
"/EMPLOYEES('1')"
|
|
37913
|
+
], [
|
|
37914
|
+
[true, 1, "1", "Alpha"]
|
|
37915
|
+
], 3);
|
|
37916
|
+
assert.strictEqual(oListBinding.getCount(), 3);
|
|
37917
|
+
|
|
37918
|
+
this.expectRequest(sUrl + sSelect + "&$skip=1&$top=2", {
|
|
37919
|
+
value : [{
|
|
37920
|
+
DescendantCount : "0",
|
|
37921
|
+
DistanceFromRoot : "1",
|
|
37922
|
+
DrillState : "leaf",
|
|
37923
|
+
ID : "3",
|
|
37924
|
+
Name : "Gamma"
|
|
37925
|
+
}, {
|
|
37926
|
+
DescendantCount : "0",
|
|
37927
|
+
DistanceFromRoot : "0",
|
|
37928
|
+
DrillState : "leaf",
|
|
37929
|
+
ID : "2",
|
|
37930
|
+
Name : "Beta"
|
|
37931
|
+
}]
|
|
37932
|
+
});
|
|
37933
|
+
|
|
37934
|
+
await this.checkAllContexts("after FilteredOut is destroyed", assert, oListBinding,
|
|
37935
|
+
["@$ui5.node.isExpanded", "@$ui5.node.level", "ID", "Name"], [
|
|
37936
|
+
[true, 1, "1", "Alpha"],
|
|
37937
|
+
[undefined, 2, "3", "Gamma"],
|
|
37938
|
+
[undefined, 1, "2", "Beta"]
|
|
37939
|
+
]);
|
|
37940
|
+
const oAlpha = oListBinding.getAllCurrentContexts()[0];
|
|
37941
|
+
|
|
37942
|
+
this.expectRequest({
|
|
37943
|
+
method : "POST",
|
|
37944
|
+
url : "EMPLOYEES",
|
|
37945
|
+
payload : {
|
|
37946
|
+
"EMPLOYEE_2_MANAGER@odata.bind" : "EMPLOYEES('1')",
|
|
37947
|
+
Name : "Delta"
|
|
37948
|
+
}
|
|
37949
|
+
}, {
|
|
37950
|
+
ID : "4",
|
|
37951
|
+
Name : "Delta"
|
|
37952
|
+
})
|
|
37953
|
+
.expectRequest(sUrl + "&$filter=ID eq '4'&$select=LimitedRank", {
|
|
37954
|
+
value : [{LimitedRank : "2"}]
|
|
37955
|
+
});
|
|
37956
|
+
|
|
37957
|
+
// code under test
|
|
37958
|
+
const oDelta = oListBinding.create({
|
|
37959
|
+
"@$ui5.node.parent" : oAlpha,
|
|
37960
|
+
Name : "Delta"
|
|
37961
|
+
}, /*bSkipRefresh*/true);
|
|
37962
|
+
const oDeltaCreated = oDelta.created();
|
|
37963
|
+
|
|
37964
|
+
assert.strictEqual(oDelta.getIndex(), undefined);
|
|
37965
|
+
assert.strictEqual(oDelta.isTransient(), true);
|
|
37966
|
+
checkTable("while create Delta is pending", assert, oTable, [
|
|
37967
|
+
"/EMPLOYEES('1')",
|
|
37968
|
+
"/EMPLOYEES('3')",
|
|
37969
|
+
"/EMPLOYEES('2')"
|
|
37970
|
+
], [
|
|
37971
|
+
[true, 1, "1", "Alpha"]
|
|
37972
|
+
]);
|
|
37973
|
+
assert.strictEqual(oListBinding.getCount(), 3);
|
|
37974
|
+
|
|
37975
|
+
await Promise.all([
|
|
37976
|
+
oDeltaCreated,
|
|
37977
|
+
this.waitForChanges(assert, "create Delta")
|
|
37978
|
+
]);
|
|
37979
|
+
|
|
37980
|
+
assert.strictEqual(oDelta.getIndex(), 2);
|
|
37981
|
+
assert.strictEqual(oDelta.isTransient(), false);
|
|
37982
|
+
checkCreatedPersisted(assert, oDelta, oDeltaCreated);
|
|
37983
|
+
await this.checkAllContexts("after create Delta", assert, oListBinding,
|
|
37984
|
+
["@$ui5.node.isExpanded", "@$ui5.node.level", "ID", "Name"], [
|
|
37985
|
+
[true, 1, "1", "Alpha"],
|
|
37986
|
+
[undefined, 2, "3", "Gamma"],
|
|
37987
|
+
[undefined, 2, "4", "Delta"],
|
|
37988
|
+
[undefined, 1, "2", "Beta"]
|
|
37989
|
+
]);
|
|
37990
|
+
assert.strictEqual(oListBinding.getCount(), 3); // TODO: update $count; CPOUI5ODATAV4-2245
|
|
37991
|
+
const oBeta = oListBinding.getAllCurrentContexts()[3];
|
|
37992
|
+
|
|
37993
|
+
this.expectRequest({
|
|
37994
|
+
method : "POST",
|
|
37995
|
+
url : "EMPLOYEES",
|
|
37996
|
+
payload : {
|
|
37997
|
+
"EMPLOYEE_2_MANAGER@odata.bind" : "EMPLOYEES('2')",
|
|
37998
|
+
Name : "Epsilon"
|
|
37999
|
+
}
|
|
38000
|
+
}, {
|
|
38001
|
+
ID : "5",
|
|
38002
|
+
Name : "Epsilon"
|
|
38003
|
+
})
|
|
38004
|
+
.expectRequest(sUrl + "&$filter=ID eq '5'&$select=LimitedRank", {
|
|
38005
|
+
value : [{LimitedRank : "4"}]
|
|
38006
|
+
});
|
|
38007
|
+
|
|
38008
|
+
// code under test
|
|
38009
|
+
const oEpsilon = oListBinding.create({
|
|
38010
|
+
"@$ui5.node.parent" : oBeta,
|
|
38011
|
+
Name : "Epsilon"
|
|
38012
|
+
}, /*bSkipRefresh*/true);
|
|
38013
|
+
const oEpsilonCreated = oEpsilon.created();
|
|
38014
|
+
|
|
38015
|
+
assert.strictEqual(oEpsilon.getIndex(), undefined);
|
|
38016
|
+
assert.strictEqual(oEpsilon.isTransient(), true);
|
|
38017
|
+
checkTable("while create Epsilon is pending", assert, oTable, [
|
|
38018
|
+
"/EMPLOYEES('1')",
|
|
38019
|
+
"/EMPLOYEES('3')",
|
|
38020
|
+
"/EMPLOYEES('4')",
|
|
38021
|
+
"/EMPLOYEES('2')"
|
|
38022
|
+
], [
|
|
38023
|
+
[true, 1, "1", "Alpha"]
|
|
38024
|
+
]);
|
|
38025
|
+
assert.strictEqual(oListBinding.getCount(), 3);
|
|
38026
|
+
|
|
38027
|
+
await Promise.all([
|
|
38028
|
+
oEpsilonCreated,
|
|
38029
|
+
this.waitForChanges(assert, "create Epsilon")
|
|
38030
|
+
]);
|
|
38031
|
+
|
|
38032
|
+
assert.strictEqual(oEpsilon.getIndex(), 4);
|
|
38033
|
+
assert.strictEqual(oEpsilon.isTransient(), false);
|
|
38034
|
+
checkCreatedPersisted(assert, oEpsilon, oEpsilonCreated);
|
|
38035
|
+
await this.checkAllContexts("after create Epsilon", assert, oListBinding,
|
|
38036
|
+
["@$ui5.node.isExpanded", "@$ui5.node.level", "ID", "Name"], [
|
|
38037
|
+
[true, 1, "1", "Alpha"],
|
|
38038
|
+
[undefined, 2, "3", "Gamma"],
|
|
38039
|
+
[undefined, 2, "4", "Delta"],
|
|
38040
|
+
[true, 1, "2", "Beta"],
|
|
38041
|
+
[undefined, 2, "5", "Epsilon"]
|
|
38042
|
+
]);
|
|
38043
|
+
assert.strictEqual(oListBinding.getCount(), 3); // TODO: update $count; CPOUI5ODATAV4-2245
|
|
38044
|
+
});
|
|
38045
|
+
|
|
38046
|
+
//*********************************************************************************************
|
|
38047
|
+
// Scenario: A hierarchy uses "$$aggregation.createInPlace". Create a root node which is created
|
|
38048
|
+
// and shown in-place between two existing nodes. Use the special cases model to ensure the node
|
|
38049
|
+
// property is properly requested.
|
|
38050
|
+
// Expand a node to see that createInPlace activated a unified cache (side-effects expand).
|
|
38051
|
+
// JIRA: CPOUI5ODATAV4-2560
|
|
38052
|
+
QUnit.test("Recursive Hierarchy: createInPlace, root", async function (assert) {
|
|
38053
|
+
const sUrl = "Artists?$apply=ancestors($root/Artists,OrgChart,_/NodeID"
|
|
38054
|
+
+ ",filter(sendsAutographs),keep start)"
|
|
38055
|
+
+ "/com.sap.vocabularies.Hierarchy.v1.TopLevels(HierarchyNodes=$root/Artists"
|
|
38056
|
+
+ ",HierarchyQualifier='OrgChart',NodeProperty='_/NodeID',Levels=1)";
|
|
38057
|
+
const sSelect = "&$select=ArtistID,IsActiveEntity,Name,_/DrillState,_/NodeID";
|
|
38058
|
+
const oModel = this.createSpecialCasesModel({autoExpandSelect : true});
|
|
38059
|
+
const sView = `
|
|
38060
|
+
<t:Table id="table" rows="{path : '/Artists',
|
|
38061
|
+
parameters : {
|
|
38062
|
+
$$aggregation : {
|
|
38063
|
+
createInPlace : true,
|
|
38064
|
+
hierarchyQualifier : 'OrgChart'
|
|
38065
|
+
},
|
|
38066
|
+
$count : true,
|
|
38067
|
+
$filter : 'sendsAutographs'
|
|
38068
|
+
}}" threshold="0">
|
|
38069
|
+
<Text text="{= %{@$ui5.node.isExpanded} }"/>
|
|
38070
|
+
<Text text="{= %{@$ui5.node.level} }"/>
|
|
38071
|
+
<Text text="{ArtistID}"/>
|
|
38072
|
+
<Text text="{Name}"/>
|
|
38073
|
+
<Text text="{_/NodeID}"/>
|
|
38074
|
+
</t:Table>`;
|
|
38075
|
+
|
|
38076
|
+
// 1 Alpha
|
|
38077
|
+
// 3 Gamma (created)
|
|
38078
|
+
// 2 Beta
|
|
38079
|
+
// 4 Delta
|
|
38080
|
+
|
|
38081
|
+
this.expectRequest("Artists/$count?$filter=sendsAutographs", 3)
|
|
38082
|
+
.expectRequest(sUrl + sSelect + "&$count=true&$skip=0&$top=10", {
|
|
38083
|
+
"@odata.count" : "2",
|
|
38084
|
+
value : [{
|
|
38085
|
+
ArtistID : "1",
|
|
38086
|
+
IsActiveEntity : false,
|
|
38087
|
+
Name : "Alpha",
|
|
38088
|
+
_ : {
|
|
38089
|
+
DrillState : "leaf",
|
|
38090
|
+
NodeID : "1,false"
|
|
38091
|
+
}
|
|
38092
|
+
}, {
|
|
38093
|
+
ArtistID : "2",
|
|
38094
|
+
IsActiveEntity : false,
|
|
38095
|
+
Name : "Beta",
|
|
38096
|
+
_ : {
|
|
38097
|
+
DrillState : "collapsed",
|
|
38098
|
+
NodeID : "2,false"
|
|
38099
|
+
}
|
|
38100
|
+
}]
|
|
38101
|
+
});
|
|
38102
|
+
|
|
38103
|
+
await this.createView(assert, sView, oModel);
|
|
38104
|
+
|
|
38105
|
+
const oTable = this.oView.byId("table");
|
|
38106
|
+
checkTable("initial page", assert, oTable, [
|
|
38107
|
+
"/Artists(ArtistID='1',IsActiveEntity=false)",
|
|
38108
|
+
"/Artists(ArtistID='2',IsActiveEntity=false)"
|
|
38109
|
+
], [
|
|
38110
|
+
[undefined, 1, "1", "Alpha", "1,false"],
|
|
38111
|
+
[false, 1, "2", "Beta", "2,false"]
|
|
38112
|
+
]);
|
|
38113
|
+
const oListBinding = oTable.getBinding("rows");
|
|
38114
|
+
|
|
38115
|
+
this.expectRequest({
|
|
38116
|
+
method : "POST",
|
|
38117
|
+
url : "Artists",
|
|
38118
|
+
payload : {
|
|
38119
|
+
Name : "Gamma"
|
|
38120
|
+
}
|
|
38121
|
+
}, {
|
|
38122
|
+
ArtistID : "3",
|
|
38123
|
+
IsActiveEntity : false,
|
|
38124
|
+
Name : "Gamma",
|
|
38125
|
+
_ : null // not available w/ RAP for a non-hierarchical request
|
|
38126
|
+
})
|
|
38127
|
+
.expectRequest(sUrl + "&$filter=ArtistID eq '3' and IsActiveEntity eq false"
|
|
38128
|
+
+ "&$select=_/Limited_Rank,_/NodeID", {
|
|
38129
|
+
value : [{
|
|
38130
|
+
_ : {
|
|
38131
|
+
Limited_Rank : "1",
|
|
38132
|
+
NodeID : "3,false"
|
|
38133
|
+
}
|
|
38134
|
+
}]
|
|
38135
|
+
});
|
|
38136
|
+
|
|
38137
|
+
// code under test
|
|
38138
|
+
const oGamma = oListBinding.create({
|
|
38139
|
+
Name : "Gamma"
|
|
38140
|
+
}, /*bSkipRefresh*/true);
|
|
38141
|
+
const oGammaCreated = oGamma.created();
|
|
38142
|
+
|
|
38143
|
+
assert.strictEqual(oGamma.getIndex(), undefined);
|
|
38144
|
+
assert.strictEqual(oGamma.isTransient(), true);
|
|
38145
|
+
checkTable("while create Gamma is pending", assert, oTable, [
|
|
38146
|
+
"/Artists(ArtistID='1',IsActiveEntity=false)",
|
|
38147
|
+
"/Artists(ArtistID='2',IsActiveEntity=false)"
|
|
38148
|
+
], [
|
|
38149
|
+
[undefined, 1, "1", "Alpha", "1,false"],
|
|
38150
|
+
[false, 1, "2", "Beta", "2,false"]
|
|
38151
|
+
]);
|
|
38152
|
+
assert.strictEqual(oListBinding.getCount(), 3);
|
|
38153
|
+
|
|
38154
|
+
await Promise.all([
|
|
38155
|
+
oGammaCreated,
|
|
38156
|
+
this.waitForChanges(assert, "create Gamma")
|
|
38157
|
+
]);
|
|
38158
|
+
|
|
38159
|
+
assert.strictEqual(oGamma.getIndex(), 1);
|
|
38160
|
+
assert.strictEqual(oGamma.isTransient(), false);
|
|
38161
|
+
checkCreatedPersisted(assert, oGamma, oGammaCreated);
|
|
38162
|
+
checkTable("after create Gamma", assert, oTable, [
|
|
38163
|
+
"/Artists(ArtistID='1',IsActiveEntity=false)",
|
|
38164
|
+
"/Artists(ArtistID='3',IsActiveEntity=false)",
|
|
38165
|
+
"/Artists(ArtistID='2',IsActiveEntity=false)"
|
|
38166
|
+
], [
|
|
38167
|
+
[undefined, 1, "1", "Alpha", "1,false"],
|
|
38168
|
+
[undefined, 1, "3", "Gamma", "3,false"],
|
|
38169
|
+
[false, 1, "2", "Beta", "2,false"]
|
|
38170
|
+
]);
|
|
38171
|
+
assert.strictEqual(oListBinding.getCount(), 3); // TODO: update $count; CPOUI5ODATAV4-2245
|
|
38172
|
+
const oBeta = oListBinding.getCurrentContexts()[2];
|
|
38173
|
+
|
|
38174
|
+
this.expectRequest("Artists/$count?$filter=sendsAutographs", 4)
|
|
38175
|
+
.expectRequest(sUrl.slice(0, -1)
|
|
38176
|
+
+ ",ExpandLevels=" + JSON.stringify([{NodeID : "2,false", Levels : 1}]) + ")"
|
|
38177
|
+
+ sSelect.replace(",Name,", ",Name,_/DescendantCount,_/DistanceFromRoot,")
|
|
38178
|
+
+ "&$count=true&$skip=0&$top=10", {
|
|
38179
|
+
"@odata.count" : "4",
|
|
38180
|
+
value : [{
|
|
38181
|
+
ArtistID : "1",
|
|
38182
|
+
IsActiveEntity : false,
|
|
38183
|
+
Name : "Alpha",
|
|
38184
|
+
_ : {
|
|
38185
|
+
DescendantCount : "0",
|
|
38186
|
+
DistanceFromRoot : "0",
|
|
38187
|
+
DrillState : "leaf",
|
|
38188
|
+
NodeID : "1,false"
|
|
38189
|
+
}
|
|
38190
|
+
}, {
|
|
38191
|
+
ArtistID : "3",
|
|
38192
|
+
IsActiveEntity : false,
|
|
38193
|
+
Name : "Gamma",
|
|
38194
|
+
_ : {
|
|
38195
|
+
DescendantCount : "0",
|
|
38196
|
+
DistanceFromRoot : "0",
|
|
38197
|
+
DrillState : "leaf",
|
|
38198
|
+
NodeID : "3,false"
|
|
38199
|
+
}
|
|
38200
|
+
}, {
|
|
38201
|
+
ArtistID : "2",
|
|
38202
|
+
IsActiveEntity : false,
|
|
38203
|
+
Name : "Beta",
|
|
38204
|
+
_ : {
|
|
38205
|
+
DescendantCount : "1",
|
|
38206
|
+
DistanceFromRoot : "0",
|
|
38207
|
+
DrillState : "expanded",
|
|
38208
|
+
NodeID : "2,false"
|
|
38209
|
+
}
|
|
38210
|
+
}, {
|
|
38211
|
+
ArtistID : "4",
|
|
38212
|
+
IsActiveEntity : false,
|
|
38213
|
+
Name : "Delta",
|
|
38214
|
+
_ : {
|
|
38215
|
+
DescendantCount : "0",
|
|
38216
|
+
DistanceFromRoot : "1",
|
|
38217
|
+
DrillState : "leaf",
|
|
38218
|
+
NodeID : "4,false"
|
|
38219
|
+
}
|
|
38220
|
+
}]
|
|
38221
|
+
});
|
|
38222
|
+
|
|
38223
|
+
// code under test
|
|
38224
|
+
oBeta.expand();
|
|
38225
|
+
|
|
38226
|
+
await this.waitForChanges(assert, "expand Beta");
|
|
38227
|
+
|
|
38228
|
+
checkTable("after expand Beta", assert, oTable, [
|
|
38229
|
+
"/Artists(ArtistID='1',IsActiveEntity=false)",
|
|
38230
|
+
"/Artists(ArtistID='3',IsActiveEntity=false)",
|
|
38231
|
+
"/Artists(ArtistID='2',IsActiveEntity=false)",
|
|
38232
|
+
"/Artists(ArtistID='4',IsActiveEntity=false)"
|
|
38233
|
+
], [
|
|
38234
|
+
[undefined, 1, "1", "Alpha", "1,false"],
|
|
38235
|
+
[undefined, 1, "3", "Gamma", "3,false"],
|
|
38236
|
+
[true, 1, "2", "Beta", "2,false"],
|
|
38237
|
+
[undefined, 2, "4", "Delta", "4,false"]
|
|
38238
|
+
]);
|
|
38239
|
+
assert.strictEqual(oListBinding.getCount(), 4);
|
|
38240
|
+
});
|
|
38241
|
+
|
|
37694
38242
|
//*********************************************************************************************
|
|
37695
38243
|
// Scenario: Show the first level of a recursive hierarchy ("Alpha", "Omega"), expand "Alpha".
|
|
37696
38244
|
// Scroll to "Delta". Request side effects for the list binding. The parent node will not
|
|
@@ -37698,6 +38246,8 @@ make root = ${bMakeRoot}`;
|
|
|
37698
38246
|
// Determine the parent node of "Delta" with #getParent. It is not available at the moment.
|
|
37699
38247
|
// Try to request the parent node of "Alpha" and "Delta".
|
|
37700
38248
|
// JIRA: CPOUI5ODATAV4-2342
|
|
38249
|
+
//
|
|
38250
|
+
// Request next sibling via group level cache (JIRA: CPOUI5ODATAV4-2558)
|
|
37701
38251
|
QUnit.test("Recursive Hierarchy: getParent/requestParent after requestSideEffects",
|
|
37702
38252
|
async function (assert) {
|
|
37703
38253
|
const oModel = this.createTeaBusiModel({autoExpandSelect : true});
|
|
@@ -37776,15 +38326,32 @@ make root = ${bMakeRoot}`;
|
|
|
37776
38326
|
[true, 1, "0", "Alpha"],
|
|
37777
38327
|
[undefined, 2, "1", "Beta"]
|
|
37778
38328
|
], 6);
|
|
38329
|
+
const [, oBeta, oGamma] = oAlpha.getBinding().getAllCurrentContexts();
|
|
38330
|
+
assert.strictEqual(oGamma.getProperty("Name"), "Gamma",
|
|
38331
|
+
"double check that index was right");
|
|
38332
|
+
|
|
38333
|
+
// code under test
|
|
38334
|
+
assert.strictEqual(await oGamma.requestSibling(-1), oBeta, "CPOUI5ODATAV4-2558");
|
|
37779
38335
|
|
|
37780
38336
|
this.expectRequest("EMPLOYEES?$apply=descendants($root/EMPLOYEES,OrgChart,ID"
|
|
37781
38337
|
+ ",filter(ID eq '0'),1)"
|
|
37782
|
-
+ "&$select=DrillState,ID,Name&$skip=2&$top=
|
|
38338
|
+
+ "&$select=DrillState,ID,Name&$skip=2&$top=1", {
|
|
37783
38339
|
value : [{
|
|
37784
38340
|
DrillState : "leaf",
|
|
37785
38341
|
ID : "3",
|
|
37786
38342
|
Name : "Delta"
|
|
37787
|
-
}
|
|
38343
|
+
}]
|
|
38344
|
+
});
|
|
38345
|
+
|
|
38346
|
+
// code under test
|
|
38347
|
+
const oDelta = await oGamma.requestSibling(+1);
|
|
38348
|
+
|
|
38349
|
+
assert.strictEqual(oDelta.getProperty("Name"), "Delta", "CPOUI5ODATAV4-2558");
|
|
38350
|
+
|
|
38351
|
+
this.expectRequest("EMPLOYEES?$apply=descendants($root/EMPLOYEES,OrgChart,ID"
|
|
38352
|
+
+ ",filter(ID eq '0'),1)"
|
|
38353
|
+
+ "&$select=DrillState,ID,Name&$skip=3&$top=1", {
|
|
38354
|
+
value : [{
|
|
37788
38355
|
DrillState : "leaf",
|
|
37789
38356
|
ID : "4",
|
|
37790
38357
|
Name : "Epsilon"
|
|
@@ -37807,7 +38374,7 @@ make root = ${bMakeRoot}`;
|
|
|
37807
38374
|
[undefined, 2, "3", "Delta"],
|
|
37808
38375
|
[undefined, 2, "4", "Epsilon"]
|
|
37809
38376
|
]);
|
|
37810
|
-
|
|
38377
|
+
assert.strictEqual(oDelta, oTable.getRows()[0].getBindingContext());
|
|
37811
38378
|
|
|
37812
38379
|
this.expectRequest("EMPLOYEES?$select=ID,Name&$filter=ID eq '3' or ID eq '4'"
|
|
37813
38380
|
+ "&$top=2", {
|