@openui5/sap.ui.core 1.94.0 → 1.97.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 +15 -4
- package/.reuse/dep5 +12 -12
- package/THIRDPARTY.txt +21 -17
- package/package.json +1 -1
- package/src/jquery.sap.global.js +1 -1
- package/src/jquery.sap.properties.js +1 -1
- package/src/jquery.sap.resources.js +2 -2
- package/src/jquery.sap.script.js +1 -1
- package/src/jquery.sap.storage.js +3 -3
- package/src/sap/base/i18n/ResourceBundle.js +6 -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 +15 -11
- package/src/sap/ui/Global.js +13 -17
- package/src/sap/ui/base/DataType.js +14 -8
- package/src/sap/ui/base/Event.js +1 -1
- package/src/sap/ui/base/EventProvider.js +1 -1
- package/src/sap/ui/base/Interface.js +1 -1
- package/src/sap/ui/base/ManagedObject.js +13 -8
- package/src/sap/ui/base/ManagedObjectMetadata.js +2 -2
- package/src/sap/ui/base/Metadata.js +1 -3
- package/src/sap/ui/base/Object.js +1 -1
- package/src/sap/ui/base/ObjectPool.js +1 -1
- package/src/sap/ui/core/.library +6 -32
- package/src/sap/ui/core/AppCacheBuster.js +8 -8
- package/src/sap/ui/core/BusyIndicator.js +1 -1
- package/src/sap/ui/core/Component.js +303 -135
- package/src/sap/ui/core/ComponentContainer.js +11 -7
- package/src/sap/ui/core/ComponentMetadata.js +1 -1
- package/src/sap/ui/core/ComponentSupport.js +1 -1
- package/src/sap/ui/core/Configuration.js +67 -31
- package/src/sap/ui/core/Control.js +2 -2
- package/src/sap/ui/core/Core.js +79 -15
- 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 +2 -6
- 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 +6 -13
- package/src/sap/ui/core/Fragment.js +30 -32
- package/src/sap/ui/core/HTML.js +3 -3
- package/src/sap/ui/core/History.js +1 -1
- package/src/sap/ui/core/Icon.js +7 -8
- package/src/sap/ui/core/IconPool.js +26 -1097
- package/src/sap/ui/core/IconRenderer.js +6 -6
- 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 +1 -1
- 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/Locale.js +26 -4
- package/src/sap/ui/core/LocaleData.js +3 -3
- package/src/sap/ui/core/Manifest.js +2 -60
- package/src/sap/ui/core/Message.js +1 -1
- package/src/sap/ui/core/Patcher.js +27 -3
- package/src/sap/ui/core/Placeholder.js +4 -4
- package/src/sap/ui/core/RenderManager.js +38 -8
- package/src/sap/ui/core/Renderer.js +13 -3
- package/src/sap/ui/core/ResizeHandler.js +1 -1
- package/src/sap/ui/core/ScrollBar.js +4 -3
- package/src/sap/ui/core/SeparatorItem.js +1 -1
- package/src/sap/ui/core/ShortcutHintsMixin.js +14 -7
- package/src/sap/ui/core/ThemeCheck.js +2 -2
- 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 +3 -3
- package/src/sap/ui/core/UIComponent.js +19 -11
- 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 +2 -2
- package/src/sap/ui/core/XMLCompositeMetadata.js +2 -2
- package/src/sap/ui/core/XMLTemplateProcessor.js +132 -43
- package/src/sap/ui/core/_IconRegistry.js +1148 -0
- package/src/sap/ui/core/cache/LRUPersistentCache.js +4 -2
- package/src/sap/ui/core/date/UniversalDateUtils.js +33 -0
- 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/NumberFormat.js +16 -1
- package/src/sap/ui/core/hyphenation/Hyphenation.js +61 -80
- package/src/sap/ui/core/library.js +5 -5
- package/src/sap/ui/core/message/ControlMessageProcessor.js +5 -5
- package/src/sap/ui/core/message/Message.js +1 -1
- package/src/sap/ui/core/message/MessageManager.js +13 -15
- package/src/sap/ui/core/message/MessageParser.js +1 -1
- package/src/sap/ui/core/message/MessageProcessor.js +22 -12
- package/src/sap/ui/core/messagebundle_de.properties +1 -1
- package/src/sap/ui/core/messagebundle_fr.properties +8 -8
- package/src/sap/ui/core/messagebundle_it.properties +1 -1
- package/src/sap/ui/core/messagebundle_pl.properties +1 -1
- package/src/sap/ui/core/messagebundle_ru.properties +21 -21
- package/src/sap/ui/core/messagebundle_th.properties +2 -2
- package/src/sap/ui/core/mvc/Controller.js +5 -5
- package/src/sap/ui/core/mvc/ControllerExtensionProvider.js +30 -32
- package/src/sap/ui/core/mvc/ControllerMetadata.js +18 -18
- package/src/sap/ui/core/mvc/HTMLView.js +2 -2
- package/src/sap/ui/core/mvc/JSONView.js +2 -2
- package/src/sap/ui/core/mvc/JSView.js +2 -2
- package/src/sap/ui/core/mvc/TemplateView.js +2 -2
- package/src/sap/ui/core/mvc/View.js +58 -85
- package/src/sap/ui/core/mvc/XMLView.js +2 -2
- package/src/sap/ui/core/mvc/XMLViewRenderer.js +17 -20
- 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 +10 -1
- package/src/sap/ui/core/routing/Router.js +16 -6
- package/src/sap/ui/core/routing/Targets.js +26 -0
- package/src/sap/ui/core/routing/async/Route.js +6 -3
- package/src/sap/ui/core/routing/async/Target.js +28 -4
- package/src/sap/ui/core/routing/sync/Target.js +15 -0
- package/src/sap/ui/core/rules/Misc.support.js +51 -1
- package/src/sap/ui/core/rules/Rendering.support.js +1 -4
- package/src/sap/ui/core/rules/View.support.js +14 -46
- 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 +2 -2
- package/src/sap/ui/core/support/RuleEngineOpaExtension.js +0 -1
- package/src/sap/ui/core/support/Support.js +1 -1
- package/src/sap/ui/core/support/controls/TreeViewer.js +1 -1
- package/src/sap/ui/core/support/plugins/ControlTree.js +37 -43
- 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 -2
- 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 +2 -2
- package/src/sap/ui/core/support/support.css +2 -8
- package/src/sap/ui/core/support/techinfo/TechnicalInfo.fragment.xml +1 -0
- package/src/sap/ui/core/support/techinfo/TechnicalInfo.js +150 -73
- package/src/sap/ui/core/support/trace/E2eTraceLib.js +3 -3
- package/src/sap/ui/core/themes/base/Icon.less +9 -0
- package/src/sap/ui/core/themes/base/SAP-icons.css +2 -0
- package/src/sap/ui/core/themes/base/SAP-icons.less +10 -0
- package/src/sap/ui/core/themes/base/base.less +543 -390
- package/src/sap/ui/core/themes/base/fonts/SAP-icons.woff2 +0 -0
- package/src/sap/ui/core/themes/base/global.less +38 -0
- package/src/sap/ui/core/themes/base/library.source.less +1 -2
- package/src/sap/ui/core/themes/sap_hcb/global.less +34 -0
- package/src/sap/ui/core/theming/Parameters.js +21 -0
- 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 +2 -2
- package/src/sap/ui/core/util/PasteHelper.js +1 -1
- package/src/sap/ui/core/util/XMLPreprocessor.js +11 -12
- package/src/sap/ui/core/util/reflection/JsControlTreeModifier.js +10 -12
- package/src/sap/ui/core/util/reflection/XmlTreeModifier.js +6 -3
- 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/Highlighter.js +8 -2
- package/src/sap/ui/debug/PropertyList.js +1 -1
- package/src/sap/ui/model/Binding.js +174 -118
- package/src/sap/ui/model/ChangeReason.js +1 -1
- package/src/sap/ui/model/ClientContextBinding.js +1 -1
- package/src/sap/ui/model/ClientListBinding.js +8 -3
- package/src/sap/ui/model/ClientModel.js +9 -8
- package/src/sap/ui/model/ClientPropertyBinding.js +4 -2
- package/src/sap/ui/model/ClientTreeBinding.js +15 -9
- package/src/sap/ui/model/ClientTreeBindingAdapter.js +28 -23
- package/src/sap/ui/model/CompositeBinding.js +98 -77
- package/src/sap/ui/model/CompositeDataState.js +2 -2
- package/src/sap/ui/model/CompositeType.js +2 -2
- package/src/sap/ui/model/Context.js +4 -2
- package/src/sap/ui/model/ContextBinding.js +6 -14
- package/src/sap/ui/model/DataState.js +2 -2
- package/src/sap/ui/model/Filter.js +255 -53
- package/src/sap/ui/model/FilterOperator.js +1 -1
- package/src/sap/ui/model/FilterProcessor.js +27 -17
- package/src/sap/ui/model/FilterType.js +1 -1
- package/src/sap/ui/model/ListBinding.js +200 -118
- package/src/sap/ui/model/MetaModel.js +4 -9
- package/src/sap/ui/model/Model.js +349 -303
- package/src/sap/ui/model/PropertyBinding.js +92 -58
- package/src/sap/ui/model/SelectionModel.js +2 -2
- package/src/sap/ui/model/SimpleType.js +2 -2
- package/src/sap/ui/model/Sorter.js +1 -1
- package/src/sap/ui/model/SorterProcessor.js +1 -1
- package/src/sap/ui/model/StaticBinding.js +1 -1
- package/src/sap/ui/model/TreeAutoExpandMode.js +2 -2
- package/src/sap/ui/model/TreeBinding.js +1 -1
- package/src/sap/ui/model/TreeBindingAdapter.js +249 -100
- package/src/sap/ui/model/TreeBindingCompatibilityAdapter.js +16 -9
- package/src/sap/ui/model/TreeBindingUtils.js +3 -0
- package/src/sap/ui/model/Type.js +1 -1
- package/src/sap/ui/model/analytics/AnalyticalBinding.js +20 -10
- package/src/sap/ui/model/analytics/AnalyticalTreeBindingAdapter.js +17 -19
- package/src/sap/ui/model/analytics/AnalyticalVersionInfo.js +1 -1
- package/src/sap/ui/model/analytics/BatchResponseCollector.js +1 -1
- package/src/sap/ui/model/analytics/ODataModelAdapter.js +1 -1
- package/src/sap/ui/model/analytics/odata4analytics.js +3 -2
- package/src/sap/ui/model/base/ManagedObjectModel.js +4 -0
- package/src/sap/ui/model/json/JSONListBinding.js +8 -5
- package/src/sap/ui/model/json/JSONModel.js +29 -20
- package/src/sap/ui/model/json/JSONPropertyBinding.js +5 -4
- package/src/sap/ui/model/json/JSONTreeBinding.js +1 -1
- package/src/sap/ui/model/message/MessageListBinding.js +6 -3
- package/src/sap/ui/model/message/MessageModel.js +25 -17
- package/src/sap/ui/model/message/MessagePropertyBinding.js +3 -3
- package/src/sap/ui/model/odata/AnnotationHelper.js +3 -3
- package/src/sap/ui/model/odata/AnnotationParser.js +5 -3
- package/src/sap/ui/model/odata/CountMode.js +1 -1
- package/src/sap/ui/model/odata/Filter.js +1 -1
- package/src/sap/ui/model/odata/ODataAnnotations.js +2 -2
- package/src/sap/ui/model/odata/ODataContextBinding.js +1 -1
- package/src/sap/ui/model/odata/ODataListBinding.js +62 -39
- package/src/sap/ui/model/odata/ODataMessageParser.js +3 -3
- package/src/sap/ui/model/odata/ODataMetaModel.js +6 -4
- package/src/sap/ui/model/odata/ODataMetadata.js +137 -86
- package/src/sap/ui/model/odata/ODataModel.js +443 -216
- package/src/sap/ui/model/odata/ODataPropertyBinding.js +8 -6
- package/src/sap/ui/model/odata/ODataTreeBinding.js +65 -33
- package/src/sap/ui/model/odata/ODataTreeBindingAdapter.js +28 -18
- package/src/sap/ui/model/odata/ODataTreeBindingFlat.js +442 -262
- package/src/sap/ui/model/odata/ODataUtils.js +36 -19
- package/src/sap/ui/model/odata/OperationMode.js +1 -1
- package/src/sap/ui/model/odata/_AnnotationHelperBasics.js +2 -1
- package/src/sap/ui/model/odata/_AnnotationHelperExpression.js +11 -9
- package/src/sap/ui/model/odata/_ODataMetaModelUtils.js +6 -4
- 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/Decimal.js +5 -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 +0 -1
- package/src/sap/ui/model/odata/v2/Context.js +98 -17
- package/src/sap/ui/model/odata/v2/ODataAnnotations.js +2 -2
- package/src/sap/ui/model/odata/v2/ODataContextBinding.js +1 -1
- package/src/sap/ui/model/odata/v2/ODataListBinding.js +416 -132
- package/src/sap/ui/model/odata/v2/ODataModel.js +465 -250
- package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +191 -109
- package/src/sap/ui/model/odata/v2/_CreatedContextsCache.js +179 -0
- package/src/sap/ui/model/odata/v4/Context.js +48 -7
- package/src/sap/ui/model/odata/v4/ODataBinding.js +60 -30
- package/src/sap/ui/model/odata/v4/ODataContextBinding.js +177 -53
- package/src/sap/ui/model/odata/v4/ODataListBinding.js +304 -91
- package/src/sap/ui/model/odata/v4/ODataMetaModel.js +32 -20
- package/src/sap/ui/model/odata/v4/ODataModel.js +29 -15
- package/src/sap/ui/model/odata/v4/ODataParentBinding.js +83 -51
- package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +13 -9
- package/src/sap/ui/model/odata/v4/lib/_Cache.js +115 -19
- package/src/sap/ui/model/odata/v4/lib/_Helper.js +35 -5
- package/src/sap/ui/model/odata/v4/lib/_Requestor.js +50 -5
- package/src/sap/ui/model/resource/ResourceModel.js +6 -2
- package/src/sap/ui/model/resource/ResourcePropertyBinding.js +1 -1
- package/src/sap/ui/model/type/Boolean.js +2 -2
- package/src/sap/ui/model/type/Currency.js +2 -2
- package/src/sap/ui/model/type/Date.js +9 -3
- package/src/sap/ui/model/type/DateInterval.js +4 -2
- package/src/sap/ui/model/type/DateTime.js +2 -2
- package/src/sap/ui/model/type/DateTimeInterval.js +2 -2
- package/src/sap/ui/model/type/FileSize.js +4 -2
- package/src/sap/ui/model/type/Float.js +4 -2
- package/src/sap/ui/model/type/Integer.js +4 -2
- package/src/sap/ui/model/type/String.js +2 -2
- package/src/sap/ui/model/type/Time.js +2 -2
- package/src/sap/ui/model/type/TimeInterval.js +2 -2
- package/src/sap/ui/model/type/Unit.js +14 -7
- package/src/sap/ui/model/xml/XMLListBinding.js +15 -9
- package/src/sap/ui/model/xml/XMLModel.js +74 -45
- package/src/sap/ui/model/xml/XMLPropertyBinding.js +5 -5
- package/src/sap/ui/model/xml/XMLTreeBinding.js +5 -4
- package/src/sap/ui/performance/trace/Interaction.js +30 -15
- package/src/sap/ui/qunit/QUnitUtils.js +3 -2
- package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
- package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +9 -11
- package/src/sap/ui/test/TestUtils.js +11 -4
- package/src/sap/ui/test/actions/Action.js +9 -2
- package/src/sap/ui/test/actions/Press.js +28 -1
- package/src/sap/ui/test/generic/_EnforceSemanticRendering.js +111 -0
- package/src/sap/ui/test/matchers/I18NText.js +29 -11
- package/src/sap/ui/test/opaQunit.js +5 -0
- package/src/sap/ui/thirdparty/IPv6.js +2 -2
- package/src/sap/ui/thirdparty/SecondLevelDomains.js +2 -2
- package/src/sap/ui/thirdparty/URI.js +14 -5
- package/src/sap/ui/thirdparty/URITemplate.js +2 -2
- package/src/sap/ui/thirdparty/hyphenopoly/Hyphenopoly.js +1196 -0
- package/src/sap/ui/thirdparty/hyphenopoly/Hyphenopoly_Loader.js +797 -0
- package/src/sap/ui/thirdparty/hyphenopoly/hyphenEngine.asm.js +108 -127
- package/src/sap/ui/thirdparty/hyphenopoly/hyphenEngine.wasm +0 -0
- package/src/sap/ui/thirdparty/hyphenopoly/patterns/bg.hpb +0 -0
- package/src/sap/ui/thirdparty/hyphenopoly/patterns/ca.hpb +0 -0
- package/src/sap/ui/thirdparty/hyphenopoly/patterns/da.hpb +0 -0
- package/src/sap/ui/thirdparty/hyphenopoly/patterns/de.hpb +0 -0
- package/src/sap/ui/thirdparty/hyphenopoly/patterns/el-monoton.hpb +0 -0
- package/src/sap/ui/thirdparty/hyphenopoly/patterns/en-us.hpb +0 -0
- package/src/sap/ui/thirdparty/hyphenopoly/patterns/es.hpb +0 -0
- package/src/sap/ui/thirdparty/hyphenopoly/patterns/et.hpb +0 -0
- package/src/sap/ui/thirdparty/hyphenopoly/patterns/fi.hpb +0 -0
- package/src/sap/ui/thirdparty/hyphenopoly/patterns/fr.hpb +0 -0
- package/src/sap/ui/thirdparty/hyphenopoly/patterns/hi.hpb +0 -0
- package/src/sap/ui/thirdparty/hyphenopoly/patterns/hr.hpb +0 -0
- package/src/sap/ui/thirdparty/hyphenopoly/patterns/hu.hpb +0 -0
- package/src/sap/ui/thirdparty/hyphenopoly/patterns/it.hpb +0 -0
- package/src/sap/ui/thirdparty/hyphenopoly/patterns/lt.hpb +0 -0
- package/src/sap/ui/thirdparty/hyphenopoly/patterns/nb-no.hpb +0 -0
- package/src/sap/ui/thirdparty/hyphenopoly/patterns/nl.hpb +0 -0
- package/src/sap/ui/thirdparty/hyphenopoly/patterns/pt.hpb +0 -0
- package/src/sap/ui/thirdparty/hyphenopoly/patterns/ru.hpb +0 -0
- package/src/sap/ui/thirdparty/hyphenopoly/patterns/sl.hpb +0 -0
- package/src/sap/ui/thirdparty/hyphenopoly/patterns/sv.hpb +0 -0
- package/src/sap/ui/thirdparty/hyphenopoly/patterns/th.hpb +0 -0
- package/src/sap/ui/thirdparty/hyphenopoly/patterns/tr.hpb +0 -0
- package/src/sap/ui/thirdparty/hyphenopoly/patterns/uk.hpb +0 -0
- package/src/sap/ui/thirdparty/jquery.js +9 -1
- package/src/sap/ui/thirdparty/qunit-2.js +1 -1
- package/src/sap/ui/thirdparty/qunit.js +1 -1
- package/src/sap/ui/util/Mobile.js +30 -59
- package/src/sap/ui/util/Storage.js +1 -1
- package/src/sap/ui/util/isCrossOriginURL.js +16 -6
- package/src/ui5loader.js +6 -6
- package/ui5.yaml +248 -2
- package/src/sap/ui/core/CustomizingConfiguration.js +0 -272
- package/src/sap/ui/core/support/plugins/MessageTest.js +0 -96
- package/src/sap/ui/thirdparty/baseuri.js +0 -1
- package/src/sap/ui/thirdparty/es6-object-assign.js +0 -1
- package/src/sap/ui/thirdparty/es6-promise.js +0 -1
- package/src/sap/ui/thirdparty/es6-shim-nopromise.js +0 -1
- package/src/sap/ui/thirdparty/es6-string-methods.js +0 -1
- package/src/sap/ui/thirdparty/flexie.js +0 -1
- package/src/sap/ui/thirdparty/hyphenopoly/hyphenopoly.bundle.js +0 -860
- package/src/sap/ui/thirdparty/unorm.js +0 -1
- package/src/sap/ui/thirdparty/unormdata.js +0 -1
|
@@ -13,7 +13,8 @@
|
|
|
13
13
|
* @name sap.ui.test
|
|
14
14
|
* @public
|
|
15
15
|
*/
|
|
16
|
-
|
|
16
|
+
// The module ID argument is given because QUnitUtils.js often was included as a script Element in the past.
|
|
17
|
+
// It is now recommended to use it via a module dependency (sap.ui.define).
|
|
17
18
|
sap.ui.define('sap/ui/qunit/QUnitUtils', [
|
|
18
19
|
'jquery.sap.global',
|
|
19
20
|
'sap/base/util/ObjectPath',
|
|
@@ -78,7 +79,7 @@ sap.ui.define('sap/ui/qunit/QUnitUtils', [
|
|
|
78
79
|
var QUnit = window.QUnit;
|
|
79
80
|
window.QUnit = undefined;
|
|
80
81
|
// load the blanket instance
|
|
81
|
-
sap.ui.requireSync("sap/ui/thirdparty/blanket");
|
|
82
|
+
sap.ui.requireSync("sap/ui/thirdparty/blanket"); // legacy-relevant
|
|
82
83
|
// restore the QUnit object
|
|
83
84
|
window.QUnit = QUnit;
|
|
84
85
|
// trigger blanket to display the coverage report
|
|
@@ -6,18 +6,16 @@
|
|
|
6
6
|
|
|
7
7
|
/*global QUnit*/
|
|
8
8
|
|
|
9
|
-
sap.ui.define([ '
|
|
10
|
-
function(
|
|
9
|
+
sap.ui.define([ 'sap/ui/core/Element', 'sap/ui/core/Control', 'sap/ui/core/Core' /* provides sap.ui.getCore() */ ],
|
|
10
|
+
function(Element, Control) {
|
|
11
11
|
"use strict";
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
//TODO: global jquery call found
|
|
20
|
-
jQuery.sap.require("sap.ui.qunit.qunit-coverage");
|
|
13
|
+
if ( typeof QUnit === "undefined" ) {
|
|
14
|
+
sap.ui.requireSync("sap/ui/qunit/qunit-css"); // legacy-relevant - sync fallback when caller did not load QUnit
|
|
15
|
+
sap.ui.requireSync("sap/ui/thirdparty/qunit"); // legacy-relevant - sync fallback when caller did not load QUnit
|
|
16
|
+
sap.ui.requireSync("sap/ui/qunit/qunit-junit"); // legacy-relevant - sync fallback when caller did not load QUnit
|
|
17
|
+
sap.ui.requireSync("sap/ui/qunit/qunit-coverage"); // legacy-relevant - sync fallback when caller did not load QUnit
|
|
18
|
+
}
|
|
21
19
|
|
|
22
20
|
QUnit.config.reorder = false; // make sure results are consistent/stable and the "statistics" test in the end is actually run in the end
|
|
23
21
|
|
|
@@ -29,7 +27,7 @@ sap.ui.define([ 'jquery.sap.global', 'sap/ui/core/Element', 'sap/ui/core/Control
|
|
|
29
27
|
* @namespace
|
|
30
28
|
*
|
|
31
29
|
* @author SAP SE
|
|
32
|
-
* @version 1.
|
|
30
|
+
* @version 1.97.0
|
|
33
31
|
*
|
|
34
32
|
* @public
|
|
35
33
|
* @since 1.48.0
|
|
@@ -272,8 +272,12 @@ sap.ui.define([
|
|
|
272
272
|
* The service URL which determines a prefix for all requests the fake server responds to;
|
|
273
273
|
* it responds with an error for requests not given in the fixture, except DELETE, MERGE,
|
|
274
274
|
* PATCH, or POST. A missing URL is ignored.
|
|
275
|
+
* @param {boolean} [bStrict]
|
|
276
|
+
* Whether responses are created from the given fixture only, without defaults per method.
|
|
277
|
+
* @returns {object}
|
|
278
|
+
* The SinonJS fake server instance
|
|
275
279
|
*/
|
|
276
|
-
useFakeServer : function (oSandbox, sBase, mFixture, aRegExps, sServiceUrl) {
|
|
280
|
+
useFakeServer : function (oSandbox, sBase, mFixture, aRegExps, sServiceUrl, bStrict) {
|
|
277
281
|
// a map from "method path" incl. service URL to a list of response objects with
|
|
278
282
|
// properties code, headers, ifMatch and message
|
|
279
283
|
var aRegexpResponses, mUrlToResponses;
|
|
@@ -363,7 +367,8 @@ sap.ui.define([
|
|
|
363
367
|
|
|
364
368
|
// Logs and returns a response for the given error
|
|
365
369
|
function error(iCode, oRequest, sMessage) {
|
|
366
|
-
Log.error(oRequest.requestLine, sMessage,
|
|
370
|
+
Log.error(oRequest.requestLine || oRequest.method + " " + oRequest.url, sMessage,
|
|
371
|
+
"sap.ui.test.TestUtils");
|
|
367
372
|
|
|
368
373
|
return {
|
|
369
374
|
code : iCode,
|
|
@@ -509,7 +514,7 @@ sap.ui.define([
|
|
|
509
514
|
if (oMatch.responses.length > 1) {
|
|
510
515
|
iAlternative = oMatch.responses.indexOf(oResponse);
|
|
511
516
|
}
|
|
512
|
-
} else {
|
|
517
|
+
} else if (!bStrict) {
|
|
513
518
|
switch (oRequest.method) {
|
|
514
519
|
case "HEAD":
|
|
515
520
|
oResponse = {code : 200};
|
|
@@ -711,12 +716,14 @@ sap.ui.define([
|
|
|
711
716
|
// must return true if the request is NOT processed by the fake server
|
|
712
717
|
return !bOurs;
|
|
713
718
|
});
|
|
719
|
+
|
|
720
|
+
return oServer;
|
|
714
721
|
}
|
|
715
722
|
|
|
716
723
|
// ensure to always search the fake data in test-resources, remove cache buster token
|
|
717
724
|
sBase = sap.ui.require.toUrl(sBase)
|
|
718
725
|
.replace(/(^|\/)resources\/(~[-a-zA-Z0-9_.]*~\/)?/, "$1test-resources/") + "/";
|
|
719
|
-
setupServer();
|
|
726
|
+
return setupServer();
|
|
720
727
|
},
|
|
721
728
|
|
|
722
729
|
/**
|
|
@@ -207,9 +207,12 @@ function (ManagedObject, QUnitUtils, Opa5, Device, jQueryDOM, _OpaLogger) {
|
|
|
207
207
|
*
|
|
208
208
|
* @param {string} sName Name of the mouse event
|
|
209
209
|
* @param {Element} oDomRef DOM element on which the event is going to be triggered
|
|
210
|
+
* @param {boolean} bShiftKey Indicates whether the shift key is down in addition
|
|
211
|
+
* @param {boolean} bAltKey Indicates whether the alt key is down in addition
|
|
212
|
+
* @param {boolean} bCtrlKey Indicates whether the ctrl key is down in addition
|
|
210
213
|
* @private
|
|
211
214
|
*/
|
|
212
|
-
_createAndDispatchMouseEvent: function (sName, oDomRef) {
|
|
215
|
+
_createAndDispatchMouseEvent: function (sName, oDomRef, bShiftKey, bAltKey, bCtrlKey) {
|
|
213
216
|
// ignore scrolled down stuff (client X, Y not set)
|
|
214
217
|
// and assume stuff is over the whole screen (screen X, Y not set)
|
|
215
218
|
// See file jquery.sap.events.js for some insights to the magic
|
|
@@ -224,8 +227,12 @@ function (ManagedObject, QUnitUtils, Opa5, Device, jQueryDOM, _OpaLogger) {
|
|
|
224
227
|
radiusY: 1,
|
|
225
228
|
rotationAngle: 0,
|
|
226
229
|
button: iLeftMouseButtonIndex,
|
|
227
|
-
type: sName // include the type so jQuery.event.fixHooks can copy properties properly
|
|
230
|
+
type: sName, // include the type so jQuery.event.fixHooks can copy properties properly
|
|
231
|
+
shiftKey: bShiftKey,
|
|
232
|
+
altKey: bAltKey,
|
|
233
|
+
ctrlKey: bCtrlKey
|
|
228
234
|
});
|
|
235
|
+
|
|
229
236
|
oDomRef.dispatchEvent(oMouseEvent);
|
|
230
237
|
},
|
|
231
238
|
|
|
@@ -42,6 +42,29 @@ sap.ui.define([
|
|
|
42
42
|
var Press = Action.extend("sap.ui.test.actions.Press", /** @lends sap.ui.test.actions.Press.prototype */ {
|
|
43
43
|
|
|
44
44
|
metadata : {
|
|
45
|
+
properties: {
|
|
46
|
+
/**
|
|
47
|
+
* If it is set to <code>true</code>, the Alt Key modifier will be used
|
|
48
|
+
* @since 1.97
|
|
49
|
+
*/
|
|
50
|
+
altKey: {
|
|
51
|
+
type: "boolean"
|
|
52
|
+
},
|
|
53
|
+
/**
|
|
54
|
+
* If it is set to <code>true</code>, the Shift Key modifier will be used
|
|
55
|
+
* @since 1.97
|
|
56
|
+
*/
|
|
57
|
+
shiftKey: {
|
|
58
|
+
type: "boolean"
|
|
59
|
+
},
|
|
60
|
+
/**
|
|
61
|
+
* If it is set to <code>true</code>, the Control Key modifier will be used
|
|
62
|
+
* @since 1.97
|
|
63
|
+
*/
|
|
64
|
+
ctrlKey: {
|
|
65
|
+
type: "boolean"
|
|
66
|
+
}
|
|
67
|
+
},
|
|
45
68
|
publicMethods : [ "executeOn" ]
|
|
46
69
|
},
|
|
47
70
|
|
|
@@ -62,6 +85,10 @@ sap.ui.define([
|
|
|
62
85
|
var $ActionDomRef = this.$(oControl),
|
|
63
86
|
oActionDomRef = $ActionDomRef[0];
|
|
64
87
|
|
|
88
|
+
var bAltKey = this.getAltKey();
|
|
89
|
+
var bCtrlKey = this.getCtrlKey();
|
|
90
|
+
var bShiftKey = this.getShiftKey();
|
|
91
|
+
|
|
65
92
|
if ($ActionDomRef.length) {
|
|
66
93
|
this.oLogger.timestamp("opa.actions.press");
|
|
67
94
|
this.oLogger.debug("Pressed the control " + oControl);
|
|
@@ -72,7 +99,7 @@ sap.ui.define([
|
|
|
72
99
|
this._createAndDispatchMouseEvent("mousedown", oActionDomRef);
|
|
73
100
|
this.getUtils().triggerEvent("selectstart", oActionDomRef);
|
|
74
101
|
this._createAndDispatchMouseEvent("mouseup", oActionDomRef);
|
|
75
|
-
this._createAndDispatchMouseEvent("click", oActionDomRef);
|
|
102
|
+
this._createAndDispatchMouseEvent("click", oActionDomRef, bShiftKey, bAltKey, bCtrlKey);
|
|
76
103
|
//Focusout simulation removed in order to fix Press action behavior
|
|
77
104
|
//since in real scenario manual press action does not fire focusout event
|
|
78
105
|
}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* OpenUI5
|
|
3
|
+
* (c) Copyright 2009-2021 SAP SE or an SAP affiliate company.
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
/* global QUnit */
|
|
8
|
+
sap.ui.define([], function() {
|
|
9
|
+
"use strict";
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* @namespace
|
|
13
|
+
* @private
|
|
14
|
+
* @ui5-restricted Only for DIST layer libraries
|
|
15
|
+
*/
|
|
16
|
+
var _EnforceSemanticRendering = {
|
|
17
|
+
/**
|
|
18
|
+
* @param {object} mLibInfo Info object containing the library name and an array with excludes
|
|
19
|
+
* @param {string} mLibInfo.library The library name in dot notation, e.g. "sap.ui.core"
|
|
20
|
+
* @param {string[]} mLibInfo.exlcudes An array of control names in dot notation, which are NOT migrated and should be excluded from the test
|
|
21
|
+
* @returns {Promise<undefined>} Returns resovled Promise after all tests are executed
|
|
22
|
+
*
|
|
23
|
+
* @private
|
|
24
|
+
* @ui5-restricted Only for DIST layer libraries
|
|
25
|
+
*/
|
|
26
|
+
run : function(mLibInfo) {
|
|
27
|
+
var sLib = mLibInfo.library;
|
|
28
|
+
var aExcludes = mLibInfo.excludes || [];
|
|
29
|
+
|
|
30
|
+
return new Promise(function(res, rej) {
|
|
31
|
+
sap.ui.getCore().loadLibrary(sLib, { async: true }).then(function(library) {
|
|
32
|
+
var aControls = (library && library.controls) || [];
|
|
33
|
+
var aPromises = [];
|
|
34
|
+
|
|
35
|
+
aControls.forEach(function(sClass) {
|
|
36
|
+
// Generate QUnit test for all controls
|
|
37
|
+
aPromises.push(new Promise(function(res, rej) {
|
|
38
|
+
var oInfo = {
|
|
39
|
+
control: sClass
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
var sControlClass = sClass.replace(/\./g, "/");
|
|
43
|
+
sap.ui.require([sControlClass], function(ControlClass) {
|
|
44
|
+
try {
|
|
45
|
+
var oRenderer = ControlClass.getMetadata().getRenderer();
|
|
46
|
+
|
|
47
|
+
if (oRenderer) {
|
|
48
|
+
oInfo.version = Object.prototype.hasOwnProperty.call(oRenderer, "apiVersion") ? oRenderer.apiVersion : 1;
|
|
49
|
+
|
|
50
|
+
if (aExcludes.includes(sClass)) {
|
|
51
|
+
if (oInfo.version == 2) {
|
|
52
|
+
oInfo.wrongExclude = true;
|
|
53
|
+
oInfo.description = "defined in the excludes";
|
|
54
|
+
} else { // version 1
|
|
55
|
+
oInfo.skip = true;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
} else {
|
|
59
|
+
oInfo.description = "No Renderer Class available";
|
|
60
|
+
oInfo.skip = true;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
} catch (e) {
|
|
64
|
+
oInfo.description = "No Renderer Class available";
|
|
65
|
+
oInfo.skip = true;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
res(oInfo);
|
|
69
|
+
}, function() {
|
|
70
|
+
oInfo.description = "Control Class could not be loaded";
|
|
71
|
+
|
|
72
|
+
if (aExcludes.includes(sClass)) {
|
|
73
|
+
oInfo.skip = true;
|
|
74
|
+
} // else don't skip if control class is not maintained in excludes
|
|
75
|
+
|
|
76
|
+
res(oInfo);
|
|
77
|
+
});
|
|
78
|
+
}));
|
|
79
|
+
});
|
|
80
|
+
|
|
81
|
+
res(aPromises);
|
|
82
|
+
});
|
|
83
|
+
}).then(function(aPromises) {
|
|
84
|
+
// Add tests
|
|
85
|
+
return new Promise(function(res, rej) {
|
|
86
|
+
Promise.all(aPromises).then(function(aInfo) {
|
|
87
|
+
QUnit.module("EnforceSemanticRendering Tests: " + mLibInfo.library);
|
|
88
|
+
|
|
89
|
+
QUnit.test("library controls loaded", function(assert) {
|
|
90
|
+
assert.ok(aInfo, aInfo.length + " controls loaded");
|
|
91
|
+
});
|
|
92
|
+
|
|
93
|
+
aInfo.forEach(function(oInfo) {
|
|
94
|
+
QUnit[oInfo.skip ? "skip" : "test"](oInfo.control + " " + (oInfo.description || ""), function(assert) {
|
|
95
|
+
if (oInfo.wrongExclude) {
|
|
96
|
+
assert.ok(false, "The control '" + oInfo.control + "' is maintained in the exclude configuration, but its renderer is configured with apiVersion 2.");
|
|
97
|
+
} else {
|
|
98
|
+
assert.equal(oInfo.version, 2, "Semantic Rendering enabled.");
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
});
|
|
102
|
+
|
|
103
|
+
res();
|
|
104
|
+
});
|
|
105
|
+
});
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
};
|
|
109
|
+
|
|
110
|
+
return _EnforceSemanticRendering;
|
|
111
|
+
});
|
|
@@ -13,7 +13,7 @@ sap.ui.define(['sap/ui/test/matchers/Matcher', "sap/base/strings/capitalize"], f
|
|
|
13
13
|
* The matcher automatically:
|
|
14
14
|
* <ul>
|
|
15
15
|
* <li>
|
|
16
|
-
* retrieves the text from the assigned 'i18n' model (name can be changed)
|
|
16
|
+
* retrieves the text from the assigned 'i18n' model (name can be changed) or library resource bundle
|
|
17
17
|
* </li>
|
|
18
18
|
* <li>
|
|
19
19
|
* checks that the I18N key does actually exist in the file
|
|
@@ -34,6 +34,9 @@ sap.ui.define(['sap/ui/test/matchers/Matcher', "sap/base/strings/capitalize"], f
|
|
|
34
34
|
* }
|
|
35
35
|
* </code></pre>
|
|
36
36
|
*
|
|
37
|
+
* As of version 1.95 if the <code>useLibraryBundle</code> flag is set to <code>true</code>, the library resource bundle
|
|
38
|
+
* of the control is used to resolve the i18n key.
|
|
39
|
+
*
|
|
37
40
|
* @extends sap.ui.test.matchers.Matcher
|
|
38
41
|
* @param {object} [mSettings] optional map/JSON-object with initial settings for the new I18NText
|
|
39
42
|
* @public
|
|
@@ -70,6 +73,12 @@ sap.ui.define(['sap/ui/test/matchers/Matcher', "sap/base/strings/capitalize"], f
|
|
|
70
73
|
modelName: {
|
|
71
74
|
type: "string",
|
|
72
75
|
defaultValue: "i18n"
|
|
76
|
+
},
|
|
77
|
+
/**
|
|
78
|
+
* The boolean flag to indicate whether to utiliize the library bundle of the control
|
|
79
|
+
*/
|
|
80
|
+
useLibraryBundle: {
|
|
81
|
+
type: "boolean"
|
|
73
82
|
}
|
|
74
83
|
}
|
|
75
84
|
},
|
|
@@ -88,6 +97,7 @@ sap.ui.define(['sap/ui/test/matchers/Matcher', "sap/base/strings/capitalize"], f
|
|
|
88
97
|
aParameters = this.getParameters(),
|
|
89
98
|
sModelName = this.getModelName(),
|
|
90
99
|
oModel = oControl.getModel(sModelName),
|
|
100
|
+
bUseLibraryBundle = this.getUseLibraryBundle(),
|
|
91
101
|
fnProperty = oControl["get" + capitalize(sPropertyName, 0)];
|
|
92
102
|
|
|
93
103
|
// check model existence
|
|
@@ -104,16 +114,24 @@ sap.ui.define(['sap/ui/test/matchers/Matcher', "sap/base/strings/capitalize"], f
|
|
|
104
114
|
|
|
105
115
|
// check resource bundle
|
|
106
116
|
var oAppWindow = this._getApplicationWindow();
|
|
107
|
-
var oBundle
|
|
108
|
-
if (
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
+
var oBundle;
|
|
118
|
+
if (bUseLibraryBundle) {
|
|
119
|
+
var sLibraryName = oControl.getMetadata().getLibraryName();
|
|
120
|
+
|
|
121
|
+
oBundle = sap.ui.getCore().getLibraryResourceBundle(sLibraryName);
|
|
122
|
+
} else {
|
|
123
|
+
oBundle = oModel.getResourceBundle();
|
|
124
|
+
|
|
125
|
+
if (oBundle instanceof oAppWindow.Promise) {
|
|
126
|
+
if (oModel._oResourceBundle instanceof oAppWindow.Object && oModel._oResourceBundle.getText) {
|
|
127
|
+
// we access the loaded bundle from the internal variable of the resource model
|
|
128
|
+
// ... instead of using the asynchronous promises which is no option for a synchronous matcher
|
|
129
|
+
// !!! we have a qunit in place that ensures this internal implementation of the ResourceModel
|
|
130
|
+
oBundle = oModel._oResourceBundle;
|
|
131
|
+
} else {
|
|
132
|
+
this._oLogger.debug("The model '" + sModelName + "' of '" + oControl + "' is in async mode and not loaded yet");
|
|
133
|
+
return false;
|
|
134
|
+
}
|
|
117
135
|
}
|
|
118
136
|
}
|
|
119
137
|
|
|
@@ -16,6 +16,11 @@ sap.ui.define([
|
|
|
16
16
|
QUnitPause.setupAfterQUnit();
|
|
17
17
|
|
|
18
18
|
QUnit.begin(function (oDetails) {
|
|
19
|
+
// add ui5 version in the user agent string bar
|
|
20
|
+
if (sap && sap.ui && jQueryDOM('#qunit-userAgent').length > 0) {
|
|
21
|
+
jQueryDOM('#qunit-userAgent')[0].innerText += "; UI5: " + sap.ui.version;
|
|
22
|
+
}
|
|
23
|
+
|
|
19
24
|
Opa._usageReport.begin({uri: new URI().toString(), totalTests: oDetails.totalTests});
|
|
20
25
|
});
|
|
21
26
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* URI.js - Mutating URLs
|
|
3
3
|
* IPv6 Support
|
|
4
4
|
*
|
|
5
|
-
* Version: 1.19.
|
|
5
|
+
* Version: 1.19.7
|
|
6
6
|
*
|
|
7
7
|
* Author: Rodney Rehm
|
|
8
8
|
* Web: http://medialize.github.io/URI.js/
|
|
@@ -182,4 +182,4 @@
|
|
|
182
182
|
best: bestPresentation,
|
|
183
183
|
noConflict: noConflict
|
|
184
184
|
};
|
|
185
|
-
}));
|
|
185
|
+
}));
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* URI.js - Mutating URLs
|
|
3
3
|
*
|
|
4
|
-
* Version: 1.19.
|
|
4
|
+
* Version: 1.19.7
|
|
5
5
|
*
|
|
6
6
|
* Author: Rodney Rehm
|
|
7
7
|
* Web: http://medialize.github.io/URI.js/
|
|
@@ -90,7 +90,7 @@
|
|
|
90
90
|
return /^[0-9]+$/.test(value);
|
|
91
91
|
}
|
|
92
92
|
|
|
93
|
-
URI.version = '1.19.
|
|
93
|
+
URI.version = '1.19.7';
|
|
94
94
|
|
|
95
95
|
var p = URI.prototype;
|
|
96
96
|
var hasOwn = Object.prototype.hasOwnProperty;
|
|
@@ -521,6 +521,9 @@
|
|
|
521
521
|
string = string.substring(0, pos);
|
|
522
522
|
}
|
|
523
523
|
|
|
524
|
+
// slashes and backslashes have lost all meaning for the web protocols (https, http, wss, ws)
|
|
525
|
+
string = string.replace(/^(https?|ftp|wss?)?:[/\\]*/, '$1://');
|
|
526
|
+
|
|
524
527
|
// extract protocol
|
|
525
528
|
if (string.substring(0, 2) === '//') {
|
|
526
529
|
// relative-scheme
|
|
@@ -667,7 +670,10 @@
|
|
|
667
670
|
// no "=" is null according to http://dvcs.w3.org/hg/url/raw-file/tip/Overview.html#collect-url-parameters
|
|
668
671
|
value = v.length ? URI.decodeQuery(v.join('='), escapeQuerySpace) : null;
|
|
669
672
|
|
|
670
|
-
if (
|
|
673
|
+
if (name === '__proto__') {
|
|
674
|
+
// ignore attempt at exploiting JavaScript internals
|
|
675
|
+
continue;
|
|
676
|
+
} else if (hasOwn.call(items, name)) {
|
|
671
677
|
if (typeof items[name] === 'string' || items[name] === null) {
|
|
672
678
|
items[name] = [items[name]];
|
|
673
679
|
}
|
|
@@ -760,7 +766,10 @@
|
|
|
760
766
|
var t = '';
|
|
761
767
|
var unique, key, i, length;
|
|
762
768
|
for (key in data) {
|
|
763
|
-
if (
|
|
769
|
+
if (key === '__proto__') {
|
|
770
|
+
// ignore attempt at exploiting JavaScript internals
|
|
771
|
+
continue;
|
|
772
|
+
} else if (hasOwn.call(data, key)) {
|
|
764
773
|
if (isArray(data[key])) {
|
|
765
774
|
unique = {};
|
|
766
775
|
for (i = 0, length = data[key].length; i < length; i++) {
|
|
@@ -2351,4 +2360,4 @@
|
|
|
2351
2360
|
};
|
|
2352
2361
|
|
|
2353
2362
|
return URI;
|
|
2354
|
-
}));
|
|
2363
|
+
}));
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* URI.js - Mutating URLs
|
|
3
3
|
* URI Template Support - http://tools.ietf.org/html/rfc6570
|
|
4
4
|
*
|
|
5
|
-
* Version: 1.19.
|
|
5
|
+
* Version: 1.19.7
|
|
6
6
|
*
|
|
7
7
|
* Author: Rodney Rehm
|
|
8
8
|
* Web: http://medialize.github.io/URI.js/
|
|
@@ -513,4 +513,4 @@
|
|
|
513
513
|
};
|
|
514
514
|
|
|
515
515
|
return URITemplate;
|
|
516
|
-
}));
|
|
516
|
+
}));
|