@openui5/sap.ui.core 1.115.1 → 1.117.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 +18 -0
- package/.eslintrc.json +1 -11
- package/.reuse/dep5 +0 -5
- package/THIRDPARTY.txt +1 -7
- 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 +1 -1
- package/src/jquery.sap.script.js +1 -1
- package/src/jquery.sap.sjax.js +2 -2
- package/src/jquery.sap.storage.js +3 -3
- package/src/sap/base/Event.js +106 -0
- package/src/sap/base/Eventing.js +319 -0
- package/src/sap/base/config/MemoryConfigurationProvider.js +10 -1
- package/src/sap/base/config.js +3 -2
- package/src/sap/base/i18n/Formatting.js +989 -0
- package/src/sap/base/i18n/LanguageTag.js +189 -0
- package/src/sap/base/i18n/Localization.js +710 -0
- package/src/sap/base/i18n/ResourceBundle.js +5 -20
- package/src/sap/base/i18n/date/CalendarType.js +54 -0
- package/src/sap/base/i18n/date/CalendarWeekNumbering.js +105 -0
- package/src/sap/base/i18n/date/TimezoneUtils.js +287 -0
- package/src/sap/base/util/JSTokenizer.js +1 -1
- package/src/sap/base/util/fetch.js +4 -4
- package/src/sap/base/util/mixedFetch.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/base/util/syncFetch.js +2 -2
- package/src/sap/ui/Device.js +3 -3
- package/src/sap/ui/Global.js +4 -4
- package/src/sap/ui/base/Event.js +6 -4
- package/src/sap/ui/base/EventProvider.js +4 -12
- package/src/sap/ui/base/Interface.js +1 -1
- package/src/sap/ui/base/ManagedObject.js +9 -15
- package/src/sap/ui/base/ManagedObjectMetadata.js +33 -12
- 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/base/SyncPromise.js +10 -5
- package/src/sap/ui/core/.library +3 -3
- package/src/sap/ui/core/AccessKeysEnablement.js +10 -5
- package/src/sap/ui/core/AnimationMode.js +49 -0
- package/src/sap/ui/core/BusyIndicator.js +33 -42
- package/src/sap/ui/core/CalendarType.js +11 -37
- package/src/sap/ui/core/Component.js +4 -5
- 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/ConfigTest.js +17 -0
- package/src/sap/ui/core/Configuration.js +409 -1282
- package/src/sap/ui/core/Control.js +7 -12
- package/src/sap/ui/core/ControlBehavior.js +157 -0
- package/src/sap/ui/core/Core.js +126 -132
- 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 +14 -3
- package/src/sap/ui/core/ElementMetadata.js +2 -4
- package/src/sap/ui/core/EnabledPropagator.js +1 -1
- package/src/sap/ui/core/EventBus.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/History.js +1 -1
- package/src/sap/ui/core/Icon.js +1 -1
- package/src/sap/ui/core/IconPool.js +1 -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 +5 -7
- package/src/sap/ui/core/InvisibleRenderer.js +1 -1
- package/src/sap/ui/core/InvisibleText.js +12 -12
- 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/Lib.js +126 -38
- 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 +154 -430
- package/src/sap/ui/core/LocaleData.js +50 -14
- 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 +37 -50
- package/src/sap/ui/core/RenderManager.js +1 -1
- package/src/sap/ui/core/Renderer.js +1 -1
- package/src/sap/ui/core/Rendering.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/SeparatorItem.js +1 -1
- package/src/sap/ui/core/Shortcut.js +11 -9
- package/src/sap/ui/core/StaticArea.js +31 -17
- package/src/sap/ui/core/Theming.js +458 -0
- 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 +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 +28 -5
- package/src/sap/ui/core/_IconRegistry.js +89 -12
- package/src/sap/ui/core/boot/_bootConfig.js +137 -0
- package/src/sap/ui/core/boot/_runBoot.js +16 -0
- package/src/sap/ui/core/boot/initDOM.js +96 -0
- package/src/sap/ui/core/boot/loadCalendar.js +50 -0
- package/src/sap/ui/core/boot/loadManifest.js +55 -0
- package/src/sap/ui/core/boot/loadModules.js +80 -0
- package/src/sap/ui/core/boot/manifest.json +11 -0
- package/src/sap/ui/core/boot/onInit.js +44 -0
- package/src/sap/ui/core/boot.js +107 -0
- package/src/sap/ui/core/date/CalendarWeekNumbering.js +12 -83
- package/src/sap/ui/core/date/UI5Date.js +10 -4
- package/src/sap/ui/core/delegate/ItemNavigation.js +8 -10
- package/src/sap/ui/core/delegate/ScrollEnablement.js +5 -5
- 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 +33 -27
- package/src/sap/ui/core/format/TimezoneUtil.js +15 -273
- package/src/sap/ui/core/hyphenation/Hyphenation.js +1 -1
- package/src/sap/ui/core/library.js +32 -6
- 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 +6 -5
- 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_ar.properties +57 -55
- package/src/sap/ui/core/messagebundle_bg.properties +57 -55
- package/src/sap/ui/core/messagebundle_ca.properties +30 -28
- package/src/sap/ui/core/messagebundle_cs.properties +44 -42
- package/src/sap/ui/core/messagebundle_cy.properties +59 -57
- package/src/sap/ui/core/messagebundle_da.properties +57 -55
- package/src/sap/ui/core/messagebundle_de.properties +59 -57
- package/src/sap/ui/core/messagebundle_el.properties +48 -46
- package/src/sap/ui/core/messagebundle_en.properties +59 -57
- package/src/sap/ui/core/messagebundle_en_GB.properties +59 -57
- package/src/sap/ui/core/messagebundle_en_US_sappsd.properties +2 -0
- package/src/sap/ui/core/messagebundle_en_US_saprigi.properties +2 -0
- package/src/sap/ui/core/messagebundle_en_US_saptrc.properties +3 -0
- package/src/sap/ui/core/messagebundle_es.properties +48 -46
- package/src/sap/ui/core/messagebundle_es_MX.properties +58 -56
- package/src/sap/ui/core/messagebundle_et.properties +55 -53
- package/src/sap/ui/core/messagebundle_fi.properties +51 -49
- package/src/sap/ui/core/messagebundle_fr.properties +36 -34
- package/src/sap/ui/core/messagebundle_fr_CA.properties +21 -19
- package/src/sap/ui/core/messagebundle_hi.properties +42 -40
- package/src/sap/ui/core/messagebundle_hr.properties +57 -55
- package/src/sap/ui/core/messagebundle_hu.properties +58 -56
- package/src/sap/ui/core/messagebundle_id.properties +59 -57
- package/src/sap/ui/core/messagebundle_it.properties +75 -73
- package/src/sap/ui/core/messagebundle_iw.properties +59 -57
- package/src/sap/ui/core/messagebundle_ja.properties +50 -48
- package/src/sap/ui/core/messagebundle_kk.properties +44 -42
- package/src/sap/ui/core/messagebundle_ko.properties +20 -18
- package/src/sap/ui/core/messagebundle_lt.properties +59 -57
- package/src/sap/ui/core/messagebundle_lv.properties +59 -57
- package/src/sap/ui/core/messagebundle_ms.properties +60 -58
- package/src/sap/ui/core/messagebundle_nl.properties +58 -56
- package/src/sap/ui/core/messagebundle_no.properties +56 -54
- package/src/sap/ui/core/messagebundle_pl.properties +56 -54
- package/src/sap/ui/core/messagebundle_pt.properties +58 -56
- package/src/sap/ui/core/messagebundle_pt_PT.properties +58 -56
- package/src/sap/ui/core/messagebundle_ro.properties +59 -57
- package/src/sap/ui/core/messagebundle_ru.properties +57 -55
- package/src/sap/ui/core/messagebundle_sh.properties +59 -57
- package/src/sap/ui/core/messagebundle_sk.properties +57 -55
- package/src/sap/ui/core/messagebundle_sl.properties +58 -56
- package/src/sap/ui/core/messagebundle_sv.properties +54 -52
- package/src/sap/ui/core/messagebundle_th.properties +18 -16
- package/src/sap/ui/core/messagebundle_tr.properties +58 -56
- package/src/sap/ui/core/messagebundle_uk.properties +59 -57
- package/src/sap/ui/core/messagebundle_vi.properties +59 -57
- package/src/sap/ui/core/messagebundle_zh_CN.properties +58 -56
- package/src/sap/ui/core/messagebundle_zh_TW.properties +58 -56
- 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 +1 -1
- package/src/sap/ui/core/mvc/XMLView.js +14 -2
- package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
- package/src/sap/ui/core/plugin/LessSupport.js +14 -16
- 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/HashChanger.js +1 -0
- package/src/sap/ui/core/routing/Route.js +1 -0
- package/src/sap/ui/core/routing/Router.js +3 -1
- package/src/sap/ui/core/rules/Config.support.js +2 -2
- package/src/sap/ui/core/rules/Misc.support.js +1 -1
- package/src/sap/ui/core/rules/Model.support.js +3 -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 +7 -4
- package/src/sap/ui/core/support/controls/TimelineOverview.js +1 -1
- package/src/sap/ui/core/support/plugins/ControlTree.js +2 -2
- 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/themes/base/Icon.less +2 -2
- package/src/sap/ui/core/themes/base/LocalBusyIndicator.less +4 -4
- package/src/sap/ui/core/themes/base/base.less +41 -20
- package/src/sap/ui/core/themes/base/fonts/SAP-icons.ttf +0 -0
- package/src/sap/ui/core/themes/base/fonts/SAP-icons.woff2 +0 -0
- package/src/sap/ui/core/theming/Parameters.js +6 -10
- package/src/sap/ui/core/theming/ThemeManager.js +312 -450
- package/src/sap/ui/core/tmpl/DOMAttribute.js +1 -1
- package/src/sap/ui/core/tmpl/DOMElement.js +5 -10
- 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 +4 -5
- package/src/sap/ui/core/util/PasteHelper.js +1 -1
- package/src/sap/ui/core/util/reflection/BaseTreeModifier.js +3 -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/events/PseudoEvents.js +17 -9
- package/src/sap/ui/model/Binding.js +19 -15
- package/src/sap/ui/model/ClientModel.js +1 -1
- package/src/sap/ui/model/CompositeBinding.js +57 -19
- 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/ListBinding.js +42 -1
- package/src/sap/ui/model/MetaModel.js +1 -1
- package/src/sap/ui/model/Model.js +5 -4
- package/src/sap/ui/model/PropertyBinding.js +10 -0
- package/src/sap/ui/model/SelectionModel.js +1 -1
- package/src/sap/ui/model/SimpleType.js +4 -1
- package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
- package/src/sap/ui/model/Type.js +1 -1
- package/src/sap/ui/model/analytics/AnalyticalBinding.js +166 -79
- package/src/sap/ui/model/analytics/AnalyticalVersionInfo.js +4 -3
- package/src/sap/ui/model/analytics/BatchResponseCollector.js +2 -2
- package/src/sap/ui/model/analytics/ODataModelAdapter.js +14 -27
- package/src/sap/ui/model/analytics/odata4analytics.js +6 -12
- package/src/sap/ui/model/base/ManagedObjectModel.js +3 -2
- package/src/sap/ui/model/json/JSONModel.js +6 -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 +191 -5
- package/src/sap/ui/model/odata/ODataMetadata.js +38 -4
- package/src/sap/ui/model/odata/ODataModel.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 +8 -1
- package/src/sap/ui/model/odata/type/DateTimeOffset.js +1 -1
- package/src/sap/ui/model/odata/type/DateTimeWithTimezone.js +1 -1
- 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 +3 -3
- 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/v2/Context.js +3 -2
- package/src/sap/ui/model/odata/v2/ODataAnnotations.js +1 -1
- package/src/sap/ui/model/odata/v2/ODataListBinding.js +14 -3
- package/src/sap/ui/model/odata/v2/ODataModel.js +46 -32
- package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +1 -1
- package/src/sap/ui/model/odata/v4/AnnotationHelper.js +4 -4
- package/src/sap/ui/model/odata/v4/Context.js +39 -32
- package/src/sap/ui/model/odata/v4/ODataBinding.js +85 -52
- package/src/sap/ui/model/odata/v4/ODataContextBinding.js +23 -19
- package/src/sap/ui/model/odata/v4/ODataListBinding.js +139 -50
- package/src/sap/ui/model/odata/v4/ODataMetaModel.js +30 -36
- package/src/sap/ui/model/odata/v4/ODataModel.js +49 -44
- package/src/sap/ui/model/odata/v4/ODataParentBinding.js +72 -37
- package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +34 -29
- package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +95 -9
- package/src/sap/ui/model/odata/v4/lib/_AggregationHelper.js +25 -27
- package/src/sap/ui/model/odata/v4/lib/_Cache.js +95 -209
- package/src/sap/ui/model/odata/v4/lib/_Helper.js +168 -1
- package/src/sap/ui/model/odata/v4/lib/_MetadataRequestor.js +14 -5
- package/src/sap/ui/model/odata/v4/lib/_Requestor.js +34 -19
- package/src/sap/ui/model/odata/v4/lib/_V2MetadataConverter.js +4 -4
- package/src/sap/ui/model/odata/v4/lib/_V2Requestor.js +1 -1
- 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 +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/XMLModel.js +1 -1
- 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/Opa5.js +1 -1
- package/src/sap/ui/test/TestUtils.js +1 -1
- package/src/sap/ui/test/autowaiter/_autoWaiter.js +1 -1
- package/src/sap/ui/test/generic/TestBase.js +1 -1
- package/src/sap/ui/test/generic/_EnforceSemanticRendering.js +1 -3
- package/src/sap/ui/test/gherkin/simpleGherkinParser.js +10 -5
- package/src/sap/ui/test/matchers/LabelFor.js +1 -0
- package/src/sap/ui/test/matchers/_Visitor.js +6 -1
- package/src/sap/ui/test/starter/_setupAndStart.js +2 -5
- package/src/sap/ui/thirdparty/caja-html-sanitizer.js +111 -96
- package/src/sap/ui/thirdparty/qunit-2.js +9 -3
- package/src/sap/ui/util/ActivityDetection.js +7 -1
- package/src/sap/ui/util/Mobile.js +21 -14
- package/src/sap/ui/util/Storage.js +1 -1
- package/src/sap-ui-boot.js +23 -6
- package/src/ui5-boot.js +50 -0
- package/src/ui5loader-autoconfig.js +150 -75
- package/src/ui5loader.js +458 -514
- package/test/sap/ui/core/Device.js +1 -1
- package/test/sap/ui/core/FormatHelper.js +3 -2
- package/test/sap/ui/core/demokit/docuindex.json +6 -0
- package/test/sap/ui/core/demokit/sample/OpaAction/applicationUnderTest/view/Main.view.xml +1 -0
- package/test/sap/ui/core/demokit/sample/OpaBusyIndicator/OpaBusyIndicator.js +1 -1
- package/test/sap/ui/core/demokit/sample/OpaMatchers/OpaMatchers.js +2 -2
- package/test/sap/ui/core/demokit/sample/ViewTemplate/types/MIT.ODataTypes.html +9 -14
- package/test/sap/ui/core/demokit/sample/ViewTemplate/types/Opa.qunit.js +7 -0
- package/test/sap/ui/core/demokit/sample/ViewTemplate/types/Template.controller.js +2 -2
- package/test/sap/ui/core/demokit/sample/common/pages/Any.js +1 -1
- package/test/sap/ui/core/demokit/sample/odata/v2/AutoExpand/AutoExpand.view.xml +24 -5
- package/test/sap/ui/core/demokit/sample/odata/v4/Ancestry/Main.view.xml +24 -6
- package/test/sap/ui/core/demokit/sample/odata/v4/DataAggregation/DataAggregation.view.xml +20 -5
- package/test/sap/ui/core/demokit/sample/odata/v4/DataAggregation/Opa.qunit.js +2 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/DataAggregation/tests/filter.js +2 -2
- package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/Component.js +27 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/ListReport.controller.js +43 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/ListReport.view.xml +47 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/Main.controller.js +27 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/Main.view.xml +7 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/NotFound.view.xml +8 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/ObjectPage.controller.js +123 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/ObjectPage.view.xml +92 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/Opa.qunit.html +27 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/Opa.qunit.js +70 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/README.html +55 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/SandboxModel.js +56 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/data/POST-SalesOrderList.json +66 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/data/SalesOrderList('0500000000')-SO_2_SOITEM.json +57 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/data/SalesOrderList('0500000000').json +20 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/data/SalesOrderList('0500000001').json +9 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/data/SalesOrderList('0500000007')-SO_2_BP.json +12 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/data/SalesOrderList.json +62 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/data/VH_CurrencyCode.json +85 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/data/VH_CurrencyCode.xml +185 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/data/VH_ProductID.json +93 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/data/VH_ProductID.xml +262 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/data/metadata.xml +1779 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/manifest.json +134 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/pages/Main.js +119 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/Draft/Opa.qunit.js +2 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/FieldGroups/Opa.qunit.js +2 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/FlatDataAggregation/FlatDataAggregation.view.xml +4 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/FlexibleColumnLayout/Opa.qunit.js +2 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/GridTable/GridTable.view.xml +12 -3
- package/test/sap/ui/core/demokit/sample/odata/v4/LateProperties/Main.controller.js +2 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/LateProperties/Opa.OptimisticBatch.qunit.js +2 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/LateProperties/Opa.qunit.js +2 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/ListBinding/Opa.qunit.js +2 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/ListBindingTemplate/Opa.qunit.js +2 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/MultipleInlineCreationRowsGrid/Opa.qunit.js +2 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/MultipleInlineCreationRowsGrid/pages/Main.js +0 -41
- package/test/sap/ui/core/demokit/sample/odata/v4/Products/Opa.qunit.js +2 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/RecursiveHierarchy.view.xml +26 -8
- package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/data/metadata.xml +4 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrderTP100_V2/Opa.qunit.js +2 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrderTP100_V2/manifest.json +1 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrderTP100_V4/Opa.qunit.js +2 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrderTP100_V4/manifest.json +1 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/Main.controller.js +5 -17
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/Opa.qunit.js +2 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/pages/Main.js +18 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/tests/Create.js +10 -6
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrdersRTATest/Opa.qunit.js +2 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrdersRTATest/manifest.json +18 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrdersTemplate/Opa.qunit.js +2 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/ServerDrivenPaging/Main.view.xml +3 -3
- package/test/sap/ui/core/demokit/sample/odata/v4/ServerDrivenPaging/Opa.qunit.js +2 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/ServerDrivenPaging/pages/Main.js +4 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/Sticky/Opa.qunit.js +2 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/06/webapp/controller/App.controller.js +1 -6
- package/test/sap/ui/core/demokit/tutorial/odatav4/06/webapp/localService/mockserver.js +1 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/07/webapp/controller/App.controller.js +1 -6
- package/test/sap/ui/core/demokit/tutorial/odatav4/07/webapp/localService/mockserver.js +1 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/08/webapp/controller/App.controller.js +1 -6
- package/test/sap/ui/core/demokit/tutorial/odatav4/08/webapp/localService/mockserver.js +1 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/08/webapp/test/integration/arrangements/Startup.js +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/09/webapp/controller/App.controller.js +1 -6
- package/test/sap/ui/core/demokit/tutorial/odatav4/09/webapp/localService/mockserver.js +1 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/10/webapp/controller/App.controller.js +3 -8
- package/test/sap/ui/core/demokit/tutorial/odatav4/10/webapp/localService/mockserver.js +1 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/11/webapp/controller/App.controller.js +3 -8
- package/test/sap/ui/core/demokit/tutorial/odatav4/11/webapp/localService/mockserver.js +1 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/11/webapp/test/integration/arrangements/Startup.js +1 -1
- package/test/sap/ui/core/qunit/CompositeBinding.qunit.js +25 -7
- package/test/sap/ui/core/qunit/ControlRenderer.qunit.js +86 -2
- package/test/sap/ui/core/qunit/DataState.qunit.js +2 -7
- package/test/sap/ui/core/qunit/HTML.qunit.js +31 -31
- package/test/sap/ui/core/qunit/IconPool.qunit.js +53 -4
- package/test/sap/ui/core/qunit/Lib.qunit.js +55 -2
- package/test/sap/ui/core/qunit/LocalBusyIndicator.qunit.js +22 -15
- package/test/sap/ui/core/qunit/ManagedObject.qunit.js +5 -3
- package/test/sap/ui/core/qunit/ManagedObjectModel.qunit.js +43 -5
- package/test/sap/ui/core/qunit/Object.qunit.js +4 -1
- package/test/sap/ui/core/qunit/ThemeManager.qunit.js +2 -2
- package/test/sap/ui/core/qunit/ThemeParameters.qunit.js +9 -3
- package/test/sap/ui/core/qunit/Theming.beforeBootstrap.qunit.js +13 -0
- package/test/sap/ui/core/qunit/Theming.qunit.js +247 -0
- package/test/sap/ui/core/qunit/analytics/AnalyticalBinding.qunit.js +510 -185
- package/test/sap/ui/core/qunit/analytics/AnalyticalTreeBindingAdapter.qunit.js +2 -7
- package/test/sap/ui/core/qunit/analytics/ODataModelAdapter.qunit.js +81 -16
- package/test/sap/ui/core/qunit/analytics/odata4analytics.qunit.js +20 -29
- package/test/sap/ui/core/qunit/app/MessageListBinding.qunit.js +2 -7
- package/test/sap/ui/core/qunit/base/Config_cascade.qunit.js +18 -1
- package/test/sap/ui/core/qunit/base/i18n/Formatting.qunit.html +24 -0
- package/test/sap/ui/core/qunit/base/i18n/Formatting.qunit.js +277 -0
- package/test/sap/ui/core/qunit/base/i18n/Localization.qunit.js +282 -0
- package/test/sap/ui/core/qunit/base/i18n/ResourceBundle.qunit.js +5 -6
- package/test/sap/ui/core/qunit/base/security/sanitizeHTML.qunit.js +17 -0
- package/test/sap/ui/core/qunit/bootstrap/BootstrapPreload.qunit.js +1 -2
- package/test/sap/ui/core/qunit/bootstrap/BootstrapWithCustomBootTask.beforeBootstrap.qunit.js +13 -12
- package/test/sap/ui/core/qunit/bootstrap/Configuration.main.qunit.js +11 -0
- package/test/sap/ui/core/qunit/bootstrap/Configuration.qunit.html +4 -3
- package/test/sap/ui/core/qunit/bootstrap/Configuration.qunit.js +451 -281
- package/test/sap/ui/core/qunit/bootstrap/ThemeVersion.qunit.js +19 -30
- package/test/sap/ui/core/qunit/component/Models.qunit.js +12 -30
- package/test/sap/ui/core/qunit/component/Models_unavoidablySync.qunit.js +8 -26
- package/test/sap/ui/core/qunit/component/testdata/async/lib2/library-preload.js +2 -2
- package/test/sap/ui/core/qunit/component/testdata/async/lib2/library-preload.json +1 -1
- package/test/sap/ui/core/qunit/component/testdata/async/lib2/library.js +2 -2
- package/test/sap/ui/core/qunit/component/testdata/async/lib3/library-preload.js +2 -2
- package/test/sap/ui/core/qunit/component/testdata/async/lib3/library-preload.json +1 -1
- package/test/sap/ui/core/qunit/component/testdata/async/lib3/library.js +2 -2
- package/test/sap/ui/core/qunit/component/testdata/async/lib4/library-preload.js +2 -2
- package/test/sap/ui/core/qunit/component/testdata/async/lib4/library-preload.json +1 -1
- package/test/sap/ui/core/qunit/component/testdata/async/lib4/library.js +2 -2
- package/test/sap/ui/core/qunit/component/testdata/async/manifestcomp/Component-preload.js +1 -1
- package/test/sap/ui/core/qunit/component/testdata/async/manifestcomp/Component.js +2 -2
- package/test/sap/ui/core/qunit/component/testdata/async/mycomp/Component-preload.js +1 -1
- package/test/sap/ui/core/qunit/component/testdata/async/mycomp/Component.js +2 -2
- package/test/sap/ui/core/qunit/component/testdata/async/mysubcomp/Component-preload.js +1 -1
- package/test/sap/ui/core/qunit/component/testdata/async/mysubcomp/Component.js +2 -3
- package/test/sap/ui/core/qunit/component/testdata/customizing/customer/ext/Component.js +0 -4
- package/test/sap/ui/core/qunit/component/testdata/customizing/customer/ext/sync/Component.js +2 -6
- package/test/sap/ui/core/qunit/component/testdata/customizing/customersub/Component.js +0 -4
- package/test/sap/ui/core/qunit/component/testdata/inherit/Component.js +2 -7
- package/test/sap/ui/core/qunit/component/testdata/inherit/parent/Component.js +2 -7
- package/test/sap/ui/core/qunit/component/testdata/inheritAsync/Component.js +2 -2
- package/test/sap/ui/core/qunit/component/testdata/inheritAsync/parentA/Component.js +2 -2
- package/test/sap/ui/core/qunit/component/testdata/inheritAsync/parentB/Component.js +2 -2
- package/test/sap/ui/core/qunit/component/testdata/inheritAsyncError/Component.js +2 -2
- package/test/sap/ui/core/qunit/component/testdata/inheritAsyncError/parentA/Component.js +2 -2
- package/test/sap/ui/core/qunit/component/testdata/inheritAsyncError/parentB/Component.js +2 -2
- package/test/sap/ui/core/qunit/component/testdata/other/Component.js +2 -7
- package/test/sap/ui/core/qunit/component/testdata/terminologies/Component.js +2 -2
- package/test/sap/ui/core/qunit/component/testdata/terminologies/component1/Component.js +2 -2
- package/test/sap/ui/core/qunit/component/testdata/terminologies/component2/Component.js +2 -2
- package/test/sap/ui/core/qunit/component/testdata/terminologies/component3/Component.js +2 -2
- package/test/sap/ui/core/qunit/component/testdata/terminologies/component5/Component.js +2 -2
- package/test/sap/ui/core/qunit/component/testdata/terminologies/reuse/Component.js +2 -3
- package/test/sap/ui/core/qunit/component/testdata/v1/Component.js +2 -7
- package/test/sap/ui/core/qunit/component/testdata/v1empty/Component.js +2 -7
- package/test/sap/ui/core/qunit/component/testdata/v1inline/Component.js +2 -5
- package/test/sap/ui/core/qunit/component/testdata/v1missing/Component.js +2 -7
- package/test/sap/ui/core/qunit/component/testdata/v2/Component.js +2 -5
- package/test/sap/ui/core/qunit/component/testdata/v2asyncRootView/Component.js +2 -5
- package/test/sap/ui/core/qunit/component/testdata/v2empty/Component.js +2 -9
- package/test/sap/ui/core/qunit/component/testdata/v2inline/Component.js +2 -5
- package/test/sap/ui/core/qunit/component/testdata/v2missing/Component.js +2 -9
- package/test/sap/ui/core/qunit/component/testdata/v2version/Component.js +2 -2
- package/test/sap/ui/core/qunit/dnd/DragDropInfo.qunit.js +1 -2
- package/test/sap/ui/core/qunit/generic/EnforceSemanticRendering.qunit.js +2 -2
- package/test/sap/ui/core/qunit/generic/SettersContextReturn.qunit.js +2 -2
- package/test/sap/ui/core/qunit/generic/legacy/ControlMemoryLeaks.qunit.js +2 -0
- package/test/sap/ui/core/qunit/generic/legacy/DuplicateIdCheck.qunit.js +2 -0
- package/test/sap/ui/core/qunit/generic/legacy/SettersContextReturn.qunit.js +2 -2
- package/test/sap/ui/core/qunit/gherkin/dataTableUtils.qunit.js +2 -2
- package/test/sap/ui/core/qunit/i18n/Locale.qunit.js +0 -52
- package/test/sap/ui/core/qunit/i18n/LocaleData.qunit.js +49 -14
- package/test/sap/ui/core/qunit/i18n/UI5Date.qunit.js +16 -4
- package/test/sap/ui/core/qunit/i18n/UniversalDate.qunit.js +74 -114
- package/test/sap/ui/core/qunit/i18n/UniversalDateUtils.qunit.js +34 -39
- package/test/sap/ui/core/qunit/i18n/testsuite.i18n.qunit.js +18 -0
- package/test/sap/ui/core/qunit/internal/1RingModels.qunit.js +1 -0
- package/test/sap/ui/core/qunit/internal/BeforePush.ODataV4.js +28 -0
- package/test/sap/ui/core/qunit/internal/BeforePush.html +1 -0
- package/test/sap/ui/core/qunit/internal/BeforePush.js +15 -0
- package/test/sap/ui/core/qunit/internal/performance/ExpressionParser.performance.qunit.js +1 -0
- package/test/sap/ui/core/qunit/json/JSONListBinding.qunit.js +2 -7
- package/test/sap/ui/core/qunit/json/JSONPropertyBinding.qunit.js +7 -12
- package/test/sap/ui/core/qunit/json/JSONTwoWay.qunit.js +3 -8
- package/test/sap/ui/core/qunit/loader/asyncMode.qunit.js +2 -2
- package/test/sap/ui/core/qunit/loader/asyncMode_unavoidablySync.qunit.js +1 -1
- package/test/sap/ui/core/qunit/loader/fixture/amd-with-export-true/module1.js +2 -2
- package/test/sap/ui/core/qunit/loader/testsuite.loader.qunit.js +0 -3
- package/test/sap/ui/core/qunit/messages/MessageMixin.qunit.js +2 -7
- package/test/sap/ui/core/qunit/messages/messagesUsage.qunit.js +1 -1
- package/test/sap/ui/core/qunit/model/Binding.qunit.js +36 -11
- package/test/sap/ui/core/qunit/model/ClientListBinding.qunit.js +2 -7
- package/test/sap/ui/core/qunit/model/ClientTreeBinding.qunit.js +2 -7
- package/test/sap/ui/core/qunit/model/CompositeDataState.qunit.js +2 -7
- package/test/sap/ui/core/qunit/model/Context.qunit.js +2 -7
- package/test/sap/ui/core/qunit/model/ContextBinding.qunit.js +2 -7
- package/test/sap/ui/core/qunit/model/FAR_CUSTOMER_LINE_ITEMS.metadata.xml +2 -0
- package/test/sap/ui/core/qunit/model/ListBinding.qunit.js +63 -6
- package/test/sap/ui/core/qunit/model/Model.qunit.js +2 -7
- package/test/sap/ui/core/qunit/model/PropertyBinding.qunit.js +40 -0
- package/test/sap/ui/core/qunit/model/TreeBinding.qunit.js +2 -7
- package/test/sap/ui/core/qunit/model/TreeBindingAdapter.qunit.js +2 -7
- package/test/sap/ui/core/qunit/mvc/XMLTemplateProcessorRequireXML.qunit.js +51 -0
- package/test/sap/ui/core/qunit/mvc/XMLView.qunit.js +9 -8
- package/test/sap/ui/core/qunit/mvc/extensions/Controllerextensions.qunit.js +4 -4
- package/test/sap/ui/core/qunit/mvc/extensions/Controllerextensions_legacy.qunit.js +4 -4
- package/test/sap/ui/core/qunit/mvc/testdata/Async.view.xml +1 -1
- package/test/sap/ui/core/qunit/mvc/testdata/AsyncTypedView.js +5 -1
- package/test/sap/ui/core/qunit/odata/AnnotationParserNoFakeService.qunit.js +2 -7
- package/test/sap/ui/core/qunit/odata/ODataMessageParser.qunit.js +1 -1
- package/test/sap/ui/core/qunit/odata/ODataMessageParserNoFakeService.qunit.js +2 -8
- package/test/sap/ui/core/qunit/odata/ODataMetadataNoFakeService.qunit.js +68 -9
- package/test/sap/ui/core/qunit/odata/type/DateTimeBase.qunit.js +24 -0
- package/test/sap/ui/core/qunit/odata/v2/Context.qunit.js +2 -7
- package/test/sap/ui/core/qunit/odata/v2/ODataContextBindingNoFakeService.qunit.js +2 -7
- package/test/sap/ui/core/qunit/odata/v2/ODataListBindingNoFakeService.qunit.js +31 -17
- package/test/sap/ui/core/qunit/odata/v2/ODataModel.integration.qunit.js +260 -56
- package/test/sap/ui/core/qunit/odata/v2/ODataModelNoFakeService.qunit.js +70 -15
- package/test/sap/ui/core/qunit/odata/v2/ODataPropertyBindingNoFakeService.qunit.js +2 -7
- package/test/sap/ui/core/qunit/odata/v2/ODataTreeBindingFlatNoFakeService.qunit.js +4 -9
- package/test/sap/ui/core/qunit/odata/v2/ODataTreeBindingNoFakeService.qunit.js +2 -7
- package/test/sap/ui/core/qunit/odata/v2/V2ODataModel.qunit.js +1 -1
- package/test/sap/ui/core/qunit/odata/v2/_CreatedContextsCache.qunit.js +2 -7
- package/test/sap/ui/core/qunit/odata/v4/AnnotationHelper.qunit.js +1 -1
- package/test/sap/ui/core/qunit/odata/v4/Context.qunit.js +55 -22
- package/test/sap/ui/core/qunit/odata/v4/ODataBinding.qunit.js +184 -151
- package/test/sap/ui/core/qunit/odata/v4/ODataContextBinding.qunit.js +60 -30
- package/test/sap/ui/core/qunit/odata/v4/ODataListBinding.qunit.js +305 -69
- package/test/sap/ui/core/qunit/odata/v4/ODataMetaModel.qunit.js +20 -69
- package/test/sap/ui/core/qunit/odata/v4/ODataModel.integration.qunit.js +1282 -255
- package/test/sap/ui/core/qunit/odata/v4/ODataModel.qunit.js +90 -61
- package/test/sap/ui/core/qunit/odata/v4/ODataModel.realOData.qunit.js +0 -3
- package/test/sap/ui/core/qunit/odata/v4/ODataParentBinding.qunit.js +283 -170
- package/test/sap/ui/core/qunit/odata/v4/ODataPropertyBinding.qunit.js +103 -78
- package/test/sap/ui/core/qunit/odata/v4/data/metadata.json +2 -1
- package/test/sap/ui/core/qunit/odata/v4/data/metadata.xml +4 -0
- package/test/sap/ui/core/qunit/odata/v4/data/metadata_special_cases.xml +2 -0
- package/test/sap/ui/core/qunit/odata/v4/lib/_AggregationCache.qunit.js +151 -1
- package/test/sap/ui/core/qunit/odata/v4/lib/_AggregationHelper.qunit.js +24 -11
- package/test/sap/ui/core/qunit/odata/v4/lib/_Cache.qunit.js +279 -458
- package/test/sap/ui/core/qunit/odata/v4/lib/_Helper.qunit.js +204 -3
- package/test/sap/ui/core/qunit/odata/v4/lib/_MetadataRequestor.qunit.js +7 -3
- package/test/sap/ui/core/qunit/odata/v4/lib/_Requestor.qunit.js +145 -26
- package/test/sap/ui/core/qunit/odata/v4/testsuite.odatav4.qunit.js +4 -0
- package/test/sap/ui/core/qunit/opa/_LogCollector.qunit.js +1 -1
- package/test/sap/ui/core/qunit/opa/matchers/LabelFor.qunit.js +4 -2
- package/test/sap/ui/core/qunit/opa/matchers/_Busy.qunit.js +129 -2
- package/test/sap/ui/core/qunit/opa/matchers/_Editable.qunit.js +5 -1
- package/test/sap/ui/core/qunit/performance/trace/FESR.qunit.js +5 -0
- package/test/sap/ui/core/qunit/resource/ResourceModel.qunit.js +17 -37
- package/test/sap/ui/core/qunit/routing/HashChanger.qunit.js +1 -6
- package/test/sap/ui/core/qunit/routing/RouterHashChanger.qunit.js +1 -10
- package/test/sap/ui/core/qunit/routing/async/Router.qunit.js +1 -22
- package/test/sap/ui/core/qunit/routing/async/Target.qunit.js +1 -4
- package/test/sap/ui/core/qunit/routing/fixture/Async1.view.xml +1 -1
- package/test/sap/ui/core/qunit/rule/model/modelSupport.qunit.js +34 -1
- package/test/sap/ui/core/qunit/testdata/fastnavigation/view/FastNavigation.view.xml +2 -2
- package/test/sap/ui/core/qunit/testdata/libraries/resourcebundle/lib1/i18n.properties +1 -0
- package/test/sap/ui/core/qunit/testdata/libraries/resourcebundle/lib1/library.js +10 -0
- package/test/sap/ui/core/qunit/testdata/libraries/resourcebundle/lib1/manifest.json +10 -0
- package/test/sap/ui/core/qunit/testdata/libraries/resourcebundle/lib2/library.js +10 -0
- package/test/sap/ui/core/qunit/testdata/libraries/resourcebundle/lib2/messagebundle.properties +1 -0
- package/test/sap/ui/core/qunit/testdata/xml-require/helper/Formatter.js +7 -4
- package/test/sap/ui/core/qunit/testdata/xml-require/view/XMLTemplateProcessorAsync_require_in_html.view.xml +36 -0
- package/test/sap/ui/core/qunit/testsuites/testsuite.databinding.qunit.js +3 -0
- package/test/sap/ui/core/qunit/testsuites/testsuite.theming.qunit.js +29 -0
- package/test/sap/ui/core/qunit/types/DateFormatTimezones.qunit.js +1381 -1570
- package/test/sap/ui/core/qunit/types/SimpleType.qunit.js +16 -2
- package/test/sap/ui/core/qunit/types/Types.qunit.js +2 -37
- package/test/sap/ui/core/qunit/types/testsuite.types.qunit.js +1 -1
- package/test/sap/ui/core/qunit/util/Popup.qunit.js +7 -11
- package/test/sap/ui/core/qunit/util/SyncPromise.qunit.js +4 -1
- package/test/sap/ui/core/qunit/util/XMLPreprocessor.qunit.js +3 -1
- package/test/sap/ui/core/qunit/util/jQuery.sap.Version.qunit.js +3 -0
- package/test/sap/ui/core/qunit/util/jQuery.sap.measure.qunit.js +16 -11
- package/test/sap/ui/core/qunit/util/reflection/BaseTreeModifier.qunit.js +1 -1
- package/test/sap/ui/core/qunit/xml/XMLListBinding.qunit.js +1 -3
- package/test/sap/ui/core/qunit/xml/XMLModel.qunit.js +4 -14
- package/test/sap/ui/core/qunit/xml/XMLPropertyBinding.qunit.js +7 -11
- package/test/sap/ui/core/qunit/xml/XMLTreeBinding.qunit.js +1 -1
- package/test/sap/ui/core/qunit/xml/XMLTwoWay.qunit.js +3 -7
- package/test/sap/ui/core/relnotes/changes-1.115.json +1 -37
- package/test/sap/ui/core/relnotes/changes-1.116.json +71 -0
- package/test/sap/ui/core/relnotes/changes-1.117.json +127 -0
- package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/firstItem-contextMenu.ref.lnk +1 -1
- package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/initial.ref.lnk +1 -1
- package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/lastItem-contextMenu.ref.lnk +1 -1
- package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/leftDownBtn-contextMenu.ref.lnk +1 -1
- package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/myButtonSample-contextMenu.ref.lnk +1 -1
- package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/rightDownBtn-contextMenu.ref.lnk +1 -1
- package/test/sap/ui/core/visual/images/HyphenationPlayground/windows/1600x1200/chrome/horizon/ltr/cozy/19_thirdParty_language_sl.ref.lnk +1 -1
- package/test/testsuite/js/samples.js +2 -0
- package/ui5.yaml +166 -1
- package/src/sap/ui/core/util/MockServerAnnotationsHandler.js +0 -45
- /package/test/sap/ui/core/qunit/bootstrap/{GlobalConfigurationSettings.js → Configuration.beforeBootstrap.qunit.js} +0 -0
|
@@ -0,0 +1,458 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* copyright
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
/* global globalThis */
|
|
6
|
+
sap.ui.define([
|
|
7
|
+
"sap/base/assert",
|
|
8
|
+
"sap/base/config",
|
|
9
|
+
"sap/base/Event",
|
|
10
|
+
"sap/base/Eventing",
|
|
11
|
+
"sap/base/Log",
|
|
12
|
+
"sap/base/i18n/Localization",
|
|
13
|
+
"sap/base/util/deepEqual"
|
|
14
|
+
], function(
|
|
15
|
+
assert,
|
|
16
|
+
BaseConfig,
|
|
17
|
+
BaseEvent,
|
|
18
|
+
Eventing,
|
|
19
|
+
Log,
|
|
20
|
+
Localization,
|
|
21
|
+
deepEqual
|
|
22
|
+
) {
|
|
23
|
+
"use strict";
|
|
24
|
+
|
|
25
|
+
var oWritableConfig = BaseConfig.getWritableInstance();
|
|
26
|
+
var mChanges;
|
|
27
|
+
var oThemeManager;
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Provides theming related API
|
|
31
|
+
*
|
|
32
|
+
* @alias module:sap/ui/core/Theming
|
|
33
|
+
* @namespace
|
|
34
|
+
* @private
|
|
35
|
+
* @ui5-restricted sap.ui.core
|
|
36
|
+
*/
|
|
37
|
+
var Theming = {
|
|
38
|
+
/**
|
|
39
|
+
* Returns the theme name
|
|
40
|
+
* @return {string} the theme name
|
|
41
|
+
* @public
|
|
42
|
+
*/
|
|
43
|
+
getTheme: function() {
|
|
44
|
+
// analyze theme parameter
|
|
45
|
+
var sTheme = oWritableConfig.get({
|
|
46
|
+
name: "sapTheme",
|
|
47
|
+
type: oWritableConfig.Type.String,
|
|
48
|
+
defaultValue: oWritableConfig.get({
|
|
49
|
+
name: "sapUiTheme",
|
|
50
|
+
type: oWritableConfig.Type.String,
|
|
51
|
+
external: true
|
|
52
|
+
}),
|
|
53
|
+
external: true
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
// empty string is a valid value wrt. the <String> type
|
|
57
|
+
// this is a semantic check if we need to default to a valid theme
|
|
58
|
+
if (sTheme === "") {
|
|
59
|
+
sTheme = "base";
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
// It's only possible to provide a themeroot via theme parameter using
|
|
63
|
+
// the initial config provider such as Global-, Bootstrap-, Meta- and
|
|
64
|
+
// URLConfigurationProvider. The themeroot is also only validated against
|
|
65
|
+
// allowedThemeOrigin in this case.
|
|
66
|
+
var iIndex = sTheme.indexOf("@");
|
|
67
|
+
if (iIndex >= 0) {
|
|
68
|
+
var sThemeRoot = validateThemeRoot(sTheme.slice(iIndex + 1));
|
|
69
|
+
sTheme = iIndex > 0 ? sTheme.slice(0, iIndex) : sTheme;
|
|
70
|
+
if (sThemeRoot !== Theming.getThemeRoot(sTheme)) {
|
|
71
|
+
Theming.setThemeRoot(sTheme, sThemeRoot);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
return normalizeTheme(sTheme, Theming.getThemeRoot(sTheme));
|
|
75
|
+
},
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Allows setting the theme name
|
|
79
|
+
* @param {string} sTheme the theme name
|
|
80
|
+
* @return {this} <code>this</code> to allow method chaining
|
|
81
|
+
* @public
|
|
82
|
+
*/
|
|
83
|
+
setTheme: function(sTheme) {
|
|
84
|
+
if (sTheme) {
|
|
85
|
+
if (sTheme.indexOf("@") !== -1) {
|
|
86
|
+
throw new TypeError("Providing a theme root as part of the theme parameter is not allowed.");
|
|
87
|
+
}
|
|
88
|
+
var bFireChange = !mChanges;
|
|
89
|
+
mChanges = mChanges || {};
|
|
90
|
+
var sOldTheme = Theming.getTheme();
|
|
91
|
+
oWritableConfig.set("sapTheme", sTheme);
|
|
92
|
+
var sNewTheme = Theming.getTheme();
|
|
93
|
+
var bThemeChanged = sOldTheme !== sNewTheme;
|
|
94
|
+
if (bThemeChanged) {
|
|
95
|
+
mChanges.theme = {
|
|
96
|
+
"new": sNewTheme,
|
|
97
|
+
"old": sOldTheme
|
|
98
|
+
};
|
|
99
|
+
} else {
|
|
100
|
+
mChanges = undefined;
|
|
101
|
+
}
|
|
102
|
+
if (bFireChange) {
|
|
103
|
+
fireChange(mChanges);
|
|
104
|
+
}
|
|
105
|
+
if (!oThemeManager && bThemeChanged) {
|
|
106
|
+
fireApplied({theme: sNewTheme});
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
return this;
|
|
110
|
+
},
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
* Returns true, if the styles of the current theme are already applied, false otherwise.
|
|
114
|
+
*
|
|
115
|
+
* If the styles are not yet applied a theme changed event will follow when the styles will be applied.
|
|
116
|
+
*
|
|
117
|
+
* @return {boolean} whether the styles of the current theme are already applied
|
|
118
|
+
* @private
|
|
119
|
+
* @ui5-restricted sap.ui.core.Core
|
|
120
|
+
*/
|
|
121
|
+
isApplied: function() {
|
|
122
|
+
return !oThemeManager || oThemeManager.themeLoaded;
|
|
123
|
+
},
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
*
|
|
127
|
+
* @param {string} sTheme The Theme
|
|
128
|
+
* @param {string} [sLib] An optional library name
|
|
129
|
+
* @private
|
|
130
|
+
* @ui5-restricted sap.ui.core.theming.ThemeManager
|
|
131
|
+
* @returns {string} The themeRoot if configured
|
|
132
|
+
*/
|
|
133
|
+
getThemeRoot: function(sTheme, sLib) {
|
|
134
|
+
var oThemeRoots = oWritableConfig.get({
|
|
135
|
+
name: "sapUiThemeRoots",
|
|
136
|
+
type: oWritableConfig.Type.Object
|
|
137
|
+
});
|
|
138
|
+
var sThemeRoot;
|
|
139
|
+
|
|
140
|
+
sTheme = sTheme || Theming.getTheme();
|
|
141
|
+
|
|
142
|
+
if (oThemeRoots[sTheme] && typeof oThemeRoots[sTheme] === "string") {
|
|
143
|
+
sThemeRoot = oThemeRoots[sTheme];
|
|
144
|
+
} else if (oThemeRoots[sTheme] && typeof oThemeRoots[sTheme] === "object") {
|
|
145
|
+
sThemeRoot = oThemeRoots[sTheme][sLib] || oThemeRoots[sTheme][""];
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
return sThemeRoot;
|
|
149
|
+
},
|
|
150
|
+
|
|
151
|
+
/**
|
|
152
|
+
* Defines the root directory from below which UI5 should load the theme with the given name.
|
|
153
|
+
* Optionally allows restricting the setting to parts of a theme covering specific control libraries.
|
|
154
|
+
*
|
|
155
|
+
* Example:
|
|
156
|
+
* <pre>
|
|
157
|
+
* sap.ui.getCore().setThemeRoot("my_theme", "https://mythemeserver.com/allThemes");
|
|
158
|
+
* sap.ui.getCore().applyTheme("my_theme");
|
|
159
|
+
* </pre>
|
|
160
|
+
*
|
|
161
|
+
* will cause the following file to be loaded (assuming that the bootstrap is configured to load
|
|
162
|
+
* libraries <code>sap.m</code> and <code>sap.ui.layout</code>):
|
|
163
|
+
* <pre>
|
|
164
|
+
* https://mythemeserver.com/allThemes/sap/ui/core/themes/my_theme/library.css
|
|
165
|
+
* https://mythemeserver.com/allThemes/sap/ui/layout/themes/my_theme/library.css
|
|
166
|
+
* https://mythemeserver.com/allThemes/sap/m/themes/my_theme/library.css
|
|
167
|
+
* </pre>
|
|
168
|
+
*
|
|
169
|
+
* If parts of the theme are at different locations (e.g. because you provide a standard theme
|
|
170
|
+
* like "sap_belize" for a custom control library and this self-made part of the standard theme is at a
|
|
171
|
+
* different location than the UI5 resources), you can also specify for which control libraries the setting
|
|
172
|
+
* should be used, by giving an array with the names of the respective control libraries as second parameter:
|
|
173
|
+
* <pre>
|
|
174
|
+
* sap.ui.getCore().setThemeRoot("sap_belize", ["my.own.library"], "https://mythemeserver.com/allThemes");
|
|
175
|
+
* </pre>
|
|
176
|
+
*
|
|
177
|
+
* This will cause the Belize theme to be loaded from the UI5 location for all standard libraries.
|
|
178
|
+
* Resources for styling the <code>my.own.library</code> controls will be loaded from the configured
|
|
179
|
+
* location:
|
|
180
|
+
* <pre>
|
|
181
|
+
* https://openui5.hana.ondemand.com/resources/sap/ui/core/themes/sap_belize/library.css
|
|
182
|
+
* https://openui5.hana.ondemand.com/resources/sap/ui/layout/themes/sap_belize/library.css
|
|
183
|
+
* https://openui5.hana.ondemand.com/resources/sap/m/themes/sap_belize/library.css
|
|
184
|
+
* https://mythemeserver.com/allThemes/my/own/library/themes/sap_belize/library.css
|
|
185
|
+
* </pre>
|
|
186
|
+
*
|
|
187
|
+
* If the custom theme should be loaded initially (via bootstrap attribute), the <code>themeRoots</code>
|
|
188
|
+
* property of the <code>window["sap-ui-config"]</code> object must be used instead of calling
|
|
189
|
+
* <code>sap.ui.getCore().setThemeRoot(...)</code> in order to configure the theme location early enough.
|
|
190
|
+
*
|
|
191
|
+
* @param {string} sThemeName Name of the theme for which to configure the location
|
|
192
|
+
* @param {string} sThemeBaseUrl Base URL below which the CSS file(s) will be loaded from
|
|
193
|
+
* @param {string[]} [aLibraryNames] Optional library names to which the configuration should be restricted
|
|
194
|
+
* @param {boolean} [bForceUpdate=false] Force updating URLs of currently loaded theme
|
|
195
|
+
* @private
|
|
196
|
+
* @ui5-restricted sap.ui.core.Core
|
|
197
|
+
*/
|
|
198
|
+
setThemeRoot: function(sThemeName, sThemeBaseUrl, aLibraryNames, bForceUpdate) {
|
|
199
|
+
assert(typeof sThemeName === "string", "sThemeName must be a string");
|
|
200
|
+
assert(typeof sThemeBaseUrl === "string", "sThemeBaseUrl must be a string");
|
|
201
|
+
|
|
202
|
+
var bFireChange = !mChanges;
|
|
203
|
+
mChanges = mChanges || {};
|
|
204
|
+
|
|
205
|
+
var oThemeRootConfigParam = {
|
|
206
|
+
name: "sapUiThemeRoots",
|
|
207
|
+
type: oWritableConfig.Type.Object
|
|
208
|
+
};
|
|
209
|
+
|
|
210
|
+
// Use get twice, for a deep copy of themeRoots object
|
|
211
|
+
// we add a new default "empty object" with each call, so we don't accidentally share it
|
|
212
|
+
var mOldThemeRoots = oWritableConfig.get(Object.assign(oThemeRootConfigParam, {defaultValue: {}}));
|
|
213
|
+
var mNewThemeRoots = oWritableConfig.get(Object.assign(oThemeRootConfigParam, {defaultValue: {}}));
|
|
214
|
+
|
|
215
|
+
// normalize parameters
|
|
216
|
+
if (typeof aLibraryNames === "boolean") {
|
|
217
|
+
bForceUpdate = aLibraryNames;
|
|
218
|
+
aLibraryNames = undefined;
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
mNewThemeRoots[sThemeName] = mNewThemeRoots[sThemeName] || {};
|
|
222
|
+
|
|
223
|
+
// Normalize theme-roots to an object in case it was initially given as a string.
|
|
224
|
+
// We only check newThemeRoots, since both old and new are identical at this point.
|
|
225
|
+
if (typeof mNewThemeRoots[sThemeName] === "string") {
|
|
226
|
+
mNewThemeRoots[sThemeName] = { "": mNewThemeRoots[sThemeName]};
|
|
227
|
+
mOldThemeRoots[sThemeName] = { "": mOldThemeRoots[sThemeName]};
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
if (aLibraryNames) {
|
|
231
|
+
// registration of URL for several libraries
|
|
232
|
+
for (var i = 0; i < aLibraryNames.length; i++) {
|
|
233
|
+
var lib = aLibraryNames[i];
|
|
234
|
+
mNewThemeRoots[sThemeName][lib] = sThemeBaseUrl;
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
} else {
|
|
238
|
+
// registration of theme default base URL
|
|
239
|
+
mNewThemeRoots[sThemeName][""] = sThemeBaseUrl;
|
|
240
|
+
}
|
|
241
|
+
if (!deepEqual(mOldThemeRoots, mNewThemeRoots)) {
|
|
242
|
+
oWritableConfig.set("sapUiThemeRoots", mNewThemeRoots);
|
|
243
|
+
if (aLibraryNames) {
|
|
244
|
+
mChanges.themeRoots = {
|
|
245
|
+
"new": Object.assign({}, mNewThemeRoots[sThemeName]),
|
|
246
|
+
"old": Object.assign({}, mOldThemeRoots[sThemeName])
|
|
247
|
+
};
|
|
248
|
+
} else {
|
|
249
|
+
mChanges.themeRoots = {
|
|
250
|
+
"new": sThemeBaseUrl,
|
|
251
|
+
"old": mOldThemeRoots[sThemeName] && mOldThemeRoots[sThemeName][""]
|
|
252
|
+
};
|
|
253
|
+
}
|
|
254
|
+
mChanges.themeRoots.forceUpdate = bForceUpdate && sThemeName === Theming.getTheme();
|
|
255
|
+
} else {
|
|
256
|
+
mChanges = undefined;
|
|
257
|
+
}
|
|
258
|
+
if (bFireChange) {
|
|
259
|
+
fireChange();
|
|
260
|
+
}
|
|
261
|
+
},
|
|
262
|
+
|
|
263
|
+
/**
|
|
264
|
+
* Fired after a theme has been applied.
|
|
265
|
+
*
|
|
266
|
+
* More precisely, this event is fired when any of the following conditions is met:
|
|
267
|
+
* <ul>
|
|
268
|
+
* <li>the initially configured theme has been applied after core init</li>
|
|
269
|
+
* <li>the theme has been changed and is now applied (see {@link #applyTheme})</li>
|
|
270
|
+
* <li>a library has been loaded dynamically after core init (e.g. with
|
|
271
|
+
* <code>sap.ui.core.Lib.load(...)</code> and the current theme
|
|
272
|
+
* has been applied for it</li>
|
|
273
|
+
* </ul>
|
|
274
|
+
*
|
|
275
|
+
* @name sap.ui.core.Theming#applied
|
|
276
|
+
* @event
|
|
277
|
+
* @param {module:sap/base/Event} oEvent
|
|
278
|
+
* @param {sap.ui.base.EventProvider} oEvent.target
|
|
279
|
+
* @param {string} oEvent.theme Theme name
|
|
280
|
+
* @public
|
|
281
|
+
*/
|
|
282
|
+
|
|
283
|
+
/**
|
|
284
|
+
* Attaches event handler <code>fnFunction</code> to the {@link #event:applied applied} event
|
|
285
|
+
*
|
|
286
|
+
* @param {function} fnFunction The function to be called, when the event occurs
|
|
287
|
+
* @private
|
|
288
|
+
* @ui5-restricted sap.ui.core.Core
|
|
289
|
+
*/
|
|
290
|
+
attachAppliedOnce: function(fnFunction) {
|
|
291
|
+
var sId = "applied";
|
|
292
|
+
if (oThemeManager) {
|
|
293
|
+
Theming.attachEventOnce(sId, fnFunction);
|
|
294
|
+
} else {
|
|
295
|
+
fnFunction.call(Theming, new BaseEvent(sId, Theming, {theme: Theming.getTheme()}));
|
|
296
|
+
}
|
|
297
|
+
},
|
|
298
|
+
|
|
299
|
+
/**
|
|
300
|
+
* Attaches event handler <code>fnFunction</code> to the {@link #event:applied applied} event
|
|
301
|
+
*
|
|
302
|
+
* @param {function} fnFunction The function to be called, when the event occurs
|
|
303
|
+
* @public
|
|
304
|
+
*/
|
|
305
|
+
attachApplied: function(fnFunction) {
|
|
306
|
+
var sId = "applied";
|
|
307
|
+
Theming.attachEvent(sId, fnFunction);
|
|
308
|
+
if (!oThemeManager) {
|
|
309
|
+
fnFunction.call(Theming, new BaseEvent(sId, Theming, {theme: Theming.getTheme()}));
|
|
310
|
+
}
|
|
311
|
+
},
|
|
312
|
+
/**
|
|
313
|
+
* Detaches event handler <code>fnFunction</code> from the {@link #event:applied applied} event
|
|
314
|
+
*
|
|
315
|
+
* The passed function must match the one used for event registration.
|
|
316
|
+
*
|
|
317
|
+
* @param {function} fnFunction The function to be called, when the event occurs
|
|
318
|
+
* @public
|
|
319
|
+
*/
|
|
320
|
+
detachApplied: function(fnFunction) {
|
|
321
|
+
Theming.detachEvent("applied", fnFunction);
|
|
322
|
+
},
|
|
323
|
+
|
|
324
|
+
/**
|
|
325
|
+
* The <code>change</code> event is fired, when the configuration options are changed.
|
|
326
|
+
*
|
|
327
|
+
* @name module:sap/ui/core/Theming.change
|
|
328
|
+
* @event
|
|
329
|
+
* @param {module:sap/base/Event} oEvent
|
|
330
|
+
* @param {sap.ui.base.EventProvider} oEvent.target
|
|
331
|
+
* @param {object} oEvent.theme theme object
|
|
332
|
+
* @param {string} oEvent.theme.new new theme name
|
|
333
|
+
* @param {string} oEvent.theme.old old theme name
|
|
334
|
+
* @param {object} oEvent.themeroots themeroots object
|
|
335
|
+
* @param {object} oEvent.themeroots.new new themeroots
|
|
336
|
+
* @param {object} oEvent.themeroots.old old themeroots
|
|
337
|
+
* @private
|
|
338
|
+
* @ui5-restricted sap.ui.core.theming.ThemeManager
|
|
339
|
+
*/
|
|
340
|
+
|
|
341
|
+
/**
|
|
342
|
+
* Attaches the <code>fnFunction</code> event handler to the {@link #event:change change} event
|
|
343
|
+
* of <code>sap.ui.core.Theming</code>.
|
|
344
|
+
*
|
|
345
|
+
* @param {function} fnFunction The function to be called when the event occurs
|
|
346
|
+
* @private
|
|
347
|
+
* @ui5-restricted sap.ui.core.theming.ThemeManager
|
|
348
|
+
*/
|
|
349
|
+
attachChange: function(fnFunction) {
|
|
350
|
+
Theming.attachEvent("change", fnFunction);
|
|
351
|
+
},
|
|
352
|
+
/**
|
|
353
|
+
* Detaches event handler <code>fnFunction</code> from the {@link #event:change change} event of
|
|
354
|
+
* this <code>sap.ui.core.Theming</code>.
|
|
355
|
+
*
|
|
356
|
+
* @param {function} fnFunction Function to be called when the event occurs
|
|
357
|
+
* @private
|
|
358
|
+
* @ui5-restricted sap.ui.core.theming.ThemeManager
|
|
359
|
+
*/
|
|
360
|
+
detachChange: function(fnFunction) {
|
|
361
|
+
Theming.detachEvent("change", fnFunction);
|
|
362
|
+
},
|
|
363
|
+
|
|
364
|
+
|
|
365
|
+
/**
|
|
366
|
+
* Notify content density changes
|
|
367
|
+
*
|
|
368
|
+
* @private
|
|
369
|
+
* @ui5-restricted sap.ui.core.Core
|
|
370
|
+
*/
|
|
371
|
+
notifyContentDensityChanged: function() {
|
|
372
|
+
fireApplied({theme: Theming.getTheme()});
|
|
373
|
+
},
|
|
374
|
+
|
|
375
|
+
/** Register a ThemeManager instance
|
|
376
|
+
* @param {sap.ui.core.theming.ThemeManager} oManager The ThemeManager to register.
|
|
377
|
+
* @private
|
|
378
|
+
* @ui5-restricted sap.ui.core.theming.ThemeManager
|
|
379
|
+
*/
|
|
380
|
+
registerThemeManager: function(oManager) {
|
|
381
|
+
oThemeManager = oManager;
|
|
382
|
+
oThemeManager.attachEvent("ThemeChanged", function(oEvent) {
|
|
383
|
+
fireApplied(BaseEvent.getParameters(oEvent));
|
|
384
|
+
});
|
|
385
|
+
// handle RTL changes
|
|
386
|
+
Localization.attachChange(function(oEvent){
|
|
387
|
+
var bRTL = oEvent.rtl;
|
|
388
|
+
if (bRTL !== undefined) {
|
|
389
|
+
oThemeManager._updateThemeUrls(Theming.getTheme());
|
|
390
|
+
}
|
|
391
|
+
});
|
|
392
|
+
}
|
|
393
|
+
};
|
|
394
|
+
|
|
395
|
+
function fireChange() {
|
|
396
|
+
if (mChanges) {
|
|
397
|
+
Theming.fireEvent("change", mChanges);
|
|
398
|
+
mChanges = undefined;
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
|
|
402
|
+
function fireApplied(oTheme) {
|
|
403
|
+
Theming.fireEvent("applied", oTheme);
|
|
404
|
+
}
|
|
405
|
+
|
|
406
|
+
function validateThemeOrigin(sOrigin, bNoProtocol) {
|
|
407
|
+
var sAllowedOrigins = oWritableConfig.get({name: "sapAllowedThemeOrigins", type: oWritableConfig.Type.String});
|
|
408
|
+
return !!sAllowedOrigins && sAllowedOrigins.split(",").some(function(sAllowedOrigin) {
|
|
409
|
+
try {
|
|
410
|
+
sAllowedOrigin = bNoProtocol && !sAllowedOrigin.startsWith("//") ? "//" + sAllowedOrigin : sAllowedOrigin;
|
|
411
|
+
return sAllowedOrigin === "*" || sOrigin === new URL(sAllowedOrigin.trim(), globalThis.location.href).origin;
|
|
412
|
+
} catch (error) {
|
|
413
|
+
Log.error("sapAllowedThemeOrigin provides invalid theme origin: " + sAllowedOrigin);
|
|
414
|
+
return false;
|
|
415
|
+
}
|
|
416
|
+
});
|
|
417
|
+
}
|
|
418
|
+
|
|
419
|
+
function validateThemeRoot(sThemeRoot) {
|
|
420
|
+
var bNoProtocol = sThemeRoot.startsWith("//"),
|
|
421
|
+
oThemeRoot,
|
|
422
|
+
sPath;
|
|
423
|
+
|
|
424
|
+
try {
|
|
425
|
+
// Remove search query as they are not supported for themeRoots/resourceRoots
|
|
426
|
+
oThemeRoot = new URL(sThemeRoot, globalThis.location.href);
|
|
427
|
+
oThemeRoot.search = "";
|
|
428
|
+
|
|
429
|
+
// If the URL is absolute, validate the origin
|
|
430
|
+
if (oThemeRoot.origin && validateThemeOrigin(oThemeRoot.origin, bNoProtocol)) {
|
|
431
|
+
sPath = oThemeRoot.toString();
|
|
432
|
+
} else {
|
|
433
|
+
// For relative URLs or not allowed origins
|
|
434
|
+
// ensure same origin and resolve relative paths based on origin
|
|
435
|
+
oThemeRoot = new URL(oThemeRoot.pathname, globalThis.location.href);
|
|
436
|
+
sPath = oThemeRoot.toString();
|
|
437
|
+
}
|
|
438
|
+
|
|
439
|
+
// legacy compatibility: support for "protocol-less" urls (previously handled by URI.js)
|
|
440
|
+
if (bNoProtocol) {
|
|
441
|
+
sPath = sPath.replace(oThemeRoot.protocol, "");
|
|
442
|
+
}
|
|
443
|
+
return sPath + (sPath.endsWith('/') ? '' : '/') + "UI5/";
|
|
444
|
+
} catch (e) {
|
|
445
|
+
// malformed URL are also not accepted
|
|
446
|
+
}
|
|
447
|
+
}
|
|
448
|
+
|
|
449
|
+
function normalizeTheme(sTheme, sThemeBaseUrl) {
|
|
450
|
+
if ( sTheme && sThemeBaseUrl == null && sTheme.match(/^sap_corbu$/i) ) {
|
|
451
|
+
return "sap_fiori_3";
|
|
452
|
+
}
|
|
453
|
+
return sTheme;
|
|
454
|
+
}
|
|
455
|
+
|
|
456
|
+
Eventing.apply(Theming);
|
|
457
|
+
return Theming;
|
|
458
|
+
});
|
package/src/sap/ui/core/Title.js
CHANGED
|
@@ -30,7 +30,7 @@ sap.ui.define([
|
|
|
30
30
|
* @class
|
|
31
31
|
* Abstract class that can be extended in order to implement any extended tooltip. For example, RichTooltip Control is based on it. It provides the opening/closing behavior and the main "text" property.
|
|
32
32
|
* @extends sap.ui.core.Control
|
|
33
|
-
* @version 1.
|
|
33
|
+
* @version 1.117.0
|
|
34
34
|
*
|
|
35
35
|
* @public
|
|
36
36
|
* @alias sap.ui.core.TooltipBase
|
|
@@ -170,7 +170,7 @@ sap.ui.define([
|
|
|
170
170
|
*
|
|
171
171
|
* @extends sap.ui.base.ManagedObject
|
|
172
172
|
* @author SAP SE
|
|
173
|
-
* @version 1.
|
|
173
|
+
* @version 1.117.0
|
|
174
174
|
* @param {object} [oRootNode] reference to the DOM element that should be 'hosting' the UI Area.
|
|
175
175
|
* @public
|
|
176
176
|
* @alias sap.ui.core.UIArea
|
|
@@ -18,7 +18,7 @@ sap.ui.define(['./ComponentMetadata', 'sap/ui/core/mvc/ViewType'],
|
|
|
18
18
|
* @experimental Since 1.15.1. The Component concept is still under construction, so some implementation details can be changed in future.
|
|
19
19
|
* @class
|
|
20
20
|
* @author SAP SE
|
|
21
|
-
* @version 1.
|
|
21
|
+
* @version 1.117.0
|
|
22
22
|
* @since 1.15.1
|
|
23
23
|
* @alias sap.ui.core.UIComponentMetadata
|
|
24
24
|
* @extends sap.ui.core.ComponentMetadata
|
|
@@ -20,7 +20,7 @@ sap.ui.define(['./LayoutData', './library'],
|
|
|
20
20
|
* @class
|
|
21
21
|
* Allows to add multiple LayoutData to one control in case that an easy switch of layouts (e.g. in a Form) is needed.
|
|
22
22
|
* @extends sap.ui.core.LayoutData
|
|
23
|
-
* @version 1.
|
|
23
|
+
* @version 1.117.0
|
|
24
24
|
*
|
|
25
25
|
* @public
|
|
26
26
|
* @since 1.9.2
|
|
@@ -146,7 +146,7 @@ sap.ui.define([
|
|
|
146
146
|
* @extends sap.ui.core.Control
|
|
147
147
|
*
|
|
148
148
|
* @author SAP SE
|
|
149
|
-
* @version 1.
|
|
149
|
+
* @version 1.117.0
|
|
150
150
|
* @since 1.56.0
|
|
151
151
|
* @alias sap.ui.core.XMLComposite
|
|
152
152
|
* @see {@link topic:b83a4dcb7d0e46969027345b8d32fd44 XML Composite Controls}
|
|
@@ -30,7 +30,7 @@ sap.ui.define([
|
|
|
30
30
|
* @param {object} oClassInfo static info to construct the metadata from
|
|
31
31
|
*
|
|
32
32
|
* @author SAP SE
|
|
33
|
-
* @version 1.
|
|
33
|
+
* @version 1.117.0
|
|
34
34
|
* @since 1.50.0
|
|
35
35
|
* @alias sap.ui.core.XMLCompositeMetadata
|
|
36
36
|
* @extends sap.ui.core.ElementMetadata
|
|
@@ -411,6 +411,7 @@ function(
|
|
|
411
411
|
+ oRequireContext[sKey] + "'under key '" + sKey + "'";
|
|
412
412
|
return true;
|
|
413
413
|
}
|
|
414
|
+
return false;
|
|
414
415
|
});
|
|
415
416
|
}
|
|
416
417
|
|
|
@@ -597,6 +598,17 @@ function(
|
|
|
597
598
|
}
|
|
598
599
|
};
|
|
599
600
|
|
|
601
|
+
// We might have a set of already resolved "core:require" modules given from outside.
|
|
602
|
+
// This only happens when a new XMLView instance is used as a wrapper for HTML nodes, in this case
|
|
603
|
+
// the "core:require" modules need to be propagated down into the nested XMLView.
|
|
604
|
+
// We now need to merge the set of passed "core:require" modules with the ones defined on our root element,
|
|
605
|
+
// with our own modules having priority in case of duplicate aliases.
|
|
606
|
+
if (oParseConfig?.settings?.requireContext) {
|
|
607
|
+
pResultChain = pResultChain.then((mRequireContext) => {
|
|
608
|
+
return Object.assign({}, oParseConfig.settings.requireContext, mRequireContext);
|
|
609
|
+
});
|
|
610
|
+
}
|
|
611
|
+
|
|
600
612
|
bAsync = bAsync && !!oView._sProcessingMode;
|
|
601
613
|
Log.debug("XML processing mode is " + (oView._sProcessingMode || "default") + ".", "", "XMLTemplateProcessor");
|
|
602
614
|
Log.debug("XML will be processed " + (bAsync ? "asynchronously" : "synchronously") + ".", "", "XMLTemplateProcessor");
|
|
@@ -891,7 +903,8 @@ function(
|
|
|
891
903
|
// write attributes
|
|
892
904
|
for (i = 0; i < node.attributes.length; i++) {
|
|
893
905
|
var attr = node.attributes[i];
|
|
894
|
-
|
|
906
|
+
// id and core:require should not be output to DOM
|
|
907
|
+
if ( attr.name !== "id" && (attr.localName !== "require" || attr.namespaceURI !== CORE_NAMESPACE)) {
|
|
895
908
|
rm.attr(bXHTML ? attr.name.toLowerCase() : attr.name, attr.value);
|
|
896
909
|
}
|
|
897
910
|
}
|
|
@@ -906,6 +919,15 @@ function(
|
|
|
906
919
|
} else {
|
|
907
920
|
rm.openEnd();
|
|
908
921
|
|
|
922
|
+
var pSelfRequireContext = parseAndLoadRequireContext(node, bAsync);
|
|
923
|
+
|
|
924
|
+
if (pSelfRequireContext) {
|
|
925
|
+
pRequireContext = SyncPromise.all([pRequireContext, pSelfRequireContext])
|
|
926
|
+
.then(function(aContexts) {
|
|
927
|
+
return Object.assign({}, ...aContexts);
|
|
928
|
+
});
|
|
929
|
+
}
|
|
930
|
+
|
|
909
931
|
// write children
|
|
910
932
|
// For HTMLTemplateElement nodes, skip the associated DocumentFragment node
|
|
911
933
|
var oContent = node instanceof HTMLTemplateElement ? node.content : node;
|
|
@@ -950,10 +972,11 @@ function(
|
|
|
950
972
|
} else {
|
|
951
973
|
// plain HTML node - create a new View control
|
|
952
974
|
// creates a view instance, but makes sure the new view receives the correct owner component
|
|
953
|
-
var fnCreateView = function (oViewClass) {
|
|
975
|
+
var fnCreateView = function (oViewClass, oRequireContext) {
|
|
954
976
|
var mViewParameters = {
|
|
955
977
|
id: id ? getId(oView, node, id) : undefined,
|
|
956
978
|
xmlNode: node,
|
|
979
|
+
requireContext: oRequireContext,
|
|
957
980
|
containingView: oView._oContainingView,
|
|
958
981
|
processingMode: oView._sProcessingMode // add processing mode, so it can be propagated to subviews inside the HTML block
|
|
959
982
|
};
|
|
@@ -968,16 +991,16 @@ function(
|
|
|
968
991
|
return new oViewClass(mViewParameters);
|
|
969
992
|
};
|
|
970
993
|
|
|
971
|
-
return pRequireContext.then(function() {
|
|
994
|
+
return pRequireContext.then(function(oRequireContext) {
|
|
972
995
|
if (bAsync) {
|
|
973
996
|
return new Promise(function (resolve, reject) {
|
|
974
997
|
sap.ui.require(["sap/ui/core/mvc/XMLView"], function(XMLView) {
|
|
975
|
-
resolve([fnCreateView(XMLView)]);
|
|
998
|
+
resolve([fnCreateView(XMLView, oRequireContext)]);
|
|
976
999
|
}, reject);
|
|
977
1000
|
});
|
|
978
1001
|
} else {
|
|
979
1002
|
var XMLView = sap.ui.requireSync("sap/ui/core/mvc/XMLView"); // legacy-relevant: Sync path
|
|
980
|
-
return [fnCreateView(XMLView)];
|
|
1003
|
+
return [fnCreateView(XMLView, oRequireContext)];
|
|
981
1004
|
}
|
|
982
1005
|
});
|
|
983
1006
|
}
|