@openui5/sap.ui.core 1.97.1 → 1.100.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/.eslintrc.json +92 -2
- package/.reuse/dep5 +25 -30
- package/THIRDPARTY.txt +15 -22
- package/package.json +1 -1
- package/src/jquery.sap.global.js +6 -3
- package/src/jquery.sap.mobile.js +29 -19
- package/src/jquery.sap.properties.js +1 -1
- package/src/jquery.sap.resources.js +1 -1
- package/src/jquery.sap.script.js +1 -1
- package/src/jquery.sap.storage.js +3 -3
- package/src/sap/base/Log.js +1 -1
- package/src/sap/base/strings/whitespaceReplacer.js +1 -1
- package/src/sap/base/util/LoaderExtensions.js +1 -10
- package/src/sap/base/util/UriParameters.js +2 -2
- package/src/sap/base/util/restricted/_CancelablePromise.js +1 -1
- package/src/sap/base/util/restricted/_castArray.js +1 -1
- package/src/sap/base/util/restricted/_compact.js +1 -1
- package/src/sap/base/util/restricted/_curry.js +1 -1
- package/src/sap/base/util/restricted/_debounce.js +1 -1
- package/src/sap/base/util/restricted/_difference.js +1 -1
- package/src/sap/base/util/restricted/_differenceBy.js +1 -1
- package/src/sap/base/util/restricted/_differenceWith.js +1 -1
- package/src/sap/base/util/restricted/_flatMap.js +1 -1
- package/src/sap/base/util/restricted/_flatMapDeep.js +1 -1
- package/src/sap/base/util/restricted/_flatMapDepth.js +1 -1
- package/src/sap/base/util/restricted/_flatten.js +1 -1
- package/src/sap/base/util/restricted/_flattenDeep.js +1 -1
- package/src/sap/base/util/restricted/_flattenDepth.js +1 -1
- package/src/sap/base/util/restricted/_intersection.js +1 -1
- package/src/sap/base/util/restricted/_intersectionBy.js +1 -1
- package/src/sap/base/util/restricted/_intersectionWith.js +1 -1
- package/src/sap/base/util/restricted/_isEqual.js +1 -1
- package/src/sap/base/util/restricted/_isEqualWith.js +1 -1
- package/src/sap/base/util/restricted/_isNil.js +1 -1
- package/src/sap/base/util/restricted/_max.js +1 -1
- package/src/sap/base/util/restricted/_merge.js +1 -1
- package/src/sap/base/util/restricted/_mergeWith.js +1 -1
- package/src/sap/base/util/restricted/_min.js +1 -1
- package/src/sap/base/util/restricted/_omit.js +1 -1
- package/src/sap/base/util/restricted/_pick.js +1 -1
- package/src/sap/base/util/restricted/_pickBy.js +1 -1
- package/src/sap/base/util/restricted/_throttle.js +1 -1
- package/src/sap/base/util/restricted/_toArray.js +1 -1
- package/src/sap/base/util/restricted/_union.js +1 -1
- package/src/sap/base/util/restricted/_unionBy.js +1 -1
- package/src/sap/base/util/restricted/_unionWith.js +1 -1
- package/src/sap/base/util/restricted/_uniq.js +1 -1
- package/src/sap/base/util/restricted/_uniqBy.js +1 -1
- package/src/sap/base/util/restricted/_uniqWith.js +1 -1
- package/src/sap/base/util/restricted/_without.js +1 -1
- package/src/sap/base/util/restricted/_xor.js +1 -1
- package/src/sap/base/util/restricted/_xorBy.js +1 -1
- package/src/sap/base/util/restricted/_xorWith.js +1 -1
- package/src/sap/base/util/restricted/_zipObject.js +1 -1
- package/src/sap/base/util/restricted/_zipObjectDeep.js +1 -1
- package/src/sap/ui/Device.js +80 -168
- package/src/sap/ui/Global.js +4 -4
- package/src/sap/ui/VersionInfo.js +13 -10
- package/src/sap/ui/base/BindingParser.js +34 -7
- 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 +1 -1
- package/src/sap/ui/base/Interface.js +1 -1
- package/src/sap/ui/base/ManagedObject.js +48 -27
- package/src/sap/ui/base/ManagedObjectMetadata.js +1 -1
- package/src/sap/ui/base/ManagedObjectObserver.js +2 -0
- package/src/sap/ui/base/Metadata.js +1 -1
- package/src/sap/ui/base/Object.js +1 -1
- package/src/sap/ui/base/ObjectPool.js +1 -1
- package/src/sap/ui/core/.library +2 -2
- package/src/sap/ui/core/BusyIndicator.js +1 -1
- package/src/sap/ui/core/BusyIndicatorUtils.js +1 -1
- package/src/sap/ui/core/Component.js +3 -3
- package/src/sap/ui/core/ComponentContainer.js +1 -1
- package/src/sap/ui/core/ComponentMetadata.js +2 -2
- package/src/sap/ui/core/ComponentSupport.js +1 -1
- package/src/sap/ui/core/Configuration.js +82 -15
- package/src/sap/ui/core/Control.js +3 -2
- package/src/sap/ui/core/Core.js +5 -6
- package/src/sap/ui/core/CustomData.js +1 -1
- package/src/sap/ui/core/DeclarativeSupport.js +1 -1
- package/src/sap/ui/core/Element.js +5 -7
- package/src/sap/ui/core/ElementMetadata.js +1 -1
- package/src/sap/ui/core/EnabledPropagator.js +1 -1
- package/src/sap/ui/core/EventBus.js +1 -1
- package/src/sap/ui/core/ExtensionPoint.js +1 -1
- package/src/sap/ui/core/FocusHandler.js +1 -1
- package/src/sap/ui/core/Fragment.js +1 -1
- package/src/sap/ui/core/HTML.js +1 -1
- package/src/sap/ui/core/HTMLRenderer.js +1 -1
- package/src/sap/ui/core/History.js +1 -1
- package/src/sap/ui/core/Icon.js +18 -5
- package/src/sap/ui/core/IconRenderer.js +1 -1
- package/src/sap/ui/core/IndicationColorSupport.js +1 -1
- package/src/sap/ui/core/IntervalTrigger.js +1 -1
- package/src/sap/ui/core/InvisibleMessage.js +1 -1
- package/src/sap/ui/core/InvisibleRenderer.js +1 -1
- package/src/sap/ui/core/InvisibleText.js +1 -1
- package/src/sap/ui/core/Item.js +1 -1
- package/src/sap/ui/core/LabelEnablement.js +9 -2
- package/src/sap/ui/core/LayoutData.js +1 -1
- package/src/sap/ui/core/ListItem.js +1 -1
- package/src/sap/ui/core/LocalBusyIndicator.js +1 -1
- package/src/sap/ui/core/LocalBusyIndicatorRenderer.js +2 -2
- package/src/sap/ui/core/LocalBusyIndicatorSupport.js +1 -1
- package/src/sap/ui/core/Locale.js +1 -1
- package/src/sap/ui/core/LocaleData.js +60 -6
- package/src/sap/ui/core/Manifest.js +1 -1
- package/src/sap/ui/core/Message.js +1 -1
- package/src/sap/ui/core/Patcher.js +3 -3
- package/src/sap/ui/core/Placeholder.js +28 -28
- package/src/sap/ui/core/Popup.js +12 -9
- package/src/sap/ui/core/RenderManager.js +1 -1
- package/src/sap/ui/core/Renderer.js +1 -1
- package/src/sap/ui/core/ResizeHandler.js +1 -1
- package/src/sap/ui/core/ScrollBar.js +1 -1
- package/src/sap/ui/core/ScrollBarRenderer.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 +2 -2
- package/src/sap/ui/core/UIArea.js +1 -1
- package/src/sap/ui/core/UIComponent.js +1 -1
- package/src/sap/ui/core/UIComponentMetadata.js +1 -1
- package/src/sap/ui/core/ValueStateSupport.js +1 -1
- package/src/sap/ui/core/VariantLayoutData.js +1 -1
- package/src/sap/ui/core/XMLComposite.js +1 -1
- package/src/sap/ui/core/XMLCompositeMetadata.js +1 -1
- package/src/sap/ui/core/XMLTemplateProcessor.js +7 -6
- package/src/sap/ui/core/_IconRegistry.js +13 -3
- package/src/sap/ui/core/cache/CacheManager.js +1 -1
- package/src/sap/ui/core/cache/LRUPersistentCache.js +2 -1
- package/src/sap/ui/core/cldr/en_AU.json +1 -1
- package/src/sap/ui/core/date/Buddhist.js +3 -3
- package/src/sap/ui/core/date/Japanese.js +4 -4
- package/src/sap/ui/core/date/UniversalDate.js +10 -0
- package/src/sap/ui/core/date/UniversalDateUtils.js +175 -5
- package/src/sap/ui/core/delegate/ItemNavigation.js +1 -1
- package/src/sap/ui/core/delegate/ScrollEnablement.js +9 -6
- package/src/sap/ui/core/dnd/DragAndDrop.js +21 -18
- 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 +3 -3
- package/src/sap/ui/core/format/DateFormat.js +654 -202
- package/src/sap/ui/core/format/DateFormatTimezoneDisplay.js +44 -0
- package/src/sap/ui/core/format/ListFormat.js +2 -2
- package/src/sap/ui/core/format/NumberFormat.js +502 -216
- package/src/sap/ui/core/format/TimezoneUtil.js +248 -0
- package/src/sap/ui/core/hyphenation/Hyphenation.js +1 -1
- package/src/sap/ui/core/library.js +126 -53
- 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/MessageMixin.js +2 -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 +1 -0
- package/src/sap/ui/core/messagebundle_bg.properties +6 -5
- package/src/sap/ui/core/messagebundle_ca.properties +1 -0
- package/src/sap/ui/core/messagebundle_cs.properties +1 -0
- package/src/sap/ui/core/messagebundle_cy.properties +1 -0
- package/src/sap/ui/core/messagebundle_da.properties +1 -0
- package/src/sap/ui/core/messagebundle_de.properties +2 -1
- package/src/sap/ui/core/messagebundle_el.properties +1 -0
- package/src/sap/ui/core/messagebundle_en.properties +1 -0
- package/src/sap/ui/core/messagebundle_en_GB.properties +1 -0
- 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_en_US_saptrc.properties +1 -0
- package/src/sap/ui/core/messagebundle_es.properties +1 -0
- package/src/sap/ui/core/messagebundle_es_MX.properties +1 -0
- package/src/sap/ui/core/messagebundle_et.properties +1 -0
- package/src/sap/ui/core/messagebundle_fi.properties +1 -0
- package/src/sap/ui/core/messagebundle_fr.properties +1 -0
- package/src/sap/ui/core/messagebundle_fr_CA.properties +1 -0
- package/src/sap/ui/core/messagebundle_hi.properties +1 -0
- package/src/sap/ui/core/messagebundle_hr.properties +1 -0
- package/src/sap/ui/core/messagebundle_hu.properties +1 -0
- package/src/sap/ui/core/messagebundle_id.properties +3 -2
- package/src/sap/ui/core/messagebundle_it.properties +2 -1
- package/src/sap/ui/core/messagebundle_iw.properties +1 -0
- package/src/sap/ui/core/messagebundle_ja.properties +1 -0
- package/src/sap/ui/core/messagebundle_kk.properties +1 -0
- package/src/sap/ui/core/messagebundle_ko.properties +2 -1
- package/src/sap/ui/core/messagebundle_lt.properties +1 -0
- package/src/sap/ui/core/messagebundle_lv.properties +2 -1
- package/src/sap/ui/core/messagebundle_ms.properties +1 -0
- package/src/sap/ui/core/messagebundle_nl.properties +1 -0
- package/src/sap/ui/core/messagebundle_no.properties +5 -4
- package/src/sap/ui/core/messagebundle_pl.properties +1 -0
- package/src/sap/ui/core/messagebundle_pt.properties +1 -0
- package/src/sap/ui/core/messagebundle_pt_PT.properties +1 -0
- package/src/sap/ui/core/messagebundle_ro.properties +1 -0
- package/src/sap/ui/core/messagebundle_ru.properties +1 -0
- package/src/sap/ui/core/messagebundle_sh.properties +1 -0
- package/src/sap/ui/core/messagebundle_sk.properties +1 -0
- package/src/sap/ui/core/messagebundle_sl.properties +1 -0
- package/src/sap/ui/core/messagebundle_sv.properties +1 -0
- package/src/sap/ui/core/messagebundle_th.properties +1 -0
- package/src/sap/ui/core/messagebundle_tr.properties +1 -0
- package/src/sap/ui/core/messagebundle_uk.properties +1 -0
- package/src/sap/ui/core/messagebundle_vi.properties +1 -0
- package/src/sap/ui/core/messagebundle_zh_CN.properties +1 -0
- package/src/sap/ui/core/messagebundle_zh_TW.properties +1 -0
- package/src/sap/ui/core/mvc/Controller.js +1 -1
- package/src/sap/ui/core/mvc/ControllerExtensionProvider.js +1 -1
- package/src/sap/ui/core/mvc/HTMLView.js +1 -1
- package/src/sap/ui/core/mvc/HTMLViewRenderer.js +1 -1
- package/src/sap/ui/core/mvc/JSONView.js +2 -1
- package/src/sap/ui/core/mvc/JSONViewRenderer.js +1 -1
- package/src/sap/ui/core/mvc/JSView.js +1 -1
- package/src/sap/ui/core/mvc/JSViewRenderer.js +1 -1
- package/src/sap/ui/core/mvc/TemplateView.js +1 -1
- package/src/sap/ui/core/mvc/TemplateViewRenderer.js +1 -1
- package/src/sap/ui/core/mvc/View.js +2 -1
- package/src/sap/ui/core/mvc/ViewRenderer.js +1 -1
- package/src/sap/ui/core/mvc/XMLView.js +24 -3
- 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 +6 -6
- package/src/sap/ui/core/routing/Router.js +4 -3
- package/src/sap/ui/core/routing/Targets.js +17 -13
- package/src/sap/ui/core/rules/Misc.support.js +8 -3
- package/src/sap/ui/core/rules/Model.support.js +95 -8
- 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 +3 -3
- package/src/sap/ui/core/support/plugins/ControlTree.js +1 -1
- package/src/sap/ui/core/support/plugins/Interaction.js +1 -1
- package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -1
- package/src/sap/ui/core/support/plugins/Performance.js +1 -1
- package/src/sap/ui/core/support/plugins/Selector.js +1 -1
- package/src/sap/ui/core/support/plugins/TechInfo.js +1 -1
- package/src/sap/ui/core/support/plugins/Trace.js +1 -1
- package/src/sap/ui/core/support/plugins/ViewInfo.js +1 -1
- package/src/sap/ui/core/support/techinfo/TechnicalInfo.js +1 -5
- package/src/sap/ui/core/themes/base/CommandShortcutHints.less +1 -1
- package/src/sap/ui/core/themes/base/base.less +1108 -35
- package/src/sap/ui/core/themes/base/fonts/SAP-icons.woff2 +0 -0
- package/src/sap/ui/core/themes/base/global.less +158 -4
- package/src/sap/ui/core/themes/base/parameterClasses.less +21 -21
- package/src/sap/ui/core/themes/sap_hcb/global.less +157 -2
- package/src/sap/ui/core/theming/Parameters.js +22 -142
- package/src/sap/ui/core/theming/ThemeHelper.js +26 -37
- 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/DraftEnabledMockServer.js +21 -16
- 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 +157 -57
- package/src/sap/ui/core/util/PasteHelper.js +5 -5
- package/src/sap/ui/core/util/XMLPreprocessor.js +17 -4
- package/src/sap/ui/core/util/reflection/BaseTreeModifier.js +4 -0
- package/src/sap/ui/core/util/reflection/JsControlTreeModifier.js +26 -16
- package/src/sap/ui/core/util/reflection/XmlTreeModifier.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/LogViewer.js +2 -2
- package/src/sap/ui/debug/PropertyList.js +1 -1
- package/src/sap/ui/dom/includeStylesheet.js +8 -3
- package/src/sap/ui/events/jquery/EventExtension.js +1 -1
- package/src/sap/ui/events/jquery/EventSimulation.js +3 -13
- package/src/sap/ui/model/Binding.js +4 -3
- package/src/sap/ui/model/ClientModel.js +1 -1
- package/src/sap/ui/model/ClientTreeBinding.js +1 -1
- package/src/sap/ui/model/CompositeBinding.js +4 -1
- package/src/sap/ui/model/CompositeDataState.js +26 -4
- package/src/sap/ui/model/CompositeType.js +13 -1
- package/src/sap/ui/model/ContextBinding.js +1 -1
- package/src/sap/ui/model/DataState.js +27 -6
- package/src/sap/ui/model/ListBinding.js +2 -2
- package/src/sap/ui/model/MetaModel.js +2 -3
- package/src/sap/ui/model/Model.js +2 -2
- package/src/sap/ui/model/SelectionModel.js +1 -1
- package/src/sap/ui/model/SimpleType.js +1 -1
- package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
- package/src/sap/ui/model/Type.js +1 -1
- package/src/sap/ui/model/_Helper.js +22 -0
- package/src/sap/ui/model/analytics/AnalyticalBinding.js +68 -42
- package/src/sap/ui/model/analytics/ODataModelAdapter.js +2 -15
- package/src/sap/ui/model/base/ManagedObjectModel.js +9 -7
- package/src/sap/ui/model/json/JSONListBinding.js +1 -1
- package/src/sap/ui/model/json/JSONModel.js +15 -8
- package/src/sap/ui/model/json/JSONPropertyBinding.js +1 -1
- package/src/sap/ui/model/message/MessageListBinding.js +1 -1
- package/src/sap/ui/model/message/MessageModel.js +1 -1
- package/src/sap/ui/model/message/MessagePropertyBinding.js +1 -1
- package/src/sap/ui/model/odata/ODataAnnotations.js +1 -1
- package/src/sap/ui/model/odata/ODataListBinding.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 +3 -3
- package/src/sap/ui/model/odata/ODataModel.js +2 -2
- package/src/sap/ui/model/odata/ODataPropertyBinding.js +3 -1
- package/src/sap/ui/model/odata/ODataTreeBinding.js +1 -1
- package/src/sap/ui/model/odata/ODataTreeBindingFlat.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 +1 -1
- package/src/sap/ui/model/odata/type/Byte.js +1 -1
- package/src/sap/ui/model/odata/type/Currency.js +1 -1
- package/src/sap/ui/model/odata/type/Date.js +1 -1
- package/src/sap/ui/model/odata/type/DateTime.js +1 -1
- package/src/sap/ui/model/odata/type/DateTimeBase.js +1 -1
- package/src/sap/ui/model/odata/type/DateTimeOffset.js +1 -1
- package/src/sap/ui/model/odata/type/DateTimeWithTimezone.js +346 -0
- package/src/sap/ui/model/odata/type/Decimal.js +1 -1
- package/src/sap/ui/model/odata/type/Double.js +1 -1
- package/src/sap/ui/model/odata/type/Guid.js +1 -1
- package/src/sap/ui/model/odata/type/Int.js +1 -1
- package/src/sap/ui/model/odata/type/Int16.js +1 -1
- package/src/sap/ui/model/odata/type/Int32.js +1 -1
- package/src/sap/ui/model/odata/type/Int64.js +1 -1
- package/src/sap/ui/model/odata/type/ODataType.js +1 -1
- package/src/sap/ui/model/odata/type/Raw.js +1 -1
- package/src/sap/ui/model/odata/type/SByte.js +1 -1
- package/src/sap/ui/model/odata/type/Single.js +1 -1
- package/src/sap/ui/model/odata/type/Stream.js +1 -1
- package/src/sap/ui/model/odata/type/String.js +1 -1
- package/src/sap/ui/model/odata/type/Time.js +1 -1
- package/src/sap/ui/model/odata/type/TimeOfDay.js +1 -1
- package/src/sap/ui/model/odata/type/Unit.js +1 -1
- package/src/sap/ui/model/odata/type/UnitMixin.js +1 -1
- package/src/sap/ui/model/odata/v2/Context.js +62 -5
- package/src/sap/ui/model/odata/v2/ODataAnnotations.js +1 -1
- package/src/sap/ui/model/odata/v2/ODataContextBinding.js +8 -4
- package/src/sap/ui/model/odata/v2/ODataListBinding.js +324 -112
- package/src/sap/ui/model/odata/v2/ODataModel.js +324 -94
- package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +3 -4
- package/src/sap/ui/model/odata/v2/_CreatedContextsCache.js +65 -5
- package/src/sap/ui/model/odata/v4/AnnotationHelper.js +21 -22
- package/src/sap/ui/model/odata/v4/Context.js +224 -101
- package/src/sap/ui/model/odata/v4/ODataBinding.js +99 -55
- package/src/sap/ui/model/odata/v4/ODataContextBinding.js +272 -210
- package/src/sap/ui/model/odata/v4/ODataListBinding.js +557 -258
- package/src/sap/ui/model/odata/v4/ODataMetaModel.js +131 -100
- package/src/sap/ui/model/odata/v4/ODataModel.js +503 -260
- package/src/sap/ui/model/odata/v4/ODataParentBinding.js +106 -138
- package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +87 -80
- package/src/sap/ui/model/odata/v4/ODataUtils.js +5 -5
- package/src/sap/ui/model/odata/v4/SubmitMode.js +0 -1
- package/src/sap/ui/model/odata/v4/ValueListType.js +0 -1
- package/src/sap/ui/model/odata/v4/_AnnotationHelperExpression.js +20 -20
- package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +3 -5
- package/src/sap/ui/model/odata/v4/lib/_AggregationHelper.js +5 -4
- package/src/sap/ui/model/odata/v4/lib/_Batch.js +21 -20
- package/src/sap/ui/model/odata/v4/lib/_Cache.js +322 -127
- package/src/sap/ui/model/odata/v4/lib/_GroupLock.js +5 -1
- package/src/sap/ui/model/odata/v4/lib/_Helper.js +28 -21
- package/src/sap/ui/model/odata/v4/lib/_MetadataConverter.js +62 -61
- package/src/sap/ui/model/odata/v4/lib/_MetadataRequestor.js +1 -1
- package/src/sap/ui/model/odata/v4/lib/_Parser.js +52 -43
- package/src/sap/ui/model/odata/v4/lib/_Requestor.js +216 -51
- package/src/sap/ui/model/odata/v4/lib/_V2MetadataConverter.js +147 -147
- package/src/sap/ui/model/odata/v4/lib/_V2Requestor.js +14 -13
- package/src/sap/ui/model/odata/v4/lib/_V4MetadataConverter.js +66 -67
- package/src/sap/ui/model/resource/ResourceModel.js +1 -1
- package/src/sap/ui/model/resource/ResourcePropertyBinding.js +1 -1
- package/src/sap/ui/model/type/Boolean.js +1 -1
- package/src/sap/ui/model/type/Currency.js +1 -1
- package/src/sap/ui/model/type/Date.js +1 -1
- package/src/sap/ui/model/type/DateInterval.js +1 -1
- package/src/sap/ui/model/type/DateTime.js +1 -1
- package/src/sap/ui/model/type/DateTimeInterval.js +1 -1
- package/src/sap/ui/model/type/FileSize.js +1 -1
- package/src/sap/ui/model/type/Float.js +1 -1
- package/src/sap/ui/model/type/Integer.js +1 -1
- package/src/sap/ui/model/type/String.js +1 -1
- package/src/sap/ui/model/type/Time.js +1 -1
- package/src/sap/ui/model/type/TimeInterval.js +1 -1
- package/src/sap/ui/model/type/Unit.js +1 -1
- package/src/sap/ui/model/xml/XMLListBinding.js +1 -1
- package/src/sap/ui/model/xml/XMLModel.js +1 -1
- package/src/sap/ui/model/xml/XMLPropertyBinding.js +1 -1
- package/src/sap/ui/performance/trace/FESR.js +1 -1
- package/src/sap/ui/performance/trace/FESRHelper.js +72 -0
- package/src/sap/ui/performance/trace/Interaction.js +6 -2
- package/src/sap/ui/performance/trace/Passport.js +3 -3
- package/src/sap/ui/qunit/qunit-2-css.js +4 -4
- package/src/sap/ui/qunit/qunit-css.js +4 -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/BlanketReporter.js +1 -1
- package/src/sap/ui/test/BranchTracking.js +1 -0
- package/src/sap/ui/test/Opa5.js +1 -1
- package/src/sap/ui/test/OpaBuilder.js +7 -7
- package/src/sap/ui/test/TestUtils.js +12 -2
- package/src/sap/ui/test/_LogCollector.js +1 -1
- package/src/sap/ui/test/_UsageReport.js +1 -1
- package/src/sap/ui/test/actions/Action.js +4 -2
- package/src/sap/ui/test/actions/Press.js +51 -2
- package/src/sap/ui/test/autowaiter/_XHRWaiter.js +1 -1
- package/src/sap/ui/test/generic/GenericTestCollection.js +176 -0
- package/src/sap/ui/test/generic/TestBase.js +151 -0
- package/src/sap/ui/test/generic/Utils.js +284 -0
- package/src/sap/ui/test/selectors/_ControlSelectorGenerator.js +9 -8
- package/src/sap/ui/test/selectors/_ControlSelectorValidator.js +1 -1
- package/src/sap/ui/test/starter/_setupAndStart.js +4 -0
- package/src/sap/ui/test/starter/createSuite.js +3 -3
- package/src/sap/ui/thirdparty/IPv6.js +1 -1
- package/src/sap/ui/thirdparty/SecondLevelDomains.js +1 -1
- package/src/sap/ui/thirdparty/URI.js +7 -3
- package/src/sap/ui/thirdparty/URITemplate.js +1 -1
- package/src/sap/ui/thirdparty/jquery-mobile-custom.js +3 -6
- package/src/sap/ui/thirdparty/jqueryui/jquery-ui-datepicker.js +143 -3
- package/src/sap/ui/thirdparty/jqueryui/jquery-ui-position.js +8 -1
- package/src/sap/ui/thirdparty/jszip.js +17 -7
- package/src/sap/ui/thirdparty/mobify-carousel.js +1 -1
- package/src/sap/ui/util/Mobile.js +17 -0
- package/src/sap/ui/util/Storage.js +1 -1
- package/src/sap/ui/util/XMLHelper.js +53 -30
- package/src/ui5loader.js +4 -4
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* OpenUI5
|
|
3
|
+
* (c) Copyright 2009-2022 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([], function () {
|
|
8
|
+
"use strict";
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* FESRHelper API
|
|
12
|
+
* Provides helper functionality for FESR and consumers of FESR
|
|
13
|
+
*
|
|
14
|
+
* @namespace
|
|
15
|
+
* @since 1.100
|
|
16
|
+
* @alias module:sap/ui/performance/trace/FESRHelper
|
|
17
|
+
* @static
|
|
18
|
+
* @public
|
|
19
|
+
*/
|
|
20
|
+
var FESRHelper = {
|
|
21
|
+
/**
|
|
22
|
+
* This namespace is only used inside the FESRHelper.
|
|
23
|
+
*
|
|
24
|
+
* @const
|
|
25
|
+
* @private
|
|
26
|
+
*/
|
|
27
|
+
FESR_NAMESPACE: "http://schemas.sap.com/sapui5/extension/sap.ui.core.FESR/1",
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Add semantic stepname for an event of a given element used for FESR.
|
|
31
|
+
*
|
|
32
|
+
* @param {sap.ui.core.Element} oElement The element the semantic stepname should be applied to
|
|
33
|
+
* @param {string} sEventId The event ID the semantic stepname is valid for
|
|
34
|
+
* @param {string} sStepname The semantic stepname
|
|
35
|
+
*
|
|
36
|
+
* @public
|
|
37
|
+
* @since 1.100
|
|
38
|
+
*/
|
|
39
|
+
setSemanticStepname: function (oElement, sEventId, sStepname) {
|
|
40
|
+
var oCustomData = oElement.data("sap-ui-custom-settings");
|
|
41
|
+
if (oCustomData === null) {
|
|
42
|
+
oCustomData = {};
|
|
43
|
+
}
|
|
44
|
+
if (!oCustomData[this.FESR_NAMESPACE]) {
|
|
45
|
+
oCustomData[this.FESR_NAMESPACE] = {};
|
|
46
|
+
}
|
|
47
|
+
oCustomData[this.FESR_NAMESPACE][sEventId] = sStepname;
|
|
48
|
+
oElement.data("sap-ui-custom-settings", oCustomData);
|
|
49
|
+
},
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Get semantic stepname for an event of a given element used for FESR.
|
|
54
|
+
*
|
|
55
|
+
* @param {sap.ui.core.Element} oElement The element conatining the semantic stepname
|
|
56
|
+
* @param {string} sEventId The event ID of the semantic stepname
|
|
57
|
+
* @returns {string} The semantic stepname for the given event ID
|
|
58
|
+
*
|
|
59
|
+
* @public
|
|
60
|
+
* @since 1.100
|
|
61
|
+
*/
|
|
62
|
+
getSemanticStepname: function (oElement, sEventId) {
|
|
63
|
+
var oCustomFesrData = oElement && oElement.data("sap-ui-custom-settings") && oElement.data("sap-ui-custom-settings")[this.FESR_NAMESPACE];
|
|
64
|
+
if (!oCustomFesrData) {
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
return oCustomFesrData[sEventId];
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
return FESRHelper;
|
|
72
|
+
});
|
|
@@ -8,12 +8,13 @@
|
|
|
8
8
|
sap.ui.define([
|
|
9
9
|
"sap/ui/performance/Measurement",
|
|
10
10
|
"sap/ui/performance/XHRInterceptor",
|
|
11
|
+
"sap/ui/performance/trace/FESRHelper",
|
|
11
12
|
"sap/base/util/LoaderExtensions",
|
|
12
13
|
"sap/base/util/now",
|
|
13
14
|
"sap/base/util/uid",
|
|
14
15
|
"sap/base/Log",
|
|
15
16
|
"sap/ui/thirdparty/URI"
|
|
16
|
-
], function(Measurement, XHRInterceptor, LoaderExtensions, now, uid, Log, URI) {
|
|
17
|
+
], function(Measurement, XHRInterceptor, FESRHelper, LoaderExtensions, now, uid, Log, URI) {
|
|
17
18
|
|
|
18
19
|
"use strict";
|
|
19
20
|
|
|
@@ -477,6 +478,7 @@ sap.ui.define([
|
|
|
477
478
|
oPendingInteraction.start = iTime;
|
|
478
479
|
if (oSrcElement && oSrcElement.getId) {
|
|
479
480
|
oPendingInteraction.trigger = oSrcElement.getId();
|
|
481
|
+
oPendingInteraction.semanticStepName = FESRHelper.getSemanticStepname(oSrcElement, sType);
|
|
480
482
|
}
|
|
481
483
|
/*eslint-disable no-console */
|
|
482
484
|
if (Log.isLoggable(null, "sap.ui.Performance")) {
|
|
@@ -626,13 +628,15 @@ sap.ui.define([
|
|
|
626
628
|
var elem = oBrowserElement;
|
|
627
629
|
if (elem && oElement.getId() === elem.getId()) {
|
|
628
630
|
oPendingInteraction.trigger = oElement.getId();
|
|
631
|
+
oPendingInteraction.semanticStepName = FESRHelper.getSemanticStepname(oElement, sEventId);
|
|
629
632
|
oPendingInteraction.event = sEventId;
|
|
630
633
|
bMatched = true;
|
|
631
634
|
} else {
|
|
632
635
|
while (elem && elem.getParent()) {
|
|
633
636
|
elem = elem.getParent();
|
|
634
637
|
if (oElement.getId() === elem.getId()) {
|
|
635
|
-
|
|
638
|
+
oPendingInteraction.trigger = oElement.getId();
|
|
639
|
+
oPendingInteraction.semanticStepName = FESRHelper.getSemanticStepname(oElement, sEventId);
|
|
636
640
|
oPendingInteraction.event = sEventId;
|
|
637
641
|
//if we find no direct match we consider the last control event for the trigger/event (step name)
|
|
638
642
|
break;
|
|
@@ -53,7 +53,7 @@ sap.ui.define(["sap/ui/performance/XHRInterceptor", "sap/ui/thirdparty/URI"], fu
|
|
|
53
53
|
var Passport = {};
|
|
54
54
|
|
|
55
55
|
/**
|
|
56
|
-
* @returns {
|
|
56
|
+
* @returns {string} a generated a passport header
|
|
57
57
|
* @private
|
|
58
58
|
*/
|
|
59
59
|
Passport.header = function(trcLvl, RootID, TransID, component, action) {
|
|
@@ -125,7 +125,7 @@ sap.ui.define(["sap/ui/performance/XHRInterceptor", "sap/ui/thirdparty/URI"], fu
|
|
|
125
125
|
};
|
|
126
126
|
|
|
127
127
|
/**
|
|
128
|
-
* @param {
|
|
128
|
+
* @param {string} lvl Tracing level to be calculated
|
|
129
129
|
* @return {int[]} Array with two int representations of characters for trace level
|
|
130
130
|
* @private
|
|
131
131
|
*/
|
|
@@ -151,7 +151,7 @@ sap.ui.define(["sap/ui/performance/XHRInterceptor", "sap/ui/thirdparty/URI"], fu
|
|
|
151
151
|
};
|
|
152
152
|
|
|
153
153
|
/**
|
|
154
|
-
* @returns {
|
|
154
|
+
* @returns {string} a generated GUID
|
|
155
155
|
* @private
|
|
156
156
|
*/
|
|
157
157
|
Passport.createGUID = function() {
|
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
(function() {
|
|
8
8
|
"use strict";
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
var oLink = document.createElement("link");
|
|
11
|
+
oLink.rel = "stylesheet";
|
|
12
|
+
oLink.href = sap.ui.require.toUrl("sap/ui/thirdparty/qunit-2.css");
|
|
13
|
+
document.head.appendChild(oLink);
|
|
14
14
|
}());
|
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
(function() {
|
|
8
8
|
"use strict";
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
var oLink = document.createElement("link");
|
|
11
|
+
oLink.rel = "stylesheet";
|
|
12
|
+
oLink.href = sap.ui.require.toUrl("sap/ui/thirdparty/qunit.css");
|
|
13
|
+
document.head.appendChild(oLink);
|
|
14
14
|
}());
|
|
@@ -660,6 +660,7 @@
|
|
|
660
660
|
QUnit.begin(function () {
|
|
661
661
|
var sFileName, aHits;
|
|
662
662
|
|
|
663
|
+
jQuery("body").css("overflow", "scroll"); // always show scrollbar, avoid flickering
|
|
663
664
|
jQuery("#qunit-modulefilter-dropdown-list").css("max-height", "none");
|
|
664
665
|
|
|
665
666
|
jQuery("#qunit-modulefilter-dropdown").on("click", function (oMouseEvent) {
|
package/src/sap/ui/test/Opa5.js
CHANGED
|
@@ -1115,7 +1115,7 @@ sap.ui.define([
|
|
|
1115
1115
|
/**
|
|
1116
1116
|
* Settings for a new page object, consisting of actions and assertions.
|
|
1117
1117
|
*
|
|
1118
|
-
* @typedef {
|
|
1118
|
+
* @typedef {object} sap.ui.test.PageObjectDefinition
|
|
1119
1119
|
*
|
|
1120
1120
|
* @property {string} [viewName]
|
|
1121
1121
|
* When a <code>viewName</code> is given, all <code>waitFor</code> calls inside of the page object
|
|
@@ -285,7 +285,7 @@ sap.ui.define(
|
|
|
285
285
|
*
|
|
286
286
|
* @param {sap.ui.test.Opa5} [oOpaInstance] the Opa5 instance to operate on
|
|
287
287
|
* @param {string | RegExp} [vId] the id of the target control(s)
|
|
288
|
-
* @param {string} [
|
|
288
|
+
* @param {string} [sControlType] the type of the target control(s)
|
|
289
289
|
* @param {boolean} [bDialogElement] if true, only popover and dialogs are searched for
|
|
290
290
|
* @param {sap.ui.test.matchers.Matcher | function | Array | Object} [vMatchers] additional matchers to filter target control(s)
|
|
291
291
|
* @param {sap.ui.test.actions.Action | function | Array} [vActions] the actions to be performed on target control(s)
|
|
@@ -417,12 +417,12 @@ sap.ui.define(
|
|
|
417
417
|
/**
|
|
418
418
|
* Defines the control type of the target control(s).
|
|
419
419
|
*
|
|
420
|
-
* @param {string}
|
|
420
|
+
* @param {string} sControlType the type of the target control(s)
|
|
421
421
|
* @returns {this} this OpaBuilder instance
|
|
422
422
|
* @public
|
|
423
423
|
*/
|
|
424
|
-
OpaBuilder.prototype.hasType = function (
|
|
425
|
-
return this.options({controlType:
|
|
424
|
+
OpaBuilder.prototype.hasType = function (sControlType) {
|
|
425
|
+
return this.options({controlType: sControlType});
|
|
426
426
|
};
|
|
427
427
|
|
|
428
428
|
/**
|
|
@@ -490,7 +490,7 @@ sap.ui.define(
|
|
|
490
490
|
* Adds a matcher that checks for a certain number of aggregation items.
|
|
491
491
|
*
|
|
492
492
|
* @param {string} sAggregationName the aggregation name
|
|
493
|
-
* @param
|
|
493
|
+
* @param {int} iNumber length to check against
|
|
494
494
|
* @returns {this} this OpaBuilder instance
|
|
495
495
|
* @public
|
|
496
496
|
*/
|
|
@@ -669,8 +669,8 @@ sap.ui.define(
|
|
|
669
669
|
* @returns {this} this OpaBuilder instance
|
|
670
670
|
* @public
|
|
671
671
|
*/
|
|
672
|
-
OpaBuilder.prototype.doEnterText = function (sText,
|
|
673
|
-
return this.do(OpaBuilder.Actions.enterText(sText,
|
|
672
|
+
OpaBuilder.prototype.doEnterText = function (sText, bClearTextFirst, bKeepFocus, bPressEnterKey, sIdSuffix) {
|
|
673
|
+
return this.do(OpaBuilder.Actions.enterText(sText, bClearTextFirst, bKeepFocus, bPressEnterKey, sIdSuffix));
|
|
674
674
|
};
|
|
675
675
|
|
|
676
676
|
/**
|
|
@@ -5,12 +5,12 @@
|
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
sap.ui.define([
|
|
8
|
-
"jquery.sap.sjax",
|
|
9
8
|
"sap/base/Log",
|
|
10
9
|
"sap/base/util/merge",
|
|
11
10
|
"sap/base/util/UriParameters",
|
|
11
|
+
"sap/ui/thirdparty/jquery",
|
|
12
12
|
"sap/ui/core/Core" // provides sap.ui.getCore()
|
|
13
|
-
], function (
|
|
13
|
+
], function (Log, merge, UriParameters, jQuery) {
|
|
14
14
|
"use strict";
|
|
15
15
|
/*global QUnit, sinon */
|
|
16
16
|
// Note: The dependency to Sinon.JS has been omitted deliberately. Most test files load it via
|
|
@@ -33,6 +33,8 @@ sap.ui.define([
|
|
|
33
33
|
rODataHeaders = /^(OData-Version|DataServiceVersion)$/,
|
|
34
34
|
bRealOData = sRealOData === "true" || sRealOData === "direct",
|
|
35
35
|
iRequestCount = 0,
|
|
36
|
+
sOptimisticBatch = oUriParameters.get("optimisticBatch"),
|
|
37
|
+
bOptimisticBatch = sOptimisticBatch === null ? undefined : sOptimisticBatch === "true",
|
|
36
38
|
bSupportAssistant = oUriParameters.get("supportAssistant") === "true",
|
|
37
39
|
TestUtils;
|
|
38
40
|
|
|
@@ -799,6 +801,14 @@ sap.ui.define([
|
|
|
799
801
|
}
|
|
800
802
|
},
|
|
801
803
|
|
|
804
|
+
/**
|
|
805
|
+
* @returns {boolean|undefined}
|
|
806
|
+
* <code>true</code> if optimistic $batch should be used, undefined if not specified.
|
|
807
|
+
*/
|
|
808
|
+
isOptimisticBatch : function () {
|
|
809
|
+
return bOptimisticBatch;
|
|
810
|
+
},
|
|
811
|
+
|
|
802
812
|
/**
|
|
803
813
|
* @returns {boolean}
|
|
804
814
|
* <code>true</code> if the real OData service is used.
|
|
@@ -15,7 +15,7 @@ sap.ui.define([
|
|
|
15
15
|
|
|
16
16
|
/**
|
|
17
17
|
* A central place to collect logs during the execution of a task
|
|
18
|
-
* Listens to
|
|
18
|
+
* Listens to sap/base/Log.* to collect the logs
|
|
19
19
|
* Only collects logs from loggers with a certain component name
|
|
20
20
|
* By default only logs from components in sap.ui.test are collected - this can be used to collect all the logs during an OPA test
|
|
21
21
|
* You always need to start the collector to control when to actually collect logs
|
|
@@ -24,7 +24,7 @@ sap.ui.define([
|
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
// separate report enablement from the report logic: conditionally send XHRs if reporting is explicitly enabled
|
|
27
|
-
var oPrototype =
|
|
27
|
+
var oPrototype = _UsageReport.prototype;
|
|
28
28
|
Object.keys(oPrototype).forEach(function (sKey) {
|
|
29
29
|
var bIsSpecialFunction = ["constructor", "getMetadata"].indexOf(sKey) > -1;
|
|
30
30
|
if (oPrototype.hasOwnProperty(sKey) && typeof oPrototype[sKey] === "function" && !bIsSpecialFunction) {
|
|
@@ -212,7 +212,7 @@ function (ManagedObject, QUnitUtils, Opa5, Device, jQueryDOM, _OpaLogger) {
|
|
|
212
212
|
* @param {boolean} bCtrlKey Indicates whether the ctrl key is down in addition
|
|
213
213
|
* @private
|
|
214
214
|
*/
|
|
215
|
-
_createAndDispatchMouseEvent: function (sName, oDomRef, bShiftKey, bAltKey, bCtrlKey) {
|
|
215
|
+
_createAndDispatchMouseEvent: function (sName, oDomRef, bShiftKey, bAltKey, bCtrlKey, iClientX, iClientY) {
|
|
216
216
|
// ignore scrolled down stuff (client X, Y not set)
|
|
217
217
|
// and assume stuff is over the whole screen (screen X, Y not set)
|
|
218
218
|
// See file jquery.sap.events.js for some insights to the magic
|
|
@@ -230,7 +230,9 @@ function (ManagedObject, QUnitUtils, Opa5, Device, jQueryDOM, _OpaLogger) {
|
|
|
230
230
|
type: sName, // include the type so jQuery.event.fixHooks can copy properties properly
|
|
231
231
|
shiftKey: bShiftKey,
|
|
232
232
|
altKey: bAltKey,
|
|
233
|
-
ctrlKey: bCtrlKey
|
|
233
|
+
ctrlKey: bCtrlKey,
|
|
234
|
+
clientX: iClientX,
|
|
235
|
+
clientY: iClientY
|
|
234
236
|
});
|
|
235
237
|
|
|
236
238
|
oDomRef.dispatchEvent(oMouseEvent);
|
|
@@ -63,6 +63,22 @@ sap.ui.define([
|
|
|
63
63
|
*/
|
|
64
64
|
ctrlKey: {
|
|
65
65
|
type: "boolean"
|
|
66
|
+
},
|
|
67
|
+
/**
|
|
68
|
+
* Provide percent value for the X coordinate axis to calculate the position of the click event.
|
|
69
|
+
* The value must be in the range [0 - 100]
|
|
70
|
+
* @since 1.98
|
|
71
|
+
*/
|
|
72
|
+
xPercentage: {
|
|
73
|
+
type: "float"
|
|
74
|
+
},
|
|
75
|
+
/**
|
|
76
|
+
* Provide percent value for the Y coordinate axis to calculate the position of the click event.
|
|
77
|
+
* The value must be in the range [0 - 100]
|
|
78
|
+
* @since 1.98
|
|
79
|
+
*/
|
|
80
|
+
yPercentage: {
|
|
81
|
+
type: "float"
|
|
66
82
|
}
|
|
67
83
|
},
|
|
68
84
|
publicMethods : [ "executeOn" ]
|
|
@@ -85,10 +101,43 @@ sap.ui.define([
|
|
|
85
101
|
var $ActionDomRef = this.$(oControl),
|
|
86
102
|
oActionDomRef = $ActionDomRef[0];
|
|
87
103
|
|
|
104
|
+
var iClientX, iClientY;
|
|
105
|
+
|
|
88
106
|
var bAltKey = this.getAltKey();
|
|
89
107
|
var bCtrlKey = this.getCtrlKey();
|
|
90
108
|
var bShiftKey = this.getShiftKey();
|
|
91
109
|
|
|
110
|
+
var iXPercentage = this.getXPercentage();
|
|
111
|
+
var iYPercentage = this.getYPercentage();
|
|
112
|
+
|
|
113
|
+
// check if the percentage is in the range 0-100
|
|
114
|
+
if (iXPercentage < 0 || iXPercentage > 100){
|
|
115
|
+
this.oLogger.error("Please provide a valid X percentage in the range: 0 - 100");
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
if (iYPercentage < 0 || iYPercentage > 100){
|
|
120
|
+
this.oLogger.error("Please provide a valid Y percentage in the range: 0 - 100");
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
// get the width and the height of the control
|
|
125
|
+
var oRect = oActionDomRef.getBoundingClientRect();
|
|
126
|
+
|
|
127
|
+
var iWidth = oRect.width;
|
|
128
|
+
var iHeight = oRect.height;
|
|
129
|
+
|
|
130
|
+
var iX = oRect.left + window.scrollX;
|
|
131
|
+
var iY = oRect.top + window.scrollY;
|
|
132
|
+
|
|
133
|
+
if (iXPercentage || iXPercentage === 0){
|
|
134
|
+
iClientX = ((iXPercentage / 100) * iWidth) + iX;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
if (iYPercentage || iYPercentage === 0){
|
|
138
|
+
iClientY = ((iYPercentage / 100) * iHeight) + iY;
|
|
139
|
+
}
|
|
140
|
+
|
|
92
141
|
if ($ActionDomRef.length) {
|
|
93
142
|
this.oLogger.timestamp("opa.actions.press");
|
|
94
143
|
this.oLogger.debug("Pressed the control " + oControl);
|
|
@@ -96,9 +145,9 @@ sap.ui.define([
|
|
|
96
145
|
this._tryOrSimulateFocusin($ActionDomRef, oControl);
|
|
97
146
|
|
|
98
147
|
// the missing events like saptouchstart and tap will be fired by the event simulation
|
|
99
|
-
this._createAndDispatchMouseEvent("mousedown", oActionDomRef);
|
|
148
|
+
this._createAndDispatchMouseEvent("mousedown", oActionDomRef, null, null, null, iClientX, iClientY);
|
|
100
149
|
this.getUtils().triggerEvent("selectstart", oActionDomRef);
|
|
101
|
-
this._createAndDispatchMouseEvent("mouseup", oActionDomRef);
|
|
150
|
+
this._createAndDispatchMouseEvent("mouseup", oActionDomRef, null, null, null, iClientX, iClientY);
|
|
102
151
|
this._createAndDispatchMouseEvent("click", oActionDomRef, bShiftKey, bAltKey, bCtrlKey);
|
|
103
152
|
//Focusout simulation removed in order to fix Press action behavior
|
|
104
153
|
//since in real scenario manual press action does not fire focusout event
|
|
@@ -49,7 +49,7 @@ sap.ui.define([
|
|
|
49
49
|
// Check if sinon is already faking the Xhr
|
|
50
50
|
hookIntoSinonRestore();
|
|
51
51
|
|
|
52
|
-
// Hook into XHR
|
|
52
|
+
// Hook into XHR open for sinon XHRs
|
|
53
53
|
var fnOriginalFakeOpen = sinon.FakeXMLHttpRequest.prototype.open;
|
|
54
54
|
sinon.FakeXMLHttpRequest.prototype.open = function () {
|
|
55
55
|
return fnOriginalFakeOpen.apply(this, hookIntoXHROpen.apply(this, arguments));
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* OpenUI5
|
|
3
|
+
* (c) Copyright 2009-2022 SAP SE or an SAP affiliate company.
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
|
|
5
|
+
*/
|
|
6
|
+
sap.ui.define([], function() {
|
|
7
|
+
"use strict";
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* @typedef sap.ui.test.generic.GenericTestCollection.ObjectCapabilities
|
|
11
|
+
*
|
|
12
|
+
* @param {string} moduleName
|
|
13
|
+
* Name of the module that contains the class. If not given, it is assumed that a module
|
|
14
|
+
* with the same name as the class (dots replaced by slashes) exports the class.
|
|
15
|
+
* When given, the module is loaded and the class is retrieved via its global name
|
|
16
|
+
* @param {boolean|function} create
|
|
17
|
+
* Explicit false if the control can't be instantiated via constructor or factory function
|
|
18
|
+
* expecting the following parameters: Class, mSettings
|
|
19
|
+
* @param {boolean} rendererHasDependencies
|
|
20
|
+
* Control renderer has dependencies to parent or child controls and can't be rendered standalone
|
|
21
|
+
* @param {Object<string, sap.ui.test.generic.GenericTestCollection.ExcludeReason|any>} properties
|
|
22
|
+
* A map containing the property name as key and either an {@link sap.ui.test.generic.GenericTestCollection.ExcludeReason ExcludeReason}
|
|
23
|
+
* or a "value to set" as value
|
|
24
|
+
* @param {Object<string, sap.ui.test.generic.GenericTestCollection.ExcludeReason|function>} aggregations
|
|
25
|
+
* A map containing the aggregation name as key and either an {@link sap.ui.test.generic.GenericTestCollection.ExcludeReason ExcludeReason}
|
|
26
|
+
* or the class which should be used as value
|
|
27
|
+
* @param {int} [apiVersion=2]
|
|
28
|
+
* The API version of the control's renderer should be set in case the renderer does not support
|
|
29
|
+
* semantic rendering
|
|
30
|
+
* @param {object} [knownIssues=undefined]
|
|
31
|
+
* Exceptions for known but not fixed issues
|
|
32
|
+
* @param {boolean} knownIssues.Id
|
|
33
|
+
* Exception for known duplicate ID issues
|
|
34
|
+
* @param {boolean} knownIssues.memoryLeaks
|
|
35
|
+
* Exception for known memory leak issues
|
|
36
|
+
*
|
|
37
|
+
* @private
|
|
38
|
+
* @ui5-restricted Only for DIST layer libraries
|
|
39
|
+
*/
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* @namespace
|
|
43
|
+
* @alias sap.ui.test.generic.GenericTestCollection
|
|
44
|
+
* @private
|
|
45
|
+
* @ui5-restricted Only for DIST layer libraries
|
|
46
|
+
* @since 1.100
|
|
47
|
+
*/
|
|
48
|
+
var GenericTestCollection = {
|
|
49
|
+
/**
|
|
50
|
+
* Marker for exclude reasons.
|
|
51
|
+
*
|
|
52
|
+
* @enum {string}
|
|
53
|
+
* @private
|
|
54
|
+
*/
|
|
55
|
+
ExcludeReason: {
|
|
56
|
+
/**
|
|
57
|
+
* The property or aggregation can only be changed using a binding. Using setter is not allowed.
|
|
58
|
+
* @private
|
|
59
|
+
*/
|
|
60
|
+
OnlyChangeableViaBinding: "OnlyChangeableViaBinding",
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* The property or aggregation can only be set on initialisation. Using setter is not allowed.
|
|
64
|
+
* @private
|
|
65
|
+
*/
|
|
66
|
+
NotChangeableAfterInit: "NotChangeableAfterInit",
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* The property or aggregation can't be filled generically. Property/aggregation specific settings are needed.
|
|
70
|
+
* @private
|
|
71
|
+
*/
|
|
72
|
+
SetterNeedsSpecificSettings: "SetterNeedsSpecificSettings",
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* The default value retrieved from getter can't be used for setting the value using the corresponding setter.
|
|
76
|
+
* @private
|
|
77
|
+
*/
|
|
78
|
+
CantSetDefaultValue: "CantSetDefaultValue"
|
|
79
|
+
},
|
|
80
|
+
/**
|
|
81
|
+
* Marker for available generic Tests
|
|
82
|
+
*
|
|
83
|
+
* @enum {string}
|
|
84
|
+
* @private
|
|
85
|
+
*/
|
|
86
|
+
Test: {
|
|
87
|
+
/**
|
|
88
|
+
* Test ControlMemoryLeaks
|
|
89
|
+
* @protected
|
|
90
|
+
*/
|
|
91
|
+
ControlMemoryLeaks: "ControlMemoryLeaks",
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* Test ControlRenderer
|
|
95
|
+
* @protected
|
|
96
|
+
*/
|
|
97
|
+
ControlRenderer: "ControlRenderer",
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* Test DuplicateIdCheck
|
|
101
|
+
* @protected
|
|
102
|
+
*/
|
|
103
|
+
DuplicateIdCheck: "DuplicateIdCheck",
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Test EnforceSemanticRendering
|
|
107
|
+
* @protected
|
|
108
|
+
*/
|
|
109
|
+
EnforceSemanticRendering: "EnforceSemanticRendering",
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* Test SettersContextReturn
|
|
113
|
+
* @protected
|
|
114
|
+
*/
|
|
115
|
+
SettersContextReturn: "SettersContextReturn"
|
|
116
|
+
},
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* Create the testsuite config
|
|
120
|
+
*
|
|
121
|
+
* @param {object} mConfig Map containing test parameters
|
|
122
|
+
* @param {string} mConfig.library The library name
|
|
123
|
+
* @param {object} mConfig.objectCapabilities The opt-out options per control
|
|
124
|
+
* @param {sap.ui.test.generic.GenericTestCollection.ObjectCapabilities} mConfig.objectCapabilities.anyName The controls capability options
|
|
125
|
+
* @param {sap.ui.test.generic.GenericTestCollection.Test[]} mConfig.skipTests List of tests which shouldn't be executed
|
|
126
|
+
* @return {object} Returns the testsuite config object
|
|
127
|
+
*
|
|
128
|
+
* @private
|
|
129
|
+
* @ui5-restricted Only for DIST layer libraries
|
|
130
|
+
* @since 1.100
|
|
131
|
+
*/
|
|
132
|
+
createTestsuiteConfig: function(mConfig) {
|
|
133
|
+
var oSuiteConfig = {
|
|
134
|
+
name: "Testsuite for Generic Control Tests for library: " + mConfig.library,
|
|
135
|
+
defaults: {
|
|
136
|
+
ui5: {
|
|
137
|
+
libs: [mConfig.library]
|
|
138
|
+
},
|
|
139
|
+
qunit: {
|
|
140
|
+
reorder: false,
|
|
141
|
+
version: 2
|
|
142
|
+
},
|
|
143
|
+
testConfig: mConfig,
|
|
144
|
+
module: "test-resources/sap/ui/core/qunit/generic/{name}.qunit"
|
|
145
|
+
},
|
|
146
|
+
tests: {
|
|
147
|
+
ControlMemoryLeaks: {
|
|
148
|
+
title: "QUnit Page for memory leak detection in UI5 controls"
|
|
149
|
+
},
|
|
150
|
+
ControlRenderer: {
|
|
151
|
+
title: "QUnit Page for Control Renderer Tests"
|
|
152
|
+
},
|
|
153
|
+
DuplicateIdCheck: {
|
|
154
|
+
title: "QUnit Page for duplicate ID issues detection in UI5 controls"
|
|
155
|
+
},
|
|
156
|
+
SettersContextReturn: {
|
|
157
|
+
title: "All setters should return correct context (Reason: https://github.com/SAP/openui5/blob/master/docs/guidelines.md#creating-classes)"
|
|
158
|
+
},
|
|
159
|
+
EnforceSemanticRendering: {
|
|
160
|
+
title: "QUnit Page for Semantic Rendering Coverage"
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
};
|
|
164
|
+
|
|
165
|
+
// Opt-out from single tests
|
|
166
|
+
var aSkippedTests = mConfig.skipTests || [];
|
|
167
|
+
aSkippedTests.forEach(function(sTest) {
|
|
168
|
+
delete oSuiteConfig.tests[sTest];
|
|
169
|
+
});
|
|
170
|
+
|
|
171
|
+
return oSuiteConfig;
|
|
172
|
+
}
|
|
173
|
+
};
|
|
174
|
+
|
|
175
|
+
return GenericTestCollection;
|
|
176
|
+
});
|