@openui5/sap.ui.core 1.120.0 → 1.120.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.reuse/dep5 +1 -1
- package/THIRDPARTY.txt +1 -1
- package/package.json +1 -1
- package/src/jquery.sap.global.js +1 -1
- package/src/jquery.sap.properties.js +1 -1
- package/src/jquery.sap.resources.js +1 -1
- package/src/jquery.sap.script.js +1 -1
- package/src/jquery.sap.storage.js +3 -3
- package/src/sap/base/Event.js +2 -2
- package/src/sap/base/Eventing.js +1 -1
- package/src/sap/base/config.js +1 -1
- package/src/sap/base/i18n/Formatting.js +30 -14
- package/src/sap/base/i18n/LanguageTag.js +1 -1
- package/src/sap/base/i18n/Localization.js +1 -2
- 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/BindingParser.js +4 -4
- package/src/sap/ui/base/DataType.js +5 -5
- 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 +9 -65
- package/src/sap/ui/base/ManagedObjectMetadata.js +25 -1
- package/src/sap/ui/base/ManagedObjectRegistry.js +186 -169
- 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 +55 -150
- package/src/sap/ui/core/ComponentContainer.js +5 -5
- package/src/sap/ui/core/ComponentMetadata.js +1 -1
- package/src/sap/ui/core/ComponentRegistry.js +153 -0
- package/src/sap/ui/core/ComponentSupport.js +3 -3
- package/src/sap/ui/core/Configuration.js +9 -7
- package/src/sap/ui/core/Control.js +6 -4
- package/src/sap/ui/core/Core.js +19 -71
- 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 +30 -142
- package/src/sap/ui/core/ElementMetadata.js +1 -1
- package/src/sap/ui/core/ElementRegistry.js +159 -0
- 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 +5 -5
- package/src/sap/ui/core/FocusHandler.js +3 -2
- package/src/sap/ui/core/Fragment.js +7 -7
- 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/Lib.js +62 -32
- 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 +55 -11
- package/src/sap/ui/core/Manifest.js +4 -5
- package/src/sap/ui/core/Message.js +2 -1
- package/src/sap/ui/core/Messaging.js +2 -2
- 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/Shortcut.js +15 -9
- package/src/sap/ui/core/StaticArea.js +4 -1
- package/src/sap/ui/core/Theming.js +3 -3
- 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 +54 -12
- package/src/sap/ui/core/UIAreaRegistry.js +150 -0
- package/src/sap/ui/core/UIComponent.js +3 -3
- 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 +95 -76
- package/src/sap/ui/core/cldr/Unicode-Data-Files-LICENSE.txt +1 -1
- package/src/sap/ui/core/cldr/cy.json +12 -3
- package/src/sap/ui/core/cldr/en_AU.json +48 -12
- package/src/sap/ui/core/cldr/en_GB.json +24 -6
- package/src/sap/ui/core/cldr/en_HK.json +24 -6
- package/src/sap/ui/core/cldr/en_IE.json +24 -6
- package/src/sap/ui/core/cldr/en_IN.json +24 -6
- package/src/sap/ui/core/cldr/en_NZ.json +24 -6
- package/src/sap/ui/core/cldr/en_PG.json +24 -6
- package/src/sap/ui/core/cldr/en_SG.json +24 -6
- package/src/sap/ui/core/cldr/en_ZA.json +24 -6
- package/src/sap/ui/core/cldr/es.json +288 -72
- package/src/sap/ui/core/cldr/es_AR.json +288 -72
- package/src/sap/ui/core/cldr/es_BO.json +288 -72
- package/src/sap/ui/core/cldr/es_CL.json +144 -36
- package/src/sap/ui/core/cldr/es_CO.json +144 -36
- package/src/sap/ui/core/cldr/es_MX.json +288 -72
- package/src/sap/ui/core/cldr/fa.json +48 -12
- package/src/sap/ui/core/cldr/id.json +56 -14
- package/src/sap/ui/core/cldr/kk.json +184 -46
- package/src/sap/ui/core/cldr/ms.json +56 -14
- package/src/sap/ui/core/cldr/nb.json +36 -9
- package/src/sap/ui/core/cldr/nl.json +264 -66
- package/src/sap/ui/core/cldr/nl_BE.json +264 -66
- package/src/sap/ui/core/cldr/pt.json +288 -72
- package/src/sap/ui/core/cldr/pt_PT.json +288 -72
- package/src/sap/ui/core/cldr/sr.json +96 -24
- package/src/sap/ui/core/cldr/sr_Latn.json +72 -18
- package/src/sap/ui/core/date/Islamic.js +4 -4
- package/src/sap/ui/core/date/UI5Date.js +1 -1
- package/src/sap/ui/core/delegate/ItemNavigation.js +1 -1
- package/src/sap/ui/core/delegate/ScrollEnablement.js +1 -1
- package/src/sap/ui/core/dnd/DragDropBase.js +1 -1
- package/src/sap/ui/core/dnd/DragDropInfo.js +1 -1
- package/src/sap/ui/core/dnd/DragInfo.js +1 -1
- package/src/sap/ui/core/dnd/DropInfo.js +1 -1
- package/src/sap/ui/core/format/DateFormat.js +25 -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 +9 -3
- package/src/sap/ui/core/message/ControlMessageProcessor.js +1 -1
- package/src/sap/ui/core/message/Message.js +7 -7
- 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/message/MessageType.js +1 -1
- package/src/sap/ui/core/mvc/Controller.js +15 -13
- package/src/sap/ui/core/mvc/ControllerExtension.js +7 -5
- package/src/sap/ui/core/mvc/ControllerExtensionProvider.js +2 -2
- package/src/sap/ui/core/mvc/ControllerMetadata.js +1 -1
- package/src/sap/ui/core/mvc/EventHandlerResolver.js +4 -4
- 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 +21 -10
- package/src/sap/ui/core/mvc/XMLView.js +8 -2
- package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
- package/src/sap/ui/core/plugin/LessSupport.js +1 -1
- package/src/sap/ui/core/plugin/TemplatingSupport.js +1 -1
- package/src/sap/ui/core/postmessage/Bus.js +1 -1
- package/src/sap/ui/core/postmessage/confirmationDialog.js +1 -1
- package/src/sap/ui/core/routing/History.js +1 -1
- package/src/sap/ui/core/routing/Route.js +6 -6
- package/src/sap/ui/core/routing/Router.js +6 -6
- package/src/sap/ui/core/routing/Targets.js +3 -3
- package/src/sap/ui/core/routing/async/Target.js +2 -2
- package/src/sap/ui/core/routing/async/Targets.js +1 -1
- package/src/sap/ui/core/rules/Misc.support.js +3 -3
- package/src/sap/ui/core/search/OpenSearchProvider.js +2 -1
- package/src/sap/ui/core/search/SearchProvider.js +2 -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 +7 -5
- 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 +7 -7
- package/src/sap/ui/core/theming/ThemeHelper.js +2 -2
- package/src/sap/ui/core/theming/ThemeManager.js +2 -2
- 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 +34 -3
- package/src/sap/ui/core/util/PasteHelper.js +1 -1
- package/src/sap/ui/core/util/_LocalizationHelper.js +122 -0
- 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/Binding.js +2 -2
- package/src/sap/ui/model/ClientListBinding.js +6 -3
- package/src/sap/ui/model/ClientModel.js +1 -1
- package/src/sap/ui/model/ClientTreeBinding.js +6 -3
- package/src/sap/ui/model/CompositeDataState.js +5 -5
- package/src/sap/ui/model/CompositeType.js +1 -1
- package/src/sap/ui/model/DataState.js +10 -10
- package/src/sap/ui/model/FilterProcessor.js +19 -16
- package/src/sap/ui/model/ManagedObjectBindingSupport.js +2 -2
- package/src/sap/ui/model/MetaModel.js +1 -1
- package/src/sap/ui/model/Model.js +10 -8
- 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/odata4analytics.js +6 -6
- package/src/sap/ui/model/json/JSONModel.js +1 -1
- package/src/sap/ui/model/message/MessageModel.js +1 -1
- package/src/sap/ui/model/odata/ODataAnnotations.js +1 -1
- package/src/sap/ui/model/odata/ODataListBinding.js +5 -2
- package/src/sap/ui/model/odata/ODataMessageParser.js +3 -3
- 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/ODataListBinding.js +5 -2
- package/src/sap/ui/model/odata/v2/ODataModel.js +9 -58
- package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +6 -3
- package/src/sap/ui/model/odata/v4/Context.js +32 -27
- package/src/sap/ui/model/odata/v4/ODataBinding.js +3 -0
- package/src/sap/ui/model/odata/v4/ODataContextBinding.js +1 -1
- package/src/sap/ui/model/odata/v4/ODataListBinding.js +198 -155
- package/src/sap/ui/model/odata/v4/ODataMetaModel.js +2 -2
- package/src/sap/ui/model/odata/v4/ODataModel.js +9 -4
- package/src/sap/ui/model/odata/v4/ODataParentBinding.js +9 -6
- package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +1 -1
- package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +220 -85
- package/src/sap/ui/model/odata/v4/lib/_AggregationHelper.js +33 -20
- package/src/sap/ui/model/odata/v4/lib/_Cache.js +70 -18
- package/src/sap/ui/model/odata/v4/lib/_Requestor.js +9 -5
- package/src/sap/ui/model/resource/ResourceModel.js +1 -1
- package/src/sap/ui/model/type/Boolean.js +1 -1
- package/src/sap/ui/model/type/Currency.js +1 -1
- package/src/sap/ui/model/type/Date.js +1 -1
- package/src/sap/ui/model/type/DateInterval.js +1 -1
- package/src/sap/ui/model/type/DateTime.js +1 -1
- package/src/sap/ui/model/type/DateTimeInterval.js +1 -1
- package/src/sap/ui/model/type/FileSize.js +1 -1
- package/src/sap/ui/model/type/Float.js +1 -1
- package/src/sap/ui/model/type/Integer.js +1 -1
- package/src/sap/ui/model/type/String.js +1 -1
- package/src/sap/ui/model/type/Time.js +1 -1
- package/src/sap/ui/model/type/TimeInterval.js +1 -1
- package/src/sap/ui/model/type/Unit.js +1 -1
- package/src/sap/ui/model/xml/XMLModel.js +1 -1
- package/src/sap/ui/performance/trace/Interaction.js +20 -16
- package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
- package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +5 -5
- package/src/sap/ui/test/BranchTracking.js +4 -0
- package/src/sap/ui/test/actions/EnterText.js +1 -1
- package/src/sap/ui/test/generic/GenericTestCollection.js +1 -0
- package/src/sap/ui/test/generic/TestBase.js +4 -4
- package/src/sap/ui/test/generic/Utils.js +3 -2
- package/src/sap/ui/util/Storage.js +1 -1
- package/src/ui5loader-autoconfig.js +23 -15
- package/src/ui5loader.js +9 -4
- package/test/sap/ui/core/demokit/sample/MessageManager/ODataBackendMessagesComp/manifest.json +3 -10
- package/test/sap/ui/core/demokit/sample/MessageManager/ODataBackendMessagesComp/package.json +13 -0
- package/test/sap/ui/core/demokit/sample/MessageManager/ODataBackendMessagesComp/ui5.yaml +11 -0
- package/test/sap/ui/core/demokit/sample/ViewTemplate/types/Template.controller.js +3 -3
- package/test/sap/ui/core/demokit/sample/common/Controller.js +0 -1
- package/test/sap/ui/core/demokit/sample/matcher/BindingPath/manifest.json +3 -11
- package/test/sap/ui/core/demokit/sample/matcher/BindingPath/package.json +13 -0
- package/test/sap/ui/core/demokit/sample/matcher/BindingPath/ui5.yaml +11 -0
- package/test/sap/ui/core/demokit/sample/matcher/Descendant/Component.js +1 -1
- package/test/sap/ui/core/demokit/sample/matcher/Descendant/manifest.json +3 -11
- package/test/sap/ui/core/demokit/sample/matcher/Descendant/package.json +13 -0
- package/test/sap/ui/core/demokit/sample/matcher/Descendant/ui5.yaml +11 -0
- package/test/sap/ui/core/demokit/sample/matcher/I18NText/manifest.json +3 -11
- package/test/sap/ui/core/demokit/sample/matcher/I18NText/package.json +13 -0
- package/test/sap/ui/core/demokit/sample/matcher/I18NText/ui5.yaml +11 -0
- package/test/sap/ui/core/demokit/sample/matcher/LabelFor/manifest.json +3 -11
- package/test/sap/ui/core/demokit/sample/matcher/LabelFor/package.json +13 -0
- package/test/sap/ui/core/demokit/sample/matcher/LabelFor/ui5.yaml +11 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/Ancestry/Main.controller.js +1 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/HierarchyBindAction/Main.controller.js +14 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/HierarchyBindAction/Main.view.xml +6 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/MultipleInlineCreationRowsGrid/MIT.MultipleInlineCreationRowsGrid.html +5 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/MultipleInlineCreationRowsGrid/Main.view.xml +9 -2
- package/test/sap/ui/core/demokit/sample/odata/v4/MultipleInlineCreationRowsGrid/Opa.qunit.js +23 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/MultipleInlineCreationRowsGrid/pages/Main.js +58 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/RecursiveHierarchy.controller.js +75 -30
- package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/RecursiveHierarchy.view.xml +19 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/SandboxModel.js +84 -28
- package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/data/metadata.xml +3 -3
- package/test/sap/ui/core/demokit/tutorial/databinding/01/Component.js +9 -25
- package/test/sap/ui/core/demokit/tutorial/databinding/01/manifest.json +20 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/01/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/01/webapp/manifest.json +5 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/02/Component.js +9 -25
- package/test/sap/ui/core/demokit/tutorial/databinding/02/manifest.json +20 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/02/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/02/webapp/manifest.json +5 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/03/Component.js +9 -25
- package/test/sap/ui/core/demokit/tutorial/databinding/03/manifest.json +20 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/03/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/03/webapp/manifest.json +5 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/04/Component.js +9 -26
- package/test/sap/ui/core/demokit/tutorial/databinding/04/manifest.json +21 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/04/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/04/webapp/manifest.json +5 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/05/Component.js +9 -26
- package/test/sap/ui/core/demokit/tutorial/databinding/05/manifest.json +21 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/05/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/05/webapp/manifest.json +5 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/06/Component.js +9 -27
- package/test/sap/ui/core/demokit/tutorial/databinding/06/manifest.json +22 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/06/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/06/webapp/manifest.json +5 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/07/Component.js +9 -28
- package/test/sap/ui/core/demokit/tutorial/databinding/07/manifest.json +23 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/07/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/07/webapp/manifest.json +5 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/08/Component.js +9 -28
- package/test/sap/ui/core/demokit/tutorial/databinding/08/manifest.json +23 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/08/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/08/webapp/manifest.json +5 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/09/Component.js +9 -29
- package/test/sap/ui/core/demokit/tutorial/databinding/09/manifest.json +24 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/09/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/09/webapp/manifest.json +5 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/10/Component.js +9 -29
- package/test/sap/ui/core/demokit/tutorial/databinding/10/manifest.json +24 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/10/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/10/webapp/manifest.json +5 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/11/Component.js +9 -29
- package/test/sap/ui/core/demokit/tutorial/databinding/11/manifest.json +24 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/11/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/11/webapp/manifest.json +5 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/12/Component.js +9 -30
- package/test/sap/ui/core/demokit/tutorial/databinding/12/manifest.json +25 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/12/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/12/webapp/manifest.json +5 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/13/Component.js +9 -30
- package/test/sap/ui/core/demokit/tutorial/databinding/13/manifest.json +25 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/13/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/13/webapp/manifest.json +5 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/14/Component.js +9 -30
- package/test/sap/ui/core/demokit/tutorial/databinding/14/manifest.json +25 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/14/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/14/webapp/manifest.json +5 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/15/Component.js +9 -32
- package/test/sap/ui/core/demokit/tutorial/databinding/15/manifest.json +27 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/15/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/15/webapp/manifest.json +5 -0
- package/test/sap/ui/core/demokit/tutorial/mockserver/01/Component.js +9 -30
- package/test/sap/ui/core/demokit/tutorial/mockserver/01/manifest.json +24 -0
- package/test/sap/ui/core/demokit/tutorial/mockserver/01/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/mockserver/02/Component.js +9 -33
- package/test/sap/ui/core/demokit/tutorial/mockserver/02/manifest.json +27 -0
- package/test/sap/ui/core/demokit/tutorial/mockserver/02/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/mockserver/03/Component.js +9 -33
- package/test/sap/ui/core/demokit/tutorial/mockserver/03/manifest.json +27 -0
- package/test/sap/ui/core/demokit/tutorial/mockserver/03/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/mockserver/04/Component.js +9 -33
- package/test/sap/ui/core/demokit/tutorial/mockserver/04/manifest.json +27 -0
- package/test/sap/ui/core/demokit/tutorial/mockserver/04/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/01/Component.js +9 -33
- package/test/sap/ui/core/demokit/tutorial/navigation/01/manifest.json +28 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/01/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/02/Component.js +9 -35
- package/test/sap/ui/core/demokit/tutorial/navigation/02/manifest.json +30 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/02/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/03/Component.js +9 -37
- package/test/sap/ui/core/demokit/tutorial/navigation/03/manifest.json +32 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/03/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/04/Component.js +9 -38
- package/test/sap/ui/core/demokit/tutorial/navigation/04/manifest.json +33 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/04/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/05/Component.js +9 -38
- package/test/sap/ui/core/demokit/tutorial/navigation/05/manifest.json +33 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/05/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/06/Component.js +9 -40
- package/test/sap/ui/core/demokit/tutorial/navigation/06/manifest.json +35 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/06/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/07/Component.js +9 -42
- package/test/sap/ui/core/demokit/tutorial/navigation/07/manifest.json +37 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/07/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/08/Component.js +9 -45
- package/test/sap/ui/core/demokit/tutorial/navigation/08/manifest.json +40 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/08/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/09/Component.js +9 -45
- package/test/sap/ui/core/demokit/tutorial/navigation/09/manifest.json +40 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/09/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/10/Component.js +9 -47
- package/test/sap/ui/core/demokit/tutorial/navigation/10/manifest.json +42 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/10/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/11/Component.js +9 -52
- package/test/sap/ui/core/demokit/tutorial/navigation/11/manifest.json +47 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/11/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/12/Component.js +9 -52
- package/test/sap/ui/core/demokit/tutorial/navigation/12/manifest.json +47 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/12/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/13/Component.js +9 -52
- package/test/sap/ui/core/demokit/tutorial/navigation/13/manifest.json +47 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/13/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/14/Component.js +9 -52
- package/test/sap/ui/core/demokit/tutorial/navigation/14/manifest.json +47 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/14/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/15/Component.js +9 -52
- package/test/sap/ui/core/demokit/tutorial/navigation/15/manifest.json +47 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/15/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/16/Component.js +9 -52
- package/test/sap/ui/core/demokit/tutorial/navigation/16/manifest.json +47 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/16/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/17/Component.js +9 -52
- package/test/sap/ui/core/demokit/tutorial/navigation/17/manifest.json +47 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/17/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/01/Component.js +3 -27
- package/test/sap/ui/core/demokit/tutorial/odatav4/01/manifest.json +28 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/01/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/02/Component.js +3 -27
- package/test/sap/ui/core/demokit/tutorial/odatav4/02/manifest.json +28 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/02/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/03/Component.js +3 -27
- package/test/sap/ui/core/demokit/tutorial/odatav4/03/manifest.json +28 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/03/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/04/Component.js +3 -27
- package/test/sap/ui/core/demokit/tutorial/odatav4/04/manifest.json +28 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/04/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/05/Component.js +3 -27
- package/test/sap/ui/core/demokit/tutorial/odatav4/05/manifest.json +28 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/05/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/06/Component.js +3 -27
- package/test/sap/ui/core/demokit/tutorial/odatav4/06/manifest.json +28 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/06/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/07/Component.js +3 -27
- package/test/sap/ui/core/demokit/tutorial/odatav4/07/manifest.json +28 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/07/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/08/Component.js +3 -27
- package/test/sap/ui/core/demokit/tutorial/odatav4/08/manifest.json +28 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/08/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/09/Component.js +3 -27
- package/test/sap/ui/core/demokit/tutorial/odatav4/09/manifest.json +28 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/09/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/10/Component.js +3 -27
- package/test/sap/ui/core/demokit/tutorial/odatav4/10/manifest.json +28 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/10/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/11/Component.js +3 -27
- package/test/sap/ui/core/demokit/tutorial/odatav4/11/manifest.json +28 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/11/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/troubleshooting/01/Component.js +9 -29
- package/test/sap/ui/core/demokit/tutorial/troubleshooting/01/manifest.json +25 -0
- package/test/sap/ui/core/demokit/tutorial/troubleshooting/01/ui5.yaml +1 -1
- package/test/sap/ui/core/qunit/BindingParser.qunit.js +4 -4
- package/test/sap/ui/core/qunit/ClientModel.qunit.js +28 -28
- package/test/sap/ui/core/qunit/CommandExecution.qunit.js +3 -1
- package/test/sap/ui/core/qunit/Core.qunit.js +1 -1
- package/test/sap/ui/core/qunit/DataBinding.qunit.js +6 -6
- package/test/sap/ui/core/qunit/Declarative.qunit.js +6 -6
- package/test/sap/ui/core/qunit/Element_base.qunit.js +8 -7
- package/test/sap/ui/core/qunit/Element_base_legacyAPIs.qunit.js +48 -0
- package/test/sap/ui/core/qunit/Element_closestTo.qunit.js +1 -1
- package/test/sap/ui/core/qunit/Fragment.qunit.js +63 -13
- package/test/sap/ui/core/qunit/HTML.qunit.js +5 -5
- package/test/sap/ui/core/qunit/Lib.qunit.js +59 -0
- package/test/sap/ui/core/qunit/ManagedObject.qunit.js +86 -3
- package/test/sap/ui/core/qunit/PlaceAt.qunit.js +6 -6
- package/test/sap/ui/core/qunit/Shortcut.qunit.js +9 -1
- package/test/sap/ui/core/qunit/UIArea.qunit.js +7 -6
- package/test/sap/ui/core/qunit/analytics/odata4analytics.qunit.js +41 -0
- package/test/sap/ui/core/qunit/base/Config_cascade.qunit.html +7 -5
- package/test/sap/ui/core/qunit/base/Config_cascade.qunit.js +46 -7
- package/test/sap/ui/core/qunit/base/config/GlobalConfigForCascade.js +24 -21
- package/test/sap/ui/core/qunit/base/i18n/Formatting.qunit.js +19 -0
- package/test/sap/ui/core/qunit/component/Component.qunit.js +35 -11
- package/test/sap/ui/core/qunit/component/ComponentContainer.qunit.js +1 -1
- package/test/sap/ui/core/qunit/component/Models.qunit.js +29 -30
- package/test/sap/ui/core/qunit/component/UIComponent.qunit.js +3 -3
- package/test/sap/ui/core/qunit/generic/ControlMemoryLeaks.qunit.js +4 -3
- package/test/sap/ui/core/qunit/generic/legacy/ControlMemoryLeaks.qunit.js +6 -7
- package/test/sap/ui/core/qunit/generic/legacy/DuplicateIdCheck.qunit.js +3 -2
- package/test/sap/ui/core/qunit/generic/legacy/testsuite.generic.qunit.js +3 -0
- package/test/sap/ui/core/qunit/i18n/Islamic.qunit.js +4 -4
- package/test/sap/ui/core/qunit/i18n/LocaleData.qunit.js +65 -0
- package/test/sap/ui/core/qunit/jquery.sap.ui.qunit.js +12 -12
- package/test/sap/ui/core/qunit/loader/syncMode_unavoidablySync.qunit.js +54 -1
- package/test/sap/ui/core/qunit/messages/messagesGeneral.qunit.js +3 -1
- package/test/sap/ui/core/qunit/mockserver/testdata/shopping/Products.json +1 -1
- package/test/sap/ui/core/qunit/model/ClientListBinding.qunit.js +2 -2
- package/test/sap/ui/core/qunit/model/ClientTreeBinding.qunit.js +2 -2
- package/test/sap/ui/core/qunit/model/FilterProcessor.qunit.js +58 -16
- package/test/sap/ui/core/qunit/model/Model.qunit.js +43 -2
- package/test/sap/ui/core/qunit/mvc/AnyView.qunit.js +3 -0
- package/test/sap/ui/core/qunit/mvc/Controller.qunit.js +3 -2
- package/test/sap/ui/core/qunit/mvc/EventHandlerResolver.qunit.js +2 -2
- package/test/sap/ui/core/qunit/mvc/View.qunit.js +38 -35
- package/test/sap/ui/core/qunit/mvc/XMLTemplateProcessor.qunit.js +1 -1
- package/test/sap/ui/core/qunit/mvc/XMLTemplateProcessorAsync.qunit.js +1 -1
- package/test/sap/ui/core/qunit/mvc/XMLTemplateProcessorRequireXML.qunit.js +5 -5
- package/test/sap/ui/core/qunit/mvc/XMLView.qunit.js +1 -1
- package/test/sap/ui/core/qunit/mvc/extensions/ControllerMetadata.qunit.js +6 -2
- package/test/sap/ui/core/qunit/mvc/extensions/Controllerextensions.qunit.js +12 -0
- package/test/sap/ui/core/qunit/mvc/extensions/Controllerextensions_legacy.qunit.js +12 -0
- package/test/sap/ui/core/qunit/mvc/extensions/testdata/AnotherMain.controller.js +3 -1
- package/test/sap/ui/core/qunit/mvc/testdata/XMLViewEmbeddingTypedViews.view.xml +1 -1
- package/test/sap/ui/core/qunit/mvc/viewprocessing/ViewProcessing.qunit.js +26 -7
- package/test/sap/ui/core/qunit/mvc_legacyAPIs/XMLTemplateProcessorRequireXML_legacyAPIs.qunit.js +5 -5
- package/test/sap/ui/core/qunit/mvc_legacyAPIs/XMLView_legacyAPIs.qunit.js +2 -2
- package/test/sap/ui/core/qunit/odata/ODataMessageParserNoFakeService.qunit.js +36 -34
- package/test/sap/ui/core/qunit/odata/ODataModel_legacyAPIs.qunit.js +22 -22
- package/test/sap/ui/core/qunit/odata/ODataTreeBindingAdapter.qunit.js +1 -1
- package/test/sap/ui/core/qunit/odata/v2/ODataListBindingNoFakeService.qunit.js +16 -16
- package/test/sap/ui/core/qunit/odata/v2/ODataModel.integration.qunit.js +69 -0
- package/test/sap/ui/core/qunit/odata/v2/ODataModelNoFakeService.qunit.js +2 -11
- package/test/sap/ui/core/qunit/odata/v2/ODataTreeBindingNoFakeService.qunit.js +17 -17
- package/test/sap/ui/core/qunit/odata/v2/ODataV2Model.qunit.js +32 -36
- package/test/sap/ui/core/qunit/odata/v4/Context.qunit.js +43 -22
- package/test/sap/ui/core/qunit/odata/v4/ODataBinding.qunit.js +19 -9
- package/test/sap/ui/core/qunit/odata/v4/ODataListBinding.qunit.js +318 -217
- package/test/sap/ui/core/qunit/odata/v4/ODataMetaModel.qunit.js +5 -5
- package/test/sap/ui/core/qunit/odata/v4/ODataModel.integration.qunit.js +2148 -124
- package/test/sap/ui/core/qunit/odata/v4/ODataParentBinding.qunit.js +43 -35
- package/test/sap/ui/core/qunit/odata/v4/data/metadata_special_cases.xml +20 -2
- package/test/sap/ui/core/qunit/odata/v4/lib/_AggregationCache.qunit.js +453 -125
- package/test/sap/ui/core/qunit/odata/v4/lib/_AggregationHelper.qunit.js +70 -33
- package/test/sap/ui/core/qunit/odata/v4/lib/_Cache.qunit.js +256 -8
- package/test/sap/ui/core/qunit/odata/v4/lib/_Requestor.qunit.js +10 -2
- package/test/sap/ui/core/qunit/opa/actions/EnterText.qunit.js +40 -1
- package/test/sap/ui/core/qunit/performance/trace/FESR.qunit.js +11 -2
- package/test/sap/ui/core/qunit/performance/trace/Interaction.qunit.js +4 -7
- package/test/sap/ui/core/qunit/routing/async/Router.qunit.js +102 -52
- package/test/sap/ui/core/qunit/routing/async/Target.qunit.js +1 -1
- package/test/sap/ui/core/qunit/routing/async/Targets.qunit.js +4 -5
- package/test/sap/ui/core/qunit/routing/async/TitleHistory.qunit.js +1 -1
- package/test/sap/ui/core/qunit/routing/fixture/router/component/parentRoute/Child/Component.js +1 -0
- package/test/sap/ui/core/qunit/routing/fixture/router/component/parentRoute/Child/manifest.json +1 -5
- package/test/sap/ui/core/qunit/routing/fixture/router/component/parentRoute/Parent/Component.js +1 -0
- package/test/sap/ui/core/qunit/routing/fixture/router/component/parentRoute/Parent/manifest.json +1 -5
- package/test/sap/ui/core/qunit/routing/fixture/router/component/parentRoute/ParentExtended/Component.js +15 -0
- package/test/sap/ui/core/qunit/routing/fixture/router/component/parentRoute/ParentExtended/manifest.json +8 -0
- package/test/sap/ui/core/qunit/routing/sync/Router.qunit.js +2 -2
- package/test/sap/ui/core/qunit/routing/sync/Targets.qunit.js +2 -3
- package/test/sap/ui/core/qunit/testdata/fragments/XMLTestFragmentWithXMLView.fragment.xml +5 -0
- package/test/sap/ui/core/qunit/testsuites/testsuite.base.configuration.qunit.js +1 -1
- package/test/sap/ui/core/qunit/testsuites/testsuite.control.framework.qunit.js +4 -0
- package/test/sap/ui/core/qunit/types/DateFormat.qunit.js +190 -0
- package/test/sap/ui/core/qunit/types/DateInterval.qunit.js +2 -2
- package/test/sap/ui/core/qunit/ui5classes/ManagedObjectRegistry.qunit.js +161 -0
- package/test/sap/ui/core/qunit/ui5classes/ManagedObjectRegistry_legacyAPIs.qunit.js +150 -0
- package/test/sap/ui/core/qunit/ui5classes/testsuite.ui5classes.qunit.js +84 -0
- package/test/sap/ui/core/qunit/util/ViewSerializer.qunit.js +4 -3
- package/test/sap/ui/core/relnotes/changes-1.120.json +307 -0
package/test/sap/ui/core/demokit/sample/odata/v4/MultipleInlineCreationRowsGrid/Opa.qunit.js
CHANGED
|
@@ -76,8 +76,19 @@ sap.ui.require([
|
|
|
76
76
|
message : "ID must not be empty",
|
|
77
77
|
type : MessageType.Warning
|
|
78
78
|
}]);
|
|
79
|
+
// toggle filter for messages
|
|
80
|
+
Then.onAnyTable.checkMessageStrip("parts", "Warning");
|
|
81
|
+
When.onTheObjectPage.toggleMessageFilter();
|
|
82
|
+
Then.onTheObjectPage.checkPartsLength(2);
|
|
83
|
+
Then.onTheObjectPage.checkPartsTableTitle("Product: 10, 0 Parts");
|
|
84
|
+
Then.onTheObjectPage.checkPart(0, "", "Inactive");
|
|
85
|
+
Then.onTheObjectPage.checkPart(1, "", "Inactive");
|
|
86
|
+
Then.onTheObjectPage.checkPartIDValueState("Warning", 1);
|
|
87
|
+
When.onTheObjectPage.toggleMessageFilter();
|
|
79
88
|
// reset edited inactive row
|
|
80
89
|
When.onTheObjectPage.pressResetOrDeletePartButton(1);
|
|
90
|
+
Then.onTheObjectPage.checkPartsLength(5);
|
|
91
|
+
Then.onAnyTable.checkMessageStrip("parts");
|
|
81
92
|
Then.onTheObjectPage.checkPart(1, "", "Inactive", "");
|
|
82
93
|
When.onTheObjectPage.enterPartDescription(1, "Part 99");
|
|
83
94
|
Then.onTheMessagePopover.checkMessages([{
|
|
@@ -192,8 +203,20 @@ sap.ui.require([
|
|
|
192
203
|
message : "ID must not be empty",
|
|
193
204
|
type : MessageType.Warning
|
|
194
205
|
}]);
|
|
206
|
+
// toggle filter for messages
|
|
207
|
+
Then.onAnyTable.checkMessageStrip("parts", "Warning");
|
|
208
|
+
When.onTheObjectPage.toggleMessageFilter();
|
|
209
|
+
Then.onTheObjectPage.checkPartsLength(2);
|
|
210
|
+
Then.onTheObjectPage.checkPartsTableTitle("Product: 10, 0 Parts");
|
|
211
|
+
Then.onTheObjectPage.checkPart(0, "", "Inactive");
|
|
212
|
+
Then.onTheObjectPage.checkPart(1, "", "Inactive");
|
|
213
|
+
Then.onTheObjectPage.checkPartIDValueState("Warning", 0);
|
|
214
|
+
When.onTheObjectPage.toggleMessageFilter();
|
|
215
|
+
|
|
195
216
|
// reset edited inactive row
|
|
196
217
|
When.onTheObjectPage.pressResetOrDeletePartButton(3);
|
|
218
|
+
Then.onAnyTable.checkMessageStrip("parts");
|
|
219
|
+
Then.onTheObjectPage.checkPartsLength(5);
|
|
197
220
|
Then.onTheObjectPage.checkPart(3, "", "Inactive", "");
|
|
198
221
|
When.onTheObjectPage.enterPartDescription(3, "Part 99");
|
|
199
222
|
Then.onTheMessagePopover.checkMessages([{
|
package/test/sap/ui/core/demokit/sample/odata/v4/MultipleInlineCreationRowsGrid/pages/Main.js
CHANGED
|
@@ -5,12 +5,47 @@ sap.ui.define([
|
|
|
5
5
|
"sap/ui/core/sample/common/Helper",
|
|
6
6
|
"sap/ui/test/Opa5",
|
|
7
7
|
"sap/ui/test/actions/Press",
|
|
8
|
+
"sap/ui/test/matchers/Ancestor",
|
|
8
9
|
"sap/ui/test/matchers/Properties"
|
|
9
|
-
|
|
10
|
+
|
|
11
|
+
], function (Helper, Opa5, Press, Ancestor, Properties) {
|
|
10
12
|
"use strict";
|
|
11
13
|
var sViewName = "sap.ui.core.sample.odata.v4.MultipleInlineCreationRowsGrid.Main";
|
|
12
14
|
|
|
13
15
|
Opa5.createPageObjects({
|
|
16
|
+
onAnyTable : {
|
|
17
|
+
assertions : {
|
|
18
|
+
checkMessageStrip : function (sTableId, sExpectedMessageType) {
|
|
19
|
+
this.waitFor({
|
|
20
|
+
controlType : "sap.m.Table",
|
|
21
|
+
id : sTableId,
|
|
22
|
+
success : function (oTable) {
|
|
23
|
+
this.waitFor({
|
|
24
|
+
controlType : "sap.m.MessageStrip",
|
|
25
|
+
matchers : new Ancestor(oTable),
|
|
26
|
+
success : function (aControls) {
|
|
27
|
+
var oMessageStrip = aControls[0];
|
|
28
|
+
|
|
29
|
+
if (oMessageStrip.getVisible()) {
|
|
30
|
+
Opa5.assert.strictEqual(oMessageStrip.getType(),
|
|
31
|
+
sExpectedMessageType,
|
|
32
|
+
"Message strip in table " + sTableId
|
|
33
|
+
+ " shows correct message type: "
|
|
34
|
+
+ sExpectedMessageType);
|
|
35
|
+
} else {
|
|
36
|
+
Opa5.assert.strictEqual(sExpectedMessageType, undefined,
|
|
37
|
+
"Message strip in table " + sTableId + " is invisible");
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
viewName : sViewName,
|
|
41
|
+
visible : false
|
|
42
|
+
});
|
|
43
|
+
},
|
|
44
|
+
viewName : sViewName
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
},
|
|
14
49
|
onTheListReport : {
|
|
15
50
|
actions : {
|
|
16
51
|
enterProductId : function (iRow, sId, bPressSave) {
|
|
@@ -125,6 +160,24 @@ sap.ui.define([
|
|
|
125
160
|
enterPartDescription : function (iRow, sId) {
|
|
126
161
|
Helper.changeInputValue(this, sViewName, /description/, sId, iRow);
|
|
127
162
|
},
|
|
163
|
+
toggleMessageFilter : function () {
|
|
164
|
+
this.waitFor({
|
|
165
|
+
controlType : "sap.m.Table",
|
|
166
|
+
id : "parts",
|
|
167
|
+
success : function (oTable) {
|
|
168
|
+
this.waitFor({
|
|
169
|
+
actions : new Press(),
|
|
170
|
+
matchers : new Ancestor(oTable),
|
|
171
|
+
controlType : "sap.m.Link",
|
|
172
|
+
success : function (aLinks) {
|
|
173
|
+
Opa5.assert.ok(true, "Link pressed: " + aLinks[0].getText());
|
|
174
|
+
},
|
|
175
|
+
viewName : sViewName
|
|
176
|
+
});
|
|
177
|
+
},
|
|
178
|
+
viewName : sViewName
|
|
179
|
+
});
|
|
180
|
+
},
|
|
128
181
|
pressCancel : function () {
|
|
129
182
|
Helper.pressButton(this, sViewName, "cancel");
|
|
130
183
|
},
|
|
@@ -150,6 +203,10 @@ sap.ui.define([
|
|
|
150
203
|
}
|
|
151
204
|
},
|
|
152
205
|
assertions : {
|
|
206
|
+
checkPartIDValueState : function (sValueState, iRow) {
|
|
207
|
+
Helper.checkValueState(this, sViewName, /partId-__clone/, sValueState,
|
|
208
|
+
undefined, false, iRow || 0);
|
|
209
|
+
},
|
|
153
210
|
checkPartsLength : function (iExpectedLength) {
|
|
154
211
|
this.waitFor({
|
|
155
212
|
controlType : "sap.ui.table.Table",
|
package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/RecursiveHierarchy.controller.js
CHANGED
|
@@ -71,52 +71,79 @@ sap.ui.define([
|
|
|
71
71
|
|| oUriParameters.get("expandTo");
|
|
72
72
|
this._oAggregation = {
|
|
73
73
|
expandTo : sExpandTo === "*"
|
|
74
|
-
?
|
|
75
|
-
:
|
|
74
|
+
? 999
|
|
75
|
+
: parseFloat(sExpandTo || "3"), // Note: parseInt("1E16") === 1
|
|
76
76
|
hierarchyQualifier : "OrgChart"
|
|
77
77
|
};
|
|
78
|
+
const sTreeTable = oUriParameters.get("TreeTable");
|
|
78
79
|
const sVisibleRowCount = TestUtils.retrieveData( // controlled by OPA
|
|
79
80
|
"sap.ui.core.sample.odata.v4.RecursiveHierarchy.visibleRowCount")
|
|
80
81
|
|| oUriParameters.get("visibleRowCount");
|
|
81
82
|
|
|
82
83
|
const oTable = this.byId("table");
|
|
83
|
-
if (
|
|
84
|
-
oTable.
|
|
84
|
+
if (sTreeTable === "Y") {
|
|
85
|
+
oTable.unbindRows();
|
|
86
|
+
oTable.setVisible(false);
|
|
87
|
+
} else {
|
|
88
|
+
if (sVisibleRowCount) {
|
|
89
|
+
oTable.getRowMode().setRowCount(parseInt(sVisibleRowCount));
|
|
90
|
+
}
|
|
91
|
+
const oRowsBinding = oTable.getBinding("rows");
|
|
92
|
+
oRowsBinding.setAggregation(this._oAggregation);
|
|
93
|
+
oRowsBinding.resume();
|
|
94
|
+
oRowsBinding.attachCreateSent(() => {
|
|
95
|
+
oTable.setBusy(true);
|
|
96
|
+
});
|
|
97
|
+
oRowsBinding.attachCreateCompleted(() => {
|
|
98
|
+
oTable.setBusy(false);
|
|
99
|
+
});
|
|
85
100
|
}
|
|
86
|
-
const oRowsBinding = oTable.getBinding("rows");
|
|
87
|
-
oRowsBinding.setAggregation(this._oAggregation);
|
|
88
|
-
oRowsBinding.resume();
|
|
89
|
-
oRowsBinding.attachCreateSent(() => {
|
|
90
|
-
oTable.setBusy(true);
|
|
91
|
-
});
|
|
92
|
-
oRowsBinding.attachCreateCompleted(() => {
|
|
93
|
-
oTable.setBusy(false);
|
|
94
|
-
});
|
|
95
101
|
|
|
96
102
|
const oTreeTable = this.byId("treeTable");
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
103
|
+
if (sTreeTable === "N") {
|
|
104
|
+
oTreeTable.unbindRows();
|
|
105
|
+
oTreeTable.setVisible(false);
|
|
106
|
+
} else {
|
|
107
|
+
// enable V4 tree table flag
|
|
108
|
+
oTreeTable._oProxy._bEnableV4 = true;
|
|
109
|
+
if (sVisibleRowCount) {
|
|
110
|
+
oTreeTable.getRowMode().setRowCount(parseInt(sVisibleRowCount));
|
|
111
|
+
}
|
|
112
|
+
const oTreeRowsBinding = oTreeTable.getBinding("rows");
|
|
113
|
+
oTreeRowsBinding.setAggregation(this._oAggregation);
|
|
114
|
+
oTreeRowsBinding.resume();
|
|
115
|
+
oTreeRowsBinding.attachCreateSent(() => {
|
|
116
|
+
oTreeTable.setBusy(true);
|
|
117
|
+
});
|
|
118
|
+
oTreeRowsBinding.attachCreateCompleted(() => {
|
|
119
|
+
oTreeTable.setBusy(false);
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
this.initMessagePopover(sTreeTable === "N" ? "table" : "treeTable");
|
|
124
|
+
},
|
|
125
|
+
|
|
126
|
+
onMakeRoot : async function (oEvent) {
|
|
127
|
+
try {
|
|
128
|
+
this.getView().setBusy(true);
|
|
129
|
+
await oEvent.getSource().getBindingContext().move();
|
|
130
|
+
} catch (oError) {
|
|
131
|
+
MessageBox.alert(oError.message, {icon : MessageBox.Icon.ERROR, title : "Error"});
|
|
132
|
+
} finally {
|
|
133
|
+
this.getView().setBusy(false);
|
|
101
134
|
}
|
|
102
|
-
const oTreeRowsBinding = oTreeTable.getBinding("rows");
|
|
103
|
-
oTreeRowsBinding.setAggregation(this._oAggregation);
|
|
104
|
-
oTreeRowsBinding.resume();
|
|
105
|
-
oTreeRowsBinding.attachCreateSent(() => {
|
|
106
|
-
oTreeTable.setBusy(true);
|
|
107
|
-
});
|
|
108
|
-
oTreeRowsBinding.attachCreateCompleted(() => {
|
|
109
|
-
oTreeTable.setBusy(false);
|
|
110
|
-
});
|
|
111
135
|
},
|
|
112
136
|
|
|
113
137
|
onMove : function (oEvent) {
|
|
114
|
-
this.
|
|
138
|
+
this._bInTreeTable = false;
|
|
139
|
+
this._oNode = oEvent.getSource().getBindingContext();
|
|
115
140
|
const oSelectDialog = this.byId("moveDialog");
|
|
116
|
-
oSelectDialog.setBindingContext(this.
|
|
141
|
+
oSelectDialog.setBindingContext(this._oNode);
|
|
117
142
|
const oListBinding = oSelectDialog.getBinding("items");
|
|
118
143
|
if (oListBinding.isSuspended()) {
|
|
119
144
|
oListBinding.resume();
|
|
145
|
+
} else {
|
|
146
|
+
oListBinding.refresh();
|
|
120
147
|
}
|
|
121
148
|
oSelectDialog.open();
|
|
122
149
|
},
|
|
@@ -126,9 +153,22 @@ sap.ui.define([
|
|
|
126
153
|
this.getView().setBusy(true);
|
|
127
154
|
const sParentId = oEvent.getParameter("selectedItem").getBindingContext()
|
|
128
155
|
.getProperty("ID");
|
|
129
|
-
const oParent = this.
|
|
156
|
+
const oParent = this._oNode.getBinding().getAllCurrentContexts()
|
|
130
157
|
.find((oNode) => oNode.getProperty("ID") === sParentId);
|
|
131
|
-
|
|
158
|
+
if (!oParent) {
|
|
159
|
+
throw new Error(`Parent ${sParentId} not yet loaded`);
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
await this._oNode.move({parent : oParent});
|
|
163
|
+
|
|
164
|
+
const oTable = this.byId(this._bInTreeTable ? "treeTable" : "table");
|
|
165
|
+
const iParentIndex = oParent.getIndex();
|
|
166
|
+
if (iParentIndex < oTable.getFirstVisibleRow()
|
|
167
|
+
|| iParentIndex + 1
|
|
168
|
+
>= oTable.getFirstVisibleRow() + oTable.getRowMode().getRowCount()) {
|
|
169
|
+
// make sure parent & child are visible
|
|
170
|
+
oTable.setFirstVisibleRow(iParentIndex);
|
|
171
|
+
}
|
|
132
172
|
} catch (oError) {
|
|
133
173
|
MessageBox.alert(oError.message, {icon : MessageBox.Icon.ERROR, title : "Error"});
|
|
134
174
|
} finally {
|
|
@@ -136,6 +176,11 @@ sap.ui.define([
|
|
|
136
176
|
}
|
|
137
177
|
},
|
|
138
178
|
|
|
179
|
+
onMoveInTreeTable : function (oEvent) {
|
|
180
|
+
this.onMove(oEvent);
|
|
181
|
+
this._bInTreeTable = true;
|
|
182
|
+
},
|
|
183
|
+
|
|
139
184
|
onNameChanged : function (oEvent) {
|
|
140
185
|
const oContext = oEvent.getSource().getBindingContext();
|
|
141
186
|
if (oContext.hasPendingChanges()) {
|
package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/RecursiveHierarchy.view.xml
CHANGED
|
@@ -89,6 +89,12 @@
|
|
|
89
89
|
<m:Button id="delete" icon="sap-icon://delete" press=".onDelete" tooltip="Delete"/>
|
|
90
90
|
</template>
|
|
91
91
|
</Column>
|
|
92
|
+
<Column width="4em">
|
|
93
|
+
<template>
|
|
94
|
+
<m:Button enabled="{= %{@$ui5.node.level} > 1}" icon="sap-icon://back-to-top"
|
|
95
|
+
press=".onMakeRoot" tooltip="Make Root"/>
|
|
96
|
+
</template>
|
|
97
|
+
</Column>
|
|
92
98
|
</Table>
|
|
93
99
|
|
|
94
100
|
<TreeTable id="treeTable" ariaLabelledBy="treeTitle"
|
|
@@ -153,7 +159,7 @@
|
|
|
153
159
|
</Column>
|
|
154
160
|
<Column width="4em">
|
|
155
161
|
<template>
|
|
156
|
-
<m:Button icon="sap-icon://move" id="moveInTreeTable" press=".
|
|
162
|
+
<m:Button icon="sap-icon://move" id="moveInTreeTable" press=".onMoveInTreeTable"
|
|
157
163
|
tooltip="Move"/>
|
|
158
164
|
</template>
|
|
159
165
|
</Column>
|
|
@@ -163,6 +169,12 @@
|
|
|
163
169
|
tooltip="Delete"/>
|
|
164
170
|
</template>
|
|
165
171
|
</Column>
|
|
172
|
+
<Column width="4em">
|
|
173
|
+
<template>
|
|
174
|
+
<m:Button enabled="{= %{@$ui5.node.level} > 1}" icon="sap-icon://back-to-top"
|
|
175
|
+
press=".onMakeRoot" tooltip="Make Root"/>
|
|
176
|
+
</template>
|
|
177
|
+
</Column>
|
|
166
178
|
</TreeTable>
|
|
167
179
|
|
|
168
180
|
<mvc:dependents>
|
|
@@ -172,4 +184,10 @@
|
|
|
172
184
|
<m:StandardListItem title="{ID} ({Name})" type="Active" />
|
|
173
185
|
</m:SelectDialog>
|
|
174
186
|
</mvc:dependents>
|
|
187
|
+
|
|
188
|
+
<m:FormattedText htmlText="<em>Available URL parameters:</em>
|
|
189
|
+
<ul>
|
|
190
|
+
<li> <code>expandTo</code> Either * for 'expand all' or a number; default 3
|
|
191
|
+
<li> <code>visibleRowCount</code> A number; default 5
|
|
192
|
+
<li> <code>TreeTable</code> 'Y' for yes, 'N' for no; default both tables"/>
|
|
175
193
|
</mvc:View>
|
|
@@ -278,7 +278,22 @@ sap.ui.define([
|
|
|
278
278
|
const iLevels = mQueryOptions.$apply.includes(",Levels=")
|
|
279
279
|
? parseInt(mQueryOptions.$apply.match(/,Levels=(\d+)/)[1])
|
|
280
280
|
: Infinity;
|
|
281
|
-
|
|
281
|
+
let aRows = topLevels(iLevels - 1); // Note: already cloned
|
|
282
|
+
if ("$filter" in mQueryOptions) {
|
|
283
|
+
// ID%20eq%20'1'
|
|
284
|
+
const aIDs = mQueryOptions.$filter.split("%20or%20")
|
|
285
|
+
.map((sID_Predicate) => sID_Predicate.split("%20eq%20")[1].slice(1, -1));
|
|
286
|
+
if (aIDs.length !== 1) {
|
|
287
|
+
throw new Error("Unexpected ID filter length");
|
|
288
|
+
}
|
|
289
|
+
aRows = aRows.filter((oNode, i) => {
|
|
290
|
+
if (oNode.ID === aIDs[0]) {
|
|
291
|
+
oNode.LimitedRank = "" + i; // Edm.Int64
|
|
292
|
+
return true;
|
|
293
|
+
}
|
|
294
|
+
});
|
|
295
|
+
}
|
|
296
|
+
selectCountSkipTop(aRows, mQueryOptions, oResponse);
|
|
282
297
|
return;
|
|
283
298
|
}
|
|
284
299
|
// "EMPLOYEES?$apply=descendants($root/EMPLOYEES,OrgChart,ID"
|
|
@@ -377,10 +392,12 @@ sap.ui.define([
|
|
|
377
392
|
}
|
|
378
393
|
|
|
379
394
|
const sParentId = oBody["EMPLOYEE_2_MANAGER@odata.bind"]
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
395
|
+
?.slice("EMPLOYEES('".length, -"')".length);
|
|
396
|
+
if (sParentId) {
|
|
397
|
+
for (let sId = sParentId; sId; sId = mNodeById[sId].MANAGER_ID) {
|
|
398
|
+
if (sId === oChild.ID) { // cycle detected
|
|
399
|
+
throw new Error("Parent must not be a descendant of moved node");
|
|
400
|
+
}
|
|
384
401
|
}
|
|
385
402
|
}
|
|
386
403
|
|
|
@@ -394,18 +411,27 @@ sap.ui.define([
|
|
|
394
411
|
adjustDescendantCount(oChild.MANAGER_ID, -(oChild.DescendantCount + 1));
|
|
395
412
|
} // else: cannot really happen w/ a single root and no cycles!
|
|
396
413
|
|
|
397
|
-
if (
|
|
398
|
-
|
|
414
|
+
if (sParentId) {
|
|
415
|
+
if (!(sParentId in mChildrenByParentId)) {
|
|
416
|
+
// new parent not a leaf anymore
|
|
417
|
+
mNodeById[sParentId].DrillState = "collapsed"; // @see #reset
|
|
418
|
+
}
|
|
419
|
+
//TODO Note: "AGE determines sibling order (ascending)"
|
|
420
|
+
(mChildrenByParentId[sParentId] ??= []).push(oChild);
|
|
421
|
+
adjustDescendantCount(sParentId, oChild.DescendantCount + 1);
|
|
399
422
|
}
|
|
400
|
-
//TODO Note: "AGE determines sibling order (ascending)"
|
|
401
|
-
(mChildrenByParentId[sParentId] ??= []).push(oChild);
|
|
402
423
|
oChild.MANAGER_ID = sParentId;
|
|
403
|
-
|
|
424
|
+
const iParentDistanceFromRoot = sParentId
|
|
425
|
+
? mNodeById[sParentId].DistanceFromRoot
|
|
426
|
+
: 0;
|
|
404
427
|
adjustDistanceFromRoot(oChild,
|
|
405
|
-
|
|
428
|
+
iParentDistanceFromRoot + 1 - oChild.DistanceFromRoot);
|
|
406
429
|
const aSpliced
|
|
407
430
|
= aAllNodes.splice(aAllNodes.indexOf(oChild), oChild.DescendantCount + 1);
|
|
408
|
-
|
|
431
|
+
const iNewIndex = sParentId
|
|
432
|
+
? aAllNodes.indexOf(mNodeById[sParentId]) + 1
|
|
433
|
+
: 0;
|
|
434
|
+
aAllNodes.splice(iNewIndex, 0, ...aSpliced);
|
|
409
435
|
break;
|
|
410
436
|
}
|
|
411
437
|
|
|
@@ -428,11 +454,36 @@ sap.ui.define([
|
|
|
428
454
|
* @param {object} oRequest - Request object to get POST body from
|
|
429
455
|
*/
|
|
430
456
|
function buildPostResponse(_aMatches, oResponse, oRequest) {
|
|
457
|
+
function parseLastSegment(sId) {
|
|
458
|
+
if (sId.includes(".")) {
|
|
459
|
+
sId = sId.slice(sId.lastIndexOf(".") + 1);
|
|
460
|
+
}
|
|
461
|
+
|
|
462
|
+
return parseInt(sId);
|
|
463
|
+
}
|
|
464
|
+
|
|
465
|
+
// compares two hierarchical IDs according to the last(!) segment (numerically, ascending)
|
|
466
|
+
function compareByID(oNodeA, oNodeB) {
|
|
467
|
+
return parseLastSegment(oNodeA.ID) - parseLastSegment(oNodeB.ID);
|
|
468
|
+
}
|
|
469
|
+
|
|
470
|
+
function isChildID(sChildID, sParentId) {
|
|
471
|
+
return sChildID !== sParentId
|
|
472
|
+
&& (sParentId === "0"
|
|
473
|
+
? !sChildID.includes(".")
|
|
474
|
+
: sChildID.startsWith(sParentId)
|
|
475
|
+
&& !sChildID.slice(sParentId.length + 1).includes("."));
|
|
476
|
+
}
|
|
477
|
+
|
|
431
478
|
// {"EMPLOYEE_2_MANAGER@odata.bind" : "EMPLOYEES('0')"}
|
|
432
479
|
const oBody = JSON.parse(oRequest.requestBody);
|
|
433
480
|
const sParentId = oBody["EMPLOYEE_2_MANAGER@odata.bind"]
|
|
434
481
|
?.slice("EMPLOYEES('".length, -"')".length);
|
|
435
482
|
const oParent = mNodeById[sParentId];
|
|
483
|
+
if (sParentId && !oParent) {
|
|
484
|
+
throw new Error("Invalid parent ID: " + sParentId);
|
|
485
|
+
}
|
|
486
|
+
|
|
436
487
|
const oNewChild = { // same order of keys than for "old" nodes ;-)
|
|
437
488
|
AGE : 0, // see below
|
|
438
489
|
ID : "", // see below
|
|
@@ -443,23 +494,28 @@ sap.ui.define([
|
|
|
443
494
|
DescendantCount : 0
|
|
444
495
|
};
|
|
445
496
|
|
|
446
|
-
if (sParentId
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
//
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
oNewChild.
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
497
|
+
if (sParentId) {
|
|
498
|
+
if (sParentId in mChildrenByParentId) {
|
|
499
|
+
// Note: "AGE determines sibling order (ascending)"
|
|
500
|
+
oNewChild.AGE = mChildrenByParentId[sParentId][0].AGE - 1;
|
|
501
|
+
} else { // parent not a leaf anymore
|
|
502
|
+
oParent.DrillState = "collapsed"; // @see #reset
|
|
503
|
+
mChildrenByParentId[sParentId] = [];
|
|
504
|
+
oNewChild.AGE = oParent.AGE - 1;
|
|
505
|
+
}
|
|
506
|
+
|
|
507
|
+
// use "largest" child ID which is hierarchical to parent
|
|
508
|
+
const sLastChildID = aAllNodes
|
|
509
|
+
.filter((oChild) => isChildID(oChild.ID, sParentId))
|
|
510
|
+
.sort(compareByID)
|
|
511
|
+
.at(-1)?.ID;
|
|
512
|
+
if (sLastChildID === undefined) {
|
|
513
|
+
oNewChild.ID = sParentId + ".1";
|
|
514
|
+
} else if (sParentId === "0") {
|
|
515
|
+
oNewChild.ID = "" + (parseLastSegment(sLastChildID) + 1);
|
|
516
|
+
} else {
|
|
517
|
+
oNewChild.ID = sParentId + "." + (parseLastSegment(sLastChildID) + 1);
|
|
457
518
|
}
|
|
458
|
-
} else if (sParentId) { // parent not a leaf anymore
|
|
459
|
-
oParent.DrillState = "collapsed"; // @see #reset
|
|
460
|
-
mChildrenByParentId[sParentId] = [];
|
|
461
|
-
oNewChild.AGE = oParent.AGE - 1;
|
|
462
|
-
oNewChild.ID = sParentId + ".1";
|
|
463
519
|
} else { // new root
|
|
464
520
|
const iRootCount = aAllNodes.filter((oNode) => oNode.MANAGER_ID === null).length;
|
|
465
521
|
oNewChild.AGE = 60 + iRootCount;
|
|
@@ -399,11 +399,11 @@
|
|
|
399
399
|
<Annotation Qualifier="OrgChart" Term="com.sap.vocabularies.Hierarchy.v1.RecursiveHierarchy">
|
|
400
400
|
<Record>
|
|
401
401
|
<!--Edm.Int64-->
|
|
402
|
-
<PropertyValue Property="
|
|
402
|
+
<PropertyValue Property="DistanceFromRoot" Path="DistanceFromRoot"/>
|
|
403
403
|
<!--Edm.String: collapsed,expanded,leaf-->
|
|
404
|
-
<PropertyValue Property="
|
|
404
|
+
<PropertyValue Property="DrillState" Path="DrillState"/>
|
|
405
405
|
<!--Edm.Int64-->
|
|
406
|
-
<PropertyValue Property="
|
|
406
|
+
<PropertyValue Property="LimitedDescendantCount" Path="DescendantCount"/>
|
|
407
407
|
</Record>
|
|
408
408
|
</Annotation>
|
|
409
409
|
</Annotations>
|
|
@@ -1,26 +1,10 @@
|
|
|
1
|
-
sap.ui.define([
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
sample: {
|
|
10
|
-
iframe: "webapp/index.html",
|
|
11
|
-
stretch: true,
|
|
12
|
-
files: [
|
|
13
|
-
"webapp/index.html",
|
|
14
|
-
"webapp/index.js",
|
|
15
|
-
"ui5.yaml",
|
|
16
|
-
"package.json"
|
|
17
|
-
]
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
});
|
|
23
|
-
|
|
24
|
-
return Component;
|
|
25
|
-
|
|
1
|
+
sap.ui.define([
|
|
2
|
+
"sap/ui/core/UIComponent"
|
|
3
|
+
], (UIComponent) => {
|
|
4
|
+
"use strict";
|
|
5
|
+
return UIComponent.extend("sap.ui.core.tutorial.databinding.01.Component", {
|
|
6
|
+
metadata: {
|
|
7
|
+
manifest: "json"
|
|
8
|
+
}
|
|
26
9
|
});
|
|
10
|
+
});
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"sap.app": {
|
|
3
|
+
"id": "sap.ui.core.tutorial.databinding.01"
|
|
4
|
+
},
|
|
5
|
+
"sap.ui5": {
|
|
6
|
+
"config": {
|
|
7
|
+
"sample": {
|
|
8
|
+
"iframe": "webapp/index.html",
|
|
9
|
+
"stretch": true,
|
|
10
|
+
"files": [
|
|
11
|
+
"webapp/index.html",
|
|
12
|
+
"webapp/index.js",
|
|
13
|
+
"webapp/manifest.json",
|
|
14
|
+
"ui5.yaml",
|
|
15
|
+
"package.json"
|
|
16
|
+
]
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
@@ -1,26 +1,10 @@
|
|
|
1
|
-
sap.ui.define([
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
sample: {
|
|
10
|
-
iframe: "webapp/index.html",
|
|
11
|
-
stretch: true,
|
|
12
|
-
files: [
|
|
13
|
-
"webapp/index.html",
|
|
14
|
-
"webapp/index.js",
|
|
15
|
-
"ui5.yaml",
|
|
16
|
-
"package.json"
|
|
17
|
-
]
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
});
|
|
23
|
-
|
|
24
|
-
return Component;
|
|
25
|
-
|
|
1
|
+
sap.ui.define([
|
|
2
|
+
"sap/ui/core/UIComponent"
|
|
3
|
+
], (UIComponent) => {
|
|
4
|
+
"use strict";
|
|
5
|
+
return UIComponent.extend("sap.ui.core.tutorial.databinding.02.Component", {
|
|
6
|
+
metadata: {
|
|
7
|
+
manifest: "json"
|
|
8
|
+
}
|
|
26
9
|
});
|
|
10
|
+
});
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"sap.app": {
|
|
3
|
+
"id": "sap.ui.core.tutorial.databinding.02"
|
|
4
|
+
},
|
|
5
|
+
"sap.ui5": {
|
|
6
|
+
"config": {
|
|
7
|
+
"sample": {
|
|
8
|
+
"iframe": "webapp/index.html",
|
|
9
|
+
"stretch": true,
|
|
10
|
+
"files": [
|
|
11
|
+
"webapp/index.html",
|
|
12
|
+
"webapp/index.js",
|
|
13
|
+
"webapp/manifest.json",
|
|
14
|
+
"ui5.yaml",
|
|
15
|
+
"package.json"
|
|
16
|
+
]
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
@@ -1,26 +1,10 @@
|
|
|
1
|
-
sap.ui.define([
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
sample: {
|
|
10
|
-
iframe: "webapp/index.html",
|
|
11
|
-
stretch: true,
|
|
12
|
-
files: [
|
|
13
|
-
"webapp/index.html",
|
|
14
|
-
"webapp/index.js",
|
|
15
|
-
"ui5.yaml",
|
|
16
|
-
"package.json"
|
|
17
|
-
]
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
});
|
|
23
|
-
|
|
24
|
-
return Component;
|
|
25
|
-
|
|
1
|
+
sap.ui.define([
|
|
2
|
+
"sap/ui/core/UIComponent"
|
|
3
|
+
], (UIComponent) => {
|
|
4
|
+
"use strict";
|
|
5
|
+
return UIComponent.extend("sap.ui.core.tutorial.databinding.03.Component", {
|
|
6
|
+
metadata: {
|
|
7
|
+
manifest: "json"
|
|
8
|
+
}
|
|
26
9
|
});
|
|
10
|
+
});
|