@openui5/sap.ui.mdc 1.94.0 → 1.95.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 +1 -6
- package/THIRDPARTY.txt +3 -9
- package/package.json +4 -4
- package/src/sap/ui/mdc/.library +1 -1
- package/src/sap/ui/mdc/ActionToolbar.js +1 -1
- package/src/sap/ui/mdc/Chart.js +12 -5
- package/src/sap/ui/mdc/ChartNew.js +1 -1
- package/src/sap/ui/mdc/Control.js +1 -1
- package/src/sap/ui/mdc/Element.js +2 -2
- package/src/sap/ui/mdc/Field.js +2 -2
- package/src/sap/ui/mdc/FilterBar.js +1 -1
- package/src/sap/ui/mdc/FilterField.js +28 -4
- package/src/sap/ui/mdc/Link.js +1 -1
- package/src/sap/ui/mdc/MultiValueField.js +1 -1
- package/src/sap/ui/mdc/Table.js +44 -29
- package/src/sap/ui/mdc/ValueHelp.js +1459 -0
- package/src/sap/ui/mdc/ValueHelpDelegate.js +41 -0
- package/src/sap/ui/mdc/chart/ToolbarHandler.js +233 -224
- package/src/sap/ui/mdc/chartNew/ChartSelectionDetailsNew.js +1 -1
- package/src/sap/ui/mdc/chartNew/ChartToolbarNew.js +1 -1
- package/src/sap/ui/mdc/chartNew/ChartTypeButtonNew.js +1 -1
- package/src/sap/ui/mdc/chartNew/PropertyHelperNew.js +1 -1
- 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 +1 -1
- package/src/sap/ui/mdc/condition/Operator.js +1 -1
- package/src/sap/ui/mdc/condition/RangeOperator.js +1 -1
- 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 +61 -29
- package/src/sap/ui/mdc/field/ConditionsType.js +2 -1
- 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/FieldBase.js +81 -35
- 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 +1 -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 +7 -1
- package/src/sap/ui/mdc/field/FieldValueHelpContentWrapperBase.js +1 -1
- 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 +1 -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 +1 -1
- package/src/sap/ui/mdc/filterbar/FilterBarBase.js +17 -9
- 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/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 +576 -4
- 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 +1 -1
- 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 +10 -3
- package/src/sap/ui/mdc/messagebundle_ar.properties +10 -3
- package/src/sap/ui/mdc/messagebundle_bg.properties +9 -2
- package/src/sap/ui/mdc/messagebundle_ca.properties +9 -2
- package/src/sap/ui/mdc/messagebundle_cs.properties +11 -4
- package/src/sap/ui/mdc/messagebundle_cy.properties +9 -2
- package/src/sap/ui/mdc/messagebundle_da.properties +9 -2
- package/src/sap/ui/mdc/messagebundle_de.properties +9 -2
- package/src/sap/ui/mdc/messagebundle_el.properties +10 -3
- package/src/sap/ui/mdc/messagebundle_en.properties +9 -2
- package/src/sap/ui/mdc/messagebundle_en_GB.properties +9 -2
- package/src/sap/ui/mdc/messagebundle_en_US_sappsd.properties +7 -2
- package/src/sap/ui/mdc/messagebundle_en_US_saptrc.properties +7 -2
- package/src/sap/ui/mdc/messagebundle_es.properties +33 -26
- package/src/sap/ui/mdc/messagebundle_es_MX.properties +9 -2
- package/src/sap/ui/mdc/messagebundle_et.properties +9 -2
- package/src/sap/ui/mdc/messagebundle_fi.properties +10 -3
- package/src/sap/ui/mdc/messagebundle_fr.properties +16 -9
- package/src/sap/ui/mdc/messagebundle_fr_CA.properties +9 -2
- package/src/sap/ui/mdc/messagebundle_hi.properties +9 -2
- package/src/sap/ui/mdc/messagebundle_hr.properties +9 -2
- package/src/sap/ui/mdc/messagebundle_hu.properties +10 -3
- package/src/sap/ui/mdc/messagebundle_id.properties +9 -2
- package/src/sap/ui/mdc/messagebundle_it.properties +32 -25
- package/src/sap/ui/mdc/messagebundle_iw.properties +9 -2
- package/src/sap/ui/mdc/messagebundle_ja.properties +9 -2
- package/src/sap/ui/mdc/messagebundle_kk.properties +9 -2
- package/src/sap/ui/mdc/messagebundle_ko.properties +9 -2
- package/src/sap/ui/mdc/messagebundle_lt.properties +9 -2
- package/src/sap/ui/mdc/messagebundle_lv.properties +9 -2
- package/src/sap/ui/mdc/messagebundle_ms.properties +9 -2
- package/src/sap/ui/mdc/messagebundle_nl.properties +10 -3
- package/src/sap/ui/mdc/messagebundle_no.properties +16 -9
- package/src/sap/ui/mdc/messagebundle_pl.properties +13 -6
- package/src/sap/ui/mdc/messagebundle_pt.properties +9 -2
- package/src/sap/ui/mdc/messagebundle_pt_PT.properties +9 -2
- package/src/sap/ui/mdc/messagebundle_ro.properties +12 -5
- package/src/sap/ui/mdc/messagebundle_ru.properties +9 -2
- package/src/sap/ui/mdc/messagebundle_sh.properties +9 -2
- package/src/sap/ui/mdc/messagebundle_sk.properties +10 -3
- package/src/sap/ui/mdc/messagebundle_sl.properties +9 -2
- package/src/sap/ui/mdc/messagebundle_sv.properties +10 -3
- package/src/sap/ui/mdc/messagebundle_th.properties +15 -8
- package/src/sap/ui/mdc/messagebundle_tr.properties +9 -2
- package/src/sap/ui/mdc/messagebundle_uk.properties +9 -2
- package/src/sap/ui/mdc/messagebundle_vi.properties +9 -2
- package/src/sap/ui/mdc/messagebundle_zh_CN.properties +9 -2
- package/src/sap/ui/mdc/messagebundle_zh_TW.properties +9 -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 +1 -1
- 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/ValueHelpDelegate.js +94 -0
- package/src/sap/ui/mdc/p13n/DefaultProviderRegistry.js +1 -1
- package/src/sap/ui/mdc/p13n/Engine.js +1 -1
- package/src/sap/ui/mdc/p13n/PropertyHelper.js +1 -1
- package/src/sap/ui/mdc/p13n/UIManager.js +1 -1
- package/src/sap/ui/mdc/p13n/panels/BasePanel.js +2 -2
- package/src/sap/ui/mdc/p13n/panels/GroupPanel.js +1 -1
- package/src/sap/ui/mdc/p13n/panels/ListView.js +1 -1
- package/src/sap/ui/mdc/p13n/panels/QueryPanel.js +1 -1
- package/src/sap/ui/mdc/p13n/panels/SortQueryPanel.js +1 -1
- package/src/sap/ui/mdc/p13n/panels/Wrapper.js +1 -1
- package/src/sap/ui/mdc/p13n/subcontroller/BaseController.js +1 -1
- package/src/sap/ui/mdc/table/Column.js +20 -4
- package/src/sap/ui/mdc/table/CreationRow.js +1 -1
- package/src/sap/ui/mdc/table/PropertyHelper.js +176 -4
- package/src/sap/ui/mdc/table/RowSettings.js +1 -1
- package/src/sap/ui/mdc/table/V4AnalyticsPropertyHelper.js +1 -1
- package/src/sap/ui/mdc/themes/base/ValueHelpDialog.less +51 -21
- 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 +19 -1
- package/src/sap/ui/mdc/valuehelp/Dialog.js +475 -0
- package/src/sap/ui/mdc/valuehelp/Popover.js +346 -0
- package/src/sap/ui/mdc/valuehelp/base/Container.js +440 -0
- package/src/sap/ui/mdc/valuehelp/base/Content.js +442 -0
- package/src/sap/ui/mdc/valuehelp/base/DialogTab.js +96 -0
- package/src/sap/ui/mdc/valuehelp/base/FilterableListContent.js +537 -0
- package/src/sap/ui/mdc/valuehelp/base/ListContent.js +105 -0
- package/src/sap/ui/mdc/valuehelp/content/Bool.js +232 -0
- package/src/sap/ui/mdc/valuehelp/content/Conditions.js +250 -0
- package/src/sap/ui/mdc/valuehelp/content/FixedList.js +504 -0
- package/src/sap/ui/mdc/valuehelp/content/MDCTable.js +619 -0
- package/src/sap/ui/mdc/valuehelp/content/MTable.js +881 -0
- package/test/sap/ui/mdc/testutils/opa/TestLibrary.js +2 -2
- 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 +239 -77
- package/test/sap/ui/mdc/testutils/opa/p13n/Util.js +2 -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
|
@@ -88,10 +88,13 @@
|
|
|
88
88
|
}
|
|
89
89
|
|
|
90
90
|
// makes the IconTab Header hidden when only one tabs exist
|
|
91
|
-
.sapMdcValueHelpPanel .sapMdcNoHeader .sapMITH {
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
91
|
+
// .sapMdcValueHelpPanel .sapMdcNoHeader .sapMITH {
|
|
92
|
+
// display: none;
|
|
93
|
+
// }
|
|
94
|
+
|
|
95
|
+
.sapMdcNoHeader > div:first-child {
|
|
96
|
+
display: none;
|
|
97
|
+
}
|
|
95
98
|
|
|
96
99
|
.sapUiMdcDefineConditionPanel .sapUiMdcDefineConditionGrid {
|
|
97
100
|
margin-bottom: 0.5rem;
|
|
@@ -99,8 +102,8 @@
|
|
|
99
102
|
|
|
100
103
|
// give the Filterbar the required padding and max height
|
|
101
104
|
.sapMdcValueHelpPanelFilterbar {
|
|
102
|
-
|
|
103
|
-
|
|
105
|
+
margin-left: 2rem;
|
|
106
|
+
margin-right: 1rem;
|
|
104
107
|
}
|
|
105
108
|
|
|
106
109
|
// allign static text
|
|
@@ -139,12 +142,12 @@
|
|
|
139
142
|
// hide the toolbar border and give some more top margin
|
|
140
143
|
.sapMdcValueHelpPanel .sapMTBStandard {
|
|
141
144
|
margin-top: 0.5rem;
|
|
142
|
-
|
|
145
|
+
border-bottom: solid 1px transparent;
|
|
143
146
|
}
|
|
144
147
|
|
|
145
148
|
// hide the panel bottom border
|
|
146
149
|
.sapMdcValueHelpPanel .sapMPanelContent:not(.sapMPanelBGTransparent) {
|
|
147
|
-
|
|
150
|
+
border-bottom: none;
|
|
148
151
|
}
|
|
149
152
|
|
|
150
153
|
|
|
@@ -160,29 +163,56 @@
|
|
|
160
163
|
font-size: @sapMFontHeader5Size
|
|
161
164
|
}
|
|
162
165
|
|
|
163
|
-
// scrollbar for Table if FixFlex is fix
|
|
164
|
-
.sapMdcValueHelpPanel .sapUiFixFlexScrolling .sapMdcTablePanel {
|
|
165
|
-
height: 200px !important;
|
|
166
|
-
}
|
|
167
|
-
|
|
168
166
|
// make the title shadows transparent
|
|
169
|
-
.
|
|
170
|
-
|
|
167
|
+
.sapMdcValueHelpTitleShadow.sapMDialog:not(.sapMDialogWithSubHeader) > header:first-of-type .sapMIBar {
|
|
168
|
+
box-shadow: inset 0 -0.0625rem transparent;
|
|
171
169
|
}
|
|
172
170
|
|
|
173
|
-
.
|
|
174
|
-
|
|
171
|
+
.sapMdcValueHelpTitleShadow.sapMBar {
|
|
172
|
+
box-shadow: inset 0 -0.0625rem transparent;
|
|
175
173
|
}
|
|
176
174
|
|
|
177
175
|
// remove some borders around the IconTabBar content
|
|
178
176
|
.sapMdcValueHelpPanel .sapMITBContent {
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
177
|
+
border-left: none;
|
|
178
|
+
border-right: none;
|
|
179
|
+
border-bottom: none;
|
|
182
180
|
}
|
|
183
181
|
|
|
184
182
|
// set the 2rem padding also on the OK and Cancel buttons in the footer
|
|
185
183
|
.sapMdcValueHelpTitle.sapMDialog footer .sapMTB {
|
|
186
|
-
|
|
184
|
+
padding: 0 2rem;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
|
|
188
|
+
.sapMdcValueHelpPanelTableBox {
|
|
189
|
+
padding: 0 2rem;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
.sapMdcValueHelpPanelTableBox > .sapMFlexItem {
|
|
193
|
+
//min-height: 200px !important;
|
|
194
|
+
height: 100%;
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
.sapMdcValueHelpPanelTableBox .sapUiMdcTable .sapMTBStandard {
|
|
198
|
+
margin-top: 0;
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
.sapMdcValueHelpPanel .sapUiFixFlexScrolling .sapMdcValueHelpPanelTableBox {
|
|
202
|
+
height: 200px !important;
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
.sapMdcValueHelpPanelTableBox .sapUiMdcTable .sapMTitleTB {
|
|
206
|
+
font-size: 1rem;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
.sapMdcValueHelpPopover.sapMdcValueHelpMultiSelect .sapUiMdcDefineConditionPanel {
|
|
210
|
+
margin-left: 1rem;
|
|
211
|
+
margin-top: 1rem;
|
|
187
212
|
}
|
|
188
213
|
|
|
214
|
+
.sapMdcValueHelpPopover.sapMdcValueHelpSingleSelect .sapUiMdcDefineConditionPanel {
|
|
215
|
+
margin-left: 0rem;
|
|
216
|
+
margin-right: 0.75rem;
|
|
217
|
+
margin-top: 1rem;
|
|
218
|
+
}
|
|
@@ -22,12 +22,12 @@ sap.ui.define([
|
|
|
22
22
|
* @extends sap.ui.core.Control
|
|
23
23
|
*
|
|
24
24
|
* @author SAP SE
|
|
25
|
-
* @version 1.
|
|
25
|
+
* @version 1.95.0
|
|
26
26
|
*
|
|
27
27
|
* @constructor
|
|
28
28
|
* @alias sap.ui.mdc.ui.Container
|
|
29
29
|
* @author SAP SE
|
|
30
|
-
* @version 1.
|
|
30
|
+
* @version 1.95.0
|
|
31
31
|
* @since 1.85.0
|
|
32
32
|
*
|
|
33
33
|
* @private
|
|
@@ -20,12 +20,12 @@ sap.ui.define(['sap/ui/core/Element'],
|
|
|
20
20
|
* @extends sap.ui.core.Element
|
|
21
21
|
*
|
|
22
22
|
* @author SAP SE
|
|
23
|
-
* @version 1.
|
|
23
|
+
* @version 1.95.0
|
|
24
24
|
*
|
|
25
25
|
* @constructor
|
|
26
26
|
* @alias sap.ui.mdc.ui.ContainerItem
|
|
27
27
|
* @author SAP SE
|
|
28
|
-
* @version 1.
|
|
28
|
+
* @version 1.95.0
|
|
29
29
|
* @since 1.85.0
|
|
30
30
|
*
|
|
31
31
|
* @private
|
|
@@ -0,0 +1,26 @@
|
|
|
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
|
+
sap.ui.define([], function() {
|
|
8
|
+
"use strict";
|
|
9
|
+
|
|
10
|
+
var Common = {
|
|
11
|
+
cleanup: function (oTarget, aFields) {
|
|
12
|
+
aFields.forEach(function (sField) {
|
|
13
|
+
var oRemovable = oTarget[sField];
|
|
14
|
+
if (oRemovable) {
|
|
15
|
+
if (oRemovable.destroy && !oRemovable.bIsDestroyed) {
|
|
16
|
+
oRemovable.destroy();
|
|
17
|
+
}
|
|
18
|
+
oTarget[sField] = null;
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
return Common;
|
|
25
|
+
|
|
26
|
+
}, /* bExport= */true);
|
|
@@ -0,0 +1,266 @@
|
|
|
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
|
+
sap.ui.define(
|
|
7
|
+
["sap/ui/base/Object"],
|
|
8
|
+
function (BaseObject) {
|
|
9
|
+
"use strict";
|
|
10
|
+
|
|
11
|
+
var _checkAndPrepareAdd = function (sName) {
|
|
12
|
+
if (!sName) {
|
|
13
|
+
throw new Error("PromiseCache: Please provide an identifier!");
|
|
14
|
+
}
|
|
15
|
+
if (this._oCache && this._oCache[sName]) {
|
|
16
|
+
this.remove.call(this, sName);
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
var _findKeyForPromise = function (oPromise) {
|
|
21
|
+
if (typeof oPromise === "object" && this._oCache) {
|
|
22
|
+
for (var sKey in this._oCache) {
|
|
23
|
+
if (this._oCache[sKey].promise === oPromise) {
|
|
24
|
+
return sKey;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
var _findConfigByKeyOrPromise = function (vPromise, bThrow) {
|
|
31
|
+
var sKey = typeof vPromise === "string" ? vPromise : _findKeyForPromise.call(this, vPromise);
|
|
32
|
+
var oConfig = sKey && this._oCache && this._oCache[sKey];
|
|
33
|
+
|
|
34
|
+
if (bThrow && !oConfig) {
|
|
35
|
+
throw new Error("PromiseCache: Promise not found!");
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
return oConfig;
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Provides a caching mechanism for promises.
|
|
43
|
+
* This API features Promise cancellation: resolve or reject handlers won't be called after removal of the promise, cache destruction or manual cancellation.
|
|
44
|
+
* Destroying the cache will cancel all registered promises and delete references. Convenience methods for promise creation, wrapping and replacement are offered.
|
|
45
|
+
*
|
|
46
|
+
* @author SAP SE
|
|
47
|
+
* @version 1.95.0
|
|
48
|
+
* @alias sap.ui.mdc.util.PromiseCache
|
|
49
|
+
* @namespace
|
|
50
|
+
* @since 1.85.0
|
|
51
|
+
* @private
|
|
52
|
+
* @experimental
|
|
53
|
+
* @ui5-restricted sap.ui.mdc
|
|
54
|
+
*/
|
|
55
|
+
var PromiseCache = BaseObject.extend("sap.ui.mdc.util.PromiseCache", {
|
|
56
|
+
/**
|
|
57
|
+
* Constructor.
|
|
58
|
+
*/
|
|
59
|
+
constructor: function () {
|
|
60
|
+
this._oCache = {};
|
|
61
|
+
},
|
|
62
|
+
/**
|
|
63
|
+
* Adds a promise to the promise cache using a string identifier and a creation method or given <code>Promise</code>.
|
|
64
|
+
* Calling add using an already existing identifier will cancel and replace the existing promise.
|
|
65
|
+
*
|
|
66
|
+
* Note: All unsettled promises will be cancelled on removal or cache destruction
|
|
67
|
+
* A given creation method will receive the following arguments on execution:
|
|
68
|
+
* <ul>
|
|
69
|
+
* <li><code>oPromise</code> - The newly created Promise</li>
|
|
70
|
+
* <li><code>fnResolve</code> - Resolve method for the newly created Promise</li>
|
|
71
|
+
* <li><code>fnReject</code> - Reject method for the newly created Promise</li>
|
|
72
|
+
* <li><code>fnRemove</code> - Remove method for the newly created Promise</li>
|
|
73
|
+
* </ul>
|
|
74
|
+
*
|
|
75
|
+
* @protected
|
|
76
|
+
* @param {string} [sName] Promise identifier
|
|
77
|
+
* @param {function(oPromise,fnResolve,fnReject,fnRemove)|Promise} [fnCreate] creation method or pre-created promise
|
|
78
|
+
* @returns {Promise} Returns the newly created <code>Promise</code>
|
|
79
|
+
*/
|
|
80
|
+
add: function (sName, fnCreate) {
|
|
81
|
+
_checkAndPrepareAdd.call(this, sName);
|
|
82
|
+
var oPromiseConfig = {};
|
|
83
|
+
this._oCache[sName] = oPromiseConfig;
|
|
84
|
+
|
|
85
|
+
oPromiseConfig.promise = new Promise(function (resolve, reject) {
|
|
86
|
+
oPromiseConfig.resolve = function (oResult) {
|
|
87
|
+
if (!oPromiseConfig._isCanceled) {
|
|
88
|
+
oPromiseConfig._isSettled = true;
|
|
89
|
+
resolve(oResult);
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
oPromiseConfig.reject = function (oErr) {
|
|
93
|
+
if (!oPromiseConfig._isCanceled) {
|
|
94
|
+
oPromiseConfig._isSettled = true;
|
|
95
|
+
reject(oErr);
|
|
96
|
+
}
|
|
97
|
+
};
|
|
98
|
+
});
|
|
99
|
+
|
|
100
|
+
oPromiseConfig.promise.isSettled = function () {
|
|
101
|
+
return !!oPromiseConfig._isSettled;
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
oPromiseConfig.promise.isCanceled = function () {
|
|
105
|
+
return !!oPromiseConfig._isCanceled;
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
oPromiseConfig.promise.getInternalPromise = function () {
|
|
109
|
+
return oPromiseConfig._promise;
|
|
110
|
+
};
|
|
111
|
+
|
|
112
|
+
if (fnCreate) {
|
|
113
|
+
var bIsCreateFunction = typeof fnCreate === "function";
|
|
114
|
+
var bIsCreatePromise = !bIsCreateFunction && typeof fnCreate.then === "function";
|
|
115
|
+
|
|
116
|
+
if (!bIsCreateFunction && !bIsCreatePromise) {
|
|
117
|
+
throw new Error("PromiseCache: fnCreate must be a promise or function");
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
var oCreateResult = bIsCreateFunction ? fnCreate() : fnCreate;
|
|
121
|
+
var bIsCreateResultPromise = oCreateResult && typeof oCreateResult.then === "function";
|
|
122
|
+
|
|
123
|
+
if (bIsCreateResultPromise) { // handle internal promise
|
|
124
|
+
oPromiseConfig._promise = oCreateResult;
|
|
125
|
+
oPromiseConfig._promise.then(function (vResult) {
|
|
126
|
+
if (!oPromiseConfig._isCanceled) {
|
|
127
|
+
oPromiseConfig._isSettled = true;
|
|
128
|
+
oPromiseConfig.resolve(vResult);
|
|
129
|
+
}
|
|
130
|
+
return vResult;
|
|
131
|
+
}, function (vErr) {
|
|
132
|
+
if (!oPromiseConfig._isCanceled) {
|
|
133
|
+
oPromiseConfig._isSettled = true;
|
|
134
|
+
oPromiseConfig.reject(vErr);
|
|
135
|
+
}
|
|
136
|
+
});
|
|
137
|
+
} else { // handle non-promise results
|
|
138
|
+
oPromiseConfig.resolve(oCreateResult);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
return this._oCache[sName].promise;
|
|
143
|
+
},
|
|
144
|
+
/**
|
|
145
|
+
* Cancels an unsettled promise from the promise cache.
|
|
146
|
+
* Calling cancel twice is a no-op.
|
|
147
|
+
*
|
|
148
|
+
* @protected
|
|
149
|
+
* @param {string|Promise} vPromise Promise or identifier
|
|
150
|
+
* @returns {Promise} Returns the canceled <code>Promise</code>
|
|
151
|
+
*/
|
|
152
|
+
cancel: function (vPromise) {
|
|
153
|
+
var oPromiseConfig = _findConfigByKeyOrPromise.call(this, vPromise, true);
|
|
154
|
+
if (!oPromiseConfig._isSettled) {
|
|
155
|
+
oPromiseConfig._isCanceled = true;
|
|
156
|
+
}
|
|
157
|
+
return oPromiseConfig.promise;
|
|
158
|
+
},
|
|
159
|
+
/**
|
|
160
|
+
* Retrieves an existing promise from the promise cache.
|
|
161
|
+
* Automatically creates and returns a new promise if <code>fnCreate</code> is given.
|
|
162
|
+
*
|
|
163
|
+
* A given creation method will receive the following arguments on execution:
|
|
164
|
+
* <ul>
|
|
165
|
+
* <li><code>oPromise</code> - The newly created Promise</li>
|
|
166
|
+
* <li><code>fnResolve</code> - Resolve method for the newly created Promise</li>
|
|
167
|
+
* <li><code>fnReject</code> - Reject method for the newly created Promise</li>
|
|
168
|
+
* <li><code>fnRemove</code> - Remove method for the newly created Promise</li>
|
|
169
|
+
* </ul>
|
|
170
|
+
*
|
|
171
|
+
* @protected
|
|
172
|
+
* @param {string} sName Promise identifier
|
|
173
|
+
* @param {function(oPromise,fnResolve,fnReject,fnRemove)|Promise} [fnCreate] creation method or pre-created promise
|
|
174
|
+
* @returns {Promise} Returns the newly created <code>Promise</code>
|
|
175
|
+
*/
|
|
176
|
+
retrieve: function (sName, fnCreate) {
|
|
177
|
+
var oPromiseConfig = this._oCache && this._oCache[sName];
|
|
178
|
+
if (!oPromiseConfig && fnCreate) {
|
|
179
|
+
return this.add.apply(this, [sName, fnCreate]);
|
|
180
|
+
}
|
|
181
|
+
return oPromiseConfig && oPromiseConfig.promise;
|
|
182
|
+
},
|
|
183
|
+
|
|
184
|
+
/**
|
|
185
|
+
* Retrieves multiple promises from the promise cache
|
|
186
|
+
* Will return all cached promises if no arguments are given
|
|
187
|
+
*
|
|
188
|
+
* @protected
|
|
189
|
+
* @param {...string} sName Promise identifier(s)
|
|
190
|
+
* @returns {Array} Returns the retrieved promises
|
|
191
|
+
*/
|
|
192
|
+
retrieveMany: function () {
|
|
193
|
+
var aResults = [];
|
|
194
|
+
var aKeys = arguments.length
|
|
195
|
+
? [].slice.call(arguments)
|
|
196
|
+
: Object.keys(this._oCache);
|
|
197
|
+
for (var i = 0; i < aKeys.length; i++) {
|
|
198
|
+
aResults.push(this.retrieve(aKeys[i].toString()));
|
|
199
|
+
}
|
|
200
|
+
return aResults;
|
|
201
|
+
},
|
|
202
|
+
/**
|
|
203
|
+
* Removes an existing promise from the promise cache
|
|
204
|
+
*
|
|
205
|
+
* @protected
|
|
206
|
+
* @param {string|Promise} vPromise Promise or identifier
|
|
207
|
+
*/
|
|
208
|
+
remove: function (vPromise) {
|
|
209
|
+
var sKey = typeof vPromise === "string" ? vPromise : _findKeyForPromise.call(this, vPromise);
|
|
210
|
+
var oConfig = sKey && this._oCache && this._oCache[sKey];
|
|
211
|
+
if (oConfig) {
|
|
212
|
+
oConfig._isCanceled = true;
|
|
213
|
+
delete this._oCache[sKey];
|
|
214
|
+
}
|
|
215
|
+
},
|
|
216
|
+
/**
|
|
217
|
+
* Resolves an existing promise from the promise cache
|
|
218
|
+
*
|
|
219
|
+
* @protected
|
|
220
|
+
* @param {string|Promise} vPromise Promise or identifier
|
|
221
|
+
* @param {string} [oValue] Promise result
|
|
222
|
+
* @returns {Promise} Returns the resolved <code>Promise</code>
|
|
223
|
+
*/
|
|
224
|
+
resolve: function (vPromise, oValue) {
|
|
225
|
+
var oConfig = _findConfigByKeyOrPromise.call(this, vPromise, true);
|
|
226
|
+
oConfig.resolve(oValue);
|
|
227
|
+
return oConfig.promise;
|
|
228
|
+
},
|
|
229
|
+
/**
|
|
230
|
+
* Rejects an existing promise from the promise cache
|
|
231
|
+
*
|
|
232
|
+
* @protected
|
|
233
|
+
* @param {string|Promise} vPromise Promise or identifier
|
|
234
|
+
* @param {string} [oValue] Promise error
|
|
235
|
+
* @returns {Promise} Returns the rejected <code>Promise</code>
|
|
236
|
+
*/
|
|
237
|
+
reject: function (vPromise, oValue) {
|
|
238
|
+
var oConfig = _findConfigByKeyOrPromise.call(this, vPromise, true);
|
|
239
|
+
oConfig.reject(oValue);
|
|
240
|
+
return oConfig.promise;
|
|
241
|
+
},
|
|
242
|
+
/**
|
|
243
|
+
* Provides cleanup functionality for the promise cache
|
|
244
|
+
*
|
|
245
|
+
* @protected
|
|
246
|
+
*/
|
|
247
|
+
clear: function () {
|
|
248
|
+
Object.keys(this._oCache).forEach(
|
|
249
|
+
function (sKey) {
|
|
250
|
+
this.remove(sKey);
|
|
251
|
+
}.bind(this)
|
|
252
|
+
);
|
|
253
|
+
},
|
|
254
|
+
/**
|
|
255
|
+
* Provides cleanup functionality for the promise cache
|
|
256
|
+
*
|
|
257
|
+
* @protected
|
|
258
|
+
*/
|
|
259
|
+
destroy: function () {
|
|
260
|
+
this.clear();
|
|
261
|
+
this._oCache = null;
|
|
262
|
+
}
|
|
263
|
+
});
|
|
264
|
+
return PromiseCache;
|
|
265
|
+
}
|
|
266
|
+
);
|
|
@@ -137,6 +137,9 @@ sap.ui.define([
|
|
|
137
137
|
type: "object",
|
|
138
138
|
allowedForComplexProperty: true
|
|
139
139
|
},
|
|
140
|
+
visualSettings: { // This object contains all relevant properties for visual adjustments
|
|
141
|
+
type: "object"
|
|
142
|
+
},
|
|
140
143
|
|
|
141
144
|
// Chart
|
|
142
145
|
|
|
@@ -409,7 +412,7 @@ sap.ui.define([
|
|
|
409
412
|
* @extends sap.ui.base.Object
|
|
410
413
|
*
|
|
411
414
|
* @author SAP SE
|
|
412
|
-
* @version 1.
|
|
415
|
+
* @version 1.95.0
|
|
413
416
|
*
|
|
414
417
|
* @private
|
|
415
418
|
* @experimental
|
|
@@ -983,6 +986,21 @@ sap.ui.define([
|
|
|
983
986
|
};
|
|
984
987
|
aPropertyMethods.push("getExportSettings");
|
|
985
988
|
|
|
989
|
+
/**
|
|
990
|
+
* Gets the visual settings.
|
|
991
|
+
*
|
|
992
|
+
* @function
|
|
993
|
+
* @name getVisualSettings
|
|
994
|
+
* @param {string} sName Name of a property
|
|
995
|
+
* @returns {object|false|null} The visual settings
|
|
996
|
+
* @public
|
|
997
|
+
*/
|
|
998
|
+
PropertyHelper.prototype.getVisualSettings = function(sName) {
|
|
999
|
+
var oProperty = this.getProperty(sName);
|
|
1000
|
+
return oProperty ? oProperty.visualSettings : null;
|
|
1001
|
+
};
|
|
1002
|
+
aPropertyMethods.push("getVisualSettings");
|
|
1003
|
+
|
|
986
1004
|
/**
|
|
987
1005
|
* Gets the unique name (key) of a property.
|
|
988
1006
|
*
|