@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,137 +1,137 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
sap.ui.define(["sap/ui/core/Fragment", "../i18n", "./controllers/AddFragment.controller", "./controllers/AddTableColumnFragments.controller", "./controllers/ControllerExtension.controller", "./controllers/ExtensionPoint.controller", "./controllers/FileExistsDialog.controller", "./controllers/AddSubpage.controller"], function (Fragment, ___i18n, __AddFragment, __AddTableColumnFragments, __ControllerExtension, __ExtensionPoint, __FileExistsDialog, __AddSubpage) {
|
|
4
|
-
"use strict";
|
|
5
|
-
|
|
6
|
-
function _interopRequireDefault(obj) {
|
|
7
|
-
return obj && obj.__esModule && typeof obj.default !== "undefined" ? obj.default : obj;
|
|
8
|
-
}
|
|
9
|
-
const getTextBundle = ___i18n["getTextBundle"];
|
|
10
|
-
const AddFragment = _interopRequireDefault(__AddFragment);
|
|
11
|
-
const AddTableColumnFragments = _interopRequireDefault(__AddTableColumnFragments);
|
|
12
|
-
const ControllerExtension = _interopRequireDefault(__ControllerExtension);
|
|
13
|
-
const ExtensionPoint = _interopRequireDefault(__ExtensionPoint);
|
|
14
|
-
const FileExistsDialog = _interopRequireDefault(__FileExistsDialog);
|
|
15
|
-
const AddSubpage = _interopRequireDefault(__AddSubpage);
|
|
16
|
-
var DialogNames = /*#__PURE__*/function (DialogNames) {
|
|
17
|
-
DialogNames["ADD_FRAGMENT"] = "AddFragment";
|
|
18
|
-
DialogNames["ADD_TABLE_COLUMN_FRAGMENTS"] = "AddTableColumnFragments";
|
|
19
|
-
DialogNames["CONTROLLER_EXTENSION"] = "ControllerExtension";
|
|
20
|
-
DialogNames["ADD_FRAGMENT_AT_EXTENSION_POINT"] = "ExtensionPoint";
|
|
21
|
-
DialogNames["FILE_EXISTS"] = "FileExistsDialog";
|
|
22
|
-
DialogNames["ADD_SUBPAGE"] = "AddSubpage";
|
|
23
|
-
return DialogNames;
|
|
24
|
-
}(DialogNames || {});
|
|
25
|
-
const OPEN_DIALOG_STATUS_CHANGED = 'OPEN_DIALOG_STATUS_CHANGED';
|
|
26
|
-
class DialogFactory {
|
|
27
|
-
static eventTarget = new EventTarget();
|
|
28
|
-
static isDialogOpen = false;
|
|
29
|
-
/**
|
|
30
|
-
* Only one dialog can be open at a time. This flag indicates if a new dialog can be opened.
|
|
31
|
-
*/
|
|
32
|
-
|
|
33
|
-
static get canOpenDialog() {
|
|
34
|
-
return !this.isDialogOpen;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
* Factory method for creating a new dialog.
|
|
39
|
-
*
|
|
40
|
-
* @param overlay - Control overlay.
|
|
41
|
-
* @param rta - Runtime Authoring instance.
|
|
42
|
-
* @param dialogName - Dialog name.
|
|
43
|
-
* @param data - Data to be passed to the dialog.
|
|
44
|
-
* @param options - Dialog options.
|
|
45
|
-
* @param telemetryData - Telemetry data.
|
|
46
|
-
*/
|
|
47
|
-
static async createDialog(overlay, rta, dialogName, data) {
|
|
48
|
-
let options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {};
|
|
49
|
-
let telemetryData = arguments.length > 5 ? arguments[5] : undefined;
|
|
50
|
-
if (this.isDialogOpen) {
|
|
51
|
-
return;
|
|
52
|
-
}
|
|
53
|
-
let controller;
|
|
54
|
-
const resources = await getTextBundle();
|
|
55
|
-
switch (dialogName) {
|
|
56
|
-
case DialogNames.ADD_FRAGMENT:
|
|
57
|
-
controller = new AddFragment(`open.ux.preview.client.adp.controllers.${dialogName}`, overlay, rta, {
|
|
58
|
-
...('aggregation' in options && {
|
|
59
|
-
aggregation: options.aggregation
|
|
60
|
-
}),
|
|
61
|
-
...('defaultAggregationArrayIndex' in options && {
|
|
62
|
-
defaultAggregationArrayIndex: options.defaultAggregationArrayIndex
|
|
63
|
-
}),
|
|
64
|
-
title: resources.getText(options.title ?? 'ADP_ADD_FRAGMENT_DIALOG_TITLE')
|
|
65
|
-
}, data, telemetryData);
|
|
66
|
-
break;
|
|
67
|
-
case DialogNames.ADD_TABLE_COLUMN_FRAGMENTS:
|
|
68
|
-
controller = new AddTableColumnFragments(`open.ux.preview.client.adp.controllers.${dialogName}`, overlay, rta, {
|
|
69
|
-
...('aggregation' in options && {
|
|
70
|
-
aggregation: options.aggregation
|
|
71
|
-
}),
|
|
72
|
-
title: resources.getText(options.title ?? 'ADP_ADD_FRAGMENT_DIALOG_TITLE')
|
|
73
|
-
}, telemetryData);
|
|
74
|
-
break;
|
|
75
|
-
case DialogNames.CONTROLLER_EXTENSION:
|
|
76
|
-
controller = new ControllerExtension(`open.ux.preview.client.adp.controllers.${dialogName}`, overlay, rta, telemetryData);
|
|
77
|
-
break;
|
|
78
|
-
case DialogNames.ADD_FRAGMENT_AT_EXTENSION_POINT:
|
|
79
|
-
controller = new ExtensionPoint(`open.ux.preview.client.adp.controllers.${dialogName}`, overlay, rta, data);
|
|
80
|
-
break;
|
|
81
|
-
case DialogNames.FILE_EXISTS:
|
|
82
|
-
controller = new FileExistsDialog(`open.ux.preview.client.adp.controllers.${dialogName}`, options);
|
|
83
|
-
break;
|
|
84
|
-
case DialogNames.ADD_SUBPAGE:
|
|
85
|
-
controller = new AddSubpage(`open.ux.preview.client.adp.controllers.${dialogName}`, overlay, rta, {
|
|
86
|
-
...options,
|
|
87
|
-
title: resources.getText(options.title ?? 'ADD_SUB_PAGE_DIALOG_TITLE')
|
|
88
|
-
});
|
|
89
|
-
break;
|
|
90
|
-
}
|
|
91
|
-
const id = dialogName === DialogNames.ADD_FRAGMENT_AT_EXTENSION_POINT ? `dialog--${dialogName}` : undefined;
|
|
92
|
-
const dialog = await Fragment.load({
|
|
93
|
-
name: `open.ux.preview.client.adp.ui.${dialogName}`,
|
|
94
|
-
controller,
|
|
95
|
-
id
|
|
96
|
-
});
|
|
97
|
-
this.isDialogOpen = true;
|
|
98
|
-
dialog.attachBeforeClose(() => {
|
|
99
|
-
this.updateStatus(false);
|
|
100
|
-
});
|
|
101
|
-
await controller.setup(dialog);
|
|
102
|
-
this.updateStatus(true);
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
/**
|
|
106
|
-
* Updates open dialog status.
|
|
107
|
-
*
|
|
108
|
-
* @param isDialogOpen Flag indicating if there is an open dialog.
|
|
109
|
-
*/
|
|
110
|
-
static updateStatus(isDialogOpen) {
|
|
111
|
-
this.isDialogOpen = isDialogOpen;
|
|
112
|
-
const event = new CustomEvent(OPEN_DIALOG_STATUS_CHANGED);
|
|
113
|
-
this.eventTarget.dispatchEvent(event);
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
/**
|
|
117
|
-
* Attach event handler for OPEN_DIALOG_STATUS_CHANGED event.
|
|
118
|
-
*
|
|
119
|
-
* @param handler Event handler.
|
|
120
|
-
* @returns Function that removes listener.
|
|
121
|
-
*/
|
|
122
|
-
static onOpenDialogStatusChange(handler) {
|
|
123
|
-
this.eventTarget.addEventListener(OPEN_DIALOG_STATUS_CHANGED, handler);
|
|
124
|
-
return () => {
|
|
125
|
-
this.eventTarget.removeEventListener(OPEN_DIALOG_STATUS_CHANGED, handler);
|
|
126
|
-
};
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
var __exports = {
|
|
130
|
-
__esModule: true
|
|
131
|
-
};
|
|
132
|
-
__exports.DialogNames = DialogNames;
|
|
133
|
-
__exports.OPEN_DIALOG_STATUS_CHANGED = OPEN_DIALOG_STATUS_CHANGED;
|
|
134
|
-
__exports.DialogFactory = DialogFactory;
|
|
135
|
-
return __exports;
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
sap.ui.define(["sap/ui/core/Fragment", "../i18n", "./controllers/AddFragment.controller", "./controllers/AddTableColumnFragments.controller", "./controllers/ControllerExtension.controller", "./controllers/ExtensionPoint.controller", "./controllers/FileExistsDialog.controller", "./controllers/AddSubpage.controller"], function (Fragment, ___i18n, __AddFragment, __AddTableColumnFragments, __ControllerExtension, __ExtensionPoint, __FileExistsDialog, __AddSubpage) {
|
|
4
|
+
"use strict";
|
|
5
|
+
|
|
6
|
+
function _interopRequireDefault(obj) {
|
|
7
|
+
return obj && obj.__esModule && typeof obj.default !== "undefined" ? obj.default : obj;
|
|
8
|
+
}
|
|
9
|
+
const getTextBundle = ___i18n["getTextBundle"];
|
|
10
|
+
const AddFragment = _interopRequireDefault(__AddFragment);
|
|
11
|
+
const AddTableColumnFragments = _interopRequireDefault(__AddTableColumnFragments);
|
|
12
|
+
const ControllerExtension = _interopRequireDefault(__ControllerExtension);
|
|
13
|
+
const ExtensionPoint = _interopRequireDefault(__ExtensionPoint);
|
|
14
|
+
const FileExistsDialog = _interopRequireDefault(__FileExistsDialog);
|
|
15
|
+
const AddSubpage = _interopRequireDefault(__AddSubpage);
|
|
16
|
+
var DialogNames = /*#__PURE__*/function (DialogNames) {
|
|
17
|
+
DialogNames["ADD_FRAGMENT"] = "AddFragment";
|
|
18
|
+
DialogNames["ADD_TABLE_COLUMN_FRAGMENTS"] = "AddTableColumnFragments";
|
|
19
|
+
DialogNames["CONTROLLER_EXTENSION"] = "ControllerExtension";
|
|
20
|
+
DialogNames["ADD_FRAGMENT_AT_EXTENSION_POINT"] = "ExtensionPoint";
|
|
21
|
+
DialogNames["FILE_EXISTS"] = "FileExistsDialog";
|
|
22
|
+
DialogNames["ADD_SUBPAGE"] = "AddSubpage";
|
|
23
|
+
return DialogNames;
|
|
24
|
+
}(DialogNames || {});
|
|
25
|
+
const OPEN_DIALOG_STATUS_CHANGED = 'OPEN_DIALOG_STATUS_CHANGED';
|
|
26
|
+
class DialogFactory {
|
|
27
|
+
static eventTarget = new EventTarget();
|
|
28
|
+
static isDialogOpen = false;
|
|
29
|
+
/**
|
|
30
|
+
* Only one dialog can be open at a time. This flag indicates if a new dialog can be opened.
|
|
31
|
+
*/
|
|
32
|
+
|
|
33
|
+
static get canOpenDialog() {
|
|
34
|
+
return !this.isDialogOpen;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Factory method for creating a new dialog.
|
|
39
|
+
*
|
|
40
|
+
* @param overlay - Control overlay.
|
|
41
|
+
* @param rta - Runtime Authoring instance.
|
|
42
|
+
* @param dialogName - Dialog name.
|
|
43
|
+
* @param data - Data to be passed to the dialog.
|
|
44
|
+
* @param options - Dialog options.
|
|
45
|
+
* @param telemetryData - Telemetry data.
|
|
46
|
+
*/
|
|
47
|
+
static async createDialog(overlay, rta, dialogName, data) {
|
|
48
|
+
let options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {};
|
|
49
|
+
let telemetryData = arguments.length > 5 ? arguments[5] : undefined;
|
|
50
|
+
if (this.isDialogOpen) {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
let controller;
|
|
54
|
+
const resources = await getTextBundle();
|
|
55
|
+
switch (dialogName) {
|
|
56
|
+
case DialogNames.ADD_FRAGMENT:
|
|
57
|
+
controller = new AddFragment(`open.ux.preview.client.adp.controllers.${dialogName}`, overlay, rta, {
|
|
58
|
+
...('aggregation' in options && {
|
|
59
|
+
aggregation: options.aggregation
|
|
60
|
+
}),
|
|
61
|
+
...('defaultAggregationArrayIndex' in options && {
|
|
62
|
+
defaultAggregationArrayIndex: options.defaultAggregationArrayIndex
|
|
63
|
+
}),
|
|
64
|
+
title: resources.getText(options.title ?? 'ADP_ADD_FRAGMENT_DIALOG_TITLE')
|
|
65
|
+
}, data, telemetryData);
|
|
66
|
+
break;
|
|
67
|
+
case DialogNames.ADD_TABLE_COLUMN_FRAGMENTS:
|
|
68
|
+
controller = new AddTableColumnFragments(`open.ux.preview.client.adp.controllers.${dialogName}`, overlay, rta, {
|
|
69
|
+
...('aggregation' in options && {
|
|
70
|
+
aggregation: options.aggregation
|
|
71
|
+
}),
|
|
72
|
+
title: resources.getText(options.title ?? 'ADP_ADD_FRAGMENT_DIALOG_TITLE')
|
|
73
|
+
}, telemetryData);
|
|
74
|
+
break;
|
|
75
|
+
case DialogNames.CONTROLLER_EXTENSION:
|
|
76
|
+
controller = new ControllerExtension(`open.ux.preview.client.adp.controllers.${dialogName}`, overlay, rta, data, telemetryData);
|
|
77
|
+
break;
|
|
78
|
+
case DialogNames.ADD_FRAGMENT_AT_EXTENSION_POINT:
|
|
79
|
+
controller = new ExtensionPoint(`open.ux.preview.client.adp.controllers.${dialogName}`, overlay, rta, data);
|
|
80
|
+
break;
|
|
81
|
+
case DialogNames.FILE_EXISTS:
|
|
82
|
+
controller = new FileExistsDialog(`open.ux.preview.client.adp.controllers.${dialogName}`, options);
|
|
83
|
+
break;
|
|
84
|
+
case DialogNames.ADD_SUBPAGE:
|
|
85
|
+
controller = new AddSubpage(`open.ux.preview.client.adp.controllers.${dialogName}`, overlay, rta, {
|
|
86
|
+
...options,
|
|
87
|
+
title: resources.getText(options.title ?? 'ADD_SUB_PAGE_DIALOG_TITLE')
|
|
88
|
+
});
|
|
89
|
+
break;
|
|
90
|
+
}
|
|
91
|
+
const id = dialogName === DialogNames.ADD_FRAGMENT_AT_EXTENSION_POINT ? `dialog--${dialogName}` : undefined;
|
|
92
|
+
const dialog = await Fragment.load({
|
|
93
|
+
name: `open.ux.preview.client.adp.ui.${dialogName}`,
|
|
94
|
+
controller,
|
|
95
|
+
id
|
|
96
|
+
});
|
|
97
|
+
this.isDialogOpen = true;
|
|
98
|
+
dialog.attachBeforeClose(() => {
|
|
99
|
+
this.updateStatus(false);
|
|
100
|
+
});
|
|
101
|
+
await controller.setup(dialog);
|
|
102
|
+
this.updateStatus(true);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Updates open dialog status.
|
|
107
|
+
*
|
|
108
|
+
* @param isDialogOpen Flag indicating if there is an open dialog.
|
|
109
|
+
*/
|
|
110
|
+
static updateStatus(isDialogOpen) {
|
|
111
|
+
this.isDialogOpen = isDialogOpen;
|
|
112
|
+
const event = new CustomEvent(OPEN_DIALOG_STATUS_CHANGED);
|
|
113
|
+
this.eventTarget.dispatchEvent(event);
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
/**
|
|
117
|
+
* Attach event handler for OPEN_DIALOG_STATUS_CHANGED event.
|
|
118
|
+
*
|
|
119
|
+
* @param handler Event handler.
|
|
120
|
+
* @returns Function that removes listener.
|
|
121
|
+
*/
|
|
122
|
+
static onOpenDialogStatusChange(handler) {
|
|
123
|
+
this.eventTarget.addEventListener(OPEN_DIALOG_STATUS_CHANGED, handler);
|
|
124
|
+
return () => {
|
|
125
|
+
this.eventTarget.removeEventListener(OPEN_DIALOG_STATUS_CHANGED, handler);
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
var __exports = {
|
|
130
|
+
__esModule: true
|
|
131
|
+
};
|
|
132
|
+
__exports.DialogNames = DialogNames;
|
|
133
|
+
__exports.OPEN_DIALOG_STATUS_CHANGED = OPEN_DIALOG_STATUS_CHANGED;
|
|
134
|
+
__exports.DialogFactory = DialogFactory;
|
|
135
|
+
return __exports;
|
|
136
136
|
});
|
|
137
137
|
//# sourceMappingURL=dialog-factory.js.map
|
|
@@ -12,6 +12,7 @@ import ExtensionPoint from './controllers/ExtensionPoint.controller';
|
|
|
12
12
|
|
|
13
13
|
import type { ExtensionPointData } from './extension-point';
|
|
14
14
|
import { AddFragmentData } from './add-fragment';
|
|
15
|
+
import { ExtendControllerData } from './extend-controller';
|
|
15
16
|
import FileExistsDialog, { FileExistsDialogOptions } from './controllers/FileExistsDialog.controller';
|
|
16
17
|
import AddSubpage, { AddSubpageOptions } from './controllers/AddSubpage.controller';
|
|
17
18
|
import { QuickActionTelemetryData } from '../cpe/quick-actions/quick-action-definition';
|
|
@@ -33,7 +34,7 @@ type Controller =
|
|
|
33
34
|
| FileExistsDialog
|
|
34
35
|
| AddSubpage;
|
|
35
36
|
|
|
36
|
-
type DialogData = ExtensionPointData | AddFragmentData;
|
|
37
|
+
type DialogData = ExtensionPointData | AddFragmentData | ExtendControllerData;
|
|
37
38
|
|
|
38
39
|
export const OPEN_DIALOG_STATUS_CHANGED = 'OPEN_DIALOG_STATUS_CHANGED';
|
|
39
40
|
|
|
@@ -106,6 +107,7 @@ export class DialogFactory {
|
|
|
106
107
|
`open.ux.preview.client.adp.controllers.${dialogName}`,
|
|
107
108
|
overlay,
|
|
108
109
|
rta,
|
|
110
|
+
(data as ExtendControllerData),
|
|
109
111
|
telemetryData
|
|
110
112
|
);
|
|
111
113
|
break;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
sap.ui.define(["sap/ui/rta/command/CommandFactory", "./utils", "./dialog-factory", "sap/ui/rta/plugin/ExtendControllerPlugin"], function (CommandFactory, ___utils, ___dialog_factory, ExtendController) {
|
|
4
|
+
"use strict";
|
|
5
|
+
|
|
6
|
+
const createDeferred = ___utils["createDeferred"];
|
|
7
|
+
const DialogFactory = ___dialog_factory["DialogFactory"];
|
|
8
|
+
const DialogNames = ___dialog_factory["DialogNames"];
|
|
9
|
+
/**
|
|
10
|
+
* Initializes the ExtendControllerPlugin and includes it in the Runtime Authoring (RTA) plugins.
|
|
11
|
+
*
|
|
12
|
+
* @param rta Runtime Authoring instance
|
|
13
|
+
*/
|
|
14
|
+
function initExtendControllerPlugin(rta) {
|
|
15
|
+
const flexSettings = rta.getFlexSettings();
|
|
16
|
+
const commandFactory = new CommandFactory({
|
|
17
|
+
flexSettings
|
|
18
|
+
});
|
|
19
|
+
const plugin = new ExtendController({
|
|
20
|
+
commandFactory,
|
|
21
|
+
handlerFunction: async overlay => await handlerFunction(rta, overlay)
|
|
22
|
+
});
|
|
23
|
+
const plugins = rta.getPlugins();
|
|
24
|
+
plugins.extendControllerPlugin = plugin;
|
|
25
|
+
rta.setPlugins(plugins);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Handles the creation of a controller extension by opening a dialog and resolving the deferred data.
|
|
30
|
+
*
|
|
31
|
+
* @param rta Runtime Authoring instance
|
|
32
|
+
* @param overlay UI5 Element overlay
|
|
33
|
+
* @returns A promise that resolves with DeferredXmlFragmentData
|
|
34
|
+
*/
|
|
35
|
+
async function handlerFunction(rta, overlay) {
|
|
36
|
+
const deferred = createDeferred();
|
|
37
|
+
await DialogFactory.createDialog(overlay, rta, DialogNames.CONTROLLER_EXTENSION, {
|
|
38
|
+
deferred
|
|
39
|
+
});
|
|
40
|
+
return deferred.promise;
|
|
41
|
+
}
|
|
42
|
+
var __exports = {
|
|
43
|
+
__esModule: true
|
|
44
|
+
};
|
|
45
|
+
__exports.initExtendControllerPlugin = initExtendControllerPlugin;
|
|
46
|
+
return __exports;
|
|
47
|
+
});
|
|
48
|
+
//# sourceMappingURL=extend-controller.js.map
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import type RuntimeAuthoring from 'sap/ui/rta/RuntimeAuthoring';
|
|
2
|
+
import type UI5Element from 'sap/ui/core/Element';
|
|
3
|
+
import CommandFactory from 'sap/ui/rta/command/CommandFactory';
|
|
4
|
+
import { Deferred, createDeferred } from './utils';
|
|
5
|
+
import { DialogFactory, DialogNames } from './dialog-factory';
|
|
6
|
+
import ExtendController from 'sap/ui/rta/plugin/ExtendControllerPlugin';
|
|
7
|
+
|
|
8
|
+
export interface ExtendControllerData {
|
|
9
|
+
deferred: Deferred<DeferredExtendControllerData>;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export type DeferredExtendControllerData = {
|
|
13
|
+
codeRef: string;
|
|
14
|
+
viewId: string;
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Initializes the ExtendControllerPlugin and includes it in the Runtime Authoring (RTA) plugins.
|
|
19
|
+
*
|
|
20
|
+
* @param rta Runtime Authoring instance
|
|
21
|
+
*/
|
|
22
|
+
export function initExtendControllerPlugin(rta: RuntimeAuthoring): void {
|
|
23
|
+
const flexSettings = rta.getFlexSettings();
|
|
24
|
+
const commandFactory = new CommandFactory({ flexSettings });
|
|
25
|
+
|
|
26
|
+
const plugin = new ExtendController({
|
|
27
|
+
commandFactory,
|
|
28
|
+
handlerFunction: async (overlay: UI5Element) => await handlerFunction(rta, overlay)
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
const plugins = rta.getPlugins();
|
|
32
|
+
plugins.extendControllerPlugin = plugin;
|
|
33
|
+
rta.setPlugins(plugins);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Handles the creation of a controller extension by opening a dialog and resolving the deferred data.
|
|
38
|
+
*
|
|
39
|
+
* @param rta Runtime Authoring instance
|
|
40
|
+
* @param overlay UI5 Element overlay
|
|
41
|
+
* @returns A promise that resolves with DeferredXmlFragmentData
|
|
42
|
+
*/
|
|
43
|
+
async function handlerFunction(rta: RuntimeAuthoring, overlay: UI5Element): Promise<DeferredExtendControllerData> {
|
|
44
|
+
const deferred = createDeferred<DeferredExtendControllerData>();
|
|
45
|
+
|
|
46
|
+
await DialogFactory.createDialog(overlay, rta, DialogNames.CONTROLLER_EXTENSION, { deferred });
|
|
47
|
+
|
|
48
|
+
return deferred.promise;
|
|
49
|
+
}
|