@openui5/sap.ui.core 1.138.0 → 1.140.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/README.md +1 -1
- package/REUSE.toml +8 -1
- package/THIRDPARTY.txt +72 -66
- package/package.json +2 -2
- package/src/jquery.sap.global.js +1 -1
- package/src/jquery.sap.mobile.js +0 -8
- package/src/jquery.sap.properties.js +1 -1
- package/src/jquery.sap.resources.js +1 -1
- package/src/jquery.sap.script.js +1 -1
- package/src/jquery.sap.storage.js +3 -3
- package/src/sap/base/Event.js +1 -1
- package/src/sap/base/Eventing.js +1 -1
- package/src/sap/base/config.js +22 -1
- package/src/sap/base/i18n/LanguageFallback.js +18 -2
- package/src/sap/base/i18n/LanguageTag.js +11 -5
- package/src/sap/base/i18n/Localization.js +36 -9
- package/src/sap/base/i18n/ResourceBundle.js +59 -35
- package/src/sap/base/i18n/date/TimezoneUtils.js +1 -1
- package/src/sap/base/security/URLListValidator.js +7 -3
- 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 +3 -3
- package/src/sap/ui/Global.js +3 -3
- package/src/sap/ui/base/BindingInfo.js +6 -1
- package/src/sap/ui/base/BindingParser.js +1 -1
- package/src/sap/ui/base/DataType.js +27 -2
- 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 +49 -12
- package/src/sap/ui/base/ManagedObjectMetadata.js +1 -1
- 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/OwnStatics.js +49 -0
- package/src/sap/ui/core/.library +8 -3
- package/src/sap/ui/core/BlockLayerUtils.js +2 -2
- package/src/sap/ui/core/BusyIndicator.js +1 -1
- package/src/sap/ui/core/Component.js +11 -9
- package/src/sap/ui/core/ComponentContainer.js +13 -3
- 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 +1 -1
- package/src/sap/ui/core/Control.js +1 -1
- package/src/sap/ui/core/Core.js +2 -11
- 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 +10 -4
- 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/Fragment.js +10 -8
- 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/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/Lib.js +54 -132
- 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 +1 -1
- package/src/sap/ui/core/LocaleData.js +1 -1
- package/src/sap/ui/core/Manifest.js +1 -1
- package/src/sap/ui/core/Message.js +1 -1
- package/src/sap/ui/core/RenderManager.js +1 -1
- package/src/sap/ui/core/Renderer.js +1 -1
- package/src/sap/ui/core/ResizeHandler.js +1 -1
- package/src/sap/ui/core/ScrollBar.js +1 -1
- package/src/sap/ui/core/SeparatorItem.js +1 -1
- package/src/sap/ui/core/Theming.js +145 -76
- 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 +6 -2
- 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 +1 -1
- package/src/sap/ui/core/date/UI5Date.js +1 -1
- package/src/sap/ui/core/delegate/ItemNavigation.js +1 -1
- package/src/sap/ui/core/delegate/ScrollEnablement.js +1 -1
- package/src/sap/ui/core/dnd/DragDropBase.js +1 -1
- package/src/sap/ui/core/dnd/DragDropInfo.js +1 -1
- package/src/sap/ui/core/dnd/DragInfo.js +1 -1
- package/src/sap/ui/core/dnd/DropInfo.js +1 -1
- package/src/sap/ui/core/format/FormatUtils.js +1 -1
- package/src/sap/ui/core/format/NumberFormat.js +44 -20
- package/src/sap/ui/core/format/TimezoneUtil.js +1 -1
- package/src/sap/ui/core/getCompatibilityVersion.js +1 -1
- package/src/sap/ui/core/hyphenation/Hyphenation.js +1 -1
- package/src/sap/ui/core/i18n/interaction_ar.xml +1 -1
- package/src/sap/ui/core/interaction/KeyboardInteractionDisplay.js +64 -37
- package/src/sap/ui/core/library.js +3 -3
- package/src/sap/ui/core/message/ControlMessageProcessor.js +1 -1
- package/src/sap/ui/core/message/Message.js +1 -1
- package/src/sap/ui/core/message/MessageManager.js +1 -1
- package/src/sap/ui/core/message/MessageParser.js +1 -1
- package/src/sap/ui/core/message/MessageProcessor.js +1 -1
- package/src/sap/ui/core/messagebundle.properties +58 -28
- package/src/sap/ui/core/messagebundle_ar.properties +26 -11
- package/src/sap/ui/core/messagebundle_bg.properties +21 -6
- package/src/sap/ui/core/messagebundle_ca.properties +24 -9
- package/src/sap/ui/core/messagebundle_cnr.properties +25 -10
- package/src/sap/ui/core/messagebundle_cs.properties +24 -9
- package/src/sap/ui/core/messagebundle_cy.properties +24 -9
- package/src/sap/ui/core/messagebundle_da.properties +21 -6
- package/src/sap/ui/core/messagebundle_de.properties +16 -1
- package/src/sap/ui/core/messagebundle_el.properties +26 -11
- package/src/sap/ui/core/messagebundle_en.properties +24 -9
- package/src/sap/ui/core/messagebundle_en_GB.properties +24 -9
- package/src/sap/ui/core/messagebundle_en_US_saprigi.properties +24 -9
- package/src/sap/ui/core/messagebundle_es.properties +21 -6
- package/src/sap/ui/core/messagebundle_es_MX.properties +24 -9
- package/src/sap/ui/core/messagebundle_et.properties +31 -16
- package/src/sap/ui/core/messagebundle_fi.properties +22 -7
- package/src/sap/ui/core/messagebundle_fr.properties +22 -7
- package/src/sap/ui/core/messagebundle_fr_CA.properties +20 -5
- package/src/sap/ui/core/messagebundle_hi.properties +24 -9
- package/src/sap/ui/core/messagebundle_hr.properties +20 -5
- package/src/sap/ui/core/messagebundle_hu.properties +23 -8
- package/src/sap/ui/core/messagebundle_id.properties +20 -5
- package/src/sap/ui/core/messagebundle_it.properties +23 -8
- package/src/sap/ui/core/messagebundle_iw.properties +21 -6
- package/src/sap/ui/core/messagebundle_ja.properties +19 -4
- package/src/sap/ui/core/messagebundle_kk.properties +25 -10
- package/src/sap/ui/core/messagebundle_ko.properties +26 -11
- package/src/sap/ui/core/messagebundle_lt.properties +20 -5
- package/src/sap/ui/core/messagebundle_lv.properties +22 -7
- package/src/sap/ui/core/messagebundle_mk.properties +25 -10
- package/src/sap/ui/core/messagebundle_ms.properties +24 -9
- package/src/sap/ui/core/messagebundle_nl.properties +22 -7
- package/src/sap/ui/core/messagebundle_no.properties +22 -7
- package/src/sap/ui/core/messagebundle_pl.properties +19 -4
- package/src/sap/ui/core/messagebundle_pt.properties +18 -3
- package/src/sap/ui/core/messagebundle_pt_PT.properties +18 -3
- package/src/sap/ui/core/messagebundle_ro.properties +24 -9
- package/src/sap/ui/core/messagebundle_ru.properties +19 -4
- package/src/sap/ui/core/messagebundle_sh.properties +25 -10
- package/src/sap/ui/core/messagebundle_sk.properties +24 -9
- package/src/sap/ui/core/messagebundle_sl.properties +20 -5
- package/src/sap/ui/core/messagebundle_sr.properties +25 -10
- package/src/sap/ui/core/messagebundle_sv.properties +23 -8
- package/src/sap/ui/core/messagebundle_th.properties +20 -5
- package/src/sap/ui/core/messagebundle_tr.properties +20 -5
- package/src/sap/ui/core/messagebundle_uk.properties +22 -7
- package/src/sap/ui/core/messagebundle_vi.properties +26 -11
- package/src/sap/ui/core/messagebundle_zh_CN.properties +24 -9
- package/src/sap/ui/core/messagebundle_zh_TW.properties +26 -11
- package/src/sap/ui/core/mvc/Controller.js +5 -3
- package/src/sap/ui/core/mvc/HTMLView.js +6 -2
- package/src/sap/ui/core/mvc/JSONView.js +6 -2
- package/src/sap/ui/core/mvc/JSView.js +6 -3
- package/src/sap/ui/core/mvc/TemplateView.js +1 -1
- package/src/sap/ui/core/mvc/View.js +63 -20
- package/src/sap/ui/core/mvc/XMLView.js +6 -2
- package/src/sap/ui/core/mvc/_ViewFactory.js +8 -4
- package/src/sap/ui/core/plugin/DeclarativeSupport.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 +1 -1
- package/src/sap/ui/core/routing/Router.js +19 -1
- package/src/sap/ui/core/search/OpenSearchProvider.js +1 -1
- package/src/sap/ui/core/search/SearchProvider.js +1 -1
- package/src/sap/ui/core/service/Service.js +1 -1
- package/src/sap/ui/core/service/ServiceFactory.js +1 -1
- package/src/sap/ui/core/service/ServiceFactoryRegistry.js +1 -1
- package/src/sap/ui/core/support/Plugin.js +1 -1
- package/src/sap/ui/core/support/Support.js +1 -1
- package/src/sap/ui/core/support/plugins/ControlTree.js +1 -1
- package/src/sap/ui/core/support/plugins/Interaction.js +1 -1
- package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -1
- package/src/sap/ui/core/support/plugins/Performance.js +1 -1
- package/src/sap/ui/core/support/plugins/Selector.js +1 -1
- package/src/sap/ui/core/support/plugins/TechInfo.js +1 -1
- package/src/sap/ui/core/support/plugins/Trace.js +1 -1
- package/src/sap/ui/core/support/plugins/ViewInfo.js +1 -1
- package/src/sap/ui/core/themes/base/base.less +6 -6
- package/src/sap/ui/core/themes/base/shared.less +4 -1
- package/src/sap/ui/core/themes/base/skeleton.less +3 -3
- package/src/sap/ui/core/theming/Parameters.js +717 -755
- package/src/sap/ui/core/theming/ThemeHelper.js +0 -77
- package/src/sap/ui/core/theming/ThemeManager.js +535 -526
- package/src/sap/ui/core/tmpl/DOMAttribute.js +1 -1
- package/src/sap/ui/core/tmpl/DOMElement.js +1 -1
- package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +1 -1
- package/src/sap/ui/core/tmpl/Template.js +1 -1
- package/src/sap/ui/core/tmpl/TemplateControl.js +1 -1
- package/src/sap/ui/core/util/AsyncHintsHelper.js +1 -1
- package/src/sap/ui/core/util/Export.js +1 -1
- package/src/sap/ui/core/util/ExportCell.js +1 -1
- package/src/sap/ui/core/util/ExportColumn.js +1 -1
- package/src/sap/ui/core/util/ExportRow.js +1 -1
- package/src/sap/ui/core/util/ExportType.js +1 -1
- package/src/sap/ui/core/util/ExportTypeCSV.js +1 -1
- package/src/sap/ui/core/util/File.js +1 -1
- package/src/sap/ui/core/util/LibraryInfo.js +1 -1
- package/src/sap/ui/core/util/MockServer.js +1 -1
- package/src/sap/ui/core/util/PasteHelper.js +1 -1
- package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +1 -1
- package/src/sap/ui/core/util/serializer/Serializer.js +1 -1
- package/src/sap/ui/core/util/serializer/ViewSerializer.js +1 -1
- package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +1 -1
- package/src/sap/ui/core/util/serializer/delegate/Delegate.js +1 -1
- package/src/sap/ui/core/util/serializer/delegate/HTML.js +1 -1
- package/src/sap/ui/core/util/serializer/delegate/XML.js +1 -1
- package/src/sap/ui/core/webc/WebComponent.js +93 -45
- package/src/sap/ui/core/webc/WebComponentMetadata.js +40 -6
- package/src/sap/ui/core/ws/ReadyState.js +1 -1
- package/src/sap/ui/core/ws/SapPcpWebSocket.js +1 -1
- package/src/sap/ui/core/ws/WebSocket.js +1 -1
- package/src/sap/ui/debug/ControlTree.js +1 -1
- package/src/sap/ui/debug/DebugEnv.js +1 -1
- package/src/sap/ui/debug/PropertyList.js +1 -1
- package/src/sap/ui/dom/findTabbable.js +1 -1
- package/src/sap/ui/dom/includeStylesheet.js +4 -1
- package/src/sap/ui/model/ClientModel.js +2 -2
- 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/Filter.js +55 -35
- package/src/sap/ui/model/FilterOperator.js +79 -9
- package/src/sap/ui/model/MetaModel.js +1 -1
- package/src/sap/ui/model/Model.js +7 -7
- package/src/sap/ui/model/SelectionModel.js +1 -1
- package/src/sap/ui/model/SimpleType.js +1 -1
- package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
- package/src/sap/ui/model/Type.js +1 -1
- package/src/sap/ui/model/json/JSONModel.js +1 -1
- package/src/sap/ui/model/json/JSONPropertyBinding.js +14 -2
- package/src/sap/ui/model/json/TypedJSONContext.js +16 -0
- package/src/sap/ui/model/json/TypedJSONModel.js +16 -0
- package/src/sap/ui/model/message/MessageModel.js +1 -1
- package/src/sap/ui/model/odata/ODataAnnotations.js +1 -1
- package/src/sap/ui/model/odata/ODataMessageParser.js +1 -1
- package/src/sap/ui/model/odata/ODataMetaModel.js +1 -1
- package/src/sap/ui/model/odata/ODataMetadata.js +4 -4
- package/src/sap/ui/model/odata/ODataModel.js +3 -3
- package/src/sap/ui/model/odata/ODataTreeBindingFlat.js +9 -8
- package/src/sap/ui/model/odata/_AnnotationHelperExpression.js +2 -2
- package/src/sap/ui/model/odata/type/Boolean.js +1 -1
- package/src/sap/ui/model/odata/type/Byte.js +1 -1
- package/src/sap/ui/model/odata/type/Currency.js +1 -1
- package/src/sap/ui/model/odata/type/Date.js +1 -1
- package/src/sap/ui/model/odata/type/DateTime.js +1 -1
- package/src/sap/ui/model/odata/type/DateTimeBase.js +1 -1
- package/src/sap/ui/model/odata/type/DateTimeOffset.js +1 -1
- package/src/sap/ui/model/odata/type/DateTimeWithTimezone.js +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 +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/v2/Context.js +1 -1
- package/src/sap/ui/model/odata/v2/ODataAnnotations.js +17 -11
- package/src/sap/ui/model/odata/v2/ODataContextBinding.js +2 -2
- package/src/sap/ui/model/odata/v2/ODataListBinding.js +2 -2
- package/src/sap/ui/model/odata/v2/ODataModel.js +44 -61
- package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +82 -60
- package/src/sap/ui/model/odata/v4/Context.js +19 -15
- package/src/sap/ui/model/odata/v4/ODataBinding.js +2 -2
- package/src/sap/ui/model/odata/v4/ODataContextBinding.js +4 -4
- package/src/sap/ui/model/odata/v4/ODataListBinding.js +26 -14
- package/src/sap/ui/model/odata/v4/ODataMetaModel.js +38 -23
- package/src/sap/ui/model/odata/v4/ODataModel.js +2 -2
- package/src/sap/ui/model/odata/v4/ODataParentBinding.js +34 -7
- package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +1 -1
- package/src/sap/ui/model/odata/v4/ODataUtils.js +2 -2
- package/src/sap/ui/model/odata/v4/_AnnotationHelperExpression.js +1 -1
- package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +78 -26
- package/src/sap/ui/model/odata/v4/lib/_AggregationHelper.js +10 -7
- package/src/sap/ui/model/odata/v4/lib/_Cache.js +32 -27
- package/src/sap/ui/model/odata/v4/lib/_Helper.js +50 -32
- package/src/sap/ui/model/odata/v4/lib/_MinMaxHelper.js +1 -1
- package/src/sap/ui/model/odata/v4/lib/_Requestor.js +19 -9
- 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 +19 -5
- package/src/sap/ui/model/xml/XMLModel.js +1 -1
- package/src/sap/ui/qunit/utils/ControlIterator.js +1 -2
- package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +1 -1
- package/src/sap/ui/test/TestUtils.js +27 -15
- package/src/sap/ui/test/generic/GenericTestCollection.js +11 -1
- package/src/sap/ui/test/generic/TestBase.js +1 -1
- package/src/sap/ui/test/generic/Utils.js +6 -6
- package/src/sap/ui/test/opaQunit.js +3 -0
- package/src/sap/ui/thirdparty/jquery.js +1 -1
- package/src/sap/ui/thirdparty/qunit-2.js +4 -1
- package/src/sap/ui/util/Mobile.js +0 -9
- package/src/sap/ui/util/Storage.js +1 -1
- package/src/ui5loader-autoconfig.js +49 -42
- package/src/ui5loader.js +1 -1
- package/ui5.yaml +0 -1
- package/src/sap/ui/base/_runWithOwner.js +0 -43
- package/src/sap/ui/core/plugin/LessSupport.js +0 -542
|
@@ -1,542 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* OpenUI5
|
|
3
|
-
* (c) Copyright 2025 SAP SE or an SAP affiliate company.
|
|
4
|
-
* Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* FEATURE TO INCREASE DEVELOPMENT EXPERIENCE! NO PRODUCTIVE USAGE ALLOWED!
|
|
9
|
-
* @fileoverview
|
|
10
|
-
* @deprecated As of version 1.120
|
|
11
|
-
*/
|
|
12
|
-
(function() {
|
|
13
|
-
"use strict";
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* wraps the definition of the LessSupport in order to be able to delay
|
|
17
|
-
* the definition until the body is loaded and sap.ui.define is available
|
|
18
|
-
*/
|
|
19
|
-
function defineLessSupport() {
|
|
20
|
-
|
|
21
|
-
// Provides class sap.ui.core.plugin.LessSupport
|
|
22
|
-
sap.ui.define('sap/ui/core/plugin/LessSupport', [
|
|
23
|
-
'sap/ui/thirdparty/jquery',
|
|
24
|
-
'sap/ui/core/theming/ThemeManager',
|
|
25
|
-
'sap/ui/core/theming/ThemeHelper',
|
|
26
|
-
'sap/ui/core/Theming',
|
|
27
|
-
'sap/base/config',
|
|
28
|
-
'sap/base/Log',
|
|
29
|
-
'sap/base/util/syncFetch',
|
|
30
|
-
'sap/ui/core/Core' // provides sap.ui.getCore()
|
|
31
|
-
], function(jQuery, ThemeManager, ThemeHelper, Theming, BaseConfig, Log, syncFetch) {
|
|
32
|
-
|
|
33
|
-
var LESS_FILENAME = "library.source";
|
|
34
|
-
var CSS_FILENAME = "library";
|
|
35
|
-
var fnOrigIncludeLibraryTheme;
|
|
36
|
-
var fnOrigApplyTheme;
|
|
37
|
-
|
|
38
|
-
/**
|
|
39
|
-
* Creates an instance of the class <code>sap.ui.core.plugin.LessSupport</code>
|
|
40
|
-
*
|
|
41
|
-
* @class Core plugin for the enabling less support for SAPUI5 which can be
|
|
42
|
-
* used for development scenarios to avoid the generation of the CSS
|
|
43
|
-
* files (increases the dev experience!). This is an experimental
|
|
44
|
-
* feature - DO NOT USE IN PRODUCTIVE SCENARIOS!!
|
|
45
|
-
*
|
|
46
|
-
* @author Peter Muessig
|
|
47
|
-
* @version 1.138.0
|
|
48
|
-
* @private
|
|
49
|
-
* @alias sap.ui.core.plugin.LessSupport
|
|
50
|
-
*/
|
|
51
|
-
var LessSupport = function() {
|
|
52
|
-
};
|
|
53
|
-
|
|
54
|
-
/**
|
|
55
|
-
* Will be invoked by <code>sap.ui.core.Core</code> to notify the plugin to start.
|
|
56
|
-
*
|
|
57
|
-
* @param {sap.ui.core.Core} oCore reference to the Core
|
|
58
|
-
* @param {boolean} [bOnInit] whether the hook is called during core initialization
|
|
59
|
-
* @public
|
|
60
|
-
*/
|
|
61
|
-
LessSupport.prototype.startPlugin = function(oCore, bOnInit) {
|
|
62
|
-
|
|
63
|
-
Log.info("Starting LessSupport plugin.");
|
|
64
|
-
Log.warning(" NOT FOR PRODUCTIVE USAGE! LessSupport is an experimental feature which might change in future!");
|
|
65
|
-
|
|
66
|
-
// get the URI parameters
|
|
67
|
-
var bNoLess = BaseConfig.get({name: "sapUiXxNoless", type: BaseConfig.Type.Boolean, defaultValue: true, external: true});
|
|
68
|
-
|
|
69
|
-
this.oCore = oCore;
|
|
70
|
-
|
|
71
|
-
// LessSupport is disabled for the testrunner
|
|
72
|
-
try {
|
|
73
|
-
if (!bNoLess && (window.top.JsUnit || (window.sap.ui.test && window.sap.ui.test.qunit))) {
|
|
74
|
-
Log.info(" LessSupport has been deactivated for JSUnit Testrunner or QUnit.");
|
|
75
|
-
return;
|
|
76
|
-
}
|
|
77
|
-
} catch (oExp) {
|
|
78
|
-
// In a domain relaxation scenario, it is possible, that the browser prevents access to window.top.*, and a SecurityError is thrown.
|
|
79
|
-
// The Testrunner check fails in this case and we can assume a multi-frame scenario with different document.domain settings.
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
// check the URI parameters to disable LessSupport
|
|
83
|
-
if (bNoLess) {
|
|
84
|
-
Log.info(" LessSupport has been deactivated by URL parameter.");
|
|
85
|
-
return;
|
|
86
|
-
} else {
|
|
87
|
-
Log.info(" LessSupport can be deactivated by adding the following parameter to your URL: \"sap-ui-xx-noless=X\".");
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
// configure LESS (development mode + error handling)
|
|
91
|
-
window.less = window.less || {
|
|
92
|
-
env: "development",
|
|
93
|
-
relativeUrls: true,
|
|
94
|
-
errorReporting: function(sMethod, ex, sRootHref) {
|
|
95
|
-
/*eslint-disable no-console */
|
|
96
|
-
if (sMethod === "add" && window.console) {
|
|
97
|
-
window.console.error("Failed to parse: " + sRootHref, ex);
|
|
98
|
-
}
|
|
99
|
-
/*eslint-enable no-console */
|
|
100
|
-
}
|
|
101
|
-
};
|
|
102
|
-
|
|
103
|
-
// include LESS
|
|
104
|
-
sap.ui.requireSync("sap/ui/thirdparty/less");
|
|
105
|
-
|
|
106
|
-
this.bActive = true;
|
|
107
|
-
|
|
108
|
-
// overwrite the includeLibraryTheme/applyTheme function to inject LESS
|
|
109
|
-
fnOrigIncludeLibraryTheme = ThemeManager.includeLibraryTheme;
|
|
110
|
-
fnOrigApplyTheme = oCore.applyTheme;
|
|
111
|
-
ThemeManager.includeLibraryTheme = this.includeLibraryTheme.bind(this);
|
|
112
|
-
oCore.applyTheme = this.applyTheme.bind(this);
|
|
113
|
-
|
|
114
|
-
// update the themes (only when LESS files are newer than the CSS files)
|
|
115
|
-
var that = this, bUseLess = false;
|
|
116
|
-
var aLibs = [];
|
|
117
|
-
jQuery("link[id^=sap-ui-theme-]").each(function() {
|
|
118
|
-
var _bUseLess = that.initLink(this);
|
|
119
|
-
bUseLess = _bUseLess || bUseLess;
|
|
120
|
-
if (_bUseLess){
|
|
121
|
-
aLibs.push(this.id.substr(13)); // length of "sap-ui-theme-"
|
|
122
|
-
}
|
|
123
|
-
});
|
|
124
|
-
|
|
125
|
-
// refresh less styles or remove notifier
|
|
126
|
-
this.refreshLess(bUseLess);
|
|
127
|
-
|
|
128
|
-
// notify that the theme has been changed!
|
|
129
|
-
|
|
130
|
-
var counter = 0;
|
|
131
|
-
|
|
132
|
-
function checkThemeApplied(){
|
|
133
|
-
var ok = true;
|
|
134
|
-
var check;
|
|
135
|
-
for (var i = 0; i < aLibs.length; i++) {
|
|
136
|
-
check = ThemeHelper.checkAndRemoveStyle({ prefix: "less:", id: aLibs[i] });
|
|
137
|
-
if (check) {
|
|
138
|
-
jQuery(document.getElementById("sap-ui-theme-" + aLibs[i])).attr("data-sap-ui-ready", "true");
|
|
139
|
-
}
|
|
140
|
-
ok = ok && check;
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
counter++;
|
|
144
|
-
if (counter > 100) {
|
|
145
|
-
ok = true;
|
|
146
|
-
Log.warning("LessSupport: Max theme check cycles reached.");
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
if (ok) {
|
|
150
|
-
ThemeManager.themeLoaded = true;
|
|
151
|
-
setTimeout(function () {
|
|
152
|
-
ThemeManager.fireThemeApplied({theme: Theming.getTheme()});
|
|
153
|
-
}, 0);
|
|
154
|
-
} else {
|
|
155
|
-
that.iCheckThemeAppliedTimeout = setTimeout(checkThemeApplied, 100);
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
if (bUseLess) {
|
|
160
|
-
this.iCheckThemeAppliedTimeout = setTimeout(checkThemeApplied, 100);
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
};
|
|
164
|
-
|
|
165
|
-
/**
|
|
166
|
-
* Will be invoked by <code>sap.ui.core.Core</code> to notify the plugin to start
|
|
167
|
-
* @public
|
|
168
|
-
*/
|
|
169
|
-
LessSupport.prototype.stopPlugin = function() {
|
|
170
|
-
Log.info("Stopping LessSupport plugin.");
|
|
171
|
-
if (this.bActive) {
|
|
172
|
-
// clear delayed call for theme-check
|
|
173
|
-
clearTimeout(this.iCheckThemeAppliedTimeout);
|
|
174
|
-
delete this.iCheckThemeAppliedTimeout;
|
|
175
|
-
// remove the content of the LESS style element
|
|
176
|
-
jQuery("link[id^=sap-ui-theme-]").each(function() {
|
|
177
|
-
var sLibName = this.id.substr(13); // length of "sap-ui-theme-"
|
|
178
|
-
jQuery(document.getElementById("less:" + sLibName)).remove();
|
|
179
|
-
});
|
|
180
|
-
// remove the hooks from the Core
|
|
181
|
-
ThemeManager.includeLibraryTheme = fnOrigIncludeLibraryTheme;
|
|
182
|
-
this.oCore.applyTheme = fnOrigApplyTheme;
|
|
183
|
-
}
|
|
184
|
-
};
|
|
185
|
-
|
|
186
|
-
/**
|
|
187
|
-
* initialize a link element by preparing the LESS style element directly
|
|
188
|
-
* after the link (to keep the order of the stylesheets how the rules are
|
|
189
|
-
* finally applied)
|
|
190
|
-
* @param {LinkElement} oLink ref to a link element
|
|
191
|
-
* @private
|
|
192
|
-
*/
|
|
193
|
-
LessSupport.prototype.initLink = function(oLink) {
|
|
194
|
-
|
|
195
|
-
var bUseLess = this.updateLink(oLink);
|
|
196
|
-
|
|
197
|
-
// add the section for the generated CSS code
|
|
198
|
-
jQuery("<style>").
|
|
199
|
-
attr("id", "less:" + oLink.id.substr(13)).
|
|
200
|
-
attr("type", "text/css").
|
|
201
|
-
attr("media", this.media || "screen").
|
|
202
|
-
insertAfter(oLink);
|
|
203
|
-
|
|
204
|
-
return bUseLess;
|
|
205
|
-
|
|
206
|
-
};
|
|
207
|
-
|
|
208
|
-
/**
|
|
209
|
-
* updates a link element by quering the LESS and CSS file, checking which
|
|
210
|
-
* one is the latest version and updates the link with the most current
|
|
211
|
-
* LESS or CSS file.
|
|
212
|
-
* after the link (to keep the order of the stylesheets how the rules are
|
|
213
|
-
* finally applied)
|
|
214
|
-
* @param {LinkElement} oLink ref to a link element
|
|
215
|
-
* @private
|
|
216
|
-
*/
|
|
217
|
-
LessSupport.prototype.updateLink = function(oLink) {
|
|
218
|
-
|
|
219
|
-
// modify style sheet URL to point to the new theme
|
|
220
|
-
// be aware of custom css included with the colon (see includeLibraryTheme) // TODO: what is this??
|
|
221
|
-
var sLibName = oLink.id.substr(13); // length of "sap-ui-theme-"
|
|
222
|
-
var pos;
|
|
223
|
-
if ((pos = sLibName.indexOf("-[")) > 0) { // assumes that "-[" does not occur as part of a library name
|
|
224
|
-
sLibName = sLibName.substr(0, pos);
|
|
225
|
-
}
|
|
226
|
-
var sBaseUrl = ThemeManager._getThemePath(sLibName, Theming.getTheme());
|
|
227
|
-
|
|
228
|
-
// check if the less file of the current theme is more up-to-date than the css file
|
|
229
|
-
// or if the last modified of the less file is 0 (no last modified) we assume that it is newer
|
|
230
|
-
var iLessLastModified = this.getLastModified(sBaseUrl + LESS_FILENAME + ".less");
|
|
231
|
-
var iCssLastModified = this.getLastModified(sBaseUrl + CSS_FILENAME + ".css");
|
|
232
|
-
var bUseLess = (iLessLastModified == 0 && iCssLastModified > 0) || iLessLastModified > iCssLastModified;
|
|
233
|
-
|
|
234
|
-
if (!bUseLess) {
|
|
235
|
-
var sBaseThemeUrl = ThemeManager._getThemePath(sLibName, "base");
|
|
236
|
-
|
|
237
|
-
// also check if the less file of the base theme is more up-to-date than the css file
|
|
238
|
-
// or if the last modified of the less file is 0 (no last modified) we assume that it is newer
|
|
239
|
-
var iBaseLessLastModified = this.getLastModified(sBaseThemeUrl + LESS_FILENAME + ".less");
|
|
240
|
-
var iBaseCssLastModified = this.getLastModified(sBaseThemeUrl + CSS_FILENAME + ".css");
|
|
241
|
-
bUseLess = (iBaseLessLastModified == 0 && iBaseCssLastModified > 0) || iBaseLessLastModified > iBaseCssLastModified;
|
|
242
|
-
}
|
|
243
|
-
|
|
244
|
-
var sFileName = (bUseLess) ? LESS_FILENAME : CSS_FILENAME;
|
|
245
|
-
|
|
246
|
-
// info log
|
|
247
|
-
Log.debug("LessSupport.updateLink: " + sBaseUrl + sFileName + ": " + (bUseLess ? "LESS" : "CSS"));
|
|
248
|
-
|
|
249
|
-
// use the CSS file when the CSS file is newer or equal!
|
|
250
|
-
if (!bUseLess) {
|
|
251
|
-
if (oLink.title) {
|
|
252
|
-
delete oLink.title;
|
|
253
|
-
}
|
|
254
|
-
oLink.rel = "stylesheet";
|
|
255
|
-
oLink.href = sBaseUrl + sFileName + ".css";
|
|
256
|
-
this.unregisterLink(oLink);
|
|
257
|
-
return false;
|
|
258
|
-
}
|
|
259
|
-
|
|
260
|
-
// cleanup the local storage cache of less to avoid caching issues
|
|
261
|
-
// INFO: necessary when running in production mode
|
|
262
|
-
/*
|
|
263
|
-
if (window.localStorage) {
|
|
264
|
-
var sHref = oLink.href.replace(/.css$/i, ".less");
|
|
265
|
-
delete window.localStorage[sHref];
|
|
266
|
-
delete window.localStorage[sHref + ":timestamp"];
|
|
267
|
-
}
|
|
268
|
-
*/
|
|
269
|
-
|
|
270
|
-
// use the LESS file!
|
|
271
|
-
oLink.title = sLibName;
|
|
272
|
-
// "rel" has to be changed BEFORE "href" to prevent the browser from interpreting the less file
|
|
273
|
-
oLink.rel = "stylesheet/less";
|
|
274
|
-
oLink.href = sBaseUrl + sFileName + ".less";
|
|
275
|
-
|
|
276
|
-
this.registerLink(oLink);
|
|
277
|
-
return true;
|
|
278
|
-
|
|
279
|
-
};
|
|
280
|
-
|
|
281
|
-
/**
|
|
282
|
-
* retrieves the last modified timestamp of the resource for the given url.
|
|
283
|
-
* @param {string} sUrl URL to a resource
|
|
284
|
-
* @return {number} timestamp (0 if no last-modified header is present / -1 if file is not available)
|
|
285
|
-
* @private
|
|
286
|
-
*/
|
|
287
|
-
LessSupport.prototype.getLastModified = function(sUrl) {
|
|
288
|
-
// HEAD request to retrieve the last modified header
|
|
289
|
-
var iLastModified;
|
|
290
|
-
try {
|
|
291
|
-
var response = syncFetch(sUrl, {
|
|
292
|
-
method: "HEAD"
|
|
293
|
-
});
|
|
294
|
-
|
|
295
|
-
if (response.ok) {
|
|
296
|
-
var sLastModified = response.headers.get("Last-Modified");
|
|
297
|
-
iLastModified = sLastModified ? Date.parse(sLastModified) : 0;
|
|
298
|
-
} else {
|
|
299
|
-
throw Error("HTTP status error: " + response.status);
|
|
300
|
-
}
|
|
301
|
-
} catch (error) {
|
|
302
|
-
iLastModified = -1;
|
|
303
|
-
}
|
|
304
|
-
// convert the string into a timestamp or return the -1 value
|
|
305
|
-
Log.debug("CSS/LESS head-check: " + sUrl + "; last-modified: " + iLastModified);
|
|
306
|
-
return iLastModified;
|
|
307
|
-
|
|
308
|
-
};
|
|
309
|
-
|
|
310
|
-
/**
|
|
311
|
-
* hook into the <code>Core.applyTheme</code> function to update the created
|
|
312
|
-
* links for the less support
|
|
313
|
-
* @param {string} sThemeName name of the theme
|
|
314
|
-
* @param {string} sThemeBaseUrl base URL of the theme
|
|
315
|
-
* @private
|
|
316
|
-
*/
|
|
317
|
-
LessSupport.prototype.applyTheme = function(sThemeName, sThemeBaseUrl) {
|
|
318
|
-
// execute the default behavior (referenced via global name as the local 'Core' only exposes the public API)
|
|
319
|
-
fnOrigApplyTheme.call(ThemeManager, sThemeName, sThemeBaseUrl);
|
|
320
|
-
// update the created links for less support
|
|
321
|
-
var that = this, bUseLess = false;
|
|
322
|
-
jQuery("link[id^=sap-ui-theme-]").each(function() {
|
|
323
|
-
bUseLess = that.updateLink(this) || bUseLess;
|
|
324
|
-
});
|
|
325
|
-
// refresh less styles or remove notifier
|
|
326
|
-
this.refreshLess(bUseLess);
|
|
327
|
-
};
|
|
328
|
-
|
|
329
|
-
/**
|
|
330
|
-
* hook into the <code>Core.includeLibraryTheme</code> function to initialize
|
|
331
|
-
* the created links for the less support.
|
|
332
|
-
* @param {string} sLibName name of the library
|
|
333
|
-
* @private
|
|
334
|
-
*/
|
|
335
|
-
LessSupport.prototype.includeLibraryTheme = function(sLibName) {
|
|
336
|
-
// execute the default behavior (referenced via global name as the local 'Core' only exposes the public API)
|
|
337
|
-
fnOrigIncludeLibraryTheme.apply(ThemeManager, arguments);
|
|
338
|
-
// initialize the created link for less support
|
|
339
|
-
var that = this, bUseLess = false;
|
|
340
|
-
jQuery("link[id='sap-ui-theme-" + sLibName + "']").each(function() {
|
|
341
|
-
bUseLess = that.initLink(this) || bUseLess;
|
|
342
|
-
});
|
|
343
|
-
// refresh less styles or remove notifier
|
|
344
|
-
this.refreshLess(bUseLess);
|
|
345
|
-
};
|
|
346
|
-
|
|
347
|
-
/**
|
|
348
|
-
* registers a link element in less to be observed when calling refresh()
|
|
349
|
-
* @param {LinkElement} oLink ref to the link element
|
|
350
|
-
* @private
|
|
351
|
-
*/
|
|
352
|
-
LessSupport.prototype.registerLink = function(oLink) {
|
|
353
|
-
if (window.less && window.less.sheets) {
|
|
354
|
-
var iIndex = window.less.sheets.indexOf(oLink);
|
|
355
|
-
if (iIndex === -1) {
|
|
356
|
-
window.less.sheets.push(oLink);
|
|
357
|
-
}
|
|
358
|
-
}
|
|
359
|
-
};
|
|
360
|
-
|
|
361
|
-
/**
|
|
362
|
-
* unregisters a link element in less
|
|
363
|
-
* @param {LinkElement} oLink ref to the link element
|
|
364
|
-
* @private
|
|
365
|
-
*/
|
|
366
|
-
LessSupport.prototype.unregisterLink = function(oLink) {
|
|
367
|
-
if (window.less && window.less.sheets) {
|
|
368
|
-
var sLibName = oLink.id.substr(13);
|
|
369
|
-
var iIndex = window.less.sheets.indexOf(oLink);
|
|
370
|
-
if (iIndex >= 0) {
|
|
371
|
-
window.less.sheets.splice(iIndex, 1);
|
|
372
|
-
// clear the content of the LESS style element
|
|
373
|
-
jQuery(document.getElementById("less:" + sLibName)).html("");
|
|
374
|
-
}
|
|
375
|
-
}
|
|
376
|
-
};
|
|
377
|
-
|
|
378
|
-
/**
|
|
379
|
-
* refreshes the less files / generates the css and injects it into the
|
|
380
|
-
* styles section which has been created in the <code>initLink</code>
|
|
381
|
-
* function.
|
|
382
|
-
* <br>
|
|
383
|
-
* additionally it shows or hides a notifier if the less mode is active
|
|
384
|
-
* @param {boolean} bUseLess flag whether less or css mode
|
|
385
|
-
* @private
|
|
386
|
-
*/
|
|
387
|
-
LessSupport.prototype.refreshLess = function(bUseLess) {
|
|
388
|
-
|
|
389
|
-
// add the less mode indicator
|
|
390
|
-
if (bUseLess) {
|
|
391
|
-
if (!document.getElementById("sap-ui-ide-less-mode")) {
|
|
392
|
-
jQuery("<span>").
|
|
393
|
-
attr("id", "sap-ui-ide-less-mode").
|
|
394
|
-
css("position", "absolute").
|
|
395
|
-
css("right", "10px").
|
|
396
|
-
css("bottom", "10px").
|
|
397
|
-
css("padding", "10px").
|
|
398
|
-
css("border", "3px solid red").
|
|
399
|
-
css("border-radius", "10px").
|
|
400
|
-
css("opacity", "0.75").
|
|
401
|
-
css("color", "black").
|
|
402
|
-
css("background-color", "white").
|
|
403
|
-
css("font-weight", "bold").
|
|
404
|
-
css("z-index", "99999").
|
|
405
|
-
append(
|
|
406
|
-
jQuery("<span>").
|
|
407
|
-
text("LESS MODE").
|
|
408
|
-
css({
|
|
409
|
-
"display": "block",
|
|
410
|
-
"text-align": "center"
|
|
411
|
-
})
|
|
412
|
-
).
|
|
413
|
-
append(
|
|
414
|
-
jQuery("<a>").
|
|
415
|
-
attr("href", "#").
|
|
416
|
-
text("Deactivate").
|
|
417
|
-
attr("title", "Less mode is active. Click to deactivate it (requires page refresh).").
|
|
418
|
-
css({
|
|
419
|
-
"float": "left",
|
|
420
|
-
"clear": "left",
|
|
421
|
-
"font-size": "0.75em",
|
|
422
|
-
"text-decoration": "underline",
|
|
423
|
-
"margin-right": "0.5em"
|
|
424
|
-
}).
|
|
425
|
-
bind("click", function(oEvent) {
|
|
426
|
-
oEvent.preventDefault();
|
|
427
|
-
/*eslint-disable no-alert*/
|
|
428
|
-
if (window.confirm("Deactivating the Less Mode refreshes the page. Do you want to proceed?")) {
|
|
429
|
-
var sSearch = window.location.search;
|
|
430
|
-
window.location.search = (sSearch.charAt(0) === "?" ? (sSearch + "&") : "?") + "sap-ui-xx-noless=true";
|
|
431
|
-
}
|
|
432
|
-
/*eslint-enable no-alert*/
|
|
433
|
-
})
|
|
434
|
-
).
|
|
435
|
-
append(
|
|
436
|
-
jQuery("<a>").
|
|
437
|
-
attr("href", "#").
|
|
438
|
-
text("Hide").
|
|
439
|
-
attr("title", "Less mode is active. Click to hide this information.").
|
|
440
|
-
css({
|
|
441
|
-
"float": "right",
|
|
442
|
-
"font-size": "0.75em",
|
|
443
|
-
"text-decoration": "underline"
|
|
444
|
-
}).
|
|
445
|
-
bind("click", function(oEvent) {
|
|
446
|
-
oEvent.preventDefault();
|
|
447
|
-
jQuery(this).parent().css("display", "none");
|
|
448
|
-
})
|
|
449
|
-
).
|
|
450
|
-
appendTo(window.document.body);
|
|
451
|
-
}
|
|
452
|
-
} else {
|
|
453
|
-
jQuery("#sap-ui-ide-less-mode").remove();
|
|
454
|
-
}
|
|
455
|
-
|
|
456
|
-
// do only refresh less if it is loaded and at least one stylesheet was added
|
|
457
|
-
if (window.less && window.less.refresh && window.less.sheets.length > 0) {
|
|
458
|
-
|
|
459
|
-
// Keeps the less varables for each library
|
|
460
|
-
var mLibVariables = {};
|
|
461
|
-
|
|
462
|
-
// href to library name mapping (perf-opt)
|
|
463
|
-
var mLessHrefToLib = {};
|
|
464
|
-
|
|
465
|
-
// fill the href - lib map using less stylesheets
|
|
466
|
-
jQuery(window.less.sheets).each(function() {
|
|
467
|
-
mLessHrefToLib[this.href] = jQuery(this).attr("id").substr(13);
|
|
468
|
-
});
|
|
469
|
-
|
|
470
|
-
// Save original function
|
|
471
|
-
var fnLessTreeRuleEval = window.less.tree.Rule.prototype.eval;
|
|
472
|
-
// Override Rule.eval to collect all variable values on-the-fly
|
|
473
|
-
window.less.tree.Rule.prototype.eval = function(env) {
|
|
474
|
-
if (this.variable && typeof this.name === "string" && this.name.indexOf("@_PRIVATE_") !== 0) {
|
|
475
|
-
// this.currentFileInfo.rootFilename is one of the stylesheets in less.sheets
|
|
476
|
-
var sLibName = mLessHrefToLib[this.currentFileInfo.rootFilename]; // get lib name from map
|
|
477
|
-
if (!sLibName) {
|
|
478
|
-
Log.warning("LessSupport: could not find libary (" + this.currentFileInfo.rootFilename + ")");
|
|
479
|
-
}
|
|
480
|
-
var mVariables = mLibVariables[sLibName]; // get library-parameters map
|
|
481
|
-
if (!mVariables) {
|
|
482
|
-
mVariables = mLibVariables[sLibName] = {};
|
|
483
|
-
}
|
|
484
|
-
try {
|
|
485
|
-
mVariables[this.name.substr(1)] = this.value.eval(env).toCSS(env);
|
|
486
|
-
} catch (ex) {
|
|
487
|
-
// causes an exception when variable is not defined. ignore it here, less will take care of it
|
|
488
|
-
}
|
|
489
|
-
}
|
|
490
|
-
return fnLessTreeRuleEval.apply(this, arguments);
|
|
491
|
-
};
|
|
492
|
-
|
|
493
|
-
// Run less build
|
|
494
|
-
window.less.refresh();
|
|
495
|
-
|
|
496
|
-
// Update Theming Parameters without triggering a library-parameters.json request
|
|
497
|
-
var Parameters = sap.ui.requireSync('sap/ui/core/theming/Parameters');
|
|
498
|
-
Parameters._setOrLoadParameters(mLibVariables);
|
|
499
|
-
|
|
500
|
-
// Restore original function
|
|
501
|
-
window.less.tree.Rule.prototype.eval = fnLessTreeRuleEval;
|
|
502
|
-
}
|
|
503
|
-
|
|
504
|
-
};
|
|
505
|
-
|
|
506
|
-
/**
|
|
507
|
-
* Create the <code>sap.ui.core.plugin.LessSupport</code> plugin and
|
|
508
|
-
* register it within the <code>sap.ui.core.Core</code>.
|
|
509
|
-
*/
|
|
510
|
-
var oThis = new LessSupport();
|
|
511
|
-
sap.ui.getCore().registerPlugin(oThis);
|
|
512
|
-
|
|
513
|
-
/**
|
|
514
|
-
* Triggers a less refresh and updates the theming parameters.
|
|
515
|
-
*
|
|
516
|
-
* @private
|
|
517
|
-
*/
|
|
518
|
-
LessSupport.refresh = function() {
|
|
519
|
-
oThis.refreshLess(true);
|
|
520
|
-
ThemeManager.checkThemeApplied();
|
|
521
|
-
};
|
|
522
|
-
|
|
523
|
-
return LessSupport;
|
|
524
|
-
|
|
525
|
-
}, /* bExport= */ true);
|
|
526
|
-
|
|
527
|
-
}
|
|
528
|
-
|
|
529
|
-
// check for "sap.ui.define" being already available
|
|
530
|
-
// - when available immediately define the LessSupport
|
|
531
|
-
// - if not we delay the definition till the body is loaded
|
|
532
|
-
if (!(window.sap && window.sap.ui && window.sap.ui.define)) {
|
|
533
|
-
var fnHandler = function() {
|
|
534
|
-
document.removeEventListener("DOMContentLoaded", fnHandler, false);
|
|
535
|
-
defineLessSupport();
|
|
536
|
-
};
|
|
537
|
-
document.addEventListener("DOMContentLoaded", fnHandler, false);
|
|
538
|
-
} else {
|
|
539
|
-
defineLessSupport();
|
|
540
|
-
}
|
|
541
|
-
|
|
542
|
-
}());
|