@sap-ux/preview-middleware 0.16.143 → 0.16.144
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/README.md +34 -2
- package/dist/base/config.d.ts +3 -3
- package/dist/base/flp.js +1 -0
- package/dist/client/adp/api-handler.js +142 -142
- package/dist/client/adp/command-executor.js +75 -75
- package/dist/client/adp/control-utils.js +44 -44
- package/dist/client/adp/controllers/BaseDialog.controller.js +187 -187
- package/dist/client/adp/controllers/ControllerExtension.controller.js +213 -213
- package/dist/client/adp/controllers/ExtensionPoint.controller.js +138 -138
- package/dist/client/adp/init-dialogs.js +157 -157
- package/dist/client/adp/quick-actions/common/add-controller-to-page.js +54 -54
- package/dist/client/adp/quick-actions/common/create-page-action.js +49 -49
- package/dist/client/adp/quick-actions/common/op-add-custom-section.js +35 -35
- package/dist/client/adp/quick-actions/common/op-add-header-field.js +47 -47
- package/dist/client/adp/quick-actions/fe-v2/change-table-columns.js +100 -100
- package/dist/client/adp/quick-actions/fe-v2/create-table-action.js +69 -69
- package/dist/client/adp/quick-actions/fe-v2/create-table-custom-column.js +95 -95
- package/dist/client/adp/quick-actions/fe-v2/lr-enable-semantic-date-range-filter-bar.js +56 -56
- package/dist/client/adp/quick-actions/fe-v2/lr-enable-table-filtering.js +67 -67
- package/dist/client/adp/quick-actions/fe-v2/lr-toggle-clear-filter-bar.js +57 -57
- package/dist/client/adp/quick-actions/fe-v2/registry.js +71 -71
- package/dist/client/adp/quick-actions/fe-v2/utils.js +86 -86
- package/dist/client/adp/quick-actions/fe-v4/change-table-columns.js +47 -47
- package/dist/client/adp/quick-actions/fe-v4/create-table-action.js +45 -45
- package/dist/client/adp/quick-actions/fe-v4/create-table-custom-column.js +45 -45
- package/dist/client/adp/quick-actions/fe-v4/lr-enable-semantic-date-range-filter-bar.js +55 -55
- package/dist/client/adp/quick-actions/fe-v4/lr-enable-table-filtering.js +82 -82
- package/dist/client/adp/quick-actions/fe-v4/lr-toggle-clear-filter-bar.js +52 -52
- package/dist/client/adp/quick-actions/fe-v4/registry.js +55 -55
- package/dist/client/adp/quick-actions/fe-v4/utils.js +47 -47
- package/dist/client/adp/quick-actions/load.js +44 -44
- package/dist/client/adp/utils.js +160 -160
- package/dist/client/cpe/changes/index.js +10 -10
- package/dist/client/cpe/changes/validator.js +34 -34
- 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 +217 -217
- 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 +138 -138
- package/dist/client/flp/WorkspaceConnector.js +86 -86
- package/dist/client/flp/common.js +28 -28
- package/dist/client/flp/enableFakeConnector.js +83 -83
- package/dist/client/flp/initConnectors.js +30 -30
- package/dist/client/flp/initRta.js +178 -178
- package/dist/client/i18n.js +56 -56
- package/dist/client/utils/application.js +32 -32
- package/dist/client/utils/core.js +68 -68
- package/dist/client/utils/error.js +19 -19
- package/dist/client/utils/fe-v4.js +114 -114
- package/dist/client/utils/version.js +85 -85
- package/dist/index.d.ts +1 -1
- package/dist/types/index.d.ts +5 -0
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -182,6 +182,38 @@ flp.init(JSON.parse(await files[0].getString()));
|
|
|
182
182
|
return flp.router
|
|
183
183
|
```
|
|
184
184
|
- `flpConfig` - the middleware configuration
|
|
185
|
-
- `rootProject` - [Reader](https://sap.github.io/ui5-tooling/stable/api/@ui5_fs_AbstractReader.html) to access resources of the root project
|
|
185
|
+
- `rootProject` - [Reader](https://sap.github.io/ui5-tooling/stable/api/@ui5_fs_AbstractReader.html) to access the resources of the root project
|
|
186
186
|
- `middlewareUtil` - [MiddlewareUtil](https://sap.github.io/ui5-tooling/v3/api/@ui5_server_middleware_MiddlewareUtil.html) of the UI5 server
|
|
187
|
-
- `logger` - Logger instance
|
|
187
|
+
- `logger` - Logger instance to be used in the middleware.
|
|
188
|
+
|
|
189
|
+
|
|
190
|
+
## [Migration](#migration)
|
|
191
|
+
If you have no custom modifications in the local Fiori Launchpad sandbox files (`webapp/test/flpSandbox.html` or `webapp/test/flpSandboxMockserver.html`), the conversion is finished.
|
|
192
|
+
|
|
193
|
+
If you have custom modifications in the local Fiori Launchpad sandbox files, you need to migrate them into a custom .js or .ts file (depending on your setup) and integrate this file as a custom `init` script into the configuration options of the middleware.
|
|
194
|
+
|
|
195
|
+
Sample:
|
|
196
|
+
|
|
197
|
+
from custom modification in `flpSandbox.html`:
|
|
198
|
+
```HTML
|
|
199
|
+
<script type="text/javascript">
|
|
200
|
+
sap.ui.getCore().attachInit(function () {
|
|
201
|
+
console.log('my custom code');
|
|
202
|
+
});
|
|
203
|
+
</script>
|
|
204
|
+
```
|
|
205
|
+
to custom `test/init.ts`:
|
|
206
|
+
```ts
|
|
207
|
+
console.log('my custom code');
|
|
208
|
+
```
|
|
209
|
+
integrated via `ui5.yaml`:
|
|
210
|
+
|
|
211
|
+
```YAML
|
|
212
|
+
server:
|
|
213
|
+
customMiddleware:
|
|
214
|
+
- name: preview-middleware
|
|
215
|
+
afterMiddleware: compression
|
|
216
|
+
configuration:
|
|
217
|
+
flp:
|
|
218
|
+
init: /test/init # <-- path to your custom init script
|
|
219
|
+
```
|
package/dist/base/config.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ToolsLogger, type Logger } from '@sap-ux/logger';
|
|
2
|
-
import type { App, FlpConfig, Intent, InternalTestConfig, MiddlewareConfig, TestConfig } from '../types';
|
|
2
|
+
import type { App, DefaultFlpPath, DefaultIntent, FlpConfig, Intent, InternalTestConfig, MiddlewareConfig, TestConfig } from '../types';
|
|
3
3
|
import { type Manifest, type UI5FlexLayer } from '@sap-ux/project-access';
|
|
4
4
|
import { type Editor } from 'mem-fs-editor';
|
|
5
5
|
import type { MergedAppDescriptor } from '@sap-ux/axios-extension';
|
|
@@ -76,11 +76,11 @@ export declare const DEFAULT_THEME = "sap_horizon";
|
|
|
76
76
|
/**
|
|
77
77
|
* Default path for mounting the local FLP.
|
|
78
78
|
*/
|
|
79
|
-
export declare const DEFAULT_PATH
|
|
79
|
+
export declare const DEFAULT_PATH: DefaultFlpPath;
|
|
80
80
|
/**
|
|
81
81
|
* Default intent
|
|
82
82
|
*/
|
|
83
|
-
export declare const DEFAULT_INTENT: Readonly<
|
|
83
|
+
export declare const DEFAULT_INTENT: Readonly<DefaultIntent>;
|
|
84
84
|
/**
|
|
85
85
|
* Default configuration for the FLP.
|
|
86
86
|
*
|
package/dist/base/flp.js
CHANGED
|
@@ -221,6 +221,7 @@ class FlpSandbox {
|
|
|
221
221
|
params['sap-ui-xx-viewCache'] = 'false';
|
|
222
222
|
params['fiori-tools-rta-mode'] = 'true';
|
|
223
223
|
params['sap-ui-rta-skip-flex-validation'] = 'true';
|
|
224
|
+
params['sap-ui-xx-condense-changes'] = 'true';
|
|
224
225
|
res.redirect(302, `${previewUrl}?${new URLSearchParams(params)}`);
|
|
225
226
|
return;
|
|
226
227
|
}
|
|
@@ -1,144 +1,144 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
sap.ui.define(["../utils/error"], function (___utils_error) {
|
|
4
|
-
"use strict";
|
|
5
|
-
|
|
6
|
-
const getError = ___utils_error["getError"];
|
|
7
|
-
var ApiEndpoints = /*#__PURE__*/function (ApiEndpoints) {
|
|
8
|
-
ApiEndpoints["CHANGES"] = "/preview/api/changes";
|
|
9
|
-
ApiEndpoints["FRAGMENT"] = "/adp/api/fragment";
|
|
10
|
-
ApiEndpoints["CONTROLLER"] = "/adp/api/controller";
|
|
11
|
-
ApiEndpoints["CODE_EXT"] = "/adp/api/code_ext";
|
|
12
|
-
ApiEndpoints["MANIFEST_APP_DESCRIPTOR"] = "/manifest.appdescr_variant";
|
|
13
|
-
return ApiEndpoints;
|
|
14
|
-
}(ApiEndpoints || {});
|
|
15
|
-
var RequestMethod = /*#__PURE__*/function (RequestMethod) {
|
|
16
|
-
RequestMethod["GET"] = "GET";
|
|
17
|
-
RequestMethod["PUT"] = "PUT";
|
|
18
|
-
RequestMethod["POST"] = "POST";
|
|
19
|
-
RequestMethod["PATCH"] = "PATCH";
|
|
20
|
-
RequestMethod["DELETE"] = "DELETE";
|
|
21
|
-
return RequestMethod;
|
|
22
|
-
}(RequestMethod || {});
|
|
23
|
-
/**
|
|
24
|
-
* Requests a given endpoint
|
|
25
|
-
*
|
|
26
|
-
* @param endpoint API Endpoint
|
|
27
|
-
* @param method RequestMethod
|
|
28
|
-
* @param data Data to be sent to the server
|
|
29
|
-
* @returns Data from the server request
|
|
30
|
-
*/
|
|
31
|
-
async function request(endpoint, method, data) {
|
|
32
|
-
const config = {
|
|
33
|
-
method,
|
|
34
|
-
body: JSON.stringify(data),
|
|
35
|
-
headers: {
|
|
36
|
-
'content-type': 'application/json'
|
|
37
|
-
}
|
|
38
|
-
};
|
|
39
|
-
try {
|
|
40
|
-
const response = await fetch(endpoint, config);
|
|
41
|
-
if (!response.ok) {
|
|
42
|
-
const errorData = await response.json();
|
|
43
|
-
const message = errorData?.message ?? '';
|
|
44
|
-
throw new Error(`Request failed, status: ${response.status}. ${message}`.trim());
|
|
45
|
-
}
|
|
46
|
-
switch (method) {
|
|
47
|
-
case RequestMethod.GET:
|
|
48
|
-
return response.json();
|
|
49
|
-
case RequestMethod.POST:
|
|
50
|
-
/**
|
|
51
|
-
* Since POST usually creates something
|
|
52
|
-
* and returns nothing (or a message) we just parse the text from res.send(msg)
|
|
53
|
-
*/
|
|
54
|
-
return response.text();
|
|
55
|
-
default:
|
|
56
|
-
return response.json();
|
|
57
|
-
}
|
|
58
|
-
} catch (e) {
|
|
59
|
-
throw getError(e);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
/**
|
|
64
|
-
* Retrieves all XML fragments from the project's workspace
|
|
65
|
-
*
|
|
66
|
-
* @returns Generic Promise<T>
|
|
67
|
-
*/
|
|
68
|
-
async function getFragments() {
|
|
69
|
-
return request(ApiEndpoints.FRAGMENT, RequestMethod.GET);
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
/**
|
|
73
|
-
* Writes an XML fragment to the project's workspace
|
|
74
|
-
*
|
|
75
|
-
* @param data Data to be send to the server
|
|
76
|
-
* @returns Generic Promise<T>
|
|
77
|
-
*/
|
|
78
|
-
async function writeFragment(data) {
|
|
79
|
-
return request(ApiEndpoints.FRAGMENT, RequestMethod.POST, data);
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
/**
|
|
83
|
-
* Retrieves manifest.appdescr_variant from the project's workspace
|
|
84
|
-
*
|
|
85
|
-
* @returns Generic Promise<T>
|
|
86
|
-
*/
|
|
87
|
-
async function getManifestAppdescr() {
|
|
88
|
-
return request(ApiEndpoints.MANIFEST_APP_DESCRIPTOR, RequestMethod.GET);
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
/**
|
|
92
|
-
* Retrieves all controller extensions from the project's workspace
|
|
93
|
-
*
|
|
94
|
-
* @returns Generic Promise<T>
|
|
95
|
-
*/
|
|
96
|
-
async function readControllers() {
|
|
97
|
-
return request(ApiEndpoints.CONTROLLER, RequestMethod.GET);
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
/**
|
|
101
|
-
* Writes a Controller to the project's workspace
|
|
102
|
-
*
|
|
103
|
-
* @param data Data to be send to the server
|
|
104
|
-
* @returns Generic Promise<T>
|
|
105
|
-
*/
|
|
106
|
-
async function writeController(data) {
|
|
107
|
-
return request(ApiEndpoints.CONTROLLER, RequestMethod.POST, data);
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
/**
|
|
111
|
-
* Checks for existing controller in the project's workspace
|
|
112
|
-
*
|
|
113
|
-
* @param controllerName Name of the controller
|
|
114
|
-
* @returns {CodeExtResponse} Returns path to existing controller if found
|
|
115
|
-
*/
|
|
116
|
-
async function getExistingController(controllerName) {
|
|
117
|
-
return request(`${ApiEndpoints.CODE_EXT}/${controllerName}`, RequestMethod.GET);
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
/**
|
|
121
|
-
* Writes a change object to the project's workspace
|
|
122
|
-
*
|
|
123
|
-
* @param data Data to be send to the server
|
|
124
|
-
* @returns Generic Promise<T>
|
|
125
|
-
*/
|
|
126
|
-
async function writeChange(data) {
|
|
127
|
-
return request(ApiEndpoints.CHANGES, RequestMethod.POST, data);
|
|
128
|
-
}
|
|
129
|
-
var __exports = {
|
|
130
|
-
__esModule: true
|
|
131
|
-
};
|
|
132
|
-
__exports.ApiEndpoints = ApiEndpoints;
|
|
133
|
-
__exports.RequestMethod = RequestMethod;
|
|
134
|
-
__exports.request = request;
|
|
135
|
-
__exports.getFragments = getFragments;
|
|
136
|
-
__exports.writeFragment = writeFragment;
|
|
137
|
-
__exports.getManifestAppdescr = getManifestAppdescr;
|
|
138
|
-
__exports.readControllers = readControllers;
|
|
139
|
-
__exports.writeController = writeController;
|
|
140
|
-
__exports.getExistingController = getExistingController;
|
|
141
|
-
__exports.writeChange = writeChange;
|
|
142
|
-
return __exports;
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
sap.ui.define(["../utils/error"], function (___utils_error) {
|
|
4
|
+
"use strict";
|
|
5
|
+
|
|
6
|
+
const getError = ___utils_error["getError"];
|
|
7
|
+
var ApiEndpoints = /*#__PURE__*/function (ApiEndpoints) {
|
|
8
|
+
ApiEndpoints["CHANGES"] = "/preview/api/changes";
|
|
9
|
+
ApiEndpoints["FRAGMENT"] = "/adp/api/fragment";
|
|
10
|
+
ApiEndpoints["CONTROLLER"] = "/adp/api/controller";
|
|
11
|
+
ApiEndpoints["CODE_EXT"] = "/adp/api/code_ext";
|
|
12
|
+
ApiEndpoints["MANIFEST_APP_DESCRIPTOR"] = "/manifest.appdescr_variant";
|
|
13
|
+
return ApiEndpoints;
|
|
14
|
+
}(ApiEndpoints || {});
|
|
15
|
+
var RequestMethod = /*#__PURE__*/function (RequestMethod) {
|
|
16
|
+
RequestMethod["GET"] = "GET";
|
|
17
|
+
RequestMethod["PUT"] = "PUT";
|
|
18
|
+
RequestMethod["POST"] = "POST";
|
|
19
|
+
RequestMethod["PATCH"] = "PATCH";
|
|
20
|
+
RequestMethod["DELETE"] = "DELETE";
|
|
21
|
+
return RequestMethod;
|
|
22
|
+
}(RequestMethod || {});
|
|
23
|
+
/**
|
|
24
|
+
* Requests a given endpoint
|
|
25
|
+
*
|
|
26
|
+
* @param endpoint API Endpoint
|
|
27
|
+
* @param method RequestMethod
|
|
28
|
+
* @param data Data to be sent to the server
|
|
29
|
+
* @returns Data from the server request
|
|
30
|
+
*/
|
|
31
|
+
async function request(endpoint, method, data) {
|
|
32
|
+
const config = {
|
|
33
|
+
method,
|
|
34
|
+
body: JSON.stringify(data),
|
|
35
|
+
headers: {
|
|
36
|
+
'content-type': 'application/json'
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
try {
|
|
40
|
+
const response = await fetch(endpoint, config);
|
|
41
|
+
if (!response.ok) {
|
|
42
|
+
const errorData = await response.json();
|
|
43
|
+
const message = errorData?.message ?? '';
|
|
44
|
+
throw new Error(`Request failed, status: ${response.status}. ${message}`.trim());
|
|
45
|
+
}
|
|
46
|
+
switch (method) {
|
|
47
|
+
case RequestMethod.GET:
|
|
48
|
+
return response.json();
|
|
49
|
+
case RequestMethod.POST:
|
|
50
|
+
/**
|
|
51
|
+
* Since POST usually creates something
|
|
52
|
+
* and returns nothing (or a message) we just parse the text from res.send(msg)
|
|
53
|
+
*/
|
|
54
|
+
return response.text();
|
|
55
|
+
default:
|
|
56
|
+
return response.json();
|
|
57
|
+
}
|
|
58
|
+
} catch (e) {
|
|
59
|
+
throw getError(e);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Retrieves all XML fragments from the project's workspace
|
|
65
|
+
*
|
|
66
|
+
* @returns Generic Promise<T>
|
|
67
|
+
*/
|
|
68
|
+
async function getFragments() {
|
|
69
|
+
return request(ApiEndpoints.FRAGMENT, RequestMethod.GET);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Writes an XML fragment to the project's workspace
|
|
74
|
+
*
|
|
75
|
+
* @param data Data to be send to the server
|
|
76
|
+
* @returns Generic Promise<T>
|
|
77
|
+
*/
|
|
78
|
+
async function writeFragment(data) {
|
|
79
|
+
return request(ApiEndpoints.FRAGMENT, RequestMethod.POST, data);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* Retrieves manifest.appdescr_variant from the project's workspace
|
|
84
|
+
*
|
|
85
|
+
* @returns Generic Promise<T>
|
|
86
|
+
*/
|
|
87
|
+
async function getManifestAppdescr() {
|
|
88
|
+
return request(ApiEndpoints.MANIFEST_APP_DESCRIPTOR, RequestMethod.GET);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* Retrieves all controller extensions from the project's workspace
|
|
93
|
+
*
|
|
94
|
+
* @returns Generic Promise<T>
|
|
95
|
+
*/
|
|
96
|
+
async function readControllers() {
|
|
97
|
+
return request(ApiEndpoints.CONTROLLER, RequestMethod.GET);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* Writes a Controller to the project's workspace
|
|
102
|
+
*
|
|
103
|
+
* @param data Data to be send to the server
|
|
104
|
+
* @returns Generic Promise<T>
|
|
105
|
+
*/
|
|
106
|
+
async function writeController(data) {
|
|
107
|
+
return request(ApiEndpoints.CONTROLLER, RequestMethod.POST, data);
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* Checks for existing controller in the project's workspace
|
|
112
|
+
*
|
|
113
|
+
* @param controllerName Name of the controller
|
|
114
|
+
* @returns {CodeExtResponse} Returns path to existing controller if found
|
|
115
|
+
*/
|
|
116
|
+
async function getExistingController(controllerName) {
|
|
117
|
+
return request(`${ApiEndpoints.CODE_EXT}/${controllerName}`, RequestMethod.GET);
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
/**
|
|
121
|
+
* Writes a change object to the project's workspace
|
|
122
|
+
*
|
|
123
|
+
* @param data Data to be send to the server
|
|
124
|
+
* @returns Generic Promise<T>
|
|
125
|
+
*/
|
|
126
|
+
async function writeChange(data) {
|
|
127
|
+
return request(ApiEndpoints.CHANGES, RequestMethod.POST, data);
|
|
128
|
+
}
|
|
129
|
+
var __exports = {
|
|
130
|
+
__esModule: true
|
|
131
|
+
};
|
|
132
|
+
__exports.ApiEndpoints = ApiEndpoints;
|
|
133
|
+
__exports.RequestMethod = RequestMethod;
|
|
134
|
+
__exports.request = request;
|
|
135
|
+
__exports.getFragments = getFragments;
|
|
136
|
+
__exports.writeFragment = writeFragment;
|
|
137
|
+
__exports.getManifestAppdescr = getManifestAppdescr;
|
|
138
|
+
__exports.readControllers = readControllers;
|
|
139
|
+
__exports.writeController = writeController;
|
|
140
|
+
__exports.getExistingController = getExistingController;
|
|
141
|
+
__exports.writeChange = writeChange;
|
|
142
|
+
return __exports;
|
|
143
143
|
});
|
|
144
144
|
//# sourceMappingURL=api-handler.js.map
|
|
@@ -1,77 +1,77 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
sap.ui.define(["sap/m/MessageToast", "sap/ui/rta/command/CommandFactory", "../utils/error"], function (MessageToast, CommandFactory, ___utils_error) {
|
|
4
|
-
"use strict";
|
|
5
|
-
|
|
6
|
-
const getError = ___utils_error["getError"];
|
|
7
|
-
/**
|
|
8
|
-
* Class responsible for handling rta calls
|
|
9
|
-
*/
|
|
10
|
-
class CommandExecutor {
|
|
11
|
-
/**
|
|
12
|
-
*
|
|
13
|
-
* @param rta Runtime Authoring
|
|
14
|
-
*/
|
|
15
|
-
constructor(rta) {
|
|
16
|
-
this.rta = rta;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* Generates command based on given values
|
|
21
|
-
*
|
|
22
|
-
* @param runtimeControl Managed object
|
|
23
|
-
* @param commandName Command name
|
|
24
|
-
* @param modifiedValue Modified value/s
|
|
25
|
-
* @param designMetadata Design time metadata
|
|
26
|
-
* @param flexSettings Additional flex settings
|
|
27
|
-
*/
|
|
28
|
-
async getCommand(runtimeControl, commandName, modifiedValue, designMetadata, flexSettings) {
|
|
29
|
-
try {
|
|
30
|
-
return await CommandFactory.getCommandFor(runtimeControl, commandName, modifiedValue, designMetadata, flexSettings);
|
|
31
|
-
} catch (e) {
|
|
32
|
-
const error = getError(e);
|
|
33
|
-
const msgToastErrorMsg = `Could not get command for '${commandName}'. ${error.message}`;
|
|
34
|
-
error.message = msgToastErrorMsg;
|
|
35
|
-
MessageToast.show(msgToastErrorMsg);
|
|
36
|
-
throw error;
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
* Creates composite command without nested commands
|
|
42
|
-
*
|
|
43
|
-
* @param runtimeControl Managed object
|
|
44
|
-
*/
|
|
45
|
-
async createCompositeCommand(runtimeControl) {
|
|
46
|
-
try {
|
|
47
|
-
return await CommandFactory.getCommandFor(runtimeControl, 'composite');
|
|
48
|
-
} catch (e) {
|
|
49
|
-
const error = getError(e);
|
|
50
|
-
const msgToastErrorMsg = `Could not get composite command'. ${error.message}`;
|
|
51
|
-
error.message = msgToastErrorMsg;
|
|
52
|
-
MessageToast.show(msgToastErrorMsg);
|
|
53
|
-
throw error;
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
/**
|
|
58
|
-
* Pushed and executes the provided command
|
|
59
|
-
*
|
|
60
|
-
* @param command Command
|
|
61
|
-
*/
|
|
62
|
-
async pushAndExecuteCommand(command) {
|
|
63
|
-
try {
|
|
64
|
-
/**
|
|
65
|
-
* The change will have pending state and will only be saved to the workspace when the user clicks save icon
|
|
66
|
-
*/
|
|
67
|
-
await this.rta.getCommandStack().pushAndExecute(command);
|
|
68
|
-
} catch (e) {
|
|
69
|
-
const error = getError(e);
|
|
70
|
-
MessageToast.show(error.message);
|
|
71
|
-
throw error;
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
return CommandExecutor;
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
sap.ui.define(["sap/m/MessageToast", "sap/ui/rta/command/CommandFactory", "../utils/error"], function (MessageToast, CommandFactory, ___utils_error) {
|
|
4
|
+
"use strict";
|
|
5
|
+
|
|
6
|
+
const getError = ___utils_error["getError"];
|
|
7
|
+
/**
|
|
8
|
+
* Class responsible for handling rta calls
|
|
9
|
+
*/
|
|
10
|
+
class CommandExecutor {
|
|
11
|
+
/**
|
|
12
|
+
*
|
|
13
|
+
* @param rta Runtime Authoring
|
|
14
|
+
*/
|
|
15
|
+
constructor(rta) {
|
|
16
|
+
this.rta = rta;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Generates command based on given values
|
|
21
|
+
*
|
|
22
|
+
* @param runtimeControl Managed object
|
|
23
|
+
* @param commandName Command name
|
|
24
|
+
* @param modifiedValue Modified value/s
|
|
25
|
+
* @param designMetadata Design time metadata
|
|
26
|
+
* @param flexSettings Additional flex settings
|
|
27
|
+
*/
|
|
28
|
+
async getCommand(runtimeControl, commandName, modifiedValue, designMetadata, flexSettings) {
|
|
29
|
+
try {
|
|
30
|
+
return await CommandFactory.getCommandFor(runtimeControl, commandName, modifiedValue, designMetadata, flexSettings);
|
|
31
|
+
} catch (e) {
|
|
32
|
+
const error = getError(e);
|
|
33
|
+
const msgToastErrorMsg = `Could not get command for '${commandName}'. ${error.message}`;
|
|
34
|
+
error.message = msgToastErrorMsg;
|
|
35
|
+
MessageToast.show(msgToastErrorMsg);
|
|
36
|
+
throw error;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Creates composite command without nested commands
|
|
42
|
+
*
|
|
43
|
+
* @param runtimeControl Managed object
|
|
44
|
+
*/
|
|
45
|
+
async createCompositeCommand(runtimeControl) {
|
|
46
|
+
try {
|
|
47
|
+
return await CommandFactory.getCommandFor(runtimeControl, 'composite');
|
|
48
|
+
} catch (e) {
|
|
49
|
+
const error = getError(e);
|
|
50
|
+
const msgToastErrorMsg = `Could not get composite command'. ${error.message}`;
|
|
51
|
+
error.message = msgToastErrorMsg;
|
|
52
|
+
MessageToast.show(msgToastErrorMsg);
|
|
53
|
+
throw error;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Pushed and executes the provided command
|
|
59
|
+
*
|
|
60
|
+
* @param command Command
|
|
61
|
+
*/
|
|
62
|
+
async pushAndExecuteCommand(command) {
|
|
63
|
+
try {
|
|
64
|
+
/**
|
|
65
|
+
* The change will have pending state and will only be saved to the workspace when the user clicks save icon
|
|
66
|
+
*/
|
|
67
|
+
await this.rta.getCommandStack().pushAndExecute(command);
|
|
68
|
+
} catch (e) {
|
|
69
|
+
const error = getError(e);
|
|
70
|
+
MessageToast.show(error.message);
|
|
71
|
+
throw error;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
return CommandExecutor;
|
|
76
76
|
});
|
|
77
77
|
//# sourceMappingURL=command-executor.js.map
|
|
@@ -1,46 +1,46 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
sap.ui.define([], function () {
|
|
4
|
-
"use strict";
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Handles calling control specific functions for retrieving control data
|
|
8
|
-
*/
|
|
9
|
-
class ControlUtils {
|
|
10
|
-
/**
|
|
11
|
-
* Returns ManagedObject runtime control
|
|
12
|
-
*
|
|
13
|
-
* @param overlayControl Overlay
|
|
14
|
-
* @returns {ManagedObject} Managed Object instance
|
|
15
|
-
*/
|
|
16
|
-
static getRuntimeControl(overlayControl) {
|
|
17
|
-
let runtimeControl;
|
|
18
|
-
if (overlayControl.getElementInstance) {
|
|
19
|
-
runtimeControl = overlayControl.getElementInstance();
|
|
20
|
-
} else {
|
|
21
|
-
runtimeControl = overlayControl.getElement();
|
|
22
|
-
}
|
|
23
|
-
return runtimeControl;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* Returns control aggregation names in an array
|
|
28
|
-
*
|
|
29
|
-
* @param control Managed Object runtime control
|
|
30
|
-
* @param name Aggregation name
|
|
31
|
-
* @returns Array of control aggregations
|
|
32
|
-
*/
|
|
33
|
-
static getControlAggregationByName(control, name) {
|
|
34
|
-
let result = [];
|
|
35
|
-
const aggregation = (control ? control.getMetadata().getAllAggregations() : {})[name];
|
|
36
|
-
if (aggregation) {
|
|
37
|
-
// This executes a _sGetter function that can vary from control to control (_sGetter can be: getContent, getItems, etc)
|
|
38
|
-
const names = aggregation._sGetter && control[aggregation._sGetter]() || [];
|
|
39
|
-
result = Array.isArray(names) ? names : [names];
|
|
40
|
-
}
|
|
41
|
-
return result;
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
return ControlUtils;
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
sap.ui.define([], function () {
|
|
4
|
+
"use strict";
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Handles calling control specific functions for retrieving control data
|
|
8
|
+
*/
|
|
9
|
+
class ControlUtils {
|
|
10
|
+
/**
|
|
11
|
+
* Returns ManagedObject runtime control
|
|
12
|
+
*
|
|
13
|
+
* @param overlayControl Overlay
|
|
14
|
+
* @returns {ManagedObject} Managed Object instance
|
|
15
|
+
*/
|
|
16
|
+
static getRuntimeControl(overlayControl) {
|
|
17
|
+
let runtimeControl;
|
|
18
|
+
if (overlayControl.getElementInstance) {
|
|
19
|
+
runtimeControl = overlayControl.getElementInstance();
|
|
20
|
+
} else {
|
|
21
|
+
runtimeControl = overlayControl.getElement();
|
|
22
|
+
}
|
|
23
|
+
return runtimeControl;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Returns control aggregation names in an array
|
|
28
|
+
*
|
|
29
|
+
* @param control Managed Object runtime control
|
|
30
|
+
* @param name Aggregation name
|
|
31
|
+
* @returns Array of control aggregations
|
|
32
|
+
*/
|
|
33
|
+
static getControlAggregationByName(control, name) {
|
|
34
|
+
let result = [];
|
|
35
|
+
const aggregation = (control ? control.getMetadata().getAllAggregations() : {})[name];
|
|
36
|
+
if (aggregation) {
|
|
37
|
+
// This executes a _sGetter function that can vary from control to control (_sGetter can be: getContent, getItems, etc)
|
|
38
|
+
const names = aggregation._sGetter && control[aggregation._sGetter]() || [];
|
|
39
|
+
result = Array.isArray(names) ? names : [names];
|
|
40
|
+
}
|
|
41
|
+
return result;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
return ControlUtils;
|
|
45
45
|
});
|
|
46
46
|
//# sourceMappingURL=control-utils.js.map
|