@sapui5/sap.fe.controls 1.145.1 → 1.147.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 +2 -2
- package/src/sap/fe/controls/AINotice.js +146 -0
- package/src/sap/fe/controls/AINotice.tsx +111 -0
- package/src/sap/fe/controls/AiNoticeHelper.js +55 -0
- package/src/sap/fe/controls/AiNoticeHelper.tsx +60 -0
- package/src/sap/fe/controls/easyFill/EasyFillPlaceholder.js +1 -1
- package/src/sap/fe/controls/easyFilter/EasyFilterBarContainer.js +17 -4
- package/src/sap/fe/controls/easyFilter/EasyFilterBarContainer.tsx +14 -1
- package/src/sap/fe/controls/easyFilter/EasyFilterInput.js +1 -1
- package/src/sap/fe/controls/easyFilter/ErrorMessageHandler.js +1 -1
- package/src/sap/fe/controls/easyFilter/PXFeedback.js +1 -1
- package/src/sap/fe/controls/easyFilter/ShellHistoryProvider.js +1 -1
- package/src/sap/fe/controls/easyFilter/Token.js +1 -1
- package/src/sap/fe/controls/easyFilter/innerControls/BaseFactory.js +1 -1
- package/src/sap/fe/controls/easyFilter/innerControls/CalendarFactory.js +1 -1
- package/src/sap/fe/controls/easyFilter/innerControls/MenuWithCheckBoxFactory.js +1 -1
- package/src/sap/fe/controls/easyFilter/innerControls/MenuWithSingleSelectFactory.js +1 -1
- package/src/sap/fe/controls/easyFilter/innerControls/TimeFactory.js +1 -1
- package/src/sap/fe/controls/easyFilter/innerControls/ValueHelpPreviewFactory.js +1 -1
- package/src/sap/fe/controls/easyFilter/utils.js +1 -1
- package/src/sap/fe/controls/inlineEdit/InlineEditIndicator.js +1 -1
- package/src/sap/fe/controls/library.js +2 -2
- package/src/sap/fe/controls/messagebundle.properties +15 -1
- package/src/sap/fe/controls/messagebundle_ar.properties +14 -6
- package/src/sap/fe/controls/messagebundle_bg.properties +14 -6
- package/src/sap/fe/controls/messagebundle_ca.properties +14 -6
- package/src/sap/fe/controls/messagebundle_cnr.properties +14 -6
- package/src/sap/fe/controls/messagebundle_cs.properties +14 -6
- package/src/sap/fe/controls/messagebundle_cy.properties +14 -6
- package/src/sap/fe/controls/messagebundle_da.properties +14 -6
- package/src/sap/fe/controls/messagebundle_de.properties +14 -6
- package/src/sap/fe/controls/messagebundle_el.properties +14 -6
- package/src/sap/fe/controls/messagebundle_en.properties +14 -6
- package/src/sap/fe/controls/messagebundle_en_GB.properties +14 -6
- package/src/sap/fe/controls/messagebundle_en_US_saprigi.properties +14 -6
- package/src/sap/fe/controls/messagebundle_es.properties +14 -6
- package/src/sap/fe/controls/messagebundle_es_MX.properties +14 -6
- package/src/sap/fe/controls/messagebundle_et.properties +14 -6
- package/src/sap/fe/controls/messagebundle_fi.properties +14 -6
- package/src/sap/fe/controls/messagebundle_fr.properties +14 -6
- package/src/sap/fe/controls/messagebundle_fr_CA.properties +14 -6
- package/src/sap/fe/controls/messagebundle_hi.properties +14 -6
- package/src/sap/fe/controls/messagebundle_hr.properties +14 -6
- package/src/sap/fe/controls/messagebundle_hu.properties +14 -6
- package/src/sap/fe/controls/messagebundle_id.properties +14 -6
- package/src/sap/fe/controls/messagebundle_it.properties +14 -6
- package/src/sap/fe/controls/messagebundle_iw.properties +14 -6
- package/src/sap/fe/controls/messagebundle_ja.properties +14 -6
- package/src/sap/fe/controls/messagebundle_kk.properties +14 -6
- package/src/sap/fe/controls/messagebundle_ko.properties +14 -6
- package/src/sap/fe/controls/messagebundle_lt.properties +14 -6
- package/src/sap/fe/controls/messagebundle_lv.properties +14 -6
- package/src/sap/fe/controls/messagebundle_mk.properties +14 -6
- package/src/sap/fe/controls/messagebundle_ms.properties +14 -6
- package/src/sap/fe/controls/messagebundle_nl.properties +14 -6
- package/src/sap/fe/controls/messagebundle_no.properties +14 -6
- package/src/sap/fe/controls/messagebundle_pl.properties +14 -6
- package/src/sap/fe/controls/messagebundle_pt.properties +14 -6
- package/src/sap/fe/controls/messagebundle_pt_PT.properties +14 -6
- package/src/sap/fe/controls/messagebundle_ro.properties +14 -6
- package/src/sap/fe/controls/messagebundle_ru.properties +14 -6
- package/src/sap/fe/controls/messagebundle_sh.properties +14 -6
- package/src/sap/fe/controls/messagebundle_sk.properties +14 -6
- package/src/sap/fe/controls/messagebundle_sl.properties +14 -6
- package/src/sap/fe/controls/messagebundle_sr.properties +14 -6
- package/src/sap/fe/controls/messagebundle_sv.properties +14 -6
- package/src/sap/fe/controls/messagebundle_th.properties +14 -6
- package/src/sap/fe/controls/messagebundle_tr.properties +14 -6
- package/src/sap/fe/controls/messagebundle_uk.properties +14 -6
- package/src/sap/fe/controls/messagebundle_vi.properties +14 -6
- package/src/sap/fe/controls/messagebundle_zh_CN.properties +14 -6
- package/src/sap/fe/controls/messagebundle_zh_TW.properties +14 -6
- package/src/sap/fe/controls/shortcuts/ShortcutExplanationProvider.js +1 -1
- package/src/sap/fe/controls/shortcuts/popup/ShortcutTool.js +1 -1
- package/src/sap/fe/controls/themes/base/EasyFill.less +18 -0
- package/src/sap/fe/controls/themes/base/EasyFilter.less +19 -3
- package/src/sap/fe/controls/themes/base/InlineEditIndicator.less +9 -1
- package/src/sap/fe/controls/themes/base/QuickView.less +6 -1
- package/src/sap/fe/controls/themes/base/Token.less +21 -9
- package/src/sap/fe/controls/themes/base/UnitCurrencyHbox.less +6 -1
package/package.json
CHANGED
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
<vendor>SAP SE</vendor>
|
|
5
5
|
<copyright>
|
|
6
6
|
SAP UI development toolkit for HTML5 (SAPUI5)
|
|
7
|
-
(c) Copyright 2009-
|
|
7
|
+
(c) Copyright 2009-2026 SAP SE. All rights reserved
|
|
8
8
|
</copyright>
|
|
9
|
-
<version>1.
|
|
9
|
+
<version>1.147.0</version>
|
|
10
10
|
|
|
11
11
|
<documentation>UI5 library: sap.fe.controls</documentation>
|
|
12
12
|
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
|
+
* (c) Copyright 2009-2026 SAP SE. All rights reserved
|
|
4
|
+
*/
|
|
5
|
+
sap.ui.define(["sap/fe/base/BuildingBlockBase", "sap/fe/base/ClassSupport", "sap/m/Button", "sap/m/Label", "sap/m/Link", "sap/m/library", "sap/ui/core/Lib", "./AiNoticeHelper", "sap/fe/base/jsx-runtime/jsx"], function (BuildingBlockBase, ClassSupport, Button, Label, Link, library, Lib, AiNoticeHelper, _jsx) {
|
|
6
|
+
"use strict";
|
|
7
|
+
|
|
8
|
+
var _dec, _dec2, _dec3, _dec4, _dec5, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4;
|
|
9
|
+
var _exports = {};
|
|
10
|
+
var ButtonType = library.ButtonType;
|
|
11
|
+
var property = ClassSupport.property;
|
|
12
|
+
var defineUI5Class = ClassSupport.defineUI5Class;
|
|
13
|
+
var aggregation = ClassSupport.aggregation;
|
|
14
|
+
function _initializerDefineProperty(e, i, r, l) { r && Object.defineProperty(e, i, { enumerable: r.enumerable, configurable: r.configurable, writable: r.writable, value: r.initializer ? r.initializer.call(l) : void 0 }); }
|
|
15
|
+
function _inheritsLoose(t, o) { t.prototype = Object.create(o.prototype), t.prototype.constructor = t, _setPrototypeOf(t, o); }
|
|
16
|
+
function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }
|
|
17
|
+
function _applyDecoratedDescriptor(i, e, r, n, l) { var a = {}; return Object.keys(n).forEach(function (i) { a[i] = n[i]; }), a.enumerable = !!a.enumerable, a.configurable = !!a.configurable, ("value" in a || a.initializer) && (a.writable = !0), a = r.slice().reverse().reduce(function (r, n) { return n(i, e, r) || r; }, a), l && void 0 !== a.initializer && (a.value = a.initializer ? a.initializer.call(l) : void 0, a.initializer = void 0), void 0 === a.initializer ? (Object.defineProperty(i, e, a), null) : a; }
|
|
18
|
+
function _initializerWarningHelper(r, e) { throw Error("Decorating class property failed. Please ensure that transform-class-properties is enabled and runs after the decorators transform."); }
|
|
19
|
+
/**
|
|
20
|
+
* Building block that displays a AI notice.
|
|
21
|
+
*
|
|
22
|
+
* It's used to display information related to AI features. This information is rendered either
|
|
23
|
+
* as a link if the aggregation popoverContent is defined or as a label if there is no aggregation popoverContent.
|
|
24
|
+
*/
|
|
25
|
+
let AINotice = (_dec = defineUI5Class("sap.fe.controls.AINotice"), _dec2 = property({
|
|
26
|
+
type: "boolean",
|
|
27
|
+
isBindingInfo: true,
|
|
28
|
+
defaultValue: true
|
|
29
|
+
}), _dec3 = property({
|
|
30
|
+
type: "string",
|
|
31
|
+
defaultValue: "Link"
|
|
32
|
+
}), _dec4 = aggregation({
|
|
33
|
+
type: "sap.ui.core.Control",
|
|
34
|
+
multiple: true,
|
|
35
|
+
isDefault: true
|
|
36
|
+
}), _dec5 = property({
|
|
37
|
+
type: "string"
|
|
38
|
+
}), _dec(_class = (_class2 = /*#__PURE__*/function (_BuildingBlockBase) {
|
|
39
|
+
function AINotice(properties, others) {
|
|
40
|
+
var _this;
|
|
41
|
+
_this = _BuildingBlockBase.call(this, properties, others) || this;
|
|
42
|
+
_initializerDefineProperty(_this, "visible", _descriptor, _this);
|
|
43
|
+
/**
|
|
44
|
+
* The type of control to display
|
|
45
|
+
*/
|
|
46
|
+
_initializerDefineProperty(_this, "type", _descriptor2, _this);
|
|
47
|
+
/**
|
|
48
|
+
* The content to display into the popover
|
|
49
|
+
* @public
|
|
50
|
+
*/
|
|
51
|
+
_initializerDefineProperty(_this, "popoverContent", _descriptor3, _this);
|
|
52
|
+
/**
|
|
53
|
+
* The placement type of the popover
|
|
54
|
+
*/
|
|
55
|
+
_initializerDefineProperty(_this, "placementType", _descriptor4, _this);
|
|
56
|
+
_this.resourceBundle = Lib.getResourceBundleFor("sap.fe.controls");
|
|
57
|
+
_this.content = _this.createContent();
|
|
58
|
+
return _this;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Handles the press event on the control.
|
|
63
|
+
* @param event The press event
|
|
64
|
+
*/
|
|
65
|
+
_exports = AINotice;
|
|
66
|
+
_inheritsLoose(AINotice, _BuildingBlockBase);
|
|
67
|
+
var _proto = AINotice.prototype;
|
|
68
|
+
_proto.onPress = function onPress(event) {
|
|
69
|
+
if (this.popoverContent) {
|
|
70
|
+
AiNoticeHelper.generatePopover({
|
|
71
|
+
content: this.popoverContent,
|
|
72
|
+
placementType: this.placementType,
|
|
73
|
+
parent: event.getSource()
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Returns the link or text depending on the popoverContent aggregation.
|
|
80
|
+
* @returns The control tree
|
|
81
|
+
*/;
|
|
82
|
+
_proto.createLinkOrLabel = function createLinkOrLabel() {
|
|
83
|
+
const mainText = this.resourceBundle.getText("M_NOTICE_AI_TITLE");
|
|
84
|
+
return this.getAggregation("popoverContent") ? _jsx(Link, {
|
|
85
|
+
visible: this.visible,
|
|
86
|
+
text: mainText,
|
|
87
|
+
press: e => this.onPress(e)
|
|
88
|
+
}) : _jsx(Label, {
|
|
89
|
+
visible: this.visible,
|
|
90
|
+
text: mainText
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* Returns the button.
|
|
96
|
+
* @returns The button
|
|
97
|
+
*/;
|
|
98
|
+
_proto.createButton = function createButton() {
|
|
99
|
+
return _jsx(Button, {
|
|
100
|
+
visible: this.visible,
|
|
101
|
+
icon: "sap-icon://ai",
|
|
102
|
+
type: ButtonType.Transparent,
|
|
103
|
+
text: this.resourceBundle.getText("M_NOTICE_AI_FILTER"),
|
|
104
|
+
press: e => this.onPress(e)
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* Returns the content of this building block.
|
|
110
|
+
* @returns The control tree
|
|
111
|
+
*/;
|
|
112
|
+
_proto.createContent = function createContent() {
|
|
113
|
+
switch (this.type) {
|
|
114
|
+
case "Button":
|
|
115
|
+
return this.createButton();
|
|
116
|
+
case "Link":
|
|
117
|
+
default:
|
|
118
|
+
return this.createLinkOrLabel();
|
|
119
|
+
}
|
|
120
|
+
};
|
|
121
|
+
return AINotice;
|
|
122
|
+
}(BuildingBlockBase), _descriptor = _applyDecoratedDescriptor(_class2.prototype, "visible", [_dec2], {
|
|
123
|
+
configurable: true,
|
|
124
|
+
enumerable: true,
|
|
125
|
+
writable: true,
|
|
126
|
+
initializer: null
|
|
127
|
+
}), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "type", [_dec3], {
|
|
128
|
+
configurable: true,
|
|
129
|
+
enumerable: true,
|
|
130
|
+
writable: true,
|
|
131
|
+
initializer: null
|
|
132
|
+
}), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, "popoverContent", [_dec4], {
|
|
133
|
+
configurable: true,
|
|
134
|
+
enumerable: true,
|
|
135
|
+
writable: true,
|
|
136
|
+
initializer: null
|
|
137
|
+
}), _descriptor4 = _applyDecoratedDescriptor(_class2.prototype, "placementType", [_dec5], {
|
|
138
|
+
configurable: true,
|
|
139
|
+
enumerable: true,
|
|
140
|
+
writable: true,
|
|
141
|
+
initializer: null
|
|
142
|
+
}), _class2)) || _class);
|
|
143
|
+
_exports = AINotice;
|
|
144
|
+
return _exports;
|
|
145
|
+
}, false);
|
|
146
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJBSU5vdGljZSIsIl9kZWMiLCJkZWZpbmVVSTVDbGFzcyIsIl9kZWMyIiwicHJvcGVydHkiLCJ0eXBlIiwiaXNCaW5kaW5nSW5mbyIsImRlZmF1bHRWYWx1ZSIsIl9kZWMzIiwiX2RlYzQiLCJhZ2dyZWdhdGlvbiIsIm11bHRpcGxlIiwiaXNEZWZhdWx0IiwiX2RlYzUiLCJfY2xhc3MiLCJfY2xhc3MyIiwiX0J1aWxkaW5nQmxvY2tCYXNlIiwicHJvcGVydGllcyIsIm90aGVycyIsIl90aGlzIiwiY2FsbCIsIl9pbml0aWFsaXplckRlZmluZVByb3BlcnR5IiwiX2Rlc2NyaXB0b3IiLCJfZGVzY3JpcHRvcjIiLCJfZGVzY3JpcHRvcjMiLCJfZGVzY3JpcHRvcjQiLCJyZXNvdXJjZUJ1bmRsZSIsIkxpYiIsImdldFJlc291cmNlQnVuZGxlRm9yIiwiY29udGVudCIsImNyZWF0ZUNvbnRlbnQiLCJfZXhwb3J0cyIsIl9pbmhlcml0c0xvb3NlIiwiX3Byb3RvIiwicHJvdG90eXBlIiwib25QcmVzcyIsImV2ZW50IiwicG9wb3ZlckNvbnRlbnQiLCJBaU5vdGljZUhlbHBlciIsImdlbmVyYXRlUG9wb3ZlciIsInBsYWNlbWVudFR5cGUiLCJwYXJlbnQiLCJnZXRTb3VyY2UiLCJjcmVhdGVMaW5rT3JMYWJlbCIsIm1haW5UZXh0IiwiZ2V0VGV4dCIsImdldEFnZ3JlZ2F0aW9uIiwiX2pzeCIsIkxpbmsiLCJ2aXNpYmxlIiwidGV4dCIsInByZXNzIiwiZSIsIkxhYmVsIiwiY3JlYXRlQnV0dG9uIiwiQnV0dG9uIiwiaWNvbiIsIkJ1dHRvblR5cGUiLCJUcmFuc3BhcmVudCIsIkJ1aWxkaW5nQmxvY2tCYXNlIiwiX2FwcGx5RGVjb3JhdGVkRGVzY3JpcHRvciIsImNvbmZpZ3VyYWJsZSIsImVudW1lcmFibGUiLCJ3cml0YWJsZSIsImluaXRpYWxpemVyIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJBSU5vdGljZS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgUmVzb3VyY2VCdW5kbGUgZnJvbSBcInNhcC9iYXNlL2kxOG4vUmVzb3VyY2VCdW5kbGVcIjtcbmltcG9ydCBCdWlsZGluZ0Jsb2NrQmFzZSBmcm9tIFwic2FwL2ZlL2Jhc2UvQnVpbGRpbmdCbG9ja0Jhc2VcIjtcbmltcG9ydCB7IGFnZ3JlZ2F0aW9uLCBkZWZpbmVVSTVDbGFzcywgdHlwZSBQcm9wZXJ0aWVzT2YsIHByb3BlcnR5IH0gZnJvbSBcInNhcC9mZS9iYXNlL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IHR5cGUgeyBCdXR0b24kUHJlc3NFdmVudCB9IGZyb20gXCJzYXAvbS9CdXR0b25cIjtcbmltcG9ydCBCdXR0b24gZnJvbSBcInNhcC9tL0J1dHRvblwiO1xuaW1wb3J0IExhYmVsIGZyb20gXCJzYXAvbS9MYWJlbFwiO1xuaW1wb3J0IHR5cGUgeyBMaW5rJFByZXNzRXZlbnQgfSBmcm9tIFwic2FwL20vTGlua1wiO1xuaW1wb3J0IExpbmsgZnJvbSBcInNhcC9tL0xpbmtcIjtcbmltcG9ydCB0eXBlIHsgUGxhY2VtZW50VHlwZSB9IGZyb20gXCJzYXAvbS9saWJyYXJ5XCI7XG5pbXBvcnQgeyBCdXR0b25UeXBlIH0gZnJvbSBcInNhcC9tL2xpYnJhcnlcIjtcbmltcG9ydCB0eXBlIEV2ZW50IGZyb20gXCJzYXAvdWkvYmFzZS9FdmVudFwiO1xuaW1wb3J0IHR5cGUgQ29udHJvbCBmcm9tIFwic2FwL3VpL2NvcmUvQ29udHJvbFwiO1xuaW1wb3J0IHR5cGUgeyAkQ29udHJvbFNldHRpbmdzIH0gZnJvbSBcInNhcC91aS9jb3JlL0NvbnRyb2xcIjtcbmltcG9ydCBMaWIgZnJvbSBcInNhcC91aS9jb3JlL0xpYlwiO1xuaW1wb3J0IEFpTm90aWNlSGVscGVyIGZyb20gXCIuL0FpTm90aWNlSGVscGVyXCI7XG5cbi8qKlxuICogQnVpbGRpbmcgYmxvY2sgdGhhdCBkaXNwbGF5cyBhIEFJIG5vdGljZS5cbiAqXG4gKiBJdCdzIHVzZWQgdG8gZGlzcGxheSBpbmZvcm1hdGlvbiByZWxhdGVkIHRvIEFJIGZlYXR1cmVzLiBUaGlzIGluZm9ybWF0aW9uIGlzIHJlbmRlcmVkIGVpdGhlclxuICogYXMgYSBsaW5rIGlmIHRoZSBhZ2dyZWdhdGlvbiBwb3BvdmVyQ29udGVudCBpcyBkZWZpbmVkIG9yIGFzIGEgbGFiZWwgaWYgdGhlcmUgaXMgbm8gYWdncmVnYXRpb24gcG9wb3ZlckNvbnRlbnQuXG4gKi9cbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS5jb250cm9scy5BSU5vdGljZVwiKVxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQUlOb3RpY2UgZXh0ZW5kcyBCdWlsZGluZ0Jsb2NrQmFzZTxDb250cm9sPiB7XG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwiYm9vbGVhblwiLCBpc0JpbmRpbmdJbmZvOiB0cnVlLCBkZWZhdWx0VmFsdWU6IHRydWUgfSlcblx0dmlzaWJsZT86IGJvb2xlYW47XG5cblx0LyoqXG5cdCAqIFRoZSB0eXBlIG9mIGNvbnRyb2wgdG8gZGlzcGxheVxuXHQgKi9cblx0QHByb3BlcnR5KHsgdHlwZTogXCJzdHJpbmdcIiwgZGVmYXVsdFZhbHVlOiBcIkxpbmtcIiB9KVxuXHR0eXBlPzogXCJMaW5rXCIgfCBcIkJ1dHRvblwiO1xuXG5cdC8qKlxuXHQgKiBUaGUgY29udGVudCB0byBkaXNwbGF5IGludG8gdGhlIHBvcG92ZXJcblx0ICogQHB1YmxpY1xuXHQgKi9cblx0QGFnZ3JlZ2F0aW9uKHsgdHlwZTogXCJzYXAudWkuY29yZS5Db250cm9sXCIsIG11bHRpcGxlOiB0cnVlLCBpc0RlZmF1bHQ6IHRydWUgfSlcblx0cG9wb3ZlckNvbnRlbnQ/OiBDb250cm9sO1xuXG5cdC8qKlxuXHQgKiBUaGUgcGxhY2VtZW50IHR5cGUgb2YgdGhlIHBvcG92ZXJcblx0ICovXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwic3RyaW5nXCIgfSlcblx0cGxhY2VtZW50VHlwZT86IFBsYWNlbWVudFR5cGU7XG5cblx0cmVzb3VyY2VCdW5kbGUhOiBSZXNvdXJjZUJ1bmRsZTtcblxuXHRjb25zdHJ1Y3Rvcihwcm9wZXJ0aWVzOiBQcm9wZXJ0aWVzT2Y8QUlOb3RpY2U+LCBvdGhlcnM/OiAkQ29udHJvbFNldHRpbmdzKSB7XG5cdFx0c3VwZXIocHJvcGVydGllcywgb3RoZXJzKTtcblx0XHR0aGlzLnJlc291cmNlQnVuZGxlID0gTGliLmdldFJlc291cmNlQnVuZGxlRm9yKFwic2FwLmZlLmNvbnRyb2xzXCIpIGFzIFJlc291cmNlQnVuZGxlO1xuXHRcdHRoaXMuY29udGVudCA9IHRoaXMuY3JlYXRlQ29udGVudCgpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEhhbmRsZXMgdGhlIHByZXNzIGV2ZW50IG9uIHRoZSBjb250cm9sLlxuXHQgKiBAcGFyYW0gZXZlbnQgVGhlIHByZXNzIGV2ZW50XG5cdCAqL1xuXHRvblByZXNzKGV2ZW50OiBCdXR0b24kUHJlc3NFdmVudCB8IExpbmskUHJlc3NFdmVudCk6IHZvaWQge1xuXHRcdGlmICh0aGlzLnBvcG92ZXJDb250ZW50KSB7XG5cdFx0XHRBaU5vdGljZUhlbHBlci5nZW5lcmF0ZVBvcG92ZXIoe1xuXHRcdFx0XHRjb250ZW50OiB0aGlzLnBvcG92ZXJDb250ZW50LFxuXHRcdFx0XHRwbGFjZW1lbnRUeXBlOiB0aGlzLnBsYWNlbWVudFR5cGUsXG5cdFx0XHRcdHBhcmVudDogKGV2ZW50IGFzIEV2ZW50PENvbnRyb2w+KS5nZXRTb3VyY2UoKSBhcyB1bmtub3duIGFzIENvbnRyb2xcblx0XHRcdH0pO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBSZXR1cm5zIHRoZSBsaW5rIG9yIHRleHQgZGVwZW5kaW5nIG9uIHRoZSBwb3BvdmVyQ29udGVudCBhZ2dyZWdhdGlvbi5cblx0ICogQHJldHVybnMgVGhlIGNvbnRyb2wgdHJlZVxuXHQgKi9cblx0Y3JlYXRlTGlua09yTGFiZWwoKTogTGluayB8IExhYmVsIHtcblx0XHRjb25zdCBtYWluVGV4dCA9IHRoaXMucmVzb3VyY2VCdW5kbGUuZ2V0VGV4dChcIk1fTk9USUNFX0FJX1RJVExFXCIpO1xuXHRcdHJldHVybiB0aGlzLmdldEFnZ3JlZ2F0aW9uKFwicG9wb3ZlckNvbnRlbnRcIikgPyAoXG5cdFx0XHQ8TGluayB2aXNpYmxlPXt0aGlzLnZpc2libGV9IHRleHQ9e21haW5UZXh0fSBwcmVzcz17KGU6IExpbmskUHJlc3NFdmVudCk6IHZvaWQgPT4gdGhpcy5vblByZXNzKGUpfSAvPlxuXHRcdCkgOiAoXG5cdFx0XHQ8TGFiZWwgdmlzaWJsZT17dGhpcy52aXNpYmxlfSB0ZXh0PXttYWluVGV4dH0gLz5cblx0XHQpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJldHVybnMgdGhlIGJ1dHRvbi5cblx0ICogQHJldHVybnMgVGhlIGJ1dHRvblxuXHQgKi9cblx0Y3JlYXRlQnV0dG9uKCk6IEJ1dHRvbiB7XG5cdFx0cmV0dXJuIChcblx0XHRcdDxCdXR0b25cblx0XHRcdFx0dmlzaWJsZT17dGhpcy52aXNpYmxlfVxuXHRcdFx0XHRpY29uPVwic2FwLWljb246Ly9haVwiXG5cdFx0XHRcdHR5cGU9e0J1dHRvblR5cGUuVHJhbnNwYXJlbnR9XG5cdFx0XHRcdHRleHQ9e3RoaXMucmVzb3VyY2VCdW5kbGUuZ2V0VGV4dChcIk1fTk9USUNFX0FJX0ZJTFRFUlwiKX1cblx0XHRcdFx0cHJlc3M9eyhlOiBCdXR0b24kUHJlc3NFdmVudCk6IHZvaWQgPT4gdGhpcy5vblByZXNzKGUpfVxuXHRcdFx0Lz5cblx0XHQpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJldHVybnMgdGhlIGNvbnRlbnQgb2YgdGhpcyBidWlsZGluZyBibG9jay5cblx0ICogQHJldHVybnMgVGhlIGNvbnRyb2wgdHJlZVxuXHQgKi9cblx0Y3JlYXRlQ29udGVudCgpOiBMaW5rIHwgQnV0dG9uIHwgTGFiZWwge1xuXHRcdHN3aXRjaCAodGhpcy50eXBlKSB7XG5cdFx0XHRjYXNlIFwiQnV0dG9uXCI6XG5cdFx0XHRcdHJldHVybiB0aGlzLmNyZWF0ZUJ1dHRvbigpO1xuXHRcdFx0Y2FzZSBcIkxpbmtcIjpcblx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdHJldHVybiB0aGlzLmNyZWF0ZUxpbmtPckxhYmVsKCk7XG5cdFx0fVxuXHR9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQWdCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFMQSxJQU9xQkEsUUFBUSxJQUFBQyxJQUFBLEdBRDVCQyxjQUFjLENBQUMsMEJBQTBCLENBQUMsRUFBQUMsS0FBQSxHQUV6Q0MsUUFBUSxDQUFDO0lBQUVDLElBQUksRUFBRSxTQUFTO0lBQUVDLGFBQWEsRUFBRSxJQUFJO0lBQUVDLFlBQVksRUFBRTtFQUFLLENBQUMsQ0FBQyxFQUFBQyxLQUFBLEdBTXRFSixRQUFRLENBQUM7SUFBRUMsSUFBSSxFQUFFLFFBQVE7SUFBRUUsWUFBWSxFQUFFO0VBQU8sQ0FBQyxDQUFDLEVBQUFFLEtBQUEsR0FPbERDLFdBQVcsQ0FBQztJQUFFTCxJQUFJLEVBQUUscUJBQXFCO0lBQUVNLFFBQVEsRUFBRSxJQUFJO0lBQUVDLFNBQVMsRUFBRTtFQUFLLENBQUMsQ0FBQyxFQUFBQyxLQUFBLEdBTTdFVCxRQUFRLENBQUM7SUFBRUMsSUFBSSxFQUFFO0VBQVMsQ0FBQyxDQUFDLEVBQUFKLElBQUEsQ0FBQWEsTUFBQSxJQUFBQyxPQUFBLDBCQUFBQyxrQkFBQTtJQUs3QixTQUFBaEIsU0FBWWlCLFVBQWtDLEVBQUVDLE1BQXlCLEVBQUU7TUFBQSxJQUFBQyxLQUFBO01BQzFFQSxLQUFBLEdBQUFILGtCQUFBLENBQUFJLElBQUEsT0FBTUgsVUFBVSxFQUFFQyxNQUFNLENBQUM7TUFBQ0csMEJBQUEsQ0FBQUYsS0FBQSxhQUFBRyxXQUFBLEVBQUFILEtBQUE7TUF0QjNCO0FBQ0Q7QUFDQTtNQUZDRSwwQkFBQSxDQUFBRixLQUFBLFVBQUFJLFlBQUEsRUFBQUosS0FBQTtNQU1BO0FBQ0Q7QUFDQTtBQUNBO01BSENFLDBCQUFBLENBQUFGLEtBQUEsb0JBQUFLLFlBQUEsRUFBQUwsS0FBQTtNQU9BO0FBQ0Q7QUFDQTtNQUZDRSwwQkFBQSxDQUFBRixLQUFBLG1CQUFBTSxZQUFBLEVBQUFOLEtBQUE7TUFVQ0EsS0FBQSxDQUFLTyxjQUFjLEdBQUdDLEdBQUcsQ0FBQ0Msb0JBQW9CLENBQUMsaUJBQWlCLENBQW1CO01BQ25GVCxLQUFBLENBQUtVLE9BQU8sR0FBR1YsS0FBQSxDQUFLVyxhQUFhLENBQUMsQ0FBQztNQUFDLE9BQUFYLEtBQUE7SUFDckM7O0lBRUE7QUFDRDtBQUNBO0FBQ0E7SUFIQ1ksUUFBQSxHQUFBL0IsUUFBQTtJQUFBZ0MsY0FBQSxDQUFBaEMsUUFBQSxFQUFBZ0Isa0JBQUE7SUFBQSxJQUFBaUIsTUFBQSxHQUFBakMsUUFBQSxDQUFBa0MsU0FBQTtJQUFBRCxNQUFBLENBSUFFLE9BQU8sR0FBUCxTQUFBQSxPQUFPQSxDQUFDQyxLQUEwQyxFQUFRO01BQ3pELElBQUksSUFBSSxDQUFDQyxjQUFjLEVBQUU7UUFDeEJDLGNBQWMsQ0FBQ0MsZUFBZSxDQUFDO1VBQzlCVixPQUFPLEVBQUUsSUFBSSxDQUFDUSxjQUFjO1VBQzVCRyxhQUFhLEVBQUUsSUFBSSxDQUFDQSxhQUFhO1VBQ2pDQyxNQUFNLEVBQUdMLEtBQUssQ0FBb0JNLFNBQVMsQ0FBQztRQUM3QyxDQUFDLENBQUM7TUFDSDtJQUNEOztJQUVBO0FBQ0Q7QUFDQTtBQUNBLE9BSEM7SUFBQVQsTUFBQSxDQUlBVSxpQkFBaUIsR0FBakIsU0FBQUEsaUJBQWlCQSxDQUFBLEVBQWlCO01BQ2pDLE1BQU1DLFFBQVEsR0FBRyxJQUFJLENBQUNsQixjQUFjLENBQUNtQixPQUFPLENBQUMsbUJBQW1CLENBQUM7TUFDakUsT0FBTyxJQUFJLENBQUNDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUMzQ0MsSUFBQSxDQUFDQyxJQUFJO1FBQUNDLE9BQU8sRUFBRSxJQUFJLENBQUNBLE9BQVE7UUFBQ0MsSUFBSSxFQUFFTixRQUFTO1FBQUNPLEtBQUssRUFBR0MsQ0FBa0IsSUFBVyxJQUFJLENBQUNqQixPQUFPLENBQUNpQixDQUFDO01BQUUsQ0FBRSxDQUFDLEdBRXJHTCxJQUFBLENBQUNNLEtBQUs7UUFBQ0osT0FBTyxFQUFFLElBQUksQ0FBQ0EsT0FBUTtRQUFDQyxJQUFJLEVBQUVOO01BQVMsQ0FBRSxDQUMvQztJQUNGOztJQUVBO0FBQ0Q7QUFDQTtBQUNBLE9BSEM7SUFBQVgsTUFBQSxDQUlBcUIsWUFBWSxHQUFaLFNBQUFBLFlBQVlBLENBQUEsRUFBVztNQUN0QixPQUNDUCxJQUFBLENBQUNRLE1BQU07UUFDTk4sT0FBTyxFQUFFLElBQUksQ0FBQ0EsT0FBUTtRQUN0Qk8sSUFBSSxFQUFDLGVBQWU7UUFDcEJuRCxJQUFJLEVBQUVvRCxVQUFVLENBQUNDLFdBQVk7UUFDN0JSLElBQUksRUFBRSxJQUFJLENBQUN4QixjQUFjLENBQUNtQixPQUFPLENBQUMsb0JBQW9CLENBQUU7UUFDeERNLEtBQUssRUFBR0MsQ0FBb0IsSUFBVyxJQUFJLENBQUNqQixPQUFPLENBQUNpQixDQUFDO01BQUUsQ0FDdkQsQ0FBQztJQUVKOztJQUVBO0FBQ0Q7QUFDQTtBQUNBLE9BSEM7SUFBQW5CLE1BQUEsQ0FJQUgsYUFBYSxHQUFiLFNBQUFBLGFBQWFBLENBQUEsRUFBMEI7TUFDdEMsUUFBUSxJQUFJLENBQUN6QixJQUFJO1FBQ2hCLEtBQUssUUFBUTtVQUNaLE9BQU8sSUFBSSxDQUFDaUQsWUFBWSxDQUFDLENBQUM7UUFDM0IsS0FBSyxNQUFNO1FBQ1g7VUFDQyxPQUFPLElBQUksQ0FBQ1gsaUJBQWlCLENBQUMsQ0FBQztNQUNqQztJQUNELENBQUM7SUFBQSxPQUFBM0MsUUFBQTtFQUFBLEVBdEZvQzJELGlCQUFpQixHQUFBckMsV0FBQSxHQUFBc0MseUJBQUEsQ0FBQTdDLE9BQUEsQ0FBQW1CLFNBQUEsY0FBQS9CLEtBQUE7SUFBQTBELFlBQUE7SUFBQUMsVUFBQTtJQUFBQyxRQUFBO0lBQUFDLFdBQUE7RUFBQSxJQUFBekMsWUFBQSxHQUFBcUMseUJBQUEsQ0FBQTdDLE9BQUEsQ0FBQW1CLFNBQUEsV0FBQTFCLEtBQUE7SUFBQXFELFlBQUE7SUFBQUMsVUFBQTtJQUFBQyxRQUFBO0lBQUFDLFdBQUE7RUFBQSxJQUFBeEMsWUFBQSxHQUFBb0MseUJBQUEsQ0FBQTdDLE9BQUEsQ0FBQW1CLFNBQUEscUJBQUF6QixLQUFBO0lBQUFvRCxZQUFBO0lBQUFDLFVBQUE7SUFBQUMsUUFBQTtJQUFBQyxXQUFBO0VBQUEsSUFBQXZDLFlBQUEsR0FBQW1DLHlCQUFBLENBQUE3QyxPQUFBLENBQUFtQixTQUFBLG9CQUFBckIsS0FBQTtJQUFBZ0QsWUFBQTtJQUFBQyxVQUFBO0lBQUFDLFFBQUE7SUFBQUMsV0FBQTtFQUFBLElBQUFqRCxPQUFBLE1BQUFELE1BQUE7RUFBQWlCLFFBQUEsR0FBQS9CLFFBQUE7RUFBQSxPQUFBK0IsUUFBQTtBQUFBIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import type ResourceBundle from "sap/base/i18n/ResourceBundle";
|
|
2
|
+
import BuildingBlockBase from "sap/fe/base/BuildingBlockBase";
|
|
3
|
+
import { aggregation, defineUI5Class, type PropertiesOf, property } from "sap/fe/base/ClassSupport";
|
|
4
|
+
import type { Button$PressEvent } from "sap/m/Button";
|
|
5
|
+
import Button from "sap/m/Button";
|
|
6
|
+
import Label from "sap/m/Label";
|
|
7
|
+
import type { Link$PressEvent } from "sap/m/Link";
|
|
8
|
+
import Link from "sap/m/Link";
|
|
9
|
+
import type { PlacementType } from "sap/m/library";
|
|
10
|
+
import { ButtonType } from "sap/m/library";
|
|
11
|
+
import type Event from "sap/ui/base/Event";
|
|
12
|
+
import type Control from "sap/ui/core/Control";
|
|
13
|
+
import type { $ControlSettings } from "sap/ui/core/Control";
|
|
14
|
+
import Lib from "sap/ui/core/Lib";
|
|
15
|
+
import AiNoticeHelper from "./AiNoticeHelper";
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Building block that displays a AI notice.
|
|
19
|
+
*
|
|
20
|
+
* It's used to display information related to AI features. This information is rendered either
|
|
21
|
+
* as a link if the aggregation popoverContent is defined or as a label if there is no aggregation popoverContent.
|
|
22
|
+
*/
|
|
23
|
+
@defineUI5Class("sap.fe.controls.AINotice")
|
|
24
|
+
export default class AINotice extends BuildingBlockBase<Control> {
|
|
25
|
+
@property({ type: "boolean", isBindingInfo: true, defaultValue: true })
|
|
26
|
+
visible?: boolean;
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* The type of control to display
|
|
30
|
+
*/
|
|
31
|
+
@property({ type: "string", defaultValue: "Link" })
|
|
32
|
+
type?: "Link" | "Button";
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* The content to display into the popover
|
|
36
|
+
* @public
|
|
37
|
+
*/
|
|
38
|
+
@aggregation({ type: "sap.ui.core.Control", multiple: true, isDefault: true })
|
|
39
|
+
popoverContent?: Control;
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* The placement type of the popover
|
|
43
|
+
*/
|
|
44
|
+
@property({ type: "string" })
|
|
45
|
+
placementType?: PlacementType;
|
|
46
|
+
|
|
47
|
+
resourceBundle!: ResourceBundle;
|
|
48
|
+
|
|
49
|
+
constructor(properties: PropertiesOf<AINotice>, others?: $ControlSettings) {
|
|
50
|
+
super(properties, others);
|
|
51
|
+
this.resourceBundle = Lib.getResourceBundleFor("sap.fe.controls") as ResourceBundle;
|
|
52
|
+
this.content = this.createContent();
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Handles the press event on the control.
|
|
57
|
+
* @param event The press event
|
|
58
|
+
*/
|
|
59
|
+
onPress(event: Button$PressEvent | Link$PressEvent): void {
|
|
60
|
+
if (this.popoverContent) {
|
|
61
|
+
AiNoticeHelper.generatePopover({
|
|
62
|
+
content: this.popoverContent,
|
|
63
|
+
placementType: this.placementType,
|
|
64
|
+
parent: (event as Event<Control>).getSource() as unknown as Control
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Returns the link or text depending on the popoverContent aggregation.
|
|
71
|
+
* @returns The control tree
|
|
72
|
+
*/
|
|
73
|
+
createLinkOrLabel(): Link | Label {
|
|
74
|
+
const mainText = this.resourceBundle.getText("M_NOTICE_AI_TITLE");
|
|
75
|
+
return this.getAggregation("popoverContent") ? (
|
|
76
|
+
<Link visible={this.visible} text={mainText} press={(e: Link$PressEvent): void => this.onPress(e)} />
|
|
77
|
+
) : (
|
|
78
|
+
<Label visible={this.visible} text={mainText} />
|
|
79
|
+
);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* Returns the button.
|
|
84
|
+
* @returns The button
|
|
85
|
+
*/
|
|
86
|
+
createButton(): Button {
|
|
87
|
+
return (
|
|
88
|
+
<Button
|
|
89
|
+
visible={this.visible}
|
|
90
|
+
icon="sap-icon://ai"
|
|
91
|
+
type={ButtonType.Transparent}
|
|
92
|
+
text={this.resourceBundle.getText("M_NOTICE_AI_FILTER")}
|
|
93
|
+
press={(e: Button$PressEvent): void => this.onPress(e)}
|
|
94
|
+
/>
|
|
95
|
+
);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* Returns the content of this building block.
|
|
100
|
+
* @returns The control tree
|
|
101
|
+
*/
|
|
102
|
+
createContent(): Link | Button | Label {
|
|
103
|
+
switch (this.type) {
|
|
104
|
+
case "Button":
|
|
105
|
+
return this.createButton();
|
|
106
|
+
case "Link":
|
|
107
|
+
default:
|
|
108
|
+
return this.createLinkOrLabel();
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
|
+
* (c) Copyright 2009-2026 SAP SE. All rights reserved
|
|
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) {
|
|
6
|
+
"use strict";
|
|
7
|
+
|
|
8
|
+
return {
|
|
9
|
+
/**
|
|
10
|
+
* Generates a popover with AI notice content. The popover is opened by the provided parent control.
|
|
11
|
+
* @param params An object containing parameters for generating the popover
|
|
12
|
+
* @param params.parent The control that opens the popover
|
|
13
|
+
* @param params.placementType Optional placement type for the popover
|
|
14
|
+
* @param params.content Optional content for the popover. If not provided, default content is used.
|
|
15
|
+
* @returns The generated Popover instance
|
|
16
|
+
*/
|
|
17
|
+
generatePopover(params) {
|
|
18
|
+
const {
|
|
19
|
+
parent,
|
|
20
|
+
placementType,
|
|
21
|
+
content
|
|
22
|
+
} = params;
|
|
23
|
+
const resourceBundle = Lib.getResourceBundleFor("sap.fe.controls");
|
|
24
|
+
const myPopover = _jsx(Popover, {
|
|
25
|
+
class: "sapUiContentPadding",
|
|
26
|
+
contentMinWidth: "22.8125rem",
|
|
27
|
+
showArrow: true,
|
|
28
|
+
showHeader: true,
|
|
29
|
+
placement: placementType,
|
|
30
|
+
title: resourceBundle.getText("M_POPOVER_AI_TITLE"),
|
|
31
|
+
afterClose: () => {
|
|
32
|
+
myPopover?.destroy();
|
|
33
|
+
},
|
|
34
|
+
children: {
|
|
35
|
+
content: Array.isArray(content) ? content.map(item => item.clone()) : content?.clone(),
|
|
36
|
+
footer: _jsx(OverflowToolbar, {
|
|
37
|
+
children: {
|
|
38
|
+
content: _jsxs(_Fragment, {
|
|
39
|
+
children: [_jsx(ToolbarSpacer, {}), _jsx(Button, {
|
|
40
|
+
text: resourceBundle.getText("M_NOTICE_AI_CLOSE"),
|
|
41
|
+
press: () => {
|
|
42
|
+
myPopover.close();
|
|
43
|
+
}
|
|
44
|
+
})]
|
|
45
|
+
})
|
|
46
|
+
}
|
|
47
|
+
})
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
myPopover.openBy(parent);
|
|
51
|
+
return myPopover;
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
}, false);
|
|
55
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnZW5lcmF0ZVBvcG92ZXIiLCJwYXJhbXMiLCJwYXJlbnQiLCJwbGFjZW1lbnRUeXBlIiwiY29udGVudCIsInJlc291cmNlQnVuZGxlIiwiTGliIiwiZ2V0UmVzb3VyY2VCdW5kbGVGb3IiLCJteVBvcG92ZXIiLCJfanN4IiwiUG9wb3ZlciIsImNsYXNzIiwiY29udGVudE1pbldpZHRoIiwic2hvd0Fycm93Iiwic2hvd0hlYWRlciIsInBsYWNlbWVudCIsInRpdGxlIiwiZ2V0VGV4dCIsImFmdGVyQ2xvc2UiLCJkZXN0cm95IiwiY2hpbGRyZW4iLCJBcnJheSIsImlzQXJyYXkiLCJtYXAiLCJpdGVtIiwiY2xvbmUiLCJmb290ZXIiLCJPdmVyZmxvd1Rvb2xiYXIiLCJfanN4cyIsIl9GcmFnbWVudCIsIlRvb2xiYXJTcGFjZXIiLCJCdXR0b24iLCJ0ZXh0IiwicHJlc3MiLCJjbG9zZSIsIm9wZW5CeSJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiQWlOb3RpY2VIZWxwZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIFJlc291cmNlQnVuZGxlIGZyb20gXCJzYXAvYmFzZS9pMThuL1Jlc291cmNlQnVuZGxlXCI7XG5pbXBvcnQgQnV0dG9uIGZyb20gXCJzYXAvbS9CdXR0b25cIjtcbmltcG9ydCB0eXBlIHsgUGxhY2VtZW50VHlwZSB9IGZyb20gXCJzYXAvbS9saWJyYXJ5XCI7XG5pbXBvcnQgT3ZlcmZsb3dUb29sYmFyIGZyb20gXCJzYXAvbS9PdmVyZmxvd1Rvb2xiYXJcIjtcbmltcG9ydCBQb3BvdmVyIGZyb20gXCJzYXAvbS9Qb3BvdmVyXCI7XG5pbXBvcnQgVG9vbGJhclNwYWNlciBmcm9tIFwic2FwL20vVG9vbGJhclNwYWNlclwiO1xuaW1wb3J0IHR5cGUgQ29udHJvbCBmcm9tIFwic2FwL3VpL2NvcmUvQ29udHJvbFwiO1xuaW1wb3J0IExpYiBmcm9tIFwic2FwL3VpL2NvcmUvTGliXCI7XG5cbmV4cG9ydCBkZWZhdWx0IHtcblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIHBvcG92ZXIgd2l0aCBBSSBub3RpY2UgY29udGVudC4gVGhlIHBvcG92ZXIgaXMgb3BlbmVkIGJ5IHRoZSBwcm92aWRlZCBwYXJlbnQgY29udHJvbC5cblx0ICogQHBhcmFtIHBhcmFtcyBBbiBvYmplY3QgY29udGFpbmluZyBwYXJhbWV0ZXJzIGZvciBnZW5lcmF0aW5nIHRoZSBwb3BvdmVyXG5cdCAqIEBwYXJhbSBwYXJhbXMucGFyZW50IFRoZSBjb250cm9sIHRoYXQgb3BlbnMgdGhlIHBvcG92ZXJcblx0ICogQHBhcmFtIHBhcmFtcy5wbGFjZW1lbnRUeXBlIE9wdGlvbmFsIHBsYWNlbWVudCB0eXBlIGZvciB0aGUgcG9wb3ZlclxuXHQgKiBAcGFyYW0gcGFyYW1zLmNvbnRlbnQgT3B0aW9uYWwgY29udGVudCBmb3IgdGhlIHBvcG92ZXIuIElmIG5vdCBwcm92aWRlZCwgZGVmYXVsdCBjb250ZW50IGlzIHVzZWQuXG5cdCAqIEByZXR1cm5zIFRoZSBnZW5lcmF0ZWQgUG9wb3ZlciBpbnN0YW5jZVxuXHQgKi9cblx0Z2VuZXJhdGVQb3BvdmVyKHBhcmFtczogeyBwYXJlbnQ6IENvbnRyb2w7IHBsYWNlbWVudFR5cGU/OiBQbGFjZW1lbnRUeXBlOyBjb250ZW50OiBDb250cm9sIHwgQ29udHJvbFtdIH0pOiBQb3BvdmVyIHtcblx0XHRjb25zdCB7IHBhcmVudCwgcGxhY2VtZW50VHlwZSwgY29udGVudCB9ID0gcGFyYW1zO1xuXHRcdGNvbnN0IHJlc291cmNlQnVuZGxlID0gTGliLmdldFJlc291cmNlQnVuZGxlRm9yKFwic2FwLmZlLmNvbnRyb2xzXCIpIGFzIFJlc291cmNlQnVuZGxlO1xuXG5cdFx0Y29uc3QgbXlQb3BvdmVyID0gKFxuXHRcdFx0PFBvcG92ZXJcblx0XHRcdFx0Y2xhc3M9XCJzYXBVaUNvbnRlbnRQYWRkaW5nXCJcblx0XHRcdFx0Y29udGVudE1pbldpZHRoPXtcIjIyLjgxMjVyZW1cIn1cblx0XHRcdFx0c2hvd0Fycm93PXt0cnVlfVxuXHRcdFx0XHRzaG93SGVhZGVyPXt0cnVlfVxuXHRcdFx0XHRwbGFjZW1lbnQ9e3BsYWNlbWVudFR5cGV9XG5cdFx0XHRcdHRpdGxlPXtyZXNvdXJjZUJ1bmRsZS5nZXRUZXh0KFwiTV9QT1BPVkVSX0FJX1RJVExFXCIpfVxuXHRcdFx0XHRhZnRlckNsb3NlPXsoKTogdm9pZCA9PiB7XG5cdFx0XHRcdFx0bXlQb3BvdmVyPy5kZXN0cm95KCk7XG5cdFx0XHRcdH19XG5cdFx0XHQ+XG5cdFx0XHRcdHt7XG5cdFx0XHRcdFx0Y29udGVudDogQXJyYXkuaXNBcnJheShjb250ZW50KSA/IGNvbnRlbnQubWFwKChpdGVtOiBDb250cm9sKSA9PiBpdGVtLmNsb25lKCkpIDogY29udGVudD8uY2xvbmUoKSxcblx0XHRcdFx0XHRmb290ZXI6IChcblx0XHRcdFx0XHRcdDxPdmVyZmxvd1Rvb2xiYXI+XG5cdFx0XHRcdFx0XHRcdHt7XG5cdFx0XHRcdFx0XHRcdFx0Y29udGVudDogKFxuXHRcdFx0XHRcdFx0XHRcdFx0PD5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PFRvb2xiYXJTcGFjZXIgLz5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PEJ1dHRvblxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHRleHQ9e3Jlc291cmNlQnVuZGxlLmdldFRleHQoXCJNX05PVElDRV9BSV9DTE9TRVwiKX1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRwcmVzcz17KCk6IHZvaWQgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0bXlQb3BvdmVyLmNsb3NlKCk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0fX1cblx0XHRcdFx0XHRcdFx0XHRcdFx0Lz5cblx0XHRcdFx0XHRcdFx0XHRcdDwvPlxuXHRcdFx0XHRcdFx0XHRcdClcblx0XHRcdFx0XHRcdFx0fX1cblx0XHRcdFx0XHRcdDwvT3ZlcmZsb3dUb29sYmFyPlxuXHRcdFx0XHRcdClcblx0XHRcdFx0fX1cblx0XHRcdDwvUG9wb3Zlcj5cblx0XHQpO1xuXHRcdG15UG9wb3Zlci5vcGVuQnkocGFyZW50KTtcblx0XHRyZXR1cm4gbXlQb3BvdmVyO1xuXHR9XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O1NBU2U7SUFDZDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0lBQ0NBLGVBQWVBLENBQUNDLE1BQXdGLEVBQVc7TUFDbEgsTUFBTTtRQUFFQyxNQUFNO1FBQUVDLGFBQWE7UUFBRUM7TUFBUSxDQUFDLEdBQUdILE1BQU07TUFDakQsTUFBTUksY0FBYyxHQUFHQyxHQUFHLENBQUNDLG9CQUFvQixDQUFDLGlCQUFpQixDQUFtQjtNQUVwRixNQUFNQyxTQUFTLEdBQ2RDLElBQUEsQ0FBQ0MsT0FBTztRQUNQQyxLQUFLLEVBQUMscUJBQXFCO1FBQzNCQyxlQUFlLEVBQUUsWUFBYTtRQUM5QkMsU0FBUyxFQUFFLElBQUs7UUFDaEJDLFVBQVUsRUFBRSxJQUFLO1FBQ2pCQyxTQUFTLEVBQUVaLGFBQWM7UUFDekJhLEtBQUssRUFBRVgsY0FBYyxDQUFDWSxPQUFPLENBQUMsb0JBQW9CLENBQUU7UUFDcERDLFVBQVUsRUFBRUEsQ0FBQSxLQUFZO1VBQ3ZCVixTQUFTLEVBQUVXLE9BQU8sQ0FBQyxDQUFDO1FBQ3JCLENBQUU7UUFBQUMsUUFBQSxFQUVEO1VBQ0FoQixPQUFPLEVBQUVpQixLQUFLLENBQUNDLE9BQU8sQ0FBQ2xCLE9BQU8sQ0FBQyxHQUFHQSxPQUFPLENBQUNtQixHQUFHLENBQUVDLElBQWEsSUFBS0EsSUFBSSxDQUFDQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUdyQixPQUFPLEVBQUVxQixLQUFLLENBQUMsQ0FBQztVQUNqR0MsTUFBTSxFQUNMakIsSUFBQSxDQUFDa0IsZUFBZTtZQUFBUCxRQUFBLEVBQ2Q7Y0FDQWhCLE9BQU8sRUFDTndCLEtBQUEsQ0FBQUMsU0FBQTtnQkFBQVQsUUFBQSxHQUNDWCxJQUFBLENBQUNxQixhQUFhLElBQUUsQ0FBQyxFQUNqQnJCLElBQUEsQ0FBQ3NCLE1BQU07a0JBQ05DLElBQUksRUFBRTNCLGNBQWMsQ0FBQ1ksT0FBTyxDQUFDLG1CQUFtQixDQUFFO2tCQUNsRGdCLEtBQUssRUFBRUEsQ0FBQSxLQUFZO29CQUNsQnpCLFNBQVMsQ0FBQzBCLEtBQUssQ0FBQyxDQUFDO2tCQUNsQjtnQkFBRSxDQUNGLENBQUM7Y0FBQSxDQUNEO1lBRUo7VUFBQyxDQUNlO1FBRW5CO01BQUMsQ0FDTyxDQUNUO01BQ0QxQixTQUFTLENBQUMyQixNQUFNLENBQUNqQyxNQUFNLENBQUM7TUFDeEIsT0FBT00sU0FBUztJQUNqQjtFQUNELENBQUM7QUFBQSIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import type ResourceBundle from "sap/base/i18n/ResourceBundle";
|
|
2
|
+
import Button from "sap/m/Button";
|
|
3
|
+
import type { PlacementType } from "sap/m/library";
|
|
4
|
+
import OverflowToolbar from "sap/m/OverflowToolbar";
|
|
5
|
+
import Popover from "sap/m/Popover";
|
|
6
|
+
import ToolbarSpacer from "sap/m/ToolbarSpacer";
|
|
7
|
+
import type Control from "sap/ui/core/Control";
|
|
8
|
+
import Lib from "sap/ui/core/Lib";
|
|
9
|
+
|
|
10
|
+
export default {
|
|
11
|
+
/**
|
|
12
|
+
* Generates a popover with AI notice content. The popover is opened by the provided parent control.
|
|
13
|
+
* @param params An object containing parameters for generating the popover
|
|
14
|
+
* @param params.parent The control that opens the popover
|
|
15
|
+
* @param params.placementType Optional placement type for the popover
|
|
16
|
+
* @param params.content Optional content for the popover. If not provided, default content is used.
|
|
17
|
+
* @returns The generated Popover instance
|
|
18
|
+
*/
|
|
19
|
+
generatePopover(params: { parent: Control; placementType?: PlacementType; content: Control | Control[] }): Popover {
|
|
20
|
+
const { parent, placementType, content } = params;
|
|
21
|
+
const resourceBundle = Lib.getResourceBundleFor("sap.fe.controls") as ResourceBundle;
|
|
22
|
+
|
|
23
|
+
const myPopover = (
|
|
24
|
+
<Popover
|
|
25
|
+
class="sapUiContentPadding"
|
|
26
|
+
contentMinWidth={"22.8125rem"}
|
|
27
|
+
showArrow={true}
|
|
28
|
+
showHeader={true}
|
|
29
|
+
placement={placementType}
|
|
30
|
+
title={resourceBundle.getText("M_POPOVER_AI_TITLE")}
|
|
31
|
+
afterClose={(): void => {
|
|
32
|
+
myPopover?.destroy();
|
|
33
|
+
}}
|
|
34
|
+
>
|
|
35
|
+
{{
|
|
36
|
+
content: Array.isArray(content) ? content.map((item: Control) => item.clone()) : content?.clone(),
|
|
37
|
+
footer: (
|
|
38
|
+
<OverflowToolbar>
|
|
39
|
+
{{
|
|
40
|
+
content: (
|
|
41
|
+
<>
|
|
42
|
+
<ToolbarSpacer />
|
|
43
|
+
<Button
|
|
44
|
+
text={resourceBundle.getText("M_NOTICE_AI_CLOSE")}
|
|
45
|
+
press={(): void => {
|
|
46
|
+
myPopover.close();
|
|
47
|
+
}}
|
|
48
|
+
/>
|
|
49
|
+
</>
|
|
50
|
+
)
|
|
51
|
+
}}
|
|
52
|
+
</OverflowToolbar>
|
|
53
|
+
)
|
|
54
|
+
}}
|
|
55
|
+
</Popover>
|
|
56
|
+
);
|
|
57
|
+
myPopover.openBy(parent);
|
|
58
|
+
return myPopover;
|
|
59
|
+
}
|
|
60
|
+
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
|
-
* (c) Copyright 2009-
|
|
3
|
+
* (c) Copyright 2009-2026 SAP SE. All rights reserved
|
|
4
4
|
*/
|
|
5
5
|
sap.ui.define(["sap/fe/base/ClassSupport", "sap/fe/base/jsx-runtime/jsx", "sap/ui/core/Control", "sap/fe/base/jsx-runtime/jsx"], function (ClassSupport, jsx, Control, _jsx) {
|
|
6
6
|
"use strict";
|