@openui5/sap.ui.core 1.112.2 → 1.114.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.dtsgenrc +102 -1
- package/THIRDPARTY.txt +1 -1
- package/package.json +1 -1
- package/src/jquery.sap.global.js +10 -4
- package/src/jquery.sap.properties.js +1 -1
- package/src/jquery.sap.resources.js +1 -1
- package/src/jquery.sap.script.js +1 -1
- package/src/jquery.sap.storage.js +7 -7
- package/src/jquery.sap.trace.js +14 -14
- package/src/sap/base/Log.js +92 -8
- package/src/sap/base/assert.js +1 -1
- package/src/sap/base/config/MemoryConfigurationProvider.js +22 -0
- package/src/sap/base/config.js +54 -0
- package/src/sap/base/security/URLWhitelist.js +1 -1
- package/src/sap/base/util/Deferred.js +3 -2
- package/src/sap/base/util/restricted/_CancelablePromise.js +2 -2
- package/src/sap/base/util/restricted/_castArray.js +1 -1
- package/src/sap/base/util/restricted/_compact.js +1 -1
- package/src/sap/base/util/restricted/_curry.js +1 -1
- package/src/sap/base/util/restricted/_debounce.js +1 -1
- package/src/sap/base/util/restricted/_difference.js +1 -1
- package/src/sap/base/util/restricted/_differenceBy.js +1 -1
- package/src/sap/base/util/restricted/_differenceWith.js +1 -1
- package/src/sap/base/util/restricted/_flatMap.js +1 -1
- package/src/sap/base/util/restricted/_flatMapDeep.js +1 -1
- package/src/sap/base/util/restricted/_flatMapDepth.js +1 -1
- package/src/sap/base/util/restricted/_flatten.js +1 -1
- package/src/sap/base/util/restricted/_flattenDeep.js +1 -1
- package/src/sap/base/util/restricted/_flattenDepth.js +1 -1
- package/src/sap/base/util/restricted/_intersection.js +1 -1
- package/src/sap/base/util/restricted/_intersectionBy.js +1 -1
- package/src/sap/base/util/restricted/_intersectionWith.js +1 -1
- package/src/sap/base/util/restricted/_isEqual.js +1 -1
- package/src/sap/base/util/restricted/_isEqualWith.js +1 -1
- package/src/sap/base/util/restricted/_isNil.js +1 -1
- package/src/sap/base/util/restricted/_max.js +1 -1
- package/src/sap/base/util/restricted/_merge.js +1 -1
- package/src/sap/base/util/restricted/_mergeWith.js +1 -1
- package/src/sap/base/util/restricted/_min.js +1 -1
- package/src/sap/base/util/restricted/_omit.js +1 -1
- package/src/sap/base/util/restricted/_pick.js +1 -1
- package/src/sap/base/util/restricted/_pickBy.js +1 -1
- package/src/sap/base/util/restricted/_throttle.js +1 -1
- package/src/sap/base/util/restricted/_toArray.js +1 -1
- package/src/sap/base/util/restricted/_union.js +1 -1
- package/src/sap/base/util/restricted/_unionBy.js +1 -1
- package/src/sap/base/util/restricted/_unionWith.js +1 -1
- package/src/sap/base/util/restricted/_uniq.js +1 -1
- package/src/sap/base/util/restricted/_uniqBy.js +1 -1
- package/src/sap/base/util/restricted/_uniqWith.js +1 -1
- package/src/sap/base/util/restricted/_without.js +1 -1
- package/src/sap/base/util/restricted/_xor.js +1 -1
- package/src/sap/base/util/restricted/_xorBy.js +1 -1
- package/src/sap/base/util/restricted/_xorWith.js +1 -1
- package/src/sap/base/util/restricted/_zipObject.js +1 -1
- package/src/sap/base/util/restricted/_zipObjectDeep.js +1 -1
- package/src/sap/ui/Device.js +8 -3
- package/src/sap/ui/Global.js +4 -4
- package/src/sap/ui/base/BindingParser.js +79 -18
- package/src/sap/ui/base/Event.js +1 -1
- package/src/sap/ui/base/EventProvider.js +1 -1
- package/src/sap/ui/base/ExpressionParser.js +15 -5
- package/src/sap/ui/base/Interface.js +1 -1
- package/src/sap/ui/base/ManagedObject.js +16 -13
- package/src/sap/ui/base/ManagedObjectMetadata.js +35 -35
- package/src/sap/ui/base/Metadata.js +23 -12
- package/src/sap/ui/base/Object.js +1 -1
- package/src/sap/ui/base/ObjectPool.js +1 -1
- package/src/sap/ui/core/.library +1 -1
- package/src/sap/ui/core/BusyIndicator.js +4 -4
- package/src/sap/ui/core/Component.js +10 -7
- package/src/sap/ui/core/ComponentContainer.js +1 -1
- package/src/sap/ui/core/ComponentMetadata.js +3 -1
- package/src/sap/ui/core/ComponentSupport.js +1 -1
- package/src/sap/ui/core/Configuration.js +104 -45
- package/src/sap/ui/core/Control.js +23 -6
- package/src/sap/ui/core/Core.js +36 -15
- package/src/sap/ui/core/CustomData.js +1 -1
- package/src/sap/ui/core/CustomStyleClassSupport.js +5 -2
- package/src/sap/ui/core/DeclarativeSupport.js +1 -1
- package/src/sap/ui/core/Element.js +1 -1
- package/src/sap/ui/core/ElementMetadata.js +19 -4
- package/src/sap/ui/core/EnabledPropagator.js +1 -1
- package/src/sap/ui/core/EventBus.js +4 -4
- package/src/sap/ui/core/Fragment.js +1 -1
- package/src/sap/ui/core/HTML.js +1 -1
- package/src/sap/ui/core/History.js +1 -1
- package/src/sap/ui/core/Icon.js +1 -1
- package/src/sap/ui/core/IconPool.js +17 -2
- package/src/sap/ui/core/IndicationColorSupport.js +1 -1
- package/src/sap/ui/core/IntervalTrigger.js +1 -1
- package/src/sap/ui/core/InvisibleMessage.js +1 -1
- package/src/sap/ui/core/InvisibleRenderer.js +1 -1
- package/src/sap/ui/core/InvisibleText.js +1 -1
- package/src/sap/ui/core/Item.js +1 -1
- package/src/sap/ui/core/LabelEnablement.js +10 -2
- package/src/sap/ui/core/LayoutData.js +1 -1
- package/src/sap/ui/core/Lib.js +28 -2
- package/src/sap/ui/core/ListItem.js +1 -1
- package/src/sap/ui/core/LocalBusyIndicator.js +1 -1
- package/src/sap/ui/core/Locale.js +2 -2
- package/src/sap/ui/core/LocaleData.js +87 -19
- package/src/sap/ui/core/Manifest.js +5 -5
- package/src/sap/ui/core/Message.js +1 -1
- package/src/sap/ui/core/Popup.js +34 -36
- package/src/sap/ui/core/RenderManager.js +8 -2
- package/src/sap/ui/core/Renderer.js +1 -1
- package/src/sap/ui/core/Rendering.js +2 -3
- package/src/sap/ui/core/ResizeHandler.js +2 -2
- package/src/sap/ui/core/ScrollBar.js +1 -1
- package/src/sap/ui/core/SeparatorItem.js +1 -1
- package/src/sap/ui/core/Title.js +1 -1
- package/src/sap/ui/core/TooltipBase.js +1 -1
- package/src/sap/ui/core/UIArea.js +9 -2
- package/src/sap/ui/core/UIComponent.js +16 -13
- package/src/sap/ui/core/UIComponentMetadata.js +1 -1
- package/src/sap/ui/core/ValueStateSupport.js +1 -1
- package/src/sap/ui/core/VariantLayoutData.js +1 -1
- package/src/sap/ui/core/XMLComposite.js +1 -1
- package/src/sap/ui/core/XMLCompositeMetadata.js +1 -1
- package/src/sap/ui/core/XMLTemplateProcessor.js +30 -6
- package/src/sap/ui/core/cache/CacheManager.js +1 -1
- package/src/sap/ui/core/cache/LRUPersistentCache.js +1 -1
- package/src/sap/ui/core/date/CalendarUtils.js +14 -26
- package/src/sap/ui/core/date/CalendarWeekNumbering.js +32 -0
- package/src/sap/ui/core/date/UI5Date.js +14 -8
- package/src/sap/ui/core/date/UniversalDate.js +15 -53
- package/src/sap/ui/core/date/UniversalDateUtils.js +4 -4
- package/src/sap/ui/core/date/_Calendars.js +1 -1
- package/src/sap/ui/core/delegate/ItemNavigation.js +1 -1
- package/src/sap/ui/core/delegate/ScrollEnablement.js +1 -1
- package/src/sap/ui/core/dnd/DragDropBase.js +1 -1
- package/src/sap/ui/core/dnd/DragDropInfo.js +1 -1
- package/src/sap/ui/core/dnd/DragInfo.js +1 -1
- package/src/sap/ui/core/dnd/DropInfo.js +1 -1
- package/src/sap/ui/core/format/DateFormat.js +166 -59
- package/src/sap/ui/core/format/NumberFormat.js +40 -5
- package/src/sap/ui/core/format/TimezoneUtil.js +1 -1
- package/src/sap/ui/core/hyphenation/Hyphenation.js +1 -1
- package/src/sap/ui/core/library.js +3 -3
- package/src/sap/ui/core/message/ControlMessageProcessor.js +1 -1
- package/src/sap/ui/core/message/Message.js +1 -1
- package/src/sap/ui/core/message/MessageManager.js +1 -1
- package/src/sap/ui/core/message/MessageParser.js +1 -1
- package/src/sap/ui/core/message/MessageProcessor.js +1 -1
- package/src/sap/ui/core/messagebundle.properties +2 -0
- package/src/sap/ui/core/messagebundle_ar.properties +2 -1
- package/src/sap/ui/core/messagebundle_bg.properties +1 -0
- package/src/sap/ui/core/messagebundle_ca.properties +1 -0
- package/src/sap/ui/core/messagebundle_cs.properties +2 -1
- package/src/sap/ui/core/messagebundle_cy.properties +2 -1
- package/src/sap/ui/core/messagebundle_da.properties +2 -1
- package/src/sap/ui/core/messagebundle_de.properties +2 -1
- package/src/sap/ui/core/messagebundle_el.properties +2 -1
- package/src/sap/ui/core/messagebundle_en.properties +2 -1
- package/src/sap/ui/core/messagebundle_en_GB.properties +2 -1
- package/src/sap/ui/core/messagebundle_en_US_sappsd.properties +1 -0
- package/src/sap/ui/core/messagebundle_en_US_saprigi.properties +1 -0
- package/src/sap/ui/core/messagebundle_es.properties +5 -4
- package/src/sap/ui/core/messagebundle_es_MX.properties +2 -1
- package/src/sap/ui/core/messagebundle_et.properties +2 -1
- package/src/sap/ui/core/messagebundle_fi.properties +2 -1
- package/src/sap/ui/core/messagebundle_fr.properties +2 -1
- package/src/sap/ui/core/messagebundle_fr_CA.properties +2 -1
- package/src/sap/ui/core/messagebundle_hi.properties +2 -1
- package/src/sap/ui/core/messagebundle_hr.properties +2 -1
- package/src/sap/ui/core/messagebundle_hu.properties +2 -1
- package/src/sap/ui/core/messagebundle_id.properties +2 -1
- package/src/sap/ui/core/messagebundle_it.properties +2 -1
- package/src/sap/ui/core/messagebundle_iw.properties +2 -1
- package/src/sap/ui/core/messagebundle_ja.properties +1 -0
- package/src/sap/ui/core/messagebundle_kk.properties +2 -1
- package/src/sap/ui/core/messagebundle_ko.properties +2 -1
- package/src/sap/ui/core/messagebundle_lt.properties +2 -1
- package/src/sap/ui/core/messagebundle_lv.properties +2 -1
- package/src/sap/ui/core/messagebundle_ms.properties +2 -1
- package/src/sap/ui/core/messagebundle_nl.properties +2 -1
- package/src/sap/ui/core/messagebundle_no.properties +2 -1
- package/src/sap/ui/core/messagebundle_pl.properties +2 -1
- package/src/sap/ui/core/messagebundle_pt.properties +2 -1
- package/src/sap/ui/core/messagebundle_pt_PT.properties +2 -1
- package/src/sap/ui/core/messagebundle_ro.properties +2 -1
- package/src/sap/ui/core/messagebundle_ru.properties +3 -2
- package/src/sap/ui/core/messagebundle_sh.properties +2 -1
- package/src/sap/ui/core/messagebundle_sk.properties +2 -1
- package/src/sap/ui/core/messagebundle_sl.properties +2 -1
- package/src/sap/ui/core/messagebundle_sv.properties +2 -1
- package/src/sap/ui/core/messagebundle_th.properties +2 -1
- package/src/sap/ui/core/messagebundle_tr.properties +2 -1
- package/src/sap/ui/core/messagebundle_uk.properties +2 -1
- package/src/sap/ui/core/messagebundle_vi.properties +2 -1
- package/src/sap/ui/core/messagebundle_zh_CN.properties +2 -1
- package/src/sap/ui/core/messagebundle_zh_TW.properties +2 -1
- package/src/sap/ui/core/mvc/Controller.js +2 -3
- package/src/sap/ui/core/mvc/ControllerExtension.js +1 -1
- package/src/sap/ui/core/mvc/HTMLView.js +1 -1
- package/src/sap/ui/core/mvc/JSONView.js +1 -1
- package/src/sap/ui/core/mvc/JSView.js +1 -1
- package/src/sap/ui/core/mvc/TemplateView.js +1 -1
- package/src/sap/ui/core/mvc/View.js +24 -17
- package/src/sap/ui/core/mvc/XMLView.js +2 -2
- package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
- package/src/sap/ui/core/plugin/LessSupport.js +1 -1
- package/src/sap/ui/core/plugin/TemplatingSupport.js +1 -1
- package/src/sap/ui/core/postmessage/Bus.js +1 -1
- package/src/sap/ui/core/postmessage/confirmationDialog.js +1 -1
- package/src/sap/ui/core/routing/Route.js +30 -22
- package/src/sap/ui/core/routing/Router.js +5 -3
- package/src/sap/ui/core/routing/Target.js +170 -3
- package/src/sap/ui/core/routing/Targets.js +5 -214
- package/src/sap/ui/core/routing/Views.js +1 -1
- package/src/sap/ui/core/search/OpenSearchProvider.js +1 -1
- package/src/sap/ui/core/search/SearchProvider.js +1 -1
- package/src/sap/ui/core/service/Service.js +1 -1
- package/src/sap/ui/core/service/ServiceFactory.js +1 -1
- package/src/sap/ui/core/service/ServiceFactoryRegistry.js +1 -1
- package/src/sap/ui/core/support/Plugin.js +1 -1
- package/src/sap/ui/core/support/Support.js +1 -1
- package/src/sap/ui/core/support/controls/InteractionTree.js +5 -3
- package/src/sap/ui/core/support/plugins/Breakpoint.js +2 -2
- package/src/sap/ui/core/support/plugins/ControlTree.js +1 -1
- package/src/sap/ui/core/support/plugins/Interaction.js +6 -4
- package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -1
- package/src/sap/ui/core/support/plugins/Performance.js +1 -1
- package/src/sap/ui/core/support/plugins/Selector.js +1 -1
- package/src/sap/ui/core/support/plugins/TechInfo.js +1 -1
- package/src/sap/ui/core/support/plugins/Trace.js +4 -3
- package/src/sap/ui/core/support/plugins/ViewInfo.js +1 -1
- package/src/sap/ui/core/themes/base/base.less +4358 -78
- package/src/sap/ui/core/themes/base/global.less +114 -8
- package/src/sap/ui/core/themes/sap_hcb/global.less +114 -8
- package/src/sap/ui/core/theming/Parameters.js +10 -2
- package/src/sap/ui/core/theming/ThemeManager.js +16 -12
- package/src/sap/ui/core/tmpl/DOMAttribute.js +1 -1
- package/src/sap/ui/core/tmpl/DOMElement.js +1 -1
- package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +1 -1
- package/src/sap/ui/core/tmpl/Template.js +1 -1
- package/src/sap/ui/core/tmpl/TemplateControl.js +1 -1
- package/src/sap/ui/core/util/AsyncHintsHelper.js +1 -1
- package/src/sap/ui/core/util/Export.js +1 -1
- package/src/sap/ui/core/util/ExportCell.js +1 -1
- package/src/sap/ui/core/util/ExportColumn.js +1 -1
- package/src/sap/ui/core/util/ExportRow.js +1 -1
- package/src/sap/ui/core/util/ExportType.js +1 -1
- package/src/sap/ui/core/util/ExportTypeCSV.js +1 -1
- package/src/sap/ui/core/util/File.js +1 -1
- package/src/sap/ui/core/util/LibraryInfo.js +1 -1
- package/src/sap/ui/core/util/MockServer.js +1 -1
- package/src/sap/ui/core/util/PasteHelper.js +1 -1
- package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +1 -1
- package/src/sap/ui/core/util/serializer/Serializer.js +1 -1
- package/src/sap/ui/core/util/serializer/ViewSerializer.js +1 -1
- package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +1 -1
- package/src/sap/ui/core/util/serializer/delegate/Delegate.js +1 -1
- package/src/sap/ui/core/util/serializer/delegate/HTML.js +1 -1
- package/src/sap/ui/core/util/serializer/delegate/XML.js +1 -1
- package/src/sap/ui/core/ws/ReadyState.js +1 -1
- package/src/sap/ui/core/ws/SapPcpWebSocket.js +1 -1
- package/src/sap/ui/core/ws/WebSocket.js +1 -1
- package/src/sap/ui/debug/ControlTree.js +1 -1
- package/src/sap/ui/debug/DebugEnv.js +1 -1
- package/src/sap/ui/debug/PropertyList.js +1 -1
- package/src/sap/ui/dom/includeScript.js +3 -3
- package/src/sap/ui/dom/includeStylesheet.js +3 -3
- package/src/sap/ui/events/ControlEvents.js +2 -2
- package/src/sap/ui/events/PseudoEvents.js +4 -2
- package/src/sap/ui/model/ClientModel.js +1 -1
- package/src/sap/ui/model/CompositeBinding.js +1 -1
- package/src/sap/ui/model/CompositeDataState.js +1 -1
- package/src/sap/ui/model/CompositeType.js +1 -1
- package/src/sap/ui/model/DataState.js +1 -1
- package/src/sap/ui/model/ManagedObjectBindingSupport.js +19 -2
- package/src/sap/ui/model/MetaModel.js +1 -1
- package/src/sap/ui/model/Model.js +1 -1
- package/src/sap/ui/model/SelectionModel.js +1 -1
- package/src/sap/ui/model/SimpleType.js +7 -3
- package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
- package/src/sap/ui/model/Type.js +1 -1
- package/src/sap/ui/model/base/ManagedObjectModel.js +12 -4
- package/src/sap/ui/model/controlhelper/TreeBindingProxy.js +2 -0
- package/src/sap/ui/model/json/JSONModel.js +1 -1
- package/src/sap/ui/model/message/MessageModel.js +1 -1
- package/src/sap/ui/model/odata/ODataAnnotations.js +1 -1
- package/src/sap/ui/model/odata/ODataMessageParser.js +1 -1
- package/src/sap/ui/model/odata/ODataMetaModel.js +1 -1
- package/src/sap/ui/model/odata/ODataMetadata.js +1 -1
- package/src/sap/ui/model/odata/ODataModel.js +1 -1
- package/src/sap/ui/model/odata/ODataTreeBindingFlat.js +1 -1
- package/src/sap/ui/model/odata/type/Boolean.js +1 -1
- package/src/sap/ui/model/odata/type/Byte.js +1 -1
- package/src/sap/ui/model/odata/type/Currency.js +1 -1
- package/src/sap/ui/model/odata/type/Date.js +67 -21
- package/src/sap/ui/model/odata/type/DateTime.js +51 -8
- package/src/sap/ui/model/odata/type/DateTimeBase.js +55 -26
- package/src/sap/ui/model/odata/type/DateTimeOffset.js +42 -1
- package/src/sap/ui/model/odata/type/DateTimeWithTimezone.js +37 -21
- package/src/sap/ui/model/odata/type/Decimal.js +28 -33
- package/src/sap/ui/model/odata/type/Double.js +21 -26
- package/src/sap/ui/model/odata/type/Guid.js +1 -1
- package/src/sap/ui/model/odata/type/Int.js +15 -20
- package/src/sap/ui/model/odata/type/Int16.js +1 -1
- package/src/sap/ui/model/odata/type/Int32.js +1 -1
- package/src/sap/ui/model/odata/type/Int64.js +16 -21
- package/src/sap/ui/model/odata/type/ODataType.js +33 -6
- package/src/sap/ui/model/odata/type/Raw.js +1 -1
- package/src/sap/ui/model/odata/type/SByte.js +1 -1
- package/src/sap/ui/model/odata/type/Single.js +20 -25
- package/src/sap/ui/model/odata/type/Stream.js +1 -1
- package/src/sap/ui/model/odata/type/String.js +1 -1
- package/src/sap/ui/model/odata/type/Time.js +91 -21
- package/src/sap/ui/model/odata/type/TimeOfDay.js +70 -24
- package/src/sap/ui/model/odata/type/Unit.js +1 -1
- package/src/sap/ui/model/odata/v2/Context.js +72 -28
- package/src/sap/ui/model/odata/v2/ODataAnnotations.js +5 -4
- package/src/sap/ui/model/odata/v2/ODataListBinding.js +29 -10
- package/src/sap/ui/model/odata/v2/ODataModel.js +92 -36
- package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +8 -1
- package/src/sap/ui/model/odata/v4/Context.js +36 -21
- package/src/sap/ui/model/odata/v4/ODataBinding.js +50 -21
- package/src/sap/ui/model/odata/v4/ODataContextBinding.js +7 -25
- package/src/sap/ui/model/odata/v4/ODataListBinding.js +208 -74
- package/src/sap/ui/model/odata/v4/ODataMetaModel.js +4 -1
- package/src/sap/ui/model/odata/v4/ODataModel.js +4 -3
- package/src/sap/ui/model/odata/v4/ODataParentBinding.js +42 -28
- package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +1 -1
- package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +100 -21
- package/src/sap/ui/model/odata/v4/lib/_AggregationHelper.js +1 -1
- package/src/sap/ui/model/odata/v4/lib/_Cache.js +99 -64
- package/src/sap/ui/model/odata/v4/lib/_Helper.js +75 -2
- package/src/sap/ui/model/odata/v4/lib/_Requestor.js +6 -0
- package/src/sap/ui/model/odata/v4/lib/_V2Requestor.js +3 -0
- package/src/sap/ui/model/resource/ResourceModel.js +1 -1
- package/src/sap/ui/model/type/Boolean.js +1 -1
- package/src/sap/ui/model/type/Currency.js +1 -1
- package/src/sap/ui/model/type/Date.js +15 -1
- package/src/sap/ui/model/type/DateInterval.js +15 -1
- package/src/sap/ui/model/type/DateTime.js +1 -1
- package/src/sap/ui/model/type/DateTimeInterval.js +1 -1
- package/src/sap/ui/model/type/FileSize.js +1 -1
- package/src/sap/ui/model/type/Float.js +1 -1
- package/src/sap/ui/model/type/Integer.js +1 -1
- package/src/sap/ui/model/type/String.js +1 -1
- package/src/sap/ui/model/type/Time.js +1 -1
- package/src/sap/ui/model/type/TimeInterval.js +1 -1
- package/src/sap/ui/model/type/Unit.js +1 -1
- package/src/sap/ui/model/xml/XMLModel.js +1 -1
- package/src/sap/ui/performance/Measurement.js +9 -9
- package/src/sap/ui/performance/trace/Interaction.js +50 -4
- package/src/sap/ui/performance/trace/initTraces.js +20 -14
- package/src/sap/ui/qunit/qunit-coverage-istanbul.js +180 -0
- package/src/sap/ui/qunit/qunit-coverage.js +9 -4
- package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
- package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +1 -1
- package/src/sap/ui/test/Opa.js +54 -21
- package/src/sap/ui/test/Opa5.js +181 -131
- package/src/sap/ui/test/OpaBuilder.js +106 -73
- package/src/sap/ui/test/OpaPlugin.js +27 -28
- package/src/sap/ui/test/PageObjectFactory.js +17 -7
- package/src/sap/ui/test/RecordReplay.js +7 -3
- package/src/sap/ui/test/_ParameterValidator.js +3 -3
- package/src/sap/ui/test/_UsageReport.js +3 -3
- package/src/sap/ui/test/_ValidationParameters.js +8 -10
- package/src/sap/ui/test/actions/Action.js +3 -3
- package/src/sap/ui/test/actions/EnterText.js +3 -2
- package/src/sap/ui/test/actions/Press.js +4 -4
- package/src/sap/ui/test/autowaiter/WaiterBase.js +5 -3
- package/src/sap/ui/test/autowaiter/_autoWaiter.js +6 -3
- package/src/sap/ui/test/autowaiter/_cssAnimationWaiter.js +3 -3
- package/src/sap/ui/test/autowaiter/_cssTransitionWaiter.js +3 -3
- package/src/sap/ui/test/autowaiter/_fetchWaiter.js +73 -0
- package/src/sap/ui/test/autowaiter/_moduleWaiter.js +2 -2
- package/src/sap/ui/test/autowaiter/_promiseWaiter.js +4 -4
- package/src/sap/ui/test/autowaiter/_resourceWaiter.js +2 -2
- package/src/sap/ui/test/autowaiter/_timeoutWaiter.js +4 -4
- package/src/sap/ui/test/generic/TestBase.js +1 -1
- package/src/sap/ui/test/generic/_EnforceSemanticRendering.js +3 -1
- package/src/sap/ui/test/gherkin/GherkinTestGenerator.js +424 -423
- package/src/sap/ui/test/gherkin/StepDefinitions.js +160 -158
- package/src/sap/ui/test/gherkin/dataTableUtils.js +387 -385
- package/src/sap/ui/test/gherkin/opa5TestHarness.js +188 -189
- package/src/sap/ui/test/gherkin/qUnitTestHarness.js +74 -71
- package/src/sap/ui/test/gherkin/simpleGherkinParser.js +195 -193
- package/src/sap/ui/test/launchers/componentLauncher.js +11 -9
- package/src/sap/ui/test/launchers/iFrameLauncher.js +34 -20
- package/src/sap/ui/test/matchers/Descendant.js +1 -1
- package/src/sap/ui/test/matchers/Interactable.js +2 -2
- package/src/sap/ui/test/matchers/LabelFor.js +2 -2
- package/src/sap/ui/test/matchers/MatcherFactory.js +10 -9
- package/src/sap/ui/test/matchers/Properties.js +5 -4
- package/src/sap/ui/test/matchers/Sibling.js +1 -1
- package/src/sap/ui/test/matchers/matchers.js +35 -3
- package/src/sap/ui/test/pipelines/PipelineFactory.js +2 -2
- package/src/sap/ui/test/qunitPause.js +3 -2
- package/src/sap/ui/test/starter/_configureLoader.js +7 -5
- package/src/sap/ui/test/starter/_setupAndStart.js +113 -27
- package/src/sap/ui/test/starter/_utils.js +4 -1
- package/src/sap/ui/util/Mobile.js +8 -1
- package/src/sap/ui/util/Storage.js +1 -1
- package/src/ui5loader-autoconfig.js +661 -49
- package/src/ui5loader.js +18 -5
|
@@ -24,6 +24,7 @@ sap.ui.define([
|
|
|
24
24
|
*/
|
|
25
25
|
var PageObjectFactory = Ui5Object.extend("sap.ui.test.PageObjectFactory");
|
|
26
26
|
|
|
27
|
+
var oPageObjects = {};
|
|
27
28
|
/**
|
|
28
29
|
* Creates a set of page objects, each consisting of actions and assertions, and adds them to
|
|
29
30
|
* the Opa configuration.
|
|
@@ -38,19 +39,32 @@ sap.ui.define([
|
|
|
38
39
|
* @returns {Object<string,Object>} Map of created page objects
|
|
39
40
|
*/
|
|
40
41
|
PageObjectFactory.create = function(mPageDefinitions, Opa5) {
|
|
41
|
-
var mPageObjects = {}
|
|
42
|
+
var mPageObjects = {},
|
|
43
|
+
sNamespace;
|
|
42
44
|
|
|
43
45
|
for (var sPageObjectName in mPageDefinitions) {
|
|
44
46
|
if (mPageDefinitions.hasOwnProperty(sPageObjectName) && isEmptyObject(mPageObjects[sPageObjectName])) {
|
|
47
|
+
sNamespace = mPageDefinitions[sPageObjectName].namespace || "sap.ui.test.opa.pageObject";
|
|
48
|
+
|
|
49
|
+
if (oPageObjects[sNamespace] && !isEmptyObject(oPageObjects[sNamespace][sPageObjectName])) {
|
|
50
|
+
Log.error("Opa5 Page Object namespace clash: You have loaded multiple page objects with the same name '" + sNamespace + "."
|
|
51
|
+
+ sPageObjectName + "'. " + "To prevent override, specify the namespace parameter.");
|
|
52
|
+
}
|
|
45
53
|
|
|
46
54
|
mPageObjects[sPageObjectName] = PageObjectFactory._createPageObject({
|
|
47
55
|
name: sPageObjectName,
|
|
48
56
|
baseClass: mPageDefinitions[sPageObjectName].baseClass || Opa5,
|
|
49
|
-
namespace:
|
|
57
|
+
namespace: sNamespace,
|
|
50
58
|
view: _getViewData(mPageDefinitions[sPageObjectName]),
|
|
51
59
|
actions: mPageDefinitions[sPageObjectName].actions,
|
|
52
60
|
assertions: mPageDefinitions[sPageObjectName].assertions
|
|
53
61
|
});
|
|
62
|
+
|
|
63
|
+
if (!oPageObjects[sNamespace]) {
|
|
64
|
+
oPageObjects[sNamespace] = {};
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
oPageObjects[sNamespace][sPageObjectName] = mPageObjects[sPageObjectName];
|
|
54
68
|
}
|
|
55
69
|
}
|
|
56
70
|
|
|
@@ -99,11 +113,7 @@ sap.ui.define([
|
|
|
99
113
|
// create class name for an operation object
|
|
100
114
|
function _createClassName(sNamespace, sPageObjectName, sOperationType) {
|
|
101
115
|
var sClassName = sNamespace + "." + sPageObjectName + "." + sOperationType;
|
|
102
|
-
|
|
103
|
-
if (oObj){
|
|
104
|
-
Log.error("Opa5 Page Object namespace clash: You have loaded multiple page objects with the same name '" + sClassName + "'. " +
|
|
105
|
-
"To prevent override, specify the namespace parameter.");
|
|
106
|
-
}
|
|
116
|
+
|
|
107
117
|
return sClassName;
|
|
108
118
|
}
|
|
109
119
|
|
|
@@ -150,17 +150,21 @@ sap.ui.define([
|
|
|
150
150
|
* To see the interaction details and options, see {@link sap.ui.test.actions}
|
|
151
151
|
* @param {string} oOptions.enterText Text for the EnterText interaction
|
|
152
152
|
* @param {string} [oOptions.clearTextFirst=true] Clear existing text before interaction
|
|
153
|
+
* @param {boolean} oOptions.pressEnterKey If ENTER key will be entered after the text
|
|
154
|
+
* @param {boolean} oOptions.keepFocus If the input will remain focused after text is entered
|
|
153
155
|
* @returns {Promise<undefined|Error>} Promise to be resolved when the interaction is done or rejected if interaction is not possible
|
|
154
156
|
* @public
|
|
155
157
|
*/
|
|
156
158
|
RecordReplay.interactWithControl = function (oOptions) {
|
|
157
|
-
var sControl = JSON.stringify(oOptions.selector)
|
|
159
|
+
var sControl = JSON.stringify(oOptions.selector),
|
|
160
|
+
oInteraction = oOptions.selector && oOptions.selector.interaction,
|
|
161
|
+
sIdSuffix = (oInteraction && typeof oInteraction === "object") ? oInteraction.idSuffix : "";
|
|
158
162
|
|
|
159
163
|
return new Promise(function (resolve, reject) {
|
|
160
164
|
var oAction;
|
|
161
165
|
switch (oOptions.interactionType) {
|
|
162
|
-
case RecordReplay.InteractionType.Press: oAction = new Press(); break;
|
|
163
|
-
case RecordReplay.InteractionType.EnterText: oAction = new EnterText({text:oOptions.enterText}); break;
|
|
166
|
+
case RecordReplay.InteractionType.Press: oAction = new Press({idSuffix: sIdSuffix}); break;
|
|
167
|
+
case RecordReplay.InteractionType.EnterText: oAction = new EnterText({text:oOptions.enterText, pressEnterKey: oOptions.pressEnterKey, keepFocus: oOptions.keepFocus, idSuffix: sIdSuffix}); break;
|
|
164
168
|
default: reject(new Error("Could not interact with control " + sControl +
|
|
165
169
|
". Unsupported interaction type: " + oOptions.interactionType +
|
|
166
170
|
" . Supported interaction types are: " + Object.keys(RecordReplay.InteractionType).join(", ")));
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
* Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
|
|
5
5
|
*/
|
|
6
6
|
sap.ui.define([
|
|
7
|
-
"sap/
|
|
8
|
-
], function (
|
|
7
|
+
"sap/base/util/isPlainObject"
|
|
8
|
+
], function (isPlainObject) {
|
|
9
9
|
"use strict";
|
|
10
10
|
|
|
11
11
|
/**
|
|
@@ -137,7 +137,7 @@ sap.ui.define([
|
|
|
137
137
|
},
|
|
138
138
|
object: {
|
|
139
139
|
isValid: function (oValue) {
|
|
140
|
-
return
|
|
140
|
+
return isPlainObject(oValue);
|
|
141
141
|
},
|
|
142
142
|
description: "an object"
|
|
143
143
|
},
|
|
@@ -9,7 +9,7 @@ sap.ui.define([
|
|
|
9
9
|
"sap/ui/base/Object",
|
|
10
10
|
"sap/ui/test/_OpaLogger",
|
|
11
11
|
"sap/ui/thirdparty/jquery"
|
|
12
|
-
], function(Ui5Object, _OpaLogger,
|
|
12
|
+
], function(Ui5Object, _OpaLogger, jQuery) {
|
|
13
13
|
"use strict";
|
|
14
14
|
|
|
15
15
|
var DEFAULT_URL = "http://localhost:8090";
|
|
@@ -109,7 +109,7 @@ sap.ui.define([
|
|
|
109
109
|
},
|
|
110
110
|
_postSuiteJson: function (sUrlSuffix, oData) {
|
|
111
111
|
// wait for begin suite request
|
|
112
|
-
var oPromise = this._beginSuitePromise || new
|
|
112
|
+
var oPromise = this._beginSuitePromise || new jQuery.Deferred().resolve().promise();
|
|
113
113
|
return oPromise.done(function () {
|
|
114
114
|
return postJson.call(this, this.baseUrl + this._id + sUrlSuffix, oData);
|
|
115
115
|
}.bind(this));
|
|
@@ -117,7 +117,7 @@ sap.ui.define([
|
|
|
117
117
|
});
|
|
118
118
|
|
|
119
119
|
function postJson(sUrl, oData) {
|
|
120
|
-
return
|
|
120
|
+
return jQuery.ajax({
|
|
121
121
|
url: sUrl,
|
|
122
122
|
type: "XHR_WAITER_IGNORE:POST",
|
|
123
123
|
data: oData,
|
|
@@ -4,9 +4,8 @@
|
|
|
4
4
|
* Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
|
|
5
5
|
*/
|
|
6
6
|
sap.ui.define([
|
|
7
|
-
"sap/ui/thirdparty/jquery",
|
|
8
7
|
"sap/ui/test/matchers/matchers"
|
|
9
|
-
], function (
|
|
8
|
+
], function (matchers) {
|
|
10
9
|
"use strict";
|
|
11
10
|
|
|
12
11
|
// options that are merged from Opa config into Opa waitFor
|
|
@@ -20,14 +19,14 @@ sap.ui.define([
|
|
|
20
19
|
};
|
|
21
20
|
|
|
22
21
|
// all config options that can be used in a generic OPA waitFor statement
|
|
23
|
-
var OPA_WAITFOR =
|
|
22
|
+
var OPA_WAITFOR = Object.assign({
|
|
24
23
|
error: "func",
|
|
25
24
|
check: "func",
|
|
26
25
|
success: "func"
|
|
27
26
|
}, OPA_WAITFOR_CONFIG);
|
|
28
27
|
|
|
29
28
|
// options that are merged from Opa5 config into Opa waitFor
|
|
30
|
-
var OPA5_WAITFOR_CONFIG =
|
|
29
|
+
var OPA5_WAITFOR_CONFIG = Object.assign({
|
|
31
30
|
visible: "bool",
|
|
32
31
|
enabled: "bool",
|
|
33
32
|
editable: "bool",
|
|
@@ -39,7 +38,7 @@ sap.ui.define([
|
|
|
39
38
|
}, OPA_WAITFOR_CONFIG);
|
|
40
39
|
|
|
41
40
|
// the basic config options that can be used in an OPA5 waitFor statement - superset of OPA options + new options for control search
|
|
42
|
-
var OPA5_WAITFOR =
|
|
41
|
+
var OPA5_WAITFOR = Object.assign({
|
|
43
42
|
_stack: "string",
|
|
44
43
|
matchers: "any",
|
|
45
44
|
actions: "any",
|
|
@@ -49,17 +48,16 @@ sap.ui.define([
|
|
|
49
48
|
}, OPA5_WAITFOR_CONFIG, OPA_WAITFOR);
|
|
50
49
|
|
|
51
50
|
// all config options that can be used in an OPA5 waitFor statement - superset of OPA_WAITFOR + all declarative matchers
|
|
52
|
-
var OPA5_WAITFOR_WITH_MATCHERS =
|
|
51
|
+
var OPA5_WAITFOR_WITH_MATCHERS = Object.assign({}, OPA5_WAITFOR, _getDeclarativeMatchers());
|
|
53
52
|
|
|
54
|
-
// all config options that can exist in a basic OPA5 waitFor, when control
|
|
55
|
-
var OPA5_WAITFOR_DECORATED =
|
|
53
|
+
// all config options that can exist in a basic OPA5 waitFor, when control search starts, including any options added during pre-processing
|
|
54
|
+
var OPA5_WAITFOR_DECORATED = Object.assign({
|
|
56
55
|
sOriginalControlType: "string",
|
|
57
56
|
interaction: "any"
|
|
58
57
|
}, OPA5_WAITFOR);
|
|
59
58
|
|
|
60
59
|
function _getDeclarativeMatchers () {
|
|
61
|
-
return Object.keys(
|
|
62
|
-
sMatcher = sMatcher.charAt(0).toLowerCase() + sMatcher.substr(1);
|
|
60
|
+
return Object.keys(matchers).reduce(function (mResult, sMatcher) {
|
|
63
61
|
mResult[sMatcher] = "any";
|
|
64
62
|
return mResult;
|
|
65
63
|
}, {});
|
|
@@ -14,7 +14,7 @@ sap.ui.define([
|
|
|
14
14
|
"sap/ui/test/_OpaLogger",
|
|
15
15
|
"sap/ui/test/_FocusListener"
|
|
16
16
|
],
|
|
17
|
-
function (ManagedObject, QUnitUtils, Opa5, Device,
|
|
17
|
+
function (ManagedObject, QUnitUtils, Opa5, Device, jQuery, _OpaLogger, _FocusListener) {
|
|
18
18
|
"use strict";
|
|
19
19
|
|
|
20
20
|
/**
|
|
@@ -91,7 +91,7 @@ function (ManagedObject, QUnitUtils, Opa5, Device, jQueryDOM, _OpaLogger, _Focus
|
|
|
91
91
|
|
|
92
92
|
if (!$ActionDomRef || !$ActionDomRef.length) {
|
|
93
93
|
// if no adapter is set or no element is found for it -- fallback to control focus dom ref
|
|
94
|
-
$ActionDomRef =
|
|
94
|
+
$ActionDomRef = jQuery(oControl.getFocusDomRef());
|
|
95
95
|
if (!$ActionDomRef.length) {
|
|
96
96
|
$ActionDomRef = oControl.$();
|
|
97
97
|
if (!$ActionDomRef.length) {
|
|
@@ -325,7 +325,7 @@ function (ManagedObject, QUnitUtils, Opa5, Device, jQueryDOM, _OpaLogger, _Focus
|
|
|
325
325
|
},
|
|
326
326
|
|
|
327
327
|
_getEventCoordinates: function (oDomRef, oOptions) {
|
|
328
|
-
var $domRef =
|
|
328
|
+
var $domRef = jQuery(oDomRef);
|
|
329
329
|
var offset = $domRef.offset();
|
|
330
330
|
var mCenterCoordinates = {
|
|
331
331
|
x: offset.left + $domRef.outerWidth() / 2,
|
|
@@ -5,11 +5,12 @@
|
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
sap.ui.define([
|
|
8
|
+
"sap/base/util/extend",
|
|
8
9
|
"sap/ui/base/ManagedObject",
|
|
9
10
|
"sap/ui/test/actions/Action",
|
|
10
11
|
"sap/ui/events/KeyCodes",
|
|
11
12
|
"sap/ui/thirdparty/jquery"
|
|
12
|
-
], function (ManagedObject, Action, KeyCodes,
|
|
13
|
+
], function (extend, ManagedObject, Action, KeyCodes, jQuery) {
|
|
13
14
|
"use strict";
|
|
14
15
|
|
|
15
16
|
/**
|
|
@@ -87,7 +88,7 @@ sap.ui.define([
|
|
|
87
88
|
|
|
88
89
|
init: function () {
|
|
89
90
|
Action.prototype.init.apply(this, arguments);
|
|
90
|
-
this.controlAdapters =
|
|
91
|
+
this.controlAdapters = extend(this.controlAdapters, EnterText.controlAdapters);
|
|
91
92
|
},
|
|
92
93
|
|
|
93
94
|
/**
|
|
@@ -5,9 +5,9 @@
|
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
sap.ui.define([
|
|
8
|
-
"sap/
|
|
9
|
-
"sap/ui/
|
|
10
|
-
], function (
|
|
8
|
+
"sap/base/util/extend",
|
|
9
|
+
"sap/ui/test/actions/Action"
|
|
10
|
+
], function (extend, Action) {
|
|
11
11
|
"use strict";
|
|
12
12
|
|
|
13
13
|
/**
|
|
@@ -86,7 +86,7 @@ sap.ui.define([
|
|
|
86
86
|
|
|
87
87
|
init: function () {
|
|
88
88
|
Action.prototype.init.apply(this, arguments);
|
|
89
|
-
this.controlAdapters =
|
|
89
|
+
this.controlAdapters = extend(this.controlAdapters, Press.controlAdapters);
|
|
90
90
|
},
|
|
91
91
|
|
|
92
92
|
/**
|
|
@@ -5,11 +5,13 @@
|
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
sap.ui.define([
|
|
8
|
+
"sap/base/util/extend",
|
|
9
|
+
"sap/base/util/isEmptyObject",
|
|
8
10
|
"sap/ui/base/Object",
|
|
9
11
|
"sap/ui/test/_OpaLogger",
|
|
10
12
|
"sap/ui/test/_ParameterValidator",
|
|
11
13
|
"sap/ui/thirdparty/jquery"
|
|
12
|
-
], function (UI5Object, _OpaLogger, _ParameterValidator
|
|
14
|
+
], function (extend, isEmptyObject, UI5Object, _OpaLogger, _ParameterValidator) {
|
|
13
15
|
"use strict";
|
|
14
16
|
|
|
15
17
|
var WaiterBase = UI5Object.extend("sap.ui.test.autowaiter.WaiterBase", {
|
|
@@ -29,12 +31,12 @@ sap.ui.define([
|
|
|
29
31
|
return this._mConfig.enabled;
|
|
30
32
|
},
|
|
31
33
|
extendConfig: function (oConfig) {
|
|
32
|
-
if (!
|
|
34
|
+
if (!isEmptyObject(oConfig)) {
|
|
33
35
|
this._oConfigValidator.validate({
|
|
34
36
|
inputToValidate: oConfig,
|
|
35
37
|
validationInfo: this._getValidationInfo()
|
|
36
38
|
});
|
|
37
|
-
|
|
39
|
+
extend(this._mConfig, oConfig);
|
|
38
40
|
}
|
|
39
41
|
},
|
|
40
42
|
_getDefaultConfig: function () {
|
|
@@ -5,10 +5,11 @@
|
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
sap.ui.define([
|
|
8
|
-
"sap/
|
|
8
|
+
"sap/base/util/isEmptyObject",
|
|
9
9
|
"sap/ui/base/Object",
|
|
10
10
|
"sap/ui/test/_OpaLogger",
|
|
11
11
|
"sap/ui/test/autowaiter/_XHRWaiter",
|
|
12
|
+
"sap/ui/test/autowaiter/_fetchWaiter",
|
|
12
13
|
"sap/ui/test/autowaiter/_timeoutWaiter",
|
|
13
14
|
"sap/ui/test/autowaiter/_promiseWaiter",
|
|
14
15
|
"sap/ui/test/autowaiter/_navigationContainerWaiter",
|
|
@@ -19,10 +20,11 @@ sap.ui.define([
|
|
|
19
20
|
"sap/ui/test/autowaiter/_moduleWaiter",
|
|
20
21
|
"sap/ui/test/autowaiter/_resourceWaiter"
|
|
21
22
|
], function(
|
|
22
|
-
|
|
23
|
+
isEmptyObject,
|
|
23
24
|
UI5Object,
|
|
24
25
|
_OpaLogger,
|
|
25
26
|
_XHRWaiter,
|
|
27
|
+
_fetchWaiter,
|
|
26
28
|
_timeoutWaiter,
|
|
27
29
|
_promiseWaiter,
|
|
28
30
|
_navigationContainerWaiter,
|
|
@@ -65,7 +67,7 @@ sap.ui.define([
|
|
|
65
67
|
return result;
|
|
66
68
|
},
|
|
67
69
|
extendConfig: function (oConfig) {
|
|
68
|
-
if (!
|
|
70
|
+
if (!isEmptyObject(oConfig)) {
|
|
69
71
|
aWaiters.forEach(function (mWaiter) {
|
|
70
72
|
if (mWaiter.waiter.extendConfig) {
|
|
71
73
|
mWaiter.waiter.extendConfig(oConfig[mWaiter.name]);
|
|
@@ -108,6 +110,7 @@ sap.ui.define([
|
|
|
108
110
|
var oAutoWaiter = new AutoWaiter();
|
|
109
111
|
var mDefaultWaiters = {
|
|
110
112
|
xhrWaiter: _XHRWaiter,
|
|
113
|
+
fetchWaiter: _fetchWaiter,
|
|
111
114
|
timeoutWaiter: _timeoutWaiter,
|
|
112
115
|
promiseWaiter: _promiseWaiter,
|
|
113
116
|
navigationWaiter: _navigationContainerWaiter,
|
|
@@ -8,7 +8,7 @@ sap.ui.define([
|
|
|
8
8
|
"./WaiterBase",
|
|
9
9
|
"./_utils",
|
|
10
10
|
"sap/ui/thirdparty/jquery"
|
|
11
|
-
], function(WaiterBase, _utils,
|
|
11
|
+
], function(WaiterBase, _utils, jQuery) {
|
|
12
12
|
"use strict";
|
|
13
13
|
|
|
14
14
|
var TIMEOUT = 600;
|
|
@@ -36,11 +36,11 @@ sap.ui.define([
|
|
|
36
36
|
}.bind(this));
|
|
37
37
|
|
|
38
38
|
_utils.onElementAvailable("body", function(oRootDomNode) {
|
|
39
|
-
|
|
39
|
+
jQuery(oRootDomNode).on("webkitAnimationStart animationstart", function(oEvent) {
|
|
40
40
|
this._register(oEvent.target, oEvent.originalEvent.type);
|
|
41
41
|
}.bind(this));
|
|
42
42
|
|
|
43
|
-
|
|
43
|
+
jQuery(oRootDomNode).on("webkitAnimationEnd webkitAnimationCancel animationend animationcancel", function(oEvent) {
|
|
44
44
|
this._deregister(oEvent.target, oEvent.originalEvent.type);
|
|
45
45
|
}.bind(this));
|
|
46
46
|
|
|
@@ -9,7 +9,7 @@ sap.ui.define([
|
|
|
9
9
|
"./_utils",
|
|
10
10
|
"sap/ui/thirdparty/jquery",
|
|
11
11
|
"sap/base/util/isEmptyObject"
|
|
12
|
-
], function(WaiterBase, _utils,
|
|
12
|
+
], function(WaiterBase, _utils, jQuery, isEmptyObject) {
|
|
13
13
|
"use strict";
|
|
14
14
|
|
|
15
15
|
var TIMEOUT = 1000;
|
|
@@ -20,7 +20,7 @@ sap.ui.define([
|
|
|
20
20
|
this._oTrackedTransitions = new Map();
|
|
21
21
|
|
|
22
22
|
_utils.onElementAvailable("body", function(oRootDomNode) {
|
|
23
|
-
|
|
23
|
+
jQuery(oRootDomNode).on("webkitTransitionRun webkitTransitionStart transitionrun transitionstart",
|
|
24
24
|
function(oEvent) {
|
|
25
25
|
this._register({
|
|
26
26
|
element: oEvent.target,
|
|
@@ -29,7 +29,7 @@ sap.ui.define([
|
|
|
29
29
|
});
|
|
30
30
|
}.bind(this));
|
|
31
31
|
|
|
32
|
-
|
|
32
|
+
jQuery(oRootDomNode).on("webkitTransitionEnd webkitTransitionCancel transitionend transitioncancel",
|
|
33
33
|
function(oEvent) {
|
|
34
34
|
this._deregister({
|
|
35
35
|
element: oEvent.target,
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* OpenUI5
|
|
3
|
+
* (c) Copyright 2009-2023 SAP SE or an SAP affiliate company.
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
sap.ui.define([
|
|
8
|
+
"sap/ui/test/autowaiter/_utils",
|
|
9
|
+
"./WaiterBase"
|
|
10
|
+
], function (_utils, WaiterBase) {
|
|
11
|
+
"use strict";
|
|
12
|
+
|
|
13
|
+
var aRequests = [];
|
|
14
|
+
|
|
15
|
+
var fetchWaiter = WaiterBase.extend("sap.ui.test.autowaiter._fetchWaiter", {
|
|
16
|
+
hasPending: function () {
|
|
17
|
+
var bHasPendingRequests = aRequests.length > 0;
|
|
18
|
+
if (bHasPendingRequests) {
|
|
19
|
+
logPendingRequests();
|
|
20
|
+
}
|
|
21
|
+
return bHasPendingRequests;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
var oFetchWaiter = new fetchWaiter();
|
|
25
|
+
|
|
26
|
+
// Preserve original fetch API
|
|
27
|
+
var fnOriginalFetch = window.fetch;
|
|
28
|
+
|
|
29
|
+
// Override original fetch API
|
|
30
|
+
window.fetch = function (resource, options) {
|
|
31
|
+
// Request object or URL
|
|
32
|
+
var bIsObjectRequest = typeof resource === "object",
|
|
33
|
+
oNewPendingFetchInfo = {
|
|
34
|
+
url: bIsObjectRequest ? resource.url : resource,
|
|
35
|
+
method: bIsObjectRequest ? resource.method : options && options.method || "GET"
|
|
36
|
+
},
|
|
37
|
+
oFetchLog = createLogForSingleRequest(oNewPendingFetchInfo);
|
|
38
|
+
|
|
39
|
+
aRequests.push(oNewPendingFetchInfo);
|
|
40
|
+
|
|
41
|
+
oFetchWaiter._oLogger.trace("New pending: " + oFetchLog);
|
|
42
|
+
|
|
43
|
+
var response = fnOriginalFetch(resource, options);
|
|
44
|
+
response.then(function (res) {
|
|
45
|
+
oFetchWaiter._oLogger.trace("Finished: " + oFetchLog);
|
|
46
|
+
aRequests.splice(aRequests.indexOf(oNewPendingFetchInfo), 1);
|
|
47
|
+
})
|
|
48
|
+
.catch(function (err) {
|
|
49
|
+
oFetchWaiter._oLogger.trace("Finished with error: " + oFetchLog);
|
|
50
|
+
aRequests.splice(aRequests.indexOf(oNewPendingFetchInfo), 1);
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
return response;
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
function createLogForSingleRequest (oFetchInfo) {
|
|
57
|
+
var sMessage = "\nFetch: ";
|
|
58
|
+
sMessage += "URL: '" + oFetchInfo.url + "' Method: '" + oFetchInfo.method;
|
|
59
|
+
|
|
60
|
+
return sMessage;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
function logPendingRequests() {
|
|
64
|
+
var sLogMessage = "There are " + (aRequests.length) + " open fetch requests";
|
|
65
|
+
aRequests.forEach(function (oFetch) {
|
|
66
|
+
sLogMessage += createLogForSingleRequest(oFetch);
|
|
67
|
+
});
|
|
68
|
+
|
|
69
|
+
oFetchWaiter._oHasPendingLogger.debug(sLogMessage);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
return oFetchWaiter;
|
|
73
|
+
}, true);
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
sap.ui.define([
|
|
9
9
|
"./WaiterBase",
|
|
10
10
|
"sap/ui/thirdparty/jquery"
|
|
11
|
-
], function (WaiterBase,
|
|
11
|
+
], function (WaiterBase, jQuery) {
|
|
12
12
|
"use strict";
|
|
13
13
|
|
|
14
14
|
var STATE = {
|
|
@@ -59,7 +59,7 @@ sap.ui.define([
|
|
|
59
59
|
},
|
|
60
60
|
hasPending: function () {
|
|
61
61
|
var aPendingModules = this._aModules.filter(function (mModule) {
|
|
62
|
-
if (!
|
|
62
|
+
if (!jQuery(mModule.script).length) {
|
|
63
63
|
this._oLogger.trace("Script with src '" + mModule.src + "' was removed");
|
|
64
64
|
return false;
|
|
65
65
|
}
|
|
@@ -5,11 +5,11 @@
|
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
sap.ui.define([
|
|
8
|
+
"sap/base/util/extend",
|
|
8
9
|
"sap/ui/test/autowaiter/_utils",
|
|
9
|
-
"sap/ui/thirdparty/jquery",
|
|
10
10
|
"sap/ui/test/autowaiter/_timeoutWaiter",
|
|
11
11
|
"./WaiterBase"
|
|
12
|
-
], function (
|
|
12
|
+
], function (extend, _utils, _timeoutWaiter, WaiterBase) {
|
|
13
13
|
"use strict";
|
|
14
14
|
|
|
15
15
|
var aPromises = [];
|
|
@@ -34,12 +34,12 @@ sap.ui.define([
|
|
|
34
34
|
return aPendingPromises.length > 0;
|
|
35
35
|
},
|
|
36
36
|
_getDefaultConfig: function () {
|
|
37
|
-
return
|
|
37
|
+
return extend({
|
|
38
38
|
maxDelay: 1000 // milliseconds; should be at least as big as _timeoutWaiter maxDelay
|
|
39
39
|
}, WaiterBase.prototype._getDefaultConfig.call(this));
|
|
40
40
|
},
|
|
41
41
|
_getValidationInfo: function () {
|
|
42
|
-
return
|
|
42
|
+
return extend({
|
|
43
43
|
maxDelay: "numeric"
|
|
44
44
|
}, WaiterBase.prototype._getValidationInfo.call(this));
|
|
45
45
|
}
|
|
@@ -7,7 +7,7 @@ sap.ui.define([
|
|
|
7
7
|
"./WaiterBase",
|
|
8
8
|
"./_utils",
|
|
9
9
|
"sap/ui/thirdparty/jquery"
|
|
10
|
-
], function (WaiterBase, _utils,
|
|
10
|
+
], function (WaiterBase, _utils, jQuery) {
|
|
11
11
|
"use strict";
|
|
12
12
|
|
|
13
13
|
var STATE = {
|
|
@@ -63,7 +63,7 @@ sap.ui.define([
|
|
|
63
63
|
}
|
|
64
64
|
}.bind(this));
|
|
65
65
|
var aPendingResources = this._aResources.filter(function (mResource) {
|
|
66
|
-
if (!
|
|
66
|
+
if (!jQuery(mResource.element).length) {
|
|
67
67
|
this._oLogger.trace("Image with src '" + mResource.src + "' was removed");
|
|
68
68
|
return false;
|
|
69
69
|
}
|
|
@@ -5,10 +5,10 @@
|
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
sap.ui.define([
|
|
8
|
+
"sap/base/util/extend",
|
|
8
9
|
"sap/ui/test/autowaiter/_utils",
|
|
9
|
-
"sap/ui/thirdparty/jquery",
|
|
10
10
|
"./WaiterBase"
|
|
11
|
-
], function(
|
|
11
|
+
], function(extend, _utils, WaiterBase) {
|
|
12
12
|
"use strict";
|
|
13
13
|
|
|
14
14
|
var mTimeouts = {};
|
|
@@ -35,14 +35,14 @@ sap.ui.define([
|
|
|
35
35
|
return bHasBlockingTimeouts;
|
|
36
36
|
},
|
|
37
37
|
_getDefaultConfig: function () {
|
|
38
|
-
return
|
|
38
|
+
return extend({
|
|
39
39
|
maxDepth: 1, // count
|
|
40
40
|
maxDelay: 1000, // milliseconds
|
|
41
41
|
minDelay: 10 // milliseconds
|
|
42
42
|
}, WaiterBase.prototype._getDefaultConfig.call(this));
|
|
43
43
|
},
|
|
44
44
|
_getValidationInfo: function () {
|
|
45
|
-
return
|
|
45
|
+
return extend({
|
|
46
46
|
maxDepth: "numeric",
|
|
47
47
|
maxDelay: "numeric",
|
|
48
48
|
minDelay: "numeric"
|
|
@@ -8,6 +8,8 @@
|
|
|
8
8
|
sap.ui.define(["sap/ui/core/Lib"], function(Library) {
|
|
9
9
|
"use strict";
|
|
10
10
|
|
|
11
|
+
var Object_hasOwn = Function.prototype.call.bind(Object.prototype.hasOwnProperty);
|
|
12
|
+
|
|
11
13
|
/**
|
|
12
14
|
* @namespace
|
|
13
15
|
* @private
|
|
@@ -45,7 +47,7 @@ sap.ui.define(["sap/ui/core/Lib"], function(Library) {
|
|
|
45
47
|
var oRenderer = ControlClass.getMetadata().getRenderer();
|
|
46
48
|
|
|
47
49
|
if (oRenderer) {
|
|
48
|
-
oInfo.version =
|
|
50
|
+
oInfo.version = Object_hasOwn(oRenderer, "apiVersion") ? oRenderer.apiVersion : 1;
|
|
49
51
|
|
|
50
52
|
if (aExcludes.includes(sClass)) {
|
|
51
53
|
if (oInfo.version == 1) {
|