@openui5/sap.ui.core 1.93.3 → 1.96.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.json +13 -2
- package/.reuse/dep5 +6 -11
- package/THIRDPARTY.txt +10 -16
- package/package.json +1 -1
- package/src/jquery.sap.global.js +5 -2
- 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/jquery.sap.stubs.js +2 -1
- package/src/jquery.sap.trace.js +2 -1
- package/src/sap/base/i18n/ResourceBundle.js +6 -2
- package/src/sap/base/strings/whitespaceReplacer.js +52 -0
- 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 +37 -42
- package/src/sap/ui/Global.js +8 -7
- package/src/sap/ui/base/DataType.js +14 -8
- package/src/sap/ui/base/Event.js +1 -1
- package/src/sap/ui/base/EventProvider.js +1 -1
- package/src/sap/ui/base/ExpressionParser.js +9 -6
- package/src/sap/ui/base/Interface.js +3 -49
- package/src/sap/ui/base/ManagedObject.js +12 -7
- 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 +49 -4
- package/src/sap/ui/base/ObjectPool.js +1 -1
- package/src/sap/ui/base/syncXHRFix.js +2 -1
- package/src/sap/ui/core/.library +5 -5
- package/src/sap/ui/core/AppCacheBuster.js +4 -4
- package/src/sap/ui/core/BusyIndicator.js +1 -11
- package/src/sap/ui/core/Component.js +300 -140
- package/src/sap/ui/core/ComponentContainer.js +24 -8
- package/src/sap/ui/core/ComponentMetadata.js +14 -3
- package/src/sap/ui/core/ComponentSupport.js +1 -1
- package/src/sap/ui/core/Configuration.js +67 -31
- package/src/sap/ui/core/Control.js +1 -1
- package/src/sap/ui/core/Core.js +103 -25
- package/src/sap/ui/core/CustomData.js +1 -1
- package/src/sap/ui/core/CustomizingConfiguration.js +35 -260
- package/src/sap/ui/core/DeclarativeSupport.js +3 -2
- package/src/sap/ui/core/Element.js +1 -1
- package/src/sap/ui/core/ElementMetadata.js +4 -2
- package/src/sap/ui/core/EnabledPropagator.js +91 -73
- package/src/sap/ui/core/EventBus.js +1 -1
- package/src/sap/ui/core/ExtensionPoint.js +7 -14
- package/src/sap/ui/core/Fragment.js +30 -32
- 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 +7 -8
- package/src/sap/ui/core/IconPool.js +26 -1097
- package/src/sap/ui/core/IconRenderer.js +6 -6
- package/src/sap/ui/core/IndicationColorSupport.js +1 -1
- package/src/sap/ui/core/IntervalTrigger.js +1 -1
- package/src/sap/ui/core/InvisibleMessage.js +1 -1
- package/src/sap/ui/core/InvisibleRenderer.js +1 -1
- package/src/sap/ui/core/InvisibleText.js +1 -1
- package/src/sap/ui/core/Item.js +1 -1
- package/src/sap/ui/core/LabelEnablement.js +1 -1
- package/src/sap/ui/core/LayoutData.js +1 -1
- package/src/sap/ui/core/ListItem.js +1 -1
- package/src/sap/ui/core/LocalBusyIndicator.js +1 -1
- package/src/sap/ui/core/Locale.js +26 -4
- package/src/sap/ui/core/LocaleData.js +1 -1
- package/src/sap/ui/core/Manifest.js +4 -61
- package/src/sap/ui/core/Message.js +1 -1
- package/src/sap/ui/core/Patcher.js +27 -3
- package/src/sap/ui/core/Placeholder.js +28 -15
- package/src/sap/ui/core/RenderManager.js +36 -6
- package/src/sap/ui/core/Renderer.js +13 -3
- package/src/sap/ui/core/ResizeHandler.js +1 -1
- package/src/sap/ui/core/ScrollBar.js +2 -2
- package/src/sap/ui/core/SeparatorItem.js +1 -1
- package/src/sap/ui/core/ShortcutHintsMixin.js +14 -7
- 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 +42 -16
- package/src/sap/ui/core/UIComponentMetadata.js +1 -1
- package/src/sap/ui/core/ValueStateSupport.js +1 -1
- package/src/sap/ui/core/VariantLayoutData.js +1 -1
- package/src/sap/ui/core/XMLComposite.js +2 -2
- package/src/sap/ui/core/XMLCompositeMetadata.js +2 -2
- package/src/sap/ui/core/XMLTemplateProcessor.js +116 -41
- package/src/sap/ui/core/_IconRegistry.js +1148 -0
- package/src/sap/ui/core/delegate/ItemNavigation.js +1 -1
- package/src/sap/ui/core/delegate/ScrollEnablement.js +6 -3
- 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 +2 -2
- package/src/sap/ui/core/dnd/DropInfo.js +1 -1
- package/src/sap/ui/core/format/NumberFormat.js +16 -1
- package/src/sap/ui/core/hyphenation/Hyphenation.js +73 -221
- package/src/sap/ui/core/hyphenation/HyphenationTestingWords.js +11 -10
- 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 +13 -15
- 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_de.properties +1 -1
- package/src/sap/ui/core/messagebundle_fr.properties +1 -1
- package/src/sap/ui/core/messagebundle_it.properties +1 -1
- package/src/sap/ui/core/messagebundle_pl.properties +1 -1
- package/src/sap/ui/core/messagebundle_th.properties +2 -2
- package/src/sap/ui/core/mvc/Controller.js +38 -19
- package/src/sap/ui/core/mvc/ControllerExtensionProvider.js +30 -32
- package/src/sap/ui/core/mvc/ControllerMetadata.js +18 -18
- package/src/sap/ui/core/mvc/HTMLView.js +2 -2
- package/src/sap/ui/core/mvc/JSONView.js +2 -2
- package/src/sap/ui/core/mvc/JSView.js +2 -2
- package/src/sap/ui/core/mvc/TemplateView.js +2 -2
- package/src/sap/ui/core/mvc/View.js +58 -85
- package/src/sap/ui/core/mvc/XMLView.js +2 -2
- package/src/sap/ui/core/mvc/XMLViewRenderer.js +17 -20
- package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
- package/src/sap/ui/core/plugin/LessSupport.js +1 -1
- package/src/sap/ui/core/plugin/TemplatingSupport.js +1 -1
- package/src/sap/ui/core/postmessage/Bus.js +1 -1
- package/src/sap/ui/core/postmessage/confirmationDialog.js +1 -1
- package/src/sap/ui/core/routing/History.js +10 -2
- package/src/sap/ui/core/routing/Router.js +8 -1
- package/src/sap/ui/core/routing/Target.js +13 -0
- package/src/sap/ui/core/routing/Targets.js +13 -2
- package/src/sap/ui/core/routing/async/Route.js +1 -1
- package/src/sap/ui/core/routing/async/Target.js +353 -259
- 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/BootSupportTool.js +11 -0
- package/src/sap/ui/core/support/InteractionTree.css +4 -0
- 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/ViewInfo.css +599 -0
- package/src/sap/ui/core/support/controls/InteractionTree.js +352 -222
- package/src/sap/ui/core/support/controls/ObjectViewer.js +3 -41
- package/src/sap/ui/core/support/controls/TimelineOverview.js +49 -24
- package/src/sap/ui/core/support/controls/TreeViewer.js +12 -58
- package/src/sap/ui/core/support/plugins/ControlTree.js +59 -68
- package/src/sap/ui/core/support/plugins/Debugging.js +9 -11
- package/src/sap/ui/core/support/plugins/Interaction.js +2 -2
- package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -1
- package/src/sap/ui/core/support/plugins/Performance.js +147 -75
- package/src/sap/ui/core/support/plugins/Selector.js +19 -24
- package/src/sap/ui/core/support/plugins/TechInfo.js +5 -5
- package/src/sap/ui/core/support/plugins/Trace.js +95 -32
- package/src/sap/ui/core/support/plugins/ViewInfo.js +9 -73
- package/src/sap/ui/core/support/support.css +109 -14
- package/src/sap/ui/core/support/support.html +6 -2
- package/src/sap/ui/core/support/techinfo/TechnicalInfo.fragment.xml +1 -0
- package/src/sap/ui/core/support/techinfo/TechnicalInfo.js +149 -72
- package/src/sap/ui/core/themes/base/Icon.less +9 -0
- package/src/sap/ui/core/themes/base/fonts/SAP-icons.woff2 +0 -0
- package/src/sap/ui/core/theming/Parameters.js +6 -4
- 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 +10 -28
- package/src/sap/ui/core/tmpl/TemplateControl.js +4 -4
- package/src/sap/ui/core/tmpl/_parsePath.js +35 -0
- package/src/sap/ui/core/util/AsyncHintsHelper.js +1 -1
- package/src/sap/ui/core/util/DraftEnabledMockServer.js +9 -4
- 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 +5 -5
- package/src/sap/ui/core/util/MockServerAnnotationsHandler.js +3 -2
- package/src/sap/ui/core/util/PasteHelper.js +1 -1
- package/src/sap/ui/core/util/XMLPreprocessor.js +11 -12
- package/src/sap/ui/core/util/reflection/BaseTreeModifier.js +136 -63
- package/src/sap/ui/core/util/reflection/JsControlTreeModifier.js +170 -153
- package/src/sap/ui/core/util/reflection/XmlTreeModifier.js +424 -293
- 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 +10 -4
- package/src/sap/ui/debug/DebugEnv.js +3 -4
- package/src/sap/ui/debug/Highlighter.js +8 -2
- package/src/sap/ui/debug/PropertyList.css +55 -0
- package/src/sap/ui/debug/PropertyList.js +111 -182
- package/src/sap/ui/model/Binding.js +174 -118
- package/src/sap/ui/model/ClientContextBinding.js +1 -1
- package/src/sap/ui/model/ClientListBinding.js +1 -3
- package/src/sap/ui/model/ClientModel.js +4 -4
- package/src/sap/ui/model/ClientPropertyBinding.js +4 -2
- package/src/sap/ui/model/ClientTreeBinding.js +15 -9
- package/src/sap/ui/model/ClientTreeBindingAdapter.js +28 -23
- package/src/sap/ui/model/CompositeBinding.js +98 -77
- package/src/sap/ui/model/CompositeDataState.js +2 -2
- package/src/sap/ui/model/CompositeType.js +2 -2
- package/src/sap/ui/model/Context.js +4 -2
- package/src/sap/ui/model/ContextBinding.js +6 -14
- package/src/sap/ui/model/DataState.js +2 -2
- package/src/sap/ui/model/Filter.js +255 -53
- package/src/sap/ui/model/FilterOperator.js +1 -1
- package/src/sap/ui/model/FilterProcessor.js +27 -17
- package/src/sap/ui/model/FilterType.js +1 -1
- package/src/sap/ui/model/ListBinding.js +180 -117
- package/src/sap/ui/model/MetaModel.js +4 -9
- package/src/sap/ui/model/Model.js +345 -294
- package/src/sap/ui/model/PropertyBinding.js +92 -58
- package/src/sap/ui/model/SelectionModel.js +2 -2
- package/src/sap/ui/model/SimpleType.js +2 -2
- package/src/sap/ui/model/Sorter.js +1 -1
- package/src/sap/ui/model/SorterProcessor.js +1 -1
- package/src/sap/ui/model/StaticBinding.js +1 -1
- package/src/sap/ui/model/TreeAutoExpandMode.js +2 -2
- package/src/sap/ui/model/TreeBinding.js +1 -1
- package/src/sap/ui/model/TreeBindingAdapter.js +251 -100
- package/src/sap/ui/model/TreeBindingCompatibilityAdapter.js +16 -9
- package/src/sap/ui/model/TreeBindingUtils.js +1 -0
- package/src/sap/ui/model/Type.js +1 -1
- package/src/sap/ui/model/analytics/AnalyticalBinding.js +8 -4
- package/src/sap/ui/model/analytics/AnalyticalTreeBindingAdapter.js +1 -1
- package/src/sap/ui/model/analytics/AnalyticalVersionInfo.js +1 -1
- package/src/sap/ui/model/analytics/BatchResponseCollector.js +1 -1
- package/src/sap/ui/model/analytics/ODataModelAdapter.js +1 -1
- package/src/sap/ui/model/analytics/odata4analytics.js +34 -25
- package/src/sap/ui/model/base/ManagedObjectModel.js +4 -0
- package/src/sap/ui/model/json/JSONListBinding.js +8 -5
- package/src/sap/ui/model/json/JSONModel.js +24 -15
- package/src/sap/ui/model/json/JSONPropertyBinding.js +4 -3
- package/src/sap/ui/model/json/JSONTreeBinding.js +1 -1
- package/src/sap/ui/model/message/MessageListBinding.js +6 -3
- package/src/sap/ui/model/message/MessageModel.js +23 -15
- package/src/sap/ui/model/message/MessagePropertyBinding.js +2 -2
- package/src/sap/ui/model/odata/AnnotationHelper.js +1 -1
- package/src/sap/ui/model/odata/AnnotationParser.js +1 -1
- package/src/sap/ui/model/odata/CountMode.js +1 -1
- package/src/sap/ui/model/odata/Filter.js +1 -1
- package/src/sap/ui/model/odata/ODataAnnotations.js +2 -2
- package/src/sap/ui/model/odata/ODataContextBinding.js +1 -1
- package/src/sap/ui/model/odata/ODataListBinding.js +1 -1
- package/src/sap/ui/model/odata/ODataMessageParser.js +2 -2
- package/src/sap/ui/model/odata/ODataMetaModel.js +5 -3
- package/src/sap/ui/model/odata/ODataMetadata.js +2 -2
- package/src/sap/ui/model/odata/ODataModel.js +8 -7
- package/src/sap/ui/model/odata/ODataPropertyBinding.js +1 -1
- package/src/sap/ui/model/odata/ODataTreeBinding.js +65 -33
- package/src/sap/ui/model/odata/ODataTreeBindingAdapter.js +1 -1
- package/src/sap/ui/model/odata/ODataTreeBindingFlat.js +2 -2
- package/src/sap/ui/model/odata/ODataUtils.js +13 -11
- package/src/sap/ui/model/odata/OperationMode.js +1 -1
- package/src/sap/ui/model/odata/_AnnotationHelperExpression.js +1 -1
- package/src/sap/ui/model/odata/type/Boolean.js +1 -1
- package/src/sap/ui/model/odata/type/Byte.js +1 -1
- package/src/sap/ui/model/odata/type/Currency.js +1 -1
- package/src/sap/ui/model/odata/type/Date.js +1 -1
- package/src/sap/ui/model/odata/type/DateTime.js +1 -1
- package/src/sap/ui/model/odata/type/DateTimeBase.js +1 -1
- package/src/sap/ui/model/odata/type/DateTimeOffset.js +1 -1
- package/src/sap/ui/model/odata/type/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 +81 -9
- package/src/sap/ui/model/odata/v2/ODataAnnotations.js +3 -3
- package/src/sap/ui/model/odata/v2/ODataContextBinding.js +39 -49
- package/src/sap/ui/model/odata/v2/ODataListBinding.js +236 -73
- package/src/sap/ui/model/odata/v2/ODataModel.js +314 -164
- package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +110 -97
- package/src/sap/ui/model/odata/v2/_CreatedContextsCache.js +129 -0
- package/src/sap/ui/model/odata/v4/Context.js +6 -3
- package/src/sap/ui/model/odata/v4/ODataBinding.js +5 -6
- package/src/sap/ui/model/odata/v4/ODataContextBinding.js +117 -40
- package/src/sap/ui/model/odata/v4/ODataListBinding.js +95 -15
- package/src/sap/ui/model/odata/v4/ODataMetaModel.js +44 -31
- package/src/sap/ui/model/odata/v4/ODataModel.js +86 -78
- package/src/sap/ui/model/odata/v4/ODataParentBinding.js +47 -28
- package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +11 -7
- package/src/sap/ui/model/odata/v4/_AnnotationHelperExpression.js +10 -3
- package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +8 -1
- package/src/sap/ui/model/odata/v4/lib/_Cache.js +24 -16
- package/src/sap/ui/model/odata/v4/lib/_Helper.js +32 -30
- package/src/sap/ui/model/odata/v4/lib/_Requestor.js +52 -17
- package/src/sap/ui/model/odata/v4/lib/_V2Requestor.js +2 -2
- package/src/sap/ui/model/resource/ResourceModel.js +6 -2
- package/src/sap/ui/model/resource/ResourcePropertyBinding.js +1 -1
- package/src/sap/ui/model/type/Boolean.js +2 -2
- package/src/sap/ui/model/type/Currency.js +2 -2
- package/src/sap/ui/model/type/Date.js +9 -3
- package/src/sap/ui/model/type/DateInterval.js +4 -2
- package/src/sap/ui/model/type/DateTime.js +2 -2
- package/src/sap/ui/model/type/DateTimeInterval.js +2 -2
- package/src/sap/ui/model/type/FileSize.js +4 -2
- package/src/sap/ui/model/type/Float.js +4 -2
- package/src/sap/ui/model/type/Integer.js +4 -2
- package/src/sap/ui/model/type/String.js +2 -2
- package/src/sap/ui/model/type/Time.js +2 -2
- package/src/sap/ui/model/type/TimeInterval.js +2 -2
- package/src/sap/ui/model/type/Unit.js +14 -7
- package/src/sap/ui/model/xml/XMLListBinding.js +15 -9
- package/src/sap/ui/model/xml/XMLModel.js +70 -41
- package/src/sap/ui/model/xml/XMLPropertyBinding.js +4 -4
- package/src/sap/ui/model/xml/XMLTreeBinding.js +5 -4
- package/src/sap/ui/performance/trace/Interaction.js +30 -15
- package/src/sap/ui/performance/trace/initTraces.js +1 -1
- package/src/sap/ui/qunit/QUnitUtils.js +3 -2
- package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
- package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +9 -11
- package/src/sap/ui/test/TestUtils.js +11 -4
- package/src/sap/ui/test/actions/Drag.js +6 -2
- package/src/sap/ui/test/actions/Drop.js +6 -2
- package/src/sap/ui/test/actions/EnterText.js +6 -0
- package/src/sap/ui/test/actions/Press.js +6 -0
- package/src/sap/ui/test/actions/Scroll.js +6 -0
- package/src/sap/ui/test/autowaiter/_resourceWaiter.js +4 -4
- package/src/sap/ui/test/launchers/componentLauncher.js +0 -4
- package/src/sap/ui/test/matchers/I18NText.js +29 -11
- package/src/sap/ui/test/opaQunit.js +5 -0
- package/src/sap/ui/thirdparty/crossroads.js +6 -4
- package/src/sap/ui/thirdparty/hyphenopoly/Hyphenopoly.js +1196 -0
- package/src/sap/ui/thirdparty/hyphenopoly/Hyphenopoly_Loader.js +797 -0
- package/src/sap/ui/thirdparty/hyphenopoly/hyphenEngine.asm.js +108 -127
- package/src/sap/ui/thirdparty/hyphenopoly/hyphenEngine.wasm +0 -0
- package/src/sap/ui/thirdparty/hyphenopoly/patterns/bg.hpb +0 -0
- package/src/sap/ui/thirdparty/hyphenopoly/patterns/ca.hpb +0 -0
- package/src/sap/ui/thirdparty/hyphenopoly/patterns/da.hpb +0 -0
- package/src/sap/ui/thirdparty/hyphenopoly/patterns/de.hpb +0 -0
- package/src/sap/ui/thirdparty/hyphenopoly/patterns/el-monoton.hpb +0 -0
- package/src/sap/ui/thirdparty/hyphenopoly/patterns/en-us.hpb +0 -0
- package/src/sap/ui/thirdparty/hyphenopoly/patterns/es.hpb +0 -0
- package/src/sap/ui/thirdparty/hyphenopoly/patterns/et.hpb +0 -0
- package/src/sap/ui/thirdparty/hyphenopoly/patterns/fi.hpb +0 -0
- package/src/sap/ui/thirdparty/hyphenopoly/patterns/fr.hpb +0 -0
- package/src/sap/ui/thirdparty/hyphenopoly/patterns/hi.hpb +0 -0
- package/src/sap/ui/thirdparty/hyphenopoly/patterns/hr.hpb +0 -0
- package/src/sap/ui/thirdparty/hyphenopoly/patterns/hu.hpb +0 -0
- package/src/sap/ui/thirdparty/hyphenopoly/patterns/it.hpb +0 -0
- package/src/sap/ui/thirdparty/hyphenopoly/patterns/lt.hpb +0 -0
- package/src/sap/ui/thirdparty/hyphenopoly/patterns/nb-no.hpb +0 -0
- package/src/sap/ui/thirdparty/hyphenopoly/patterns/nl.hpb +0 -0
- package/src/sap/ui/thirdparty/hyphenopoly/patterns/pt.hpb +0 -0
- package/src/sap/ui/thirdparty/hyphenopoly/patterns/ru.hpb +0 -0
- package/src/sap/ui/thirdparty/hyphenopoly/patterns/sl.hpb +0 -0
- package/src/sap/ui/thirdparty/hyphenopoly/patterns/sv.hpb +0 -0
- package/src/sap/ui/thirdparty/hyphenopoly/patterns/th.hpb +0 -0
- package/src/sap/ui/thirdparty/hyphenopoly/patterns/tr.hpb +0 -0
- package/src/sap/ui/thirdparty/hyphenopoly/patterns/uk.hpb +0 -0
- package/src/sap/ui/thirdparty/jquery.js +9 -1
- package/src/sap/ui/thirdparty/qunit-2.js +1 -1
- package/src/sap/ui/thirdparty/qunit.js +1 -1
- package/src/sap/ui/util/Mobile.js +2 -20
- package/src/sap/ui/util/Storage.js +1 -1
- package/src/sap/ui/util/isCrossOriginURL.js +16 -6
- package/src/sap-ui-core-nojQuery.js +1 -1
- package/src/sap-ui-core.js +1 -1
- package/src/sap-ui-debug.js +3 -17
- package/ui5.yaml +5 -2
- package/src/sap/ui/core/support/plugins/MessageTest.js +0 -96
- package/src/sap/ui/thirdparty/hyphenopoly/hyphenopoly.bundle.js +0 -860
|
@@ -394,7 +394,7 @@ sap.ui.define([
|
|
|
394
394
|
return;
|
|
395
395
|
}
|
|
396
396
|
|
|
397
|
-
oInvText = getInvisibleText();
|
|
397
|
+
oInvText = getInvisibleText(oControl);
|
|
398
398
|
sInvTextId = oInvText.getId();
|
|
399
399
|
|
|
400
400
|
oInvText.setText(_getShortcutHintText(oHintInfo.id));
|
|
@@ -502,15 +502,22 @@ sap.ui.define([
|
|
|
502
502
|
}
|
|
503
503
|
|
|
504
504
|
/**
|
|
505
|
-
* Gets or creates an InvisibleText for the
|
|
505
|
+
* Gets or creates an InvisibleText for the control's shortcut accessiblity.
|
|
506
|
+
*
|
|
507
|
+
* @param {sap.ui.core.Control} oControl A control that have shortcut assigned
|
|
506
508
|
*/
|
|
507
|
-
function getInvisibleText() {
|
|
508
|
-
if (!
|
|
509
|
-
|
|
510
|
-
|
|
509
|
+
function getInvisibleText(oControl) {
|
|
510
|
+
if (!oControl._shortcutInvisibleText) {
|
|
511
|
+
var oFunc = oControl.exit;
|
|
512
|
+
oControl._shortcutInvisibleText = new InvisibleText();
|
|
513
|
+
oControl._shortcutInvisibleText.toStatic();
|
|
514
|
+
oControl.exit = function() {
|
|
515
|
+
this._shortcutInvisibleText.destroy();
|
|
516
|
+
oFunc.call(this);
|
|
517
|
+
};
|
|
511
518
|
}
|
|
512
519
|
|
|
513
|
-
return
|
|
520
|
+
return oControl._shortcutInvisibleText;
|
|
514
521
|
}
|
|
515
522
|
|
|
516
523
|
/**
|
package/src/sap/ui/core/Title.js
CHANGED
|
@@ -31,7 +31,7 @@ sap.ui.define([
|
|
|
31
31
|
* @class
|
|
32
32
|
* 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.
|
|
33
33
|
* @extends sap.ui.core.Control
|
|
34
|
-
* @version 1.
|
|
34
|
+
* @version 1.96.2
|
|
35
35
|
*
|
|
36
36
|
* @public
|
|
37
37
|
* @alias sap.ui.core.TooltipBase
|
|
@@ -175,7 +175,7 @@ sap.ui.define([
|
|
|
175
175
|
*
|
|
176
176
|
* @extends sap.ui.base.ManagedObject
|
|
177
177
|
* @author SAP SE
|
|
178
|
-
* @version 1.
|
|
178
|
+
* @version 1.96.2
|
|
179
179
|
* @param {sap.ui.core.Core} oCore internal API of the <core>Core</code> that manages this UIArea
|
|
180
180
|
* @param {object} [oRootNode] reference to the DOM element that should be 'hosting' the UI Area.
|
|
181
181
|
* @public
|
|
@@ -13,9 +13,9 @@ sap.ui.define([
|
|
|
13
13
|
'./UIComponentMetadata',
|
|
14
14
|
'./mvc/Controller',
|
|
15
15
|
'./mvc/View',
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
'sap/base/util/ObjectPath',
|
|
17
|
+
'sap/base/Log',
|
|
18
|
+
'sap/ui/core/Core' // to ensure correct behaviour of sap.ui.getCore()
|
|
19
19
|
],
|
|
20
20
|
function(
|
|
21
21
|
ManagedObject,
|
|
@@ -54,7 +54,7 @@ sap.ui.define([
|
|
|
54
54
|
* @extends sap.ui.core.Component
|
|
55
55
|
* @abstract
|
|
56
56
|
* @author SAP SE
|
|
57
|
-
* @version 1.
|
|
57
|
+
* @version 1.96.2
|
|
58
58
|
* @alias sap.ui.core.UIComponent
|
|
59
59
|
* @since 1.9.2
|
|
60
60
|
* @ui5-metamodel This control/element also will be described in the UI5 (legacy) designtime metamodel
|
|
@@ -298,7 +298,7 @@ sap.ui.define([
|
|
|
298
298
|
}
|
|
299
299
|
|
|
300
300
|
function setRootControl(vRootControl) {
|
|
301
|
-
var
|
|
301
|
+
var fnFireInstanceInitialized = function() {
|
|
302
302
|
if (typeof UIComponent._fnOnInstanceInitialized === "function") {
|
|
303
303
|
UIComponent._fnOnInstanceInitialized(that);
|
|
304
304
|
}
|
|
@@ -309,19 +309,19 @@ sap.ui.define([
|
|
|
309
309
|
if (vRootControl instanceof Promise) {
|
|
310
310
|
that.pRootControlLoaded = that.pRootControlLoaded.then(function(oRootControl) {
|
|
311
311
|
fnAggregateRootControl(oRootControl);
|
|
312
|
-
|
|
312
|
+
fnFireInstanceInitialized();
|
|
313
313
|
return oRootControl;
|
|
314
314
|
});
|
|
315
315
|
} else if (vRootControl instanceof View && vRootControl.oAsyncState && vRootControl.oAsyncState.promise) {
|
|
316
316
|
fnAggregateRootControl(vRootControl);
|
|
317
317
|
that.pRootControlLoaded = that.pRootControlLoaded.then(function(oRootControl) {
|
|
318
318
|
// notify Component initialization callback handler
|
|
319
|
-
|
|
319
|
+
fnFireInstanceInitialized();
|
|
320
320
|
return oRootControl;
|
|
321
321
|
});
|
|
322
322
|
} else {
|
|
323
323
|
fnAggregateRootControl(vRootControl);
|
|
324
|
-
|
|
324
|
+
fnFireInstanceInitialized();
|
|
325
325
|
}
|
|
326
326
|
}
|
|
327
327
|
|
|
@@ -359,18 +359,39 @@ sap.ui.define([
|
|
|
359
359
|
|
|
360
360
|
// create the router for the component instance
|
|
361
361
|
if (vRoutes) {
|
|
362
|
-
var
|
|
363
|
-
var
|
|
362
|
+
var fnRouterConstructor;
|
|
363
|
+
var sRouterClassName = this._getRouterClassName();
|
|
364
|
+
|
|
365
|
+
// if a classname is configured, the Router class MUST be loaded
|
|
366
|
+
if (sRouterClassName) {
|
|
367
|
+
fnRouterConstructor = getConstructorFunctionFor(sRouterClassName);
|
|
368
|
+
} else {
|
|
369
|
+
// require default Router class
|
|
370
|
+
fnRouterConstructor = sap.ui.require("sap/ui/core/routing/Router")
|
|
371
|
+
|| sap.ui.requireSync("sap/ui/core/routing/Router"); // legacy-relevant: Sync path
|
|
372
|
+
}
|
|
364
373
|
this._oRouter = new fnRouterConstructor(vRoutes, oRoutingConfig, this, oRoutingManifestEntry.targets, this._oRouterHashChanger);
|
|
365
374
|
this._oTargets = this._oRouter.getTargets();
|
|
366
375
|
this._oViews = this._oRouter.getViews();
|
|
367
376
|
} else if (oRoutingManifestEntry.targets) {
|
|
368
|
-
|
|
369
|
-
|
|
377
|
+
// legacy-relevant: Sync path via sync component factory.
|
|
378
|
+
// For async, no sync request is triggered as the class is already loaded by the component factory.
|
|
379
|
+
var Views = sap.ui.require("sap/ui/core/routing/Views")
|
|
380
|
+
|| sap.ui.requireSync("sap/ui/core/routing/Views"); // legacy-relevant: Sync path
|
|
381
|
+
|
|
370
382
|
this._oViews = new Views({
|
|
371
383
|
component: this
|
|
372
384
|
});
|
|
373
|
-
var fnTargetsConstructor
|
|
385
|
+
var fnTargetsConstructor;
|
|
386
|
+
|
|
387
|
+
// if a targets classname is configured, the Targets class MUST be loaded
|
|
388
|
+
if (oRoutingConfig.targetsClass) {
|
|
389
|
+
fnTargetsConstructor = getConstructorFunctionFor(oRoutingConfig.targetsClass);
|
|
390
|
+
} else {
|
|
391
|
+
// For async, no sync request is triggered as the class is already loaded by the component factory.
|
|
392
|
+
fnTargetsConstructor = sap.ui.require("sap/ui/core/routing/Targets")
|
|
393
|
+
|| sap.ui.requireSync("sap/ui/core/routing/Targets"); // legacy-relevant: Sync path
|
|
394
|
+
}
|
|
374
395
|
this._oTargets = new fnTargetsConstructor({
|
|
375
396
|
targets: oRoutingManifestEntry.targets,
|
|
376
397
|
config: oRoutingConfig,
|
|
@@ -644,7 +665,7 @@ sap.ui.define([
|
|
|
644
665
|
*
|
|
645
666
|
* A <code>sap.ui.core.UIComponent</code> subclass can additionally implement the {@link sap.ui.core.IAsyncContentCreation} interface.
|
|
646
667
|
* When implementing this interface the loading and processing of an asynchronous <code>rootView</code> will be chained into
|
|
647
|
-
* the result Promise of the {@link sap.ui.core.Component.create Component.create} factory.
|
|
668
|
+
* the result Promise of the {@link sap.ui.core.Component.create Component.create} factory. An additional async flag can be omitted.
|
|
648
669
|
* See Sample 1 below.
|
|
649
670
|
*
|
|
650
671
|
* Samples 2 and 3 show how subclasses can overwrite the <code>createContent</code> function
|
|
@@ -659,8 +680,7 @@ sap.ui.define([
|
|
|
659
680
|
* rootView: {
|
|
660
681
|
* viewName: "my.sample.views.Main",
|
|
661
682
|
* type: "XML",
|
|
662
|
-
* id: "sampleMainView"
|
|
663
|
-
* async: true
|
|
683
|
+
* id: "sampleMainView"
|
|
664
684
|
* },
|
|
665
685
|
* interfaces: ["sap.ui.core.IAsyncContentCreation"]
|
|
666
686
|
* }
|
|
@@ -715,6 +735,12 @@ sap.ui.define([
|
|
|
715
735
|
type: ViewType.XML
|
|
716
736
|
});
|
|
717
737
|
} else if (oRootView && typeof oRootView === "object") {
|
|
738
|
+
|
|
739
|
+
// default ViewType to XML, except for typed views
|
|
740
|
+
if (!oRootView.type && !View._getModuleName(oRootView)) {
|
|
741
|
+
oRootView.type = ViewType.XML;
|
|
742
|
+
}
|
|
743
|
+
|
|
718
744
|
// make sure to prefix the ID of the rootView
|
|
719
745
|
if (oRootView.id) {
|
|
720
746
|
oRootView.id = this.createId(oRootView.id);
|
|
@@ -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.96.2
|
|
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.96.2
|
|
24
24
|
*
|
|
25
25
|
* @public
|
|
26
26
|
* @since 1.9.2
|
|
@@ -143,7 +143,7 @@ sap.ui.define([
|
|
|
143
143
|
* @extends sap.ui.core.Control
|
|
144
144
|
*
|
|
145
145
|
* @author SAP SE
|
|
146
|
-
* @version 1.
|
|
146
|
+
* @version 1.96.2
|
|
147
147
|
* @since 1.56.0
|
|
148
148
|
* @alias sap.ui.core.XMLComposite
|
|
149
149
|
* @see {@link topic:b83a4dcb7d0e46969027345b8d32fd44 XML Composite Controls}
|
|
@@ -519,7 +519,7 @@ sap.ui.define([
|
|
|
519
519
|
var sFragment = oFragmentContent ? (new XMLSerializer()).serializeToString(oFragmentContent) : undefined;
|
|
520
520
|
this.bUsesI18n = sFragment ? (sFragment.indexOf("$" + this.alias + ".i18n") != -1) : true;
|
|
521
521
|
|
|
522
|
-
this._setCompositeAggregation(sap.ui.xmlfragment({
|
|
522
|
+
this._setCompositeAggregation(sap.ui.xmlfragment({ // legacy-relevant: can lead to follow-up sync XHRs for controls
|
|
523
523
|
sId: this.getId(),
|
|
524
524
|
fragmentContent: oFragmentContent,
|
|
525
525
|
oController: this
|
|
@@ -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.96.2
|
|
34
34
|
* @since 1.50.0
|
|
35
35
|
* @alias sap.ui.core.XMLCompositeMetadata
|
|
36
36
|
* @extends sap.ui.core.ElementMetadata
|
|
@@ -170,7 +170,7 @@ sap.ui.define([
|
|
|
170
170
|
XMLCompositeMetadata.prototype._loadFragment = function (sFragmentName, sExtension) {
|
|
171
171
|
var sFragmentKey = sExtension + "$" + sFragmentName;
|
|
172
172
|
if (!mFragmentCache[sFragmentKey]) {
|
|
173
|
-
mFragmentCache[sFragmentKey] = XMLTemplateProcessor.loadTemplate(sFragmentName, sExtension);
|
|
173
|
+
mFragmentCache[sFragmentKey] = XMLTemplateProcessor.loadTemplate(sFragmentName, sExtension); // legacy-relevant: sync loading of XML resource
|
|
174
174
|
}
|
|
175
175
|
|
|
176
176
|
return mFragmentCache[sFragmentKey];
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
/*global HTMLTemplateElement,
|
|
7
|
+
/*global HTMLTemplateElement, Promise */
|
|
8
8
|
|
|
9
9
|
sap.ui.define([
|
|
10
10
|
'sap/ui/thirdparty/jquery',
|
|
@@ -62,7 +62,7 @@ function(
|
|
|
62
62
|
return oBindingInfo;
|
|
63
63
|
}
|
|
64
64
|
|
|
65
|
-
var vValue = sValue = oBindingInfo
|
|
65
|
+
var vValue = sValue = typeof oBindingInfo === "string" ? oBindingInfo : sValue; // oBindingInfo could be an unescaped string
|
|
66
66
|
var oType = DataType.getType(sType);
|
|
67
67
|
if (oType) {
|
|
68
68
|
if (oType instanceof DataType) {
|
|
@@ -168,6 +168,12 @@ function(
|
|
|
168
168
|
*/
|
|
169
169
|
var PREPROCESSOR_NAMESPACE_PREFIX = "http://schemas.sap.com/sapui5/preprocessorextension/";
|
|
170
170
|
|
|
171
|
+
/**
|
|
172
|
+
* Pattern that matches the names of all HTML void tags.
|
|
173
|
+
* @private
|
|
174
|
+
*/
|
|
175
|
+
var rVoidTags = /^(?:area|base|br|col|embed|hr|img|input|link|meta|param|source|track|wbr)$/;
|
|
176
|
+
|
|
171
177
|
/**
|
|
172
178
|
* Creates a function based on the passed mode and callback which applies a callback to each child of a node.
|
|
173
179
|
* @param {boolean} bAsync The strategy to choose
|
|
@@ -355,7 +361,7 @@ function(
|
|
|
355
361
|
// TODO: might be refactored into resolveResultPromises()?
|
|
356
362
|
if (Array.isArray(args[0])) {
|
|
357
363
|
args[0] = args[0].filter(function(e) {
|
|
358
|
-
return !e._isExtensionPoint;
|
|
364
|
+
return e == null || !e._isExtensionPoint;
|
|
359
365
|
});
|
|
360
366
|
}
|
|
361
367
|
return args[0];
|
|
@@ -452,7 +458,7 @@ function(
|
|
|
452
458
|
});
|
|
453
459
|
} else {
|
|
454
460
|
Object.keys(oRequireContext).forEach(function(sKey) {
|
|
455
|
-
oModules[sKey] = sap.ui.requireSync(oRequireContext[sKey]);
|
|
461
|
+
oModules[sKey] = sap.ui.requireSync(oRequireContext[sKey]); // legacy-relevant: Sync path
|
|
456
462
|
});
|
|
457
463
|
|
|
458
464
|
return SyncPromise.resolve(oModules);
|
|
@@ -542,10 +548,42 @@ function(
|
|
|
542
548
|
// later this intermediate state with promises gets resolved to a flat array containing only strings and controls
|
|
543
549
|
var aResult = [],
|
|
544
550
|
sInternalPrefix = findNamespacePrefix(xmlNode, UI5_INTERNAL_NAMESPACE, "__ui5"),
|
|
545
|
-
pResultChain = parseAndLoadRequireContext(xmlNode, bAsync) || SyncPromise.resolve()
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
551
|
+
pResultChain = parseAndLoadRequireContext(xmlNode, bAsync) || SyncPromise.resolve(),
|
|
552
|
+
rm = {
|
|
553
|
+
openStart: function(tagName, sId) {
|
|
554
|
+
aResult.push(["openStart", [tagName, sId]]);
|
|
555
|
+
},
|
|
556
|
+
voidStart: function(tagName, sId) {
|
|
557
|
+
aResult.push(["voidStart", [tagName, sId]]);
|
|
558
|
+
},
|
|
559
|
+
style: function(name, value) {
|
|
560
|
+
aResult.push(["style", [name, value]]);
|
|
561
|
+
},
|
|
562
|
+
"class": function(clazz) {
|
|
563
|
+
aResult.push(["class", [clazz]]);
|
|
564
|
+
},
|
|
565
|
+
attr: function(name, value) {
|
|
566
|
+
aResult.push(["attr", [name, value]]);
|
|
567
|
+
},
|
|
568
|
+
openEnd: function() {
|
|
569
|
+
aResult.push(["openEnd"]);
|
|
570
|
+
},
|
|
571
|
+
voidEnd: function() {
|
|
572
|
+
aResult.push(["voidEnd"]);
|
|
573
|
+
},
|
|
574
|
+
text: function(str) {
|
|
575
|
+
aResult.push(["text", [str]]);
|
|
576
|
+
},
|
|
577
|
+
unsafeHtml: function(str) {
|
|
578
|
+
aResult.push(["unsafeHtml", [str]]);
|
|
579
|
+
},
|
|
580
|
+
close: function(tagName) {
|
|
581
|
+
aResult.push(["close", [tagName]]);
|
|
582
|
+
},
|
|
583
|
+
renderControl: function(content) {
|
|
584
|
+
aResult.push(pResultChain);
|
|
585
|
+
}
|
|
586
|
+
};
|
|
549
587
|
|
|
550
588
|
bAsync = bAsync && !!oView._sProcessingMode;
|
|
551
589
|
Log.debug("XML processing mode is " + (oView._sProcessingMode || "default") + ".", "", "XMLTemplateProcessor");
|
|
@@ -578,6 +616,10 @@ function(
|
|
|
578
616
|
// it's not <core:View>, it's <mvc:View> !!!
|
|
579
617
|
Log.warning("XMLView root node must have the 'sap.ui.core.mvc' namespace, not '" + xmlNode.namespaceURI + "'" + (sCurrentName ? " (View name: " + sCurrentName + ")" : ""));
|
|
580
618
|
}
|
|
619
|
+
|
|
620
|
+
// define internal namespace on root node
|
|
621
|
+
xmlNode.setAttributeNS(XMLNS_NAMESPACE, "xmlns:" + sInternalPrefix, UI5_INTERNAL_NAMESPACE);
|
|
622
|
+
|
|
581
623
|
parseChildren(xmlNode, false, false, pResultChain);
|
|
582
624
|
}
|
|
583
625
|
|
|
@@ -638,39 +680,79 @@ function(
|
|
|
638
680
|
if ( xmlNode.nodeType === 1 /* ELEMENT_NODE */ ) {
|
|
639
681
|
|
|
640
682
|
var sLocalName = localName(xmlNode);
|
|
641
|
-
|
|
683
|
+
var bXHTML = xmlNode.namespaceURI === XHTML_NAMESPACE;
|
|
684
|
+
if (bXHTML || xmlNode.namespaceURI === SVG_NAMESPACE) {
|
|
685
|
+
// determine ID
|
|
686
|
+
var sId = xmlNode.getAttribute("id");
|
|
687
|
+
if ( sId == null ) {
|
|
688
|
+
sId = bRoot === true ? oView.getId() : undefined;
|
|
689
|
+
} else {
|
|
690
|
+
sId = getId(oView, xmlNode);
|
|
691
|
+
}
|
|
692
|
+
if ( sLocalName === "style" ) {
|
|
693
|
+
// We need to remove the namespace prefix from style nodes
|
|
694
|
+
// otherwise the style element's content will be output as text and not evaluated as CSS
|
|
695
|
+
// We do this by manually 'cloning' the style without the NS prefix
|
|
696
|
+
|
|
697
|
+
// original node values
|
|
698
|
+
var aAttributes = xmlNode.attributes; // array-like 'NamedNodeMap'
|
|
699
|
+
var sTextContent = xmlNode.textContent;
|
|
700
|
+
|
|
701
|
+
// 'clone'
|
|
702
|
+
xmlNode = document.createElement(sLocalName);
|
|
703
|
+
xmlNode.textContent = sTextContent;
|
|
704
|
+
|
|
705
|
+
// copy all non-prefixed attributes
|
|
706
|
+
// -> prefixed attributes are invalid HTML
|
|
707
|
+
for (var j = 0; j < aAttributes.length; j++) {
|
|
708
|
+
var oAttr = aAttributes[j];
|
|
709
|
+
if (!oAttr.prefix) {
|
|
710
|
+
xmlNode.setAttribute(oAttr.name, oAttr.value);
|
|
711
|
+
}
|
|
712
|
+
}
|
|
713
|
+
// avoid encoding of style content by writing the whole tag as unsafeHtml
|
|
714
|
+
// for compatibility reasons, apply the same ID rewriting as for other tags
|
|
715
|
+
if ( sId != null ) {
|
|
716
|
+
xmlNode.setAttribute("id", sId);
|
|
717
|
+
}
|
|
718
|
+
if ( bRoot === true ) {
|
|
719
|
+
xmlNode.setAttribute("data-sap-ui-preserve", oView.getId());
|
|
720
|
+
}
|
|
721
|
+
rm.unsafeHtml(xmlNode.outerHTML);
|
|
722
|
+
return;
|
|
723
|
+
}
|
|
642
724
|
// write opening tag
|
|
643
|
-
|
|
725
|
+
var bVoid = rVoidTags.test(sLocalName);
|
|
726
|
+
if ( bVoid ) {
|
|
727
|
+
rm.voidStart(sLocalName, sId);
|
|
728
|
+
} else {
|
|
729
|
+
rm.openStart(sLocalName, sId);
|
|
730
|
+
}
|
|
644
731
|
// write attributes
|
|
645
|
-
var bHasId = false;
|
|
646
732
|
for (var i = 0; i < xmlNode.attributes.length; i++) {
|
|
647
733
|
var attr = xmlNode.attributes[i];
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
bHasId = true;
|
|
651
|
-
value = getId(oView, xmlNode);
|
|
734
|
+
if ( attr.name !== "id" ) {
|
|
735
|
+
rm.attr(bXHTML ? attr.name.toLowerCase() : attr.name, attr.value);
|
|
652
736
|
}
|
|
653
|
-
aResult.push(attr.name + "=\"" + encodeXML(value) + "\" ");
|
|
654
737
|
}
|
|
655
738
|
if ( bRoot === true ) {
|
|
656
|
-
|
|
657
|
-
if (!bHasId) {
|
|
658
|
-
aResult.push("id" + "=\"" + oView.getId() + "\" ");
|
|
659
|
-
}
|
|
739
|
+
rm.attr("data-sap-ui-preserve", oView.getId());
|
|
660
740
|
}
|
|
661
|
-
|
|
741
|
+
if ( bVoid ) {
|
|
742
|
+
rm.voidEnd();
|
|
743
|
+
if ( xmlNode.firstChild ) {
|
|
744
|
+
Log.error("Content of void HTML element '" + sLocalName + "' will be ignored");
|
|
745
|
+
}
|
|
746
|
+
} else {
|
|
747
|
+
rm.openEnd();
|
|
662
748
|
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
749
|
+
// write children
|
|
750
|
+
// For HTMLTemplateElement nodes, skip the associated DocumentFragment node
|
|
751
|
+
var oContent = xmlNode instanceof HTMLTemplateElement ? xmlNode.content : xmlNode;
|
|
752
|
+
parseChildren(oContent, false, false, pRequireContext);
|
|
753
|
+
rm.close(sLocalName);
|
|
668
754
|
}
|
|
669
755
|
|
|
670
|
-
parseChildren(oContent, false, false, pRequireContext);
|
|
671
|
-
aResult.push("</" + sLocalName + ">");
|
|
672
|
-
|
|
673
|
-
|
|
674
756
|
} else if (sLocalName === "FragmentDefinition" && xmlNode.namespaceURI === CORE_NAMESPACE) {
|
|
675
757
|
// a Fragment element - which is not turned into a control itself. Only its content is parsed.
|
|
676
758
|
parseChildren(xmlNode, false, true, pRequireContext);
|
|
@@ -720,20 +802,13 @@ function(
|
|
|
720
802
|
return aChildControls;
|
|
721
803
|
});
|
|
722
804
|
});
|
|
723
|
-
|
|
805
|
+
rm.renderControl(pResultChain);
|
|
724
806
|
|
|
725
807
|
}
|
|
726
808
|
|
|
727
809
|
} else if (xmlNode.nodeType === 3 /* TEXT_NODE */ && !bIgnoreTopLevelTextNodes) {
|
|
728
810
|
|
|
729
|
-
|
|
730
|
-
parentName = localName(xmlNode.parentNode);
|
|
731
|
-
if (text) {
|
|
732
|
-
if (parentName != "style") {
|
|
733
|
-
text = encodeXML(text);
|
|
734
|
-
}
|
|
735
|
-
aResult.push(text);
|
|
736
|
-
}
|
|
811
|
+
rm.text(xmlNode.textContent);
|
|
737
812
|
|
|
738
813
|
}
|
|
739
814
|
}
|
|
@@ -798,7 +873,7 @@ function(
|
|
|
798
873
|
}, reject);
|
|
799
874
|
});
|
|
800
875
|
} else {
|
|
801
|
-
oClassObject = sap.ui.requireSync(sResourceName);
|
|
876
|
+
oClassObject = sap.ui.requireSync(sResourceName); // legacy-relevant: Sync path
|
|
802
877
|
oClassObject = getObjectFallback(oClassObject);
|
|
803
878
|
}
|
|
804
879
|
}
|
|
@@ -852,7 +927,7 @@ function(
|
|
|
852
927
|
}, reject);
|
|
853
928
|
});
|
|
854
929
|
} else {
|
|
855
|
-
var XMLView = sap.ui.requireSync("sap/ui/core/mvc/XMLView");
|
|
930
|
+
var XMLView = sap.ui.requireSync("sap/ui/core/mvc/XMLView"); // legacy-relevant: Sync path
|
|
856
931
|
return SyncPromise.resolve([fnCreateView(XMLView)]);
|
|
857
932
|
}
|
|
858
933
|
}
|