@openui5/sap.ui.core 1.121.1 → 1.122.1
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 +22 -5
- package/THIRDPARTY.txt +1 -1
- package/package.json +1 -1
- package/src/jquery.sap.global.js +1 -1
- package/src/jquery.sap.properties.js +1 -1
- package/src/jquery.sap.resources.js +1 -1
- package/src/jquery.sap.script.js +1 -1
- package/src/jquery.sap.sjax.js +6 -5
- package/src/jquery.sap.storage.js +3 -3
- package/src/sap/base/Event.js +1 -1
- package/src/sap/base/Eventing.js +1 -1
- package/src/sap/base/config.js +1 -1
- package/src/sap/base/i18n/Formatting.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/Deferred.js +4 -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 +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 +11 -5
- package/src/sap/ui/base/Exception.js +1 -1
- package/src/sap/ui/base/Interface.js +1 -1
- package/src/sap/ui/base/ManagedObject.js +22 -3
- package/src/sap/ui/base/ManagedObjectMetadata.js +1 -1
- package/src/sap/ui/base/Metadata.js +1 -1
- package/src/sap/ui/base/Object.js +1 -1
- package/src/sap/ui/base/ObjectPool.js +1 -1
- package/src/sap/ui/core/.library +1 -1
- package/src/sap/ui/core/BusyIndicator.js +1 -1
- package/src/sap/ui/core/Component.js +33 -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 +19 -3
- package/src/sap/ui/core/Core.js +1 -1
- 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 +28 -3
- package/src/sap/ui/core/ElementMetadata.js +1 -1
- package/src/sap/ui/core/EnabledPropagator.js +1 -1
- package/src/sap/ui/core/EventBus.js +1 -1
- package/src/sap/ui/core/Fragment.js +1 -1
- package/src/sap/ui/core/HTML.js +1 -1
- package/src/sap/ui/core/History.js +1 -1
- package/src/sap/ui/core/Icon.js +1 -1
- package/src/sap/ui/core/IndicationColorSupport.js +1 -1
- package/src/sap/ui/core/IntervalTrigger.js +1 -1
- package/src/sap/ui/core/InvisibleMessage.js +1 -1
- package/src/sap/ui/core/InvisibleRenderer.js +1 -1
- package/src/sap/ui/core/InvisibleText.js +1 -1
- package/src/sap/ui/core/Item.js +1 -1
- package/src/sap/ui/core/LabelEnablement.js +1 -1
- package/src/sap/ui/core/LayoutData.js +1 -1
- package/src/sap/ui/core/ListItem.js +1 -1
- package/src/sap/ui/core/LocalBusyIndicator.js +1 -1
- package/src/sap/ui/core/Locale.js +1 -1
- package/src/sap/ui/core/LocaleData.js +14 -6
- 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 +1 -1
- package/src/sap/ui/core/UIComponent.js +1 -1
- package/src/sap/ui/core/UIComponentMetadata.js +1 -1
- package/src/sap/ui/core/ValueStateSupport.js +1 -1
- package/src/sap/ui/core/VariantLayoutData.js +1 -1
- package/src/sap/ui/core/XMLComposite.js +1 -1
- package/src/sap/ui/core/XMLCompositeMetadata.js +1 -1
- package/src/sap/ui/core/date/UI5Date.js +1 -1
- package/src/sap/ui/core/date/UniversalDateUtils.js +52 -52
- package/src/sap/ui/core/delegate/ItemNavigation.js +1 -1
- package/src/sap/ui/core/delegate/ScrollEnablement.js +4 -4
- package/src/sap/ui/core/dnd/DragDropBase.js +1 -1
- package/src/sap/ui/core/dnd/DragDropInfo.js +1 -1
- package/src/sap/ui/core/dnd/DragInfo.js +1 -1
- package/src/sap/ui/core/dnd/DropInfo.js +1 -1
- package/src/sap/ui/core/format/DateFormat.js +4 -4
- package/src/sap/ui/core/format/FormatUtils.js +1 -1
- package/src/sap/ui/core/format/NumberFormat.js +32 -13
- 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/messagebundle_ar.properties +1 -1
- package/src/sap/ui/core/messagebundle_mk.properties +1 -1
- package/src/sap/ui/core/mvc/Controller.js +42 -7
- package/src/sap/ui/core/mvc/HTMLView.js +1 -1
- package/src/sap/ui/core/mvc/JSONView.js +1 -1
- package/src/sap/ui/core/mvc/JSView.js +1 -1
- package/src/sap/ui/core/mvc/TemplateView.js +1 -1
- package/src/sap/ui/core/mvc/View.js +1 -1
- package/src/sap/ui/core/mvc/XMLView.js +1 -1
- 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/Router.js +1 -1
- package/src/sap/ui/core/search/OpenSearchProvider.js +1 -1
- package/src/sap/ui/core/search/SearchProvider.js +1 -1
- package/src/sap/ui/core/service/Service.js +1 -1
- package/src/sap/ui/core/service/ServiceFactory.js +1 -1
- package/src/sap/ui/core/service/ServiceFactoryRegistry.js +1 -1
- package/src/sap/ui/core/support/Plugin.js +1 -1
- package/src/sap/ui/core/support/Support.js +1 -1
- package/src/sap/ui/core/support/plugins/ControlTree.js +1 -1
- package/src/sap/ui/core/support/plugins/Interaction.js +1 -1
- package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -1
- package/src/sap/ui/core/support/plugins/Performance.js +1 -1
- package/src/sap/ui/core/support/plugins/Selector.js +1 -1
- package/src/sap/ui/core/support/plugins/TechInfo.js +1 -1
- package/src/sap/ui/core/support/plugins/Trace.js +1 -1
- package/src/sap/ui/core/support/plugins/ViewInfo.js +1 -1
- package/src/sap/ui/core/themes/base/base.less +239 -8
- package/src/sap/ui/core/themes/base/global.less +20 -0
- package/src/sap/ui/core/themes/sap_hcb/global.less +20 -0
- package/src/sap/ui/core/tmpl/DOMAttribute.js +1 -1
- package/src/sap/ui/core/tmpl/DOMElement.js +1 -1
- package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +1 -1
- package/src/sap/ui/core/tmpl/Template.js +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 +2 -2
- package/src/sap/ui/core/util/ShortcutHelper.js +6 -0
- package/src/sap/ui/core/util/XMLPreprocessor.js +54 -30
- package/src/sap/ui/core/util/_LocalizationHelper.js +2 -1
- package/src/sap/ui/core/util/reflection/BaseTreeModifier.js +0 -29
- package/src/sap/ui/core/util/reflection/JsControlTreeModifier.js +0 -26
- package/src/sap/ui/core/util/reflection/XmlTreeModifier.js +0 -56
- 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/model/ClientListBinding.js +13 -6
- package/src/sap/ui/model/ClientModel.js +1 -1
- package/src/sap/ui/model/ClientTreeBinding.js +16 -7
- package/src/sap/ui/model/CompositeBinding.js +11 -4
- package/src/sap/ui/model/CompositeDataState.js +1 -1
- package/src/sap/ui/model/CompositeType.js +17 -3
- package/src/sap/ui/model/DataState.js +1 -1
- package/src/sap/ui/model/ListBinding.js +14 -11
- package/src/sap/ui/model/MetaModel.js +1 -1
- package/src/sap/ui/model/Model.js +11 -9
- package/src/sap/ui/model/PropertyBinding.js +21 -4
- 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/TreeBinding.js +14 -7
- package/src/sap/ui/model/Type.js +1 -1
- package/src/sap/ui/model/analytics/AnalyticalBinding.js +12 -8
- package/src/sap/ui/model/analytics/BatchResponseCollector.js +1 -1
- package/src/sap/ui/model/analytics/odata4analytics.js +66 -52
- package/src/sap/ui/model/controlhelper/TreeBindingProxy.js +1 -4
- package/src/sap/ui/model/json/JSONListBinding.js +5 -2
- package/src/sap/ui/model/json/JSONModel.js +7 -5
- package/src/sap/ui/model/json/JSONTreeBinding.js +5 -2
- package/src/sap/ui/model/message/MessageListBinding.js +5 -2
- 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 +8 -9
- 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 +1 -1
- package/src/sap/ui/model/odata/type/Boolean.js +2 -4
- 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 +2 -2
- package/src/sap/ui/model/odata/v2/ODataListBinding.js +14 -8
- package/src/sap/ui/model/odata/v2/ODataModel.js +25 -28
- package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +15 -12
- package/src/sap/ui/model/odata/v4/Context.js +111 -30
- package/src/sap/ui/model/odata/v4/ODataBinding.js +9 -5
- package/src/sap/ui/model/odata/v4/ODataContextBinding.js +1 -1
- package/src/sap/ui/model/odata/v4/ODataListBinding.js +14 -9
- package/src/sap/ui/model/odata/v4/ODataMetaModel.js +4 -3
- package/src/sap/ui/model/odata/v4/ODataModel.js +27 -2
- package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +19 -7
- package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +240 -41
- package/src/sap/ui/model/odata/v4/lib/_AggregationHelper.js +88 -0
- package/src/sap/ui/model/odata/v4/lib/_Cache.js +13 -4
- package/src/sap/ui/model/odata/v4/lib/_Helper.js +15 -0
- package/src/sap/ui/model/odata/v4/lib/_TreeState.js +77 -15
- package/src/sap/ui/model/resource/ResourceModel.js +1 -1
- package/src/sap/ui/model/type/Boolean.js +1 -1
- package/src/sap/ui/model/type/Currency.js +1 -1
- package/src/sap/ui/model/type/Date.js +1 -1
- package/src/sap/ui/model/type/DateInterval.js +1 -1
- package/src/sap/ui/model/type/DateTime.js +1 -1
- package/src/sap/ui/model/type/DateTimeInterval.js +1 -1
- package/src/sap/ui/model/type/FileSize.js +1 -1
- package/src/sap/ui/model/type/Float.js +1 -1
- package/src/sap/ui/model/type/Integer.js +1 -1
- package/src/sap/ui/model/type/String.js +1 -1
- package/src/sap/ui/model/type/Time.js +1 -1
- package/src/sap/ui/model/type/TimeInterval.js +1 -1
- package/src/sap/ui/model/type/Unit.js +38 -1
- package/src/sap/ui/model/xml/XMLListBinding.js +5 -2
- package/src/sap/ui/model/xml/XMLModel.js +1 -1
- package/src/sap/ui/model/xml/XMLTreeBinding.js +5 -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/RecordReplay.js +1 -0
- package/src/sap/ui/test/autowaiter/_autoWaiterAsync.js +8 -1
- package/src/sap/ui/test/generic/TestBase.js +1 -1
- package/src/sap/ui/test/gherkin/opa5TestHarness.js +0 -6
- package/src/sap/ui/test/gherkin/qUnitTestHarness.js +0 -6
- package/src/sap/ui/test/qunitPause.js +5 -1
- package/src/sap/ui/util/Storage.js +1 -1
- package/src/sap/ui/util/_enforceNoReturnValue.js +26 -0
- package/src/ui5loader.js +25 -2
- package/test/sap/ui/core/HyphenationPlayground.html +6 -292
- package/test/sap/ui/core/HyphenationPlayground.js +313 -0
- package/test/sap/ui/core/demokit/docuindex.json +1 -1
- package/test/sap/ui/core/demokit/sample/MessageManager/ODataBackendMessagesComp/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/sample/OpaAutoWaitParams/OpaAutoWaitParams.html +1 -1
- package/test/sap/ui/core/demokit/sample/OpaAutoWaitParams/applicationUnderTest/index.html +1 -2
- package/test/sap/ui/core/demokit/sample/OpaStartup/iStartMyAppInAFrame/README.js +31 -23
- package/test/sap/ui/core/demokit/sample/OpaStartup/iStartMyAppInAFrame/iStartMyAppInAFrame.js +103 -94
- package/test/sap/ui/core/demokit/sample/gherkin/GherkinWithOPA5/GherkinTestRunner.html +3 -0
- package/test/sap/ui/core/demokit/sample/gherkin/GherkinWithOPA5/GherkinTestRunner.js +1 -5
- package/test/sap/ui/core/demokit/sample/gherkin/GherkinWithPageObjects/GherkinTestRunner.html +3 -0
- package/test/sap/ui/core/demokit/sample/gherkin/GherkinWithPageObjects/GherkinTestRunner.js +1 -5
- package/test/sap/ui/core/demokit/sample/gherkin/GherkinWithQUnit/GherkinTestRunner.html +3 -0
- package/test/sap/ui/core/demokit/sample/gherkin/GherkinWithQUnit/GherkinTestRunner.js +1 -5
- package/test/sap/ui/core/demokit/sample/gherkin/GherkinWithQUnit/Steps.js +5 -5
- package/test/sap/ui/core/demokit/sample/gherkin/GherkinWithUIComponent/GherkinTestRunner.html +3 -0
- package/test/sap/ui/core/demokit/sample/gherkin/GherkinWithUIComponent/GherkinTestRunner.js +1 -5
- package/test/sap/ui/core/demokit/sample/matcher/BindingPath/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/sample/matcher/Descendant/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/sample/matcher/I18NText/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/sample/matcher/LabelFor/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/MultipleInlineCreationRowsGrid/Main.controller.js +16 -9
- package/test/sap/ui/core/demokit/sample/odata/v4/MultipleInlineCreationRowsGrid/Main.view.xml +9 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/MultipleInlineCreationRowsGrid/SandboxModel.js +11 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/Products/data/UnitsOfMeasure.json +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/01/manifest.json +2 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/01/package.json +4 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/01/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/01/webapp/Component.js +12 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/01/webapp/index.html +8 -7
- package/test/sap/ui/core/demokit/tutorial/databinding/01/webapp/manifest.json +28 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/01/webapp/view/App.view.xml +5 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/02/manifest.json +3 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/02/package.json +4 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/02/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/02/webapp/Component.js +12 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/02/webapp/index.html +8 -7
- package/test/sap/ui/core/demokit/tutorial/databinding/02/webapp/manifest.json +34 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/02/webapp/model/data.json +3 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/02/webapp/view/App.view.xml +5 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/03/manifest.json +3 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/03/package.json +4 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/03/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/03/webapp/Component.js +12 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/03/webapp/index.html +8 -7
- package/test/sap/ui/core/demokit/tutorial/databinding/03/webapp/manifest.json +34 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/03/webapp/model/data.json +3 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/03/webapp/view/App.view.xml +5 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/04/manifest.json +3 -2
- package/test/sap/ui/core/demokit/tutorial/databinding/04/package.json +4 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/04/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/04/webapp/Component.js +12 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/04/webapp/index.html +8 -10
- package/test/sap/ui/core/demokit/tutorial/databinding/04/webapp/manifest.json +35 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/04/webapp/model/data.json +6 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/05/manifest.json +3 -2
- package/test/sap/ui/core/demokit/tutorial/databinding/05/package.json +4 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/05/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/05/webapp/Component.js +20 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/05/webapp/index.html +8 -10
- package/test/sap/ui/core/demokit/tutorial/databinding/05/webapp/manifest.json +35 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/05/webapp/model/data.json +6 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/06/manifest.json +4 -3
- package/test/sap/ui/core/demokit/tutorial/databinding/06/package.json +4 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/06/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/06/webapp/Component.js +12 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/06/webapp/index.html +8 -10
- package/test/sap/ui/core/demokit/tutorial/databinding/06/webapp/manifest.json +46 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/06/webapp/model/data.json +5 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/07/manifest.json +4 -3
- package/test/sap/ui/core/demokit/tutorial/databinding/07/package.json +3 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/07/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/07/webapp/Component.js +12 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/07/webapp/index.html +8 -10
- package/test/sap/ui/core/demokit/tutorial/databinding/07/webapp/manifest.json +46 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/07/webapp/model/data.json +5 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/08/manifest.json +4 -3
- package/test/sap/ui/core/demokit/tutorial/databinding/08/package.json +3 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/08/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/08/webapp/Component.js +12 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/08/webapp/index.html +8 -10
- package/test/sap/ui/core/demokit/tutorial/databinding/08/webapp/manifest.json +46 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/08/webapp/model/data.json +11 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/08/webapp/view/App.view.xml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/09/manifest.json +4 -3
- package/test/sap/ui/core/demokit/tutorial/databinding/09/package.json +3 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/09/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/09/webapp/Component.js +12 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/09/webapp/controller/App.controller.js +8 -7
- package/test/sap/ui/core/demokit/tutorial/databinding/09/webapp/index.html +8 -10
- package/test/sap/ui/core/demokit/tutorial/databinding/09/webapp/manifest.json +46 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/09/webapp/model/data.json +11 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/09/webapp/view/App.view.xml +2 -2
- package/test/sap/ui/core/demokit/tutorial/databinding/10/manifest.json +4 -3
- package/test/sap/ui/core/demokit/tutorial/databinding/10/package.json +3 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/10/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/10/webapp/Component.js +12 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/10/webapp/controller/App.controller.js +8 -7
- package/test/sap/ui/core/demokit/tutorial/databinding/10/webapp/index.html +8 -10
- package/test/sap/ui/core/demokit/tutorial/databinding/10/webapp/manifest.json +46 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/10/webapp/model/data.json +13 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/10/webapp/view/App.view.xml +3 -3
- package/test/sap/ui/core/demokit/tutorial/databinding/11/manifest.json +4 -3
- package/test/sap/ui/core/demokit/tutorial/databinding/11/package.json +3 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/11/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/11/webapp/Component.js +12 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/11/webapp/controller/App.controller.js +8 -7
- package/test/sap/ui/core/demokit/tutorial/databinding/11/webapp/index.html +8 -10
- package/test/sap/ui/core/demokit/tutorial/databinding/11/webapp/manifest.json +47 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/11/webapp/model/data.json +13 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/11/webapp/view/App.view.xml +3 -3
- package/test/sap/ui/core/demokit/tutorial/databinding/12/manifest.json +4 -3
- package/test/sap/ui/core/demokit/tutorial/databinding/12/package.json +3 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/12/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/12/webapp/Component.js +12 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/12/webapp/controller/App.controller.js +10 -11
- package/test/sap/ui/core/demokit/tutorial/databinding/12/webapp/index.html +8 -10
- package/test/sap/ui/core/demokit/tutorial/databinding/12/webapp/manifest.json +51 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/12/webapp/model/Products.json +64 -57
- package/test/sap/ui/core/demokit/tutorial/databinding/12/webapp/model/data.json +13 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/12/webapp/view/App.view.xml +3 -3
- package/test/sap/ui/core/demokit/tutorial/databinding/13/manifest.json +4 -3
- package/test/sap/ui/core/demokit/tutorial/databinding/13/package.json +3 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/13/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/13/webapp/Component.js +12 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/13/webapp/controller/App.controller.js +16 -16
- package/test/sap/ui/core/demokit/tutorial/databinding/13/webapp/index.html +8 -10
- package/test/sap/ui/core/demokit/tutorial/databinding/13/webapp/manifest.json +51 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/13/webapp/model/Products.json +64 -57
- package/test/sap/ui/core/demokit/tutorial/databinding/13/webapp/model/data.json +13 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/13/webapp/view/App.view.xml +3 -3
- package/test/sap/ui/core/demokit/tutorial/databinding/14/manifest.json +4 -3
- package/test/sap/ui/core/demokit/tutorial/databinding/14/package.json +3 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/14/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/14/webapp/Component.js +12 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/14/webapp/controller/App.controller.js +16 -16
- package/test/sap/ui/core/demokit/tutorial/databinding/14/webapp/index.html +8 -10
- package/test/sap/ui/core/demokit/tutorial/databinding/14/webapp/manifest.json +51 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/14/webapp/model/Products.json +64 -57
- package/test/sap/ui/core/demokit/tutorial/databinding/14/webapp/model/data.json +14 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/14/webapp/view/App.view.xml +3 -3
- package/test/sap/ui/core/demokit/tutorial/databinding/15/manifest.json +4 -3
- package/test/sap/ui/core/demokit/tutorial/databinding/15/package.json +3 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/15/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/15/webapp/Component.js +12 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/15/webapp/controller/App.controller.js +19 -22
- package/test/sap/ui/core/demokit/tutorial/databinding/15/webapp/index.html +8 -10
- package/test/sap/ui/core/demokit/tutorial/databinding/15/webapp/manifest.json +51 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/15/webapp/model/Products.json +64 -57
- package/test/sap/ui/core/demokit/tutorial/databinding/15/webapp/model/data.json +14 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/15/webapp/view/App.view.xml +5 -5
- package/test/sap/ui/core/demokit/tutorial/mockserver/01/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/mockserver/02/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/mockserver/03/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/mockserver/04/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/01/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/02/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/03/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/04/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/05/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/06/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/07/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/08/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/09/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/10/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/11/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/12/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/13/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/14/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/15/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/16/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/17/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/01/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/02/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/03/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/04/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/05/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/06/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/07/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/08/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/09/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/10/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/11/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/troubleshooting/01/ui5.yaml +1 -1
- package/test/sap/ui/core/qunit/CompositeBinding.qunit.js +67 -0
- package/test/sap/ui/core/qunit/EventProvider.qunit.js +30 -2
- package/test/sap/ui/core/qunit/{Core_libraryPreloadFiles.qunit.html → Lib_preloadFiles.qunit.html} +1 -1
- package/test/sap/ui/core/qunit/{Core_libraryPreloadFiles.qunit.js → Lib_preloadFiles.qunit.js} +5 -10
- package/test/sap/ui/core/qunit/ThemeHelper.qunit.js +1 -1
- package/test/sap/ui/core/qunit/ThemeParameters.qunit.js +4 -4
- package/test/sap/ui/core/qunit/ThemeParameters_legacyAPIs.qunit.js +12 -12
- package/test/sap/ui/core/qunit/analytics/odata4analytics.qunit.js +262 -12
- package/test/sap/ui/core/qunit/app/DesignMode_suppressedDeactivation.qunit.js +8 -4
- package/test/sap/ui/core/qunit/app/_createDesignModeTests_legacyAPIs.qunit.js +8 -4
- package/test/sap/ui/core/qunit/app/fixture/designmode/test01.controller.js +4 -4
- package/test/sap/ui/core/qunit/app/testsuite.app.qunit.js +3 -3
- package/test/sap/ui/core/qunit/base/Config_cascade.qunit.js +11 -0
- package/test/sap/ui/core/qunit/component/Component_keepAlive.qunit.js +30 -2
- package/test/sap/ui/core/qunit/component/UIComponent.qunit.js +82 -19
- package/test/sap/ui/core/qunit/component/testdata/keepAlive/child3/App.view.xml +3 -0
- package/test/sap/ui/core/qunit/component/testdata/keepAlive/child3/Component.js +20 -0
- package/test/sap/ui/core/qunit/component/testdata/keepAlive/child3/Home.view.xml +5 -0
- package/test/sap/ui/core/qunit/component/testdata/keepAlive/child3/Other.view.xml +5 -0
- package/test/sap/ui/core/qunit/component/testdata/keepAlive/child3/manifest.json +54 -0
- package/test/sap/ui/core/qunit/gherkin/fixture/testHarnessAmbiguous.html +4 -0
- package/test/sap/ui/core/qunit/gherkin/fixture/testHarnessDuplicate.html +4 -0
- package/test/sap/ui/core/qunit/gherkin/fixture/testHarnessFailing.html +4 -0
- package/test/sap/ui/core/qunit/gherkin/opa5TestHarness.qunit.html +4 -0
- package/test/sap/ui/core/qunit/gherkin/opa5TestHarness.qunit.js +1 -1
- package/test/sap/ui/core/qunit/gherkin/qUnitTestHarness.qunit.html +4 -0
- package/test/sap/ui/core/qunit/gherkin/qUnitTestHarness.qunit.js +1 -1
- package/test/sap/ui/core/qunit/internal/1RingModels.qunit.html +1 -1
- package/test/sap/ui/core/qunit/internal/1RingModels.qunit.js +5 -6
- package/test/sap/ui/core/qunit/internal/testsuite.models.qunit.js +43 -16
- package/test/sap/ui/core/qunit/messages/messagesGeneral.qunit.js +194 -180
- package/test/sap/ui/core/qunit/messages/messagesUsage.qunit.js +15 -33
- package/test/sap/ui/core/qunit/mockserver/MockServer.qunit.js +936 -1014
- package/test/sap/ui/core/qunit/mockserver/testsuite.mockserver.qunit.js +2 -4
- package/test/sap/ui/core/qunit/model/FAR_CUSTOMER_LINE_ITEMS.metadata.xml +2 -0
- package/test/sap/ui/core/qunit/model/PropertyBinding.qunit.js +50 -1
- package/test/sap/ui/core/qunit/model/controlhelper/TreeBindingProxy.qunit.js +18 -8
- package/test/sap/ui/core/qunit/mvc/Controller.qunit.js +107 -49
- package/test/sap/ui/core/qunit/mvc/testdata/asyncHooks.view.xml +7 -0
- package/test/sap/ui/core/qunit/odata/ODataMetaModel.qunit.js +0 -3
- package/test/sap/ui/core/qunit/odata/v2/ODataModel.integration.qunit.js +143 -2
- package/test/sap/ui/core/qunit/odata/v2/ODataModelNoFakeService.qunit.js +34 -0
- package/test/sap/ui/core/qunit/odata/v4/Context.qunit.js +230 -39
- package/test/sap/ui/core/qunit/odata/v4/ODataBinding.qunit.js +57 -18
- package/test/sap/ui/core/qunit/odata/v4/ODataListBinding.qunit.js +40 -6
- package/test/sap/ui/core/qunit/odata/v4/ODataMetaModel.qunit.js +3 -0
- package/test/sap/ui/core/qunit/odata/v4/ODataModel.integration.qunit.js +1715 -106
- package/test/sap/ui/core/qunit/odata/v4/ODataModel.qunit.js +39 -0
- package/test/sap/ui/core/qunit/odata/v4/ODataPropertyBinding.qunit.js +88 -18
- package/test/sap/ui/core/qunit/odata/v4/lib/_AggregationCache.qunit.js +544 -50
- package/test/sap/ui/core/qunit/odata/v4/lib/_AggregationHelper.qunit.js +175 -0
- package/test/sap/ui/core/qunit/odata/v4/lib/_Cache.qunit.js +50 -9
- package/test/sap/ui/core/qunit/odata/v4/lib/_Helper.qunit.js +17 -0
- package/test/sap/ui/core/qunit/odata/v4/lib/_TreeState.qunit.js +140 -27
- package/test/sap/ui/core/qunit/opa/RecordReplay.qunit.js +12 -3
- package/test/sap/ui/core/qunit/resource/ResourceModel.qunit.js +1 -2
- package/test/sap/ui/core/qunit/routing/fixture/placeholder/component/NavContainerOptOut/Component.js +1 -0
- package/test/sap/ui/core/qunit/rule/model/bindingPathSyntaxValidation.qunit.js +37 -0
- package/test/sap/ui/core/qunit/rule/model/{modelSupport.qunit.js → selectUsedInBoundAggregation.qunit.js} +86 -154
- package/test/sap/ui/core/qunit/rule/testsuite.rule.qunit.js +5 -2
- package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib12/themes/{sap_hcb → sap_horizon_hcb}/library.css +1 -1
- package/test/sap/ui/core/qunit/testsuite.core.framework.qunit.js +18 -18
- package/test/sap/ui/core/qunit/testsuites/testsuite.base.configuration.qunit.js +1 -1
- package/test/sap/ui/core/qunit/testsuites/testsuite.theming.qunit.js +3 -3
- package/test/sap/ui/core/qunit/types/CompositeType.qunit.js +6 -0
- package/test/sap/ui/core/qunit/types/DateFormat.qunit.js +3 -6
- package/test/sap/ui/core/qunit/types/NumberFormat.qunit.js +1370 -1242
- package/test/sap/ui/core/qunit/types/Types.qunit.js +65 -0
- package/test/sap/ui/core/qunit/types/testsuite.types.qunit.js +0 -3
- package/test/sap/ui/core/qunit/ui5classes/ManagedObject.qunit.js +68 -3
- package/test/sap/ui/core/qunit/util/XMLPreprocessor.qunit.js +2625 -1899
- package/test/sap/ui/core/qunit/util/reflection/JsControlTreeModifier.qunit.js +0 -102
- package/test/sap/ui/core/qunit/util/reflection/XmlTreeModifier.qunit.js +0 -165
- package/test/sap/ui/core/relnotes/changes-1.121.json +0 -15
- package/test/sap/ui/core/relnotes/changes-1.122.json +80 -0
- package/test/sap/ui/core/visual/HyphenationPlayground.spec.js +5 -2
- package/test/sap/ui/core/demokit/tutorial/databinding/01/webapp/index.js +0 -15
- package/test/sap/ui/core/demokit/tutorial/databinding/02/webapp/index.js +0 -21
- package/test/sap/ui/core/demokit/tutorial/databinding/03/webapp/index.js +0 -21
- package/test/sap/ui/core/demokit/tutorial/databinding/04/webapp/index.js +0 -25
- package/test/sap/ui/core/demokit/tutorial/databinding/05/webapp/index.js +0 -29
- package/test/sap/ui/core/demokit/tutorial/databinding/06/webapp/index.js +0 -42
- package/test/sap/ui/core/demokit/tutorial/databinding/07/webapp/index.js +0 -44
- package/test/sap/ui/core/demokit/tutorial/databinding/08/webapp/index.js +0 -39
- package/test/sap/ui/core/demokit/tutorial/databinding/09/webapp/index.js +0 -39
- package/test/sap/ui/core/demokit/tutorial/databinding/10/webapp/index.js +0 -41
- package/test/sap/ui/core/demokit/tutorial/databinding/11/webapp/index.js +0 -48
- package/test/sap/ui/core/demokit/tutorial/databinding/12/webapp/index.js +0 -52
- package/test/sap/ui/core/demokit/tutorial/databinding/13/webapp/index.js +0 -52
- package/test/sap/ui/core/demokit/tutorial/databinding/14/webapp/index.js +0 -54
- package/test/sap/ui/core/demokit/tutorial/databinding/15/webapp/index.js +0 -54
- /package/test/sap/ui/core/qunit/testdata/legacy-uilib_legacyAPIs/themes/{sap_hcb → sap_horizon_hcb}/library-parameters.json +0 -0
- /package/test/sap/ui/core/qunit/testdata/legacy-uilib_legacyAPIs/themes/{sap_hcb → sap_horizon_hcb}/library.css +0 -0
- /package/test/sap/ui/core/qunit/testdata/legacy-uilib_legacyAPIs/themes/{sap_hcb → sap_horizon_hcb}/library[legacy].css +0 -0
- /package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib1/themes/{sap_hcb → sap_horizon_hcb}/library-parameters.json +0 -0
- /package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib1/themes/{sap_hcb → sap_horizon_hcb}/library.css +0 -0
- /package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib10/themes/{sap_hcb → sap_horizon_hcb}/library.css +0 -0
- /package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib11/themes/{sap_hcb → sap_horizon_hcb}/library.css +0 -0
- /package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib13/themes/{sap_hcb → sap_horizon_hcb}/library.css +0 -0
- /package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib14/themes/{sap_hcb → sap_horizon_hcb}/library.css +0 -0
- /package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib15/themes/{sap_hcb → sap_horizon_hcb}/library-parameters.json +0 -0
- /package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib15/themes/{sap_hcb → sap_horizon_hcb}/library.css +0 -0
- /package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib16/themes/{sap_hcb → sap_horizon_hcb}/library-parameters.json +0 -0
- /package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib16/themes/{sap_hcb → sap_horizon_hcb}/library.css +0 -0
- /package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib17/themes/{sap_hcb → sap_horizon_hcb}/library.css +0 -0
- /package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib2/themes/{sap_hcb → sap_horizon_hcb}/library-parameters.json +0 -0
- /package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib2/themes/{sap_hcb → sap_horizon_hcb}/library.css +0 -0
- /package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib3/themes/{sap_hcb → sap_horizon_hcb}/library-parameters.json +0 -0
- /package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib3/themes/{sap_hcb → sap_horizon_hcb}/library.css +0 -0
- /package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib4/themes/{sap_hcb → sap_horizon_hcb}/library-parameters.json +0 -0
- /package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib5/themes/{sap_hcb → sap_horizon_hcb}/library.css +0 -0
- /package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib6/themes/{sap_hcb → sap_horizon_hcb}/library.css +0 -0
- /package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib7/themes/{sap_hcb → sap_horizon_hcb}/library.css +0 -0
- /package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib8/themes/{sap_hcb → sap_horizon_hcb}/library.css +0 -0
- /package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib9/themes/{sap_hcb → sap_horizon_hcb}/library.css +0 -0
|
@@ -28,6 +28,7 @@ sap.ui.define([
|
|
|
28
28
|
"sap/ui/model/message/MessageModel",
|
|
29
29
|
"sap/ui/model/odata/CountMode",
|
|
30
30
|
"sap/ui/model/odata/MessageScope",
|
|
31
|
+
"sap/ui/model/odata/type/Decimal",
|
|
31
32
|
"sap/ui/model/odata/v2/Context",
|
|
32
33
|
"sap/ui/model/odata/v2/ODataModel",
|
|
33
34
|
"sap/ui/model/xml/XMLModel",
|
|
@@ -38,8 +39,8 @@ sap.ui.define([
|
|
|
38
39
|
// "sap/ui/table/Table"
|
|
39
40
|
], function (Log, Localization, merge, uid, Input, Device, ManagedObjectObserver, SyncPromise,
|
|
40
41
|
Library, coreLibrary, Messaging, UI5Date, Message, Controller, View, Rendering, BindingMode, Filter,
|
|
41
|
-
FilterOperator, FilterType, Model, Sorter, JSONModel, MessageModel, CountMode, MessageScope,
|
|
42
|
-
ODataModel, XMLModel, TestUtils, datajs, XMLHelper) {
|
|
42
|
+
FilterOperator, FilterType, Model, Sorter, JSONModel, MessageModel, CountMode, MessageScope, Decimal,
|
|
43
|
+
Context, ODataModel, XMLModel, TestUtils, datajs, XMLHelper) {
|
|
43
44
|
/*global QUnit, sinon*/
|
|
44
45
|
/*eslint max-nested-callbacks: 0, no-warning-comments: 0, quote-props: 0*/
|
|
45
46
|
"use strict";
|
|
@@ -10054,6 +10055,76 @@ ToProduct/ToSupplier/BusinessPartnerID\'}}">\
|
|
|
10054
10055
|
});
|
|
10055
10056
|
});
|
|
10056
10057
|
|
|
10058
|
+
//*********************************************************************************************
|
|
10059
|
+
// Scenario: AnalyticalBinding filtering by Edm.DateTime property with precision > 3
|
|
10060
|
+
// JIRA: CPOUI5MODELS-1582
|
|
10061
|
+
QUnit.test("AnalyticalBinding: Filtering Edm.DateTime property with precision > 3", function (assert) {
|
|
10062
|
+
const oModel = createModel("/sap/opu/odata/sap/FAR_CUSTOMER_LINE_ITEMS");
|
|
10063
|
+
const sView = '\
|
|
10064
|
+
<t:AnalyticalTable id="table" threshold="10" visibleRowCount="4">\
|
|
10065
|
+
<t:AnalyticalColumn grouped="true" leadingProperty="CompanyCode">\
|
|
10066
|
+
<Label text="CompanyCode"/>\
|
|
10067
|
+
<t:template><Text wrapping="false" text="{CompanyCode}"/></t:template>\
|
|
10068
|
+
</t:AnalyticalColumn>\
|
|
10069
|
+
<t:AnalyticalColumn grouped="false" leadingProperty="Customer">\
|
|
10070
|
+
<Label text="Customer"/>\
|
|
10071
|
+
<t:template><Text text="{Customer}"/></t:template>\
|
|
10072
|
+
</t:AnalyticalColumn>\
|
|
10073
|
+
<t:AnalyticalColumn summed="true" leadingProperty="AmountInCompanyCodeCurrency">\
|
|
10074
|
+
<Label text="AmountInCompanyCodeCurrency"/>\
|
|
10075
|
+
<t:template><Text wrapping="false" text="{AmountInCompanyCodeCurrency}"/></t:template>\
|
|
10076
|
+
</t:AnalyticalColumn>\
|
|
10077
|
+
</t:AnalyticalTable>';
|
|
10078
|
+
|
|
10079
|
+
return this.createView(assert, sView, oModel).then(() => {
|
|
10080
|
+
const sExpectedFilter = "&$filter=((ChangedAt%20ge%20datetime%272020-02-01T15%3a30%3a02.456123%27%20"
|
|
10081
|
+
+ "and%20ChangedAt%20le%20datetime%272020-02-01T18%3a45%3a02.456789%27))";
|
|
10082
|
+
this.expectHeadRequest()
|
|
10083
|
+
.expectRequest({ // count request
|
|
10084
|
+
encodeRequestUri : false,
|
|
10085
|
+
requestUri : "Items?$select=CompanyCode,Customer" + sExpectedFilter
|
|
10086
|
+
+ "&$top=0&$inlinecount=allpages"
|
|
10087
|
+
}, {__count : "1", results : []})
|
|
10088
|
+
.expectRequest({ // first level request
|
|
10089
|
+
encodeRequestUri : false,
|
|
10090
|
+
requestUri : "Items?"
|
|
10091
|
+
+ "$select=CompanyCode,AmountInCompanyCodeCurrency,Currency" + sExpectedFilter
|
|
10092
|
+
+ "&$orderby=CompanyCode%20asc&$top=14&$inlinecount=allpages"
|
|
10093
|
+
}, {
|
|
10094
|
+
results : [getFarCustomerLineItem("A0")]
|
|
10095
|
+
})
|
|
10096
|
+
.expectRequest({ // grand total request
|
|
10097
|
+
encodeRequestUri : false,
|
|
10098
|
+
requestUri : "Items?$select=AmountInCompanyCodeCurrency,Currency" + sExpectedFilter
|
|
10099
|
+
+ "&$top=100&$inlinecount=allpages"
|
|
10100
|
+
}, {
|
|
10101
|
+
__count : 1,
|
|
10102
|
+
results : [{
|
|
10103
|
+
__metadata : {uri : "/sap/opu/odata/sap/FAR_CUSTOMER_LINE_ITEMS/Items(grandTotal)"},
|
|
10104
|
+
AmountInCompanyCodeCurrency : "140",
|
|
10105
|
+
Currency : "USD"
|
|
10106
|
+
}]
|
|
10107
|
+
});
|
|
10108
|
+
const oFilter = new Filter("ChangedAt", FilterOperator.BT, new Date(Date.UTC(2020, 1, 1, 15, 30, 2, 456)),
|
|
10109
|
+
new Date(Date.UTC(2020, 1, 1, 18, 45, 2, 456)));
|
|
10110
|
+
oFilter.appendFractionalSeconds1("123");
|
|
10111
|
+
oFilter.appendFractionalSeconds2("789");
|
|
10112
|
+
|
|
10113
|
+
// code under test
|
|
10114
|
+
this.oView.byId("table").bindRows({
|
|
10115
|
+
path : "/Items",
|
|
10116
|
+
parameters : {
|
|
10117
|
+
autoExpandMode : "Sequential",
|
|
10118
|
+
numberOfExpandedLevels : 0,
|
|
10119
|
+
useBatchRequests : true
|
|
10120
|
+
},
|
|
10121
|
+
filters : [oFilter]
|
|
10122
|
+
});
|
|
10123
|
+
|
|
10124
|
+
return this.waitForChanges(assert);
|
|
10125
|
+
});
|
|
10126
|
+
});
|
|
10127
|
+
|
|
10057
10128
|
//*********************************************************************************************
|
|
10058
10129
|
// Scenario: If a request for an AnalyticalBinding is cancelled because the analytical info has
|
|
10059
10130
|
// been updated before the request was processed, a "dataReceived" event has to be fired. Table
|
|
@@ -11242,6 +11313,76 @@ ToProduct/ToSupplier/BusinessPartnerID\'}}">\
|
|
|
11242
11313
|
});
|
|
11243
11314
|
});
|
|
11244
11315
|
|
|
11316
|
+
//*********************************************************************************************
|
|
11317
|
+
// Scenario: Do not show more decimal places than available for the amount/quantity part
|
|
11318
|
+
// JIRA: CPOUI5MODELS-1600
|
|
11319
|
+
QUnit.test("OData UnitType with unit decimals places > measure scale", function (assert) {
|
|
11320
|
+
const oModel = createModel("/sap/opu/odata/sap/ZUI5_GWSAMPLE_BASIC/?CPOUI5MODELS-1600=true",
|
|
11321
|
+
{defaultBindingMode : "TwoWay", tokenHandling : false});
|
|
11322
|
+
const sView = '\
|
|
11323
|
+
<FlexBox binding="{/ProductSet(\'P1\')}">\
|
|
11324
|
+
<Input id="weight" value="{\
|
|
11325
|
+
parts : [{\
|
|
11326
|
+
constraints : {precision : 13, scale : 3},\
|
|
11327
|
+
path : \'WeightMeasure\',\
|
|
11328
|
+
type : \'sap.ui.model.odata.type.Decimal\'\
|
|
11329
|
+
}, {\
|
|
11330
|
+
path : \'WeightUnit\',\
|
|
11331
|
+
type : \'sap.ui.model.odata.type.String\'\
|
|
11332
|
+
}, {\
|
|
11333
|
+
mode : \'OneTime\',\
|
|
11334
|
+
path : \'/##@@requestUnitsOfMeasure\',\
|
|
11335
|
+
targetType : \'any\'\
|
|
11336
|
+
}],\
|
|
11337
|
+
mode : \'TwoWay\',\
|
|
11338
|
+
type : \'sap.ui.model.odata.type.Unit\'\
|
|
11339
|
+
}" />\
|
|
11340
|
+
</FlexBox>';
|
|
11341
|
+
let oControl;
|
|
11342
|
+
|
|
11343
|
+
this.expectRequest("ProductSet('P1')?CPOUI5MODELS-1600=true", {
|
|
11344
|
+
ProductID : "P1",
|
|
11345
|
+
WeightMeasure : "12.34",
|
|
11346
|
+
WeightUnit : "KWH"
|
|
11347
|
+
})
|
|
11348
|
+
.expectRequest("SAP__UnitsOfMeasure?CPOUI5MODELS-1600=true&$skip=0&$top=5000", {
|
|
11349
|
+
results : [{
|
|
11350
|
+
DecimalPlaces : 99, // more decimals than WeightMeasure's scale
|
|
11351
|
+
ExternalCode : "KWH",
|
|
11352
|
+
ISOCode : "KWH",
|
|
11353
|
+
Text : "Kilowatt hour",
|
|
11354
|
+
UnitCode : "KWH"
|
|
11355
|
+
}]
|
|
11356
|
+
})
|
|
11357
|
+
.expectValue("weight", "12.340 KWH");
|
|
11358
|
+
|
|
11359
|
+
return this.createView(assert, sView, oModel).then(() => {
|
|
11360
|
+
oControl = this.oView.byId("weight");
|
|
11361
|
+
|
|
11362
|
+
this.expectValue("weight", "23.456 KWH");
|
|
11363
|
+
|
|
11364
|
+
// code under test
|
|
11365
|
+
oControl.setValue("23.456 KWH");
|
|
11366
|
+
|
|
11367
|
+
return this.waitForChanges(assert);
|
|
11368
|
+
}).then(() => {
|
|
11369
|
+
this.expectValue("weight", "0.000 KWH")
|
|
11370
|
+
.expectValue("weight", "0.000 KWH"); // twice because 2 parts changed
|
|
11371
|
+
|
|
11372
|
+
// code under test
|
|
11373
|
+
oControl.setValue("");
|
|
11374
|
+
|
|
11375
|
+
return this.waitForChanges(assert);
|
|
11376
|
+
}).then(() => {
|
|
11377
|
+
this.expectValue("weight", "0.00 KWH");
|
|
11378
|
+
|
|
11379
|
+
// code under test (change WeightMeasure's type, scale is now 2)
|
|
11380
|
+
oControl.getBinding("value").getBindings()[0].setType(new Decimal(undefined, {precision : 13, scale : 2}));
|
|
11381
|
+
|
|
11382
|
+
return this.waitForChanges(assert);
|
|
11383
|
+
});
|
|
11384
|
+
});
|
|
11385
|
+
|
|
11245
11386
|
//*********************************************************************************************
|
|
11246
11387
|
// Scenario: If the OData service has no customizing for currencies, the OData Currency type
|
|
11247
11388
|
// uses the UI5 built-in CLDR information for formatting and parsing.
|
|
@@ -287,6 +287,40 @@ sap.ui.define([
|
|
|
287
287
|
});
|
|
288
288
|
});
|
|
289
289
|
|
|
290
|
+
//*********************************************************************************************
|
|
291
|
+
[{
|
|
292
|
+
sUrl : "$metadata",
|
|
293
|
+
mAllParams : {"f oo" : "qux"}
|
|
294
|
+
}, {
|
|
295
|
+
sUrl : "$metadata?a%20b=c%20d&e+f=g+h&i j=k l&m?n=o?p&q/r=s/t&u",
|
|
296
|
+
mAllParams : {"a b" : "c d", "e f" : "g h", "f oo": "qux", "i j" : "k l", "m?n" : "o?p", "q/r" : "s/t", "u" : ""}
|
|
297
|
+
}, {
|
|
298
|
+
sUrl : "/$metadata?f%20oo=b+ar#bar=baz",
|
|
299
|
+
mAllParams : {"f oo" : "b ar"}
|
|
300
|
+
}, {
|
|
301
|
+
sUrl : "https://xyz.com/ServiceUrl/$metadata?foo=b+ar#bar=baz",
|
|
302
|
+
mAllParams : {"foo" : "b ar", "f oo" : "qux"},
|
|
303
|
+
sTargetUrl : "https://xyz.com/ServiceUrl/$metadata"
|
|
304
|
+
}].forEach(({sUrl, mAllParams, sTargetUrl}, i) => {
|
|
305
|
+
QUnit.test("_createMetadataUrl: " + i, function (assert) {
|
|
306
|
+
const oModel = {
|
|
307
|
+
mMetadataUrlParams : {"f oo" : "qux"},
|
|
308
|
+
sServiceUrl : "/ServiceUrl",
|
|
309
|
+
_addUrlParams : function () {}
|
|
310
|
+
};
|
|
311
|
+
|
|
312
|
+
this.mock(ODataUtils).expects("_createUrlParamsArray").withExactArgs(mAllParams).returns("~aMetadataUrlParams");
|
|
313
|
+
this.mock(oModel).expects("_addUrlParams")
|
|
314
|
+
.withExactArgs(sTargetUrl || "/ServiceUrl/$metadata", "~aMetadataUrlParams")
|
|
315
|
+
.returns("~sUrl");
|
|
316
|
+
|
|
317
|
+
// code under test
|
|
318
|
+
assert.strictEqual(ODataModel.prototype._createMetadataUrl.call(oModel, sUrl), "~sUrl");
|
|
319
|
+
|
|
320
|
+
assert.deepEqual(oModel.mMetadataUrlParams, {"f oo" : "qux"});
|
|
321
|
+
});
|
|
322
|
+
});
|
|
323
|
+
|
|
290
324
|
//*********************************************************************************************
|
|
291
325
|
QUnit.test("_read: updateAggregatedMessages and bSideEffects are passed to _createRequest",
|
|
292
326
|
function (assert) {
|
|
@@ -272,7 +272,7 @@ sap.ui.define([
|
|
|
272
272
|
new SyncPromise(function (resolve) {
|
|
273
273
|
fnResolve = resolve;
|
|
274
274
|
}));
|
|
275
|
-
oContext.
|
|
275
|
+
oContext.bSelected = bSelected;
|
|
276
276
|
|
|
277
277
|
// code under test
|
|
278
278
|
assert.strictEqual(oContext.toString(), bSelected
|
|
@@ -403,24 +403,43 @@ sap.ui.define([
|
|
|
403
403
|
},
|
|
404
404
|
oContext = Context.create(null, oBinding, "/foo");
|
|
405
405
|
|
|
406
|
+
oContext.bSelected = "~selected~";
|
|
407
|
+
|
|
406
408
|
this.mock(oBinding).expects("getHeaderContext").withExactArgs().returns(oContext);
|
|
407
409
|
this.mock(oBinding).expects("fetchValue")
|
|
408
|
-
.withExactArgs("/foo/$count",
|
|
410
|
+
.withExactArgs("/foo/$count", null, "bCached")
|
|
409
411
|
.returns(SyncPromise.resolve(Promise.resolve(42)));
|
|
410
412
|
|
|
411
|
-
return oContext.fetchValue(sPath,
|
|
412
|
-
assert.deepEqual(oResult,
|
|
413
|
+
return oContext.fetchValue(sPath, null, "bCached").then(function (oResult) {
|
|
414
|
+
assert.deepEqual(oResult,
|
|
415
|
+
{"@$ui5.context.isSelected" : "~selected~", $count : 42});
|
|
413
416
|
});
|
|
414
417
|
});
|
|
415
418
|
});
|
|
416
419
|
|
|
420
|
+
//*********************************************************************************************
|
|
421
|
+
[undefined, "", "/foo"].forEach(function (sPath) {
|
|
422
|
+
const sTitle = "fetchValue: header context; error case, path=" + JSON.stringify(sPath);
|
|
423
|
+
|
|
424
|
+
QUnit.test(sTitle, function (assert) {
|
|
425
|
+
const oContext = Context.create(null, {
|
|
426
|
+
getHeaderContext : () => oContext
|
|
427
|
+
}, "/foo");
|
|
428
|
+
|
|
429
|
+
assert.throws(function () {
|
|
430
|
+
oContext.fetchValue(sPath, "~listener~");
|
|
431
|
+
}, new Error("Cannot register change listener for header context object"));
|
|
432
|
+
});
|
|
433
|
+
});
|
|
434
|
+
|
|
417
435
|
//*********************************************************************************************
|
|
418
436
|
[false, true].forEach(function (bAutoExpandSelect) {
|
|
419
|
-
["$count", "/foo/$count"
|
|
437
|
+
["$count", "/foo/$count", "@$ui5.context.isSelected", "/foo/@$ui5.context.isSelected"]
|
|
438
|
+
.forEach(function (sPath) {
|
|
420
439
|
var sTitle = "fetchValue: header context, autoExpandSelect=" + bAutoExpandSelect
|
|
421
440
|
+ ", path=" + sPath;
|
|
422
441
|
|
|
423
|
-
QUnit.test(sTitle
|
|
442
|
+
QUnit.test(sTitle, function (assert) {
|
|
424
443
|
var oBinding = {
|
|
425
444
|
fetchValue : function () {},
|
|
426
445
|
getBaseForPathReduction : function () {},
|
|
@@ -436,20 +455,35 @@ sap.ui.define([
|
|
|
436
455
|
},
|
|
437
456
|
oContext = Context.create(oModel, oBinding, "/foo");
|
|
438
457
|
|
|
458
|
+
oContext.bSelected = "~selected~";
|
|
459
|
+
|
|
439
460
|
this.mock(oBinding).expects("getHeaderContext").withExactArgs().returns(oContext);
|
|
440
|
-
|
|
441
|
-
.
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
461
|
+
if (sPath.includes("$count")) {
|
|
462
|
+
this.mock(oModel).expects("resolve")
|
|
463
|
+
.withExactArgs("$count", sinon.match.same(oContext)).returns("/~");
|
|
464
|
+
if (bAutoExpandSelect) {
|
|
465
|
+
this.mock(oBinding).expects("getBaseForPathReduction")
|
|
466
|
+
.withExactArgs().returns("/base");
|
|
467
|
+
this.mock(oMetaModel).expects("getReducedPath")
|
|
468
|
+
.withExactArgs("/~", "/base").returns("/reduced");
|
|
469
|
+
}
|
|
470
|
+
this.mock(oBinding).expects("fetchValue")
|
|
471
|
+
.withExactArgs(bAutoExpandSelect ? "/reduced" : "/~", "~listener~", "bCached")
|
|
472
|
+
.returns(SyncPromise.resolve(Promise.resolve(42)));
|
|
473
|
+
} else {
|
|
474
|
+
assert.notOk(oContext.mChangeListeners);
|
|
475
|
+
|
|
476
|
+
this.mock(oBinding).expects("fetchValue").never();
|
|
477
|
+
this.mock(_Helper).expects("addByPath")
|
|
478
|
+
.withExactArgs(sinon.match.object, "", "~listener~")
|
|
479
|
+
.callsFake((mChangeListeners) => {
|
|
480
|
+
assert.strictEqual(mChangeListeners, oContext.mChangeListeners);
|
|
481
|
+
assert.deepEqual(mChangeListeners, {});
|
|
482
|
+
});
|
|
446
483
|
}
|
|
447
|
-
this.mock(oBinding).expects("fetchValue")
|
|
448
|
-
.withExactArgs(bAutoExpandSelect ? "/reduced" : "/~", "~listener~", "bCached")
|
|
449
|
-
.returns(SyncPromise.resolve(Promise.resolve(42)));
|
|
450
484
|
|
|
451
|
-
return oContext.fetchValue(sPath, "~listener~", "bCached").then(function (
|
|
452
|
-
assert.
|
|
485
|
+
return oContext.fetchValue(sPath, "~listener~", "bCached").then(function (vValue) {
|
|
486
|
+
assert.strictEqual(vValue, sPath.includes("$count") ? 42 : "~selected~");
|
|
453
487
|
});
|
|
454
488
|
});
|
|
455
489
|
});
|
|
@@ -1195,7 +1229,7 @@ sap.ui.define([
|
|
|
1195
1229
|
oExpectation,
|
|
1196
1230
|
bSelected = !!oFixture.groupId;
|
|
1197
1231
|
|
|
1198
|
-
oContext.
|
|
1232
|
+
oContext.bSelected = bSelected;
|
|
1199
1233
|
this.mock(_Helper).expects("isDataAggregation")
|
|
1200
1234
|
.withExactArgs("~mParameters~").returns(false);
|
|
1201
1235
|
this.mock(oBinding).expects("checkSuspended").withExactArgs();
|
|
@@ -1550,6 +1584,7 @@ sap.ui.define([
|
|
|
1550
1584
|
}
|
|
1551
1585
|
oContext.bKeepAlive = "~bKeepAlive~";
|
|
1552
1586
|
oContext.oDeletePromise = "~oDeletePromise~";
|
|
1587
|
+
oContext.mChangeListeners = "~mChangeListeners~";
|
|
1553
1588
|
oContext.setNewGeneration();
|
|
1554
1589
|
iGeneration = oContext.getGeneration(true);
|
|
1555
1590
|
|
|
@@ -1574,6 +1609,7 @@ sap.ui.define([
|
|
|
1574
1609
|
assert.strictEqual(oContext.isInactive(), undefined);
|
|
1575
1610
|
assert.strictEqual(oContext.isTransient(), undefined);
|
|
1576
1611
|
assert.strictEqual(oContext.toString(), "/EMPLOYEES/42[42;destroyed]");
|
|
1612
|
+
assert.notOk("mChangeListeners" in oContext);
|
|
1577
1613
|
|
|
1578
1614
|
if (bfnOnBeforeDestroy) {
|
|
1579
1615
|
assert.ok(bCallbackCalled);
|
|
@@ -3048,6 +3084,73 @@ sap.ui.define([
|
|
|
3048
3084
|
});
|
|
3049
3085
|
});
|
|
3050
3086
|
|
|
3087
|
+
//********************************************************************************************
|
|
3088
|
+
[false, true].forEach((bGroupLock) => {
|
|
3089
|
+
QUnit.test("doSetProperty: @$ui5.context.isSelected, group lock=" + bGroupLock, function () {
|
|
3090
|
+
const oBinding = {doSetProperty : mustBeMocked, getResolvedPath : mustBeMocked};
|
|
3091
|
+
const oMetaModel = {fetchUpdateData : mustBeMocked};
|
|
3092
|
+
const oModel = {getMetaModel : mustBeMocked};
|
|
3093
|
+
const oContext = Context.create(oModel, oBinding, "/ProductList('HT-1000')");
|
|
3094
|
+
|
|
3095
|
+
this.mock(oModel).expects("getMetaModel").returns(oMetaModel);
|
|
3096
|
+
this.mock(oContext).expects("isDeleted").twice().withExactArgs().returns(false);
|
|
3097
|
+
this.mock(oContext).expects("setSelected").withExactArgs("~bSelected~");
|
|
3098
|
+
this.mock(oContext).expects("isTransient").never();
|
|
3099
|
+
this.mock(oContext).expects("withCache")
|
|
3100
|
+
.withExactArgs(sinon.match.func, "@$ui5.context.isSelected", false, true)
|
|
3101
|
+
.callsFake((fnProcessor) => {
|
|
3102
|
+
const oCache = {setProperty : mustBeMocked, update : mustBeMocked};
|
|
3103
|
+
this.mock(oBinding).expects("doSetProperty")
|
|
3104
|
+
.withExactArgs("/cache/path", "~bSelected~", /*oGroupLock*/null);
|
|
3105
|
+
this.mock(oMetaModel).expects("fetchUpdateData")
|
|
3106
|
+
.withExactArgs("@$ui5.context.isSelected", sinon.match.same(oContext), true)
|
|
3107
|
+
.returns(SyncPromise.resolve({
|
|
3108
|
+
entityPath : "/entity/path",
|
|
3109
|
+
propertyPath : "@$ui5.context.isSelected"
|
|
3110
|
+
}));
|
|
3111
|
+
this.mock(oBinding).expects("getResolvedPath").withExactArgs()
|
|
3112
|
+
.returns("/resolved/binding/path");
|
|
3113
|
+
this.mock(_Helper).expects("getRelativePath")
|
|
3114
|
+
.withExactArgs("/entity/path", "/resolved/binding/path")
|
|
3115
|
+
.returns("helper/path");
|
|
3116
|
+
this.mock(oCache).expects("setProperty")
|
|
3117
|
+
.withExactArgs("@$ui5.context.isSelected", "~bSelected~", "helper/path",
|
|
3118
|
+
undefined)
|
|
3119
|
+
.resolves();
|
|
3120
|
+
this.mock(oCache).expects("update").never();
|
|
3121
|
+
|
|
3122
|
+
return fnProcessor(oCache, "/cache/path", oBinding);
|
|
3123
|
+
});
|
|
3124
|
+
|
|
3125
|
+
let oGroupLock = null;
|
|
3126
|
+
if (bGroupLock) {
|
|
3127
|
+
oGroupLock = {unlock : mustBeMocked};
|
|
3128
|
+
this.mock(oGroupLock).expects("unlock").withExactArgs();
|
|
3129
|
+
}
|
|
3130
|
+
|
|
3131
|
+
// code under test
|
|
3132
|
+
oContext.doSetProperty("@$ui5.context.isSelected", "~bSelected~", oGroupLock);
|
|
3133
|
+
});
|
|
3134
|
+
});
|
|
3135
|
+
|
|
3136
|
+
//*********************************************************************************************
|
|
3137
|
+
QUnit.test("doSetProperty: header context and @$ui5.context.isSelected", function (assert) {
|
|
3138
|
+
const oBinding = {getHeaderContext : mustBeMocked};
|
|
3139
|
+
const oModel = {
|
|
3140
|
+
getMetaModel : function () {}
|
|
3141
|
+
};
|
|
3142
|
+
const oHeaderContext = Context.create(oModel, oBinding, "/ProductList");
|
|
3143
|
+
|
|
3144
|
+
this.mock(oHeaderContext).expects("isDeleted").withExactArgs().returns(false);
|
|
3145
|
+
this.mock(oHeaderContext).expects("setSelected").withExactArgs("~bSelected~");
|
|
3146
|
+
this.mock(oBinding).expects("getHeaderContext").returns(oHeaderContext);
|
|
3147
|
+
|
|
3148
|
+
assert.strictEqual(
|
|
3149
|
+
// code under test
|
|
3150
|
+
oHeaderContext.doSetProperty("@$ui5.context.isSelected", "~bSelected~", null),
|
|
3151
|
+
SyncPromise.resolve());
|
|
3152
|
+
});
|
|
3153
|
+
|
|
3051
3154
|
//*********************************************************************************************
|
|
3052
3155
|
[function (_assert, _oModelMock, _oBinding, _oBindingMock, _fnErrorCallback, _fnPatchSent,
|
|
3053
3156
|
_fnIsKeepAlive, oError) {
|
|
@@ -4352,34 +4455,71 @@ sap.ui.define([
|
|
|
4352
4455
|
});
|
|
4353
4456
|
|
|
4354
4457
|
//*********************************************************************************************
|
|
4355
|
-
|
|
4458
|
+
[false, true].forEach(function (bHasChangeListeners) {
|
|
4459
|
+
QUnit.test("setSelected: with change listeners=" + bHasChangeListeners, function () {
|
|
4460
|
+
const oCache = {setProperty : mustBeMocked};
|
|
4461
|
+
const oBinding = {getHeaderContext : "~function~"};
|
|
4356
4462
|
// Note: oBinding is optional, it might already be missing in certain cases!
|
|
4357
|
-
|
|
4358
|
-
|
|
4463
|
+
const oContext = Context.create({/*oModel*/}, oBinding, "/some/path", 42);
|
|
4464
|
+
if (bHasChangeListeners) {
|
|
4465
|
+
oContext.mChangeListeners = "~mChangeListeners~";
|
|
4466
|
+
}
|
|
4359
4467
|
|
|
4360
|
-
|
|
4361
|
-
|
|
4468
|
+
this.mock(oContext).expects("isDeleted").withExactArgs().returns(false);
|
|
4469
|
+
this.mock(_Helper).expects("fireChange").exactly(bHasChangeListeners ? 1 : 0)
|
|
4470
|
+
.withExactArgs("~mChangeListeners~", "", "~selected~");
|
|
4471
|
+
this.mock(oContext).expects("withCache")
|
|
4472
|
+
.withExactArgs(sinon.match.func, "")
|
|
4473
|
+
.callsFake((fnProcessor) => {
|
|
4474
|
+
this.mock(oCache).expects("setProperty")
|
|
4475
|
+
.withExactArgs("@$ui5.context.isSelected", "~selected~", "~sPath~");
|
|
4362
4476
|
|
|
4363
|
-
|
|
4477
|
+
return fnProcessor(oCache, "~sPath~");
|
|
4478
|
+
});
|
|
4479
|
+
this.mock(oContext).expects("doSetSelected").withExactArgs("~selected~");
|
|
4364
4480
|
|
|
4365
4481
|
// code under test
|
|
4366
|
-
oContext.setSelected(
|
|
4482
|
+
oContext.setSelected("~selected~");
|
|
4483
|
+
});
|
|
4484
|
+
});
|
|
4367
4485
|
|
|
4368
|
-
|
|
4486
|
+
//*********************************************************************************************
|
|
4487
|
+
QUnit.test("setSelected: special cases", function () {
|
|
4488
|
+
const oBinding = {
|
|
4489
|
+
getHeaderContext : function () {}
|
|
4490
|
+
};
|
|
4491
|
+
const oCache = {};
|
|
4492
|
+
const oContext = Context.create({/*oModel*/}, oBinding, "/some/path", 42);
|
|
4493
|
+
const oContextMock = this.mock(oContext);
|
|
4369
4494
|
|
|
4370
4495
|
oContextMock.expects("isDeleted").withExactArgs().returns(false);
|
|
4496
|
+
oContextMock.expects("withCache")
|
|
4497
|
+
.withExactArgs(sinon.match.func, "")
|
|
4498
|
+
.callsFake((fnProcessor) => {
|
|
4499
|
+
oContext.oBinding = undefined;
|
|
4371
4500
|
|
|
4372
|
-
|
|
4373
|
-
|
|
4501
|
+
return fnProcessor(oCache, "~sPath~");
|
|
4502
|
+
});
|
|
4503
|
+
oContextMock.expects("doSetSelected").withExactArgs(true);
|
|
4374
4504
|
|
|
4375
|
-
//
|
|
4505
|
+
// code under test - binding destroyed
|
|
4506
|
+
oContext.setSelected(true);
|
|
4376
4507
|
|
|
4377
|
-
//
|
|
4508
|
+
// no additional calls to withCache
|
|
4509
|
+
oContextMock.expects("doSetSelected").withExactArgs(false);
|
|
4510
|
+
|
|
4511
|
+
// code under test - flag unchanged
|
|
4378
4512
|
oContext.setSelected(false);
|
|
4513
|
+
});
|
|
4379
4514
|
|
|
4380
|
-
|
|
4515
|
+
//*********************************************************************************************
|
|
4516
|
+
QUnit.test("setSelected: error handling", function (assert) {
|
|
4517
|
+
const oBinding = {
|
|
4518
|
+
getHeaderContext : function () {}
|
|
4519
|
+
};
|
|
4520
|
+
let oContext = Context.create({/*oModel*/}, oBinding, "/some/path", 42);
|
|
4381
4521
|
|
|
4382
|
-
|
|
4522
|
+
this.mock(oContext).expects("isDeleted").thrice().withExactArgs().returns(true); // toString
|
|
4383
4523
|
|
|
4384
4524
|
assert.throws(function () {
|
|
4385
4525
|
// code under test
|
|
@@ -4393,6 +4533,31 @@ sap.ui.define([
|
|
|
4393
4533
|
// code under test
|
|
4394
4534
|
oContext.setSelected(false);
|
|
4395
4535
|
}, new Error("Unsupported context: " + oContext));
|
|
4536
|
+
});
|
|
4537
|
+
|
|
4538
|
+
//*********************************************************************************************
|
|
4539
|
+
QUnit.test("doSetSelected", function (assert) {
|
|
4540
|
+
// Note: oBinding is optional, it might already be missing in certain cases!
|
|
4541
|
+
let oContext = Context.create({/*oModel*/}, /*oBinding*/undefined, "/some/path", 42);
|
|
4542
|
+
|
|
4543
|
+
// code under test
|
|
4544
|
+
assert.strictEqual(oContext.isSelected(), false);
|
|
4545
|
+
|
|
4546
|
+
// code under test
|
|
4547
|
+
oContext.doSetSelected(true);
|
|
4548
|
+
|
|
4549
|
+
assert.strictEqual(oContext.isSelected(), true);
|
|
4550
|
+
|
|
4551
|
+
// code under test
|
|
4552
|
+
assert.strictEqual(oContext.toString(), "/some/path[42;selected]");
|
|
4553
|
+
|
|
4554
|
+
// code under test
|
|
4555
|
+
oContext.doSetSelected(false);
|
|
4556
|
+
|
|
4557
|
+
assert.strictEqual(oContext.isSelected(), false);
|
|
4558
|
+
|
|
4559
|
+
// code under test
|
|
4560
|
+
assert.strictEqual(oContext.toString(), "/some/path[42]");
|
|
4396
4561
|
|
|
4397
4562
|
oContext = Context.create({/*oModel*/}, {
|
|
4398
4563
|
getHeaderContext : true,
|
|
@@ -4402,11 +4567,11 @@ sap.ui.define([
|
|
|
4402
4567
|
this.mock(oContext.oBinding).expects("onKeepAliveChanged")
|
|
4403
4568
|
.withExactArgs(sinon.match.same(oContext))
|
|
4404
4569
|
.callsFake(function () {
|
|
4405
|
-
assert.strictEqual(oContext.bSelected, "~
|
|
4570
|
+
assert.strictEqual(oContext.bSelected, "~selected~");
|
|
4406
4571
|
});
|
|
4407
4572
|
|
|
4408
4573
|
// code under test
|
|
4409
|
-
oContext.
|
|
4574
|
+
oContext.doSetSelected("~selected~");
|
|
4410
4575
|
});
|
|
4411
4576
|
|
|
4412
4577
|
//*********************************************************************************************
|
|
@@ -4436,7 +4601,7 @@ sap.ui.define([
|
|
|
4436
4601
|
},
|
|
4437
4602
|
oHeaderContext = Context.create({/*oModel*/}, oBinding, "/TEAMS");
|
|
4438
4603
|
|
|
4439
|
-
oHeaderContext.
|
|
4604
|
+
oHeaderContext.bSelected = true;
|
|
4440
4605
|
this.mock(_Helper).expects("isDataAggregation").never();
|
|
4441
4606
|
|
|
4442
4607
|
// code under test
|
|
@@ -4457,7 +4622,7 @@ sap.ui.define([
|
|
|
4457
4622
|
// code under test
|
|
4458
4623
|
assert.strictEqual(oContext.isEffectivelyKeptAlive(), false);
|
|
4459
4624
|
|
|
4460
|
-
oContext.
|
|
4625
|
+
oContext.bSelected = true;
|
|
4461
4626
|
oBindingMock.expects("isRelative").withExactArgs().returns(false);
|
|
4462
4627
|
this.mock(_Helper).expects("isDataAggregation")
|
|
4463
4628
|
.withExactArgs(sinon.match.same(oBinding.mParameters)).returns(false);
|
|
@@ -4502,7 +4667,7 @@ sap.ui.define([
|
|
|
4502
4667
|
},
|
|
4503
4668
|
oContext = Context.create({/*oModel*/}, oBinding, sContextPath);
|
|
4504
4669
|
|
|
4505
|
-
oContext.
|
|
4670
|
+
oContext.bSelected = true;
|
|
4506
4671
|
this.mock(_Helper).expects("isDataAggregation")
|
|
4507
4672
|
.withExactArgs(sinon.match.same(oBinding.mParameters)).returns(false);
|
|
4508
4673
|
|
|
@@ -4521,7 +4686,7 @@ sap.ui.define([
|
|
|
4521
4686
|
},
|
|
4522
4687
|
oContext = Context.create({/*oModel*/}, oBinding, "/TEAMS('1')");
|
|
4523
4688
|
|
|
4524
|
-
oContext.
|
|
4689
|
+
oContext.bSelected = true;
|
|
4525
4690
|
this.mock(_Helper).expects("isDataAggregation")
|
|
4526
4691
|
.withExactArgs(sinon.match.same(oBinding.mParameters)).returns(true);
|
|
4527
4692
|
|
|
@@ -4539,7 +4704,7 @@ sap.ui.define([
|
|
|
4539
4704
|
};
|
|
4540
4705
|
const oContext = Context.create({/*oModel*/}, oBinding, "/SalesOrderList('0')/Messages/0");
|
|
4541
4706
|
|
|
4542
|
-
oContext.
|
|
4707
|
+
oContext.bSelected = true;
|
|
4543
4708
|
this.mock(_Helper).expects("isDataAggregation")
|
|
4544
4709
|
.withExactArgs(sinon.match.same(oBinding.mParameters)).returns(false);
|
|
4545
4710
|
|
|
@@ -4621,6 +4786,32 @@ sap.ui.define([
|
|
|
4621
4786
|
}, "~oError~");
|
|
4622
4787
|
});
|
|
4623
4788
|
|
|
4789
|
+
//*********************************************************************************************
|
|
4790
|
+
QUnit.test("deregisterChangeListener", function (assert) {
|
|
4791
|
+
const oContext = Context.create({/*oModel*/}, {/*oBinding*/}, "/path");
|
|
4792
|
+
let oListener = {
|
|
4793
|
+
getPath : () => "foo"
|
|
4794
|
+
};
|
|
4795
|
+
|
|
4796
|
+
// code under test
|
|
4797
|
+
assert.strictEqual(oContext.deregisterChangeListener(), false, "no mChangeListeners");
|
|
4798
|
+
|
|
4799
|
+
oContext.mChangeListeners = {};
|
|
4800
|
+
|
|
4801
|
+
// code under test
|
|
4802
|
+
assert.strictEqual(oContext.deregisterChangeListener(oListener), false, "wrong path");
|
|
4803
|
+
|
|
4804
|
+
oListener = {
|
|
4805
|
+
getPath : () => "@$ui5.context.isSelected"
|
|
4806
|
+
};
|
|
4807
|
+
this.mock(_Helper).expects("removeByPath")
|
|
4808
|
+
.withExactArgs(sinon.match.same(oContext.mChangeListeners), "",
|
|
4809
|
+
sinon.match.same(oListener));
|
|
4810
|
+
|
|
4811
|
+
// code under test
|
|
4812
|
+
assert.strictEqual(oContext.deregisterChangeListener(oListener), true);
|
|
4813
|
+
});
|
|
4814
|
+
|
|
4624
4815
|
//*********************************************************************************************
|
|
4625
4816
|
[0, 1].forEach(function (iFailureIndex) {
|
|
4626
4817
|
QUnit.test("updateAfterCreate, fail=" + iFailureIndex, function () {
|