@sapui5/sap.fe.controls 1.148.0 → 1.149.0
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/package.json +1 -1
- package/src/sap/fe/controls/.library +1 -1
- package/src/sap/fe/controls/AiNoticeHelper.js +26 -5
- package/src/sap/fe/controls/AiNoticeHelper.tsx +31 -3
- package/src/sap/fe/controls/easyFilter/EasyFilterBarContainer.js +68 -44
- package/src/sap/fe/controls/easyFilter/EasyFilterBarContainer.tsx +35 -4
- package/src/sap/fe/controls/easyFilter/EasyFilterInput.js +103 -19
- package/src/sap/fe/controls/easyFilter/EasyFilterInput.tsx +100 -7
- package/src/sap/fe/controls/easyFilter/Token.js +4 -4
- package/src/sap/fe/controls/easyFilter/innerControls/MenuWithSingleSelectFactory.js +2 -2
- package/src/sap/fe/controls/easyFilter/innerControls/ValueHelpPreviewFactory.js +7 -3
- package/src/sap/fe/controls/easyFilter/innerControls/ValueHelpPreviewFactory.ts +5 -0
- package/src/sap/fe/controls/library.js +1 -1
- package/src/sap/fe/controls/messagebundle.properties +4 -0
- package/src/sap/fe/controls/messagebundle_ar.properties +9 -3
- package/src/sap/fe/controls/messagebundle_bg.properties +9 -3
- package/src/sap/fe/controls/messagebundle_ca.properties +9 -3
- package/src/sap/fe/controls/messagebundle_cnr.properties +9 -3
- package/src/sap/fe/controls/messagebundle_cs.properties +9 -3
- package/src/sap/fe/controls/messagebundle_cy.properties +9 -3
- package/src/sap/fe/controls/messagebundle_da.properties +9 -3
- package/src/sap/fe/controls/messagebundle_de.properties +9 -3
- package/src/sap/fe/controls/messagebundle_el.properties +9 -3
- package/src/sap/fe/controls/messagebundle_en.properties +9 -3
- package/src/sap/fe/controls/messagebundle_en_GB.properties +9 -3
- package/src/sap/fe/controls/messagebundle_en_US_saprigi.properties +6 -3
- package/src/sap/fe/controls/messagebundle_es.properties +9 -3
- package/src/sap/fe/controls/messagebundle_es_MX.properties +9 -3
- package/src/sap/fe/controls/messagebundle_et.properties +9 -3
- package/src/sap/fe/controls/messagebundle_fi.properties +9 -3
- package/src/sap/fe/controls/messagebundle_fr.properties +9 -3
- package/src/sap/fe/controls/messagebundle_fr_CA.properties +9 -3
- package/src/sap/fe/controls/messagebundle_hi.properties +9 -3
- package/src/sap/fe/controls/messagebundle_hr.properties +9 -3
- package/src/sap/fe/controls/messagebundle_hu.properties +7 -1
- package/src/sap/fe/controls/messagebundle_id.properties +9 -3
- package/src/sap/fe/controls/messagebundle_it.properties +9 -3
- package/src/sap/fe/controls/messagebundle_iw.properties +9 -3
- package/src/sap/fe/controls/messagebundle_ja.properties +9 -3
- package/src/sap/fe/controls/messagebundle_kk.properties +9 -3
- package/src/sap/fe/controls/messagebundle_ko.properties +9 -3
- package/src/sap/fe/controls/messagebundle_lt.properties +9 -3
- package/src/sap/fe/controls/messagebundle_lv.properties +9 -3
- package/src/sap/fe/controls/messagebundle_mk.properties +9 -3
- package/src/sap/fe/controls/messagebundle_ms.properties +9 -3
- package/src/sap/fe/controls/messagebundle_nl.properties +9 -3
- package/src/sap/fe/controls/messagebundle_no.properties +7 -1
- package/src/sap/fe/controls/messagebundle_pl.properties +7 -1
- package/src/sap/fe/controls/messagebundle_pt.properties +9 -3
- package/src/sap/fe/controls/messagebundle_pt_PT.properties +9 -3
- package/src/sap/fe/controls/messagebundle_ro.properties +9 -3
- package/src/sap/fe/controls/messagebundle_ru.properties +9 -3
- package/src/sap/fe/controls/messagebundle_sh.properties +9 -3
- package/src/sap/fe/controls/messagebundle_sk.properties +9 -3
- package/src/sap/fe/controls/messagebundle_sl.properties +9 -3
- package/src/sap/fe/controls/messagebundle_sr.properties +9 -3
- package/src/sap/fe/controls/messagebundle_sv.properties +9 -3
- package/src/sap/fe/controls/messagebundle_th.properties +10 -4
- package/src/sap/fe/controls/messagebundle_tr.properties +9 -3
- package/src/sap/fe/controls/messagebundle_uk.properties +9 -3
- package/src/sap/fe/controls/messagebundle_vi.properties +9 -3
- package/src/sap/fe/controls/messagebundle_zh_CN.properties +9 -3
- package/src/sap/fe/controls/messagebundle_zh_TW.properties +9 -3
- package/src/sap/fe/controls/shortcuts/ShortcutExplanationProvider.js +2 -5
- package/src/sap/fe/controls/shortcuts/popup/ShortcutTool.js +5 -8
- package/src/sap/fe/controls/themes/base/EasyFilter.less +8 -4
package/package.json
CHANGED
|
@@ -2,9 +2,16 @@
|
|
|
2
2
|
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
3
|
* (c) Copyright 2009-2026 SAP SE. All rights reserved
|
|
4
4
|
*/
|
|
5
|
-
sap.ui.define(["sap/m/Button", "sap/m/OverflowToolbar", "sap/m/Popover", "sap/m/ToolbarSpacer", "sap/ui/core/Lib", "sap/fe/base/jsx-runtime/jsx", "sap/fe/base/jsx-runtime/Fragment", "sap/fe/base/jsx-runtime/jsxs"], function (Button, OverflowToolbar, Popover, ToolbarSpacer, Lib, _jsx, _Fragment, _jsxs) {
|
|
5
|
+
sap.ui.define(["sap/m/Button", "sap/m/OverflowToolbar", "sap/m/Popover", "sap/m/Text", "sap/m/ToolbarSpacer", "sap/ui/core/Lib", "sap/fe/base/jsx-runtime/jsx", "sap/fe/base/jsx-runtime/Fragment", "sap/fe/base/jsx-runtime/jsxs"], function (Button, OverflowToolbar, Popover, Text, ToolbarSpacer, Lib, _jsx, _Fragment, _jsxs) {
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
|
+
function getParentView(control) {
|
|
9
|
+
let current = control;
|
|
10
|
+
while (current && !current.isA("sap.ui.core.mvc.View")) {
|
|
11
|
+
current = current.getParent();
|
|
12
|
+
}
|
|
13
|
+
return current ?? undefined;
|
|
14
|
+
}
|
|
8
15
|
return {
|
|
9
16
|
/**
|
|
10
17
|
* Generates a popover with AI notice content. The popover is opened by the provided parent control.
|
|
@@ -12,15 +19,27 @@ sap.ui.define(["sap/m/Button", "sap/m/OverflowToolbar", "sap/m/Popover", "sap/m/
|
|
|
12
19
|
* @param params.parent The control that opens the popover
|
|
13
20
|
* @param params.placementType Optional placement type for the popover
|
|
14
21
|
* @param params.content Optional content for the popover. If not provided, default content is used.
|
|
22
|
+
* @param params.contentText Optional text content for the popover. Use this instead of content to support i18n binding strings.
|
|
15
23
|
* @returns The generated Popover instance
|
|
16
24
|
*/
|
|
17
25
|
generatePopover(params) {
|
|
18
26
|
const {
|
|
19
27
|
parent,
|
|
20
|
-
placementType
|
|
21
|
-
content
|
|
28
|
+
placementType
|
|
22
29
|
} = params;
|
|
23
30
|
const resourceBundle = Lib.getResourceBundleFor("sap.fe.controls");
|
|
31
|
+
const resolveContent = () => {
|
|
32
|
+
if (params.contentText !== undefined) {
|
|
33
|
+
return new Text({
|
|
34
|
+
text: params.contentText
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
const {
|
|
38
|
+
content
|
|
39
|
+
} = params;
|
|
40
|
+
return Array.isArray(content) ? content.map(item => item.clone()) : content?.clone();
|
|
41
|
+
};
|
|
42
|
+
const view = getParentView(params.parent);
|
|
24
43
|
const myPopover = _jsx(Popover, {
|
|
25
44
|
class: "sapUiContentPadding",
|
|
26
45
|
contentMinWidth: "22.8125rem",
|
|
@@ -29,10 +48,11 @@ sap.ui.define(["sap/m/Button", "sap/m/OverflowToolbar", "sap/m/Popover", "sap/m/
|
|
|
29
48
|
placement: placementType,
|
|
30
49
|
title: resourceBundle.getText("M_POPOVER_AI_TITLE"),
|
|
31
50
|
afterClose: () => {
|
|
51
|
+
view?.removeDependent(myPopover);
|
|
32
52
|
myPopover?.destroy();
|
|
33
53
|
},
|
|
34
54
|
children: {
|
|
35
|
-
content:
|
|
55
|
+
content: resolveContent(),
|
|
36
56
|
footer: _jsx(OverflowToolbar, {
|
|
37
57
|
children: {
|
|
38
58
|
content: _jsxs(_Fragment, {
|
|
@@ -47,9 +67,10 @@ sap.ui.define(["sap/m/Button", "sap/m/OverflowToolbar", "sap/m/Popover", "sap/m/
|
|
|
47
67
|
})
|
|
48
68
|
}
|
|
49
69
|
});
|
|
70
|
+
view?.addDependent(myPopover);
|
|
50
71
|
myPopover.openBy(parent);
|
|
51
72
|
return myPopover;
|
|
52
73
|
}
|
|
53
74
|
};
|
|
54
75
|
}, false);
|
|
55
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
76
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnZXRQYXJlbnRWaWV3IiwiY29udHJvbCIsImN1cnJlbnQiLCJpc0EiLCJnZXRQYXJlbnQiLCJ1bmRlZmluZWQiLCJnZW5lcmF0ZVBvcG92ZXIiLCJwYXJhbXMiLCJwYXJlbnQiLCJwbGFjZW1lbnRUeXBlIiwicmVzb3VyY2VCdW5kbGUiLCJMaWIiLCJnZXRSZXNvdXJjZUJ1bmRsZUZvciIsInJlc29sdmVDb250ZW50IiwiY29udGVudFRleHQiLCJUZXh0IiwidGV4dCIsImNvbnRlbnQiLCJBcnJheSIsImlzQXJyYXkiLCJtYXAiLCJpdGVtIiwiY2xvbmUiLCJ2aWV3IiwibXlQb3BvdmVyIiwiX2pzeCIsIlBvcG92ZXIiLCJjbGFzcyIsImNvbnRlbnRNaW5XaWR0aCIsInNob3dBcnJvdyIsInNob3dIZWFkZXIiLCJwbGFjZW1lbnQiLCJ0aXRsZSIsImdldFRleHQiLCJhZnRlckNsb3NlIiwicmVtb3ZlRGVwZW5kZW50IiwiZGVzdHJveSIsImNoaWxkcmVuIiwiZm9vdGVyIiwiT3ZlcmZsb3dUb29sYmFyIiwiX2pzeHMiLCJfRnJhZ21lbnQiLCJUb29sYmFyU3BhY2VyIiwiQnV0dG9uIiwicHJlc3MiLCJjbG9zZSIsImFkZERlcGVuZGVudCIsIm9wZW5CeSJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiQWlOb3RpY2VIZWxwZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIFJlc291cmNlQnVuZGxlIGZyb20gXCJzYXAvYmFzZS9pMThuL1Jlc291cmNlQnVuZGxlXCI7XG5pbXBvcnQgQnV0dG9uIGZyb20gXCJzYXAvbS9CdXR0b25cIjtcbmltcG9ydCB0eXBlIHsgUGxhY2VtZW50VHlwZSB9IGZyb20gXCJzYXAvbS9saWJyYXJ5XCI7XG5pbXBvcnQgT3ZlcmZsb3dUb29sYmFyIGZyb20gXCJzYXAvbS9PdmVyZmxvd1Rvb2xiYXJcIjtcbmltcG9ydCBQb3BvdmVyIGZyb20gXCJzYXAvbS9Qb3BvdmVyXCI7XG5pbXBvcnQgVGV4dCBmcm9tIFwic2FwL20vVGV4dFwiO1xuaW1wb3J0IFRvb2xiYXJTcGFjZXIgZnJvbSBcInNhcC9tL1Rvb2xiYXJTcGFjZXJcIjtcbmltcG9ydCB0eXBlIE1hbmFnZWRPYmplY3QgZnJvbSBcInNhcC91aS9iYXNlL01hbmFnZWRPYmplY3RcIjtcbmltcG9ydCB0eXBlIENvbnRyb2wgZnJvbSBcInNhcC91aS9jb3JlL0NvbnRyb2xcIjtcbmltcG9ydCBMaWIgZnJvbSBcInNhcC91aS9jb3JlL0xpYlwiO1xuaW1wb3J0IHR5cGUgVmlldyBmcm9tIFwic2FwL3VpL2NvcmUvbXZjL1ZpZXdcIjtcblxuZnVuY3Rpb24gZ2V0UGFyZW50Vmlldyhjb250cm9sOiBDb250cm9sKTogVmlldyB8IHVuZGVmaW5lZCB7XG5cdGxldCBjdXJyZW50OiBNYW5hZ2VkT2JqZWN0IHwgbnVsbCA9IGNvbnRyb2w7XG5cdHdoaWxlIChjdXJyZW50ICYmICFjdXJyZW50LmlzQTxWaWV3PihcInNhcC51aS5jb3JlLm12Yy5WaWV3XCIpKSB7XG5cdFx0Y3VycmVudCA9IGN1cnJlbnQuZ2V0UGFyZW50KCk7XG5cdH1cblx0cmV0dXJuIGN1cnJlbnQgPz8gdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgZGVmYXVsdCB7XG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBwb3BvdmVyIHdpdGggQUkgbm90aWNlIGNvbnRlbnQuIFRoZSBwb3BvdmVyIGlzIG9wZW5lZCBieSB0aGUgcHJvdmlkZWQgcGFyZW50IGNvbnRyb2wuXG5cdCAqIEBwYXJhbSBwYXJhbXMgQW4gb2JqZWN0IGNvbnRhaW5pbmcgcGFyYW1ldGVycyBmb3IgZ2VuZXJhdGluZyB0aGUgcG9wb3ZlclxuXHQgKiBAcGFyYW0gcGFyYW1zLnBhcmVudCBUaGUgY29udHJvbCB0aGF0IG9wZW5zIHRoZSBwb3BvdmVyXG5cdCAqIEBwYXJhbSBwYXJhbXMucGxhY2VtZW50VHlwZSBPcHRpb25hbCBwbGFjZW1lbnQgdHlwZSBmb3IgdGhlIHBvcG92ZXJcblx0ICogQHBhcmFtIHBhcmFtcy5jb250ZW50IE9wdGlvbmFsIGNvbnRlbnQgZm9yIHRoZSBwb3BvdmVyLiBJZiBub3QgcHJvdmlkZWQsIGRlZmF1bHQgY29udGVudCBpcyB1c2VkLlxuXHQgKiBAcGFyYW0gcGFyYW1zLmNvbnRlbnRUZXh0IE9wdGlvbmFsIHRleHQgY29udGVudCBmb3IgdGhlIHBvcG92ZXIuIFVzZSB0aGlzIGluc3RlYWQgb2YgY29udGVudCB0byBzdXBwb3J0IGkxOG4gYmluZGluZyBzdHJpbmdzLlxuXHQgKiBAcmV0dXJucyBUaGUgZ2VuZXJhdGVkIFBvcG92ZXIgaW5zdGFuY2Vcblx0ICovXG5cdGdlbmVyYXRlUG9wb3ZlcihwYXJhbXM6IHtcblx0XHRwYXJlbnQ6IENvbnRyb2w7XG5cdFx0cGxhY2VtZW50VHlwZT86IFBsYWNlbWVudFR5cGU7XG5cdFx0Y29udGVudD86IENvbnRyb2wgfCBDb250cm9sW107XG5cdFx0Y29udGVudFRleHQ/OiBzdHJpbmc7XG5cdH0pOiBQb3BvdmVyIHtcblx0XHRjb25zdCB7IHBhcmVudCwgcGxhY2VtZW50VHlwZSB9ID0gcGFyYW1zO1xuXHRcdGNvbnN0IHJlc291cmNlQnVuZGxlID0gTGliLmdldFJlc291cmNlQnVuZGxlRm9yKFwic2FwLmZlLmNvbnRyb2xzXCIpIGFzIFJlc291cmNlQnVuZGxlO1xuXG5cdFx0Y29uc3QgcmVzb2x2ZUNvbnRlbnQgPSAoKTogQ29udHJvbCB8IENvbnRyb2xbXSB8IHVuZGVmaW5lZCA9PiB7XG5cdFx0XHRpZiAocGFyYW1zLmNvbnRlbnRUZXh0ICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdFx0cmV0dXJuIG5ldyBUZXh0KHsgdGV4dDogcGFyYW1zLmNvbnRlbnRUZXh0IH0pO1xuXHRcdFx0fVxuXHRcdFx0Y29uc3QgeyBjb250ZW50IH0gPSBwYXJhbXM7XG5cdFx0XHRyZXR1cm4gQXJyYXkuaXNBcnJheShjb250ZW50KSA/IGNvbnRlbnQubWFwKChpdGVtOiBDb250cm9sKSA9PiBpdGVtLmNsb25lKCkpIDogY29udGVudD8uY2xvbmUoKTtcblx0XHR9O1xuXG4gICAgICAgICAgICAgICAgY29uc3QgdmlldyA9IGdldFBhcmVudFZpZXcocGFyYW1zLnBhcmVudCk7XG5cdFx0Y29uc3QgbXlQb3BvdmVyID0gKFxuXHRcdFx0PFBvcG92ZXJcblx0XHRcdFx0Y2xhc3M9XCJzYXBVaUNvbnRlbnRQYWRkaW5nXCJcblx0XHRcdFx0Y29udGVudE1pbldpZHRoPXtcIjIyLjgxMjVyZW1cIn1cblx0XHRcdFx0c2hvd0Fycm93PXt0cnVlfVxuXHRcdFx0XHRzaG93SGVhZGVyPXt0cnVlfVxuXHRcdFx0XHRwbGFjZW1lbnQ9e3BsYWNlbWVudFR5cGV9XG5cdFx0XHRcdHRpdGxlPXtyZXNvdXJjZUJ1bmRsZS5nZXRUZXh0KFwiTV9QT1BPVkVSX0FJX1RJVExFXCIpfVxuXHRcdFx0XHRhZnRlckNsb3NlPXsoKTogdm9pZCA9PiB7XG5cdFx0XHRcdFx0dmlldz8ucmVtb3ZlRGVwZW5kZW50KG15UG9wb3Zlcik7XG5cdFx0XHRcdFx0bXlQb3BvdmVyPy5kZXN0cm95KCk7XG5cdFx0XHRcdH19XG5cdFx0XHQ+XG5cdFx0XHRcdHt7XG5cdFx0XHRcdFx0Y29udGVudDogcmVzb2x2ZUNvbnRlbnQoKSxcblx0XHRcdFx0XHRmb290ZXI6IChcblx0XHRcdFx0XHRcdDxPdmVyZmxvd1Rvb2xiYXI+XG5cdFx0XHRcdFx0XHRcdHt7XG5cdFx0XHRcdFx0XHRcdFx0Y29udGVudDogKFxuXHRcdFx0XHRcdFx0XHRcdFx0PD5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PFRvb2xiYXJTcGFjZXIgLz5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PEJ1dHRvblxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHRleHQ9e3Jlc291cmNlQnVuZGxlLmdldFRleHQoXCJNX05PVElDRV9BSV9DTE9TRVwiKX1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRwcmVzcz17KCk6IHZvaWQgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0bXlQb3BvdmVyLmNsb3NlKCk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0fX1cblx0XHRcdFx0XHRcdFx0XHRcdFx0Lz5cblx0XHRcdFx0XHRcdFx0XHRcdDwvPlxuXHRcdFx0XHRcdFx0XHRcdClcblx0XHRcdFx0XHRcdFx0fX1cblx0XHRcdFx0XHRcdDwvT3ZlcmZsb3dUb29sYmFyPlxuXHRcdFx0XHRcdClcblx0XHRcdFx0fX1cblx0XHRcdDwvUG9wb3Zlcj5cblx0XHQpO1xuXHRcdHZpZXc/LmFkZERlcGVuZGVudChteVBvcG92ZXIpO1xuXHRcdG15UG9wb3Zlci5vcGVuQnkocGFyZW50KTtcblx0XHRyZXR1cm4gbXlQb3BvdmVyO1xuXHR9XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0VBWUEsU0FBU0EsYUFBYUEsQ0FBQ0MsT0FBZ0IsRUFBb0I7SUFDMUQsSUFBSUMsT0FBNkIsR0FBR0QsT0FBTztJQUMzQyxPQUFPQyxPQUFPLElBQUksQ0FBQ0EsT0FBTyxDQUFDQyxHQUFHLENBQU8sc0JBQXNCLENBQUMsRUFBRTtNQUM3REQsT0FBTyxHQUFHQSxPQUFPLENBQUNFLFNBQVMsQ0FBQyxDQUFDO0lBQzlCO0lBQ0EsT0FBT0YsT0FBTyxJQUFJRyxTQUFTO0VBQzVCO0VBQUMsT0FFYztJQUNkO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtJQUNDQyxlQUFlQSxDQUFDQyxNQUtmLEVBQVc7TUFDWCxNQUFNO1FBQUVDLE1BQU07UUFBRUM7TUFBYyxDQUFDLEdBQUdGLE1BQU07TUFDeEMsTUFBTUcsY0FBYyxHQUFHQyxHQUFHLENBQUNDLG9CQUFvQixDQUFDLGlCQUFpQixDQUFtQjtNQUVwRixNQUFNQyxjQUFjLEdBQUdBLENBQUEsS0FBdUM7UUFDN0QsSUFBSU4sTUFBTSxDQUFDTyxXQUFXLEtBQUtULFNBQVMsRUFBRTtVQUNyQyxPQUFPLElBQUlVLElBQUksQ0FBQztZQUFFQyxJQUFJLEVBQUVULE1BQU0sQ0FBQ087VUFBWSxDQUFDLENBQUM7UUFDOUM7UUFDQSxNQUFNO1VBQUVHO1FBQVEsQ0FBQyxHQUFHVixNQUFNO1FBQzFCLE9BQU9XLEtBQUssQ0FBQ0MsT0FBTyxDQUFDRixPQUFPLENBQUMsR0FBR0EsT0FBTyxDQUFDRyxHQUFHLENBQUVDLElBQWEsSUFBS0EsSUFBSSxDQUFDQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUdMLE9BQU8sRUFBRUssS0FBSyxDQUFDLENBQUM7TUFDaEcsQ0FBQztNQUVhLE1BQU1DLElBQUksR0FBR3ZCLGFBQWEsQ0FBQ08sTUFBTSxDQUFDQyxNQUFNLENBQUM7TUFDdkQsTUFBTWdCLFNBQVMsR0FDZEMsSUFBQSxDQUFDQyxPQUFPO1FBQ1BDLEtBQUssRUFBQyxxQkFBcUI7UUFDM0JDLGVBQWUsRUFBRSxZQUFhO1FBQzlCQyxTQUFTLEVBQUUsSUFBSztRQUNoQkMsVUFBVSxFQUFFLElBQUs7UUFDakJDLFNBQVMsRUFBRXRCLGFBQWM7UUFDekJ1QixLQUFLLEVBQUV0QixjQUFjLENBQUN1QixPQUFPLENBQUMsb0JBQW9CLENBQUU7UUFDcERDLFVBQVUsRUFBRUEsQ0FBQSxLQUFZO1VBQ3ZCWCxJQUFJLEVBQUVZLGVBQWUsQ0FBQ1gsU0FBUyxDQUFDO1VBQ2hDQSxTQUFTLEVBQUVZLE9BQU8sQ0FBQyxDQUFDO1FBQ3JCLENBQUU7UUFBQUMsUUFBQSxFQUVEO1VBQ0FwQixPQUFPLEVBQUVKLGNBQWMsQ0FBQyxDQUFDO1VBQ3pCeUIsTUFBTSxFQUNMYixJQUFBLENBQUNjLGVBQWU7WUFBQUYsUUFBQSxFQUNkO2NBQ0FwQixPQUFPLEVBQ051QixLQUFBLENBQUFDLFNBQUE7Z0JBQUFKLFFBQUEsR0FDQ1osSUFBQSxDQUFDaUIsYUFBYSxJQUFFLENBQUMsRUFDakJqQixJQUFBLENBQUNrQixNQUFNO2tCQUNOM0IsSUFBSSxFQUFFTixjQUFjLENBQUN1QixPQUFPLENBQUMsbUJBQW1CLENBQUU7a0JBQ2xEVyxLQUFLLEVBQUVBLENBQUEsS0FBWTtvQkFDbEJwQixTQUFTLENBQUNxQixLQUFLLENBQUMsQ0FBQztrQkFDbEI7Z0JBQUUsQ0FDRixDQUFDO2NBQUEsQ0FDRDtZQUVKO1VBQUMsQ0FDZTtRQUVuQjtNQUFDLENBQ08sQ0FDVDtNQUNEdEIsSUFBSSxFQUFFdUIsWUFBWSxDQUFDdEIsU0FBUyxDQUFDO01BQzdCQSxTQUFTLENBQUN1QixNQUFNLENBQUN2QyxNQUFNLENBQUM7TUFDeEIsT0FBT2dCLFNBQVM7SUFDakI7RUFDRCxDQUFDO0FBQUEiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
@@ -3,9 +3,20 @@ import Button from "sap/m/Button";
|
|
|
3
3
|
import type { PlacementType } from "sap/m/library";
|
|
4
4
|
import OverflowToolbar from "sap/m/OverflowToolbar";
|
|
5
5
|
import Popover from "sap/m/Popover";
|
|
6
|
+
import Text from "sap/m/Text";
|
|
6
7
|
import ToolbarSpacer from "sap/m/ToolbarSpacer";
|
|
8
|
+
import type ManagedObject from "sap/ui/base/ManagedObject";
|
|
7
9
|
import type Control from "sap/ui/core/Control";
|
|
8
10
|
import Lib from "sap/ui/core/Lib";
|
|
11
|
+
import type View from "sap/ui/core/mvc/View";
|
|
12
|
+
|
|
13
|
+
function getParentView(control: Control): View | undefined {
|
|
14
|
+
let current: ManagedObject | null = control;
|
|
15
|
+
while (current && !current.isA<View>("sap.ui.core.mvc.View")) {
|
|
16
|
+
current = current.getParent();
|
|
17
|
+
}
|
|
18
|
+
return current ?? undefined;
|
|
19
|
+
}
|
|
9
20
|
|
|
10
21
|
export default {
|
|
11
22
|
/**
|
|
@@ -14,12 +25,27 @@ export default {
|
|
|
14
25
|
* @param params.parent The control that opens the popover
|
|
15
26
|
* @param params.placementType Optional placement type for the popover
|
|
16
27
|
* @param params.content Optional content for the popover. If not provided, default content is used.
|
|
28
|
+
* @param params.contentText Optional text content for the popover. Use this instead of content to support i18n binding strings.
|
|
17
29
|
* @returns The generated Popover instance
|
|
18
30
|
*/
|
|
19
|
-
generatePopover(params: {
|
|
20
|
-
|
|
31
|
+
generatePopover(params: {
|
|
32
|
+
parent: Control;
|
|
33
|
+
placementType?: PlacementType;
|
|
34
|
+
content?: Control | Control[];
|
|
35
|
+
contentText?: string;
|
|
36
|
+
}): Popover {
|
|
37
|
+
const { parent, placementType } = params;
|
|
21
38
|
const resourceBundle = Lib.getResourceBundleFor("sap.fe.controls") as ResourceBundle;
|
|
22
39
|
|
|
40
|
+
const resolveContent = (): Control | Control[] | undefined => {
|
|
41
|
+
if (params.contentText !== undefined) {
|
|
42
|
+
return new Text({ text: params.contentText });
|
|
43
|
+
}
|
|
44
|
+
const { content } = params;
|
|
45
|
+
return Array.isArray(content) ? content.map((item: Control) => item.clone()) : content?.clone();
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
const view = getParentView(params.parent);
|
|
23
49
|
const myPopover = (
|
|
24
50
|
<Popover
|
|
25
51
|
class="sapUiContentPadding"
|
|
@@ -29,11 +55,12 @@ export default {
|
|
|
29
55
|
placement={placementType}
|
|
30
56
|
title={resourceBundle.getText("M_POPOVER_AI_TITLE")}
|
|
31
57
|
afterClose={(): void => {
|
|
58
|
+
view?.removeDependent(myPopover);
|
|
32
59
|
myPopover?.destroy();
|
|
33
60
|
}}
|
|
34
61
|
>
|
|
35
62
|
{{
|
|
36
|
-
content:
|
|
63
|
+
content: resolveContent(),
|
|
37
64
|
footer: (
|
|
38
65
|
<OverflowToolbar>
|
|
39
66
|
{{
|
|
@@ -54,6 +81,7 @@ export default {
|
|
|
54
81
|
}}
|
|
55
82
|
</Popover>
|
|
56
83
|
);
|
|
84
|
+
view?.addDependent(myPopover);
|
|
57
85
|
myPopover.openBy(parent);
|
|
58
86
|
return myPopover;
|
|
59
87
|
}
|