@ui5/webcomponents-base 0.0.0-cf069fb29 → 0.0.0-cf50976ce
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/.eslintignore +0 -1
- package/CHANGELOG.md +173 -0
- package/README.md +28 -6
- package/bundle.esm.js +7 -9
- package/dist/Boot.js +3 -5
- package/dist/CustomElementsRegistry.js +1 -1
- package/dist/CustomElementsScope.js +20 -98
- package/dist/CustomElementsScopeUtils.js +108 -0
- package/dist/Device.js +5 -0
- package/dist/Keys.js +24 -0
- package/dist/StaticAreaItem.js +1 -1
- package/dist/UI5Element.js +24 -2
- package/dist/UI5ElementMetadata.js +1 -1
- package/dist/asset-registries/Icons.js +4 -8
- package/dist/asset-registries/LocaleData.js +7 -2
- package/dist/asset-registries/Themes.js +6 -2
- package/dist/asset-registries/i18n.js +3 -1
- package/dist/assets/bundle.esm.83f057b4.js +43 -0
- package/dist/config/Icons.js +52 -0
- package/dist/config/Theme.js +11 -0
- package/dist/css/BusyIndicator.css +80 -0
- package/dist/css/FontFace.css +31 -10
- package/dist/delegate/ItemNavigation.js +9 -4
- package/dist/features/F6Navigation.js +4 -0
- package/dist/features/OpenUI5Enablement.js +119 -0
- package/dist/generated/AssetParameters.js +1 -1
- package/dist/generated/VersionInfo.js +3 -3
- package/dist/generated/css/BusyIndicator.css.js +5 -0
- package/dist/generated/css/FontFace.css.js +1 -1
- package/dist/i18nBundle.js +1 -1
- package/dist/renderer/LitRenderer.js +29 -11
- package/dist/renderer/executeTemplate.js +19 -2
- package/dist/sap/ui/thirdparty/caja-html-sanitizer.js +1 -1
- package/dist/theming/getEffectiveLinksHrefs.js +7 -0
- package/dist/theming/getEffectiveStyle.js +9 -0
- package/dist/types/DOMReference.js +24 -0
- package/dist/updateShadowRoot.js +2 -3
- package/dist/util/AriaLabelHelper.js +2 -4
- package/dist/util/Caret.js +1 -14
- package/dist/util/ColorConversion.js +30 -2
- package/dist/util/InvisibleMessage.js +20 -9
- package/dist/util/TabbableElements.js +4 -0
- package/dist/util/getEffectiveScrollbarStyle.js +5 -0
- package/dist/util/getNormalizedTarget.js +16 -0
- package/dist/util/isDefaultSlotProvided.js +11 -0
- package/hash.txt +1 -1
- package/lib/generate-asset-parameters/index.js +8 -4
- package/lib/generate-styles/index.js +17 -9
- package/lib/generate-version-info/index.js +18 -13
- package/package-scripts.js +16 -27
- package/package.json +7 -6
- package/src/Boot.js +3 -5
- package/src/CustomElementsRegistry.js +1 -1
- package/src/CustomElementsScope.js +20 -98
- package/src/CustomElementsScopeUtils.js +108 -0
- package/src/Device.js +5 -0
- package/src/Keys.js +24 -0
- package/src/StaticAreaItem.js +1 -1
- package/src/UI5Element.js +24 -2
- package/src/UI5ElementMetadata.js +1 -1
- package/src/asset-registries/Icons.js +4 -8
- package/src/asset-registries/LocaleData.js +7 -2
- package/src/asset-registries/Themes.js +6 -2
- package/src/asset-registries/i18n.js +3 -1
- package/src/config/Icons.js +52 -0
- package/src/config/Theme.js +11 -0
- package/src/css/BusyIndicator.css +80 -0
- package/src/css/FontFace.css +31 -10
- package/src/delegate/ItemNavigation.js +9 -4
- package/src/features/F6Navigation.js +4 -0
- package/src/features/OpenUI5Enablement.js +119 -0
- package/src/i18nBundle.js +1 -1
- package/src/renderer/LitRenderer.js +29 -11
- package/src/renderer/executeTemplate.js +19 -2
- package/src/theming/getEffectiveLinksHrefs.js +7 -0
- package/src/theming/getEffectiveStyle.js +9 -0
- package/src/types/DOMReference.js +24 -0
- package/src/updateShadowRoot.js +2 -3
- package/src/util/AriaLabelHelper.js +2 -4
- package/src/util/Caret.js +1 -14
- package/src/util/ColorConversion.js +30 -2
- package/src/util/InvisibleMessage.js +20 -9
- package/src/util/TabbableElements.js +4 -0
- package/src/util/getEffectiveScrollbarStyle.js +5 -0
- package/src/util/getNormalizedTarget.js +16 -0
- package/src/util/isDefaultSlotProvided.js +11 -0
- package/config/.eslintrc.js +0 -3
- package/config/rollup.config.js +0 -1
- package/dist/isLegacyBrowser.js +0 -3
- package/dist/resources/bundle.esm.js +0 -37
- package/dist/resources/bundle.esm.js.map +0 -1
- package/dist/test-resources/assets/Themes.js +0 -17
- package/dist/test-resources/elements/Child.js +0 -35
- package/dist/test-resources/elements/Generic.js +0 -84
- package/dist/test-resources/elements/GenericExt.js +0 -26
- package/dist/test-resources/elements/NoShadowDOM.js +0 -13
- package/dist/test-resources/elements/Parent.js +0 -41
- package/dist/test-resources/elements/WithStaticArea.js +0 -77
- package/dist/test-resources/pages/AllTestElements.html +0 -42
- package/dist/test-resources/pages/Configuration.html +0 -18
- package/dist/test-resources/pages/ConfigurationScript.html +0 -34
- package/dist/test-resources/pages/assets/messagebundle_de.properties +0 -1
- package/dist/test-resources/pages/assets/messagebundle_en.properties +0 -1
- package/dist/test-resources/pages/assets/messagebundle_es.properties +0 -1
- package/dist/test-resources/pages/assets/messagebundle_fr.properties +0 -1
- package/dist/test-resources/pages/i18n.html +0 -33
- package/dist/test-resources/specs/ConfigurationChange.spec.js +0 -27
- package/dist/test-resources/specs/ConfigurationScript.spec.js +0 -63
- package/dist/test-resources/specs/ConfigurationURL.spec.js +0 -93
- package/dist/test-resources/specs/CustomTheme.spec.js +0 -27
- package/dist/test-resources/specs/EventProvider.spec.js +0 -63
- package/dist/test-resources/specs/StaticArea.spec.js +0 -78
- package/dist/test-resources/specs/Theming.spec.js +0 -33
- package/dist/test-resources/specs/UI5ElementInvalidation.js +0 -242
- package/dist/test-resources/specs/UI5ElementLifecycle.js +0 -98
- package/dist/test-resources/specs/UI5ElementListenForChildPropChanges.spec.js +0 -75
- package/dist/test-resources/specs/UI5ElementMetadataExt.js +0 -42
- package/dist/test-resources/specs/UI5ElementPropertyValidation.js +0 -14
- package/dist/test-resources/specs/UI5ElementPropsAndAttrs.spec.js +0 -67
- package/dist/test-resources/specs/UI5ElementShadowDOM.js +0 -24
- package/dist/test-resources/specs/UI5ElementSlots.js +0 -36
- package/dist/util/findNodeOwner.js +0 -35
- package/src/isLegacyBrowser.js +0 -3
- package/src/util/findNodeOwner.js +0 -35
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import DataType from "./DataType.js";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @class
|
|
5
|
+
* DOM Element reference or ID.
|
|
6
|
+
* <b>Note:</b> If an ID is passed, it is expected to be part of the same <code>document</code> element as the consuming component.
|
|
7
|
+
*
|
|
8
|
+
* @public
|
|
9
|
+
*/
|
|
10
|
+
class DOMReference extends DataType {
|
|
11
|
+
static isValid(value) {
|
|
12
|
+
return (typeof value === "string" || value instanceof HTMLElement);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
static propertyToAttribute(propertyValue) {
|
|
16
|
+
if (propertyValue instanceof HTMLElement) {
|
|
17
|
+
return null;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
return propertyValue;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export default DOMReference;
|
package/src/updateShadowRoot.js
CHANGED
|
@@ -2,7 +2,6 @@ import executeTemplate from "./renderer/executeTemplate.js";
|
|
|
2
2
|
import getConstructableStyle from "./theming/getConstructableStyle.js";
|
|
3
3
|
import getEffectiveStyle from "./theming/getEffectiveStyle.js";
|
|
4
4
|
import getEffectiveLinksHrefs from "./theming/getEffectiveLinksHrefs.js";
|
|
5
|
-
import isLegacyBrowser from "./isLegacyBrowser.js";
|
|
6
5
|
import { shouldUseLinks } from "./CSP.js";
|
|
7
6
|
|
|
8
7
|
/**
|
|
@@ -20,11 +19,11 @@ const updateShadowRoot = (element, forStaticArea = false) => {
|
|
|
20
19
|
styleStrOrHrefsArr = getEffectiveLinksHrefs(element.constructor, forStaticArea);
|
|
21
20
|
} else if (document.adoptedStyleSheets) { // Chrome
|
|
22
21
|
shadowRoot.adoptedStyleSheets = getConstructableStyle(element.constructor, forStaticArea);
|
|
23
|
-
} else
|
|
22
|
+
} else { // FF, Safari
|
|
24
23
|
styleStrOrHrefsArr = getEffectiveStyle(element.constructor, forStaticArea);
|
|
25
24
|
}
|
|
26
25
|
|
|
27
|
-
element.constructor.render(renderResult, shadowRoot, styleStrOrHrefsArr, { host: element });
|
|
26
|
+
element.constructor.render(renderResult, shadowRoot, styleStrOrHrefsArr, forStaticArea, { host: element });
|
|
28
27
|
};
|
|
29
28
|
|
|
30
29
|
export default updateShadowRoot;
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import findNodeOwner from "./findNodeOwner.js";
|
|
2
|
-
|
|
3
1
|
const getEffectiveAriaLabelText = el => {
|
|
4
2
|
if (!el.accessibleNameRef) {
|
|
5
3
|
if (el.accessibleName) {
|
|
@@ -15,12 +13,12 @@ const getEffectiveAriaLabelText = el => {
|
|
|
15
13
|
/**
|
|
16
14
|
*
|
|
17
15
|
* @param {HTMLElement} el Defines the HTMLElement, for which you need to get all related texts
|
|
18
|
-
* @param {HTMLElement} ownerDocument (Optional) Defines the
|
|
16
|
+
* @param {Document|HTMLElement} ownerDocument (Optional) Defines the document or element where you want to search for the texts
|
|
19
17
|
* @param {String} readyIds (Optional) Defines a string of elements ids. The text of these elements will be returned. If used you should provide either el or ownerDocument
|
|
20
18
|
*/
|
|
21
19
|
const getAriaLabelledByTexts = (el, ownerDocument, readyIds = "") => {
|
|
22
20
|
const ids = (readyIds && readyIds.split(" ")) || el.accessibleNameRef.split(" ");
|
|
23
|
-
const owner = ownerDocument ||
|
|
21
|
+
const owner = ownerDocument || el.getRootNode();
|
|
24
22
|
let result = "";
|
|
25
23
|
|
|
26
24
|
ids.forEach((elementId, index) => {
|
package/src/util/Caret.js
CHANGED
|
@@ -6,20 +6,7 @@ const getCaretPosition = field => {
|
|
|
6
6
|
// Initialize
|
|
7
7
|
let caretPos = 0;
|
|
8
8
|
|
|
9
|
-
//
|
|
10
|
-
if (document.selection) {
|
|
11
|
-
// Set focus on the element
|
|
12
|
-
field.focus();
|
|
13
|
-
|
|
14
|
-
// To get cursor position, get empty selection range
|
|
15
|
-
const selection = document.selection.createRange();
|
|
16
|
-
|
|
17
|
-
// Move selection start to 0 position
|
|
18
|
-
selection.moveStart("character", -field.value.length);
|
|
19
|
-
|
|
20
|
-
// The caret position is selection length
|
|
21
|
-
caretPos = selection.text.length;
|
|
22
|
-
} else if (field.selectionStart || field.selectionStart === "0") { // Firefox support
|
|
9
|
+
if (field.selectionStart || field.selectionStart === "0") { // Firefox support
|
|
23
10
|
caretPos = field.selectionDirection === "backward" ? field.selectionStart : field.selectionEnd;
|
|
24
11
|
}
|
|
25
12
|
|
|
@@ -163,7 +163,7 @@ const getRGBColor = color => {
|
|
|
163
163
|
}
|
|
164
164
|
|
|
165
165
|
if (color.startsWith("rgb")) {
|
|
166
|
-
return
|
|
166
|
+
return RGBStringToRGBObject(color);
|
|
167
167
|
}
|
|
168
168
|
|
|
169
169
|
// HEX
|
|
@@ -209,7 +209,7 @@ const RGBAToRGB = color => {
|
|
|
209
209
|
* Return an object with the properties for each of the main colors(red, green, blue)
|
|
210
210
|
* @param {String} color Receives a color in the following format: "rgb(0, 0, 0)
|
|
211
211
|
*/
|
|
212
|
-
const
|
|
212
|
+
const RGBStringToRGBObject = color => {
|
|
213
213
|
const openingBracketIndex = color.indexOf("("),
|
|
214
214
|
closingBraketIndex = color.indexOf(")"),
|
|
215
215
|
commasIndexes = [];
|
|
@@ -319,6 +319,32 @@ const HEXToRGB = hex => {
|
|
|
319
319
|
return rgbValues;
|
|
320
320
|
};
|
|
321
321
|
|
|
322
|
+
/**
|
|
323
|
+
* Returns the hex value of the color as string
|
|
324
|
+
* @param {Object} color Receives an object with the properties for each of the main colors(r, g, b)
|
|
325
|
+
*/
|
|
326
|
+
const RGBtoHEX = color => {
|
|
327
|
+
const hexMap = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E"];
|
|
328
|
+
let hexValue = "#";
|
|
329
|
+
|
|
330
|
+
let divisionNumber = color.r / 16;
|
|
331
|
+
let remainder = color.r % 16;
|
|
332
|
+
hexValue += String(hexMap[Math.floor(divisionNumber)]);
|
|
333
|
+
hexValue += String(hexMap[remainder]);
|
|
334
|
+
|
|
335
|
+
divisionNumber = color.g / 16;
|
|
336
|
+
remainder = color.g % 16;
|
|
337
|
+
hexValue += String(hexMap[Math.floor(divisionNumber)]);
|
|
338
|
+
hexValue += String(hexMap[remainder]);
|
|
339
|
+
|
|
340
|
+
divisionNumber = color.b / 16;
|
|
341
|
+
remainder = color.b % 16;
|
|
342
|
+
hexValue += String(hexMap[Math.floor(divisionNumber)]);
|
|
343
|
+
hexValue += String(hexMap[remainder]);
|
|
344
|
+
|
|
345
|
+
return hexValue;
|
|
346
|
+
};
|
|
347
|
+
|
|
322
348
|
const RGBToHSL = (color = {
|
|
323
349
|
r: undefined,
|
|
324
350
|
g: undefined,
|
|
@@ -367,4 +393,6 @@ export {
|
|
|
367
393
|
HSLToRGB,
|
|
368
394
|
HEXToRGB,
|
|
369
395
|
RGBToHSL,
|
|
396
|
+
RGBStringToRGBObject,
|
|
397
|
+
RGBtoHEX,
|
|
370
398
|
};
|
|
@@ -5,18 +5,20 @@ import { attachBoot } from "../Boot.js";
|
|
|
5
5
|
let politeSpan;
|
|
6
6
|
let assertiveSpan;
|
|
7
7
|
|
|
8
|
+
const setOutOfViewportStyles = el => {
|
|
9
|
+
el.style.position = "absolute";
|
|
10
|
+
el.style.clip = "rect(1px,1px,1px,1px)";
|
|
11
|
+
el.style.userSelect = "none";
|
|
12
|
+
el.style.left = "-1000px";
|
|
13
|
+
el.style.top = "-1000px";
|
|
14
|
+
el.style.pointerEvents = "none";
|
|
15
|
+
};
|
|
16
|
+
|
|
8
17
|
attachBoot(() => {
|
|
9
18
|
if (politeSpan && assertiveSpan) {
|
|
10
19
|
return;
|
|
11
20
|
}
|
|
12
21
|
|
|
13
|
-
const styles = `position: absolute;
|
|
14
|
-
clip: rect(1px,1px,1px,1px);
|
|
15
|
-
user-select: none;
|
|
16
|
-
left: -1000px;
|
|
17
|
-
top: -1000px;
|
|
18
|
-
pointer-events: none;`;
|
|
19
|
-
|
|
20
22
|
politeSpan = document.createElement("span");
|
|
21
23
|
assertiveSpan = document.createElement("span");
|
|
22
24
|
|
|
@@ -29,8 +31,8 @@ attachBoot(() => {
|
|
|
29
31
|
politeSpan.setAttribute("role", "alert");
|
|
30
32
|
assertiveSpan.setAttribute("role", "alert");
|
|
31
33
|
|
|
32
|
-
politeSpan
|
|
33
|
-
assertiveSpan
|
|
34
|
+
setOutOfViewportStyles(politeSpan);
|
|
35
|
+
setOutOfViewportStyles(assertiveSpan);
|
|
34
36
|
|
|
35
37
|
getSingletonElementInstance("ui5-static-area").appendChild(politeSpan);
|
|
36
38
|
getSingletonElementInstance("ui5-static-area").appendChild(assertiveSpan);
|
|
@@ -41,6 +43,7 @@ attachBoot(() => {
|
|
|
41
43
|
*
|
|
42
44
|
* @param {string} message String to be announced by the screen reader.
|
|
43
45
|
* @param {sap.ui.core.InvisibleMessageMode} mode The mode to be inserted in the aria-live attribute.
|
|
46
|
+
* @public
|
|
44
47
|
*/
|
|
45
48
|
const announce = (message, mode) => {
|
|
46
49
|
// If no type is presented, fallback to polite announcement.
|
|
@@ -53,6 +56,14 @@ const announce = (message, mode) => {
|
|
|
53
56
|
if (mode !== InvisibleMessageMode.Assertive && mode !== InvisibleMessageMode.Polite) {
|
|
54
57
|
console.warn(`You have entered an invalid mode. Valid values are: "Polite" and "Assertive". The framework will automatically set the mode to "Polite".`); // eslint-disable-line
|
|
55
58
|
}
|
|
59
|
+
|
|
60
|
+
// clear the span in order to avoid reading it out while in JAWS reading node
|
|
61
|
+
setTimeout(() => {
|
|
62
|
+
// ensure that we clear the text node only if no announce is made in the meantime
|
|
63
|
+
if (span.textContent === message) {
|
|
64
|
+
span.textContent = "";
|
|
65
|
+
}
|
|
66
|
+
}, 3000);
|
|
56
67
|
};
|
|
57
68
|
|
|
58
69
|
export default announce;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Returns the normalized event target in cases when it has shadow root.
|
|
3
|
+
* @param {Object} target The original event target
|
|
4
|
+
* @returns {Object} The normalized target
|
|
5
|
+
*/
|
|
6
|
+
const getNormalizedTarget = target => {
|
|
7
|
+
let element = target;
|
|
8
|
+
|
|
9
|
+
if (target.shadowRoot && target.shadowRoot.activeElement) {
|
|
10
|
+
element = target.shadowRoot.activeElement;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
return element;
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
export default getNormalizedTarget;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { getSlotName } from "./SlotsHelper.js";
|
|
2
|
+
|
|
3
|
+
const isDefaultSlotProvided = element => {
|
|
4
|
+
return Array.from(element.childNodes).filter(node => {
|
|
5
|
+
return node.nodeType !== Node.COMMENT_NODE
|
|
6
|
+
&& getSlotName(node) === "default"
|
|
7
|
+
&& (node.nodeType !== Node.TEXT_NODE || node.nodeValue.trim().length !== 0);
|
|
8
|
+
}).length > 0;
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
export default isDefaultSlotProvided;
|
package/config/.eslintrc.js
DELETED
package/config/rollup.config.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
module.exports = require("@ui5/webcomponents-tools/components-package/rollup.js");
|
package/dist/isLegacyBrowser.js
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
const t={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","sv","th","tr","uk","vi","zh_CN","zh_HK","zh_SG","zh_TW"]},e={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_exp"]}.default,s={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"]}.default,n=t.default,i=t.all;var a=()=>{const t=navigator.languages;return t&&t[0]||navigator.language||navigator.userLanguage||navigator.browserLanguage||s},r={},o=r.hasOwnProperty,l=r.toString,c=o.toString,d=c.call(Object),h=function(t){var e,s;return!(!t||"[object Object]"!==l.call(t))&&(!(e=Object.getPrototypeOf(t))||"function"==typeof(s=o.call(e,"constructor")&&e.constructor)&&c.call(s)===d)},u=Object.create(null),p=function(){var t,e,s,n,i,a,r=arguments[2]||{},o=3,l=arguments.length,c=arguments[0]||!1,d=arguments[1]?void 0:u;for("object"!=typeof r&&"function"!=typeof r&&(r={});o<l;o++)if(null!=(i=arguments[o]))for(n in i)t=r[n],s=i[n],"__proto__"!==n&&r!==s&&(c&&s&&(h(s)||(e=Array.isArray(s)))?(e?(e=!1,a=t&&Array.isArray(t)?t:[]):a=t&&h(t)?t:{},r[n]=p(c,arguments[1],a,s)):s!==d&&(r[n]=s));return r},g=function(){var t=[!0,!1];return t.push.apply(t,arguments),p.apply(null,t)};const f=new Map,m=t=>f.get(t);let y=!1,_={animationMode:"full",theme:e,rtl:null,language:null,calendarType:null,noConflict:!1,formatSettings:{},fetchDefaultLanguage:!1};const v=new Map;v.set("true",!0),v.set("false",!1);const w=(t,e,s)=>{const n=e.toLowerCase(),i=t.split(`${s}-`)[1];v.has(e)&&(e=v.get(n)),e=((t,e)=>"theme"===t&&e.includes("@")?e.split("@")[0]:e)(i,e),_[i]=e},A=()=>{y||((()=>{const t=document.querySelector("[data-ui5-config]")||document.querySelector("[data-id='sap-ui-config']");let e;if(t){try{e=JSON.parse(t.innerHTML)}catch(t){console.warn("Incorrect data-sap-ui-config format. Please use JSON")}e&&(_=g(_,e))}})(),(()=>{const t=new URLSearchParams(window.location.search);t.forEach(((t,e)=>{const s=e.split("sap-").length;0!==s&&s!==e.split("sap-ui-").length&&w(e,t,"sap")})),t.forEach(((t,e)=>{e.startsWith("sap-ui")&&w(e,t,"sap-ui")}))})(),(()=>{const t=m("OpenUI5Support");if(!t||!t.isLoaded())return;const e=t.getConfigurationSettingsObject();_=g(_,e)})(),y=!0)};class b{constructor(){this._eventRegistry=new Map}attachEvent(t,e){const s=this._eventRegistry,n=s.get(t);Array.isArray(n)?n.includes(e)||n.push(e):s.set(t,[e])}detachEvent(t,e){const s=this._eventRegistry,n=s.get(t);if(!n)return;const i=n.indexOf(e);-1!==i&&n.splice(i,1),0===n.length&&s.delete(t)}fireEvent(t,e){const s=this._eventRegistry.get(t);return s?s.map((t=>t.call(this,e))):[]}fireEventAsync(t,e){return Promise.all(this.fireEvent(t,e))}isHandlerAttached(t,e){const s=this._eventRegistry.get(t);return!!s&&s.includes(e)}hasListeners(t){return!!this._eventRegistry.get(t)}}const $=new b,S=t=>{$.attachEvent("languageChange",t)};const C=t=>{const e=[];return t.forEach((t=>{e.push(t)})),e},E=(t,e=document.body)=>{let s=document.querySelector(t);return s||(s=document.createElement(t),e.insertBefore(s,e.firstChild))},M=(t,e)=>{const s=t.split(".");let n=E("ui5-shared-resources",document.head);for(let t=0;t<s.length;t++){const i=s[t],a=t===s.length-1;Object.prototype.hasOwnProperty.call(n,i)||(n[i]=a?e:{}),n=n[i]}return n},O={version:"0.0.0-cf069fb29",major:0,minor:0,patch:0,suffix:"-cf069fb29",isNext:!0,buildTime:1643285894};let x;const T=new Map,P=M("Runtimes",[]),I=()=>x,L=M("Tags",new Map),N=new Set;let k,D={};const R=t=>{N.add(t),L.set(t,I())},j=()=>{const t=P,e=I(),s=t[e];let n="Multiple UI5 Web Components instances detected.";t.length>1&&(n=`${n}\nLoading order (versions before 1.1.0 not listed): ${t.map((t=>`\n${t.description}`)).join("")}`),Object.keys(D).forEach((i=>{let a,r,o;"unknown"===i?(a=1,r={description:"Older unknown runtime"}):(a=((t,e)=>{const s=`${t},${e}`;if(T.has(s))return T.get(s);const n=P[t],i=P[e];if(!n||!i)throw new Error("Invalid runtime index supplied");if(n.isNext||i.isNext)return n.buildTime-i.buildTime;const a=n.major-i.major;if(a)return a;const r=n.minor-i.minor;if(r)return r;const o=n.patch-i.patch;if(o)return o;const l=new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"}).compare(n.suffix,i.suffix);return T.set(s,l),l})(e,i),r=t[i]),o=a>0?"an older":a<0?"a newer":"the same",n=`${n}\n\n"${s.description}" failed to define ${D[i].size} tag(s) as they were defined by a runtime of ${o} version "${r.description}": ${C(D[i]).sort().join(", ")}.`,n=a>0?`${n}\nWARNING! If your code uses features of the above web components, unavailable in ${r.description}, it might not work as expected!`:`${n}\nSince the above web components were defined by the same or newer version runtime, they should be compatible with your code.`})),n=`${n}\n\nTo 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/master/docs/2-advanced/03-scoping.md.`,console.warn(n)},U=new Set,H=new Set,B=new b,V=new class{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((e=>e!==t)),this.lookup.delete(t))}shift(){const t=this.list.shift();if(t)return this.lookup.delete(t),t}isEmpty(){return 0===this.list.length}isAdded(t){return this.lookup.has(t)}process(t){let e;const s=new Map;for(e=this.shift();e;){const n=s.get(e)||0;if(n>10)throw new Error("Web component processed too many times this task, max allowed is: 10");t(e),s.set(e,n+1),e=this.shift()}}};let z,Z,F,W;const q=async t=>{V.add(t),await J()},G=t=>{B.fireEvent("beforeComponentRender",t),H.add(t),t._render()},J=async()=>{W||(W=new Promise((t=>{window.requestAnimationFrame((()=>{V.process(G),W=null,t(),F||(F=setTimeout((()=>{F=void 0,V.isEmpty()&&X()}),200))}))}))),await W},K=()=>{const t=C(N).map((t=>customElements.whenDefined(t)));return Promise.all(t)},Y=async()=>{await K(),await(z||(z=new Promise((t=>{Z=t,window.requestAnimationFrame((()=>{V.isEmpty()&&(z=void 0,t())}))})),z))},X=()=>{V.isEmpty()&&Z&&(Z(),Z=void 0,z=void 0)},Q=async t=>{H.forEach((e=>{const s=e.constructor.getMetadata().getTag(),n=(i=e.constructor,U.has(i));var i;const a=e.constructor.getMetadata().isLanguageAware(),r=e.constructor.getMetadata().isThemeAware();(!t||t.tag===s||t.rtlAware&&n||t.languageAware&&a||t.themeAware&&r)&&q(e)})),await Y()};let tt,et;const st=()=>(void 0===tt&&(A(),tt=_.language),tt),nt=()=>{var t;return void 0===et&&(A(),t=_.fetchDefaultLanguage,et=t),et},it=/^((?:[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 at{constructor(t){const e=it.exec(t.replace(/_/g,"-"));if(null===e)throw new Error(`The given language ${t} does not adhere to BCP-47.`);this.sLocaleId=t,this.sLanguage=e[1]||null,this.sScript=e[2]||null,this.sRegion=e[3]||null,this.sVariant=e[4]&&e[4].slice(1)||null,this.sExtension=e[5]&&e[5].slice(1)||null,this.sPrivateUse=e[6]||null,this.sLanguage&&(this.sLanguage=this.sLanguage.toLowerCase()),this.sScript&&(this.sScript=this.sScript.toLowerCase().replace(/^[a-z]/,(t=>t.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 rt=new Map,ot=t=>(rt.has(t)||rt.set(t,new at(t)),rt.get(t)),lt=t=>{try{if(t&&"string"==typeof t)return ot(t)}catch(t){}},ct=t=>t?lt(t):st()?ot(st()):lt(a()),dt=/^((?:[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,ht=/(?:^|-)(saptrc|sappsd)(?:-|$)/i,ut={he:"iw",yi:"ji",id:"in",sr:"sh"},pt=t=>{if(!t)return n;if("zh_HK"===t)return"zh_TW";const e=t.lastIndexOf("_");return e>=0?t.slice(0,e):t!==n?n:""},gt=new Set,ft=new Set,mt=new Map,yt=new Map,_t=new Map,vt=(t,e)=>{mt.set(t,e)},wt=(t,e)=>{const s=`${t}/${e}`;return _t.has(s)},At=async t=>{const e=ct().getLanguage(),i=ct().getRegion();let a=(t=>{let e;if(!t)return n;if("string"==typeof t&&(e=dt.exec(t.replace(/_/g,"-")))){let t=e[1].toLowerCase(),s=e[3]?e[3].toUpperCase():void 0;const n=e[2]?e[2].toLowerCase():void 0,i=e[4]?e[4].slice(1):void 0,a=e[6];return t=ut[t]||t,a&&(e=ht.exec(a))||i&&(e=ht.exec(i))?`en_US_${e[1].toLowerCase()}`:("zh"!==t||s||("hans"===n?s="CN":"hant"===n&&(s="TW")),t+(s?"_"+s+(i?"_"+i.replace("-","_"):""):""))}})(e+(i?`-${i}`:""));for(;a!==s&&!wt(t,a);)a=pt(a);const r=nt();if(a!==s||r)if(wt(t,a))try{const e=await((t,e)=>{const s=`${t}/${e}`,n=_t.get(s);return yt.get(s)||yt.set(s,n(e)),yt.get(s)})(t,a);vt(t,e)}catch(t){ft.has(t.message)||(ft.add(t.message),console.error(t.message))}else(t=>{gt.has(t)||(console.warn(`[${t}]: Message bundle assets are not configured. Falling back to English texts.`,` Add \`import "${t}/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.`),gt.add(t))})(t);else vt(t,null)};S((()=>{const t=[...mt.keys()];return Promise.all(t.map(At))}));const bt=new Map,$t=new Map,St=new Map,Ct=new Set;let Et=!1;const Mt={iw:"he",ji:"yi",in:"id",sh:"sr"},Ot=t=>{Et||(console.warn(`[LocaleData] Supported locale "${t}" not configured, import the "Assets.js" module from the webcomponents package you are using.`),Et=!0)},xt=(t,e)=>{bt.set(t,e)},Tt=async(t,e,s)=>{const a=((t,e,s)=>{"no"===(t=t&&Mt[t]||t)&&(t="nb"),"zh"!==t||e||("Hans"===s?e="CN":"Hant"===s&&(e="TW"));let a=`${t}_${e}`;return i.includes(a)?$t.has(a)?a:(Ot(a),n):(a=t,i.includes(a)?$t.has(a)?a:(Ot(a),n):n)})(t,e,s),r=m("OpenUI5Support");if(r){const t=r.getLocaleDataObject();if(t)return void xt(a,t)}try{const t=await(t=>{const e=$t.get(t);return St.get(t)||St.set(t,e(t)),St.get(t)})(a);xt(a,t)}catch(t){Ct.has(t.message)||(Ct.add(t.message),console.error(t.message))}};var Pt,It;Pt="en",It=async t=>(await fetch("https://ui5.sap.com/1.60.2/resources/sap/ui/core/cldr/en.json")).json(),$t.set(Pt,It),S((()=>{const t=ct();return Tt(t.getLanguage(),t.getRegion(),t.getScript())}));const Lt=new Map,Nt=new Map,kt=new Set,Dt=new Set,Rt=(t,e,s)=>{Nt.set(`${t}/${e}`,s),kt.add(t),Dt.add(e)},jt=async(t,s)=>{const n=Lt.get(`${t}_${s}`);if(void 0!==n)return n;if(!Dt.has(s)){const s=[...Dt.values()].join(", ");return console.warn(`You have requested a non-registered theme - falling back to ${e}. Registered themes are: ${s}`),Lt.get(`${t}_${e}`)}const i=Nt.get(`${t}/${s}`);if(!i)return void console.error(`Theme [${s}] not registered for package [${t}]`);let a;try{a=await i(s)}catch(e){return void console.error(t,e.message)}const r=a._||a;return Lt.set(`${t}_${s}`,r),r},Ut=()=>kt,Ht={"SAP-icons-TNT":"tnt",BusinessSuiteInAppSymbols:"business-suite",horizon:"SAP-icons-v5"},Bt=(t,e)=>e?`${t}|${e}`:t,Vt=(t,e,s="")=>{const n="string"==typeof t?t:t.content;if(document.adoptedStyleSheets){const t=new CSSStyleSheet;t.replaceSync(n),t._ui5StyleId=Bt(e,s),document.adoptedStyleSheets=[...document.adoptedStyleSheets,t]}else{const t={};t[e]=s,((t,e={})=>{const s=document.createElement("style");s.type="text/css",Object.entries(e).forEach((t=>s.setAttribute(...t))),s.textContent=t,document.head.appendChild(s)})(n,t)}},zt=(t,e="")=>document.adoptedStyleSheets?!!document.adoptedStyleSheets.find((s=>s._ui5StyleId===Bt(t,e))):!!document.querySelector(`head>style[${t}="${e}"]`),Zt=(t,e,s="")=>{zt(e,s)?((t,e,s="")=>{const n="string"==typeof t?t:t.content;document.adoptedStyleSheets?document.adoptedStyleSheets.find((t=>t._ui5StyleId===Bt(e,s))).replaceSync(n||""):document.querySelector(`head>style[${e}="${s}"]`).textContent=n||""})(t,e,s):Vt(t,e,s)},Ft=new Set,Wt=()=>{const t=(()=>{let t=document.querySelector(".sapThemeMetaData-Base-baseLib")||document.querySelector(".sapThemeMetaData-UI5-sap-ui-core");if(t)return getComputedStyle(t).backgroundImage;t=document.createElement("span"),t.style.display="none",t.classList.add("sapThemeMetaData-Base-baseLib"),document.body.appendChild(t);let e=getComputedStyle(t).backgroundImage;return"none"===e&&(t.classList.add("sapThemeMetaData-UI5-sap-ui-core"),e=getComputedStyle(t).backgroundImage),document.body.removeChild(t),e})();if(!t||"none"===t)return;const e=(t=>{const e=/\(["']?data:text\/plain;utf-8,(.*?)['"]?\)$/i.exec(t);if(e&&e.length>=2){let t=e[1];if(t=t.replace(/\\"/g,'"'),"{"!==t.charAt(0)&&"}"!==t.charAt(t.length-1))try{t=decodeURIComponent(t)}catch(t){return void(Ft.has("decode")||(console.warn("Malformed theme metadata string, unable to decodeURIComponent"),Ft.add("decode")))}try{return JSON.parse(t)}catch(t){Ft.has("parse")||(console.warn("Malformed theme metadata string, unable to parse JSON"),Ft.add("parse"))}}})(t);return(t=>{let e,s;try{e=t.Path.match(/\.([^.]+)\.css_variables$/)[1],s=t.Extends[0]}catch(e){return void(Ft.has("object")||(console.warn("Malformed theme metadata Object",t),Ft.add("object")))}return{themeName:e,baseThemeName:s}})(e)},qt=new b,Gt="@ui5/webcomponents-theming",Jt=async t=>{if(!Ut().has(Gt))return;const e=await jt(Gt,t);e&&Zt(e,"data-ui5-theme-properties",Gt)},Kt=()=>{((t,e="")=>{if(document.adoptedStyleSheets)document.adoptedStyleSheets=document.adoptedStyleSheets.filter((s=>s._ui5StyleId!==Bt(t,e)));else{const s=document.querySelector(`head > style[${t}="${e}"]`);s&&s.parentElement.removeChild(s)}})("data-ui5-theme-properties",Gt)},Yt=async t=>{const e=(()=>{const t=Wt();if(t)return t;const e=m("OpenUI5Support");if(e&&e.cssVariablesLoaded())return{themeName:e.getConfigurationSettingsObject().theme}})();e&&t===e.themeName?Kt():await Jt(t);const s=(t=>Dt.has(t))(t)?t:e&&e.baseThemeName;await(async t=>{Ut().forEach((async e=>{if(e===Gt)return;const s=await jt(e,t);s&&Zt(s,"data-ui5-theme-properties",e)}))})(s),(t=>{qt.fireEvent("themeLoaded",t)})(t)};let Xt;const Qt=()=>(void 0===Xt&&(A(),Xt=_.theme),Xt),te=async t=>{Xt!==t&&(Xt=t,await Yt(Xt),await Q({themeAware:!0}))},ee=new Map,se=M("SVGIcons.registry",new Map),ne=M("SVGIcons.promises",new Map),ie=(t,{pathData:e,ltr:s,accData:n,collection:i,packageName:a}={})=>{i||(i=re());const r=`${i}/${t}`;se.set(r,{pathData:e,ltr:s,accData:n,packageName:a})},ae=async t=>{const{collection:e,registryKey:s}=(t=>{let e;return t.startsWith("sap-icon://")&&(t=t.replace("sap-icon://","")),[t,e]=t.split("/").reverse(),e=e||re(),e=oe(e),{name:t=t.replace("icon-",""),collection:e,registryKey:`${e}/${t}`}})(t);let n="ICON_NOT_FOUND";try{n=await(async t=>{if(!ne.has(t)){if(!ee.has(t))throw new Error(`No loader registered for the ${t} icons collection. Probably you forgot to import the "AllIcons.js" module for the respective package.`);const e=ee.get(t);ne.set(t,e(t))}return ne.get(t)})(e)}catch(t){console.error(t.message)}return"ICON_NOT_FOUND"===n?n:(se.has(s)||(t=>{Object.keys(t.data).forEach((e=>{const s=t.data[e];ie(e,{pathData:s.path,ltr:s.ltr,accData:s.acc,collection:t.collection,packageName:t.packageName})}))})(n),se.get(s))},re=()=>(t=>{const e=Qt();return e===t||e===`${t}_exp`})("sap_horizon")?"SAP-icons-v5":"SAP-icons",oe=t=>Ht[t]?Ht[t]:t,le=M("PopupUtilsData",{});le.currentZIndex=le.currentZIndex||100;const ce=()=>le.currentZIndex,de=()=>{const t=window.sap;return t&&t.ui&&"function"==typeof t.ui.getCore&&t.ui.getCore()};var he,ue;he="OpenUI5Support",ue={isLoaded:()=>!!de(),init:()=>{const t=de();return t?new Promise((e=>{t.attachInit((()=>{window.sap.ui.require(["sap/ui/core/LocaleData","sap/ui/core/Popup"],((t,s)=>{s.setInitialZIndex(ce()),e()}))}))})):Promise.resolve()},getConfigurationSettingsObject:()=>{const t=de();if(!t)return;const e=t.getConfiguration(),s=window.sap.ui.require("sap/ui/core/LocaleData");return{animationMode:e.getAnimationMode(),language:e.getLanguage(),theme:e.getTheme(),rtl:e.getRTL(),calendarType:e.getCalendarType(),formatSettings:{firstDayOfWeek:s?s.getInstance(e.getLocale()).getFirstDayOfWeek():void 0}}},getLocaleDataObject:()=>{const t=de();if(!t)return;const e=t.getConfiguration();return window.sap.ui.require("sap/ui/core/LocaleData").getInstance(e.getLocale())._get()},attachListeners:()=>{de()&&(()=>{const t=de(),e=t.getConfiguration();t.attachThemeChanged((async()=>{await te(e.getTheme())}))})()},cssVariablesLoaded:()=>{if(!de())return;const t=[...document.head.children].find((t=>"sap-ui-theme-sap.ui.core"===t.id));return t?!!t.href.match(/\/css(-|_)variables\.css/):void 0},getNextZIndex:()=>{if(!de())return;return window.sap.ui.require("sap/ui/core/Popup").getNextZIndex()},setInitialZIndex:()=>{if(!de())return;window.sap.ui.require("sap/ui/core/Popup").setInitialZIndex(ce())}},f.set(he,ue);var pe={packageName:"@ui5/webcomponents-base",fileName:"FontFace.css",content:'@font-face{font-family:"72";font-style:normal;font-weight:400;src:local("72"),url(https://ui5.sap.com/sdk/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Regular.woff2?ui5-webcomponents) format("woff2"),url(https://ui5.sap.com/sdk/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Regular.woff?ui5-webcomponents) format("woff")}@font-face{font-family:"72full";font-style:normal;font-weight:400;src:local(\'72-full\'),url(https://ui5.sap.com/sdk/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Regular-full.woff2?ui5-webcomponents) format("woff2"),url(https://ui5.sap.com/sdk/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Regular-full.woff?ui5-webcomponents) format("woff")}@font-face{font-family:"72";font-style:normal;font-weight:700;src:local(\'72-Bold\'),url(https://ui5.sap.com/sdk/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold.woff2?ui5-webcomponents) format("woff2"),url(https://ui5.sap.com/sdk/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold.woff?ui5-webcomponents) format("woff")}@font-face{font-family:"72full";font-style:normal;font-weight:700;src:local(\'72-Bold-full\'),url(https://ui5.sap.com/sdk/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold-full.woff2?ui5-webcomponents) format("woff2"),url(https://ui5.sap.com/sdk/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold-full.woff?ui5-webcomponents) format("woff")}@font-face{font-family:"72Black";font-style:bold;font-weight:900;src:local(\'72Black\'),url(https://openui5nightly.hana.ondemand.com/resources/sap/ui/core/themes/sap_horizon/fonts/72-Black.woff2?ui5-webcomponents) format("woff2"),url(https://openui5nightly.hana.ondemand.com/resources/sap/ui/core/themes/sap_horizon/fonts/72-Black.woff?ui5-webcomponents) format("woff")}'},ge={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')}"};const fe=()=>{zt("data-ui5-font-face")||Vt(pe,"data-ui5-font-face")},me=()=>{zt("data-ui5-font-face-override")||Vt(ge,"data-ui5-font-face-override")};var ye={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}"};let _e;const ve=new b,we=async()=>_e||(_e=new Promise((async t=>{void 0===x&&(x=P.length,P.push({...O,alias:"",description:`Runtime ${x} - ver ${O.version}`}));const e=m("OpenUI5Support"),s=m("F6Navigation");e?await e.init():s&&s.init(),await new Promise((t=>{document.body?t():document.addEventListener("DOMContentLoaded",(()=>{t()}))})),await Yt(Qt()),e&&e.attachListeners(),(()=>{const t=m("OpenUI5Support");t&&t.isLoaded()||fe(),me()})(),zt("data-ui5-system-css-vars")||Vt(ye,"data-ui5-system-css-vars"),await ve.fireEventAsync("boot"),t()})),_e);class Ae{static isValid(t){}static attributeToProperty(t){return t}static propertyToAttribute(t){return`${t}`}static valuesAreEqual(t,e){return t===e}static generateTypeAccessors(t){Object.keys(t).forEach((e=>{Object.defineProperty(this,e,{get:()=>t[e]})}))}}const be=(t,e,s=!1)=>{if("function"!=typeof t||"function"!=typeof e)return!1;if(s&&t===e)return!0;let n=t;do{n=Object.getPrototypeOf(n)}while(null!==n&&n!==e);return n===e},$e=new Map,Se=new Map,Ce=t=>{if(!$e.has(t)){const e=Me(t.split("-"));$e.set(t,e)}return $e.get(t)},Ee=t=>{if(!Se.has(t)){const e=t.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase();Se.set(t,e)}return Se.get(t)},Me=t=>t.map(((t,e)=>0===e?t.toLowerCase():t.charAt(0).toUpperCase()+t.slice(1).toLowerCase())).join(""),Oe=t=>t&&t instanceof HTMLElement&&"slot"===t.localName,xe=t=>Oe(t)?t.assignedNodes({flatten:!0}).filter((t=>t instanceof HTMLElement)):[t];let Te={include:[/^ui5-/],exclude:[]};const Pe=new Map,Ie=t=>{if(!Pe.has(t)){const e=Te.include.some((e=>t.match(e)))&&!Te.exclude.some((e=>t.match(e)));Pe.set(t,e)}return Pe.get(t)},Le=t=>{Ie(t)};class Ne{constructor(t){this.metadata=t}getInitialState(){if(Object.prototype.hasOwnProperty.call(this,"_initialState"))return this._initialState;const t={},e=this.slotsAreManaged(),s=this.getProperties();for(const e in s){const n=s[e].type,i=s[e].defaultValue;n===Boolean?(t[e]=!1,void 0!==i&&console.warn("The 'defaultValue' metadata key is ignored for all booleans properties, they would be initialized with 'false' by default")):s[e].multiple?t[e]=[]:t[e]=n===Object?"defaultValue"in s[e]?s[e].defaultValue:{}:n===String?"defaultValue"in s[e]?s[e].defaultValue:"":i}if(e){const e=this.getSlots();for(const[s,n]of Object.entries(e)){t[n.propertyName||s]=[]}}return this._initialState=t,t}static validatePropertyValue(t,e){return e.multiple?t.map((t=>ke(t,e))):ke(t,e)}static validateSlotValue(t,e){return De(t,e)}getPureTag(){return this.metadata.tag}getTag(){const t=this.metadata.tag,e=Le(t);return e?`${t}-${e}`:t}getAltTag(){const t=this.metadata.altTag;if(!t)return;const e=Le(t);return e?`${t}-${e}`:t}hasAttribute(t){const e=this.getProperties()[t];return e.type!==Object&&!e.noAttribute&&!e.multiple}getPropertiesList(){return Object.keys(this.getProperties())}getAttributesList(){return this.getPropertiesList().filter(this.hasAttribute,this).map(Ee)}getSlots(){return this.metadata.slots||{}}canSlotText(){const t=this.getSlots().default;return t&&t.type===Node}hasSlots(){return!!Object.entries(this.getSlots()).length}hasIndividualSlots(){return this.slotsAreManaged()&&Object.entries(this.getSlots()).some((([t,e])=>e.individualSlots))}slotsAreManaged(){return!!this.metadata.managedSlots}supportsF6FastNavigation(){return!!this.metadata.fastNavigation}getProperties(){return this.metadata.properties||{}}getEvents(){return this.metadata.events||{}}isLanguageAware(){return!!this.metadata.languageAware}isThemeAware(){return!!this.metadata.themeAware}shouldInvalidateOnChildChange(t,e,s){const n=this.getSlots()[t].invalidateOnChildChange;if(void 0===n)return!1;if("boolean"==typeof n)return n;if("object"==typeof n){if("property"===e){if(void 0===n.properties)return!1;if("boolean"==typeof n.properties)return n.properties;if(Array.isArray(n.properties))return n.properties.includes(s);throw new Error("Wrong format for invalidateOnChildChange.properties: boolean or array is expected")}if("slot"===e){if(void 0===n.slots)return!1;if("boolean"==typeof n.slots)return n.slots;if(Array.isArray(n.slots))return n.slots.includes(s);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 ke=(t,e)=>{const s=e.type;return s===Boolean?"boolean"==typeof t&&t:s===String?"string"==typeof t||null==t?t:t.toString():s===Object?"object"==typeof t?t:e.defaultValue:be(s,Ae)?s.isValid(t)?t:e.defaultValue:void 0},De=(t,e)=>(t&&xe(t).forEach((t=>{if(!(t instanceof e.type))throw new Error(`${t} is not of type ${e.type}`)})),t);customElements.get("ui5-static-area")||customElements.define("ui5-static-area",class extends HTMLElement{});const Re=M("CustomStyle.eventProvider",new b),je=t=>{Re.attachEvent("CustomCSSChange",t)},Ue=M("CustomStyle.customCSSFor",{});je((t=>{Q({tag:t})}));const He=t=>Array.isArray(t)?Be(t.filter((t=>!!t))).map((t=>"string"==typeof t?t:t.content)).join(" "):"string"==typeof t?t:t.content,Be=t=>t.reduce(((t,e)=>t.concat(Array.isArray(e)?Be(e):e)),[]),Ve=new Map;je((t=>{Ve.delete(`${t}_normal`)}));const ze=(t,e=!1)=>{const s=t.getMetadata().getTag(),n=`${s}_${e?"static":"normal"}`;if(!Ve.has(n)){let i;if(e)i=He(t.staticAreaStyles);else{const e=(t=>Ue[t]?Ue[t].join(""):"")(s)||"";i=`${He(t.styles)} ${e}`}Ve.set(n,i)}return Ve.get(n)},Ze=new Map;je((t=>{Ze.delete(`${t}_normal`)}));const Fe=(t,e=!1)=>{let s;const n=e?"staticAreaTemplate":"template",i=e?t.staticAreaItem.shadowRoot:t.shadowRoot,a=((t,e)=>{const s=e.constructor.getUniqueDependencies().map((t=>t.getMetadata().getPureTag())).filter(Ie);return t(e,s,void 0)})(t.constructor[n],t);document.adoptedStyleSheets?i.adoptedStyleSheets=((t,e=!1)=>{const s=`${t.getMetadata().getTag()}_${e?"static":"normal"}`;if(!Ze.has(s)){const n=ze(t,e),i=new CSSStyleSheet;i.replaceSync(n),Ze.set(s,[i])}return Ze.get(s)})(t.constructor,e):window.ShadyDOM||(s=ze(t.constructor,e)),t.constructor.render(a,i,s,{host:t})};const We={iw:"he",ji:"yi",in:"id",sh:"sr"},qe=(t=>{const e=/\$([-a-z0-9A-Z._]+)(?::([^$]*))?\$/.exec(t);return e&&e[2]?e[2].split(/,/):null})("$cldr-rtl-locales:ar,fa,he$")||[],Ge=()=>{const t=(A(),_.rtl);return null!==t?!!t:(t=>(t=t&&We[t]||t,qe.indexOf(t)>=0))(st()||a())},Je=t=>{const e=window.document,s=["ltr","rtl"],n=getComputedStyle(t).getPropertyValue("--_ui5_dir");return s.includes(n)?n:s.includes(t.dir)?t.dir:s.includes(e.documentElement.dir)?e.documentElement.dir:s.includes(e.body.dir)?e.body.dir:Ge()?"rtl":void 0};class Ke 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._updateContentDensity(),this._updateDirection(),Fe(this.ownerElement,!0))}_updateContentDensity(){var t;"compact"===(t=this.ownerElement,getComputedStyle(t).getPropertyValue("--_ui5_content_density"))?(this.classList.add("sapUiSizeCompact"),this.classList.add("ui5-content-density-compact")):(this.classList.remove("sapUiSizeCompact"),this.classList.remove("ui5-content-density-compact"))}_updateDirection(){const t=Je(this.ownerElement);t?this.setAttribute("dir",t):this.removeAttribute("dir")}async getDomRef(){return this._updateContentDensity(),this._rendered||(this._rendered=!0,Fe(this.ownerElement,!0)),await Y(),this.shadowRoot}static getTag(){const t="ui5-static-area-item",e=Le(t);return e?`${t}-${e}`:t}static createInstance(){return customElements.get(Ke.getTag())||customElements.define(Ke.getTag(),Ke),document.createElement(this.getTag())}}const Ye=new WeakMap;const Xe=(t,e,s)=>{const n=((t,e,s)=>{const n=new MutationObserver(e);return n.observe(t,s),n})(t,e,s);Ye.set(t,n)},Qe=["value-changed"];let ts;const es=()=>(void 0===ts&&(A(),ts=_.noConflict),ts),ss=t=>{const e=es();return!(t=>Qe.includes(t))(t)&&(!0===e||!(t=>{const e=es();return!(e.events&&e.events.includes&&e.events.includes(t))})(t))},ns=["disabled","title","hidden","role","draggable"],is=t=>{if(ns.includes(t)||t.startsWith("aria"))return!0;return![HTMLElement,Element,Node].some((e=>e.prototype.hasOwnProperty(t)))},as=(t,e)=>{if(t.length!==e.length)return!1;for(let s=0;s<t.length;s++)if(t[s]!==e[s])return!1;return!0},rs=(t,e)=>class extends t{constructor(){super(),e&&e()}};let os=0;const ls=new Map,cs=new Map;function ds(t){this._suppressInvalidation||(this.onInvalidation(t),this._changedState.push(t),q(this),this._eventProvider.fireEvent("invalidate",{...t,target:this}))}class hs extends HTMLElement{constructor(){let t;super(),this._changedState=[],this._suppressInvalidation=!0,this._inDOM=!1,this._fullyConnected=!1,this._childChangeListeners=new Map,this._slotChangeListeners=new Map,this._eventProvider=new b,this._domRefReadyPromise=new Promise((e=>{t=e})),this._domRefReadyPromise._deferredResolve=t,this._initializeState(),this._upgradeAllProperties(),this.constructor._needsShadowDOM()&&this.attachShadow({mode:"open"})}get _id(){return this.__id||(this.__id="ui5wc_"+ ++os),this.__id}async connectedCallback(){this.setAttribute(this.constructor.getMetadata().getPureTag(),""),this.constructor.getMetadata().supportsF6FastNavigation()&&this.setAttribute("data-sap-ui-fastnavgroup","true");const t=this.constructor.getMetadata().slotsAreManaged();this._inDOM=!0,t&&(this._startObservingDOMChildren(),await this._processChildren()),this._inDOM&&(G(this),this._domRefReadyPromise._deferredResolve(),this._fullyConnected=!0,"function"==typeof this.onEnterDOM&&this.onEnterDOM())}disconnectedCallback(){const t=this.constructor.getMetadata().slotsAreManaged();var e;this._inDOM=!1,t&&this._stopObservingDOMChildren(),this._fullyConnected&&("function"==typeof this.onExitDOM&&this.onExitDOM(),this._fullyConnected=!1),this.staticAreaItem&&this.staticAreaItem.parentElement&&this.staticAreaItem.parentElement.removeChild(this.staticAreaItem),e=this,V.remove(e),H.delete(e)}_startObservingDOMChildren(){if(!this.constructor.getMetadata().hasSlots())return;const t=this.constructor.getMetadata().canSlotText(),e={childList:!0,subtree:t,characterData:t};Xe(this,this._processChildren.bind(this),e)}_stopObservingDOMChildren(){(t=>{const e=Ye.get(t);e&&((t=>{t.disconnect()})(e),Ye.delete(t))})(this)}async _processChildren(){this.constructor.getMetadata().hasSlots()&&await this._updateSlots()}async _updateSlots(){const t=this.constructor.getMetadata().getSlots(),e=this.constructor.getMetadata().canSlotText(),s=Array.from(e?this.childNodes:this.children),n=new Map,i=new Map;for(const[e,s]of Object.entries(t)){const t=s.propertyName||e;i.set(t,e),n.set(t,[...this._state[t]]),this._clearSlot(e,s)}const a=new Map,r=new Map,o=s.map((async(e,s)=>{const n=(t=>{if(!(t instanceof HTMLElement))return"default";const e=t.getAttribute("slot");if(e){const t=e.match(/^(.+?)-\d+$/);return t?t[1]:e}return"default"})(e),i=t[n];if(void 0===i){const s=Object.keys(t).join(", ");return void console.warn(`Unknown slotName: ${n}, ignoring`,e,`Valid values are: ${s}`)}if(i.individualSlots){const t=(a.get(n)||0)+1;a.set(n,t),e._individualSlot=`${n}-${t}`}if(e instanceof HTMLElement){const t=e.localName;if(t.includes("-")){if(!window.customElements.get(t)){const e=window.customElements.whenDefined(t);let s=ls.get(t);s||(s=new Promise((t=>setTimeout(t,1e3))),ls.set(t,s)),await Promise.race([e,s])}window.customElements.upgrade(e)}}if((e=this.constructor.getMetadata().constructor.validateSlotValue(e,i)).isUI5Element&&i.invalidateOnChildChange){(e.attachInvalidate||e._attachChange).bind(e)(this._getChildChangeListener(n))}Oe(e)&&this._attachSlotChange(e,n);const o=i.propertyName||n;r.has(o)?r.get(o).push({child:e,idx:s}):r.set(o,[{child:e,idx:s}])}));await Promise.all(o),r.forEach(((t,e)=>{this._state[e]=t.sort(((t,e)=>t.idx-e.idx)).map((t=>t.child))}));let l=!1;for(const[e,s]of Object.entries(t)){const t=s.propertyName||e;as(n.get(t),this._state[t])||(ds.call(this,{type:"slot",name:i.get(t),reason:"children"}),l=!0)}l||ds.call(this,{type:"slot",name:"default",reason:"textcontent"})}_clearSlot(t,e){const s=e.propertyName||t;this._state[s].forEach((e=>{if(e&&e.isUI5Element){(e.detachInvalidate||e._detachChange).bind(e)(this._getChildChangeListener(t))}Oe(e)&&this._detachSlotChange(e,t)})),this._state[s]=[]}attachInvalidate(t){this._eventProvider.attachEvent("invalidate",t)}detachInvalidate(t){this._eventProvider.detachEvent("invalidate",t)}_onChildChange(t,e){this.constructor.getMetadata().shouldInvalidateOnChildChange(t,e.type,e.name)&&ds.call(this,{type:"slot",name:t,reason:"childchange",child:e.target})}attributeChangedCallback(t,e,s){const n=this.constructor.getMetadata().getProperties(),i=t.replace(/^ui5-/,""),a=Ce(i);if(n.hasOwnProperty(a)){const t=n[a].type;t===Boolean?s=null!==s:be(t,Ae)&&(s=t.attributeToProperty(s)),this[a]=s}}_updateAttribute(t,e){if(!this.constructor.getMetadata().hasAttribute(t))return;const s=this.constructor.getMetadata().getProperties()[t].type,n=Ee(t),i=this.getAttribute(n);s===Boolean?!0===e&&null===i?this.setAttribute(n,""):!1===e&&null!==i&&this.removeAttribute(n):be(s,Ae)?this.setAttribute(n,s.propertyToAttribute(e)):"object"!=typeof e&&i!==e&&this.setAttribute(n,e)}_upgradeProperty(t){if(this.hasOwnProperty(t)){const e=this[t];delete this[t],this[t]=e}}_upgradeAllProperties(){this.constructor.getMetadata().getPropertiesList().forEach(this._upgradeProperty,this)}_initializeState(){this._state={...this.constructor.getMetadata().getInitialState()}}_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,e){t.addEventListener("slotchange",this._getSlotChangeListener(e))}_detachSlotChange(t,e){t.removeEventListener("slotchange",this._getSlotChangeListener(e))}_onSlotChange(t){ds.call(this,{type:"slot",name:t,reason:"slotchange"})}onInvalidation(t){}_render(){const t=this.constructor.getMetadata().hasIndividualSlots();this._suppressInvalidation=!0,"function"==typeof this.onBeforeRendering&&this.onBeforeRendering(),this._onComponentStateFinalized&&this._onComponentStateFinalized(),this._suppressInvalidation=!1,this._changedState=[],this.constructor._needsShadowDOM()&&Fe(this),this.staticAreaItem&&this.staticAreaItem.update(),t&&this._assignIndividualSlotsToChildren(),"function"==typeof this.onAfterRendering&&this.onAfterRendering()}_assignIndividualSlotsToChildren(){Array.from(this.children).forEach((t=>{t._individualSlot&&t.setAttribute("slot",t._individualSlot)}))}_waitForDomRef(){return this._domRefReadyPromise}getDomRef(){if("function"==typeof this._getRealDomRef)return this._getRealDomRef();if(!this.shadowRoot||0===this.shadowRoot.children.length)return;const t=[...this.shadowRoot.children].filter((t=>!["link","style"].includes(t.localName)));return 1!==t.length&&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(){await this._waitForDomRef();const t=this.getFocusDomRef();t&&"function"==typeof t.focus&&t.focus()}fireEvent(t,e,s=!1,n=!0){const i=this._fireEvent(t,e,s,n),a=Ce(t);return a!==t?i&&this._fireEvent(a,e,s):i}_fireEvent(t,e,s=!1,n=!0){const i=new CustomEvent(`ui5-${t}`,{detail:e,composed:!1,bubbles:n,cancelable:s}),a=this.dispatchEvent(i);if(ss(t))return a;const r=new CustomEvent(t,{detail:e,composed:!1,bubbles:n,cancelable:s});return this.dispatchEvent(r)&&a}getSlottedNodes(t){return this[t].reduce(((t,e)=>t.concat(xe(e))),[])}get effectiveDir(){var t;return t=this.constructor,U.add(t),Je(this)}get isUI5Element(){return!0}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=Ke.createInstance(),this.staticAreaItem.setOwnerElement(this)),this.staticAreaItem.parentElement||E("ui5-static-area").appendChild(this.staticAreaItem),this.staticAreaItem.getDomRef()}static _generateAccessors(){const t=this.prototype,e=this.getMetadata().slotsAreManaged(),s=this.getMetadata().getProperties();for(const[e,n]of Object.entries(s)){if(is(e)||console.warn(`"${e}" is not a valid property name. Use a name that does not collide with DOM APIs`),n.type===Boolean&&n.defaultValue)throw new Error(`Cannot set a default value for property "${e}". All booleans are false by default.`);if(n.type===Array)throw new Error(`Wrong type for property "${e}". Properties cannot be of type Array - use "multiple: true" and set "type" to the single value type, such as "String", "Object", etc...`);if(n.type===Object&&n.defaultValue)throw new Error(`Cannot set a default value for property "${e}". All properties of type "Object" are empty objects by default.`);if(n.multiple&&n.defaultValue)throw new Error(`Cannot set a default value for property "${e}". All multiple properties are empty arrays by default.`);Object.defineProperty(t,e,{get(){if(void 0!==this._state[e])return this._state[e];const t=n.defaultValue;return n.type!==Boolean&&(n.type===String?t:n.multiple?[]:t)},set(t){let s;t=this.constructor.getMetadata().constructor.validatePropertyValue(t,n);const i=this._state[e];s=n.multiple&&n.compareValues?!as(i,t):be(n.type,Ae)?!n.type.valuesAreEqual(i,t):i!==t,s&&(this._state[e]=t,ds.call(this,{type:"property",name:e,newValue:t,oldValue:i}),this._updateAttribute(e,t))}})}if(e){const e=this.getMetadata().getSlots();for(const[s,n]of Object.entries(e)){is(s)||console.warn(`"${s}" is not a valid property name. Use a name that does not collide with DOM APIs`);const e=n.propertyName||s;Object.defineProperty(t,e,{get(){return void 0!==this._state[e]?this._state[e]:[]},set(){throw new Error("Cannot set slot content directly, use the DOM APIs (appendChild, removeChild, etc...)")}})}}}static get metadata(){return{}}static get styles(){return""}static get staticAreaStyles(){return""}static get dependencies(){return[]}static getUniqueDependencies(){if(!cs.has(this)){const t=this.dependencies.filter(((t,e,s)=>s.indexOf(t)===e));cs.set(this,t)}return cs.get(this)}static whenDependenciesDefined(){return Promise.all(this.getUniqueDependencies().map((t=>t.define())))}static async onDefine(){return Promise.resolve()}static async define(){await we(),await Promise.all([this.whenDependenciesDefined(),this.onDefine()]);const t=this.getMetadata().getTag(),e=this.getMetadata().getAltTag(),s=(t=>N.has(t))(t),n=customElements.get(t);return n&&!s?(t=>{let e=L.get(t);void 0===e&&(e="unknown"),D[e]=D[e]||new Set,D[e].add(t),k||(k=setTimeout((()=>{j(),D={},k=void 0}),1e3))})(t):n||(this._generateAccessors(),R(t),window.customElements.define(t,this),e&&!customElements.get(e)&&(R(e),window.customElements.define(e,rs(this,(()=>{console.log(`The ${e} tag is deprecated and will be removed in the next release, please use ${t} instead.`)}))))),this}static getMetadata(){if(this.hasOwnProperty("_metadata"))return this._metadata;const t=[this.metadata];let e=this;for(;e!==hs;)e=Object.getPrototypeOf(e),t.unshift(e.metadata);const s=g({},...t);return this._metadata=new Ne(s),this._metadata}}
|
|
2
|
-
/**
|
|
3
|
-
* @license
|
|
4
|
-
* Copyright 2017 Google LLC
|
|
5
|
-
* SPDX-License-Identifier: BSD-3-Clause
|
|
6
|
-
*/var us;const ps=globalThis.trustedTypes,gs=ps?ps.createPolicy("lit-html",{createHTML:t=>t}):void 0,fs=`lit$${(Math.random()+"").slice(9)}$`,ms="?"+fs,ys=`<${ms}>`,_s=document,vs=(t="")=>_s.createComment(t),ws=t=>null===t||"object"!=typeof t&&"function"!=typeof t,As=Array.isArray,bs=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,$s=/-->/g,Ss=/>/g,Cs=/>|[ \n\r](?:([^\s"'>=/]+)([ \n\r]*=[ \n\r]*(?:[^ \n\r"'`<>=]|("|')|))|$)/g,Es=/'/g,Ms=/"/g,Os=/^(?:script|style|textarea)$/i,xs=(t=>(e,...s)=>({_$litType$:t,strings:e,values:s}))(1),Ts=Symbol.for("lit-noChange"),Ps=Symbol.for("lit-nothing"),Is=new WeakMap,Ls=_s.createTreeWalker(_s,129,null,!1),Ns=(t,e)=>{const s=t.length-1,n=[];let i,a=2===e?"<svg>":"",r=bs;for(let e=0;e<s;e++){const s=t[e];let o,l,c=-1,d=0;for(;d<s.length&&(r.lastIndex=d,l=r.exec(s),null!==l);)d=r.lastIndex,r===bs?"!--"===l[1]?r=$s:void 0!==l[1]?r=Ss:void 0!==l[2]?(Os.test(l[2])&&(i=RegExp("</"+l[2],"g")),r=Cs):void 0!==l[3]&&(r=Cs):r===Cs?">"===l[0]?(r=null!=i?i:bs,c=-1):void 0===l[1]?c=-2:(c=r.lastIndex-l[2].length,o=l[1],r=void 0===l[3]?Cs:'"'===l[3]?Ms:Es):r===Ms||r===Es?r=Cs:r===$s||r===Ss?r=bs:(r=Cs,i=void 0);const h=r===Cs&&t[e+1].startsWith("/>")?" ":"";a+=r===bs?s+ys:c>=0?(n.push(o),s.slice(0,c)+"$lit$"+s.slice(c)+fs+h):s+fs+(-2===c?(n.push(void 0),e):h)}const o=a+(t[s]||"<?>")+(2===e?"</svg>":"");return[void 0!==gs?gs.createHTML(o):o,n]};class ks{constructor({strings:t,_$litType$:e},s){let n;this.parts=[];let i=0,a=0;const r=t.length-1,o=this.parts,[l,c]=Ns(t,e);if(this.el=ks.createElement(l,s),Ls.currentNode=this.el.content,2===e){const t=this.el.content,e=t.firstChild;e.remove(),t.append(...e.childNodes)}for(;null!==(n=Ls.nextNode())&&o.length<r;){if(1===n.nodeType){if(n.hasAttributes()){const t=[];for(const e of n.getAttributeNames())if(e.endsWith("$lit$")||e.startsWith(fs)){const s=c[a++];if(t.push(e),void 0!==s){const t=n.getAttribute(s.toLowerCase()+"$lit$").split(fs),e=/([.?@])?(.*)/.exec(s);o.push({type:1,index:i,name:e[2],strings:t,ctor:"."===e[1]?Hs:"?"===e[1]?Bs:"@"===e[1]?Vs:Us})}else o.push({type:6,index:i})}for(const e of t)n.removeAttribute(e)}if(Os.test(n.tagName)){const t=n.textContent.split(fs),e=t.length-1;if(e>0){n.textContent=ps?ps.emptyScript:"";for(let s=0;s<e;s++)n.append(t[s],vs()),Ls.nextNode(),o.push({type:2,index:++i});n.append(t[e],vs())}}}else if(8===n.nodeType)if(n.data===ms)o.push({type:2,index:i});else{let t=-1;for(;-1!==(t=n.data.indexOf(fs,t+1));)o.push({type:7,index:i}),t+=fs.length-1}i++}}static createElement(t,e){const s=_s.createElement("template");return s.innerHTML=t,s}}function Ds(t,e,s=t,n){var i,a,r,o;if(e===Ts)return e;let l=void 0!==n?null===(i=s._$Cl)||void 0===i?void 0:i[n]:s._$Cu;const c=ws(e)?void 0:e._$litDirective$;return(null==l?void 0:l.constructor)!==c&&(null===(a=null==l?void 0:l._$AO)||void 0===a||a.call(l,!1),void 0===c?l=void 0:(l=new c(t),l._$AT(t,s,n)),void 0!==n?(null!==(r=(o=s)._$Cl)&&void 0!==r?r:o._$Cl=[])[n]=l:s._$Cu=l),void 0!==l&&(e=Ds(t,l._$AS(t,e.values),l,n)),e}class Rs{constructor(t,e){this.v=[],this._$AN=void 0,this._$AD=t,this._$AM=e}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}p(t){var e;const{el:{content:s},parts:n}=this._$AD,i=(null!==(e=null==t?void 0:t.creationScope)&&void 0!==e?e:_s).importNode(s,!0);Ls.currentNode=i;let a=Ls.nextNode(),r=0,o=0,l=n[0];for(;void 0!==l;){if(r===l.index){let e;2===l.type?e=new js(a,a.nextSibling,this,t):1===l.type?e=new l.ctor(a,l.name,l.strings,this,t):6===l.type&&(e=new zs(a,this,t)),this.v.push(e),l=n[++o]}r!==(null==l?void 0:l.index)&&(a=Ls.nextNode(),r++)}return i}m(t){let e=0;for(const s of this.v)void 0!==s&&(void 0!==s.strings?(s._$AI(t,s,e),e+=s.strings.length-2):s._$AI(t[e])),e++}}class js{constructor(t,e,s,n){var i;this.type=2,this._$AH=Ps,this._$AN=void 0,this._$AA=t,this._$AB=e,this._$AM=s,this.options=n,this._$Cg=null===(i=null==n?void 0:n.isConnected)||void 0===i||i}get _$AU(){var t,e;return null!==(e=null===(t=this._$AM)||void 0===t?void 0:t._$AU)&&void 0!==e?e:this._$Cg}get parentNode(){let t=this._$AA.parentNode;const e=this._$AM;return void 0!==e&&11===t.nodeType&&(t=e.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,e=this){t=Ds(this,t,e),ws(t)?t===Ps||null==t||""===t?(this._$AH!==Ps&&this._$AR(),this._$AH=Ps):t!==this._$AH&&t!==Ts&&this.$(t):void 0!==t._$litType$?this.T(t):void 0!==t.nodeType?this.S(t):(t=>{var e;return As(t)||"function"==typeof(null===(e=t)||void 0===e?void 0:e[Symbol.iterator])})(t)?this.M(t):this.$(t)}A(t,e=this._$AB){return this._$AA.parentNode.insertBefore(t,e)}S(t){this._$AH!==t&&(this._$AR(),this._$AH=this.A(t))}$(t){this._$AH!==Ps&&ws(this._$AH)?this._$AA.nextSibling.data=t:this.S(_s.createTextNode(t)),this._$AH=t}T(t){var e;const{values:s,_$litType$:n}=t,i="number"==typeof n?this._$AC(t):(void 0===n.el&&(n.el=ks.createElement(n.h,this.options)),n);if((null===(e=this._$AH)||void 0===e?void 0:e._$AD)===i)this._$AH.m(s);else{const t=new Rs(i,this),e=t.p(this.options);t.m(s),this.S(e),this._$AH=t}}_$AC(t){let e=Is.get(t.strings);return void 0===e&&Is.set(t.strings,e=new ks(t)),e}M(t){As(this._$AH)||(this._$AH=[],this._$AR());const e=this._$AH;let s,n=0;for(const i of t)n===e.length?e.push(s=new js(this.A(vs()),this.A(vs()),this,this.options)):s=e[n],s._$AI(i),n++;n<e.length&&(this._$AR(s&&s._$AB.nextSibling,n),e.length=n)}_$AR(t=this._$AA.nextSibling,e){var s;for(null===(s=this._$AP)||void 0===s||s.call(this,!1,!0,e);t&&t!==this._$AB;){const e=t.nextSibling;t.remove(),t=e}}setConnected(t){var e;void 0===this._$AM&&(this._$Cg=t,null===(e=this._$AP)||void 0===e||e.call(this,t))}}class Us{constructor(t,e,s,n,i){this.type=1,this._$AH=Ps,this._$AN=void 0,this.element=t,this.name=e,this._$AM=n,this.options=i,s.length>2||""!==s[0]||""!==s[1]?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=Ps}get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}_$AI(t,e=this,s,n){const i=this.strings;let a=!1;if(void 0===i)t=Ds(this,t,e,0),a=!ws(t)||t!==this._$AH&&t!==Ts,a&&(this._$AH=t);else{const n=t;let r,o;for(t=i[0],r=0;r<i.length-1;r++)o=Ds(this,n[s+r],e,r),o===Ts&&(o=this._$AH[r]),a||(a=!ws(o)||o!==this._$AH[r]),o===Ps?t=Ps:t!==Ps&&(t+=(null!=o?o:"")+i[r+1]),this._$AH[r]=o}a&&!n&&this.k(t)}k(t){t===Ps?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,null!=t?t:"")}}class Hs extends Us{constructor(){super(...arguments),this.type=3}k(t){this.element[this.name]=t===Ps?void 0:t}}class Bs extends Us{constructor(){super(...arguments),this.type=4}k(t){t&&t!==Ps?this.element.setAttribute(this.name,""):this.element.removeAttribute(this.name)}}class Vs extends Us{constructor(t,e,s,n,i){super(t,e,s,n,i),this.type=5}_$AI(t,e=this){var s;if((t=null!==(s=Ds(this,t,e,0))&&void 0!==s?s:Ps)===Ts)return;const n=this._$AH,i=t===Ps&&n!==Ps||t.capture!==n.capture||t.once!==n.once||t.passive!==n.passive,a=t!==Ps&&(n===Ps||i);i&&this.element.removeEventListener(this.name,this,n),a&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){var e,s;"function"==typeof this._$AH?this._$AH.call(null!==(s=null===(e=this.options)||void 0===e?void 0:e.host)&&void 0!==s?s:this.element,t):this._$AH.handleEvent(t)}}class zs{constructor(t,e,s){this.element=t,this.type=6,this._$AN=void 0,this._$AM=e,this.options=s}get _$AU(){return this._$AM._$AU}_$AI(t){Ds(this,t)}}const Zs=window.litHtmlPolyfillSupport;null==Zs||Zs(ks,js),(null!==(us=globalThis.litHtmlVersions)&&void 0!==us?us:globalThis.litHtmlVersions=[]).push("2.0.1");
|
|
7
|
-
/**
|
|
8
|
-
* @license
|
|
9
|
-
* Copyright 2020 Google LLC
|
|
10
|
-
* SPDX-License-Identifier: BSD-3-Clause
|
|
11
|
-
*/
|
|
12
|
-
const Fs=new Map,Ws=(t=>(e,...s)=>{var n;const i=s.length;let a,r;const o=[],l=[];let c,d=0,h=!1;for(;d<i;){for(c=e[d];d<i&&void 0!==(r=s[d],a=null===(n=r)||void 0===n?void 0:n._$litStatic$);)c+=a+e[++d],h=!0;l.push(r),o.push(c),d++}if(d===i&&o.push(e[i]),h){const t=o.join("$$lit$$");void 0===(e=Fs.get(t))&&Fs.set(t,e=o),s=l}return t(e,...s)})(xs),qs=2;
|
|
13
|
-
/**
|
|
14
|
-
* @license
|
|
15
|
-
* Copyright 2017 Google LLC
|
|
16
|
-
* SPDX-License-Identifier: BSD-3-Clause
|
|
17
|
-
*/
|
|
18
|
-
/**
|
|
19
|
-
* @license
|
|
20
|
-
* Copyright 2017 Google LLC
|
|
21
|
-
* SPDX-License-Identifier: BSD-3-Clause
|
|
22
|
-
*/
|
|
23
|
-
class Gs extends class{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,e,s){this._$Ct=t,this._$AM=e,this._$Ci=s}_$AS(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}}{constructor(t){if(super(t),this.it=Ps,t.type!==qs)throw Error(this.constructor.directiveName+"() can only be used in child bindings")}render(t){if(t===Ps||null==t)return this.vt=void 0,this.it=t;if(t===Ts)return t;if("string"!=typeof t)throw Error(this.constructor.directiveName+"() called with a non-string value");if(t===this.it)return this.vt;this.it=t;const e=[t];return e.raw=e,this.vt={_$litType$:this.constructor.resultType,strings:e,values:[]}}}Gs.directiveName="unsafeHTML",Gs.resultType=1;const Js=(t,e,s,{host:n}={})=>{"string"==typeof s?t=Ws`<style>${s}</style>${t}`:Array.isArray(s)&&s.length&&(t=Ws`${s.map((t=>Ws`<link type="text/css" rel="stylesheet" href="${t}">`))}${t}`),((t,e,s)=>{var n,i;const a=null!==(n=null==s?void 0:s.renderBefore)&&void 0!==n?n:e;let r=a._$litPart$;if(void 0===r){const t=null!==(i=null==s?void 0:s.renderBefore)&&void 0!==i?i:null;a._$litPart$=r=new js(e.insertBefore(vs(),t),t,void 0,null!=s?s:{})}r._$AI(t)})(t,e,{host:n})},Ks={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 Ys extends hs{static get metadata(){return Ks}static get render(){return Js}static get template(){return t=>Ws`<div><p>
|
|
24
|
-
<slot></slot>
|
|
25
|
-
<slot name="other"></slot>
|
|
26
|
-
<slot name="individual-1"></slot>
|
|
27
|
-
<slot name="individual-2"></slot>
|
|
28
|
-
</p></div>`}static get styles(){return":host {\n display: inline-block;\n border: 1px solid black;\n color: var(--var1);\n }"}onBeforeRendering(){}onAfterRendering(){}onEnterDOM(){}onExitDOM(){}}Ys.define();const Xs={tag:"ui5-test-no-shadow"};(class extends hs{static get metadata(){return Xs}}).define();const Qs={tag:"ui5-test-parent",managedSlots:!0,slots:{default:{type:Node,invalidateOnChildChange:{properties:["prop1"]}},items:{type:HTMLElement,invalidateOnChildChange:{properties:!0}}}};(class extends hs{static get metadata(){return Qs}static get render(){return Js}static get template(){return t=>Ws`<div>
|
|
29
|
-
<slot></slot>
|
|
30
|
-
</div>`}}).define();const tn={tag:"ui5-test-child",properties:{prop1:{type:String},prop2:{type:String},prop3:{type:String}}};(class extends hs{static get metadata(){return tn}static get render(){return Js}static get template(){return t=>Ws`<div></div>`}}).define();const en={tag:"ui5-with-static-area",properties:{staticContent:{type:Boolean}},slots:{}};(class extends hs{static get metadata(){return en}static get render(){return Js}static get template(){return t=>Ws`
|
|
31
|
-
<div dir=${t.effectiveDir}>
|
|
32
|
-
WithStaticArea works!
|
|
33
|
-
</div>`}static get staticAreaTemplate(){return t=>Ws`
|
|
34
|
-
<div class="ui5-with-static-area-content">
|
|
35
|
-
Static area content.
|
|
36
|
-
</div>`}static get styles(){return"\n\t\t\t:host {\n\t\t\t\tdisplay: inline-block;\n\t\t\t\tborder: 1px solid black;\n\t\t\t\tcolor: red;\n\t\t\t}"}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(){}}).define();const sn={tag:"ui5-test-generic-ext",properties:{extProp:{type:String},strProp:{defaultValue:"Ext"}},slots:{extSlot:{type:HTMLElement}}};(class extends Ys{static get metadata(){return sn}}).define();Rt("@ui5/webcomponents-base-test","sap_fiori_3",(()=>":root{ --var1: red; }")),Rt("@ui5/webcomponents-base-test","sap_fiori_3_dark",(()=>":root{ --var1: green; }")),Rt("@ui5/webcomponents-base-test","sap_belize",(()=>":root{ --var1: blue; }")),Rt("@ui5/webcomponents-base-test","sap_belize_hcb",(()=>":root{ --var1: orange; }")),Rt("@ui5/webcomponents-base-test","sap_belize_hcw",(()=>":root{ --var1: orange; }")),Rt("@ui5/webcomponents-base-test","sap_fiori_3_hcb",(()=>":root{ --var1: yellow; }")),Rt("@ui5/webcomponents-base-test","sap_fiori_3_hcw",(()=>":root{ --var1: yellow; }"));const nn=navigator.userAgent,an=/(msie|trident)/i.test(nn),rn=!an&&/(Chrome|CriOS)/.test(nn);!an&&!rn&&/(Version|PhantomJS)\/(\d+\.\d+).*Safari/.test(nn),!an&&/webkit/.test(nn);const on=-1!==navigator.platform.indexOf("Win");navigator.platform.match(/iPhone|iPad|iPod/)||navigator.userAgent.match(/Mac/)&&document;!on&&/Android/.test(nn)&&/(?=android)(?=.*mobile)/i.test(nn),/ipad/i.test(nn)||/Macintosh/i.test(nn)&&document;const ln=/('')|'([^']+(?:''[^']*)*)(?:'|$)|\{([0-9]+(?:\s*,[^{}]*)?)\}|[{}]/g,cn=new Map;class dn{constructor(t){this.packageName=t}getText(t,...e){if("string"==typeof t&&(t={key:t,defaultText:t}),!t||!t.key)return"";const s=(n=this.packageName,mt.get(n));var n;s&&!s[t.key]&&console.warn(`Key ${t.key} not found in the i18n bundle, the default text will be used`);const i=s&&s[t.key]?s[t.key]:t.defaultText||t.key;return a=(a=e)||[],i.replace(ln,((t,e,s,n,i)=>{if(e)return"'";if(s)return s.replace(/''/g,"'");if(n)return String(a[parseInt(n)]);throw new Error(`[i18n]: pattern syntax error at pos ${i}`)}));var a}}let hn;const un={Gregorian:"Gregorian",Islamic:"Islamic",Japanese:"Japanese",Buddhist:"Buddhist",Persian:"Persian"};class pn extends Ae{static isValid(t){return!!un[t]}}let gn;pn.generateTypeAccessors(un);let fn;const mn=new b;window.isIE=()=>an,window.registerThemePropertiesLoader=Rt,window["sap-ui-webcomponents-bundle"]={configuration:{getAnimationMode:()=>(void 0===hn&&(A(),hn=_.animationMode),hn),getLanguage:st,getTheme:Qt,setTheme:te,getNoConflict:es,setNoConflict:t=>{ts=t},getCalendarType:()=>(void 0===gn&&(A(),gn=_.calendarType),pn.isValid(gn)?gn:pn.Gregorian),getRTL:Ge,getFirstDayOfWeek:()=>(void 0===fn&&(A(),fn=_.formatSettings),fn.firstDayOfWeek)},getIconNames:async()=>(await ae("edit"),await ae("tnt/arrow"),await ae("business-suite/3d"),Array.from(se.keys())),registerI18nLoader:(t,e,s)=>{const n=`${t}/${e}`;_t.set(n,s)},getI18nBundle:async t=>(await At(t),(t=>{if(cn.has(t))return cn.get(t);const e=new dn(t);return cn.set(t,e),e})(t)),renderFinished:Y,applyDirection:async()=>{const t=mn.fireEvent("directionChange");await Promise.all(t),await Q({rtlAware:!0})},EventProvider:b};
|
|
37
|
-
//# sourceMappingURL=bundle.esm.js.map
|