@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
|
@@ -170,7 +170,7 @@ sap.ui.define([
|
|
|
170
170
|
assert.throws(function () {
|
|
171
171
|
// code under test
|
|
172
172
|
_AggregationHelper.beforeOverwritePlaceholder(oPlaceholder, null, oCache, 41);
|
|
173
|
-
}, new Error("Wrong placeholder"), "
|
|
173
|
+
}, new Error("Wrong placeholder"), "rank");
|
|
174
174
|
|
|
175
175
|
assert.throws(function () {
|
|
176
176
|
// code under test
|
|
@@ -1113,6 +1113,7 @@ sap.ui.define([
|
|
|
1113
1113
|
assert.strictEqual(JSON.stringify(mQueryOptions), sQueryOptionsJSON, "unchanged");
|
|
1114
1114
|
assert.strictEqual(oAggregation.$NodeProperty, "aNodeID");
|
|
1115
1115
|
assert.strictEqual(oAggregation.$ParentNavigationProperty, "aParentNavigation");
|
|
1116
|
+
assert.notOk("$LimitedRank" in oAggregation, "unchanged");
|
|
1116
1117
|
});
|
|
1117
1118
|
});
|
|
1118
1119
|
|
|
@@ -1133,6 +1134,7 @@ sap.ui.define([
|
|
|
1133
1134
|
$apply : "com.sap.vocabularies.Hierarchy.v1.TopLevels(HierarchyNodes=$root"
|
|
1134
1135
|
+ ",HierarchyQualifier='X',NodeProperty='???',Levels=1)"
|
|
1135
1136
|
});
|
|
1137
|
+
assert.notOk("$LimitedRank" in oAggregation, "unchanged");
|
|
1136
1138
|
});
|
|
1137
1139
|
|
|
1138
1140
|
//*********************************************************************************************
|
|
@@ -1161,21 +1163,37 @@ sap.ui.define([
|
|
|
1161
1163
|
foo : "bar"
|
|
1162
1164
|
});
|
|
1163
1165
|
|
|
1166
|
+
assert.notOk("$LimitedRank" in oAggregation, "unchanged");
|
|
1164
1167
|
assert.notOk("$NodeProperty" in oAggregation);
|
|
1165
1168
|
assert.deepEqual(mQueryOptions, {foo : "bar"});
|
|
1166
1169
|
});
|
|
1167
1170
|
|
|
1168
1171
|
//*********************************************************************************************
|
|
1169
|
-
[undefined, 1, 2, 3, Number.MAX_SAFE_INTEGER, Infinity].forEach(function (iExpandTo) {
|
|
1172
|
+
[undefined, 1, 2, 3, 999, Number.MAX_SAFE_INTEGER, Infinity].forEach(function (iExpandTo) {
|
|
1170
1173
|
[false, true].forEach(function (bStored) {
|
|
1171
1174
|
[false, true].forEach(function (bAllLevels) {
|
|
1172
|
-
|
|
1173
|
-
|
|
1174
|
-
|
|
1175
|
-
|
|
1176
|
-
|
|
1177
|
-
|
|
1178
|
-
|
|
1175
|
+
[{
|
|
1176
|
+
DistanceFromRootProperty : {$PropertyPath : "DistFromRoot"},
|
|
1177
|
+
DrillStateProperty : {$PropertyPath : "myDrillState"},
|
|
1178
|
+
LimitedDescendantCountProperty : {$PropertyPath : "LtdDescendant_Count"}
|
|
1179
|
+
}, {
|
|
1180
|
+
DistanceFromRoot : {$Path : "DistFromRoot"},
|
|
1181
|
+
DrillState : {$Path : "myDrillState"},
|
|
1182
|
+
LimitedDescendantCount : {$Path : "LtdDescendant_Count"}
|
|
1183
|
+
}, {
|
|
1184
|
+
DistanceFromRoot : {$Path : "DistFromRoot"},
|
|
1185
|
+
DrillState : {$Path : "myDrillState"},
|
|
1186
|
+
LimitedDescendantCount : {$Path : "LtdDescendant_Count"},
|
|
1187
|
+
LimitedRank : {$Path : "LtdPreorderRank"}
|
|
1188
|
+
}].forEach((oRecursiveHierarchy, i) => {
|
|
1189
|
+
var sTitle = "buildApply4Hierarchy: top levels of nodes, $select, expandTo : "
|
|
1190
|
+
+ iExpandTo + ", property paths already stored: " + bStored
|
|
1191
|
+
+ ", all levels: " + bAllLevels
|
|
1192
|
+
+ ", Rec.Hier. #" + i;
|
|
1193
|
+
|
|
1194
|
+
if (iExpandTo >= 999 && bAllLevels) {
|
|
1195
|
+
return;
|
|
1196
|
+
}
|
|
1179
1197
|
|
|
1180
1198
|
QUnit.test(sTitle, function (assert) {
|
|
1181
1199
|
var oAggregation = {
|
|
@@ -1187,12 +1205,9 @@ sap.ui.define([
|
|
|
1187
1205
|
},
|
|
1188
1206
|
oAggregationMock = this.mock(oAggregation),
|
|
1189
1207
|
oExpectedAggregation = iExpandTo > 1 ? {
|
|
1190
|
-
$
|
|
1191
|
-
$
|
|
1192
|
-
|
|
1193
|
-
} : {
|
|
1194
|
-
$DrillStateProperty : "myDrillState"
|
|
1195
|
-
},
|
|
1208
|
+
$DistanceFromRoot : "DistFromRoot",
|
|
1209
|
+
$LimitedDescendantCount : "LtdDescendant_Count"
|
|
1210
|
+
} : {},
|
|
1196
1211
|
iExpectedLevels = iExpandTo || 1,
|
|
1197
1212
|
aExpectedSelect = iExpandTo > 1
|
|
1198
1213
|
? ["ID", "SomeNodeID", "DistFromRoot", "LtdDescendant_Count", "myDrillState"]
|
|
@@ -1204,21 +1219,21 @@ sap.ui.define([
|
|
|
1204
1219
|
sQueryOptionsJSON = JSON.stringify(mQueryOptions);
|
|
1205
1220
|
|
|
1206
1221
|
if (bStored) {
|
|
1207
|
-
oAggregation.$
|
|
1222
|
+
oAggregation.$DrillState = "myDrillState";
|
|
1208
1223
|
oAggregation.$NodeProperty = "SomeNodeID";
|
|
1209
1224
|
oAggregation.$ParentNavigationProperty = "SomeParentNavigation";
|
|
1210
1225
|
}
|
|
1211
1226
|
if (bAllLevels) {
|
|
1212
1227
|
aExpectedSelect = ["ID", "SomeNodeID", "DistFromRoot", "myDrillState"];
|
|
1213
1228
|
oExpectedAggregation = {
|
|
1214
|
-
$
|
|
1229
|
+
$DistanceFromRoot : "DistFromRoot"
|
|
1215
1230
|
};
|
|
1216
1231
|
if (bStored) {
|
|
1217
|
-
oAggregation.$
|
|
1232
|
+
oAggregation.$DistanceFromRoot = "DistFromRoot";
|
|
1218
1233
|
}
|
|
1219
1234
|
} else if (bStored && iExpandTo > 1) {
|
|
1220
|
-
oAggregation.$
|
|
1221
|
-
oAggregation.$
|
|
1235
|
+
oAggregation.$DistanceFromRoot = "DistFromRoot";
|
|
1236
|
+
oAggregation.$LimitedDescendantCount = "LtdDescendant_Count";
|
|
1222
1237
|
}
|
|
1223
1238
|
oAggregationMock.expects("$fetchMetadata").exactly(bStored ? 0 : 1)
|
|
1224
1239
|
.withExactArgs("/meta/@Org.OData.Aggregation.V1.RecursiveHierarchy#X")
|
|
@@ -1228,18 +1243,14 @@ sap.ui.define([
|
|
|
1228
1243
|
}));
|
|
1229
1244
|
oAggregationMock.expects("$fetchMetadata").exactly(bStored ? 0 : 1)
|
|
1230
1245
|
.withExactArgs("/meta/@com.sap.vocabularies.Hierarchy.v1.RecursiveHierarchy#X")
|
|
1231
|
-
.returns(SyncPromise.resolve(
|
|
1232
|
-
DistanceFromRootProperty : {$PropertyPath : "DistFromRoot"},
|
|
1233
|
-
DrillStateProperty : {$PropertyPath : "myDrillState"},
|
|
1234
|
-
LimitedDescendantCountProperty : {$PropertyPath : "LtdDescendant_Count"}
|
|
1235
|
-
}));
|
|
1246
|
+
.returns(SyncPromise.resolve(oRecursiveHierarchy));
|
|
1236
1247
|
oExpectedAggregation = Object.assign({
|
|
1237
1248
|
expandTo : iExpandTo,
|
|
1238
1249
|
hierarchyQualifier : "X",
|
|
1239
1250
|
$fetchMetadata : oAggregation.$fetchMetadata, // remember the mock(!)
|
|
1240
1251
|
$metaPath : "/meta",
|
|
1241
1252
|
$path : "/Foo",
|
|
1242
|
-
$
|
|
1253
|
+
$DrillState : "myDrillState",
|
|
1243
1254
|
$NodeProperty : "SomeNodeID",
|
|
1244
1255
|
$ParentNavigationProperty : "SomeParentNavigation"
|
|
1245
1256
|
}, oExpectedAggregation);
|
|
@@ -1248,7 +1259,7 @@ sap.ui.define([
|
|
|
1248
1259
|
// code under test
|
|
1249
1260
|
_AggregationHelper.buildApply4Hierarchy(oAggregation, mQueryOptions, bAllLevels),
|
|
1250
1261
|
{
|
|
1251
|
-
$apply : bAllLevels || iExpandTo >=
|
|
1262
|
+
$apply : bAllLevels || iExpandTo >= 999
|
|
1252
1263
|
? "com.sap.vocabularies.Hierarchy.v1.TopLevels(HierarchyNodes=$root/Foo"
|
|
1253
1264
|
+ ",HierarchyQualifier='X',NodeProperty='SomeNodeID')"
|
|
1254
1265
|
: "com.sap.vocabularies.Hierarchy.v1.TopLevels(HierarchyNodes=$root/Foo"
|
|
@@ -1260,8 +1271,17 @@ sap.ui.define([
|
|
|
1260
1271
|
|
|
1261
1272
|
assert.strictEqual(JSON.stringify(mQueryOptions), sQueryOptionsJSON, "unchanged");
|
|
1262
1273
|
assert.strictEqual(oAggregation.$fetchMetadata, oExpectedAggregation.$fetchMetadata);
|
|
1274
|
+
if (bStored) {
|
|
1275
|
+
assert.notOk("$LimitedRank" in oAggregation, "unchanged");
|
|
1276
|
+
} else {
|
|
1277
|
+
const sLimitedRank
|
|
1278
|
+
= oRecursiveHierarchy.LimitedRank ? "LtdPreorderRank" : "LimitedRank";
|
|
1279
|
+
assert.strictEqual(oAggregation.$LimitedRank, sLimitedRank);
|
|
1280
|
+
oExpectedAggregation.$LimitedRank = sLimitedRank;
|
|
1281
|
+
}
|
|
1263
1282
|
assert.deepEqual(oAggregation, oExpectedAggregation);
|
|
1264
1283
|
});
|
|
1284
|
+
});
|
|
1265
1285
|
});
|
|
1266
1286
|
});
|
|
1267
1287
|
});
|
|
@@ -1288,7 +1308,15 @@ sap.ui.define([
|
|
|
1288
1308
|
+ "/orderby(~$orderby~)",
|
|
1289
1309
|
mQueryOptions : {$filter : "~$filter~", $orderby : "~$orderby~"}
|
|
1290
1310
|
}].forEach(function (mFixture, i) {
|
|
1291
|
-
|
|
1311
|
+
[
|
|
1312
|
+
{DrillStateProperty : {$PropertyPath : "path/to/aDrillState"}},
|
|
1313
|
+
{DrillState : {$Path : "path/to/aDrillState"}}
|
|
1314
|
+
].forEach((oRecursiveHierarchy, j) => {
|
|
1315
|
+
[false, true].forEach((bStored) => {
|
|
1316
|
+
const sTitle = "buildApply4Hierarchy: children of a given parent, #" + i + ", #" + j
|
|
1317
|
+
+ ", $LimitedRank already stored" + bStored;
|
|
1318
|
+
|
|
1319
|
+
QUnit.test(sTitle, function (assert) {
|
|
1292
1320
|
var oAggregation = Object.assign({
|
|
1293
1321
|
hierarchyQualifier : "XYZ",
|
|
1294
1322
|
$fetchMetadata : function () {},
|
|
@@ -1304,6 +1332,9 @@ sap.ui.define([
|
|
|
1304
1332
|
}, mFixture.mQueryOptions),
|
|
1305
1333
|
sQueryOptionsJSON = JSON.stringify(mQueryOptions);
|
|
1306
1334
|
|
|
1335
|
+
if (bStored) {
|
|
1336
|
+
oAggregation.$LimitedRank = "~LimitedRank~";
|
|
1337
|
+
}
|
|
1307
1338
|
oAggregationMock.expects("$fetchMetadata")
|
|
1308
1339
|
.withExactArgs("/meta/path/@Org.OData.Aggregation.V1.RecursiveHierarchy#XYZ")
|
|
1309
1340
|
.returns(SyncPromise.resolve({
|
|
@@ -1312,22 +1343,28 @@ sap.ui.define([
|
|
|
1312
1343
|
}));
|
|
1313
1344
|
oAggregationMock.expects("$fetchMetadata")
|
|
1314
1345
|
.withExactArgs("/meta/path/@com.sap.vocabularies.Hierarchy.v1.RecursiveHierarchy#XYZ")
|
|
1315
|
-
.returns(SyncPromise.resolve(
|
|
1316
|
-
DrillStateProperty : {$PropertyPath : "aDrillState"}
|
|
1317
|
-
}));
|
|
1346
|
+
.returns(SyncPromise.resolve(oRecursiveHierarchy));
|
|
1318
1347
|
|
|
1319
1348
|
// code under test
|
|
1320
1349
|
assert.deepEqual(_AggregationHelper.buildApply4Hierarchy(oAggregation, mQueryOptions), {
|
|
1321
1350
|
$apply : mFixture.sExpectedApply,
|
|
1322
1351
|
// no more $filter or $orderby!
|
|
1323
|
-
$select : ["ID", "myID", "aDrillState"],
|
|
1352
|
+
$select : ["ID", "myID", "path/to/aDrillState"],
|
|
1324
1353
|
foo : "bar"
|
|
1325
1354
|
});
|
|
1326
1355
|
|
|
1327
1356
|
assert.strictEqual(JSON.stringify(mQueryOptions), sQueryOptionsJSON, "unchanged");
|
|
1357
|
+
if (bStored) {
|
|
1358
|
+
assert.strictEqual(oAggregation.$LimitedRank, "~LimitedRank~", "unchanged");
|
|
1359
|
+
} else {
|
|
1360
|
+
assert.strictEqual(oAggregation.$LimitedRank, "path/to/LimitedRank",
|
|
1361
|
+
"derived from DrillState");
|
|
1362
|
+
}
|
|
1328
1363
|
assert.strictEqual(oAggregation.$NodeProperty, "myID");
|
|
1329
1364
|
assert.strictEqual(oAggregation.$ParentNavigationProperty, "myParentNavigation");
|
|
1330
1365
|
});
|
|
1366
|
+
});
|
|
1367
|
+
});
|
|
1331
1368
|
});
|
|
1332
1369
|
|
|
1333
1370
|
//*********************************************************************************************
|
|
@@ -1859,7 +1896,7 @@ sap.ui.define([
|
|
|
1859
1896
|
oPlaceholder = _AggregationHelper.createPlaceholder(3, 5, oParentCache);
|
|
1860
1897
|
|
|
1861
1898
|
assert.strictEqual(oPlaceholder["@$ui5.node.level"], 3);
|
|
1862
|
-
assert.strictEqual(_Helper.getPrivateAnnotation(oPlaceholder, "
|
|
1899
|
+
assert.strictEqual(_Helper.getPrivateAnnotation(oPlaceholder, "rank"), 5);
|
|
1863
1900
|
assert.strictEqual(_Helper.getPrivateAnnotation(oPlaceholder, "parent"), oParentCache);
|
|
1864
1901
|
assert.strictEqual(_Helper.getPrivateAnnotation(oPlaceholder, "placeholder"), true);
|
|
1865
1902
|
});
|
|
@@ -228,6 +228,23 @@ sap.ui.define([
|
|
|
228
228
|
assert.strictEqual(oCache.sOriginalResourcePath, sResourcePath);
|
|
229
229
|
});
|
|
230
230
|
|
|
231
|
+
//*********************************************************************************************
|
|
232
|
+
QUnit.test("_Cache#setQueryOptions defaulting", function (assert) {
|
|
233
|
+
const oCache = new _Cache(this.oRequestor);
|
|
234
|
+
|
|
235
|
+
// code under test
|
|
236
|
+
oCache.setQueryOptions();
|
|
237
|
+
|
|
238
|
+
assert.deepEqual(oCache.mQueryOptions, {});
|
|
239
|
+
|
|
240
|
+
oCache.bSentRequest = true;
|
|
241
|
+
|
|
242
|
+
assert.throws(() => {
|
|
243
|
+
// code under test
|
|
244
|
+
oCache.setQueryOptions();
|
|
245
|
+
}, new Error("Cannot set query options: Cache has already sent a request"));
|
|
246
|
+
});
|
|
247
|
+
|
|
231
248
|
//*********************************************************************************************
|
|
232
249
|
QUnit.test("_Cache#setResourcePath", function (assert) {
|
|
233
250
|
var oCache = new _Cache(this.oRequestor, "TEAMS('42')/name.space.Operation");
|
|
@@ -424,8 +441,8 @@ sap.ui.define([
|
|
|
424
441
|
.withExactArgs(undefined, oFixture.iStatus < 0
|
|
425
442
|
? [oMessage1, oMessage2] : [oMessage1]);
|
|
426
443
|
oRestoreExpectation = that.mock(oCache).expects("restoreElement").exactly(iOnFailure)
|
|
427
|
-
.withExactArgs(sinon.match.same(aCacheData),
|
|
428
|
-
sinon.match.same(aCacheData
|
|
444
|
+
.withExactArgs("~insert~", sinon.match.same(aCacheData[1]), 2, undefined,
|
|
445
|
+
sinon.match.same(aCacheData), sPath)
|
|
429
446
|
.callsFake(() => {
|
|
430
447
|
assert.deepEqual(aCacheData.$deleted.length, 4);
|
|
431
448
|
});
|
|
@@ -1041,7 +1058,7 @@ sap.ui.define([
|
|
|
1041
1058
|
});
|
|
1042
1059
|
|
|
1043
1060
|
//*********************************************************************************************
|
|
1044
|
-
[
|
|
1061
|
+
[undefined, "~path~"].forEach(function (sPath) {
|
|
1045
1062
|
[false, true].forEach(function (bTransient) {
|
|
1046
1063
|
[false, true].forEach(function (bDefault) {
|
|
1047
1064
|
const sTitle = `_Cache#restoreElement, path=${sPath}, transient=${bTransient},
|
|
@@ -1057,22 +1074,24 @@ sap.ui.define([
|
|
|
1057
1074
|
if (bDefault) {
|
|
1058
1075
|
oCache.aElements = aElements;
|
|
1059
1076
|
}
|
|
1077
|
+
const sPath0 = sPath || ""; // to test defaulting
|
|
1060
1078
|
this.mock(oCache).expects("adjustIndexes")
|
|
1061
|
-
.withExactArgs(
|
|
1079
|
+
.withExactArgs(sPath0, sinon.match.same(aElements), 42, 1, "~iDeletedIndex~");
|
|
1062
1080
|
const oHelperMock = this.mock(_Helper);
|
|
1063
1081
|
oHelperMock.expects("getPrivateAnnotation").exactly(bDefault && bTransient ? 0 : 1)
|
|
1064
1082
|
.withExactArgs("~oElement~", "transientPredicate")
|
|
1065
1083
|
.returns(bTransient ? "($uid=id-1-23)" : undefined);
|
|
1066
1084
|
oHelperMock.expects("addToCount")
|
|
1067
|
-
.withExactArgs(sinon.match.same(oCache.mChangeListeners),
|
|
1085
|
+
.withExactArgs(sinon.match.same(oCache.mChangeListeners), sPath0,
|
|
1068
1086
|
sinon.match.same(aElements), 1);
|
|
1069
1087
|
this.mock(aElements).expects("splice").withExactArgs(42, 0, "~oElement~");
|
|
1070
1088
|
oHelperMock.expects("getPrivateAnnotation").withExactArgs("~oElement~", "predicate")
|
|
1071
1089
|
.returns("~predicate~");
|
|
1072
1090
|
|
|
1073
1091
|
// code under test
|
|
1074
|
-
oCache.restoreElement(
|
|
1075
|
-
|
|
1092
|
+
oCache.restoreElement(42, "~oElement~", "~iDeletedIndex~",
|
|
1093
|
+
bDefault && bTransient ? "($uid=id-1-23)" : undefined, bDefault ? undefined : aElements,
|
|
1094
|
+
sPath);
|
|
1076
1095
|
|
|
1077
1096
|
assert.strictEqual(oCache.iLimit, bTransient || sPath ? 234 : 235);
|
|
1078
1097
|
assert.strictEqual(aElements.$created, bTransient ? 3 : 2);
|
|
@@ -2140,7 +2159,7 @@ sap.ui.define([
|
|
|
2140
2159
|
.withExactArgs("/Products/PostAddress")
|
|
2141
2160
|
.returns(SyncPromise.resolve({}));
|
|
2142
2161
|
this.mock(_Helper).expects("isSelected")
|
|
2143
|
-
.withExactArgs("PostAddress",
|
|
2162
|
+
.withExactArgs("PostAddress", {})
|
|
2144
2163
|
.returns(false);
|
|
2145
2164
|
this.mock(oCache).expects("fetchLateProperty")
|
|
2146
2165
|
.withExactArgs("~oGroupLock~", sinon.match.same(oData), "",
|
|
@@ -7614,6 +7633,48 @@ sap.ui.define([
|
|
|
7614
7633
|
});
|
|
7615
7634
|
});
|
|
7616
7635
|
|
|
7636
|
+
//*********************************************************************************************
|
|
7637
|
+
QUnit.test("CollectionCache#requestElements: $filter=false", function (assert) {
|
|
7638
|
+
var oCache = this.createCache("Employees", {$filter : "false"}),
|
|
7639
|
+
oCacheMock = this.mock(oCache),
|
|
7640
|
+
oCheckRangeExpectation,
|
|
7641
|
+
iEnd = 10,
|
|
7642
|
+
oFillExpectation,
|
|
7643
|
+
iStart = 0,
|
|
7644
|
+
oHandleResponseExpectation,
|
|
7645
|
+
oPromise,
|
|
7646
|
+
oResult = {"@odata.count" : "0", value : []};
|
|
7647
|
+
|
|
7648
|
+
oCache.bSentRequest = false;
|
|
7649
|
+
|
|
7650
|
+
oCacheMock.expects("getResourcePathWithQuery").never();
|
|
7651
|
+
this.oRequestorMock.expects("request").never();
|
|
7652
|
+
oCacheMock.expects("fetchTypes").withExactArgs().returns(SyncPromise.resolve("~mTypes~"));
|
|
7653
|
+
oFillExpectation = oCacheMock.expects("fill")
|
|
7654
|
+
.withExactArgs(sinon.match.instanceOf(SyncPromise), iStart, iEnd);
|
|
7655
|
+
Promise.resolve().then(function () { // must be called asynchronously
|
|
7656
|
+
oCheckRangeExpectation = oCacheMock.expects("checkRange")
|
|
7657
|
+
.withExactArgs(sinon.match.same(oPromise), iStart, iEnd);
|
|
7658
|
+
oHandleResponseExpectation = oCacheMock.expects("handleResponse")
|
|
7659
|
+
.withExactArgs(oResult, iStart, "~mTypes~")
|
|
7660
|
+
.returns("~iFiltered~");
|
|
7661
|
+
oCacheMock.expects("handleCount")
|
|
7662
|
+
.withExactArgs("~oGroupLock~", 0, iStart, iEnd, oResult, "~iFiltered~");
|
|
7663
|
+
});
|
|
7664
|
+
|
|
7665
|
+
// code under test
|
|
7666
|
+
oPromise = oCache.requestElements(iStart, iEnd, "~oGroupLock~", 0, "~fnDataRequested~");
|
|
7667
|
+
|
|
7668
|
+
assert.deepEqual(oCache.aReadRequests, [{iStart, iEnd}]);
|
|
7669
|
+
|
|
7670
|
+
assert.strictEqual(oCache.bSentRequest, true);
|
|
7671
|
+
assert.strictEqual(oFillExpectation.args[0][0], oPromise);
|
|
7672
|
+
|
|
7673
|
+
return oPromise.then(function () {
|
|
7674
|
+
assert.ok(oCheckRangeExpectation.calledBefore(oHandleResponseExpectation));
|
|
7675
|
+
});
|
|
7676
|
+
});
|
|
7677
|
+
|
|
7617
7678
|
//*********************************************************************************************
|
|
7618
7679
|
QUnit.test("CollectionCache#checkRange", function (assert) {
|
|
7619
7680
|
var oCache = this.createCache("Employees");
|
|
@@ -8524,7 +8585,7 @@ sap.ui.define([
|
|
|
8524
8585
|
this.mock(oCountChangeListener).expects("onChange");
|
|
8525
8586
|
this.mock(oCache).expects("visitResponse")
|
|
8526
8587
|
.withExactArgs(sinon.match.same(oPostResult), sinon.match.same(mTypeForMetaPath),
|
|
8527
|
-
"/TEAMS/TEAM_2_EMPLOYEES", sPathInCache + sTransientPredicate);
|
|
8588
|
+
"/TEAMS/TEAM_2_EMPLOYEES", sPathInCache + sTransientPredicate, undefined, true);
|
|
8528
8589
|
// simulate a lack of key predicate => the transient predicate is kept
|
|
8529
8590
|
oHelperMock.expects("getPrivateAnnotation")
|
|
8530
8591
|
.withExactArgs(sinon.match.same(oPostResult), "predicate")
|
|
@@ -9047,7 +9108,7 @@ sap.ui.define([
|
|
|
9047
9108
|
.returns({});
|
|
9048
9109
|
oCacheMock.expects("visitResponse")
|
|
9049
9110
|
.withExactArgs(sinon.match.same(oPostResult), sinon.match.same(mTypeForMetaPath),
|
|
9050
|
-
"/Employees", sTransientPredicate);
|
|
9111
|
+
"/Employees", sTransientPredicate, undefined, true);
|
|
9051
9112
|
oHelperMock.expects("updateSelected")
|
|
9052
9113
|
.withExactArgs(sinon.match.same(oCache.mChangeListeners), sTransientPredicate,
|
|
9053
9114
|
sinon.match.same(oCache.aElements[0]), sinon.match.same(oPostResult), undefined,
|
|
@@ -10280,6 +10341,99 @@ sap.ui.define([
|
|
|
10280
10341
|
});
|
|
10281
10342
|
});
|
|
10282
10343
|
|
|
10344
|
+
//*********************************************************************************************
|
|
10345
|
+
QUnit.test("CollectionCache#move", function (assert) {
|
|
10346
|
+
const oCache = this.createCache("n/a");
|
|
10347
|
+
|
|
10348
|
+
const aElements = oCache.aElements = ["a", "b", "c", "d", "e", "f", "g", "h"];
|
|
10349
|
+
|
|
10350
|
+
function deepEqual(aExpected) {
|
|
10351
|
+
assert.strictEqual(oCache.aElements, aElements, "same ref");
|
|
10352
|
+
assert.deepEqual(oCache.aElements, aExpected);
|
|
10353
|
+
}
|
|
10354
|
+
|
|
10355
|
+
// code under test (nothing to do)
|
|
10356
|
+
oCache.move(4, 4, 3);
|
|
10357
|
+
|
|
10358
|
+
deepEqual(["a", "b", "c", "d", "e", "f", "g", "h"]);
|
|
10359
|
+
|
|
10360
|
+
// code under test (nothing to do)
|
|
10361
|
+
oCache.move(1, 4, 0);
|
|
10362
|
+
|
|
10363
|
+
deepEqual(["a", "b", "c", "d", "e", "f", "g", "h"]);
|
|
10364
|
+
|
|
10365
|
+
// code under test
|
|
10366
|
+
oCache.move(1, 4, 3);
|
|
10367
|
+
|
|
10368
|
+
deepEqual(["a", "e", "f", "g", /**/"b", "c", "d"/**/, "h"]);
|
|
10369
|
+
|
|
10370
|
+
// code under test (undo)
|
|
10371
|
+
oCache.move(4, 1, 3);
|
|
10372
|
+
|
|
10373
|
+
deepEqual(["a", "b", "c", "d", "e", "f", "g", "h"]);
|
|
10374
|
+
|
|
10375
|
+
// code under test
|
|
10376
|
+
oCache.move(1, 5, 2);
|
|
10377
|
+
|
|
10378
|
+
deepEqual(["a", "d", "e", "f", "g", /**/"b", "c"/**/, "h"]);
|
|
10379
|
+
|
|
10380
|
+
// code under test (undo)
|
|
10381
|
+
oCache.move(5, 1, 2);
|
|
10382
|
+
|
|
10383
|
+
deepEqual(["a", "b", "c", "d", "e", "f", "g", "h"]);
|
|
10384
|
+
|
|
10385
|
+
// code under test
|
|
10386
|
+
oCache.move(1, 3, 4);
|
|
10387
|
+
|
|
10388
|
+
deepEqual(["a", "f", "g", /**/"b", "c", "d", "e"/**/, "h"]);
|
|
10389
|
+
|
|
10390
|
+
// code under test (undo)
|
|
10391
|
+
oCache.move(3, 1, 4);
|
|
10392
|
+
|
|
10393
|
+
deepEqual(["a", "b", "c", "d", "e", "f", "g", "h"]);
|
|
10394
|
+
});
|
|
10395
|
+
|
|
10396
|
+
//*********************************************************************************************
|
|
10397
|
+
QUnit.test("CollectionCache#move: no RangeError", function (assert) {
|
|
10398
|
+
const oCache = this.createCache("n/a");
|
|
10399
|
+
|
|
10400
|
+
for (let i = 0; i < 1_000_000; i += 1) {
|
|
10401
|
+
oCache.aElements[i] = i;
|
|
10402
|
+
}
|
|
10403
|
+
|
|
10404
|
+
// code under test (no "RangeError: Maximum call stack size exceeded")
|
|
10405
|
+
oCache.move(5_000, 10_000, 990_000);
|
|
10406
|
+
|
|
10407
|
+
for (let i = 0; i < 5_000; i += 1) {
|
|
10408
|
+
if (oCache.aElements[i] !== i) {
|
|
10409
|
+
assert.ok(false);
|
|
10410
|
+
break;
|
|
10411
|
+
}
|
|
10412
|
+
}
|
|
10413
|
+
for (let i = 0; i < 990_000; i += 1) {
|
|
10414
|
+
if (oCache.aElements[10_000 + i] !== 5_000 + i) {
|
|
10415
|
+
assert.ok(false);
|
|
10416
|
+
break;
|
|
10417
|
+
}
|
|
10418
|
+
}
|
|
10419
|
+
for (let i = 0; i < 5_000; i += 1) {
|
|
10420
|
+
if (oCache.aElements[5_000 + i] !== 995_000 + i) {
|
|
10421
|
+
assert.ok(false);
|
|
10422
|
+
break;
|
|
10423
|
+
}
|
|
10424
|
+
}
|
|
10425
|
+
|
|
10426
|
+
// code under test (undo)
|
|
10427
|
+
oCache.move(10_000, 5_000, 990_000);
|
|
10428
|
+
|
|
10429
|
+
for (let i = 0; i < 1_000_000; i += 1) {
|
|
10430
|
+
if (oCache.aElements[i] !== i) {
|
|
10431
|
+
assert.ok(false);
|
|
10432
|
+
break;
|
|
10433
|
+
}
|
|
10434
|
+
}
|
|
10435
|
+
});
|
|
10436
|
+
|
|
10283
10437
|
//*********************************************************************************************
|
|
10284
10438
|
[
|
|
10285
10439
|
{error : false, path : "EMPLOYEE_2_TEAM"},
|
|
@@ -12512,6 +12666,100 @@ sap.ui.define([
|
|
|
12512
12666
|
});
|
|
12513
12667
|
});
|
|
12514
12668
|
|
|
12669
|
+
//*********************************************************************************************
|
|
12670
|
+
QUnit.test("CollectionCache#read waits for prefetch 'after'", async function (assert) {
|
|
12671
|
+
const oCache = this.createCache("Employees");
|
|
12672
|
+
const oGroupLock = {
|
|
12673
|
+
getUnlockedCopy : mustBeMocked,
|
|
12674
|
+
unlock : mustBeMocked
|
|
12675
|
+
};
|
|
12676
|
+
this.mock(_Helper).expects("getPrivateAnnotation").never();
|
|
12677
|
+
this.mock(this.oRequestor).expects("waitForBatchResponseReceived").never();
|
|
12678
|
+
oCache.aElements.push(...aTestData.slice(0, 5));
|
|
12679
|
+
this.mock(ODataUtils).expects("_getReadIntervals")
|
|
12680
|
+
.withExactArgs(sinon.match.same(oCache.aElements), 0, 5, 10, Infinity)
|
|
12681
|
+
.returns([{
|
|
12682
|
+
end : 15,
|
|
12683
|
+
start : 5 // [0..5[ already available, see above
|
|
12684
|
+
}]);
|
|
12685
|
+
const oGetUnlockedCopyExpectation = this.mock(oGroupLock).expects("getUnlockedCopy")
|
|
12686
|
+
.withExactArgs().returns("~unlockedCopy~");
|
|
12687
|
+
this.mock(oCache).expects("requestElements")
|
|
12688
|
+
.withExactArgs(5, 15, "~unlockedCopy~", 0, "~fnDataRequested~")
|
|
12689
|
+
.callsFake(() => {
|
|
12690
|
+
// just at the edge, there is a promise we need to wait for
|
|
12691
|
+
oCache.aElements[14] = Promise.resolve();
|
|
12692
|
+
// just beyond, there is a promise which never resolves and MUST be ignored
|
|
12693
|
+
oCache.aElements[15] = new Promise(() => {});
|
|
12694
|
+
});
|
|
12695
|
+
const oUnlockExpectation = this.mock(oGroupLock).expects("unlock").withExactArgs();
|
|
12696
|
+
|
|
12697
|
+
// code under test
|
|
12698
|
+
const oSyncPromise = oCache.read(0, 5, 10, oGroupLock, "~fnDataRequested~");
|
|
12699
|
+
|
|
12700
|
+
assert.ok(oSyncPromise.isPending());
|
|
12701
|
+
assert.ok(oUnlockExpectation.calledAfter(oGetUnlockedCopyExpectation));
|
|
12702
|
+
|
|
12703
|
+
await oSyncPromise; // no need to check result, it's defined by aElements way above
|
|
12704
|
+
});
|
|
12705
|
+
|
|
12706
|
+
//*********************************************************************************************
|
|
12707
|
+
[10, 30].forEach((iPrefetchLength) => {
|
|
12708
|
+
const sTitle = `CollectionCache#read waits for prefetch 'before', ${iPrefetchLength}`;
|
|
12709
|
+
|
|
12710
|
+
QUnit.test(sTitle, async function (assert) {
|
|
12711
|
+
const oCache = this.createCache("Employees");
|
|
12712
|
+
const oGroupLock = {
|
|
12713
|
+
getUnlockedCopy : mustBeMocked,
|
|
12714
|
+
unlock : mustBeMocked
|
|
12715
|
+
};
|
|
12716
|
+
this.mock(_Helper).expects("getPrivateAnnotation").never();
|
|
12717
|
+
this.mock(this.oRequestor).expects("waitForBatchResponseReceived").never();
|
|
12718
|
+
oCache.aElements.splice(20, 0, ...aTestData.slice(20, 25));
|
|
12719
|
+
oCache.iLimit = 25; // simulate a known $count
|
|
12720
|
+
const iStart = iPrefetchLength === 10 ? 10 : 0; // Math.max(0, 20 - iPrefetchLength)
|
|
12721
|
+
this.mock(ODataUtils).expects("_getReadIntervals")
|
|
12722
|
+
.withExactArgs(sinon.match.same(oCache.aElements), 20, 5, iPrefetchLength, 25)
|
|
12723
|
+
.returns([{
|
|
12724
|
+
end : 20,
|
|
12725
|
+
start : iStart // [20..25[ already available, see above
|
|
12726
|
+
}]);
|
|
12727
|
+
const oGetUnlockedCopyExpectation = this.mock(oGroupLock).expects("getUnlockedCopy")
|
|
12728
|
+
.withExactArgs().returns("~unlockedCopy~");
|
|
12729
|
+
this.mock(oCache).expects("requestElements")
|
|
12730
|
+
.withExactArgs(iStart, 20, "~unlockedCopy~", 0, "~fnDataRequested~")
|
|
12731
|
+
.callsFake(() => {
|
|
12732
|
+
switch (iPrefetchLength) {
|
|
12733
|
+
case 10:
|
|
12734
|
+
// just at the edge, there is a promise we need to wait for
|
|
12735
|
+
oCache.aElements[10] = Promise.resolve();
|
|
12736
|
+
// just beyond, there is a promise which never resolves and MUST be ignored
|
|
12737
|
+
oCache.aElements[9] = new Promise(() => {});
|
|
12738
|
+
break;
|
|
12739
|
+
|
|
12740
|
+
case 30:
|
|
12741
|
+
// just at the edge, there is a promise we need to wait for
|
|
12742
|
+
oCache.aElements[0] = Promise.resolve();
|
|
12743
|
+
// just beyond, there is a promise which never resolves and MUST be ignored
|
|
12744
|
+
oCache.aElements[55] = new Promise(() => {});
|
|
12745
|
+
break;
|
|
12746
|
+
|
|
12747
|
+
default:
|
|
12748
|
+
throw iPrefetchLength;
|
|
12749
|
+
}
|
|
12750
|
+
});
|
|
12751
|
+
const oUnlockExpectation = this.mock(oGroupLock).expects("unlock").withExactArgs();
|
|
12752
|
+
|
|
12753
|
+
// code under test
|
|
12754
|
+
const oSyncPromise = oCache.read(20, 5, iPrefetchLength, oGroupLock, "~fnDataRequested~");
|
|
12755
|
+
|
|
12756
|
+
assert.ok(oSyncPromise.isPending());
|
|
12757
|
+
assert.ok(oUnlockExpectation.calledAfter(oGetUnlockedCopyExpectation));
|
|
12758
|
+
|
|
12759
|
+
await oSyncPromise; // no need to check result, it's defined by aElements way above
|
|
12760
|
+
});
|
|
12761
|
+
});
|
|
12762
|
+
|
|
12515
12763
|
//*********************************************************************************************
|
|
12516
12764
|
QUnit.test("CollectionCache#addKeptElement", function (assert) {
|
|
12517
12765
|
var oCache = this.createCache("Employees"),
|
|
@@ -4079,6 +4079,9 @@ sap.ui.define([
|
|
|
4079
4079
|
assert.strictEqual(oBatchQueue0[0].iSerialNumber, 0);
|
|
4080
4080
|
}
|
|
4081
4081
|
|
|
4082
|
+
const oModelInterfaceMock = this.mock(oModelInterface);
|
|
4083
|
+
oModelInterfaceMock.expects("onCreateGroup").withExactArgs("group");
|
|
4084
|
+
|
|
4082
4085
|
// code under test
|
|
4083
4086
|
aBatchQueue = oRequestor.getOrCreateBatchQueue("group");
|
|
4084
4087
|
|
|
@@ -4087,10 +4090,15 @@ sap.ui.define([
|
|
|
4087
4090
|
// code under test
|
|
4088
4091
|
assert.strictEqual(oRequestor.getOrCreateBatchQueue("group"), aBatchQueue);
|
|
4089
4092
|
|
|
4090
|
-
|
|
4093
|
+
oModelInterfaceMock.expects("onCreateGroup").withExactArgs("group2");
|
|
4091
4094
|
|
|
4092
4095
|
// code under test
|
|
4093
4096
|
checkBatchQueue(oRequestor.getOrCreateBatchQueue("group2"), "group2");
|
|
4097
|
+
|
|
4098
|
+
oModelInterfaceMock.expects("onCreateGroup").withExactArgs("group3").never();
|
|
4099
|
+
|
|
4100
|
+
// code under test: create queue without informing the model
|
|
4101
|
+
checkBatchQueue(oRequestor.getOrCreateBatchQueue("group3", true), "group3");
|
|
4094
4102
|
});
|
|
4095
4103
|
|
|
4096
4104
|
//*****************************************************************************************
|
|
@@ -4110,7 +4118,7 @@ sap.ui.define([
|
|
|
4110
4118
|
aRequests = [aChangeSet0, oGetRequest];
|
|
4111
4119
|
|
|
4112
4120
|
aRequests.iChangeSet = 0;
|
|
4113
|
-
this.mock(oRequestor).expects("getOrCreateBatchQueue").withExactArgs("group")
|
|
4121
|
+
this.mock(oRequestor).expects("getOrCreateBatchQueue").withExactArgs("group", true)
|
|
4114
4122
|
.returns(aRequests);
|
|
4115
4123
|
this.mock(oRequestor).expects("getSerialNumber").withExactArgs().returns(42);
|
|
4116
4124
|
|