@openui5/sap.ui.mdc 1.96.5 → 1.99.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/.reuse/dep5 +26 -31
- package/THIRDPARTY.txt +15 -21
- package/package.json +4 -4
- package/src/sap/ui/mdc/.library +1 -1
- package/src/sap/ui/mdc/ActionToolbar.js +7 -9
- package/src/sap/ui/mdc/AggregationBaseDelegate.js +2 -2
- package/src/sap/ui/mdc/BaseDelegate.js +1 -1
- package/src/sap/ui/mdc/Chart.js +1100 -1796
- package/src/sap/ui/mdc/ChartDelegate.js +429 -270
- package/src/sap/ui/mdc/ChartRenderer.js +73 -77
- package/src/sap/ui/mdc/Control.js +1 -1
- package/src/sap/ui/mdc/Element.js +1 -1
- package/src/sap/ui/mdc/Field.js +3 -2
- package/src/sap/ui/mdc/FilterBar.js +3 -2
- package/src/sap/ui/mdc/FilterField.js +25 -8
- package/src/sap/ui/mdc/Link.js +23 -4
- package/src/sap/ui/mdc/LinkDelegate.js +3 -3
- package/src/sap/ui/mdc/MultiValueField.js +21 -6
- package/src/sap/ui/mdc/Table.js +204 -161
- package/src/sap/ui/mdc/TableDelegate.js +47 -17
- package/src/sap/ui/mdc/ValueHelp.js +51 -15
- package/src/sap/ui/mdc/ValueHelpDelegate.js +20 -0
- package/src/sap/ui/mdc/actiontoolbar/ActionToolbarAction.js +2 -2
- package/src/sap/ui/mdc/{chartNew/ChartSelectionDetailsNew.js → chart/ChartSelectionDetails.js} +8 -8
- package/src/sap/ui/mdc/{chartNew/ChartToolbarNew.js → chart/ChartToolbar.js} +49 -13
- package/src/sap/ui/mdc/chart/ChartTypeButton.js +55 -54
- package/src/sap/ui/mdc/{chartNew/DrillBreadcrumbsNew.js → chart/DrillBreadcrumbs.js} +3 -3
- package/src/sap/ui/mdc/chart/DrillStackHandler.js +38 -249
- package/src/sap/ui/mdc/chart/Item.js +62 -92
- package/src/sap/ui/mdc/{chartNew/PropertyHelperNew.js → chart/PropertyHelper.js} +3 -3
- package/src/sap/ui/mdc/chart/SelectionDetailsActions.js +17 -21
- package/src/sap/ui/mdc/condition/Condition.js +1 -1
- package/src/sap/ui/mdc/condition/ConditionConverter.js +1 -1
- package/src/sap/ui/mdc/condition/ConditionModel.js +1 -1
- package/src/sap/ui/mdc/condition/FilterConverter.js +1 -1
- package/src/sap/ui/mdc/condition/FilterOperatorUtil.js +261 -44
- package/src/sap/ui/mdc/condition/Operator.js +9 -9
- package/src/sap/ui/mdc/condition/OperatorDynamicDateOption.js +437 -0
- package/src/sap/ui/mdc/condition/RangeOperator.js +1 -1
- package/src/sap/ui/mdc/designtime/chart/Chart.designtime.js +80 -5
- package/src/sap/ui/mdc/designtime/field/Field.designtime.js +97 -0
- package/src/sap/ui/mdc/designtime/field/FieldBase.designtime.js +104 -0
- package/src/sap/ui/mdc/designtime/field/FilterField.designtime.js +22 -0
- package/src/sap/ui/mdc/designtime/field/MultiValueField.designtime.js +23 -0
- package/src/sap/ui/mdc/designtime/filterbar/FilterBarBase.designtime.js +3 -0
- package/src/sap/ui/mdc/designtime/table/Table.designtime.js +60 -20
- package/src/sap/ui/mdc/field/BoolFieldHelp.js +1 -1
- package/src/sap/ui/mdc/field/ConditionFieldHelp.js +1 -1
- package/src/sap/ui/mdc/field/ConditionType.js +9 -9
- package/src/sap/ui/mdc/field/ConditionsType.js +7 -7
- package/src/sap/ui/mdc/field/CustomFieldHelp.js +1 -1
- package/src/sap/ui/mdc/field/CustomFieldInfo.js +1 -1
- package/src/sap/ui/mdc/field/DefineConditionPanel.js +75 -27
- package/src/sap/ui/mdc/field/DynamicDateRangeConditionsType.js +311 -0
- package/src/sap/ui/mdc/field/FieldBase.js +85 -52
- package/src/sap/ui/mdc/field/FieldBaseRenderer.js +0 -3
- package/src/sap/ui/mdc/field/FieldHelpBase.js +2 -2
- package/src/sap/ui/mdc/field/FieldInfoBase.js +23 -10
- package/src/sap/ui/mdc/field/FieldInput.js +1 -1
- package/src/sap/ui/mdc/field/FieldInputRenderUtil.js +1 -1
- package/src/sap/ui/mdc/field/FieldMultiInput.js +1 -1
- package/src/sap/ui/mdc/field/FieldValueHelp.js +7 -7
- package/src/sap/ui/mdc/field/FieldValueHelpContentWrapperBase.js +1 -1
- package/src/sap/ui/mdc/field/FieldValueHelpDelegate.js +20 -0
- package/src/sap/ui/mdc/field/FieldValueHelpMTableWrapper.js +1 -1
- package/src/sap/ui/mdc/field/FieldValueHelpMdcTableWrapper.js +2 -2
- package/src/sap/ui/mdc/field/FieldValueHelpTableWrapperBase.js +7 -3
- package/src/sap/ui/mdc/field/FieldValueHelpUITableWrapper.js +1 -1
- package/src/sap/ui/mdc/field/InParameter.js +1 -1
- package/src/sap/ui/mdc/field/ListFieldHelp.js +10 -2
- package/src/sap/ui/mdc/field/ListFieldHelpItem.js +1 -1
- package/src/sap/ui/mdc/field/MultiValueFieldItem.js +1 -1
- package/src/sap/ui/mdc/field/OutParameter.js +1 -1
- package/src/sap/ui/mdc/field/TokenDisplay.js +70 -0
- package/src/sap/ui/mdc/field/TokenDisplayRenderer.js +24 -0
- package/src/sap/ui/mdc/field/TokenizerDisplay.js +80 -0
- package/src/sap/ui/mdc/field/TokenizerDisplayRenderer.js +69 -0
- package/src/sap/ui/mdc/field/ValueHelpPanel.js +2 -1
- package/src/sap/ui/mdc/field/content/BooleanContent.js +1 -1
- package/src/sap/ui/mdc/field/content/ContentFactory.js +28 -26
- package/src/sap/ui/mdc/field/content/DateContent.js +128 -2
- package/src/sap/ui/mdc/field/content/DateTimeContent.js +9 -1
- package/src/sap/ui/mdc/field/content/DefaultContent.js +36 -14
- package/src/sap/ui/mdc/field/content/LinkContent.js +1 -1
- package/src/sap/ui/mdc/field/content/TimeContent.js +8 -1
- package/src/sap/ui/mdc/field/content/UnitContent.js +23 -4
- package/src/sap/ui/mdc/filterbar/FilterBarBase.js +359 -142
- package/src/sap/ui/mdc/filterbar/FilterBarBaseRenderer.js +1 -1
- package/src/sap/ui/mdc/filterbar/PropertyHelper.js +1 -1
- package/src/sap/ui/mdc/filterbar/p13n/AdaptationFilterBar.js +8 -2
- package/src/sap/ui/mdc/filterbar/vh/CollectiveSearchSelect.js +3 -1
- package/src/sap/ui/mdc/filterbar/vh/FilterBar.js +7 -1
- package/src/sap/ui/mdc/filterbar/vh/GenericFilterBarDelegate.js +6 -6
- package/src/sap/ui/mdc/flexibility/AggregateFlex.js +2 -2
- package/src/sap/ui/mdc/flexibility/Chart.flexibility.js +6 -4
- package/src/sap/ui/mdc/flexibility/ColumnFlex.js +1 -1
- package/src/sap/ui/mdc/flexibility/FilterBar.flexibility.js +4 -3
- package/src/sap/ui/mdc/flexibility/FilterItemFlex.js +1 -1
- package/src/sap/ui/mdc/flexibility/GroupFlex.js +1 -1
- package/src/sap/ui/mdc/flexibility/Panel.flexibility.js +9 -3
- package/src/sap/ui/mdc/flexibility/PropertyInfoFlex.js +110 -0
- package/src/sap/ui/mdc/flexibility/SortFlex.js +2 -2
- package/src/sap/ui/mdc/flp/FlpLinkDelegate.js +6 -6
- package/src/sap/ui/mdc/library.js +62 -43
- package/src/sap/ui/mdc/link/ContactDetails.js +1 -1
- package/src/sap/ui/mdc/link/ContactDetailsAddressItem.js +1 -1
- package/src/sap/ui/mdc/link/ContactDetailsEmailItem.js +1 -1
- package/src/sap/ui/mdc/link/ContactDetailsItem.js +1 -1
- package/src/sap/ui/mdc/link/ContactDetailsPhoneItem.js +1 -1
- package/src/sap/ui/mdc/link/Factory.js +2 -2
- package/src/sap/ui/mdc/link/FakeFlpConnector.js +1 -1
- package/src/sap/ui/mdc/link/LinkItem.js +1 -1
- package/src/sap/ui/mdc/link/Log.js +1 -1
- package/src/sap/ui/mdc/link/Panel.js +140 -177
- package/src/sap/ui/mdc/link/PanelItem.js +1 -1
- package/src/sap/ui/mdc/link/PanelListItem.js +1 -1
- package/src/sap/ui/mdc/link/SemanticObjectMapping.js +1 -1
- package/src/sap/ui/mdc/link/SemanticObjectMappingItem.js +1 -1
- package/src/sap/ui/mdc/link/SemanticObjectUnavailableAction.js +1 -1
- package/src/sap/ui/mdc/messagebundle.properties +68 -5
- package/src/sap/ui/mdc/messagebundle_ar.properties +47 -6
- package/src/sap/ui/mdc/messagebundle_bg.properties +61 -20
- package/src/sap/ui/mdc/messagebundle_ca.properties +45 -4
- package/src/sap/ui/mdc/messagebundle_cs.properties +60 -19
- package/src/sap/ui/mdc/messagebundle_cy.properties +45 -4
- package/src/sap/ui/mdc/messagebundle_da.properties +52 -11
- package/src/sap/ui/mdc/messagebundle_de.properties +45 -4
- package/src/sap/ui/mdc/messagebundle_el.properties +46 -5
- package/src/sap/ui/mdc/messagebundle_en.properties +45 -4
- package/src/sap/ui/mdc/messagebundle_en_GB.properties +45 -4
- package/src/sap/ui/mdc/messagebundle_en_US_sappsd.properties +51 -2
- package/src/sap/ui/mdc/messagebundle_en_US_saprigi.properties +45 -4
- package/src/sap/ui/mdc/messagebundle_en_US_saptrc.properties +51 -2
- package/src/sap/ui/mdc/messagebundle_es.properties +46 -5
- package/src/sap/ui/mdc/messagebundle_es_MX.properties +59 -18
- package/src/sap/ui/mdc/messagebundle_et.properties +45 -4
- package/src/sap/ui/mdc/messagebundle_fi.properties +51 -10
- package/src/sap/ui/mdc/messagebundle_fr.properties +50 -9
- package/src/sap/ui/mdc/messagebundle_fr_CA.properties +45 -4
- package/src/sap/ui/mdc/messagebundle_hi.properties +46 -5
- package/src/sap/ui/mdc/messagebundle_hr.properties +45 -4
- package/src/sap/ui/mdc/messagebundle_hu.properties +45 -4
- package/src/sap/ui/mdc/messagebundle_id.properties +45 -4
- package/src/sap/ui/mdc/messagebundle_it.properties +61 -20
- package/src/sap/ui/mdc/messagebundle_iw.properties +46 -5
- package/src/sap/ui/mdc/messagebundle_ja.properties +46 -5
- package/src/sap/ui/mdc/messagebundle_kk.properties +45 -4
- package/src/sap/ui/mdc/messagebundle_ko.properties +46 -5
- package/src/sap/ui/mdc/messagebundle_lt.properties +45 -4
- package/src/sap/ui/mdc/messagebundle_lv.properties +49 -8
- package/src/sap/ui/mdc/messagebundle_ms.properties +45 -4
- package/src/sap/ui/mdc/messagebundle_nl.properties +49 -8
- package/src/sap/ui/mdc/messagebundle_no.properties +53 -12
- package/src/sap/ui/mdc/messagebundle_pl.properties +46 -5
- package/src/sap/ui/mdc/messagebundle_pt.properties +52 -11
- package/src/sap/ui/mdc/messagebundle_pt_PT.properties +45 -4
- package/src/sap/ui/mdc/messagebundle_ro.properties +45 -4
- package/src/sap/ui/mdc/messagebundle_ru.properties +45 -4
- package/src/sap/ui/mdc/messagebundle_sh.properties +45 -4
- package/src/sap/ui/mdc/messagebundle_sk.properties +45 -4
- package/src/sap/ui/mdc/messagebundle_sl.properties +45 -4
- package/src/sap/ui/mdc/messagebundle_sv.properties +47 -6
- package/src/sap/ui/mdc/messagebundle_th.properties +48 -7
- package/src/sap/ui/mdc/messagebundle_tr.properties +45 -4
- package/src/sap/ui/mdc/messagebundle_uk.properties +49 -8
- package/src/sap/ui/mdc/messagebundle_vi.properties +45 -4
- package/src/sap/ui/mdc/messagebundle_zh_CN.properties +46 -5
- package/src/sap/ui/mdc/messagebundle_zh_TW.properties +45 -4
- package/src/sap/ui/mdc/mixin/AdaptationMixin.js +19 -5
- package/src/sap/ui/mdc/mixin/DelegateMixin.js +2 -2
- package/src/sap/ui/mdc/mixin/FilterIntegrationMixin.js +16 -11
- package/src/sap/ui/mdc/mixin/PromiseMixin.js +2 -3
- package/src/sap/ui/mdc/odata/TypeUtil.js +1 -1
- package/src/sap/ui/mdc/odata/v4/ChartDelegate.js +29 -483
- package/src/sap/ui/mdc/odata/v4/{ChartPropertyHelperNew.js → ChartPropertyHelper.js} +5 -5
- package/src/sap/ui/mdc/odata/v4/TableDelegate.js +160 -116
- package/src/sap/ui/mdc/odata/v4/TypeUtil.js +1 -1
- package/src/sap/ui/mdc/odata/v4/ValueHelpDelegate.js +1 -1
- package/src/sap/ui/mdc/odata/v4/util/DelegateUtil.js +1 -1
- package/src/sap/ui/mdc/odata/v4/vizChart/{ChartDelegateNew.js → ChartDelegate.js} +215 -116
- package/src/sap/ui/mdc/p13n/Engine.js +61 -20
- package/src/sap/ui/mdc/p13n/FlexUtil.js +11 -118
- package/src/sap/ui/mdc/p13n/P13nBuilder.js +8 -8
- package/src/sap/ui/mdc/p13n/PersistenceProvider.js +21 -10
- package/src/sap/ui/mdc/p13n/PropertyHelper.js +1 -1
- package/src/sap/ui/mdc/p13n/StateUtil.js +40 -6
- package/src/sap/ui/mdc/p13n/UIManager.js +15 -12
- package/src/sap/ui/mdc/p13n/modification/FlexModificationHandler.js +4 -1
- package/src/sap/ui/mdc/p13n/modification/ModificationHandler.js +9 -6
- package/src/sap/ui/mdc/p13n/{DefaultProviderRegistry.js → modules/DefaultProviderRegistry.js} +2 -2
- package/src/sap/ui/mdc/p13n/modules/StateHandlerRegistry.js +86 -0
- package/src/sap/ui/mdc/p13n/panels/AdaptFiltersPanel.js +19 -3
- package/src/sap/ui/mdc/p13n/panels/ChartItemPanel.js +1092 -48
- package/src/sap/ui/mdc/p13n/panels/LinkSelectionPanel.js +72 -0
- package/src/sap/ui/mdc/p13n/panels/ListView.js +6 -2
- package/src/sap/ui/mdc/p13n/subcontroller/AdaptFiltersController.js +6 -5
- package/src/sap/ui/mdc/p13n/subcontroller/AggregateController.js +1 -1
- package/src/sap/ui/mdc/p13n/subcontroller/BaseController.js +156 -11
- package/src/sap/ui/mdc/p13n/subcontroller/ChartItemController.js +15 -26
- package/src/sap/ui/mdc/p13n/subcontroller/ColumnController.js +6 -5
- package/src/sap/ui/mdc/p13n/subcontroller/FilterController.js +14 -7
- package/src/sap/ui/mdc/p13n/subcontroller/LinkPanelController.js +173 -0
- package/src/sap/ui/mdc/p13n/subcontroller/SortController.js +10 -17
- package/src/sap/ui/mdc/table/Column.js +35 -10
- package/src/sap/ui/mdc/table/CreationRow.js +14 -13
- package/src/sap/ui/mdc/table/GridTableType.js +13 -13
- package/src/sap/ui/mdc/table/PropertyHelper.js +64 -27
- package/src/sap/ui/mdc/table/ResponsiveTableType.js +26 -29
- package/src/sap/ui/mdc/table/RowSettings.js +7 -5
- package/src/sap/ui/mdc/table/TableTypeBase.js +6 -6
- package/src/sap/ui/mdc/table/V4AnalyticsPropertyHelper.js +15 -71
- package/src/sap/ui/mdc/themes/base/Chart.less +3 -0
- package/src/sap/ui/mdc/themes/base/FieldBase.less +0 -5
- package/src/sap/ui/mdc/themes/base/TokenDisplay.less +89 -0
- package/src/sap/ui/mdc/themes/base/TokenizerDisplay.less +90 -0
- package/src/sap/ui/mdc/themes/base/ValueHelpDialog.less +15 -4
- package/src/sap/ui/mdc/themes/base/library.source.less +3 -0
- package/src/sap/ui/mdc/ui/Container.js +2 -2
- package/src/sap/ui/mdc/ui/ContainerItem.js +2 -2
- package/src/sap/ui/mdc/util/Common.js +1 -1
- package/src/sap/ui/mdc/util/DateUtil.js +1 -1
- package/src/sap/ui/mdc/util/FilterUtil.js +1 -1
- package/src/sap/ui/mdc/util/FormatUtil.js +3 -3
- package/src/sap/ui/mdc/util/IdentifierUtil.js +6 -6
- package/src/sap/ui/mdc/util/PromiseCache.js +1 -1
- package/src/sap/ui/mdc/util/PropertyHelper.js +148 -325
- package/src/sap/ui/mdc/util/TypeUtil.js +5 -4
- package/src/sap/ui/mdc/valuehelp/Dialog.js +12 -8
- package/src/sap/ui/mdc/valuehelp/Popover.js +14 -2
- package/src/sap/ui/mdc/valuehelp/base/Container.js +33 -1
- package/src/sap/ui/mdc/valuehelp/base/Content.js +36 -5
- package/src/sap/ui/mdc/valuehelp/base/DialogTab.js +2 -1
- package/src/sap/ui/mdc/valuehelp/base/FilterableListContent.js +43 -15
- package/src/sap/ui/mdc/valuehelp/base/ListContent.js +2 -1
- package/src/sap/ui/mdc/valuehelp/content/Bool.js +2 -1
- package/src/sap/ui/mdc/valuehelp/content/Conditions.js +28 -32
- package/src/sap/ui/mdc/valuehelp/content/FixedList.js +11 -5
- package/src/sap/ui/mdc/valuehelp/content/MDCTable.js +50 -10
- package/src/sap/ui/mdc/valuehelp/content/MTable.js +57 -26
- package/test/sap/ui/mdc/testutils/opa/TestLibrary.js +3 -1
- package/test/sap/ui/mdc/testutils/opa/actions/OpenContextMenu.js +3 -3
- package/test/sap/ui/mdc/testutils/opa/{chartNew → chart}/ActionsBase.js +3 -3
- package/test/sap/ui/mdc/testutils/opa/{chartNew → chart}/ActionsViz.js +0 -0
- package/test/sap/ui/mdc/testutils/opa/{chartNew → chart}/AssertionsBase.js +1 -1
- package/test/sap/ui/mdc/testutils/opa/{chartNew → chart}/AssertionsViz.js +0 -0
- package/test/sap/ui/mdc/testutils/opa/{chartNew → chart}/ChartNew.js +0 -0
- package/test/sap/ui/mdc/testutils/opa/chart/TestObjects.js +289 -0
- package/test/sap/ui/mdc/testutils/opa/chartNew/TestObjects.js +7 -7
- package/test/sap/ui/mdc/testutils/opa/filterbar/TestObjects.js +9 -9
- package/test/sap/ui/mdc/testutils/opa/filterbar/Util.js +12 -11
- package/test/sap/ui/mdc/testutils/opa/link/Actions.js +85 -0
- package/test/sap/ui/mdc/testutils/opa/link/Assertions.js +79 -0
- package/test/sap/ui/mdc/testutils/opa/link/TestObjects.js +112 -0
- package/test/sap/ui/mdc/testutils/opa/link/waitForLink.js +50 -0
- package/test/sap/ui/mdc/testutils/opa/p13n/Actions.js +362 -233
- package/test/sap/ui/mdc/testutils/opa/p13n/Util.js +27 -26
- package/test/sap/ui/mdc/testutils/opa/valueHelp/Actions.js +54 -0
- package/test/sap/ui/mdc/testutils/opa/valueHelp/Assertions.js +5 -0
- package/test/sap/ui/mdc/testutils/opa/valueHelp/TestObjects.js +40 -0
- package/test/sap/ui/mdc/testutils/opa/valueHelp/Util.js +28 -0
- package/src/sap/ui/mdc/ChartDelegateNew.js +0 -395
- package/src/sap/ui/mdc/ChartNew.js +0 -1114
- package/src/sap/ui/mdc/ChartNewRenderer.js +0 -91
- package/src/sap/ui/mdc/chart/DimensionItem.js +0 -281
- package/src/sap/ui/mdc/chart/MeasureItem.js +0 -318
- package/src/sap/ui/mdc/chart/MetadataDelegate.js +0 -31
- package/src/sap/ui/mdc/chart/SelectionHandler.js +0 -127
- package/src/sap/ui/mdc/chart/ToolbarHandler.js +0 -328
- package/src/sap/ui/mdc/chartNew/ChartTypeButtonNew.js +0 -295
- package/src/sap/ui/mdc/chartNew/DrillStackHandlerNew.js +0 -212
- package/src/sap/ui/mdc/chartNew/ItemNew.js +0 -72
- package/src/sap/ui/mdc/chartNew/SelectionDetailsActionsNew.js +0 -34
- package/src/sap/ui/mdc/designtime/chart/ChartNew.designtime.js +0 -91
- package/src/sap/ui/mdc/link/SelectionDialog.control.xml +0 -66
- package/src/sap/ui/mdc/link/SelectionDialog.js +0 -213
- package/src/sap/ui/mdc/link/SelectionDialogItem.js +0 -86
- package/src/sap/ui/mdc/odata/v4/ChartDelegateNew.js +0 -35
- package/src/sap/ui/mdc/p13n/panels/ChartItemPanelNew.js +0 -1171
- package/src/sap/ui/mdc/p13n/panels/GroupPanel.js +0 -111
- package/src/sap/ui/mdc/p13n/panels/QueryPanel.js +0 -322
- package/src/sap/ui/mdc/p13n/panels/SortQueryPanel.js +0 -133
- package/src/sap/ui/mdc/p13n/panels/Wrapper.js +0 -203
|
@@ -0,0 +1,311 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* OpenUI5
|
|
3
|
+
* (c) Copyright 2009-2022 SAP SE or an SAP affiliate company.
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
// Provides the base implementation for all model implementations
|
|
8
|
+
sap.ui.define([
|
|
9
|
+
'sap/ui/mdc/field/ConditionsType',
|
|
10
|
+
'sap/ui/mdc/condition/FilterOperatorUtil',
|
|
11
|
+
'sap/ui/mdc/condition/Operator',
|
|
12
|
+
'sap/ui/mdc/condition/Condition',
|
|
13
|
+
'sap/ui/mdc/enum/ConditionValidated',
|
|
14
|
+
'sap/ui/mdc/enum/BaseType',
|
|
15
|
+
"sap/ui/mdc/util/DateUtil",
|
|
16
|
+
'sap/ui/model/SimpleType',
|
|
17
|
+
'sap/ui/model/FormatException',
|
|
18
|
+
'sap/ui/model/ParseException',
|
|
19
|
+
'sap/ui/model/ValidateException',
|
|
20
|
+
'sap/m/DynamicDate',
|
|
21
|
+
'sap/m/library'
|
|
22
|
+
],
|
|
23
|
+
function(
|
|
24
|
+
ConditionsType,
|
|
25
|
+
FilterOperatorUtil,
|
|
26
|
+
Operator,
|
|
27
|
+
Condition,
|
|
28
|
+
ConditionValidated,
|
|
29
|
+
BaseType,
|
|
30
|
+
DateUtil,
|
|
31
|
+
SimpleType,
|
|
32
|
+
FormatException,
|
|
33
|
+
ParseException,
|
|
34
|
+
ValidateException,
|
|
35
|
+
DynamicDateType,
|
|
36
|
+
mLibrary
|
|
37
|
+
) {
|
|
38
|
+
"use strict";
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Constructor for a <code>ConditionsType</code> to be used in <code>DynamicDateRange</code> control.
|
|
42
|
+
*
|
|
43
|
+
* @class
|
|
44
|
+
* This class represents a type to map an array of conditions used in a {@link sap.ui.mdc.FilterField FilterField} control to a value of a {@link sap.m.DynamicDateRange DynamicDateRange} control.
|
|
45
|
+
*
|
|
46
|
+
* @extends sap.ui.mdc.field.ConditionsType
|
|
47
|
+
*
|
|
48
|
+
* @author SAP SE
|
|
49
|
+
* @version 1.99.0
|
|
50
|
+
*
|
|
51
|
+
* @since 1.96.0
|
|
52
|
+
* @private
|
|
53
|
+
* @ui5-restricted sap.ui.mdc.field.FieldBase, sap.fe
|
|
54
|
+
* @MDC_PUBLIC_CANDIDATE
|
|
55
|
+
*
|
|
56
|
+
* @param {object} [oFormatOptions] Formatting options
|
|
57
|
+
* @param {sap.ui.model.Type} [oFormatOptions.valueType] Type of the value of the condition (used for formatting and parsing)
|
|
58
|
+
* @param {string[]} [oFormatOptions.operators] Possible operators to be used in the condition
|
|
59
|
+
* @param {sap.ui.mdc.enum.FieldDisplay} [oFormatOptions.display] DisplayFormat used to visualize a value
|
|
60
|
+
* @param {string} [oFormatOptions.fieldHelpID] ID of the field help to determine the key and description // TODO: async request????
|
|
61
|
+
* @param {boolean} [oFormatOptions.hideOperator] If set, only the value of the condition is shown, but no operator //TODO
|
|
62
|
+
* @param {int} [oFormatOptions.maxConditions] Maximum number of allowed conditions
|
|
63
|
+
* @param {sap.ui.model.Context} [oFormatOptions.bindingContext] <code>BindingContext</code> of field. Used to get a key or description from the value help using in/out parameters. (In a table, the value help might be connected to a different row)
|
|
64
|
+
* @param {sap.ui.model.Type} [oFormatOptions.originalDateType] Type used on field, for example, for date types; a different type is used internally to have different <code>formatOptions</code>
|
|
65
|
+
* @param {boolean} [oFormatOptions.isUnit] If set, the type is used for the unit part of a field
|
|
66
|
+
* @param {function} [oFormatOptions.getConditions] Function to get the existing conditions of the field. Only used if <code>isUnit</code> is set. TODO: better solution
|
|
67
|
+
* @param {function} [oFormatOptions.asyncParsing] Callback function to tell the <code>Field</code> the parsing is asynchronous.
|
|
68
|
+
* @param {object} [oFormatOptions.navigateCondition] Condition of keyboard navigation. If this is filled, no real parsing is needed as the condition has already been determined and is just returned
|
|
69
|
+
* @param {object} [oFormatOptions.delegate] Field delegate to handle model-specific logic
|
|
70
|
+
* @param {object} [oFormatOptions.payload] Payload of the delegate
|
|
71
|
+
* @param {boolean} [oFormatOptions.preventGetDescription] If set, description is not read by <code>formatValue</code> as it is known that no description exists or might be set later
|
|
72
|
+
* @param {sap.ui.mdc.condition.ConditionModel} [oFormatOptions.conditionModel] <code>ConditionModel</code>, if bound to one
|
|
73
|
+
* @param {string} [oFormatOptions.conditionModelName] Name of the <code>ConditionModel</code>, if bound to one
|
|
74
|
+
* @param {string} [oFormatOptions.defaultOperatorName] Name of the default <code>Operator</code>
|
|
75
|
+
* @param {object} [oConstraints] Value constraints
|
|
76
|
+
* @alias sap.ui.mdc.field.DynamicDateRangeConditionsType
|
|
77
|
+
*/
|
|
78
|
+
var DynamicDateRangeConditionsType = ConditionsType.extend("sap.ui.mdc.field.DynamicDateRangeConditionsType", /** @lends sap.ui.mdc.field.DynamicDateRangeConditionsType.prototype */ {
|
|
79
|
+
|
|
80
|
+
constructor : function (oFormatOptions, oConstraints) {
|
|
81
|
+
SimpleType.apply(this, arguments);
|
|
82
|
+
this.sName = "ConditionsDateRange";
|
|
83
|
+
this._oResourceBundle = sap.ui.getCore().getLibraryResourceBundle("sap.ui.mdc");
|
|
84
|
+
//TODO: specialConditionDataRangeType if used for tokens in MultiValue FilterField
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
});
|
|
88
|
+
|
|
89
|
+
DynamicDateRangeConditionsType.prototype.destroy = function() {
|
|
90
|
+
|
|
91
|
+
SimpleType.prototype.destroy.apply(this, arguments);
|
|
92
|
+
|
|
93
|
+
this._bDestroyed = true;
|
|
94
|
+
|
|
95
|
+
};
|
|
96
|
+
|
|
97
|
+
DynamicDateRangeConditionsType.prototype.formatValue = function(aConditions, sInternalType) {
|
|
98
|
+
|
|
99
|
+
if (aConditions == undefined || aConditions == null || this._bDestroyed) { // if destroyed do nothing
|
|
100
|
+
return null;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
if (!Array.isArray(aConditions)) {
|
|
104
|
+
throw new FormatException("No valid conditions provided");
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
var iMaxConditions = _getMaxConditions.call(this);
|
|
108
|
+
var vResult;
|
|
109
|
+
|
|
110
|
+
if (iMaxConditions !== 1) {
|
|
111
|
+
throw new FormatException("MaxConditions must be 1");
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
if (aConditions.length === 1) {
|
|
115
|
+
var oCondition = aConditions[0];
|
|
116
|
+
|
|
117
|
+
var oOperator = FilterOperatorUtil.getOperator(oCondition.operator);
|
|
118
|
+
if (!oCondition.operator || !oOperator) {
|
|
119
|
+
throw new FormatException("No valid condition provided, Operator wrong.");
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
var aValues = [];
|
|
123
|
+
var sOption = oOperator.name;
|
|
124
|
+
if (!mLibrary.StandardDynamicDateRangeKeys[sOption]) {
|
|
125
|
+
sOption = oOperator.alias || sOption;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
for (var i = 0; i < oOperator.valueTypes.length; i++) {
|
|
129
|
+
if (mLibrary.StandardDynamicDateRangeKeys[sOption] && oOperator.valueTypes[i] === Operator.ValueType.Self) { // only for standard operators
|
|
130
|
+
aValues.push(_dateToTimestamp.call(this, oCondition.values[i]));
|
|
131
|
+
} else if (oOperator.valueTypes[i] && oOperator.valueTypes[i] !== Operator.ValueType.Static) {
|
|
132
|
+
aValues.push(oCondition.values[i]);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
var oDynamicDateType = _getDynamicDateType.call(this, oOperator);
|
|
137
|
+
vResult = oDynamicDateType.formatValue({operator: sOption, values: aValues}, sInternalType);
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
return vResult;
|
|
141
|
+
|
|
142
|
+
};
|
|
143
|
+
|
|
144
|
+
function _getDynamicDateType(oOperator) {
|
|
145
|
+
|
|
146
|
+
if (!this._oDynamicDateType) {
|
|
147
|
+
var oDynamicDateFormatOptions = {
|
|
148
|
+
date: {
|
|
149
|
+
source: {pattern: "timestamp"}
|
|
150
|
+
},
|
|
151
|
+
"int": {}
|
|
152
|
+
};
|
|
153
|
+
|
|
154
|
+
this._oDynamicDateType = new DynamicDateType(oDynamicDateFormatOptions);
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
return this._oDynamicDateType;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
function _dateToTimestamp(vValue) {
|
|
161
|
+
|
|
162
|
+
var oType = _getInternalType.call(this);
|
|
163
|
+
var sDate = oType.formatValue(vValue, "string");
|
|
164
|
+
var aDate = sDate.split("-");
|
|
165
|
+
var iYear = parseInt(aDate[0]);
|
|
166
|
+
var iMonth = parseInt(aDate[1]) - 1;
|
|
167
|
+
var iDate = parseInt(aDate[2]);
|
|
168
|
+
var iTimeStamp = new Date(iYear, iMonth, iDate).getTime();
|
|
169
|
+
|
|
170
|
+
return iTimeStamp;
|
|
171
|
+
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
function _timestampToDate(iTimeStamp) {
|
|
175
|
+
|
|
176
|
+
var oType = _getInternalType.call(this);
|
|
177
|
+
var oDate = new Date(iTimeStamp);
|
|
178
|
+
var iYear = oDate.getFullYear();
|
|
179
|
+
var iMonth = oDate.getMonth() + 1;
|
|
180
|
+
var iDate = oDate.getDate();
|
|
181
|
+
var sDate = iYear.toString() + "-" + ((iMonth < 10) ? "0" : "") + iMonth.toString() + "-" + ((iDate < 10) ? "0" : "") + iDate.toString();
|
|
182
|
+
var vDate = oType.parseValue(sDate, "string");
|
|
183
|
+
|
|
184
|
+
return vDate;
|
|
185
|
+
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
function _getInternalType() {
|
|
189
|
+
|
|
190
|
+
if (!this._oInternalType) {
|
|
191
|
+
var oType = _getValueType.call(this);
|
|
192
|
+
this._oInternalType = DateUtil.createInternalType(oType, "yyyy-MM-dd");
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
return this._oInternalType;
|
|
196
|
+
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
DynamicDateRangeConditionsType.prototype.parseValue = function(oValue, sInternalType) {
|
|
200
|
+
|
|
201
|
+
if (this._bDestroyed) { // if destroyed do nothing
|
|
202
|
+
return null;
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
if (_getMaxConditions.call(this) !== 1) {
|
|
206
|
+
throw new ParseException("Only one condition supported for parsing");
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
var aOperators = _getOperators.call(this);
|
|
210
|
+
var aConditions = [];
|
|
211
|
+
if (oValue && oValue.operator) {
|
|
212
|
+
if (oValue.operator === "PARSEERROR") {
|
|
213
|
+
throw new ParseException(oValue.values[0]);
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
var sOperator = oValue.operator; // sOperator is the Option name
|
|
217
|
+
var oOperator = FilterOperatorUtil.getOperator(sOperator); // getOperator will search via name and alias
|
|
218
|
+
sOperator = oOperator.name; // map it back to the real Operator name
|
|
219
|
+
|
|
220
|
+
if (oOperator) {
|
|
221
|
+
var oDynamicDateType = _getDynamicDateType.call(this, oOperator);
|
|
222
|
+
var vResult = oDynamicDateType.parseValue(oValue, sInternalType);
|
|
223
|
+
var aValues = [];
|
|
224
|
+
|
|
225
|
+
for (var i = 0; i < oOperator.valueTypes.length; i++) {
|
|
226
|
+
if (mLibrary.StandardDynamicDateRangeKeys[oValue.operator] && oOperator.valueTypes[i] === Operator.ValueType.Self) { // only for standard operators
|
|
227
|
+
aValues.push(_timestampToDate.call(this, vResult.values[i]));
|
|
228
|
+
} else if (oOperator.valueTypes[i] && oOperator.valueTypes[i] !== Operator.ValueType.Static) {
|
|
229
|
+
aValues.push(vResult.values[i]);
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
var oCondition = Condition.createCondition(oOperator.name, aValues, undefined, undefined, ConditionValidated.NotValidated);
|
|
234
|
+
FilterOperatorUtil.updateConditionValues(oCondition);
|
|
235
|
+
FilterOperatorUtil.checkConditionsEmpty(oCondition, aOperators);
|
|
236
|
+
aConditions.push(oCondition);
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
return aConditions;
|
|
241
|
+
|
|
242
|
+
};
|
|
243
|
+
|
|
244
|
+
DynamicDateRangeConditionsType.prototype.validateValue = function(aConditions) {
|
|
245
|
+
|
|
246
|
+
if (aConditions === undefined || aConditions === null || this._bDestroyed) { // if destroyed do nothing
|
|
247
|
+
return;
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
if (!Array.isArray(aConditions)) {
|
|
251
|
+
throw new ValidateException("No valid conditions provided");
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
var oType = _getValueType.call(this);
|
|
255
|
+
var aOperators = _getOperators.call(this);
|
|
256
|
+
|
|
257
|
+
for (var i = 0; i < aConditions.length; i++) {
|
|
258
|
+
var oCondition = aConditions[i];
|
|
259
|
+
if (typeof oCondition !== "object" || !oCondition.operator || !oCondition.values ||
|
|
260
|
+
!Array.isArray(oCondition.values)) {
|
|
261
|
+
throw new ValidateException(this._oResourceBundle.getText("field.VALUE_NOT_VALID"));
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
var oOperator = FilterOperatorUtil.getOperator(oCondition.operator, aOperators);
|
|
265
|
+
|
|
266
|
+
if (!oOperator) {
|
|
267
|
+
throw new ValidateException("No valid condition provided, Operator wrong.");
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
oOperator.validate(oCondition.values, oType);
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
};
|
|
274
|
+
|
|
275
|
+
function _getMaxConditions() {
|
|
276
|
+
|
|
277
|
+
var iMaxConditions = 1;
|
|
278
|
+
|
|
279
|
+
if (this.oFormatOptions.hasOwnProperty("maxConditions")) {
|
|
280
|
+
iMaxConditions = this.oFormatOptions.maxConditions;
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
return iMaxConditions;
|
|
284
|
+
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
function _getValueType() {
|
|
288
|
+
|
|
289
|
+
var oType = this.oFormatOptions.valueType;
|
|
290
|
+
if (!oType) {
|
|
291
|
+
throw new Error("Type missing");
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
return oType;
|
|
295
|
+
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
function _getOperators() {
|
|
299
|
+
|
|
300
|
+
var aOperators = this.oFormatOptions.operators;
|
|
301
|
+
if (!aOperators || aOperators.length === 0) {
|
|
302
|
+
aOperators = FilterOperatorUtil.getOperatorsForType(BaseType.Date); // TODO: check for type
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
return aOperators;
|
|
306
|
+
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
return DynamicDateRangeConditionsType;
|
|
310
|
+
|
|
311
|
+
});
|
|
@@ -86,7 +86,7 @@ sap.ui.define([
|
|
|
86
86
|
* @implements sap.ui.core.IFormContent, sap.ui.core.ISemanticFormContent
|
|
87
87
|
*
|
|
88
88
|
* @author SAP SE
|
|
89
|
-
* @version 1.
|
|
89
|
+
* @version 1.99.0
|
|
90
90
|
*
|
|
91
91
|
* @constructor
|
|
92
92
|
* @alias sap.ui.mdc.field.FieldBase
|
|
@@ -100,6 +100,7 @@ sap.ui.define([
|
|
|
100
100
|
var FieldBase = Control.extend("sap.ui.mdc.field.FieldBase", /* @lends sap.ui.mdc.field.FieldBase.prototype */ {
|
|
101
101
|
metadata: {
|
|
102
102
|
interfaces: ["sap.ui.core.IFormContent", "sap.ui.core.ISemanticFormContent"],
|
|
103
|
+
designtime: "sap/ui/mdc/designtime/field/FieldBase.designtime",
|
|
103
104
|
library: "sap.ui.mdc",
|
|
104
105
|
properties: {
|
|
105
106
|
/**
|
|
@@ -226,6 +227,8 @@ sap.ui.define([
|
|
|
226
227
|
*
|
|
227
228
|
* This property only affects types that support multiple lines.
|
|
228
229
|
*
|
|
230
|
+
* This property is only used for single-value fields.
|
|
231
|
+
*
|
|
229
232
|
* <b>Note</b> If the data type used doesn't support multiple lines an error is thrown.
|
|
230
233
|
*/
|
|
231
234
|
multipleLines: {
|
|
@@ -658,15 +661,21 @@ sap.ui.define([
|
|
|
658
661
|
return this;
|
|
659
662
|
};
|
|
660
663
|
|
|
661
|
-
FieldBase.prototype.setProperty = function(sPropertyName,
|
|
664
|
+
FieldBase.prototype.setProperty = function(sPropertyName, vValue, bSuppressInvalidate) {
|
|
662
665
|
|
|
663
666
|
// most properties are rendered from content controls. Only invalidate whole Field if needed
|
|
664
|
-
// (multipleLines mostly changed together with editMode -> update once
|
|
665
|
-
if (sPropertyName
|
|
667
|
+
// (multipleLines mostly changed together with editMode -> update once on rendering)
|
|
668
|
+
if (sPropertyName === "editMode") {
|
|
669
|
+
// only invalidate if switched between edit and display, not for redonly or disabled
|
|
670
|
+
var sOld = this.getEditMode();
|
|
671
|
+
if (sOld !== EditMode.Display && sOld !== EditMode.EditableDisplay && vValue !== EditMode.Display && vValue !== EditMode.EditableDisplay) {
|
|
672
|
+
bSuppressInvalidate = true;
|
|
673
|
+
}
|
|
674
|
+
} else if (sPropertyName !== "width" && sPropertyName !== "multipleLines" && sPropertyName !== "showEmptyIndicator") {
|
|
666
675
|
bSuppressInvalidate = true;
|
|
667
676
|
}
|
|
668
677
|
|
|
669
|
-
return Control.prototype.setProperty.apply(this, [sPropertyName,
|
|
678
|
+
return Control.prototype.setProperty.apply(this, [sPropertyName, vValue, bSuppressInvalidate]);
|
|
670
679
|
|
|
671
680
|
};
|
|
672
681
|
|
|
@@ -725,30 +734,34 @@ sap.ui.define([
|
|
|
725
734
|
|
|
726
735
|
FieldBase.prototype.onsapup = function(oEvent) {
|
|
727
736
|
|
|
728
|
-
|
|
729
|
-
|
|
737
|
+
if (this.getEditMode() === EditMode.Editable) {
|
|
738
|
+
var oFieldHelp = _getFieldHelp.call(this);
|
|
739
|
+
var oSource = oEvent.srcControl;
|
|
730
740
|
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
741
|
+
if (oFieldHelp && (!oFieldHelp.valueHelpEnabled || oFieldHelp.valueHelpEnabled() || oFieldHelp.isOpen()) && (!this._oContentFactory.isMeasure() || oSource.getShowValueHelp())) {
|
|
742
|
+
// if only type-ahead but no real value help, only navigate if open TODO: remove function check
|
|
743
|
+
oEvent.preventDefault();
|
|
744
|
+
oEvent.stopPropagation();
|
|
745
|
+
oFieldHelp.setFilterValue(this._sFilterValue); // to be sure to filter for typed value
|
|
746
|
+
oFieldHelp.navigate(-1);
|
|
747
|
+
}
|
|
737
748
|
}
|
|
738
749
|
|
|
739
750
|
};
|
|
740
751
|
|
|
741
752
|
FieldBase.prototype.onsapdown = function(oEvent) {
|
|
742
753
|
|
|
743
|
-
|
|
744
|
-
|
|
754
|
+
if (this.getEditMode() === EditMode.Editable) {
|
|
755
|
+
var oFieldHelp = _getFieldHelp.call(this);
|
|
756
|
+
var oSource = oEvent.srcControl;
|
|
745
757
|
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
758
|
+
if (oFieldHelp && (!oFieldHelp.valueHelpEnabled || oFieldHelp.valueHelpEnabled() || oFieldHelp.isOpen()) && (!this._oContentFactory.isMeasure() || oSource.getShowValueHelp())) {
|
|
759
|
+
// if only type-ahead but no real value help, only navigate if open TODO: remove function check
|
|
760
|
+
oEvent.preventDefault();
|
|
761
|
+
oEvent.stopPropagation();
|
|
762
|
+
oFieldHelp.setFilterValue(this._sFilterValue); // to be sure to filter for typed value
|
|
763
|
+
oFieldHelp.navigate(1);
|
|
764
|
+
}
|
|
752
765
|
}
|
|
753
766
|
|
|
754
767
|
};
|
|
@@ -1044,12 +1057,6 @@ sap.ui.define([
|
|
|
1044
1057
|
*/
|
|
1045
1058
|
FieldBase.prototype._observeChanges = function(oChanges) {
|
|
1046
1059
|
|
|
1047
|
-
var fnUpdateInternalContent = function() {
|
|
1048
|
-
if (this.getAggregation("_content", []).length > 0) {
|
|
1049
|
-
_createInternalContentWrapper.call(this);
|
|
1050
|
-
}
|
|
1051
|
-
};
|
|
1052
|
-
|
|
1053
1060
|
if (oChanges.name === "dataType") {
|
|
1054
1061
|
// check only if different type (in Field type might be already taken from binding)
|
|
1055
1062
|
if (this._oContentFactory.getDataType()) {
|
|
@@ -1081,8 +1088,7 @@ sap.ui.define([
|
|
|
1081
1088
|
}
|
|
1082
1089
|
|
|
1083
1090
|
if (oChanges.name === "maxConditions") {
|
|
1084
|
-
|
|
1085
|
-
this._oContentFactory.updateConditionType();
|
|
1091
|
+
this._updateInternalContent();
|
|
1086
1092
|
}
|
|
1087
1093
|
|
|
1088
1094
|
if (oChanges.name === "conditions") {
|
|
@@ -1111,7 +1117,7 @@ sap.ui.define([
|
|
|
1111
1117
|
}
|
|
1112
1118
|
|
|
1113
1119
|
if (oChanges.name === "display") {
|
|
1114
|
-
_destroyInternalContent
|
|
1120
|
+
this._destroyInternalContent(); // as bound property can change
|
|
1115
1121
|
this._oContentFactory.updateConditionType();
|
|
1116
1122
|
}
|
|
1117
1123
|
|
|
@@ -1149,6 +1155,14 @@ sap.ui.define([
|
|
|
1149
1155
|
}
|
|
1150
1156
|
};
|
|
1151
1157
|
|
|
1158
|
+
// to allow Field or FilterField trigger and update if content control
|
|
1159
|
+
FieldBase.prototype._updateInternalContent = function() {
|
|
1160
|
+
if (this.getAggregation("_content", []).length > 0) {
|
|
1161
|
+
_createInternalContentWrapper.call(this);
|
|
1162
|
+
this._oContentFactory.updateConditionType(); // if control is not excanged at least ConditionType needs to be updated
|
|
1163
|
+
}
|
|
1164
|
+
};
|
|
1165
|
+
|
|
1152
1166
|
// return the focus DOM elementof the used control
|
|
1153
1167
|
FieldBase.prototype.getFocusDomRef = function() {
|
|
1154
1168
|
|
|
@@ -1210,7 +1224,7 @@ sap.ui.define([
|
|
|
1210
1224
|
|
|
1211
1225
|
FieldBase.prototype.getFocusElementForValueHelp = function(bTypahead) {
|
|
1212
1226
|
var oSuggestControl = this.getControlForSuggestion();
|
|
1213
|
-
var aIcons = oSuggestControl && oSuggestControl.getMetadata().getAllPrivateAggregations()._endIcon && oSuggestControl.getAggregation("_endIcon");
|
|
1227
|
+
var aIcons = oSuggestControl && oSuggestControl.getMetadata().getAllPrivateAggregations()._endIcon && oSuggestControl.getAggregation("_endIcon", []);
|
|
1214
1228
|
var oIcon;
|
|
1215
1229
|
for (var i = 0; i < aIcons.length; i++) { // as MultiInput can have a invisible icon before visible icon
|
|
1216
1230
|
if (aIcons[i].getVisible()) {
|
|
@@ -1432,7 +1446,7 @@ sap.ui.define([
|
|
|
1432
1446
|
// bind to ManagedObjectModel at rendering to prevent unneded updates
|
|
1433
1447
|
|
|
1434
1448
|
if (this.getAggregation("_content", []).length > 0) {
|
|
1435
|
-
_destroyInternalContent
|
|
1449
|
+
this._destroyInternalContent();
|
|
1436
1450
|
}
|
|
1437
1451
|
|
|
1438
1452
|
// as for edit and display different Types are possible switch them with edit mode
|
|
@@ -1586,7 +1600,7 @@ sap.ui.define([
|
|
|
1586
1600
|
if (oContent || this._bIsBeingDestroyed ||
|
|
1587
1601
|
(sEditMode === EditMode.Display && this.getContentDisplay()) ||
|
|
1588
1602
|
(sEditMode !== EditMode.Display && this.getContentEdit())) {
|
|
1589
|
-
_destroyInternalContent
|
|
1603
|
+
this._destroyInternalContent();
|
|
1590
1604
|
var aContent = this._getContent(); // external set content
|
|
1591
1605
|
if (aContent.length === 1) {
|
|
1592
1606
|
_setModelOnContent.call(this, aContent[0]); // bind to ManagedObjectModel
|
|
@@ -1618,7 +1632,7 @@ sap.ui.define([
|
|
|
1618
1632
|
this._oContentFactory.setHideOperator(_isOnlyOneSingleValue.call(this, aOperators)); // in single value eq Field hide operator
|
|
1619
1633
|
|
|
1620
1634
|
if (oContentOld) {
|
|
1621
|
-
_destroyInternalContent
|
|
1635
|
+
this._destroyInternalContent();
|
|
1622
1636
|
|
|
1623
1637
|
if (oContentOld.isA("sap.m.DateTimeField")) {
|
|
1624
1638
|
// in case of DatePicker remove type with special format options
|
|
@@ -1642,6 +1656,7 @@ sap.ui.define([
|
|
|
1642
1656
|
var oControl = aControls[iIndex];
|
|
1643
1657
|
oControl.attachEvent("parseError", _handleParseError, this);
|
|
1644
1658
|
oControl.attachEvent("validationError", _handleValidationError, this);
|
|
1659
|
+
oControl.attachEvent("validationSuccess", _handleValidationSuccess, this);
|
|
1645
1660
|
_modifyKeyboardHandler.call(this, oControl, oContentType.getUseDefaultEnterHandler());
|
|
1646
1661
|
_modifyFieldGroupHandler.call(this, oControl, false);
|
|
1647
1662
|
_setModelOnContent.call(this, oControl);
|
|
@@ -1662,7 +1677,7 @@ sap.ui.define([
|
|
|
1662
1677
|
|
|
1663
1678
|
}
|
|
1664
1679
|
|
|
1665
|
-
function
|
|
1680
|
+
FieldBase.prototype._destroyInternalContent = function () {
|
|
1666
1681
|
|
|
1667
1682
|
// if the internalContent must be new created the data type must be switched back to original one
|
|
1668
1683
|
// so new creation of control is using original data
|
|
@@ -1686,7 +1701,7 @@ sap.ui.define([
|
|
|
1686
1701
|
this._oContentFactory.setIsMeasure(false);
|
|
1687
1702
|
}
|
|
1688
1703
|
|
|
1689
|
-
}
|
|
1704
|
+
};
|
|
1690
1705
|
|
|
1691
1706
|
function _setModelOnContent(oContent) {
|
|
1692
1707
|
oContent.setModel(this._oManagedObjectModel, "$field");
|
|
@@ -1870,23 +1885,26 @@ sap.ui.define([
|
|
|
1870
1885
|
|
|
1871
1886
|
function _useDefaultFieldHelp(oContentType, aOperators, sEditMode, iMaxConditions) {
|
|
1872
1887
|
|
|
1873
|
-
|
|
1874
|
-
|
|
1875
|
-
|
|
1876
|
-
|
|
1877
|
-
|
|
1878
|
-
if
|
|
1879
|
-
|
|
1880
|
-
|
|
1888
|
+
var oUseDefaultFieldHelp = oContentType.getUseDefaultFieldHelp();
|
|
1889
|
+
if (oUseDefaultFieldHelp && !this.getFieldHelp() && sEditMode !== EditMode.Display) {
|
|
1890
|
+
if ((iMaxConditions === 1 && oUseDefaultFieldHelp.single) || (iMaxConditions !== 1 && oUseDefaultFieldHelp.multi)) {
|
|
1891
|
+
if (aOperators.length === 1) {
|
|
1892
|
+
var bIsSingleValue = _isOnlyOneSingleValue.call(this, aOperators); // if operator not exists unse no field help
|
|
1893
|
+
// not if operator is handled by special control (like DatePicker)
|
|
1894
|
+
if (iMaxConditions === 1) {
|
|
1895
|
+
if (!(oContentType.getEditOperator() && oContentType.getEditOperator()[aOperators[0]]) &&
|
|
1896
|
+
(oUseDefaultFieldHelp.oneOperatorSingle || !bIsSingleValue)) {
|
|
1897
|
+
// "bool" case (always default field help) or operator needs more than one value (e.g. between)
|
|
1898
|
+
return true;
|
|
1899
|
+
}
|
|
1900
|
+
} else if (oUseDefaultFieldHelp.oneOperatorMulti || !bIsSingleValue) {
|
|
1901
|
+
// DatePicker case - in multi-value use default help to get DatePicker controls
|
|
1881
1902
|
return true;
|
|
1882
1903
|
}
|
|
1883
|
-
} else
|
|
1884
|
-
//
|
|
1904
|
+
} else {
|
|
1905
|
+
// multiple operators -> default help needed
|
|
1885
1906
|
return true;
|
|
1886
1907
|
}
|
|
1887
|
-
} else {
|
|
1888
|
-
// multiple operators -> default help needed
|
|
1889
|
-
return true;
|
|
1890
1908
|
}
|
|
1891
1909
|
}
|
|
1892
1910
|
|
|
@@ -1951,6 +1969,12 @@ sap.ui.define([
|
|
|
1951
1969
|
|
|
1952
1970
|
}
|
|
1953
1971
|
|
|
1972
|
+
function _handleValidationSuccess(oEvent) {
|
|
1973
|
+
|
|
1974
|
+
this._bParseError = false; // if last valif value is entered again no condition is updated
|
|
1975
|
+
|
|
1976
|
+
}
|
|
1977
|
+
|
|
1954
1978
|
function _handleContentChange(oEvent) {
|
|
1955
1979
|
|
|
1956
1980
|
var oChangeEvent = { parameters: merge({}, oEvent.getParameters()), source: oEvent.getSource() };
|
|
@@ -2200,8 +2224,6 @@ sap.ui.define([
|
|
|
2200
2224
|
vPreviousValue = aConditions[0] && aConditions[0].values[0];
|
|
2201
2225
|
}
|
|
2202
2226
|
|
|
2203
|
-
this._bParseError = false; // last parsing result is obsolete if user starts typing
|
|
2204
|
-
|
|
2205
2227
|
var oFieldHelp = _getFieldHelp.call(this);
|
|
2206
2228
|
|
|
2207
2229
|
if (oFieldHelp && (!this._oContentFactory.isMeasure() || oSource.getShowValueHelp())) {
|
|
@@ -2529,6 +2551,7 @@ sap.ui.define([
|
|
|
2529
2551
|
aConditions.splice(0, aConditions.length - iMaxConditions);
|
|
2530
2552
|
}
|
|
2531
2553
|
|
|
2554
|
+
var bChangeAfterError = false;
|
|
2532
2555
|
if (oContent && oContent.setDOMValue) {
|
|
2533
2556
|
if (this.getMaxConditionsForHelp() === 1 && aConditions.length > 0) {
|
|
2534
2557
|
// the focus is still in the Field. The update of the inner control is done via ManagedObjectModel binding.
|
|
@@ -2569,6 +2592,7 @@ sap.ui.define([
|
|
|
2569
2592
|
if (this._bParseError) { // only remove messages set by Field itself, message from outside should stay.
|
|
2570
2593
|
this._bParseError = false;
|
|
2571
2594
|
this._removeUIMessage();
|
|
2595
|
+
bChangeAfterError = true;
|
|
2572
2596
|
}
|
|
2573
2597
|
}
|
|
2574
2598
|
|
|
@@ -2585,6 +2609,8 @@ sap.ui.define([
|
|
|
2585
2609
|
|
|
2586
2610
|
_triggerChange.call(this, aConditions, true);
|
|
2587
2611
|
}
|
|
2612
|
+
} else if (bChangeAfterError) { // last valif value choosen again
|
|
2613
|
+
_triggerChange.call(this, aConditions, true);
|
|
2588
2614
|
}
|
|
2589
2615
|
|
|
2590
2616
|
}
|
|
@@ -2691,6 +2717,7 @@ sap.ui.define([
|
|
|
2691
2717
|
var oContent = this.getControlForSuggestion();
|
|
2692
2718
|
this._bIgnoreInputValue = false;
|
|
2693
2719
|
oContent.setDOMValue("");
|
|
2720
|
+
this._sFilterValue = "";
|
|
2694
2721
|
if (this.getMaxConditions() !== 1 && !this._oContentFactory.getBoundProperty() && oContent.getMetadata().hasProperty("value") && oContent.getProperty("value")) {
|
|
2695
2722
|
// clear "value" property of MultiInput as there might be an old value from a invalid input before
|
|
2696
2723
|
oContent.setValue();
|
|
@@ -2699,6 +2726,11 @@ sap.ui.define([
|
|
|
2699
2726
|
|
|
2700
2727
|
_setAriaAttributes.call(this, false);
|
|
2701
2728
|
|
|
2729
|
+
// sync conditions with FieldHelp as we cannot e sure that it still is in sync
|
|
2730
|
+
var oFieldHelp = oEvent.getSource();
|
|
2731
|
+
var aConditions = this.getConditions();
|
|
2732
|
+
_setConditionsOnFieldHelp.call(this, aConditions, oFieldHelp);
|
|
2733
|
+
|
|
2702
2734
|
}
|
|
2703
2735
|
|
|
2704
2736
|
function _handleFieldSwitchToValueHelp(oEvent) {
|
|
@@ -2757,7 +2789,8 @@ sap.ui.define([
|
|
|
2757
2789
|
delegateName: this.getDelegate() && this.getDelegate().name,
|
|
2758
2790
|
payload: this.getPayload(),
|
|
2759
2791
|
conditionModel: oConditionModelInfo.model,
|
|
2760
|
-
conditionModelName
|
|
2792
|
+
conditionModelName: oConditionModelInfo.name,
|
|
2793
|
+
defaultOperatorName: this.getDefaultOperator ? this.getDefaultOperator() : null
|
|
2761
2794
|
};
|
|
2762
2795
|
oFieldHelp.connect(this, oConfig);
|
|
2763
2796
|
this._bConnected = true;
|
|
@@ -40,7 +40,7 @@ sap.ui.define([
|
|
|
40
40
|
* @class Base type for the <code>FieldHelp</code> association in the <code>FieldBase</code> controls.
|
|
41
41
|
* @extends sap.ui.mdc.Element
|
|
42
42
|
* @implements sap.ui.core.PopupInterface
|
|
43
|
-
* @version 1.
|
|
43
|
+
* @version 1.99.0
|
|
44
44
|
* @constructor
|
|
45
45
|
* @abstract
|
|
46
46
|
* @private
|
|
@@ -962,7 +962,7 @@ sap.ui.define([
|
|
|
962
962
|
* @type {sap.ui.mdc.field.FieldHelpItem}
|
|
963
963
|
* @static
|
|
964
964
|
* @constant
|
|
965
|
-
* @typedef {
|
|
965
|
+
* @typedef {object} sap.ui.mdc.field.FieldHelpItem
|
|
966
966
|
* @property {any} key Key of the item
|
|
967
967
|
* @property {string} description Description of the item
|
|
968
968
|
* @property {object} [inParameters] In parameters of the item. For each field path a value is stored
|