@openui5/sap.ui.core 1.97.1 → 1.100.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.json +92 -2
- package/.reuse/dep5 +25 -30
- package/THIRDPARTY.txt +15 -22
- package/package.json +1 -1
- package/src/jquery.sap.global.js +6 -3
- package/src/jquery.sap.mobile.js +29 -19
- package/src/jquery.sap.properties.js +1 -1
- package/src/jquery.sap.resources.js +1 -1
- package/src/jquery.sap.script.js +1 -1
- package/src/jquery.sap.storage.js +3 -3
- package/src/sap/base/Log.js +1 -1
- package/src/sap/base/strings/whitespaceReplacer.js +1 -1
- package/src/sap/base/util/LoaderExtensions.js +1 -10
- package/src/sap/base/util/UriParameters.js +2 -2
- package/src/sap/base/util/restricted/_CancelablePromise.js +1 -1
- package/src/sap/base/util/restricted/_castArray.js +1 -1
- package/src/sap/base/util/restricted/_compact.js +1 -1
- package/src/sap/base/util/restricted/_curry.js +1 -1
- package/src/sap/base/util/restricted/_debounce.js +1 -1
- package/src/sap/base/util/restricted/_difference.js +1 -1
- package/src/sap/base/util/restricted/_differenceBy.js +1 -1
- package/src/sap/base/util/restricted/_differenceWith.js +1 -1
- package/src/sap/base/util/restricted/_flatMap.js +1 -1
- package/src/sap/base/util/restricted/_flatMapDeep.js +1 -1
- package/src/sap/base/util/restricted/_flatMapDepth.js +1 -1
- package/src/sap/base/util/restricted/_flatten.js +1 -1
- package/src/sap/base/util/restricted/_flattenDeep.js +1 -1
- package/src/sap/base/util/restricted/_flattenDepth.js +1 -1
- package/src/sap/base/util/restricted/_intersection.js +1 -1
- package/src/sap/base/util/restricted/_intersectionBy.js +1 -1
- package/src/sap/base/util/restricted/_intersectionWith.js +1 -1
- package/src/sap/base/util/restricted/_isEqual.js +1 -1
- package/src/sap/base/util/restricted/_isEqualWith.js +1 -1
- package/src/sap/base/util/restricted/_isNil.js +1 -1
- package/src/sap/base/util/restricted/_max.js +1 -1
- package/src/sap/base/util/restricted/_merge.js +1 -1
- package/src/sap/base/util/restricted/_mergeWith.js +1 -1
- package/src/sap/base/util/restricted/_min.js +1 -1
- package/src/sap/base/util/restricted/_omit.js +1 -1
- package/src/sap/base/util/restricted/_pick.js +1 -1
- package/src/sap/base/util/restricted/_pickBy.js +1 -1
- package/src/sap/base/util/restricted/_throttle.js +1 -1
- package/src/sap/base/util/restricted/_toArray.js +1 -1
- package/src/sap/base/util/restricted/_union.js +1 -1
- package/src/sap/base/util/restricted/_unionBy.js +1 -1
- package/src/sap/base/util/restricted/_unionWith.js +1 -1
- package/src/sap/base/util/restricted/_uniq.js +1 -1
- package/src/sap/base/util/restricted/_uniqBy.js +1 -1
- package/src/sap/base/util/restricted/_uniqWith.js +1 -1
- package/src/sap/base/util/restricted/_without.js +1 -1
- package/src/sap/base/util/restricted/_xor.js +1 -1
- package/src/sap/base/util/restricted/_xorBy.js +1 -1
- package/src/sap/base/util/restricted/_xorWith.js +1 -1
- package/src/sap/base/util/restricted/_zipObject.js +1 -1
- package/src/sap/base/util/restricted/_zipObjectDeep.js +1 -1
- package/src/sap/ui/Device.js +80 -168
- package/src/sap/ui/Global.js +4 -4
- package/src/sap/ui/VersionInfo.js +13 -10
- package/src/sap/ui/base/BindingParser.js +34 -7
- 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 +1 -1
- package/src/sap/ui/base/Interface.js +1 -1
- package/src/sap/ui/base/ManagedObject.js +48 -27
- package/src/sap/ui/base/ManagedObjectMetadata.js +1 -1
- package/src/sap/ui/base/ManagedObjectObserver.js +2 -0
- package/src/sap/ui/base/Metadata.js +1 -1
- package/src/sap/ui/base/Object.js +1 -1
- package/src/sap/ui/base/ObjectPool.js +1 -1
- package/src/sap/ui/core/.library +2 -2
- package/src/sap/ui/core/BusyIndicator.js +1 -1
- package/src/sap/ui/core/BusyIndicatorUtils.js +1 -1
- package/src/sap/ui/core/Component.js +3 -3
- package/src/sap/ui/core/ComponentContainer.js +1 -1
- package/src/sap/ui/core/ComponentMetadata.js +2 -2
- package/src/sap/ui/core/ComponentSupport.js +1 -1
- package/src/sap/ui/core/Configuration.js +82 -15
- package/src/sap/ui/core/Control.js +3 -2
- package/src/sap/ui/core/Core.js +5 -6
- package/src/sap/ui/core/CustomData.js +1 -1
- package/src/sap/ui/core/DeclarativeSupport.js +1 -1
- package/src/sap/ui/core/Element.js +5 -7
- package/src/sap/ui/core/ElementMetadata.js +1 -1
- package/src/sap/ui/core/EnabledPropagator.js +1 -1
- package/src/sap/ui/core/EventBus.js +1 -1
- package/src/sap/ui/core/ExtensionPoint.js +1 -1
- package/src/sap/ui/core/FocusHandler.js +1 -1
- package/src/sap/ui/core/Fragment.js +1 -1
- package/src/sap/ui/core/HTML.js +1 -1
- package/src/sap/ui/core/HTMLRenderer.js +1 -1
- package/src/sap/ui/core/History.js +1 -1
- package/src/sap/ui/core/Icon.js +18 -5
- package/src/sap/ui/core/IconRenderer.js +1 -1
- package/src/sap/ui/core/IndicationColorSupport.js +1 -1
- package/src/sap/ui/core/IntervalTrigger.js +1 -1
- package/src/sap/ui/core/InvisibleMessage.js +1 -1
- package/src/sap/ui/core/InvisibleRenderer.js +1 -1
- package/src/sap/ui/core/InvisibleText.js +1 -1
- package/src/sap/ui/core/Item.js +1 -1
- package/src/sap/ui/core/LabelEnablement.js +9 -2
- 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/LocalBusyIndicatorRenderer.js +2 -2
- package/src/sap/ui/core/LocalBusyIndicatorSupport.js +1 -1
- package/src/sap/ui/core/Locale.js +1 -1
- package/src/sap/ui/core/LocaleData.js +60 -6
- package/src/sap/ui/core/Manifest.js +1 -1
- package/src/sap/ui/core/Message.js +1 -1
- package/src/sap/ui/core/Patcher.js +3 -3
- package/src/sap/ui/core/Placeholder.js +28 -28
- package/src/sap/ui/core/Popup.js +12 -9
- package/src/sap/ui/core/RenderManager.js +1 -1
- package/src/sap/ui/core/Renderer.js +1 -1
- package/src/sap/ui/core/ResizeHandler.js +1 -1
- package/src/sap/ui/core/ScrollBar.js +1 -1
- package/src/sap/ui/core/ScrollBarRenderer.js +1 -1
- package/src/sap/ui/core/SeparatorItem.js +1 -1
- package/src/sap/ui/core/Title.js +1 -1
- package/src/sap/ui/core/TooltipBase.js +2 -2
- package/src/sap/ui/core/UIArea.js +1 -1
- package/src/sap/ui/core/UIComponent.js +1 -1
- package/src/sap/ui/core/UIComponentMetadata.js +1 -1
- package/src/sap/ui/core/ValueStateSupport.js +1 -1
- package/src/sap/ui/core/VariantLayoutData.js +1 -1
- package/src/sap/ui/core/XMLComposite.js +1 -1
- package/src/sap/ui/core/XMLCompositeMetadata.js +1 -1
- package/src/sap/ui/core/XMLTemplateProcessor.js +7 -6
- package/src/sap/ui/core/_IconRegistry.js +13 -3
- package/src/sap/ui/core/cache/CacheManager.js +1 -1
- package/src/sap/ui/core/cache/LRUPersistentCache.js +2 -1
- package/src/sap/ui/core/cldr/en_AU.json +1 -1
- package/src/sap/ui/core/date/Buddhist.js +3 -3
- package/src/sap/ui/core/date/Japanese.js +4 -4
- package/src/sap/ui/core/date/UniversalDate.js +10 -0
- package/src/sap/ui/core/date/UniversalDateUtils.js +175 -5
- package/src/sap/ui/core/delegate/ItemNavigation.js +1 -1
- package/src/sap/ui/core/delegate/ScrollEnablement.js +9 -6
- package/src/sap/ui/core/dnd/DragAndDrop.js +21 -18
- package/src/sap/ui/core/dnd/DragDropBase.js +1 -1
- package/src/sap/ui/core/dnd/DragDropInfo.js +1 -1
- package/src/sap/ui/core/dnd/DragInfo.js +1 -1
- package/src/sap/ui/core/dnd/DropInfo.js +3 -3
- package/src/sap/ui/core/format/DateFormat.js +654 -202
- package/src/sap/ui/core/format/DateFormatTimezoneDisplay.js +44 -0
- package/src/sap/ui/core/format/ListFormat.js +2 -2
- package/src/sap/ui/core/format/NumberFormat.js +502 -216
- package/src/sap/ui/core/format/TimezoneUtil.js +248 -0
- package/src/sap/ui/core/hyphenation/Hyphenation.js +1 -1
- package/src/sap/ui/core/library.js +126 -53
- package/src/sap/ui/core/message/ControlMessageProcessor.js +1 -1
- package/src/sap/ui/core/message/Message.js +1 -1
- package/src/sap/ui/core/message/MessageManager.js +1 -1
- package/src/sap/ui/core/message/MessageMixin.js +2 -1
- package/src/sap/ui/core/message/MessageParser.js +1 -1
- package/src/sap/ui/core/message/MessageProcessor.js +1 -1
- package/src/sap/ui/core/messagebundle.properties +2 -0
- package/src/sap/ui/core/messagebundle_ar.properties +1 -0
- package/src/sap/ui/core/messagebundle_bg.properties +6 -5
- package/src/sap/ui/core/messagebundle_ca.properties +1 -0
- package/src/sap/ui/core/messagebundle_cs.properties +1 -0
- package/src/sap/ui/core/messagebundle_cy.properties +1 -0
- package/src/sap/ui/core/messagebundle_da.properties +1 -0
- package/src/sap/ui/core/messagebundle_de.properties +2 -1
- package/src/sap/ui/core/messagebundle_el.properties +1 -0
- package/src/sap/ui/core/messagebundle_en.properties +1 -0
- package/src/sap/ui/core/messagebundle_en_GB.properties +1 -0
- package/src/sap/ui/core/messagebundle_en_US_sappsd.properties +1 -0
- package/src/sap/ui/core/messagebundle_en_US_saprigi.properties +1 -0
- package/src/sap/ui/core/messagebundle_en_US_saptrc.properties +1 -0
- package/src/sap/ui/core/messagebundle_es.properties +1 -0
- package/src/sap/ui/core/messagebundle_es_MX.properties +1 -0
- package/src/sap/ui/core/messagebundle_et.properties +1 -0
- package/src/sap/ui/core/messagebundle_fi.properties +1 -0
- package/src/sap/ui/core/messagebundle_fr.properties +1 -0
- package/src/sap/ui/core/messagebundle_fr_CA.properties +1 -0
- package/src/sap/ui/core/messagebundle_hi.properties +1 -0
- package/src/sap/ui/core/messagebundle_hr.properties +1 -0
- package/src/sap/ui/core/messagebundle_hu.properties +1 -0
- package/src/sap/ui/core/messagebundle_id.properties +3 -2
- package/src/sap/ui/core/messagebundle_it.properties +2 -1
- package/src/sap/ui/core/messagebundle_iw.properties +1 -0
- package/src/sap/ui/core/messagebundle_ja.properties +1 -0
- package/src/sap/ui/core/messagebundle_kk.properties +1 -0
- package/src/sap/ui/core/messagebundle_ko.properties +2 -1
- package/src/sap/ui/core/messagebundle_lt.properties +1 -0
- package/src/sap/ui/core/messagebundle_lv.properties +2 -1
- package/src/sap/ui/core/messagebundle_ms.properties +1 -0
- package/src/sap/ui/core/messagebundle_nl.properties +1 -0
- package/src/sap/ui/core/messagebundle_no.properties +5 -4
- package/src/sap/ui/core/messagebundle_pl.properties +1 -0
- package/src/sap/ui/core/messagebundle_pt.properties +1 -0
- package/src/sap/ui/core/messagebundle_pt_PT.properties +1 -0
- package/src/sap/ui/core/messagebundle_ro.properties +1 -0
- package/src/sap/ui/core/messagebundle_ru.properties +1 -0
- package/src/sap/ui/core/messagebundle_sh.properties +1 -0
- package/src/sap/ui/core/messagebundle_sk.properties +1 -0
- package/src/sap/ui/core/messagebundle_sl.properties +1 -0
- package/src/sap/ui/core/messagebundle_sv.properties +1 -0
- package/src/sap/ui/core/messagebundle_th.properties +1 -0
- package/src/sap/ui/core/messagebundle_tr.properties +1 -0
- package/src/sap/ui/core/messagebundle_uk.properties +1 -0
- package/src/sap/ui/core/messagebundle_vi.properties +1 -0
- package/src/sap/ui/core/messagebundle_zh_CN.properties +1 -0
- package/src/sap/ui/core/messagebundle_zh_TW.properties +1 -0
- package/src/sap/ui/core/mvc/Controller.js +1 -1
- package/src/sap/ui/core/mvc/ControllerExtensionProvider.js +1 -1
- package/src/sap/ui/core/mvc/HTMLView.js +1 -1
- package/src/sap/ui/core/mvc/HTMLViewRenderer.js +1 -1
- package/src/sap/ui/core/mvc/JSONView.js +2 -1
- package/src/sap/ui/core/mvc/JSONViewRenderer.js +1 -1
- package/src/sap/ui/core/mvc/JSView.js +1 -1
- package/src/sap/ui/core/mvc/JSViewRenderer.js +1 -1
- package/src/sap/ui/core/mvc/TemplateView.js +1 -1
- package/src/sap/ui/core/mvc/TemplateViewRenderer.js +1 -1
- package/src/sap/ui/core/mvc/View.js +2 -1
- package/src/sap/ui/core/mvc/ViewRenderer.js +1 -1
- package/src/sap/ui/core/mvc/XMLView.js +24 -3
- 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/Route.js +6 -6
- package/src/sap/ui/core/routing/Router.js +4 -3
- package/src/sap/ui/core/routing/Targets.js +17 -13
- package/src/sap/ui/core/rules/Misc.support.js +8 -3
- package/src/sap/ui/core/rules/Model.support.js +95 -8
- package/src/sap/ui/core/search/OpenSearchProvider.js +1 -1
- package/src/sap/ui/core/search/SearchProvider.js +1 -1
- package/src/sap/ui/core/service/Service.js +1 -1
- package/src/sap/ui/core/service/ServiceFactory.js +1 -1
- package/src/sap/ui/core/service/ServiceFactoryRegistry.js +1 -1
- package/src/sap/ui/core/support/Plugin.js +1 -1
- package/src/sap/ui/core/support/Support.js +3 -3
- package/src/sap/ui/core/support/plugins/ControlTree.js +1 -1
- package/src/sap/ui/core/support/plugins/Interaction.js +1 -1
- package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -1
- package/src/sap/ui/core/support/plugins/Performance.js +1 -1
- package/src/sap/ui/core/support/plugins/Selector.js +1 -1
- package/src/sap/ui/core/support/plugins/TechInfo.js +1 -1
- package/src/sap/ui/core/support/plugins/Trace.js +1 -1
- package/src/sap/ui/core/support/plugins/ViewInfo.js +1 -1
- package/src/sap/ui/core/support/techinfo/TechnicalInfo.js +1 -5
- package/src/sap/ui/core/themes/base/CommandShortcutHints.less +1 -1
- package/src/sap/ui/core/themes/base/base.less +1108 -35
- package/src/sap/ui/core/themes/base/fonts/SAP-icons.woff2 +0 -0
- package/src/sap/ui/core/themes/base/global.less +158 -4
- package/src/sap/ui/core/themes/base/parameterClasses.less +21 -21
- package/src/sap/ui/core/themes/sap_hcb/global.less +157 -2
- package/src/sap/ui/core/theming/Parameters.js +22 -142
- package/src/sap/ui/core/theming/ThemeHelper.js +26 -37
- package/src/sap/ui/core/tmpl/DOMAttribute.js +1 -1
- package/src/sap/ui/core/tmpl/DOMElement.js +1 -1
- package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +1 -1
- package/src/sap/ui/core/tmpl/Template.js +1 -1
- package/src/sap/ui/core/tmpl/TemplateControl.js +1 -1
- package/src/sap/ui/core/util/AsyncHintsHelper.js +1 -1
- package/src/sap/ui/core/util/DraftEnabledMockServer.js +21 -16
- 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 +157 -57
- package/src/sap/ui/core/util/PasteHelper.js +5 -5
- package/src/sap/ui/core/util/XMLPreprocessor.js +17 -4
- package/src/sap/ui/core/util/reflection/BaseTreeModifier.js +4 -0
- package/src/sap/ui/core/util/reflection/JsControlTreeModifier.js +26 -16
- package/src/sap/ui/core/util/reflection/XmlTreeModifier.js +1 -1
- package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +1 -1
- package/src/sap/ui/core/util/serializer/Serializer.js +1 -1
- package/src/sap/ui/core/util/serializer/ViewSerializer.js +1 -1
- package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +1 -1
- package/src/sap/ui/core/util/serializer/delegate/Delegate.js +1 -1
- package/src/sap/ui/core/util/serializer/delegate/HTML.js +1 -1
- package/src/sap/ui/core/util/serializer/delegate/XML.js +1 -1
- package/src/sap/ui/core/ws/ReadyState.js +1 -1
- package/src/sap/ui/core/ws/SapPcpWebSocket.js +1 -1
- package/src/sap/ui/core/ws/WebSocket.js +1 -1
- package/src/sap/ui/debug/ControlTree.js +1 -1
- package/src/sap/ui/debug/DebugEnv.js +1 -1
- package/src/sap/ui/debug/LogViewer.js +2 -2
- package/src/sap/ui/debug/PropertyList.js +1 -1
- package/src/sap/ui/dom/includeStylesheet.js +8 -3
- package/src/sap/ui/events/jquery/EventExtension.js +1 -1
- package/src/sap/ui/events/jquery/EventSimulation.js +3 -13
- package/src/sap/ui/model/Binding.js +4 -3
- package/src/sap/ui/model/ClientModel.js +1 -1
- package/src/sap/ui/model/ClientTreeBinding.js +1 -1
- package/src/sap/ui/model/CompositeBinding.js +4 -1
- package/src/sap/ui/model/CompositeDataState.js +26 -4
- package/src/sap/ui/model/CompositeType.js +13 -1
- package/src/sap/ui/model/ContextBinding.js +1 -1
- package/src/sap/ui/model/DataState.js +27 -6
- package/src/sap/ui/model/ListBinding.js +2 -2
- package/src/sap/ui/model/MetaModel.js +2 -3
- package/src/sap/ui/model/Model.js +2 -2
- package/src/sap/ui/model/SelectionModel.js +1 -1
- package/src/sap/ui/model/SimpleType.js +1 -1
- package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
- package/src/sap/ui/model/Type.js +1 -1
- package/src/sap/ui/model/_Helper.js +22 -0
- package/src/sap/ui/model/analytics/AnalyticalBinding.js +68 -42
- package/src/sap/ui/model/analytics/ODataModelAdapter.js +2 -15
- package/src/sap/ui/model/base/ManagedObjectModel.js +9 -7
- package/src/sap/ui/model/json/JSONListBinding.js +1 -1
- package/src/sap/ui/model/json/JSONModel.js +15 -8
- package/src/sap/ui/model/json/JSONPropertyBinding.js +1 -1
- package/src/sap/ui/model/message/MessageListBinding.js +1 -1
- package/src/sap/ui/model/message/MessageModel.js +1 -1
- package/src/sap/ui/model/message/MessagePropertyBinding.js +1 -1
- package/src/sap/ui/model/odata/ODataAnnotations.js +1 -1
- package/src/sap/ui/model/odata/ODataListBinding.js +1 -1
- package/src/sap/ui/model/odata/ODataMessageParser.js +1 -1
- package/src/sap/ui/model/odata/ODataMetaModel.js +1 -1
- package/src/sap/ui/model/odata/ODataMetadata.js +3 -3
- package/src/sap/ui/model/odata/ODataModel.js +2 -2
- package/src/sap/ui/model/odata/ODataPropertyBinding.js +3 -1
- package/src/sap/ui/model/odata/ODataTreeBinding.js +1 -1
- package/src/sap/ui/model/odata/ODataTreeBindingFlat.js +1 -1
- package/src/sap/ui/model/odata/_AnnotationHelperBasics.js +1 -1
- package/src/sap/ui/model/odata/_AnnotationHelperExpression.js +1 -1
- package/src/sap/ui/model/odata/_ODataMetaModelUtils.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/DateTimeWithTimezone.js +346 -0
- 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/type/UnitMixin.js +1 -1
- package/src/sap/ui/model/odata/v2/Context.js +62 -5
- package/src/sap/ui/model/odata/v2/ODataAnnotations.js +1 -1
- package/src/sap/ui/model/odata/v2/ODataContextBinding.js +8 -4
- package/src/sap/ui/model/odata/v2/ODataListBinding.js +324 -112
- package/src/sap/ui/model/odata/v2/ODataModel.js +324 -94
- package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +3 -4
- package/src/sap/ui/model/odata/v2/_CreatedContextsCache.js +65 -5
- package/src/sap/ui/model/odata/v4/AnnotationHelper.js +21 -22
- package/src/sap/ui/model/odata/v4/Context.js +224 -101
- package/src/sap/ui/model/odata/v4/ODataBinding.js +99 -55
- package/src/sap/ui/model/odata/v4/ODataContextBinding.js +272 -210
- package/src/sap/ui/model/odata/v4/ODataListBinding.js +557 -258
- package/src/sap/ui/model/odata/v4/ODataMetaModel.js +131 -100
- package/src/sap/ui/model/odata/v4/ODataModel.js +503 -260
- package/src/sap/ui/model/odata/v4/ODataParentBinding.js +106 -138
- package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +87 -80
- package/src/sap/ui/model/odata/v4/ODataUtils.js +5 -5
- package/src/sap/ui/model/odata/v4/SubmitMode.js +0 -1
- package/src/sap/ui/model/odata/v4/ValueListType.js +0 -1
- package/src/sap/ui/model/odata/v4/_AnnotationHelperExpression.js +20 -20
- package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +3 -5
- package/src/sap/ui/model/odata/v4/lib/_AggregationHelper.js +5 -4
- package/src/sap/ui/model/odata/v4/lib/_Batch.js +21 -20
- package/src/sap/ui/model/odata/v4/lib/_Cache.js +322 -127
- package/src/sap/ui/model/odata/v4/lib/_GroupLock.js +5 -1
- package/src/sap/ui/model/odata/v4/lib/_Helper.js +28 -21
- package/src/sap/ui/model/odata/v4/lib/_MetadataConverter.js +62 -61
- package/src/sap/ui/model/odata/v4/lib/_MetadataRequestor.js +1 -1
- package/src/sap/ui/model/odata/v4/lib/_Parser.js +52 -43
- package/src/sap/ui/model/odata/v4/lib/_Requestor.js +216 -51
- package/src/sap/ui/model/odata/v4/lib/_V2MetadataConverter.js +147 -147
- package/src/sap/ui/model/odata/v4/lib/_V2Requestor.js +14 -13
- package/src/sap/ui/model/odata/v4/lib/_V4MetadataConverter.js +66 -67
- package/src/sap/ui/model/resource/ResourceModel.js +1 -1
- package/src/sap/ui/model/resource/ResourcePropertyBinding.js +1 -1
- package/src/sap/ui/model/type/Boolean.js +1 -1
- package/src/sap/ui/model/type/Currency.js +1 -1
- package/src/sap/ui/model/type/Date.js +1 -1
- package/src/sap/ui/model/type/DateInterval.js +1 -1
- package/src/sap/ui/model/type/DateTime.js +1 -1
- package/src/sap/ui/model/type/DateTimeInterval.js +1 -1
- package/src/sap/ui/model/type/FileSize.js +1 -1
- package/src/sap/ui/model/type/Float.js +1 -1
- package/src/sap/ui/model/type/Integer.js +1 -1
- package/src/sap/ui/model/type/String.js +1 -1
- package/src/sap/ui/model/type/Time.js +1 -1
- package/src/sap/ui/model/type/TimeInterval.js +1 -1
- package/src/sap/ui/model/type/Unit.js +1 -1
- package/src/sap/ui/model/xml/XMLListBinding.js +1 -1
- package/src/sap/ui/model/xml/XMLModel.js +1 -1
- package/src/sap/ui/model/xml/XMLPropertyBinding.js +1 -1
- package/src/sap/ui/performance/trace/FESR.js +1 -1
- package/src/sap/ui/performance/trace/FESRHelper.js +72 -0
- package/src/sap/ui/performance/trace/Interaction.js +6 -2
- package/src/sap/ui/performance/trace/Passport.js +3 -3
- package/src/sap/ui/qunit/qunit-2-css.js +4 -4
- package/src/sap/ui/qunit/qunit-css.js +4 -4
- package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
- package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +1 -1
- package/src/sap/ui/test/BlanketReporter.js +1 -1
- package/src/sap/ui/test/BranchTracking.js +1 -0
- package/src/sap/ui/test/Opa5.js +1 -1
- package/src/sap/ui/test/OpaBuilder.js +7 -7
- package/src/sap/ui/test/TestUtils.js +12 -2
- package/src/sap/ui/test/_LogCollector.js +1 -1
- package/src/sap/ui/test/_UsageReport.js +1 -1
- package/src/sap/ui/test/actions/Action.js +4 -2
- package/src/sap/ui/test/actions/Press.js +51 -2
- package/src/sap/ui/test/autowaiter/_XHRWaiter.js +1 -1
- package/src/sap/ui/test/generic/GenericTestCollection.js +176 -0
- package/src/sap/ui/test/generic/TestBase.js +151 -0
- package/src/sap/ui/test/generic/Utils.js +284 -0
- package/src/sap/ui/test/selectors/_ControlSelectorGenerator.js +9 -8
- package/src/sap/ui/test/selectors/_ControlSelectorValidator.js +1 -1
- package/src/sap/ui/test/starter/_setupAndStart.js +4 -0
- package/src/sap/ui/test/starter/createSuite.js +3 -3
- package/src/sap/ui/thirdparty/IPv6.js +1 -1
- package/src/sap/ui/thirdparty/SecondLevelDomains.js +1 -1
- package/src/sap/ui/thirdparty/URI.js +7 -3
- package/src/sap/ui/thirdparty/URITemplate.js +1 -1
- package/src/sap/ui/thirdparty/jquery-mobile-custom.js +3 -6
- package/src/sap/ui/thirdparty/jqueryui/jquery-ui-datepicker.js +143 -3
- package/src/sap/ui/thirdparty/jqueryui/jquery-ui-position.js +8 -1
- package/src/sap/ui/thirdparty/jszip.js +17 -7
- package/src/sap/ui/thirdparty/mobify-carousel.js +1 -1
- package/src/sap/ui/util/Mobile.js +17 -0
- package/src/sap/ui/util/Storage.js +1 -1
- package/src/sap/ui/util/XMLHelper.js +53 -30
- package/src/ui5loader.js +4 -4
|
@@ -29,7 +29,38 @@ sap.ui.define([
|
|
|
29
29
|
dataRequested : true,
|
|
30
30
|
DataStateChange : true
|
|
31
31
|
},
|
|
32
|
-
sVirtualPath = "/" + Context.VIRTUAL
|
|
32
|
+
sVirtualPath = "/" + Context.VIRTUAL, // a snippet indicating a virtual path
|
|
33
|
+
/**
|
|
34
|
+
* @alias sap.ui.model.odata.v4.ODataPropertyBinding
|
|
35
|
+
* @author SAP SE
|
|
36
|
+
* @class Property binding for an OData V4 model.
|
|
37
|
+
* An event handler can only be attached to this binding for the following events:
|
|
38
|
+
* 'AggregatedDataStateChange', 'change', 'dataReceived', 'dataRequested' and
|
|
39
|
+
* 'DataStateChange'. For unsupported events, an error is thrown.
|
|
40
|
+
* @extends sap.ui.model.PropertyBinding
|
|
41
|
+
* @hideconstructor
|
|
42
|
+
* @mixes sap.ui.model.odata.v4.ODataBinding
|
|
43
|
+
* @public
|
|
44
|
+
* @since 1.37.0
|
|
45
|
+
* @version 1.100.0
|
|
46
|
+
* @borrows sap.ui.model.odata.v4.ODataBinding#getGroupId as #getGroupId
|
|
47
|
+
* @borrows sap.ui.model.odata.v4.ODataBinding#getRootBinding as #getRootBinding
|
|
48
|
+
* @borrows sap.ui.model.odata.v4.ODataBinding#getUpdateGroupId as #getUpdateGroupId
|
|
49
|
+
* @borrows sap.ui.model.odata.v4.ODataBinding#hasPendingChanges as #hasPendingChanges
|
|
50
|
+
* @borrows sap.ui.model.odata.v4.ODataBinding#isInitial as #isInitial
|
|
51
|
+
* @borrows sap.ui.model.odata.v4.ODataBinding#refresh as #refresh
|
|
52
|
+
* @borrows sap.ui.model.odata.v4.ODataBinding#requestRefresh as #requestRefresh
|
|
53
|
+
* @borrows sap.ui.model.odata.v4.ODataBinding#resetChanges as #resetChanges
|
|
54
|
+
* @borrows sap.ui.model.odata.v4.ODataBinding#toString as #toString
|
|
55
|
+
*/
|
|
56
|
+
ODataPropertyBinding
|
|
57
|
+
= PropertyBinding.extend("sap.ui.model.odata.v4.ODataPropertyBinding", {
|
|
58
|
+
constructor : constructor
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
//*********************************************************************************************
|
|
62
|
+
// ODataPropertyBinding
|
|
63
|
+
//*********************************************************************************************
|
|
33
64
|
|
|
34
65
|
/**
|
|
35
66
|
* Do <strong>NOT</strong> call this private constructor, but rather use
|
|
@@ -45,66 +76,37 @@ sap.ui.define([
|
|
|
45
76
|
* Map of binding parameters
|
|
46
77
|
* @throws {Error}
|
|
47
78
|
* If disallowed binding parameters are provided
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
=
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
if (sPath.endsWith("/")) {
|
|
80
|
-
throw new Error("Invalid path: " + sPath);
|
|
81
|
-
}
|
|
82
|
-
if (mParameters) {
|
|
83
|
-
this.checkBindingParameters(mParameters,
|
|
84
|
-
["$$groupId", "$$ignoreMessages", "$$noPatch"]);
|
|
85
|
-
this.sGroupId = mParameters.$$groupId;
|
|
86
|
-
this.bNoPatch = mParameters.$$noPatch;
|
|
87
|
-
this.setIgnoreMessages(mParameters.$$ignoreMessages);
|
|
88
|
-
} else {
|
|
89
|
-
this.sGroupId = undefined;
|
|
90
|
-
this.bNoPatch = false;
|
|
91
|
-
}
|
|
92
|
-
this.oCheckUpdateCallToken = undefined;
|
|
93
|
-
this.oContext = oContext;
|
|
94
|
-
this.bHasDeclaredType = undefined; // whether the binding info declares a type
|
|
95
|
-
this.bInitial = true;
|
|
96
|
-
// Note: system query options supported at property binding only for ".../$count"
|
|
97
|
-
this.mQueryOptions = this.oModel.buildQueryOptions(_Helper.clone(mParameters),
|
|
98
|
-
/*bSystemQueryOptionsAllowed*/sPath.endsWith("$count"));
|
|
99
|
-
this.vValue = undefined;
|
|
100
|
-
// BEWARE: #doFetchQueryOptions uses #isRoot which relies on this.oContext!
|
|
101
|
-
this.fetchCache(oContext);
|
|
102
|
-
oModel.bindingCreated(this);
|
|
103
|
-
},
|
|
104
|
-
metadata : {
|
|
105
|
-
publicMethods : []
|
|
106
|
-
}
|
|
107
|
-
});
|
|
79
|
+
*/
|
|
80
|
+
function constructor(oModel, sPath, oContext, mParameters) {
|
|
81
|
+
PropertyBinding.call(this, oModel, sPath);
|
|
82
|
+
// initialize mixin members
|
|
83
|
+
asODataBinding.call(this);
|
|
84
|
+
|
|
85
|
+
if (sPath.endsWith("/")) {
|
|
86
|
+
throw new Error("Invalid path: " + sPath);
|
|
87
|
+
}
|
|
88
|
+
if (mParameters) {
|
|
89
|
+
this.checkBindingParameters(mParameters,
|
|
90
|
+
["$$groupId", "$$ignoreMessages", "$$noPatch"]);
|
|
91
|
+
this.sGroupId = mParameters.$$groupId;
|
|
92
|
+
this.bNoPatch = mParameters.$$noPatch;
|
|
93
|
+
this.setIgnoreMessages(mParameters.$$ignoreMessages);
|
|
94
|
+
} else {
|
|
95
|
+
this.sGroupId = undefined;
|
|
96
|
+
this.bNoPatch = false;
|
|
97
|
+
}
|
|
98
|
+
this.oCheckUpdateCallToken = undefined;
|
|
99
|
+
this.oContext = oContext;
|
|
100
|
+
this.bHasDeclaredType = undefined; // whether the binding info declares a type
|
|
101
|
+
this.bInitial = true;
|
|
102
|
+
// Note: system query options supported at property binding only for ".../$count"
|
|
103
|
+
this.mQueryOptions = this.oModel.buildQueryOptions(_Helper.clone(mParameters),
|
|
104
|
+
/*bSystemQueryOptionsAllowed*/sPath.endsWith("$count"));
|
|
105
|
+
this.vValue = undefined;
|
|
106
|
+
// BEWARE: #doFetchQueryOptions uses #isRoot which relies on this.oContext!
|
|
107
|
+
this.fetchCache(oContext);
|
|
108
|
+
oModel.bindingCreated(this);
|
|
109
|
+
}
|
|
108
110
|
|
|
109
111
|
asODataBinding(ODataPropertyBinding.prototype);
|
|
110
112
|
|
|
@@ -230,9 +232,9 @@ sap.ui.define([
|
|
|
230
232
|
* The new value obtained from the cache, see {@link #onChange}
|
|
231
233
|
* @returns {sap.ui.base.SyncPromise}
|
|
232
234
|
* A promise resolving without a defined result when the check is finished, or rejecting in
|
|
233
|
-
* case of an error
|
|
234
|
-
*
|
|
235
|
-
*
|
|
235
|
+
* case of an error. If the cache is no longer the active cache when the response arrives,
|
|
236
|
+
* that response is ignored almost silently (that is, with a canceled error) and the value
|
|
237
|
+
* remains unchanged.
|
|
236
238
|
*
|
|
237
239
|
* @private
|
|
238
240
|
* @see sap.ui.model.PropertyBinding#checkDataState
|
|
@@ -267,7 +269,8 @@ sap.ui.define([
|
|
|
267
269
|
&& !bIsMeta) {
|
|
268
270
|
vType = oMetaModel.fetchUI5Type(sResolvedPath);
|
|
269
271
|
}
|
|
270
|
-
if (
|
|
272
|
+
if (vValue === undefined) {
|
|
273
|
+
// if called via #onChange, we need to fetch implicit values
|
|
271
274
|
vValue = this.oCachePromise.then(function (oCache) {
|
|
272
275
|
var sDataPath, sMetaPath;
|
|
273
276
|
|
|
@@ -310,20 +313,19 @@ sap.ui.define([
|
|
|
310
313
|
|| (that.sPath[that.sPath.lastIndexOf("/") + 1] === "#" && !bIsMeta))) {
|
|
311
314
|
if (bIsMeta) {
|
|
312
315
|
return vValue;
|
|
313
|
-
} else if (that.bRelative){
|
|
316
|
+
} else if (that.bRelative) {
|
|
314
317
|
return _Helper.publicClone(vValue);
|
|
315
318
|
}
|
|
316
319
|
}
|
|
317
320
|
Log.error("Accessed value is not primitive", sResolvedPath, sClassName);
|
|
318
321
|
}, function (oError) {
|
|
319
|
-
// do not rethrow, ManagedObject doesn't react on this either
|
|
320
|
-
// throwing an error would cause "Uncaught (in promise)" in Chrome
|
|
321
322
|
that.oModel.reportError("Failed to read path " + sResolvedPath, sClassName, oError);
|
|
322
323
|
if (oError.canceled) { // canceled -> value remains unchanged
|
|
323
324
|
oCallToken.forceUpdate = false;
|
|
324
325
|
return that.vValue;
|
|
325
326
|
}
|
|
326
327
|
mParametersForDataReceived = {error : oError};
|
|
328
|
+
// oError is re-thrown below
|
|
327
329
|
});
|
|
328
330
|
if (bForceUpdate && vValue.isFulfilled()) {
|
|
329
331
|
if (vType && vType.isFulfilled && vType.isFulfilled()) {
|
|
@@ -352,6 +354,9 @@ sap.ui.define([
|
|
|
352
354
|
if (bDataRequested) {
|
|
353
355
|
that.fireDataReceived(mParametersForDataReceived);
|
|
354
356
|
}
|
|
357
|
+
if (mParametersForDataReceived.error) {
|
|
358
|
+
throw mParametersForDataReceived.error;
|
|
359
|
+
}
|
|
355
360
|
});
|
|
356
361
|
};
|
|
357
362
|
|
|
@@ -493,7 +498,8 @@ sap.ui.define([
|
|
|
493
498
|
* @private
|
|
494
499
|
*/
|
|
495
500
|
ODataPropertyBinding.prototype.onChange = function (vValue) {
|
|
496
|
-
this.checkUpdateInternal(undefined, undefined, undefined, vValue)
|
|
501
|
+
this.checkUpdateInternal(undefined, undefined, undefined, vValue)
|
|
502
|
+
.catch(this.oModel.getReporter());
|
|
497
503
|
};
|
|
498
504
|
|
|
499
505
|
/**
|
|
@@ -505,7 +511,7 @@ sap.ui.define([
|
|
|
505
511
|
var that = this;
|
|
506
512
|
|
|
507
513
|
if (this.isRootBindingSuspended()) {
|
|
508
|
-
this.
|
|
514
|
+
this.refreshSuspended(sGroupId);
|
|
509
515
|
return SyncPromise.resolve();
|
|
510
516
|
}
|
|
511
517
|
return this.oCachePromise.then(function () {
|
|
@@ -522,7 +528,7 @@ sap.ui.define([
|
|
|
522
528
|
*
|
|
523
529
|
* @returns {Promise}
|
|
524
530
|
* A promise resolving with the resulting value or <code>undefined</code> if it could not be
|
|
525
|
-
* determined
|
|
531
|
+
* determined, or rejecting in case of an error
|
|
526
532
|
*
|
|
527
533
|
* @public
|
|
528
534
|
* @since 1.69
|
|
@@ -633,7 +639,8 @@ sap.ui.define([
|
|
|
633
639
|
|
|
634
640
|
this.fetchCache(this.oContext);
|
|
635
641
|
if (bCheckUpdate) {
|
|
636
|
-
this.checkUpdateInternal(bParentHasChanges ? undefined : false, sResumeChangeReason)
|
|
642
|
+
this.checkUpdateInternal(bParentHasChanges ? undefined : false, sResumeChangeReason)
|
|
643
|
+
.catch(this.oModel.getReporter());
|
|
637
644
|
}
|
|
638
645
|
};
|
|
639
646
|
|
|
@@ -660,7 +667,8 @@ sap.ui.define([
|
|
|
660
667
|
this.sResumeChangeReason = undefined;
|
|
661
668
|
if (this.bRelative) {
|
|
662
669
|
this.fetchCache(this.oContext);
|
|
663
|
-
this.checkUpdateInternal(this.bInitial || undefined, ChangeReason.Context)
|
|
670
|
+
this.checkUpdateInternal(this.bInitial || undefined, ChangeReason.Context)
|
|
671
|
+
.catch(this.oModel.getReporter());
|
|
664
672
|
}
|
|
665
673
|
}
|
|
666
674
|
};
|
|
@@ -705,15 +713,14 @@ sap.ui.define([
|
|
|
705
713
|
* this binding (or its relevant parent binding) is used, see {@link #getUpdateGroupId}.
|
|
706
714
|
* Valid values are <code>undefined</code>, '$auto', '$auto.*', '$direct' or application group
|
|
707
715
|
* IDs as specified in {@link sap.ui.model.odata.v4.ODataModel}.
|
|
708
|
-
* @throws {Error}
|
|
709
|
-
* If one of the following situations occurs:
|
|
716
|
+
* @throws {Error} If
|
|
710
717
|
* <ul>
|
|
711
|
-
* <li>
|
|
712
|
-
* <li>
|
|
713
|
-
* <li>
|
|
718
|
+
* <li> the binding's root binding is suspended.
|
|
719
|
+
* <li> the new value is not primitive.
|
|
720
|
+
* <li> no value has been read before and the binding does not have the parameter
|
|
714
721
|
* <code>$$noPatch</code>.
|
|
715
|
-
* <li>
|
|
716
|
-
* <li>
|
|
722
|
+
* <li> the binding is not relative to a {@link sap.ui.model.odata.v4.Context}.
|
|
723
|
+
* <li> the binding has the parameter <code>$$noPatch</code> and a group ID has been given.
|
|
717
724
|
* </ul>
|
|
718
725
|
*
|
|
719
726
|
* @public
|
|
@@ -116,13 +116,13 @@ sap.ui.define([
|
|
|
116
116
|
* </ul>
|
|
117
117
|
* If the specified <code>sResponseBody</code> contains responses for change sets,
|
|
118
118
|
* then the corresponding response objects will be returned in a nested array.
|
|
119
|
-
* @throws {Error}
|
|
119
|
+
* @throws {Error} If
|
|
120
120
|
* <ul>
|
|
121
|
-
* <li>
|
|
121
|
+
* <li> the <code>sContentType</code> parameter does not represent a
|
|
122
122
|
* "multipart/mixed" media type with "boundary" parameter
|
|
123
|
-
* <li>
|
|
123
|
+
* <li> the "charset" parameter of the "Content-Type" header of a nested response
|
|
124
124
|
* has a value other than "UTF-8"
|
|
125
|
-
* <li>
|
|
125
|
+
* <li> there is no "Content-ID" header for a change set response or its value is
|
|
126
126
|
* not a number
|
|
127
127
|
* </ul>
|
|
128
128
|
*
|
|
@@ -241,7 +241,7 @@ sap.ui.define([
|
|
|
241
241
|
// "round" to millis: "HH:mm:ss.SSS"
|
|
242
242
|
sTimeOfDay = sTimeOfDay.slice(0, 12);
|
|
243
243
|
}
|
|
244
|
-
oTimeOfDay =
|
|
244
|
+
oTimeOfDay = oTimeFormatter.parse(sTimeOfDay);
|
|
245
245
|
}
|
|
246
246
|
if (!oTimeOfDay) {
|
|
247
247
|
throw new Error("Not a valid Edm.TimeOfDay value: " + sTimeOfDay);
|
|
@@ -14,7 +14,7 @@ sap.ui.define([
|
|
|
14
14
|
"sap/ui/base/SyncPromise",
|
|
15
15
|
"sap/ui/performance/Measurement"
|
|
16
16
|
], function (Basics, Log, BindingParser, ManagedObject, SyncPromise, Measurement) {
|
|
17
|
-
|
|
17
|
+
"use strict";
|
|
18
18
|
|
|
19
19
|
// see http://docs.oasis-open.org/odata/odata/v4.0/errata02/os/complete/abnf/odata-abnf-construction-rules.txt
|
|
20
20
|
var sAnnotationHelper = "sap.ui.model.odata.v4.AnnotationHelper",
|
|
@@ -57,7 +57,7 @@ sap.ui.define([
|
|
|
57
57
|
Bool : "Edm.Boolean",
|
|
58
58
|
Float : "Edm.Double",
|
|
59
59
|
Date : "Edm.Date",
|
|
60
|
-
DateTimeOffset :"Edm.DateTimeOffset",
|
|
60
|
+
DateTimeOffset : "Edm.DateTimeOffset",
|
|
61
61
|
Decimal : "Edm.Decimal",
|
|
62
62
|
Guid : "Edm.Guid",
|
|
63
63
|
Int : "Edm.Int64",
|
|
@@ -66,13 +66,13 @@ sap.ui.define([
|
|
|
66
66
|
TimeOfDay : "Edm.TimeOfDay"
|
|
67
67
|
},
|
|
68
68
|
mTypeCategoryNeedsCompare = {
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
69
|
+
boolean : false,
|
|
70
|
+
Date : false,
|
|
71
|
+
DateTimeOffset : true,
|
|
72
|
+
Decimal : true,
|
|
73
|
+
number : false,
|
|
74
|
+
string : false,
|
|
75
|
+
TimeOfDay : false
|
|
76
76
|
},
|
|
77
77
|
/**
|
|
78
78
|
* This object contains helper functions to process an expression in OData V4 annotations.
|
|
@@ -248,7 +248,7 @@ sap.ui.define([
|
|
|
248
248
|
// convert the results to strings after we know whether the result is expression
|
|
249
249
|
aParts = aParameters.filter(function (oParameter) {
|
|
250
250
|
// ignore null (otherwise the string 'null' would appear in expressions)
|
|
251
|
-
return oParameter.type !==
|
|
251
|
+
return oParameter.type !== "edm:Null";
|
|
252
252
|
}).map(function (oParameter) {
|
|
253
253
|
if (bExpression) {
|
|
254
254
|
// the expression might have a lower operator precedence than '+'
|
|
@@ -405,7 +405,8 @@ sap.ui.define([
|
|
|
405
405
|
return Expression.path(oPathValue);
|
|
406
406
|
}
|
|
407
407
|
|
|
408
|
-
[
|
|
408
|
+
[
|
|
409
|
+
"$And", "$Apply", "$Date", "$DateTimeOffset", "$Decimal", "$Float", "$Eq",
|
|
409
410
|
"$Ge", "$Gt", "$Guid", "$If", "$Int", "$Le", "$Lt", "$Name", "$Ne", "$Not",
|
|
410
411
|
"$Null", "$Or", "$Path", "$PropertyPath", "$TimeOfDay", "$LabeledElement"
|
|
411
412
|
].forEach(function (sProperty) {
|
|
@@ -488,7 +489,7 @@ sap.ui.define([
|
|
|
488
489
|
* the type of the property referenced by <code>oPathValue.path</code>
|
|
489
490
|
* @param {object} mConstraints
|
|
490
491
|
* the type constraints for the property referenced by <code>oPathValue.path</code>
|
|
491
|
-
* @returns {sap.ui.base.SyncPromise}
|
|
492
|
+
* @returns {sap.ui.base.SyncPromise|undefined}
|
|
492
493
|
* a sync promise which resolves with a result object for the currency or unit, or is
|
|
493
494
|
* rejected with an error; <code>undefined</code> if there are no unit and currency
|
|
494
495
|
* annotations for the property referenced by <code>oPathValue.path</code>
|
|
@@ -516,8 +517,8 @@ sap.ui.define([
|
|
|
516
517
|
return undefined;
|
|
517
518
|
}
|
|
518
519
|
return oModel.fetchObject(sPath + "/$").then(function (oTarget) {
|
|
519
|
-
var sCompositeConstraints
|
|
520
|
-
oModel.getObject(oPathValue.path
|
|
520
|
+
var sCompositeConstraints
|
|
521
|
+
= oModel.getObject(oPathValue.path
|
|
521
522
|
+ "@com.sap.vocabularies.UI.v1.DoNotCheckScaleOfMeasureQuantity")
|
|
522
523
|
? ",constraints:{'skipDecimalsValidation':true}"
|
|
523
524
|
: "";
|
|
@@ -568,9 +569,9 @@ sap.ui.define([
|
|
|
568
569
|
aParts = [],
|
|
569
570
|
sPrefix = "";
|
|
570
571
|
|
|
571
|
-
aParts.push(
|
|
572
|
+
aParts.push("odata.fillUriTemplate(",
|
|
572
573
|
Basics.resultToString(aResults[0], true, false, true),
|
|
573
|
-
|
|
574
|
+
",{");
|
|
574
575
|
for (i = 1; i < oPathValue.value.length; i += 1) {
|
|
575
576
|
sName = Basics.property(aParameters[i], "$Name", "string");
|
|
576
577
|
aParts.push(sPrefix, Basics.toJSON(sName), ":",
|
|
@@ -618,7 +619,7 @@ sap.ui.define([
|
|
|
618
619
|
*
|
|
619
620
|
* @param {object} oPathValue
|
|
620
621
|
* path and value information pointing to the expression (see Expression object)
|
|
621
|
-
* @returns {Promise|string}
|
|
622
|
+
* @returns {Promise|string|undefined}
|
|
622
623
|
* the expression value or "Unsupported: oRawValue" in case of an error or
|
|
623
624
|
* <code>undefined</code> in case the raw value is undefined; may instead return a
|
|
624
625
|
* <code>Promise</code> resolving with that result.
|
|
@@ -851,10 +852,10 @@ sap.ui.define([
|
|
|
851
852
|
type : "Edm.String",
|
|
852
853
|
value : oResult.type === "Edm.String"
|
|
853
854
|
// Note: odata.uriEncode() is V2, but safe for Edm.String!
|
|
854
|
-
?
|
|
855
|
+
? "odata.uriEncode(" + Basics.resultToString(oResult, true, false, true)
|
|
855
856
|
+ "," + Basics.toJSON(oResult.type) + ")"
|
|
856
857
|
// Note: see _Helper.formatLiteral()
|
|
857
|
-
:
|
|
858
|
+
: "String(" + Basics.resultToString(oResult, true, false, true) + ")"
|
|
858
859
|
};
|
|
859
860
|
});
|
|
860
861
|
},
|
|
@@ -878,5 +879,4 @@ sap.ui.define([
|
|
|
878
879
|
};
|
|
879
880
|
|
|
880
881
|
return Expression;
|
|
881
|
-
|
|
882
882
|
}, /* bExport= */ false);
|
|
@@ -209,8 +209,6 @@ sap.ui.define([
|
|
|
209
209
|
}
|
|
210
210
|
_Helper.setPrivateAnnotation(oGroupNode, "spliced", aElements.splice(iIndex + 1, iCount));
|
|
211
211
|
aElements.$count -= iCount;
|
|
212
|
-
_Helper.updateAll(this.mChangeListeners, sGroupNodePath, oGroupNode,
|
|
213
|
-
{"@$ui5.node.groupLevelCount" : undefined});
|
|
214
212
|
|
|
215
213
|
return iCount;
|
|
216
214
|
};
|
|
@@ -700,7 +698,7 @@ sap.ui.define([
|
|
|
700
698
|
* A map from meta paths to entity types (as delivered by {@link #fetchTypes})
|
|
701
699
|
* @param {string} sMetaPath
|
|
702
700
|
* The meta path for the given element
|
|
703
|
-
* @returns {string}
|
|
701
|
+
* @returns {string|undefined}
|
|
704
702
|
* The key predicate or <code>undefined</code>, if key predicate cannot be determined
|
|
705
703
|
*
|
|
706
704
|
* @public
|
|
@@ -823,7 +821,7 @@ sap.ui.define([
|
|
|
823
821
|
}
|
|
824
822
|
|
|
825
823
|
if (mQueryOptions.$$filterBeforeAggregate) {
|
|
826
|
-
mQueryOptions.$apply = "filter(" +
|
|
824
|
+
mQueryOptions.$apply = "filter(" + mQueryOptions.$$filterBeforeAggregate + ")/"
|
|
827
825
|
+ mQueryOptions.$apply;
|
|
828
826
|
delete mQueryOptions.$$filterBeforeAggregate;
|
|
829
827
|
}
|
|
@@ -833,4 +831,4 @@ sap.ui.define([
|
|
|
833
831
|
};
|
|
834
832
|
|
|
835
833
|
return _AggregationCache;
|
|
836
|
-
}, /* bExport= */false);
|
|
834
|
+
}, /* bExport= */false);
|
|
@@ -21,7 +21,7 @@ sap.ui.define([
|
|
|
21
21
|
name : "string",
|
|
22
22
|
subtotals : "boolean",
|
|
23
23
|
unit : "string",
|
|
24
|
-
|
|
24
|
+
with : "string"
|
|
25
25
|
}
|
|
26
26
|
},
|
|
27
27
|
"grandTotal like 1.84" : "boolean",
|
|
@@ -62,7 +62,8 @@ sap.ui.define([
|
|
|
62
62
|
* @param {string[]} aAliases - Array of all applicable aggregatable property names/aliases
|
|
63
63
|
* @throws {Error} If "average" or "countdistinct" are used together with grand totals like 1.84
|
|
64
64
|
*/
|
|
65
|
-
function aggregate(oAggregation, aGroupBy, aAggregate, bGrandTotalLike184, sAlias, i,
|
|
65
|
+
function aggregate(oAggregation, aGroupBy, aAggregate, bGrandTotalLike184, sAlias, i,
|
|
66
|
+
aAliases) {
|
|
66
67
|
var oDetails = oAggregation.aggregate[sAlias],
|
|
67
68
|
sAggregate = oDetails.name || sAlias,
|
|
68
69
|
sUnit = oDetails.unit,
|
|
@@ -527,8 +528,8 @@ sap.ui.define([
|
|
|
527
528
|
* (see {@link .buildApply})
|
|
528
529
|
* @param {number} [iLevel=0]
|
|
529
530
|
* The current level; use <code>0</code> to bypass group levels
|
|
530
|
-
* @returns {string}
|
|
531
|
-
* The filtered "$orderby" system query option
|
|
531
|
+
* @returns {string|undefined}
|
|
532
|
+
* The filtered "$orderby" system query option or <code>undefined</code>
|
|
532
533
|
*
|
|
533
534
|
* @private
|
|
534
535
|
*/
|
|
@@ -11,7 +11,7 @@ sap.ui.define([
|
|
|
11
11
|
], function (_Helper, escapeRegExp) {
|
|
12
12
|
"use strict";
|
|
13
13
|
|
|
14
|
-
var mAllowedChangeSetMethods = {
|
|
14
|
+
var mAllowedChangeSetMethods = {POST : true, PUT : true, PATCH : true, DELETE : true},
|
|
15
15
|
rContentIdReference = /^\$\d+/,
|
|
16
16
|
rHeaderParameter = /(\S*?)=(?:"(.+)"|(\S+))/;
|
|
17
17
|
|
|
@@ -34,7 +34,7 @@ sap.ui.define([
|
|
|
34
34
|
|
|
35
35
|
// escape RegExp-related characters
|
|
36
36
|
sBatchBoundary = escapeRegExp(sBatchBoundary);
|
|
37
|
-
return new RegExp(
|
|
37
|
+
return new RegExp("--" + sBatchBoundary + "(?:[ \t]*\r\n|--)");
|
|
38
38
|
}
|
|
39
39
|
|
|
40
40
|
/**
|
|
@@ -45,7 +45,8 @@ sap.ui.define([
|
|
|
45
45
|
* HTTP header value e.g. "application/json;charset=utf-8"
|
|
46
46
|
* @param {string} sParameterName
|
|
47
47
|
* Name of HTTP header parameter e.g. "charset"
|
|
48
|
-
* @returns {string} The HTTP header parameter value
|
|
48
|
+
* @returns {string|undefined} The HTTP header parameter value or <code>undefined</code> if the
|
|
49
|
+
* parameter is not found
|
|
49
50
|
*/
|
|
50
51
|
function getHeaderParameterValue(sHeaderValue, sParameterName) {
|
|
51
52
|
var iParamIndex,
|
|
@@ -69,11 +70,12 @@ sap.ui.define([
|
|
|
69
70
|
*
|
|
70
71
|
* @param {string} sMimeTypeHeaders
|
|
71
72
|
* Section of MIME part representing HTTP headers
|
|
72
|
-
* @returns {string} Content-Type header value e.g.
|
|
73
|
-
* "multipart/mixed; boundary=batch_id-0123456789012-345" or undefined
|
|
73
|
+
* @returns {string|undefined} Content-Type header value e.g.
|
|
74
|
+
* "multipart/mixed; boundary=batch_id-0123456789012-345" or <code>undefined</code>
|
|
74
75
|
*/
|
|
75
76
|
function getChangeSetContentType(sMimeTypeHeaders) {
|
|
76
77
|
var sContentType = getHeaderValue(sMimeTypeHeaders, "content-type");
|
|
78
|
+
|
|
77
79
|
return sContentType.startsWith("multipart/mixed;") ? sContentType : undefined;
|
|
78
80
|
}
|
|
79
81
|
|
|
@@ -112,7 +114,7 @@ sap.ui.define([
|
|
|
112
114
|
* Section of MIME part representing HTTP headers
|
|
113
115
|
* @param {string} sHeaderName
|
|
114
116
|
* Name of HTTP header in lower case
|
|
115
|
-
* @returns {string} The HTTP header value
|
|
117
|
+
* @returns {string|undefined} The HTTP header value or <code>undefined</code>
|
|
116
118
|
*/
|
|
117
119
|
function getHeaderValue(sHeaders, sHeaderName) {
|
|
118
120
|
var aHeaderParts,
|
|
@@ -179,14 +181,14 @@ sap.ui.define([
|
|
|
179
181
|
aHttpStatusInfos = aHttpHeaders[0].split(" ");
|
|
180
182
|
|
|
181
183
|
oResponse.status = parseInt(aHttpStatusInfos[1]);
|
|
182
|
-
oResponse.statusText = aHttpStatusInfos.slice(2).join(
|
|
184
|
+
oResponse.statusText = aHttpStatusInfos.slice(2).join(" ");
|
|
183
185
|
oResponse.headers = {};
|
|
184
186
|
|
|
185
187
|
// start with index 1 to skip status line
|
|
186
188
|
for (i = 1; i < aHttpHeaders.length; i += 1) {
|
|
187
189
|
// e.g. Content-Type: application/json;odata.metadata=minimal
|
|
188
190
|
sHeader = aHttpHeaders[i];
|
|
189
|
-
iColonIndex = sHeader.indexOf(
|
|
191
|
+
iColonIndex = sHeader.indexOf(":");
|
|
190
192
|
sHeaderName = sHeader.slice(0, iColonIndex).trim();
|
|
191
193
|
sHeaderValue = sHeader.slice(iColonIndex + 1).trim();
|
|
192
194
|
oResponse.headers[sHeaderName] = sHeaderValue;
|
|
@@ -276,14 +278,14 @@ sap.ui.define([
|
|
|
276
278
|
aRequestBody.push("--", sBatchBoundary, "\r\n");
|
|
277
279
|
if (Array.isArray(oRequest)) {
|
|
278
280
|
if (bIsChangeSet) {
|
|
279
|
-
throw new Error(
|
|
281
|
+
throw new Error("Change set must not contain a nested change set.");
|
|
280
282
|
}
|
|
281
283
|
aRequestBody = aRequestBody.concat(
|
|
282
284
|
_serializeBatchRequest(oRequest, iRequestIndex).body);
|
|
283
285
|
} else {
|
|
284
286
|
if (bIsChangeSet && !mAllowedChangeSetMethods[oRequest.method]) {
|
|
285
|
-
throw new Error("Invalid HTTP request method: " + oRequest.method
|
|
286
|
-
". Change set must contain only POST, PUT, PATCH, or DELETE requests.");
|
|
287
|
+
throw new Error("Invalid HTTP request method: " + oRequest.method
|
|
288
|
+
+ ". Change set must contain only POST, PUT, PATCH, or DELETE requests.");
|
|
287
289
|
}
|
|
288
290
|
|
|
289
291
|
if (iChangeSetIndex !== undefined && sUrl[0] === "$") {
|
|
@@ -305,7 +307,6 @@ sap.ui.define([
|
|
|
305
307
|
});
|
|
306
308
|
aRequestBody.push("--", sBatchBoundary, "--\r\n", sEpilogue);
|
|
307
309
|
|
|
308
|
-
|
|
309
310
|
return {body : aRequestBody, batchBoundary : sBatchBoundary};
|
|
310
311
|
}
|
|
311
312
|
|
|
@@ -331,14 +332,14 @@ sap.ui.define([
|
|
|
331
332
|
* </ul>
|
|
332
333
|
* If the specified <code>sResponseBody</code> contains responses for change sets, then
|
|
333
334
|
* the corresponding response objects will be returned in a nested array.
|
|
334
|
-
* @throws {Error}
|
|
335
|
+
* @throws {Error} If
|
|
335
336
|
* <ul>
|
|
336
|
-
* <li>
|
|
337
|
-
*
|
|
338
|
-
* <li>
|
|
339
|
-
*
|
|
340
|
-
* <li>
|
|
341
|
-
*
|
|
337
|
+
* <li> the <code>sContentType</code> parameter does not represent a "multipart/mixed"
|
|
338
|
+
* media type with "boundary" parameter
|
|
339
|
+
* <li> the "charset" parameter of the "Content-Type" header of a nested response has a
|
|
340
|
+
* value other than "UTF-8"
|
|
341
|
+
* <li> there is no "Content-ID" header for a change set response or its value is not a
|
|
342
|
+
* number
|
|
342
343
|
* </ul>
|
|
343
344
|
*/
|
|
344
345
|
deserializeBatchResponse : function (sContentType, sResponseBody) {
|
|
@@ -387,4 +388,4 @@ sap.ui.define([
|
|
|
387
388
|
};
|
|
388
389
|
}
|
|
389
390
|
};
|
|
390
|
-
}, /* bExport= */false);
|
|
391
|
+
}, /* bExport= */false);
|