@openui5/sap.ui.core 1.120.10 → 1.121.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.json +5 -3
- package/.reuse/dep5 +23 -21
- package/THIRDPARTY.txt +6 -43
- package/package.json +1 -1
- package/src/jquery.sap.global.js +7 -7
- 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/jquery.sap.trace.js +1 -1
- package/src/sap/base/Event.js +1 -1
- package/src/sap/base/Eventing.js +1 -1
- package/src/sap/base/config.js +1 -1
- package/src/sap/base/future.js +57 -0
- package/src/sap/base/i18n/Formatting.js +7 -5
- package/src/sap/base/i18n/LanguageTag.js +2 -2
- package/src/sap/base/i18n/Localization.js +2 -2
- package/src/sap/base/i18n/ResourceBundle.js +115 -9
- package/src/sap/base/i18n/date/TimezoneUtils.js +5 -6
- package/src/sap/base/util/now.js +8 -13
- 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 +6 -3
- package/src/sap/ui/Global.js +14 -13
- package/src/sap/ui/VersionInfo.js +15 -3
- package/src/sap/ui/base/BindingParser.js +25 -15
- package/src/sap/ui/base/DataType.js +21 -13
- package/src/sap/ui/base/Event.js +1 -1
- package/src/sap/ui/base/EventProvider.js +1 -1
- package/src/sap/ui/base/ExpressionParser.js +5 -0
- package/src/sap/ui/base/Interface.js +1 -1
- package/src/sap/ui/base/ManagedObject.js +25 -14
- package/src/sap/ui/base/ManagedObjectMetadata.js +1 -1
- package/src/sap/ui/base/Metadata.js +28 -13
- package/src/sap/ui/base/Object.js +1 -1
- package/src/sap/ui/base/ObjectPool.js +1 -1
- package/src/sap/ui/core/.library +8 -7
- package/src/sap/ui/core/BusyIndicator.js +1 -1
- package/src/sap/ui/core/Component.js +133 -56
- package/src/sap/ui/core/ComponentContainer.js +14 -17
- package/src/sap/ui/core/ComponentMetadata.js +7 -3
- package/src/sap/ui/core/ComponentSupport.js +32 -13
- package/src/sap/ui/core/Configuration.js +1 -1
- package/src/sap/ui/core/Control.js +34 -19
- package/src/sap/ui/core/Core.js +42 -37
- 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 +6 -8
- package/src/sap/ui/core/ElementMetadata.js +35 -20
- 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 +18 -11
- package/src/sap/ui/core/Fragment.js +69 -28
- package/src/sap/ui/core/HTML.js +3 -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 +145 -125
- package/src/sap/ui/core/InvisibleRenderer.js +1 -1
- package/src/sap/ui/core/InvisibleText.js +6 -1
- package/src/sap/ui/core/Item.js +1 -1
- package/src/sap/ui/core/LabelEnablement.js +9 -2
- package/src/sap/ui/core/LayoutData.js +1 -1
- package/src/sap/ui/core/Lib.js +19 -12
- 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 +2 -2
- package/src/sap/ui/core/LocaleData.js +16 -15
- package/src/sap/ui/core/Manifest.js +28 -28
- package/src/sap/ui/core/Message.js +1 -1
- package/src/sap/ui/core/Messaging.js +4 -4
- package/src/sap/ui/core/Popup.js +1 -47
- package/src/sap/ui/core/RenderManager.js +1 -1
- package/src/sap/ui/core/Renderer.js +12 -7
- package/src/sap/ui/core/Rendering.js +49 -42
- package/src/sap/ui/core/ResizeHandler.js +1 -1
- package/src/sap/ui/core/ScrollBar.js +7 -7
- package/src/sap/ui/core/ScrollBarRenderer.js +3 -3
- package/src/sap/ui/core/SeparatorItem.js +1 -1
- package/src/sap/ui/core/Shortcut.js +1 -0
- package/src/sap/ui/core/ShortcutHintsMixin.js +1 -1
- package/src/sap/ui/core/StashedControlSupport.js +39 -40
- package/src/sap/ui/core/Theming.js +15 -25
- package/src/sap/ui/core/Title.js +1 -1
- package/src/sap/ui/core/TooltipBase.js +4 -3
- package/src/sap/ui/core/UIArea.js +5 -3
- package/src/sap/ui/core/UIComponent.js +6 -4
- 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 +2 -1
- package/src/sap/ui/core/XMLTemplateProcessor.js +44 -23
- package/src/sap/ui/core/cache/CacheManagerNOP.js +0 -1
- package/src/sap/ui/core/cldr/ar.json +47 -88
- package/src/sap/ui/core/cldr/ar_EG.json +47 -88
- package/src/sap/ui/core/cldr/ar_SA.json +48 -89
- package/src/sap/ui/core/cldr/bg.json +44 -156
- package/src/sap/ui/core/cldr/ca.json +265 -370
- package/src/sap/ui/core/cldr/cnr.json +545 -476
- package/src/sap/ui/core/cldr/cs.json +33 -467
- package/src/sap/ui/core/cldr/cy.json +36 -762
- package/src/sap/ui/core/cldr/da.json +43 -146
- package/src/sap/ui/core/cldr/de.json +47 -149
- package/src/sap/ui/core/cldr/de_AT.json +48 -150
- package/src/sap/ui/core/cldr/de_CH.json +86 -187
- package/src/sap/ui/core/cldr/el.json +28 -96
- package/src/sap/ui/core/cldr/el_CY.json +28 -96
- package/src/sap/ui/core/cldr/en.json +66 -27
- package/src/sap/ui/core/cldr/en_AU.json +314 -171
- package/src/sap/ui/core/cldr/en_GB.json +167 -33
- package/src/sap/ui/core/cldr/en_HK.json +57 -30
- package/src/sap/ui/core/cldr/en_IE.json +54 -27
- package/src/sap/ui/core/cldr/en_IN.json +139 -28
- package/src/sap/ui/core/cldr/en_NZ.json +55 -28
- package/src/sap/ui/core/cldr/en_PG.json +49 -22
- package/src/sap/ui/core/cldr/en_SG.json +51 -24
- package/src/sap/ui/core/cldr/en_ZA.json +61 -34
- package/src/sap/ui/core/cldr/es.json +25 -130
- package/src/sap/ui/core/cldr/es_AR.json +90 -191
- package/src/sap/ui/core/cldr/es_BO.json +63 -165
- package/src/sap/ui/core/cldr/es_CL.json +100 -202
- package/src/sap/ui/core/cldr/es_CO.json +54 -156
- package/src/sap/ui/core/cldr/es_MX.json +163 -258
- package/src/sap/ui/core/cldr/es_PE.json +65 -167
- package/src/sap/ui/core/cldr/es_UY.json +65 -167
- package/src/sap/ui/core/cldr/es_VE.json +43 -145
- package/src/sap/ui/core/cldr/et.json +44 -144
- package/src/sap/ui/core/cldr/fa.json +75 -80
- package/src/sap/ui/core/cldr/fi.json +38 -142
- package/src/sap/ui/core/cldr/fr.json +28 -22
- package/src/sap/ui/core/cldr/fr_BE.json +31 -25
- package/src/sap/ui/core/cldr/fr_CA.json +76 -69
- package/src/sap/ui/core/cldr/fr_CH.json +41 -35
- package/src/sap/ui/core/cldr/fr_LU.json +28 -22
- package/src/sap/ui/core/cldr/he.json +37 -426
- package/src/sap/ui/core/cldr/hi.json +40 -83
- package/src/sap/ui/core/cldr/hr.json +31 -286
- package/src/sap/ui/core/cldr/hu.json +46 -140
- package/src/sap/ui/core/cldr/id.json +31 -13
- package/src/sap/ui/core/cldr/it.json +59 -182
- package/src/sap/ui/core/cldr/it_CH.json +65 -188
- package/src/sap/ui/core/cldr/ja.json +103 -13
- package/src/sap/ui/core/cldr/kk.json +79 -67
- package/src/sap/ui/core/cldr/ko.json +29 -10
- package/src/sap/ui/core/cldr/lt.json +24 -366
- package/src/sap/ui/core/cldr/lv.json +30 -277
- package/src/sap/ui/core/cldr/mk.json +103 -198
- package/src/sap/ui/core/cldr/ms.json +30 -10
- package/src/sap/ui/core/cldr/nb.json +32 -133
- package/src/sap/ui/core/cldr/nl.json +37 -167
- package/src/sap/ui/core/cldr/nl_BE.json +108 -238
- package/src/sap/ui/core/cldr/pl.json +27 -384
- package/src/sap/ui/core/cldr/pt.json +37 -145
- package/src/sap/ui/core/cldr/pt_PT.json +32 -133
- package/src/sap/ui/core/cldr/ro.json +30 -289
- package/src/sap/ui/core/cldr/ru.json +27 -75
- package/src/sap/ui/core/cldr/ru_UA.json +27 -75
- package/src/sap/ui/core/cldr/sk.json +32 -438
- package/src/sap/ui/core/cldr/sl.json +131 -535
- package/src/sap/ui/core/cldr/sr.json +41 -332
- package/src/sap/ui/core/cldr/sr_Latn.json +192 -483
- package/src/sap/ui/core/cldr/sv.json +49 -137
- package/src/sap/ui/core/cldr/th.json +39 -20
- package/src/sap/ui/core/cldr/tr.json +33 -125
- package/src/sap/ui/core/cldr/uk.json +310 -252
- package/src/sap/ui/core/cldr/vi.json +458 -331
- package/src/sap/ui/core/cldr/zh_CN.json +39 -17
- package/src/sap/ui/core/cldr/zh_HK.json +49 -27
- package/src/sap/ui/core/cldr/zh_SG.json +53 -31
- package/src/sap/ui/core/cldr/zh_TW.json +31 -14
- package/src/sap/ui/core/date/CalendarUtils.js +11 -9
- package/src/sap/ui/core/date/Islamic.js +7 -2
- package/src/sap/ui/core/date/UI5Date.js +86 -34
- package/src/sap/ui/core/date/UniversalDate.js +16 -26
- package/src/sap/ui/core/date/UniversalDateUtils.js +14 -14
- package/src/sap/ui/core/delegate/ItemNavigation.js +1 -1
- package/src/sap/ui/core/delegate/ScrollEnablement.js +1 -1
- package/src/sap/ui/core/dnd/DragAndDrop.js +4 -4
- package/src/sap/ui/core/dnd/DragDropBase.js +1 -1
- package/src/sap/ui/core/dnd/DragDropInfo.js +1 -1
- package/src/sap/ui/core/dnd/DragInfo.js +1 -1
- package/src/sap/ui/core/dnd/DropInfo.js +1 -1
- package/src/sap/ui/core/format/DateFormat.js +37 -45
- package/src/sap/ui/core/format/FileSizeFormat.js +15 -16
- package/src/sap/ui/core/format/FormatUtils.js +36 -0
- package/src/sap/ui/core/format/ListFormat.js +4 -4
- package/src/sap/ui/core/format/NumberFormat.js +288 -125
- 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 +16 -15
- package/src/sap/ui/core/library.js +26 -9
- package/src/sap/ui/core/message/ControlMessageProcessor.js +1 -1
- package/src/sap/ui/core/message/Message.js +5 -5
- package/src/sap/ui/core/message/MessageManager.js +1 -1
- package/src/sap/ui/core/message/MessageMixin.js +1 -1
- package/src/sap/ui/core/message/MessageParser.js +1 -1
- package/src/sap/ui/core/message/MessageProcessor.js +1 -1
- package/src/sap/ui/core/messagebundle_mk.properties +1 -1
- package/src/sap/ui/core/mvc/Controller.js +49 -19
- package/src/sap/ui/core/mvc/ControllerExtension.js +5 -4
- package/src/sap/ui/core/mvc/ControllerExtensionProvider.js +2 -2
- package/src/sap/ui/core/mvc/ControllerMetadata.js +3 -3
- package/src/sap/ui/core/mvc/EventHandlerResolver.js +6 -8
- 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 +8 -5
- package/src/sap/ui/core/mvc/XMLView.js +7 -5
- 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 +5 -3
- package/src/sap/ui/core/postmessage/confirmationDialog.js +3 -3
- package/src/sap/ui/core/routing/HashChanger.js +21 -10
- package/src/sap/ui/core/routing/History.js +5 -5
- package/src/sap/ui/core/routing/Route.js +9 -7
- package/src/sap/ui/core/routing/Router.js +13 -7
- package/src/sap/ui/core/routing/Target.js +1 -1
- package/src/sap/ui/core/routing/Targets.js +5 -4
- package/src/sap/ui/core/routing/async/Target.js +10 -7
- package/src/sap/ui/core/routing/async/Targets.js +3 -3
- package/src/sap/ui/core/routing/sync/Target.js +4 -1
- package/src/sap/ui/core/rules/Config.support.js +3 -3
- 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/RuleEngineOpaExtension.js +9 -12
- package/src/sap/ui/core/support/Support.js +2 -2
- package/src/sap/ui/core/support/ToolsAPI.js +19 -6
- package/src/sap/ui/core/support/controls/InteractionTree.js +7 -7
- package/src/sap/ui/core/support/plugins/Breakpoint.js +8 -5
- package/src/sap/ui/core/support/plugins/ControlTree.js +26 -15
- package/src/sap/ui/core/support/plugins/Debugging.js +9 -6
- package/src/sap/ui/core/support/plugins/Interaction.js +9 -7
- package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -1
- package/src/sap/ui/core/support/plugins/Performance.js +6 -6
- 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 +4 -3
- package/src/sap/ui/core/support/plugins/ViewInfo.js +4 -2
- package/src/sap/ui/core/support/techinfo/TechnicalInfo.js +4 -4
- package/src/sap/ui/core/support/trace/E2eTraceLib.js +5 -5
- package/src/sap/ui/core/themes/base/Icon.less +2 -1
- package/src/sap/ui/core/themes/base/base.less +370 -371
- package/src/sap/ui/core/theming/Parameters.js +9 -8
- package/src/sap/ui/core/theming/ThemeHelper.js +4 -3
- package/src/sap/ui/core/theming/ThemeManager.js +8 -6
- package/src/sap/ui/core/tmpl/DOMAttribute.js +1 -1
- package/src/sap/ui/core/tmpl/DOMElement.js +1 -1
- package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +6 -3
- 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 +23 -13
- package/src/sap/ui/core/util/PasteHelper.js +3 -3
- package/src/sap/ui/core/util/_LocalizationHelper.js +10 -1
- package/src/sap/ui/core/util/reflection/BaseTreeModifier.js +51 -5
- package/src/sap/ui/core/util/reflection/JsControlTreeModifier.js +2 -2
- package/src/sap/ui/core/util/reflection/XmlTreeModifier.js +1 -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 +6 -6
- package/src/sap/ui/debug/DebugEnv.js +1 -1
- package/src/sap/ui/debug/PropertyList.js +1 -1
- package/src/sap/ui/dom/isBehindOtherElement.js +0 -1
- package/src/sap/ui/events/isMouseEventDelayed.js +6 -12
- package/src/sap/ui/events/jquery/EventSimulation.js +4 -3
- package/src/sap/ui/events/jquery/EventTriggerHook.js +2 -3
- package/src/sap/ui/model/Binding.js +1 -1
- package/src/sap/ui/model/ClientListBinding.js +2 -0
- package/src/sap/ui/model/ClientModel.js +1 -1
- package/src/sap/ui/model/ClientTreeBinding.js +1 -0
- 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/Filter.js +34 -4
- package/src/sap/ui/model/ManagedObjectBindingSupport.js +6 -3
- package/src/sap/ui/model/MetaModel.js +1 -1
- package/src/sap/ui/model/Model.js +6 -2
- package/src/sap/ui/model/SelectionModel.js +1 -1
- package/src/sap/ui/model/SimpleType.js +1 -1
- package/src/sap/ui/model/Sorter.js +4 -4
- package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
- package/src/sap/ui/model/Type.js +1 -1
- package/src/sap/ui/model/_Helper.js +4 -2
- package/src/sap/ui/model/analytics/AnalyticalBinding.js +9 -0
- package/src/sap/ui/model/json/JSONModel.js +6 -2
- package/src/sap/ui/model/message/MessageModel.js +1 -1
- package/src/sap/ui/model/odata/AnnotationHelper.js +12 -7
- package/src/sap/ui/model/odata/ODataAnnotations.js +4 -4
- package/src/sap/ui/model/odata/ODataMessageParser.js +4 -3
- package/src/sap/ui/model/odata/ODataMetaModel.js +2 -1
- package/src/sap/ui/model/odata/ODataMetadata.js +34 -4
- package/src/sap/ui/model/odata/ODataModel.js +5 -5
- package/src/sap/ui/model/odata/ODataPropertyBinding.js +1 -2
- package/src/sap/ui/model/odata/ODataTreeBindingAdapter.js +1 -0
- package/src/sap/ui/model/odata/ODataTreeBindingFlat.js +4 -2
- package/src/sap/ui/model/odata/ODataUtils.js +166 -131
- package/src/sap/ui/model/odata/type/Boolean.js +9 -7
- 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 +5 -4
- package/src/sap/ui/model/odata/type/DateTime.js +2 -2
- package/src/sap/ui/model/odata/type/DateTimeBase.js +4 -4
- package/src/sap/ui/model/odata/type/DateTimeOffset.js +1 -1
- package/src/sap/ui/model/odata/type/DateTimeWithTimezone.js +4 -3
- package/src/sap/ui/model/odata/type/Decimal.js +5 -5
- package/src/sap/ui/model/odata/type/Double.js +4 -3
- package/src/sap/ui/model/odata/type/Guid.js +4 -3
- package/src/sap/ui/model/odata/type/Int.js +4 -4
- 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 +4 -4
- 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 +4 -3
- package/src/sap/ui/model/odata/type/Stream.js +1 -1
- package/src/sap/ui/model/odata/type/String.js +6 -5
- package/src/sap/ui/model/odata/type/Time.js +4 -4
- package/src/sap/ui/model/odata/type/TimeOfDay.js +5 -4
- package/src/sap/ui/model/odata/type/Unit.js +1 -1
- package/src/sap/ui/model/odata/type/UnitMixin.js +3 -2
- package/src/sap/ui/model/odata/v2/Context.js +1 -1
- package/src/sap/ui/model/odata/v2/ODataAnnotations.js +4 -4
- package/src/sap/ui/model/odata/v2/ODataModel.js +55 -25
- package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +5 -4
- package/src/sap/ui/model/odata/v4/Context.js +20 -7
- package/src/sap/ui/model/odata/v4/ODataBinding.js +14 -10
- package/src/sap/ui/model/odata/v4/ODataContextBinding.js +8 -5
- package/src/sap/ui/model/odata/v4/ODataListBinding.js +56 -33
- package/src/sap/ui/model/odata/v4/ODataMetaModel.js +7 -4
- package/src/sap/ui/model/odata/v4/ODataModel.js +25 -37
- package/src/sap/ui/model/odata/v4/ODataParentBinding.js +10 -8
- package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +9 -2
- package/src/sap/ui/model/odata/v4/_AnnotationHelperExpression.js +4 -4
- package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +195 -59
- package/src/sap/ui/model/odata/v4/lib/_AggregationHelper.js +16 -6
- package/src/sap/ui/model/odata/v4/lib/_Cache.js +22 -15
- package/src/sap/ui/model/odata/v4/lib/_Helper.js +19 -11
- package/src/sap/ui/model/odata/v4/lib/_Requestor.js +20 -11
- package/src/sap/ui/model/odata/v4/lib/_TreeState.js +122 -0
- package/src/sap/ui/model/resource/ResourceModel.js +1 -1
- package/src/sap/ui/model/type/Boolean.js +4 -4
- package/src/sap/ui/model/type/Currency.js +5 -5
- package/src/sap/ui/model/type/Date.js +5 -5
- package/src/sap/ui/model/type/DateInterval.js +6 -5
- 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 +5 -4
- package/src/sap/ui/model/type/Float.js +5 -5
- package/src/sap/ui/model/type/Integer.js +6 -6
- package/src/sap/ui/model/type/String.js +4 -3
- 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 +8 -7
- package/src/sap/ui/model/xml/XMLModel.js +11 -3
- package/src/sap/ui/performance/trace/Interaction.js +8 -16
- package/src/sap/ui/performance/trace/initTraces.js +1 -1
- package/src/sap/ui/qunit/qunit-junit.js +415 -49
- package/src/sap/ui/qunit/utils/ControlIterator.js +4 -4
- package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +3 -2
- package/src/sap/ui/qunit/utils/nextUIUpdate.js +15 -5
- package/src/sap/ui/test/OpaBuilder.js +3 -1
- package/src/sap/ui/test/OpaPlugin.js +103 -10
- package/src/sap/ui/test/autowaiter/_UIUpdatesWaiter.js +4 -4
- package/src/sap/ui/test/autowaiter/_navigationContainerWaiter.js +3 -3
- package/src/sap/ui/test/generic/TestBase.js +1 -1
- package/src/sap/ui/test/launchers/iFrameLauncher.js +18 -6
- package/src/sap/ui/test/matchers/Descendant.js +2 -1
- package/src/sap/ui/test/matchers/I18NText.js +6 -2
- package/src/sap/ui/test/matchers/Interactable.js +2 -3
- package/src/sap/ui/test/matchers/LabelFor.js +5 -3
- package/src/sap/ui/test/matchers/Matcher.js +20 -0
- package/src/sap/ui/test/matchers/Sibling.js +2 -1
- package/src/sap/ui/test/matchers/_Visitor.js +2 -4
- package/src/sap/ui/test/qunitPause.js +6 -4
- package/src/sap/ui/test/selectors/_ControlSelectorGenerator.js +4 -3
- package/src/sap/ui/test/selectors/_Selector.js +3 -3
- package/src/sap/ui/test/starter/_setupAndStart.js +5 -18
- package/src/sap/ui/test/starter/_utils.js +15 -1
- package/src/sap/ui/test/starter/createSuite.js +2 -0
- package/src/sap/ui/thirdparty/RequestRecorder.js +1 -1
- package/src/sap/ui/thirdparty/crossroads.js +3 -0
- package/src/sap/ui/thirdparty/qunit-2.js +1 -2
- package/src/sap/ui/thirdparty/qunit-reporter-junit.js +30 -8
- package/src/sap/ui/thirdparty/qunit.js +1 -2
- package/src/sap/ui/util/Storage.js +1 -1
- package/src/ui5loader-autoconfig.js +18 -4
- package/src/ui5loader.js +15 -4
- package/test/sap/ui/core/DateFormat.controller.js +3 -3
- package/test/sap/ui/core/ILabelableInterface.html +21 -0
- package/test/sap/ui/core/ILabelableInterface.js +81 -0
- package/test/sap/ui/core/NumberFormat.controller.js +4 -4
- package/test/sap/ui/core/Strings.controller.js +4 -4
- package/test/sap/ui/core/demokit/docuindex.json +8 -2
- package/test/sap/ui/core/demokit/sample/MessageManager/ODataBackendMessagesComp/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/sample/RoutingNestedComponent/Component.js +2 -3
- package/test/sap/ui/core/demokit/sample/RoutingNestedComponent/css/style.css +3 -3
- package/test/sap/ui/core/demokit/sample/RoutingNestedComponent/reuse/categories/Component.js +2 -3
- package/test/sap/ui/core/demokit/sample/RoutingNestedComponent/reuse/products/Component.js +2 -3
- package/test/sap/ui/core/demokit/sample/RoutingNestedComponent/reuse/suppliers/Component.js +2 -3
- package/test/sap/ui/core/demokit/sample/View/navigationTypedView/Component.js +20 -0
- package/test/sap/ui/core/demokit/sample/View/navigationTypedView/controller/Home.controller.js +14 -0
- package/test/sap/ui/core/demokit/sample/View/navigationTypedView/controller/Next.controller.js +21 -0
- package/test/sap/ui/core/demokit/sample/View/navigationTypedView/manifest.json +94 -0
- package/test/sap/ui/core/demokit/sample/View/navigationTypedView/view/HomeContentDesktop.fragment.js +15 -0
- package/test/sap/ui/core/demokit/sample/View/navigationTypedView/view/HomeContentMobile.fragment.js +15 -0
- package/test/sap/ui/core/demokit/sample/View/navigationTypedView/view/HomeView.js +45 -0
- package/test/sap/ui/core/demokit/sample/View/navigationTypedView/view/Next.view.xml +15 -0
- package/test/sap/ui/core/demokit/sample/View/navigationTypedView/view/RootView.js +22 -0
- package/test/sap/ui/core/demokit/sample/ViewTemplate/scenario/Opa.qunit.js +5 -4
- package/test/sap/ui/core/demokit/sample/ViewTemplate/types/Opa.qunit.js +8 -5
- package/test/sap/ui/core/demokit/sample/ViewTemplate/valuelist/ValueHelp.js +38 -35
- package/test/sap/ui/core/demokit/sample/common/Helper.js +7 -7
- package/test/sap/ui/core/demokit/sample/common/SandboxModelHelper.js +1 -1
- package/test/sap/ui/core/demokit/sample/common/pages/Any.js +5 -3
- package/test/sap/ui/core/demokit/sample/matcher/BindingPath/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/sample/matcher/Descendant/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/sample/matcher/I18NText/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/sample/matcher/LabelFor/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/sample/odata/types/v2/DateTime/DateTime.controller.js +3 -3
- package/test/sap/ui/core/demokit/sample/odata/types/v2/DateTimeOffset/DateTimeOffset.controller.js +3 -3
- package/test/sap/ui/core/demokit/sample/odata/types/v2/Time/Time.controller.js +3 -3
- package/test/sap/ui/core/demokit/sample/odata/types/v4/Date/Date.controller.js +3 -3
- package/test/sap/ui/core/demokit/sample/odata/types/v4/DateTimeOffset/DateTimeOffset.controller.js +3 -3
- package/test/sap/ui/core/demokit/sample/odata/types/v4/TimeOfDay/TimeOfDay.controller.js +3 -3
- package/test/sap/ui/core/demokit/sample/odata/v4/Ancestry/Main.controller.js +10 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/Ancestry/Main.view.xml +3 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/FlexibleColumnLayout/Main.controller.js +1 -2
- package/test/sap/ui/core/demokit/sample/odata/v4/FlexibleColumnLayout/Main.view.xml +6 -3
- package/test/sap/ui/core/demokit/sample/odata/v4/FlexibleColumnLayout/formatRowHighlight.js +20 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/HierarchyBindAction/Main.controller.js +30 -24
- package/test/sap/ui/core/demokit/sample/odata/v4/HierarchyBindAction/Main.view.xml +10 -8
- package/test/sap/ui/core/demokit/sample/odata/v4/ListBinding/Main.controller.js +1 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/MultipleInlineCreationRowsGrid/Main.controller.js +1 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/MultipleInlineCreationRowsGrid/Opa.qunit.js +6 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/RecursiveHierarchy.controller.js +16 -17
- package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/RecursiveHierarchy.view.xml +8 -14
- package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/SandboxModel.js +65 -31
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/pages/Main.js +1 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrdersRTATest/Main.controller.js +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- package/test/sap/ui/core/demokit/tutorial/troubleshooting/01/ui5.yaml +1 -1
- package/test/sap/ui/core/internal/samples/odata/twoFields/Main.controller.js +3 -1
- package/test/sap/ui/core/internal/samples/odata/twoFields/tests/pages/Main.js +3 -2
- package/test/sap/ui/core/internal/samples/odata/v2/Products/Opa.qunit.js +5 -4
- package/test/sap/ui/core/internal/samples/odata/v2/SalesOrders/Main.controller.js +4 -6
- package/test/sap/ui/core/internal/samples/odata/v2/TreeTable/Main.controller.js +6 -5
- package/test/sap/ui/core/qunit/AppCacheBuster.qunit.js +5 -5
- package/test/sap/ui/core/qunit/BindingParser.qunit.js +158 -24
- package/test/sap/ui/core/qunit/BlockLayerUtils.qunit.js +3 -6
- package/test/sap/ui/core/qunit/CalculatedFields.qunit.js +70 -81
- package/test/sap/ui/core/qunit/CompositeBinding.qunit.js +13 -13
- package/test/sap/ui/core/qunit/ControlDefinition.qunit.js +5 -4
- package/test/sap/ui/core/qunit/ControlRenderer.qunit.js +1 -1
- package/test/sap/ui/core/qunit/Core.qunit.js +42 -57
- package/test/sap/ui/core/qunit/Core_libraryPreloadFiles.qunit.js +10 -2
- package/test/sap/ui/core/qunit/Core_libraryPreloadFiles_unavoidablyUsingEval.qunit.js +2 -2
- package/test/sap/ui/core/qunit/Core_libraryTerminologies.qunit.js +4 -3
- package/test/sap/ui/core/qunit/CustomThemeFallback.qunit.js +2 -3
- package/test/sap/ui/core/qunit/DataBinding.qunit.js +125 -65
- package/test/sap/ui/core/qunit/Element_base.qunit.js +4 -1
- package/test/sap/ui/core/qunit/Element_destroy.qunit.js +6 -10
- package/test/sap/ui/core/qunit/Element_metadata_renderer.qunit.js +54 -43
- package/test/sap/ui/core/qunit/Element_metadata_selector.qunit.js +1 -1
- package/test/sap/ui/core/qunit/EnabledPropagator.qunit.js +3 -2
- package/test/sap/ui/core/qunit/ExpressionParser.qunit.js +5 -2
- package/test/sap/ui/core/qunit/FieldGroup.qunit.js +3 -2
- package/test/sap/ui/core/qunit/Fragment.qunit.js +18 -2
- package/test/sap/ui/core/qunit/HTML.qunit.js +3 -2
- package/test/sap/ui/core/qunit/Hyphenation.qunit.js +30 -6
- package/test/sap/ui/core/qunit/Icon.qunit.js +4 -3
- package/test/sap/ui/core/qunit/InvisibleText.qunit.js +6 -5
- package/test/sap/ui/core/qunit/Lib.qunit.js +155 -14
- package/test/sap/ui/core/qunit/ListBinding.qunit.js +7 -42
- package/test/sap/ui/core/qunit/QUnit.qunit.js +6 -0
- package/test/sap/ui/core/qunit/RenderManager.qunit.js +13 -10
- package/test/sap/ui/core/qunit/{CoreEvents.qunit.js → Rendering.qunit.js} +68 -7
- package/test/sap/ui/core/qunit/ScrollBar.qunit.js +8 -7
- package/test/sap/ui/core/qunit/StashedControlSupport.qunit.js +65 -90
- package/test/sap/ui/core/qunit/StashedControlSupport_unavoidablySync.qunit.js +706 -0
- package/test/sap/ui/core/qunit/StaticBinding.qunit.js +49 -37
- package/test/sap/ui/core/qunit/ThemeManager.qunit.js +15 -11
- package/test/sap/ui/core/qunit/ThemeParameters.qunit.js +5 -5
- package/test/sap/ui/core/qunit/ThemeParameters_legacyAPIs.qunit.js +7 -7
- package/test/sap/ui/core/qunit/Theming.qunit.js +174 -1
- package/test/sap/ui/core/qunit/VersionInfo.qunit.js +3 -0
- package/test/sap/ui/core/qunit/analytics/AnalyticalBinding.qunit.js +58 -0
- package/test/sap/ui/core/qunit/analytics/o4aMetadata.js +3 -0
- package/test/sap/ui/core/qunit/app/ThemeClassParameters.qunit.js +4 -4
- package/test/sap/ui/core/qunit/base/i18n/Formatting.qunit.html +1 -1
- package/test/sap/ui/core/qunit/base/i18n/Formatting.qunit.js +276 -44
- package/test/sap/ui/core/qunit/base/i18n/Localization.qunit.js +173 -26
- package/test/sap/ui/core/qunit/base/i18n/ResourceBundle.qunit.js +408 -3
- package/test/sap/ui/core/qunit/base/util/now.qunit.js +2 -30
- package/test/sap/ui/core/qunit/bootstrap/BootstrapCustomBootTaskPreloadCss.beforeBootstrap.qunit.js +6 -4
- package/test/sap/ui/core/qunit/bootstrap/BootstrapCustomBootTaskPreloadCss.qunit.js +4 -4
- package/test/sap/ui/core/qunit/bootstrap/BootstrapMinimal.qunit.js +1 -1
- package/test/sap/ui/core/qunit/bootstrap/BootstrapPreload.qunit.js +15 -6
- package/test/sap/ui/core/qunit/bootstrap/BootstrapPreload_legacyAPIs.qunit.js +2 -3
- package/test/sap/ui/core/qunit/bootstrap/BootstrapWithCustomBootTask.beforeBootstrap.qunit.js +4 -4
- package/test/sap/ui/core/qunit/bootstrap/BootstrapWithCustomBootTask.qunit.js +1 -1
- package/test/sap/ui/core/qunit/bootstrap/BootstrapWithNoJQuery.qunit.js +2 -1
- package/test/sap/ui/core/qunit/bootstrap/CalendarClassLoadingWithCustomBootTask.beforeBootstrap.qunit.js +8 -4
- package/test/sap/ui/core/qunit/bootstrap/{CalendarClassLoadingWithCustomBootTaskAndPreload.beforeBootstrap.qunit.js → CalendarClassLoadingWithCustomBootTask.beforeBootstrap_legacy.qunit.js} +5 -1
- package/test/sap/ui/core/qunit/bootstrap/Configuration.qunit.js +32 -28
- package/test/sap/ui/core/qunit/bootstrap/{ConfigurationFlexibility_LibNotLoaded.qunit.html → ConfigurationFlexibility_LibConfigured_legacyAPIs.qunit.html} +1 -1
- package/test/sap/ui/core/qunit/bootstrap/{ConfigurationFlexibility_LibConfigured.qunit.js → ConfigurationFlexibility_LibConfigured_legacyAPIs.qunit.js} +5 -1
- package/test/sap/ui/core/qunit/bootstrap/{ConfigurationFlexibility_LibConfigured.qunit.html → ConfigurationFlexibility_LibLoaded_legacyAPIs.qunit.html} +1 -1
- package/test/sap/ui/core/qunit/bootstrap/{ConfigurationFlexibility_LibLoaded.qunit.js → ConfigurationFlexibility_LibLoaded_legacyAPIs.qunit.js} +5 -1
- package/test/sap/ui/core/qunit/bootstrap/{ConfigurationFlexibility_LibLoaded.qunit.html → ConfigurationFlexibility_LibNotLoaded_legacyAPIs.qunit.html} +1 -1
- package/test/sap/ui/core/qunit/bootstrap/{ConfigurationFlexibility_LibNotLoaded.qunit.js → ConfigurationFlexibility_LibNotLoaded_legacyAPIs.qunit.js} +5 -1
- package/test/sap/ui/core/qunit/bootstrap/Configuration_language_via_URL.qunit.js +5 -0
- package/test/sap/ui/core/qunit/bootstrap/ControlBehavior.qunit.js +5 -0
- package/test/sap/ui/core/qunit/bootstrap/DebugMode.beforeBootstrap.qunit.js +2 -2
- package/test/sap/ui/core/qunit/bootstrap/DebugMode.qunit.js +8 -8
- package/test/sap/ui/core/qunit/bootstrap/PreloadCfg.qunit.js +4 -4
- package/test/sap/ui/core/qunit/bootstrap/ThemeVersion.qunit.js +11 -10
- package/test/sap/ui/core/qunit/bootstrap/_checkCoreAndLibraryBooted.qunit.js +2 -2
- package/test/sap/ui/core/qunit/bootstrap/testsuite.bootstrap.qunit.js +68 -13
- package/test/sap/ui/core/qunit/compat_legacyAPIs/jquery.sap.stubs.qunit.html +0 -1
- package/test/sap/ui/core/qunit/component/Component.qunit.js +40 -21
- package/test/sap/ui/core/qunit/component/ComponentSupport.qunit.js +65 -39
- package/test/sap/ui/core/qunit/component/Component_containedInLibrary.qunit.js +25 -6
- package/test/sap/ui/core/qunit/component/Manifest.qunit.js +9 -9
- package/test/sap/ui/core/qunit/component/Metadata.qunit.js +5 -5
- package/test/sap/ui/core/qunit/component/Metadata_unavoidablySync.qunit.js +1 -2
- package/test/sap/ui/core/qunit/component/Models.qunit.js +295 -157
- package/test/sap/ui/core/qunit/component/Models_unavoidablySync.qunit.js +3 -3
- package/test/sap/ui/core/qunit/component/testdata/async/lib2/library-preload.js +3 -4
- package/test/sap/ui/core/qunit/component/testdata/async/lib2/library-preload.json +1 -1
- package/test/sap/ui/core/qunit/component/testdata/async/lib2/library.js +3 -4
- package/test/sap/ui/core/qunit/component/testdata/async/lib3/library-preload.js +3 -4
- package/test/sap/ui/core/qunit/component/testdata/async/lib3/library-preload.json +1 -1
- package/test/sap/ui/core/qunit/component/testdata/async/lib3/library.js +3 -3
- package/test/sap/ui/core/qunit/component/testdata/async/lib4/library-preload.js +3 -4
- package/test/sap/ui/core/qunit/component/testdata/async/lib4/library-preload.json +1 -1
- package/test/sap/ui/core/qunit/component/testdata/async/lib4/library.js +3 -4
- package/test/sap/ui/core/qunit/component/testdata/inherit/parent/i18n/i18n.properties +3 -0
- package/test/sap/ui/core/qunit/component/testdata/inherit/parent/manifest.json +3 -1
- package/test/sap/ui/core/qunit/component/testdata/v2models/parent/Component.js +1 -4
- package/test/sap/ui/core/qunit/component/testdata/v4models/Component.js +1 -2
- package/test/sap/ui/core/qunit/component/testdata/v4models/cacheTokens/Component.js +1 -2
- package/test/sap/ui/core/qunit/component/testdata/v4models/unsupportedVersion/Component.js +1 -2
- package/test/sap/ui/core/qunit/component/testdata/verticalLayout/Component.js +2 -3
- package/test/sap/ui/core/qunit/component/testdata/view/Main.controller.js +1 -1
- package/test/sap/ui/core/qunit/composite/XMLComposite.qunit.js +3 -2
- package/test/sap/ui/core/qunit/csp/ContentSecurityPolicy.qunit.js +0 -1
- package/test/sap/ui/core/qunit/dnd/DragAndDrop.qunit.js +3 -3
- package/test/sap/ui/core/qunit/dnd/DragInfo.qunit.js +2 -1
- package/test/sap/ui/core/qunit/format/FormatUtils.qunit.js +36 -0
- package/test/sap/ui/core/qunit/generic/ControlMemoryLeaks.qunit.js +1 -1
- package/test/sap/ui/core/qunit/generic/DuplicateIdCheck.qunit.js +2 -2
- package/test/sap/ui/core/qunit/i18n/Buddhist.qunit.js +6 -6
- package/test/sap/ui/core/qunit/i18n/CalendarUtils.qunit.js +3 -3
- package/test/sap/ui/core/qunit/i18n/GenericLocaleData.qunit.js +29 -29
- package/test/sap/ui/core/qunit/i18n/Japanese.qunit.js +6 -6
- package/test/sap/ui/core/qunit/i18n/LocaleData.qunit.js +92 -78
- package/test/sap/ui/core/qunit/i18n/UI5Date.qunit.js +199 -33
- package/test/sap/ui/core/qunit/i18n/UniversalDate.qunit.js +111 -119
- package/test/sap/ui/core/qunit/i18n/UniversalDateUtils.qunit.js +12 -38
- package/test/sap/ui/core/qunit/i18n/helper/_timezones.js +1 -1
- package/test/sap/ui/core/qunit/i18n/testsuite.i18n.qunit.js +29 -28
- package/test/sap/ui/core/qunit/internal/1RingModels.qunit.html +2 -1
- package/test/sap/ui/core/qunit/internal/1RingModels.qunit.js +3 -9
- package/test/sap/ui/core/qunit/internal/testsuite.models.qunit.js +7 -0
- package/test/sap/ui/core/qunit/jquery.sap.events.qunit.js +4 -68
- package/test/sap/ui/core/qunit/json/JSONBinding.qunit.js +4 -6
- package/test/sap/ui/core/qunit/json/JSONListBinding.qunit.js +0 -1
- package/test/sap/ui/core/qunit/json/JSONModel.qunit.js +5 -18
- package/test/sap/ui/core/qunit/json/JSONPropertyBinding.qunit.js +15 -23
- package/test/sap/ui/core/qunit/json/JSONTreeBinding.qunit.js +6 -8
- package/test/sap/ui/core/qunit/json/JSONTwoWay.qunit.js +11 -13
- package/test/sap/ui/core/qunit/loader/asyncMode.qunit.html +0 -2
- package/test/sap/ui/core/qunit/loader/asyncMode.qunit.js +40 -34
- package/test/sap/ui/core/qunit/loader/{asyncMode_unavoidablySync.qunit.html → asyncMode_legacyAPIs.qunit.html} +1 -1
- package/test/sap/ui/core/qunit/loader/{asyncMode_unavoidablySync.qunit.js → asyncMode_legacyAPIs.qunit.js} +33 -4
- package/test/sap/ui/core/qunit/loader/conflictWithRequire.qunit.js +16 -16
- package/test/sap/ui/core/qunit/loader/testsuite.loader.qunit.js +2 -2
- package/test/sap/ui/core/qunit/messages/MessageMixin.qunit.js +46 -2
- package/test/sap/ui/core/qunit/mockserver/MockServer.qunit.js +859 -245
- package/test/sap/ui/core/qunit/mockserver/testsuite.mockserver.qunit.js +8 -0
- package/test/sap/ui/core/qunit/model/FAR_CUSTOMER_LINE_ITEMS.metadata.xml +3 -0
- package/test/sap/ui/core/qunit/model/FAR_CUSTOMER_LINE_ITEMS.metadata_ItemCustomer.xml +5 -0
- package/test/sap/ui/core/qunit/model/Filter.qunit.js +135 -44
- package/test/sap/ui/core/qunit/model/Sorter.qunit.js +10 -10
- package/test/sap/ui/core/qunit/model/_Helper.qunit.js +3 -1
- package/test/sap/ui/core/qunit/mvc/AnyViewAsync.qunit.js +11 -3
- package/test/sap/ui/core/qunit/mvc/AsyncXMLView.qunit.js +5 -5
- package/test/sap/ui/core/qunit/mvc/EventHandlerResolver.qunit.js +73 -47
- package/test/sap/ui/core/qunit/mvc/XMLTemplateProcessorRequireXML.qunit.js +0 -4
- package/test/sap/ui/core/qunit/mvc/XMLView.qunit.js +78 -7
- package/test/sap/ui/core/qunit/mvc/testdata/inner.view.xml +3 -0
- package/test/sap/ui/core/qunit/mvc/testdata/middle.view.xml +8 -0
- package/test/sap/ui/core/qunit/mvc/testdata/outer.view.xml +5 -0
- package/test/sap/ui/core/qunit/mvc/testdata/test.controller.js +1 -1
- package/test/sap/ui/core/qunit/mvc/viewprocessing/ViewProcessing.qunit.js +3 -3
- package/test/sap/ui/core/qunit/mvc_legacyAPIs/AsyncHTMLView_legacyAPIs.qunit.js +6 -7
- package/test/sap/ui/core/qunit/mvc_legacyAPIs/AsyncXMLView_legacyAPIs.qunit.js +5 -7
- package/test/sap/ui/core/qunit/mvc_legacyAPIs/View_legacyAPIs.qunit.js +46 -1
- package/test/sap/ui/core/qunit/mvc_legacyAPIs/XMLTemplateProcessorRequireXML_legacyAPIs.qunit.js +0 -4
- package/test/sap/ui/core/qunit/mvc_legacyAPIs/XMLView_legacyAPIs.qunit.js +5 -5
- package/test/sap/ui/core/qunit/odata/AnnotationHelper.qunit.js +60 -62
- package/test/sap/ui/core/qunit/odata/ODataAnnotations.qunit.js +9 -9
- package/test/sap/ui/core/qunit/odata/ODataMessageParser.qunit.js +12 -46
- package/test/sap/ui/core/qunit/odata/ODataMessageParserNoFakeService.qunit.js +4 -3
- package/test/sap/ui/core/qunit/odata/ODataMetaModel.qunit.js +7 -0
- package/test/sap/ui/core/qunit/odata/ODataMetadataNoFakeService.qunit.js +40 -0
- package/test/sap/ui/core/qunit/odata/ODataUtils.qunit.js +365 -13
- package/test/sap/ui/core/qunit/odata/_AnnotationHelperExpression.qunit.js +7 -7
- package/test/sap/ui/core/qunit/odata/type/Boolean.qunit.js +5 -5
- package/test/sap/ui/core/qunit/odata/type/Currency.qunit.js +5 -5
- package/test/sap/ui/core/qunit/odata/type/Date.qunit.js +11 -11
- package/test/sap/ui/core/qunit/odata/type/DateTimeBase.qunit.js +54 -55
- package/test/sap/ui/core/qunit/odata/type/DateTimeWithTimezone.qunit.js +8 -8
- package/test/sap/ui/core/qunit/odata/type/Decimal.qunit.js +7 -7
- package/test/sap/ui/core/qunit/odata/type/Double.qunit.js +7 -7
- package/test/sap/ui/core/qunit/odata/type/Int.qunit.js +7 -7
- package/test/sap/ui/core/qunit/odata/type/Int64.qunit.js +7 -7
- package/test/sap/ui/core/qunit/odata/type/Single.qunit.js +6 -6
- package/test/sap/ui/core/qunit/odata/type/Time.qunit.js +7 -7
- package/test/sap/ui/core/qunit/odata/type/TimeOfDay.qunit.js +12 -12
- package/test/sap/ui/core/qunit/odata/type/Unit.qunit.js +5 -5
- package/test/sap/ui/core/qunit/odata/v2/CanonicalRequests.qunit.js +1 -1
- package/test/sap/ui/core/qunit/odata/v2/ODataModel.integration.qunit.js +580 -130
- package/test/sap/ui/core/qunit/odata/v2/ODataModelNoFakeService.qunit.js +79 -20
- package/test/sap/ui/core/qunit/odata/v2/ODataTreeBindingFlatNoFakeService.qunit.js +23 -18
- package/test/sap/ui/core/qunit/odata/v2/ODataTreeBindingNoFakeService.qunit.js +24 -0
- package/test/sap/ui/core/qunit/odata/v2/ODataV2Model.qunit.js +25 -203
- package/test/sap/ui/core/qunit/odata/v2/V2ODataModel.qunit.js +55 -192
- package/test/sap/ui/core/qunit/odata/v2/V2ODataModelB.qunit.js +47 -261
- package/test/sap/ui/core/qunit/odata/v2/V2ODataModelDataState.qunit.js +9 -9
- package/test/sap/ui/core/qunit/odata/v4/AnnotationHelper.qunit.js +4 -1
- package/test/sap/ui/core/qunit/odata/v4/Context.qunit.js +43 -5
- package/test/sap/ui/core/qunit/odata/v4/ODataBinding.qunit.js +30 -49
- package/test/sap/ui/core/qunit/odata/v4/ODataContextBinding.qunit.js +7 -6
- package/test/sap/ui/core/qunit/odata/v4/ODataListBinding.qunit.js +142 -30
- package/test/sap/ui/core/qunit/odata/v4/ODataMetaModel.qunit.js +8 -6
- package/test/sap/ui/core/qunit/odata/v4/ODataModel.integration.qunit.js +2317 -470
- package/test/sap/ui/core/qunit/odata/v4/ODataModel.qunit.js +12 -43
- package/test/sap/ui/core/qunit/odata/v4/ODataParentBinding.qunit.js +75 -40
- package/test/sap/ui/core/qunit/odata/v4/ODataPropertyBinding.qunit.js +43 -9
- package/test/sap/ui/core/qunit/odata/v4/ODataUtils.qunit.js +7 -7
- package/test/sap/ui/core/qunit/odata/v4/data/metadata_special_cases.xml +4 -0
- package/test/sap/ui/core/qunit/odata/v4/lib/_AggregationCache.qunit.js +381 -182
- package/test/sap/ui/core/qunit/odata/v4/lib/_AggregationHelper.qunit.js +46 -29
- package/test/sap/ui/core/qunit/odata/v4/lib/_Cache.qunit.js +38 -26
- package/test/sap/ui/core/qunit/odata/v4/lib/_Helper.qunit.js +38 -10
- package/test/sap/ui/core/qunit/odata/v4/lib/_Requestor.qunit.js +45 -4
- package/test/sap/ui/core/qunit/odata/v4/lib/_TreeState.qunit.js +134 -0
- package/test/sap/ui/core/qunit/odata/v4/lib/_V2Requestor.qunit.js +7 -7
- package/test/sap/ui/core/qunit/odata/v4/testsuite.odatav4.qunit.js +1 -0
- package/test/sap/ui/core/qunit/opa/OpaBuilder.qunit.js +3 -1
- package/test/sap/ui/core/qunit/opa/RecordReplay.qunit.js +0 -1
- package/test/sap/ui/core/qunit/opa/_ControlFinder.qunit.js +5 -1
- package/test/sap/ui/core/qunit/opa/actions/EnterText.qunit.js +0 -1
- package/test/sap/ui/core/qunit/opa/actions/Press.qunit.js +4 -3
- package/test/sap/ui/core/qunit/opa/autowaiter/_XHRWaiter.js +1 -1
- package/test/sap/ui/core/qunit/opa/autowaiter/_navigationContainerWaiter.js +5 -5
- package/test/sap/ui/core/qunit/opa/fixture/bindingPath.js +20 -12
- package/test/sap/ui/core/qunit/opa/fixture/busyAfterStart.html +4 -4
- package/test/sap/ui/core/qunit/opa/fixture/emptySite.html +4 -2
- package/test/sap/ui/core/qunit/opa/fixture/emptySiteWithOpaExtensions.html +4 -2
- package/test/sap/ui/core/qunit/opa/fixture/failingOpaTest-qunit1.html +4 -1
- package/test/sap/ui/core/qunit/opa/fixture/failingOpaTest-qunit2.html +4 -1
- package/test/sap/ui/core/qunit/opa/fixture/failingOpaTest.js +6 -3
- package/test/sap/ui/core/qunit/opa/fixture/miniUI5Site.html +5 -5
- package/test/sap/ui/core/qunit/opa/fixture/opaQUnitTest-qunit1.html +4 -2
- package/test/sap/ui/core/qunit/opa/fixture/opaQUnitTest-qunit2.html +4 -2
- package/test/sap/ui/core/qunit/opa/fixture/opaQUnitTest.js +4 -1
- package/test/sap/ui/core/qunit/opa/fixture/opaReportTest-qunit1.html +4 -2
- package/test/sap/ui/core/qunit/opa/fixture/opaReportTest-qunit2.html +4 -2
- package/test/sap/ui/core/qunit/opa/fixture/opaReportTest.js +4 -1
- package/test/sap/ui/core/qunit/opa/fixture/qunitPause-qunit1.html +3 -1
- package/test/sap/ui/core/qunit/opa/fixture/qunitPause-qunit2.html +3 -1
- package/test/sap/ui/core/qunit/opa/fixture/qunitPause.qunit.js +4 -1
- package/test/sap/ui/core/qunit/opa/fixture/uncaughtError.html +4 -3
- package/test/sap/ui/core/qunit/opa/fixture/uncaughtError.js +4 -1
- package/test/sap/ui/core/qunit/opa/matchers/I18NText.qunit.js +1 -1
- package/test/sap/ui/core/qunit/opa/matchers/LabelFor.qunit.js +2 -1
- package/test/sap/ui/core/qunit/opa/matchers/_Busy.qunit.js +2 -1
- package/test/sap/ui/core/qunit/opa/opa5/iFrame.qunit.js +6 -5
- package/test/sap/ui/core/qunit/opa/opa5/iFrameLogging.qunit.js +26 -6
- package/test/sap/ui/core/qunit/opa/opa5/matchersInFrame.qunit.js +1 -1
- package/test/sap/ui/core/qunit/opa/selectors/_BindingPath.js +2 -2
- package/test/sap/ui/core/qunit/opa/selectors/_ControlSelectorGenerator.js +3 -3
- package/test/sap/ui/core/qunit/opa/selectors/_ControlSelectorValidator.js +5 -2
- package/test/sap/ui/core/qunit/opa/selectors/_DropdownItem.js +3 -2
- package/test/sap/ui/core/qunit/performance/trace/FESR.qunit.js +28 -18
- package/test/sap/ui/core/qunit/performance/trace/Interaction.qunit.js +26 -12
- package/test/sap/ui/core/qunit/resource/ResourceBinding.qunit.js +5 -8
- package/test/sap/ui/core/qunit/resource/ResourceModel.qunit.js +71 -64
- package/test/sap/ui/core/qunit/routing/async/Router.qunit.js +55 -2
- package/test/sap/ui/core/qunit/routing/fixture/router/component/parentRoute/Child/Component.js +0 -1
- package/test/sap/ui/core/qunit/routing/fixture/router/component/parentRoute/Child/manifest.json +5 -1
- package/test/sap/ui/core/qunit/routing/fixture/router/component/parentRoute/Parent/Component.js +0 -1
- package/test/sap/ui/core/qunit/routing/fixture/router/component/parentRoute/Parent/manifest.json +5 -1
- package/test/sap/ui/core/qunit/routing/fixture/router/component/parentRoute/ParentExtended/Component.js +0 -1
- package/test/sap/ui/core/qunit/routing/fixture/router/component/titleChanged/homeRoute/Component.js +15 -0
- package/test/sap/ui/core/qunit/routing/fixture/router/component/titleChanged/homeRoute/manifest.json +37 -0
- package/test/sap/ui/core/qunit/routing/fixture/router/component/titleChanged/homeRoute/view/MyView1.view.xml +3 -0
- package/test/sap/ui/core/qunit/routing/fixture/router/component/titleChanged/homeRoute/view/RootView.view.xml +3 -0
- package/test/sap/ui/core/qunit/rule/app/syncXHR.qunit.js +9 -0
- package/test/sap/ui/core/qunit/rule/model/modelSupport.qunit.js +4 -7
- package/test/sap/ui/core/qunit/security/Security.qunit.js +133 -0
- package/test/sap/ui/core/qunit/service/Service.qunit.js +13 -10
- package/test/sap/ui/core/qunit/testdata/libraries/customBundle/custom-bundle.js +2 -2
- package/test/sap/ui/core/qunit/testdata/libraries/customBundle/lib2/library-preload.js +1 -1
- package/test/sap/ui/core/qunit/testdata/libraries/customBundle/lib3/library-preload.js +1 -1
- package/test/sap/ui/core/qunit/testdata/libraries/customCss/lib1/library.js +3 -4
- package/test/sap/ui/core/qunit/testdata/libraries/make.js +4 -4
- package/test/sap/ui/core/qunit/testdata/libraries/scenario1/lib1/library-preload.js +7 -4
- package/test/sap/ui/core/qunit/testdata/libraries/scenario1/lib1/library.js +7 -4
- package/test/sap/ui/core/qunit/testdata/libraries/scenario1/lib2/library-preload.json +1 -1
- package/test/sap/ui/core/qunit/testdata/libraries/scenario1/lib2/library.js +7 -4
- package/test/sap/ui/core/qunit/testdata/libraries/scenario1/lib3/library-preload.js +5 -4
- package/test/sap/ui/core/qunit/testdata/libraries/scenario1/lib3/library.js +5 -4
- package/test/sap/ui/core/qunit/testdata/libraries/scenario1/lib4/library-preload.js +3 -3
- package/test/sap/ui/core/qunit/testdata/libraries/scenario1/lib4/library-preload.json +1 -1
- package/test/sap/ui/core/qunit/testdata/libraries/scenario1/lib4/library.js +3 -3
- package/test/sap/ui/core/qunit/testdata/libraries/scenario1/lib5/library-preload.json +1 -1
- package/test/sap/ui/core/qunit/testdata/libraries/scenario1/lib5/library.js +3 -3
- package/test/sap/ui/core/qunit/testdata/libraries/scenario1/lib6/library-preload.js +3 -3
- package/test/sap/ui/core/qunit/testdata/libraries/scenario1/lib6/library.js +3 -3
- package/test/sap/ui/core/qunit/testdata/libraries/scenario1/lib7/library.js +3 -3
- package/test/sap/ui/core/qunit/testdata/libraries/scenario13/lib1/library-preload.js +7 -4
- package/test/sap/ui/core/qunit/testdata/libraries/scenario13/lib1/library.js +7 -4
- package/test/sap/ui/core/qunit/testdata/libraries/scenario13/lib2/library-preload.json +1 -1
- package/test/sap/ui/core/qunit/testdata/libraries/scenario13/lib2/library.js +7 -4
- package/test/sap/ui/core/qunit/testdata/libraries/scenario13/lib3/library-preload.js +5 -4
- package/test/sap/ui/core/qunit/testdata/libraries/scenario13/lib3/library.js +5 -4
- package/test/sap/ui/core/qunit/testdata/libraries/scenario13/lib4/library-preload.js +3 -3
- package/test/sap/ui/core/qunit/testdata/libraries/scenario13/lib4/library-preload.json +1 -1
- package/test/sap/ui/core/qunit/testdata/libraries/scenario13/lib4/library.js +3 -3
- package/test/sap/ui/core/qunit/testdata/libraries/scenario13/lib5/library-preload.json +1 -1
- package/test/sap/ui/core/qunit/testdata/libraries/scenario13/lib5/library.js +3 -3
- package/test/sap/ui/core/qunit/testdata/libraries/scenario13/lib6/library-preload.js +3 -3
- package/test/sap/ui/core/qunit/testdata/libraries/scenario13/lib6/library.js +3 -3
- package/test/sap/ui/core/qunit/testdata/libraries/scenario13/lib7/library.js +3 -3
- package/test/sap/ui/core/qunit/testdata/libraries/scenario14/lib1/library-preload.js +3 -3
- package/test/sap/ui/core/qunit/testdata/libraries/scenario14/lib1/library.js +3 -3
- package/test/sap/ui/core/qunit/testdata/libraries/scenario14/lib2/library-preload.js +3 -3
- package/test/sap/ui/core/qunit/testdata/libraries/scenario14/lib2/library.js +3 -3
- package/test/sap/ui/core/qunit/testdata/libraries/scenario14/lib3/library-preload.js +3 -3
- package/test/sap/ui/core/qunit/testdata/libraries/scenario14/lib3/library.js +3 -3
- package/test/sap/ui/core/qunit/testdata/libraries/scenario14/lib4/library-preload.js +3 -3
- package/test/sap/ui/core/qunit/testdata/libraries/scenario14/lib4/library.js +3 -3
- package/test/sap/ui/core/qunit/testdata/libraries/scenario14/lib5/library-preload.js +3 -3
- package/test/sap/ui/core/qunit/testdata/libraries/scenario14/lib5/library.js +3 -3
- package/test/sap/ui/core/qunit/testdata/libraries/scenario14/lib6/library-preload.js +3 -3
- package/test/sap/ui/core/qunit/testdata/libraries/scenario14/lib6/library.js +3 -3
- package/test/sap/ui/core/qunit/testdata/libraries/scenario14/lib7/library-preload.js +3 -3
- package/test/sap/ui/core/qunit/testdata/libraries/scenario14/lib7/library.js +3 -3
- package/test/sap/ui/core/qunit/testdata/libraries/scenario14/lib8/library-preload.js +3 -3
- package/test/sap/ui/core/qunit/testdata/libraries/scenario14/lib8/library.js +3 -3
- package/test/sap/ui/core/qunit/testdata/libraries/scenario15/lib1/library-preload.js +6 -4
- package/test/sap/ui/core/qunit/testdata/libraries/scenario15/lib1/library.js +6 -4
- package/test/sap/ui/core/qunit/testdata/libraries/scenario15/lib10/library-preload.js +3 -3
- package/test/sap/ui/core/qunit/testdata/libraries/scenario15/lib10/library.js +3 -3
- package/test/sap/ui/core/qunit/testdata/libraries/scenario15/lib2/library-preload.json +1 -1
- package/test/sap/ui/core/qunit/testdata/libraries/scenario15/lib2/library.js +7 -4
- package/test/sap/ui/core/qunit/testdata/libraries/scenario15/lib3/library-preload.js +5 -4
- package/test/sap/ui/core/qunit/testdata/libraries/scenario15/lib3/library.js +5 -4
- package/test/sap/ui/core/qunit/testdata/libraries/scenario15/lib4/library-preload.js +3 -3
- package/test/sap/ui/core/qunit/testdata/libraries/scenario15/lib4/library-preload.json +1 -1
- package/test/sap/ui/core/qunit/testdata/libraries/scenario15/lib4/library.js +3 -3
- package/test/sap/ui/core/qunit/testdata/libraries/scenario15/lib5/library-preload.json +1 -1
- package/test/sap/ui/core/qunit/testdata/libraries/scenario15/lib5/library.js +3 -3
- package/test/sap/ui/core/qunit/testdata/libraries/scenario15/lib6/library-preload.js +3 -3
- package/test/sap/ui/core/qunit/testdata/libraries/scenario15/lib6/library.js +3 -3
- package/test/sap/ui/core/qunit/testdata/libraries/scenario15/lib7/library-preload.js +3 -3
- package/test/sap/ui/core/qunit/testdata/libraries/scenario15/lib7/library.js +3 -3
- package/test/sap/ui/core/qunit/testdata/libraries/scenario15/lib8/library-preload.js +5 -4
- package/test/sap/ui/core/qunit/testdata/libraries/scenario15/lib8/library.js +5 -4
- package/test/sap/ui/core/qunit/testdata/libraries/scenario15/lib9/library-preload.js +5 -4
- package/test/sap/ui/core/qunit/testdata/libraries/scenario15/lib9/library.js +5 -4
- package/test/sap/ui/core/qunit/testdata/libraries/scenario16/embeddingLib/library-preload.js +3 -3
- package/test/sap/ui/core/qunit/testdata/libraries/scenario16/embeddingLib/library.js +3 -3
- package/test/sap/ui/core/qunit/testdata/libraries/scenario2/lib1/library-preload.js +7 -4
- package/test/sap/ui/core/qunit/testdata/libraries/scenario2/lib1/library.js +7 -4
- package/test/sap/ui/core/qunit/testdata/libraries/scenario2/lib2/library-preload.json +1 -1
- package/test/sap/ui/core/qunit/testdata/libraries/scenario2/lib2/library.js +7 -4
- package/test/sap/ui/core/qunit/testdata/libraries/scenario2/lib3/library-preload.js +5 -4
- package/test/sap/ui/core/qunit/testdata/libraries/scenario2/lib3/library.js +5 -4
- package/test/sap/ui/core/qunit/testdata/libraries/scenario2/lib4/library-preload.js +3 -3
- package/test/sap/ui/core/qunit/testdata/libraries/scenario2/lib4/library-preload.json +1 -1
- package/test/sap/ui/core/qunit/testdata/libraries/scenario2/lib4/library.js +3 -3
- package/test/sap/ui/core/qunit/testdata/libraries/scenario2/lib5/library-preload.json +1 -1
- package/test/sap/ui/core/qunit/testdata/libraries/scenario2/lib5/library.js +3 -3
- package/test/sap/ui/core/qunit/testdata/libraries/scenario2/lib6/library-preload.js +3 -3
- package/test/sap/ui/core/qunit/testdata/libraries/scenario2/lib6/library.js +3 -3
- package/test/sap/ui/core/qunit/testdata/libraries/scenario2/lib7/library.js +3 -3
- package/test/sap/ui/core/qunit/testdata/libraries/scenario3/lib1/library-preload.js +5 -4
- package/test/sap/ui/core/qunit/testdata/libraries/scenario3/lib1/library.js +5 -4
- package/test/sap/ui/core/qunit/testdata/libraries/scenario3/lib2/library-preload.json +1 -1
- package/test/sap/ui/core/qunit/testdata/libraries/scenario3/lib2/library.js +6 -4
- package/test/sap/ui/core/qunit/testdata/libraries/scenario3/lib3/library-preload.js +3 -3
- package/test/sap/ui/core/qunit/testdata/libraries/scenario3/lib3/library.js +3 -3
- package/test/sap/ui/core/qunit/testdata/libraries/scenario4/lib1/library-preload.js +5 -4
- package/test/sap/ui/core/qunit/testdata/libraries/scenario4/lib1/library.js +5 -4
- package/test/sap/ui/core/qunit/testdata/libraries/scenario4/lib2/library-preload.json +1 -1
- package/test/sap/ui/core/qunit/testdata/libraries/scenario4/lib2/library.js +5 -4
- package/test/sap/ui/core/qunit/testdata/libraries/scenario5/lib1/library-preload.js +7 -4
- package/test/sap/ui/core/qunit/testdata/libraries/scenario5/lib1/library.js +7 -4
- package/test/sap/ui/core/qunit/testdata/libraries/scenario5/lib2/library-preload.js +6 -4
- package/test/sap/ui/core/qunit/testdata/libraries/scenario5/lib2/library.js +6 -4
- package/test/sap/ui/core/qunit/testdata/libraries/scenario5/lib3/library-preload.js +5 -4
- package/test/sap/ui/core/qunit/testdata/libraries/scenario5/lib3/library.js +5 -4
- package/test/sap/ui/core/qunit/testdata/libraries/scenario5/lib4/library-preload.js +3 -3
- package/test/sap/ui/core/qunit/testdata/libraries/scenario5/lib4/library-preload.json +1 -1
- package/test/sap/ui/core/qunit/testdata/libraries/scenario5/lib4/library.js +3 -3
- package/test/sap/ui/core/qunit/testdata/libraries/scenario5/lib5/library-preload.json +1 -1
- package/test/sap/ui/core/qunit/testdata/libraries/scenario5/lib5/library.js +3 -3
- package/test/sap/ui/core/qunit/testdata/libraries/scenario5/lib6/library-preload.js +3 -3
- package/test/sap/ui/core/qunit/testdata/libraries/scenario5/lib6/library.js +3 -3
- package/test/sap/ui/core/qunit/testdata/libraries/scenario6/lib1/library-preload.json +1 -1
- package/test/sap/ui/core/qunit/testdata/libraries/scenario6/lib1/library.js +3 -3
- package/test/sap/ui/core/qunit/testdata/libraries/scenario6/lib2/library-preload.json +1 -1
- package/test/sap/ui/core/qunit/testdata/libraries/scenario6/lib2/library.js +3 -3
- package/test/sap/ui/core/qunit/testdata/libraries/scenario7/lib1/library-preload.js +3 -3
- package/test/sap/ui/core/qunit/testdata/libraries/scenario7/lib1/library-preload.json +1 -1
- package/test/sap/ui/core/qunit/testdata/libraries/scenario7/lib1/library.js +3 -3
- package/test/sap/ui/core/qunit/testdata/libraries/scenario7/lib2/library-preload.json +1 -1
- package/test/sap/ui/core/qunit/testdata/libraries/scenario7/lib2/library.js +3 -3
- package/test/sap/ui/core/qunit/testdata/libraries/scenario7/lib3/library-preload.js +3 -3
- package/test/sap/ui/core/qunit/testdata/libraries/scenario7/lib3/library.js +3 -3
- package/test/sap/ui/core/qunit/testdata/libraries/scenario7/lib4/library-preload.json +1 -1
- package/test/sap/ui/core/qunit/testdata/libraries/scenario7/lib4/library.js +3 -3
- package/test/sap/ui/core/qunit/testdata/libraries/scenario7/lib5/library-preload.js +3 -3
- package/test/sap/ui/core/qunit/testdata/libraries/scenario7/lib5/library.js +3 -3
- package/test/sap/ui/core/qunit/testdata/libraries/scenario8/lib1/library-preload.js +3 -3
- package/test/sap/ui/core/qunit/testdata/libraries/scenario8/lib1/library-preload.json +1 -1
- package/test/sap/ui/core/qunit/testdata/libraries/scenario8/lib1/library.js +3 -3
- package/test/sap/ui/core/qunit/testdata/libraries/scenario8/lib2/library-preload.json +1 -1
- package/test/sap/ui/core/qunit/testdata/libraries/scenario8/lib2/library.js +3 -3
- package/test/sap/ui/core/qunit/testdata/libraries/scenario8/lib3/library-preload.js +3 -3
- package/test/sap/ui/core/qunit/testdata/libraries/scenario8/lib3/library.js +3 -3
- package/test/sap/ui/core/qunit/testdata/libraries/scenario8/lib4/library-preload.json +1 -1
- package/test/sap/ui/core/qunit/testdata/libraries/scenario8/lib4/library.js +3 -3
- package/test/sap/ui/core/qunit/testdata/libraries/scenario8/lib5/library-preload.js +3 -3
- package/test/sap/ui/core/qunit/testdata/libraries/scenario8/lib5/library.js +3 -3
- package/test/sap/ui/core/qunit/testdata/libraries/scenario9/lib1/library-preload.js +3 -3
- package/test/sap/ui/core/qunit/testdata/libraries/scenario9/lib1/library.js +3 -3
- package/test/sap/ui/core/qunit/testdata/libraries/terminologies/absoluteBundleUrl/library-preload.js +2 -2
- package/test/sap/ui/core/qunit/testdata/libraries/terminologies/integration/lib/library-preload.js +1 -1
- package/test/sap/ui/core/qunit/testdata/libraries/terminologies/notLoadedYet/library-preload.js +2 -2
- package/test/sap/ui/core/qunit/testdata/libraries/terminologies/simple/library-preload.js +2 -2
- package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib1/library.js +6 -4
- package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib10/library.js +6 -4
- package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib11/library.js +5 -3
- package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib12/library.js +5 -3
- package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib13/library.js +5 -3
- package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib14/library.js +5 -3
- package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib15/library.js +5 -3
- package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib16/library.js +5 -3
- package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib17/library.js +6 -3
- package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib2/library.js +6 -4
- package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib3/library.js +6 -4
- package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib4/library.js +6 -4
- package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib5/library.js +6 -4
- package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib6/library.js +6 -4
- package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib7/library.js +6 -4
- package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib8/library.js +6 -4
- package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib9/library.js +6 -4
- package/test/sap/ui/core/qunit/testdata/xml-require/view/XMLTemplateProcessorAsync_require.view.xml +0 -1
- package/test/sap/ui/core/qunit/testsuite.qunit.js +2 -2
- package/test/sap/ui/core/qunit/testsuites/testsuite.control.framework.qunit.js +35 -0
- package/test/sap/ui/core/qunit/testsuites/testsuite.controls.qunit.js +2 -1
- package/test/sap/ui/core/qunit/testsuites/testsuite.eventing.qunit.js +0 -11
- package/test/sap/ui/core/qunit/testsuites/testsuite.security.qunit.js +7 -0
- package/test/sap/ui/core/qunit/testsuites/testsuite.theming.qunit.js +4 -0
- package/test/sap/ui/core/qunit/types/Date.qunit.js +5 -5
- package/test/sap/ui/core/qunit/types/DateFormat.qunit.js +92 -99
- package/test/sap/ui/core/qunit/types/DateFormatTimezones.qunit.js +50 -50
- package/test/sap/ui/core/qunit/types/DateInterval.qunit.js +5 -5
- package/test/sap/ui/core/qunit/types/FileSizeFormat.qunit.js +74 -4
- package/test/sap/ui/core/qunit/types/NumberFormat.qunit.js +332 -166
- package/test/sap/ui/core/qunit/types/NumberFormatCurrencies.qunit.js +60 -24
- package/test/sap/ui/core/qunit/types/NumberFormatCurrenciesTrailing.qunit.js +21 -21
- package/test/sap/ui/core/qunit/types/Types.qunit.js +51 -48
- package/test/sap/ui/core/qunit/types/ValidationHooks.qunit.js +151 -78
- package/test/sap/ui/core/qunit/types/testsuite.types.qunit.js +7 -17
- package/test/sap/ui/core/qunit/{types → ui5classes}/DataType.qunit.js +174 -17
- package/test/sap/ui/core/qunit/{ManagedObjectMetadata.qunit.js → ui5classes/ManagedObjectMetadata.qunit.js} +0 -1
- package/test/sap/ui/core/qunit/ui5classes/ManagedObjectRegistry.qunit.js +1 -1
- package/test/sap/ui/core/qunit/{ManagedObject_BindingParser.qunit.js → ui5classes/ManagedObject_BindingParser.qunit.js} +1 -1
- package/test/sap/ui/core/qunit/ui5classes/testsuite.ui5classes.qunit.html +11 -0
- package/test/sap/ui/core/qunit/util/LabelEnablement.qunit.js +62 -0
- package/test/sap/ui/core/qunit/util/PasteHelper.qunit.js +5 -5
- package/test/sap/ui/core/qunit/util/Popup.qunit.js +3 -71
- package/test/sap/ui/core/qunit/util/ValueStateSupport.qunit.js +3 -3
- package/test/sap/ui/core/qunit/util/jQuery.sap.Version.qunit.js +6 -0
- package/test/sap/ui/core/qunit/util/jQuery.sap.measure.qunit.js +31 -16
- package/test/sap/ui/core/qunit/util/jquery.sap.trace.qunit.js +1 -1
- package/test/sap/ui/core/qunit/util/postmessage/ConfirmationDialog.qunit.js +4 -6
- package/test/sap/ui/core/qunit/util/reflection/BaseTreeModifier.qunit.js +11 -2
- package/test/sap/ui/core/qunit/util/reflection/JsControlTreeModifier.qunit.js +4 -4
- package/test/sap/ui/core/qunit/util/reflection/XmlTreeModifier.qunit.js +4 -4
- package/test/sap/ui/core/qunit/util/support/SupportTool.qunit.js +3 -2
- package/test/sap/ui/core/qunit/util/support/TechnicalInfo.opa.qunit.js +22 -83
- package/test/sap/ui/core/qunit/util/support/TechnicalInfo.qunit.js +3 -3
- package/test/sap/ui/core/qunit/util/support/TechnicalInfoDebugModules.opa.qunit.js +22 -83
- package/test/sap/ui/core/qunit/xml/XMLBinding.qunit.js +0 -2
- package/test/sap/ui/core/qunit/xml/XMLModel.qunit.js +3 -4
- package/test/sap/ui/core/qunit/xml/XMLPropertyBinding.qunit.js +12 -14
- package/test/sap/ui/core/qunit/xml/XMLTreeBinding.qunit.js +4 -6
- package/test/sap/ui/core/qunit/xml/XMLTwoWay.qunit.js +8 -10
- package/test/sap/ui/core/relnotes/changes-1.120.json +0 -510
- package/test/sap/ui/core/relnotes/changes-1.121.json +604 -0
- package/test/sap/ui/core/samples/components/config/modelPreloadAndEarlyRequests/manifest.json +3 -5
- package/test/sap/ui/core/samples/databinding/UnitTable.controller.js +5 -5
- package/test/sap/ui/core/terminologies/App.controller.js +3 -4
- package/test/sap/ui/core/terminologies/main.js +4 -4
- 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/qunit/testrunner.html +5 -2
- package/test/testsuite/js/samples.js +5 -4
- package/test/testsuite/js/settings.js +1 -1
- package/test/testsuite/js/testframe.js +1 -1
- package/test/testsuite/welcome.html +1 -1
- package/LICENSES/BSD-2-Clause.txt +0 -22
- package/test/sap/ui/core/demokit/sample/odata/v4/FlexibleColumnLayout/Formatter.js +0 -22
- package/test/sap/ui/core/qunit/ManagedObjectRegistry.qunit.js +0 -150
- package/test/sap/ui/core/qunit/testdata/uilib-using-legacy-module-apis/.library +0 -17
- package/test/sap/ui/core/qunit/testdata/uilib-using-legacy-module-apis/TestButton.js +0 -85
- package/test/sap/ui/core/qunit/testdata/uilib-using-legacy-module-apis/TestButtonRenderer.js +0 -63
- package/test/sap/ui/core/qunit/testdata/uilib-using-legacy-module-apis/library.js +0 -24
- package/test/sap/ui/core/qunit/testdata/uilib-using-legacy-module-apis/themes/base/library.css +0 -26
- package/test/sap/ui/core/qunit/testsuites/testsuite.managed.object.qunit.html +0 -12
- package/test/sap/ui/core/qunit/testsuites/testsuite.managed.object.qunit.js +0 -76
- /package/test/sap/ui/core/qunit/bootstrap/{DebugMode.qunit.html → DebugModeSync.qunit.html} +0 -0
- /package/test/sap/ui/core/qunit/{types → ui5classes}/AlternativeTypes.qunit.js +0 -0
- /package/test/sap/ui/core/qunit/{ManagedObject.qunit.js → ui5classes/ManagedObject.qunit.js} +0 -0
- /package/test/sap/ui/core/qunit/{ManagedObjectObserver.qunit.js → ui5classes/ManagedObjectObserver.qunit.js} +0 -0
- /package/test/sap/ui/core/qunit/{ManagedObject_forwardAggregation.qunit.js → ui5classes/ManagedObject_forwardAggregation.qunit.js} +0 -0
- /package/test/sap/ui/core/qunit/{ManagedObject_isPropertyInitial.qunit.js → ui5classes/ManagedObject_isPropertyInitial.qunit.js} +0 -0
- /package/test/sap/ui/core/qunit/{Metadata.qunit.js → ui5classes/Metadata.qunit.js} +0 -0
- /package/test/sap/ui/core/qunit/{Object.qunit.js → ui5classes/Object.qunit.js} +0 -0
- /package/test/sap/ui/core/qunit/{Object_legacyAPIs.qunit.js → ui5classes/Object_legacyAPIs.qunit.js} +0 -0
- /package/test/sap/ui/core/qunit/{testdata → ui5classes/fixture}/customboot/common.configure.ui5.js +0 -0
|
@@ -12,11 +12,12 @@ sap.ui.define([
|
|
|
12
12
|
"./_GroupLock",
|
|
13
13
|
"./_Helper",
|
|
14
14
|
"./_MinMaxHelper",
|
|
15
|
+
"./_TreeState",
|
|
15
16
|
"sap/base/Log",
|
|
16
17
|
"sap/ui/base/SyncPromise",
|
|
17
18
|
"sap/ui/model/odata/ODataUtils"
|
|
18
|
-
], function (_AggregationHelper, _Cache, _ConcatHelper, _GroupLock, _Helper, _MinMaxHelper,
|
|
19
|
-
SyncPromise, ODataUtils) {
|
|
19
|
+
], function (_AggregationHelper, _Cache, _ConcatHelper, _GroupLock, _Helper, _MinMaxHelper,
|
|
20
|
+
_TreeState, Log, SyncPromise, ODataUtils) {
|
|
20
21
|
"use strict";
|
|
21
22
|
|
|
22
23
|
//*********************************************************************************************
|
|
@@ -116,43 +117,46 @@ sap.ui.define([
|
|
|
116
117
|
} else if (fnLeaves) {
|
|
117
118
|
_ConcatHelper.enhanceCache(that.oFirstLevel, oAggregation, [fnLeaves, fnCount]);
|
|
118
119
|
}
|
|
120
|
+
this.oTreeState = new _TreeState(oAggregation.$NodeProperty);
|
|
121
|
+
// Whether this cache is a unified cache, using oFirstLevel with ExpandLevels instead of
|
|
122
|
+
// separate group level caches
|
|
123
|
+
this.bUnifiedCache = false;
|
|
119
124
|
}
|
|
120
125
|
|
|
121
126
|
// make _AggregationCache a _Cache, but actively disinherit some critical methods
|
|
122
127
|
_AggregationCache.prototype = Object.create(_Cache.prototype);
|
|
123
128
|
_AggregationCache.prototype.addTransientCollection = null;
|
|
124
|
-
_AggregationCache.prototype.getAndRemoveCollection = null;
|
|
125
129
|
|
|
126
130
|
/**
|
|
127
|
-
* Deletes
|
|
131
|
+
* Deletes a node on the server and in the cached data.
|
|
128
132
|
*
|
|
129
133
|
* @param {sap.ui.model.odata.v4.lib._GroupLock} oGroupLock
|
|
130
134
|
* A lock for the group ID to be used for the DELETE request
|
|
131
135
|
* @param {string} sEditUrl
|
|
132
|
-
* The
|
|
133
|
-
* @param {string}
|
|
134
|
-
* The
|
|
136
|
+
* The node's edit URL to be used for the DELETE request
|
|
137
|
+
* @param {string} sIndexOrPredicate
|
|
138
|
+
* The node's index or its predicate if it is not in the collection
|
|
135
139
|
* @param {object} [_oETagEntity]
|
|
136
140
|
* An entity with the ETag of the binding for which the deletion was requested. Not used and
|
|
137
141
|
* should always be undefined
|
|
138
142
|
* @param {function(number,number):void} fnCallback
|
|
139
|
-
* A function which is called immediately
|
|
140
|
-
* when
|
|
141
|
-
* re-insertion) are passed as parameter
|
|
143
|
+
* A function which is called immediately with the node's index and offset -1 as parameter
|
|
144
|
+
* when the node has been deleted from the cache; reinsertion does not occur
|
|
142
145
|
* @returns {sap.ui.base.SyncPromise<void>}
|
|
143
146
|
* A promise which is resolved without a result in case of success, or rejected with an
|
|
144
147
|
* instance of <code>Error</code> in case of failure
|
|
145
|
-
* @throws {Error} If the cache is shared,
|
|
146
|
-
* at the given index is expanded.
|
|
148
|
+
* @throws {Error} If the cache is shared, the node is not in the collection (because a
|
|
149
|
+
* predicate was given), or the node at the given index is expanded.
|
|
147
150
|
*
|
|
148
151
|
* @public
|
|
149
152
|
*/
|
|
150
153
|
// @override sap.ui.model.odata.v4.lib._Cache#_delete
|
|
151
|
-
_AggregationCache.prototype._delete = function (oGroupLock, sEditUrl,
|
|
152
|
-
fnCallback) {
|
|
153
|
-
let iIndex = parseInt(
|
|
154
|
-
if (isNaN(iIndex)) {
|
|
155
|
-
throw new Error(
|
|
154
|
+
_AggregationCache.prototype._delete = function (oGroupLock, sEditUrl, sIndexOrPredicate,
|
|
155
|
+
_oETagEntity, fnCallback) {
|
|
156
|
+
let iIndex = parseInt(sIndexOrPredicate);
|
|
157
|
+
if (isNaN(iIndex)) { // it must be a predicate because the element is not in the collection
|
|
158
|
+
throw new Error(
|
|
159
|
+
`Unsupported kept-alive entity: ${this.sResourcePath}${sIndexOrPredicate}`);
|
|
156
160
|
}
|
|
157
161
|
|
|
158
162
|
const oElement = this.aElements[iIndex];
|
|
@@ -377,6 +381,7 @@ sap.ui.define([
|
|
|
377
381
|
const oGroupNode = this.getValue(sGroupNodePath);
|
|
378
382
|
const oCollapsed = _AggregationHelper.getCollapsedObject(oGroupNode);
|
|
379
383
|
_Helper.updateAll(this.mChangeListeners, sGroupNodePath, oGroupNode, oCollapsed);
|
|
384
|
+
this.oTreeState.collapse(oGroupNode);
|
|
380
385
|
|
|
381
386
|
const aElements = this.aElements;
|
|
382
387
|
const iIndex = aElements.indexOf(oGroupNode);
|
|
@@ -424,6 +429,9 @@ sap.ui.define([
|
|
|
424
429
|
// "top pyramid" only!
|
|
425
430
|
iGroupNodeLevel = this.oAggregation.expandTo;
|
|
426
431
|
}
|
|
432
|
+
if (this.bUnifiedCache) {
|
|
433
|
+
iGroupNodeLevel = Infinity;
|
|
434
|
+
}
|
|
427
435
|
const aElements = this.aElements;
|
|
428
436
|
for (i = iIndex + 1; i < aElements.length; i += 1) {
|
|
429
437
|
if (aElements[i]["@$ui5.node.level"] <= iGroupNodeLevel) {
|
|
@@ -498,7 +506,7 @@ sap.ui.define([
|
|
|
498
506
|
const iLevel = oParentNode
|
|
499
507
|
? oParentNode["@$ui5.node.level"] + 1
|
|
500
508
|
: 1;
|
|
501
|
-
let oCache = iLevel >
|
|
509
|
+
let oCache = iLevel > this.oAggregation.expandTo
|
|
502
510
|
? _Helper.getPrivateAnnotation(oParentNode, "cache")
|
|
503
511
|
: this.oFirstLevel;
|
|
504
512
|
if (!oCache) {
|
|
@@ -538,16 +546,21 @@ sap.ui.define([
|
|
|
538
546
|
// Note: #calculateKeyPredicateRH doesn't know better :-(
|
|
539
547
|
oEntityData["@$ui5.node.level"] = iLevel;
|
|
540
548
|
|
|
541
|
-
if (this.oAggregation.expandTo
|
|
542
|
-
const iRank = await
|
|
549
|
+
if (oCache === this.oFirstLevel && this.oAggregation.expandTo > 1) {
|
|
550
|
+
const [iRank] = await Promise.all([
|
|
551
|
+
this.requestRank(oEntityData, oGroupLock),
|
|
552
|
+
this.requestNodeProperty(oEntityData, oGroupLock)
|
|
553
|
+
]);
|
|
543
554
|
|
|
544
|
-
|
|
555
|
+
oCache.removeElement(0, sTransientPredicate);
|
|
545
556
|
_Helper.deletePrivateAnnotation(oEntityData, "transientPredicate");
|
|
546
|
-
|
|
557
|
+
oCache.restoreElement(iRank, oEntityData);
|
|
547
558
|
|
|
548
559
|
delete this.aElements.$byPredicate[sTransientPredicate];
|
|
549
560
|
_Helper.setPrivateAnnotation(oEntityData, "rank", iRank);
|
|
550
561
|
this.shiftRank(iIndex, +1);
|
|
562
|
+
} else {
|
|
563
|
+
await this.requestNodeProperty(oEntityData, oGroupLock);
|
|
551
564
|
}
|
|
552
565
|
|
|
553
566
|
return oEntityData;
|
|
@@ -623,7 +636,9 @@ sap.ui.define([
|
|
|
623
636
|
* The function is called just before the back-end request is sent.
|
|
624
637
|
* If no back-end request is needed, the function is not called.
|
|
625
638
|
* @returns {sap.ui.base.SyncPromise<number>}
|
|
626
|
-
* A promise that is resolved with the number of nodes at the next level
|
|
639
|
+
* A promise that is resolved with the number of nodes at the next level, 0 if the node or
|
|
640
|
+
* one of its parent is collapsed again before the response arrived, or -1 if the cache needs
|
|
641
|
+
* to be refreshed (a unified cache)
|
|
627
642
|
*
|
|
628
643
|
* @public
|
|
629
644
|
* @see #collapse
|
|
@@ -640,6 +655,7 @@ sap.ui.define([
|
|
|
640
655
|
// Note: this also prevents a 2nd expand of the same node
|
|
641
656
|
_Helper.updateAll(this.mChangeListeners, vGroupNodeOrPath, oGroupNode,
|
|
642
657
|
_AggregationHelper.getOrCreateExpandedObject(this.oAggregation, oGroupNode));
|
|
658
|
+
this.oTreeState.expand(oGroupNode);
|
|
643
659
|
} // else: no update needed!
|
|
644
660
|
|
|
645
661
|
if (aSpliced) {
|
|
@@ -686,6 +702,9 @@ sap.ui.define([
|
|
|
686
702
|
});
|
|
687
703
|
return SyncPromise.resolve(iCount);
|
|
688
704
|
}
|
|
705
|
+
if (this.bUnifiedCache) {
|
|
706
|
+
return SyncPromise.resolve(-1); // refresh needed
|
|
707
|
+
}
|
|
689
708
|
|
|
690
709
|
let oCache = _Helper.getPrivateAnnotation(oGroupNode, "cache");
|
|
691
710
|
if (!oCache) {
|
|
@@ -760,24 +779,26 @@ sap.ui.define([
|
|
|
760
779
|
// Note: typeof vGroupNodeOrPath === "string"
|
|
761
780
|
_Helper.updateAll(that.mChangeListeners, vGroupNodeOrPath, oGroupNode,
|
|
762
781
|
_AggregationHelper.getCollapsedObject(oGroupNode));
|
|
782
|
+
that.oTreeState.collapse(oGroupNode);
|
|
763
783
|
|
|
764
784
|
throw oError;
|
|
765
785
|
});
|
|
766
786
|
};
|
|
767
787
|
|
|
768
788
|
/**
|
|
769
|
-
* Returns a promise to be resolved with
|
|
789
|
+
* Returns a promise to be resolved with the index for the requested parent node. The
|
|
790
|
+
* parent is also added to the correct position in this cache.
|
|
770
791
|
*
|
|
771
792
|
* @param {number} iIndex
|
|
772
793
|
* The index of the child node
|
|
773
794
|
* @param {sap.ui.model.odata.v4.lib._GroupLock} oGroupLock
|
|
774
795
|
* A lock for the group to associate the requests with
|
|
775
|
-
* @returns {
|
|
776
|
-
* A promise to be resolved with the requested
|
|
796
|
+
* @returns {Promise<number>}
|
|
797
|
+
* A promise to be resolved with the requested index of the parent.
|
|
777
798
|
*
|
|
778
799
|
* @public
|
|
779
800
|
*/
|
|
780
|
-
_AggregationCache.prototype.
|
|
801
|
+
_AggregationCache.prototype.fetchParentIndex = function (iIndex, oGroupLock) {
|
|
781
802
|
const sFilter = _Helper.getKeyFilter(this.aElements[iIndex], this.oAggregation.$metaPath,
|
|
782
803
|
this.getTypes());
|
|
783
804
|
const mQueryOptions = Object.assign({}, this.mQueryOptions);
|
|
@@ -789,18 +810,31 @@ sap.ui.define([
|
|
|
789
810
|
const sQueryString = this.sResourcePath
|
|
790
811
|
+ this.oRequestor.buildQueryString(/*sMetaPath*/null, mQueryOptions);
|
|
791
812
|
|
|
792
|
-
return
|
|
793
|
-
|
|
794
|
-
this.
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
813
|
+
return this.oRequestor.request("GET", sQueryString, oGroupLock).then(async (oResult) => {
|
|
814
|
+
const oParent = oResult.value[0];
|
|
815
|
+
_Helper.setPrivateAnnotation(oParent, "parent", this.oFirstLevel);
|
|
816
|
+
const aSelect = [
|
|
817
|
+
this.oAggregation.$DistanceFromRoot,
|
|
818
|
+
this.oAggregation.$DrillState,
|
|
819
|
+
this.oAggregation.$LimitedDescendantCount
|
|
820
|
+
];
|
|
821
|
+
const [iRank] = await Promise.all([
|
|
822
|
+
this.requestRank(oParent, oGroupLock),
|
|
823
|
+
this.requestProperties(oParent, aSelect, oGroupLock, true),
|
|
824
|
+
this.requestNodeProperty(oParent, oGroupLock)
|
|
825
|
+
]);
|
|
826
|
+
|
|
827
|
+
this.oFirstLevel.calculateKeyPredicate(oParent,
|
|
828
|
+
this.getTypes(), _Helper.getMetaPath(_Helper.buildPath(this.sMetaPath, "")));
|
|
829
|
+
|
|
830
|
+
const iParentIndex = this.getArrayIndex(iRank);
|
|
831
|
+
this.addElements(oParent, iParentIndex, this.oFirstLevel, iRank);
|
|
832
|
+
|
|
833
|
+
// poor man's #replaceElement to replace undefined w/ oParent
|
|
834
|
+
this.oFirstLevel.removeElement(iRank);
|
|
835
|
+
this.oFirstLevel.restoreElement(iRank, oParent);
|
|
836
|
+
|
|
837
|
+
return iParentIndex;
|
|
804
838
|
});
|
|
805
839
|
};
|
|
806
840
|
|
|
@@ -880,6 +914,40 @@ sap.ui.define([
|
|
|
880
914
|
return aAllElements;
|
|
881
915
|
};
|
|
882
916
|
|
|
917
|
+
/**
|
|
918
|
+
* Returns the index in <code>aElements</code> for a given rank. The given (limited preorder)
|
|
919
|
+
* rank does not reflect the correct position of a node in the cache. On the one hand nodes
|
|
920
|
+
* within group level caches or out of place nodes (e.g. created or moved nodes) are causing
|
|
921
|
+
* that the position of the node to be inserted is further down, on the other hand collapsed
|
|
922
|
+
* nodes in the first level cache are causing that the insert position is further up.
|
|
923
|
+
*
|
|
924
|
+
* @param {number} iRank
|
|
925
|
+
* The (limited preorder) rank of a node
|
|
926
|
+
* @returns {number}
|
|
927
|
+
* The array index
|
|
928
|
+
*
|
|
929
|
+
* @private
|
|
930
|
+
*/
|
|
931
|
+
_AggregationCache.prototype.getArrayIndex = function (iRank) {
|
|
932
|
+
let iIndex = iRank;
|
|
933
|
+
for (let i = 0; i < iIndex; i += 1) {
|
|
934
|
+
const oNode = this.aElements[i];
|
|
935
|
+
if (oNode["@$ui5.node.isExpanded"] === false) {
|
|
936
|
+
// descendants of collapsed nodes in oFirstLevel are reducing the rank in the list;
|
|
937
|
+
// descendants of nodes in group level caches must NOT be taken into account, these
|
|
938
|
+
// nodes have no private Annotation for the descendants
|
|
939
|
+
iIndex -= _Helper.getPrivateAnnotation(oNode, "descendants", 0);
|
|
940
|
+
}
|
|
941
|
+
// nodes of group level caches or out of place nodes must be taken into account
|
|
942
|
+
if (_Helper.getPrivateAnnotation(oNode, "parent") !== this.oFirstLevel
|
|
943
|
+
|| _Helper.getPrivateAnnotation(oNode, "rank") > iRank) {
|
|
944
|
+
iIndex += 1;
|
|
945
|
+
}
|
|
946
|
+
}
|
|
947
|
+
|
|
948
|
+
return iIndex;
|
|
949
|
+
};
|
|
950
|
+
|
|
883
951
|
/**
|
|
884
952
|
* Nothing to do here, we have no created elements.
|
|
885
953
|
*
|
|
@@ -1086,7 +1154,7 @@ sap.ui.define([
|
|
|
1086
1154
|
? _Helper.getPrivateAnnotation(oParentNode, "cache")
|
|
1087
1155
|
: this.oFirstLevel;
|
|
1088
1156
|
if (this.oAggregation.expandTo > 1) { // "expand all": GET LimitedRank
|
|
1089
|
-
oReadPromise = this.requestRank(oChildNode, oGroupLock
|
|
1157
|
+
oReadPromise = this.requestRank(oChildNode, oGroupLock);
|
|
1090
1158
|
} else if (!oCache && oParentNode["@$ui5.node.isExpanded"] === false) {
|
|
1091
1159
|
oCache = this.createGroupLevelCache(oParentNode);
|
|
1092
1160
|
// @see #getExclusiveFilter
|
|
@@ -1455,7 +1523,9 @@ sap.ui.define([
|
|
|
1455
1523
|
for (j = 0; j < that.aElements.$count; j += 1) {
|
|
1456
1524
|
if (!that.aElements[j]) {
|
|
1457
1525
|
that.aElements[j] = _AggregationHelper.createPlaceholder(
|
|
1458
|
-
that.oAggregation.expandTo > 1
|
|
1526
|
+
that.oAggregation.expandTo > 1 || that.bUnifiedCache
|
|
1527
|
+
? /*don't know*/0
|
|
1528
|
+
: 1,
|
|
1459
1529
|
j - iOffset, that.oFirstLevel);
|
|
1460
1530
|
}
|
|
1461
1531
|
}
|
|
@@ -1497,6 +1567,8 @@ sap.ui.define([
|
|
|
1497
1567
|
const oPromise = oCache.refreshSingle(oGroupLock, "", -1, sPredicate,
|
|
1498
1568
|
/*bKeepAlive*/true, false, fnDataRequested)
|
|
1499
1569
|
.then((oElement) => {
|
|
1570
|
+
_Helper.inheritPathValue(this.oAggregation.$NodeProperty.split("/"),
|
|
1571
|
+
oStartElement, oElement, true); // keep NodeProperty
|
|
1500
1572
|
// make sure that ODLB reuses the same context instance
|
|
1501
1573
|
_Helper.copyPrivateAnnotation(oStartElement, "context", oElement);
|
|
1502
1574
|
this.addElements(oElement, iStart, oCache); // $skip index is undefined!
|
|
@@ -1564,34 +1636,85 @@ sap.ui.define([
|
|
|
1564
1636
|
};
|
|
1565
1637
|
|
|
1566
1638
|
/**
|
|
1567
|
-
* Requests the (
|
|
1568
|
-
*
|
|
1639
|
+
* Requests and updates the NodeProperty ("the hierarchy node value") of the given element,
|
|
1640
|
+
* unless already available.
|
|
1569
1641
|
*
|
|
1570
1642
|
* @param {object} oElement - The element
|
|
1571
1643
|
* @param {sap.ui.model.odata.v4.lib._GroupLock} oGroupLock
|
|
1572
|
-
*
|
|
1573
|
-
*
|
|
1574
|
-
*
|
|
1644
|
+
* An original lock for the group ID to be used for the GET request, to be cloned via
|
|
1645
|
+
* {@link sap.ui.model.odata.v4.lib._GroupLock#getUnlockedCopy}
|
|
1646
|
+
* @returns {Promise<void>}
|
|
1647
|
+
* A promise which is resolved without a defined result in case of success, or
|
|
1575
1648
|
* rejected in case of an error
|
|
1576
1649
|
*
|
|
1577
1650
|
* @private
|
|
1578
1651
|
*/
|
|
1579
|
-
_AggregationCache.prototype.
|
|
1652
|
+
_AggregationCache.prototype.requestNodeProperty = async function (oElement, oGroupLock) {
|
|
1653
|
+
if (_Helper.drillDown(oElement, this.oAggregation.$NodeProperty) !== undefined) {
|
|
1654
|
+
return; // already available
|
|
1655
|
+
}
|
|
1656
|
+
|
|
1657
|
+
await this.requestProperties(oElement, [this.oAggregation.$NodeProperty], oGroupLock, true);
|
|
1658
|
+
};
|
|
1659
|
+
|
|
1660
|
+
/**
|
|
1661
|
+
* Requests the given properties for the given element via a "mergeable GET".
|
|
1662
|
+
*
|
|
1663
|
+
* @param {object} oElement - The element
|
|
1664
|
+
* @param {string[]} aSelect - The relative paths to properties to be requested
|
|
1665
|
+
* @param {sap.ui.model.odata.v4.lib._GroupLock} oGroupLock
|
|
1666
|
+
* An original lock for the group ID to be used for the GET request, to be cloned via
|
|
1667
|
+
* {@link sap.ui.model.odata.v4.lib._GroupLock#getUnlockedCopy}
|
|
1668
|
+
* @param {boolean} [bInheritResult]
|
|
1669
|
+
* Whether the result is inherited in the given element
|
|
1670
|
+
* @returns {Promise<object|void>}
|
|
1671
|
+
* A promise which is resolved without a defined result in case <code>bInheritResult</code> is
|
|
1672
|
+
* set to <code>true</code>, or with the result object, or rejected in case of an error
|
|
1673
|
+
*
|
|
1674
|
+
* @private
|
|
1675
|
+
*/
|
|
1676
|
+
_AggregationCache.prototype.requestProperties = async function (oElement, aSelect, oGroupLock,
|
|
1677
|
+
bInheritResult) {
|
|
1580
1678
|
const sMetaPath = this.oAggregation.$metaPath;
|
|
1581
|
-
const {$apply, $orderby} = this.oFirstLevel.getQueryOptions();
|
|
1582
1679
|
const mQueryOptions = {
|
|
1583
|
-
$apply,
|
|
1584
|
-
$filter : _Helper.getKeyFilter(oElement, sMetaPath, this.getTypes())
|
|
1585
|
-
$select : this.oAggregation.$LimitedRank
|
|
1680
|
+
$apply : _Helper.getPrivateAnnotation(oElement, "parent").getQueryOptions().$apply,
|
|
1681
|
+
$filter : _Helper.getKeyFilter(oElement, sMetaPath, this.getTypes())
|
|
1586
1682
|
};
|
|
1587
|
-
if ($orderby) {
|
|
1588
|
-
mQueryOptions.$orderby = $orderby;
|
|
1589
|
-
}
|
|
1590
1683
|
const sResourcePath = this.sResourcePath
|
|
1591
1684
|
+ this.oRequestor.buildQueryString(sMetaPath, mQueryOptions, false, true);
|
|
1592
|
-
const oResult = await this.oRequestor.request("GET", sResourcePath,
|
|
1685
|
+
const oResult = await this.oRequestor.request("GET", sResourcePath,
|
|
1686
|
+
oGroupLock.getUnlockedCopy(), undefined, undefined, undefined, undefined, sMetaPath,
|
|
1687
|
+
undefined, false, {$select : aSelect}, this);
|
|
1688
|
+
const oRequestedProperties = oResult.value[0];
|
|
1689
|
+
|
|
1690
|
+
if (bInheritResult) {
|
|
1691
|
+
aSelect.forEach((sPath) => {
|
|
1692
|
+
_Helper.inheritPathValue(sPath.split("/"), oRequestedProperties, oElement, true);
|
|
1693
|
+
});
|
|
1694
|
+
} else {
|
|
1695
|
+
return oRequestedProperties;
|
|
1696
|
+
}
|
|
1697
|
+
};
|
|
1698
|
+
|
|
1699
|
+
/**
|
|
1700
|
+
* Requests the (limited preorder) rank of the given element which must belong to
|
|
1701
|
+
* <code>this.oFirstLevel</code>.
|
|
1702
|
+
*
|
|
1703
|
+
* @param {object} oElement - The element
|
|
1704
|
+
* @param {sap.ui.model.odata.v4.lib._GroupLock} oGroupLock
|
|
1705
|
+
* An original lock for the group ID to be used for the GET request, to be cloned via
|
|
1706
|
+
* {@link sap.ui.model.odata.v4.lib._GroupLock#getUnlockedCopy}
|
|
1707
|
+
* @returns {Promise<number>}
|
|
1708
|
+
* A promise which is resolved with the (limited preorder) rank of the given element, or
|
|
1709
|
+
* rejected in case of an error
|
|
1710
|
+
*
|
|
1711
|
+
* @private
|
|
1712
|
+
*/
|
|
1713
|
+
_AggregationCache.prototype.requestRank = async function (oElement, oGroupLock) {
|
|
1714
|
+
const oResult
|
|
1715
|
+
= await this.requestProperties(oElement, [this.oAggregation.$LimitedRank], oGroupLock);
|
|
1593
1716
|
|
|
1594
|
-
return parseInt(_Helper.drillDown(oResult
|
|
1717
|
+
return parseInt(_Helper.drillDown(oResult, this.oAggregation.$LimitedRank));
|
|
1595
1718
|
};
|
|
1596
1719
|
|
|
1597
1720
|
/**
|
|
@@ -1620,13 +1743,19 @@ sap.ui.define([
|
|
|
1620
1743
|
});
|
|
1621
1744
|
|
|
1622
1745
|
this.oAggregation = oAggregation;
|
|
1623
|
-
this.sDownloadUrl = _Cache.prototype.getDownloadUrl.call(this, "");
|
|
1624
1746
|
// "super" call (like @borrows ...)
|
|
1625
1747
|
this.oFirstLevel.reset.call(this, aKeptElementPredicates, sGroupId, mQueryOptions);
|
|
1626
|
-
|
|
1748
|
+
// reset modifies the cache's query options => recalculate the download URL
|
|
1749
|
+
this.sDownloadUrl = _Cache.prototype.getDownloadUrl.call(this, "");
|
|
1750
|
+
if (sGroupId) { // sGroupId means we are in a side-effects refresh
|
|
1627
1751
|
this.oBackup.oCountPromise = this.oCountPromise;
|
|
1628
1752
|
this.oBackup.oFirstLevel = this.oFirstLevel;
|
|
1753
|
+
this.oBackup.bUnifiedCache = this.bUnifiedCache;
|
|
1754
|
+
this.bUnifiedCache = true;
|
|
1755
|
+
} else {
|
|
1756
|
+
this.oTreeState.reset();
|
|
1629
1757
|
}
|
|
1758
|
+
this.oAggregation.$ExpandLevels = this.oTreeState.getExpandLevels();
|
|
1630
1759
|
this.oCountPromise = undefined;
|
|
1631
1760
|
if (mQueryOptions.$count) {
|
|
1632
1761
|
this.oCountPromise = new SyncPromise(function (resolve) {
|
|
@@ -1653,6 +1782,7 @@ sap.ui.define([
|
|
|
1653
1782
|
if (bReally) {
|
|
1654
1783
|
this.oCountPromise = this.oBackup.oCountPromise;
|
|
1655
1784
|
this.oFirstLevel = this.oBackup.oFirstLevel;
|
|
1785
|
+
this.bUnifiedCache = this.oBackup.bUnifiedCache;
|
|
1656
1786
|
}
|
|
1657
1787
|
// "super" call (like @borrows ...)
|
|
1658
1788
|
this.oFirstLevel.restore.call(this, bReally);
|
|
@@ -1663,7 +1793,7 @@ sap.ui.define([
|
|
|
1663
1793
|
* the given array index by the given offset, except for elements where it is
|
|
1664
1794
|
* <code>undefined</code> or lower than the node's own rank. If the node at the given index
|
|
1665
1795
|
* itself has an <code>undefined</code> rank, nothing is shifted. Note that inside
|
|
1666
|
-
* <code>this.oFirstLevel</code> not only siblings are affected.
|
|
1796
|
+
* <code>this.oFirstLevel</code> not only siblings are affected and it's not simply "after".
|
|
1667
1797
|
*
|
|
1668
1798
|
* @param {number} iIndex
|
|
1669
1799
|
* Index in <code>this.aElements</code> of a node
|
|
@@ -1680,8 +1810,14 @@ sap.ui.define([
|
|
|
1680
1810
|
}
|
|
1681
1811
|
|
|
1682
1812
|
const oCache = _Helper.getPrivateAnnotation(oNode, "parent");
|
|
1813
|
+
if (oCache === this.oFirstLevel) {
|
|
1814
|
+
iIndex = -1; // search from the start!
|
|
1815
|
+
}
|
|
1683
1816
|
for (let i = iIndex + 1; i < this.aElements.length; i += 1) {
|
|
1684
1817
|
const oSibling = this.aElements[i];
|
|
1818
|
+
if (oSibling === oNode) {
|
|
1819
|
+
continue;
|
|
1820
|
+
}
|
|
1685
1821
|
if (_Helper.getPrivateAnnotation(oSibling, "parent") === oCache) {
|
|
1686
1822
|
const iRank = _Helper.getPrivateAnnotation(oSibling, "rank");
|
|
1687
1823
|
if (iRank >= iMinRank) { // Note: undefined >= ... is false
|
|
@@ -207,7 +207,7 @@ sap.ui.define([
|
|
|
207
207
|
* @param {object} oAggregation
|
|
208
208
|
* An object holding the information needed for data aggregation; see
|
|
209
209
|
* {@link sap.ui.model.odata.v4.ODataListBinding#setAggregation}. The properties
|
|
210
|
-
* "aggregate", "group", and "
|
|
210
|
+
* "aggregate", "group", "groupLevels", and "expandTo" are normalized if applicable!
|
|
211
211
|
* @param {string} [oAggregation.hierarchyQualifier]
|
|
212
212
|
* If present, a recursive hierarchy w/o data aggregation is defined and
|
|
213
213
|
* {@link _AggregationHelper.buildApply4Hierarchy} is invoked instead.
|
|
@@ -415,13 +415,19 @@ sap.ui.define([
|
|
|
415
415
|
*
|
|
416
416
|
* @param {object} oAggregation
|
|
417
417
|
* An object holding the information needed for a recursive hierarchy; see
|
|
418
|
-
* {@link sap.ui.model.odata.v4.ODataListBinding#setAggregation}.
|
|
418
|
+
* {@link sap.ui.model.odata.v4.ODataListBinding#setAggregation}. The property
|
|
419
|
+
* "expandTo" is normalized if applicable!
|
|
419
420
|
* @param {function} [oAggregation.$fetchMetadata]
|
|
420
421
|
* Function which fetches metadata for a given meta path - NOT always available!
|
|
421
422
|
* @param {string} [oAggregation.$metaPath]
|
|
422
423
|
* Meta path as set by {@link #setPath}
|
|
423
424
|
* @param {string} [oAggregation.$path]
|
|
424
425
|
* Data path as set by {@link #setPath}
|
|
426
|
+
* @param {number} [oAggregation.expandTo=1]
|
|
427
|
+
* The number (as a positive integer) of different levels initially available
|
|
428
|
+
* @param {string} [oAggregation.hierarchyQualifier]
|
|
429
|
+
* The qualifier for the pair of "Org.OData.Aggregation.V1.RecursiveHierarchy" and
|
|
430
|
+
* "com.sap.vocabularies.Hierarchy.v1.RecursiveHierarchy" annotations
|
|
425
431
|
* @param {string} [oAggregation.search]
|
|
426
432
|
* Like the value for a "$search" system query option (remember ODATA-1452); it is turned
|
|
427
433
|
* into the search expression parameter of an "ancestors()" transformation
|
|
@@ -522,16 +528,20 @@ sap.ui.define([
|
|
|
522
528
|
sApply += "orderby(" + mQueryOptions.$orderby + ")/";
|
|
523
529
|
delete mQueryOptions.$orderby;
|
|
524
530
|
}
|
|
531
|
+
oAggregation.expandTo ??= 1;
|
|
532
|
+
const sExpandLevels = !bAllLevels && oAggregation.$ExpandLevels;
|
|
525
533
|
sApply += "com.sap.vocabularies.Hierarchy.v1.TopLevels(HierarchyNodes=$root"
|
|
526
534
|
+ (oAggregation.$path || "")
|
|
527
535
|
+ ",HierarchyQualifier='" + oAggregation.hierarchyQualifier
|
|
528
536
|
+ "',NodeProperty='" + sNodeProperty + "'"
|
|
529
|
-
+ (bAllLevels || oAggregation.expandTo >=
|
|
530
|
-
? "
|
|
531
|
-
: ",Levels=" +
|
|
537
|
+
+ (bAllLevels || oAggregation.expandTo >= Number.MAX_SAFE_INTEGER
|
|
538
|
+
? "" // "all levels"
|
|
539
|
+
: ",Levels=" + oAggregation.expandTo)
|
|
540
|
+
+ (sExpandLevels ? ",ExpandLevels=" + sExpandLevels : "")
|
|
541
|
+
+ ")";
|
|
532
542
|
if (bAllLevels) {
|
|
533
543
|
select("DistanceFromRoot");
|
|
534
|
-
} else if (oAggregation.expandTo > 1) {
|
|
544
|
+
} else if (oAggregation.expandTo > 1 || sExpandLevels) {
|
|
535
545
|
select("DistanceFromRoot");
|
|
536
546
|
select("LimitedDescendantCount");
|
|
537
547
|
}
|
|
@@ -1003,8 +1003,8 @@ sap.ui.define([
|
|
|
1003
1003
|
$select : this.mQueryOptions.$select,
|
|
1004
1004
|
$expand : this.mQueryOptions.$expand
|
|
1005
1005
|
};
|
|
1006
|
-
// sRequestedPropertyPath is also a
|
|
1007
|
-
// a collection-valued navigation property for a late property
|
|
1006
|
+
// sRequestedPropertyPath is also a meta path because the binding does not accept a path
|
|
1007
|
+
// with a collection-valued navigation property for a late property
|
|
1008
1008
|
mQueryOptions = _Helper.intersectQueryOptions(
|
|
1009
1009
|
_Helper.getQueryOptionsForPath(mQueryOptions, sResourcePath),
|
|
1010
1010
|
[sRequestedPropertyPath], this.oRequestor.getModelInterface().fetchMetadata,
|
|
@@ -1124,7 +1124,7 @@ sap.ui.define([
|
|
|
1124
1124
|
*
|
|
1125
1125
|
* @param {sap.ui.model.odata.v4.lib._GroupLock} oGroupLock
|
|
1126
1126
|
* A lock for the group to associate the request with;
|
|
1127
|
-
* see {sap.ui.model.odata.v4.lib._Requestor#request} for details
|
|
1127
|
+
* see {@link sap.ui.model.odata.v4.lib._Requestor#request} for details
|
|
1128
1128
|
* @param {string} [sPath]
|
|
1129
1129
|
* Relative path to drill-down into
|
|
1130
1130
|
* @param {function} [fnDataRequested]
|
|
@@ -1949,7 +1949,11 @@ sap.ui.define([
|
|
|
1949
1949
|
this.iLimit += 1; // this doesn't change Infinity
|
|
1950
1950
|
}
|
|
1951
1951
|
_Helper.addToCount(this.mChangeListeners, sPath, aElements, 1);
|
|
1952
|
-
aElements.splice
|
|
1952
|
+
if (iIndex >= aElements.length) { // Note: #splice ignores iIndex then!
|
|
1953
|
+
aElements[iIndex] = oElement;
|
|
1954
|
+
} else {
|
|
1955
|
+
aElements.splice(iIndex, 0, oElement);
|
|
1956
|
+
}
|
|
1953
1957
|
aElements.$byPredicate[_Helper.getPrivateAnnotation(oElement, "predicate")] = oElement;
|
|
1954
1958
|
};
|
|
1955
1959
|
|
|
@@ -2585,6 +2589,7 @@ sap.ui.define([
|
|
|
2585
2589
|
this.aElements.$count = undefined; // see _Helper.setCount
|
|
2586
2590
|
// number of all (client-side) created elements (active or inactive)
|
|
2587
2591
|
this.aElements.$created = 0;
|
|
2592
|
+
// this.aElements.$deleted = []; // only created on demand
|
|
2588
2593
|
this.aElements.$tail = undefined; // promise for a read w/o $top
|
|
2589
2594
|
// upper limit for @odata.count, maybe sharp; assumes #getQueryString can $filter out all
|
|
2590
2595
|
// created elements
|
|
@@ -2706,7 +2711,7 @@ sap.ui.define([
|
|
|
2706
2711
|
*
|
|
2707
2712
|
* @param {sap.ui.model.odata.v4.lib._GroupLock} oGroupLock
|
|
2708
2713
|
* A lock for the group to associate the request with
|
|
2709
|
-
* see {sap.ui.model.odata.v4.lib._Requestor#request} for details
|
|
2714
|
+
* see {@link sap.ui.model.odata.v4.lib._Requestor#request} for details
|
|
2710
2715
|
* @param {string} [sPath]
|
|
2711
2716
|
* Relative path to drill-down into
|
|
2712
2717
|
* @param {function} [_fnDataRequested]
|
|
@@ -3450,6 +3455,7 @@ sap.ui.define([
|
|
|
3450
3455
|
var oPromise,
|
|
3451
3456
|
oReadRequest = {
|
|
3452
3457
|
iEnd : iEnd,
|
|
3458
|
+
bObsolete : false,
|
|
3453
3459
|
iStart : iStart
|
|
3454
3460
|
},
|
|
3455
3461
|
that = this;
|
|
@@ -3472,7 +3478,7 @@ sap.ui.define([
|
|
|
3472
3478
|
]).then(function (aResult) {
|
|
3473
3479
|
var iFiltered;
|
|
3474
3480
|
|
|
3475
|
-
if (oReadRequest.
|
|
3481
|
+
if (oReadRequest.bObsolete) {
|
|
3476
3482
|
const oError = new Error("Request is obsolete");
|
|
3477
3483
|
oError.canceled = true;
|
|
3478
3484
|
throw oError;
|
|
@@ -3507,7 +3513,7 @@ sap.ui.define([
|
|
|
3507
3513
|
*
|
|
3508
3514
|
* @param {sap.ui.model.odata.v4.lib._GroupLock} oGroupLock
|
|
3509
3515
|
* A lock for the ID of the group that is associated with the request;
|
|
3510
|
-
* see {sap.ui.model.odata.v4.lib._Requestor#request} for details
|
|
3516
|
+
* see {@link sap.ui.model.odata.v4.lib._Requestor#request} for details
|
|
3511
3517
|
* @param {string[]} aPaths
|
|
3512
3518
|
* The "14.5.11 Expression edm:NavigationPropertyPath" or
|
|
3513
3519
|
* "14.5.13 Expression edm:PropertyPath" strings describing which properties need to be loaded
|
|
@@ -3695,6 +3701,7 @@ sap.ui.define([
|
|
|
3695
3701
|
this.aElements.length = this.aElements.$created = iCreated;
|
|
3696
3702
|
this.aElements.$byPredicate = {};
|
|
3697
3703
|
this.aElements.$count = undefined; // needed for _Helper.setCount
|
|
3704
|
+
// Note: this.aElements.$deleted must remain unchanged
|
|
3698
3705
|
this.iLimit = Infinity;
|
|
3699
3706
|
|
|
3700
3707
|
Object.keys(mChangeListeners).forEach(function (sPath) {
|
|
@@ -3707,7 +3714,7 @@ sap.ui.define([
|
|
|
3707
3714
|
});
|
|
3708
3715
|
// Beware: fireChange can trigger a read which must not be obsoleted
|
|
3709
3716
|
this.aReadRequests?.forEach((oReadRequest) => {
|
|
3710
|
-
oReadRequest.
|
|
3717
|
+
oReadRequest.bObsolete = true;
|
|
3711
3718
|
});
|
|
3712
3719
|
if (mChangeListeners[""]) {
|
|
3713
3720
|
this.mChangeListeners[""] = mChangeListeners[""];
|
|
@@ -3846,7 +3853,7 @@ sap.ui.define([
|
|
|
3846
3853
|
*
|
|
3847
3854
|
* @param {sap.ui.model.odata.v4.lib._GroupLock} oGroupLock
|
|
3848
3855
|
* A lock for the group to associate the request with
|
|
3849
|
-
* see {sap.ui.model.odata.v4.lib._Requestor#request} for details
|
|
3856
|
+
* see {@link sap.ui.model.odata.v4.lib._Requestor#request} for details
|
|
3850
3857
|
* @param {string} [_sPath]
|
|
3851
3858
|
* ignored for property caches, should be empty
|
|
3852
3859
|
* @param {function} [fnDataRequested]
|
|
@@ -3979,7 +3986,7 @@ sap.ui.define([
|
|
|
3979
3986
|
*
|
|
3980
3987
|
* @param {sap.ui.model.odata.v4.lib._GroupLock} oGroupLock
|
|
3981
3988
|
* A lock for the group to associate the request with
|
|
3982
|
-
* see {sap.ui.model.odata.v4.lib._Requestor#request} for details
|
|
3989
|
+
* see {@link sap.ui.model.odata.v4.lib._Requestor#request} for details
|
|
3983
3990
|
* @param {string} [sPath]
|
|
3984
3991
|
* Relative path to drill-down into
|
|
3985
3992
|
* @param {function} [fnDataRequested]
|
|
@@ -4057,7 +4064,7 @@ sap.ui.define([
|
|
|
4057
4064
|
*
|
|
4058
4065
|
* @param {sap.ui.model.odata.v4.lib._GroupLock} oGroupLock
|
|
4059
4066
|
* A lock for the ID of the group that is associated with the request;
|
|
4060
|
-
* see {sap.ui.model.odata.v4.lib._Requestor#request} for details
|
|
4067
|
+
* see {@link sap.ui.model.odata.v4.lib._Requestor#request} for details
|
|
4061
4068
|
* @param {object} [oData]
|
|
4062
4069
|
* A copy of the data to be sent with the POST request; may be used to tunnel a different
|
|
4063
4070
|
* HTTP method via a property "X-HTTP-Method" (which is removed)
|
|
@@ -4100,7 +4107,7 @@ sap.ui.define([
|
|
|
4100
4107
|
* until this request has returned.
|
|
4101
4108
|
*/
|
|
4102
4109
|
function onSubmit() {
|
|
4103
|
-
oRequestLock = that.oRequestor.lockGroup(
|
|
4110
|
+
oRequestLock = that.oRequestor.lockGroup(sGroupId, that, true);
|
|
4104
4111
|
}
|
|
4105
4112
|
|
|
4106
4113
|
function post(oGroupLock0) {
|
|
@@ -4110,7 +4117,7 @@ sap.ui.define([
|
|
|
4110
4117
|
return SyncPromise.all([
|
|
4111
4118
|
that.oRequestor.request(sHttpMethod,
|
|
4112
4119
|
that.sResourcePath + that.sQueryString, oGroupLock0, mHeaders, oData,
|
|
4113
|
-
oEntity && onSubmit),
|
|
4120
|
+
oEntity && sGroupId !== "$single" && onSubmit),
|
|
4114
4121
|
that.fetchTypes()
|
|
4115
4122
|
]).then(function (aResult) {
|
|
4116
4123
|
that.buildOriginalResourcePath(aResult[0], aResult[1], fnGetOriginalResourcePath);
|
|
@@ -4190,7 +4197,7 @@ sap.ui.define([
|
|
|
4190
4197
|
*
|
|
4191
4198
|
* @param {sap.ui.model.odata.v4.lib._GroupLock} oGroupLock
|
|
4192
4199
|
* A lock for the ID of the group that is associated with the request;
|
|
4193
|
-
* see {sap.ui.model.odata.v4.lib._Requestor#request} for details
|
|
4200
|
+
* see {@link sap.ui.model.odata.v4.lib._Requestor#request} for details
|
|
4194
4201
|
* @param {string[]} aPaths
|
|
4195
4202
|
* The "14.5.11 Expression edm:NavigationPropertyPath" or
|
|
4196
4203
|
* "14.5.13 Expression edm:PropertyPath" strings describing which properties need to be loaded
|
|
@@ -4349,7 +4356,7 @@ sap.ui.define([
|
|
|
4349
4356
|
*
|
|
4350
4357
|
* @param {sap.ui.model.odata.v4.lib._GroupLock} oGroupLock
|
|
4351
4358
|
* A lock for the group to associate the request with
|
|
4352
|
-
* see {sap.ui.model.odata.v4.lib._Requestor#request} for details
|
|
4359
|
+
* see {@link sap.ui.model.odata.v4.lib._Requestor#request} for details
|
|
4353
4360
|
* @param {string} [_sPath]
|
|
4354
4361
|
* ignored for property caches, should be empty
|
|
4355
4362
|
* @param {function} [fnDataRequested]
|