@openui5/sap.ui.core 1.120.1 → 1.120.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.reuse/dep5 +1 -1
- package/THIRDPARTY.txt +1 -1
- package/package.json +1 -1
- package/src/jquery.sap.act.js +1 -1
- package/src/jquery.sap.dom.js +1 -1
- package/src/jquery.sap.encoder.js +1 -1
- package/src/jquery.sap.events.js +1 -1
- package/src/jquery.sap.global.js +2 -2
- package/src/jquery.sap.history.js +1 -1
- package/src/jquery.sap.keycodes.js +1 -1
- package/src/jquery.sap.mobile.js +1 -1
- package/src/jquery.sap.promise.js +1 -1
- package/src/jquery.sap.properties.js +2 -2
- package/src/jquery.sap.resources.js +2 -2
- package/src/jquery.sap.script.js +2 -2
- package/src/jquery.sap.sjax.js +1 -1
- package/src/jquery.sap.storage.js +4 -4
- package/src/jquery.sap.strings.js +1 -1
- package/src/jquery.sap.stubs.js +1 -1
- package/src/jquery.sap.trace.js +1 -1
- package/src/jquery.sap.ui.js +1 -1
- package/src/jquery.sap.xml.js +1 -1
- package/src/sap/base/Event.js +2 -2
- package/src/sap/base/Eventing.js +2 -2
- package/src/sap/base/Log.js +1 -1
- package/src/sap/base/assert.js +1 -1
- package/src/sap/base/config/MemoryConfigurationProvider.js +1 -1
- package/src/sap/base/config.js +2 -2
- package/src/sap/base/i18n/Formatting.js +1 -1
- package/src/sap/base/i18n/LanguageTag.js +2 -2
- package/src/sap/base/i18n/Localization.js +1 -1
- package/src/sap/base/i18n/ResourceBundle.js +1 -1
- package/src/sap/base/i18n/date/CalendarType.js +1 -1
- package/src/sap/base/i18n/date/CalendarWeekNumbering.js +1 -1
- package/src/sap/base/i18n/date/TimezoneUtils.js +23 -10
- package/src/sap/base/security/URLListValidator.js +1 -1
- package/src/sap/base/security/URLWhitelist.js +1 -1
- package/src/sap/base/security/encodeCSS.js +1 -1
- package/src/sap/base/security/encodeJS.js +1 -1
- package/src/sap/base/security/encodeURL.js +1 -1
- package/src/sap/base/security/encodeURLParameters.js +1 -1
- package/src/sap/base/security/encodeXML.js +1 -1
- package/src/sap/base/security/sanitizeHTML.js +1 -1
- package/src/sap/base/strings/camelize.js +1 -1
- package/src/sap/base/strings/capitalize.js +1 -1
- package/src/sap/base/strings/escapeRegExp.js +1 -1
- package/src/sap/base/strings/formatMessage.js +1 -1
- package/src/sap/base/strings/hash.js +1 -1
- package/src/sap/base/strings/hyphenate.js +1 -1
- package/src/sap/base/strings/toHex.js +1 -1
- package/src/sap/base/strings/whitespaceReplacer.js +1 -1
- package/src/sap/base/util/Deferred.js +1 -1
- package/src/sap/base/util/JSTokenizer.js +1 -1
- package/src/sap/base/util/LoaderExtensions.js +1 -1
- package/src/sap/base/util/ObjectPath.js +1 -1
- package/src/sap/base/util/Properties.js +1 -1
- package/src/sap/base/util/UriParameters.js +1 -1
- package/src/sap/base/util/Version.js +1 -1
- package/src/sap/base/util/_merge.js +1 -1
- package/src/sap/base/util/array/diff.js +1 -1
- package/src/sap/base/util/array/uniqueSort.js +1 -1
- package/src/sap/base/util/deepClone.js +1 -1
- package/src/sap/base/util/deepEqual.js +1 -1
- package/src/sap/base/util/deepExtend.js +1 -1
- package/src/sap/base/util/defineCoupledProperty.js +1 -1
- package/src/sap/base/util/defineLazyProperty.js +1 -1
- package/src/sap/base/util/each.js +1 -1
- package/src/sap/base/util/extend.js +1 -1
- package/src/sap/base/util/fetch.js +1 -1
- package/src/sap/base/util/includes.js +1 -1
- package/src/sap/base/util/isEmptyObject.js +1 -1
- package/src/sap/base/util/isPlainObject.js +1 -1
- package/src/sap/base/util/merge.js +1 -1
- package/src/sap/base/util/mixedFetch.js +1 -1
- package/src/sap/base/util/now.js +1 -1
- package/src/sap/base/util/resolveReference.js +1 -1
- package/src/sap/base/util/restricted/_CancelablePromise.js +1 -1
- package/src/sap/base/util/restricted/_castArray.js +2 -2
- package/src/sap/base/util/restricted/_compact.js +2 -2
- package/src/sap/base/util/restricted/_curry.js +2 -2
- package/src/sap/base/util/restricted/_debounce.js +2 -2
- package/src/sap/base/util/restricted/_difference.js +2 -2
- package/src/sap/base/util/restricted/_differenceBy.js +2 -2
- package/src/sap/base/util/restricted/_differenceWith.js +2 -2
- package/src/sap/base/util/restricted/_flatMap.js +2 -2
- package/src/sap/base/util/restricted/_flatMapDeep.js +2 -2
- package/src/sap/base/util/restricted/_flatMapDepth.js +2 -2
- package/src/sap/base/util/restricted/_flatten.js +2 -2
- package/src/sap/base/util/restricted/_flattenDeep.js +2 -2
- package/src/sap/base/util/restricted/_flattenDepth.js +2 -2
- package/src/sap/base/util/restricted/_intersection.js +2 -2
- package/src/sap/base/util/restricted/_intersectionBy.js +2 -2
- package/src/sap/base/util/restricted/_intersectionWith.js +2 -2
- package/src/sap/base/util/restricted/_isEqual.js +2 -2
- package/src/sap/base/util/restricted/_isEqualWith.js +2 -2
- package/src/sap/base/util/restricted/_isNil.js +2 -2
- package/src/sap/base/util/restricted/_max.js +2 -2
- package/src/sap/base/util/restricted/_merge.js +2 -2
- package/src/sap/base/util/restricted/_mergeWith.js +2 -2
- package/src/sap/base/util/restricted/_min.js +2 -2
- package/src/sap/base/util/restricted/_omit.js +2 -2
- package/src/sap/base/util/restricted/_pick.js +2 -2
- package/src/sap/base/util/restricted/_pickBy.js +2 -2
- package/src/sap/base/util/restricted/_throttle.js +2 -2
- package/src/sap/base/util/restricted/_toArray.js +2 -2
- package/src/sap/base/util/restricted/_union.js +2 -2
- package/src/sap/base/util/restricted/_unionBy.js +2 -2
- package/src/sap/base/util/restricted/_unionWith.js +2 -2
- package/src/sap/base/util/restricted/_uniq.js +2 -2
- package/src/sap/base/util/restricted/_uniqBy.js +2 -2
- package/src/sap/base/util/restricted/_uniqWith.js +2 -2
- package/src/sap/base/util/restricted/_without.js +2 -2
- package/src/sap/base/util/restricted/_xor.js +2 -2
- package/src/sap/base/util/restricted/_xorBy.js +2 -2
- package/src/sap/base/util/restricted/_xorWith.js +2 -2
- package/src/sap/base/util/restricted/_zipObject.js +2 -2
- package/src/sap/base/util/restricted/_zipObjectDeep.js +2 -2
- package/src/sap/base/util/syncFetch.js +1 -1
- package/src/sap/base/util/uid.js +1 -1
- package/src/sap/base/util/values.js +1 -1
- package/src/sap/ui/Device.js +4 -4
- package/src/sap/ui/Global.js +5 -5
- package/src/sap/ui/VersionInfo.js +1 -1
- package/src/sap/ui/base/BindingInfo.js +1 -1
- package/src/sap/ui/base/BindingParser.js +5 -5
- package/src/sap/ui/base/DataType.js +6 -6
- package/src/sap/ui/base/DesignTime.js +1 -1
- package/src/sap/ui/base/Event.js +2 -2
- package/src/sap/ui/base/EventProvider.js +2 -2
- package/src/sap/ui/base/Exception.js +1 -1
- package/src/sap/ui/base/ExpressionParser.js +1 -1
- package/src/sap/ui/base/Interface.js +2 -2
- package/src/sap/ui/base/ManagedObject.js +10 -10
- package/src/sap/ui/base/ManagedObjectMetadata.js +2 -2
- package/src/sap/ui/base/ManagedObjectObserver.js +1 -1
- package/src/sap/ui/base/ManagedObjectRegistry.js +187 -170
- package/src/sap/ui/base/Metadata.js +2 -2
- package/src/sap/ui/base/Object.js +2 -2
- package/src/sap/ui/base/ObjectPool.js +2 -2
- package/src/sap/ui/base/SyncPromise.js +1 -1
- package/src/sap/ui/base/syncXHRFix.js +1 -1
- package/src/sap/ui/core/.library +4 -4
- package/src/sap/ui/core/AccessKeysEnablement.js +1 -1
- package/src/sap/ui/core/AnimationMode.js +1 -1
- package/src/sap/ui/core/AppCacheBuster.js +1 -1
- package/src/sap/ui/core/BlockLayerUtils.js +1 -1
- package/src/sap/ui/core/BusyIndicator.js +2 -2
- package/src/sap/ui/core/BusyIndicatorUtils.js +1 -1
- package/src/sap/ui/core/CalendarType.js +1 -1
- package/src/sap/ui/core/CommandExecution.js +1 -1
- package/src/sap/ui/core/Component.js +31 -145
- package/src/sap/ui/core/ComponentContainer.js +4 -4
- package/src/sap/ui/core/ComponentContainerRenderer.js +1 -1
- package/src/sap/ui/core/ComponentMetadata.js +2 -2
- package/src/sap/ui/core/ComponentRegistry.js +153 -0
- package/src/sap/ui/core/ComponentSupport.js +4 -4
- package/src/sap/ui/core/Configuration.js +2 -2
- package/src/sap/ui/core/ContextMenuSupport.js +1 -1
- package/src/sap/ui/core/Control.js +7 -5
- package/src/sap/ui/core/ControlBehavior.js +1 -1
- package/src/sap/ui/core/Core.js +7 -5
- package/src/sap/ui/core/CustomData.js +2 -2
- package/src/sap/ui/core/CustomStyleClassSupport.js +1 -1
- package/src/sap/ui/core/DeclarativeSupport.js +2 -2
- package/src/sap/ui/core/Element.js +26 -142
- package/src/sap/ui/core/ElementMetadata.js +2 -2
- package/src/sap/ui/core/ElementRegistry.js +159 -0
- package/src/sap/ui/core/EnabledPropagator.js +2 -2
- package/src/sap/ui/core/EventBus.js +2 -2
- package/src/sap/ui/core/ExtensionPoint.js +6 -6
- package/src/sap/ui/core/FocusHandler.js +4 -3
- package/src/sap/ui/core/Fragment.js +6 -6
- package/src/sap/ui/core/HTML.js +2 -2
- package/src/sap/ui/core/HTMLRenderer.js +1 -1
- package/src/sap/ui/core/History.js +2 -2
- package/src/sap/ui/core/Icon.js +2 -2
- package/src/sap/ui/core/IconPool.js +1 -1
- package/src/sap/ui/core/IconRenderer.js +1 -1
- package/src/sap/ui/core/IndicationColorSupport.js +2 -2
- package/src/sap/ui/core/IntervalTrigger.js +2 -2
- package/src/sap/ui/core/InvisibleMessage.js +2 -2
- package/src/sap/ui/core/InvisibleRenderer.js +2 -2
- package/src/sap/ui/core/InvisibleText.js +2 -2
- package/src/sap/ui/core/Item.js +2 -2
- package/src/sap/ui/core/LabelEnablement.js +2 -2
- package/src/sap/ui/core/LayoutData.js +2 -2
- package/src/sap/ui/core/Lib.js +15 -8
- package/src/sap/ui/core/ListItem.js +2 -2
- package/src/sap/ui/core/LocalBusyIndicator.js +2 -2
- package/src/sap/ui/core/LocalBusyIndicatorRenderer.js +1 -1
- package/src/sap/ui/core/LocalBusyIndicatorSupport.js +1 -1
- package/src/sap/ui/core/Locale.js +2 -2
- package/src/sap/ui/core/LocaleData.js +56 -12
- package/src/sap/ui/core/Manifest.js +5 -6
- package/src/sap/ui/core/Message.js +3 -2
- package/src/sap/ui/core/Messaging.js +3 -3
- package/src/sap/ui/core/Patcher.js +1 -1
- package/src/sap/ui/core/Placeholder.js +1 -1
- package/src/sap/ui/core/Popup.js +1 -1
- package/src/sap/ui/core/RenderManager.js +2 -2
- package/src/sap/ui/core/Renderer.js +2 -2
- package/src/sap/ui/core/Rendering.js +1 -1
- package/src/sap/ui/core/ResizeHandler.js +2 -2
- package/src/sap/ui/core/ScrollBar.js +2 -2
- package/src/sap/ui/core/ScrollBarRenderer.js +1 -1
- package/src/sap/ui/core/SeparatorItem.js +2 -2
- package/src/sap/ui/core/Shortcut.js +16 -10
- package/src/sap/ui/core/ShortcutHint.js +1 -1
- package/src/sap/ui/core/ShortcutHintsMixin.js +1 -1
- package/src/sap/ui/core/StashedControlSupport.js +1 -1
- package/src/sap/ui/core/StaticArea.js +5 -2
- package/src/sap/ui/core/Supportability.js +1 -1
- package/src/sap/ui/core/Theming.js +3 -3
- package/src/sap/ui/core/Title.js +2 -2
- package/src/sap/ui/core/TooltipBase.js +2 -2
- package/src/sap/ui/core/UIArea.js +52 -14
- package/src/sap/ui/core/UIAreaRegistry.js +150 -0
- package/src/sap/ui/core/UIComponent.js +4 -4
- package/src/sap/ui/core/UIComponentMetadata.js +2 -2
- package/src/sap/ui/core/ValueStateSupport.js +2 -2
- package/src/sap/ui/core/VariantLayoutData.js +2 -2
- package/src/sap/ui/core/XMLComposite.js +2 -2
- package/src/sap/ui/core/XMLCompositeMetadata.js +2 -2
- package/src/sap/ui/core/XMLTemplateProcessor.js +96 -77
- package/src/sap/ui/core/_IconRegistry.js +1 -1
- package/src/sap/ui/core/_UrlResolver.js +1 -1
- package/src/sap/ui/core/boot/_bootConfig.js +1 -1
- package/src/sap/ui/core/boot/_runBoot.js +1 -1
- package/src/sap/ui/core/boot/initDOM.js +1 -1
- package/src/sap/ui/core/boot/loadCalendar.js +1 -1
- package/src/sap/ui/core/boot/loadManifest.js +1 -1
- package/src/sap/ui/core/boot/loadModules.js +1 -1
- package/src/sap/ui/core/boot/onInit.js +1 -1
- package/src/sap/ui/core/boot.js +1 -1
- package/src/sap/ui/core/cache/CacheManager.js +1 -1
- package/src/sap/ui/core/cache/CacheManagerNOP.js +1 -1
- package/src/sap/ui/core/cache/LRUPersistentCache.js +1 -1
- package/src/sap/ui/core/cldr/Unicode-Data-Files-LICENSE.txt +1 -1
- package/src/sap/ui/core/cldr/cy.json +12 -3
- package/src/sap/ui/core/cldr/en_AU.json +48 -12
- package/src/sap/ui/core/cldr/en_GB.json +24 -6
- package/src/sap/ui/core/cldr/en_HK.json +24 -6
- package/src/sap/ui/core/cldr/en_IE.json +24 -6
- package/src/sap/ui/core/cldr/en_IN.json +24 -6
- package/src/sap/ui/core/cldr/en_NZ.json +24 -6
- package/src/sap/ui/core/cldr/en_PG.json +24 -6
- package/src/sap/ui/core/cldr/en_SG.json +24 -6
- package/src/sap/ui/core/cldr/en_ZA.json +24 -6
- package/src/sap/ui/core/cldr/es.json +288 -72
- package/src/sap/ui/core/cldr/es_AR.json +288 -72
- package/src/sap/ui/core/cldr/es_BO.json +288 -72
- package/src/sap/ui/core/cldr/es_CL.json +144 -36
- package/src/sap/ui/core/cldr/es_CO.json +144 -36
- package/src/sap/ui/core/cldr/es_MX.json +288 -72
- package/src/sap/ui/core/cldr/fa.json +48 -12
- package/src/sap/ui/core/cldr/id.json +56 -14
- package/src/sap/ui/core/cldr/kk.json +184 -46
- package/src/sap/ui/core/cldr/ms.json +56 -14
- package/src/sap/ui/core/cldr/nb.json +36 -9
- package/src/sap/ui/core/cldr/nl.json +264 -66
- package/src/sap/ui/core/cldr/nl_BE.json +264 -66
- package/src/sap/ui/core/cldr/pt.json +288 -72
- package/src/sap/ui/core/cldr/pt_PT.json +288 -72
- package/src/sap/ui/core/cldr/sr.json +96 -24
- package/src/sap/ui/core/cldr/sr_Latn.json +72 -18
- package/src/sap/ui/core/date/Buddhist.js +1 -1
- package/src/sap/ui/core/date/CalendarUtils.js +1 -1
- package/src/sap/ui/core/date/CalendarWeekNumbering.js +1 -1
- package/src/sap/ui/core/date/Gregorian.js +1 -1
- package/src/sap/ui/core/date/Islamic.js +1 -1
- package/src/sap/ui/core/date/Japanese.js +1 -1
- package/src/sap/ui/core/date/Persian.js +1 -1
- package/src/sap/ui/core/date/UI5Date.js +2 -2
- package/src/sap/ui/core/date/UniversalDate.js +1 -1
- package/src/sap/ui/core/date/UniversalDateUtils.js +1 -1
- package/src/sap/ui/core/date/_Calendars.js +1 -1
- package/src/sap/ui/core/delegate/ItemNavigation.js +2 -2
- package/src/sap/ui/core/delegate/ScrollEnablement.js +2 -2
- package/src/sap/ui/core/designtime/ComponentContainer.designtime.js +1 -1
- package/src/sap/ui/core/designtime/CustomData.designtime.js +1 -1
- package/src/sap/ui/core/designtime/Icon.designtime.js +1 -1
- package/src/sap/ui/core/designtime/UIComponent.designtime.js +1 -1
- package/src/sap/ui/core/designtime/library.designtime.js +1 -1
- package/src/sap/ui/core/designtime/mvc/ControllerExtensionTemplate.js +1 -1
- package/src/sap/ui/core/designtime/mvc/View.designtime.js +1 -1
- package/src/sap/ui/core/designtime/mvc/XMLView.designtime.js +1 -1
- package/src/sap/ui/core/dnd/DragAndDrop.js +1 -1
- package/src/sap/ui/core/dnd/DragDropBase.js +2 -2
- package/src/sap/ui/core/dnd/DragDropInfo.js +2 -2
- package/src/sap/ui/core/dnd/DragInfo.js +2 -2
- package/src/sap/ui/core/dnd/DropInfo.js +2 -2
- package/src/sap/ui/core/format/DateFormat.js +26 -14
- package/src/sap/ui/core/format/DateFormatTimezoneDisplay.js +1 -1
- package/src/sap/ui/core/format/FileSizeFormat.js +1 -1
- package/src/sap/ui/core/format/ListFormat.js +1 -1
- package/src/sap/ui/core/format/NumberFormat.js +1 -1
- package/src/sap/ui/core/format/TimezoneUtil.js +2 -2
- package/src/sap/ui/core/getCompatibilityVersion.js +2 -2
- package/src/sap/ui/core/hyphenation/Hyphenation.js +2 -2
- package/src/sap/ui/core/hyphenation/HyphenationTestingWords.js +1 -1
- package/src/sap/ui/core/library.js +10 -4
- package/src/sap/ui/core/library.support.js +1 -1
- package/src/sap/ui/core/message/ControlMessageProcessor.js +2 -2
- package/src/sap/ui/core/message/Message.js +8 -8
- package/src/sap/ui/core/message/MessageManager.js +2 -2
- package/src/sap/ui/core/message/MessageMixin.js +1 -1
- package/src/sap/ui/core/message/MessageParser.js +2 -2
- package/src/sap/ui/core/message/MessageProcessor.js +2 -2
- package/src/sap/ui/core/message/MessageType.js +2 -2
- package/src/sap/ui/core/messagebundle_cnr.properties +352 -0
- package/src/sap/ui/core/messagebundle_en_US_saprigi.properties +297 -285
- package/src/sap/ui/core/mvc/Controller.js +16 -14
- package/src/sap/ui/core/mvc/ControllerExtension.js +8 -6
- package/src/sap/ui/core/mvc/ControllerExtensionProvider.js +2 -2
- package/src/sap/ui/core/mvc/ControllerMetadata.js +2 -2
- package/src/sap/ui/core/mvc/EventHandlerResolver.js +5 -5
- package/src/sap/ui/core/mvc/HTMLView.js +2 -2
- package/src/sap/ui/core/mvc/HTMLViewRenderer.js +1 -1
- package/src/sap/ui/core/mvc/JSONView.js +2 -2
- package/src/sap/ui/core/mvc/JSONViewRenderer.js +1 -1
- package/src/sap/ui/core/mvc/JSView.js +2 -2
- package/src/sap/ui/core/mvc/JSViewRenderer.js +1 -1
- package/src/sap/ui/core/mvc/OverrideExecution.js +1 -1
- package/src/sap/ui/core/mvc/TemplateView.js +2 -2
- package/src/sap/ui/core/mvc/TemplateViewRenderer.js +1 -1
- package/src/sap/ui/core/mvc/View.js +21 -10
- package/src/sap/ui/core/mvc/ViewRenderer.js +1 -1
- package/src/sap/ui/core/mvc/ViewType.js +1 -1
- package/src/sap/ui/core/mvc/XMLProcessingMode.js +1 -1
- package/src/sap/ui/core/mvc/XMLView.js +9 -3
- package/src/sap/ui/core/mvc/XMLViewRenderer.js +1 -1
- package/src/sap/ui/core/plugin/DeclarativeSupport.js +2 -2
- package/src/sap/ui/core/plugin/LessSupport.js +2 -2
- package/src/sap/ui/core/plugin/TemplatingSupport.js +2 -2
- package/src/sap/ui/core/postmessage/Bus.js +2 -2
- package/src/sap/ui/core/postmessage/confirmationDialog.js +2 -2
- package/src/sap/ui/core/routing/HashChanger.js +1 -1
- package/src/sap/ui/core/routing/HashChangerBase.js +1 -1
- package/src/sap/ui/core/routing/History.js +2 -2
- package/src/sap/ui/core/routing/Route.js +7 -7
- package/src/sap/ui/core/routing/Router.js +7 -7
- package/src/sap/ui/core/routing/RouterHashChanger.js +1 -1
- package/src/sap/ui/core/routing/Target.js +1 -1
- package/src/sap/ui/core/routing/TargetCache.js +1 -1
- package/src/sap/ui/core/routing/Targets.js +4 -4
- package/src/sap/ui/core/routing/Views.js +1 -1
- package/src/sap/ui/core/routing/async/Route.js +1 -1
- package/src/sap/ui/core/routing/async/Target.js +3 -3
- package/src/sap/ui/core/routing/async/TargetCache.js +1 -1
- package/src/sap/ui/core/routing/async/Targets.js +2 -2
- package/src/sap/ui/core/routing/sync/Route.js +1 -1
- package/src/sap/ui/core/routing/sync/Target.js +1 -1
- package/src/sap/ui/core/routing/sync/TargetCache.js +1 -1
- package/src/sap/ui/core/routing/sync/Targets.js +1 -1
- package/src/sap/ui/core/rules/App.support.js +1 -1
- package/src/sap/ui/core/rules/Config.support.js +1 -1
- package/src/sap/ui/core/rules/CoreHelper.support.js +1 -1
- package/src/sap/ui/core/rules/Misc.support.js +4 -4
- package/src/sap/ui/core/rules/Model.support.js +1 -1
- package/src/sap/ui/core/rules/Rendering.support.js +1 -1
- package/src/sap/ui/core/rules/Theming.support.js +1 -1
- package/src/sap/ui/core/rules/View.support.js +1 -1
- package/src/sap/ui/core/search/OpenSearchProvider.js +2 -2
- package/src/sap/ui/core/search/SearchProvider.js +2 -2
- package/src/sap/ui/core/service/Service.js +2 -2
- package/src/sap/ui/core/service/ServiceFactory.js +2 -2
- package/src/sap/ui/core/service/ServiceFactoryRegistry.js +2 -2
- package/src/sap/ui/core/support/BootSupportTool.js +1 -1
- package/src/sap/ui/core/support/Hotkeys.js +1 -1
- package/src/sap/ui/core/support/Plugin.js +2 -2
- package/src/sap/ui/core/support/RuleEngineOpaExtension.js +1 -1
- package/src/sap/ui/core/support/Support.js +2 -2
- package/src/sap/ui/core/support/ToolsAPI.js +1 -1
- package/src/sap/ui/core/support/bootstrapFallback.js +1 -1
- package/src/sap/ui/core/support/controls/InteractionSlider.js +1 -1
- package/src/sap/ui/core/support/controls/InteractionTree.js +1 -1
- package/src/sap/ui/core/support/controls/ObjectViewer.js +1 -1
- package/src/sap/ui/core/support/controls/TimelineOverview.js +1 -1
- package/src/sap/ui/core/support/controls/TreeViewer.js +1 -1
- package/src/sap/ui/core/support/debugReboot.js +1 -1
- package/src/sap/ui/core/support/plugins/Breakpoint.js +1 -1
- package/src/sap/ui/core/support/plugins/ControlTree.js +7 -5
- package/src/sap/ui/core/support/plugins/Debugging.js +1 -1
- package/src/sap/ui/core/support/plugins/Interaction.js +2 -2
- package/src/sap/ui/core/support/plugins/LocalStorage.js +2 -2
- package/src/sap/ui/core/support/plugins/Performance.js +2 -2
- package/src/sap/ui/core/support/plugins/Selector.js +2 -2
- package/src/sap/ui/core/support/plugins/TechInfo.js +2 -2
- package/src/sap/ui/core/support/plugins/Trace.js +2 -2
- package/src/sap/ui/core/support/plugins/ViewInfo.js +2 -2
- package/src/sap/ui/core/support/techinfo/TechnicalInfo.js +1 -1
- package/src/sap/ui/core/support/techinfo/moduleTreeHelper.js +1 -1
- package/src/sap/ui/core/support/trace/E2eTraceLib.js +1 -1
- package/src/sap/ui/core/support/trace/EppLib.js +1 -1
- package/src/sap/ui/core/support/usage/EventBroadcaster.js +1 -1
- package/src/sap/ui/core/syncStyleClass.js +1 -1
- package/src/sap/ui/core/themes/base/library.source.less +1 -1
- package/src/sap/ui/core/themes/sap_hcb/library.source.less +1 -1
- package/src/sap/ui/core/theming/Parameters.js +8 -8
- package/src/sap/ui/core/theming/ThemeHelper.js +3 -3
- package/src/sap/ui/core/theming/ThemeManager.js +3 -3
- package/src/sap/ui/core/tmpl/DOMAttribute.js +2 -2
- package/src/sap/ui/core/tmpl/DOMElement.js +2 -2
- package/src/sap/ui/core/tmpl/DOMElementRenderer.js +1 -1
- package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +2 -2
- package/src/sap/ui/core/tmpl/Template.js +2 -2
- package/src/sap/ui/core/tmpl/TemplateControl.js +2 -2
- package/src/sap/ui/core/tmpl/TemplateControlRenderer.js +1 -1
- package/src/sap/ui/core/tmpl/_parsePath.js +1 -1
- package/src/sap/ui/core/util/AsyncHintsHelper.js +2 -2
- package/src/sap/ui/core/util/DraftEnabledMockServer.js +1 -1
- package/src/sap/ui/core/util/Export.js +2 -2
- package/src/sap/ui/core/util/ExportCell.js +2 -2
- package/src/sap/ui/core/util/ExportColumn.js +2 -2
- package/src/sap/ui/core/util/ExportRow.js +2 -2
- package/src/sap/ui/core/util/ExportType.js +2 -2
- package/src/sap/ui/core/util/ExportTypeCSV.js +2 -2
- package/src/sap/ui/core/util/File.js +2 -2
- package/src/sap/ui/core/util/LibraryInfo.js +2 -2
- package/src/sap/ui/core/util/MockServer.js +35 -4
- package/src/sap/ui/core/util/PasteHelper.js +2 -2
- package/src/sap/ui/core/util/ResponsivePaddingsEnablement.js +1 -1
- package/src/sap/ui/core/util/ShortcutHelper.js +1 -1
- package/src/sap/ui/core/util/XMLPreprocessor.js +1 -1
- package/src/sap/ui/core/util/_LocalizationHelper.js +1 -1
- package/src/sap/ui/core/util/reflection/BaseTreeModifier.js +16 -1
- package/src/sap/ui/core/util/reflection/JsControlTreeModifier.js +12 -1
- package/src/sap/ui/core/util/reflection/XmlTreeModifier.js +15 -1
- package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +2 -2
- package/src/sap/ui/core/util/serializer/Serializer.js +2 -2
- package/src/sap/ui/core/util/serializer/ViewSerializer.js +2 -2
- package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +2 -2
- package/src/sap/ui/core/util/serializer/delegate/Delegate.js +2 -2
- package/src/sap/ui/core/util/serializer/delegate/HTML.js +2 -2
- package/src/sap/ui/core/util/serializer/delegate/XML.js +2 -2
- package/src/sap/ui/core/webc/WebComponent.js +2 -2
- package/src/sap/ui/core/webc/WebComponentMetadata.js +2 -2
- package/src/sap/ui/core/webc/WebComponentRenderer.js +1 -1
- package/src/sap/ui/core/ws/ReadyState.js +2 -2
- package/src/sap/ui/core/ws/SapPcpWebSocket.js +2 -2
- package/src/sap/ui/core/ws/WebSocket.js +2 -2
- package/src/sap/ui/debug/ControlTree.js +2 -2
- package/src/sap/ui/debug/DebugEnv.js +2 -2
- package/src/sap/ui/debug/Highlighter.js +1 -1
- package/src/sap/ui/debug/LogViewer.js +1 -1
- package/src/sap/ui/debug/PropertyList.js +2 -2
- package/src/sap/ui/dom/_ready.js +1 -1
- package/src/sap/ui/dom/containsOrEquals.js +1 -1
- package/src/sap/ui/dom/denormalizeScrollBeginRTL.js +1 -1
- package/src/sap/ui/dom/denormalizeScrollLeftRTL.js +1 -1
- package/src/sap/ui/dom/getComputedStyleFix.js +1 -1
- package/src/sap/ui/dom/getFirstEditableInput.js +1 -1
- package/src/sap/ui/dom/getOwnerWindow.js +1 -1
- package/src/sap/ui/dom/getScrollbarSize.js +1 -1
- package/src/sap/ui/dom/includeScript.js +1 -1
- package/src/sap/ui/dom/includeStylesheet.js +1 -1
- package/src/sap/ui/dom/isBehindOtherElement.js +1 -1
- package/src/sap/ui/dom/isHidden.js +1 -1
- package/src/sap/ui/dom/jquery/Aria.js +1 -1
- package/src/sap/ui/dom/jquery/Focusable.js +1 -1
- package/src/sap/ui/dom/jquery/Selection.js +1 -1
- package/src/sap/ui/dom/jquery/Selectors.js +1 -1
- package/src/sap/ui/dom/jquery/control.js +1 -1
- package/src/sap/ui/dom/jquery/cursorPos.js +1 -1
- package/src/sap/ui/dom/jquery/getSelectedText.js +1 -1
- package/src/sap/ui/dom/jquery/hasTabIndex.js +1 -1
- package/src/sap/ui/dom/jquery/parentByAttribute.js +1 -1
- package/src/sap/ui/dom/jquery/rect.js +1 -1
- package/src/sap/ui/dom/jquery/rectContains.js +1 -1
- package/src/sap/ui/dom/jquery/scrollLeftRTL.js +1 -1
- package/src/sap/ui/dom/jquery/scrollRightRTL.js +1 -1
- package/src/sap/ui/dom/jquery/selectText.js +1 -1
- package/src/sap/ui/dom/jquery/zIndex.js +1 -1
- package/src/sap/ui/dom/units/Rem.js +1 -1
- package/src/sap/ui/events/ControlEvents.js +1 -1
- package/src/sap/ui/events/F6Navigation.js +1 -1
- package/src/sap/ui/events/KeyCodes.js +1 -1
- package/src/sap/ui/events/PasteEventFix.js +1 -1
- package/src/sap/ui/events/PseudoEvents.js +1 -1
- package/src/sap/ui/events/TouchToMouseMapping.js +1 -1
- package/src/sap/ui/events/checkMouseEnterOrLeave.js +1 -1
- package/src/sap/ui/events/isMouseEventDelayed.js +1 -1
- package/src/sap/ui/events/isSpecialKey.js +1 -1
- package/src/sap/ui/events/jquery/EventExtension.js +1 -1
- package/src/sap/ui/events/jquery/EventSimulation.js +1 -1
- package/src/sap/ui/events/jquery/EventTriggerHook.js +1 -1
- package/src/sap/ui/model/Binding.js +3 -3
- package/src/sap/ui/model/BindingMode.js +1 -1
- package/src/sap/ui/model/ChangeReason.js +1 -1
- package/src/sap/ui/model/ClientContextBinding.js +1 -1
- package/src/sap/ui/model/ClientListBinding.js +1 -1
- package/src/sap/ui/model/ClientModel.js +2 -2
- package/src/sap/ui/model/ClientPropertyBinding.js +1 -1
- package/src/sap/ui/model/ClientTreeBinding.js +1 -1
- package/src/sap/ui/model/ClientTreeBindingAdapter.js +1 -1
- package/src/sap/ui/model/CompositeBinding.js +1 -1
- package/src/sap/ui/model/CompositeDataState.js +6 -6
- package/src/sap/ui/model/CompositeType.js +2 -2
- package/src/sap/ui/model/Context.js +1 -1
- package/src/sap/ui/model/ContextBinding.js +1 -1
- package/src/sap/ui/model/DataState.js +11 -11
- package/src/sap/ui/model/Filter.js +1 -1
- package/src/sap/ui/model/FilterOperator.js +1 -1
- package/src/sap/ui/model/FilterProcessor.js +9 -6
- package/src/sap/ui/model/FilterType.js +1 -1
- package/src/sap/ui/model/FormatException.js +1 -1
- package/src/sap/ui/model/ListBinding.js +1 -1
- package/src/sap/ui/model/ManagedObjectBindingSupport.js +3 -3
- package/src/sap/ui/model/MetaModel.js +2 -2
- package/src/sap/ui/model/Model.js +2 -2
- package/src/sap/ui/model/ParseException.js +1 -1
- package/src/sap/ui/model/PropertyBinding.js +1 -1
- package/src/sap/ui/model/SelectionModel.js +2 -2
- package/src/sap/ui/model/SimpleType.js +2 -2
- package/src/sap/ui/model/Sorter.js +1 -1
- package/src/sap/ui/model/SorterProcessor.js +1 -1
- package/src/sap/ui/model/StaticBinding.js +1 -1
- package/src/sap/ui/model/TreeAutoExpandMode.js +2 -2
- package/src/sap/ui/model/TreeBinding.js +1 -1
- package/src/sap/ui/model/TreeBindingAdapter.js +1 -1
- package/src/sap/ui/model/TreeBindingCompatibilityAdapter.js +1 -1
- package/src/sap/ui/model/TreeBindingUtils.js +1 -1
- package/src/sap/ui/model/Type.js +2 -2
- package/src/sap/ui/model/ValidateException.js +1 -1
- package/src/sap/ui/model/_Helper.js +1 -1
- package/src/sap/ui/model/analytics/AnalyticalBinding.js +1 -1
- package/src/sap/ui/model/analytics/AnalyticalTreeBindingAdapter.js +1 -1
- package/src/sap/ui/model/analytics/AnalyticalVersionInfo.js +1 -1
- package/src/sap/ui/model/analytics/BatchResponseCollector.js +1 -1
- package/src/sap/ui/model/analytics/ODataModelAdapter.js +1 -1
- package/src/sap/ui/model/analytics/odata4analytics.js +7 -7
- package/src/sap/ui/model/base/ManagedObjectModel.js +1 -1
- package/src/sap/ui/model/controlhelper/TreeBindingProxy.js +1 -1
- package/src/sap/ui/model/json/JSONListBinding.js +1 -1
- package/src/sap/ui/model/json/JSONModel.js +2 -2
- package/src/sap/ui/model/json/JSONPropertyBinding.js +1 -1
- package/src/sap/ui/model/json/JSONTreeBinding.js +1 -1
- package/src/sap/ui/model/message/MessageListBinding.js +1 -1
- package/src/sap/ui/model/message/MessageModel.js +2 -2
- package/src/sap/ui/model/message/MessagePropertyBinding.js +1 -1
- package/src/sap/ui/model/odata/AnnotationHelper.js +1 -1
- package/src/sap/ui/model/odata/AnnotationParser.js +1 -1
- package/src/sap/ui/model/odata/CountMode.js +1 -1
- package/src/sap/ui/model/odata/Filter.js +1 -1
- package/src/sap/ui/model/odata/MessageScope.js +1 -1
- package/src/sap/ui/model/odata/ODataAnnotations.js +2 -2
- package/src/sap/ui/model/odata/ODataContextBinding.js +1 -1
- package/src/sap/ui/model/odata/ODataListBinding.js +1 -1
- package/src/sap/ui/model/odata/ODataMessageParser.js +4 -4
- package/src/sap/ui/model/odata/ODataMetaModel.js +2 -2
- package/src/sap/ui/model/odata/ODataMetadata.js +2 -2
- package/src/sap/ui/model/odata/ODataModel.js +2 -2
- package/src/sap/ui/model/odata/ODataPropertyBinding.js +1 -1
- package/src/sap/ui/model/odata/ODataTreeBinding.js +1 -1
- package/src/sap/ui/model/odata/ODataTreeBindingAdapter.js +1 -1
- package/src/sap/ui/model/odata/ODataTreeBindingFlat.js +1 -1
- package/src/sap/ui/model/odata/ODataUtils.js +11 -6
- package/src/sap/ui/model/odata/OperationMode.js +1 -1
- package/src/sap/ui/model/odata/UpdateMethod.js +1 -1
- package/src/sap/ui/model/odata/_AnnotationHelperBasics.js +1 -1
- package/src/sap/ui/model/odata/_AnnotationHelperExpression.js +1 -1
- package/src/sap/ui/model/odata/_ODataMetaModelUtils.js +1 -1
- package/src/sap/ui/model/odata/type/Boolean.js +2 -2
- package/src/sap/ui/model/odata/type/Byte.js +2 -2
- package/src/sap/ui/model/odata/type/Currency.js +2 -2
- package/src/sap/ui/model/odata/type/Date.js +2 -2
- package/src/sap/ui/model/odata/type/DateTime.js +2 -2
- package/src/sap/ui/model/odata/type/DateTimeBase.js +2 -2
- package/src/sap/ui/model/odata/type/DateTimeOffset.js +2 -2
- package/src/sap/ui/model/odata/type/DateTimeWithTimezone.js +2 -2
- package/src/sap/ui/model/odata/type/Decimal.js +2 -2
- package/src/sap/ui/model/odata/type/Double.js +2 -2
- package/src/sap/ui/model/odata/type/Guid.js +2 -2
- package/src/sap/ui/model/odata/type/Int.js +2 -2
- package/src/sap/ui/model/odata/type/Int16.js +2 -2
- package/src/sap/ui/model/odata/type/Int32.js +2 -2
- package/src/sap/ui/model/odata/type/Int64.js +2 -2
- package/src/sap/ui/model/odata/type/ODataType.js +2 -2
- package/src/sap/ui/model/odata/type/Raw.js +2 -2
- package/src/sap/ui/model/odata/type/SByte.js +2 -2
- package/src/sap/ui/model/odata/type/Single.js +2 -2
- package/src/sap/ui/model/odata/type/Stream.js +2 -2
- package/src/sap/ui/model/odata/type/String.js +2 -2
- package/src/sap/ui/model/odata/type/Time.js +2 -2
- package/src/sap/ui/model/odata/type/TimeOfDay.js +2 -2
- package/src/sap/ui/model/odata/type/Unit.js +2 -2
- package/src/sap/ui/model/odata/type/UnitMixin.js +1 -1
- package/src/sap/ui/model/odata/v2/BatchMode.js +1 -1
- package/src/sap/ui/model/odata/v2/Context.js +2 -2
- package/src/sap/ui/model/odata/v2/ODataAnnotations.js +2 -2
- package/src/sap/ui/model/odata/v2/ODataContextBinding.js +1 -1
- package/src/sap/ui/model/odata/v2/ODataListBinding.js +1 -1
- package/src/sap/ui/model/odata/v2/ODataModel.js +5 -5
- package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +18 -10
- package/src/sap/ui/model/odata/v2/_CreatedContextsCache.js +1 -1
- package/src/sap/ui/model/odata/v4/AnnotationHelper.js +1 -1
- package/src/sap/ui/model/odata/v4/Context.js +33 -28
- package/src/sap/ui/model/odata/v4/ODataBinding.js +1 -1
- package/src/sap/ui/model/odata/v4/ODataContextBinding.js +19 -13
- package/src/sap/ui/model/odata/v4/ODataListBinding.js +199 -156
- package/src/sap/ui/model/odata/v4/ODataMetaModel.js +11 -9
- package/src/sap/ui/model/odata/v4/ODataModel.js +10 -5
- package/src/sap/ui/model/odata/v4/ODataParentBinding.js +10 -7
- package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +2 -2
- package/src/sap/ui/model/odata/v4/ODataUtils.js +1 -1
- package/src/sap/ui/model/odata/v4/SubmitMode.js +1 -1
- package/src/sap/ui/model/odata/v4/ValueListType.js +1 -1
- package/src/sap/ui/model/odata/v4/_AnnotationHelperExpression.js +1 -1
- package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +231 -90
- package/src/sap/ui/model/odata/v4/lib/_AggregationHelper.js +34 -21
- package/src/sap/ui/model/odata/v4/lib/_Batch.js +1 -1
- package/src/sap/ui/model/odata/v4/lib/_Cache.js +72 -20
- package/src/sap/ui/model/odata/v4/lib/_ConcatHelper.js +1 -1
- package/src/sap/ui/model/odata/v4/lib/_GroupLock.js +1 -1
- package/src/sap/ui/model/odata/v4/lib/_Helper.js +1 -1
- package/src/sap/ui/model/odata/v4/lib/_MetadataConverter.js +1 -1
- package/src/sap/ui/model/odata/v4/lib/_MetadataRequestor.js +1 -1
- package/src/sap/ui/model/odata/v4/lib/_MinMaxHelper.js +1 -1
- package/src/sap/ui/model/odata/v4/lib/_Parser.js +1 -1
- package/src/sap/ui/model/odata/v4/lib/_Requestor.js +10 -6
- package/src/sap/ui/model/odata/v4/lib/_V2MetadataConverter.js +1 -1
- package/src/sap/ui/model/odata/v4/lib/_V2Requestor.js +1 -1
- package/src/sap/ui/model/odata/v4/lib/_V4MetadataConverter.js +1 -1
- package/src/sap/ui/model/odata/v4/ts.js +1 -1
- package/src/sap/ui/model/resource/ResourceModel.js +2 -2
- package/src/sap/ui/model/resource/ResourcePropertyBinding.js +1 -1
- package/src/sap/ui/model/type/Boolean.js +2 -2
- package/src/sap/ui/model/type/Currency.js +2 -2
- package/src/sap/ui/model/type/Date.js +2 -2
- package/src/sap/ui/model/type/DateInterval.js +2 -2
- package/src/sap/ui/model/type/DateTime.js +2 -2
- package/src/sap/ui/model/type/DateTimeInterval.js +2 -2
- package/src/sap/ui/model/type/FileSize.js +2 -2
- package/src/sap/ui/model/type/Float.js +2 -2
- package/src/sap/ui/model/type/Integer.js +2 -2
- package/src/sap/ui/model/type/String.js +2 -2
- package/src/sap/ui/model/type/Time.js +2 -2
- package/src/sap/ui/model/type/TimeInterval.js +2 -2
- package/src/sap/ui/model/type/Unit.js +2 -2
- package/src/sap/ui/model/xml/XMLListBinding.js +1 -1
- package/src/sap/ui/model/xml/XMLModel.js +2 -2
- package/src/sap/ui/model/xml/XMLPropertyBinding.js +1 -1
- package/src/sap/ui/model/xml/XMLTreeBinding.js +1 -1
- package/src/sap/ui/performance/BeaconRequest.js +1 -1
- package/src/sap/ui/performance/Measurement.js +1 -1
- package/src/sap/ui/performance/XHRInterceptor.js +1 -1
- package/src/sap/ui/performance/trace/FESR.js +1 -1
- package/src/sap/ui/performance/trace/FESRHelper.js +1 -1
- package/src/sap/ui/performance/trace/Interaction.js +1 -1
- package/src/sap/ui/performance/trace/Passport.js +1 -1
- package/src/sap/ui/performance/trace/initTraces.js +1 -1
- package/src/sap/ui/qunit/QUnitUtils.js +1 -1
- package/src/sap/ui/qunit/qunit-2-css.js +1 -1
- package/src/sap/ui/qunit/qunit-coverage-istanbul.js +1 -1
- package/src/sap/ui/qunit/qunit-coverage.js +1 -1
- package/src/sap/ui/qunit/qunit-css.js +1 -1
- package/src/sap/ui/qunit/qunit-junit.js +1 -1
- package/src/sap/ui/qunit/qunit-redirect.js +1 -1
- package/src/sap/ui/qunit/sinon-qunit-bridge.js +1 -1
- package/src/sap/ui/qunit/utils/ControlIterator.js +2 -2
- package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +6 -6
- package/src/sap/ui/qunit/utils/createAndAppendDiv.js +1 -1
- package/src/sap/ui/qunit/utils/nextUIUpdate.js +1 -1
- package/src/sap/ui/qunit/utils/waitForThemeApplied.js +1 -1
- package/src/sap/ui/security/FrameOptions.js +1 -1
- package/src/sap/ui/test/BlanketReporter.js +1 -1
- package/src/sap/ui/test/BranchTracking.js +5 -1
- package/src/sap/ui/test/ModuleTracking.js +1 -1
- package/src/sap/ui/test/Opa.js +1 -1
- package/src/sap/ui/test/Opa5.js +1 -1
- package/src/sap/ui/test/OpaBuilder.js +1 -1
- package/src/sap/ui/test/OpaExtension.js +1 -1
- package/src/sap/ui/test/OpaPlugin.js +1 -1
- package/src/sap/ui/test/PageObjectFactory.js +1 -1
- package/src/sap/ui/test/RecordReplay.js +1 -1
- package/src/sap/ui/test/RecorderHotkeyListener.js +1 -1
- package/src/sap/ui/test/TestUtils.js +1 -1
- package/src/sap/ui/test/_BrowserLogCollector.js +1 -1
- package/src/sap/ui/test/_ControlFinder.js +1 -1
- package/src/sap/ui/test/_FocusListener.js +1 -1
- package/src/sap/ui/test/_LogCollector.js +1 -1
- package/src/sap/ui/test/_OpaLogger.js +1 -1
- package/src/sap/ui/test/_OpaUriParameterParser.js +1 -1
- package/src/sap/ui/test/_ParameterValidator.js +1 -1
- package/src/sap/ui/test/_UsageReport.js +1 -1
- package/src/sap/ui/test/_ValidationParameters.js +1 -1
- package/src/sap/ui/test/actions/Action.js +1 -1
- package/src/sap/ui/test/actions/Drag.js +1 -1
- package/src/sap/ui/test/actions/Drop.js +1 -1
- package/src/sap/ui/test/actions/EnterText.js +2 -6
- package/src/sap/ui/test/actions/Press.js +1 -1
- package/src/sap/ui/test/actions/Scroll.js +1 -1
- package/src/sap/ui/test/autowaiter/WaiterBase.js +1 -1
- package/src/sap/ui/test/autowaiter/_UIUpdatesWaiter.js +1 -1
- package/src/sap/ui/test/autowaiter/_XHRWaiter.js +1 -1
- package/src/sap/ui/test/autowaiter/_autoWaiter.js +1 -1
- package/src/sap/ui/test/autowaiter/_autoWaiterAsync.js +1 -1
- package/src/sap/ui/test/autowaiter/_cssAnimationWaiter.js +1 -1
- package/src/sap/ui/test/autowaiter/_cssTransitionWaiter.js +1 -1
- package/src/sap/ui/test/autowaiter/_fetchWaiter.js +1 -1
- package/src/sap/ui/test/autowaiter/_jsAnimationWaiter.js +1 -1
- package/src/sap/ui/test/autowaiter/_moduleWaiter.js +1 -1
- package/src/sap/ui/test/autowaiter/_navigationContainerWaiter.js +1 -1
- package/src/sap/ui/test/autowaiter/_promiseWaiter.js +1 -1
- package/src/sap/ui/test/autowaiter/_resourceWaiter.js +1 -1
- package/src/sap/ui/test/autowaiter/_timeoutWaiter.js +1 -1
- package/src/sap/ui/test/autowaiter/_utils.js +1 -1
- package/src/sap/ui/test/generic/GenericTestCollection.js +2 -1
- package/src/sap/ui/test/generic/TestBase.js +5 -5
- package/src/sap/ui/test/generic/Utils.js +4 -3
- package/src/sap/ui/test/generic/_EnforceSemanticRendering.js +1 -1
- package/src/sap/ui/test/gherkin/GherkinTestGenerator.js +1 -1
- package/src/sap/ui/test/gherkin/StepDefinitions.js +1 -1
- package/src/sap/ui/test/gherkin/dataTableUtils.js +1 -1
- package/src/sap/ui/test/gherkin/opa5TestHarness.js +1 -1
- package/src/sap/ui/test/gherkin/qUnitTestHarness.js +1 -1
- package/src/sap/ui/test/gherkin/simpleGherkinParser.js +1 -1
- package/src/sap/ui/test/launchers/componentLauncher.js +1 -1
- package/src/sap/ui/test/launchers/iFrameLauncher.js +1 -1
- package/src/sap/ui/test/matchers/AggregationContainsPropertyEqual.js +1 -1
- package/src/sap/ui/test/matchers/AggregationEmpty.js +1 -1
- package/src/sap/ui/test/matchers/AggregationFilled.js +1 -1
- package/src/sap/ui/test/matchers/AggregationLengthEquals.js +1 -1
- package/src/sap/ui/test/matchers/Ancestor.js +1 -1
- package/src/sap/ui/test/matchers/BindingPath.js +1 -1
- package/src/sap/ui/test/matchers/Descendant.js +1 -1
- package/src/sap/ui/test/matchers/I18NText.js +1 -1
- package/src/sap/ui/test/matchers/Interactable.js +1 -1
- package/src/sap/ui/test/matchers/LabelFor.js +1 -1
- package/src/sap/ui/test/matchers/Matcher.js +1 -1
- package/src/sap/ui/test/matchers/MatcherFactory.js +1 -1
- package/src/sap/ui/test/matchers/Properties.js +1 -1
- package/src/sap/ui/test/matchers/PropertyStrictEquals.js +1 -1
- package/src/sap/ui/test/matchers/Sibling.js +1 -1
- package/src/sap/ui/test/matchers/Visible.js +1 -1
- package/src/sap/ui/test/matchers/_Busy.js +1 -1
- package/src/sap/ui/test/matchers/_Editable.js +1 -1
- package/src/sap/ui/test/matchers/_Enabled.js +1 -1
- package/src/sap/ui/test/matchers/_Visitor.js +1 -1
- package/src/sap/ui/test/matchers/matchers.js +1 -1
- package/src/sap/ui/test/opaQunit.js +1 -1
- package/src/sap/ui/test/pipelines/ActionPipeline.js +1 -1
- package/src/sap/ui/test/pipelines/MatcherPipeline.js +1 -1
- package/src/sap/ui/test/pipelines/PipelineFactory.js +1 -1
- package/src/sap/ui/test/qunitPause.js +1 -1
- package/src/sap/ui/test/selectors/_BindingPath.js +1 -1
- package/src/sap/ui/test/selectors/_ControlSelectorGenerator.js +1 -1
- package/src/sap/ui/test/selectors/_ControlSelectorValidator.js +1 -1
- package/src/sap/ui/test/selectors/_ControlType.js +1 -1
- package/src/sap/ui/test/selectors/_DropdownItem.js +1 -1
- package/src/sap/ui/test/selectors/_GlobalID.js +1 -1
- package/src/sap/ui/test/selectors/_LabelFor.js +1 -1
- package/src/sap/ui/test/selectors/_Properties.js +1 -1
- package/src/sap/ui/test/selectors/_Selector.js +1 -1
- package/src/sap/ui/test/selectors/_TableRowItem.js +1 -1
- package/src/sap/ui/test/selectors/_ViewID.js +1 -1
- package/src/sap/ui/test/selectors/_selectors.js +1 -1
- package/src/sap/ui/test/starter/_configureLoader.js +1 -1
- package/src/sap/ui/test/starter/_setupAndStart.js +1 -1
- package/src/sap/ui/test/starter/_utils.js +1 -1
- package/src/sap/ui/test/starter/createSuite.js +1 -1
- package/src/sap/ui/test/starter/runTest.js +1 -1
- package/src/sap/ui/thirdparty/RequestRecorder.js +1 -1
- package/src/sap/ui/thirdparty/caja-html-sanitizer.js +1 -1
- package/src/sap/ui/util/ActivityDetection.js +1 -1
- package/src/sap/ui/util/Mobile.js +1 -1
- package/src/sap/ui/util/Storage.js +2 -2
- package/src/sap/ui/util/XMLHelper.js +1 -1
- package/src/sap/ui/util/_FeatureDetection.js +1 -1
- package/src/sap/ui/util/defaultLinkTypes.js +1 -1
- package/src/sap/ui/util/isCrossOriginURL.js +1 -1
- package/src/sap/ui/util/openWindow.js +1 -1
- package/src/sap-ui-boot.js +1 -1
- package/src/sap-ui-core-nojQuery.js +1 -1
- package/src/sap-ui-core.js +1 -1
- package/src/sap-ui-debug.js +1 -1
- package/src/ui5loader-autoconfig.js +24 -16
- package/src/ui5loader.js +10 -5
- package/test/sap/ui/core/demokit/sample/MessageManager/ODataBackendMessagesComp/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/sample/ViewTemplate/types/Template.controller.js +3 -3
- package/test/sap/ui/core/demokit/sample/common/Controller.js +0 -1
- package/test/sap/ui/core/demokit/sample/matcher/BindingPath/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/sample/matcher/Descendant/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/sample/matcher/I18NText/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/sample/matcher/LabelFor/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/Ancestry/Main.controller.js +1 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/HierarchyBindAction/Main.controller.js +14 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/HierarchyBindAction/Main.view.xml +6 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/MultipleInlineCreationRowsGrid/MIT.MultipleInlineCreationRowsGrid.html +5 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/MultipleInlineCreationRowsGrid/Main.view.xml +9 -2
- package/test/sap/ui/core/demokit/sample/odata/v4/MultipleInlineCreationRowsGrid/Opa.qunit.js +23 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/MultipleInlineCreationRowsGrid/pages/Main.js +58 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/RecursiveHierarchy.controller.js +75 -30
- package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/RecursiveHierarchy.view.xml +21 -3
- package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/SandboxModel.js +84 -28
- package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/data/metadata.xml +3 -3
- package/test/sap/ui/core/demokit/tutorial/databinding/01/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/02/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/03/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/04/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/05/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/06/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/07/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/08/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/09/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/10/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/11/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/troubleshooting/01/ui5.yaml +1 -1
- package/test/sap/ui/core/qunit/BindingParser.qunit.js +4 -4
- package/test/sap/ui/core/qunit/CommandExecution.qunit.js +3 -1
- package/test/sap/ui/core/qunit/Core.qunit.js +1 -1
- package/test/sap/ui/core/qunit/DataBinding.qunit.js +6 -6
- package/test/sap/ui/core/qunit/Declarative.qunit.js +6 -6
- package/test/sap/ui/core/qunit/Element_base.qunit.js +8 -7
- package/test/sap/ui/core/qunit/Element_base_legacyAPIs.qunit.js +48 -0
- package/test/sap/ui/core/qunit/Element_closestTo.qunit.js +1 -1
- package/test/sap/ui/core/qunit/Fragment.qunit.js +63 -13
- package/test/sap/ui/core/qunit/HTML.qunit.js +5 -5
- package/test/sap/ui/core/qunit/Lib.qunit.js +19 -2
- package/test/sap/ui/core/qunit/PlaceAt.qunit.js +6 -6
- package/test/sap/ui/core/qunit/Shortcut.qunit.js +9 -1
- package/test/sap/ui/core/qunit/UIArea.qunit.js +7 -6
- package/test/sap/ui/core/qunit/analytics/odata4analytics.qunit.js +41 -0
- package/test/sap/ui/core/qunit/base/Config_cascade.qunit.html +7 -5
- package/test/sap/ui/core/qunit/base/Config_cascade.qunit.js +46 -7
- package/test/sap/ui/core/qunit/base/config/GlobalConfigForCascade.js +24 -21
- package/test/sap/ui/core/qunit/component/Component.qunit.js +9 -8
- package/test/sap/ui/core/qunit/component/ComponentContainer.qunit.js +1 -1
- package/test/sap/ui/core/qunit/component/Models.qunit.js +29 -30
- package/test/sap/ui/core/qunit/component/UIComponent.qunit.js +3 -3
- package/test/sap/ui/core/qunit/generic/ControlMemoryLeaks.qunit.js +4 -3
- package/test/sap/ui/core/qunit/generic/legacy/ControlMemoryLeaks.qunit.js +6 -7
- package/test/sap/ui/core/qunit/generic/legacy/DuplicateIdCheck.qunit.js +3 -2
- package/test/sap/ui/core/qunit/generic/legacy/testsuite.generic.qunit.js +3 -0
- package/test/sap/ui/core/qunit/i18n/LocaleData.qunit.js +65 -0
- package/test/sap/ui/core/qunit/i18n/UI5Date.qunit.js +107 -0
- package/test/sap/ui/core/qunit/jquery.sap.ui.qunit.js +12 -12
- package/test/sap/ui/core/qunit/loader/syncMode_unavoidablySync.qunit.js +54 -1
- package/test/sap/ui/core/qunit/messages/messagesGeneral.qunit.js +3 -1
- package/test/sap/ui/core/qunit/mockserver/testdata/shopping/Products.json +1 -1
- package/test/sap/ui/core/qunit/model/FilterProcessor.qunit.js +22 -8
- package/test/sap/ui/core/qunit/mvc/AnyView.qunit.js +3 -0
- package/test/sap/ui/core/qunit/mvc/Controller.qunit.js +3 -2
- package/test/sap/ui/core/qunit/mvc/EventHandlerResolver.qunit.js +2 -2
- package/test/sap/ui/core/qunit/mvc/View.qunit.js +38 -35
- package/test/sap/ui/core/qunit/mvc/XMLTemplateProcessor.qunit.js +1 -1
- package/test/sap/ui/core/qunit/mvc/XMLTemplateProcessorAsync.qunit.js +1 -1
- package/test/sap/ui/core/qunit/mvc/XMLTemplateProcessorRequireXML.qunit.js +5 -5
- package/test/sap/ui/core/qunit/mvc/XMLView.qunit.js +1 -1
- package/test/sap/ui/core/qunit/mvc/extensions/ControllerMetadata.qunit.js +6 -2
- package/test/sap/ui/core/qunit/mvc/extensions/Controllerextensions.qunit.js +12 -0
- package/test/sap/ui/core/qunit/mvc/extensions/Controllerextensions_legacy.qunit.js +12 -0
- package/test/sap/ui/core/qunit/mvc/extensions/testdata/AnotherMain.controller.js +3 -1
- package/test/sap/ui/core/qunit/mvc/testdata/XMLViewEmbeddingTypedViews.view.xml +1 -1
- package/test/sap/ui/core/qunit/mvc/viewprocessing/ViewProcessing.qunit.js +26 -7
- package/test/sap/ui/core/qunit/mvc_legacyAPIs/XMLTemplateProcessorRequireXML_legacyAPIs.qunit.js +5 -5
- package/test/sap/ui/core/qunit/mvc_legacyAPIs/XMLView_legacyAPIs.qunit.js +2 -2
- package/test/sap/ui/core/qunit/odata/ODataMessageParserNoFakeService.qunit.js +36 -34
- package/test/sap/ui/core/qunit/odata/ODataUtils.qunit.js +21 -0
- package/test/sap/ui/core/qunit/odata/v2/ODataModel.integration.qunit.js +175 -0
- package/test/sap/ui/core/qunit/odata/v2/ODataTreeBindingNoFakeService.qunit.js +11 -5
- package/test/sap/ui/core/qunit/odata/v4/Context.qunit.js +43 -22
- package/test/sap/ui/core/qunit/odata/v4/ODataContextBinding.qunit.js +75 -27
- package/test/sap/ui/core/qunit/odata/v4/ODataListBinding.qunit.js +318 -217
- package/test/sap/ui/core/qunit/odata/v4/ODataMetaModel.qunit.js +34 -16
- package/test/sap/ui/core/qunit/odata/v4/ODataModel.integration.qunit.js +2360 -177
- package/test/sap/ui/core/qunit/odata/v4/ODataParentBinding.qunit.js +43 -35
- package/test/sap/ui/core/qunit/odata/v4/data/metadata_special_cases.xml +20 -2
- package/test/sap/ui/core/qunit/odata/v4/lib/_AggregationCache.qunit.js +487 -139
- package/test/sap/ui/core/qunit/odata/v4/lib/_AggregationHelper.qunit.js +70 -33
- package/test/sap/ui/core/qunit/odata/v4/lib/_Cache.qunit.js +258 -10
- package/test/sap/ui/core/qunit/odata/v4/lib/_Requestor.qunit.js +10 -2
- package/test/sap/ui/core/qunit/opa/actions/EnterText.qunit.js +38 -14
- package/test/sap/ui/core/qunit/routing/async/Router.qunit.js +102 -52
- package/test/sap/ui/core/qunit/routing/async/Target.qunit.js +1 -1
- package/test/sap/ui/core/qunit/routing/async/Targets.qunit.js +4 -5
- package/test/sap/ui/core/qunit/routing/async/TitleHistory.qunit.js +1 -1
- package/test/sap/ui/core/qunit/routing/fixture/router/component/parentRoute/Child/Component.js +1 -0
- package/test/sap/ui/core/qunit/routing/fixture/router/component/parentRoute/Child/manifest.json +1 -5
- package/test/sap/ui/core/qunit/routing/fixture/router/component/parentRoute/Parent/Component.js +1 -0
- package/test/sap/ui/core/qunit/routing/fixture/router/component/parentRoute/Parent/manifest.json +1 -5
- package/test/sap/ui/core/qunit/routing/fixture/router/component/parentRoute/ParentExtended/Component.js +15 -0
- package/test/sap/ui/core/qunit/routing/fixture/router/component/parentRoute/ParentExtended/manifest.json +8 -0
- package/test/sap/ui/core/qunit/routing/sync/Router.qunit.js +2 -2
- package/test/sap/ui/core/qunit/routing/sync/Targets.qunit.js +2 -3
- package/test/sap/ui/core/qunit/testdata/fragments/XMLTestFragmentWithXMLView.fragment.xml +5 -0
- package/test/sap/ui/core/qunit/testsuites/testsuite.base.configuration.qunit.js +1 -1
- package/test/sap/ui/core/qunit/testsuites/testsuite.control.framework.qunit.js +4 -0
- package/test/sap/ui/core/qunit/types/DateFormat.qunit.js +190 -0
- package/test/sap/ui/core/qunit/types/DateInterval.qunit.js +2 -2
- package/test/sap/ui/core/qunit/types/TimezoneUtil.qunit.js +114 -2
- package/test/sap/ui/core/qunit/ui5classes/ManagedObjectRegistry.qunit.js +161 -0
- package/test/sap/ui/core/qunit/ui5classes/ManagedObjectRegistry_legacyAPIs.qunit.js +150 -0
- package/test/sap/ui/core/qunit/ui5classes/testsuite.ui5classes.qunit.js +84 -0
- package/test/sap/ui/core/qunit/util/ViewSerializer.qunit.js +4 -3
- package/test/sap/ui/core/qunit/util/reflection/JsControlTreeModifier.qunit.js +20 -0
- package/test/sap/ui/core/qunit/util/reflection/XmlTreeModifier.qunit.js +20 -2
- package/test/sap/ui/core/relnotes/changes-1.120.json +246 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* OpenUI5
|
|
3
|
-
* (c) Copyright 2009-
|
|
3
|
+
* (c) Copyright 2009-2024 SAP SE or an SAP affiliate company.
|
|
4
4
|
* Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
|
|
5
5
|
*/
|
|
6
6
|
|
|
@@ -13,9 +13,10 @@ sap.ui.define([
|
|
|
13
13
|
"./_Helper",
|
|
14
14
|
"./_MinMaxHelper",
|
|
15
15
|
"sap/base/Log",
|
|
16
|
-
"sap/ui/base/SyncPromise"
|
|
16
|
+
"sap/ui/base/SyncPromise",
|
|
17
|
+
"sap/ui/model/odata/ODataUtils"
|
|
17
18
|
], function (_AggregationHelper, _Cache, _ConcatHelper, _GroupLock, _Helper, _MinMaxHelper, Log,
|
|
18
|
-
SyncPromise) {
|
|
19
|
+
SyncPromise, ODataUtils) {
|
|
19
20
|
"use strict";
|
|
20
21
|
|
|
21
22
|
//*********************************************************************************************
|
|
@@ -174,7 +175,7 @@ sap.ui.define([
|
|
|
174
175
|
iIndex = _Cache.getElementIndex(this.aElements, sPredicate, iIndex);
|
|
175
176
|
// remove in parent cache
|
|
176
177
|
const iIndexInParentCache = oParentCache.removeElement(
|
|
177
|
-
_Helper.getPrivateAnnotation(oElement, "
|
|
178
|
+
_Helper.getPrivateAnnotation(oElement, "rank", 0), sPredicate);
|
|
178
179
|
// remove the descendants in the parent cache (if any)
|
|
179
180
|
const iDescendants = _Helper.getPrivateAnnotation(oElement, "descendants", 0);
|
|
180
181
|
for (let i = 0; i < iDescendants; i += 1) {
|
|
@@ -187,9 +188,7 @@ sap.ui.define([
|
|
|
187
188
|
// make parent a leaf (the direct predecessor)
|
|
188
189
|
this.makeLeaf(this.aElements[iIndex - 1]);
|
|
189
190
|
}
|
|
190
|
-
|
|
191
|
-
this.shiftIndex(iIndex, -iOffset);
|
|
192
|
-
}
|
|
191
|
+
this.shiftRank(iIndex, -iOffset);
|
|
193
192
|
// remove in this cache
|
|
194
193
|
this.removeElement(iIndex, sPredicate);
|
|
195
194
|
// notify caller
|
|
@@ -208,8 +207,9 @@ sap.ui.define([
|
|
|
208
207
|
* The group level cache which the given elements have been read from; omit it only for grand
|
|
209
208
|
* totals or separate subtotals
|
|
210
209
|
* @param {number} [iStart]
|
|
211
|
-
* The $skip index of the first given element within the cache's collection; omit
|
|
212
|
-
* no group level cache is given or for a single created element (where it
|
|
210
|
+
* The rank (aka. $skip index) of the first given element within the cache's collection; omit
|
|
211
|
+
* it only if no group level cache is given or for a single created element (where it may be
|
|
212
|
+
* unknown)
|
|
213
213
|
* @throws {Error}
|
|
214
214
|
* In case an unexpected element or placeholder would be overwritten, if the given offset is
|
|
215
215
|
* negative, if a resulting array index is out of bounds, in case of a duplicate predicate, or
|
|
@@ -268,9 +268,9 @@ sap.ui.define([
|
|
|
268
268
|
}
|
|
269
269
|
|
|
270
270
|
if (sTransientPredicate) { // created
|
|
271
|
-
iStart -= 1; // "shift"
|
|
271
|
+
iStart -= 1; // "shift" rank of non-created elements behind this one
|
|
272
272
|
} else {
|
|
273
|
-
_Helper.setPrivateAnnotation(oElement, "
|
|
273
|
+
_Helper.setPrivateAnnotation(oElement, "rank", iStart + i);
|
|
274
274
|
}
|
|
275
275
|
}
|
|
276
276
|
|
|
@@ -309,7 +309,7 @@ sap.ui.define([
|
|
|
309
309
|
} else if (iCandidateLevel < iLevel) {
|
|
310
310
|
if (!bInitialPlaceholderFound || this.isAncestorOf(iCandidateIndex, iIndex)) {
|
|
311
311
|
const iCount
|
|
312
|
-
= _Helper.getPrivateAnnotation(oCandidate, "descendants") + iOffset;
|
|
312
|
+
= _Helper.getPrivateAnnotation(oCandidate, "descendants", 0) + iOffset;
|
|
313
313
|
_Helper.setPrivateAnnotation(oCandidate, "descendants", iCount);
|
|
314
314
|
if (iCount === 0) {
|
|
315
315
|
this.makeLeaf(oCandidate);
|
|
@@ -395,7 +395,7 @@ sap.ui.define([
|
|
|
395
395
|
_Helper.getPrivateAnnotation(aElements[i], "transientPredicate")];
|
|
396
396
|
}
|
|
397
397
|
const aSpliced = aElements.splice(iIndex + 1, iCount);
|
|
398
|
-
aSpliced.$
|
|
398
|
+
aSpliced.$rank = _Helper.getPrivateAnnotation(oGroupNode, "rank");
|
|
399
399
|
_Helper.setPrivateAnnotation(oGroupNode, "spliced", aSpliced);
|
|
400
400
|
aElements.$count -= iCount;
|
|
401
401
|
|
|
@@ -420,8 +420,8 @@ sap.ui.define([
|
|
|
420
420
|
let iGroupNodeLevel = oGroupNode["@$ui5.node.level"];
|
|
421
421
|
let iDescendants = _Helper.getPrivateAnnotation(oGroupNode, "descendants");
|
|
422
422
|
if (iDescendants) { // => this.oAggregation.expandTo > 1
|
|
423
|
-
// Note: "descendants" refers to
|
|
424
|
-
//
|
|
423
|
+
// Note: "descendants" refers to LimitedDescendantCount and counts descendants within
|
|
424
|
+
// "top pyramid" only!
|
|
425
425
|
iGroupNodeLevel = this.oAggregation.expandTo;
|
|
426
426
|
}
|
|
427
427
|
const aElements = this.aElements;
|
|
@@ -490,6 +490,10 @@ sap.ui.define([
|
|
|
490
490
|
if (oParentNode?.["@$ui5.node.isExpanded"] === false) {
|
|
491
491
|
throw new Error("Unsupported collapsed parent: " + sParentPath);
|
|
492
492
|
}
|
|
493
|
+
if (oParentNode && oParentNode["@$ui5.node.isExpanded"] === undefined) {
|
|
494
|
+
_Helper.updateAll(this.mChangeListeners, sParentPredicate, oParentNode,
|
|
495
|
+
{"@$ui5.node.isExpanded" : true}); // not a leaf anymore
|
|
496
|
+
}
|
|
493
497
|
|
|
494
498
|
const iLevel = oParentNode
|
|
495
499
|
? oParentNode["@$ui5.node.level"] + 1
|
|
@@ -501,8 +505,6 @@ sap.ui.define([
|
|
|
501
505
|
oCache = this.createGroupLevelCache(oParentNode);
|
|
502
506
|
oCache.setEmpty();
|
|
503
507
|
_Helper.setPrivateAnnotation(oParentNode, "cache", oCache);
|
|
504
|
-
_Helper.updateAll(this.mChangeListeners, sParentPredicate, oParentNode,
|
|
505
|
-
{"@$ui5.node.isExpanded" : true}); // not a leaf anymore
|
|
506
508
|
}
|
|
507
509
|
|
|
508
510
|
const iIndex = aElements.indexOf(oParentNode) + 1; // 0 w/o oParentNode :-)
|
|
@@ -512,8 +514,7 @@ sap.ui.define([
|
|
|
512
514
|
this.adjustDescendantCount(oEntityData, iIndex, -1);
|
|
513
515
|
}
|
|
514
516
|
aElements.$count -= 1;
|
|
515
|
-
delete aElements.$byPredicate[
|
|
516
|
-
_Helper.getPrivateAnnotation(oEntityData, "transientPredicate")];
|
|
517
|
+
delete aElements.$byPredicate[sTransientPredicate];
|
|
517
518
|
aElements.splice(iIndex, 1);
|
|
518
519
|
});
|
|
519
520
|
|
|
@@ -525,18 +526,30 @@ sap.ui.define([
|
|
|
525
526
|
oEntityData["@$ui5.node.level"] = iLevel; // do not send via POST!
|
|
526
527
|
|
|
527
528
|
aElements.splice(iIndex, 0, null); // create a gap
|
|
528
|
-
this.addElements(oEntityData, iIndex, oCache); //
|
|
529
|
+
this.addElements(oEntityData, iIndex, oCache); // rank is undefined!
|
|
529
530
|
aElements.$count += 1;
|
|
530
531
|
if (oCache === this.oFirstLevel) {
|
|
531
532
|
this.adjustDescendantCount(oEntityData, iIndex, +1);
|
|
532
533
|
}
|
|
533
534
|
|
|
534
|
-
return oPromise.then(
|
|
535
|
+
return oPromise.then(async () => {
|
|
535
536
|
aElements.$byPredicate[_Helper.getPrivateAnnotation(oEntityData, "predicate")]
|
|
536
537
|
= oEntityData;
|
|
537
538
|
// Note: #calculateKeyPredicateRH doesn't know better :-(
|
|
538
539
|
oEntityData["@$ui5.node.level"] = iLevel;
|
|
539
540
|
|
|
541
|
+
if (this.oAggregation.expandTo >= 999) { // "expand all"
|
|
542
|
+
const iRank = await this.requestRank(oEntityData, oGroupLock.getUnlockedCopy());
|
|
543
|
+
|
|
544
|
+
this.oFirstLevel.removeElement(0, sTransientPredicate);
|
|
545
|
+
_Helper.deletePrivateAnnotation(oEntityData, "transientPredicate");
|
|
546
|
+
this.oFirstLevel.restoreElement(iRank, oEntityData);
|
|
547
|
+
|
|
548
|
+
delete this.aElements.$byPredicate[sTransientPredicate];
|
|
549
|
+
_Helper.setPrivateAnnotation(oEntityData, "rank", iRank);
|
|
550
|
+
this.shiftRank(iIndex, +1);
|
|
551
|
+
}
|
|
552
|
+
|
|
540
553
|
return oEntityData;
|
|
541
554
|
});
|
|
542
555
|
};
|
|
@@ -639,15 +652,19 @@ sap.ui.define([
|
|
|
639
652
|
iCount = aSpliced.length;
|
|
640
653
|
this.aElements.$count = aOldElements.$count + iCount;
|
|
641
654
|
const iLevelDiff = oGroupNode["@$ui5.node.level"] + 1 - aSpliced[0]["@$ui5.node.level"];
|
|
642
|
-
const
|
|
655
|
+
const iRankDiff = _Helper.getPrivateAnnotation(oGroupNode, "rank") - aSpliced.$rank;
|
|
643
656
|
aSpliced.forEach(function (oElement) {
|
|
644
657
|
var sPredicate = _Helper.getPrivateAnnotation(oElement, "predicate");
|
|
645
658
|
|
|
646
|
-
oElement["@$ui5.node.level"]
|
|
659
|
+
if (oElement["@$ui5.node.level"]) {
|
|
660
|
+
// Note: level 0 is used for initial placeholders of 1st level cache in case
|
|
661
|
+
// expandTo > 1
|
|
662
|
+
oElement["@$ui5.node.level"] += iLevelDiff;
|
|
663
|
+
}
|
|
647
664
|
if (_Helper.getPrivateAnnotation(oElement, "parent") === that.oFirstLevel) {
|
|
648
|
-
const
|
|
649
|
-
if (
|
|
650
|
-
_Helper.setPrivateAnnotation(oElement, "
|
|
665
|
+
const iRank = _Helper.getPrivateAnnotation(oElement, "rank");
|
|
666
|
+
if (iRank !== undefined) {
|
|
667
|
+
_Helper.setPrivateAnnotation(oElement, "rank", iRank + iRankDiff);
|
|
651
668
|
}
|
|
652
669
|
}
|
|
653
670
|
if (!_Helper.hasPrivateAnnotation(oElement, "placeholder")) {
|
|
@@ -748,6 +765,45 @@ sap.ui.define([
|
|
|
748
765
|
});
|
|
749
766
|
};
|
|
750
767
|
|
|
768
|
+
/**
|
|
769
|
+
* Returns a promise to be resolved with an OData object for the requested parent node.
|
|
770
|
+
*
|
|
771
|
+
* @param {number} iIndex
|
|
772
|
+
* The index of the child node
|
|
773
|
+
* @param {sap.ui.model.odata.v4.lib._GroupLock} oGroupLock
|
|
774
|
+
* A lock for the group to associate the requests with
|
|
775
|
+
* @returns {sap.ui.base.SyncPromise}
|
|
776
|
+
* A promise to be resolved with the requested data of the parent.
|
|
777
|
+
*
|
|
778
|
+
* @public
|
|
779
|
+
*/
|
|
780
|
+
_AggregationCache.prototype.fetchParent = function (iIndex, oGroupLock) {
|
|
781
|
+
const sFilter = _Helper.getKeyFilter(this.aElements[iIndex], this.oAggregation.$metaPath,
|
|
782
|
+
this.getTypes());
|
|
783
|
+
const mQueryOptions = Object.assign({}, this.mQueryOptions);
|
|
784
|
+
|
|
785
|
+
mQueryOptions.$apply = "ancestors($root" + this.oAggregation.$path
|
|
786
|
+
+ "," + this.oAggregation.hierarchyQualifier + "," + this.oAggregation.$NodeProperty
|
|
787
|
+
+ ",filter(" + sFilter + "),1)";
|
|
788
|
+
|
|
789
|
+
const sQueryString = this.sResourcePath
|
|
790
|
+
+ this.oRequestor.buildQueryString(/*sMetaPath*/null, mQueryOptions);
|
|
791
|
+
|
|
792
|
+
return SyncPromise.all([
|
|
793
|
+
this.oRequestor.request("GET", sQueryString, oGroupLock),
|
|
794
|
+
this.fetchTypes()
|
|
795
|
+
]).then((aResults) => {
|
|
796
|
+
const oParent = aResults[0].value[0];
|
|
797
|
+
this.visitResponse(oParent, aResults[1],
|
|
798
|
+
_Helper.getMetaPath(_Helper.buildPath(this.sMetaPath, "")));
|
|
799
|
+
|
|
800
|
+
this.aElements.$byPredicate[_Helper.getPrivateAnnotation(oParent, "predicate")]
|
|
801
|
+
= oParent;
|
|
802
|
+
|
|
803
|
+
return oParent;
|
|
804
|
+
});
|
|
805
|
+
};
|
|
806
|
+
|
|
751
807
|
/**
|
|
752
808
|
* Returns a promise to be resolved with an OData object for the requested data.
|
|
753
809
|
*
|
|
@@ -865,16 +921,13 @@ sap.ui.define([
|
|
|
865
921
|
};
|
|
866
922
|
|
|
867
923
|
/**
|
|
868
|
-
* Returns the index of a parent node
|
|
924
|
+
* Returns the index of a parent node.
|
|
869
925
|
*
|
|
870
926
|
* @param {number} iIndex
|
|
871
927
|
* The index of the child node
|
|
872
|
-
* @returns {number|
|
|
928
|
+
* @returns {number|undefined}
|
|
873
929
|
* The parent node's index, or -1 if the given node is a root node and thus has
|
|
874
|
-
* no parent
|
|
875
|
-
* @throws {Error}
|
|
876
|
-
* If the index of a parent cannot be found
|
|
877
|
-
*
|
|
930
|
+
* no parent, or <code>undefined</code> if the parent node hasn't been read yet
|
|
878
931
|
*
|
|
879
932
|
* @public
|
|
880
933
|
*/
|
|
@@ -885,13 +938,22 @@ sap.ui.define([
|
|
|
885
938
|
return -1; // a root has no parent
|
|
886
939
|
}
|
|
887
940
|
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
941
|
+
let bInitialPlaceholderFound = false;
|
|
942
|
+
for (let i = iIndex; i >= 0; i -= 1) {
|
|
943
|
+
const oCandidate = this.aElements[i];
|
|
944
|
+
const iCandidateLevel = oCandidate["@$ui5.node.level"];
|
|
945
|
+
|
|
946
|
+
if (iCandidateLevel === 0) {
|
|
947
|
+
bInitialPlaceholderFound = true;
|
|
948
|
+
} else if (iCandidateLevel < iLevel) {
|
|
949
|
+
if (iCandidateLevel === iLevel - 1
|
|
950
|
+
&& (!bInitialPlaceholderFound || this.isAncestorOf(i, iIndex))) {
|
|
951
|
+
return i;
|
|
952
|
+
}
|
|
953
|
+
break; // missed the parent
|
|
891
954
|
}
|
|
892
955
|
}
|
|
893
|
-
|
|
894
|
-
throw new Error("Unexpected error");
|
|
956
|
+
// return undefined;
|
|
895
957
|
};
|
|
896
958
|
|
|
897
959
|
/**
|
|
@@ -996,13 +1058,13 @@ sap.ui.define([
|
|
|
996
1058
|
/**
|
|
997
1059
|
* Moves the (child) node with the given path to the parent node with the given path by sending
|
|
998
1060
|
* a PATCH request for "<parent navigation>@odata.bind". The (child) node may be a leaf or a
|
|
999
|
-
* collapsed node, but not expanded!
|
|
1061
|
+
* collapsed node, but not expanded! Omitting a new parent turns the child into a root.
|
|
1000
1062
|
*
|
|
1001
1063
|
* @param {sap.ui.model.odata.v4.lib._GroupLock} oGroupLock
|
|
1002
1064
|
* A lock for the group to associate the requests with
|
|
1003
1065
|
* @param {string} sChildPath
|
|
1004
1066
|
* The (child) node's path relative to the cache
|
|
1005
|
-
* @param {string} sParentPath
|
|
1067
|
+
* @param {string} [sParentPath=null]
|
|
1006
1068
|
* The parent node's path relative to the cache
|
|
1007
1069
|
* @returns {sap.ui.base.SyncPromise<number>}
|
|
1008
1070
|
* A promise which is resolved with the number of child nodes added (normally one, but maybe
|
|
@@ -1011,20 +1073,24 @@ sap.ui.define([
|
|
|
1011
1073
|
*
|
|
1012
1074
|
* @public
|
|
1013
1075
|
*/
|
|
1014
|
-
_AggregationCache.prototype.move = function (oGroupLock, sChildPath, sParentPath) {
|
|
1076
|
+
_AggregationCache.prototype.move = function (oGroupLock, sChildPath, sParentPath = null) {
|
|
1015
1077
|
const sTransientPredicate = "($uid=" + _Helper.uid() + ")";
|
|
1016
1078
|
|
|
1017
1079
|
const sChildPredicate = sChildPath.slice(sChildPath.indexOf("("));
|
|
1018
1080
|
const oChildNode = this.aElements.$byPredicate[sChildPredicate];
|
|
1019
|
-
const sParentPredicate = sParentPath
|
|
1081
|
+
const sParentPredicate = sParentPath?.slice(sParentPath.indexOf("("));
|
|
1020
1082
|
const oParentNode = this.aElements.$byPredicate[sParentPredicate];
|
|
1021
1083
|
|
|
1022
1084
|
let oReadPromise;
|
|
1023
|
-
let oCache =
|
|
1024
|
-
|
|
1085
|
+
let oCache = oParentNode
|
|
1086
|
+
? _Helper.getPrivateAnnotation(oParentNode, "cache")
|
|
1087
|
+
: this.oFirstLevel;
|
|
1088
|
+
if (this.oAggregation.expandTo > 1) { // "expand all": GET LimitedRank
|
|
1089
|
+
oReadPromise = this.requestRank(oChildNode, oGroupLock.getUnlockedCopy());
|
|
1090
|
+
} else if (!oCache && oParentNode["@$ui5.node.isExpanded"] === false) {
|
|
1025
1091
|
oCache = this.createGroupLevelCache(oParentNode);
|
|
1026
1092
|
// @see #getExclusiveFilter
|
|
1027
|
-
oCache.restoreElement(
|
|
1093
|
+
oCache.restoreElement(0, oChildNode, undefined, sTransientPredicate);
|
|
1028
1094
|
// prefetch from the group level cache
|
|
1029
1095
|
oReadPromise = oCache.read(0, this.iReadLength, 0, oGroupLock.getUnlockedCopy());
|
|
1030
1096
|
}
|
|
@@ -1036,17 +1102,48 @@ sap.ui.define([
|
|
|
1036
1102
|
}, {[this.oAggregation.$ParentNavigationProperty + "@odata.bind"] : sParentPath},
|
|
1037
1103
|
/*fnSubmit*/null, function fnCancel() { /*nothing to do*/ }),
|
|
1038
1104
|
oReadPromise
|
|
1039
|
-
]).then(([oPatchResult,
|
|
1105
|
+
]).then(([oPatchResult, iPreorderRank]) => {
|
|
1106
|
+
const updateChildNode = () => {
|
|
1107
|
+
// update the cache with the PATCH response (Note: "@odata.etag" is optional!)
|
|
1108
|
+
_Helper.updateExisting(this.mChangeListeners, sChildPredicate, oChildNode, {
|
|
1109
|
+
"@odata.etag" : oPatchResult["@odata.etag"],
|
|
1110
|
+
"@$ui5.node.level" : oParentNode ? oParentNode["@$ui5.node.level"] + 1 : 1
|
|
1111
|
+
});
|
|
1112
|
+
};
|
|
1040
1113
|
const iOldIndex = this.aElements.indexOf(oChildNode);
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1114
|
+
let iResult = 1;
|
|
1115
|
+
|
|
1116
|
+
if (this.oAggregation.expandTo > 1) {
|
|
1117
|
+
const iOffset = _Helper.getPrivateAnnotation(oChildNode, "descendants", 0) + 1;
|
|
1118
|
+
this.adjustDescendantCount(oChildNode, iOldIndex, -iOffset);
|
|
1119
|
+
this.shiftRank(iOldIndex, -iOffset);
|
|
1120
|
+
this.aElements.splice(iOldIndex, 1);
|
|
1121
|
+
this.oFirstLevel.move(_Helper.getPrivateAnnotation(oChildNode, "rank"),
|
|
1122
|
+
iPreorderRank, iOffset);
|
|
1123
|
+
updateChildNode();
|
|
1124
|
+
_Helper.setPrivateAnnotation(oChildNode, "rank", iPreorderRank);
|
|
1125
|
+
switch (oParentNode ? oParentNode["@$ui5.node.isExpanded"] : true) {
|
|
1126
|
+
case false:
|
|
1127
|
+
iResult = this.expand(_GroupLock.$cached, sParentPredicate).unwrap() + 1;
|
|
1128
|
+
// fall through
|
|
1129
|
+
case true:
|
|
1130
|
+
break;
|
|
1131
|
+
|
|
1132
|
+
default:
|
|
1133
|
+
_Helper.updateAll(this.mChangeListeners, sParentPredicate, oParentNode,
|
|
1134
|
+
{"@$ui5.node.isExpanded" : true}); // not a leaf anymore
|
|
1135
|
+
}
|
|
1136
|
+
const iNewIndex = this.aElements.indexOf(oParentNode) + 1; // 0 w/o oParentNode :-)
|
|
1137
|
+
this.aElements.splice(iNewIndex, 0, oChildNode);
|
|
1138
|
+
this.shiftRank(iNewIndex, +iOffset);
|
|
1139
|
+
this.adjustDescendantCount(oChildNode, iNewIndex, +iOffset);
|
|
1140
|
+
|
|
1141
|
+
return iResult;
|
|
1142
|
+
}
|
|
1046
1143
|
|
|
1047
1144
|
// remove original element from its cache's collection
|
|
1048
1145
|
const oOldParentCache = _Helper.getPrivateAnnotation(oChildNode, "parent");
|
|
1049
|
-
oOldParentCache.removeElement(_Helper.getPrivateAnnotation(oChildNode, "
|
|
1146
|
+
oOldParentCache.removeElement(_Helper.getPrivateAnnotation(oChildNode, "rank", 0),
|
|
1050
1147
|
sChildPredicate);
|
|
1051
1148
|
if (oOldParentCache.getValue("$count") === 0) { // last child has gone
|
|
1052
1149
|
const oOldParent = this.aElements[iOldIndex - 1];
|
|
@@ -1056,18 +1153,19 @@ sap.ui.define([
|
|
|
1056
1153
|
}
|
|
1057
1154
|
|
|
1058
1155
|
// once oChildNode has moved, it should look 'created' because of its new position
|
|
1059
|
-
_Helper.deletePrivateAnnotation(oChildNode, "index");
|
|
1060
1156
|
if (!_Helper.hasPrivateAnnotation(oChildNode, "transientPredicate")) {
|
|
1061
1157
|
_Helper.setPrivateAnnotation(oChildNode, "transientPredicate",
|
|
1062
1158
|
sTransientPredicate);
|
|
1063
1159
|
this.aElements.$byPredicate[sTransientPredicate] = oChildNode;
|
|
1064
1160
|
_Helper.updateAll(this.mChangeListeners, sChildPredicate, oChildNode,
|
|
1065
1161
|
{"@$ui5.context.isTransient" : false});
|
|
1066
|
-
this.
|
|
1162
|
+
this.shiftRank(iOldIndex, -1); // only shift indices after non-created ones
|
|
1067
1163
|
}
|
|
1164
|
+
_Helper.deletePrivateAnnotation(oChildNode, "rank");
|
|
1068
1165
|
this.aElements.splice(iOldIndex, 1);
|
|
1069
1166
|
|
|
1070
|
-
|
|
1167
|
+
updateChildNode();
|
|
1168
|
+
|
|
1071
1169
|
if (oReadPromise) {
|
|
1072
1170
|
_Helper.setPrivateAnnotation(oChildNode, "parent", oCache);
|
|
1073
1171
|
_Helper.setPrivateAnnotation(oParentNode, "cache", oCache);
|
|
@@ -1075,7 +1173,7 @@ sap.ui.define([
|
|
|
1075
1173
|
// Note: oChildNode already belongs to oCache!
|
|
1076
1174
|
this.aElements.$count -= 1; // #expand adjusts $count incl. oChildNode!
|
|
1077
1175
|
iResult = this.expand(_GroupLock.$cached, sParentPredicate).unwrap();
|
|
1078
|
-
// Note: "
|
|
1176
|
+
// Note: "rank" created OK by #expand for oChildNode's siblings
|
|
1079
1177
|
} else {
|
|
1080
1178
|
if (!oCache) {
|
|
1081
1179
|
oCache = this.createGroupLevelCache(oParentNode);
|
|
@@ -1085,10 +1183,11 @@ sap.ui.define([
|
|
|
1085
1183
|
{"@$ui5.node.isExpanded" : true}); // not a leaf anymore
|
|
1086
1184
|
}
|
|
1087
1185
|
_Helper.setPrivateAnnotation(oChildNode, "parent", oCache);
|
|
1088
|
-
oCache.restoreElement(
|
|
1186
|
+
oCache.restoreElement(0, oChildNode);
|
|
1089
1187
|
|
|
1090
|
-
const iNewIndex = this.aElements.indexOf(oParentNode) + 1;
|
|
1091
|
-
const aSpliced
|
|
1188
|
+
const iNewIndex = this.aElements.indexOf(oParentNode) + 1; // 0 w/o oParentNode :-)
|
|
1189
|
+
const aSpliced
|
|
1190
|
+
= oParentNode && _Helper.getPrivateAnnotation(oParentNode, "spliced");
|
|
1092
1191
|
if (aSpliced) {
|
|
1093
1192
|
// Note: "@$ui5.node.level" will be adjusted by #expand for aSpliced!
|
|
1094
1193
|
oChildNode["@$ui5.node.level"] = aSpliced[0]["@$ui5.node.level"];
|
|
@@ -1145,7 +1244,7 @@ sap.ui.define([
|
|
|
1145
1244
|
bHasGrandTotalAtTop = this.oGrandTotalPromise
|
|
1146
1245
|
&& this.oAggregation.grandTotalAtBottomOnly !== true,
|
|
1147
1246
|
aReadPromises = [],
|
|
1148
|
-
i,
|
|
1247
|
+
i,
|
|
1149
1248
|
that = this;
|
|
1150
1249
|
|
|
1151
1250
|
/*
|
|
@@ -1186,7 +1285,12 @@ sap.ui.define([
|
|
|
1186
1285
|
this.readFirst(iFirstLevelIndex, iFirstLevelLength, iPrefetchLength,
|
|
1187
1286
|
oGroupLock, fnDataRequested));
|
|
1188
1287
|
} else {
|
|
1189
|
-
|
|
1288
|
+
const oReadRange = ODataUtils._getReadRange(this.aElements, iIndex, iLength,
|
|
1289
|
+
iPrefetchLength,
|
|
1290
|
+
// _getReadRange happily reads beyond aElements, so oElement may be undefined
|
|
1291
|
+
(oElement) => !oElement || _Helper.hasPrivateAnnotation(oElement, "placeholder"));
|
|
1292
|
+
const n = Math.min(oReadRange.start + oReadRange.length, this.aElements.length);
|
|
1293
|
+
for (i = oReadRange.start; i < n; i += 1) {
|
|
1190
1294
|
oElement = this.aElements[i];
|
|
1191
1295
|
oCurrentParent = _Helper.hasPrivateAnnotation(oElement, "placeholder")
|
|
1192
1296
|
? _Helper.getPrivateAnnotation(oElement, "parent")
|
|
@@ -1201,10 +1305,10 @@ sap.ui.define([
|
|
|
1201
1305
|
oGapParent = oCurrentParent;
|
|
1202
1306
|
}
|
|
1203
1307
|
} else if (iGapStart !== undefined
|
|
1204
|
-
&& _Helper.getPrivateAnnotation(oElement, "
|
|
1205
|
-
!== _Helper.getPrivateAnnotation(this.aElements[i - 1], "
|
|
1206
|
-
// Note: w/ side effect,
|
|
1207
|
-
// Note: an undefined "
|
|
1308
|
+
&& _Helper.getPrivateAnnotation(oElement, "rank")
|
|
1309
|
+
!== _Helper.getPrivateAnnotation(this.aElements[i - 1], "rank") + 1) {
|
|
1310
|
+
// Note: w/ side effect, ranks might not be consecutive => split gap
|
|
1311
|
+
// Note: an undefined "rank" causes a split gap, which is important!
|
|
1208
1312
|
readGap(iGapStart, i);
|
|
1209
1313
|
iGapStart = i;
|
|
1210
1314
|
}
|
|
@@ -1372,8 +1476,8 @@ sap.ui.define([
|
|
|
1372
1476
|
_AggregationCache.prototype.readGap = function (oCache, iStart, iEnd, oGroupLock,
|
|
1373
1477
|
fnDataRequested) {
|
|
1374
1478
|
const oStartElement = this.aElements[iStart];
|
|
1375
|
-
const
|
|
1376
|
-
if (
|
|
1479
|
+
const iRank = _Helper.getPrivateAnnotation(oStartElement, "rank");
|
|
1480
|
+
if (iRank === undefined) {
|
|
1377
1481
|
if (iEnd - iStart !== 1) {
|
|
1378
1482
|
throw new Error("Not just a single created persisted");
|
|
1379
1483
|
}
|
|
@@ -1395,7 +1499,7 @@ sap.ui.define([
|
|
|
1395
1499
|
oCache.setQueryOptions(mQueryOptions, true);
|
|
1396
1500
|
}
|
|
1397
1501
|
|
|
1398
|
-
const oPromise = oCache.read(
|
|
1502
|
+
const oPromise = oCache.read(iRank, iEnd - iStart, 0, oGroupLock, fnDataRequested, true)
|
|
1399
1503
|
.then((oResult) => {
|
|
1400
1504
|
// Note: this code must be idempotent, it might well run twice!
|
|
1401
1505
|
var bGapHasMoved = false,
|
|
@@ -1417,7 +1521,7 @@ sap.ui.define([
|
|
|
1417
1521
|
}
|
|
1418
1522
|
}
|
|
1419
1523
|
|
|
1420
|
-
this.addElements(oResult.value, iStart, oCache,
|
|
1524
|
+
this.addElements(oResult.value, iStart, oCache, iRank);
|
|
1421
1525
|
|
|
1422
1526
|
if (bGapHasMoved) {
|
|
1423
1527
|
oError = new Error("Collapse or expand before read has finished");
|
|
@@ -1447,6 +1551,37 @@ sap.ui.define([
|
|
|
1447
1551
|
return this.oFirstLevel.refreshKeptElements.call(this, oGroupLock, fnOnRemove, true);
|
|
1448
1552
|
};
|
|
1449
1553
|
|
|
1554
|
+
/**
|
|
1555
|
+
* Requests the (limited preorder) rank of the given element which must belong to
|
|
1556
|
+
* <code>this.oFirstLevel</code>.
|
|
1557
|
+
*
|
|
1558
|
+
* @param {object} oElement - The element
|
|
1559
|
+
* @param {sap.ui.model.odata.v4.lib._GroupLock} oGroupLock
|
|
1560
|
+
* A lock for the group ID to be used for the GET request
|
|
1561
|
+
* @returns {Promise<number>}
|
|
1562
|
+
* A promise which is resolved with the (limited preorder) rank of the given element, or
|
|
1563
|
+
* rejected in case of an error
|
|
1564
|
+
*
|
|
1565
|
+
* @private
|
|
1566
|
+
*/
|
|
1567
|
+
_AggregationCache.prototype.requestRank = async function (oElement, oGroupLock) {
|
|
1568
|
+
const sMetaPath = this.oAggregation.$metaPath;
|
|
1569
|
+
const {$apply, $orderby} = this.oFirstLevel.getQueryOptions();
|
|
1570
|
+
const mQueryOptions = {
|
|
1571
|
+
$apply,
|
|
1572
|
+
$filter : _Helper.getKeyFilter(oElement, sMetaPath, this.getTypes()),
|
|
1573
|
+
$select : this.oAggregation.$LimitedRank
|
|
1574
|
+
};
|
|
1575
|
+
if ($orderby) {
|
|
1576
|
+
mQueryOptions.$orderby = $orderby;
|
|
1577
|
+
}
|
|
1578
|
+
const sResourcePath = this.sResourcePath
|
|
1579
|
+
+ this.oRequestor.buildQueryString(sMetaPath, mQueryOptions, false, true);
|
|
1580
|
+
const oResult = await this.oRequestor.request("GET", sResourcePath, oGroupLock);
|
|
1581
|
+
|
|
1582
|
+
return parseInt(_Helper.drillDown(oResult.value[0], this.oAggregation.$LimitedRank));
|
|
1583
|
+
};
|
|
1584
|
+
|
|
1450
1585
|
/**
|
|
1451
1586
|
* @override
|
|
1452
1587
|
* @see sap.ui.model.odata.v4.lib._CollectionCache#reset
|
|
@@ -1512,27 +1647,33 @@ sap.ui.define([
|
|
|
1512
1647
|
};
|
|
1513
1648
|
|
|
1514
1649
|
/**
|
|
1515
|
-
* Shifts the $skip
|
|
1516
|
-
* index by the given offset, except for
|
|
1517
|
-
* <code>undefined</code>
|
|
1650
|
+
* Shifts the rank (aka. $skip index) of all siblings (nodes or placeholders) after the node at
|
|
1651
|
+
* the given array index by the given offset, except for elements where it is
|
|
1652
|
+
* <code>undefined</code> or lower than the node's own rank. If the node at the given index
|
|
1653
|
+
* itself has an <code>undefined</code> rank, nothing is shifted. Note that inside
|
|
1654
|
+
* <code>this.oFirstLevel</code> not only siblings are affected.
|
|
1518
1655
|
*
|
|
1519
1656
|
* @param {number} iIndex
|
|
1520
1657
|
* Index in <code>this.aElements</code> of a node
|
|
1521
1658
|
* @param {number} iOffset
|
|
1522
|
-
* Offset to add to
|
|
1659
|
+
* Offset to add to rank
|
|
1523
1660
|
*
|
|
1524
1661
|
* @private
|
|
1525
1662
|
*/
|
|
1526
|
-
_AggregationCache.prototype.
|
|
1527
|
-
const
|
|
1528
|
-
const
|
|
1663
|
+
_AggregationCache.prototype.shiftRank = function (iIndex, iOffset) {
|
|
1664
|
+
const oNode = this.aElements[iIndex];
|
|
1665
|
+
const iMinRank = _Helper.getPrivateAnnotation(oNode, "rank");
|
|
1666
|
+
if (iMinRank === undefined) {
|
|
1667
|
+
return;
|
|
1668
|
+
}
|
|
1669
|
+
|
|
1529
1670
|
const oCache = _Helper.getPrivateAnnotation(oNode, "parent");
|
|
1530
|
-
for (let i = iIndex + 1; i < aElements.length; i += 1) {
|
|
1531
|
-
const oSibling = aElements[i];
|
|
1671
|
+
for (let i = iIndex + 1; i < this.aElements.length; i += 1) {
|
|
1672
|
+
const oSibling = this.aElements[i];
|
|
1532
1673
|
if (_Helper.getPrivateAnnotation(oSibling, "parent") === oCache) {
|
|
1533
|
-
const
|
|
1534
|
-
if (
|
|
1535
|
-
_Helper.setPrivateAnnotation(oSibling, "
|
|
1674
|
+
const iRank = _Helper.getPrivateAnnotation(oSibling, "rank");
|
|
1675
|
+
if (iRank >= iMinRank) { // Note: undefined >= ... is false
|
|
1676
|
+
_Helper.setPrivateAnnotation(oSibling, "rank", iRank + iOffset);
|
|
1536
1677
|
}
|
|
1537
1678
|
}
|
|
1538
1679
|
if (oCache !== this.oFirstLevel
|
|
@@ -1576,9 +1717,9 @@ sap.ui.define([
|
|
|
1576
1717
|
_AggregationHelper.markSplicedStale(oElement);
|
|
1577
1718
|
delete this.aElements.$byPredicate[sPredicate];
|
|
1578
1719
|
// drop original element from its cache's collection
|
|
1579
|
-
const
|
|
1580
|
-
if (
|
|
1581
|
-
_Helper.getPrivateAnnotation(oElement, "parent").drop(
|
|
1720
|
+
const iRank = _Helper.getPrivateAnnotation(oElement, "rank");
|
|
1721
|
+
if (iRank !== undefined) {
|
|
1722
|
+
_Helper.getPrivateAnnotation(oElement, "parent").drop(iRank, sPredicate, true);
|
|
1582
1723
|
} // else: special handling inside #readGap
|
|
1583
1724
|
};
|
|
1584
1725
|
|
|
@@ -1688,7 +1829,7 @@ sap.ui.define([
|
|
|
1688
1829
|
return sPredicate;
|
|
1689
1830
|
}
|
|
1690
1831
|
|
|
1691
|
-
switch (_Helper.drillDown(oElement, oAggregation.$
|
|
1832
|
+
switch (_Helper.drillDown(oElement, oAggregation.$DrillState)) {
|
|
1692
1833
|
case "expanded":
|
|
1693
1834
|
bIsExpanded = true;
|
|
1694
1835
|
break;
|
|
@@ -1700,24 +1841,24 @@ sap.ui.define([
|
|
|
1700
1841
|
default: // "leaf"
|
|
1701
1842
|
// bIsExpanded = undefined;
|
|
1702
1843
|
}
|
|
1703
|
-
_Helper.deleteProperty(oElement, oAggregation.$
|
|
1844
|
+
_Helper.deleteProperty(oElement, oAggregation.$DrillState);
|
|
1704
1845
|
if (oGroupNode) {
|
|
1705
1846
|
iLevel = oGroupNode["@$ui5.node.level"] + 1;
|
|
1706
1847
|
} else {
|
|
1707
|
-
sDistanceFromRoot = _Helper.drillDown(oElement, oAggregation.$
|
|
1848
|
+
sDistanceFromRoot = _Helper.drillDown(oElement, oAggregation.$DistanceFromRoot);
|
|
1708
1849
|
if (sDistanceFromRoot) { // Edm.Int64
|
|
1709
|
-
_Helper.deleteProperty(oElement, oAggregation.$
|
|
1850
|
+
_Helper.deleteProperty(oElement, oAggregation.$DistanceFromRoot);
|
|
1710
1851
|
iLevel = parseInt(sDistanceFromRoot) + 1;
|
|
1711
1852
|
}
|
|
1712
1853
|
}
|
|
1713
1854
|
// set the node values
|
|
1714
1855
|
_AggregationHelper.setAnnotations(oElement, bIsExpanded, /*bIsTotal*/undefined, iLevel);
|
|
1715
1856
|
|
|
1716
|
-
if (oAggregation.$
|
|
1857
|
+
if (oAggregation.$LimitedDescendantCount) {
|
|
1717
1858
|
sLimitedDescendantCount
|
|
1718
|
-
= _Helper.drillDown(oElement, oAggregation.$
|
|
1859
|
+
= _Helper.drillDown(oElement, oAggregation.$LimitedDescendantCount);
|
|
1719
1860
|
if (sLimitedDescendantCount) {
|
|
1720
|
-
_Helper.deleteProperty(oElement, oAggregation.$
|
|
1861
|
+
_Helper.deleteProperty(oElement, oAggregation.$LimitedDescendantCount);
|
|
1721
1862
|
if (sLimitedDescendantCount !== "0") { // Edm.Int64
|
|
1722
1863
|
_Helper.setPrivateAnnotation(oElement, "descendants",
|
|
1723
1864
|
parseInt(sLimitedDescendantCount));
|