@sap-ux/preview-middleware 0.16.142 → 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.
Files changed (62) hide show
  1. package/README.md +34 -2
  2. package/dist/base/config.d.ts +3 -3
  3. package/dist/base/flp.js +1 -0
  4. package/dist/client/adp/api-handler.js +142 -142
  5. package/dist/client/adp/command-executor.js +75 -75
  6. package/dist/client/adp/control-utils.js +44 -44
  7. package/dist/client/adp/controllers/BaseDialog.controller.js +187 -187
  8. package/dist/client/adp/controllers/ControllerExtension.controller.js +213 -213
  9. package/dist/client/adp/controllers/ExtensionPoint.controller.js +138 -138
  10. package/dist/client/adp/init-dialogs.js +157 -157
  11. package/dist/client/adp/quick-actions/common/add-controller-to-page.js +54 -54
  12. package/dist/client/adp/quick-actions/common/create-page-action.js +49 -49
  13. package/dist/client/adp/quick-actions/common/op-add-custom-section.js +35 -35
  14. package/dist/client/adp/quick-actions/common/op-add-header-field.js +47 -47
  15. package/dist/client/adp/quick-actions/fe-v2/change-table-columns.js +100 -100
  16. package/dist/client/adp/quick-actions/fe-v2/create-table-action.js +69 -69
  17. package/dist/client/adp/quick-actions/fe-v2/create-table-custom-column.js +95 -95
  18. package/dist/client/adp/quick-actions/fe-v2/lr-enable-semantic-date-range-filter-bar.js +56 -56
  19. package/dist/client/adp/quick-actions/fe-v2/lr-enable-semantic-date-range-filter-bar.ts +2 -2
  20. package/dist/client/adp/quick-actions/fe-v2/lr-enable-table-filtering.js +67 -67
  21. package/dist/client/adp/quick-actions/fe-v2/lr-enable-table-filtering.ts +2 -3
  22. package/dist/client/adp/quick-actions/fe-v2/lr-toggle-clear-filter-bar.js +57 -57
  23. package/dist/client/adp/quick-actions/fe-v2/registry.js +71 -71
  24. package/dist/client/adp/quick-actions/fe-v2/utils.js +86 -75
  25. package/dist/client/adp/quick-actions/fe-v2/utils.ts +22 -12
  26. package/dist/client/adp/quick-actions/fe-v4/change-table-columns.js +47 -47
  27. package/dist/client/adp/quick-actions/fe-v4/create-table-action.js +45 -45
  28. package/dist/client/adp/quick-actions/fe-v4/create-table-custom-column.js +45 -45
  29. package/dist/client/adp/quick-actions/fe-v4/lr-enable-semantic-date-range-filter-bar.js +55 -55
  30. package/dist/client/adp/quick-actions/fe-v4/lr-enable-table-filtering.js +82 -82
  31. package/dist/client/adp/quick-actions/fe-v4/lr-toggle-clear-filter-bar.js +52 -52
  32. package/dist/client/adp/quick-actions/fe-v4/registry.js +55 -55
  33. package/dist/client/adp/quick-actions/fe-v4/utils.js +47 -47
  34. package/dist/client/adp/quick-actions/load.js +44 -44
  35. package/dist/client/adp/utils.js +160 -160
  36. package/dist/client/cpe/changes/index.js +10 -10
  37. package/dist/client/cpe/changes/validator.js +34 -34
  38. package/dist/client/cpe/documentation.js +164 -164
  39. package/dist/client/cpe/feature-service.js +36 -36
  40. package/dist/client/cpe/logger.js +30 -30
  41. package/dist/client/cpe/outline/editable.js +37 -37
  42. package/dist/client/cpe/outline/nodes.js +217 -217
  43. package/dist/client/cpe/quick-actions/quick-action-definition.js +4 -4
  44. package/dist/client/cpe/quick-actions/registry.js +143 -143
  45. package/dist/client/cpe/quick-actions/utils.js +92 -92
  46. package/dist/client/cpe/types.js +4 -4
  47. package/dist/client/cpe/ui5-utils.js +33 -33
  48. package/dist/client/cpe/utils.js +138 -138
  49. package/dist/client/flp/WorkspaceConnector.js +86 -86
  50. package/dist/client/flp/common.js +28 -28
  51. package/dist/client/flp/enableFakeConnector.js +83 -83
  52. package/dist/client/flp/initConnectors.js +30 -30
  53. package/dist/client/flp/initRta.js +178 -178
  54. package/dist/client/i18n.js +56 -56
  55. package/dist/client/utils/application.js +32 -32
  56. package/dist/client/utils/core.js +68 -68
  57. package/dist/client/utils/error.js +19 -19
  58. package/dist/client/utils/fe-v4.js +114 -114
  59. package/dist/client/utils/version.js +85 -85
  60. package/dist/index.d.ts +1 -1
  61. package/dist/types/index.d.ts +5 -0
  62. package/package.json +7 -7
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 for use in the middleware.
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
+ ```
@@ -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 = "/test/flp.html";
79
+ export declare const DEFAULT_PATH: DefaultFlpPath;
80
80
  /**
81
81
  * Default intent
82
82
  */
83
- export declare const DEFAULT_INTENT: Readonly<Intent>;
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