@openui5/sap.ui.core 1.125.0 → 1.126.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/.dtsgenrc +76 -0
- package/.eslintrc.json +4 -1
- package/.reuse/dep5 +4 -4
- package/THIRDPARTY.txt +6 -6
- package/package.json +1 -1
- package/src/jquery.sap.global.js +1 -1
- package/src/jquery.sap.properties.js +1 -1
- package/src/jquery.sap.resources.js +1 -1
- package/src/jquery.sap.script.js +1 -1
- package/src/jquery.sap.storage.js +3 -3
- package/src/sap/base/Event.js +1 -1
- package/src/sap/base/Eventing.js +1 -1
- package/src/sap/base/Log.js +0 -16
- package/src/sap/base/config.js +1 -1
- package/src/sap/base/i18n/LanguageTag.js +1 -1
- package/src/sap/base/i18n/date/TimezoneUtils.js +1 -1
- package/src/sap/base/util/ObjectPath.js +6 -6
- package/src/sap/base/util/restricted/_CancelablePromise.js +1 -1
- package/src/sap/base/util/restricted/_castArray.js +1 -1
- package/src/sap/base/util/restricted/_compact.js +1 -1
- package/src/sap/base/util/restricted/_curry.js +1 -1
- package/src/sap/base/util/restricted/_debounce.js +1 -1
- package/src/sap/base/util/restricted/_difference.js +1 -1
- package/src/sap/base/util/restricted/_differenceBy.js +1 -1
- package/src/sap/base/util/restricted/_differenceWith.js +1 -1
- package/src/sap/base/util/restricted/_flatMap.js +1 -1
- package/src/sap/base/util/restricted/_flatMapDeep.js +1 -1
- package/src/sap/base/util/restricted/_flatMapDepth.js +1 -1
- package/src/sap/base/util/restricted/_flatten.js +1 -1
- package/src/sap/base/util/restricted/_flattenDeep.js +1 -1
- package/src/sap/base/util/restricted/_flattenDepth.js +1 -1
- package/src/sap/base/util/restricted/_intersection.js +1 -1
- package/src/sap/base/util/restricted/_intersectionBy.js +1 -1
- package/src/sap/base/util/restricted/_intersectionWith.js +1 -1
- package/src/sap/base/util/restricted/_isEqual.js +1 -1
- package/src/sap/base/util/restricted/_isEqualWith.js +1 -1
- package/src/sap/base/util/restricted/_isNil.js +1 -1
- package/src/sap/base/util/restricted/_max.js +1 -1
- package/src/sap/base/util/restricted/_merge.js +1 -1
- package/src/sap/base/util/restricted/_mergeWith.js +1 -1
- package/src/sap/base/util/restricted/_min.js +1 -1
- package/src/sap/base/util/restricted/_omit.js +1 -1
- package/src/sap/base/util/restricted/_pick.js +1 -1
- package/src/sap/base/util/restricted/_pickBy.js +1 -1
- package/src/sap/base/util/restricted/_throttle.js +1 -1
- package/src/sap/base/util/restricted/_toArray.js +1 -1
- package/src/sap/base/util/restricted/_union.js +1 -1
- package/src/sap/base/util/restricted/_unionBy.js +1 -1
- package/src/sap/base/util/restricted/_unionWith.js +1 -1
- package/src/sap/base/util/restricted/_uniq.js +1 -1
- package/src/sap/base/util/restricted/_uniqBy.js +1 -1
- package/src/sap/base/util/restricted/_uniqWith.js +1 -1
- package/src/sap/base/util/restricted/_without.js +1 -1
- package/src/sap/base/util/restricted/_xor.js +1 -1
- package/src/sap/base/util/restricted/_xorBy.js +1 -1
- package/src/sap/base/util/restricted/_xorWith.js +1 -1
- package/src/sap/base/util/restricted/_zipObject.js +1 -1
- package/src/sap/base/util/restricted/_zipObjectDeep.js +1 -1
- package/src/sap/ui/Device.js +35 -10
- package/src/sap/ui/Global.js +6 -6
- package/src/sap/ui/base/Event.js +1 -1
- package/src/sap/ui/base/EventProvider.js +1 -1
- package/src/sap/ui/base/Interface.js +1 -1
- package/src/sap/ui/base/ManagedObject.js +16 -1
- package/src/sap/ui/base/ManagedObjectMetadata.js +1 -1
- package/src/sap/ui/base/Metadata.js +1 -1
- package/src/sap/ui/base/Object.js +1 -1
- package/src/sap/ui/base/ObjectPool.js +1 -1
- package/src/sap/ui/core/.library +1 -8
- package/src/sap/ui/core/BusyIndicator.js +1 -1
- package/src/sap/ui/core/Component.js +17 -3
- package/src/sap/ui/core/ComponentContainer.js +1 -1
- package/src/sap/ui/core/ComponentMetadata.js +1 -1
- package/src/sap/ui/core/ComponentSupport.js +1 -1
- package/src/sap/ui/core/Configuration.js +1 -1
- package/src/sap/ui/core/Control.js +1 -1
- package/src/sap/ui/core/Core.js +14 -5
- package/src/sap/ui/core/CustomData.js +1 -1
- package/src/sap/ui/core/DeclarativeSupport.js +1 -1
- package/src/sap/ui/core/Element.js +1 -1
- package/src/sap/ui/core/ElementMetadata.js +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/Lib.js +2 -2
- package/src/sap/ui/core/ListItem.js +1 -1
- package/src/sap/ui/core/LocalBusyIndicator.js +1 -1
- package/src/sap/ui/core/Locale.js +1 -1
- package/src/sap/ui/core/LocaleData.js +148 -102
- package/src/sap/ui/core/Manifest.js +1 -1
- package/src/sap/ui/core/Message.js +1 -1
- package/src/sap/ui/core/RenderManager.js +1 -1
- package/src/sap/ui/core/Renderer.js +1 -1
- package/src/sap/ui/core/ResizeHandler.js +1 -1
- package/src/sap/ui/core/ScrollBar.js +1 -1
- package/src/sap/ui/core/SeparatorItem.js +1 -1
- package/src/sap/ui/core/Title.js +1 -1
- package/src/sap/ui/core/TooltipBase.js +1 -1
- package/src/sap/ui/core/UIArea.js +2 -2
- package/src/sap/ui/core/UIComponent.js +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/boot.js +1 -6
- package/src/sap/ui/core/date/UI5Date.js +1 -1
- package/src/sap/ui/core/delegate/ItemNavigation.js +1 -1
- package/src/sap/ui/core/delegate/ScrollEnablement.js +2 -2
- package/src/sap/ui/core/dnd/DragAndDrop.js +151 -10
- package/src/sap/ui/core/dnd/DragDropBase.js +13 -2
- package/src/sap/ui/core/dnd/DragDropInfo.js +1 -1
- package/src/sap/ui/core/dnd/DragInfo.js +1 -1
- package/src/sap/ui/core/dnd/DropInfo.js +1 -1
- package/src/sap/ui/{model → core/fieldhelp}/FieldHelp.js +92 -65
- package/src/sap/ui/core/fieldhelp/FieldHelpUtil.js +62 -0
- package/src/sap/ui/core/format/FormatUtils.js +1 -1
- package/src/sap/ui/core/format/TimezoneUtil.js +1 -1
- package/src/sap/ui/core/getCompatibilityVersion.js +1 -1
- package/src/sap/ui/core/hyphenation/Hyphenation.js +2 -1
- package/src/sap/ui/core/library.js +49 -9
- package/src/sap/ui/core/message/ControlMessageProcessor.js +1 -1
- package/src/sap/ui/core/message/Message.js +1 -1
- package/src/sap/ui/core/message/MessageManager.js +1 -1
- package/src/sap/ui/core/message/MessageParser.js +1 -1
- package/src/sap/ui/core/message/MessageProcessor.js +1 -1
- package/src/sap/ui/core/mvc/ControllerExtension.js +16 -0
- 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/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/support/trace/E2eTraceLib.js +1 -1
- package/src/sap/ui/core/themes/sap_hcb/base_BlindLayer.less +37 -0
- package/src/sap/ui/core/themes/sap_hcb/base_BrowserScrollbar.less +36 -0
- package/src/sap/ui/core/themes/sap_hcb/base_BusyIndicator.less +19 -0
- package/src/sap/ui/core/themes/sap_hcb/base_CommandShortcutHints.less +20 -0
- package/src/sap/ui/core/themes/sap_hcb/base_DragAndDrop.less +76 -0
- package/src/sap/ui/core/themes/sap_hcb/base_Icon.less +144 -0
- package/src/sap/ui/core/themes/sap_hcb/base_LocalBusyIndicator.less +292 -0
- package/src/sap/ui/core/themes/sap_hcb/base_SAP-icons.less +10 -0
- package/src/sap/ui/core/themes/sap_hcb/base_ScrollBar.less +20 -0
- package/src/sap/ui/core/themes/sap_hcb/base_Shadow.less +3 -0
- package/src/sap/ui/core/themes/sap_hcb/base_TechnicalInfo.less +157 -0
- package/src/sap/ui/core/themes/sap_hcb/base_View.less +12 -0
- package/src/sap/ui/core/themes/sap_hcb/base_media.less +36 -0
- package/src/sap/ui/core/themes/sap_hcb/base_parameterClasses.less +83 -0
- package/src/sap/ui/core/themes/sap_hcb/base_shared.less +340 -0
- package/src/sap/ui/core/themes/sap_hcb/library.source.less +27 -1
- package/src/sap/ui/core/theming/Parameters.js +68 -8
- 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 +2 -2
- package/src/sap/ui/core/util/MockServer.js +1 -2
- package/src/sap/ui/core/util/PasteHelper.js +1 -1
- package/src/sap/ui/core/util/XMLPreprocessor.js +14 -15
- package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +1 -1
- package/src/sap/ui/core/util/serializer/Serializer.js +1 -1
- package/src/sap/ui/core/util/serializer/ViewSerializer.js +1 -1
- package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +1 -1
- package/src/sap/ui/core/util/serializer/delegate/Delegate.js +1 -1
- package/src/sap/ui/core/util/serializer/delegate/HTML.js +1 -1
- package/src/sap/ui/core/util/serializer/delegate/XML.js +1 -1
- package/src/sap/ui/core/webc/WebComponent.js +1 -1
- package/src/sap/ui/core/webc/WebComponentMetadata.js +1 -1
- package/src/sap/ui/core/ws/ReadyState.js +1 -1
- package/src/sap/ui/core/ws/SapPcpWebSocket.js +1 -1
- package/src/sap/ui/core/ws/WebSocket.js +1 -1
- package/src/sap/ui/debug/ControlTree.js +1 -1
- package/src/sap/ui/debug/DebugEnv.js +1 -1
- package/src/sap/ui/debug/PropertyList.js +1 -1
- package/src/sap/ui/model/Binding.js +28 -0
- package/src/sap/ui/model/ClientModel.js +1 -1
- package/src/sap/ui/model/CompositeDataState.js +1 -1
- package/src/sap/ui/model/CompositeType.js +1 -1
- package/src/sap/ui/model/DataState.js +1 -1
- package/src/sap/ui/model/ManagedObjectBindingSupport.js +5 -0
- package/src/sap/ui/model/MetaModel.js +1 -1
- package/src/sap/ui/model/Model.js +1 -1
- package/src/sap/ui/model/SelectionModel.js +1 -1
- package/src/sap/ui/model/SimpleType.js +1 -1
- package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
- package/src/sap/ui/model/Type.js +1 -1
- package/src/sap/ui/model/base/ManagedObjectModel.js +12 -2
- package/src/sap/ui/model/json/JSONModel.js +16 -11
- package/src/sap/ui/model/message/MessageModel.js +1 -1
- package/src/sap/ui/model/odata/ODataAnnotations.js +1 -1
- package/src/sap/ui/model/odata/ODataMessageParser.js +1 -1
- package/src/sap/ui/model/odata/ODataMetaModel.js +1 -1
- package/src/sap/ui/model/odata/ODataMetadata.js +1 -1
- package/src/sap/ui/model/odata/ODataModel.js +1 -1
- package/src/sap/ui/model/odata/ODataTreeBindingFlat.js +7 -2
- package/src/sap/ui/model/odata/ODataUtils.js +22 -14
- package/src/sap/ui/model/odata/type/Boolean.js +1 -1
- package/src/sap/ui/model/odata/type/Byte.js +1 -1
- package/src/sap/ui/model/odata/type/Currency.js +1 -1
- package/src/sap/ui/model/odata/type/Date.js +1 -1
- package/src/sap/ui/model/odata/type/DateTime.js +1 -1
- package/src/sap/ui/model/odata/type/DateTimeBase.js +1 -1
- package/src/sap/ui/model/odata/type/DateTimeOffset.js +1 -1
- package/src/sap/ui/model/odata/type/DateTimeWithTimezone.js +1 -1
- package/src/sap/ui/model/odata/type/Decimal.js +1 -1
- package/src/sap/ui/model/odata/type/Double.js +1 -1
- package/src/sap/ui/model/odata/type/Guid.js +1 -1
- package/src/sap/ui/model/odata/type/Int.js +1 -1
- package/src/sap/ui/model/odata/type/Int16.js +1 -1
- package/src/sap/ui/model/odata/type/Int32.js +1 -1
- package/src/sap/ui/model/odata/type/Int64.js +1 -1
- package/src/sap/ui/model/odata/type/ODataType.js +1 -1
- package/src/sap/ui/model/odata/type/Raw.js +1 -1
- package/src/sap/ui/model/odata/type/SByte.js +1 -1
- package/src/sap/ui/model/odata/type/Single.js +1 -1
- package/src/sap/ui/model/odata/type/Stream.js +1 -1
- package/src/sap/ui/model/odata/type/String.js +1 -1
- package/src/sap/ui/model/odata/type/Time.js +1 -1
- package/src/sap/ui/model/odata/type/TimeOfDay.js +1 -1
- package/src/sap/ui/model/odata/type/Unit.js +1 -1
- package/src/sap/ui/model/odata/v2/Context.js +1 -1
- package/src/sap/ui/model/odata/v2/ODataAnnotations.js +1 -1
- package/src/sap/ui/model/odata/v2/ODataModel.js +1 -1
- package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +1 -1
- package/src/sap/ui/model/odata/v4/Context.js +92 -43
- package/src/sap/ui/model/odata/v4/ODataBinding.js +20 -20
- package/src/sap/ui/model/odata/v4/ODataContextBinding.js +6 -7
- package/src/sap/ui/model/odata/v4/ODataListBinding.js +176 -87
- package/src/sap/ui/model/odata/v4/ODataMetaModel.js +9 -9
- package/src/sap/ui/model/odata/v4/ODataModel.js +36 -9
- package/src/sap/ui/model/odata/v4/ODataParentBinding.js +3 -3
- package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +12 -11
- package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +176 -75
- package/src/sap/ui/model/odata/v4/lib/_AggregationHelper.js +48 -9
- package/src/sap/ui/model/odata/v4/lib/_Cache.js +15 -17
- package/src/sap/ui/model/odata/v4/lib/_Helper.js +49 -14
- package/src/sap/ui/model/odata/v4/lib/_Parser.js +3 -3
- package/src/sap/ui/model/odata/v4/lib/_Requestor.js +20 -12
- package/src/sap/ui/model/odata/v4/lib/_V2MetadataConverter.js +2 -2
- package/src/sap/ui/model/odata/v4/lib/_V2Requestor.js +3 -3
- package/src/sap/ui/model/resource/ResourceModel.js +1 -1
- package/src/sap/ui/model/type/Boolean.js +1 -1
- package/src/sap/ui/model/type/Currency.js +1 -1
- package/src/sap/ui/model/type/Date.js +1 -1
- package/src/sap/ui/model/type/DateInterval.js +1 -1
- package/src/sap/ui/model/type/DateTime.js +1 -1
- package/src/sap/ui/model/type/DateTimeInterval.js +1 -1
- package/src/sap/ui/model/type/FileSize.js +1 -1
- package/src/sap/ui/model/type/Float.js +1 -1
- package/src/sap/ui/model/type/Integer.js +1 -1
- package/src/sap/ui/model/type/String.js +1 -1
- package/src/sap/ui/model/type/Time.js +1 -1
- package/src/sap/ui/model/type/TimeInterval.js +1 -1
- package/src/sap/ui/model/type/Unit.js +1 -1
- package/src/sap/ui/model/xml/XMLModel.js +1 -1
- package/src/sap/ui/performance/trace/FESR.js +2 -2
- package/src/sap/ui/performance/trace/Interaction.js +1 -1
- package/src/sap/ui/performance/trace/Passport.js +1 -1
- package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
- package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +1 -1
- package/src/sap/ui/test/generic/TestBase.js +1 -1
- package/src/sap/ui/test/starter/_utils.js +18 -3
- package/src/sap/ui/util/Mobile.js +7 -4
- package/src/sap/ui/util/Storage.js +1 -1
- package/src/ui5loader-autoconfig.js +0 -25
- package/test/sap/ui/core/BindableResponseHeaders.html +1 -2
- package/test/sap/ui/core/ODataV2CanonicalRequests.html +8 -5
- package/test/sap/ui/core/ODataV2Messages.html +14 -11
- package/test/sap/ui/core/ODataV2MessagesPerf.html +34 -9
- package/test/sap/ui/core/demokit/sample/Messaging/ODataBackendMessagesComp/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/sample/OpaStartup/iStartMyAppInAFrame/iStartMyAppInAFrame.html +2 -1
- package/test/sap/ui/core/demokit/sample/OpaStartup/iStartMyAppInAFrame/iStartMyAppInAFrame.js +2 -12
- package/test/sap/ui/core/demokit/sample/common/Controller.js +2 -2
- package/test/sap/ui/core/demokit/sample/common/ValueHelp.js +2 -2
- package/test/sap/ui/core/demokit/sample/matcher/BindingPath/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/sample/matcher/Descendant/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/sample/matcher/I18NText/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/sample/matcher/LabelFor/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/GridTable/SandboxModel.js +6 -6
- package/test/sap/ui/core/demokit/sample/odata/v4/HierarchyBindAction/Main.controller.js +110 -21
- package/test/sap/ui/core/demokit/sample/odata/v4/HierarchyBindAction/Main.view.xml +35 -43
- package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/RecursiveHierarchy.controller.js +118 -26
- package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/RecursiveHierarchy.view.xml +99 -90
- package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/SandboxModel.js +87 -40
- package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/pages/Main.js +4 -3
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/Component.js +18 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/tests/CreateRelative.js +1 -8
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrdersRTATest/Main.controller.js +1 -2
- package/test/sap/ui/core/demokit/tutorial/databinding/01/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/02/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/03/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/04/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/05/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/06/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/07/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/08/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/09/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/10/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/11/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/12/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/13/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/14/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/15/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/mockserver/01/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/mockserver/02/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/mockserver/03/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/mockserver/04/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/01/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/02/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/03/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/04/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/05/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/06/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/07/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/08/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/09/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/10/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/11/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/12/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/13/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/14/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/15/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/16/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/17/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/01/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/01/webapp/localService/mockserver.js +4 -4
- package/test/sap/ui/core/demokit/tutorial/odatav4/02/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/02/webapp/localService/mockserver.js +4 -4
- package/test/sap/ui/core/demokit/tutorial/odatav4/03/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/03/webapp/localService/mockserver.js +4 -4
- package/test/sap/ui/core/demokit/tutorial/odatav4/04/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/04/webapp/localService/mockserver.js +4 -4
- package/test/sap/ui/core/demokit/tutorial/odatav4/05/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/05/webapp/localService/mockserver.js +4 -4
- package/test/sap/ui/core/demokit/tutorial/odatav4/06/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/06/webapp/localService/mockserver.js +4 -4
- package/test/sap/ui/core/demokit/tutorial/odatav4/07/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/07/webapp/localService/mockserver.js +4 -4
- package/test/sap/ui/core/demokit/tutorial/odatav4/08/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/08/webapp/localService/mockserver.js +4 -4
- package/test/sap/ui/core/demokit/tutorial/odatav4/09/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/09/webapp/localService/mockserver.js +4 -4
- package/test/sap/ui/core/demokit/tutorial/odatav4/10/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/10/webapp/localService/mockserver.js +4 -4
- package/test/sap/ui/core/demokit/tutorial/odatav4/11/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/11/webapp/localService/mockserver.js +4 -4
- package/test/sap/ui/core/demokit/tutorial/troubleshooting/01/ui5.yaml +1 -1
- package/test/sap/ui/core/internal/samples/odata/v2/TreeTable/Main.view.xml +3 -3
- package/test/sap/ui/core/qunit/CommandExecution.qunit.js +96 -92
- package/test/sap/ui/core/qunit/ManagedObjectModel.qunit.js +24 -0
- package/test/sap/ui/core/qunit/ThemeParameters.qunit.js +80 -0
- package/test/sap/ui/core/qunit/ThemeParameters_legacyAPIs.qunit.js +1 -0
- package/test/sap/ui/core/qunit/analytics/AnalyticalBinding.qunit.js +1 -1
- package/test/sap/ui/core/qunit/app/testsuite.app.qunit.js +2 -1
- package/test/sap/ui/core/qunit/base/Config.qunit.js +117 -114
- package/test/sap/ui/core/qunit/base/Config_bootstrap.qunit.html +3 -3
- package/test/sap/ui/core/qunit/base/Config_bootstrap.qunit.js +98 -95
- package/test/sap/ui/core/qunit/base/Config_cascade.qunit.js +20 -45
- package/test/sap/ui/core/qunit/base/Config_global.qunit.html +2 -2
- package/test/sap/ui/core/qunit/base/Config_meta.qunit.html +2 -2
- package/test/sap/ui/core/qunit/base/Config_noUrl.qunit.html +2 -2
- package/test/sap/ui/core/qunit/base/Config_noUrl.qunit.js +17 -16
- package/test/sap/ui/core/qunit/base/Config_url.qunit.html +2 -2
- package/test/sap/ui/core/qunit/bootstrap/BootstrapMainModule.beforeBootstrap.js +6 -0
- package/test/sap/ui/core/qunit/bootstrap/BootstrapMainModule.qunit.js +4 -4
- package/test/sap/ui/core/qunit/bootstrap/BootstrapMinimal.qunit.js +30 -10
- package/test/sap/ui/core/qunit/bootstrap/testsuite.bootstrap.qunit.js +5 -1
- package/test/sap/ui/core/qunit/dnd/DragAndDrop.qunit.js +159 -3
- package/test/sap/ui/core/qunit/{model → fieldhelp}/FieldHelp.qunit.js +306 -24
- package/test/sap/ui/core/qunit/fieldhelp/FieldHelpUtil.qunit.js +55 -0
- package/test/sap/ui/core/qunit/fieldhelp/testsuite.fieldhelp.qunit.html +12 -0
- package/test/sap/ui/core/qunit/fieldhelp/testsuite.fieldhelp.qunit.js +50 -0
- package/test/sap/ui/core/qunit/internal/1RingModels.qunit.html +1 -1
- package/test/sap/ui/core/qunit/internal/1RingModels.qunit.js +6 -1
- package/test/sap/ui/core/qunit/internal/testsuite.feature-odata-v4.qunit.js +1 -1
- package/test/sap/ui/core/qunit/jquery-mobile-custom.beforeBootstrap.js +11 -0
- package/test/sap/ui/core/qunit/jquery-mobile-custom.qunit.js +3 -3
- package/test/sap/ui/core/qunit/json/JSONModel.qunit.js +21 -0
- package/test/sap/ui/core/qunit/loader/asyncMode.qunit.js +2 -6
- package/test/sap/ui/core/qunit/loader/config.qunit.js +41 -2
- package/test/sap/ui/core/qunit/mvc/testsuite.mvc.qunit.js +9 -4
- package/test/sap/ui/core/qunit/odata/ODataUtils.qunit.js +5 -12
- package/test/sap/ui/core/qunit/odata/type/testsuite.odata.types.qunit.js +1 -0
- package/test/sap/ui/core/qunit/odata/v2/ODataModel.integration.qunit.js +202 -73
- package/test/sap/ui/core/qunit/odata/v2/ODataTreeBindingFlatNoFakeService.qunit.js +94 -2
- package/test/sap/ui/core/qunit/odata/v2/data/ZUI5_GWSAMPLE_BASIC.metadata.xml +4 -0
- package/test/sap/ui/core/qunit/odata/v4/Context.qunit.js +106 -103
- package/test/sap/ui/core/qunit/odata/v4/ODataBinding.qunit.js +3 -3
- package/test/sap/ui/core/qunit/odata/v4/ODataContextBinding.qunit.js +20 -20
- package/test/sap/ui/core/qunit/odata/v4/ODataListBinding.qunit.js +370 -109
- package/test/sap/ui/core/qunit/odata/v4/ODataMetaModel.qunit.js +42 -42
- package/test/sap/ui/core/qunit/odata/v4/ODataModel.integration.qunit.js +2260 -177
- package/test/sap/ui/core/qunit/odata/v4/ODataModel.qunit.js +39 -7
- package/test/sap/ui/core/qunit/odata/v4/ODataModel.realOData.qunit.js +7 -6
- package/test/sap/ui/core/qunit/odata/v4/ODataPropertyBinding.qunit.js +13 -14
- package/test/sap/ui/core/qunit/odata/v4/_AnnotationHelperExpression.qunit.js +3 -3
- package/test/sap/ui/core/qunit/odata/v4/lib/_AggregationCache.qunit.js +592 -169
- package/test/sap/ui/core/qunit/odata/v4/lib/_AggregationHelper.qunit.js +82 -2
- package/test/sap/ui/core/qunit/odata/v4/lib/_Cache.qunit.js +44 -47
- package/test/sap/ui/core/qunit/odata/v4/lib/_Helper.qunit.js +80 -20
- package/test/sap/ui/core/qunit/odata/v4/lib/_MetadataRequestor.qunit.js +2 -2
- package/test/sap/ui/core/qunit/odata/v4/lib/_Requestor.qunit.js +175 -69
- package/test/sap/ui/core/qunit/odata/v4/lib/_V2Requestor.qunit.js +3 -3
- package/test/sap/ui/core/qunit/odata/v4/testsuite.odatav4.qunit.js +1 -1
- package/test/sap/ui/core/qunit/performance/trace/FESR.qunit.js +9 -7
- package/test/sap/ui/core/qunit/rule/testsuite.rule.qunit.js +6 -1
- package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib4/themes/sap_horizon_hcb/library.css +2 -0
- package/test/sap/ui/core/qunit/testsuite.qunit.js +1 -0
- package/test/sap/ui/core/qunit/testsuites/testsuite.browser.runtime.qunit.js +5 -1
- package/test/sap/ui/core/qunit/testsuites/testsuite.databinding.qunit.js +0 -3
- package/test/sap/ui/core/qunit/testsuites/testsuite.theming.qunit.js +4 -1
- package/test/sap/ui/core/qunit/ui/Device.qunit.js +68 -25
- package/test/sap/ui/core/qunit/ui5classes/ManagedObjectMetadata.qunit.js +3 -0
- package/test/sap/ui/core/qunit/util/Mobile.qunit.js +12 -7
- package/test/sap/ui/core/qunit/util/XMLPreprocessor.qunit.js +20 -20
- package/test/sap/ui/core/relnotes/changes-1.125.json +1 -6
- package/test/sap/ui/core/relnotes/changes-1.126.json +63 -0
- package/test/sap/ui/core/samples/databinding/UnitTable/ui5.yaml +1 -1
- package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/firstItem-contextMenu.ref.lnk +1 -1
- package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/initial.ref.lnk +1 -1
- package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/lastItem-contextMenu.ref.lnk +1 -1
- package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/leftDownBtn-contextMenu.ref.lnk +1 -1
- package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/myButtonSample-contextMenu.ref.lnk +1 -1
- package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/rightDownBtn-contextMenu.ref.lnk +1 -1
package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/RecursiveHierarchy.view.xml
CHANGED
|
@@ -7,19 +7,29 @@
|
|
|
7
7
|
xmlns:rm="sap.ui.table.rowmodes">
|
|
8
8
|
|
|
9
9
|
<Table id="table" ariaLabelledBy="title"
|
|
10
|
-
rows="{
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
rows="{
|
|
11
|
+
path : '/EMPLOYEES',
|
|
12
|
+
parameters : {
|
|
13
|
+
$count : false,
|
|
14
|
+
$filter : 'STATUS ne \'Out\'',
|
|
15
|
+
$orderby : 'AGE',
|
|
16
|
+
$$patchWithoutSideEffects : true
|
|
17
|
+
},
|
|
18
|
+
suspended : true
|
|
19
|
+
}"
|
|
13
20
|
selectionMode="None">
|
|
14
21
|
<extension>
|
|
15
22
|
<m:Toolbar design="Transparent" class="sapMTBHeader-CTX">
|
|
16
23
|
<m:Title id="title" level="H1" text="Organizational Chart"/>
|
|
17
24
|
<m:ToolbarSpacer/>
|
|
18
25
|
<m:Button icon="sap-icon://create" press=".onCreateRoot" tooltip="Create New Root"/>
|
|
26
|
+
<m:Button icon="sap-icon://hide" press=".onCreateRoot($event, true)"
|
|
27
|
+
tooltip="Create New Root (filtered out)"/>
|
|
19
28
|
<m:Button icon="sap-icon://synchronize" id="synchronize" press="onSynchronize"
|
|
20
|
-
tooltip="
|
|
21
|
-
<m:Button icon="sap-icon://
|
|
22
|
-
|
|
29
|
+
tooltip="Side Effect"/>
|
|
30
|
+
<m:Button icon="sap-icon://response" press="onRefresh" tooltip="Refresh"/>
|
|
31
|
+
<m:Button icon="sap-icon://refresh" press="onRefresh($event, true)"
|
|
32
|
+
tooltip="Refresh (keeping tree state)"/>
|
|
23
33
|
</m:Toolbar>
|
|
24
34
|
</extension>
|
|
25
35
|
<rowMode>
|
|
@@ -31,7 +41,7 @@
|
|
|
31
41
|
<m:Text text="{= %{@$ui5.node.level} }" wrapping="false"/>
|
|
32
42
|
</template>
|
|
33
43
|
</Column>
|
|
34
|
-
<Column width="
|
|
44
|
+
<Column width="3.14em">
|
|
35
45
|
<template>
|
|
36
46
|
<m:Button enabled="{= %{@$ui5.node.isExpanded} !== undefined}"
|
|
37
47
|
icon="{= %{@$ui5.node.isExpanded} === true
|
|
@@ -70,52 +80,53 @@
|
|
|
70
80
|
<m:Text text="{AGE}" wrapping="false"/>
|
|
71
81
|
</template>
|
|
72
82
|
</Column>
|
|
73
|
-
<Column
|
|
74
|
-
<
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
</template>
|
|
78
|
-
</Column>
|
|
79
|
-
<Column width="
|
|
80
|
-
<template>
|
|
81
|
-
<m:
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
tooltip="Make Last Root"/>
|
|
106
|
-
</template>
|
|
107
|
-
</Column>
|
|
108
|
-
<Column width="4em">
|
|
109
|
-
<template>
|
|
110
|
-
<m:Button icon="sap-icon://delete" press=".onDelete" tooltip="Delete"/>
|
|
83
|
+
<Column>
|
|
84
|
+
<m:Label text="Filtered Out"/>
|
|
85
|
+
<template>
|
|
86
|
+
<m:CheckBox editable="false" selected="{= %{STATUS} === 'Out'}"/>
|
|
87
|
+
</template>
|
|
88
|
+
</Column>
|
|
89
|
+
<Column width="27em">
|
|
90
|
+
<template>
|
|
91
|
+
<m:FlexBox justifyContent="SpaceBetween">
|
|
92
|
+
<m:Button enabled="{= %{STATUS} !== 'Out' && %{@$ui5.node.isExpanded} !== false}"
|
|
93
|
+
icon="sap-icon://create" id="create" press=".onCreate"
|
|
94
|
+
tooltip="Create New Child"/>
|
|
95
|
+
<m:Button enabled="{= %{STATUS} !== 'Out' && %{@$ui5.node.isExpanded} !== false}"
|
|
96
|
+
icon="sap-icon://hide" press=".onCreate($event, true)"
|
|
97
|
+
tooltip="Create New Hidden Child"/>
|
|
98
|
+
<m:Button enabled="{= %{STATUS} !== 'Out'}" icon="sap-icon://up"
|
|
99
|
+
press=".onMoveUp" tooltip="Move Up"/>
|
|
100
|
+
<m:Button enabled="{= %{STATUS} !== 'Out'}" icon="sap-icon://down"
|
|
101
|
+
press=".onMoveDown" tooltip="Move Down"/>
|
|
102
|
+
<m:Button enabled="{= %{STATUS} !== 'Out'}" icon="sap-icon://move"
|
|
103
|
+
press=".onMove" tooltip="Move To Parent..."/>
|
|
104
|
+
<m:Button enabled="{= %{STATUS} !== 'Out'}" icon="sap-icon://map"
|
|
105
|
+
press=".onMove($event, false, '?')" tooltip="Move Just Before Sibling..."/>
|
|
106
|
+
<m:Button enabled="{= %{STATUS} !== 'Out'}" icon="sap-icon://arrow-bottom"
|
|
107
|
+
press=".onMove($event, false, null)" tooltip="Move As Last Child Of..."/>
|
|
108
|
+
<m:Button enabled="{= %{STATUS} !== 'Out' && %{@$ui5.node.level} > 1}"
|
|
109
|
+
icon="sap-icon://back-to-top" press=".onMakeRoot" tooltip="Make Root"/>
|
|
110
|
+
<m:Button enabled="{= %{STATUS} !== 'Out'}" icon="sap-icon://pull-down"
|
|
111
|
+
press=".onMakeRoot($event, null)" tooltip="Make Last Root"/>
|
|
112
|
+
<m:Button enabled="{= %{STATUS} !== 'Out'}" icon="sap-icon://delete"
|
|
113
|
+
press=".onDelete" tooltip="Delete"/>
|
|
114
|
+
</m:FlexBox>
|
|
111
115
|
</template>
|
|
112
116
|
</Column>
|
|
113
117
|
</Table>
|
|
114
118
|
|
|
115
119
|
<TreeTable id="treeTable" ariaLabelledBy="treeTitle"
|
|
116
|
-
rows="{
|
|
117
|
-
|
|
118
|
-
|
|
120
|
+
rows="{
|
|
121
|
+
path : '/EMPLOYEES',
|
|
122
|
+
parameters : {
|
|
123
|
+
$count : false,
|
|
124
|
+
$filter : 'STATUS ne \'Out\'',
|
|
125
|
+
$orderby : 'AGE',
|
|
126
|
+
$$patchWithoutSideEffects : true
|
|
127
|
+
},
|
|
128
|
+
suspended : true
|
|
129
|
+
}"
|
|
119
130
|
selectionMode="None">
|
|
120
131
|
<extension>
|
|
121
132
|
<m:Toolbar design="Transparent" class="sapMTBHeader-CTX">
|
|
@@ -123,10 +134,13 @@
|
|
|
123
134
|
<m:ToolbarSpacer/>
|
|
124
135
|
<m:Button icon="sap-icon://create" press=".onCreateRootInTreeTable"
|
|
125
136
|
tooltip="Create New Root"/>
|
|
137
|
+
<m:Button icon="sap-icon://hide" press=".onCreateRootInTreeTable($event, true)"
|
|
138
|
+
tooltip="Create New Root (filtered out)"/>
|
|
126
139
|
<m:Button icon="sap-icon://synchronize" id="synchronizeTreeTable"
|
|
127
|
-
press="onSynchronizeTreeTable" tooltip="
|
|
128
|
-
<m:Button icon="sap-icon://
|
|
129
|
-
|
|
140
|
+
press="onSynchronizeTreeTable" tooltip="Side effect"/>
|
|
141
|
+
<m:Button icon="sap-icon://response" press="onRefreshTreeTable" tooltip="Refresh"/>
|
|
142
|
+
<m:Button icon="sap-icon://refresh" press="onRefreshTreeTable($event, true)"
|
|
143
|
+
tooltip="Refresh (keeping tree state)"/>
|
|
130
144
|
</m:Toolbar>
|
|
131
145
|
</extension>
|
|
132
146
|
<rowMode>
|
|
@@ -162,45 +176,38 @@
|
|
|
162
176
|
<m:Text text="{AGE}" wrapping="false"/>
|
|
163
177
|
</template>
|
|
164
178
|
</Column>
|
|
165
|
-
<Column
|
|
166
|
-
<
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
</template>
|
|
170
|
-
</Column>
|
|
171
|
-
<Column width="
|
|
172
|
-
<template>
|
|
173
|
-
<m:
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
<m:Button icon="sap-icon://pull-down" press=".onMakeRoot($event, null)"
|
|
198
|
-
tooltip="Make Last Root"/>
|
|
199
|
-
</template>
|
|
200
|
-
</Column>
|
|
201
|
-
<Column width="4em">
|
|
202
|
-
<template>
|
|
203
|
-
<m:Button icon="sap-icon://delete" press=".onDelete" tooltip="Delete"/>
|
|
179
|
+
<Column>
|
|
180
|
+
<m:Label text="Filtered Out"/>
|
|
181
|
+
<template>
|
|
182
|
+
<m:CheckBox editable="false" selected="{= %{STATUS} === 'Out'}"/>
|
|
183
|
+
</template>
|
|
184
|
+
</Column>
|
|
185
|
+
<Column width="27em">
|
|
186
|
+
<template>
|
|
187
|
+
<m:FlexBox justifyContent="SpaceBetween">
|
|
188
|
+
<m:Button enabled="{= %{STATUS} !== 'Out' && %{@$ui5.node.isExpanded} !== false}"
|
|
189
|
+
icon="sap-icon://create" id="createInTreeTable" press=".onCreate"
|
|
190
|
+
tooltip="Create New Child"/>
|
|
191
|
+
<m:Button enabled="{= %{STATUS} !== 'Out' && %{@$ui5.node.isExpanded} !== false}"
|
|
192
|
+
icon="sap-icon://hide" press=".onCreate($event, true)"
|
|
193
|
+
tooltip="Create New Child (filtered out)"/>
|
|
194
|
+
<m:Button enabled="{= %{STATUS} !== 'Out'}" icon="sap-icon://up"
|
|
195
|
+
press=".onMoveUp" tooltip="Move Up"/>
|
|
196
|
+
<m:Button enabled="{= %{STATUS} !== 'Out'}" icon="sap-icon://down"
|
|
197
|
+
press=".onMoveDown" tooltip="Move Down"/>
|
|
198
|
+
<m:Button enabled="{= %{STATUS} !== 'Out'}" icon="sap-icon://move"
|
|
199
|
+
press=".onMove($event, true)" tooltip="Move To Parent..."/>
|
|
200
|
+
<m:Button enabled="{= %{STATUS} !== 'Out'}" icon="sap-icon://map"
|
|
201
|
+
press=".onMove($event, true, '?')" tooltip="Move Just Before Sibling..."/>
|
|
202
|
+
<m:Button enabled="{= %{STATUS} !== 'Out'}" icon="sap-icon://arrow-bottom"
|
|
203
|
+
press=".onMove($event, true, null)" tooltip="Move As Last Child Of..."/>
|
|
204
|
+
<m:Button enabled="{= %{STATUS} !== 'Out' && %{@$ui5.node.level} > 1}"
|
|
205
|
+
icon="sap-icon://back-to-top" press=".onMakeRoot" tooltip="Make Root"/>
|
|
206
|
+
<m:Button enabled="{= %{STATUS} !== 'Out'}" icon="sap-icon://pull-down"
|
|
207
|
+
press=".onMakeRoot($event, null)" tooltip="Make Last Root"/>
|
|
208
|
+
<m:Button enabled="{= %{STATUS} !== 'Out'}" icon="sap-icon://delete"
|
|
209
|
+
press=".onDelete" tooltip="Delete"/>
|
|
210
|
+
</m:FlexBox>
|
|
204
211
|
</template>
|
|
205
212
|
</Column>
|
|
206
213
|
</TreeTable>
|
|
@@ -215,7 +222,9 @@
|
|
|
215
222
|
|
|
216
223
|
<m:FormattedText htmlText="<em>Available URL parameters:</em>
|
|
217
224
|
<ul>
|
|
225
|
+
<li> <code>createInPlace</code> Either set or unset; default unset
|
|
218
226
|
<li> <code>expandTo</code> Either * for <em>expand all</em> or a number; default 3
|
|
227
|
+
<li> <code>firstVisibleRow</code> A number; default 0
|
|
219
228
|
<li> <code>threshold</code> A number; default 0
|
|
220
229
|
<li> <code>visibleRowCount</code> A number; default 5
|
|
221
230
|
<li> <code>TreeTable</code> Y for yes, N for no; default is both tables"/>
|
|
@@ -168,9 +168,9 @@ sap.ui.define([
|
|
|
168
168
|
Name : "Omega"
|
|
169
169
|
}];
|
|
170
170
|
|
|
171
|
-
let aAllNodes; // in preorder
|
|
172
|
-
let mChildrenByParentId; // no entry for leaves!
|
|
173
|
-
let mNodeById;
|
|
171
|
+
let aAllNodes; // in preorder, does not contain nodes that are filtered out
|
|
172
|
+
let mChildrenByParentId; // no entry for leaves! Does not contain nodes that are filtered out
|
|
173
|
+
let mNodeById; // contains all nodes incl. those filtered out
|
|
174
174
|
let iRevision;
|
|
175
175
|
let mRevisionOfAgeById;
|
|
176
176
|
|
|
@@ -186,6 +186,7 @@ sap.ui.define([
|
|
|
186
186
|
mRevisionOfAgeById = {};
|
|
187
187
|
|
|
188
188
|
aAllNodes.forEach((oNode) => {
|
|
189
|
+
oNode.STATUS = "";
|
|
189
190
|
// oNode.DescendantCount = 0; // @see computeDescendantCount
|
|
190
191
|
oNode.DistanceFromRoot = oNode.ID === "0"
|
|
191
192
|
? 0
|
|
@@ -279,7 +280,6 @@ sap.ui.define([
|
|
|
279
280
|
const aSpliced = aAllNodes.splice(aAllNodes.indexOf(oNode), oNode.DescendantCount + 1);
|
|
280
281
|
aAllNodes.splice(aAllNodes.indexOf(oNextSibling), 0, ...aSpliced);
|
|
281
282
|
}
|
|
282
|
-
|
|
283
283
|
// no response required
|
|
284
284
|
}
|
|
285
285
|
|
|
@@ -309,8 +309,12 @@ sap.ui.define([
|
|
|
309
309
|
if (oNode.MANAGER_ID) {
|
|
310
310
|
const aChildren = mChildrenByParentId[oNode.MANAGER_ID];
|
|
311
311
|
aChildren.splice(aChildren.indexOf(oNode), 1);
|
|
312
|
+
if (!aChildren.length) {
|
|
313
|
+
delete mChildrenByParentId[oNode.MANAGER_ID];
|
|
314
|
+
}
|
|
312
315
|
adjustDescendantCount(oNode.MANAGER_ID, -(oNode.DescendantCount + 1));
|
|
313
316
|
}
|
|
317
|
+
// no response required
|
|
314
318
|
}
|
|
315
319
|
|
|
316
320
|
/**
|
|
@@ -340,36 +344,63 @@ sap.ui.define([
|
|
|
340
344
|
: Infinity;
|
|
341
345
|
let aRows = topLevels(iLevels - 1, getExpandLevels()); // Note: already cloned
|
|
342
346
|
if ("$filter" in mQueryOptions) {
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
347
|
+
if (mQueryOptions.$filter.includes("LimitedRank")) {
|
|
348
|
+
// e.g. LimitedRank lt 5 and DistanceFromRoot lt 2
|
|
349
|
+
// e.g. LimitedRank gt 4 and DistanceFromRoot lt 2
|
|
350
|
+
const aFilterMatches = mQueryOptions.$filter.match(
|
|
351
|
+
/LimitedRank%20(gt|lt)%20(\d+)%20and%20DistanceFromRoot%20lt%20(\d+)/);
|
|
352
|
+
const bGreater = aFilterMatches[1] === "gt";
|
|
353
|
+
const iLimitedRank = parseInt(aFilterMatches[2]);
|
|
354
|
+
const iDistanceFromRoot = parseInt(aFilterMatches[3]);
|
|
355
|
+
aRows = aRows.filter((oNode, i) => {
|
|
351
356
|
oNode.LimitedRank = "" + i; // Edm.Int64
|
|
352
|
-
return
|
|
357
|
+
return (bGreater ? i > iLimitedRank : i < iLimitedRank)
|
|
358
|
+
&& oNode.DistanceFromRoot < iDistanceFromRoot;
|
|
359
|
+
});
|
|
360
|
+
if (mQueryOptions.$orderby === "LimitedRank%20desc") {
|
|
361
|
+
aRows = aRows.reverse();
|
|
353
362
|
}
|
|
354
|
-
|
|
355
|
-
|
|
363
|
+
} else { // ID%20eq%20'1'
|
|
364
|
+
const aIDs = mQueryOptions.$filter.split("%20or%20").map(
|
|
365
|
+
(sID_Predicate) => sID_Predicate.split("%20eq%20")[1].slice(1, -1));
|
|
366
|
+
aRows = aRows.filter((oNode, i) => {
|
|
367
|
+
oNode.LimitedRank = "" + i; // Edm.Int64
|
|
368
|
+
return aIDs.includes(oNode.ID);
|
|
369
|
+
});
|
|
370
|
+
}
|
|
356
371
|
}
|
|
357
372
|
selectCountSkipTop(aRows, mQueryOptions, oResponse);
|
|
358
373
|
return;
|
|
359
374
|
}
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
//
|
|
366
|
-
const
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
375
|
+
|
|
376
|
+
if (mQueryOptions.$apply.includes("descendants")) {
|
|
377
|
+
// "EMPLOYEES?$apply=ancestors($root/EMPLOYEES,OrgChart,ID
|
|
378
|
+
// + ",filter(STATUS%20ne%20'Out'),keep%20start)"
|
|
379
|
+
// + "/descendants($root/EMPLOYEES,OrgChart,ID,filter(ID%20eq%20'" + sParentId
|
|
380
|
+
// + "'),1)/orderby(AGE)"
|
|
381
|
+
const sParentId = mQueryOptions.$apply.match(/,filter\(ID%20eq%20'([^']*)'\)/)[1];
|
|
382
|
+
let aChildren = mChildrenByParentId[sParentId];
|
|
383
|
+
if ("$filter" in mQueryOptions) {
|
|
384
|
+
const bNot = mQueryOptions.$filter.startsWith("not%20(");
|
|
385
|
+
if (bNot) {
|
|
386
|
+
// not%20(ID%20eq%20'5.1.10'%20or%20ID%20eq%20'5.1.11')
|
|
387
|
+
mQueryOptions.$filter
|
|
388
|
+
= mQueryOptions.$filter.slice("not%20(".length, -")".length);
|
|
389
|
+
}
|
|
390
|
+
const aIDs = mQueryOptions.$filter
|
|
391
|
+
.split("%20or%20")
|
|
392
|
+
.map((sID_Predicate) => sID_Predicate.split("%20eq%20")[1].slice(1, -1));
|
|
393
|
+
aChildren = aChildren.filter((oChild) => aIDs.includes(oChild.ID) !== bNot);
|
|
394
|
+
}
|
|
395
|
+
selectCountSkipTop(aChildren, mQueryOptions, oResponse);
|
|
396
|
+
return;
|
|
371
397
|
}
|
|
372
|
-
|
|
398
|
+
|
|
399
|
+
// "$orderby=AGE&$select=ID,MANAGER_ID,Name,AGE"
|
|
400
|
+
// + "&$apply=ancestors($root/EMPLOYEES,OrgChart,ID,filter(ID%20eq%20'3'),1)"
|
|
401
|
+
const sChildId = mQueryOptions.$apply.match(/,filter\(ID%20eq%20'([^']*)'\)/)[1];
|
|
402
|
+
const sParentId = mNodeById[sChildId].MANAGER_ID;
|
|
403
|
+
selectCountSkipTop([mNodeById[sParentId]], mQueryOptions, oResponse);
|
|
373
404
|
return;
|
|
374
405
|
}
|
|
375
406
|
|
|
@@ -545,13 +576,14 @@ sap.ui.define([
|
|
|
545
576
|
function isChildID(sChildID, sParentId) {
|
|
546
577
|
return sChildID !== sParentId
|
|
547
578
|
&& (sParentId === "0"
|
|
548
|
-
?
|
|
579
|
+
? /^\d+$/.test(sChildID) // Note: letters denote other roots!
|
|
549
580
|
: sChildID.startsWith(sParentId)
|
|
550
581
|
&& !sChildID.slice(sParentId.length + 1).includes("."));
|
|
551
582
|
}
|
|
552
583
|
|
|
553
584
|
// {"EMPLOYEE_2_MANAGER@odata.bind" : "EMPLOYEES('0')"}
|
|
554
585
|
const oBody = JSON.parse(oRequest.requestBody);
|
|
586
|
+
const bFilteredOut = oBody.STATUS === "Out";
|
|
555
587
|
const sParentId = oBody["EMPLOYEE_2_MANAGER@odata.bind"]
|
|
556
588
|
?.slice("EMPLOYEES('".length, -"')".length);
|
|
557
589
|
const oParent = mNodeById[sParentId];
|
|
@@ -566,7 +598,8 @@ sap.ui.define([
|
|
|
566
598
|
DistanceFromRoot : oParent ? oParent.DistanceFromRoot + 1 : 0,
|
|
567
599
|
DrillState : "leaf",
|
|
568
600
|
MANAGER_ID : sParentId ?? null,
|
|
569
|
-
DescendantCount : 0
|
|
601
|
+
DescendantCount : 0,
|
|
602
|
+
STATUS : bFilteredOut ? "Out" : ""
|
|
570
603
|
};
|
|
571
604
|
|
|
572
605
|
if (sParentId) {
|
|
@@ -575,12 +608,11 @@ sap.ui.define([
|
|
|
575
608
|
oNewChild.AGE = mChildrenByParentId[sParentId][0].AGE - 1;
|
|
576
609
|
} else { // parent not a leaf anymore
|
|
577
610
|
oParent.DrillState = "collapsed"; // @see #reset
|
|
578
|
-
mChildrenByParentId[sParentId] = [];
|
|
579
611
|
oNewChild.AGE = oParent.AGE - 1;
|
|
580
612
|
}
|
|
581
613
|
|
|
582
614
|
// use "largest" child ID which is hierarchical to parent
|
|
583
|
-
const sLastChildID =
|
|
615
|
+
const sLastChildID = Object.values(mNodeById)
|
|
584
616
|
.filter((oChild) => isChildID(oChild.ID, sParentId))
|
|
585
617
|
.sort(compareByID)
|
|
586
618
|
.at(-1)?.ID;
|
|
@@ -592,24 +624,37 @@ sap.ui.define([
|
|
|
592
624
|
oNewChild.ID = sParentId + "." + (parseLastSegment(sLastChildID) + 1);
|
|
593
625
|
}
|
|
594
626
|
} else { // new root
|
|
595
|
-
const iRootCount =
|
|
627
|
+
const iRootCount = Object.values(mNodeById)
|
|
628
|
+
.filter((oNode) => oNode.MANAGER_ID === null)
|
|
629
|
+
.length;
|
|
596
630
|
oNewChild.AGE = 60 + iRootCount;
|
|
597
|
-
oNewChild.ID = "
|
|
631
|
+
oNewChild.ID = "0ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"[iRootCount];
|
|
598
632
|
}
|
|
599
633
|
|
|
600
634
|
if (oNewChild.ID in mNodeById) {
|
|
601
635
|
throw new Error("Illegal state: duplicate node ID " + oNewChild.ID);
|
|
602
636
|
}
|
|
603
|
-
aAllNodes.push(oNewChild); //TODO not good enough once we need "refresh"
|
|
604
637
|
mNodeById[oNewChild.ID] = oNewChild;
|
|
605
638
|
mRevisionOfAgeById[oNewChild.ID] = 0;
|
|
606
|
-
if (
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
639
|
+
if (!bFilteredOut) {
|
|
640
|
+
if (sParentId) {
|
|
641
|
+
// Note: server's insert position must not affect UI (until refresh!)
|
|
642
|
+
mChildrenByParentId[sParentId] ??= [];
|
|
643
|
+
mChildrenByParentId[sParentId].push(oNewChild);
|
|
644
|
+
adjustDescendantCount(sParentId, +1);
|
|
645
|
+
aAllNodes.splice(aAllNodes.indexOf(oParent) + oParent.DescendantCount, 0,
|
|
646
|
+
oNewChild);
|
|
647
|
+
} else {
|
|
648
|
+
aAllNodes.push(oNewChild);
|
|
649
|
+
}
|
|
610
650
|
}
|
|
611
651
|
|
|
612
|
-
|
|
652
|
+
const oCopy = SandboxModel.update([oNewChild])[0];
|
|
653
|
+
// RAP would not respond w/ DescendantCount,DistanceFromRoot,DrillState!
|
|
654
|
+
delete oCopy.DescendantCount;
|
|
655
|
+
delete oCopy.DistanceFromRoot;
|
|
656
|
+
delete oCopy.DrillState;
|
|
657
|
+
oResponse.message = JSON.stringify(oCopy);
|
|
613
658
|
}
|
|
614
659
|
|
|
615
660
|
/**
|
|
@@ -642,7 +687,9 @@ sap.ui.define([
|
|
|
642
687
|
function select(oNode) {
|
|
643
688
|
const oResult = {};
|
|
644
689
|
for (const sSelect of aSelect) {
|
|
645
|
-
oResult[sSelect] =
|
|
690
|
+
oResult[sSelect] = sSelect === "DescendantCount" || sSelect === "DistanceFromRoot"
|
|
691
|
+
? "" + oNode[sSelect] // Edm.Int64
|
|
692
|
+
: oNode[sSelect];
|
|
646
693
|
}
|
|
647
694
|
return oResult;
|
|
648
695
|
}
|
|
@@ -31,9 +31,10 @@ sap.ui.define([
|
|
|
31
31
|
aCells = aRows[iRowIndex].getCells();
|
|
32
32
|
if (oExpected === null) {
|
|
33
33
|
aCells.forEach(function (oCell, i) {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
34
|
+
if (oCell.getText || oCell.getValue) {
|
|
35
|
+
strictEqual(oCell.getText?.() ?? oCell.getValue(), "",
|
|
36
|
+
"Row " + iRowIndex + ", cell " + i + " is empty");
|
|
37
|
+
} // else: don't care about invisible icon in 2nd column here (or button column)
|
|
37
38
|
});
|
|
38
39
|
return;
|
|
39
40
|
}
|
|
@@ -44,6 +44,24 @@ sap.ui.define([
|
|
|
44
44
|
"sap.ui.core.sample.odata.v4.SalesOrders.Component");
|
|
45
45
|
});
|
|
46
46
|
|
|
47
|
+
oModel.setHttpListener((oInterface) => {
|
|
48
|
+
const mHeaders = oInterface.responseHeaders;
|
|
49
|
+
Log.debug("HttpListener", JSON.stringify(mHeaders),
|
|
50
|
+
"sap.ui.core.sample.odata.v4.SalesOrders.Component");
|
|
51
|
+
const mNewHeaders = {};
|
|
52
|
+
if ("date" in mHeaders) {
|
|
53
|
+
mNewHeaders["X-Y-Z-myDate"] = mHeaders["date"];
|
|
54
|
+
}
|
|
55
|
+
if ("etag" in mHeaders) {
|
|
56
|
+
mNewHeaders["X-Y-Z-myETag"] = mHeaders["etag"];
|
|
57
|
+
}
|
|
58
|
+
try {
|
|
59
|
+
oModel.changeHttpHeaders(mNewHeaders);
|
|
60
|
+
} catch (e) {
|
|
61
|
+
// Ever tried. Ever failed. No matter.
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
|
|
47
65
|
// the same model can be accessed via two names to allow for different binding contexts
|
|
48
66
|
this.setModel(oModel, "headerContext");
|
|
49
67
|
this.setModel(oModel, "parameterContext");
|
|
@@ -10,13 +10,7 @@ sap.ui.define([
|
|
|
10
10
|
|
|
11
11
|
return {
|
|
12
12
|
createRelative : function (Given, When, Then, sUIComponent) {
|
|
13
|
-
var
|
|
14
|
-
component : "sap.ui.model.odata.v4.lib._Cache",
|
|
15
|
-
level : Log.Level.ERROR,
|
|
16
|
-
message :
|
|
17
|
-
/Failed to drill-down into \('[0-9]*'\), invalid segment: \('[0-9]*'\)/
|
|
18
|
-
},
|
|
19
|
-
aExpectedLogs = [],
|
|
13
|
+
var aExpectedLogs = [],
|
|
20
14
|
oReadSchedulesFailLog = {
|
|
21
15
|
component : "sap.ui.model.odata.v4.ODataListBinding",
|
|
22
16
|
level : Log.Level.ERROR,
|
|
@@ -180,7 +174,6 @@ sap.ui.define([
|
|
|
180
174
|
When.onTheMainPage.pressConfirmSalesOrderButton();
|
|
181
175
|
aExpectedLogs.push(oStrictModeFailLog);
|
|
182
176
|
When.onTheMainPage.pressConfirmStrictModeButton();
|
|
183
|
-
aExpectedLogs.push(oDrillDownErrorLog); // obsolete with CPOUI5ODATAV4-288
|
|
184
177
|
|
|
185
178
|
// test refresh single row
|
|
186
179
|
// preparation
|
|
@@ -70,7 +70,6 @@ sap.ui.define([
|
|
|
70
70
|
var aContainedControls,
|
|
71
71
|
oEntityType,
|
|
72
72
|
aProperties = [],
|
|
73
|
-
sPropertyName,
|
|
74
73
|
oView = this.getView(),
|
|
75
74
|
oItemsBinding = oControl.getBinding("items"),
|
|
76
75
|
oBinding = oItemsBinding // list binding
|
|
@@ -127,7 +126,7 @@ sap.ui.define([
|
|
|
127
126
|
enabled : !sPropertyName.includes("/") && !sPropertyName.startsWith("<Not")
|
|
128
127
|
});
|
|
129
128
|
});
|
|
130
|
-
for (sPropertyName in oEntityType) {
|
|
129
|
+
for (const sPropertyName in oEntityType) {
|
|
131
130
|
if (oEntityType[sPropertyName].$kind === "Property"
|
|
132
131
|
&& oEntityType[sPropertyName].$Type.startsWith("Edm.")) {
|
|
133
132
|
if (!this.aDisplayedProperties.includes(sPropertyName)) {
|