@sap-ux/preview-middleware 0.16.155 → 0.16.157
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/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/AddFragment.controller.js +5 -6
- package/dist/client/adp/controllers/AddFragment.controller.ts +1 -2
- package/dist/client/adp/controllers/AddTableColumnFragments.controller.js +0 -1
- package/dist/client/adp/controllers/AddTableColumnFragments.controller.ts +0 -1
- package/dist/client/adp/controllers/BaseDialog.controller.js +187 -187
- package/dist/client/adp/controllers/BaseDialog.controller.ts +0 -4
- package/dist/client/adp/controllers/ControllerExtension.controller.js +213 -213
- package/dist/client/adp/controllers/ExtensionPoint.controller.js +138 -138
- package/dist/client/adp/dialog-factory.js +115 -0
- package/dist/client/adp/dialog-factory.ts +134 -0
- package/dist/client/adp/extension-point.js +6 -6
- package/dist/client/adp/extension-point.ts +2 -2
- package/dist/client/adp/init-dialogs.js +100 -157
- package/dist/client/adp/init-dialogs.ts +5 -77
- package/dist/client/adp/quick-actions/common/add-controller-to-page.js +55 -54
- package/dist/client/adp/quick-actions/common/add-controller-to-page.ts +5 -3
- package/dist/client/adp/quick-actions/common/create-page-action.js +50 -49
- package/dist/client/adp/quick-actions/common/create-page-action.ts +7 -4
- package/dist/client/adp/quick-actions/common/op-add-custom-section.js +36 -35
- package/dist/client/adp/quick-actions/common/op-add-custom-section.ts +6 -3
- package/dist/client/adp/quick-actions/common/op-add-header-field.js +48 -47
- package/dist/client/adp/quick-actions/common/op-add-header-field.ts +7 -4
- package/dist/client/adp/quick-actions/common/utils.js +20 -0
- package/dist/client/adp/quick-actions/common/utils.ts +7 -0
- package/dist/client/adp/quick-actions/control-types.js +23 -0
- package/dist/client/adp/quick-actions/control-types.ts +6 -0
- package/dist/client/adp/quick-actions/dialog-enablement-validator.js +26 -0
- package/dist/client/adp/quick-actions/dialog-enablement-validator.ts +18 -0
- package/dist/client/adp/quick-actions/enablement-validator.js +6 -0
- package/dist/client/adp/quick-actions/enablement-validator.ts +18 -0
- package/dist/client/adp/quick-actions/fe-v2/change-table-columns.js +101 -100
- package/dist/client/adp/quick-actions/fe-v2/change-table-columns.ts +11 -3
- package/dist/client/adp/quick-actions/fe-v2/create-table-action.js +70 -69
- package/dist/client/adp/quick-actions/fe-v2/create-table-action.ts +6 -3
- package/dist/client/adp/quick-actions/fe-v2/create-table-custom-column.js +96 -95
- package/dist/client/adp/quick-actions/fe-v2/create-table-custom-column.ts +27 -21
- package/dist/client/adp/quick-actions/fe-v2/lr-enable-semantic-date-range-filter-bar.js +60 -56
- package/dist/client/adp/quick-actions/fe-v2/lr-enable-semantic-date-range-filter-bar.ts +8 -3
- package/dist/client/adp/quick-actions/fe-v2/lr-enable-table-filtering.js +77 -67
- package/dist/client/adp/quick-actions/fe-v2/lr-enable-table-filtering.ts +37 -16
- package/dist/client/adp/quick-actions/fe-v2/lr-toggle-clear-filter-bar.js +57 -57
- package/dist/client/adp/quick-actions/fe-v2/op-enable-empty-row-mode.js +95 -0
- package/dist/client/adp/quick-actions/fe-v2/op-enable-empty-row-mode.ts +99 -0
- package/dist/client/adp/quick-actions/fe-v2/registry.js +72 -71
- package/dist/client/adp/quick-actions/fe-v2/registry.ts +3 -1
- package/dist/client/adp/quick-actions/fe-v2/utils.js +95 -86
- package/dist/client/adp/quick-actions/fe-v2/utils.ts +14 -4
- package/dist/client/adp/quick-actions/fe-v4/change-table-columns.js +49 -47
- package/dist/client/adp/quick-actions/fe-v4/change-table-columns.ts +5 -1
- package/dist/client/adp/quick-actions/fe-v4/create-table-action.js +47 -45
- package/dist/client/adp/quick-actions/fe-v4/create-table-action.ts +17 -7
- package/dist/client/adp/quick-actions/fe-v4/create-table-custom-column.js +46 -45
- package/dist/client/adp/quick-actions/fe-v4/create-table-custom-column.ts +11 -12
- 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-enable-table-filtering.ts +4 -4
- package/dist/client/adp/quick-actions/fe-v4/lr-toggle-clear-filter-bar.js +52 -52
- package/dist/client/adp/quick-actions/fe-v4/op-enable-empty-row-mode.js +91 -0
- package/dist/client/adp/quick-actions/fe-v4/op-enable-empty-row-mode.ts +85 -0
- package/dist/client/adp/quick-actions/fe-v4/registry.js +56 -55
- package/dist/client/adp/quick-actions/fe-v4/registry.ts +3 -1
- package/dist/client/adp/quick-actions/fe-v4/table-quick-action-base.js +11 -17
- package/dist/client/adp/quick-actions/fe-v4/table-quick-action-base.ts +17 -18
- 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/quick-actions/quick-action-base.js +55 -0
- package/dist/client/adp/quick-actions/quick-action-base.ts +55 -0
- package/dist/client/adp/quick-actions/simple-quick-action-base.js +8 -13
- package/dist/client/adp/quick-actions/simple-quick-action-base.ts +10 -18
- package/dist/client/adp/quick-actions/table-quick-action-base.js +24 -29
- package/dist/client/adp/quick-actions/table-quick-action-base.ts +39 -28
- package/dist/client/adp/utils.js +160 -160
- package/dist/client/cpe/changes/index.js +10 -10
- package/dist/client/cpe/changes/service.js +30 -0
- package/dist/client/cpe/changes/service.ts +46 -0
- 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/quick-action-definition.ts +5 -1
- package/dist/client/cpe/quick-actions/quick-action-service.js +10 -4
- package/dist/client/cpe/quick-actions/quick-action-service.ts +9 -3
- 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/messagebundle.properties +5 -3
- 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 +118 -114
- package/dist/client/utils/fe-v4.ts +19 -11
- package/dist/client/utils/version.js +102 -102
- package/package.json +4 -4
package/dist/client/adp/utils.js
CHANGED
|
@@ -1,162 +1,162 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
sap.ui.define(["sap/m/MessageToast", "sap/ui/core/Element", "sap/base/Log", "sap/ui/fl/Utils", "../utils/error", "../utils/version"], function (MessageToast, Element, Log, FlexUtils, ___utils_error, ___utils_version) {
|
|
4
|
-
"use strict";
|
|
5
|
-
|
|
6
|
-
function __ui5_require_async(path) {
|
|
7
|
-
return new Promise(function (resolve, reject) {
|
|
8
|
-
sap.ui.require([path], function (module) {
|
|
9
|
-
if (!(module && module.__esModule)) {
|
|
10
|
-
module = module === null || !(typeof module === "object" && path.endsWith("/library")) ? {
|
|
11
|
-
default: module
|
|
12
|
-
} : module;
|
|
13
|
-
Object.defineProperty(module, "__esModule", {
|
|
14
|
-
value: true
|
|
15
|
-
});
|
|
16
|
-
}
|
|
17
|
-
resolve(module);
|
|
18
|
-
}, function (err) {
|
|
19
|
-
reject(err);
|
|
20
|
-
});
|
|
21
|
-
});
|
|
22
|
-
}
|
|
23
|
-
const getError = ___utils_error["getError"];
|
|
24
|
-
const isLowerThanMinimalUi5Version = ___utils_version["isLowerThanMinimalUi5Version"];
|
|
25
|
-
/**
|
|
26
|
-
* Defers the resolution of the promise, stores resolve/reject functions so that they can be accessed at a later stage.
|
|
27
|
-
*
|
|
28
|
-
* @description A Deferred object contains an unresolved promise along with the functions to resolve or reject that promise.
|
|
29
|
-
*
|
|
30
|
-
* @returns {Deferred} Deferred object
|
|
31
|
-
*/
|
|
32
|
-
function createDeferred() {
|
|
33
|
-
let resolve = null;
|
|
34
|
-
let reject = null;
|
|
35
|
-
const promise = new Promise((res, rej) => {
|
|
36
|
-
resolve = res;
|
|
37
|
-
reject = rej;
|
|
38
|
-
});
|
|
39
|
-
if (resolve === null || reject === null) {
|
|
40
|
-
throw new Error('Failed to initialize resolve and reject functions.');
|
|
41
|
-
}
|
|
42
|
-
return {
|
|
43
|
-
promise,
|
|
44
|
-
resolve,
|
|
45
|
-
reject
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
/**
|
|
50
|
-
* Checks if the fragment name associated with a command matches the specified fragment name.
|
|
51
|
-
*
|
|
52
|
-
* @param {FlexCommand} command - The command object containing the prepared change to be examined.
|
|
53
|
-
* @param {string} fragmentName - The name of the fragment to match against the command's change.
|
|
54
|
-
* @returns {boolean} Returns true if the command's change contains a fragment path that matches
|
|
55
|
-
* the specified fragment name; otherwise, returns false.
|
|
56
|
-
*/
|
|
57
|
-
function matchesFragmentName(command, fragmentName) {
|
|
58
|
-
if (typeof command.getPreparedChange !== 'function') {
|
|
59
|
-
return false;
|
|
60
|
-
}
|
|
61
|
-
const change = command.getPreparedChange().getDefinition();
|
|
62
|
-
return change.content?.fragmentPath?.includes(`${fragmentName}.fragment.xml`) || false;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
/**
|
|
66
|
-
* Displays a message to the user indicating that an XML fragment will be created upon saving a change.
|
|
67
|
-
*
|
|
68
|
-
* @param {string} message - The message to be shown in the message toast.
|
|
69
|
-
* @param {number} duration - The duration during which message toast will be active.
|
|
70
|
-
*/
|
|
71
|
-
function notifyUser(message) {
|
|
72
|
-
let duration = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 5000;
|
|
73
|
-
MessageToast.show(message, {
|
|
74
|
-
duration
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
/**
|
|
79
|
-
* Check if element is sync view
|
|
80
|
-
*
|
|
81
|
-
* @param element Design time Element
|
|
82
|
-
* @returns boolean if element is sync view or not
|
|
83
|
-
*/
|
|
84
|
-
function isSyncView(element) {
|
|
85
|
-
return element?.getMetadata()?.getName()?.includes('XMLView') && element?.oAsyncState === undefined;
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
/**
|
|
89
|
-
* Get Ids for all sync views
|
|
90
|
-
*
|
|
91
|
-
* @param ui5VersionInfo UI5 Version Information
|
|
92
|
-
*
|
|
93
|
-
* @returns array of Ids for application sync views
|
|
94
|
-
*/
|
|
95
|
-
async function getAllSyncViewsIds(ui5VersionInfo) {
|
|
96
|
-
const syncViewIds = [];
|
|
97
|
-
try {
|
|
98
|
-
if (isLowerThanMinimalUi5Version(ui5VersionInfo, {
|
|
99
|
-
major: 1,
|
|
100
|
-
minor: 120
|
|
101
|
-
})) {
|
|
102
|
-
const elements = Element.registry.filter(() => true);
|
|
103
|
-
elements.forEach(ui5Element => {
|
|
104
|
-
if (isSyncView(ui5Element)) {
|
|
105
|
-
syncViewIds.push(ui5Element.getId());
|
|
106
|
-
}
|
|
107
|
-
});
|
|
108
|
-
} else {
|
|
109
|
-
const ElementRegistry = (await __ui5_require_async('sap/ui/core/ElementRegistry')).default;
|
|
110
|
-
const elements = ElementRegistry.all();
|
|
111
|
-
Object.entries(elements).forEach(_ref => {
|
|
112
|
-
let [key, ui5Element] = _ref;
|
|
113
|
-
if (isSyncView(ui5Element)) {
|
|
114
|
-
syncViewIds.push(key);
|
|
115
|
-
}
|
|
116
|
-
});
|
|
117
|
-
}
|
|
118
|
-
} catch (error) {
|
|
119
|
-
Log.error('Could not get application sync views', getError(error));
|
|
120
|
-
}
|
|
121
|
-
return syncViewIds;
|
|
122
|
-
}
|
|
123
|
-
/**
|
|
124
|
-
* Gets controller name and view ID for the given UI5 control.
|
|
125
|
-
*
|
|
126
|
-
* @param control UI5 control.
|
|
127
|
-
* @returns The controller name and view ID.
|
|
128
|
-
*/
|
|
129
|
-
|
|
130
|
-
function getControllerInfoForControl(control) {
|
|
131
|
-
const view = FlexUtils.getViewForControl(control);
|
|
132
|
-
const controllerName = view.getController().getMetadata().getName();
|
|
133
|
-
const viewId = view.getId();
|
|
134
|
-
return {
|
|
135
|
-
controllerName,
|
|
136
|
-
viewId
|
|
137
|
-
};
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
/**
|
|
141
|
-
* Gets controller name and view ID for the given overlay control.
|
|
142
|
-
*
|
|
143
|
-
* @param overlayControl The overlay control.
|
|
144
|
-
* @returns The controller name and view ID.
|
|
145
|
-
*/
|
|
146
|
-
|
|
147
|
-
function getControllerInfo(overlayControl) {
|
|
148
|
-
const control = overlayControl.getElement();
|
|
149
|
-
return getControllerInfoForControl(control);
|
|
150
|
-
}
|
|
151
|
-
var __exports = {
|
|
152
|
-
__esModule: true
|
|
153
|
-
};
|
|
154
|
-
__exports.createDeferred = createDeferred;
|
|
155
|
-
__exports.matchesFragmentName = matchesFragmentName;
|
|
156
|
-
__exports.notifyUser = notifyUser;
|
|
157
|
-
__exports.getAllSyncViewsIds = getAllSyncViewsIds;
|
|
158
|
-
__exports.getControllerInfoForControl = getControllerInfoForControl;
|
|
159
|
-
__exports.getControllerInfo = getControllerInfo;
|
|
160
|
-
return __exports;
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
sap.ui.define(["sap/m/MessageToast", "sap/ui/core/Element", "sap/base/Log", "sap/ui/fl/Utils", "../utils/error", "../utils/version"], function (MessageToast, Element, Log, FlexUtils, ___utils_error, ___utils_version) {
|
|
4
|
+
"use strict";
|
|
5
|
+
|
|
6
|
+
function __ui5_require_async(path) {
|
|
7
|
+
return new Promise(function (resolve, reject) {
|
|
8
|
+
sap.ui.require([path], function (module) {
|
|
9
|
+
if (!(module && module.__esModule)) {
|
|
10
|
+
module = module === null || !(typeof module === "object" && path.endsWith("/library")) ? {
|
|
11
|
+
default: module
|
|
12
|
+
} : module;
|
|
13
|
+
Object.defineProperty(module, "__esModule", {
|
|
14
|
+
value: true
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
resolve(module);
|
|
18
|
+
}, function (err) {
|
|
19
|
+
reject(err);
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
const getError = ___utils_error["getError"];
|
|
24
|
+
const isLowerThanMinimalUi5Version = ___utils_version["isLowerThanMinimalUi5Version"];
|
|
25
|
+
/**
|
|
26
|
+
* Defers the resolution of the promise, stores resolve/reject functions so that they can be accessed at a later stage.
|
|
27
|
+
*
|
|
28
|
+
* @description A Deferred object contains an unresolved promise along with the functions to resolve or reject that promise.
|
|
29
|
+
*
|
|
30
|
+
* @returns {Deferred} Deferred object
|
|
31
|
+
*/
|
|
32
|
+
function createDeferred() {
|
|
33
|
+
let resolve = null;
|
|
34
|
+
let reject = null;
|
|
35
|
+
const promise = new Promise((res, rej) => {
|
|
36
|
+
resolve = res;
|
|
37
|
+
reject = rej;
|
|
38
|
+
});
|
|
39
|
+
if (resolve === null || reject === null) {
|
|
40
|
+
throw new Error('Failed to initialize resolve and reject functions.');
|
|
41
|
+
}
|
|
42
|
+
return {
|
|
43
|
+
promise,
|
|
44
|
+
resolve,
|
|
45
|
+
reject
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Checks if the fragment name associated with a command matches the specified fragment name.
|
|
51
|
+
*
|
|
52
|
+
* @param {FlexCommand} command - The command object containing the prepared change to be examined.
|
|
53
|
+
* @param {string} fragmentName - The name of the fragment to match against the command's change.
|
|
54
|
+
* @returns {boolean} Returns true if the command's change contains a fragment path that matches
|
|
55
|
+
* the specified fragment name; otherwise, returns false.
|
|
56
|
+
*/
|
|
57
|
+
function matchesFragmentName(command, fragmentName) {
|
|
58
|
+
if (typeof command.getPreparedChange !== 'function') {
|
|
59
|
+
return false;
|
|
60
|
+
}
|
|
61
|
+
const change = command.getPreparedChange().getDefinition();
|
|
62
|
+
return change.content?.fragmentPath?.includes(`${fragmentName}.fragment.xml`) || false;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Displays a message to the user indicating that an XML fragment will be created upon saving a change.
|
|
67
|
+
*
|
|
68
|
+
* @param {string} message - The message to be shown in the message toast.
|
|
69
|
+
* @param {number} duration - The duration during which message toast will be active.
|
|
70
|
+
*/
|
|
71
|
+
function notifyUser(message) {
|
|
72
|
+
let duration = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 5000;
|
|
73
|
+
MessageToast.show(message, {
|
|
74
|
+
duration
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Check if element is sync view
|
|
80
|
+
*
|
|
81
|
+
* @param element Design time Element
|
|
82
|
+
* @returns boolean if element is sync view or not
|
|
83
|
+
*/
|
|
84
|
+
function isSyncView(element) {
|
|
85
|
+
return element?.getMetadata()?.getName()?.includes('XMLView') && element?.oAsyncState === undefined;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* Get Ids for all sync views
|
|
90
|
+
*
|
|
91
|
+
* @param ui5VersionInfo UI5 Version Information
|
|
92
|
+
*
|
|
93
|
+
* @returns array of Ids for application sync views
|
|
94
|
+
*/
|
|
95
|
+
async function getAllSyncViewsIds(ui5VersionInfo) {
|
|
96
|
+
const syncViewIds = [];
|
|
97
|
+
try {
|
|
98
|
+
if (isLowerThanMinimalUi5Version(ui5VersionInfo, {
|
|
99
|
+
major: 1,
|
|
100
|
+
minor: 120
|
|
101
|
+
})) {
|
|
102
|
+
const elements = Element.registry.filter(() => true);
|
|
103
|
+
elements.forEach(ui5Element => {
|
|
104
|
+
if (isSyncView(ui5Element)) {
|
|
105
|
+
syncViewIds.push(ui5Element.getId());
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
} else {
|
|
109
|
+
const ElementRegistry = (await __ui5_require_async('sap/ui/core/ElementRegistry')).default;
|
|
110
|
+
const elements = ElementRegistry.all();
|
|
111
|
+
Object.entries(elements).forEach(_ref => {
|
|
112
|
+
let [key, ui5Element] = _ref;
|
|
113
|
+
if (isSyncView(ui5Element)) {
|
|
114
|
+
syncViewIds.push(key);
|
|
115
|
+
}
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
} catch (error) {
|
|
119
|
+
Log.error('Could not get application sync views', getError(error));
|
|
120
|
+
}
|
|
121
|
+
return syncViewIds;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Gets controller name and view ID for the given UI5 control.
|
|
125
|
+
*
|
|
126
|
+
* @param control UI5 control.
|
|
127
|
+
* @returns The controller name and view ID.
|
|
128
|
+
*/
|
|
129
|
+
|
|
130
|
+
function getControllerInfoForControl(control) {
|
|
131
|
+
const view = FlexUtils.getViewForControl(control);
|
|
132
|
+
const controllerName = view.getController().getMetadata().getName();
|
|
133
|
+
const viewId = view.getId();
|
|
134
|
+
return {
|
|
135
|
+
controllerName,
|
|
136
|
+
viewId
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
/**
|
|
141
|
+
* Gets controller name and view ID for the given overlay control.
|
|
142
|
+
*
|
|
143
|
+
* @param overlayControl The overlay control.
|
|
144
|
+
* @returns The controller name and view ID.
|
|
145
|
+
*/
|
|
146
|
+
|
|
147
|
+
function getControllerInfo(overlayControl) {
|
|
148
|
+
const control = overlayControl.getElement();
|
|
149
|
+
return getControllerInfoForControl(control);
|
|
150
|
+
}
|
|
151
|
+
var __exports = {
|
|
152
|
+
__esModule: true
|
|
153
|
+
};
|
|
154
|
+
__exports.createDeferred = createDeferred;
|
|
155
|
+
__exports.matchesFragmentName = matchesFragmentName;
|
|
156
|
+
__exports.notifyUser = notifyUser;
|
|
157
|
+
__exports.getAllSyncViewsIds = getAllSyncViewsIds;
|
|
158
|
+
__exports.getControllerInfoForControl = getControllerInfoForControl;
|
|
159
|
+
__exports.getControllerInfo = getControllerInfo;
|
|
160
|
+
return __exports;
|
|
161
161
|
});
|
|
162
162
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
sap.ui.define(["./service"], function (___service) {
|
|
4
|
-
"use strict";
|
|
5
|
-
|
|
6
|
-
var __exports = {
|
|
7
|
-
__esModule: true
|
|
8
|
-
};
|
|
9
|
-
__exports.ChangeService = ___service.ChangeService;
|
|
10
|
-
return __exports;
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
sap.ui.define(["./service"], function (___service) {
|
|
4
|
+
"use strict";
|
|
5
|
+
|
|
6
|
+
var __exports = {
|
|
7
|
+
__esModule: true
|
|
8
|
+
};
|
|
9
|
+
__exports.ChangeService = ___service.ChangeService;
|
|
10
|
+
return __exports;
|
|
11
11
|
});
|
|
12
12
|
//# sourceMappingURL=index.js.map
|
|
@@ -356,6 +356,34 @@ sap.ui.define([
|
|
|
356
356
|
}
|
|
357
357
|
return result;
|
|
358
358
|
}
|
|
359
|
+
prepareV2ConfigurationChange(command, fileName, index, inactiveCommandCount) {
|
|
360
|
+
const {entityPropertyChange, page} = command.getProperty('parameters');
|
|
361
|
+
const propertyName = Object.keys(entityPropertyChange.propertyValue)[0];
|
|
362
|
+
const propertyValue = entityPropertyChange.propertyValue[propertyName];
|
|
363
|
+
const controlId = this.getCommandSelectorId(command) ?? '';
|
|
364
|
+
const propertyPathSegments = entityPropertyChange.propertyPath.split('/');
|
|
365
|
+
const key = getConfigMapControlIdMap(page, propertyPathSegments);
|
|
366
|
+
const isActive = index >= inactiveCommandCount;
|
|
367
|
+
const controlIds = this.configPropertyControlIdMap?.get(key) || [controlId];
|
|
368
|
+
const result = {
|
|
369
|
+
type: PENDING_CHANGE_TYPE,
|
|
370
|
+
kind: CONFIGURATION_CHANGE_KIND,
|
|
371
|
+
controlIds,
|
|
372
|
+
propertyPath: getCompactV4ConfigPath(propertyPathSegments) || page,
|
|
373
|
+
propertyName,
|
|
374
|
+
isActive,
|
|
375
|
+
value: propertyValue,
|
|
376
|
+
fileName
|
|
377
|
+
};
|
|
378
|
+
for (const id of result.controlIds) {
|
|
379
|
+
if (!this.pendingConfigChangeMap.get(id)) {
|
|
380
|
+
this.pendingConfigChangeMap.set(id, []);
|
|
381
|
+
}
|
|
382
|
+
const pendingChanges = this.pendingConfigChangeMap.get(id);
|
|
383
|
+
pendingChanges?.push(result);
|
|
384
|
+
}
|
|
385
|
+
return result;
|
|
386
|
+
}
|
|
359
387
|
async prepareChangeType(command, inactiveCommandCount, index) {
|
|
360
388
|
const change = command?.getPreparedChange?.();
|
|
361
389
|
const selectorId = typeof change?.getSelector === 'function' ? await this.getControlIdByChange(change) : this.getCommandSelectorId(command);
|
|
@@ -389,6 +417,8 @@ sap.ui.define([
|
|
|
389
417
|
} else if (changeType === 'appdescr_fe_changePageConfiguration') {
|
|
390
418
|
const value = command.getProperty('parameters').entityPropertyChange.propertyValue;
|
|
391
419
|
return this.prepareV4ConfigurationChange(command, value, fileName, index, inactiveCommandCount);
|
|
420
|
+
} else if (changeType === 'appdescr_ui_generic_app_changePageConfiguration') {
|
|
421
|
+
return this.prepareV2ConfigurationChange(command, fileName, index, inactiveCommandCount);
|
|
392
422
|
} else {
|
|
393
423
|
let result = {
|
|
394
424
|
type: PENDING_CHANGE_TYPE,
|
|
@@ -558,6 +558,50 @@ export class ChangeService extends EventTarget {
|
|
|
558
558
|
return result;
|
|
559
559
|
}
|
|
560
560
|
|
|
561
|
+
private prepareV2ConfigurationChange(
|
|
562
|
+
command: FlexCommand,
|
|
563
|
+
fileName: string,
|
|
564
|
+
index: number,
|
|
565
|
+
inactiveCommandCount: number
|
|
566
|
+
): PendingConfigurationChange {
|
|
567
|
+
const { entityPropertyChange, page } = command.getProperty('parameters') as {
|
|
568
|
+
entityPropertyChange: {
|
|
569
|
+
propertyPath: string;
|
|
570
|
+
propertyValue: Record<string, string>;
|
|
571
|
+
};
|
|
572
|
+
page: string;
|
|
573
|
+
};
|
|
574
|
+
const propertyName = Object.keys(entityPropertyChange.propertyValue)[0];
|
|
575
|
+
const propertyValue = entityPropertyChange.propertyValue[propertyName];
|
|
576
|
+
const controlId = this.getCommandSelectorId(command) ?? '';
|
|
577
|
+
const propertyPathSegments = entityPropertyChange.propertyPath.split('/');
|
|
578
|
+
|
|
579
|
+
const key = getConfigMapControlIdMap(page, propertyPathSegments);
|
|
580
|
+
|
|
581
|
+
const isActive = index >= inactiveCommandCount;
|
|
582
|
+
const controlIds = this.configPropertyControlIdMap?.get(key) || [controlId];
|
|
583
|
+
|
|
584
|
+
const result: PendingConfigurationChange = {
|
|
585
|
+
type: PENDING_CHANGE_TYPE,
|
|
586
|
+
kind: CONFIGURATION_CHANGE_KIND,
|
|
587
|
+
controlIds,
|
|
588
|
+
propertyPath: getCompactV4ConfigPath(propertyPathSegments) || page,
|
|
589
|
+
propertyName,
|
|
590
|
+
isActive,
|
|
591
|
+
value: propertyValue,
|
|
592
|
+
fileName
|
|
593
|
+
};
|
|
594
|
+
for (const id of result.controlIds) {
|
|
595
|
+
if (!this.pendingConfigChangeMap.get(id)) {
|
|
596
|
+
this.pendingConfigChangeMap.set(id, []);
|
|
597
|
+
}
|
|
598
|
+
const pendingChanges = this.pendingConfigChangeMap.get(id);
|
|
599
|
+
pendingChanges?.push(result);
|
|
600
|
+
}
|
|
601
|
+
|
|
602
|
+
return result;
|
|
603
|
+
}
|
|
604
|
+
|
|
561
605
|
/**
|
|
562
606
|
* Prepares the type of change based on the command and other parameters.
|
|
563
607
|
*
|
|
@@ -613,6 +657,8 @@ export class ChangeService extends EventTarget {
|
|
|
613
657
|
command.getProperty('parameters') as { entityPropertyChange: { propertyValue: ConfigurationValue } }
|
|
614
658
|
).entityPropertyChange.propertyValue;
|
|
615
659
|
return this.prepareV4ConfigurationChange(command, value, fileName, index, inactiveCommandCount);
|
|
660
|
+
} else if (changeType === 'appdescr_ui_generic_app_changePageConfiguration') {
|
|
661
|
+
return this.prepareV2ConfigurationChange(command, fileName, index, inactiveCommandCount);
|
|
616
662
|
} else {
|
|
617
663
|
let result: PendingChange = {
|
|
618
664
|
type: PENDING_CHANGE_TYPE,
|
|
@@ -1,36 +1,36 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
sap.ui.define([], function () {
|
|
4
|
-
"use strict";
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Function to validate if a given value is a valid binding model.
|
|
8
|
-
*
|
|
9
|
-
* @param modifiedControl control to be modified.
|
|
10
|
-
* @param value value to be checked.
|
|
11
|
-
*/
|
|
12
|
-
function validateBindingModel(modifiedControl, value) {
|
|
13
|
-
const bindingValue = value.replace(/[{}]/gi, '').trim();
|
|
14
|
-
const bindingParts = bindingValue.split('>').filter(el => el !== '');
|
|
15
|
-
if (!bindingParts.length) {
|
|
16
|
-
throw new SyntaxError('Invalid binding string.');
|
|
17
|
-
}
|
|
18
|
-
if (bindingParts[0].trim() === 'i18n') {
|
|
19
|
-
if (bindingParts.length === 2) {
|
|
20
|
-
const resourceKey = bindingParts[1].trim();
|
|
21
|
-
const resourceBundle = modifiedControl.getModel('i18n').getResourceBundle();
|
|
22
|
-
if (!resourceBundle.getText(resourceKey, undefined, true)) {
|
|
23
|
-
throw new SyntaxError('Invalid key in the binding string. Supported value pattern is {i18n>YOUR_KEY}. Check if the key already exists in i18n.properties.' + 'If not, add the key in the i18n.properties file and reload the editor for the new key to take effect.');
|
|
24
|
-
}
|
|
25
|
-
} else {
|
|
26
|
-
throw new SyntaxError('Invalid binding string. Supported value pattern is {i18n>YOUR_KEY}');
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
var __exports = {
|
|
31
|
-
__esModule: true
|
|
32
|
-
};
|
|
33
|
-
__exports.validateBindingModel = validateBindingModel;
|
|
34
|
-
return __exports;
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
sap.ui.define([], function () {
|
|
4
|
+
"use strict";
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Function to validate if a given value is a valid binding model.
|
|
8
|
+
*
|
|
9
|
+
* @param modifiedControl control to be modified.
|
|
10
|
+
* @param value value to be checked.
|
|
11
|
+
*/
|
|
12
|
+
function validateBindingModel(modifiedControl, value) {
|
|
13
|
+
const bindingValue = value.replace(/[{}]/gi, '').trim();
|
|
14
|
+
const bindingParts = bindingValue.split('>').filter(el => el !== '');
|
|
15
|
+
if (!bindingParts.length) {
|
|
16
|
+
throw new SyntaxError('Invalid binding string.');
|
|
17
|
+
}
|
|
18
|
+
if (bindingParts[0].trim() === 'i18n') {
|
|
19
|
+
if (bindingParts.length === 2) {
|
|
20
|
+
const resourceKey = bindingParts[1].trim();
|
|
21
|
+
const resourceBundle = modifiedControl.getModel('i18n').getResourceBundle();
|
|
22
|
+
if (!resourceBundle.getText(resourceKey, undefined, true)) {
|
|
23
|
+
throw new SyntaxError('Invalid key in the binding string. Supported value pattern is {i18n>YOUR_KEY}. Check if the key already exists in i18n.properties.' + 'If not, add the key in the i18n.properties file and reload the editor for the new key to take effect.');
|
|
24
|
+
}
|
|
25
|
+
} else {
|
|
26
|
+
throw new SyntaxError('Invalid binding string. Supported value pattern is {i18n>YOUR_KEY}');
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
var __exports = {
|
|
31
|
+
__esModule: true
|
|
32
|
+
};
|
|
33
|
+
__exports.validateBindingModel = validateBindingModel;
|
|
34
|
+
return __exports;
|
|
35
35
|
});
|
|
36
36
|
//# sourceMappingURL=validator.js.map
|