@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
|
@@ -82,7 +82,7 @@ sap.ui.define([
|
|
|
82
82
|
* @param {Element[]} aItemDomRefs Array of DOM references representing the items for the navigation
|
|
83
83
|
* @param {boolean} [bNotInTabChain=false] Whether the selected element should be in the tab chain or not
|
|
84
84
|
*
|
|
85
|
-
* @version 1.
|
|
85
|
+
* @version 1.96.2
|
|
86
86
|
* @alias sap.ui.core.delegate.ItemNavigation
|
|
87
87
|
* @public
|
|
88
88
|
*/
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
sap.ui.define([
|
|
15
15
|
'sap/ui/Device',
|
|
16
16
|
'sap/ui/base/Object',
|
|
17
|
+
'sap/ui/core/Core',
|
|
17
18
|
'sap/ui/core/IntervalTrigger',
|
|
18
19
|
'sap/ui/core/ResizeHandler',
|
|
19
20
|
"sap/ui/thirdparty/jquery",
|
|
@@ -22,6 +23,7 @@ sap.ui.define([
|
|
|
22
23
|
function(
|
|
23
24
|
Device,
|
|
24
25
|
BaseObject,
|
|
26
|
+
Core,
|
|
25
27
|
IntervalTrigger,
|
|
26
28
|
ResizeHandler,
|
|
27
29
|
jQuery,
|
|
@@ -56,7 +58,7 @@ sap.ui.define([
|
|
|
56
58
|
*
|
|
57
59
|
* @protected
|
|
58
60
|
* @alias sap.ui.core.delegate.ScrollEnablement
|
|
59
|
-
* @version 1.
|
|
61
|
+
* @version 1.96.2
|
|
60
62
|
* @author SAP SE
|
|
61
63
|
*/
|
|
62
64
|
var ScrollEnablement = BaseObject.extend("sap.ui.core.delegate.ScrollEnablement", /** @lends sap.ui.core.delegate.ScrollEnablement.prototype */ {
|
|
@@ -389,7 +391,8 @@ sap.ui.define([
|
|
|
389
391
|
}
|
|
390
392
|
|
|
391
393
|
if (!this.getVertical()) {
|
|
392
|
-
left =
|
|
394
|
+
left = Core.getConfiguration().getRTL() ?
|
|
395
|
+
container.clientWidth - container.scrollWidth : this._scrollX;
|
|
393
396
|
}
|
|
394
397
|
|
|
395
398
|
this._customScrollTo(left, top, oEvent);
|
|
@@ -805,7 +808,7 @@ sap.ui.define([
|
|
|
805
808
|
if (oConfig.nonTouchScrolling === true) {
|
|
806
809
|
this._bDragScroll = true; // optional drag instead of native scrolling
|
|
807
810
|
}
|
|
808
|
-
if (
|
|
811
|
+
if (Core.getConfiguration().getRTL()) {
|
|
809
812
|
this._scrollX = 9999; // in RTL case initially scroll to the very right
|
|
810
813
|
}
|
|
811
814
|
},
|
|
@@ -22,7 +22,7 @@ sap.ui.define(["./DragDropBase"],
|
|
|
22
22
|
* @extends sap.ui.core.dnd.DragDropBase
|
|
23
23
|
*
|
|
24
24
|
* @author SAP SE
|
|
25
|
-
* @version 1.
|
|
25
|
+
* @version 1.96.2
|
|
26
26
|
*
|
|
27
27
|
* @public
|
|
28
28
|
* @since 1.56
|
|
@@ -172,7 +172,7 @@ sap.ui.define(["./DragDropBase"],
|
|
|
172
172
|
if (oParent && oParent.bOutput == true) {
|
|
173
173
|
var sSourceAggregation = this.getSourceAggregation();
|
|
174
174
|
if (sSourceAggregation) {
|
|
175
|
-
[].concat(
|
|
175
|
+
[].concat(oParent.getAggregation(sSourceAggregation)).forEach(function(oAggregation) {
|
|
176
176
|
if (oAggregation && oAggregation.bOutput == true) {
|
|
177
177
|
oAggregation.invalidate();
|
|
178
178
|
}
|
|
@@ -1082,6 +1082,20 @@ sap.ui.define([
|
|
|
1082
1082
|
}
|
|
1083
1083
|
|
|
1084
1084
|
if (oOptions.type == mNumberType.CURRENCY) {
|
|
1085
|
+
// Make sure the "trailingCurrencyCode" mode is only used on currency codes:
|
|
1086
|
+
// The "customCurrencies" format option takes precedence over CLDR and global configuration. If the given measure isn't found
|
|
1087
|
+
// there, we already return an empty string in the check above (look for error log 'Currency "xy" is unknown').
|
|
1088
|
+
// "mKnownCurrencyCodes" either contains the keys of the "customCurrencies" format option or the accumulated currency codes
|
|
1089
|
+
// from CLDR and global configuration. If the given measure isn't found there and does not have the three letter ISO code format,
|
|
1090
|
+
// it shouldn't be formatted with the "trailingCurrencyCode" pattern.
|
|
1091
|
+
if (sMeasure && oOptions.trailingCurrencyCode) {
|
|
1092
|
+
if (!this.mKnownCurrencyCodes[sMeasure] && !/(^[A-Z]{3}$)/.test(sMeasure)) {
|
|
1093
|
+
oOptions.trailingCurrencyCode = false;
|
|
1094
|
+
// Revert to non-"sap-" prefixed (trailing-currency-code) pattern. Also see code in getCurrencyInstance()
|
|
1095
|
+
oOptions.pattern = this.oLocaleData.getCurrencyPattern(oOptions.currencyContext);
|
|
1096
|
+
}
|
|
1097
|
+
}
|
|
1098
|
+
|
|
1085
1099
|
if (!oOptions.showNumber) {
|
|
1086
1100
|
// if the number should not be shown, return the sMeasure part standalone, without anything number specific
|
|
1087
1101
|
if (!oOptions.currencyCode) {
|
|
@@ -1336,7 +1350,8 @@ sap.ui.define([
|
|
|
1336
1350
|
|
|
1337
1351
|
if (oShortFormat && oShortFormat.formatString && oOptions.showScale) {
|
|
1338
1352
|
var sStyle;
|
|
1339
|
-
|
|
1353
|
+
|
|
1354
|
+
// Currency formatting has only short style (no long)
|
|
1340
1355
|
if (oOptions.trailingCurrencyCode) {
|
|
1341
1356
|
sStyle = "sap-short";
|
|
1342
1357
|
} else {
|
|
@@ -8,13 +8,11 @@ sap.ui.define([
|
|
|
8
8
|
"./HyphenationTestingWords",
|
|
9
9
|
"sap/ui/base/ManagedObject",
|
|
10
10
|
"sap/base/Log",
|
|
11
|
-
"sap/base/util/deepEqual",
|
|
12
11
|
"sap/ui/core/Locale"
|
|
13
12
|
], function (
|
|
14
13
|
HyphenationTestingWords,
|
|
15
14
|
ManagedObject,
|
|
16
15
|
Log,
|
|
17
|
-
deepEqual,
|
|
18
16
|
Locale
|
|
19
17
|
) {
|
|
20
18
|
"use strict";
|
|
@@ -96,119 +94,59 @@ sap.ui.define([
|
|
|
96
94
|
var oHyphenationInstance = null;
|
|
97
95
|
var fakeBody = null;
|
|
98
96
|
var oHyphenateMethods = {};
|
|
99
|
-
var oPromisesForLang = {};
|
|
100
|
-
var aLanguagesQueue = [];
|
|
101
|
-
var mLanguageConfigs = {};
|
|
102
97
|
|
|
103
98
|
/**
|
|
104
99
|
* Calls Hyphenopoly to initialize a language.
|
|
105
100
|
* Loads language-specific resources.
|
|
106
101
|
*
|
|
107
102
|
* @param {string} sLanguage What language to initialize
|
|
108
|
-
* @
|
|
109
|
-
* @param {function} resolve Callback to resolve the promise created on initialize
|
|
103
|
+
* @returns {Promise} Promise that resolves with the hyphenator function for that language
|
|
110
104
|
* @private
|
|
111
105
|
*/
|
|
112
|
-
function initializeLanguage(sLanguage
|
|
106
|
+
function initializeLanguage(sLanguage) {
|
|
113
107
|
Log.info(
|
|
114
108
|
"[UI5 Hyphenation] Initializing third-party module for language " + getLanguageDisplayName(sLanguage),
|
|
115
109
|
"sap.ui.core.hyphenation.Hyphenation.initialize()"
|
|
116
110
|
);
|
|
117
111
|
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
/**
|
|
123
|
-
* Applies new config to a language.
|
|
124
|
-
*
|
|
125
|
-
* @param {string} sLanguage What language to re-initialize
|
|
126
|
-
* @param {object} oConfig What is the new config
|
|
127
|
-
* @param {function} resolve Callback to resolve the promise created on initialize
|
|
128
|
-
* @private
|
|
129
|
-
*/
|
|
130
|
-
function reInitializeLanguage(sLanguage, oConfig, resolve) {
|
|
131
|
-
Log.info(
|
|
132
|
-
"[UI5 Hyphenation] Re-initializing third-party module for language " + getLanguageDisplayName(sLanguage),
|
|
133
|
-
"sap.ui.core.hyphenation.Hyphenation.initialize()"
|
|
134
|
-
);
|
|
135
|
-
|
|
136
|
-
window.hyphenopoly.reInitializeLanguage(sLanguage, oConfig)
|
|
137
|
-
.then(onLanguageInitialized.bind(this, sLanguage, resolve));
|
|
138
|
-
}
|
|
112
|
+
var oHyphenopolyConfig = createHyphenopolyConfig();
|
|
113
|
+
oHyphenopolyConfig.require[sLanguage] = "FORCEHYPHENOPOLY"; // force loading of the engine for this language
|
|
139
114
|
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
* @param {function} resolve Callback to resolve the promise created on initialize
|
|
145
|
-
* @param {string} hyphenateMethod Is it asm or wasm
|
|
146
|
-
* @private
|
|
147
|
-
*/
|
|
148
|
-
function onLanguageInitialized(sLanguage, resolve, hyphenateMethod) {
|
|
149
|
-
oHyphenateMethods[sLanguage] = hyphenateMethod;
|
|
150
|
-
oHyphenationInstance.bIsInitialized = true;
|
|
151
|
-
if (aLanguagesQueue.length > 0) {
|
|
152
|
-
aLanguagesQueue.forEach(function (oElement) {
|
|
153
|
-
initializeLanguage(oElement.sLanguage, oElement.oConfig, oElement.resolve);
|
|
115
|
+
return loadScript(sap.ui.require.toUrl("sap/ui/thirdparty/hyphenopoly/"), "Hyphenopoly_Loader.js")
|
|
116
|
+
.then(function () {
|
|
117
|
+
delete oHyphenopolyConfig.require[sLanguage];
|
|
118
|
+
return window.Hyphenopoly.hyphenators[sLanguage];
|
|
154
119
|
});
|
|
155
|
-
aLanguagesQueue = [];
|
|
156
|
-
}
|
|
157
|
-
oHyphenationInstance.bLoading = false;
|
|
158
|
-
resolve(
|
|
159
|
-
getLanguageFromPattern(sLanguage)
|
|
160
|
-
);
|
|
161
120
|
}
|
|
162
121
|
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
if ("minWordLength" in oConfig) {
|
|
189
|
-
oConfigurationForLanguage.minWordLength = oConfig.minWordLength;
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
if ("exceptions" in oConfig) {
|
|
193
|
-
Log.info(
|
|
194
|
-
"[UI5 Hyphenation] Add hyphenation exceptions '" + JSON.stringify(oConfig.exceptions) + "' for language " + getLanguageDisplayName(sLanguage),
|
|
195
|
-
"sap.ui.core.hyphenation.Hyphenation"
|
|
196
|
-
);
|
|
197
|
-
|
|
198
|
-
// transform "exceptions: {word1: "w-o-r-d-1", word2: "w-o-r-d-2"}" to "exceptions: {en-us: 'w-o-r-d-1,w-o-r-d-2'}"
|
|
199
|
-
var aWordsExceptions = [];
|
|
200
|
-
Object.keys(oConfig.exceptions).forEach(function(sWord) {
|
|
201
|
-
aWordsExceptions.push(oConfig.exceptions[sWord]);
|
|
202
|
-
});
|
|
203
|
-
|
|
204
|
-
if (aWordsExceptions.length > 0) {
|
|
205
|
-
oConfigurationForLanguage.exceptions = {};
|
|
206
|
-
oConfigurationForLanguage.exceptions[sLanguage] = aWordsExceptions.join(", ");
|
|
122
|
+
function createHyphenopolyConfig() {
|
|
123
|
+
if (!window.Hyphenopoly) {
|
|
124
|
+
window.Hyphenopoly = {
|
|
125
|
+
require: {},
|
|
126
|
+
setup: {
|
|
127
|
+
selectors: {
|
|
128
|
+
".hyphenate": { // .hyphenate is the default CSS class (hence this is the default configuration for all words and langs)
|
|
129
|
+
hyphen: "\u00AD",
|
|
130
|
+
leftmin: 3,
|
|
131
|
+
rightmin: 3,
|
|
132
|
+
compound: "all" // hyphenate the parts and insert a zero-width space after the hyphen
|
|
133
|
+
}
|
|
134
|
+
},
|
|
135
|
+
hide: "DONT_HIDE" // prevent visiblity: hidden; of html tag while the engine is loading
|
|
136
|
+
},
|
|
137
|
+
handleEvent: {
|
|
138
|
+
error: function (e) {
|
|
139
|
+
// Hyphenopoly will try to find DOM elements and hyphenate them,
|
|
140
|
+
// but since we use only the hyphenators, prevent the warning
|
|
141
|
+
if (e.msg.match(/engine for language .* loaded, but no elements found./)) {
|
|
142
|
+
e.preventDefault(); //don't show error message in console
|
|
143
|
+
}
|
|
144
|
+
}
|
|
207
145
|
}
|
|
208
|
-
}
|
|
146
|
+
};
|
|
209
147
|
}
|
|
210
148
|
|
|
211
|
-
return
|
|
149
|
+
return window.Hyphenopoly;
|
|
212
150
|
}
|
|
213
151
|
|
|
214
152
|
/**
|
|
@@ -244,7 +182,6 @@ sap.ui.define([
|
|
|
244
182
|
"visibility:hidden;",
|
|
245
183
|
"-moz-hyphens:auto;",
|
|
246
184
|
"-webkit-hyphens:auto;",
|
|
247
|
-
"-ms-hyphens:auto;",
|
|
248
185
|
"hyphens:auto;",
|
|
249
186
|
"width:48px;",
|
|
250
187
|
"font-size:12px;",
|
|
@@ -259,19 +196,20 @@ sap.ui.define([
|
|
|
259
196
|
/**
|
|
260
197
|
* Creates and appends div with CSS-hyphenated word.
|
|
261
198
|
*
|
|
262
|
-
* @param {string}
|
|
199
|
+
* @param {string} sLanguageOnThePage Language (<code>lang</code> attribute of the HTML page)
|
|
200
|
+
* @param {string} sTestingWord Long word for that language
|
|
263
201
|
* @private
|
|
264
202
|
*/
|
|
265
|
-
function createTest(
|
|
266
|
-
|
|
203
|
+
function createTest(sLanguageOnThePage, sTestingWord) {
|
|
267
204
|
if (!fakeBody) {
|
|
268
205
|
fakeBody = document.createElement("body");
|
|
269
206
|
}
|
|
207
|
+
|
|
270
208
|
var testDiv = document.createElement("div");
|
|
271
|
-
testDiv.lang =
|
|
272
|
-
testDiv.id =
|
|
209
|
+
testDiv.lang = sLanguageOnThePage;
|
|
210
|
+
testDiv.id = sLanguageOnThePage;
|
|
273
211
|
testDiv.style.cssText = css;
|
|
274
|
-
testDiv.appendChild(document.createTextNode(
|
|
212
|
+
testDiv.appendChild(document.createTextNode(sTestingWord));
|
|
275
213
|
fakeBody.appendChild(testDiv);
|
|
276
214
|
}
|
|
277
215
|
|
|
@@ -334,7 +272,7 @@ sap.ui.define([
|
|
|
334
272
|
|
|
335
273
|
var sLanguage = oLocale.getLanguage().toLowerCase();
|
|
336
274
|
|
|
337
|
-
// adjustment of the language to
|
|
275
|
+
// adjustment of the language to correspond to Hyphenopoly pattern files (.hpb files)
|
|
338
276
|
switch (sLanguage) {
|
|
339
277
|
case "en":
|
|
340
278
|
sLanguage = "en-us";
|
|
@@ -348,13 +286,16 @@ sap.ui.define([
|
|
|
348
286
|
case "el":
|
|
349
287
|
sLanguage = "el-monoton";
|
|
350
288
|
break;
|
|
289
|
+
default:
|
|
290
|
+
break;
|
|
351
291
|
}
|
|
352
292
|
|
|
353
293
|
return sLanguage;
|
|
354
294
|
}
|
|
355
295
|
|
|
356
296
|
/**
|
|
357
|
-
* The
|
|
297
|
+
* The <code>lang</code> attribute of the closest parent determines the behavior of the native hyphenation.
|
|
298
|
+
* Typically this is the HTML tag and its value can be read with the <code>getLocale</code> function.
|
|
358
299
|
*
|
|
359
300
|
* @param {string} [sLang=sap.ui.getCore().getConfiguration().getLocale().toString()] The language to get. If left empty - the global application language will be returned
|
|
360
301
|
* @returns {string} The language code
|
|
@@ -457,7 +398,7 @@ sap.ui.define([
|
|
|
457
398
|
* @see {@link topic:6322164936f047de941ec522b95d7b70 Hyphenation for Text Controls}
|
|
458
399
|
* @extends sap.ui.base.ManagedObject
|
|
459
400
|
* @author SAP SE
|
|
460
|
-
* @version 1.
|
|
401
|
+
* @version 1.96.2
|
|
461
402
|
* @hideconstructor
|
|
462
403
|
* @public
|
|
463
404
|
* @since 1.60
|
|
@@ -493,15 +434,16 @@ sap.ui.define([
|
|
|
493
434
|
* @public
|
|
494
435
|
*/
|
|
495
436
|
Hyphenation.prototype.canUseNativeHyphenation = function (sLang) {
|
|
496
|
-
var sLanguageOnThePage = getLanguageAsSetOnThePage(sLang)
|
|
497
|
-
|
|
437
|
+
var sLanguageOnThePage = getLanguageAsSetOnThePage(sLang),
|
|
438
|
+
sMappedLanguage = getLanguage(sLang),
|
|
439
|
+
bCanUseNativeHyphenation;
|
|
498
440
|
|
|
499
|
-
if (!this.isLanguageSupported(
|
|
441
|
+
if (!this.isLanguageSupported(sMappedLanguage)) {
|
|
500
442
|
return null;
|
|
501
443
|
}
|
|
502
444
|
|
|
503
445
|
if (!oBrowserSupportCSS.hasOwnProperty(sLanguageOnThePage)) {
|
|
504
|
-
createTest(sLanguageOnThePage);
|
|
446
|
+
createTest(sLanguageOnThePage, HyphenationTestingWords[sMappedLanguage.toLowerCase()]);
|
|
505
447
|
var testContainer = appendTests(document.documentElement);
|
|
506
448
|
if (testContainer !== null) {
|
|
507
449
|
var el = document.getElementById(sLanguageOnThePage);
|
|
@@ -617,6 +559,7 @@ sap.ui.define([
|
|
|
617
559
|
fireError("Language " + getLanguageDisplayName(sLanguage) + " is not initialized. You have to initialize it first with method 'initialize()'");
|
|
618
560
|
return sText;
|
|
619
561
|
}
|
|
562
|
+
|
|
620
563
|
return oHyphenateMethods[sLanguage](sText);
|
|
621
564
|
};
|
|
622
565
|
|
|
@@ -644,57 +587,6 @@ sap.ui.define([
|
|
|
644
587
|
return Object.keys(oHyphenateMethods).indexOf(sLang) != -1;
|
|
645
588
|
};
|
|
646
589
|
|
|
647
|
-
/**
|
|
648
|
-
* Gets a list of word exceptions which was added for the given language.
|
|
649
|
-
*
|
|
650
|
-
* A word exception is a custom-defined hyphenation for a specific word. It's useful if the hyphenation algorithm does not hyphenate a given word correctly.
|
|
651
|
-
*
|
|
652
|
-
* @see sap.ui.core.hyphenation.Hyphenation#addExceptions
|
|
653
|
-
* @param {string} sLang The language for which to see the exceptions
|
|
654
|
-
* @returns {Object<string,string>} An object map with all exceptions for the given language
|
|
655
|
-
* @private
|
|
656
|
-
*/
|
|
657
|
-
Hyphenation.prototype.getExceptions = function (sLang) {
|
|
658
|
-
var sLang = getLanguage(sLang);
|
|
659
|
-
if (this.isLanguageInitialized(sLang)) {
|
|
660
|
-
return window.hyphenopoly.languages[sLang].exceptions;
|
|
661
|
-
} else {
|
|
662
|
-
fireError("Language " + getLanguageDisplayName(sLang) + " is not initialized. You have to initialize it first with method 'initialize()'");
|
|
663
|
-
}
|
|
664
|
-
|
|
665
|
-
};
|
|
666
|
-
|
|
667
|
-
/**
|
|
668
|
-
* Adds a list of exceptions defining how specific words should be hyphenated.
|
|
669
|
-
*
|
|
670
|
-
* This way a custom-defined hyphenation for a specific word can be defined. It's useful if the hyphenation algorithm does not hyphenate a given word correctly.
|
|
671
|
-
*
|
|
672
|
-
* @example
|
|
673
|
-
*
|
|
674
|
-
* addExceptions("en", {"academy": "a-c-a-d-e-m-y"})
|
|
675
|
-
*
|
|
676
|
-
* @param {string} sLang The language for which an exception is added
|
|
677
|
-
* @param {Object<string,string>} oExceptions An object map of word exceptions. Example <code>{"academy": "a-c-a-d-e-m-y", "word": "w-o-r-d"}</code>
|
|
678
|
-
* @throws {Error} Logs an error if the language is not initialized
|
|
679
|
-
* @private
|
|
680
|
-
*/
|
|
681
|
-
Hyphenation.prototype.addExceptions = function (sLang, oExceptions) {
|
|
682
|
-
var sLang = getLanguage(sLang);
|
|
683
|
-
if (this.isLanguageInitialized(sLang)) {
|
|
684
|
-
Log.info(
|
|
685
|
-
"[UI5 Hyphenation] Add hyphenation exceptions '" + JSON.stringify(oExceptions) + "' for language " + getLanguageDisplayName(sLang),
|
|
686
|
-
"sap.ui.core.hyphenation.Hyphenation.addExceptions()"
|
|
687
|
-
);
|
|
688
|
-
|
|
689
|
-
Object.keys(oExceptions).forEach(function (key) {
|
|
690
|
-
window.hyphenopoly.languages[sLang].cache[key] = oExceptions[key];
|
|
691
|
-
window.hyphenopoly.languages[sLang].exceptions[key] = oExceptions[key];
|
|
692
|
-
});
|
|
693
|
-
} else {
|
|
694
|
-
fireError("Language " + getLanguageDisplayName(sLang) + " is not initialized. You have to initialize it first with method 'initialize()'");
|
|
695
|
-
}
|
|
696
|
-
};
|
|
697
|
-
|
|
698
590
|
/**
|
|
699
591
|
* Initializes the third-party library for the given language.
|
|
700
592
|
*
|
|
@@ -709,73 +601,35 @@ sap.ui.define([
|
|
|
709
601
|
* @returns {Promise} A promise which resolves when all language resources are loaded. Rejects if the language is not supported
|
|
710
602
|
* @public
|
|
711
603
|
*/
|
|
712
|
-
|
|
713
|
-
Hyphenation.prototype.initialize = function (sLang, oConfig) {
|
|
604
|
+
Hyphenation.prototype.initialize = function (sLang) {
|
|
714
605
|
var sLanguage = getLanguage(sLang);
|
|
715
606
|
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
* {
|
|
721
|
-
* hyphen: "-",
|
|
722
|
-
* minWordLength: 6,
|
|
723
|
-
* exceptions: {
|
|
724
|
-
* "academy": "a-c-a-d-e-m-y",
|
|
725
|
-
* "word": "w-o-r-d"
|
|
726
|
-
* }
|
|
727
|
-
* }
|
|
728
|
-
*/
|
|
729
|
-
var oConfig = prepareConfig(sLanguage, oConfig);
|
|
730
|
-
|
|
731
|
-
var bConfigChanged = true;
|
|
732
|
-
if (mLanguageConfigs[sLanguage] && deepEqual(mLanguageConfigs[sLanguage], oConfig)) {
|
|
733
|
-
bConfigChanged = false;
|
|
607
|
+
if (!oThirdPartySupportedLanguages[sLanguage]) {
|
|
608
|
+
var sMessage = "Language " + getLanguageDisplayName(sLang) + " can not be initialized. It is either not supported by the third-party module or an error occurred";
|
|
609
|
+
fireError(sMessage);
|
|
610
|
+
return Promise.reject(sMessage);
|
|
734
611
|
}
|
|
735
612
|
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
if (!oHyphenationInstance.bIsInitialized && !oHyphenationInstance.bLoading) {
|
|
740
|
-
|
|
741
|
-
oHyphenationInstance.bLoading = true;
|
|
742
|
-
oPromisesForLang[sLanguage] = new Promise(function (resolve, reject) {
|
|
743
|
-
loadScript(oConfig.path, "/hyphenopoly.bundle.js")
|
|
744
|
-
.then(initializeLanguage.bind(this, sLanguage, oConfig, resolve));
|
|
745
|
-
});
|
|
746
|
-
|
|
747
|
-
return oPromisesForLang[sLanguage];
|
|
748
|
-
|
|
749
|
-
} else if (oHyphenationInstance.bLoading && !oHyphenateMethods[sLanguage] && oPromisesForLang[sLanguage]) {
|
|
750
|
-
|
|
751
|
-
return oPromisesForLang[sLanguage];
|
|
613
|
+
if (oHyphenateMethods[sLanguage]) {
|
|
614
|
+
return Promise.resolve();
|
|
615
|
+
}
|
|
752
616
|
|
|
753
|
-
|
|
754
|
-
// Reinitialize only if the config has changed.
|
|
755
|
-
if (bConfigChanged) {
|
|
756
|
-
oPromisesForLang[sLanguage] = new Promise(function (resolve) {
|
|
757
|
-
reInitializeLanguage(sLanguage, oConfig, resolve);
|
|
758
|
-
});
|
|
759
|
-
}
|
|
760
|
-
} else {
|
|
761
|
-
oPromisesForLang[sLanguage] = new Promise(function (resolve, reject) {
|
|
762
|
-
if (!oHyphenationInstance.bIsInitialized) {
|
|
763
|
-
aLanguagesQueue.push({sLanguage:sLanguage, oConfig:oConfig, resolve:resolve });
|
|
764
|
-
} else {
|
|
765
|
-
initializeLanguage(sLanguage, oConfig, resolve);
|
|
766
|
-
}
|
|
617
|
+
var pInitLanguage;
|
|
767
618
|
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
619
|
+
if (!this._pInitLanguage) {
|
|
620
|
+
pInitLanguage = this._pInitLanguage = initializeLanguage(sLanguage)
|
|
621
|
+
.then(function (fnHyphenator) {
|
|
622
|
+
oHyphenateMethods[sLanguage] = fnHyphenator;
|
|
623
|
+
this._pInitLanguage = null;
|
|
624
|
+
}.bind(this));
|
|
772
625
|
} else {
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
});
|
|
626
|
+
// await the loading of the previous language, then initialize the current
|
|
627
|
+
pInitLanguage = this._pInitLanguage.then(function () {
|
|
628
|
+
return this.initialize(sLang);
|
|
629
|
+
}.bind(this));
|
|
778
630
|
}
|
|
631
|
+
|
|
632
|
+
return pInitLanguage;
|
|
779
633
|
};
|
|
780
634
|
|
|
781
635
|
/**
|
|
@@ -789,8 +643,6 @@ sap.ui.define([
|
|
|
789
643
|
Hyphenation.getInstance = function () {
|
|
790
644
|
if (!oHyphenationInstance) {
|
|
791
645
|
oHyphenationInstance = new Hyphenation();
|
|
792
|
-
oHyphenationInstance.bIsInitialized = false;
|
|
793
|
-
oHyphenationInstance.bLoading = false;
|
|
794
646
|
}
|
|
795
647
|
|
|
796
648
|
return oHyphenationInstance;
|
|
@@ -9,37 +9,38 @@ sap.ui.define([], function () {
|
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
11
|
* Words which are suitable for testing of browser-native hyphenation.
|
|
12
|
+
* Firefox doesn't hyphenate uppercase words (besides in German).
|
|
12
13
|
* @type {Object<string,string>}
|
|
13
14
|
* @private
|
|
14
15
|
*/
|
|
15
16
|
var oTestingWords = {
|
|
16
17
|
"bg": "непротивоконституционствувателствувайте",
|
|
17
|
-
"ca": "
|
|
18
|
+
"ca": "psiconeuroimmunoendocrinologia",
|
|
18
19
|
"hr": "prijestolonasljednikovičičinima",
|
|
19
20
|
"cs": "nejnezdevětadevadesáteronásobitelnějšími",
|
|
20
|
-
"da": "
|
|
21
|
+
"da": "gedebukkebensoverogundergeneralkrigskommandersergenten",
|
|
21
22
|
"nl": "meervoudigepersoonlijkheidsstoornissen",
|
|
22
23
|
"en-us": "pneumonoultramicroscopicsilicovolcanoconiosis",
|
|
23
|
-
"et": "
|
|
24
|
+
"et": "sünnipäevanädalalõpupeopärastlõunaväsimus",
|
|
24
25
|
"fi": "kolmivaihekilowattituntimittari",
|
|
25
26
|
"fr": "hippopotomonstrosesquippedaliophobie",
|
|
26
27
|
"de": "Kindercarnavalsoptochtvoorbereidingswerkzaamhedenplan",
|
|
27
28
|
"el-monoton": "ηλεκτροεγκεφαλογράφημα", // no native css hyphenation by documentation, but will be tested
|
|
28
29
|
"hi": "किंकर्तव्यविमूढ़", // no native css hyphenation by documentation, but will be tested
|
|
29
|
-
"hu": "
|
|
30
|
+
"hu": "megszentségteleníthetetlenségeskedéseitekért",
|
|
30
31
|
"it": "hippopotomonstrosesquippedaliofobia",
|
|
31
32
|
"lt": "nebeprisikiškiakopūstlapiaujančiuosiuose",
|
|
32
33
|
"nb-no": "supercalifragilisticexpialidocious",
|
|
33
34
|
"pl": "dziewięćdziesięciokilkuletniemu",
|
|
34
35
|
"pt": "pneumoultramicroscopicossilicovulcanoconiose",
|
|
35
36
|
"ru": "превысокомногорассмотрительствующий",
|
|
36
|
-
"sr": "
|
|
37
|
-
"sl": "
|
|
38
|
-
"es": "
|
|
39
|
-
"sv": "
|
|
37
|
+
"sr": "семпаравиливичинаверсаламилитипиковски",
|
|
38
|
+
"sl": "dialektičnomaterialističen",
|
|
39
|
+
"es": "electroencefalografistas",
|
|
40
|
+
"sv": "realisationsvinstbeskattning",
|
|
40
41
|
"th": "ตัวอย่างข้อความที่จะใช้ในการยืนยันการถ่ายโอน", // no native css hyphenation by documentation, but will be tested
|
|
41
|
-
"tr": "
|
|
42
|
-
"uk": "
|
|
42
|
+
"tr": "muvaffakiyetsizleştiricileştiriveremeyebileceklerimizdenmişsinizcesine",
|
|
43
|
+
"uk": "нікотинамідаденіндинуклеотидфосфат"
|
|
43
44
|
};
|
|
44
45
|
|
|
45
46
|
return oTestingWords;
|
|
@@ -19,7 +19,7 @@ sap.ui.define([
|
|
|
19
19
|
// delegate further initialization of this library to the Core
|
|
20
20
|
sap.ui.getCore().initLibrary({
|
|
21
21
|
name : "sap.ui.core",
|
|
22
|
-
version: "1.
|
|
22
|
+
version: "1.96.2",
|
|
23
23
|
designtime: "sap/ui/core/designtime/library.designtime",
|
|
24
24
|
types: [
|
|
25
25
|
|
|
@@ -159,7 +159,7 @@ sap.ui.define([
|
|
|
159
159
|
* @namespace
|
|
160
160
|
* @alias sap.ui.core
|
|
161
161
|
* @author SAP SE
|
|
162
|
-
* @version 1.
|
|
162
|
+
* @version 1.96.2
|
|
163
163
|
* @since 0.8
|
|
164
164
|
* @public
|
|
165
165
|
*/
|
|
@@ -1511,7 +1511,7 @@ sap.ui.define([
|
|
|
1511
1511
|
/**
|
|
1512
1512
|
* Sort order of a column.
|
|
1513
1513
|
*
|
|
1514
|
-
* @version 1.
|
|
1514
|
+
* @version 1.96.2
|
|
1515
1515
|
* @enum {string}
|
|
1516
1516
|
* @public
|
|
1517
1517
|
* @since 1.61.0
|
|
@@ -35,7 +35,7 @@ sap.ui.define([
|
|
|
35
35
|
* @extends sap.ui.base.Object
|
|
36
36
|
*
|
|
37
37
|
* @author SAP SE
|
|
38
|
-
* @version 1.
|
|
38
|
+
* @version 1.96.2
|
|
39
39
|
*
|
|
40
40
|
* @param {object} [mParameters] a map which contains the following parameter properties:
|
|
41
41
|
* @param {string} [mParameters.id] The message id: will be generated if no id is set
|