Socket
Socket
Sign inDemoInstall

@ui5/webcomponents-base

Package Overview
Dependencies
Maintainers
2
Versions
482
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@ui5/webcomponents-base - npm Package Compare versions

Comparing version 0.0.0-07460127d to 0.0.0-0fcda382e

dist/CustomElementsRegistry.js

1

bundle.esm.js

@@ -12,2 +12,3 @@ import { registerThemeProperties } from "./dist/AssetRegistry.js";

import "./dist/test-resources/elements/Child.js";
import "./dist/test-resources/elements/WithStaticArea.js";
import "./dist/test-resources/elements/GenericExt.js";

@@ -14,0 +15,0 @@

@@ -6,2 +6,61 @@ # Change Log

# [0.20.0](https://github.com/SAP/ui5-webcomponents/compare/v0.19.0...v0.20.0) (2020-04-30)
### Bug Fixes
* **framework:** allow the creation of components with static area content only ([#1450](https://github.com/SAP/ui5-webcomponents/issues/1450)) ([b0505ce](https://github.com/SAP/ui5-webcomponents/commit/b0505ce))
* **framework:** apply CSS Vars in Static Styles on IE11 ([#1440](https://github.com/SAP/ui5-webcomponents/issues/1440)) ([b8ae60e](https://github.com/SAP/ui5-webcomponents/commit/b8ae60e))
* **framework:** rendering is no longer delayed ([#1552](https://github.com/SAP/ui5-webcomponents/issues/1552)) ([c26e8aa](https://github.com/SAP/ui5-webcomponents/commit/c26e8aa))
* **scroll enablement:** fix scrolling issue on scroll & mobile ([#1557](https://github.com/SAP/ui5-webcomponents/issues/1557)) ([e79482a](https://github.com/SAP/ui5-webcomponents/commit/e79482a))
* **scroll enablement:** fix scrolling on android devices ([#1491](https://github.com/SAP/ui5-webcomponents/issues/1491)) ([df19ede](https://github.com/SAP/ui5-webcomponents/commit/df19ede))
### Features
* **framework:** enable external themes support ([#1463](https://github.com/SAP/ui5-webcomponents/issues/1463)) ([b031782](https://github.com/SAP/ui5-webcomponents/commit/b031782))
* **framework:** register theme variables via CSS file ([#1451](https://github.com/SAP/ui5-webcomponents/issues/1451)) ([3173fb9](https://github.com/SAP/ui5-webcomponents/commit/3173fb9))
# [0.19.0](https://github.com/SAP/ui5-webcomponents/compare/v0.18.0...v0.19.0) (2020-03-27)
### Bug Fixes
* **framework:** fix travis build ([#1212](https://github.com/SAP/ui5-webcomponents/issues/1212)) ([7f30cf3](https://github.com/SAP/ui5-webcomponents/commit/7f30cf3))
* **framework:** openUI5 cldr support re-added ([#1207](https://github.com/SAP/ui5-webcomponents/issues/1207)) ([6bf40a2](https://github.com/SAP/ui5-webcomponents/commit/6bf40a2))
* **framework:** Provide a workaround for Firefox 74 shadow root bug ([#1347](https://github.com/SAP/ui5-webcomponents/issues/1347)) ([7cc67a7](https://github.com/SAP/ui5-webcomponents/commit/7cc67a7))
* **framework:** StaticArea and StaticAreaElement identify as UI5Element ([#1168](https://github.com/SAP/ui5-webcomponents/issues/1168)) ([28f827a](https://github.com/SAP/ui5-webcomponents/commit/28f827a))
* **framework:** prevent infinite loop when fetching i18n bundles ([#1333](https://github.com/SAP/ui5-webcomponents/issues/1333)) ([f605566](https://github.com/SAP/ui5-webcomponents/commit/f605566))
* **framework:** prevent error when deleting static area item ([#1335](https://github.com/SAP/ui5-webcomponents/issues/1335)) ([5a99536](https://github.com/SAP/ui5-webcomponents/commit/5a99536))
* **framework:** apply size "compact" for StaticArea items ([#1204](https://github.com/SAP/ui5-webcomponents/issues/1204)) ([c411774](https://github.com/SAP/ui5-webcomponents/commit/c411774))
* **framework:** merge metadata properly ([#1092](https://github.com/SAP/ui5-webcomponents/issues/1092)) ([6a29872](https://github.com/SAP/ui5-webcomponents/commit/6a29872))
* **framework:** create font face style tag only once ([#1090](https://github.com/SAP/ui5-webcomponents/issues/1090)) ([1a09e13](https://github.com/SAP/ui5-webcomponents/commit/1a09e13))
### Code Refactoring
* **framework:** propagate compact size when ui5-content-density-compact class is set ([#1136](https://github.com/SAP/ui5-webcomponents/issues/1136)) ([2db62ba](https://github.com/SAP/ui5-webcomponents/commit/2db62ba))
### Features
* **framework:** Allow the registration of custom themes ([#1109](https://github.com/SAP/ui5-webcomponents/issues/1109)) ([6a69521](https://github.com/SAP/ui5-webcomponents/commit/6a69521))
* **framework:** create getLocaleData API ([#1269](https://github.com/SAP/ui5-webcomponents/issues/1269)) ([c9253a6](https://github.com/SAP/ui5-webcomponents/commit/c9253a6))
* **framework:** OpenUI5 integration ([#1138](https://github.com/SAP/ui5-webcomponents/issues/1138)) ([5527990](https://github.com/SAP/ui5-webcomponents/commit/5527990))
* **Itemnavigation:** add paging behaviour ([#1116](https://github.com/SAP/ui5-webcomponents/issues/1116)) ([1cb0832](https://github.com/SAP/ui5-webcomponents/commit/1cb0832))
* **ScrollEnablement:** enhance implementation to work on desktop ([#1374](https://github.com/SAP/ui5-webcomponents/issues/1374)) ([2567bea](https://github.com/SAP/ui5-webcomponents/commit/2567bea))
### BREAKING CHANGES
* **framework:** remove `set/get` for compact size, use CSS class `ui5-content-density-compact` as a replacement.
# [0.18.0](https://github.com/SAP/ui5-webcomponents/compare/v0.17.0...v0.18.0) (2019-12-02)

@@ -8,0 +67,0 @@

@@ -5,2 +5,3 @@ import getLocale from "../locale/getLocale.js";

import nextFallbackLocale from "../locale/nextFallbackLocale.js";
import { DEFAULT_LANGUAGE } from "../generated/AssetParameters.js";

@@ -59,2 +60,6 @@ const bundleData = new Map();

if (localeId === DEFAULT_LANGUAGE) {
return;
}
const bundleURL = bundlesForPackage[localeId];

@@ -64,3 +69,3 @@

setI18nBundleData(packageName, bundleURL);
return bundleURL;
return;
}

@@ -67,0 +72,0 @@

14

dist/asset-registries/LocaleData.js
import { fetchJsonOnce } from "../util/FetchHelper.js";
import { getFeature } from "../FeaturesRegistry.js";
import { DEFAULT_LOCALE, SUPPORTED_LOCALES } from "../generated/AssetParameters.js";
const OpenUI5Support = getFeature("OpenUI5Support");
const supportedLocales = ["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"];
const resources = new Map();

@@ -41,9 +38,9 @@ const cldrData = {};

let localeId = `${language}_${region}`;
if (!supportedLocales.includes(localeId)) {
if (!SUPPORTED_LOCALES.includes(localeId)) {
// fallback to language only
localeId = language;
}
if (!supportedLocales.includes(localeId)) {
if (!SUPPORTED_LOCALES.includes(localeId)) {
// fallback to english
localeId = "en";
localeId = DEFAULT_LOCALE;
}

@@ -60,3 +57,3 @@

const missingLocales = supportedLocales.filter(locale => !cldrData[locale] && !cldrUrls[locale]);
const missingLocales = SUPPORTED_LOCALES.filter(locale => !cldrData[locale] && !cldrUrls[locale]);
missingLocales.forEach(locale => {

@@ -92,2 +89,3 @@ cldrUrls[locale] = cldrMappingFn(locale);

const OpenUI5Support = getFeature("OpenUI5Support");
if (!cldrObj && OpenUI5Support) {

@@ -94,0 +92,0 @@ cldrObj = OpenUI5Support.getLocaleDataObject();

@@ -1,2 +0,4 @@

import { fetchJsonOnce } from "../util/FetchHelper.js";
import { fetchJsonOnce, fetchTextOnce } from "../util/FetchHelper.js";
import { DEFAULT_THEME } from "../generated/AssetParameters.js";
import getFileExtension from "../util/getFileExtension.js";

@@ -18,3 +20,5 @@ const themeURLs = new Map();

* registerThemeProperties("my-package", "my_theme", {"_": ":root{--var1: red;}"});
* 3) Pass a URL to a JSON file, containing the CSS Vars in its "_" property. Will be fetched on demand, not upon registration.
* 3) Pass a URL to a CSS file, containing the CSS Vars. Will be fetched on demand, not upon registration.
* registerThemeProperties("my-package", "my_theme", "http://url/to/my/theme.css");
* 4) Pass a URL to a JSON file, containing the CSS Vars in its "_" property. Will be fetched on demand, not upon registration.
* registerThemeProperties("my-package", "my_theme", "http://url/to/my/theme.json");

@@ -25,3 +29,3 @@ *

* @param themeName - the theme which the CSS Vars implement
* @param style - can be one of three options: a string, an object with a "_" property or a URL to a JSON file with a "_" property
* @param style - can be one of four options: a string, an object with a "_" property, URL to a CSS file, or URL to a JSON file with a "_" property
*/

@@ -32,4 +36,4 @@ const registerThemeProperties = (packageName, themeName, style) => {

themeStyles.set(`${packageName}_${themeName}`, style._);
} else if (style.includes(":root")) {
// pure string
} else if (style.includes(":root") || style === "") {
// pure string, including empty string
themeStyles.set(`${packageName}_${themeName}`, style);

@@ -46,3 +50,3 @@ } else {

const style = themeStyles.get(`${packageName}_${themeName}`);
if (style) {
if (style !== undefined) { // it's valid for style to be an empty string
return style;

@@ -53,9 +57,11 @@ }

const regThemesStr = [...registeredThemes.values()].join(", ");
console.warn(`You have requested a non-registered theme - falling back to sap_fiori_3. Registered themes are: ${regThemesStr}`); /* eslint-disable-line */
return themeStyles.get(`${packageName}_sap_fiori_3`);
console.warn(`You have requested a non-registered theme - falling back to ${DEFAULT_THEME}. Registered themes are: ${regThemesStr}`); /* eslint-disable-line */
return themeStyles.get(`${packageName}_${DEFAULT_THEME}`);
}
const data = await fetchThemeProperties(packageName, themeName);
themeStyles.set(`${packageName}_${themeName}`, data._);
return data._;
const themeProps = data._ || data;
themeStyles.set(`${packageName}_${themeName}`, themeProps);
return themeProps;
};

@@ -69,3 +75,4 @@

}
return fetchJsonOnce(url);
return getFileExtension(url) === ".css" ? fetchTextOnce(url) : fetchJsonOnce(url);
};

@@ -77,2 +84,6 @@

const isThemeRegistered = theme => {
return registeredThemes.has(theme);
};
export {

@@ -82,2 +93,3 @@ registerThemeProperties,

getRegisteredPackages,
isThemeRegistered,
};

@@ -9,3 +9,2 @@ import whenDOMReady from "./util/whenDOMReady.js";

let bootPromise;
const OpenUI5Support = getFeature("OpenUI5Support");

@@ -18,2 +17,3 @@ const boot = () => {

bootPromise = new Promise(async resolve => {
const OpenUI5Support = getFeature("OpenUI5Support");
if (OpenUI5Support) {

@@ -20,0 +20,0 @@ await OpenUI5Support.init();

@@ -0,1 +1,2 @@

import { isPhone } from "../Device.js";
import EventProvider from "../EventProvider.js";

@@ -5,3 +6,3 @@ import scroll from "../animations/scroll.js";

const scrollEventName = "scroll";
const touchEndEventName = "touchend";
const touchEndEventName = isPhone() ? "touchend" : "mouseup";

@@ -11,5 +12,26 @@ class ScrollEnablement extends EventProvider {

super();
containerComponent.addEventListener("touchstart", this.ontouchstart.bind(this), { passive: true });
containerComponent.addEventListener("touchmove", this.ontouchmove.bind(this), { passive: true });
containerComponent.addEventListener("touchend", this.ontouchend.bind(this), { passive: true });
this.containerComponent = containerComponent;
this.mouseMove = this.ontouchmove.bind(this);
this.mouseUp = this.ontouchend.bind(this);
this.touchStart = this.ontouchstart.bind(this);
this.isPhone = isPhone();
// On Android devices touchmove is thrown one more time than neccessary (together with touchend)
// so we have to cache the previus coordinates in order to provide correct parameters in the
// event for Android
this.cachedValue = {};
// In components like Carousel you need to know if the user has clicked on something or swiped
// in order to throw the needed event or not
this.startX = 0;
this.startY = 0;
if (this.isPhone) {
containerComponent.addEventListener("touchstart", this.touchStart, { passive: true });
containerComponent.addEventListener("touchmove", this.mouseMove, { passive: true });
containerComponent.addEventListener("touchend", this.mouseUp, { passive: true });
} else {
containerComponent.addEventListener("mousedown", this.touchStart, { passive: true });
}
}

@@ -48,4 +70,4 @@

const rect = this._container.getBoundingClientRect();
const x = touch.clientX;
const y = touch.clientY;
const x = this.isPhone ? touch.clientX : touch.x;
const y = this.isPhone ? touch.clientY : touch.y;

@@ -57,7 +79,17 @@ return x >= rect.left && x <= rect.right

ontouchstart(event) {
const touch = event.touches[0];
this._prevDragX = touch.pageX;
this._prevDragY = touch.pageY;
const touch = this.isPhone ? event.touches[0] : null;
this._canScroll = this._isTouchInside(touch);
if (!this.isPhone) {
document.addEventListener("mouseup", this.mouseUp, { passive: true });
document.addEventListener("mousemove", this.mouseMove, { passive: true });
} else {
// Needed only on mobile
this.startX = touch.pageX;
this.startY = touch.pageY;
}
this._prevDragX = this.isPhone ? touch.pageX : event.x;
this._prevDragY = this.isPhone ? touch.pageY : event.y;
this._canScroll = this._isTouchInside(this.isPhone ? touch : event);
}

@@ -71,6 +103,6 @@

const container = this._container;
const touch = event.touches[0];
const touch = this.isPhone ? event.touches[0] : null;
const dragX = touch.pageX;
const dragY = touch.pageY;
const dragX = this.isPhone ? touch.pageX : event.x;
const dragY = this.isPhone ? touch.pageY : event.y;

@@ -85,2 +117,5 @@ container.scrollLeft += this._prevDragX - dragX;

this.cachedValue.dragX = this._prevDragX;
this.cachedValue.dragY = this._prevDragY;
this._prevDragX = dragX;

@@ -91,2 +126,11 @@ this._prevDragY = dragY;

ontouchend(event) {
if (this.isPhone) {
const deltaX = Math.abs(event.changedTouches[0].pageX - this.startX);
const deltaY = Math.abs(event.changedTouches[0].pageY - this.startY);
if (deltaX < 10 && deltaY < 10) {
return;
}
}
if (!this._canScroll) {

@@ -97,4 +141,4 @@ return;

const container = this._container;
const dragX = event.pageX;
const dragY = event.pageY;
const dragX = this.isPhone ? event.changedTouches[0].pageX : event.x;
const dragY = this.isPhone ? event.changedTouches[0].pageY : event.y;

@@ -104,5 +148,9 @@ container.scrollLeft += this._prevDragX - dragX;

const useCachedValues = dragX === this._prevDragX;
const _dragX = useCachedValues ? this.cachedValue.dragX : dragX;
// const _dragY = useCachedValues ? this.cachedValue.dragY : dragY; add if needed
this.fireEvent(touchEndEventName, {
isLeft: dragX > this._prevDragX,
isRight: dragX < this._prevDragX,
isLeft: _dragX < this._prevDragX,
isRight: _dragX > this._prevDragX,
});

@@ -112,2 +160,7 @@

this._prevDragY = dragY;
if (!this.isPhone) {
document.removeEventListener("mousemove", this.mouseMove, { passive: true });
document.removeEventListener("mouseup", this.mouseUp);
}
}

@@ -114,0 +167,0 @@ }

@@ -38,3 +38,3 @@ import { registerFeature } from "../FeaturesRegistry.js";

formatSettings: {
firstDayOfWeek: LocaleData.getInstance(config.getLocale()).getFirstDayOfWeek(),
firstDayOfWeek: LocaleData ? LocaleData.getInstance(config.getLocale()).getFirstDayOfWeek() : undefined,
},

@@ -69,2 +69,15 @@ };

const cssVariablesLoaded = () => {
if (!core) {
return;
}
const link = [...document.head.children].find(el => el.id === "sap-ui-theme-sap.ui.core"); // more reliable than querySelector early
if (!link) {
return;
}
return !!link.href.match(/\/css-variables\.css/);
};
const OpenUI5Support = {

@@ -76,4 +89,5 @@ isLoaded,

attachListeners,
cssVariablesLoaded,
};
registerFeature("OpenUI5Support", OpenUI5Support);

@@ -15,9 +15,7 @@ import { fetchI18nBundle, getI18nBundleData } from "./asset-registries/i18n.js";

}
const bundle = getI18nBundleData(this.packageName);
const messageText = bundle && bundle[textObj.key] ? bundle[textObj.key] : textObj.defaultText;
if (!bundle || !bundle[textObj.key]) {
return formatMessage(textObj.defaultText, params); // Fallback to "en"
}
return formatMessage(bundle[textObj.key], params);
return formatMessage(messageText, params);
}

@@ -24,0 +22,0 @@ }

import merge from "./thirdparty/merge.js";
import { getFeature } from "./FeaturesRegistry.js";
import { DEFAULT_THEME } from "./generated/AssetParameters.js";

@@ -8,3 +9,3 @@ let initialized = false;

animationMode: "full",
theme: "sap_fiori_3",
theme: DEFAULT_THEME,
rtl: null,

@@ -11,0 +12,0 @@ language: null,

@@ -0,1 +1,3 @@

import { DEFAULT_LOCALE } from "../generated/AssetParameters.js";
/**

@@ -5,7 +7,7 @@ * Calculates the next fallback locale for the given locale.

* @param {string} locale Locale string in Java format (underscores) or null
* @returns {string|null} Next fallback Locale or null if there is no more fallback
* @returns {string} Next fallback Locale or "en" if no fallbacks found.
*/
const nextFallbackLocale = locale => {
if (!locale) {
return null;
return DEFAULT_LOCALE;
}

@@ -23,6 +25,6 @@

// for any language but 'en', fallback to 'en' first before falling back to the 'raw' language (empty string)
return locale !== "en" ? "en" : "";
// for any language but the default, fallback to the default first before falling back to the 'raw' language (empty string)
return locale !== DEFAULT_LOCALE ? DEFAULT_LOCALE : "";
};
export default nextFallbackLocale;

@@ -0,1 +1,3 @@

import { DEFAULT_LOCALE } from "../generated/AssetParameters.js";
const localeRegEX = /^((?:[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;

@@ -15,3 +17,3 @@ const SAPSupportabilityLocales = /(?:^|-)(saptrc|sappsd)(?:-|$)/i;

* @param {string} locale locale to normalize
* @returns {string} Normalized locale or undefined if the locale can't be normalized
* @returns {string} Normalized locale, "undefined" if the locale can't be normalized or the default locale, if no locale provided.
*/

@@ -21,2 +23,6 @@ const normalizeLocale = locale => {

if (!locale) {
return DEFAULT_LOCALE;
}
if (typeof locale === "string" && (m = localeRegEX.exec(locale.replace(/_/g, "-")))) {/* eslint-disable-line */

@@ -23,0 +29,0 @@ let language = m[1].toLowerCase();

import RenderQueue from "./RenderQueue.js";
import { getAllRegisteredTags } from "./CustomElementsRegistry.js";

@@ -121,29 +122,9 @@ const MAX_RERENDER_COUNT = 10;

static getNotDefinedComponents() {
return Array.from(document.querySelectorAll("*")).filter(el => el.localName.startsWith("ui5-") && !el.isUI5Element);
static whenAllCustomElementsAreDefined() {
const definedPromises = getAllRegisteredTags().map(tag => customElements.whenDefined(tag));
return Promise.all(definedPromises);
}
/**
* return a promise that will be resolved once all ui5 webcomponents on the page have their shadow root ready
*/
static async whenShadowDOMReady() {
const undefinedElements = this.getNotDefinedComponents();
const definedPromises = undefinedElements.map(
el => customElements.whenDefined(el.localName)
);
const timeoutPromise = new Promise(resolve => setTimeout(resolve, 5000));
await Promise.race([Promise.all(definedPromises), timeoutPromise]);
const stillUndefined = this.getNotDefinedComponents();
if (stillUndefined.length) {
// eslint-disable-next-line
console.warn("undefined elements after 5 seconds are: " + [...stillUndefined].map(el => el.localName).join(" ; "));
}
return Promise.resolve();
}
static async whenFinished() {
await RenderScheduler.whenShadowDOMReady();
await RenderScheduler.whenAllCustomElementsAreDefined();
await RenderScheduler.whenDOMUpdated();

@@ -150,0 +131,0 @@ }

@@ -1,2 +0,2 @@

var t={},e=t.hasOwnProperty,s=t.toString,n=e.toString,o=n.call(Object),i=function(t){var i,r;return!(!t||"[object Object]"!==s.call(t))&&(!(i=Object.getPrototypeOf(t))||"function"==typeof(r=e.call(i,"constructor")&&i.constructor)&&n.call(r)===o)},r=Object.create(null),a=function(){var t,e,s,n,o,l,c=arguments[2]||{},d=3,u=arguments.length,h=arguments[0]||!1,p=arguments[1]?void 0:r;for("object"!=typeof c&&"function"!=typeof c&&(c={});d<u;d++)if(null!=(o=arguments[d]))for(n in o)t=c[n],s=o[n],"__proto__"!==n&&c!==s&&(h&&s&&(i(s)||(e=Array.isArray(s)))?(e?(e=!1,l=t&&Array.isArray(t)?t:[]):l=t&&i(t)?t:{},c[n]=a(h,arguments[1],l,s)):s!==p&&(c[n]=s));return c},l=function(){var t=[!0,!1];return t.push.apply(t,arguments),a.apply(null,t)};const c=new Map,d=t=>c.get(t);let u=!1,h={animationMode:"full",theme:"sap_fiori_3",rtl:null,language:null,calendarType:null,noConflict:!1,formatSettings:{}};const p=new Map;p.set("true",!0),p.set("false",!1);const m=()=>{u||((()=>{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&&(h=l(h,e))}})(),new URLSearchParams(window.location.search).forEach((t,e)=>{if(!e.startsWith("sap-ui"))return;const s=t.toLowerCase(),n=e.split("sap-ui-")[1];p.has(t)&&(t=p.get(s)),h[n]=t}),(()=>{const t=d("OpenUI5Support");if(!t||!t.isLoaded())return;const e=t.getConfigurationSettingsObject();h=l(h,e)})(),u=!0)};let f;const g=()=>(void 0===f&&(f=(()=>(m(),h.language))()),f),w=new Map,_=new Map,y=(d("OpenUI5Support"),new Map),v=new Map,b=new Set,S=new Set,E=(t,e,s)=>{s._?v.set(`${t}_${e}`,s._):s.includes(":root")?v.set(`${t}_${e}`,s):y.set(`${t}_${e}`,s),b.add(t),S.add(e)},A=async(t,e)=>{const s=y.get(`${t}_${e}`);if(!s)throw new Error(`You have to import the ${t}/dist/Assets.js module to switch to additional themes`);return(async t=>{w.get(t)||w.set(t,fetch(t));const e=await w.get(t);return _.get(t)||_.set(t,e.json()),_.get(t)})(s)},x=()=>b;
const t={default:"sap_fiori_3",all:["sap_fiori_3","sap_fiori_3_dark","sap_belize","sap_belize_hcb","sap_belize_hcw"]}.default,e={default:"en",all:["ar","bg","ca","cs","da","de","el","en","es","et","fi","fr","hi","hr","hu","it","iw","ja","kk","ko","lt","lv","ms","nl","no","pl","pt","ro","ru","sh","sk","sl","sv","th","tr","uk","vi","zh_CN","zh_TW"]}.default;var s={},n=s.hasOwnProperty,i=s.toString,o=n.toString,r=o.call(Object),a=function(t){var e,s;return!(!t||"[object Object]"!==i.call(t))&&(!(e=Object.getPrototypeOf(t))||"function"==typeof(s=n.call(e,"constructor")&&e.constructor)&&o.call(s)===r)},l=Object.create(null),c=function(){var t,e,s,n,i,o,r=arguments[2]||{},d=3,u=arguments.length,h=arguments[0]||!1,p=arguments[1]?void 0:l;for("object"!=typeof r&&"function"!=typeof r&&(r={});d<u;d++)if(null!=(i=arguments[d]))for(n in i)t=r[n],s=i[n],"__proto__"!==n&&r!==s&&(h&&s&&(a(s)||(e=Array.isArray(s)))?(e?(e=!1,o=t&&Array.isArray(t)?t:[]):o=t&&a(t)?t:{},r[n]=c(h,arguments[1],o,s)):s!==p&&(r[n]=s));return r},d=function(){var t=[!0,!1];return t.push.apply(t,arguments),c.apply(null,t)};const u=new Map,h=t=>u.get(t);let p=!1,m={animationMode:"full",theme:t,rtl:null,language:null,calendarType:null,noConflict:!1,formatSettings:{}};const f=new Map;f.set("true",!0),f.set("false",!1);const g=()=>{p||((()=>{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&&(m=d(m,e))}})(),new URLSearchParams(window.location.search).forEach((t,e)=>{if(!e.startsWith("sap-ui"))return;const s=t.toLowerCase(),n=e.split("sap-ui-")[1];f.has(t)&&(t=f.get(s)),m[n]=t}),(()=>{const t=h("OpenUI5Support");if(!t||!t.isLoaded())return;const e=t.getConfigurationSettingsObject();m=d(m,e)})(),p=!0)};let w;const y=()=>(void 0===w&&(w=(()=>(g(),m.language))()),w),_=new Map,v=new Map,b=new Map,S=new Map,A=new Map,E=new Set,C=new Set,x=(t,e,s)=>{s._?A.set(`${t}_${e}`,s._):s.includes(":root")||""===s?A.set(`${t}_${e}`,s):S.set(`${t}_${e}`,s),E.add(t),C.add(e)},O=async(e,s)=>{const n=A.get(`${e}_${s}`);if(void 0!==n)return n;if(!C.has(s)){const s=[...C.values()].join(", ");return console.warn(`You have requested a non-registered theme - falling back to ${t}. Registered themes are: ${s}`),A.get(`${e}_${t}`)}const i=await M(e,s),o=i._||i;return A.set(`${e}_${s}`,o),o},M=async(t,e)=>{const s=S.get(`${t}_${e}`);if(!s)throw new Error(`You have to import the ${t}/dist/Assets.js module to switch to additional themes`);return".css"===(t=>{const e=t.lastIndexOf(".");return e<1?"":t.slice(e)})(s)?(async t=>{_.get(t)||_.set(t,fetch(t));const e=await _.get(t);return b.get(t)||b.set(t,e.text()),b.get(t)})(s):(async t=>{_.get(t)||_.set(t,fetch(t));const e=await _.get(t);return v.get(t)||v.set(t,e.json()),v.get(t)})(s)},P=()=>E;
/**

@@ -9,3 +9,3 @@ *

*/
!function(t){var e,s=t.URLSearchParams&&t.URLSearchParams.prototype.get?t.URLSearchParams:null,n=s&&"a=1"===new s({a:1}).toString(),o=s&&"+"===new s("s=%2B").get("s"),i="__URLSearchParams__",r=!s||((e=new s).append("s"," &"),"s=+%26"===e.toString()),a=u.prototype,l=!(!t.Symbol||!t.Symbol.iterator);if(!(s&&n&&o&&r)){a.append=function(t,e){g(this[i],t,e)},a.delete=function(t){delete this[i][t]},a.get=function(t){var e=this[i];return t in e?e[t][0]:null},a.getAll=function(t){var e=this[i];return t in e?e[t].slice(0):[]},a.has=function(t){return t in this[i]},a.set=function(t,e){this[i][t]=[""+e]},a.toString=function(){var t,e,s,n,o=this[i],r=[];for(e in o)for(s=h(e),t=0,n=o[e];t<n.length;t++)r.push(s+"="+h(n[t]));return r.join("&")};var c=!!o&&s&&!n&&t.Proxy;Object.defineProperty(t,"URLSearchParams",{value:c?new Proxy(s,{construct:function(t,e){return new t(new u(e[0]).toString())}}):u});var d=t.URLSearchParams.prototype;d.polyfill=!0,d.forEach=d.forEach||function(t,e){var s=f(this.toString());Object.getOwnPropertyNames(s).forEach((function(n){s[n].forEach((function(s){t.call(e,s,n,this)}),this)}),this)},d.sort=d.sort||function(){var t,e,s,n=f(this.toString()),o=[];for(t in n)o.push(t);for(o.sort(),e=0;e<o.length;e++)this.delete(o[e]);for(e=0;e<o.length;e++){var i=o[e],r=n[i];for(s=0;s<r.length;s++)this.append(i,r[s])}},d.keys=d.keys||function(){var t=[];return this.forEach((function(e,s){t.push(s)})),m(t)},d.values=d.values||function(){var t=[];return this.forEach((function(e){t.push(e)})),m(t)},d.entries=d.entries||function(){var t=[];return this.forEach((function(e,s){t.push([s,e])})),m(t)},l&&(d[t.Symbol.iterator]=d[t.Symbol.iterator]||d.entries)}function u(t){((t=t||"")instanceof URLSearchParams||t instanceof u)&&(t=t.toString()),this[i]=f(t)}function h(t){var e={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(t).replace(/[!'\(\)~]|%20|%00/g,(function(t){return e[t]}))}function p(t){return decodeURIComponent(t.replace(/\+/g," "))}function m(e){var s={next:function(){var t=e.shift();return{done:void 0===t,value:t}}};return l&&(s[t.Symbol.iterator]=function(){return s}),s}function f(t){var e={};if("object"==typeof t)for(var s in t)t.hasOwnProperty(s)&&g(e,s,t[s]);else{0===t.indexOf("?")&&(t=t.slice(1));for(var n=t.split("&"),o=0;o<n.length;o++){var i=n[o],r=i.indexOf("=");-1<r?g(e,p(i.slice(0,r)),p(i.slice(r+1))):i&&g(e,p(i),"")}}return e}function g(t,e,s){var n="string"==typeof s?s:null!=s&&"function"==typeof s.toString?s.toString():JSON.stringify(s);e in t?t[e].push(n):t[e]=[n]}}("undefined"!=typeof global?global:window);(()=>{if(!window.ShadyDOM)return;const t=Object.getOwnPropertyDescriptor(Node.prototype,"nodeValue");Object.defineProperty(Node.prototype,"nodeValue",{get(){return t.get.apply(this)},set(e){t.set.apply(this,arguments);const s=this.parentNode;s instanceof HTMLElement&&s.isUI5Element&&s._processChildren()}})})();const C=(t,e={})=>{const s=document.createElement("style");return s.type="text/css",Object.entries(e).forEach(t=>s.setAttribute(...t)),s.textContent=t,document.head.appendChild(s),s};let O;const P=()=>!!window.CSSVarsPonyfill,M=()=>{O=void 0,window.CSSVarsPonyfill.cssVars({rootElement:document.head,include:"style[data-ui5-theme-properties],style[data-ui5-element-styles]",silent:!0})},R=async t=>{let e="";const s=x();s.forEach(async s=>{e=await(async(t,e)=>{const s=v.get(`${t}_${e}`);if(s)return s;if(!S.has(e)){const e=[...S.values()].join(", ");return console.warn(`You have requested a non-registered theme - falling back to sap_fiori_3. Registered themes are: ${e}`),v.get(`${t}_sap_fiori_3`)}const n=await A(t,e);return v.set(`${t}_${e}`,n._),n._})(s,t),((t,e)=>{const s=document.head.querySelector(`style[data-ui5-theme-properties="${e}"]`);if(s)s.textContent=t||"";else{C(t,{"data-ui5-theme-properties":e})}P()&&M()})(e,s)})};let N;const D=()=>(void 0===N&&(N=(()=>(m(),h.theme))()),N),T=async t=>{N!==t&&(N=t,await R(N))},L=window.sap,I=L&&L.ui&&"function"==typeof L.ui.getCore&&L.ui.getCore();var V,$;V="OpenUI5Support",$={isLoaded:()=>!!I,init:()=>I?new Promise(t=>{I.attachInit(()=>{L.ui.require(["sap/ui/core/LocaleData"],t)})}):Promise.resolve(),getConfigurationSettingsObject:()=>{if(!I)return;const t=I.getConfiguration(),e=L.ui.require("sap/ui/core/LocaleData");return{animationMode:t.getAnimationMode(),language:t.getLanguage(),theme:t.getTheme(),rtl:t.getRTL(),calendarType:t.getCalendarType(),formatSettings:{firstDayOfWeek:e.getInstance(t.getLocale()).getFirstDayOfWeek()}}},getLocaleDataObject:()=>{if(!I)return;const t=I.getConfiguration();return L.ui.require("sap/ui/core/LocaleData").getInstance(t.getLocale())._get()},attachListeners:()=>{I&&(()=>{const t=I.getConfiguration();I.attachThemeChanged(async()=>{await T(t.getTheme())})})()}},c.set(V,$);let k;let j;const F=d("OpenUI5Support"),U=()=>j||(j=new Promise(async t=>{F&&await F.init(),await(()=>new Promise(t=>{document.body?t():document.addEventListener("DOMContentLoaded",()=>{t()})}))(),await R(D()),F&&F.attachListeners(),(()=>{if(document.querySelector("head>style[data-ui5-font-face]"))return;const t=d("OpenUI5Support");t&&t.isLoaded()||C('\n\t@font-face {\n\t\tfont-family: "72";\n\t\tfont-style: normal;\n\t\tfont-weight: 400;\n\t\tsrc: local("72"),\n\t\t\turl(https://ui5.sap.com/sdk/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Regular.woff2?ui5-webcomponents) format("woff2"),\n\t\t\turl(https://ui5.sap.com/sdk/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Regular.woff?ui5-webcomponents) format("woff");\n\t}\n\t\n\t@font-face {\n\t\tfont-family: "72full";\n\t\tfont-style: normal;\n\t\tfont-weight: 400;\n\t\tsrc: local(\'72-full\'),\n\t\t\turl(https://ui5.sap.com/sdk/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Regular-full.woff2?ui5-webcomponents) format("woff2"),\n\t\t\turl(https://ui5.sap.com/sdk/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Regular-full.woff?ui5-webcomponents) format("woff");\n\t\t\n\t}\n\t\n\t@font-face {\n\t\tfont-family: "72";\n\t\tfont-style: normal;\n\t\tfont-weight: 700;\n\t\tsrc: local(\'72-Bold\'),\n\t\t\turl(https://ui5.sap.com/sdk/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold.woff2?ui5-webcomponents) format("woff2"),\n\t\t\turl(https://ui5.sap.com/sdk/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold.woff?ui5-webcomponents) format("woff");\n\t}\n\t\n\t@font-face {\n\t\tfont-family: "72full";\n\t\tfont-style: normal;\n\t\tfont-weight: 700;\n\t\tsrc: local(\'72-Bold-full\'),\n\t\t\turl(https://ui5.sap.com/sdk/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold-full.woff2?ui5-webcomponents) format("woff2"),\n\t\t\turl(https://ui5.sap.com/sdk/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold-full.woff?ui5-webcomponents) format("woff");\n\t}\n',{"data-ui5-font-face":""})})(),await(()=>k||(k=new Promise(t=>{window.WebComponents&&!window.WebComponents.ready&&window.WebComponents.waitFor?window.WebComponents.waitFor(()=>{t()}):t()}),k))(),t()}),j);class H{static isValid(t){}static generataTypeAcessors(t){Object.keys(t).forEach(e=>{Object.defineProperty(this,e,{get:()=>t[e]})})}}const B=new Map,W=new Map,z=t=>{if(!B.has(t)){const e=J(t.split("-"));B.set(t,e)}return B.get(t)},q=t=>{if(!W.has(t)){const e=t.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase();W.set(t,e)}return W.get(t)},J=t=>t.map((t,e)=>0===e?t.toLowerCase():t.charAt(0).toUpperCase()+t.slice(1).toLowerCase()).join("");class G{constructor(t){this.metadata=t}static validatePropertyValue(t,e){return e.multiple?t.map(t=>X(t,e)):X(t,e)}static validateSlotValue(t,e){return Z(t,e)}getTag(){return this.metadata.tag}hasAttribute(t){const e=this.getProperties()[t];return e.type!==Object&&!e.noAttribute}getPropertiesList(){return Object.keys(this.getProperties())}getAttributesList(){return this.getPropertiesList().filter(this.hasAttribute,this).map(q)}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}getProperties(){return this.metadata.properties||{}}getEvents(){return this.metadata.events||{}}}const X=(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:((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})(s,H)?s.isValid(t)?t:e.defaultValue:void 0},Z=(t,e)=>{if(null===t)return t;return(t=>{return t instanceof HTMLElement&&"slot"===t.localName?t.assignedNodes({flatten:!0}).filter(t=>t instanceof HTMLElement):[t]})(t).forEach(t=>{if(!(t instanceof e.type))throw new Error(`${t} is not of type ${e.type}`)}),t},Y=()=>{let t=document.querySelector("ui5-static-area");if(t)return t;const e=document.body;return t=document.createElement("ui5-static-area"),e.insertBefore(t,e.firstChild)},K=()=>{Y().destroy()};class Q extends HTMLElement{constructor(){super()}get isUI5Element(){return!0}destroy(){const t=document.querySelector(this.tagName.toLowerCase());t.parentElement.removeChild(t)}}customElements.get("ui5-static-area")||customElements.define("ui5-static-area",Q);class tt{constructor(t){this.ui5ElementContext=t}_updateFragment(){const t=this.ui5ElementContext.constructor.staticAreaTemplate(this.ui5ElementContext),e=this.ui5ElementContext.constructor.staticAreaStyles||!1;this.staticAreaItemDomRef||(this.staticAreaItemDomRef=document.createElement("ui5-static-area-item"),this.staticAreaItemDomRef.attachShadow({mode:"open"}),this.staticAreaItemDomRef.classList.add(this.ui5ElementContext._id),Y().appendChild(this.staticAreaItemDomRef)),this.ui5ElementContext.constructor.render(t,this.staticAreaItemDomRef.shadowRoot,e,{eventContext:this.ui5ElementContext})}_removeFragmentFromStaticArea(){const t=Y();t.removeChild(this.staticAreaItemDomRef),this.staticAreaItemDomRef=null,t.childElementCount<1&&K()}_updateContentDensity(t){this.staticAreaItemDomRef&&(t?(this.staticAreaItemDomRef.classList.add("sapUiSizeCompact"),this.staticAreaItemDomRef.classList.add("ui5-content-density-compact")):(this.staticAreaItemDomRef.classList.remove("sapUiSizeCompact"),this.staticAreaItemDomRef.classList.remove("ui5-content-density-compact")))}getDomRef(){return this.staticAreaItemDomRef.shadowRoot}}class et extends HTMLElement{constructor(){super()}get isUI5Element(){return!0}}customElements.get("ui5-static-area-item")||customElements.define("ui5-static-area-item",et);const st=10;let nt;const ot=new class{constructor(){this.list=[],this.promises=new Map}add(t){if(this.promises.has(t))return this.promises.get(t);let e;const s=new Promise(t=>{e=t});return s._deferredResolve=e,this.list.push(t),this.promises.set(t,s),s}shift(){const t=this.list.shift();if(t){const e=this.promises.get(t);return this.promises.delete(t),{webComponent:t,promise:e}}}getList(){return this.list}isAdded(t){return this.promises.has(t)}};let it,rt,at,lt;class ct{constructor(){throw new Error("Static class")}static renderDeferred(t){const e=ot.add(t);return ct.scheduleRenderTask(),e}static renderImmediately(t){const e=ot.add(t);return ct.runRenderTask(),e}static scheduleRenderTask(){nt||(nt=window.requestAnimationFrame(ct.renderWebComponents))}static runRenderTask(){nt||(nt=1,ct.renderWebComponents())}static renderWebComponents(){let t,e,s;const n=new Map;for(;t=ot.shift();){e=t.webComponent,s=t.promise;const o=n.get(e)||0;if(o>st)throw new Error(`Web component re-rendered too many times this task, max allowed is: ${st}`);e._render(),s._deferredResolve(),n.set(e,o+1)}lt||(lt=setTimeout(()=>{lt=void 0,0===ot.getList().length&&ct._resolveTaskPromise()},200)),nt=void 0}static whenDOMUpdated(){return it||(it=new Promise(t=>{rt=t,window.requestAnimationFrame(()=>{0===ot.getList().length&&(it=void 0,t())})}),it)}static getNotDefinedComponents(){return Array.from(document.querySelectorAll("*")).filter(t=>t.localName.startsWith("ui5-")&&!t.isUI5Element)}static async whenShadowDOMReady(){const t=this.getNotDefinedComponents().map(t=>customElements.whenDefined(t.localName)),e=new Promise(t=>setTimeout(t,5e3));await Promise.race([Promise.all(t),e]);const s=this.getNotDefinedComponents();return s.length&&console.warn("undefined elements after 5 seconds are: "+[...s].map(t=>t.localName).join(" ; ")),Promise.resolve()}static async whenFinished(){await ct.whenShadowDOMReady(),await ct.whenDOMUpdated()}static _resolveTaskPromise(){ot.getList().length>0||rt&&(rt.call(this,at),rt=void 0,it=void 0)}}const dt=window,ut=new WeakMap;class ht{constructor(){throw new Error("Static class")}static observeDOMNode(t,e,s){let n=ut.get(t);if(n)throw new Error("A mutation/ShadyDOM observer is already assigned to this node.");dt.ShadyDOM?n=dt.ShadyDOM.observeChildren(t,e):(n=new MutationObserver(e),n.observe(t,s)),ut.set(t,n)}static unobserveDOMNode(t){const e=ut.get(t);e&&(e instanceof MutationObserver?e.disconnect():dt.ShadyDOM.unobserveChildren(e),ut.delete(t))}}const pt=["value-changed"];let mt;const ft=()=>(void 0===mt&&(mt=(()=>(m(),h.noConflict))()),mt),gt=t=>{const e=ft();return!(t=>pt.includes(t))(t)&&(!0===e||!(t=>{const e=ft();return!(e.events&&e.events.includes&&e.events.includes(t))})(t))},wt={},_t=t=>{const e=(t=>wt[t]?wt[t].join(""):"")(t.getMetadata().getTag())||"";let s=t.styles;return Array.isArray(s)&&(s=s.join(" ")),`${s} ${e}`},yt=new Map,vt=t=>{const e=t.getMetadata().getTag(),s=_t(t);if(yt.has(e))return yt.get(e);const n=new CSSStyleSheet;return n.replaceSync(s),yt.set(e,n),n},bt=(t,e,s,n)=>{const o=s+e.length,i=t.charAt(o),r=t.substring(0,s)+n;if("("===i){const e=((t,e)=>{let s=1;for(let n=e+1;n<t.length;n++){const e=t.charAt(n);if("("===e?s++:")"===e&&s--,0===s)return n}})(t,o);return r+t.substring(o+1,e)+t.substring(e+1)}return r+t.substring(o)},St=(t,e)=>(t=((t,e,s)=>{let n=t.indexOf(e);for(;-1!==n;)n=(t=bt(t,e,n,s)).indexOf(e);return t})(t=t.trim(),"::slotted","")).startsWith(":host")?bt(t,":host",0,e):t.match(/^[@0-9]/)||"to"===t||"to{"===t?t:t.match(new RegExp(`^${e}[^a-zA-Z0-9-]`))?t:`${e} ${t}`,Et=new Set,At=t=>{const e=t.getMetadata().getTag();if(Et.has(e))return;let s=_t(t);s=((t,e)=>{t=(t=t.replace(/\n/g," ")).replace(/([{}])/g,"$1\n");let s="";return t.split("\n").forEach(t=>{if(t.match(/{$/)){const s=t.split(",");t=s.map(t=>St(t,e)).join(",")}s=`${s}${t}`}),s})(s,e),C(s,{"data-ui5-element-styles":e,disabled:"disabled"}),P()&&(O||(O=window.setTimeout(M,0))),Et.add(e)};class xt extends H{static isValid(t){return Number.isInteger(t)}}const Ct=t=>{if("disabled"===t)return!0;return![HTMLElement,Element,Node].some(e=>e.prototype.hasOwnProperty(t))},Ot={events:{_propertyChange:{}}},Pt=new Set;let Mt=0;const Rt=new Map,Nt="--_ui5_content_density";class Dt extends HTMLElement{constructor(){let t;super(),this._generateId(),this._initializeState(),this._upgradeAllProperties(),this._initializeContainers(),this._upToDate=!1,this._domRefReadyPromise=new Promise(e=>{t=e}),this._domRefReadyPromise._deferredResolve=t,this._monitoredChildProps=new Map,this._firePropertyChange=!1}_generateId(){this._id=`ui5wc_${++Mt}`}_initializeContainers(){const t=this.constructor._needsShadowDOM(),e=this.constructor._needsStaticArea();if(t&&(this.attachShadow({mode:"open"}),window.ShadyDOM&&At(this.constructor),document.adoptedStyleSheets)){const t=vt(this.constructor);this.shadowRoot.adoptedStyleSheets=[t]}e&&(this.staticAreaItem=new tt(this))}async connectedCallback(){const t=this.constructor._needsShadowDOM(),e=this.constructor._needsStaticArea(),s=this.constructor.getMetadata().slotsAreManaged();t&&(s&&(this._startObservingDOMChildren(),await this._processChildren()),await ct.renderImmediately(this),this._domRefReadyPromise._deferredResolve(),"function"==typeof this.onEnterDOM&&this.onEnterDOM()),e&&this.staticAreaItem._updateFragment(this)}disconnectedCallback(){const t=this.constructor._needsShadowDOM(),e=this.constructor._needsStaticArea(),s=this.constructor.getMetadata().slotsAreManaged();t&&(s&&this._stopObservingDOMChildren(),"function"==typeof this.onExitDOM&&this.onExitDOM()),e&&this.staticAreaItem._removeFragmentFromStaticArea()}_startObservingDOMChildren(){if(!this.constructor.getMetadata().hasSlots())return;const t={childList:!0,subtree:this.constructor.getMetadata().canSlotText(),characterData:!0};ht.observeDOMNode(this,this._processChildren.bind(this),t)}_stopObservingDOMChildren(){ht.unobserveDOMNode(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);for(const[e,s]of Object.entries(t))this._clearSlot(e,s);const n=new Map,o=new Map,i=s.map(async(e,s)=>{const i=this.constructor._getSlotName(e),r=t[i];if(void 0===r){const s=Object.keys(t).join(", ");return void console.warn(`Unknown slotName: ${i}, ignoring`,e,`Valid values are: ${s}`)}if(r.individualSlots){const t=(n.get(i)||0)+1;n.set(i,t),e._individualSlot=`${i}-${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=Rt.get(t);s||(s=new Promise(t=>setTimeout(t,1e3)),Rt.set(t,s)),await Promise.race([e,s])}window.customElements.upgrade(e)}}(e=this.constructor.getMetadata().constructor.validateSlotValue(e,r)).isUI5Element&&r.listenFor&&this._attachChildPropertyUpdated(e,r.listenFor);const a=r.propertyName||i;o.has(a)?o.get(a).push({child:e,idx:s}):o.set(a,[{child:e,idx:s}])});await Promise.all(i),o.forEach((t,e)=>{this._state[e]=t.sort((t,e)=>t.idx-e.idx).map(t=>t.child)}),this._invalidate("slots")}_clearSlot(t,e){const s=e.propertyName||t;let n=this._state[s];Array.isArray(n)||(n=[n]),n.forEach(t=>{t&&t.isUI5Element&&this._detachChildPropertyUpdated(t)}),this._state[s]=[],this._invalidate(s,[])}attributeChangedCallback(t,e,s){const n=this.constructor.getMetadata().getProperties(),o=t.replace(/^ui5-/,""),i=z(o);if(n.hasOwnProperty(i)){const t=n[i].type;t===Boolean&&(s=null!==s),t===xt&&(s=parseInt(s)),this[i]=s}}_updateAttribute(t,e){if(!this.constructor.getMetadata().hasAttribute(t))return;if("object"==typeof e)return;const s=q(t),n=this.getAttribute(s);"boolean"==typeof e?!0===e&&null===n?this.setAttribute(s,""):!1===e&&null!==n&&this.removeAttribute(s):n!==e&&this.setAttribute(s,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(){const t=this.constructor._getDefaultState();this._state=Object.assign({},t)}_attachChildPropertyUpdated(t,e){const s=t.constructor.getMetadata(),n=this.constructor._getSlotName(t),o=s.getProperties();let i=[],r=[];Array.isArray(e)?i=e:(i=Array.isArray(e.props)?e.props:Object.keys(o),r=Array.isArray(e.exclude)?e.exclude:[]),this._monitoredChildProps.has(n)||this._monitoredChildProps.set(n,{observedProps:i,notObservedProps:r}),t.addEventListener("_propertyChange",this._invalidateParentOnPropertyUpdate),t._firePropertyChange=!0}_detachChildPropertyUpdated(t){t.removeEventListener("_propertyChange",this._invalidateParentOnPropertyUpdate),t._firePropertyChange=!1}_propertyChange(t,e){this._updateAttribute(t,e),this._firePropertyChange&&this.dispatchEvent(new CustomEvent("_propertyChange",{detail:{name:t,newValue:e},composed:!1,bubbles:!0}))}_invalidateParentOnPropertyUpdate(t){const e=this.parentNode;if(!e)return;const s=e.constructor._getSlotName(this),n=e._monitoredChildProps.get(s);if(!n)return;const{observedProps:o,notObservedProps:i}=n;o.includes(t.detail.name)&&!i.includes(t.detail.name)&&e._invalidate("_parent_",this)}_invalidate(){this._upToDate&&this.getDomRef()&&!this._suppressInvalidation&&(this._upToDate=!1,ct.renderDeferred(this))}_render(){const t=this.constructor.getMetadata().hasIndividualSlots();this._suppressInvalidation=!0,"function"==typeof this.onBeforeRendering&&this.onBeforeRendering(),this._onComponentStateFinalized&&this._onComponentStateFinalized(),delete this._suppressInvalidation,this._upToDate=!0,this._updateShadowRoot(),this.constructor._needsStaticArea()&&this.staticAreaItem._updateFragment(this),t&&this._assignIndividualSlotsToChildren(),"function"==typeof this.onAfterRendering&&this.onAfterRendering()}_updateShadowRoot(){let t;const e=this.constructor.template(this);document.adoptedStyleSheets||window.ShadyDOM||(t=_t(this.constructor)),this.constructor.render(e,this.shadowRoot,t,{eventContext:this})}_assignIndividualSlotsToChildren(){Array.from(this.children).forEach(t=>{t._individualSlot&&t.setAttribute("slot",t._individualSlot)})}_waitForDomRef(){return this._domRefReadyPromise}getDomRef(){if(this.shadowRoot&&0!==this.shadowRoot.children.length)return 1===this.shadowRoot.children.length?this.shadowRoot.children[0]:this.shadowRoot.children[1]}getFocusDomRef(){const t=this.getDomRef();if(t){return t.querySelector("[data-sap-focus-ref]")||t}}async focus(){await this._waitForDomRef();const t=this.getFocusDomRef();t&&"function"==typeof t.focus&&t.focus()}fireEvent(t,e,s){let n=!0;const o=new CustomEvent(`ui5-${t}`,{detail:e,composed:!1,bubbles:!0,cancelable:s});if(n=this.dispatchEvent(o),gt(t))return n;const i=new CustomEvent(t,{detail:e,composed:!1,bubbles:!0,cancelable:s});return this.dispatchEvent(i)&&n}getSlottedNodes(t){return this[t].reduce((t,e)=>"slot"!==e.localName?t.concat([e]):t.concat(e.assignedNodes({flatten:!0}).filter(t=>t instanceof HTMLElement)),[])}get isCompact(){return"compact"===getComputedStyle(this).getPropertyValue(Nt)}updateStaticAreaItemContentDensity(){this.staticAreaItem&&this.staticAreaItem._updateContentDensity(this.isCompact)}get isUI5Element(){return!0}static get observedAttributes(){return this.getMetadata().getAttributesList()}static _getSlotName(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"}static _needsShadowDOM(){return!!this.template}static _needsStaticArea(){return"function"==typeof this.staticAreaTemplate}getStaticAreaItemDomRef(){return this.staticAreaItem.getDomRef()}static _getDefaultState(){if(this._defaultState)return this._defaultState;const t=this.getMetadata(),e={},s=t.slotsAreManaged(),n=t.getProperties();for(const t in n){const s=n[t].type,o=n[t].defaultValue;s===Boolean?(e[t]=!1,void 0!==o&&console.warn("The 'defaultValue' metadata key is ignored for all booleans properties, they would be initialized with 'false' by default")):n[t].multiple?e[t]=[]:e[t]=s===Object?"defaultValue"in n[t]?n[t].defaultValue:{}:s===String?"defaultValue"in n[t]?n[t].defaultValue:"":o}if(s){const s=t.getSlots();for(const[t,n]of Object.entries(s)){e[n.propertyName||t]=[]}}return this._defaultState=e,e}static _generateAccessors(){const t=this.prototype,e=this.getMetadata().slotsAreManaged(),s=this.getMetadata().getProperties();for(const[e,n]of Object.entries(s)){if(!Ct(e))throw new Error(`"${e}" is not a valid property name. Use a name that does not collide with DOM APIs`);if("boolean"===n.type&&n.defaultValue)throw new Error(`Cannot set a default value for property "${e}". All booleans are false 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){t=this.constructor.getMetadata().constructor.validatePropertyValue(t,n),this._state[e]!==t&&(this._state[e]=t,this._invalidate(e,t),this._propertyChange(e,t))}})}if(e){const e=this.getMetadata().getSlots();for(const[s,n]of Object.entries(e)){if(!Ct(s))throw new Error(`"${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 slots directly, use the DOM APIs")}})}}}static get metadata(){return Ot}static get styles(){return""}static async define(){await U(),this.onDefine&&await this.onDefine();const t=this.getMetadata().getTag(),e=Pt.has(t),s=customElements.get(t);return s&&!e?console.warn(`Skipping definition of tag ${t}, because it was already defined by another instance of ui5-webcomponents.`):s||(this._generateAccessors(),Pt.add(t),window.customElements.define(t,this)),this}static getMetadata(){if(this.hasOwnProperty("_metadata"))return this._metadata;const t=[this.metadata];let e=this;for(;e!==Dt;)e=Object.getPrototypeOf(e),t.unshift(e.metadata);const s=l({},...t);return this._metadata=new G(s),this._metadata}}
!function(t){var e,s=t.URLSearchParams&&t.URLSearchParams.prototype.get?t.URLSearchParams:null,n=s&&"a=1"===new s({a:1}).toString(),i=s&&"+"===new s("s=%2B").get("s"),o="__URLSearchParams__",r=!s||((e=new s).append("s"," &"),"s=+%26"===e.toString()),a=u.prototype,l=!(!t.Symbol||!t.Symbol.iterator);if(!(s&&n&&i&&r)){a.append=function(t,e){g(this[o],t,e)},a.delete=function(t){delete this[o][t]},a.get=function(t){var e=this[o];return t in e?e[t][0]:null},a.getAll=function(t){var e=this[o];return t in e?e[t].slice(0):[]},a.has=function(t){return t in this[o]},a.set=function(t,e){this[o][t]=[""+e]},a.toString=function(){var t,e,s,n,i=this[o],r=[];for(e in i)for(s=h(e),t=0,n=i[e];t<n.length;t++)r.push(s+"="+h(n[t]));return r.join("&")};var c=!!i&&s&&!n&&t.Proxy;Object.defineProperty(t,"URLSearchParams",{value:c?new Proxy(s,{construct:function(t,e){return new t(new u(e[0]).toString())}}):u});var d=t.URLSearchParams.prototype;d.polyfill=!0,d.forEach=d.forEach||function(t,e){var s=f(this.toString());Object.getOwnPropertyNames(s).forEach((function(n){s[n].forEach((function(s){t.call(e,s,n,this)}),this)}),this)},d.sort=d.sort||function(){var t,e,s,n=f(this.toString()),i=[];for(t in n)i.push(t);for(i.sort(),e=0;e<i.length;e++)this.delete(i[e]);for(e=0;e<i.length;e++){var o=i[e],r=n[o];for(s=0;s<r.length;s++)this.append(o,r[s])}},d.keys=d.keys||function(){var t=[];return this.forEach((function(e,s){t.push(s)})),m(t)},d.values=d.values||function(){var t=[];return this.forEach((function(e){t.push(e)})),m(t)},d.entries=d.entries||function(){var t=[];return this.forEach((function(e,s){t.push([s,e])})),m(t)},l&&(d[t.Symbol.iterator]=d[t.Symbol.iterator]||d.entries)}function u(t){((t=t||"")instanceof URLSearchParams||t instanceof u)&&(t=t.toString()),this[o]=f(t)}function h(t){var e={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(t).replace(/[!'\(\)~]|%20|%00/g,(function(t){return e[t]}))}function p(t){return decodeURIComponent(t.replace(/\+/g," "))}function m(e){var s={next:function(){var t=e.shift();return{done:void 0===t,value:t}}};return l&&(s[t.Symbol.iterator]=function(){return s}),s}function f(t){var e={};if("object"==typeof t)for(var s in t)t.hasOwnProperty(s)&&g(e,s,t[s]);else{0===t.indexOf("?")&&(t=t.slice(1));for(var n=t.split("&"),i=0;i<n.length;i++){var o=n[i],r=o.indexOf("=");-1<r?g(e,p(o.slice(0,r)),p(o.slice(r+1))):o&&g(e,p(o),"")}}return e}function g(t,e,s){var n="string"==typeof s?s:null!=s&&"function"==typeof s.toString?s.toString():JSON.stringify(s);e in t?t[e].push(n):t[e]=[n]}}("undefined"!=typeof global?global:window);(()=>{if(!window.ShadyDOM)return;const t=Object.getOwnPropertyDescriptor(Node.prototype,"nodeValue");Object.defineProperty(Node.prototype,"nodeValue",{get(){return t.get.apply(this)},set(e){t.set.apply(this,arguments);const s=this.parentNode;s instanceof HTMLElement&&s.isUI5Element&&s._processChildren()}})})();const R=(t,e={})=>{const s=document.createElement("style");return s.type="text/css",Object.entries(e).forEach(t=>s.setAttribute(...t)),s.textContent=t,document.head.appendChild(s),s},N=(t,e)=>{const s=document.head.querySelector(`style[data-ui5-theme-properties="${e}"]`);if(s)s.textContent=t||"";else{R(t,{"data-ui5-theme-properties":e})}},D=()=>{const t=(()=>{let t=document.querySelector(".sapThemeMetaData-Base-baseLib");if(t)return getComputedStyle(t).backgroundImage;t=document.createElement("span"),t.style.display="none",t.classList.add("sapThemeMetaData-Base-baseLib"),document.body.appendChild(t);const e=getComputedStyle(t).backgroundImage;return document.body.removeChild(t),e})();if(t&&"none"!==t)return(t=>{let e,s;try{e=t.Path.match(/\.([^.]+)\.css_variables$/)[1],s=t.Extends[0]}catch(e){return void console.warn("Malformed theme metadata Object",t)}return{themeName:e,baseThemeName:s}})((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 console.warn("Malformed theme metadata string, unable to decodeURIComponent")}try{return JSON.parse(t)}catch(t){console.warn("Malformed theme metadata string, unable to parse JSON")}}})(t))};let T;const L=()=>!!window.CSSVarsPonyfill,I=()=>{T=void 0,window.CSSVarsPonyfill.cssVars({rootElement:document.head,silent:!0})},V="@ui5/webcomponents-theme-base",$=async t=>{if(!P().has(V))return;const e=await O(V,t);N(e,V)},k=async t=>{const e=(()=>{const t=D();if(t)return t;const e=h("OpenUI5Support");if(e){if(e.cssVariablesLoaded())return{themeName:e.getConfigurationSettingsObject().theme}}})();e&&t===e.themeName?(()=>{const t=document.head.querySelector(`style[data-ui5-theme-properties="${V}"]`);t&&t.parentElement.removeChild(t)})():await $(t);const s=(t=>C.has(t))(t)?t:e&&e.baseThemeName;await(async t=>{P().forEach(async e=>{if(e===V)return;const s=await O(e,t);N(s,e)})})(s),L()&&I()};let j;const F=()=>(void 0===j&&(j=(()=>(g(),m.theme))()),j),U=async t=>{j!==t&&(j=t,await k(j))},B=window.sap,H=B&&B.ui&&"function"==typeof B.ui.getCore&&B.ui.getCore();var W,z;W="OpenUI5Support",z={isLoaded:()=>!!H,init:()=>H?new Promise(t=>{H.attachInit(()=>{B.ui.require(["sap/ui/core/LocaleData"],t)})}):Promise.resolve(),getConfigurationSettingsObject:()=>{if(!H)return;const t=H.getConfiguration(),e=B.ui.require("sap/ui/core/LocaleData");return{animationMode:t.getAnimationMode(),language:t.getLanguage(),theme:t.getTheme(),rtl:t.getRTL(),calendarType:t.getCalendarType(),formatSettings:{firstDayOfWeek:e?e.getInstance(t.getLocale()).getFirstDayOfWeek():void 0}}},getLocaleDataObject:()=>{if(!H)return;const t=H.getConfiguration();return B.ui.require("sap/ui/core/LocaleData").getInstance(t.getLocale())._get()},attachListeners:()=>{H&&(()=>{const t=H.getConfiguration();H.attachThemeChanged(async()=>{await U(t.getTheme())})})()},cssVariablesLoaded:()=>{if(!H)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}},u.set(W,z);let q;let J;const G=()=>J||(J=new Promise(async t=>{const e=h("OpenUI5Support");e&&await e.init(),await(()=>new Promise(t=>{document.body?t():document.addEventListener("DOMContentLoaded",()=>{t()})}))(),await k(F()),e&&e.attachListeners(),(()=>{if(document.querySelector("head>style[data-ui5-font-face]"))return;const t=h("OpenUI5Support");t&&t.isLoaded()||R('\n\t@font-face {\n\t\tfont-family: "72";\n\t\tfont-style: normal;\n\t\tfont-weight: 400;\n\t\tsrc: local("72"),\n\t\t\turl(https://ui5.sap.com/sdk/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Regular.woff2?ui5-webcomponents) format("woff2"),\n\t\t\turl(https://ui5.sap.com/sdk/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Regular.woff?ui5-webcomponents) format("woff");\n\t}\n\t\n\t@font-face {\n\t\tfont-family: "72full";\n\t\tfont-style: normal;\n\t\tfont-weight: 400;\n\t\tsrc: local(\'72-full\'),\n\t\t\turl(https://ui5.sap.com/sdk/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Regular-full.woff2?ui5-webcomponents) format("woff2"),\n\t\t\turl(https://ui5.sap.com/sdk/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Regular-full.woff?ui5-webcomponents) format("woff");\n\t\t\n\t}\n\t\n\t@font-face {\n\t\tfont-family: "72";\n\t\tfont-style: normal;\n\t\tfont-weight: 700;\n\t\tsrc: local(\'72-Bold\'),\n\t\t\turl(https://ui5.sap.com/sdk/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold.woff2?ui5-webcomponents) format("woff2"),\n\t\t\turl(https://ui5.sap.com/sdk/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold.woff?ui5-webcomponents) format("woff");\n\t}\n\t\n\t@font-face {\n\t\tfont-family: "72full";\n\t\tfont-style: normal;\n\t\tfont-weight: 700;\n\t\tsrc: local(\'72-Bold-full\'),\n\t\t\turl(https://ui5.sap.com/sdk/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold-full.woff2?ui5-webcomponents) format("woff2"),\n\t\t\turl(https://ui5.sap.com/sdk/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold-full.woff?ui5-webcomponents) format("woff");\n\t}\n',{"data-ui5-font-face":""})})(),await(()=>q||(q=new Promise(t=>{window.WebComponents&&!window.WebComponents.ready&&window.WebComponents.waitFor?window.WebComponents.waitFor(()=>{t()}):t()}),q))(),t()}),J);class X{static isValid(t){}static generataTypeAcessors(t){Object.keys(t).forEach(e=>{Object.defineProperty(this,e,{get:()=>t[e]})})}}const Z=new Map,Y=new Map,K=t=>{if(!Z.has(t)){const e=tt(t.split("-"));Z.set(t,e)}return Z.get(t)},Q=t=>{if(!Y.has(t)){const e=t.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase();Y.set(t,e)}return Y.get(t)},tt=t=>t.map((t,e)=>0===e?t.toLowerCase():t.charAt(0).toUpperCase()+t.slice(1).toLowerCase()).join("");class et{constructor(t){this.metadata=t}static validatePropertyValue(t,e){return e.multiple?t.map(t=>st(t,e)):st(t,e)}static validateSlotValue(t,e){return nt(t,e)}getTag(){return this.metadata.tag}hasAttribute(t){const e=this.getProperties()[t];return e.type!==Object&&!e.noAttribute}getPropertiesList(){return Object.keys(this.getProperties())}getAttributesList(){return this.getPropertiesList().filter(this.hasAttribute,this).map(Q)}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}getProperties(){return this.metadata.properties||{}}getEvents(){return this.metadata.events||{}}}const st=(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:((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})(s,X)?s.isValid(t)?t:e.defaultValue:void 0},nt=(t,e)=>{if(null===t)return t;return(t=>{return t instanceof HTMLElement&&"slot"===t.localName?t.assignedNodes({flatten:!0}).filter(t=>t instanceof HTMLElement):[t]})(t).forEach(t=>{if(!(t instanceof e.type))throw new Error(`${t} is not of type ${e.type}`)}),t},it=()=>{let t=document.querySelector("ui5-static-area");if(t)return t;const e=document.body;return t=document.createElement("ui5-static-area"),e.insertBefore(t,e.firstChild)},ot=()=>{it().destroy()};class rt extends HTMLElement{constructor(){super()}get isUI5Element(){return!0}destroy(){const t=document.querySelector(this.tagName.toLowerCase());t.parentElement.removeChild(t)}}customElements.get("ui5-static-area")||customElements.define("ui5-static-area",rt);const at=new Set,lt=t=>{at.add(t)},ct=t=>at.has(t),dt=()=>{const t=[];return at.forEach(e=>{t.push(e)}),t},ut=10;let ht;const pt=new class{constructor(){this.list=[],this.promises=new Map}add(t){if(this.promises.has(t))return this.promises.get(t);let e;const s=new Promise(t=>{e=t});return s._deferredResolve=e,this.list.push(t),this.promises.set(t,s),s}shift(){const t=this.list.shift();if(t){const e=this.promises.get(t);return this.promises.delete(t),{webComponent:t,promise:e}}}getList(){return this.list}isAdded(t){return this.promises.has(t)}};let mt,ft,gt,wt;class yt{constructor(){throw new Error("Static class")}static renderDeferred(t){const e=pt.add(t);return yt.scheduleRenderTask(),e}static renderImmediately(t){const e=pt.add(t);return yt.runRenderTask(),e}static scheduleRenderTask(){ht||(ht=window.requestAnimationFrame(yt.renderWebComponents))}static runRenderTask(){ht||(ht=1,yt.renderWebComponents())}static renderWebComponents(){let t,e,s;const n=new Map;for(;t=pt.shift();){e=t.webComponent,s=t.promise;const i=n.get(e)||0;if(i>ut)throw new Error(`Web component re-rendered too many times this task, max allowed is: ${ut}`);e._render(),s._deferredResolve(),n.set(e,i+1)}wt||(wt=setTimeout(()=>{wt=void 0,0===pt.getList().length&&yt._resolveTaskPromise()},200)),ht=void 0}static whenDOMUpdated(){return mt||(mt=new Promise(t=>{ft=t,window.requestAnimationFrame(()=>{0===pt.getList().length&&(mt=void 0,t())})}),mt)}static whenAllCustomElementsAreDefined(){const t=dt().map(t=>customElements.whenDefined(t));return Promise.all(t)}static async whenFinished(){await yt.whenAllCustomElementsAreDefined(),await yt.whenDOMUpdated()}static _resolveTaskPromise(){pt.getList().length>0||ft&&(ft.call(this,gt),ft=void 0,mt=void 0)}}class _t{constructor(t){this.ui5ElementContext=t,this._rendered=!1}isRendered(){return this._rendered}_updateFragment(){const t=this.ui5ElementContext.constructor.staticAreaTemplate(this.ui5ElementContext),e=!window.ShadyDOM&&this.ui5ElementContext.constructor.staticAreaStyles;this.staticAreaItemDomRef||(this.staticAreaItemDomRef=document.createElement("ui5-static-area-item"),this.staticAreaItemDomRef.attachShadow({mode:"open"}),this.staticAreaItemDomRef.classList.add(this.ui5ElementContext._id),it().appendChild(this.staticAreaItemDomRef),this._rendered=!0),this.ui5ElementContext.constructor.render(t,this.staticAreaItemDomRef.shadowRoot,e,{eventContext:this.ui5ElementContext})}_removeFragmentFromStaticArea(){if(!this.staticAreaItemDomRef)return;const t=it();t.removeChild(this.staticAreaItemDomRef),this.staticAreaItemDomRef=null,t.childElementCount<1&&ot()}_updateContentDensity(t){this.staticAreaItemDomRef&&(t?(this.staticAreaItemDomRef.classList.add("sapUiSizeCompact"),this.staticAreaItemDomRef.classList.add("ui5-content-density-compact")):(this.staticAreaItemDomRef.classList.remove("sapUiSizeCompact"),this.staticAreaItemDomRef.classList.remove("ui5-content-density-compact")))}async getDomRef(){return this._rendered&&this.staticAreaItemDomRef||this._updateFragment(),await yt.whenDOMUpdated(),this.staticAreaItemDomRef.shadowRoot}}class vt extends HTMLElement{constructor(){super()}get isUI5Element(){return!0}}customElements.get("ui5-static-area-item")||customElements.define("ui5-static-area-item",vt);const bt=window,St=new WeakMap;class At{constructor(){throw new Error("Static class")}static observeDOMNode(t,e,s){let n=St.get(t);if(n)throw new Error("A mutation/ShadyDOM observer is already assigned to this node.");bt.ShadyDOM?n=bt.ShadyDOM.observeChildren(t,e):(n=new MutationObserver(e),n.observe(t,s)),St.set(t,n)}static unobserveDOMNode(t){const e=St.get(t);e&&(e instanceof MutationObserver?e.disconnect():bt.ShadyDOM.unobserveChildren(e),St.delete(t))}}const Et=["value-changed"];let Ct;const xt=()=>(void 0===Ct&&(Ct=(()=>(g(),m.noConflict))()),Ct),Ot=t=>{const e=xt();return!(t=>Et.includes(t))(t)&&(!0===e||!(t=>{const e=xt();return!(e.events&&e.events.includes&&e.events.includes(t))})(t))},Mt={},Pt=t=>{const e=(t=>Mt[t]?Mt[t].join(""):"")(t.getMetadata().getTag())||"";let s=t.styles;return Array.isArray(s)&&(s=s.join(" ")),`${s} ${e}`},Rt=new Map,Nt=t=>{const e=t.getMetadata().getTag(),s=Pt(t);if(Rt.has(e))return Rt.get(e);const n=new CSSStyleSheet;return n.replaceSync(s),Rt.set(e,n),n},Dt=(t,e,s,n)=>{const i=s+e.length,o=t.charAt(i),r=t.substring(0,s)+n;if("("===o){const e=((t,e)=>{let s=1;for(let n=e+1;n<t.length;n++){const e=t.charAt(n);if("("===e?s++:")"===e&&s--,0===s)return n}})(t,i);return r+t.substring(i+1,e)+t.substring(e+1)}return r+t.substring(i)},Tt=(t,e)=>(t=((t,e,s)=>{let n=t.indexOf(e);for(;-1!==n;)n=(t=Dt(t,e,n,s)).indexOf(e);return t})(t=t.trim(),"::slotted","")).startsWith(":host")?Dt(t,":host",0,e):t.match(/^[@0-9]/)||"to"===t||"to{"===t?t:t.match(new RegExp(`^${e}[^a-zA-Z0-9-]`))?t:`${e} ${t}`,Lt=(t,e)=>{t=(t=t.replace(/\n/g," ")).replace(/([{}])/g,"$1\n");let s="";return t.split("\n").forEach(t=>{if(t.match(/{$/)){const s=t.split(",");t=s.map(t=>Tt(t,e)).join(",")}s=`${s}${t}`}),s},It=new Set,Vt=t=>{const e=t.getMetadata().getTag();if(It.has(e))return;let s=Pt(t);s=Lt(s,e);let n=(t=>{let e=t.staticAreaStyles;return Array.isArray(e)&&(e=e.join(" ")),e})(t);n&&(n=Lt(n,"ui5-static-area-item"),s=`${s} ${n}`),R(s,{"data-ui5-element-styles":e,disabled:"disabled"}),L()&&(T||(T=window.setTimeout(I,0))),It.add(e)};class $t extends X{static isValid(t){return Number.isInteger(t)}}const kt=["disabled","ariaLabel"],jt=t=>{if(kt.includes(t))return!0;return![HTMLElement,Element,Node].some(e=>e.prototype.hasOwnProperty(t))},Ft={events:{_propertyChange:{}}};let Ut=0;const Bt=new Map,Ht="--_ui5_content_density";class Wt extends HTMLElement{constructor(){let t;super(),this._generateId(),this._initializeState(),this._upgradeAllProperties(),this._initializeContainers(),this._upToDate=!1,this._domRefReadyPromise=new Promise(e=>{t=e}),this._domRefReadyPromise._deferredResolve=t,this._monitoredChildProps=new Map,this._firePropertyChange=!1}_generateId(){this._id=`ui5wc_${++Ut}`}_initializeContainers(){const t=this.constructor._needsShadowDOM(),e=this.constructor._needsStaticArea();if(t&&(this.attachShadow({mode:"open"}),window.ShadyDOM&&Vt(this.constructor),document.adoptedStyleSheets)){const t=Nt(this.constructor);this.shadowRoot.adoptedStyleSheets=[t]}e&&(this.staticAreaItem=new _t(this))}async connectedCallback(){const t=this.constructor._needsShadowDOM(),e=this.constructor.getMetadata().slotsAreManaged();t&&(e&&(this._startObservingDOMChildren(),await this._processChildren()),this.shadowRoot||await Promise.resolve(),await yt.renderImmediately(this),this._domRefReadyPromise._deferredResolve(),"function"==typeof this.onEnterDOM&&this.onEnterDOM())}disconnectedCallback(){const t=this.constructor._needsShadowDOM(),e=this.constructor._needsStaticArea(),s=this.constructor.getMetadata().slotsAreManaged();t&&(s&&this._stopObservingDOMChildren(),"function"==typeof this.onExitDOM&&this.onExitDOM()),e&&this.staticAreaItem._removeFragmentFromStaticArea()}_startObservingDOMChildren(){if(!this.constructor.getMetadata().hasSlots())return;const t={childList:!0,subtree:this.constructor.getMetadata().canSlotText(),characterData:!0};At.observeDOMNode(this,this._processChildren.bind(this),t)}_stopObservingDOMChildren(){At.unobserveDOMNode(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);for(const[e,s]of Object.entries(t))this._clearSlot(e,s);const n=new Map,i=new Map,o=s.map(async(e,s)=>{const o=this.constructor._getSlotName(e),r=t[o];if(void 0===r){const s=Object.keys(t).join(", ");return void console.warn(`Unknown slotName: ${o}, ignoring`,e,`Valid values are: ${s}`)}if(r.individualSlots){const t=(n.get(o)||0)+1;n.set(o,t),e._individualSlot=`${o}-${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=Bt.get(t);s||(s=new Promise(t=>setTimeout(t,1e3)),Bt.set(t,s)),await Promise.race([e,s])}window.customElements.upgrade(e)}}(e=this.constructor.getMetadata().constructor.validateSlotValue(e,r)).isUI5Element&&r.listenFor&&this._attachChildPropertyUpdated(e,r.listenFor);const a=r.propertyName||o;i.has(a)?i.get(a).push({child:e,idx:s}):i.set(a,[{child:e,idx:s}])});await Promise.all(o),i.forEach((t,e)=>{this._state[e]=t.sort((t,e)=>t.idx-e.idx).map(t=>t.child)}),this._invalidate("slots")}_clearSlot(t,e){const s=e.propertyName||t;let n=this._state[s];Array.isArray(n)||(n=[n]),n.forEach(t=>{t&&t.isUI5Element&&this._detachChildPropertyUpdated(t)}),this._state[s]=[],this._invalidate(s,[])}attributeChangedCallback(t,e,s){const n=this.constructor.getMetadata().getProperties(),i=t.replace(/^ui5-/,""),o=K(i);if(n.hasOwnProperty(o)){const t=n[o].type;t===Boolean&&(s=null!==s),t===$t&&(s=parseInt(s)),this[o]=s}}_updateAttribute(t,e){if(!this.constructor.getMetadata().hasAttribute(t))return;if("object"==typeof e)return;const s=Q(t),n=this.getAttribute(s);"boolean"==typeof e?!0===e&&null===n?this.setAttribute(s,""):!1===e&&null!==n&&this.removeAttribute(s):n!==e&&this.setAttribute(s,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(){const t=this.constructor._getDefaultState();this._state=Object.assign({},t)}_attachChildPropertyUpdated(t,e){const s=t.constructor.getMetadata(),n=this.constructor._getSlotName(t),i=s.getProperties();let o=[],r=[];Array.isArray(e)?o=e:(o=Array.isArray(e.props)?e.props:Object.keys(i),r=Array.isArray(e.exclude)?e.exclude:[]),this._monitoredChildProps.has(n)||this._monitoredChildProps.set(n,{observedProps:o,notObservedProps:r}),t.addEventListener("_propertyChange",this._invalidateParentOnPropertyUpdate),t._firePropertyChange=!0}_detachChildPropertyUpdated(t){t.removeEventListener("_propertyChange",this._invalidateParentOnPropertyUpdate),t._firePropertyChange=!1}_propertyChange(t,e){this._updateAttribute(t,e),this._firePropertyChange&&this.dispatchEvent(new CustomEvent("_propertyChange",{detail:{name:t,newValue:e},composed:!1,bubbles:!0}))}_invalidateParentOnPropertyUpdate(t){const e=this.parentNode;if(!e)return;const s=e.constructor._getSlotName(this),n=e._monitoredChildProps.get(s);if(!n)return;const{observedProps:i,notObservedProps:o}=n;i.includes(t.detail.name)&&!o.includes(t.detail.name)&&e._invalidate("_parent_",this)}_invalidate(){this._upToDate&&this.getDomRef()&&!this._suppressInvalidation&&(this._upToDate=!1,yt.renderDeferred(this))}_render(){const t=this.constructor.getMetadata().hasIndividualSlots();this._suppressInvalidation=!0,"function"==typeof this.onBeforeRendering&&this.onBeforeRendering(),this._onComponentStateFinalized&&this._onComponentStateFinalized(),delete this._suppressInvalidation,this._upToDate=!0,this._updateShadowRoot(),this._shouldUpdateFragment()&&this.staticAreaItem._updateFragment(this),t&&this._assignIndividualSlotsToChildren(),"function"==typeof this.onAfterRendering&&this.onAfterRendering()}_updateShadowRoot(){if(!this.constructor._needsShadowDOM())return;let t;const e=this.constructor.template(this);document.adoptedStyleSheets||window.ShadyDOM||(t=Pt(this.constructor)),this.constructor.render(e,this.shadowRoot,t,{eventContext:this})}_assignIndividualSlotsToChildren(){Array.from(this.children).forEach(t=>{t._individualSlot&&t.setAttribute("slot",t._individualSlot)})}_waitForDomRef(){return this._domRefReadyPromise}getDomRef(){if(this.shadowRoot&&0!==this.shadowRoot.children.length)return 1===this.shadowRoot.children.length?this.shadowRoot.children[0]:this.shadowRoot.children[1]}getFocusDomRef(){const t=this.getDomRef();if(t){return t.querySelector("[data-sap-focus-ref]")||t}}async focus(){await this._waitForDomRef();const t=this.getFocusDomRef();t&&"function"==typeof t.focus&&t.focus()}fireEvent(t,e,s){let n=!0;const i=new CustomEvent(`ui5-${t}`,{detail:e,composed:!1,bubbles:!0,cancelable:s});if(n=this.dispatchEvent(i),Ot(t))return n;const o=new CustomEvent(t,{detail:e,composed:!1,bubbles:!0,cancelable:s});return this.dispatchEvent(o)&&n}getSlottedNodes(t){return this[t].reduce((t,e)=>"slot"!==e.localName?t.concat([e]):t.concat(e.assignedNodes({flatten:!0}).filter(t=>t instanceof HTMLElement)),[])}get isCompact(){return"compact"===getComputedStyle(this).getPropertyValue(Ht)}updateStaticAreaItemContentDensity(){this.staticAreaItem&&this.staticAreaItem._updateContentDensity(this.isCompact)}get isUI5Element(){return!0}static get observedAttributes(){return this.getMetadata().getAttributesList()}static _getSlotName(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"}static _needsShadowDOM(){return!!this.template}_shouldUpdateFragment(){return this.constructor._needsStaticArea()&&this.staticAreaItem.isRendered()}static _needsStaticArea(){return"function"==typeof this.staticAreaTemplate}getStaticAreaItemDomRef(){return this.staticAreaItem.getDomRef()}static _getDefaultState(){if(this._defaultState)return this._defaultState;const t=this.getMetadata(),e={},s=t.slotsAreManaged(),n=t.getProperties();for(const t in n){const s=n[t].type,i=n[t].defaultValue;s===Boolean?(e[t]=!1,void 0!==i&&console.warn("The 'defaultValue' metadata key is ignored for all booleans properties, they would be initialized with 'false' by default")):n[t].multiple?e[t]=[]:e[t]=s===Object?"defaultValue"in n[t]?n[t].defaultValue:{}:s===String?"defaultValue"in n[t]?n[t].defaultValue:"":i}if(s){const s=t.getSlots();for(const[t,n]of Object.entries(s)){e[n.propertyName||t]=[]}}return this._defaultState=e,e}static _generateAccessors(){const t=this.prototype,e=this.getMetadata().slotsAreManaged(),s=this.getMetadata().getProperties();for(const[e,n]of Object.entries(s)){if(!jt(e))throw new Error(`"${e}" is not a valid property name. Use a name that does not collide with DOM APIs`);if(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){t=this.constructor.getMetadata().constructor.validatePropertyValue(t,n),this._state[e]!==t&&(this._state[e]=t,this._invalidate(e,t),this._propertyChange(e,t))}})}if(e){const e=this.getMetadata().getSlots();for(const[s,n]of Object.entries(e)){if(!jt(s))throw new Error(`"${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 slots directly, use the DOM APIs")}})}}}static get metadata(){return Ft}static get styles(){return""}static get staticAreaStyles(){return""}static async define(){await G(),this.onDefine&&await this.onDefine();const t=this.getMetadata().getTag(),e=ct(t),s=customElements.get(t);return s&&!e?console.warn(`Skipping definition of tag ${t}, because it was already defined by another instance of ui5-webcomponents.`):s||(this._generateAccessors(),lt(t),window.customElements.define(t,this)),this}static getMetadata(){if(this.hasOwnProperty("_metadata"))return this._metadata;const t=[this.metadata];let e=this;for(;e!==Wt;)e=Object.getPrototypeOf(e),t.unshift(e.metadata);const s=d({},...t);return this._metadata=new et(s),this._metadata}}
/**

@@ -23,3 +23,3 @@ * @license

* http://polymer.github.io/PATENTS.txt
*/const Tt=new WeakMap,Lt=t=>"function"==typeof t&&Tt.has(t),It=void 0!==window.customElements&&void 0!==window.customElements.polyfillWrapFlushCallback,Vt=(t,e,s=null)=>{for(;e!==s;){const s=e.nextSibling;t.removeChild(e),e=s}},$t={},kt={},jt=`{{lit-${String(Math.random()).slice(2)}}}`,Ft=`\x3c!--${jt}--\x3e`,Ut=new RegExp(`${jt}|${Ft}`),Ht="$lit$";class Bt{constructor(t,e){this.parts=[],this.element=e;const s=[],n=[],o=document.createTreeWalker(e.content,133,null,!1);let i=0,r=-1,a=0;const{strings:l,values:{length:c}}=t;for(;a<c;){const t=o.nextNode();if(null!==t){if(r++,1===t.nodeType){if(t.hasAttributes()){const e=t.attributes,{length:s}=e;let n=0;for(let t=0;t<s;t++)Wt(e[t].name,Ht)&&n++;for(;n-- >0;){const e=l[a],s=Jt.exec(e)[2],n=s.toLowerCase()+Ht,o=t.getAttribute(n);t.removeAttribute(n);const i=o.split(Ut);this.parts.push({type:"attribute",index:r,name:s,strings:i}),a+=i.length-1}}"TEMPLATE"===t.tagName&&(n.push(t),o.currentNode=t.content)}else if(3===t.nodeType){const e=t.data;if(e.indexOf(jt)>=0){const n=t.parentNode,o=e.split(Ut),i=o.length-1;for(let e=0;e<i;e++){let s,i=o[e];if(""===i)s=qt();else{const t=Jt.exec(i);null!==t&&Wt(t[2],Ht)&&(i=i.slice(0,t.index)+t[1]+t[2].slice(0,-Ht.length)+t[3]),s=document.createTextNode(i)}n.insertBefore(s,t),this.parts.push({type:"node",index:++r})}""===o[i]?(n.insertBefore(qt(),t),s.push(t)):t.data=o[i],a+=i}}else if(8===t.nodeType)if(t.data===jt){const e=t.parentNode;null!==t.previousSibling&&r!==i||(r++,e.insertBefore(qt(),t)),i=r,this.parts.push({type:"node",index:r}),null===t.nextSibling?t.data="":(s.push(t),r--),a++}else{let e=-1;for(;-1!==(e=t.data.indexOf(jt,e+1));)this.parts.push({type:"node",index:-1}),a++}}else o.currentNode=n.pop()}for(const t of s)t.parentNode.removeChild(t)}}const Wt=(t,e)=>{const s=t.length-e.length;return s>=0&&t.slice(s)===e},zt=t=>-1!==t.index,qt=()=>document.createComment(""),Jt=/([ \x09\x0a\x0c\x0d])([^\0-\x1F\x7F-\x9F "'>=/]+)([ \x09\x0a\x0c\x0d]*=[ \x09\x0a\x0c\x0d]*(?:[^ \x09\x0a\x0c\x0d"'`<>=]*|"[^"]*|'[^']*))$/;
*/const zt=new WeakMap,qt=t=>"function"==typeof t&&zt.has(t),Jt=void 0!==window.customElements&&void 0!==window.customElements.polyfillWrapFlushCallback,Gt=(t,e,s=null)=>{for(;e!==s;){const s=e.nextSibling;t.removeChild(e),e=s}},Xt={},Zt={},Yt=`{{lit-${String(Math.random()).slice(2)}}}`,Kt=`\x3c!--${Yt}--\x3e`,Qt=new RegExp(`${Yt}|${Kt}`),te="$lit$";class ee{constructor(t,e){this.parts=[],this.element=e;const s=[],n=[],i=document.createTreeWalker(e.content,133,null,!1);let o=0,r=-1,a=0;const{strings:l,values:{length:c}}=t;for(;a<c;){const t=i.nextNode();if(null!==t){if(r++,1===t.nodeType){if(t.hasAttributes()){const e=t.attributes,{length:s}=e;let n=0;for(let t=0;t<s;t++)se(e[t].name,te)&&n++;for(;n-- >0;){const e=l[a],s=oe.exec(e)[2],n=s.toLowerCase()+te,i=t.getAttribute(n);t.removeAttribute(n);const o=i.split(Qt);this.parts.push({type:"attribute",index:r,name:s,strings:o}),a+=o.length-1}}"TEMPLATE"===t.tagName&&(n.push(t),i.currentNode=t.content)}else if(3===t.nodeType){const e=t.data;if(e.indexOf(Yt)>=0){const n=t.parentNode,i=e.split(Qt),o=i.length-1;for(let e=0;e<o;e++){let s,o=i[e];if(""===o)s=ie();else{const t=oe.exec(o);null!==t&&se(t[2],te)&&(o=o.slice(0,t.index)+t[1]+t[2].slice(0,-te.length)+t[3]),s=document.createTextNode(o)}n.insertBefore(s,t),this.parts.push({type:"node",index:++r})}""===i[o]?(n.insertBefore(ie(),t),s.push(t)):t.data=i[o],a+=o}}else if(8===t.nodeType)if(t.data===Yt){const e=t.parentNode;null!==t.previousSibling&&r!==o||(r++,e.insertBefore(ie(),t)),o=r,this.parts.push({type:"node",index:r}),null===t.nextSibling?t.data="":(s.push(t),r--),a++}else{let e=-1;for(;-1!==(e=t.data.indexOf(Yt,e+1));)this.parts.push({type:"node",index:-1}),a++}}else i.currentNode=n.pop()}for(const t of s)t.parentNode.removeChild(t)}}const se=(t,e)=>{const s=t.length-e.length;return s>=0&&t.slice(s)===e},ne=t=>-1!==t.index,ie=()=>document.createComment(""),oe=/([ \x09\x0a\x0c\x0d])([^\0-\x1F\x7F-\x9F "'>=/]+)([ \x09\x0a\x0c\x0d]*=[ \x09\x0a\x0c\x0d]*(?:[^ \x09\x0a\x0c\x0d"'`<>=]*|"[^"]*|'[^']*))$/;
/**

@@ -38,3 +38,3 @@ * @license

*/
class Gt{constructor(t,e,s){this.__parts=[],this.template=t,this.processor=e,this.options=s}update(t){let e=0;for(const s of this.__parts)void 0!==s&&s.setValue(t[e]),e++;for(const t of this.__parts)void 0!==t&&t.commit()}_clone(){const t=It?this.template.element.content.cloneNode(!0):document.importNode(this.template.element.content,!0),e=[],s=this.template.parts,n=document.createTreeWalker(t,133,null,!1);let o,i=0,r=0,a=n.nextNode();for(;i<s.length;)if(o=s[i],zt(o)){for(;r<o.index;)r++,"TEMPLATE"===a.nodeName&&(e.push(a),n.currentNode=a.content),null===(a=n.nextNode())&&(n.currentNode=e.pop(),a=n.nextNode());if("node"===o.type){const t=this.processor.handleTextExpression(this.options);t.insertAfterNode(a.previousSibling),this.__parts.push(t)}else this.__parts.push(...this.processor.handleAttributeExpressions(a,o.name,o.strings,this.options));i++}else this.__parts.push(void 0),i++;return It&&(document.adoptNode(t),customElements.upgrade(t)),t}}
class re{constructor(t,e,s){this.__parts=[],this.template=t,this.processor=e,this.options=s}update(t){let e=0;for(const s of this.__parts)void 0!==s&&s.setValue(t[e]),e++;for(const t of this.__parts)void 0!==t&&t.commit()}_clone(){const t=Jt?this.template.element.content.cloneNode(!0):document.importNode(this.template.element.content,!0),e=[],s=this.template.parts,n=document.createTreeWalker(t,133,null,!1);let i,o=0,r=0,a=n.nextNode();for(;o<s.length;)if(i=s[o],ne(i)){for(;r<i.index;)r++,"TEMPLATE"===a.nodeName&&(e.push(a),n.currentNode=a.content),null===(a=n.nextNode())&&(n.currentNode=e.pop(),a=n.nextNode());if("node"===i.type){const t=this.processor.handleTextExpression(this.options);t.insertAfterNode(a.previousSibling),this.__parts.push(t)}else this.__parts.push(...this.processor.handleAttributeExpressions(a,i.name,i.strings,this.options));o++}else this.__parts.push(void 0),o++;return Jt&&(document.adoptNode(t),customElements.upgrade(t)),t}}
/**

@@ -52,3 +52,3 @@ * @license

* http://polymer.github.io/PATENTS.txt
*/const Xt=` ${jt} `;class Zt{constructor(t,e,s,n){this.strings=t,this.values=e,this.type=s,this.processor=n}getHTML(){const t=this.strings.length-1;let e="",s=!1;for(let n=0;n<t;n++){const t=this.strings[n],o=t.lastIndexOf("\x3c!--");s=(o>-1||s)&&-1===t.indexOf("--\x3e",o+1);const i=Jt.exec(t);e+=null===i?t+(s?Xt:Ft):t.substr(0,i.index)+i[1]+i[2]+Ht+i[3]+jt}return e+=this.strings[t],e}getTemplateElement(){const t=document.createElement("template");return t.innerHTML=this.getHTML(),t}}
*/const ae=` ${Yt} `;class le{constructor(t,e,s,n){this.strings=t,this.values=e,this.type=s,this.processor=n}getHTML(){const t=this.strings.length-1;let e="",s=!1;for(let n=0;n<t;n++){const t=this.strings[n],i=t.lastIndexOf("\x3c!--");s=(i>-1||s)&&-1===t.indexOf("--\x3e",i+1);const o=oe.exec(t);e+=null===o?t+(s?ae:Kt):t.substr(0,o.index)+o[1]+o[2]+te+o[3]+Yt}return e+=this.strings[t],e}getTemplateElement(){const t=document.createElement("template");return t.innerHTML=this.getHTML(),t}}
/**

@@ -66,3 +66,3 @@ * @license

* http://polymer.github.io/PATENTS.txt
*/const Yt=t=>null===t||!("object"==typeof t||"function"==typeof t),Kt=t=>Array.isArray(t)||!(!t||!t[Symbol.iterator]);class Qt{constructor(t,e,s){this.dirty=!0,this.element=t,this.name=e,this.strings=s,this.parts=[];for(let t=0;t<s.length-1;t++)this.parts[t]=this._createPart()}_createPart(){return new te(this)}_getValue(){const t=this.strings,e=t.length-1;let s="";for(let n=0;n<e;n++){s+=t[n];const e=this.parts[n];if(void 0!==e){const t=e.value;if(Yt(t)||!Kt(t))s+="string"==typeof t?t:String(t);else for(const e of t)s+="string"==typeof e?e:String(e)}}return s+=t[e],s}commit(){this.dirty&&(this.dirty=!1,this.element.setAttribute(this.name,this._getValue()))}}class te{constructor(t){this.value=void 0,this.committer=t}setValue(t){t===$t||Yt(t)&&t===this.value||(this.value=t,Lt(t)||(this.committer.dirty=!0))}commit(){for(;Lt(this.value);){const t=this.value;this.value=$t,t(this)}this.value!==$t&&this.committer.commit()}}class ee{constructor(t){this.value=void 0,this.__pendingValue=void 0,this.options=t}appendInto(t){this.startNode=t.appendChild(qt()),this.endNode=t.appendChild(qt())}insertAfterNode(t){this.startNode=t,this.endNode=t.nextSibling}appendIntoPart(t){t.__insert(this.startNode=qt()),t.__insert(this.endNode=qt())}insertAfterPart(t){t.__insert(this.startNode=qt()),this.endNode=t.endNode,t.endNode=this.startNode}setValue(t){this.__pendingValue=t}commit(){for(;Lt(this.__pendingValue);){const t=this.__pendingValue;this.__pendingValue=$t,t(this)}const t=this.__pendingValue;t!==$t&&(Yt(t)?t!==this.value&&this.__commitText(t):t instanceof Zt?this.__commitTemplateResult(t):t instanceof Node?this.__commitNode(t):Kt(t)?this.__commitIterable(t):t===kt?(this.value=kt,this.clear()):this.__commitText(t))}__insert(t){this.endNode.parentNode.insertBefore(t,this.endNode)}__commitNode(t){this.value!==t&&(this.clear(),this.__insert(t),this.value=t)}__commitText(t){const e=this.startNode.nextSibling,s="string"==typeof(t=null==t?"":t)?t:String(t);e===this.endNode.previousSibling&&3===e.nodeType?e.data=s:this.__commitNode(document.createTextNode(s)),this.value=t}__commitTemplateResult(t){const e=this.options.templateFactory(t);if(this.value instanceof Gt&&this.value.template===e)this.value.update(t.values);else{const s=new Gt(e,t.processor,this.options),n=s._clone();s.update(t.values),this.__commitNode(n),this.value=s}}__commitIterable(t){Array.isArray(this.value)||(this.value=[],this.clear());const e=this.value;let s,n=0;for(const o of t)s=e[n],void 0===s&&(s=new ee(this.options),e.push(s),0===n?s.appendIntoPart(this):s.insertAfterPart(e[n-1])),s.setValue(o),s.commit(),n++;n<e.length&&(e.length=n,this.clear(s&&s.endNode))}clear(t=this.startNode){Vt(this.startNode.parentNode,t.nextSibling,this.endNode)}}class se{constructor(t,e,s){if(this.value=void 0,this.__pendingValue=void 0,2!==s.length||""!==s[0]||""!==s[1])throw new Error("Boolean attributes can only contain a single expression");this.element=t,this.name=e,this.strings=s}setValue(t){this.__pendingValue=t}commit(){for(;Lt(this.__pendingValue);){const t=this.__pendingValue;this.__pendingValue=$t,t(this)}if(this.__pendingValue===$t)return;const t=!!this.__pendingValue;this.value!==t&&(t?this.element.setAttribute(this.name,""):this.element.removeAttribute(this.name),this.value=t),this.__pendingValue=$t}}class ne extends Qt{constructor(t,e,s){super(t,e,s),this.single=2===s.length&&""===s[0]&&""===s[1]}_createPart(){return new oe(this)}_getValue(){return this.single?this.parts[0].value:super._getValue()}commit(){this.dirty&&(this.dirty=!1,this.element[this.name]=this._getValue())}}class oe extends te{}let ie=!1;try{const t={get capture(){return ie=!0,!1}};window.addEventListener("test",t,t),window.removeEventListener("test",t,t)}catch(t){}class re{constructor(t,e,s){this.value=void 0,this.__pendingValue=void 0,this.element=t,this.eventName=e,this.eventContext=s,this.__boundHandleEvent=t=>this.handleEvent(t)}setValue(t){this.__pendingValue=t}commit(){for(;Lt(this.__pendingValue);){const t=this.__pendingValue;this.__pendingValue=$t,t(this)}if(this.__pendingValue===$t)return;const t=this.__pendingValue,e=this.value,s=null==t||null!=e&&(t.capture!==e.capture||t.once!==e.once||t.passive!==e.passive),n=null!=t&&(null==e||s);s&&this.element.removeEventListener(this.eventName,this.__boundHandleEvent,this.__options),n&&(this.__options=ae(t),this.element.addEventListener(this.eventName,this.__boundHandleEvent,this.__options)),this.value=t,this.__pendingValue=$t}handleEvent(t){"function"==typeof this.value?this.value.call(this.eventContext||this.element,t):this.value.handleEvent(t)}}const ae=t=>t&&(ie?{capture:t.capture,passive:t.passive,once:t.once}:t.capture);
*/const ce=t=>null===t||!("object"==typeof t||"function"==typeof t),de=t=>Array.isArray(t)||!(!t||!t[Symbol.iterator]);class ue{constructor(t,e,s){this.dirty=!0,this.element=t,this.name=e,this.strings=s,this.parts=[];for(let t=0;t<s.length-1;t++)this.parts[t]=this._createPart()}_createPart(){return new he(this)}_getValue(){const t=this.strings,e=t.length-1;let s="";for(let n=0;n<e;n++){s+=t[n];const e=this.parts[n];if(void 0!==e){const t=e.value;if(ce(t)||!de(t))s+="string"==typeof t?t:String(t);else for(const e of t)s+="string"==typeof e?e:String(e)}}return s+=t[e],s}commit(){this.dirty&&(this.dirty=!1,this.element.setAttribute(this.name,this._getValue()))}}class he{constructor(t){this.value=void 0,this.committer=t}setValue(t){t===Xt||ce(t)&&t===this.value||(this.value=t,qt(t)||(this.committer.dirty=!0))}commit(){for(;qt(this.value);){const t=this.value;this.value=Xt,t(this)}this.value!==Xt&&this.committer.commit()}}class pe{constructor(t){this.value=void 0,this.__pendingValue=void 0,this.options=t}appendInto(t){this.startNode=t.appendChild(ie()),this.endNode=t.appendChild(ie())}insertAfterNode(t){this.startNode=t,this.endNode=t.nextSibling}appendIntoPart(t){t.__insert(this.startNode=ie()),t.__insert(this.endNode=ie())}insertAfterPart(t){t.__insert(this.startNode=ie()),this.endNode=t.endNode,t.endNode=this.startNode}setValue(t){this.__pendingValue=t}commit(){for(;qt(this.__pendingValue);){const t=this.__pendingValue;this.__pendingValue=Xt,t(this)}const t=this.__pendingValue;t!==Xt&&(ce(t)?t!==this.value&&this.__commitText(t):t instanceof le?this.__commitTemplateResult(t):t instanceof Node?this.__commitNode(t):de(t)?this.__commitIterable(t):t===Zt?(this.value=Zt,this.clear()):this.__commitText(t))}__insert(t){this.endNode.parentNode.insertBefore(t,this.endNode)}__commitNode(t){this.value!==t&&(this.clear(),this.__insert(t),this.value=t)}__commitText(t){const e=this.startNode.nextSibling,s="string"==typeof(t=null==t?"":t)?t:String(t);e===this.endNode.previousSibling&&3===e.nodeType?e.data=s:this.__commitNode(document.createTextNode(s)),this.value=t}__commitTemplateResult(t){const e=this.options.templateFactory(t);if(this.value instanceof re&&this.value.template===e)this.value.update(t.values);else{const s=new re(e,t.processor,this.options),n=s._clone();s.update(t.values),this.__commitNode(n),this.value=s}}__commitIterable(t){Array.isArray(this.value)||(this.value=[],this.clear());const e=this.value;let s,n=0;for(const i of t)s=e[n],void 0===s&&(s=new pe(this.options),e.push(s),0===n?s.appendIntoPart(this):s.insertAfterPart(e[n-1])),s.setValue(i),s.commit(),n++;n<e.length&&(e.length=n,this.clear(s&&s.endNode))}clear(t=this.startNode){Gt(this.startNode.parentNode,t.nextSibling,this.endNode)}}class me{constructor(t,e,s){if(this.value=void 0,this.__pendingValue=void 0,2!==s.length||""!==s[0]||""!==s[1])throw new Error("Boolean attributes can only contain a single expression");this.element=t,this.name=e,this.strings=s}setValue(t){this.__pendingValue=t}commit(){for(;qt(this.__pendingValue);){const t=this.__pendingValue;this.__pendingValue=Xt,t(this)}if(this.__pendingValue===Xt)return;const t=!!this.__pendingValue;this.value!==t&&(t?this.element.setAttribute(this.name,""):this.element.removeAttribute(this.name),this.value=t),this.__pendingValue=Xt}}class fe extends ue{constructor(t,e,s){super(t,e,s),this.single=2===s.length&&""===s[0]&&""===s[1]}_createPart(){return new ge(this)}_getValue(){return this.single?this.parts[0].value:super._getValue()}commit(){this.dirty&&(this.dirty=!1,this.element[this.name]=this._getValue())}}class ge extends he{}let we=!1;try{const t={get capture(){return we=!0,!1}};window.addEventListener("test",t,t),window.removeEventListener("test",t,t)}catch(t){}class ye{constructor(t,e,s){this.value=void 0,this.__pendingValue=void 0,this.element=t,this.eventName=e,this.eventContext=s,this.__boundHandleEvent=t=>this.handleEvent(t)}setValue(t){this.__pendingValue=t}commit(){for(;qt(this.__pendingValue);){const t=this.__pendingValue;this.__pendingValue=Xt,t(this)}if(this.__pendingValue===Xt)return;const t=this.__pendingValue,e=this.value,s=null==t||null!=e&&(t.capture!==e.capture||t.once!==e.once||t.passive!==e.passive),n=null!=t&&(null==e||s);s&&this.element.removeEventListener(this.eventName,this.__boundHandleEvent,this.__options),n&&(this.__options=_e(t),this.element.addEventListener(this.eventName,this.__boundHandleEvent,this.__options)),this.value=t,this.__pendingValue=Xt}handleEvent(t){"function"==typeof this.value?this.value.call(this.eventContext||this.element,t):this.value.handleEvent(t)}}const _e=t=>t&&(we?{capture:t.capture,passive:t.passive,once:t.once}:t.capture);
/**

@@ -80,3 +80,3 @@ * @license

* http://polymer.github.io/PATENTS.txt
*/const le=new class{handleAttributeExpressions(t,e,s,n){const o=e[0];if("."===o){return new ne(t,e.slice(1),s).parts}return"@"===o?[new re(t,e.slice(1),n.eventContext)]:"?"===o?[new se(t,e.slice(1),s)]:new Qt(t,e,s).parts}handleTextExpression(t){return new ee(t)}};
*/const ve=new class{handleAttributeExpressions(t,e,s,n){const i=e[0];if("."===i){return new fe(t,e.slice(1),s).parts}return"@"===i?[new ye(t,e.slice(1),n.eventContext)]:"?"===i?[new me(t,e.slice(1),s)]:new ue(t,e,s).parts}handleTextExpression(t){return new pe(t)}};
/**

@@ -94,3 +94,3 @@ * @license

* http://polymer.github.io/PATENTS.txt
*/function ce(t){let e=de.get(t.type);void 0===e&&(e={stringsArray:new WeakMap,keyString:new Map},de.set(t.type,e));let s=e.stringsArray.get(t.strings);if(void 0!==s)return s;const n=t.strings.join(jt);return s=e.keyString.get(n),void 0===s&&(s=new Bt(t,t.getTemplateElement()),e.keyString.set(n,s)),e.stringsArray.set(t.strings,s),s}const de=new Map,ue=new WeakMap;
*/function be(t){let e=Se.get(t.type);void 0===e&&(e={stringsArray:new WeakMap,keyString:new Map},Se.set(t.type,e));let s=e.stringsArray.get(t.strings);if(void 0!==s)return s;const n=t.strings.join(Yt);return s=e.keyString.get(n),void 0===s&&(s=new ee(t,t.getTemplateElement()),e.keyString.set(n,s)),e.stringsArray.set(t.strings,s),s}const Se=new Map,Ae=new WeakMap;
/**

@@ -122,3 +122,3 @@ * @license

*/
(window.litHtmlVersions||(window.litHtmlVersions=[])).push("1.1.2");const he=(t,...e)=>new Zt(t,e,"html",le),pe=(t,e,s,{eventContext:n}={})=>{s&&(t=he`<style>${s}</style>${t}`),((t,e,s)=>{let n=ue.get(e);void 0===n&&(Vt(e,e.firstChild),ue.set(e,n=new ee(Object.assign({templateFactory:ce},s))),n.appendInto(e)),n.setValue(t),n.commit()})(t,e,{eventContext:n})},me={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 fe extends Dt{static get metadata(){return me}static get render(){return pe}static get template(){return t=>he`<div><p>
(window.litHtmlVersions||(window.litHtmlVersions=[])).push("1.1.2");const Ee=(t,...e)=>new le(t,e,"html",ve),Ce=(t,e,s,{eventContext:n}={})=>{s&&(t=Ee`<style>${s}</style>${t}`),((t,e,s)=>{let n=Ae.get(e);void 0===n&&(Gt(e,e.firstChild),Ae.set(e,n=new pe(Object.assign({templateFactory:be},s))),n.appendInto(e)),n.setValue(t),n.commit()})(t,e,{eventContext:n})},xe={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 Oe extends Wt{static get metadata(){return xe}static get render(){return Ce}static get template(){return t=>Ee`<div><p>
<slot></slot>

@@ -128,5 +128,11 @@ <slot name="other"></slot>

<slot name="individual-2"></slot>
</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(){}}fe.define();const ge={tag:"ui5-test-no-shadow"};(class extends Dt{static get metadata(){return ge}}).define();const we={tag:"ui5-test-parent",managedSlots:!0,slots:{default:{type:Node,listenFor:["prop1"]},items:{type:HTMLElement,listenFor:{include:["*"],exclude:["prop3"]}}}};(class extends Dt{static get metadata(){return we}static get render(){return pe}static get template(){return t=>he`<div>
</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(){}}Oe.define();const Me={tag:"ui5-test-no-shadow"};(class extends Wt{static get metadata(){return Me}}).define();const Pe={tag:"ui5-test-parent",managedSlots:!0,slots:{default:{type:Node,listenFor:["prop1"]},items:{type:HTMLElement,listenFor:{include:["*"],exclude:["prop3"]}}}};(class extends Wt{static get metadata(){return Pe}static get render(){return Ce}static get template(){return t=>Ee`<div>
<slot></slot>
</div>`}}).define();const _e={tag:"ui5-test-child",properties:{prop1:{type:String},prop2:{type:String},prop3:{type:String}}};(class extends Dt{static get metadata(){return _e}static get render(){return pe}static get template(){return t=>he`<div></div>`}}).define();const ye={tag:"ui5-test-generic-ext",properties:{extProp:{type:String},strProp:{defaultValue:"Ext"}},slots:{extSlot:{type:HTMLElement}}};(class extends fe{static get metadata(){return ye}}).define();E("@ui5/webcomponents-base-test","sap_fiori_3",":root{ --var1: red; }"),E("@ui5/webcomponents-base-test","sap_fiori_3_dark",":root{ --var1: green; }"),E("@ui5/webcomponents-base-test","sap_belize",":root{ --var1: blue; }"),E("@ui5/webcomponents-base-test","sap_belize_hcb",":root{ --var1: orange; }"),E("@ui5/webcomponents-base-test","sap_belize_hcw",":root{ --var1: orange; }");const ve={},be={INTERNET_EXPLORER:"ie",EDGE:"ed",FIREFOX:"ff",CHROME:"cr",SAFARI:"sf",ANDROID:"an"},Se=()=>{const t=(()=>{const t=navigator.userAgent.toLowerCase(),e=/(edge)[ /]([\w.]+)/.exec(t)||/(trident)\/[\w.]+;.*rv:([\w.]+)/.exec(t)||/(webkit)[ /]([\w.]+)/.exec(t)||/(msie) ([\w.]+)/.exec(t)||t.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+))?/.exec(t)||[],s={browser:e[1]||"",version:e[2]||"0"};return s[s.browser]=!0,s})(),e=navigator.userAgent,s=window.navigator;let n,o,i;if(t.mozilla)n=/Mobile/,e.match(/Firefox\/(\d+\.\d+)/)?(i=parseFloat(RegExp.$1),o={name:be.FIREFOX,versionStr:`${i}`,version:i,mozilla:!0,mobile:n.test(e)}):o={mobile:n.test(e),mozilla:!0,version:-1};else if(t.webkit){const t=e.toLowerCase().match(/webkit[/]([\d.]+)/);let r;t&&(r=t[1]),n=/Mobile/;const a=e.match(/(Chrome|CriOS)\/(\d+\.\d+).\d+/),l=e.match(/FxiOS\/(\d+\.\d+)/),c=e.match(/Android .+ Version\/(\d+\.\d+)/);if(a||l||c){let t,s,i;a?(t=be.CHROME,i=n.test(e),s=parseFloat(a[2])):l?(t=be.FIREFOX,i=!0,s=parseFloat(l[1])):c&&(t=be.ANDROID,i=n.test(e),s=parseFloat(c[1])),o={name:t,mobile:i,versionStr:`${s}`,version:s,webkit:!0,webkitVersion:r}}else{const t=/(Version|PhantomJS)\/(\d+\.\d+).*Safari/,a=s.standalone;if(t.test(e)){const s=t.exec(e);i=parseFloat(s[2]),o={name:be.SAFARI,versionStr:`${i}`,fullscreen:!1,webview:!1,version:i,mobile:n.test(e),webkit:!0,webkitVersion:r,phantomJS:"PhantomJS"===s[1]}}else o=!/iPhone|iPad|iPod/.test(e)||/CriOS/.test(e)||/FxiOS/.test(e)||!0!==a&&!1!==a?{mobile:n.test(e),webkit:!0,webkitVersion:r,version:-1}:{name:be.SAFARI,version:-1,fullscreen:a,webview:!a,mobile:n.test(e),webkit:!0,webkitVersion:r}}}else t.msie||t.trident?(i=parseFloat(t.version),o={name:be.INTERNET_EXPLORER,versionStr:`${i}`,version:i,msie:!0,mobile:!1}):t.edge?(i=parseFloat(t.version),o={name:be.EDGE,versionStr:`${i}`,version:i,edge:!0}):o={name:"",versionStr:"",version:-1,mobile:!1};return o};let Ee;const Ae={Gregorian:"Gregorian",Islamic:"Islamic",Japanese:"Japanese",Buddhist:"Buddhist",Persian:"Persian"};class xe extends H{static isValid(t){return!!Ae[t]}}let Ce;xe.generataTypeAcessors(Ae);const Oe={iw:"he",ji:"yi",in:"id",sh:"sr"},Pe=(t=>{const e=/\$([-a-z0-9A-Z._]+)(?::([^$]*))?\$/.exec(t);return e&&e[2]?e[2].split(/,/):null})("$cldr-rtl-locales:ar,fa,he$")||[];let Me;const Re=new Map,Ne=new Map;window.RenderScheduler=ct,window.isIE=()=>(ve.browser||(ve.browser=Se(),ve.browser.BROWSER=be,ve.browser.name&&Object.keys(be).forEach(t=>{be[t]===ve.browser.name&&(ve.browser[t.toLowerCase()]=!0)})),!!ve.browser.msie),window.registerThemeProperties=E,window["sap-ui-webcomponents-bundle"]={configuration:{getAnimationMode:()=>(void 0===Ee&&(Ee=(()=>(m(),h.animationMode))()),Ee),getLanguage:g,getTheme:D,setTheme:T,getNoConflict:ft,setNoConflict:t=>{mt=t},getCalendarType:()=>(void 0===Ce&&(Ce=(()=>(m(),h.calendarType))()),xe.isValid(Ce)?Ce:xe.Gregorian),getRTL:()=>{const t=(()=>(m(),h.rtl))();return null!==t?!!t:(t=>(t=t&&Oe[t]||t,Pe.indexOf(t)>=0))(g()||(()=>{const t=navigator.languages;return t&&t[0]||(()=>navigator.language)()||navigator.userLanguage||navigator.browserLanguage||"en"})())},getFirstDayOfWeek:()=>(void 0===Me&&(Me=(()=>(m(),h.formatSettings))()),Me.firstDayOfWeek)},getIconNames:async()=>(Ne.has("SAP-icons")&&await Ne.get("SAP-icons"),Array.from(Re.keys()).map(t=>t.split(":")[1]))};
</div>`}}).define();const Re={tag:"ui5-test-child",properties:{prop1:{type:String},prop2:{type:String},prop3:{type:String}}};(class extends Wt{static get metadata(){return Re}static get render(){return Ce}static get template(){return t=>Ee`<div></div>`}}).define();const Ne={tag:"ui5-with-static-area",properties:{staticContent:{type:Boolean}},slots:{}};(class extends Wt{static get metadata(){return Ne}static get render(){return Ce}static get template(){return t=>Ee`
<div>
WithStaticArea works!
</div>`}static get staticAreaTemplate(){return t=>Ee`
<div class="ui5-with-static-area-content">
Static area content.
</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 De={tag:"ui5-test-generic-ext",properties:{extProp:{type:String},strProp:{defaultValue:"Ext"}},slots:{extSlot:{type:HTMLElement}}};(class extends Oe{static get metadata(){return De}}).define();x("@ui5/webcomponents-base-test","sap_fiori_3",":root{ --var1: red; }"),x("@ui5/webcomponents-base-test","sap_fiori_3_dark",":root{ --var1: green; }"),x("@ui5/webcomponents-base-test","sap_belize",":root{ --var1: blue; }"),x("@ui5/webcomponents-base-test","sap_belize_hcb",":root{ --var1: orange; }"),x("@ui5/webcomponents-base-test","sap_belize_hcw",":root{ --var1: orange; }");const Te={},Le={INTERNET_EXPLORER:"ie",EDGE:"ed",FIREFOX:"ff",CHROME:"cr",SAFARI:"sf",ANDROID:"an"},Ie=()=>{const t=(()=>{const t=navigator.userAgent.toLowerCase(),e=/(edge)[ /]([\w.]+)/.exec(t)||/(trident)\/[\w.]+;.*rv:([\w.]+)/.exec(t)||/(webkit)[ /]([\w.]+)/.exec(t)||/(msie) ([\w.]+)/.exec(t)||t.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+))?/.exec(t)||[],s={browser:e[1]||"",version:e[2]||"0"};return s[s.browser]=!0,s})(),e=navigator.userAgent,s=window.navigator;let n,i,o;if(t.mozilla)n=/Mobile/,e.match(/Firefox\/(\d+\.\d+)/)?(o=parseFloat(RegExp.$1),i={name:Le.FIREFOX,versionStr:`${o}`,version:o,mozilla:!0,mobile:n.test(e)}):i={mobile:n.test(e),mozilla:!0,version:-1};else if(t.webkit){const t=e.toLowerCase().match(/webkit[/]([\d.]+)/);let r;t&&(r=t[1]),n=/Mobile/;const a=e.match(/(Chrome|CriOS)\/(\d+\.\d+).\d+/),l=e.match(/FxiOS\/(\d+\.\d+)/),c=e.match(/Android .+ Version\/(\d+\.\d+)/);if(a||l||c){let t,s,o;a?(t=Le.CHROME,o=n.test(e),s=parseFloat(a[2])):l?(t=Le.FIREFOX,o=!0,s=parseFloat(l[1])):c&&(t=Le.ANDROID,o=n.test(e),s=parseFloat(c[1])),i={name:t,mobile:o,versionStr:`${s}`,version:s,webkit:!0,webkitVersion:r}}else{const t=/(Version|PhantomJS)\/(\d+\.\d+).*Safari/,a=s.standalone;if(t.test(e)){const s=t.exec(e);o=parseFloat(s[2]),i={name:Le.SAFARI,versionStr:`${o}`,fullscreen:!1,webview:!1,version:o,mobile:n.test(e),webkit:!0,webkitVersion:r,phantomJS:"PhantomJS"===s[1]}}else i=!/iPhone|iPad|iPod/.test(e)||/CriOS/.test(e)||/FxiOS/.test(e)||!0!==a&&!1!==a?{mobile:n.test(e),webkit:!0,webkitVersion:r,version:-1}:{name:Le.SAFARI,version:-1,fullscreen:a,webview:!a,mobile:n.test(e),webkit:!0,webkitVersion:r}}}else t.msie||t.trident?(o=parseFloat(t.version),i={name:Le.INTERNET_EXPLORER,versionStr:`${o}`,version:o,msie:!0,mobile:!1}):t.edge?(o=parseFloat(t.version),i={name:Le.EDGE,versionStr:`${o}`,version:o,edge:!0}):i={name:"",versionStr:"",version:-1,mobile:!1};return i};let Ve;const $e={Gregorian:"Gregorian",Islamic:"Islamic",Japanese:"Japanese",Buddhist:"Buddhist",Persian:"Persian"};class ke extends X{static isValid(t){return!!$e[t]}}let je;ke.generataTypeAcessors($e);const Fe={iw:"he",ji:"yi",in:"id",sh:"sr"},Ue=(t=>{const e=/\$([-a-z0-9A-Z._]+)(?::([^$]*))?\$/.exec(t);return e&&e[2]?e[2].split(/,/):null})("$cldr-rtl-locales:ar,fa,he$")||[];let Be;const He=new Map,We=new Map;window.RenderScheduler=yt,window.isIE=()=>(Te.browser||(Te.browser=Ie(),Te.browser.BROWSER=Le,Te.browser.name&&Object.keys(Le).forEach(t=>{Le[t]===Te.browser.name&&(Te.browser[t.toLowerCase()]=!0)})),!!Te.browser.msie),window.registerThemeProperties=x,window["sap-ui-webcomponents-bundle"]={configuration:{getAnimationMode:()=>(void 0===Ve&&(Ve=(()=>(g(),m.animationMode))()),Ve),getLanguage:y,getTheme:F,setTheme:U,getNoConflict:xt,setNoConflict:t=>{Ct=t},getCalendarType:()=>(void 0===je&&(je=(()=>(g(),m.calendarType))()),ke.isValid(je)?je:ke.Gregorian),getRTL:()=>{const t=(()=>(g(),m.rtl))();return null!==t?!!t:(t=>(t=t&&Fe[t]||t,Ue.indexOf(t)>=0))(y()||(()=>{const t=navigator.languages;return t&&t[0]||(()=>navigator.language)()||navigator.userLanguage||navigator.browserLanguage||e})())},getFirstDayOfWeek:()=>(void 0===Be&&(Be=(()=>(g(),m.formatSettings))()),Be.firstDayOfWeek)},getIconNames:async()=>(We.has("SAP-icons")&&await We.get("SAP-icons"),Array.from(He.keys()).map(t=>t.split(":")[1]))};
//# sourceMappingURL=bundle.esm.js.map
import { getStaticAreaInstance, removeStaticArea } from "./StaticArea.js";
import RenderScheduler from "./RenderScheduler.js";

@@ -12,4 +13,9 @@ /**

this.ui5ElementContext = _ui5ElementContext;
this._rendered = false;
}
isRendered() {
return this._rendered;
}
/**

@@ -20,3 +26,3 @@ * @protected

const renderResult = this.ui5ElementContext.constructor.staticAreaTemplate(this.ui5ElementContext),
stylesToAdd = this.ui5ElementContext.constructor.staticAreaStyles || false;
stylesToAdd = window.ShadyDOM ? false : this.ui5ElementContext.constructor.staticAreaStyles;

@@ -31,2 +37,3 @@ if (!this.staticAreaItemDomRef) {

getStaticAreaInstance().appendChild(this.staticAreaItemDomRef);
this._rendered = true;
}

@@ -41,2 +48,6 @@

_removeFragmentFromStaticArea() {
if (!this.staticAreaItemDomRef) {
return;
}
const staticArea = getStaticAreaInstance();

@@ -75,3 +86,7 @@

*/
getDomRef() {
async getDomRef() {
if (!this._rendered || !this.staticAreaItemDomRef) {
this._updateFragment();
}
await RenderScheduler.whenDOMUpdated(); // Wait for the content of the ui5-static-area-item to be rendered
return this.staticAreaItemDomRef.shadowRoot;

@@ -78,0 +93,0 @@ }

const registry = new Map();
const iconCollectionPromises = new Map();
const ICON_NOT_FOUND = "ICON_NOT_FOUND";
const DEFAULT_COLLECTION = "SAP-icons";

@@ -30,6 +31,11 @@

if (!iconCollectionPromises.has(collection)) {
iconCollectionPromises.set(collection, Promise.reject());
iconCollectionPromises.set(collection, Promise.resolve(ICON_NOT_FOUND));
}
await iconCollectionPromises.get(collection);
const iconData = await iconCollectionPromises.get(collection);
if (iconData === ICON_NOT_FOUND) {
return iconData;
}
return registry.get(key);

@@ -36,0 +42,0 @@ };

import { addCustomCSS } from "./theming/CustomStyle.js";
import { setExternalThemePresent } from "./theming/ExternalThemePresent.js";
export {
addCustomCSS,
setExternalThemePresent,
};
export { addCustomCSS }; // eslint-disable-line

@@ -1,15 +0,38 @@

import { getThemeProperties, getRegisteredPackages } from "../asset-registries/Themes.js";
import { getExternalThemePresent } from "./ExternalThemePresent.js";
import { getThemeProperties, getRegisteredPackages, isThemeRegistered } from "../asset-registries/Themes.js";
import createThemePropertiesStyleTag from "./createThemePropertiesStyleTag.js";
import getThemeDesignerTheme from "./getThemeDesignerTheme.js";
import { ponyfillNeeded, runPonyfill } from "./CSSVarsPonyfill.js";
import { getFeature } from "../FeaturesRegistry.js";
const applyTheme = async theme => {
let cssText = "";
const BASE_THEME_PACKAGE = "@ui5/webcomponents-theme-base";
const isThemeBaseRegistered = () => {
const registeredPackages = getRegisteredPackages();
if (getExternalThemePresent()) {
registeredPackages.delete("@ui5/webcomponents-theme-base");
return registeredPackages.has(BASE_THEME_PACKAGE);
};
const loadThemeBase = async theme => {
if (!isThemeBaseRegistered()) {
return;
}
const cssText = await getThemeProperties(BASE_THEME_PACKAGE, theme);
createThemePropertiesStyleTag(cssText, BASE_THEME_PACKAGE);
};
const deleteThemeBase = () => {
const styleElement = document.head.querySelector(`style[data-ui5-theme-properties="${BASE_THEME_PACKAGE}"]`);
if (styleElement) {
styleElement.parentElement.removeChild(styleElement);
}
};
const loadComponentPackages = async theme => {
const registeredPackages = getRegisteredPackages();
registeredPackages.forEach(async packageName => {
cssText = await getThemeProperties(packageName, theme);
if (packageName === BASE_THEME_PACKAGE) {
return;
}
const cssText = await getThemeProperties(packageName, theme);
createThemePropertiesStyleTag(cssText, packageName);

@@ -19,2 +42,41 @@ });

const detectExternalTheme = () => {
// If theme designer theme is detected, use this
const extTheme = getThemeDesignerTheme();
if (extTheme) {
return extTheme;
}
// If OpenUI5Support is enabled, try to find out if it loaded variables
const OpenUI5Support = getFeature("OpenUI5Support");
if (OpenUI5Support) {
const varsLoaded = OpenUI5Support.cssVariablesLoaded();
if (varsLoaded) {
return {
themeName: OpenUI5Support.getConfigurationSettingsObject().theme, // just themeName, baseThemeName is only relevant for custom themes
};
}
}
};
const applyTheme = async theme => {
const extTheme = detectExternalTheme();
// Only load theme_base properties if there is no externally loaded theme, or there is, but it is not being loaded
if (!extTheme || theme !== extTheme.themeName) {
await loadThemeBase(theme);
} else {
deleteThemeBase();
}
// Always load component packages properties. For non-registered themes, try with the base theme, if any
const packagesTheme = isThemeRegistered(theme) ? theme : extTheme && extTheme.baseThemeName;
await loadComponentPackages(packagesTheme);
// When changing the theme, run the ponyfill immediately
if (ponyfillNeeded()) {
runPonyfill();
}
};
export default applyTheme;

@@ -8,2 +8,11 @@ import createStyleInHead from "../util/createStyleInHead.js";

const getStaticStyle = ElementClass => {
let componentStaticStyles = ElementClass.staticAreaStyles;
if (Array.isArray(componentStaticStyles)) {
componentStaticStyles = componentStaticStyles.join(" ");
}
return componentStaticStyles;
};
/**

@@ -22,2 +31,10 @@ * Creates the needed CSS for a web component class in the head tag

cssContent = adaptCSSForIE(cssContent, tag);
// Append static CSS, if any, for IE
let staticCssContent = getStaticStyle(ElementClass);
if (staticCssContent) {
staticCssContent = adaptCSSForIE(staticCssContent, "ui5-static-area-item");
cssContent = `${cssContent} ${staticCssContent}`;
}
createStyleInHead(cssContent, {

@@ -24,0 +41,0 @@ "data-ui5-element-styles": tag,

import createStyleInHead from "../util/createStyleInHead.js";
import { ponyfillNeeded, runPonyfill } from "./CSSVarsPonyfill.js";

@@ -10,3 +9,2 @@ /**

const createThemePropertiesStyleTag = (cssText, packageName) => {
// Needed for all browsers
const styleElement = document.head.querySelector(`style[data-ui5-theme-properties="${packageName}"]`);

@@ -21,9 +19,4 @@ if (styleElement) {

}
// When changing the theme, run the ponyfill immediately
if (ponyfillNeeded()) {
runPonyfill();
}
};
export default createThemePropertiesStyleTag;

@@ -10,3 +10,2 @@ let ponyfillTimer;

rootElement: document.head,
include: "style[data-ui5-theme-properties],style[data-ui5-element-styles]",
silent: true,

@@ -13,0 +12,0 @@ });

@@ -6,2 +6,3 @@ import merge from "./thirdparty/merge.js";

import RenderScheduler from "./RenderScheduler.js";
import { registerTag, isTagRegistered } from "./CustomElementsRegistry.js";
import DOMObserver from "./compatibility/DOMObserver.js";

@@ -22,3 +23,2 @@ import { skipOriginalEvent } from "./config/NoConflict.js";

const DefinitionsSet = new Set();
let autoId = 0;

@@ -100,3 +100,2 @@

const needsShadowDOM = this.constructor._needsShadowDOM();
const needsStaticArea = this.constructor._needsStaticArea();
const slotsAreManaged = this.constructor.getMetadata().slotsAreManaged();

@@ -112,2 +111,6 @@

if (!this.shadowRoot) { // Workaround for Firefox74 bug
await Promise.resolve();
}
await RenderScheduler.renderImmediately(this);

@@ -119,7 +122,2 @@ this._domRefReadyPromise._deferredResolve();

}
// Render Fragment if neccessary
if (needsStaticArea) {
this.staticAreaItem._updateFragment(this);
}
}

@@ -476,3 +474,3 @@

if (this.constructor._needsStaticArea()) {
if (this._shouldUpdateFragment()) {
this.staticAreaItem._updateFragment(this);

@@ -496,2 +494,6 @@ }

_updateShadowRoot() {
if (!this.constructor._needsShadowDOM()) {
return;
}
let styleToPrepend;

@@ -676,2 +678,6 @@ const renderResult = this.constructor.template(this);

_shouldUpdateFragment() {
return this.constructor._needsStaticArea() && this.staticAreaItem.isRendered();
}
/**

@@ -753,6 +759,18 @@ * @private

if (propData.type === "boolean" && propData.defaultValue) {
if (propData.type === Boolean && propData.defaultValue) {
throw new Error(`Cannot set a default value for property "${prop}". All booleans are false by default.`);
}
if (propData.type === Array) {
throw new Error(`Wrong type for property "${prop}". Properties cannot be of type Array - use "multiple: true" and set "type" to the single value type, such as "String", "Object", etc...`);
}
if (propData.type === Object && propData.defaultValue) {
throw new Error(`Cannot set a default value for property "${prop}". All properties of type "Object" are empty objects by default.`);
}
if (propData.multiple && propData.defaultValue) {
throw new Error(`Cannot set a default value for property "${prop}". All multiple properties are empty arrays by default.`);
}
Object.defineProperty(proto, prop, {

@@ -831,2 +849,10 @@ get() {

/**
* Returns the Static Area CSS for this UI5 Web Component Class
* @protected
*/
static get staticAreaStyles() {
return "";
}
/**
* Registers a UI5 Web Component in the browser window object

@@ -845,3 +871,3 @@ * @public

const definedLocally = DefinitionsSet.has(tag);
const definedLocally = isTagRegistered(tag);
const definedGlobally = customElements.get(tag);

@@ -853,3 +879,3 @@

this._generateAccessors();
DefinitionsSet.add(tag);
registerTag(tag);
window.customElements.define(tag, this);

@@ -856,0 +882,0 @@ }

@@ -0,1 +1,3 @@

import { DEFAULT_LANGUAGE } from "../generated/AssetParameters.js";
export default () => {

@@ -10,3 +12,3 @@ const browserLanguages = navigator.languages;

return rawLocale || "en";
return rawLocale || DEFAULT_LANGUAGE;
};

@@ -0,4 +1,7 @@

// Note: disabled is present in IE so we explicitly allow it here.
// Others, such as ariaLabel, we explicitly override, so valid too
const whitelist = ["disabled", "ariaLabel"];
/**
* Checks whether a property name is valid (does not collide with existing DOM API properties)
* Note: disabled is present in IE so we explicitly allow it here.
*

@@ -9,3 +12,3 @@ * @param name

const isValidPropertyName = name => {
if (name === "disabled") {
if (whitelist.includes(name)) {
return true;

@@ -12,0 +15,0 @@ }

@@ -15,4 +15,8 @@ import isNodeTabbable from "./isNodeTabbable.js";

if (!nodes) {
return tabbablesNodes;
}
Array.from(nodes).forEach(currentNode => {
if (currentNode.nodeType === Node.TEXT_NODE) {
if (currentNode.nodeType === Node.TEXT_NODE || currentNode.nodeType === Node.COMMENT_NODE) {
return;

@@ -19,0 +23,0 @@ }

@@ -0,8 +1,13 @@

const path = require("path");
const resolve = require("resolve");
const serveConfig = `../tools/components-package/serve.json`;
const port = `9191`;
const assetParametersScript = resolve.sync("@ui5/webcomponents-base/lib/generate-asset-parameters/index.js");
const scripts = {
clean: "rimraf dist",
lint: "eslint . --config config/.eslintrc.js",
prepare: "nps clean copy",
prepare: "nps clean copy generateAssetParameters",
build: {

@@ -14,3 +19,2 @@ default: "nps lint prepare build.bundle",

default: "nps copy.src copy.test copy.webcomponents-polyfill",
cldr: 'copy-and-watch "../../node_modules/@ui5/webcomponents-utils/dist/**/cldr/*.json" dist/generated/assets/cldr/',
src: "copy-and-watch \"src/**/*.js\" dist/",

@@ -20,2 +24,3 @@ test: "copy-and-watch \"test/**/*.*\" dist/test-resources",

},
generateAssetParameters: `node "${assetParametersScript}"`,
watch: {

@@ -22,0 +27,0 @@ default: 'concurrently "nps watch.test" "nps watch.src" "nps watch.bundle"',

{
"name": "@ui5/webcomponents-base",
"version": "0.0.0-07460127d",
"version": "0.0.0-0fcda382e",
"description": "UI5 Web Components: webcomponents.base",

@@ -33,3 +33,3 @@ "author": "SAP SE (https://www.sap.com)",

"devDependencies": {
"@ui5/webcomponents-tools": "0.0.0-07460127d",
"@ui5/webcomponents-tools": "0.0.0-0fcda382e",
"array-uniq": "^2.0.0",

@@ -36,0 +36,0 @@ "copy-and-watch": "^0.1.4",

@@ -5,2 +5,3 @@ import getLocale from "../locale/getLocale.js";

import nextFallbackLocale from "../locale/nextFallbackLocale.js";
import { DEFAULT_LANGUAGE } from "../generated/AssetParameters.js";

@@ -59,2 +60,6 @@ const bundleData = new Map();

if (localeId === DEFAULT_LANGUAGE) {
return;
}
const bundleURL = bundlesForPackage[localeId];

@@ -64,3 +69,3 @@

setI18nBundleData(packageName, bundleURL);
return bundleURL;
return;
}

@@ -67,0 +72,0 @@

import { fetchJsonOnce } from "../util/FetchHelper.js";
import { getFeature } from "../FeaturesRegistry.js";
import { DEFAULT_LOCALE, SUPPORTED_LOCALES } from "../generated/AssetParameters.js";
const OpenUI5Support = getFeature("OpenUI5Support");
const supportedLocales = ["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"];
const resources = new Map();

@@ -41,9 +38,9 @@ const cldrData = {};

let localeId = `${language}_${region}`;
if (!supportedLocales.includes(localeId)) {
if (!SUPPORTED_LOCALES.includes(localeId)) {
// fallback to language only
localeId = language;
}
if (!supportedLocales.includes(localeId)) {
if (!SUPPORTED_LOCALES.includes(localeId)) {
// fallback to english
localeId = "en";
localeId = DEFAULT_LOCALE;
}

@@ -60,3 +57,3 @@

const missingLocales = supportedLocales.filter(locale => !cldrData[locale] && !cldrUrls[locale]);
const missingLocales = SUPPORTED_LOCALES.filter(locale => !cldrData[locale] && !cldrUrls[locale]);
missingLocales.forEach(locale => {

@@ -92,2 +89,3 @@ cldrUrls[locale] = cldrMappingFn(locale);

const OpenUI5Support = getFeature("OpenUI5Support");
if (!cldrObj && OpenUI5Support) {

@@ -94,0 +92,0 @@ cldrObj = OpenUI5Support.getLocaleDataObject();

@@ -1,2 +0,4 @@

import { fetchJsonOnce } from "../util/FetchHelper.js";
import { fetchJsonOnce, fetchTextOnce } from "../util/FetchHelper.js";
import { DEFAULT_THEME } from "../generated/AssetParameters.js";
import getFileExtension from "../util/getFileExtension.js";

@@ -18,3 +20,5 @@ const themeURLs = new Map();

* registerThemeProperties("my-package", "my_theme", {"_": ":root{--var1: red;}"});
* 3) Pass a URL to a JSON file, containing the CSS Vars in its "_" property. Will be fetched on demand, not upon registration.
* 3) Pass a URL to a CSS file, containing the CSS Vars. Will be fetched on demand, not upon registration.
* registerThemeProperties("my-package", "my_theme", "http://url/to/my/theme.css");
* 4) Pass a URL to a JSON file, containing the CSS Vars in its "_" property. Will be fetched on demand, not upon registration.
* registerThemeProperties("my-package", "my_theme", "http://url/to/my/theme.json");

@@ -25,3 +29,3 @@ *

* @param themeName - the theme which the CSS Vars implement
* @param style - can be one of three options: a string, an object with a "_" property or a URL to a JSON file with a "_" property
* @param style - can be one of four options: a string, an object with a "_" property, URL to a CSS file, or URL to a JSON file with a "_" property
*/

@@ -32,4 +36,4 @@ const registerThemeProperties = (packageName, themeName, style) => {

themeStyles.set(`${packageName}_${themeName}`, style._);
} else if (style.includes(":root")) {
// pure string
} else if (style.includes(":root") || style === "") {
// pure string, including empty string
themeStyles.set(`${packageName}_${themeName}`, style);

@@ -46,3 +50,3 @@ } else {

const style = themeStyles.get(`${packageName}_${themeName}`);
if (style) {
if (style !== undefined) { // it's valid for style to be an empty string
return style;

@@ -53,9 +57,11 @@ }

const regThemesStr = [...registeredThemes.values()].join(", ");
console.warn(`You have requested a non-registered theme - falling back to sap_fiori_3. Registered themes are: ${regThemesStr}`); /* eslint-disable-line */
return themeStyles.get(`${packageName}_sap_fiori_3`);
console.warn(`You have requested a non-registered theme - falling back to ${DEFAULT_THEME}. Registered themes are: ${regThemesStr}`); /* eslint-disable-line */
return themeStyles.get(`${packageName}_${DEFAULT_THEME}`);
}
const data = await fetchThemeProperties(packageName, themeName);
themeStyles.set(`${packageName}_${themeName}`, data._);
return data._;
const themeProps = data._ || data;
themeStyles.set(`${packageName}_${themeName}`, themeProps);
return themeProps;
};

@@ -69,3 +75,4 @@

}
return fetchJsonOnce(url);
return getFileExtension(url) === ".css" ? fetchTextOnce(url) : fetchJsonOnce(url);
};

@@ -77,2 +84,6 @@

const isThemeRegistered = theme => {
return registeredThemes.has(theme);
};
export {

@@ -82,2 +93,3 @@ registerThemeProperties,

getRegisteredPackages,
isThemeRegistered,
};

@@ -9,3 +9,2 @@ import whenDOMReady from "./util/whenDOMReady.js";

let bootPromise;
const OpenUI5Support = getFeature("OpenUI5Support");

@@ -18,2 +17,3 @@ const boot = () => {

bootPromise = new Promise(async resolve => {
const OpenUI5Support = getFeature("OpenUI5Support");
if (OpenUI5Support) {

@@ -20,0 +20,0 @@ await OpenUI5Support.init();

@@ -0,1 +1,2 @@

import { isPhone } from "../Device.js";
import EventProvider from "../EventProvider.js";

@@ -5,3 +6,3 @@ import scroll from "../animations/scroll.js";

const scrollEventName = "scroll";
const touchEndEventName = "touchend";
const touchEndEventName = isPhone() ? "touchend" : "mouseup";

@@ -11,5 +12,26 @@ class ScrollEnablement extends EventProvider {

super();
containerComponent.addEventListener("touchstart", this.ontouchstart.bind(this), { passive: true });
containerComponent.addEventListener("touchmove", this.ontouchmove.bind(this), { passive: true });
containerComponent.addEventListener("touchend", this.ontouchend.bind(this), { passive: true });
this.containerComponent = containerComponent;
this.mouseMove = this.ontouchmove.bind(this);
this.mouseUp = this.ontouchend.bind(this);
this.touchStart = this.ontouchstart.bind(this);
this.isPhone = isPhone();
// On Android devices touchmove is thrown one more time than neccessary (together with touchend)
// so we have to cache the previus coordinates in order to provide correct parameters in the
// event for Android
this.cachedValue = {};
// In components like Carousel you need to know if the user has clicked on something or swiped
// in order to throw the needed event or not
this.startX = 0;
this.startY = 0;
if (this.isPhone) {
containerComponent.addEventListener("touchstart", this.touchStart, { passive: true });
containerComponent.addEventListener("touchmove", this.mouseMove, { passive: true });
containerComponent.addEventListener("touchend", this.mouseUp, { passive: true });
} else {
containerComponent.addEventListener("mousedown", this.touchStart, { passive: true });
}
}

@@ -48,4 +70,4 @@

const rect = this._container.getBoundingClientRect();
const x = touch.clientX;
const y = touch.clientY;
const x = this.isPhone ? touch.clientX : touch.x;
const y = this.isPhone ? touch.clientY : touch.y;

@@ -57,7 +79,17 @@ return x >= rect.left && x <= rect.right

ontouchstart(event) {
const touch = event.touches[0];
this._prevDragX = touch.pageX;
this._prevDragY = touch.pageY;
const touch = this.isPhone ? event.touches[0] : null;
this._canScroll = this._isTouchInside(touch);
if (!this.isPhone) {
document.addEventListener("mouseup", this.mouseUp, { passive: true });
document.addEventListener("mousemove", this.mouseMove, { passive: true });
} else {
// Needed only on mobile
this.startX = touch.pageX;
this.startY = touch.pageY;
}
this._prevDragX = this.isPhone ? touch.pageX : event.x;
this._prevDragY = this.isPhone ? touch.pageY : event.y;
this._canScroll = this._isTouchInside(this.isPhone ? touch : event);
}

@@ -71,6 +103,6 @@

const container = this._container;
const touch = event.touches[0];
const touch = this.isPhone ? event.touches[0] : null;
const dragX = touch.pageX;
const dragY = touch.pageY;
const dragX = this.isPhone ? touch.pageX : event.x;
const dragY = this.isPhone ? touch.pageY : event.y;

@@ -85,2 +117,5 @@ container.scrollLeft += this._prevDragX - dragX;

this.cachedValue.dragX = this._prevDragX;
this.cachedValue.dragY = this._prevDragY;
this._prevDragX = dragX;

@@ -91,2 +126,11 @@ this._prevDragY = dragY;

ontouchend(event) {
if (this.isPhone) {
const deltaX = Math.abs(event.changedTouches[0].pageX - this.startX);
const deltaY = Math.abs(event.changedTouches[0].pageY - this.startY);
if (deltaX < 10 && deltaY < 10) {
return;
}
}
if (!this._canScroll) {

@@ -97,4 +141,4 @@ return;

const container = this._container;
const dragX = event.pageX;
const dragY = event.pageY;
const dragX = this.isPhone ? event.changedTouches[0].pageX : event.x;
const dragY = this.isPhone ? event.changedTouches[0].pageY : event.y;

@@ -104,5 +148,9 @@ container.scrollLeft += this._prevDragX - dragX;

const useCachedValues = dragX === this._prevDragX;
const _dragX = useCachedValues ? this.cachedValue.dragX : dragX;
// const _dragY = useCachedValues ? this.cachedValue.dragY : dragY; add if needed
this.fireEvent(touchEndEventName, {
isLeft: dragX > this._prevDragX,
isRight: dragX < this._prevDragX,
isLeft: _dragX < this._prevDragX,
isRight: _dragX > this._prevDragX,
});

@@ -112,2 +160,7 @@

this._prevDragY = dragY;
if (!this.isPhone) {
document.removeEventListener("mousemove", this.mouseMove, { passive: true });
document.removeEventListener("mouseup", this.mouseUp);
}
}

@@ -114,0 +167,0 @@ }

@@ -38,3 +38,3 @@ import { registerFeature } from "../FeaturesRegistry.js";

formatSettings: {
firstDayOfWeek: LocaleData.getInstance(config.getLocale()).getFirstDayOfWeek(),
firstDayOfWeek: LocaleData ? LocaleData.getInstance(config.getLocale()).getFirstDayOfWeek() : undefined,
},

@@ -69,2 +69,15 @@ };

const cssVariablesLoaded = () => {
if (!core) {
return;
}
const link = [...document.head.children].find(el => el.id === "sap-ui-theme-sap.ui.core"); // more reliable than querySelector early
if (!link) {
return;
}
return !!link.href.match(/\/css-variables\.css/);
};
const OpenUI5Support = {

@@ -76,4 +89,5 @@ isLoaded,

attachListeners,
cssVariablesLoaded,
};
registerFeature("OpenUI5Support", OpenUI5Support);

@@ -15,9 +15,7 @@ import { fetchI18nBundle, getI18nBundleData } from "./asset-registries/i18n.js";

}
const bundle = getI18nBundleData(this.packageName);
const messageText = bundle && bundle[textObj.key] ? bundle[textObj.key] : textObj.defaultText;
if (!bundle || !bundle[textObj.key]) {
return formatMessage(textObj.defaultText, params); // Fallback to "en"
}
return formatMessage(bundle[textObj.key], params);
return formatMessage(messageText, params);
}

@@ -24,0 +22,0 @@ }

import merge from "./thirdparty/merge.js";
import { getFeature } from "./FeaturesRegistry.js";
import { DEFAULT_THEME } from "./generated/AssetParameters.js";

@@ -8,3 +9,3 @@ let initialized = false;

animationMode: "full",
theme: "sap_fiori_3",
theme: DEFAULT_THEME,
rtl: null,

@@ -11,0 +12,0 @@ language: null,

@@ -0,1 +1,3 @@

import { DEFAULT_LOCALE } from "../generated/AssetParameters.js";
/**

@@ -5,7 +7,7 @@ * Calculates the next fallback locale for the given locale.

* @param {string} locale Locale string in Java format (underscores) or null
* @returns {string|null} Next fallback Locale or null if there is no more fallback
* @returns {string} Next fallback Locale or "en" if no fallbacks found.
*/
const nextFallbackLocale = locale => {
if (!locale) {
return null;
return DEFAULT_LOCALE;
}

@@ -23,6 +25,6 @@

// for any language but 'en', fallback to 'en' first before falling back to the 'raw' language (empty string)
return locale !== "en" ? "en" : "";
// for any language but the default, fallback to the default first before falling back to the 'raw' language (empty string)
return locale !== DEFAULT_LOCALE ? DEFAULT_LOCALE : "";
};
export default nextFallbackLocale;

@@ -0,1 +1,3 @@

import { DEFAULT_LOCALE } from "../generated/AssetParameters.js";
const localeRegEX = /^((?:[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;

@@ -15,3 +17,3 @@ const SAPSupportabilityLocales = /(?:^|-)(saptrc|sappsd)(?:-|$)/i;

* @param {string} locale locale to normalize
* @returns {string} Normalized locale or undefined if the locale can't be normalized
* @returns {string} Normalized locale, "undefined" if the locale can't be normalized or the default locale, if no locale provided.
*/

@@ -21,2 +23,6 @@ const normalizeLocale = locale => {

if (!locale) {
return DEFAULT_LOCALE;
}
if (typeof locale === "string" && (m = localeRegEX.exec(locale.replace(/_/g, "-")))) {/* eslint-disable-line */

@@ -23,0 +29,0 @@ let language = m[1].toLowerCase();

import RenderQueue from "./RenderQueue.js";
import { getAllRegisteredTags } from "./CustomElementsRegistry.js";

@@ -121,29 +122,9 @@ const MAX_RERENDER_COUNT = 10;

static getNotDefinedComponents() {
return Array.from(document.querySelectorAll("*")).filter(el => el.localName.startsWith("ui5-") && !el.isUI5Element);
static whenAllCustomElementsAreDefined() {
const definedPromises = getAllRegisteredTags().map(tag => customElements.whenDefined(tag));
return Promise.all(definedPromises);
}
/**
* return a promise that will be resolved once all ui5 webcomponents on the page have their shadow root ready
*/
static async whenShadowDOMReady() {
const undefinedElements = this.getNotDefinedComponents();
const definedPromises = undefinedElements.map(
el => customElements.whenDefined(el.localName)
);
const timeoutPromise = new Promise(resolve => setTimeout(resolve, 5000));
await Promise.race([Promise.all(definedPromises), timeoutPromise]);
const stillUndefined = this.getNotDefinedComponents();
if (stillUndefined.length) {
// eslint-disable-next-line
console.warn("undefined elements after 5 seconds are: " + [...stillUndefined].map(el => el.localName).join(" ; "));
}
return Promise.resolve();
}
static async whenFinished() {
await RenderScheduler.whenShadowDOMReady();
await RenderScheduler.whenAllCustomElementsAreDefined();
await RenderScheduler.whenDOMUpdated();

@@ -150,0 +131,0 @@ }

import { getStaticAreaInstance, removeStaticArea } from "./StaticArea.js";
import RenderScheduler from "./RenderScheduler.js";

@@ -12,4 +13,9 @@ /**

this.ui5ElementContext = _ui5ElementContext;
this._rendered = false;
}
isRendered() {
return this._rendered;
}
/**

@@ -20,3 +26,3 @@ * @protected

const renderResult = this.ui5ElementContext.constructor.staticAreaTemplate(this.ui5ElementContext),
stylesToAdd = this.ui5ElementContext.constructor.staticAreaStyles || false;
stylesToAdd = window.ShadyDOM ? false : this.ui5ElementContext.constructor.staticAreaStyles;

@@ -31,2 +37,3 @@ if (!this.staticAreaItemDomRef) {

getStaticAreaInstance().appendChild(this.staticAreaItemDomRef);
this._rendered = true;
}

@@ -41,2 +48,6 @@

_removeFragmentFromStaticArea() {
if (!this.staticAreaItemDomRef) {
return;
}
const staticArea = getStaticAreaInstance();

@@ -75,3 +86,7 @@

*/
getDomRef() {
async getDomRef() {
if (!this._rendered || !this.staticAreaItemDomRef) {
this._updateFragment();
}
await RenderScheduler.whenDOMUpdated(); // Wait for the content of the ui5-static-area-item to be rendered
return this.staticAreaItemDomRef.shadowRoot;

@@ -78,0 +93,0 @@ }

const registry = new Map();
const iconCollectionPromises = new Map();
const ICON_NOT_FOUND = "ICON_NOT_FOUND";
const DEFAULT_COLLECTION = "SAP-icons";

@@ -30,6 +31,11 @@

if (!iconCollectionPromises.has(collection)) {
iconCollectionPromises.set(collection, Promise.reject());
iconCollectionPromises.set(collection, Promise.resolve(ICON_NOT_FOUND));
}
await iconCollectionPromises.get(collection);
const iconData = await iconCollectionPromises.get(collection);
if (iconData === ICON_NOT_FOUND) {
return iconData;
}
return registry.get(key);

@@ -36,0 +42,0 @@ };

import { addCustomCSS } from "./theming/CustomStyle.js";
import { setExternalThemePresent } from "./theming/ExternalThemePresent.js";
export {
addCustomCSS,
setExternalThemePresent,
};
export { addCustomCSS }; // eslint-disable-line

@@ -1,15 +0,38 @@

import { getThemeProperties, getRegisteredPackages } from "../asset-registries/Themes.js";
import { getExternalThemePresent } from "./ExternalThemePresent.js";
import { getThemeProperties, getRegisteredPackages, isThemeRegistered } from "../asset-registries/Themes.js";
import createThemePropertiesStyleTag from "./createThemePropertiesStyleTag.js";
import getThemeDesignerTheme from "./getThemeDesignerTheme.js";
import { ponyfillNeeded, runPonyfill } from "./CSSVarsPonyfill.js";
import { getFeature } from "../FeaturesRegistry.js";
const applyTheme = async theme => {
let cssText = "";
const BASE_THEME_PACKAGE = "@ui5/webcomponents-theme-base";
const isThemeBaseRegistered = () => {
const registeredPackages = getRegisteredPackages();
if (getExternalThemePresent()) {
registeredPackages.delete("@ui5/webcomponents-theme-base");
return registeredPackages.has(BASE_THEME_PACKAGE);
};
const loadThemeBase = async theme => {
if (!isThemeBaseRegistered()) {
return;
}
const cssText = await getThemeProperties(BASE_THEME_PACKAGE, theme);
createThemePropertiesStyleTag(cssText, BASE_THEME_PACKAGE);
};
const deleteThemeBase = () => {
const styleElement = document.head.querySelector(`style[data-ui5-theme-properties="${BASE_THEME_PACKAGE}"]`);
if (styleElement) {
styleElement.parentElement.removeChild(styleElement);
}
};
const loadComponentPackages = async theme => {
const registeredPackages = getRegisteredPackages();
registeredPackages.forEach(async packageName => {
cssText = await getThemeProperties(packageName, theme);
if (packageName === BASE_THEME_PACKAGE) {
return;
}
const cssText = await getThemeProperties(packageName, theme);
createThemePropertiesStyleTag(cssText, packageName);

@@ -19,2 +42,41 @@ });

const detectExternalTheme = () => {
// If theme designer theme is detected, use this
const extTheme = getThemeDesignerTheme();
if (extTheme) {
return extTheme;
}
// If OpenUI5Support is enabled, try to find out if it loaded variables
const OpenUI5Support = getFeature("OpenUI5Support");
if (OpenUI5Support) {
const varsLoaded = OpenUI5Support.cssVariablesLoaded();
if (varsLoaded) {
return {
themeName: OpenUI5Support.getConfigurationSettingsObject().theme, // just themeName, baseThemeName is only relevant for custom themes
};
}
}
};
const applyTheme = async theme => {
const extTheme = detectExternalTheme();
// Only load theme_base properties if there is no externally loaded theme, or there is, but it is not being loaded
if (!extTheme || theme !== extTheme.themeName) {
await loadThemeBase(theme);
} else {
deleteThemeBase();
}
// Always load component packages properties. For non-registered themes, try with the base theme, if any
const packagesTheme = isThemeRegistered(theme) ? theme : extTheme && extTheme.baseThemeName;
await loadComponentPackages(packagesTheme);
// When changing the theme, run the ponyfill immediately
if (ponyfillNeeded()) {
runPonyfill();
}
};
export default applyTheme;

@@ -8,2 +8,11 @@ import createStyleInHead from "../util/createStyleInHead.js";

const getStaticStyle = ElementClass => {
let componentStaticStyles = ElementClass.staticAreaStyles;
if (Array.isArray(componentStaticStyles)) {
componentStaticStyles = componentStaticStyles.join(" ");
}
return componentStaticStyles;
};
/**

@@ -22,2 +31,10 @@ * Creates the needed CSS for a web component class in the head tag

cssContent = adaptCSSForIE(cssContent, tag);
// Append static CSS, if any, for IE
let staticCssContent = getStaticStyle(ElementClass);
if (staticCssContent) {
staticCssContent = adaptCSSForIE(staticCssContent, "ui5-static-area-item");
cssContent = `${cssContent} ${staticCssContent}`;
}
createStyleInHead(cssContent, {

@@ -24,0 +41,0 @@ "data-ui5-element-styles": tag,

import createStyleInHead from "../util/createStyleInHead.js";
import { ponyfillNeeded, runPonyfill } from "./CSSVarsPonyfill.js";

@@ -10,3 +9,2 @@ /**

const createThemePropertiesStyleTag = (cssText, packageName) => {
// Needed for all browsers
const styleElement = document.head.querySelector(`style[data-ui5-theme-properties="${packageName}"]`);

@@ -21,9 +19,4 @@ if (styleElement) {

}
// When changing the theme, run the ponyfill immediately
if (ponyfillNeeded()) {
runPonyfill();
}
};
export default createThemePropertiesStyleTag;

@@ -10,3 +10,2 @@ let ponyfillTimer;

rootElement: document.head,
include: "style[data-ui5-theme-properties],style[data-ui5-element-styles]",
silent: true,

@@ -13,0 +12,0 @@ });

@@ -6,2 +6,3 @@ import merge from "./thirdparty/merge.js";

import RenderScheduler from "./RenderScheduler.js";
import { registerTag, isTagRegistered } from "./CustomElementsRegistry.js";
import DOMObserver from "./compatibility/DOMObserver.js";

@@ -22,3 +23,2 @@ import { skipOriginalEvent } from "./config/NoConflict.js";

const DefinitionsSet = new Set();
let autoId = 0;

@@ -100,3 +100,2 @@

const needsShadowDOM = this.constructor._needsShadowDOM();
const needsStaticArea = this.constructor._needsStaticArea();
const slotsAreManaged = this.constructor.getMetadata().slotsAreManaged();

@@ -112,2 +111,6 @@

if (!this.shadowRoot) { // Workaround for Firefox74 bug
await Promise.resolve();
}
await RenderScheduler.renderImmediately(this);

@@ -119,7 +122,2 @@ this._domRefReadyPromise._deferredResolve();

}
// Render Fragment if neccessary
if (needsStaticArea) {
this.staticAreaItem._updateFragment(this);
}
}

@@ -476,3 +474,3 @@

if (this.constructor._needsStaticArea()) {
if (this._shouldUpdateFragment()) {
this.staticAreaItem._updateFragment(this);

@@ -496,2 +494,6 @@ }

_updateShadowRoot() {
if (!this.constructor._needsShadowDOM()) {
return;
}
let styleToPrepend;

@@ -676,2 +678,6 @@ const renderResult = this.constructor.template(this);

_shouldUpdateFragment() {
return this.constructor._needsStaticArea() && this.staticAreaItem.isRendered();
}
/**

@@ -753,6 +759,18 @@ * @private

if (propData.type === "boolean" && propData.defaultValue) {
if (propData.type === Boolean && propData.defaultValue) {
throw new Error(`Cannot set a default value for property "${prop}". All booleans are false by default.`);
}
if (propData.type === Array) {
throw new Error(`Wrong type for property "${prop}". Properties cannot be of type Array - use "multiple: true" and set "type" to the single value type, such as "String", "Object", etc...`);
}
if (propData.type === Object && propData.defaultValue) {
throw new Error(`Cannot set a default value for property "${prop}". All properties of type "Object" are empty objects by default.`);
}
if (propData.multiple && propData.defaultValue) {
throw new Error(`Cannot set a default value for property "${prop}". All multiple properties are empty arrays by default.`);
}
Object.defineProperty(proto, prop, {

@@ -831,2 +849,10 @@ get() {

/**
* Returns the Static Area CSS for this UI5 Web Component Class
* @protected
*/
static get staticAreaStyles() {
return "";
}
/**
* Registers a UI5 Web Component in the browser window object

@@ -845,3 +871,3 @@ * @public

const definedLocally = DefinitionsSet.has(tag);
const definedLocally = isTagRegistered(tag);
const definedGlobally = customElements.get(tag);

@@ -853,3 +879,3 @@

this._generateAccessors();
DefinitionsSet.add(tag);
registerTag(tag);
window.customElements.define(tag, this);

@@ -856,0 +882,0 @@ }

@@ -0,1 +1,3 @@

import { DEFAULT_LANGUAGE } from "../generated/AssetParameters.js";
export default () => {

@@ -10,3 +12,3 @@ const browserLanguages = navigator.languages;

return rawLocale || "en";
return rawLocale || DEFAULT_LANGUAGE;
};

@@ -0,4 +1,7 @@

// Note: disabled is present in IE so we explicitly allow it here.
// Others, such as ariaLabel, we explicitly override, so valid too
const whitelist = ["disabled", "ariaLabel"];
/**
* Checks whether a property name is valid (does not collide with existing DOM API properties)
* Note: disabled is present in IE so we explicitly allow it here.
*

@@ -9,3 +12,3 @@ * @param name

const isValidPropertyName = name => {
if (name === "disabled") {
if (whitelist.includes(name)) {
return true;

@@ -12,0 +15,0 @@ }

@@ -15,4 +15,8 @@ import isNodeTabbable from "./isNodeTabbable.js";

if (!nodes) {
return tabbablesNodes;
}
Array.from(nodes).forEach(currentNode => {
if (currentNode.nodeType === Node.TEXT_NODE) {
if (currentNode.nodeType === Node.TEXT_NODE || currentNode.nodeType === Node.COMMENT_NODE) {
return;

@@ -19,0 +23,0 @@ }

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc