@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
|
@@ -228,7 +228,7 @@ sap.ui.define([
|
|
|
228
228
|
* @extends sap.ui.base.ManagedObject
|
|
229
229
|
* @abstract
|
|
230
230
|
* @author SAP SE
|
|
231
|
-
* @version 1.
|
|
231
|
+
* @version 1.96.2
|
|
232
232
|
* @alias sap.ui.core.Component
|
|
233
233
|
* @since 1.9.2
|
|
234
234
|
*/
|
|
@@ -383,6 +383,64 @@ sap.ui.define([
|
|
|
383
383
|
}
|
|
384
384
|
});
|
|
385
385
|
|
|
386
|
+
/**
|
|
387
|
+
* Helper function to retrieve owner (extension) component holding the customizing configuration.
|
|
388
|
+
* @param {string|sap.ui.core.Component|sap.ui.base.ManagedObject} vObject Component Id, component instance or ManagedObject
|
|
389
|
+
* @throws {Error} If 'getExtensionComponent' function is given, but does not return an instance.
|
|
390
|
+
* @returns {sap.ui.core.Component|undefined} The owner component or <code>undefined</code>
|
|
391
|
+
*/
|
|
392
|
+
function getCustomizingComponent(vObject) {
|
|
393
|
+
var oComponent, sComponentId;
|
|
394
|
+
|
|
395
|
+
if (!sap.ui.getCore().getConfiguration().getDisableCustomizing()) {
|
|
396
|
+
if (typeof vObject === "string") {
|
|
397
|
+
sComponentId = vObject;
|
|
398
|
+
} else if (vObject && typeof vObject.isA === "function" && !vObject.isA("sap.ui.core.Component")) {
|
|
399
|
+
sComponentId = Component.getOwnerIdFor(vObject);
|
|
400
|
+
} else {
|
|
401
|
+
oComponent = vObject;
|
|
402
|
+
}
|
|
403
|
+
|
|
404
|
+
if (sComponentId) {
|
|
405
|
+
oComponent = Component.get(sComponentId);
|
|
406
|
+
}
|
|
407
|
+
|
|
408
|
+
if (oComponent) {
|
|
409
|
+
if (oComponent.getExtensionComponent) {
|
|
410
|
+
oComponent = oComponent.getExtensionComponent();
|
|
411
|
+
if (!oComponent) {
|
|
412
|
+
throw new Error("getExtensionComponent() must return an instance.");
|
|
413
|
+
}
|
|
414
|
+
}
|
|
415
|
+
}
|
|
416
|
+
}
|
|
417
|
+
return oComponent;
|
|
418
|
+
}
|
|
419
|
+
|
|
420
|
+
/**
|
|
421
|
+
* @param {string|sap.ui.base.ManagedObject|sap.ui.core.Component} vObject Either Component Id, ManagedObject or component instance
|
|
422
|
+
* @param {object} mOptions Info object to retrieve the customizing config
|
|
423
|
+
* @param {object} mOptions.type Either <code>sap.ui.viewExtension</code>, <code>sap.ui.controllerReplacement</code>, <code>sap.ui.viewReplacement</code>, <code>sap.ui.viewModification</code> or <code>sap.ui.controllerExtension</code>
|
|
424
|
+
* @param {object} mOptions.name Name of the customizing configuration
|
|
425
|
+
* @param {object} [mOptions.extensionName] If type <code>sap.ui.viewExtension</code>, the extension name must be provided
|
|
426
|
+
* @param {object} oExtInfo Config object containing the view/fragment and extension name
|
|
427
|
+
* @throws {Error} If 'getExtensionComponent' function is given, but does not return an instance.
|
|
428
|
+
* @returns {object|undefined} Object containing the customizing config or <code>undefined</code>
|
|
429
|
+
* @static
|
|
430
|
+
* @private ui5-restricted sap.ui.core
|
|
431
|
+
*/
|
|
432
|
+
Component.getCustomizing = function(vObject, mOptions) {
|
|
433
|
+
var sType = mOptions.type,
|
|
434
|
+
sPath = "/sap.ui5/extends/extensions/" + sType + "/" + mOptions.name;
|
|
435
|
+
|
|
436
|
+
if (sType === "sap.ui.viewExtensions") {
|
|
437
|
+
sPath += "/" + mOptions.extensionName;
|
|
438
|
+
}
|
|
439
|
+
|
|
440
|
+
var oComponent = getCustomizingComponent(vObject);
|
|
441
|
+
return oComponent ? oComponent._getManifestEntry(sPath, true) : undefined;
|
|
442
|
+
};
|
|
443
|
+
|
|
386
444
|
/**
|
|
387
445
|
* Returns the metadata for the Component class.
|
|
388
446
|
*
|
|
@@ -803,14 +861,20 @@ sap.ui.define([
|
|
|
803
861
|
*/
|
|
804
862
|
Component.prototype.getEventBus = function() {
|
|
805
863
|
if (!this._oEventBus) {
|
|
806
|
-
var
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
864
|
+
var EventBus = sap.ui.require("sap/ui/core/EventBus");
|
|
865
|
+
if (!EventBus) {
|
|
866
|
+
var sClassName = this.getMetadata().getName();
|
|
867
|
+
Log.warning("Synchronous loading of EventBus, due to #getEventBus() call on Component '" + sClassName + "'.", "SyncXHR", null, function() {
|
|
868
|
+
return {
|
|
869
|
+
type: "SyncXHR",
|
|
870
|
+
name: sClassName
|
|
871
|
+
};
|
|
872
|
+
});
|
|
873
|
+
// We don't expect the application to use this API anymore (see Dev-Guide)
|
|
874
|
+
// For the application it is recommended to declare the EventBus via sap.ui.require or sap.ui.define
|
|
875
|
+
EventBus = sap.ui.requireSync("sap/ui/core/EventBus"); // legacy-relevant
|
|
876
|
+
}
|
|
877
|
+
|
|
814
878
|
this._oEventBus = new EventBus();
|
|
815
879
|
|
|
816
880
|
if (!this.isActive()) {
|
|
@@ -868,10 +932,18 @@ sap.ui.define([
|
|
|
868
932
|
* @private
|
|
869
933
|
*/
|
|
870
934
|
Component.prototype._initComponentModels = function(mModels, mDataSources, mCacheTokens) {
|
|
935
|
+
var sComponentName = this.getManifestObject().getComponentName();
|
|
871
936
|
|
|
872
|
-
var
|
|
937
|
+
var mAllModelConfigs = Component._findManifestModelClasses({
|
|
873
938
|
models: mModels,
|
|
874
939
|
dataSources: mDataSources,
|
|
940
|
+
componentName: sComponentName
|
|
941
|
+
});
|
|
942
|
+
Component._loadManifestModelClasses(mAllModelConfigs, sComponentName);
|
|
943
|
+
|
|
944
|
+
var mAllModelConfigurations = Component._createManifestModelConfigurations({
|
|
945
|
+
models: mAllModelConfigs,
|
|
946
|
+
dataSources: mDataSources,
|
|
875
947
|
component: this,
|
|
876
948
|
mergeParent: true,
|
|
877
949
|
cacheTokens: mCacheTokens,
|
|
@@ -892,7 +964,7 @@ sap.ui.define([
|
|
|
892
964
|
}
|
|
893
965
|
|
|
894
966
|
// create all models which are not created, yet.
|
|
895
|
-
var mCreatedModels = Component._createManifestModels(mModelConfigurations,
|
|
967
|
+
var mCreatedModels = Component._createManifestModels(mModelConfigurations, sComponentName);
|
|
896
968
|
for (sModelName in mCreatedModels) {
|
|
897
969
|
// keep the model instance to be able to destroy the created models on component destroy
|
|
898
970
|
this._mManifestModels[sModelName] = mCreatedModels[sModelName];
|
|
@@ -1299,8 +1371,7 @@ sap.ui.define([
|
|
|
1299
1371
|
if (mConfig.async === true) {
|
|
1300
1372
|
return Component.create(mConfig);
|
|
1301
1373
|
} else {
|
|
1302
|
-
// use deprecated factory for sync use case only
|
|
1303
|
-
return sap.ui.component(mConfig);
|
|
1374
|
+
return sap.ui.component(mConfig); // legacy-relevant: use deprecated factory for sync use case only
|
|
1304
1375
|
}
|
|
1305
1376
|
}
|
|
1306
1377
|
|
|
@@ -1367,6 +1438,102 @@ sap.ui.define([
|
|
|
1367
1438
|
|
|
1368
1439
|
};
|
|
1369
1440
|
|
|
1441
|
+
Component._findManifestModelClasses = function(mOptions) {
|
|
1442
|
+
if (!mOptions.models) {
|
|
1443
|
+
// skipping model creation because of missing sap.ui5 models manifest entry
|
|
1444
|
+
return null;
|
|
1445
|
+
}
|
|
1446
|
+
|
|
1447
|
+
var mConfig = {
|
|
1448
|
+
|
|
1449
|
+
// ui5 model definitions
|
|
1450
|
+
models: mOptions.models,
|
|
1451
|
+
|
|
1452
|
+
// optional dataSources from "sap.app" manifest
|
|
1453
|
+
dataSources: mOptions.dataSources || {},
|
|
1454
|
+
|
|
1455
|
+
// to identify where the dataSources/models have been originally defined
|
|
1456
|
+
origin: {
|
|
1457
|
+
dataSources: {},
|
|
1458
|
+
models: {}
|
|
1459
|
+
}
|
|
1460
|
+
};
|
|
1461
|
+
|
|
1462
|
+
var sLogComponentName = mOptions.componentName;
|
|
1463
|
+
var mModelConfigurations = {};
|
|
1464
|
+
|
|
1465
|
+
// create a model for each ["sap.ui5"]["models"] entry
|
|
1466
|
+
for (var sModelName in mConfig.models) {
|
|
1467
|
+
|
|
1468
|
+
var oModelConfig = mConfig.models[sModelName];
|
|
1469
|
+
|
|
1470
|
+
// normalize dataSource shorthand, e.g.
|
|
1471
|
+
// "myModel": "myDataSource" => "myModel": { dataSource: "myDataSource" }
|
|
1472
|
+
if (typeof oModelConfig === 'string') {
|
|
1473
|
+
oModelConfig = {
|
|
1474
|
+
dataSource: oModelConfig
|
|
1475
|
+
};
|
|
1476
|
+
}
|
|
1477
|
+
|
|
1478
|
+
// check for referenced dataSource entry and read out settings/uri/type
|
|
1479
|
+
// if not already provided in model config
|
|
1480
|
+
if (oModelConfig.dataSource) {
|
|
1481
|
+
|
|
1482
|
+
var oDataSource = mConfig.dataSources && mConfig.dataSources[oModelConfig.dataSource];
|
|
1483
|
+
if (typeof oDataSource === 'object') {
|
|
1484
|
+
|
|
1485
|
+
// default type is OData
|
|
1486
|
+
if (oDataSource.type === undefined) {
|
|
1487
|
+
oDataSource.type = 'OData';
|
|
1488
|
+
}
|
|
1489
|
+
|
|
1490
|
+
var sODataVersion;
|
|
1491
|
+
|
|
1492
|
+
// read out type and translate to model class
|
|
1493
|
+
// (only if no model type was set to allow overriding)
|
|
1494
|
+
if (!oModelConfig.type) {
|
|
1495
|
+
switch (oDataSource.type) {
|
|
1496
|
+
case 'OData':
|
|
1497
|
+
sODataVersion = oDataSource.settings && oDataSource.settings.odataVersion;
|
|
1498
|
+
if (sODataVersion === "4.0") {
|
|
1499
|
+
oModelConfig.type = 'sap.ui.model.odata.v4.ODataModel';
|
|
1500
|
+
} else if (!sODataVersion || sODataVersion === "2.0") {
|
|
1501
|
+
// 2.0 is the default in case no version is provided
|
|
1502
|
+
oModelConfig.type = 'sap.ui.model.odata.v2.ODataModel';
|
|
1503
|
+
} else {
|
|
1504
|
+
Log.error('Component Manifest: Provided OData version "' + sODataVersion + '" in ' +
|
|
1505
|
+
'dataSource "' + oModelConfig.dataSource + '" for model "' + sModelName + '" is unknown. ' +
|
|
1506
|
+
'Falling back to default model type "sap.ui.model.odata.v2.ODataModel".',
|
|
1507
|
+
'["sap.app"]["dataSources"]["' + oModelConfig.dataSource + '"]', sLogComponentName);
|
|
1508
|
+
oModelConfig.type = 'sap.ui.model.odata.v2.ODataModel';
|
|
1509
|
+
}
|
|
1510
|
+
break;
|
|
1511
|
+
case 'JSON':
|
|
1512
|
+
oModelConfig.type = 'sap.ui.model.json.JSONModel';
|
|
1513
|
+
break;
|
|
1514
|
+
case 'XML':
|
|
1515
|
+
oModelConfig.type = 'sap.ui.model.xml.XMLModel';
|
|
1516
|
+
break;
|
|
1517
|
+
default:
|
|
1518
|
+
// for custom dataSource types, the class should already be specified in the sap.ui5 models config
|
|
1519
|
+
}
|
|
1520
|
+
}
|
|
1521
|
+
}
|
|
1522
|
+
}
|
|
1523
|
+
|
|
1524
|
+
// model type is required!
|
|
1525
|
+
if (!oModelConfig.type) {
|
|
1526
|
+
Log.error("Component Manifest: Missing \"type\" for model \"" + sModelName + "\"", "[\"sap.ui5\"][\"models\"][\"" + sModelName + "\"]", sLogComponentName);
|
|
1527
|
+
continue;
|
|
1528
|
+
}
|
|
1529
|
+
|
|
1530
|
+
// Add final configuration to result map
|
|
1531
|
+
mModelConfigurations[sModelName] = oModelConfig;
|
|
1532
|
+
}
|
|
1533
|
+
|
|
1534
|
+
return mModelConfigurations;
|
|
1535
|
+
};
|
|
1536
|
+
|
|
1370
1537
|
/**
|
|
1371
1538
|
* Creates model configurations by processing "/sap.app/dataSources" and "/sap.ui5/models" manifest entries.
|
|
1372
1539
|
* Result can be handed over to {@link sap.ui.core.Component._createManifestModels} in order to create instances.
|
|
@@ -1387,7 +1554,7 @@ sap.ui.define([
|
|
|
1387
1554
|
var oManifest = mOptions.manifest || oComponent.getManifestObject();
|
|
1388
1555
|
var bMergeParent = mOptions.mergeParent;
|
|
1389
1556
|
var mCacheTokens = mOptions.cacheTokens || {};
|
|
1390
|
-
var sLogComponentName = oComponent ? oComponent.
|
|
1557
|
+
var sLogComponentName = oComponent ? oComponent.getMetadata().getComponentName() : oManifest.getComponentName();
|
|
1391
1558
|
var oConfig = sap.ui.getCore().getConfiguration();
|
|
1392
1559
|
var aActiveTerminologies = mOptions.activeTerminologies;
|
|
1393
1560
|
|
|
@@ -1433,6 +1600,22 @@ sap.ui.define([
|
|
|
1433
1600
|
for (var sModelName in mConfig.models) {
|
|
1434
1601
|
|
|
1435
1602
|
var oModelConfig = mConfig.models[sModelName];
|
|
1603
|
+
var fnClass = sap.ui.require(oModelConfig.type.replace(/\./g, "/"));
|
|
1604
|
+
if (!fnClass) {
|
|
1605
|
+
fnClass = ObjectPath.get(oModelConfig.type);
|
|
1606
|
+
}
|
|
1607
|
+
// class could not be loaded by _loadManifestModelClasses
|
|
1608
|
+
if (!fnClass) {
|
|
1609
|
+
Log.error("Component Manifest: Class \"" + oModelConfig.type + "\" for model \"" + sModelName + "\" could not be found", "[\"sap.ui5\"][\"models\"][\"" + sModelName + "\"]", sLogComponentName);
|
|
1610
|
+
continue;
|
|
1611
|
+
}
|
|
1612
|
+
var oClassMetadata = fnClass.getMetadata();
|
|
1613
|
+
|
|
1614
|
+
var bIsV1Model = oClassMetadata.isA("sap.ui.model.odata.ODataModel");
|
|
1615
|
+
var bIsV2Model = oClassMetadata.isA("sap.ui.model.odata.v2.ODataModel");
|
|
1616
|
+
var bIsV4Model = oClassMetadata.isA("sap.ui.model.odata.v4.ODataModel");
|
|
1617
|
+
var bIsResourceModel = oClassMetadata.isA("sap.ui.model.resource.ResourceModel");
|
|
1618
|
+
|
|
1436
1619
|
var bIsDataSourceUri = false;
|
|
1437
1620
|
var mMetadataUrlParams = null;
|
|
1438
1621
|
|
|
@@ -1456,42 +1639,8 @@ sap.ui.define([
|
|
|
1456
1639
|
oDataSource.type = 'OData';
|
|
1457
1640
|
}
|
|
1458
1641
|
|
|
1459
|
-
var sODataVersion;
|
|
1460
|
-
|
|
1461
|
-
// read out type and translate to model class
|
|
1462
|
-
// (only if no model type was set to allow overriding)
|
|
1463
|
-
if (!oModelConfig.type) {
|
|
1464
|
-
switch (oDataSource.type) {
|
|
1465
|
-
case 'OData':
|
|
1466
|
-
sODataVersion = oDataSource.settings && oDataSource.settings.odataVersion;
|
|
1467
|
-
if (sODataVersion === "4.0") {
|
|
1468
|
-
oModelConfig.type = 'sap.ui.model.odata.v4.ODataModel';
|
|
1469
|
-
} else if (!sODataVersion || sODataVersion === "2.0") {
|
|
1470
|
-
// 2.0 is the default in case no version is provided
|
|
1471
|
-
oModelConfig.type = 'sap.ui.model.odata.v2.ODataModel';
|
|
1472
|
-
} else {
|
|
1473
|
-
Log.error('Component Manifest: Provided OData version "' + sODataVersion + '" in ' +
|
|
1474
|
-
'dataSource "' + oModelConfig.dataSource + '" for model "' + sModelName + '" is unknown. ' +
|
|
1475
|
-
'Falling back to default model type "sap.ui.model.odata.v2.ODataModel".',
|
|
1476
|
-
'["sap.app"]["dataSources"]["' + oModelConfig.dataSource + '"]', sLogComponentName);
|
|
1477
|
-
oModelConfig.type = 'sap.ui.model.odata.v2.ODataModel';
|
|
1478
|
-
}
|
|
1479
|
-
break;
|
|
1480
|
-
case 'JSON':
|
|
1481
|
-
oModelConfig.type = 'sap.ui.model.json.JSONModel';
|
|
1482
|
-
break;
|
|
1483
|
-
case 'XML':
|
|
1484
|
-
oModelConfig.type = 'sap.ui.model.xml.XMLModel';
|
|
1485
|
-
break;
|
|
1486
|
-
default:
|
|
1487
|
-
// for custom dataSource types, the class should already be specified in the sap.ui5 models config
|
|
1488
|
-
}
|
|
1489
|
-
}
|
|
1490
|
-
|
|
1491
1642
|
// pass OData service version (e.g. "2.0"), if specified, to the OData V4 model
|
|
1492
|
-
if (
|
|
1493
|
-
&& oDataSource.settings
|
|
1494
|
-
&& oDataSource.settings.odataVersion) {
|
|
1643
|
+
if (bIsV4Model && oDataSource.settings && oDataSource.settings.odataVersion) {
|
|
1495
1644
|
oModelConfig.settings = oModelConfig.settings || {};
|
|
1496
1645
|
oModelConfig.settings.odataVersion = oDataSource.settings.odataVersion;
|
|
1497
1646
|
}
|
|
@@ -1536,20 +1685,16 @@ sap.ui.define([
|
|
|
1536
1685
|
|
|
1537
1686
|
var oAnnotationUri = new URI(oAnnotation.uri);
|
|
1538
1687
|
|
|
1539
|
-
if (
|
|
1540
|
-
|
|
1688
|
+
if (bIsV2Model || bIsV4Model) {
|
|
1689
|
+
/* eslint-disable no-loop-func */
|
|
1690
|
+
["sap-language", "sap-client"].forEach(function(sName) {
|
|
1691
|
+
if (!oAnnotationUri.hasQuery(sName) && oConfig.getSAPParam(sName)) {
|
|
1692
|
+
oAnnotationUri.setQuery(sName, oConfig.getSAPParam(sName));
|
|
1693
|
+
}
|
|
1694
|
+
});
|
|
1695
|
+
/* eslint-enable no-loop-func */
|
|
1541
1696
|
|
|
1542
1697
|
var sCacheTokenForAnnotation = mCacheTokens.dataSources && mCacheTokens.dataSources[oAnnotation.uri];
|
|
1543
|
-
if (sCacheTokenForAnnotation || oModelConfig.type === 'sap.ui.model.odata.v2.ODataModel') {
|
|
1544
|
-
/* eslint-disable no-loop-func */
|
|
1545
|
-
["sap-language", "sap-client"].forEach(function(sName) {
|
|
1546
|
-
if (!oAnnotationUri.hasQuery(sName) && oConfig.getSAPParam(sName)) {
|
|
1547
|
-
oAnnotationUri.setQuery(sName, oConfig.getSAPParam(sName));
|
|
1548
|
-
}
|
|
1549
|
-
});
|
|
1550
|
-
/* eslint-enable no-loop-func */
|
|
1551
|
-
}
|
|
1552
|
-
|
|
1553
1698
|
if (sCacheTokenForAnnotation) {
|
|
1554
1699
|
Component._applyCacheToken(oAnnotationUri, {
|
|
1555
1700
|
cacheToken: sCacheTokenForAnnotation,
|
|
@@ -1576,24 +1721,16 @@ sap.ui.define([
|
|
|
1576
1721
|
}
|
|
1577
1722
|
}
|
|
1578
1723
|
|
|
1579
|
-
// model type is required!
|
|
1580
|
-
if (!oModelConfig.type) {
|
|
1581
|
-
Log.error("Component Manifest: Missing \"type\" for model \"" + sModelName + "\"", "[\"sap.ui5\"][\"models\"][\"" + sModelName + "\"]", sLogComponentName);
|
|
1582
|
-
continue;
|
|
1583
|
-
}
|
|
1584
|
-
|
|
1585
1724
|
// set mode of old ODataModel to "json" (default is xml).
|
|
1586
1725
|
// as the automatic model creation is a new feature, this is not incompatible here
|
|
1587
|
-
if (oModelConfig.
|
|
1588
|
-
(!oModelConfig.settings || oModelConfig.settings.json === undefined)) {
|
|
1726
|
+
if (bIsV1Model && (!oModelConfig.settings || oModelConfig.settings.json === undefined)) {
|
|
1589
1727
|
// do not overwrite the flag if it was explicitly defined!
|
|
1590
|
-
|
|
1591
1728
|
oModelConfig.settings = oModelConfig.settings || {};
|
|
1592
1729
|
oModelConfig.settings.json = true;
|
|
1593
1730
|
}
|
|
1594
1731
|
|
|
1595
1732
|
// Check resource models for bundleUrl configuration
|
|
1596
|
-
if (
|
|
1733
|
+
if (bIsResourceModel) {
|
|
1597
1734
|
if (oModelConfig.uri && oModelConfig.settings && oModelConfig.settings.bundleUrl) {
|
|
1598
1735
|
Log.warning("Defining both model uri and bundleUrl is not supported. Only model uri will be resolved.");
|
|
1599
1736
|
}
|
|
@@ -1621,8 +1758,7 @@ sap.ui.define([
|
|
|
1621
1758
|
if (oModelConfig.dataSource) {
|
|
1622
1759
|
addSapParams(oUri);
|
|
1623
1760
|
|
|
1624
|
-
if (
|
|
1625
|
-
oModelConfig.type === 'sap.ui.model.odata.v4.ODataModel') {
|
|
1761
|
+
if (bIsV2Model || bIsV4Model) {
|
|
1626
1762
|
|
|
1627
1763
|
var oModelDataSource = mConfig.dataSources && mConfig.dataSources[oModelConfig.dataSource];
|
|
1628
1764
|
var sCacheToken = mCacheTokens.dataSources && mCacheTokens.dataSources[oModelDataSource.uri];
|
|
@@ -1633,7 +1769,7 @@ sap.ui.define([
|
|
|
1633
1769
|
&& !oUri.hasQuery('sap-language')
|
|
1634
1770
|
&& oConfig.getSAPParam('sap-language');
|
|
1635
1771
|
|
|
1636
|
-
if (
|
|
1772
|
+
if (bNeedsLanguage || sCacheToken) {
|
|
1637
1773
|
// Lazy initialize settings and metadataUrlParams objects
|
|
1638
1774
|
oModelConfig.settings = oModelConfig.settings || {};
|
|
1639
1775
|
mMetadataUrlParams = oModelConfig.settings.metadataUrlParams = oModelConfig.settings.metadataUrlParams || {};
|
|
@@ -1661,17 +1797,12 @@ sap.ui.define([
|
|
|
1661
1797
|
// set model specific "uri" property names which should be used to map "uri" to model specific constructor
|
|
1662
1798
|
// (only if it wasn't specified before)
|
|
1663
1799
|
if (oModelConfig.uriSettingName === undefined) {
|
|
1664
|
-
|
|
1665
|
-
|
|
1666
|
-
|
|
1667
|
-
|
|
1668
|
-
|
|
1669
|
-
|
|
1670
|
-
case 'sap.ui.model.resource.ResourceModel':
|
|
1671
|
-
oModelConfig.uriSettingName = 'bundleUrl';
|
|
1672
|
-
break;
|
|
1673
|
-
default:
|
|
1674
|
-
// default 'undefined' is already set in this case
|
|
1800
|
+
if (bIsV1Model || bIsV2Model || bIsV4Model) {
|
|
1801
|
+
oModelConfig.uriSettingName = 'serviceUrl';
|
|
1802
|
+
} else if (bIsResourceModel) {
|
|
1803
|
+
oModelConfig.uriSettingName = 'bundleUrl';
|
|
1804
|
+
} else {
|
|
1805
|
+
// default 'undefined' is already set in this case
|
|
1675
1806
|
}
|
|
1676
1807
|
}
|
|
1677
1808
|
|
|
@@ -1692,9 +1823,9 @@ sap.ui.define([
|
|
|
1692
1823
|
// lazy load the ODataUtils if systemParameter is given
|
|
1693
1824
|
var bAddOrigin = false;
|
|
1694
1825
|
var ODataUtils;
|
|
1695
|
-
if (sSystemParameter &&
|
|
1826
|
+
if (sSystemParameter && (bIsV1Model || bIsV2Model)) {
|
|
1696
1827
|
bAddOrigin = true;
|
|
1697
|
-
ODataUtils = sap.ui.
|
|
1828
|
+
ODataUtils = sap.ui.require("sap/ui/model/odata/ODataUtils");
|
|
1698
1829
|
}
|
|
1699
1830
|
|
|
1700
1831
|
// include "uri" property in "settings" object, depending on "uriSettingName"
|
|
@@ -1751,7 +1882,7 @@ sap.ui.define([
|
|
|
1751
1882
|
// resolve the bundleUrl of the enhancing resource bundle relative to
|
|
1752
1883
|
// the component (default) or relative to manifest, e.g.:
|
|
1753
1884
|
// bundleUrlRelativeTo: 'component|manifest'
|
|
1754
|
-
if (
|
|
1885
|
+
if (bIsResourceModel && oModelConfig.settings) {
|
|
1755
1886
|
if (aActiveTerminologies) {
|
|
1756
1887
|
oModelConfig.settings.activeTerminologies = aActiveTerminologies;
|
|
1757
1888
|
}
|
|
@@ -1778,6 +1909,21 @@ sap.ui.define([
|
|
|
1778
1909
|
return mModelConfigurations;
|
|
1779
1910
|
};
|
|
1780
1911
|
|
|
1912
|
+
Component._loadManifestModelClasses = function(mModelConfigurations, sLogComponentName) {
|
|
1913
|
+
for (var sModelName in mModelConfigurations) {
|
|
1914
|
+
var oModelConfig = mModelConfigurations[sModelName];
|
|
1915
|
+
|
|
1916
|
+
// load model class and log error message if it couldn't be loaded.
|
|
1917
|
+
// error gets caught to continue creating the other models and not breaking the execution here
|
|
1918
|
+
try {
|
|
1919
|
+
sap.ui.requireSync(oModelConfig.type.replace(/\./g, "/"));
|
|
1920
|
+
} catch (oError) {
|
|
1921
|
+
Log.error("Component Manifest: Class \"" + oModelConfig.type + "\" for model \"" + sModelName + "\" could not be loaded. " + oError, "[\"sap.ui5\"][\"models\"][\"" + sModelName + "\"]", sLogComponentName);
|
|
1922
|
+
continue;
|
|
1923
|
+
}
|
|
1924
|
+
}
|
|
1925
|
+
};
|
|
1926
|
+
|
|
1781
1927
|
/**
|
|
1782
1928
|
* Creates model instances using a configuration provided by {@link sap.ui.core.Component._createManifestModelConfigurations}.
|
|
1783
1929
|
*
|
|
@@ -1791,24 +1937,9 @@ sap.ui.define([
|
|
|
1791
1937
|
for (var sModelName in mModelConfigurations) {
|
|
1792
1938
|
var oModelConfig = mModelConfigurations[sModelName];
|
|
1793
1939
|
|
|
1794
|
-
// load model class and log error message if it couldn't be loaded.
|
|
1795
|
-
// error gets caught to continue creating the other models and not breaking the execution here
|
|
1796
|
-
try {
|
|
1797
|
-
sap.ui.requireSync(oModelConfig.type.replace(/\./g, "/"));
|
|
1798
|
-
} catch (oError) {
|
|
1799
|
-
Log.error("Component Manifest: Class \"" + oModelConfig.type + "\" for model \"" + sModelName + "\" could not be loaded. " + oError, "[\"sap.ui5\"][\"models\"][\"" + sModelName + "\"]", sLogComponentName);
|
|
1800
|
-
continue;
|
|
1801
|
-
}
|
|
1802
|
-
|
|
1803
|
-
// TODO: We don't use the return value of sap.ui.requireSync here yet.
|
|
1804
1940
|
// The tests for the Model creation make use of a constructor stub,
|
|
1805
1941
|
// and this only works from the global namespace export.
|
|
1806
1942
|
var fnModelClass = ObjectPath.get(oModelConfig.type);
|
|
1807
|
-
if (!fnModelClass) {
|
|
1808
|
-
// this could be the case if the required module doesn't register itself in the defined namespace
|
|
1809
|
-
Log.error("Component Manifest: Class \"" + oModelConfig.type + "\" for model \"" + sModelName + "\" could not be found", "[\"sap.ui5\"][\"models\"][\"" + sModelName + "\"]", sLogComponentName);
|
|
1810
|
-
continue;
|
|
1811
|
-
}
|
|
1812
1943
|
|
|
1813
1944
|
// create arguments array with leading "null" value so that it can be passed to the apply function
|
|
1814
1945
|
var aArgs = [null].concat(oModelConfig.settings || []);
|
|
@@ -1845,7 +1976,7 @@ sap.ui.define([
|
|
|
1845
1976
|
* @param {string[]} [aActiveTerminologies] optional list of active terminologies
|
|
1846
1977
|
* @returns {object} object with two maps, see above
|
|
1847
1978
|
*/
|
|
1848
|
-
function getPreloadModelConfigsFromManifest(oManifest
|
|
1979
|
+
function getPreloadModelConfigsFromManifest(oManifest) {
|
|
1849
1980
|
var mModelConfigs = {
|
|
1850
1981
|
afterManifest: {},
|
|
1851
1982
|
afterPreload: {}
|
|
@@ -1854,14 +1985,11 @@ sap.ui.define([
|
|
|
1854
1985
|
// deep clone is needed as manifest only returns a read-only copy (frozen object)
|
|
1855
1986
|
var oManifestDataSources = merge({}, oManifest.getEntry("/sap.app/dataSources"));
|
|
1856
1987
|
var oManifestModels = merge({}, oManifest.getEntry("/sap.ui5/models"));
|
|
1857
|
-
|
|
1858
|
-
var mAllModelConfigurations = Component.
|
|
1988
|
+
var sComponentName = oManifest.getComponentName();
|
|
1989
|
+
var mAllModelConfigurations = Component._findManifestModelClasses({
|
|
1859
1990
|
models: oManifestModels,
|
|
1860
1991
|
dataSources: oManifestDataSources,
|
|
1861
|
-
|
|
1862
|
-
componentData: oComponentData,
|
|
1863
|
-
cacheTokens: mCacheTokens,
|
|
1864
|
-
activeTerminologies: aActiveTerminologies
|
|
1992
|
+
componentName: sComponentName
|
|
1865
1993
|
});
|
|
1866
1994
|
|
|
1867
1995
|
// Read internal URI parameter to enable model preload for testing purposes
|
|
@@ -1880,14 +2008,13 @@ sap.ui.define([
|
|
|
1880
2008
|
if (!mModelConfig.preload && aPreloadModels && aPreloadModels.indexOf(sModelName) > -1 ) {
|
|
1881
2009
|
mModelConfig.preload = true;
|
|
1882
2010
|
Log.warning("FOR TESTING ONLY!!! Activating preload for model \"" + sModelName + "\" (" + mModelConfig.type + ")",
|
|
1883
|
-
|
|
2011
|
+
sComponentName, "sap.ui.core.Component");
|
|
1884
2012
|
}
|
|
1885
2013
|
|
|
1886
2014
|
// ResourceModels with async=false should be always loaded beforehand to get rid of sync requests under the hood (regardless of the "preload" flag)
|
|
1887
2015
|
if (mModelConfig.type === "sap.ui.model.resource.ResourceModel" &&
|
|
1888
|
-
|
|
1889
|
-
mModelConfig.settings.
|
|
1890
|
-
mModelConfig.settings[0].async !== true
|
|
2016
|
+
(!mModelConfig.settings ||
|
|
2017
|
+
mModelConfig.settings.async !== true)
|
|
1891
2018
|
) {
|
|
1892
2019
|
// Use separate config object for ResourceModels as the resourceBundle might be
|
|
1893
2020
|
// part of the Component-preload which isn't available when the regular "preloaded"-models are created
|
|
@@ -1896,11 +2023,14 @@ sap.ui.define([
|
|
|
1896
2023
|
// Only create models:
|
|
1897
2024
|
// - which are flagged for preload (mModelConfig.preload) or configured via internal URI param (see above)
|
|
1898
2025
|
// - in case the model class is already loaded (otherwise log a warning)
|
|
2026
|
+
// We check for the moduleState here instead of a simple sap.ui.require probing, because it captures the following cases:
|
|
2027
|
+
// - modules defined in a preload (via predefine) are "available, but not executed"
|
|
2028
|
+
// - modules which are already loaded/executed
|
|
1899
2029
|
if (sap.ui.loader._.getModuleState(mModelConfig.type.replace(/\./g, "/") + ".js")) {
|
|
1900
2030
|
mModelConfigs.afterManifest[sModelName] = mModelConfig;
|
|
1901
2031
|
} else {
|
|
1902
2032
|
Log.warning("Can not preload model \"" + sModelName + "\" as required class has not been loaded: \"" + mModelConfig.type + "\"",
|
|
1903
|
-
|
|
2033
|
+
sComponentName, "sap.ui.core.Component");
|
|
1904
2034
|
}
|
|
1905
2035
|
}
|
|
1906
2036
|
|
|
@@ -2254,9 +2384,9 @@ sap.ui.define([
|
|
|
2254
2384
|
if (typeof vConfig === 'string') {
|
|
2255
2385
|
Log.warning("Do not use deprecated function 'sap.ui.component' (" + vConfig + ") + for Component instance lookup. " +
|
|
2256
2386
|
"Use 'Component.get' instead", "sap.ui.component", null, fnLogProperties.bind(null, vConfig));
|
|
2257
|
-
// when only a string is given then this function behaves like a
|
|
2387
|
+
// when only a string is given, then this function behaves like a
|
|
2258
2388
|
// getter and returns an existing component instance
|
|
2259
|
-
return
|
|
2389
|
+
return Component.get(vConfig);
|
|
2260
2390
|
}
|
|
2261
2391
|
|
|
2262
2392
|
if (vConfig.async) {
|
|
@@ -2499,7 +2629,7 @@ sap.ui.define([
|
|
|
2499
2629
|
*/
|
|
2500
2630
|
Component.get = function (sId) {
|
|
2501
2631
|
// lookup and return the component
|
|
2502
|
-
return
|
|
2632
|
+
return Component.registry.get(sId);
|
|
2503
2633
|
};
|
|
2504
2634
|
|
|
2505
2635
|
/**
|
|
@@ -2591,7 +2721,7 @@ sap.ui.define([
|
|
|
2591
2721
|
sManifestUrl,
|
|
2592
2722
|
oManifest,
|
|
2593
2723
|
mModels,
|
|
2594
|
-
|
|
2724
|
+
mPreloadModelConfigs,
|
|
2595
2725
|
fnCallLoadComponentCallback;
|
|
2596
2726
|
|
|
2597
2727
|
function createSanitizedManifest( oRawManifestJSON, mOptions ) {
|
|
@@ -2998,14 +3128,26 @@ sap.ui.define([
|
|
|
2998
3128
|
// create "afterPreload" models in parallel to loading the component preload (below)
|
|
2999
3129
|
if (mOptions.createModels) {
|
|
3000
3130
|
collect(oManifest.then(function(oManifest) {
|
|
3131
|
+
var sComponentName = oManifest.getComponentName();
|
|
3001
3132
|
// Calculate configurations of preloaded models once the manifest is available
|
|
3002
|
-
|
|
3133
|
+
mPreloadModelConfigs = getPreloadModelConfigsFromManifest(oManifest);
|
|
3003
3134
|
|
|
3004
|
-
return oManifest;
|
|
3005
|
-
}).then(function(oManifest) {
|
|
3006
3135
|
// Create preloaded models directly after the manifest has been loaded
|
|
3007
|
-
if (Object.keys(
|
|
3008
|
-
|
|
3136
|
+
if (Object.keys(mPreloadModelConfigs.afterManifest).length > 0) {
|
|
3137
|
+
Component._loadManifestModelClasses(mPreloadModelConfigs.afterManifest, sComponentName);
|
|
3138
|
+
|
|
3139
|
+
// deep clone is needed as manifest only returns a read-only copy (frozen object)
|
|
3140
|
+
var oManifestDataSources = merge({}, oManifest.getEntry("/sap.app/dataSources"));
|
|
3141
|
+
var mAllModelConfigurations = Component._createManifestModelConfigurations({
|
|
3142
|
+
models: mPreloadModelConfigs.afterManifest,
|
|
3143
|
+
dataSources: oManifestDataSources,
|
|
3144
|
+
manifest: oManifest,
|
|
3145
|
+
componentData: oConfig.componentData,
|
|
3146
|
+
cacheTokens: hints.cacheTokens,
|
|
3147
|
+
activeTerminologies: aActiveTerminologies
|
|
3148
|
+
});
|
|
3149
|
+
|
|
3150
|
+
mModels = Component._createManifestModels(mAllModelConfigurations, sComponentName);
|
|
3009
3151
|
}
|
|
3010
3152
|
|
|
3011
3153
|
return oManifest;
|
|
@@ -3034,7 +3176,7 @@ sap.ui.define([
|
|
|
3034
3176
|
return null;
|
|
3035
3177
|
}
|
|
3036
3178
|
|
|
3037
|
-
var aResourceModelNames = Object.keys(
|
|
3179
|
+
var aResourceModelNames = Object.keys(mPreloadModelConfigs.afterPreload);
|
|
3038
3180
|
|
|
3039
3181
|
if (aResourceModelNames.length === 0) {
|
|
3040
3182
|
return null;
|
|
@@ -3049,8 +3191,20 @@ sap.ui.define([
|
|
|
3049
3191
|
resolve(ResourceModel);
|
|
3050
3192
|
}, reject);
|
|
3051
3193
|
}).then(function(ResourceModel) {
|
|
3194
|
+
|
|
3195
|
+
// deep clone is needed as manifest only returns a read-only copy (frozen object)
|
|
3196
|
+
var oManifestDataSources = merge({}, oManifest.getEntry("/sap.app/dataSources"));
|
|
3197
|
+
var mAfterPreloadModelConfigurations = Component._createManifestModelConfigurations({
|
|
3198
|
+
models: mPreloadModelConfigs.afterPreload,
|
|
3199
|
+
dataSources: oManifestDataSources,
|
|
3200
|
+
manifest: oManifest,
|
|
3201
|
+
componentData: oConfig.componentData,
|
|
3202
|
+
cacheTokens: hints.cacheTokens,
|
|
3203
|
+
activeTerminologies: aActiveTerminologies
|
|
3204
|
+
});
|
|
3205
|
+
|
|
3052
3206
|
function loadResourceBundle(sModelName) {
|
|
3053
|
-
var mModelConfig =
|
|
3207
|
+
var mModelConfig = mAfterPreloadModelConfigurations[sModelName];
|
|
3054
3208
|
if (Array.isArray(mModelConfig.settings) && mModelConfig.settings.length > 0) {
|
|
3055
3209
|
var mModelSettings = mModelConfig.settings[0]; // first argument is the config map
|
|
3056
3210
|
|
|
@@ -3081,19 +3235,19 @@ sap.ui.define([
|
|
|
3081
3235
|
|
|
3082
3236
|
// If the resource bundle can't be loaded, the resource model will be skipped.
|
|
3083
3237
|
// But once the component instance gets created, the model will be tried to created again.
|
|
3084
|
-
delete
|
|
3238
|
+
delete mAfterPreloadModelConfigurations[sModelName];
|
|
3085
3239
|
});
|
|
3086
3240
|
} else {
|
|
3087
3241
|
// Can't load bundle as no settings are defined.
|
|
3088
|
-
// Should not happen as those models won't be part of "
|
|
3242
|
+
// Should not happen as those models won't be part of "afterPreload"
|
|
3089
3243
|
return Promise.resolve();
|
|
3090
3244
|
}
|
|
3091
3245
|
}
|
|
3092
3246
|
|
|
3093
3247
|
// Load all ResourceBundles for all models in parallel
|
|
3094
3248
|
return Promise.all(aResourceModelNames.map(loadResourceBundle)).then(function() {
|
|
3095
|
-
if (Object.keys(
|
|
3096
|
-
var mResourceModels = Component._createManifestModels(
|
|
3249
|
+
if (Object.keys(mAfterPreloadModelConfigurations).length > 0) {
|
|
3250
|
+
var mResourceModels = Component._createManifestModels(mAfterPreloadModelConfigurations, oManifest.getComponentName());
|
|
3097
3251
|
if (!mModels) {
|
|
3098
3252
|
mModels = {};
|
|
3099
3253
|
}
|
|
@@ -3250,23 +3404,29 @@ sap.ui.define([
|
|
|
3250
3404
|
aModuleNames.push(sViewClass);
|
|
3251
3405
|
}
|
|
3252
3406
|
|
|
3253
|
-
// lookup router class
|
|
3407
|
+
// lookup and loading of the router / targets and views class
|
|
3408
|
+
// prevents synchronous loading in UIComponent#init
|
|
3254
3409
|
var oRouting = oManifest.getEntry("/sap.ui5/routing");
|
|
3255
|
-
if (oRouting
|
|
3256
|
-
|
|
3257
|
-
|
|
3258
|
-
|
|
3410
|
+
if (oRouting) {
|
|
3411
|
+
if (oRouting.routes) {
|
|
3412
|
+
var sRouterClass = oManifest.getEntry("/sap.ui5/routing/config/routerClass") || "sap.ui.core.routing.Router";
|
|
3413
|
+
var sRouterClassModule = sRouterClass.replace(/\./g, "/");
|
|
3414
|
+
aModuleNames.push(sRouterClassModule);
|
|
3415
|
+
} else if (oRouting.targets) {
|
|
3416
|
+
var sTargetClass = oManifest.getEntry("/sap.ui5/routing/config/targetsClass") || "sap.ui.core.routing.Targets";
|
|
3417
|
+
var sTargetClassModule = sTargetClass.replace(/\./g, "/");
|
|
3418
|
+
aModuleNames.push(sTargetClassModule);
|
|
3419
|
+
aModuleNames.push("sap/ui/core/routing/Views");
|
|
3420
|
+
}
|
|
3259
3421
|
}
|
|
3260
3422
|
|
|
3261
3423
|
// lookup model classes
|
|
3262
3424
|
var mManifestModels = merge({}, oManifest.getEntry("/sap.ui5/models"));
|
|
3263
3425
|
var mManifestDataSources = merge({}, oManifest.getEntry("/sap.app/dataSources"));
|
|
3264
|
-
var mAllModelConfigurations = Component.
|
|
3426
|
+
var mAllModelConfigurations = Component._findManifestModelClasses({
|
|
3265
3427
|
models: mManifestModels,
|
|
3266
3428
|
dataSources: mManifestDataSources,
|
|
3267
|
-
|
|
3268
|
-
cacheTokens: hints.cacheTokens,
|
|
3269
|
-
activeTerminologies: aActiveTerminologies
|
|
3429
|
+
componentName: oManifest.getComponentName()
|
|
3270
3430
|
});
|
|
3271
3431
|
for (var mModelName in mAllModelConfigurations) {
|
|
3272
3432
|
if (!mAllModelConfigurations.hasOwnProperty(mModelName)) {
|
|
@@ -3355,7 +3515,7 @@ sap.ui.define([
|
|
|
3355
3515
|
|
|
3356
3516
|
// synchronously load the controller class, prepare and return it
|
|
3357
3517
|
return prepareControllerClass(
|
|
3358
|
-
sap.ui.requireSync( getControllerModuleName() )
|
|
3518
|
+
sap.ui.requireSync( getControllerModuleName() ) // legacy-relevant: Sync path
|
|
3359
3519
|
);
|
|
3360
3520
|
}
|
|
3361
3521
|
|