@openui5/sap.ui.mdc 1.94.0 → 1.97.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 +12 -12
- package/THIRDPARTY.txt +21 -17
- package/package.json +4 -4
- package/src/sap/ui/mdc/.library +1 -1
- package/src/sap/ui/mdc/ActionToolbar.js +231 -334
- package/src/sap/ui/mdc/Chart.js +148 -21
- package/src/sap/ui/mdc/ChartDelegateNew.js +15 -0
- package/src/sap/ui/mdc/ChartNew.js +83 -56
- package/src/sap/ui/mdc/ChartNewRenderer.js +2 -2
- package/src/sap/ui/mdc/Control.js +4 -3
- package/src/sap/ui/mdc/Element.js +5 -4
- package/src/sap/ui/mdc/Field.js +3 -2
- package/src/sap/ui/mdc/FilterBar.js +1 -10
- package/src/sap/ui/mdc/FilterField.js +42 -4
- package/src/sap/ui/mdc/Link.js +2 -2
- package/src/sap/ui/mdc/MultiValueField.js +2 -1
- package/src/sap/ui/mdc/Table.js +285 -186
- package/src/sap/ui/mdc/TableDelegate.js +13 -11
- package/src/sap/ui/mdc/ValueHelp.js +1500 -0
- package/src/sap/ui/mdc/ValueHelpDelegate.js +167 -0
- package/src/sap/ui/mdc/actiontoolbar/ActionToolbarAction.js +49 -104
- package/src/sap/ui/mdc/chart/DimensionItem.js +3 -3
- package/src/sap/ui/mdc/chart/Item.js +2 -3
- package/src/sap/ui/mdc/chart/MeasureItem.js +2 -2
- package/src/sap/ui/mdc/chart/SelectionDetailsActions.js +21 -2
- package/src/sap/ui/mdc/chart/ToolbarHandler.js +237 -226
- package/src/sap/ui/mdc/chartNew/ChartSelectionDetailsNew.js +1 -1
- package/src/sap/ui/mdc/chartNew/ChartToolbarNew.js +14 -10
- package/src/sap/ui/mdc/chartNew/ChartTypeButtonNew.js +1 -1
- package/src/sap/ui/mdc/chartNew/DrillStackHandlerNew.js +11 -9
- package/src/sap/ui/mdc/chartNew/ItemNew.js +0 -1
- package/src/sap/ui/mdc/chartNew/PropertyHelperNew.js +1 -1
- package/src/sap/ui/mdc/condition/Condition.js +2 -2
- 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 +6 -2
- 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/actiontoolbar/ActionToolbar.designtime.js +43 -0
- package/src/sap/ui/mdc/designtime/chart/ChartNew.designtime.js +91 -0
- package/src/sap/ui/mdc/designtime/field/Field.designtime.js +21 -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/FilterBar.designtime.js +19 -0
- package/src/sap/ui/mdc/designtime/filterbar/FilterBarBase.designtime.js +31 -0
- package/src/sap/ui/mdc/designtime/table/Table.designtime.js +5 -0
- package/src/sap/ui/mdc/enum/ContentMode.js +25 -4
- package/src/sap/ui/mdc/enum/SelectType.js +43 -0
- 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 +67 -35
- package/src/sap/ui/mdc/field/ConditionsType.js +12 -10
- 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 +13 -2
- package/src/sap/ui/mdc/field/DynamicDateRangeConditionsType.js +311 -0
- package/src/sap/ui/mdc/field/FieldBase.js +143 -83
- package/src/sap/ui/mdc/field/FieldBaseDelegate.js +9 -2
- package/src/sap/ui/mdc/field/FieldHelpBase.js +64 -4
- package/src/sap/ui/mdc/field/FieldInfoBase.js +9 -1
- 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 +12 -6
- 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 +1 -1
- package/src/sap/ui/mdc/field/FieldValueHelpTableWrapperBase.js +2 -1
- 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 +1 -1
- 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/ValueHelpPanel.js +2 -1
- package/src/sap/ui/mdc/field/content/BooleanContent.js +16 -4
- package/src/sap/ui/mdc/field/content/ContentFactory.js +34 -24
- 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 +65 -24
- package/src/sap/ui/mdc/field/content/LinkContent.js +6 -0
- package/src/sap/ui/mdc/field/content/SearchContent.js +21 -3
- package/src/sap/ui/mdc/field/content/TimeContent.js +8 -1
- package/src/sap/ui/mdc/field/content/UnitContent.js +25 -6
- package/src/sap/ui/mdc/filterbar/FilterBarBase.js +43 -24
- package/src/sap/ui/mdc/filterbar/PropertyHelper.js +1 -1
- package/src/sap/ui/mdc/filterbar/p13n/AdaptationFilterBar.js +1 -1
- package/src/sap/ui/mdc/filterbar/vh/FilterBar.js +1 -1
- package/src/sap/ui/mdc/flexibility/ActionToolbar.flexibility.js +22 -0
- package/src/sap/ui/mdc/flexibility/ActionToolbarAction.flexibility.js +19 -0
- package/src/sap/ui/mdc/flexibility/Chart.flexibility.js +1 -1
- package/src/sap/ui/mdc/flexibility/FilterBar.flexibility.js +1 -1
- package/src/sap/ui/mdc/flexibility/FilterItemFlex.js +1 -1
- package/src/sap/ui/mdc/flexibility/ItemBaseFlex.js +203 -197
- package/src/sap/ui/mdc/library.js +603 -5
- 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 +1 -1
- 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/Panel.js +1 -1
- 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/SelectionDialog.js +2 -2
- package/src/sap/ui/mdc/link/SelectionDialogItem.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 +37 -3
- package/src/sap/ui/mdc/messagebundle_ar.properties +24 -3
- package/src/sap/ui/mdc/messagebundle_bg.properties +23 -2
- package/src/sap/ui/mdc/messagebundle_ca.properties +23 -2
- package/src/sap/ui/mdc/messagebundle_cs.properties +36 -15
- package/src/sap/ui/mdc/messagebundle_cy.properties +23 -2
- package/src/sap/ui/mdc/messagebundle_da.properties +23 -2
- package/src/sap/ui/mdc/messagebundle_de.properties +23 -2
- package/src/sap/ui/mdc/messagebundle_el.properties +24 -3
- package/src/sap/ui/mdc/messagebundle_en.properties +23 -2
- package/src/sap/ui/mdc/messagebundle_en_GB.properties +23 -2
- package/src/sap/ui/mdc/messagebundle_en_US_sappsd.properties +23 -2
- package/src/sap/ui/mdc/messagebundle_en_US_saptrc.properties +23 -2
- package/src/sap/ui/mdc/messagebundle_es.properties +48 -27
- package/src/sap/ui/mdc/messagebundle_es_MX.properties +23 -2
- package/src/sap/ui/mdc/messagebundle_et.properties +23 -2
- package/src/sap/ui/mdc/messagebundle_fi.properties +24 -3
- package/src/sap/ui/mdc/messagebundle_fr.properties +36 -15
- package/src/sap/ui/mdc/messagebundle_fr_CA.properties +23 -2
- package/src/sap/ui/mdc/messagebundle_hi.properties +23 -2
- package/src/sap/ui/mdc/messagebundle_hr.properties +23 -2
- package/src/sap/ui/mdc/messagebundle_hu.properties +24 -3
- package/src/sap/ui/mdc/messagebundle_id.properties +23 -2
- package/src/sap/ui/mdc/messagebundle_it.properties +46 -25
- package/src/sap/ui/mdc/messagebundle_iw.properties +23 -2
- package/src/sap/ui/mdc/messagebundle_ja.properties +30 -9
- package/src/sap/ui/mdc/messagebundle_kk.properties +23 -2
- package/src/sap/ui/mdc/messagebundle_ko.properties +23 -2
- package/src/sap/ui/mdc/messagebundle_lt.properties +23 -2
- package/src/sap/ui/mdc/messagebundle_lv.properties +23 -2
- package/src/sap/ui/mdc/messagebundle_ms.properties +23 -2
- package/src/sap/ui/mdc/messagebundle_nl.properties +24 -3
- package/src/sap/ui/mdc/messagebundle_no.properties +30 -9
- package/src/sap/ui/mdc/messagebundle_pl.properties +27 -6
- package/src/sap/ui/mdc/messagebundle_pt.properties +24 -3
- package/src/sap/ui/mdc/messagebundle_pt_PT.properties +23 -2
- package/src/sap/ui/mdc/messagebundle_ro.properties +26 -5
- package/src/sap/ui/mdc/messagebundle_ru.properties +23 -2
- package/src/sap/ui/mdc/messagebundle_sh.properties +23 -2
- package/src/sap/ui/mdc/messagebundle_sk.properties +24 -3
- package/src/sap/ui/mdc/messagebundle_sl.properties +23 -2
- package/src/sap/ui/mdc/messagebundle_sv.properties +24 -3
- package/src/sap/ui/mdc/messagebundle_th.properties +29 -8
- package/src/sap/ui/mdc/messagebundle_tr.properties +23 -2
- package/src/sap/ui/mdc/messagebundle_uk.properties +23 -2
- package/src/sap/ui/mdc/messagebundle_vi.properties +23 -2
- package/src/sap/ui/mdc/messagebundle_zh_CN.properties +23 -2
- package/src/sap/ui/mdc/messagebundle_zh_TW.properties +23 -2
- package/src/sap/ui/mdc/mixin/AdaptationMixin.js +1 -1
- package/src/sap/ui/mdc/mixin/DelegateMixin.js +1 -1
- package/src/sap/ui/mdc/mixin/FilterIntegrationMixin.js +3 -3
- package/src/sap/ui/mdc/mixin/PromiseMixin.js +94 -0
- package/src/sap/ui/mdc/odata/v4/ChartPropertyHelperNew.js +1 -1
- package/src/sap/ui/mdc/odata/v4/TableDelegate.js +65 -37
- package/src/sap/ui/mdc/odata/v4/ValueHelpDelegate.js +94 -0
- package/src/sap/ui/mdc/odata/v4/vizChart/ChartDelegateNew.js +221 -32
- package/src/sap/ui/mdc/p13n/Engine.js +34 -10
- package/src/sap/ui/mdc/p13n/P13nBuilder.js +2 -2
- 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 +20 -0
- package/src/sap/ui/mdc/p13n/UIManager.js +11 -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/ActionToolbarPanel.js +59 -0
- package/src/sap/ui/mdc/p13n/panels/AdaptFiltersPanel.js +20 -5
- package/src/sap/ui/mdc/p13n/panels/BasePanel.js +8 -8
- package/src/sap/ui/mdc/p13n/panels/ChartItemPanel.js +1 -2
- package/src/sap/ui/mdc/p13n/panels/ChartItemPanelNew.js +1179 -0
- package/src/sap/ui/mdc/p13n/panels/GroupView.js +1 -2
- package/src/sap/ui/mdc/p13n/panels/ListView.js +6 -4
- package/src/sap/ui/mdc/p13n/panels/SelectionPanel.js +0 -1
- package/src/sap/ui/mdc/p13n/panels/SortPanel.js +0 -1
- package/src/sap/ui/mdc/p13n/subcontroller/ActionToolbarController.js +89 -0
- package/src/sap/ui/mdc/p13n/subcontroller/AggregateController.js +1 -1
- package/src/sap/ui/mdc/p13n/subcontroller/BaseController.js +9 -6
- package/src/sap/ui/mdc/p13n/subcontroller/ChartItemController.js +33 -4
- package/src/sap/ui/mdc/p13n/subcontroller/ColumnController.js +9 -15
- package/src/sap/ui/mdc/p13n/subcontroller/GroupController.js +5 -12
- package/src/sap/ui/mdc/p13n/subcontroller/SortController.js +19 -21
- package/src/sap/ui/mdc/table/Column.js +67 -17
- package/src/sap/ui/mdc/table/CreationRow.js +14 -13
- package/src/sap/ui/mdc/table/GridTableType.js +11 -11
- package/src/sap/ui/mdc/table/PropertyHelper.js +120 -17
- package/src/sap/ui/mdc/table/ResponsiveTableType.js +35 -26
- package/src/sap/ui/mdc/table/RowSettings.js +8 -6
- package/src/sap/ui/mdc/table/TableTypeBase.js +4 -5
- 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/ValueHelpDialog.less +51 -21
- package/src/sap/ui/mdc/themes/base/library.source.less +1 -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 +26 -0
- package/src/sap/ui/mdc/util/PromiseCache.js +266 -0
- package/src/sap/ui/mdc/util/PropertyHelper.js +114 -304
- package/src/sap/ui/mdc/valuehelp/Dialog.js +499 -0
- package/src/sap/ui/mdc/valuehelp/Popover.js +373 -0
- package/src/sap/ui/mdc/valuehelp/base/Container.js +673 -0
- package/src/sap/ui/mdc/valuehelp/base/Content.js +658 -0
- package/src/sap/ui/mdc/valuehelp/base/DialogTab.js +139 -0
- package/src/sap/ui/mdc/valuehelp/base/FilterableListContent.js +584 -0
- package/src/sap/ui/mdc/valuehelp/base/ListContent.js +133 -0
- package/src/sap/ui/mdc/valuehelp/content/Bool.js +318 -0
- package/src/sap/ui/mdc/valuehelp/content/Conditions.js +270 -0
- package/src/sap/ui/mdc/valuehelp/content/FixedList.js +532 -0
- package/src/sap/ui/mdc/valuehelp/content/MDCTable.js +643 -0
- package/src/sap/ui/mdc/valuehelp/content/MTable.js +928 -0
- package/test/sap/ui/mdc/testutils/opa/TestLibrary.js +3 -2
- package/test/sap/ui/mdc/testutils/opa/actions/OpenContextMenu.js +48 -0
- package/test/sap/ui/mdc/testutils/opa/chartNew/ActionsBase.js +310 -0
- package/test/sap/ui/mdc/testutils/opa/chartNew/ActionsViz.js +39 -0
- package/test/sap/ui/mdc/testutils/opa/chartNew/AssertionsBase.js +118 -0
- package/test/sap/ui/mdc/testutils/opa/chartNew/AssertionsViz.js +137 -0
- package/test/sap/ui/mdc/testutils/opa/chartNew/ChartNew.js +24 -0
- package/test/sap/ui/mdc/testutils/opa/chartNew/TestObjects.js +289 -0
- package/test/sap/ui/mdc/testutils/opa/filterbar/Actions.js +250 -0
- package/test/sap/ui/mdc/testutils/opa/filterbar/Assertions.js +91 -0
- package/test/sap/ui/mdc/testutils/opa/filterbar/TestObjects.js +137 -0
- package/test/sap/ui/mdc/testutils/opa/filterbar/Util.js +25 -0
- package/test/sap/ui/mdc/testutils/opa/p13n/Actions.js +407 -93
- package/test/sap/ui/mdc/testutils/opa/p13n/Util.js +4 -1
- package/test/sap/ui/mdc/testutils/opa/p13n/{waitForP13nButtonWithParentAndIcon.js → waitForP13nButtonWithMatchers.js} +5 -18
- package/test/sap/ui/mdc/testutils/opa/table/TestObjects.js +0 -1
- 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-2021 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.97.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.indexOf(sOption) === -1) {
|
|
125
|
+
sOption = oOperator.alias || sOption;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
for (var i = 0; i < oOperator.valueTypes.length; i++) {
|
|
129
|
+
if (mLibrary.StandardDynamicDateRangeKeys.indexOf(sOption) >= 0 && 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.indexOf(oValue.operator) >= 0 && 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
|
+
});
|