@sap-ux/preview-middleware 0.20.0 → 0.20.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client/adp/add-fragment.js +46 -46
- package/dist/client/adp/api-handler.js +159 -159
- package/dist/client/adp/command-executor.js +75 -75
- package/dist/client/adp/command-executor.ts +4 -4
- package/dist/client/adp/control-utils.js +44 -44
- package/dist/client/adp/controllers/AddFragment.controller.js +1 -1
- package/dist/client/adp/controllers/AddFragment.controller.ts +2 -2
- package/dist/client/adp/controllers/AddTableColumnFragments.controller.js +1 -1
- package/dist/client/adp/controllers/AddTableColumnFragments.controller.ts +2 -2
- package/dist/client/adp/controllers/BaseDialog.controller.js +2 -13
- package/dist/client/adp/controllers/BaseDialog.controller.ts +7 -25
- package/dist/client/adp/controllers/ControllerExtension.controller.js +268 -210
- package/dist/client/adp/controllers/ControllerExtension.controller.ts +110 -22
- package/dist/client/adp/controllers/ExtensionPoint.controller.js +139 -139
- package/dist/client/adp/controllers/FileExistsDialog.controller.js +66 -66
- package/dist/client/adp/dialog-factory.js +135 -135
- package/dist/client/adp/dialog-factory.ts +3 -1
- package/dist/client/adp/extend-controller.js +48 -0
- package/dist/client/adp/extend-controller.ts +49 -0
- package/dist/client/adp/init-dialogs.js +143 -163
- package/dist/client/adp/init-dialogs.ts +42 -20
- package/dist/client/adp/init.js +9 -1
- package/dist/client/adp/init.ts +6 -1
- package/dist/client/adp/quick-actions/add-new-subpage-quick-action-base.js +96 -96
- package/dist/client/adp/quick-actions/common/add-controller-to-page.js +74 -60
- package/dist/client/adp/quick-actions/common/add-controller-to-page.ts +25 -3
- package/dist/client/adp/quick-actions/common/create-page-action.js +54 -54
- package/dist/client/adp/quick-actions/common/op-add-custom-section.js +39 -39
- package/dist/client/adp/quick-actions/common/op-add-header-field.js +67 -67
- package/dist/client/adp/quick-actions/common/utils.js +18 -18
- package/dist/client/adp/quick-actions/control-types.js +23 -23
- package/dist/client/adp/quick-actions/dialog-enablement-validator.js +24 -24
- package/dist/client/adp/quick-actions/enablement-validator.js +4 -4
- package/dist/client/adp/quick-actions/fe-v2/add-new-subpage.js +81 -81
- package/dist/client/adp/quick-actions/fe-v2/change-table-actions.js +67 -67
- package/dist/client/adp/quick-actions/fe-v2/change-table-columns.js +101 -101
- package/dist/client/adp/quick-actions/fe-v2/create-table-action.js +107 -107
- package/dist/client/adp/quick-actions/fe-v2/create-table-custom-column.js +99 -99
- package/dist/client/adp/quick-actions/fe-v2/lr-enable-semantic-date-range-filter-bar.js +78 -78
- package/dist/client/adp/quick-actions/fe-v2/lr-enable-table-filtering.js +77 -77
- package/dist/client/adp/quick-actions/fe-v2/lr-enable-variant-management.js +69 -69
- package/dist/client/adp/quick-actions/fe-v2/lr-toggle-clear-filter-bar.js +59 -59
- package/dist/client/adp/quick-actions/fe-v2/op-enable-empty-row-mode.js +93 -93
- package/dist/client/adp/quick-actions/fe-v2/op-enable-variant-management.js +84 -84
- package/dist/client/adp/quick-actions/fe-v2/registry.js +77 -77
- package/dist/client/adp/quick-actions/fe-v2/utils.js +116 -116
- package/dist/client/adp/quick-actions/fe-v4/add-new-subpage.js +138 -138
- package/dist/client/adp/quick-actions/fe-v4/change-table-actions.js +79 -79
- package/dist/client/adp/quick-actions/fe-v4/change-table-columns.js +75 -75
- package/dist/client/adp/quick-actions/fe-v4/create-table-action.js +53 -53
- package/dist/client/adp/quick-actions/fe-v4/create-table-custom-column.js +49 -49
- package/dist/client/adp/quick-actions/fe-v4/enable-variant-management.js +81 -81
- package/dist/client/adp/quick-actions/fe-v4/lr-enable-semantic-date-range-filter-bar.js +56 -56
- package/dist/client/adp/quick-actions/fe-v4/lr-enable-table-filtering.js +84 -84
- package/dist/client/adp/quick-actions/fe-v4/lr-toggle-clear-filter-bar.js +53 -53
- package/dist/client/adp/quick-actions/fe-v4/op-enable-empty-row-mode.js +89 -89
- package/dist/client/adp/quick-actions/fe-v4/registry.js +60 -60
- package/dist/client/adp/quick-actions/fe-v4/utils.js +72 -72
- package/dist/client/adp/quick-actions/load.js +44 -44
- package/dist/client/adp/quick-actions/quick-action-base.js +64 -64
- package/dist/client/adp/ui/ControllerExtension.fragment.xml +14 -3
- package/dist/client/adp/utils.js +259 -218
- package/dist/client/adp/utils.ts +55 -7
- package/dist/client/cpe/additional-change-info/add-xml-additional-info.js +75 -75
- package/dist/client/cpe/changes/generic-change.js +326 -326
- package/dist/client/cpe/changes/index.js +10 -10
- package/dist/client/cpe/changes/validator.js +39 -39
- package/dist/client/cpe/connector-service.ts +1 -0
- package/dist/client/cpe/documentation.js +164 -164
- package/dist/client/cpe/feature-service.js +36 -36
- package/dist/client/cpe/logger.js +30 -30
- package/dist/client/cpe/outline/editable.js +37 -37
- package/dist/client/cpe/outline/nodes.js +203 -203
- package/dist/client/cpe/quick-actions/quick-action-definition.js +4 -4
- package/dist/client/cpe/quick-actions/registry.js +143 -143
- package/dist/client/cpe/quick-actions/utils.js +92 -92
- package/dist/client/cpe/types.js +4 -4
- package/dist/client/cpe/ui5-utils.js +33 -33
- package/dist/client/cpe/utils.js +111 -111
- package/dist/client/flp/WorkspaceConnector.js +92 -92
- package/dist/client/flp/common.js +28 -28
- package/dist/client/flp/enableFakeConnector.js +89 -89
- package/dist/client/flp/homepage/Component.js +14 -14
- package/dist/client/flp/initCdm.js +117 -117
- package/dist/client/flp/initConnectors.js +28 -28
- package/dist/client/flp/initRta.js +178 -178
- package/dist/client/i18n.js +56 -56
- package/dist/client/messagebundle.properties +5 -0
- package/dist/client/utils/additional-change-info.js +54 -54
- package/dist/client/utils/application.js +32 -32
- package/dist/client/utils/core.js +84 -84
- package/dist/client/utils/error.js +19 -19
- package/dist/client/utils/fe-v2.js +56 -56
- package/dist/client/utils/fe-v4.js +140 -140
- package/dist/client/utils/version.js +104 -104
- package/package.json +4 -4
|
@@ -1,103 +1,103 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
sap.ui.define(["../../../utils/core", "../table-quick-action-base", "../dialog-enablement-validator"], function (_____utils_core, ___table_quick_action_base, ___dialog_enablement_validator) {
|
|
4
|
-
"use strict";
|
|
5
|
-
|
|
6
|
-
const getControlById = _____utils_core["getControlById"];
|
|
7
|
-
const isA = _____utils_core["isA"];
|
|
8
|
-
const TableQuickActionDefinitionBase = ___table_quick_action_base["TableQuickActionDefinitionBase"];
|
|
9
|
-
const DIALOG_ENABLEMENT_VALIDATOR = ___dialog_enablement_validator["DIALOG_ENABLEMENT_VALIDATOR"];
|
|
10
|
-
const CHANGE_TABLE_COLUMNS = 'change-table-columns';
|
|
11
|
-
const SMART_TABLE_TYPE = 'sap.ui.comp.smarttable.SmartTable';
|
|
12
|
-
const M_TABLE_TYPE = 'sap.m.Table';
|
|
13
|
-
// maintain order if action id
|
|
14
|
-
const CONTROL_TYPES = [SMART_TABLE_TYPE, M_TABLE_TYPE, 'sap.ui.table.TreeTable', 'sap.ui.table.Table'];
|
|
15
|
-
class ChangeTableColumnsQuickAction extends TableQuickActionDefinitionBase {
|
|
16
|
-
constructor(context) {
|
|
17
|
-
super(CHANGE_TABLE_COLUMNS, CONTROL_TYPES, 'V2_QUICK_ACTION_CHANGE_TABLE_COLUMNS', context, {
|
|
18
|
-
includeServiceAction: true
|
|
19
|
-
}, [DIALOG_ENABLEMENT_VALIDATOR]);
|
|
20
|
-
}
|
|
21
|
-
async execute(path) {
|
|
22
|
-
const {
|
|
23
|
-
table,
|
|
24
|
-
iconTabBarFilterKey,
|
|
25
|
-
changeColumnActionId,
|
|
26
|
-
sectionInfo
|
|
27
|
-
} = this.tableMap[path];
|
|
28
|
-
if (!table) {
|
|
29
|
-
return [];
|
|
30
|
-
}
|
|
31
|
-
if (sectionInfo) {
|
|
32
|
-
const {
|
|
33
|
-
layout,
|
|
34
|
-
section,
|
|
35
|
-
subSection
|
|
36
|
-
} = sectionInfo;
|
|
37
|
-
layout?.setSelectedSection(section);
|
|
38
|
-
section.setSelectedSubSection(subSection);
|
|
39
|
-
this.selectOverlay(table);
|
|
40
|
-
} else {
|
|
41
|
-
getControlById(table.getId())?.getDomRef()?.scrollIntoView();
|
|
42
|
-
this.selectOverlay(table);
|
|
43
|
-
}
|
|
44
|
-
if (this.iconTabBar && iconTabBarFilterKey) {
|
|
45
|
-
this.iconTabBar.setSelectedKey(iconTabBarFilterKey);
|
|
46
|
-
}
|
|
47
|
-
if (changeColumnActionId) {
|
|
48
|
-
const executeAction = async () => await this.context.actionService.execute(table.getId(), changeColumnActionId);
|
|
49
|
-
if (isA(SMART_TABLE_TYPE, table)) {
|
|
50
|
-
await executeAction();
|
|
51
|
-
} else if (isA(M_TABLE_TYPE, table)) {
|
|
52
|
-
// if table is busy, i.e. lazy loading, then we subscribe to 'updateFinished' event and call action service when loading is done
|
|
53
|
-
// to avoid reopening the dialog after close
|
|
54
|
-
if (this.isTableLoaded(table)) {
|
|
55
|
-
await executeAction();
|
|
56
|
-
} else {
|
|
57
|
-
table.attachEventOnce('updateFinished', executeAction, this);
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
return [];
|
|
62
|
-
}
|
|
63
|
-
isAbsoluteAggregationBinding(element, aggregationName) {
|
|
64
|
-
const mBindingInfo = element.getBindingInfo(aggregationName);
|
|
65
|
-
const path = mBindingInfo?.path;
|
|
66
|
-
if (!path) {
|
|
67
|
-
return false;
|
|
68
|
-
}
|
|
69
|
-
return path.indexOf('/') === 0;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
/**
|
|
73
|
-
* Checks if table is loaded and has binding context available.
|
|
74
|
-
* This is needed to properly render change columns dialog.
|
|
75
|
-
* Based on {@link https://github.com/SAP/openui5/blob/rel-1.127/src/sap.ui.fl/src/sap/ui/fl/write/_internal/delegates/ODataV2ReadDelegate.js#L269-L271| ODataV2ReadDelegate.getPropertyInfo}.
|
|
76
|
-
*
|
|
77
|
-
* @param element - Table control.
|
|
78
|
-
* @returns True if binding context is available.
|
|
79
|
-
*/
|
|
80
|
-
isTableLoaded(element) {
|
|
81
|
-
const aggregationName = 'items';
|
|
82
|
-
if (this.isAbsoluteAggregationBinding(element, aggregationName)) {
|
|
83
|
-
const bindingInfo = element.getBindingInfo(aggregationName);
|
|
84
|
-
// check to be default model binding otherwise return undefined
|
|
85
|
-
if (typeof bindingInfo.model === 'string' && bindingInfo.model !== '') {
|
|
86
|
-
return false;
|
|
87
|
-
}
|
|
88
|
-
return bindingInfo.path !== undefined;
|
|
89
|
-
} else {
|
|
90
|
-
// here we explicitly request the default models binding context
|
|
91
|
-
const bindingContext = element.getBindingContext();
|
|
92
|
-
return !!bindingContext;
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
var __exports = {
|
|
97
|
-
__esModule: true
|
|
98
|
-
};
|
|
99
|
-
__exports.CHANGE_TABLE_COLUMNS = CHANGE_TABLE_COLUMNS;
|
|
100
|
-
__exports.ChangeTableColumnsQuickAction = ChangeTableColumnsQuickAction;
|
|
101
|
-
return __exports;
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
sap.ui.define(["../../../utils/core", "../table-quick-action-base", "../dialog-enablement-validator"], function (_____utils_core, ___table_quick_action_base, ___dialog_enablement_validator) {
|
|
4
|
+
"use strict";
|
|
5
|
+
|
|
6
|
+
const getControlById = _____utils_core["getControlById"];
|
|
7
|
+
const isA = _____utils_core["isA"];
|
|
8
|
+
const TableQuickActionDefinitionBase = ___table_quick_action_base["TableQuickActionDefinitionBase"];
|
|
9
|
+
const DIALOG_ENABLEMENT_VALIDATOR = ___dialog_enablement_validator["DIALOG_ENABLEMENT_VALIDATOR"];
|
|
10
|
+
const CHANGE_TABLE_COLUMNS = 'change-table-columns';
|
|
11
|
+
const SMART_TABLE_TYPE = 'sap.ui.comp.smarttable.SmartTable';
|
|
12
|
+
const M_TABLE_TYPE = 'sap.m.Table';
|
|
13
|
+
// maintain order if action id
|
|
14
|
+
const CONTROL_TYPES = [SMART_TABLE_TYPE, M_TABLE_TYPE, 'sap.ui.table.TreeTable', 'sap.ui.table.Table'];
|
|
15
|
+
class ChangeTableColumnsQuickAction extends TableQuickActionDefinitionBase {
|
|
16
|
+
constructor(context) {
|
|
17
|
+
super(CHANGE_TABLE_COLUMNS, CONTROL_TYPES, 'V2_QUICK_ACTION_CHANGE_TABLE_COLUMNS', context, {
|
|
18
|
+
includeServiceAction: true
|
|
19
|
+
}, [DIALOG_ENABLEMENT_VALIDATOR]);
|
|
20
|
+
}
|
|
21
|
+
async execute(path) {
|
|
22
|
+
const {
|
|
23
|
+
table,
|
|
24
|
+
iconTabBarFilterKey,
|
|
25
|
+
changeColumnActionId,
|
|
26
|
+
sectionInfo
|
|
27
|
+
} = this.tableMap[path];
|
|
28
|
+
if (!table) {
|
|
29
|
+
return [];
|
|
30
|
+
}
|
|
31
|
+
if (sectionInfo) {
|
|
32
|
+
const {
|
|
33
|
+
layout,
|
|
34
|
+
section,
|
|
35
|
+
subSection
|
|
36
|
+
} = sectionInfo;
|
|
37
|
+
layout?.setSelectedSection(section);
|
|
38
|
+
section.setSelectedSubSection(subSection);
|
|
39
|
+
this.selectOverlay(table);
|
|
40
|
+
} else {
|
|
41
|
+
getControlById(table.getId())?.getDomRef()?.scrollIntoView();
|
|
42
|
+
this.selectOverlay(table);
|
|
43
|
+
}
|
|
44
|
+
if (this.iconTabBar && iconTabBarFilterKey) {
|
|
45
|
+
this.iconTabBar.setSelectedKey(iconTabBarFilterKey);
|
|
46
|
+
}
|
|
47
|
+
if (changeColumnActionId) {
|
|
48
|
+
const executeAction = async () => await this.context.actionService.execute(table.getId(), changeColumnActionId);
|
|
49
|
+
if (isA(SMART_TABLE_TYPE, table)) {
|
|
50
|
+
await executeAction();
|
|
51
|
+
} else if (isA(M_TABLE_TYPE, table)) {
|
|
52
|
+
// if table is busy, i.e. lazy loading, then we subscribe to 'updateFinished' event and call action service when loading is done
|
|
53
|
+
// to avoid reopening the dialog after close
|
|
54
|
+
if (this.isTableLoaded(table)) {
|
|
55
|
+
await executeAction();
|
|
56
|
+
} else {
|
|
57
|
+
table.attachEventOnce('updateFinished', executeAction, this);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
return [];
|
|
62
|
+
}
|
|
63
|
+
isAbsoluteAggregationBinding(element, aggregationName) {
|
|
64
|
+
const mBindingInfo = element.getBindingInfo(aggregationName);
|
|
65
|
+
const path = mBindingInfo?.path;
|
|
66
|
+
if (!path) {
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
69
|
+
return path.indexOf('/') === 0;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Checks if table is loaded and has binding context available.
|
|
74
|
+
* This is needed to properly render change columns dialog.
|
|
75
|
+
* Based on {@link https://github.com/SAP/openui5/blob/rel-1.127/src/sap.ui.fl/src/sap/ui/fl/write/_internal/delegates/ODataV2ReadDelegate.js#L269-L271| ODataV2ReadDelegate.getPropertyInfo}.
|
|
76
|
+
*
|
|
77
|
+
* @param element - Table control.
|
|
78
|
+
* @returns True if binding context is available.
|
|
79
|
+
*/
|
|
80
|
+
isTableLoaded(element) {
|
|
81
|
+
const aggregationName = 'items';
|
|
82
|
+
if (this.isAbsoluteAggregationBinding(element, aggregationName)) {
|
|
83
|
+
const bindingInfo = element.getBindingInfo(aggregationName);
|
|
84
|
+
// check to be default model binding otherwise return undefined
|
|
85
|
+
if (typeof bindingInfo.model === 'string' && bindingInfo.model !== '') {
|
|
86
|
+
return false;
|
|
87
|
+
}
|
|
88
|
+
return bindingInfo.path !== undefined;
|
|
89
|
+
} else {
|
|
90
|
+
// here we explicitly request the default models binding context
|
|
91
|
+
const bindingContext = element.getBindingContext();
|
|
92
|
+
return !!bindingContext;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
var __exports = {
|
|
97
|
+
__esModule: true
|
|
98
|
+
};
|
|
99
|
+
__exports.CHANGE_TABLE_COLUMNS = CHANGE_TABLE_COLUMNS;
|
|
100
|
+
__exports.ChangeTableColumnsQuickAction = ChangeTableColumnsQuickAction;
|
|
101
|
+
return __exports;
|
|
102
102
|
});
|
|
103
103
|
//# sourceMappingURL=change-table-columns.js.map
|
|
@@ -1,109 +1,109 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
sap.ui.define(["sap/ui/dt/OverlayRegistry", "../../../utils/core", "../../dialog-factory", "../table-quick-action-base", "../dialog-enablement-validator"], function (OverlayRegistry, _____utils_core, ____dialog_factory, ___table_quick_action_base, ___dialog_enablement_validator) {
|
|
4
|
-
"use strict";
|
|
5
|
-
|
|
6
|
-
const getControlById = _____utils_core["getControlById"];
|
|
7
|
-
const isA = _____utils_core["isA"];
|
|
8
|
-
const DialogFactory = ____dialog_factory["DialogFactory"];
|
|
9
|
-
const DialogNames = ____dialog_factory["DialogNames"];
|
|
10
|
-
const TableQuickActionDefinitionBase = ___table_quick_action_base["TableQuickActionDefinitionBase"];
|
|
11
|
-
const DIALOG_ENABLEMENT_VALIDATOR = ___dialog_enablement_validator["DIALOG_ENABLEMENT_VALIDATOR"];
|
|
12
|
-
const CREATE_TABLE_ACTION = 'create-table-action';
|
|
13
|
-
const SMART_TABLE_TYPE = 'sap.ui.comp.smarttable.SmartTable';
|
|
14
|
-
const M_TABLE_TYPE = 'sap.m.Table';
|
|
15
|
-
// maintain order if action id
|
|
16
|
-
|
|
17
|
-
const CONTROL_TYPES = [SMART_TABLE_TYPE, M_TABLE_TYPE, 'sap.ui.table.TreeTable', 'sap.ui.table.Table'];
|
|
18
|
-
class AddTableActionQuickAction extends TableQuickActionDefinitionBase {
|
|
19
|
-
constructor(context) {
|
|
20
|
-
super(CREATE_TABLE_ACTION, CONTROL_TYPES, 'QUICK_ACTION_ADD_CUSTOM_TABLE_ACTION', context, undefined, [DIALOG_ENABLEMENT_VALIDATOR]);
|
|
21
|
-
}
|
|
22
|
-
async initialize() {
|
|
23
|
-
const processChild = (child, mapKey) => {
|
|
24
|
-
const table = this.tableMap[mapKey]?.table;
|
|
25
|
-
if (table) {
|
|
26
|
-
const headerToolbar = this.getHeaderToolbar(table);
|
|
27
|
-
if (!headerToolbar) {
|
|
28
|
-
child.enabled = false;
|
|
29
|
-
child.tooltip = this.context.resourceBundle.getText('NO_TABLE_HEADER_TOOLBAR');
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
child.children.forEach((nestedChild, idx) => processChild(nestedChild, `${mapKey}/${idx.toFixed(0)}`));
|
|
33
|
-
};
|
|
34
|
-
await super.initialize();
|
|
35
|
-
|
|
36
|
-
// disable nested actions based on conditions
|
|
37
|
-
this.children.forEach((nestedChild, idx) => processChild(nestedChild, `${idx.toFixed(0)}`));
|
|
38
|
-
}
|
|
39
|
-
async execute(path) {
|
|
40
|
-
const {
|
|
41
|
-
table,
|
|
42
|
-
iconTabBarFilterKey,
|
|
43
|
-
sectionInfo
|
|
44
|
-
} = this.tableMap[path];
|
|
45
|
-
if (!table) {
|
|
46
|
-
return [];
|
|
47
|
-
}
|
|
48
|
-
if (sectionInfo) {
|
|
49
|
-
const {
|
|
50
|
-
layout,
|
|
51
|
-
section,
|
|
52
|
-
subSection
|
|
53
|
-
} = sectionInfo;
|
|
54
|
-
layout?.setSelectedSection(section);
|
|
55
|
-
section.setSelectedSubSection(subSection);
|
|
56
|
-
this.selectOverlay(table);
|
|
57
|
-
} else {
|
|
58
|
-
getControlById(table.getId())?.getDomRef()?.scrollIntoView();
|
|
59
|
-
this.selectOverlay(table);
|
|
60
|
-
}
|
|
61
|
-
if (this.iconTabBar && iconTabBarFilterKey) {
|
|
62
|
-
this.iconTabBar.setSelectedKey(iconTabBarFilterKey);
|
|
63
|
-
}
|
|
64
|
-
const headerToolbar = this.getHeaderToolbar(table);
|
|
65
|
-
|
|
66
|
-
// open dialogBox to add, and content is selected ByDefault
|
|
67
|
-
if (headerToolbar) {
|
|
68
|
-
const overlay = OverlayRegistry.getOverlay(headerToolbar) || [];
|
|
69
|
-
await DialogFactory.createDialog(overlay, this.context.rta, DialogNames.ADD_FRAGMENT, undefined, {
|
|
70
|
-
aggregation: 'content',
|
|
71
|
-
title: 'QUICK_ACTION_ADD_CUSTOM_TABLE_ACTION',
|
|
72
|
-
defaultAggregationArrayIndex: 1
|
|
73
|
-
}, {
|
|
74
|
-
actionName: this.type,
|
|
75
|
-
telemetryEventIdentifier: this.getTelemetryIdentifier()
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
return [];
|
|
79
|
-
}
|
|
80
|
-
getHeaderToolbar(table) {
|
|
81
|
-
let headerToolbar;
|
|
82
|
-
if (isA(SMART_TABLE_TYPE, table)) {
|
|
83
|
-
for (const item of table.getAggregation('items')) {
|
|
84
|
-
if (item.getAggregation('headerToolbar')) {
|
|
85
|
-
headerToolbar = item.getAggregation('headerToolbar');
|
|
86
|
-
break;
|
|
87
|
-
}
|
|
88
|
-
if (isA('sap.m.OverflowToolbar', item)) {
|
|
89
|
-
headerToolbar = item;
|
|
90
|
-
break;
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
if (!headerToolbar) {
|
|
94
|
-
headerToolbar = table.getToolbar();
|
|
95
|
-
}
|
|
96
|
-
} else if (isA(M_TABLE_TYPE, table)) {
|
|
97
|
-
headerToolbar = table.getAggregation('headerToolbar');
|
|
98
|
-
}
|
|
99
|
-
return headerToolbar;
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
var __exports = {
|
|
103
|
-
__esModule: true
|
|
104
|
-
};
|
|
105
|
-
__exports.CREATE_TABLE_ACTION = CREATE_TABLE_ACTION;
|
|
106
|
-
__exports.AddTableActionQuickAction = AddTableActionQuickAction;
|
|
107
|
-
return __exports;
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
sap.ui.define(["sap/ui/dt/OverlayRegistry", "../../../utils/core", "../../dialog-factory", "../table-quick-action-base", "../dialog-enablement-validator"], function (OverlayRegistry, _____utils_core, ____dialog_factory, ___table_quick_action_base, ___dialog_enablement_validator) {
|
|
4
|
+
"use strict";
|
|
5
|
+
|
|
6
|
+
const getControlById = _____utils_core["getControlById"];
|
|
7
|
+
const isA = _____utils_core["isA"];
|
|
8
|
+
const DialogFactory = ____dialog_factory["DialogFactory"];
|
|
9
|
+
const DialogNames = ____dialog_factory["DialogNames"];
|
|
10
|
+
const TableQuickActionDefinitionBase = ___table_quick_action_base["TableQuickActionDefinitionBase"];
|
|
11
|
+
const DIALOG_ENABLEMENT_VALIDATOR = ___dialog_enablement_validator["DIALOG_ENABLEMENT_VALIDATOR"];
|
|
12
|
+
const CREATE_TABLE_ACTION = 'create-table-action';
|
|
13
|
+
const SMART_TABLE_TYPE = 'sap.ui.comp.smarttable.SmartTable';
|
|
14
|
+
const M_TABLE_TYPE = 'sap.m.Table';
|
|
15
|
+
// maintain order if action id
|
|
16
|
+
|
|
17
|
+
const CONTROL_TYPES = [SMART_TABLE_TYPE, M_TABLE_TYPE, 'sap.ui.table.TreeTable', 'sap.ui.table.Table'];
|
|
18
|
+
class AddTableActionQuickAction extends TableQuickActionDefinitionBase {
|
|
19
|
+
constructor(context) {
|
|
20
|
+
super(CREATE_TABLE_ACTION, CONTROL_TYPES, 'QUICK_ACTION_ADD_CUSTOM_TABLE_ACTION', context, undefined, [DIALOG_ENABLEMENT_VALIDATOR]);
|
|
21
|
+
}
|
|
22
|
+
async initialize() {
|
|
23
|
+
const processChild = (child, mapKey) => {
|
|
24
|
+
const table = this.tableMap[mapKey]?.table;
|
|
25
|
+
if (table) {
|
|
26
|
+
const headerToolbar = this.getHeaderToolbar(table);
|
|
27
|
+
if (!headerToolbar) {
|
|
28
|
+
child.enabled = false;
|
|
29
|
+
child.tooltip = this.context.resourceBundle.getText('NO_TABLE_HEADER_TOOLBAR');
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
child.children.forEach((nestedChild, idx) => processChild(nestedChild, `${mapKey}/${idx.toFixed(0)}`));
|
|
33
|
+
};
|
|
34
|
+
await super.initialize();
|
|
35
|
+
|
|
36
|
+
// disable nested actions based on conditions
|
|
37
|
+
this.children.forEach((nestedChild, idx) => processChild(nestedChild, `${idx.toFixed(0)}`));
|
|
38
|
+
}
|
|
39
|
+
async execute(path) {
|
|
40
|
+
const {
|
|
41
|
+
table,
|
|
42
|
+
iconTabBarFilterKey,
|
|
43
|
+
sectionInfo
|
|
44
|
+
} = this.tableMap[path];
|
|
45
|
+
if (!table) {
|
|
46
|
+
return [];
|
|
47
|
+
}
|
|
48
|
+
if (sectionInfo) {
|
|
49
|
+
const {
|
|
50
|
+
layout,
|
|
51
|
+
section,
|
|
52
|
+
subSection
|
|
53
|
+
} = sectionInfo;
|
|
54
|
+
layout?.setSelectedSection(section);
|
|
55
|
+
section.setSelectedSubSection(subSection);
|
|
56
|
+
this.selectOverlay(table);
|
|
57
|
+
} else {
|
|
58
|
+
getControlById(table.getId())?.getDomRef()?.scrollIntoView();
|
|
59
|
+
this.selectOverlay(table);
|
|
60
|
+
}
|
|
61
|
+
if (this.iconTabBar && iconTabBarFilterKey) {
|
|
62
|
+
this.iconTabBar.setSelectedKey(iconTabBarFilterKey);
|
|
63
|
+
}
|
|
64
|
+
const headerToolbar = this.getHeaderToolbar(table);
|
|
65
|
+
|
|
66
|
+
// open dialogBox to add, and content is selected ByDefault
|
|
67
|
+
if (headerToolbar) {
|
|
68
|
+
const overlay = OverlayRegistry.getOverlay(headerToolbar) || [];
|
|
69
|
+
await DialogFactory.createDialog(overlay, this.context.rta, DialogNames.ADD_FRAGMENT, undefined, {
|
|
70
|
+
aggregation: 'content',
|
|
71
|
+
title: 'QUICK_ACTION_ADD_CUSTOM_TABLE_ACTION',
|
|
72
|
+
defaultAggregationArrayIndex: 1
|
|
73
|
+
}, {
|
|
74
|
+
actionName: this.type,
|
|
75
|
+
telemetryEventIdentifier: this.getTelemetryIdentifier()
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
return [];
|
|
79
|
+
}
|
|
80
|
+
getHeaderToolbar(table) {
|
|
81
|
+
let headerToolbar;
|
|
82
|
+
if (isA(SMART_TABLE_TYPE, table)) {
|
|
83
|
+
for (const item of table.getAggregation('items')) {
|
|
84
|
+
if (item.getAggregation('headerToolbar')) {
|
|
85
|
+
headerToolbar = item.getAggregation('headerToolbar');
|
|
86
|
+
break;
|
|
87
|
+
}
|
|
88
|
+
if (isA('sap.m.OverflowToolbar', item)) {
|
|
89
|
+
headerToolbar = item;
|
|
90
|
+
break;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
if (!headerToolbar) {
|
|
94
|
+
headerToolbar = table.getToolbar();
|
|
95
|
+
}
|
|
96
|
+
} else if (isA(M_TABLE_TYPE, table)) {
|
|
97
|
+
headerToolbar = table.getAggregation('headerToolbar');
|
|
98
|
+
}
|
|
99
|
+
return headerToolbar;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
var __exports = {
|
|
103
|
+
__esModule: true
|
|
104
|
+
};
|
|
105
|
+
__exports.CREATE_TABLE_ACTION = CREATE_TABLE_ACTION;
|
|
106
|
+
__exports.AddTableActionQuickAction = AddTableActionQuickAction;
|
|
107
|
+
return __exports;
|
|
108
108
|
});
|
|
109
109
|
//# sourceMappingURL=create-table-action.js.map
|
|
@@ -1,101 +1,101 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
sap.ui.define(["sap/ui/dt/OverlayRegistry", "../../../utils/core", "../../dialog-factory", "../control-types", "../table-quick-action-base", "../../utils", "../../../i18n", "../dialog-enablement-validator"], function (OverlayRegistry, _____utils_core, ____dialog_factory, ___control_types, ___table_quick_action_base, ____utils, _____i18n, ___dialog_enablement_validator) {
|
|
4
|
-
"use strict";
|
|
5
|
-
|
|
6
|
-
const getControlById = _____utils_core["getControlById"];
|
|
7
|
-
const isA = _____utils_core["isA"];
|
|
8
|
-
const DialogNames = ____dialog_factory["DialogNames"];
|
|
9
|
-
const DialogFactory = ____dialog_factory["DialogFactory"];
|
|
10
|
-
const ANALYTICAL_TABLE_TYPE = ___control_types["ANALYTICAL_TABLE_TYPE"];
|
|
11
|
-
const GRID_TABLE_TYPE = ___control_types["GRID_TABLE_TYPE"];
|
|
12
|
-
const M_TABLE_TYPE = ___control_types["M_TABLE_TYPE"];
|
|
13
|
-
const SMART_TABLE_TYPE = ___control_types["SMART_TABLE_TYPE"];
|
|
14
|
-
const TREE_TABLE_TYPE = ___control_types["TREE_TABLE_TYPE"];
|
|
15
|
-
const TableQuickActionDefinitionBase = ___table_quick_action_base["TableQuickActionDefinitionBase"];
|
|
16
|
-
const notifyUser = ____utils["notifyUser"];
|
|
17
|
-
const getTextBundle = _____i18n["getTextBundle"];
|
|
18
|
-
const DIALOG_ENABLEMENT_VALIDATOR = ___dialog_enablement_validator["DIALOG_ENABLEMENT_VALIDATOR"];
|
|
19
|
-
const CREATE_TABLE_CUSTOM_COLUMN = 'create-table-custom-column';
|
|
20
|
-
const CONTROL_TYPES = [SMART_TABLE_TYPE, M_TABLE_TYPE, TREE_TABLE_TYPE, GRID_TABLE_TYPE];
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* Reusable function which performs some preparation steps before table action execution
|
|
24
|
-
*
|
|
25
|
-
* @param table - table element
|
|
26
|
-
* @param sectionInfo - section data
|
|
27
|
-
* @param iconTabBar - icon tab bar element
|
|
28
|
-
* @param iconTabBarFilterKey - tab bar key to select a tab
|
|
29
|
-
*/
|
|
30
|
-
function preprocessActionExecution(table, sectionInfo, iconTabBar, iconTabBarFilterKey) {
|
|
31
|
-
if (sectionInfo) {
|
|
32
|
-
const {
|
|
33
|
-
layout,
|
|
34
|
-
section,
|
|
35
|
-
subSection
|
|
36
|
-
} = sectionInfo;
|
|
37
|
-
layout?.setSelectedSection(section);
|
|
38
|
-
section.setSelectedSubSection(subSection);
|
|
39
|
-
} else {
|
|
40
|
-
getControlById(table.getId())?.getDomRef()?.scrollIntoView();
|
|
41
|
-
}
|
|
42
|
-
if (iconTabBar && iconTabBarFilterKey) {
|
|
43
|
-
iconTabBar.setSelectedKey(iconTabBarFilterKey);
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
class AddTableCustomColumnQuickAction extends TableQuickActionDefinitionBase {
|
|
47
|
-
constructor(context) {
|
|
48
|
-
super(CREATE_TABLE_CUSTOM_COLUMN, CONTROL_TYPES, 'QUICK_ACTION_ADD_CUSTOM_TABLE_COLUMN', context, {
|
|
49
|
-
areTableRowsRequired: true
|
|
50
|
-
}, [DIALOG_ENABLEMENT_VALIDATOR]);
|
|
51
|
-
}
|
|
52
|
-
async execute(path) {
|
|
53
|
-
const {
|
|
54
|
-
table,
|
|
55
|
-
iconTabBarFilterKey,
|
|
56
|
-
sectionInfo
|
|
57
|
-
} = this.tableMap[path];
|
|
58
|
-
if (!table) {
|
|
59
|
-
return [];
|
|
60
|
-
}
|
|
61
|
-
preprocessActionExecution(table, sectionInfo, this.iconTabBar, iconTabBarFilterKey);
|
|
62
|
-
this.selectOverlay(table);
|
|
63
|
-
let tableInternal = table;
|
|
64
|
-
if (isA(SMART_TABLE_TYPE, table)) {
|
|
65
|
-
const itemsAggregation = table.getAggregation('items');
|
|
66
|
-
tableInternal = itemsAggregation.find(item => {
|
|
67
|
-
return [M_TABLE_TYPE, TREE_TABLE_TYPE, ANALYTICAL_TABLE_TYPE, GRID_TABLE_TYPE].some(tType => isA(tType, item));
|
|
68
|
-
});
|
|
69
|
-
if (!tableInternal) {
|
|
70
|
-
return [];
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
const overlay = OverlayRegistry.getOverlay(tableInternal) || [];
|
|
74
|
-
if (!overlay) {
|
|
75
|
-
return [];
|
|
76
|
-
}
|
|
77
|
-
if (isA(M_TABLE_TYPE, tableInternal) && tableInternal.getAggregation('items').length === 0) {
|
|
78
|
-
const bundle = await getTextBundle();
|
|
79
|
-
notifyUser(bundle.getText('TABLE_ROWS_NEEDED_TO_CREATE_CUSTOM_COLUMN'), 8000);
|
|
80
|
-
return [];
|
|
81
|
-
}
|
|
82
|
-
const dialog = [TREE_TABLE_TYPE, ANALYTICAL_TABLE_TYPE, GRID_TABLE_TYPE].some(type => isA(type, tableInternal)) ? DialogNames.ADD_FRAGMENT : DialogNames.ADD_TABLE_COLUMN_FRAGMENTS;
|
|
83
|
-
await DialogFactory.createDialog(overlay, this.context.rta, dialog, undefined, {
|
|
84
|
-
aggregation: 'columns',
|
|
85
|
-
title: 'QUICK_ACTION_ADD_CUSTOM_TABLE_COLUMN'
|
|
86
|
-
}, {
|
|
87
|
-
actionName: this.type,
|
|
88
|
-
telemetryEventIdentifier: this.getTelemetryIdentifier()
|
|
89
|
-
});
|
|
90
|
-
return [];
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
var __exports = {
|
|
94
|
-
__esModule: true
|
|
95
|
-
};
|
|
96
|
-
__exports.CREATE_TABLE_CUSTOM_COLUMN = CREATE_TABLE_CUSTOM_COLUMN;
|
|
97
|
-
__exports.preprocessActionExecution = preprocessActionExecution;
|
|
98
|
-
__exports.AddTableCustomColumnQuickAction = AddTableCustomColumnQuickAction;
|
|
99
|
-
return __exports;
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
sap.ui.define(["sap/ui/dt/OverlayRegistry", "../../../utils/core", "../../dialog-factory", "../control-types", "../table-quick-action-base", "../../utils", "../../../i18n", "../dialog-enablement-validator"], function (OverlayRegistry, _____utils_core, ____dialog_factory, ___control_types, ___table_quick_action_base, ____utils, _____i18n, ___dialog_enablement_validator) {
|
|
4
|
+
"use strict";
|
|
5
|
+
|
|
6
|
+
const getControlById = _____utils_core["getControlById"];
|
|
7
|
+
const isA = _____utils_core["isA"];
|
|
8
|
+
const DialogNames = ____dialog_factory["DialogNames"];
|
|
9
|
+
const DialogFactory = ____dialog_factory["DialogFactory"];
|
|
10
|
+
const ANALYTICAL_TABLE_TYPE = ___control_types["ANALYTICAL_TABLE_TYPE"];
|
|
11
|
+
const GRID_TABLE_TYPE = ___control_types["GRID_TABLE_TYPE"];
|
|
12
|
+
const M_TABLE_TYPE = ___control_types["M_TABLE_TYPE"];
|
|
13
|
+
const SMART_TABLE_TYPE = ___control_types["SMART_TABLE_TYPE"];
|
|
14
|
+
const TREE_TABLE_TYPE = ___control_types["TREE_TABLE_TYPE"];
|
|
15
|
+
const TableQuickActionDefinitionBase = ___table_quick_action_base["TableQuickActionDefinitionBase"];
|
|
16
|
+
const notifyUser = ____utils["notifyUser"];
|
|
17
|
+
const getTextBundle = _____i18n["getTextBundle"];
|
|
18
|
+
const DIALOG_ENABLEMENT_VALIDATOR = ___dialog_enablement_validator["DIALOG_ENABLEMENT_VALIDATOR"];
|
|
19
|
+
const CREATE_TABLE_CUSTOM_COLUMN = 'create-table-custom-column';
|
|
20
|
+
const CONTROL_TYPES = [SMART_TABLE_TYPE, M_TABLE_TYPE, TREE_TABLE_TYPE, GRID_TABLE_TYPE];
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Reusable function which performs some preparation steps before table action execution
|
|
24
|
+
*
|
|
25
|
+
* @param table - table element
|
|
26
|
+
* @param sectionInfo - section data
|
|
27
|
+
* @param iconTabBar - icon tab bar element
|
|
28
|
+
* @param iconTabBarFilterKey - tab bar key to select a tab
|
|
29
|
+
*/
|
|
30
|
+
function preprocessActionExecution(table, sectionInfo, iconTabBar, iconTabBarFilterKey) {
|
|
31
|
+
if (sectionInfo) {
|
|
32
|
+
const {
|
|
33
|
+
layout,
|
|
34
|
+
section,
|
|
35
|
+
subSection
|
|
36
|
+
} = sectionInfo;
|
|
37
|
+
layout?.setSelectedSection(section);
|
|
38
|
+
section.setSelectedSubSection(subSection);
|
|
39
|
+
} else {
|
|
40
|
+
getControlById(table.getId())?.getDomRef()?.scrollIntoView();
|
|
41
|
+
}
|
|
42
|
+
if (iconTabBar && iconTabBarFilterKey) {
|
|
43
|
+
iconTabBar.setSelectedKey(iconTabBarFilterKey);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
class AddTableCustomColumnQuickAction extends TableQuickActionDefinitionBase {
|
|
47
|
+
constructor(context) {
|
|
48
|
+
super(CREATE_TABLE_CUSTOM_COLUMN, CONTROL_TYPES, 'QUICK_ACTION_ADD_CUSTOM_TABLE_COLUMN', context, {
|
|
49
|
+
areTableRowsRequired: true
|
|
50
|
+
}, [DIALOG_ENABLEMENT_VALIDATOR]);
|
|
51
|
+
}
|
|
52
|
+
async execute(path) {
|
|
53
|
+
const {
|
|
54
|
+
table,
|
|
55
|
+
iconTabBarFilterKey,
|
|
56
|
+
sectionInfo
|
|
57
|
+
} = this.tableMap[path];
|
|
58
|
+
if (!table) {
|
|
59
|
+
return [];
|
|
60
|
+
}
|
|
61
|
+
preprocessActionExecution(table, sectionInfo, this.iconTabBar, iconTabBarFilterKey);
|
|
62
|
+
this.selectOverlay(table);
|
|
63
|
+
let tableInternal = table;
|
|
64
|
+
if (isA(SMART_TABLE_TYPE, table)) {
|
|
65
|
+
const itemsAggregation = table.getAggregation('items');
|
|
66
|
+
tableInternal = itemsAggregation.find(item => {
|
|
67
|
+
return [M_TABLE_TYPE, TREE_TABLE_TYPE, ANALYTICAL_TABLE_TYPE, GRID_TABLE_TYPE].some(tType => isA(tType, item));
|
|
68
|
+
});
|
|
69
|
+
if (!tableInternal) {
|
|
70
|
+
return [];
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
const overlay = OverlayRegistry.getOverlay(tableInternal) || [];
|
|
74
|
+
if (!overlay) {
|
|
75
|
+
return [];
|
|
76
|
+
}
|
|
77
|
+
if (isA(M_TABLE_TYPE, tableInternal) && tableInternal.getAggregation('items').length === 0) {
|
|
78
|
+
const bundle = await getTextBundle();
|
|
79
|
+
notifyUser(bundle.getText('TABLE_ROWS_NEEDED_TO_CREATE_CUSTOM_COLUMN'), 8000);
|
|
80
|
+
return [];
|
|
81
|
+
}
|
|
82
|
+
const dialog = [TREE_TABLE_TYPE, ANALYTICAL_TABLE_TYPE, GRID_TABLE_TYPE].some(type => isA(type, tableInternal)) ? DialogNames.ADD_FRAGMENT : DialogNames.ADD_TABLE_COLUMN_FRAGMENTS;
|
|
83
|
+
await DialogFactory.createDialog(overlay, this.context.rta, dialog, undefined, {
|
|
84
|
+
aggregation: 'columns',
|
|
85
|
+
title: 'QUICK_ACTION_ADD_CUSTOM_TABLE_COLUMN'
|
|
86
|
+
}, {
|
|
87
|
+
actionName: this.type,
|
|
88
|
+
telemetryEventIdentifier: this.getTelemetryIdentifier()
|
|
89
|
+
});
|
|
90
|
+
return [];
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
var __exports = {
|
|
94
|
+
__esModule: true
|
|
95
|
+
};
|
|
96
|
+
__exports.CREATE_TABLE_CUSTOM_COLUMN = CREATE_TABLE_CUSTOM_COLUMN;
|
|
97
|
+
__exports.preprocessActionExecution = preprocessActionExecution;
|
|
98
|
+
__exports.AddTableCustomColumnQuickAction = AddTableCustomColumnQuickAction;
|
|
99
|
+
return __exports;
|
|
100
100
|
});
|
|
101
101
|
//# sourceMappingURL=create-table-custom-column.js.map
|