@ui5/webcomponents-base 1.11.0-rc.1 → 1.11.0-rc.2
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/CHANGELOG.md +11 -0
- package/dist/asset-registries/Icons.d.ts +1 -1
- package/dist/asset-registries/Icons.js +21 -21
- package/dist/asset-registries/Icons.js.map +1 -1
- package/dist/assets/bundle.esm.2d0cb31f.js +56 -0
- package/dist/assets/test/pages/{i18n.html.4b1c0bdb.js → i18n.html.cd6e3cfc.js} +1 -1
- package/dist/assets/test/pages/{i18n_texts.html.e98a417d.js → i18n_texts.html.7beb72ee.js} +1 -1
- package/dist/assets-meta/IconCollectionsAlias.d.ts +24 -10
- package/dist/assets-meta/IconCollectionsAlias.js +29 -9
- package/dist/assets-meta/IconCollectionsAlias.js.map +1 -1
- package/dist/config/Icons.d.ts +42 -18
- package/dist/config/Icons.js +74 -25
- package/dist/config/Icons.js.map +1 -1
- package/dist/config/RTL.js +3 -0
- package/dist/config/RTL.js.map +1 -1
- package/dist/generated/VersionInfo.js +3 -3
- package/dist/test/pages/AllTestElements.html +1 -1
- package/dist/test/pages/Configuration.html +1 -1
- package/dist/test/pages/ConfigurationScript.html +1 -1
- package/dist/test/pages/WithComplexTemplate.html +1 -1
- package/dist/test/pages/i18n.html +2 -2
- package/dist/test/pages/i18n_texts.html +2 -2
- package/dist/util/AriaLabelHelper.d.ts +10 -1
- package/dist/util/AriaLabelHelper.js +135 -8
- package/dist/util/AriaLabelHelper.js.map +1 -1
- package/package-scripts.js +1 -1
- package/package.json +3 -3
- package/src/asset-registries/Icons.ts +26 -27
- package/src/assets-meta/IconCollectionsAlias.ts +32 -9
- package/src/config/Icons.ts +85 -25
- package/src/config/RTL.ts +4 -0
- package/src/util/AriaLabelHelper.ts +167 -12
- package/dist/assets/bundle.esm.25073731.js +0 -56
package/src/config/Icons.ts
CHANGED
|
@@ -1,59 +1,119 @@
|
|
|
1
1
|
import { getTheme, isThemeFamily } from "./Theme.js";
|
|
2
|
+
import { getIconCollectionByAlias } from "../assets-meta/IconCollectionsAlias.js";
|
|
2
3
|
|
|
3
4
|
const IconCollectionConfiguration = new Map<string, string>();
|
|
4
5
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
// All supported icon collections + uknown custom ones
|
|
7
|
+
type IconCollection = "SAP-icons" | "SAP-icons-v4" | "SAP-icons-v5" | "horizon" | "tnt" | "tnt-v2" | "tnt-v3" | "business-suite" | string;
|
|
8
|
+
|
|
9
|
+
// All registered icon collections - all icon collections resolves to these options at the end
|
|
10
|
+
enum RegisteredIconCollection {
|
|
11
|
+
SAPIconsV4 = "SAP-icons-v4",
|
|
12
|
+
SAPIconsV5 = "SAP-icons-v5",
|
|
13
|
+
SAPIconsTNTV2 = "tnt-v2",
|
|
14
|
+
SAPIconsTNTV3 = "tnt-v3",
|
|
15
|
+
SAPBSIcons = "business-suite",
|
|
8
16
|
}
|
|
9
17
|
|
|
10
18
|
/**
|
|
11
|
-
* Sets the default icon collection
|
|
12
|
-
*
|
|
19
|
+
* Sets the default icon collection for a given theme.
|
|
20
|
+
*
|
|
21
|
+
* SAP Icons is the default icon collection (that resolves to SAP-icons version 5.x in Horizon theme family and SAP-icons version 4.x in all other themes)
|
|
22
|
+
* and to display icons from other collections, you have to specify the icon collection in addition to the icon name, for example: "tnt/actor", "business-suite/1x2-grid-layout", etc.
|
|
23
|
+
* This method allows setting another (built-in or custom) icon collection as default per theme.
|
|
24
|
+
*
|
|
25
|
+
* <b>Usage</b>
|
|
26
|
+
* <b>For example</b>, to make "SAP-icons version 5.x" the default icon collection in "sap_fiori_3":
|
|
27
|
+
*
|
|
28
|
+
* <pre>
|
|
29
|
+
* setDefaultIconCollection("sap_fiori_3", "SAP-icons-v5");
|
|
30
|
+
*
|
|
31
|
+
* <ui5-icon name="home"></ui5-icon>
|
|
32
|
+
* </pre>
|
|
33
|
+
*
|
|
34
|
+
* <b>For example</b>, to make a custom icon collection (with name "my-custom-collection") the default icon collection in "sap_fiori_3":
|
|
35
|
+
*
|
|
36
|
+
* <pre>
|
|
37
|
+
* setDefaultIconCollection("sap_fiori_3", "my-custom-collection");
|
|
38
|
+
*
|
|
39
|
+
* <ui5-icon name="custom-icon-name"></ui5-icon>
|
|
40
|
+
* </pre>
|
|
13
41
|
*
|
|
14
|
-
* Note: by default SAP-icons-v5 is used in all SAP Horizon variants and SAP-icons-v4 for all the rest.
|
|
15
42
|
* @public
|
|
16
|
-
* @param {string} theme
|
|
17
|
-
* @param {
|
|
43
|
+
* @param { string } theme
|
|
44
|
+
* @param { string } collectionName
|
|
18
45
|
*/
|
|
19
|
-
const setDefaultIconCollection = (theme: string, collectionName:
|
|
20
|
-
if (collectionName === "horizon") {
|
|
21
|
-
collectionName = IconCollection.v5;
|
|
22
|
-
}
|
|
23
|
-
|
|
46
|
+
const setDefaultIconCollection = (theme: string, collectionName: IconCollection) => {
|
|
24
47
|
IconCollectionConfiguration.set(theme, collectionName);
|
|
25
48
|
};
|
|
26
49
|
|
|
27
50
|
/**
|
|
28
|
-
* Returns the default icon collection
|
|
29
|
-
* that is configured.
|
|
51
|
+
* Returns the configured default icon collection for a given theme.
|
|
30
52
|
*
|
|
31
|
-
* @param {string} theme
|
|
53
|
+
* @param { string } theme
|
|
32
54
|
* @public
|
|
33
|
-
* @returns {string | undefined}
|
|
55
|
+
* @returns { string | undefined }
|
|
34
56
|
*/
|
|
35
57
|
const getDefaultIconCollection = (theme: string): string | undefined => {
|
|
36
58
|
return IconCollectionConfiguration.get(theme);
|
|
37
59
|
};
|
|
38
60
|
|
|
39
61
|
/**
|
|
40
|
-
* Returns the effective icon collection
|
|
41
|
-
*
|
|
42
|
-
* @
|
|
62
|
+
* Returns the effective icon collection,
|
|
63
|
+
* based on the default icon collection configuration and the current theme:
|
|
64
|
+
* @param { IconCollection } collectionName
|
|
65
|
+
* @returns { IconCollection } the effective collection name
|
|
43
66
|
*/
|
|
44
|
-
const
|
|
67
|
+
const getEffectiveIconCollection = (collectionName?: IconCollection): IconCollection => {
|
|
45
68
|
const currentTheme = getTheme();
|
|
46
69
|
const currentThemeConfiguration = IconCollectionConfiguration.get(currentTheme);
|
|
47
70
|
|
|
48
|
-
|
|
49
|
-
|
|
71
|
+
// when no collection is set and default collection is configured - return the configured icon collection
|
|
72
|
+
if (!collectionName && currentThemeConfiguration) {
|
|
73
|
+
return getIconCollectionByAlias(currentThemeConfiguration);
|
|
50
74
|
}
|
|
51
75
|
|
|
52
|
-
return
|
|
76
|
+
// when collection is set - return the theme dependant icon collection
|
|
77
|
+
// when collection is not set and there is no default icon collection configured - return theme dependant icon collection
|
|
78
|
+
return getIconCollectionByTheme(collectionName);
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Returns the icon theme dependant collection, based on the collection name and current theme as follows:
|
|
83
|
+
*
|
|
84
|
+
* - "no collection" resolves to "SAP-icons-v4" in "Quartz" and "Belize", and to "SAP-icons-v5" in "Horizon" (or as confugred via setDefaultIconCollection)
|
|
85
|
+
* - "SAP-icons-v4" (and its alias "SAP-icons") forces "SAP-icons v4" in any theme and resolves to itself "SAP-icons-v4"
|
|
86
|
+
* - "SAP-icons-v5" (and its alias "horizon") forces "SAP-icons v5" in any theme and resolves to itself "SAP-icons-v5"
|
|
87
|
+
* - "tnt" (and its alias "SAP-icons-TNT") resolves to "tnt-v2" in "Quartz", "Belize", and resolves to "tnt-v3" in "Horizon"
|
|
88
|
+
* - "tnt-v2" forces "TNT icons v2" in any theme and resolves to itself "tnt-v2"
|
|
89
|
+
* - "tnt-v3" forces "TNT icons v3" in any theme and resolves to itself "tnt-v3"
|
|
90
|
+
* - "business-suite" (and its alias "BusinessSuiteInAppSymbols") has no versioning and resolves to "business-suite"
|
|
91
|
+
*
|
|
92
|
+
* <b>Note:</b> "SAP-icons-v4", "SAP-icons-v5", "tnt-v2", "tnt-v3" and "business-suite" are just returned
|
|
93
|
+
* @param { IconCollection } collectionName
|
|
94
|
+
* @returns { RegisteredIconCollection } the registered collection name
|
|
95
|
+
*/
|
|
96
|
+
const getIconCollectionByTheme = (collectionName?: IconCollection): RegisteredIconCollection => {
|
|
97
|
+
const horizonThemeFamily = isThemeFamily("sap_horizon");
|
|
98
|
+
|
|
99
|
+
if (!collectionName) {
|
|
100
|
+
return horizonThemeFamily ? RegisteredIconCollection.SAPIconsV5 : RegisteredIconCollection.SAPIconsV4;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
if (collectionName === "tnt") {
|
|
104
|
+
return horizonThemeFamily ? RegisteredIconCollection.SAPIconsTNTV3 : RegisteredIconCollection.SAPIconsTNTV2;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
return collectionName as RegisteredIconCollection;
|
|
53
108
|
};
|
|
54
109
|
|
|
55
110
|
export {
|
|
56
111
|
setDefaultIconCollection,
|
|
57
112
|
getDefaultIconCollection,
|
|
58
|
-
|
|
113
|
+
getEffectiveIconCollection,
|
|
114
|
+
RegisteredIconCollection,
|
|
115
|
+
};
|
|
116
|
+
|
|
117
|
+
export type {
|
|
118
|
+
IconCollection,
|
|
59
119
|
};
|
package/src/config/RTL.ts
CHANGED
|
@@ -29,6 +29,10 @@ const impliesRTL = (language: string) => {
|
|
|
29
29
|
* @returns {boolean} whether RTL should be used
|
|
30
30
|
*/
|
|
31
31
|
const getRTL = (): boolean => {
|
|
32
|
+
if (typeof document === "undefined") {
|
|
33
|
+
return false;
|
|
34
|
+
}
|
|
35
|
+
|
|
32
36
|
const configurationRTL = getConfiguredRTL();
|
|
33
37
|
|
|
34
38
|
if (configurationRTL !== undefined) {
|
|
@@ -1,7 +1,32 @@
|
|
|
1
|
+
import UI5Element, { ChangeInfo } from "../UI5Element.js";
|
|
2
|
+
|
|
3
|
+
type InvalidateCallback = (changeInfo: ChangeInfo) => void;
|
|
4
|
+
type MutationCallback = () => void;
|
|
5
|
+
type AssociatedElement = {
|
|
6
|
+
observer: MutationObserver | null;
|
|
7
|
+
callbacks: Array<MutationCallback>;
|
|
8
|
+
};
|
|
9
|
+
type RegisteredElement = {
|
|
10
|
+
host: UI5Element;
|
|
11
|
+
observedElements: Array<HTMLElement>;
|
|
12
|
+
callback: MutationCallback;
|
|
13
|
+
invalidationCallback: InvalidateCallback;
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
const associatedElements = new WeakMap<HTMLElement, AssociatedElement>();
|
|
17
|
+
const registeredElements = new WeakMap<UI5Element, RegisteredElement>();
|
|
18
|
+
|
|
1
19
|
type AccessibleElement = HTMLElement & {
|
|
2
|
-
accessibleNameRef: string
|
|
3
|
-
accessibleName: string
|
|
4
|
-
}
|
|
20
|
+
accessibleNameRef: string;
|
|
21
|
+
accessibleName: string;
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
const observerOptions = {
|
|
25
|
+
attributes: true,
|
|
26
|
+
childList: true,
|
|
27
|
+
characterData: true,
|
|
28
|
+
subtree: true,
|
|
29
|
+
};
|
|
5
30
|
|
|
6
31
|
const getEffectiveAriaLabelText = (el: HTMLElement) => {
|
|
7
32
|
const accessibleEl = el as AccessibleElement;
|
|
@@ -14,38 +39,68 @@ const getEffectiveAriaLabelText = (el: HTMLElement) => {
|
|
|
14
39
|
return undefined;
|
|
15
40
|
}
|
|
16
41
|
|
|
17
|
-
return
|
|
42
|
+
return getAllAccessibleNameRefTexts(el);
|
|
18
43
|
};
|
|
19
44
|
|
|
20
45
|
/**
|
|
21
46
|
*
|
|
22
47
|
* @param {HTMLElement} el Defines the HTMLElement, for which you need to get all related texts
|
|
23
48
|
*/
|
|
24
|
-
const
|
|
25
|
-
const ids = (el as AccessibleElement).accessibleNameRef
|
|
49
|
+
const getAllAccessibleNameRefTexts = (el: HTMLElement) => {
|
|
50
|
+
const ids = (el as AccessibleElement).accessibleNameRef?.split(" ") ?? [];
|
|
26
51
|
const owner = el.getRootNode() as HTMLElement;
|
|
27
52
|
let result = "";
|
|
28
53
|
|
|
29
54
|
ids.forEach((elementId: string, index: number) => {
|
|
30
55
|
const element = owner.querySelector(`[id='${elementId}']`);
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
56
|
+
const text = `${element && element.textContent ? element.textContent : ""}`;
|
|
57
|
+
if (text) {
|
|
58
|
+
result += text;
|
|
59
|
+
if (index < ids.length - 1) {
|
|
60
|
+
result += " ";
|
|
61
|
+
}
|
|
35
62
|
}
|
|
36
63
|
});
|
|
37
64
|
|
|
38
65
|
return result;
|
|
39
66
|
};
|
|
40
67
|
|
|
68
|
+
const _getAllAssociatedElementsFromDOM = (el: UI5Element): Array<HTMLElement> => {
|
|
69
|
+
const set = new Set<HTMLElement>();
|
|
70
|
+
// adding labels with attribute for matching the el.id
|
|
71
|
+
const labelsForAssociated = _getAssociatedLabels(el);
|
|
72
|
+
labelsForAssociated.forEach(itm => {
|
|
73
|
+
set.add(itm);
|
|
74
|
+
});
|
|
75
|
+
// adding other elements that id is the same as accessibleNameRef value
|
|
76
|
+
const value = el["accessibleNameRef" as keyof typeof el] as string;
|
|
77
|
+
const ids = value?.split(" ") ?? [];
|
|
78
|
+
ids.forEach(id => {
|
|
79
|
+
const refEl = _getReferencedElementById(el, id);
|
|
80
|
+
if (refEl) {
|
|
81
|
+
set.add(refEl);
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
return Array.from(set);
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
const _getAssociatedLabels = (el: HTMLElement): Array<HTMLElement> => {
|
|
88
|
+
const labels = (el.getRootNode() as HTMLElement).querySelectorAll<HTMLElement>(`[for="${el.id}"]`);
|
|
89
|
+
return Array.from(labels);
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
const _getReferencedElementById = (el: HTMLElement, elementId: string): HTMLElement | null => {
|
|
93
|
+
return (el.getRootNode() as HTMLElement).querySelector<HTMLElement>(`[id='${elementId}']`);
|
|
94
|
+
};
|
|
95
|
+
|
|
41
96
|
/**
|
|
42
97
|
* @param {HTMLElement} el Defines the HTMLElement, for which you need to get all related "label for" texts
|
|
43
98
|
*/
|
|
44
99
|
const getAssociatedLabelForTexts = (el: HTMLElement) => {
|
|
45
100
|
const results: Array<string> = [];
|
|
46
|
-
const labels = (el
|
|
101
|
+
const labels = _getAssociatedLabels(el);
|
|
47
102
|
|
|
48
|
-
labels.forEach((label:
|
|
103
|
+
labels.forEach((label: HTMLElement) => {
|
|
49
104
|
const labelText = label.textContent;
|
|
50
105
|
labelText && results.push(labelText);
|
|
51
106
|
});
|
|
@@ -57,7 +112,107 @@ const getAssociatedLabelForTexts = (el: HTMLElement) => {
|
|
|
57
112
|
return undefined;
|
|
58
113
|
};
|
|
59
114
|
|
|
115
|
+
const _createInvalidationCallback = (el: UI5Element) => {
|
|
116
|
+
const invalidationCallback = (changeInfo: ChangeInfo) => {
|
|
117
|
+
if (!(changeInfo && changeInfo.type === "property" && changeInfo.name === "accessibleNameRef")) {
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
const registeredElement = registeredElements.get(el);
|
|
121
|
+
if (!registeredElement) {
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
const oldAssociatedElements = registeredElement.observedElements;
|
|
125
|
+
const newAssociatedElements = _getAllAssociatedElementsFromDOM(el);
|
|
126
|
+
oldAssociatedElements.forEach(oldElement => {
|
|
127
|
+
if (!newAssociatedElements.includes(oldElement)) {
|
|
128
|
+
_removeObservedElementFromRegisteredElement(registeredElement, oldElement);
|
|
129
|
+
}
|
|
130
|
+
});
|
|
131
|
+
newAssociatedElements.forEach(newElement => {
|
|
132
|
+
if (!oldAssociatedElements.includes(newElement)) {
|
|
133
|
+
_addObservedElementToRegisteredElement(registeredElement, newElement);
|
|
134
|
+
registeredElement.observedElements.push(newElement);
|
|
135
|
+
}
|
|
136
|
+
});
|
|
137
|
+
registeredElement?.callback();
|
|
138
|
+
};
|
|
139
|
+
return invalidationCallback;
|
|
140
|
+
};
|
|
141
|
+
|
|
142
|
+
const registerUI5Element = (el: UI5Element, callback: MutationCallback) => {
|
|
143
|
+
if (registeredElements.has(el)) {
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
const allAssociatedElements = _getAllAssociatedElementsFromDOM(el);
|
|
147
|
+
const invalidationCallback = _createInvalidationCallback(el);
|
|
148
|
+
const registeredElement = {
|
|
149
|
+
host: el,
|
|
150
|
+
observedElements: allAssociatedElements,
|
|
151
|
+
callback,
|
|
152
|
+
invalidationCallback,
|
|
153
|
+
};
|
|
154
|
+
registeredElements.set(el, registeredElement);
|
|
155
|
+
el.attachInvalidate(invalidationCallback);
|
|
156
|
+
|
|
157
|
+
allAssociatedElements.forEach((element: HTMLElement) => {
|
|
158
|
+
_addObservedElementToRegisteredElement(registeredElement, element);
|
|
159
|
+
});
|
|
160
|
+
callback();
|
|
161
|
+
};
|
|
162
|
+
|
|
163
|
+
const _addObservedElementToRegisteredElement = (registeredElement: RegisteredElement, element: HTMLElement) => {
|
|
164
|
+
let associatedElement = associatedElements.get(element);
|
|
165
|
+
if (!associatedElement) {
|
|
166
|
+
associatedElement = { observer: null, callbacks: [] };
|
|
167
|
+
const observer = new MutationObserver(() => {
|
|
168
|
+
const callbacks = (associatedElement as AssociatedElement).callbacks;
|
|
169
|
+
callbacks.forEach(callback => {
|
|
170
|
+
callback();
|
|
171
|
+
});
|
|
172
|
+
const domEl = document.getElementById(element.id);
|
|
173
|
+
// if no longer should be observed from this registeredElement, remove it
|
|
174
|
+
if (!(registeredElement.host.id === element.getAttribute("for") || domEl)) {
|
|
175
|
+
_removeObservedElementFromRegisteredElement(registeredElement, element);
|
|
176
|
+
}
|
|
177
|
+
});
|
|
178
|
+
associatedElement.observer = observer;
|
|
179
|
+
observer.observe(element, observerOptions);
|
|
180
|
+
associatedElements.set(element, associatedElement);
|
|
181
|
+
}
|
|
182
|
+
if (!associatedElement.callbacks.includes(registeredElement.callback)) {
|
|
183
|
+
associatedElement.callbacks.push(registeredElement.callback);
|
|
184
|
+
}
|
|
185
|
+
};
|
|
186
|
+
|
|
187
|
+
const _removeObservedElementFromRegisteredElement = (registeredElement: RegisteredElement, element: HTMLElement) => {
|
|
188
|
+
const associatedElement = associatedElements.get(element);
|
|
189
|
+
if (associatedElement) {
|
|
190
|
+
associatedElement.callbacks = associatedElement.callbacks.filter(itm => itm !== registeredElement.callback);
|
|
191
|
+
if (!associatedElement.callbacks.length) {
|
|
192
|
+
associatedElement.observer?.disconnect();
|
|
193
|
+
associatedElements.delete(element);
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
registeredElement.observedElements = registeredElement.observedElements.filter(itm => itm !== element);
|
|
197
|
+
};
|
|
198
|
+
|
|
199
|
+
const deregisterUI5Element = (el: UI5Element) => {
|
|
200
|
+
const registeredElement = registeredElements.get(el);
|
|
201
|
+
if (!registeredElement) {
|
|
202
|
+
return;
|
|
203
|
+
}
|
|
204
|
+
const oldObservedElements = [...registeredElement.observedElements];
|
|
205
|
+
oldObservedElements.forEach(observedElement => {
|
|
206
|
+
_removeObservedElementFromRegisteredElement(registeredElement, observedElement);
|
|
207
|
+
});
|
|
208
|
+
el.detachInvalidate(registeredElement.invalidationCallback);
|
|
209
|
+
registeredElements.delete(el);
|
|
210
|
+
};
|
|
211
|
+
|
|
60
212
|
export {
|
|
61
213
|
getEffectiveAriaLabelText,
|
|
62
214
|
getAssociatedLabelForTexts,
|
|
215
|
+
registerUI5Element,
|
|
216
|
+
deregisterUI5Element,
|
|
217
|
+
getAllAccessibleNameRefTexts,
|
|
63
218
|
};
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
const Zs=function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))n(r);new MutationObserver(r=>{for(const o of r)if(o.type==="childList")for(const i of o.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&n(i)}).observe(document,{childList:!0,subtree:!0});function s(r){const o={};return r.integrity&&(o.integrity=r.integrity),r.referrerpolicy&&(o.referrerPolicy=r.referrerpolicy),r.crossorigin==="use-credentials"?o.credentials="include":r.crossorigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function n(r){if(r.ep)return;r.ep=!0;const o=s(r);fetch(r.href,o)}};Zs();const wt={themes:{default:"sap_fiori_3",all:["sap_fiori_3","sap_fiori_3_dark","sap_belize","sap_belize_hcb","sap_belize_hcw","sap_fiori_3_hcb","sap_fiori_3_hcw","sap_horizon","sap_horizon_dark","sap_horizon_hcb","sap_horizon_hcw","sap_horizon_exp"]},languages:{default:"en",all:["ar","bg","ca","cs","cy","da","de","el","en","en_GB","en_US_sappsd","en_US_saprigi","en_US_saptrc","es","es_MX","et","fi","fr","fr_CA","hi","hr","hu","in","it","iw","ja","kk","ko","lt","lv","ms","nl","no","pl","pt_PT","pt","ro","ru","sh","sk","sl","sv","th","tr","uk","vi","zh_CN","zh_TW"]},locales:{default:"en",all:["ar","ar_EG","ar_SA","bg","ca","cs","da","de","de_AT","de_CH","el","el_CY","en","en_AU","en_GB","en_HK","en_IE","en_IN","en_NZ","en_PG","en_SG","en_ZA","es","es_AR","es_BO","es_CL","es_CO","es_MX","es_PE","es_UY","es_VE","et","fa","fi","fr","fr_BE","fr_CA","fr_CH","fr_LU","he","hi","hr","hu","id","it","it_CH","ja","kk","ko","lt","lv","ms","nb","nl","nl_BE","pl","pt","pt_PT","ro","ru","ru_UA","sk","sl","sr","sr_Latn","sv","th","tr","uk","vi","zh_CN","zh_HK","zh_SG","zh_TW"]}},ht=wt.themes.default,ft=wt.languages.default,$=wt.locales.default,le=wt.locales.all;var Ke=()=>{const e=navigator.languages,t=()=>navigator.language;return e&&e[0]||t()||ft},Je={},Xe=Je.hasOwnProperty,qs=Je.toString,Ye=Xe.toString,Gs=Ye.call(Object),ue=function(e){var t,s;return!e||qs.call(e)!=="[object Object]"?!1:(t=Object.getPrototypeOf(e),t?(s=Xe.call(t,"constructor")&&t.constructor,typeof s=="function"&&Ye.call(s)===Gs):!0)},Ks=Object.create(null),Qe=function(e,t,s,n){var r,o,i,c,a,l,f=arguments[2]||{},u=3,d=arguments.length,h=arguments[0]||!1,p=arguments[1]?void 0:Ks;for(typeof f!="object"&&typeof f!="function"&&(f={});u<d;u++)if((a=arguments[u])!=null)for(c in a)r=f[c],i=a[c],!(c==="__proto__"||f===i)&&(h&&i&&(ue(i)||(o=Array.isArray(i)))?(o?(o=!1,l=r&&Array.isArray(r)?r:[]):l=r&&ue(r)?r:{},f[c]=Qe(h,arguments[1],l,i)):i!==p&&(f[c]=i));return f};const Yt=function(e,t){return Qe(!0,!1,...arguments)},ts=new Map,Js=(e,t)=>{ts.set(e,t)},b=e=>ts.get(e),Xs=e=>{const t=document.querySelector(`META[name="${e}"]`);return t&&t.getAttribute("content")},Ys=e=>{const t=Xs("sap-allowedThemeOrigins");return t&&t.split(",").some(s=>s==="*"||e===s.trim())},Qs=(e,t)=>{const s=new URL(e).pathname;return new URL(s,t).toString()},tn=e=>{let t,s;try{t=new URL(e);const n=t.origin;return t=t.toString(),t.startsWith(".")||t.startsWith("/")?s=new URL(t,window.location.href).toString():n&&Ys(n)?s=t.toString():s=Qs(t,window.location.href),s.endsWith("/")||(s=`${s}/`),`${s}UI5/`}catch{}};var Wt;(function(e){e.Full="full",e.Basic="basic",e.Minimal="minimal",e.None="none"})(Wt||(Wt={}));var en=Wt;let de=!1,_={animationMode:en.Full,theme:ht,themeRoot:void 0,rtl:void 0,language:void 0,calendarType:void 0,noConflict:!1,formatSettings:{},fetchDefaultLanguage:!1};const sn=()=>(C(),_.animationMode),nn=()=>(C(),_.theme),rn=()=>(C(),_.themeRoot),on=()=>(C(),_.rtl),an=()=>(C(),_.language),cn=()=>(C(),_.fetchDefaultLanguage),ln=()=>(C(),_.noConflict),un=()=>(C(),_.calendarType),dn=()=>(C(),_.formatSettings),pt=new Map;pt.set("true",!0);pt.set("false",!1);const hn=()=>{const e=document.querySelector("[data-ui5-config]")||document.querySelector("[data-id='sap-ui-config']");let t;if(e){try{t=JSON.parse(e.innerHTML)}catch{console.warn("Incorrect data-sap-ui-config format. Please use JSON")}t&&(_=Yt(_,t))}},fn=()=>{const e=new URLSearchParams(window.location.search);e.forEach((t,s)=>{const n=s.split("sap-").length;n===0||n===s.split("sap-ui-").length||he(s,t,"sap")}),e.forEach((t,s)=>{!s.startsWith("sap-ui")||he(s,t,"sap-ui")})},pn=e=>{const t=e.split("@")[1];return tn(t)},gn=(e,t)=>e==="theme"&&t.includes("@")?t.split("@")[0]:t,he=(e,t,s)=>{const n=t.toLowerCase(),r=e.split(`${s}-`)[1];pt.has(t)&&(t=pt.get(n)),r==="theme"?(_.theme=gn(r,t),t&&t.includes("@")&&(_.themeRoot=pn(t))):_[r]=t},mn=()=>{const e=b("OpenUI5Support");if(!e||!e.isLoaded())return;const t=e.getConfigurationSettingsObject();_=Yt(_,t)},C=()=>{typeof document=="undefined"||de||(hn(),fn(),mn(),de=!0)};class O{constructor(){this._eventRegistry=new Map}attachEvent(t,s){const n=this._eventRegistry,r=n.get(t);if(!Array.isArray(r)){n.set(t,[s]);return}r.includes(s)||r.push(s)}detachEvent(t,s){const n=this._eventRegistry,r=n.get(t);if(!r)return;const o=r.indexOf(s);o!==-1&&r.splice(o,1),r.length===0&&n.delete(t)}fireEvent(t,s){const r=this._eventRegistry.get(t);return r?r.map(o=>o.call(this,s)):[]}fireEventAsync(t,s){return Promise.all(this.fireEvent(t,s))}isHandlerAttached(t,s){const r=this._eventRegistry.get(t);return r?r.includes(s):!1}hasListeners(t){return!!this._eventRegistry.get(t)}}const es=new O,ss="languageChange",ns=e=>{es.attachEvent(ss,e)},yn=e=>es.fireEventAsync(ss,e),fe=10;class _n{constructor(){this.list=[],this.lookup=new Set}add(t){this.lookup.has(t)||(this.list.push(t),this.lookup.add(t))}remove(t){!this.lookup.has(t)||(this.list=this.list.filter(s=>s!==t),this.lookup.delete(t))}shift(){const t=this.list.shift();if(t)return this.lookup.delete(t),t}isEmpty(){return this.list.length===0}isAdded(t){return this.lookup.has(t)}process(t){let s;const n=new Map;for(s=this.shift();s;){const r=n.get(s)||0;if(r>fe)throw new Error(`Web component processed too many times this task, max allowed is: ${fe}`);t(s),n.set(s,r+1),s=this.shift()}}}const rs=(e,t=document.body)=>{let s=document.querySelector(e);return s||(s=document.createElement(e),t.insertBefore(s,t.firstChild))},wn=()=>typeof document=="undefined"?null:rs("ui5-shared-resources",document.head),R=(e,t)=>{const s=e.split(".");let n=wn();if(!n)return t;for(let r=0;r<s.length;r++){const o=s[r],i=r===s.length-1;Object.prototype.hasOwnProperty.call(n,o)||(n[o]=i?t:{}),n=n[o]}return n},vn={version:"1.11.0-rc.1",major:1,minor:11,patch:0,suffix:"-rc.1",isNext:!1,buildTime:1675930310};let at,An="";const Et=new Map,K=R("Runtimes",[]),Sn=()=>{if(at===void 0){at=K.length;const e=vn;K.push({...e,alias:An,description:`Runtime ${at} - ver ${e.version}`})}},os=()=>at,$n=(e,t)=>{const s=`${e},${t}`;if(Et.has(s))return Et.get(s);const n=K[e],r=K[t];if(!n||!r)throw new Error("Invalid runtime index supplied");if(n.isNext||r.isNext)return n.buildTime-r.buildTime;const o=n.major-r.major;if(o)return o;const i=n.minor-r.minor;if(i)return i;const c=n.patch-r.patch;if(c)return c;const l=new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"}).compare(n.suffix,r.suffix);return Et.set(s,l),l},bn=()=>K,is=R("Tags",new Map),Qt=new Set;let P=new Map,Tt;const as=-1,Cn=e=>{Qt.add(e),is.set(e,os())},En=e=>Qt.has(e),Tn=()=>[...Qt.values()],Ln=e=>{let t=is.get(e);t===void 0&&(t=as),P.has(t)||P.set(t,new Set),P.get(t).add(e),Tt||(Tt=setTimeout(()=>{Mn(),P=new Map,Tt=void 0},1e3))},Mn=()=>{const e=bn(),t=os(),s=e[t];let n="Multiple UI5 Web Components instances detected.";e.length>1&&(n=`${n}
|
|
2
|
-
Loading order (versions before 1.1.0 not listed): ${e.map(r=>`
|
|
3
|
-
${r.description}`).join("")}`),[...P.keys()].forEach(r=>{let o,i;r===as?(o=1,i={description:"Older unknown runtime"}):(o=$n(t,r),i=e[r]);let c;o>0?c="an older":o<0?c="a newer":c="the same",n=`${n}
|
|
4
|
-
|
|
5
|
-
"${s.description}" failed to define ${P.get(r).size} tag(s) as they were defined by a runtime of ${c} version "${i.description}": ${[...P.get(r)].sort().join(", ")}.`,o>0?n=`${n}
|
|
6
|
-
WARNING! If your code uses features of the above web components, unavailable in ${i.description}, it might not work as expected!`:n=`${n}
|
|
7
|
-
Since the above web components were defined by the same or newer version runtime, they should be compatible with your code.`}),n=`${n}
|
|
8
|
-
|
|
9
|
-
To prevent other runtimes from defining tags that you use, consider using scoping or have third-party libraries use scoping: https://github.com/SAP/ui5-webcomponents/blob/main/docs/2-advanced/03-scoping.md.`,console.warn(n)},cs=new Set,Pn=e=>{cs.add(e)},In=e=>cs.has(e),te=new Set,xn=new O,H=new _n;let D,ct,Lt,rt;const ls=async e=>{H.add(e),await Rn()},us=e=>{xn.fireEvent("beforeComponentRender",e),te.add(e),e._render()},On=e=>{H.remove(e),te.delete(e)},Rn=async()=>{rt||(rt=new Promise(e=>{window.requestAnimationFrame(()=>{H.process(us),rt=null,e(),Lt||(Lt=setTimeout(()=>{Lt=void 0,H.isEmpty()&&kn()},200))})})),await rt},Dn=()=>D||(D=new Promise(e=>{ct=e,window.requestAnimationFrame(()=>{H.isEmpty()&&(D=void 0,e())})}),D),Nn=()=>{const e=Tn().map(t=>customElements.whenDefined(t));return Promise.all(e)},ee=async()=>{await Nn(),await Dn()},kn=()=>{!H.isEmpty()||ct&&(ct(),ct=void 0,D=void 0)},vt=async e=>{te.forEach(t=>{const s=t.constructor,n=s.getMetadata().getTag(),r=In(s),o=s.getMetadata().isLanguageAware(),i=s.getMetadata().isThemeAware();(!e||e.tag===n||e.rtlAware&&r||e.languageAware&&o||e.themeAware&&i)&&ls(t)}),await ee()};let q,Zt;const se=()=>(q===void 0&&(q=an()),q),Un=async e=>{q!==e&&(q=e,await yn(e),await vt({languageAware:!0}))},Hn=e=>{Zt=e},Bn=()=>(Zt===void 0&&Hn(cn()),Zt),Fn=/^((?:[A-Z]{2,3}(?:-[A-Z]{3}){0,3})|[A-Z]{4}|[A-Z]{5,8})(?:-([A-Z]{4}))?(?:-([A-Z]{2}|[0-9]{3}))?((?:-[0-9A-Z]{5,8}|-[0-9][0-9A-Z]{3})*)((?:-[0-9A-WYZ](?:-[0-9A-Z]{2,8})+)*)(?:-(X(?:-[0-9A-Z]{1,8})+))?$/i;class ds{constructor(t){const s=Fn.exec(t.replace(/_/g,"-"));if(s===null)throw new Error(`The given language ${t} does not adhere to BCP-47.`);this.sLocaleId=t,this.sLanguage=s[1]||ft,this.sScript=s[2]||"",this.sRegion=s[3]||"",this.sVariant=s[4]&&s[4].slice(1)||null,this.sExtension=s[5]&&s[5].slice(1)||null,this.sPrivateUse=s[6]||null,this.sLanguage&&(this.sLanguage=this.sLanguage.toLowerCase()),this.sScript&&(this.sScript=this.sScript.toLowerCase().replace(/^[a-z]/,n=>n.toUpperCase())),this.sRegion&&(this.sRegion=this.sRegion.toUpperCase())}getLanguage(){return this.sLanguage}getScript(){return this.sScript}getRegion(){return this.sRegion}getVariant(){return this.sVariant}getVariantSubtags(){return this.sVariant?this.sVariant.split("-"):[]}getExtension(){return this.sExtension}getExtensionSubtags(){return this.sExtension?this.sExtension.slice(2).split("-"):[]}getPrivateUse(){return this.sPrivateUse}getPrivateUseSubtags(){return this.sPrivateUse?this.sPrivateUse.slice(2).split("-"):[]}hasPrivateUseSubtag(t){return this.getPrivateUseSubtags().indexOf(t)>=0}toString(){const t=[this.sLanguage];return this.sScript&&t.push(this.sScript),this.sRegion&&t.push(this.sRegion),this.sVariant&&t.push(this.sVariant),this.sExtension&&t.push(this.sExtension),this.sPrivateUse&&t.push(this.sPrivateUse),t.join("-")}}const Mt=new Map,hs=e=>(Mt.has(e)||Mt.set(e,new ds(e)),Mt.get(e)),pe=e=>{try{if(e&&typeof e=="string")return hs(e)}catch{}return new ds($)},qt=e=>{if(e)return pe(e);const t=se();return t?hs(t):pe(Ke())},jn=/^((?:[A-Z]{2,3}(?:-[A-Z]{3}){0,3})|[A-Z]{4}|[A-Z]{5,8})(?:-([A-Z]{4}))?(?:-([A-Z]{2}|[0-9]{3}))?((?:-[0-9A-Z]{5,8}|-[0-9][0-9A-Z]{3})*)((?:-[0-9A-WYZ](?:-[0-9A-Z]{2,8})+)*)(?:-(X(?:-[0-9A-Z]{1,8})+))?$/i,ge=/(?:^|-)(saptrc|sappsd)(?:-|$)/i,Vn={he:"iw",yi:"ji",nb:"no",sr:"sh"},zn=e=>{let t;if(!e)return $;if(typeof e=="string"&&(t=jn.exec(e.replace(/_/g,"-")))){let s=t[1].toLowerCase(),n=t[3]?t[3].toUpperCase():void 0;const r=t[2]?t[2].toLowerCase():void 0,o=t[4]?t[4].slice(1):void 0,i=t[6];return s=Vn[s]||s,i&&(t=ge.exec(i))||o&&(t=ge.exec(o))?`en_US_${t[1].toLowerCase()}`:(s==="zh"&&!n&&(r==="hans"?n="CN":r==="hant"&&(n="TW")),s+(n?"_"+n+(o?"_"+o.replace("-","_"):""):""))}return $},Wn=e=>{if(!e)return $;if(e==="zh_HK")return"zh_TW";const t=e.lastIndexOf("_");return t>=0?e.slice(0,t):e!==$?$:""},me=new Set,ye=new Set,ne=new Map,Pt=new Map,re=new Map,Zn=(e,t,s)=>{const n=`${e}/${t}`;re.set(n,s)},_e=(e,t)=>{ne.set(e,t)},qn=e=>ne.get(e),we=(e,t)=>{const s=`${e}/${t}`;return re.has(s)},Gn=(e,t)=>{const s=`${e}/${t}`,n=re.get(s);return n&&!Pt.get(s)&&Pt.set(s,n(t)),Pt.get(s)},Kn=e=>{me.has(e)||(console.warn(`[${e}]: Message bundle assets are not configured. Falling back to English texts.`,` Add \`import "${e}/dist/Assets.js"\` in your bundle and make sure your build tool supports dynamic imports and JSON imports. See section "Assets" in the documentation for more information.`),me.add(e))},fs=async e=>{const t=qt().getLanguage(),s=qt().getRegion();let n=zn(t+(s?`-${s}`:""));for(;n!==ft&&!we(e,n);)n=Wn(n);const r=Bn();if(n===ft&&!r){_e(e,null);return}if(!we(e,n)){Kn(e);return}try{const o=await Gn(e,n);_e(e,o)}catch(o){const i=o;ye.has(i.message)||(ye.add(i.message),console.error(i.message))}};ns(e=>{const t=[...ne.keys()];return Promise.all(t.map(fs))});const Jn=new Map,gt=new Map,It=new Map,ve=new Set;let Ae=!1;const Xn={iw:"he",ji:"yi",in:"id"},Se=e=>{Ae||(console.warn(`[LocaleData] Supported locale "${e}" not configured, import the "Assets.js" module from the webcomponents package you are using.`),Ae=!0)},Yn=(e,t,s)=>{e=e&&Xn[e]||e,e==="no"&&(e="nb"),e==="zh"&&!t&&(s==="Hans"?t="CN":s==="Hant"&&(t="TW")),(e==="sh"||e==="sr"&&s==="Latn")&&(e="sr",t="Latn");let n=`${e}_${t}`;return le.includes(n)||(n=e,le.includes(n))?gt.has(n)?n:(Se(n),$):$},$e=(e,t)=>{Jn.set(e,t)},Qn=e=>{if(!It.get(e)){const t=gt.get(e);if(!t)throw new Error(`CLDR data for locale ${e} is not loaded!`);It.set(e,t(e))}return It.get(e)},tr=async(e,t,s)=>{const n=Yn(e,t,s),r=b("OpenUI5Support");if(r){const o=r.getLocaleDataObject();if(o){$e(n,o);return}}try{const o=await Qn(n);$e(n,o)}catch(o){const i=o;ve.has(i.message)||(ve.add(i.message),console.error(i.message))}},er=(e,t)=>{gt.set(e,t)};er("en",async()=>(await fetch("https://sdk.openui5.org/1.103.0/resources/sap/ui/core/cldr/en.json")).json());ns(()=>{const e=qt();return tr(e.getLanguage(),e.getRegion(),e.getScript())});const ps=new Map,gs=new Map,ms=new Set,mt=new Set,T=(e,t,s)=>{gs.set(`${e}/${t}`,s),ms.add(e),mt.add(t)},ys=async(e,t)=>{const s=ps.get(`${e}_${t}`);if(s!==void 0)return s;if(!mt.has(t)){const n=[...mt.values()].join(", ");return console.warn(`You have requested a non-registered theme ${t} - falling back to ${ht}. Registered themes are: ${n}`),be(e,ht)}return be(e,t)},be=async(e,t)=>{const s=gs.get(`${e}/${t}`);if(!s){console.error(`Theme [${t}] not registered for package [${e}]`);return}let n;try{n=await s(t)}catch(o){console.error(e,o.message);return}const r=n._||n;return ps.set(`${e}_${t}`,r),r},_s=()=>ms,sr=e=>mt.has(e),Ce={"SAP-icons-TNT":"tnt",BusinessSuiteInAppSymbols:"business-suite",horizon:"SAP-icons-v5"},nr=(e,t)=>{const s=document.createElement("style");return s.type="text/css",t&&Object.entries(t).forEach(n=>s.setAttribute(...n)),s.textContent=e,document.head.appendChild(s),s},rr=(e,t)=>{const s=document.createElement("link");return s.type="text/css",s.rel="stylesheet",t&&Object.entries(t).forEach(n=>s.setAttribute(...n)),s.href=e,document.head.appendChild(s),new Promise(n=>{s.addEventListener("load",n),s.addEventListener("error",n)})},At=(e,t)=>t?`${e}|${t}`:e,St=(e,t,s="")=>{const n=typeof e=="string"?e:e.content;if(document.adoptedStyleSheets){const r=new CSSStyleSheet;r.replaceSync(n),r._ui5StyleId=At(t,s),document.adoptedStyleSheets=[...document.adoptedStyleSheets,r]}else{const r={};r[t]=s,nr(n,r)}},or=(e,t,s="")=>{const n=typeof e=="string"?e:e.content;if(document.adoptedStyleSheets){const r=document.adoptedStyleSheets.find(o=>o._ui5StyleId===At(t,s));r&&r.replaceSync(n||"")}else{const r=document.querySelector(`head>style[${t}="${s}"]`);r&&(r.textContent=n||"")}},$t=(e,t="")=>document.adoptedStyleSheets?!!document.adoptedStyleSheets.find(s=>s._ui5StyleId===At(e,t)):!!document.querySelector(`head>style[${e}="${t}"]`),ir=(e,t="")=>{var s;if(document.adoptedStyleSheets)document.adoptedStyleSheets=document.adoptedStyleSheets.filter(n=>n._ui5StyleId!==At(e,t));else{const n=document.querySelector(`head > style[${e}="${t}"]`);(s=n==null?void 0:n.parentElement)==null||s.removeChild(n)}},ws=(e,t,s="")=>{$t(t,s)?or(e,t,s):St(e,t,s)},N=new Set,ar=()=>{let e=document.querySelector(".sapThemeMetaData-Base-baseLib")||document.querySelector(".sapThemeMetaData-UI5-sap-ui-core");if(e)return getComputedStyle(e).backgroundImage;e=document.createElement("span"),e.style.display="none",e.classList.add("sapThemeMetaData-Base-baseLib"),document.body.appendChild(e);let t=getComputedStyle(e).backgroundImage;return t==="none"&&(e.classList.add("sapThemeMetaData-UI5-sap-ui-core"),t=getComputedStyle(e).backgroundImage),document.body.removeChild(e),t},cr=e=>{const t=/\(["']?data:text\/plain;utf-8,(.*?)['"]?\)$/i.exec(e);if(t&&t.length>=2){let s=t[1];if(s=s.replace(/\\"/g,'"'),s.charAt(0)!=="{"&&s.charAt(s.length-1)!=="}")try{s=decodeURIComponent(s)}catch{N.has("decode")||(console.warn("Malformed theme metadata string, unable to decodeURIComponent"),N.add("decode"));return}try{return JSON.parse(s)}catch{N.has("parse")||(console.warn("Malformed theme metadata string, unable to parse JSON"),N.add("parse"))}}},lr=e=>{let t,s;try{t=e.Path.match(/\.([^.]+)\.css_variables$/)[1],s=e.Extends[0]}catch{N.has("object")||(console.warn("Malformed theme metadata Object",e),N.add("object"));return}return{themeName:t,baseThemeName:s}},Ee=()=>{const e=ar();if(!e||e==="none")return;const t=cr(e);if(t)return lr(t)},ur=new O,dr="themeLoaded",hr=e=>ur.fireEvent(dr,e);let xt;const vs=()=>(xt===void 0&&(xt=rn()),xt),fr=e=>`${vs()}Base/baseLib/${e}/css_variables.css`,pr=async e=>{const t=document.querySelector(`[sap-ui-webcomponents-theme="${e}"]`);t&&document.head.removeChild(t),await rr(fr(e),{"sap-ui-webcomponents-theme":e})},J="@ui5/webcomponents-theming",gr=()=>_s().has(J),mr=async e=>{if(!gr())return;const t=await ys(J,e);t&&ws(t,"data-ui5-theme-properties",J)},yr=()=>{ir("data-ui5-theme-properties",J)},_r=async e=>{const s=[..._s()].map(async n=>{if(n===J)return;const r=await ys(n,e);r&&ws(r,"data-ui5-theme-properties",n)});return Promise.all(s)},wr=async e=>{var n;const t=Ee();if(t)return t;const s=b("OpenUI5Support");if(s){if(s.cssVariablesLoaded())return{themeName:(n=s.getConfigurationSettingsObject())==null?void 0:n.theme,baseThemeName:""}}else if(vs())return await pr(e),Ee()},As=async e=>{const t=await wr(e);!t||e!==t.themeName?await mr(e):yr();const s=sr(e)?e:t&&t.baseThemeName;await _r(s||ht),hr(e)};let k;const bt=()=>(k===void 0&&(k=nn()),k),Ss=async e=>{k!==e&&(k=e,await As(k),await vt({themeAware:!0}))},vr=e=>bt().startsWith(e),Ar=new Map;var yt;(function(e){e.v4="SAP-icons",e.v5="SAP-icons-v5"})(yt||(yt={}));const $s=()=>{const e=bt(),t=Ar.get(e);return t||(vr("sap_horizon")?yt.v5:yt.v4)},Te=new Map,_t=R("SVGIcons.registry",new Map),Ot=R("SVGIcons.promises",new Map),Le="ICON_NOT_FOUND",Sr=async e=>{if(!Ot.has(e)){if(!Te.has(e))throw new Error(`No loader registered for the ${e} icons collection. Probably you forgot to import the "AllIcons.js" module for the respective package.`);const t=Te.get(e);Ot.set(e,t(e))}return Ot.get(e)},$r=e=>{Object.keys(e.data).forEach(t=>{const s=e.data[t];br(t,{pathData:s.path||s.paths,ltr:s.ltr,accData:s.acc,collection:e.collection,packageName:e.packageName})})},br=(e,t)=>{t.collection||(t.collection=$s());const s=`${t.collection}/${e}`;_t.set(s,{pathData:t.pathData,ltr:t.ltr,accData:t.accData,packageName:t.packageName,customTemplate:t.customTemplate,viewBox:t.viewBox})},Cr=e=>{e.startsWith("sap-icon://")&&(e=e.replace("sap-icon://",""));let t;[e,t]=e.split("/").reverse(),t=t||$s(),t=Tr(t),e=e.replace("icon-","");const s=`${t}/${e}`;return{name:e,collection:t,registryKey:s}},Rt=async e=>{const{collection:t,registryKey:s}=Cr(e);let n=Le;try{n=await Sr(t)}catch(r){console.error(r.message)}return n===Le?n:(_t.has(s)||$r(n),_t.get(s))},Er=async()=>(await Rt("edit"),await Rt("tnt/arrow"),await Rt("business-suite/3d"),Array.from(_t.keys())),Tr=e=>Ce[e]?Ce[e]:e,Lr=R("PopupUtilsData",{currentZIndex:100}),Me=()=>Lr.currentZIndex,A=()=>{var e,t,s;return(s=(t=(e=window.sap)==null?void 0:e.ui)==null?void 0:t.getCore)==null?void 0:s.call(t)};class oe{static isLoaded(){return!!A()}static init(){const t=A();return t?new Promise(s=>{t.attachInit(()=>{window.sap.ui.require(["sap/ui/core/LocaleData","sap/ui/core/Popup"],(n,r)=>{r.setInitialZIndex(Me()),s()})})}):Promise.resolve()}static getConfigurationSettingsObject(){const t=A();if(!t)return;const s=t.getConfiguration(),n=window.sap.ui.require("sap/ui/core/LocaleData");return{animationMode:s.getAnimationMode(),language:s.getLanguage(),theme:s.getTheme(),themeRoot:s.getThemeRoot(),rtl:s.getRTL(),calendarType:s.getCalendarType(),formatSettings:{firstDayOfWeek:n?n.getInstance(s.getLocale()).getFirstDayOfWeek():void 0}}}static getLocaleDataObject(){const t=A();if(!t)return;const s=t.getConfiguration();return window.sap.ui.require("sap/ui/core/LocaleData").getInstance(s.getLocale())._get()}static _listenForThemeChange(){const t=A(),s=t.getConfiguration();t.attachThemeChanged(async()=>{await Ss(s.getTheme())})}static attachListeners(){!A()||oe._listenForThemeChange()}static cssVariablesLoaded(){if(!A())return;const s=[...document.head.children].find(n=>n.id==="sap-ui-theme-sap.ui.core");if(!!s)return!!s.href.match(/\/css(-|_)variables\.css/)}static getNextZIndex(){return A()?window.sap.ui.require("sap/ui/core/Popup").getNextZIndex():void 0}static setInitialZIndex(){if(!A())return;window.sap.ui.require("sap/ui/core/Popup").setInitialZIndex(Me())}}Js("OpenUI5Support",oe);const Mr=()=>new Promise(e=>{document.body?e():document.addEventListener("DOMContentLoaded",()=>{e()})}),Pr={packageName:"@ui5/webcomponents-base",fileName:"FontFace.css",content:`@font-face{font-family:"72";font-style:normal;font-weight:400;src:local("72"),url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Regular.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:"72full";font-style:normal;font-weight:400;src:local('72-full'),url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Regular-full.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:"72";font-style:normal;font-weight:700;src:local('72-Bold'),url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:"72full";font-style:normal;font-weight:700;src:local('72-Bold-full'),url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold-full.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:'72-Bold';font-style:normal;src:local('72-Bold'),url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:'72-Boldfull';font-style:normal;src:url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold-full.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:'72-Light';font-style:normal;src:local('72-Light'),url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Light.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:'72-Lightfull';font-style:normal;src:url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Light-full.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:"72Black";font-style:bold;font-weight:900;src:local('72Black'),url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_horizon/fonts/72-Black.woff2?ui5-webcomponents) format("woff2")}`},Ir={packageName:"@ui5/webcomponents-base",fileName:"OverrideFontFace.css",content:"@font-face{font-family:'72override';unicode-range:U+0102-0103,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EB7,U+1EB8-1EC7,U+1EC8-1ECB,U+1ECC-1EE3,U+1EE4-1EF1,U+1EF4-1EF7;src:local('Arial'),local('Helvetica'),local('sans-serif')}"},xr=()=>{const e=b("OpenUI5Support");(!e||!e.isLoaded())&&Or(),Rr()},Or=()=>{$t("data-ui5-font-face")||St(Pr,"data-ui5-font-face")},Rr=()=>{$t("data-ui5-font-face-override")||St(Ir,"data-ui5-font-face-override")},Dr={packageName:"@ui5/webcomponents-base",fileName:"SystemCSSVars.css",content:":root{--_ui5_content_density:cozy}.sapUiSizeCompact,.ui5-content-density-compact,[data-ui5-compact-size]{--_ui5_content_density:compact}[dir=rtl]{--_ui5_dir:rtl}[dir=ltr]{--_ui5_dir:ltr}"},Nr=()=>{$t("data-ui5-system-css-vars")||St(Dr,"data-ui5-system-css-vars")};let ot;const kr=async()=>{if(ot!==void 0)return ot;const e=async t=>{if(typeof document=="undefined"){t();return}Sn();const s=b("OpenUI5Support"),n=s?s.isLoaded():!1,r=b("F6Navigation");s&&await s.init(),r&&!n&&r.init(),await Mr(),await As(bt()),s&&s.attachListeners(),xr(),Nr(),t()};return ot=new Promise(e),ot},Dt=new Map,Nt=new Map,Pe=e=>{if(!Dt.has(e)){const t=Ur(e.split("-"));Dt.set(e,t)}return Dt.get(e)},bs=e=>{if(!Nt.has(e)){const t=e.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase();Nt.set(e,t)}return Nt.get(e)},Ur=e=>e.map((t,s)=>s===0?t.toLowerCase():t.charAt(0).toUpperCase()+t.slice(1).toLowerCase()).join(""),Hr=e=>{if(!(e instanceof HTMLElement))return"default";const t=e.getAttribute("slot");if(t){const s=t.match(/^(.+?)-\d+$/);return s?s[1]:t}return"default"},Cs=e=>e instanceof HTMLSlotElement?e.assignedNodes({flatten:!0}).filter(t=>t instanceof HTMLElement):[e],Br=e=>e.reduce((t,s)=>t.concat(Cs(s)),[]);let Fr,Ie={include:[/^ui5-/],exclude:[]};const kt=new Map,Es=()=>Fr,Gt=e=>{if(!kt.has(e)){const t=Ie.include.some(s=>e.match(s))&&!Ie.exclude.some(s=>e.match(s));kt.set(e,t)}return kt.get(e)},Ts=e=>{if(Gt(e))return Es()};class jr{constructor(t){this.metadata=t}getInitialState(){if(Object.prototype.hasOwnProperty.call(this,"_initialState"))return this._initialState;const t={},s=this.slotsAreManaged(),n=this.getProperties();for(const r in n){const o=n[r].type,i=n[r].defaultValue;o===Boolean?(t[r]=!1,i!==void 0&&console.warn("The 'defaultValue' metadata key is ignored for all booleans properties, they would be initialized with 'false' by default")):n[r].multiple?t[r]=[]:o===Object?t[r]="defaultValue"in n[r]?n[r].defaultValue:{}:o===String?t[r]="defaultValue"in n[r]?n[r].defaultValue:"":t[r]=i}if(s){const r=this.getSlots();for(const[o,i]of Object.entries(r)){const c=i.propertyName||o;t[c]=[]}}return this._initialState=t,t}static validatePropertyValue(t,s){return s.multiple&&t?t.map(r=>xe(r,s)):xe(t,s)}static validateSlotValue(t,s){return Vr(t,s)}getPureTag(){return this.metadata.tag||""}getTag(){const t=this.metadata.tag;if(!t)return"";const s=Ts(t);return s?`${t}-${s}`:t}hasAttribute(t){const s=this.getProperties()[t];return s.type!==Object&&!s.noAttribute&&!s.multiple}getPropertiesList(){return Object.keys(this.getProperties())}getAttributesList(){return this.getPropertiesList().filter(this.hasAttribute.bind(this)).map(bs)}canSlotText(){const t=this.getSlots().default;return t&&t.type===Node}hasSlots(){return!!Object.entries(this.getSlots()).length}hasIndividualSlots(){return this.slotsAreManaged()&&Object.values(this.getSlots()).some(t=>t.individualSlots)}slotsAreManaged(){return!!this.metadata.managedSlots}supportsF6FastNavigation(){return!!this.metadata.fastNavigation}getProperties(){return this.metadata.properties||(this.metadata.properties={}),this.metadata.properties}getEvents(){return this.metadata.events||(this.metadata.events={}),this.metadata.events}getSlots(){return this.metadata.slots||(this.metadata.slots={}),this.metadata.slots}isLanguageAware(){return!!this.metadata.languageAware}isThemeAware(){return!!this.metadata.themeAware}shouldInvalidateOnChildChange(t,s,n){const r=this.getSlots()[t].invalidateOnChildChange;if(r===void 0)return!1;if(typeof r=="boolean")return r;if(typeof r=="object"){if(s==="property"){if(r.properties===void 0)return!1;if(typeof r.properties=="boolean")return r.properties;if(Array.isArray(r.properties))return r.properties.includes(n);throw new Error("Wrong format for invalidateOnChildChange.properties: boolean or array is expected")}if(s==="slot"){if(r.slots===void 0)return!1;if(typeof r.slots=="boolean")return r.slots;if(Array.isArray(r.slots))return r.slots.includes(n);throw new Error("Wrong format for invalidateOnChildChange.slots: boolean or array is expected")}}throw new Error("Wrong format for invalidateOnChildChange: boolean or object is expected")}}const xe=(e,t)=>{const s=t.type;let n=t.validator;return s&&s.isDataTypeClass&&(n=s),n?n.isValid(e)?e:t.defaultValue:!s||s===String?typeof e=="string"||typeof e=="undefined"||e===null?e:e.toString():s===Boolean?typeof e=="boolean"?e:!1:s===Object?typeof e=="object"?e:t.defaultValue:e in s?e:t.defaultValue},Vr=(e,t)=>(e&&Cs(e).forEach(s=>{if(!(s instanceof t.type))throw new Error(`The element is not of type ${t.type.toString()}`)}),e);customElements.get("ui5-static-area")||customElements.define("ui5-static-area",class extends HTMLElement{});const zr=(e,t)=>{const s=Wr(t),n=Es();return e(t,s,n)},Wr=e=>{const t=e.constructor,s=t.getMetadata().getPureTag(),n=t.getUniqueDependencies().map(r=>r.getMetadata().getPureTag()).filter(Gt);return Gt(s)&&n.push(s),n},Zr=()=>R("CustomStyle.eventProvider",new O),qr="CustomCSSChange",ie=e=>{Zr().attachEvent(qr,e)},Gr=()=>R("CustomStyle.customCSSFor",{});ie(e=>{vt({tag:e})});const Kr=e=>{const t=Gr();return t[e]?t[e].join(""):""},Jr=10,Ut=e=>Array.isArray(e)?e.filter(t=>!!t).flat(Jr).map(t=>typeof t=="string"?t:t.content).join(" "):typeof e=="string"?e:e.content,lt=new Map;ie(e=>{lt.delete(`${e}_normal`)});const Ls=(e,t=!1)=>{const s=e.getMetadata().getTag(),n=`${s}_${t?"static":"normal"}`,r=b("OpenUI5Enablement");if(!lt.has(n)){let o,i="";if(r&&(i=Ut(r.getBusyIndicatorStyles())),t)o=Ut(e.staticAreaStyles);else{const c=Kr(s)||"";o=`${Ut(e.styles)} ${c}`}o=`${o} ${i}`,lt.set(n,o)}return lt.get(n)},ut=new Map;ie(e=>{ut.delete(`${e}_normal`)});const Xr=(e,t=!1)=>{const n=`${e.getMetadata().getTag()}_${t?"static":"normal"}`;if(!ut.has(n)){const r=Ls(e,t),o=new CSSStyleSheet;o.replaceSync(r),ut.set(n,[o])}return ut.get(n)},Kt=(e,t=!1)=>{let s;const n=e.constructor,o=n[t?"staticAreaTemplate":"template"],i=t?e.staticAreaItem.shadowRoot:e.shadowRoot,c=zr(o,e);if(!i){console.warn("There is no shadow root to update");return}document.adoptedStyleSheets?i.adoptedStyleSheets=Xr(n,t):s=Ls(n,t),n.render(c,i,s,t,{host:e})},Yr="--_ui5_content_density",Qr=e=>getComputedStyle(e).getPropertyValue(Yr);var to=e=>{const t=/\$([-a-z0-9A-Z._]+)(?::([^$]*))?\$/.exec(e);return t&&t[2]?t[2].split(/,/):null};const eo={iw:"he",ji:"yi",in:"id",sh:"sr"},so=to("$cldr-rtl-locales:ar,fa,he$")||[],no=e=>(e=e&&eo[e]||e,so.indexOf(e)>=0),Ms=()=>{const e=on();return e!==void 0?!!e:no(se()||Ke())},ro="--_ui5_dir",Ps=e=>{const t=window.document,s=["ltr","rtl"],n=getComputedStyle(e).getPropertyValue(ro);return s.includes(n)?n:s.includes(e.dir)?e.dir:s.includes(t.documentElement.dir)?t.documentElement.dir:s.includes(t.body.dir)?t.body.dir:Ms()?"rtl":void 0},it="ui5-static-area-item",oo="data-sap-ui-integration-popup-content";class G extends HTMLElement{constructor(){super(),this._rendered=!1,this.attachShadow({mode:"open"})}setOwnerElement(t){this.ownerElement=t,this.classList.add(this.ownerElement._id),this.ownerElement.hasAttribute("data-ui5-static-stable")&&this.setAttribute("data-ui5-stable",this.ownerElement.getAttribute("data-ui5-static-stable"))}update(){this._rendered&&(this._updateAdditionalAttrs(),this._updateContentDensity(),this._updateDirection(),Kt(this.ownerElement,!0))}_updateContentDensity(){Qr(this.ownerElement)==="compact"?(this.classList.add("sapUiSizeCompact"),this.classList.add("ui5-content-density-compact")):(this.classList.remove("sapUiSizeCompact"),this.classList.remove("ui5-content-density-compact"))}_updateDirection(){if(this.ownerElement){const t=Ps(this.ownerElement);t?this.setAttribute("dir",t):this.removeAttribute("dir")}}_updateAdditionalAttrs(){this.setAttribute(it,""),this.setAttribute(oo,"")}async getDomRef(){return this._updateContentDensity(),this._rendered||(this._rendered=!0,Kt(this.ownerElement,!0)),await ee(),this.shadowRoot}static getTag(){const t=Ts(it);return t?`${it}-${t}`:it}static createInstance(){return customElements.get(G.getTag())||customElements.define(G.getTag(),G),document.createElement(this.getTag())}}const Jt=new WeakMap,io=(e,t,s)=>{const n=new MutationObserver(t);Jt.set(e,n),n.observe(e,s)},ao=e=>{const t=Jt.get(e);t&&(t.disconnect(),Jt.delete(e))},co=["value-changed"];let dt;const lo=e=>co.includes(e),uo=e=>{const t=ae();return!(typeof t!="boolean"&&t.events&&t.events.includes&&t.events.includes(e))},ae=()=>(dt===void 0&&(dt=ln()),dt),ho=e=>{dt=e},fo=e=>{const t=ae();return lo(e)?!1:t===!0?!0:!uo(e)},po=["disabled","title","hidden","role","draggable"],Oe=e=>po.includes(e)||e.startsWith("aria")?!0:![HTMLElement,Element,Node].some(s=>s.prototype.hasOwnProperty(e)),Re=(e,t)=>{if(e.length!==t.length)return!1;for(let s=0;s<e.length;s++)if(e[s]!==t[s])return!1;return!0};let go=0;const De=new Map,Ht=new Map;function V(e){this._suppressInvalidation||(this.onInvalidation(e),this._changedState.push(e),ls(this),this._eventProvider.fireEvent("invalidate",{...e,target:this}))}let Ne={};class E extends HTMLElement{constructor(){super();const t=this.constructor;this._changedState=[],this._suppressInvalidation=!0,this._inDOM=!1,this._fullyConnected=!1,this._childChangeListeners=new Map,this._slotChangeListeners=new Map,this._eventProvider=new O;let s;this._domRefReadyPromise=new Promise(n=>{s=n}),this._domRefReadyPromise._deferredResolve=s,this._doNotSyncAttributes=new Set,this._state={...t.getMetadata().getInitialState()},this._upgradeAllProperties(),t._needsShadowDOM()&&this.attachShadow({mode:"open"})}get _id(){return this.__id||(this.__id=`ui5wc_${++go}`),this.__id}async connectedCallback(){const t=this.constructor;this.setAttribute(t.getMetadata().getPureTag(),""),t.getMetadata().supportsF6FastNavigation()&&this.setAttribute("data-sap-ui-fastnavgroup","true");const s=t.getMetadata().slotsAreManaged();this._inDOM=!0,s&&(this._startObservingDOMChildren(),await this._processChildren()),this._inDOM&&(us(this),this._domRefReadyPromise._deferredResolve(),this._fullyConnected=!0,this.onEnterDOM())}disconnectedCallback(){const s=this.constructor.getMetadata().slotsAreManaged();this._inDOM=!1,s&&this._stopObservingDOMChildren(),this._fullyConnected&&(this.onExitDOM(),this._fullyConnected=!1),this.staticAreaItem&&this.staticAreaItem.parentElement&&this.staticAreaItem.parentElement.removeChild(this.staticAreaItem),On(this)}onBeforeRendering(){}onAfterRendering(){}onEnterDOM(){}onExitDOM(){}_startObservingDOMChildren(){const t=this.constructor;if(!t.getMetadata().hasSlots())return;const n=t.getMetadata().canSlotText(),r={childList:!0,subtree:n,characterData:n};io(this,this._processChildren.bind(this),r)}_stopObservingDOMChildren(){ao(this)}async _processChildren(){this.constructor.getMetadata().hasSlots()&&await this._updateSlots()}async _updateSlots(){const t=this.constructor,s=t.getMetadata().getSlots(),n=t.getMetadata().canSlotText(),r=Array.from(n?this.childNodes:this.children),o=new Map,i=new Map;for(const[u,d]of Object.entries(s)){const h=d.propertyName||u;i.set(h,u),o.set(h,[...this._state[h]]),this._clearSlot(u,d)}const c=new Map,a=new Map,l=r.map(async(u,d)=>{const h=Hr(u),p=s[h];if(p===void 0){if(h!=="default"){const g=Object.keys(s).join(", ");console.warn(`Unknown slotName: ${h}, ignoring`,u,`Valid values are: ${g}`)}return}if(p.individualSlots){const g=(c.get(h)||0)+1;c.set(h,g),u._individualSlot=`${h}-${g}`}if(u instanceof HTMLElement){const g=u.localName;if(g.includes("-")){if(!window.customElements.get(g)){const zs=window.customElements.whenDefined(g);let nt=De.get(g);nt||(nt=new Promise(Ws=>setTimeout(Ws,1e3)),De.set(g,nt)),await Promise.race([zs,nt])}window.customElements.upgrade(u)}}if(u=t.getMetadata().constructor.validateSlotValue(u,p),ke(u)&&p.invalidateOnChildChange){const g=this._getChildChangeListener(h);g&&u.attachInvalidate.call(u,g)}u instanceof HTMLSlotElement&&this._attachSlotChange(u,h);const m=p.propertyName||h;a.has(m)?a.get(m).push({child:u,idx:d}):a.set(m,[{child:u,idx:d}])});await Promise.all(l),a.forEach((u,d)=>{this._state[d]=u.sort((h,p)=>h.idx-p.idx).map(h=>h.child)});let f=!1;for(const[u,d]of Object.entries(s)){const h=d.propertyName||u;Re(o.get(h),this._state[h])||(V.call(this,{type:"slot",name:i.get(h),reason:"children"}),f=!0)}f||V.call(this,{type:"slot",name:"default",reason:"textcontent"})}_clearSlot(t,s){const n=s.propertyName||t;this._state[n].forEach(o=>{if(ke(o)){const i=this._getChildChangeListener(t);i&&o.detachInvalidate.call(o,i)}o instanceof HTMLSlotElement&&this._detachSlotChange(o,t)}),this._state[n]=[]}attachInvalidate(t){this._eventProvider.attachEvent("invalidate",t)}detachInvalidate(t){this._eventProvider.detachEvent("invalidate",t)}_onChildChange(t,s){!this.constructor.getMetadata().shouldInvalidateOnChildChange(t,s.type,s.name)||V.call(this,{type:"slot",name:t,reason:"childchange",child:s.target})}attributeChangedCallback(t,s,n){let r;if(this._doNotSyncAttributes.has(t))return;const o=this.constructor.getMetadata().getProperties(),i=t.replace(/^ui5-/,""),c=Pe(i);if(o.hasOwnProperty(c)){const a=o[c],l=a.type;let f=a.validator;l&&l.isDataTypeClass&&(f=l),f?r=f.attributeToProperty(n):l===Boolean?r=n!==null:r=n,this[c]=r}}_updateAttribute(t,s){const n=this.constructor;if(!n.getMetadata().hasAttribute(t))return;const o=n.getMetadata().getProperties()[t],i=o.type;let c=o.validator;const a=bs(t),l=this.getAttribute(a);if(i&&i.isDataTypeClass&&(c=i),c){const f=c.propertyToAttribute(s);f===null?(this._doNotSyncAttributes.add(a),this.removeAttribute(a),this._doNotSyncAttributes.delete(a)):this.setAttribute(a,f)}else i===Boolean?s===!0&&l===null?this.setAttribute(a,""):s===!1&&l!==null&&this.removeAttribute(a):typeof s!="object"&&l!==s&&this.setAttribute(a,s)}_upgradeProperty(t){if(this.hasOwnProperty(t)){const s=this[t];delete this[t],this[t]=s}}_upgradeAllProperties(){this.constructor.getMetadata().getPropertiesList().forEach(this._upgradeProperty.bind(this))}_getChildChangeListener(t){return this._childChangeListeners.has(t)||this._childChangeListeners.set(t,this._onChildChange.bind(this,t)),this._childChangeListeners.get(t)}_getSlotChangeListener(t){return this._slotChangeListeners.has(t)||this._slotChangeListeners.set(t,this._onSlotChange.bind(this,t)),this._slotChangeListeners.get(t)}_attachSlotChange(t,s){const n=this._getSlotChangeListener(s);n&&t.addEventListener("slotchange",n)}_detachSlotChange(t,s){t.removeEventListener("slotchange",this._getSlotChangeListener(s))}_onSlotChange(t){V.call(this,{type:"slot",name:t,reason:"slotchange"})}onInvalidation(t){}_render(){const t=this.constructor,s=t.getMetadata().hasIndividualSlots();this._suppressInvalidation=!0,this.onBeforeRendering(),this._onComponentStateFinalized&&this._onComponentStateFinalized(),this._suppressInvalidation=!1,this._changedState=[],t._needsShadowDOM()&&Kt(this),this.staticAreaItem&&this.staticAreaItem.update(),s&&this._assignIndividualSlotsToChildren(),this.onAfterRendering()}_assignIndividualSlotsToChildren(){Array.from(this.children).forEach(s=>{s._individualSlot&&s.setAttribute("slot",s._individualSlot)})}_waitForDomRef(){return this._domRefReadyPromise}getDomRef(){if(typeof this._getRealDomRef=="function")return this._getRealDomRef();if(!this.shadowRoot||this.shadowRoot.children.length===0)return;const t=[...this.shadowRoot.children].filter(s=>!["link","style"].includes(s.localName));return t.length!==1&&console.warn(`The shadow DOM for ${this.constructor.getMetadata().getTag()} does not have a top level element, the getDomRef() method might not work as expected`),t[0]}getFocusDomRef(){const t=this.getDomRef();if(t)return t.querySelector("[data-sap-focus-ref]")||t}async getFocusDomRefAsync(){return await this._waitForDomRef(),this.getFocusDomRef()}async focus(t){await this._waitForDomRef();const s=this.getFocusDomRef();s&&typeof s.focus=="function"&&s.focus(t)}fireEvent(t,s,n=!1,r=!0){const o=this._fireEvent(t,s,n,r),i=Pe(t);return i!==t?o&&this._fireEvent(i,s,n):o}_fireEvent(t,s,n=!1,r=!0){const o=new CustomEvent(`ui5-${t}`,{detail:s,composed:!1,bubbles:r,cancelable:n}),i=this.dispatchEvent(o);if(fo(t))return i;const c=new CustomEvent(t,{detail:s,composed:!1,bubbles:r,cancelable:n});return this.dispatchEvent(c)&&i}getSlottedNodes(t){return Br(this[t])}get effectiveDir(){return Pn(this.constructor),Ps(this)}get isUI5Element(){return!0}get classes(){return{}}static get observedAttributes(){return this.getMetadata().getAttributesList()}static _needsShadowDOM(){return!!this.template}static _needsStaticArea(){return!!this.staticAreaTemplate}getStaticAreaItemDomRef(){if(!this.constructor._needsStaticArea())throw new Error("This component does not use the static area");return this.staticAreaItem||(this.staticAreaItem=G.createInstance(),this.staticAreaItem.setOwnerElement(this)),this.staticAreaItem.parentElement||rs("ui5-static-area").appendChild(this.staticAreaItem),this.staticAreaItem.getDomRef()}static _generateAccessors(){const t=this.prototype,s=this.getMetadata().slotsAreManaged(),n=this.getMetadata().getProperties();for(const[r,o]of Object.entries(n)){if(Oe(r)||console.warn(`"${r}" is not a valid property name. Use a name that does not collide with DOM APIs`),o.type===Boolean&&o.defaultValue)throw new Error(`Cannot set a default value for property "${r}". All booleans are false by default.`);if(o.type===Array)throw new Error(`Wrong type for property "${r}". Properties cannot be of type Array - use "multiple: true" and set "type" to the single value type, such as "String", "Object", etc...`);if(o.type===Object&&o.defaultValue)throw new Error(`Cannot set a default value for property "${r}". All properties of type "Object" are empty objects by default.`);if(o.multiple&&o.defaultValue)throw new Error(`Cannot set a default value for property "${r}". All multiple properties are empty arrays by default.`);Object.defineProperty(t,r,{get(){if(this._state[r]!==void 0)return this._state[r];const i=o.defaultValue;return o.type===Boolean?!1:o.type===String?i:o.multiple?[]:i},set(i){let c;i=this.constructor.getMetadata().constructor.validatePropertyValue(i,o);const f=o.type;let u=o.validator;const d=this._state[r];f&&f.isDataTypeClass&&(u=f),u?c=!u.valuesAreEqual(d,i):Array.isArray(d)&&Array.isArray(i)&&o.multiple&&o.compareValues?c=!Re(d,i):c=d!==i,c&&(this._state[r]=i,V.call(this,{type:"property",name:r,newValue:i,oldValue:d}),this._updateAttribute(r,i))}})}if(s){const r=this.getMetadata().getSlots();for(const[o,i]of Object.entries(r)){Oe(o)||console.warn(`"${o}" is not a valid property name. Use a name that does not collide with DOM APIs`);const c=i.propertyName||o;Object.defineProperty(t,c,{get(){return this._state[c]!==void 0?this._state[c]:[]},set(){throw new Error("Cannot set slot content directly, use the DOM APIs (appendChild, removeChild, etc...)")}})}}}static get metadata(){return Ne}static set metadata(t){Ne=t}static get styles(){return""}static get staticAreaStyles(){return""}static get dependencies(){return[]}static getUniqueDependencies(){if(!Ht.has(this)){const t=this.dependencies.filter((s,n,r)=>r.indexOf(s)===n);Ht.set(this,t)}return Ht.get(this)||[]}static whenDependenciesDefined(){return Promise.all(this.getUniqueDependencies().map(t=>t.define()))}static async onDefine(){return Promise.resolve()}static async define(){await kr(),await Promise.all([this.whenDependenciesDefined(),this.onDefine()]);const t=this.getMetadata().getTag(),s=En(t),n=customElements.get(t);return n&&!s?Ln(t):n||(this._generateAccessors(),Cn(t),window.customElements.define(t,this)),this}static getMetadata(){if(this.hasOwnProperty("_metadata"))return this._metadata;const s=[Object.keys(this.metadata).length?this.metadata:this.decoratorMetadata];let n=this;for(;n!==E;){n=Object.getPrototypeOf(n);const o=Object.keys(n.metadata).length?n.metadata:n.decoratorMetadata;s.unshift(o)}const r=Yt({},...s);return this._metadata=new jr(r),this._metadata}}E.decoratorMetadata={};const ke=e=>"isUI5Element"in e;/**
|
|
10
|
-
* @license
|
|
11
|
-
* Copyright 2017 Google LLC
|
|
12
|
-
* SPDX-License-Identifier: BSD-3-Clause
|
|
13
|
-
*/var Bt;const B=globalThis.trustedTypes,Ue=B?B.createPolicy("lit-html",{createHTML:e=>e}):void 0,S=`lit$${(Math.random()+"").slice(9)}$`,ce="?"+S,mo=`<${ce}>`,F=document,X=(e="")=>F.createComment(e),Y=e=>e===null||typeof e!="object"&&typeof e!="function",Is=Array.isArray,xs=e=>{var t;return Is(e)||typeof((t=e)===null||t===void 0?void 0:t[Symbol.iterator])=="function"},z=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,He=/-->/g,Be=/>/g,L=/>|[ \n\r](?:([^\s"'>=/]+)([ \n\r]*=[ \n\r]*(?:[^ \n\r"'`<>=]|("|')|))|$)/g,Fe=/'/g,je=/"/g,Os=/^(?:script|style|textarea|title)$/i,yo=e=>(t,...s)=>({_$litType$:e,strings:t,values:s}),_o=yo(1),I=Symbol.for("lit-noChange"),y=Symbol.for("lit-nothing"),Ve=new WeakMap,wo=(e,t,s)=>{var n,r;const o=(n=s==null?void 0:s.renderBefore)!==null&&n!==void 0?n:t;let i=o._$litPart$;if(i===void 0){const c=(r=s==null?void 0:s.renderBefore)!==null&&r!==void 0?r:null;o._$litPart$=i=new j(t.insertBefore(X(),c),c,void 0,s!=null?s:{})}return i._$AI(e),i},U=F.createTreeWalker(F,129,null,!1),Rs=(e,t)=>{const s=e.length-1,n=[];let r,o=t===2?"<svg>":"",i=z;for(let a=0;a<s;a++){const l=e[a];let f,u,d=-1,h=0;for(;h<l.length&&(i.lastIndex=h,u=i.exec(l),u!==null);)h=i.lastIndex,i===z?u[1]==="!--"?i=He:u[1]!==void 0?i=Be:u[2]!==void 0?(Os.test(u[2])&&(r=RegExp("</"+u[2],"g")),i=L):u[3]!==void 0&&(i=L):i===L?u[0]===">"?(i=r!=null?r:z,d=-1):u[1]===void 0?d=-2:(d=i.lastIndex-u[2].length,f=u[1],i=u[3]===void 0?L:u[3]==='"'?je:Fe):i===je||i===Fe?i=L:i===He||i===Be?i=z:(i=L,r=void 0);const p=i===L&&e[a+1].startsWith("/>")?" ":"";o+=i===z?l+mo:d>=0?(n.push(f),l.slice(0,d)+"$lit$"+l.slice(d)+S+p):l+S+(d===-2?(n.push(void 0),a):p)}const c=o+(e[s]||"<?>")+(t===2?"</svg>":"");if(!Array.isArray(e)||!e.hasOwnProperty("raw"))throw Error("invalid template strings array");return[Ue!==void 0?Ue.createHTML(c):c,n]};class Q{constructor({strings:t,_$litType$:s},n){let r;this.parts=[];let o=0,i=0;const c=t.length-1,a=this.parts,[l,f]=Rs(t,s);if(this.el=Q.createElement(l,n),U.currentNode=this.el.content,s===2){const u=this.el.content,d=u.firstChild;d.remove(),u.append(...d.childNodes)}for(;(r=U.nextNode())!==null&&a.length<c;){if(r.nodeType===1){if(r.hasAttributes()){const u=[];for(const d of r.getAttributeNames())if(d.endsWith("$lit$")||d.startsWith(S)){const h=f[i++];if(u.push(d),h!==void 0){const p=r.getAttribute(h.toLowerCase()+"$lit$").split(S),m=/([.?@])?(.*)/.exec(h);a.push({type:1,index:o,name:m[2],strings:p,ctor:m[1]==="."?Ns:m[1]==="?"?ks:m[1]==="@"?Us:tt})}else a.push({type:6,index:o})}for(const d of u)r.removeAttribute(d)}if(Os.test(r.tagName)){const u=r.textContent.split(S),d=u.length-1;if(d>0){r.textContent=B?B.emptyScript:"";for(let h=0;h<d;h++)r.append(u[h],X()),U.nextNode(),a.push({type:2,index:++o});r.append(u[d],X())}}}else if(r.nodeType===8)if(r.data===ce)a.push({type:2,index:o});else{let u=-1;for(;(u=r.data.indexOf(S,u+1))!==-1;)a.push({type:7,index:o}),u+=S.length-1}o++}}static createElement(t,s){const n=F.createElement("template");return n.innerHTML=t,n}}function x(e,t,s=e,n){var r,o,i,c;if(t===I)return t;let a=n!==void 0?(r=s._$Cl)===null||r===void 0?void 0:r[n]:s._$Cu;const l=Y(t)?void 0:t._$litDirective$;return(a==null?void 0:a.constructor)!==l&&((o=a==null?void 0:a._$AO)===null||o===void 0||o.call(a,!1),l===void 0?a=void 0:(a=new l(e),a._$AT(e,s,n)),n!==void 0?((i=(c=s)._$Cl)!==null&&i!==void 0?i:c._$Cl=[])[n]=a:s._$Cu=a),a!==void 0&&(t=x(e,a._$AS(e,t.values),a,n)),t}class Ds{constructor(t,s){this.v=[],this._$AN=void 0,this._$AD=t,this._$AM=s}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}p(t){var s;const{el:{content:n},parts:r}=this._$AD,o=((s=t==null?void 0:t.creationScope)!==null&&s!==void 0?s:F).importNode(n,!0);U.currentNode=o;let i=U.nextNode(),c=0,a=0,l=r[0];for(;l!==void 0;){if(c===l.index){let f;l.type===2?f=new j(i,i.nextSibling,this,t):l.type===1?f=new l.ctor(i,l.name,l.strings,this,t):l.type===6&&(f=new Hs(i,this,t)),this.v.push(f),l=r[++a]}c!==(l==null?void 0:l.index)&&(i=U.nextNode(),c++)}return o}m(t){let s=0;for(const n of this.v)n!==void 0&&(n.strings!==void 0?(n._$AI(t,n,s),s+=n.strings.length-2):n._$AI(t[s])),s++}}class j{constructor(t,s,n,r){var o;this.type=2,this._$AH=y,this._$AN=void 0,this._$AA=t,this._$AB=s,this._$AM=n,this.options=r,this._$Cg=(o=r==null?void 0:r.isConnected)===null||o===void 0||o}get _$AU(){var t,s;return(s=(t=this._$AM)===null||t===void 0?void 0:t._$AU)!==null&&s!==void 0?s:this._$Cg}get parentNode(){let t=this._$AA.parentNode;const s=this._$AM;return s!==void 0&&t.nodeType===11&&(t=s.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,s=this){t=x(this,t,s),Y(t)?t===y||t==null||t===""?(this._$AH!==y&&this._$AR(),this._$AH=y):t!==this._$AH&&t!==I&&this.$(t):t._$litType$!==void 0?this.T(t):t.nodeType!==void 0?this.k(t):xs(t)?this.S(t):this.$(t)}M(t,s=this._$AB){return this._$AA.parentNode.insertBefore(t,s)}k(t){this._$AH!==t&&(this._$AR(),this._$AH=this.M(t))}$(t){this._$AH!==y&&Y(this._$AH)?this._$AA.nextSibling.data=t:this.k(F.createTextNode(t)),this._$AH=t}T(t){var s;const{values:n,_$litType$:r}=t,o=typeof r=="number"?this._$AC(t):(r.el===void 0&&(r.el=Q.createElement(r.h,this.options)),r);if(((s=this._$AH)===null||s===void 0?void 0:s._$AD)===o)this._$AH.m(n);else{const i=new Ds(o,this),c=i.p(this.options);i.m(n),this.k(c),this._$AH=i}}_$AC(t){let s=Ve.get(t.strings);return s===void 0&&Ve.set(t.strings,s=new Q(t)),s}S(t){Is(this._$AH)||(this._$AH=[],this._$AR());const s=this._$AH;let n,r=0;for(const o of t)r===s.length?s.push(n=new j(this.M(X()),this.M(X()),this,this.options)):n=s[r],n._$AI(o),r++;r<s.length&&(this._$AR(n&&n._$AB.nextSibling,r),s.length=r)}_$AR(t=this._$AA.nextSibling,s){var n;for((n=this._$AP)===null||n===void 0||n.call(this,!1,!0,s);t&&t!==this._$AB;){const r=t.nextSibling;t.remove(),t=r}}setConnected(t){var s;this._$AM===void 0&&(this._$Cg=t,(s=this._$AP)===null||s===void 0||s.call(this,t))}}class tt{constructor(t,s,n,r,o){this.type=1,this._$AH=y,this._$AN=void 0,this.element=t,this.name=s,this._$AM=r,this.options=o,n.length>2||n[0]!==""||n[1]!==""?(this._$AH=Array(n.length-1).fill(new String),this.strings=n):this._$AH=y}get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}_$AI(t,s=this,n,r){const o=this.strings;let i=!1;if(o===void 0)t=x(this,t,s,0),i=!Y(t)||t!==this._$AH&&t!==I,i&&(this._$AH=t);else{const c=t;let a,l;for(t=o[0],a=0;a<o.length-1;a++)l=x(this,c[n+a],s,a),l===I&&(l=this._$AH[a]),i||(i=!Y(l)||l!==this._$AH[a]),l===y?t=y:t!==y&&(t+=(l!=null?l:"")+o[a+1]),this._$AH[a]=l}i&&!r&&this.C(t)}C(t){t===y?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t!=null?t:"")}}class Ns extends tt{constructor(){super(...arguments),this.type=3}C(t){this.element[this.name]=t===y?void 0:t}}const vo=B?B.emptyScript:"";class ks extends tt{constructor(){super(...arguments),this.type=4}C(t){t&&t!==y?this.element.setAttribute(this.name,vo):this.element.removeAttribute(this.name)}}class Us extends tt{constructor(t,s,n,r,o){super(t,s,n,r,o),this.type=5}_$AI(t,s=this){var n;if((t=(n=x(this,t,s,0))!==null&&n!==void 0?n:y)===I)return;const r=this._$AH,o=t===y&&r!==y||t.capture!==r.capture||t.once!==r.once||t.passive!==r.passive,i=t!==y&&(r===y||o);o&&this.element.removeEventListener(this.name,this,r),i&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){var s,n;typeof this._$AH=="function"?this._$AH.call((n=(s=this.options)===null||s===void 0?void 0:s.host)!==null&&n!==void 0?n:this.element,t):this._$AH.handleEvent(t)}}class Hs{constructor(t,s,n){this.element=t,this.type=6,this._$AN=void 0,this._$AM=s,this.options=n}get _$AU(){return this._$AM._$AU}_$AI(t){x(this,t)}}const Ao={L:"$lit$",P:S,V:ce,I:1,N:Rs,R:Ds,j:xs,D:x,H:j,F:tt,O:ks,W:Us,B:Ns,Z:Hs},ze=window.litHtmlPolyfillSupport;ze==null||ze(Q,j),((Bt=globalThis.litHtmlVersions)!==null&&Bt!==void 0?Bt:globalThis.litHtmlVersions=[]).push("2.2.2");/**
|
|
14
|
-
* @license
|
|
15
|
-
* Copyright 2017 Google LLC
|
|
16
|
-
* SPDX-License-Identifier: BSD-3-Clause
|
|
17
|
-
*/const Bs={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},So=e=>(...t)=>({_$litDirective$:e,values:t});class Fs{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,s,n){this._$Ct=t,this._$AM=s,this._$Ci=n}_$AS(t,s){return this.update(t,s)}update(t,s){return this.render(...s)}}/**
|
|
18
|
-
* @license
|
|
19
|
-
* Copyright 2020 Google LLC
|
|
20
|
-
* SPDX-License-Identifier: BSD-3-Clause
|
|
21
|
-
*/const{H:$o}=Ao,We=()=>document.createComment(""),W=(e,t,s)=>{var n;const r=e._$AA.parentNode,o=t===void 0?e._$AB:t._$AA;if(s===void 0){const i=r.insertBefore(We(),o),c=r.insertBefore(We(),o);s=new $o(i,c,e,e.options)}else{const i=s._$AB.nextSibling,c=s._$AM,a=c!==e;if(a){let l;(n=s._$AQ)===null||n===void 0||n.call(s,e),s._$AM=e,s._$AP!==void 0&&(l=e._$AU)!==c._$AU&&s._$AP(l)}if(i!==o||a){let l=s._$AA;for(;l!==i;){const f=l.nextSibling;r.insertBefore(l,o),l=f}}}return s},M=(e,t,s=e)=>(e._$AI(t,s),e),bo={},Co=(e,t=bo)=>e._$AH=t,Eo=e=>e._$AH,Ft=e=>{var t;(t=e._$AP)===null||t===void 0||t.call(e,!1,!0);let s=e._$AA;const n=e._$AB.nextSibling;for(;s!==n;){const r=s.nextSibling;s.remove(),s=r}};/**
|
|
22
|
-
* @license
|
|
23
|
-
* Copyright 2017 Google LLC
|
|
24
|
-
* SPDX-License-Identifier: BSD-3-Clause
|
|
25
|
-
*/const Ze=(e,t,s)=>{const n=new Map;for(let r=t;r<=s;r++)n.set(e[r],r);return n},js=So(class extends Fs{constructor(e){if(super(e),e.type!==Bs.CHILD)throw Error("repeat() can only be used in text expressions")}dt(e,t,s){let n;s===void 0?s=t:t!==void 0&&(n=t);const r=[],o=[];let i=0;for(const c of e)r[i]=n?n(c,i):i,o[i]=s(c,i),i++;return{values:o,keys:r}}render(e,t,s){return this.dt(e,t,s).values}update(e,[t,s,n]){var r;const o=Eo(e),{values:i,keys:c}=this.dt(t,s,n);if(!Array.isArray(o))return this.ut=c,i;const a=(r=this.ut)!==null&&r!==void 0?r:this.ut=[],l=[];let f,u,d=0,h=o.length-1,p=0,m=i.length-1;for(;d<=h&&p<=m;)if(o[d]===null)d++;else if(o[h]===null)h--;else if(a[d]===c[p])l[p]=M(o[d],i[p]),d++,p++;else if(a[h]===c[m])l[m]=M(o[h],i[m]),h--,m--;else if(a[d]===c[m])l[m]=M(o[d],i[m]),W(e,l[m+1],o[d]),d++,m--;else if(a[h]===c[p])l[p]=M(o[h],i[p]),W(e,o[d],o[h]),h--,p++;else if(f===void 0&&(f=Ze(c,p,m),u=Ze(a,d,h)),f.has(a[d]))if(f.has(a[h])){const g=u.get(c[p]),st=g!==void 0?o[g]:null;if(st===null){const Ct=W(e,o[d]);M(Ct,i[p]),l[p]=Ct}else l[p]=M(st,i[p]),W(e,o[d],st),o[g]=null;p++}else Ft(o[h]),h--;else Ft(o[d]),d++;for(;p<=m;){const g=W(e,l[m+1]);M(g,i[p]),l[p++]=g}for(;d<=h;){const g=o[d++];g!==null&&Ft(g)}return this.ut=c,Co(e,l),I}});/**
|
|
26
|
-
* @license
|
|
27
|
-
* Copyright 2018 Google LLC
|
|
28
|
-
* SPDX-License-Identifier: BSD-3-Clause
|
|
29
|
-
*/const v=e=>e!=null?e:y;/**
|
|
30
|
-
* @license
|
|
31
|
-
* Copyright 2017 Google LLC
|
|
32
|
-
* SPDX-License-Identifier: BSD-3-Clause
|
|
33
|
-
*/class qe extends Fs{constructor(t){if(super(t),this.it=y,t.type!==Bs.CHILD)throw Error(this.constructor.directiveName+"() can only be used in child bindings")}render(t){if(t===y||t==null)return this.ft=void 0,this.it=t;if(t===I)return t;if(typeof t!="string")throw Error(this.constructor.directiveName+"() called with a non-string value");if(t===this.it)return this.ft;this.it=t;const s=[t];return s.raw=s,this.ft={_$litType$:this.constructor.resultType,strings:s,values:[]}}}qe.directiveName="unsafeHTML",qe.resultType=1;const w=(e,...t)=>{const s=b("LitStatic");return(s?s.html:_o)(e,...t)},et=(e,t,s,n,r)=>{const o=b("OpenUI5Enablement");o&&!n&&(e=o.wrapTemplateResultInBusyMarkup(w,r.host,e)),typeof s=="string"?e=w`<style>${s}</style>${e}`:Array.isArray(s)&&s.length&&(e=w`${s.map(i=>w`<link type="text/css" rel="stylesheet" href="${i}">`)}${e}`),wo(e,t,r)},To={tag:"ui5-test-generic",properties:{strProp:{type:String},boolProp:{type:Boolean},objectProp:{type:Object},noAttributeProp:{type:String,noAttribute:!0},multiProp:{type:String,multiple:!0},defaultValueProp:{type:String,defaultValue:"Hello"}},managedSlots:!0,slots:{default:{type:Node},other:{type:HTMLElement},individual:{type:HTMLElement,individualSlots:!0},named:{type:HTMLElement,propertyName:"items"}}};class Vs extends E{static get metadata(){return To}static get render(){return et}static get template(){return t=>w`<div><p>
|
|
34
|
-
<slot></slot>
|
|
35
|
-
<slot name="other"></slot>
|
|
36
|
-
<slot name="individual-1"></slot>
|
|
37
|
-
<slot name="individual-2"></slot>
|
|
38
|
-
</p></div>`}static get styles(){return`:host {
|
|
39
|
-
display: inline-block;
|
|
40
|
-
border: 1px solid black;
|
|
41
|
-
color: var(--var1);
|
|
42
|
-
}`}onBeforeRendering(){}onAfterRendering(){}onEnterDOM(){}onExitDOM(){}}Vs.define();const Lo={tag:"ui5-test-no-shadow"};class Mo extends E{static get metadata(){return Lo}}Mo.define();const Po={tag:"ui5-test-parent",managedSlots:!0,slots:{default:{type:Node,invalidateOnChildChange:{properties:["prop1"]}},items:{type:HTMLElement,invalidateOnChildChange:{properties:!0}}}};class Io extends E{static get metadata(){return Po}static get render(){return et}static get template(){return t=>w`<div>
|
|
43
|
-
<slot></slot>
|
|
44
|
-
</div>`}}Io.define();const xo={tag:"ui5-test-child",properties:{prop1:{type:String},prop2:{type:String},prop3:{type:String}}};class Oo extends E{static get metadata(){return xo}static get render(){return et}static get template(){return t=>w`<div></div>`}}Oo.define();const Ro={tag:"ui5-with-static-area",properties:{staticContent:{type:Boolean}},slots:{}};class Do extends E{static get metadata(){return Ro}static get render(){return et}static get template(){return t=>w`
|
|
45
|
-
<div dir=${t.effectiveDir}>
|
|
46
|
-
WithStaticArea works!
|
|
47
|
-
</div>`}static get staticAreaTemplate(){return t=>w`
|
|
48
|
-
<div class="ui5-with-static-area-content">
|
|
49
|
-
Static area content.
|
|
50
|
-
</div>`}static get styles(){return`
|
|
51
|
-
:host {
|
|
52
|
-
display: inline-block;
|
|
53
|
-
border: 1px solid black;
|
|
54
|
-
color: red;
|
|
55
|
-
}`}async addStaticArea(){if(!this.staticContent)return;const t=await this.getStaticAreaItemDomRef();return this.responsivePopover=t.querySelector(".ui5-with-static-area-content"),this.responsivePopover}onBeforeRendering(){this.addStaticArea()}onAfterRendering(){}onEnterDOM(){}onExitDOM(){}}Do.define();const No=(e,t,s)=>w`<div>Root text: ${v(e.text)}${js(e.items,(n,r)=>n._id||r,(n,r)=>ko(n,r,e))} Root text: ${v(e.text)}</div>`,ko=(e,t,s,n,r)=>w`<h3>Item-${t}</h3>${e.text?Uo(e,t,s):void 0}<ul>${js(e.words,(o,i)=>o._id||i,(o,i)=>Ho(o,i,s))}</ul>${e.text?Bo(e,t,s):void 0}`,Uo=(e,t,s,n,r)=>w`<div class="before-each-content--start--${t}">Root text: ${v(s.text)}, Item text: ${v(e.text)}</div>`,Ho=(e,t,s,n,r)=>w`<li><h3>Word-${t}</h3><div class="nested-each-content--${t}--0">Root Text: ${v(s.text)}, Word text: ${v(e.text)}</div><div class="nested-each-content--${t}--1">Root Text: ${v(s.text)}, Word text: ${v(e.text)}</div></li>`,Bo=(e,t,s,n,r)=>w`<div class="after-each-content--end--${t}">Root text: ${v(s.text)}, Item text: ${v(e.text)}</div>`;class Fo extends E{static get metadata(){return{tag:"ui5-test-complex-template"}}static get render(){return et}static get template(){return No}get text(){return"root"}get items(){return[{text:"positives",words:[{text:"word1_good"},{text:"word2_nice"},{text:"word3_kind"}]},{text:"negatives",words:[{text:"word4_bad"},{text:"word5_rude"},{text:"word6_unpolite"}]}]}}Fo.define();const jo={tag:"ui5-test-generic-ext",properties:{extProp:{type:String},strProp:{defaultValue:"Ext"}},slots:{extSlot:{type:HTMLElement}}};class Vo extends Vs{static get metadata(){return jo}}Vo.define();const zo={content:":root{ --var1: red; }",packageName:"",fileName:""},Wo={content:":root{ --var1: green; }",packageName:"",fileName:""},Zo={content:":root{ --var1: blue; }",packageName:"",fileName:""},qo={content:":root{ --var1: orange; }",packageName:"",fileName:""},Go={content:":root{ --var1: orange; }",packageName:"",fileName:""},Ko={content:":root{ --var1: yellow; }",packageName:"",fileName:""},Jo={content:":root{ --var1: yellow; }",packageName:"",fileName:""};T("@ui5/webcomponents-base-test","sap_fiori_3",()=>zo);T("@ui5/webcomponents-base-test","sap_fiori_3_dark",()=>Wo);T("@ui5/webcomponents-base-test","sap_belize",()=>Zo);T("@ui5/webcomponents-base-test","sap_belize_hcb",()=>qo);T("@ui5/webcomponents-base-test","sap_belize_hcw",()=>Go);T("@ui5/webcomponents-base-test","sap_fiori_3_hcb",()=>Ko);T("@ui5/webcomponents-base-test","sap_fiori_3_hcw",()=>Jo);const Xo=/('')|'([^']+(?:''[^']*)*)(?:'|$)|\{([0-9]+(?:\s*,[^{}]*)?)\}|[{}]/g,Yo=(e,t)=>(t=t||[],e.replace(Xo,(s,n,r,o,i)=>{if(n)return"'";if(r)return r.replace(/''/g,"'");if(o){const c=typeof o=="string"?parseInt(o):o;return String(t[c])}throw new Error(`[i18n]: pattern syntax error at pos ${i}`)})),jt=new Map;class Qo{constructor(t){this.packageName=t}getText(t,...s){if(typeof t=="string"&&(t={key:t,defaultText:t}),!t||!t.key)return"";const n=qn(this.packageName);n&&!n[t.key]&&console.warn(`Key ${t.key} not found in the i18n bundle, the default text will be used`);const r=n&&n[t.key]?n[t.key]:t.defaultText||t.key;return Yo(r,s)}}const ti=e=>{if(jt.has(e))return jt.get(e);const t=new Qo(e);return jt.set(e,t),t},ei=async e=>(await fs(e),ti(e)),si=typeof window.chrome=="object"||typeof window.v8=="object"?(e,t)=>(t>2&&40*t>e.length,e):e=>e,ni=/(?:\r\n|\r|\n|^)[ \t\f]*/,ri=/(\\u[0-9a-fA-F]{0,4})|(\\.)|(\\$)|([ \t\f]*[ \t\f:=][ \t\f]*)/g,oi=/(\\u[0-9a-fA-F]{0,4})|(\\.)|(\\$)/g,ii={"\\f":"\f","\\n":`
|
|
56
|
-
`,"\\r":"\r","\\t":" "},ai=e=>{const t={},s=e.split(ni);let n,r,o,i,c,a,l,f;const u=d=>{i?(i=`${i}${d}`,f++):(i=d,f=0)};for(c=0;c<s.length;c++)if(n=s[c],!(n===""||n.charAt(0)==="#"||n.charAt(0)==="!")){for(r=ri,l=0,r.lastIndex=l,o=null,i="",a=r.exec(n);a!==null;){if(l<a.index&&u(n.slice(l,a.index)),l=r.lastIndex,a[1]){if(a[1].length!==6)throw new Error(`Incomplete Unicode Escape '${a[1]}'`);u(String.fromCharCode(parseInt(a[1].slice(2),16)))}else a[2]?u(ii[a[2]]||a[2].slice(1)):a[3]?(n=s[++c],l=0,r.lastIndex=l):a[4]&&(o=i,i="",r=oi,r.lastIndex=l);a=r.exec(n)}l<n.length&&u(n.slice(l)),o==null&&(o=i,i=""),t[o]=si(i,i?f:0)}return t};let Vt;const ci=()=>(Vt===void 0&&(Vt=sn()),Vt);var Xt;(function(e){e.Gregorian="Gregorian",e.Islamic="Islamic",e.Japanese="Japanese",e.Buddhist="Buddhist",e.Persian="Persian"})(Xt||(Xt={}));var Ge=Xt;let Z;const li=()=>(Z===void 0&&(Z=un()),Z&&Z in Ge?Z:Ge.Gregorian);let zt;const ui=()=>(zt===void 0&&(zt=dn()),zt.firstDayOfWeek),di=new O,hi="directionChange",fi=()=>di.fireEvent(hi,void 0),pi=async()=>{const e=fi();await Promise.all(e),await vt({rtlAware:!0})};window.registerThemePropertiesLoader=T;window["sap-ui-webcomponents-bundle"]={configuration:{getAnimationMode:ci,getLanguage:se,setLanguage:Un,getTheme:bt,setTheme:Ss,getNoConflict:ae,setNoConflict:ho,getCalendarType:li,getRTL:Ms,getFirstDayOfWeek:ui},getIconNames:Er,parseProperties:ai,registerI18nLoader:Zn,getI18nBundle:ei,renderFinished:ee,applyDirection:pi,EventProvider:O};
|