@ui5/webcomponents-base
Advanced tools
Comparing version 0.0.0-07460127d to 0.0.0-185851a98
@@ -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,40 @@ # Change Log | ||
# [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 +46,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 @@ |
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 +40,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 +59,3 @@ | ||
const missingLocales = supportedLocales.filter(locale => !cldrData[locale] && !cldrUrls[locale]); | ||
const missingLocales = SUPPORTED_LOCALES.filter(locale => !cldrData[locale] && !cldrUrls[locale]); | ||
missingLocales.forEach(locale => { | ||
@@ -63,0 +62,0 @@ cldrUrls[locale] = cldrMappingFn(locale); |
@@ -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 | ||
*/ | ||
@@ -51,9 +55,11 @@ const registerThemeProperties = (packageName, themeName, style) => { | ||
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; | ||
}; | ||
@@ -67,3 +73,4 @@ | ||
} | ||
return fetchJsonOnce(url); | ||
return getFileExtension(url) === ".css" ? fetchTextOnce(url) : fetchJsonOnce(url); | ||
}; | ||
@@ -70,0 +77,0 @@ |
@@ -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,16 @@ 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(); | ||
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 +60,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 +69,13 @@ 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 }); | ||
} | ||
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 +89,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; | ||
@@ -95,4 +113,4 @@ container.scrollLeft += this._prevDragX - dragX; | ||
const container = this._container; | ||
const dragX = event.pageX; | ||
const dragY = event.pageY; | ||
const dragX = this.isPhone ? event.pageX : event.x; | ||
const dragY = this.isPhone ? event.pageY : event.y; | ||
@@ -109,2 +127,7 @@ container.scrollLeft += this._prevDragX - dragX; | ||
this._prevDragY = dragY; | ||
if (!this.isPhone) { | ||
document.removeEventListener("mousemove", this.mouseMove, { passive: true }); | ||
document.removeEventListener("mouseup", this.mouseUp); | ||
} | ||
} | ||
@@ -111,0 +134,0 @@ } |
@@ -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(); |
@@ -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=(h("OpenUI5Support"),new Map),A=new Map,E=new Set,x=new Set,O=(t,e,s)=>{s._?A.set(`${t}_${e}`,s._):s.includes(":root")?A.set(`${t}_${e}`,s):S.set(`${t}_${e}`,s),E.add(t),x.add(e)},C=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)},M=()=>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 P=(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 R;const N=()=>!!window.CSSVarsPonyfill,D=()=>{R=void 0,window.CSSVarsPonyfill.cssVars({rootElement:document.head,include:"style[data-ui5-theme-properties],style[data-ui5-element-styles]",silent:!0})},T=async e=>{let s="";const n=M();n.forEach(async n=>{s=await(async(e,s)=>{const n=A.get(`${e}_${s}`);if(n)return n;if(!x.has(s)){const s=[...x.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 C(e,s),o=i._||i;return A.set(`${e}_${s}`,o),o})(n,e),((t,e)=>{const s=document.head.querySelector(`style[data-ui5-theme-properties="${e}"]`);if(s)s.textContent=t||"";else{P(t,{"data-ui5-theme-properties":e})}N()&&D()})(s,n)})};let I;const L=()=>(void 0===I&&(I=(()=>(g(),m.theme))()),I),V=async t=>{I!==t&&(I=t,await T(I))},$=window.sap,k=$&&$.ui&&"function"==typeof $.ui.getCore&&$.ui.getCore();var j,F;j="OpenUI5Support",F={isLoaded:()=>!!k,init:()=>k?new Promise(t=>{k.attachInit(()=>{$.ui.require(["sap/ui/core/LocaleData"],t)})}):Promise.resolve(),getConfigurationSettingsObject:()=>{if(!k)return;const t=k.getConfiguration(),e=$.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(!k)return;const t=k.getConfiguration();return $.ui.require("sap/ui/core/LocaleData").getInstance(t.getLocale())._get()},attachListeners:()=>{k&&(()=>{const t=k.getConfiguration();k.attachThemeChanged(async()=>{await V(t.getTheme())})})()}},u.set(j,F);let U;let B;const H=h("OpenUI5Support"),W=()=>B||(B=new Promise(async t=>{H&&await H.init(),await(()=>new Promise(t=>{document.body?t():document.addEventListener("DOMContentLoaded",()=>{t()})}))(),await T(L()),H&&H.attachListeners(),(()=>{if(document.querySelector("head>style[data-ui5-font-face]"))return;const t=h("OpenUI5Support");t&&t.isLoaded()||P('\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(()=>U||(U=new Promise(t=>{window.WebComponents&&!window.WebComponents.ready&&window.WebComponents.waitFor?window.WebComponents.waitFor(()=>{t()}):t()}),U))(),t()}),B);class z{static isValid(t){}static generataTypeAcessors(t){Object.keys(t).forEach(e=>{Object.defineProperty(this,e,{get:()=>t[e]})})}}const q=new Map,J=new Map,G=t=>{if(!q.has(t)){const e=Z(t.split("-"));q.set(t,e)}return q.get(t)},X=t=>{if(!J.has(t)){const e=t.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase();J.set(t,e)}return J.get(t)},Z=t=>t.map((t,e)=>0===e?t.toLowerCase():t.charAt(0).toUpperCase()+t.slice(1).toLowerCase()).join("");class Y{constructor(t){this.metadata=t}static validatePropertyValue(t,e){return e.multiple?t.map(t=>K(t,e)):K(t,e)}static validateSlotValue(t,e){return Q(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(X)}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 K=(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,z)?s.isValid(t)?t:e.defaultValue:void 0},Q=(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},tt=()=>{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)},et=()=>{tt().destroy()};class st 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",st);const nt=10;let it;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 rt,at,lt,ct;class dt{constructor(){throw new Error("Static class")}static renderDeferred(t){const e=ot.add(t);return dt.scheduleRenderTask(),e}static renderImmediately(t){const e=ot.add(t);return dt.runRenderTask(),e}static scheduleRenderTask(){it||(it=window.requestAnimationFrame(dt.renderWebComponents))}static runRenderTask(){it||(it=1,dt.renderWebComponents())}static renderWebComponents(){let t,e,s;const n=new Map;for(;t=ot.shift();){e=t.webComponent,s=t.promise;const i=n.get(e)||0;if(i>nt)throw new Error(`Web component re-rendered too many times this task, max allowed is: ${nt}`);e._render(),s._deferredResolve(),n.set(e,i+1)}ct||(ct=setTimeout(()=>{ct=void 0,0===ot.getList().length&&dt._resolveTaskPromise()},200)),it=void 0}static whenDOMUpdated(){return rt||(rt=new Promise(t=>{at=t,window.requestAnimationFrame(()=>{0===ot.getList().length&&(rt=void 0,t())})}),rt)}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 dt.whenShadowDOMReady(),await dt.whenDOMUpdated()}static _resolveTaskPromise(){ot.getList().length>0||at&&(at.call(this,lt),at=void 0,rt=void 0)}}class ut{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),tt().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=tt();t.removeChild(this.staticAreaItemDomRef),this.staticAreaItemDomRef=null,t.childElementCount<1&&et()}_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 dt.whenDOMUpdated(),this.staticAreaItemDomRef.shadowRoot}}class ht extends HTMLElement{constructor(){super()}get isUI5Element(){return!0}}customElements.get("ui5-static-area-item")||customElements.define("ui5-static-area-item",ht);const pt=window,mt=new WeakMap;class ft{constructor(){throw new Error("Static class")}static observeDOMNode(t,e,s){let n=mt.get(t);if(n)throw new Error("A mutation/ShadyDOM observer is already assigned to this node.");pt.ShadyDOM?n=pt.ShadyDOM.observeChildren(t,e):(n=new MutationObserver(e),n.observe(t,s)),mt.set(t,n)}static unobserveDOMNode(t){const e=mt.get(t);e&&(e instanceof MutationObserver?e.disconnect():pt.ShadyDOM.unobserveChildren(e),mt.delete(t))}}const gt=["value-changed"];let wt;const yt=()=>(void 0===wt&&(wt=(()=>(g(),m.noConflict))()),wt),_t=t=>{const e=yt();return!(t=>gt.includes(t))(t)&&(!0===e||!(t=>{const e=yt();return!(e.events&&e.events.includes&&e.events.includes(t))})(t))},vt={},bt=t=>{const e=(t=>vt[t]?vt[t].join(""):"")(t.getMetadata().getTag())||"";let s=t.styles;return Array.isArray(s)&&(s=s.join(" ")),`${s} ${e}`},St=new Map,At=t=>{const e=t.getMetadata().getTag(),s=bt(t);if(St.has(e))return St.get(e);const n=new CSSStyleSheet;return n.replaceSync(s),St.set(e,n),n},Et=(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)},xt=(t,e)=>(t=((t,e,s)=>{let n=t.indexOf(e);for(;-1!==n;)n=(t=Et(t,e,n,s)).indexOf(e);return t})(t=t.trim(),"::slotted","")).startsWith(":host")?Et(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}`,Ot=(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=>xt(t,e)).join(",")}s=`${s}${t}`}),s},Ct=new Set,Mt=t=>{const e=t.getMetadata().getTag();if(Ct.has(e))return;let s=bt(t);s=Ot(s,e);let n=(t=>{let e=t.staticAreaStyles;return Array.isArray(e)&&(e=e.join(" ")),e})(t);n&&(n=Ot(n,"ui5-static-area-item"),s=`${s} ${n}`),P(s,{"data-ui5-element-styles":e,disabled:"disabled"}),N()&&(R||(R=window.setTimeout(D,0))),Ct.add(e)};class Pt extends z{static isValid(t){return Number.isInteger(t)}}const Rt=t=>{if("disabled"===t)return!0;return![HTMLElement,Element,Node].some(e=>e.prototype.hasOwnProperty(t))},Nt={events:{_propertyChange:{}}},Dt=new Set;let Tt=0;const It=new Map,Lt="--_ui5_content_density";class Vt 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_${++Tt}`}_initializeContainers(){const t=this.constructor._needsShadowDOM(),e=this.constructor._needsStaticArea();if(t&&(this.attachShadow({mode:"open"}),window.ShadyDOM&&Mt(this.constructor),document.adoptedStyleSheets)){const t=At(this.constructor);this.shadowRoot.adoptedStyleSheets=[t]}e&&(this.staticAreaItem=new ut(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 dt.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};ft.observeDOMNode(this,this._processChildren.bind(this),t)}_stopObservingDOMChildren(){ft.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=It.get(t);s||(s=new Promise(t=>setTimeout(t,1e3)),It.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=G(i);if(n.hasOwnProperty(o)){const t=n[o].type;t===Boolean&&(s=null!==s),t===Pt&&(s=parseInt(s)),this[o]=s}}_updateAttribute(t,e){if(!this.constructor.getMetadata().hasAttribute(t))return;if("object"==typeof e)return;const s=X(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,dt.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=bt(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),_t(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(Lt)}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(!Rt(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(!Rt(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 Nt}static get styles(){return""}static get staticAreaStyles(){return""}static async define(){await W(),this.onDefine&&await this.onDefine();const t=this.getMetadata().getTag(),e=Dt.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(),Dt.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!==Vt;)e=Object.getPrototypeOf(e),t.unshift(e.metadata);const s=d({},...t);return this._metadata=new Y(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 $t=new WeakMap,kt=t=>"function"==typeof t&&$t.has(t),jt=void 0!==window.customElements&&void 0!==window.customElements.polyfillWrapFlushCallback,Ft=(t,e,s=null)=>{for(;e!==s;){const s=e.nextSibling;t.removeChild(e),e=s}},Ut={},Bt={},Ht=`{{lit-${String(Math.random()).slice(2)}}}`,Wt=`\x3c!--${Ht}--\x3e`,zt=new RegExp(`${Ht}|${Wt}`),qt="$lit$";class Jt{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++)Gt(e[t].name,qt)&&n++;for(;n-- >0;){const e=l[a],s=Yt.exec(e)[2],n=s.toLowerCase()+qt,i=t.getAttribute(n);t.removeAttribute(n);const o=i.split(zt);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(Ht)>=0){const n=t.parentNode,i=e.split(zt),o=i.length-1;for(let e=0;e<o;e++){let s,o=i[e];if(""===o)s=Zt();else{const t=Yt.exec(o);null!==t&&Gt(t[2],qt)&&(o=o.slice(0,t.index)+t[1]+t[2].slice(0,-qt.length)+t[3]),s=document.createTextNode(o)}n.insertBefore(s,t),this.parts.push({type:"node",index:++r})}""===i[o]?(n.insertBefore(Zt(),t),s.push(t)):t.data=i[o],a+=o}}else if(8===t.nodeType)if(t.data===Ht){const e=t.parentNode;null!==t.previousSibling&&r!==o||(r++,e.insertBefore(Zt(),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(Ht,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 Gt=(t,e)=>{const s=t.length-e.length;return s>=0&&t.slice(s)===e},Xt=t=>-1!==t.index,Zt=()=>document.createComment(""),Yt=/([ \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 Kt{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],Xt(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 Qt=` ${Ht} `;class te{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=Yt.exec(t);e+=null===o?t+(s?Qt:Wt):t.substr(0,o.index)+o[1]+o[2]+qt+o[3]+Ht}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 ee=t=>null===t||!("object"==typeof t||"function"==typeof t),se=t=>Array.isArray(t)||!(!t||!t[Symbol.iterator]);class ne{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 ie(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(ee(t)||!se(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 ie{constructor(t){this.value=void 0,this.committer=t}setValue(t){t===Ut||ee(t)&&t===this.value||(this.value=t,kt(t)||(this.committer.dirty=!0))}commit(){for(;kt(this.value);){const t=this.value;this.value=Ut,t(this)}this.value!==Ut&&this.committer.commit()}}class oe{constructor(t){this.value=void 0,this.__pendingValue=void 0,this.options=t}appendInto(t){this.startNode=t.appendChild(Zt()),this.endNode=t.appendChild(Zt())}insertAfterNode(t){this.startNode=t,this.endNode=t.nextSibling}appendIntoPart(t){t.__insert(this.startNode=Zt()),t.__insert(this.endNode=Zt())}insertAfterPart(t){t.__insert(this.startNode=Zt()),this.endNode=t.endNode,t.endNode=this.startNode}setValue(t){this.__pendingValue=t}commit(){for(;kt(this.__pendingValue);){const t=this.__pendingValue;this.__pendingValue=Ut,t(this)}const t=this.__pendingValue;t!==Ut&&(ee(t)?t!==this.value&&this.__commitText(t):t instanceof te?this.__commitTemplateResult(t):t instanceof Node?this.__commitNode(t):se(t)?this.__commitIterable(t):t===Bt?(this.value=Bt,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 Kt&&this.value.template===e)this.value.update(t.values);else{const s=new Kt(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 oe(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){Ft(this.startNode.parentNode,t.nextSibling,this.endNode)}}class re{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(;kt(this.__pendingValue);){const t=this.__pendingValue;this.__pendingValue=Ut,t(this)}if(this.__pendingValue===Ut)return;const t=!!this.__pendingValue;this.value!==t&&(t?this.element.setAttribute(this.name,""):this.element.removeAttribute(this.name),this.value=t),this.__pendingValue=Ut}}class ae extends ne{constructor(t,e,s){super(t,e,s),this.single=2===s.length&&""===s[0]&&""===s[1]}_createPart(){return new le(this)}_getValue(){return this.single?this.parts[0].value:super._getValue()}commit(){this.dirty&&(this.dirty=!1,this.element[this.name]=this._getValue())}}class le extends ie{}let ce=!1;try{const t={get capture(){return ce=!0,!1}};window.addEventListener("test",t,t),window.removeEventListener("test",t,t)}catch(t){}class de{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(;kt(this.__pendingValue);){const t=this.__pendingValue;this.__pendingValue=Ut,t(this)}if(this.__pendingValue===Ut)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=ue(t),this.element.addEventListener(this.eventName,this.__boundHandleEvent,this.__options)),this.value=t,this.__pendingValue=Ut}handleEvent(t){"function"==typeof this.value?this.value.call(this.eventContext||this.element,t):this.value.handleEvent(t)}}const ue=t=>t&&(ce?{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 he=new class{handleAttributeExpressions(t,e,s,n){const i=e[0];if("."===i){return new ae(t,e.slice(1),s).parts}return"@"===i?[new de(t,e.slice(1),n.eventContext)]:"?"===i?[new re(t,e.slice(1),s)]:new ne(t,e,s).parts}handleTextExpression(t){return new oe(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 pe(t){let e=me.get(t.type);void 0===e&&(e={stringsArray:new WeakMap,keyString:new Map},me.set(t.type,e));let s=e.stringsArray.get(t.strings);if(void 0!==s)return s;const n=t.strings.join(Ht);return s=e.keyString.get(n),void 0===s&&(s=new Jt(t,t.getTemplateElement()),e.keyString.set(n,s)),e.stringsArray.set(t.strings,s),s}const me=new Map,fe=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 ge=(t,...e)=>new te(t,e,"html",he),we=(t,e,s,{eventContext:n}={})=>{s&&(t=ge`<style>${s}</style>${t}`),((t,e,s)=>{let n=fe.get(e);void 0===n&&(Ft(e,e.firstChild),fe.set(e,n=new oe(Object.assign({templateFactory:pe},s))),n.appendInto(e)),n.setValue(t),n.commit()})(t,e,{eventContext:n})},ye={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 _e extends Vt{static get metadata(){return ye}static get render(){return we}static get template(){return t=>ge`<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(){}}_e.define();const ve={tag:"ui5-test-no-shadow"};(class extends Vt{static get metadata(){return ve}}).define();const be={tag:"ui5-test-parent",managedSlots:!0,slots:{default:{type:Node,listenFor:["prop1"]},items:{type:HTMLElement,listenFor:{include:["*"],exclude:["prop3"]}}}};(class extends Vt{static get metadata(){return be}static get render(){return we}static get template(){return t=>ge`<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 Se={tag:"ui5-test-child",properties:{prop1:{type:String},prop2:{type:String},prop3:{type:String}}};(class extends Vt{static get metadata(){return Se}static get render(){return we}static get template(){return t=>ge`<div></div>`}}).define();const Ae={tag:"ui5-with-static-area",properties:{staticContent:{type:Boolean}},slots:{}};(class extends Vt{static get metadata(){return Ae}static get render(){return we}static get template(){return t=>ge` | ||
<div> | ||
WithStaticArea works! | ||
</div>`}static get staticAreaTemplate(){return t=>ge` | ||
<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 Ee={tag:"ui5-test-generic-ext",properties:{extProp:{type:String},strProp:{defaultValue:"Ext"}},slots:{extSlot:{type:HTMLElement}}};(class extends _e{static get metadata(){return Ee}}).define();O("@ui5/webcomponents-base-test","sap_fiori_3",":root{ --var1: red; }"),O("@ui5/webcomponents-base-test","sap_fiori_3_dark",":root{ --var1: green; }"),O("@ui5/webcomponents-base-test","sap_belize",":root{ --var1: blue; }"),O("@ui5/webcomponents-base-test","sap_belize_hcb",":root{ --var1: orange; }"),O("@ui5/webcomponents-base-test","sap_belize_hcw",":root{ --var1: orange; }");const xe={},Oe={INTERNET_EXPLORER:"ie",EDGE:"ed",FIREFOX:"ff",CHROME:"cr",SAFARI:"sf",ANDROID:"an"},Ce=()=>{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:Oe.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=Oe.CHROME,o=n.test(e),s=parseFloat(a[2])):l?(t=Oe.FIREFOX,o=!0,s=parseFloat(l[1])):c&&(t=Oe.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:Oe.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:Oe.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:Oe.INTERNET_EXPLORER,versionStr:`${o}`,version:o,msie:!0,mobile:!1}):t.edge?(o=parseFloat(t.version),i={name:Oe.EDGE,versionStr:`${o}`,version:o,edge:!0}):i={name:"",versionStr:"",version:-1,mobile:!1};return i};let Me;const Pe={Gregorian:"Gregorian",Islamic:"Islamic",Japanese:"Japanese",Buddhist:"Buddhist",Persian:"Persian"};class Re extends z{static isValid(t){return!!Pe[t]}}let Ne;Re.generataTypeAcessors(Pe);const De={iw:"he",ji:"yi",in:"id",sh:"sr"},Te=(t=>{const e=/\$([-a-z0-9A-Z._]+)(?::([^$]*))?\$/.exec(t);return e&&e[2]?e[2].split(/,/):null})("$cldr-rtl-locales:ar,fa,he$")||[];let Ie;const Le=new Map,Ve=new Map;window.RenderScheduler=dt,window.isIE=()=>(xe.browser||(xe.browser=Ce(),xe.browser.BROWSER=Oe,xe.browser.name&&Object.keys(Oe).forEach(t=>{Oe[t]===xe.browser.name&&(xe.browser[t.toLowerCase()]=!0)})),!!xe.browser.msie),window.registerThemeProperties=O,window["sap-ui-webcomponents-bundle"]={configuration:{getAnimationMode:()=>(void 0===Me&&(Me=(()=>(g(),m.animationMode))()),Me),getLanguage:y,getTheme:L,setTheme:V,getNoConflict:yt,setNoConflict:t=>{wt=t},getCalendarType:()=>(void 0===Ne&&(Ne=(()=>(g(),m.calendarType))()),Re.isValid(Ne)?Ne:Re.Gregorian),getRTL:()=>{const t=(()=>(g(),m.rtl))();return null!==t?!!t:(t=>(t=t&&De[t]||t,Te.indexOf(t)>=0))(y()||(()=>{const t=navigator.languages;return t&&t[0]||(()=>navigator.language)()||navigator.userLanguage||navigator.browserLanguage||e})())},getFirstDayOfWeek:()=>(void 0===Ie&&(Ie=(()=>(g(),m.formatSettings))()),Ie.firstDayOfWeek)},getIconNames:async()=>(Ve.has("SAP-icons")&&await Ve.get("SAP-icons"),Array.from(Le.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 @@ }; |
@@ -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, |
@@ -98,3 +98,2 @@ import merge from "./thirdparty/merge.js"; | ||
const needsShadowDOM = this.constructor._needsShadowDOM(); | ||
const needsStaticArea = this.constructor._needsStaticArea(); | ||
const slotsAreManaged = this.constructor.getMetadata().slotsAreManaged(); | ||
@@ -110,2 +109,6 @@ | ||
if (!this.shadowRoot) { // Workaround for Firefox74 bug | ||
await Promise.resolve(); | ||
} | ||
await RenderScheduler.renderImmediately(this); | ||
@@ -117,7 +120,2 @@ this._domRefReadyPromise._deferredResolve(); | ||
} | ||
// Render Fragment if neccessary | ||
if (needsStaticArea) { | ||
this.staticAreaItem._updateFragment(this); | ||
} | ||
} | ||
@@ -474,3 +472,3 @@ | ||
if (this.constructor._needsStaticArea()) { | ||
if (this._shouldUpdateFragment()) { | ||
this.staticAreaItem._updateFragment(this); | ||
@@ -494,2 +492,6 @@ } | ||
_updateShadowRoot() { | ||
if (!this.constructor._needsShadowDOM()) { | ||
return; | ||
} | ||
let styleToPrepend; | ||
@@ -674,2 +676,6 @@ const renderResult = this.constructor.template(this); | ||
_shouldUpdateFragment() { | ||
return this.constructor._needsStaticArea() && this.staticAreaItem.isRendered(); | ||
} | ||
/** | ||
@@ -751,6 +757,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, { | ||
@@ -829,2 +847,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 | ||
@@ -831,0 +857,0 @@ * @public |
@@ -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,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-185851a98", | ||
"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-185851a98", | ||
"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 +40,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 +59,3 @@ | ||
const missingLocales = supportedLocales.filter(locale => !cldrData[locale] && !cldrUrls[locale]); | ||
const missingLocales = SUPPORTED_LOCALES.filter(locale => !cldrData[locale] && !cldrUrls[locale]); | ||
missingLocales.forEach(locale => { | ||
@@ -63,0 +62,0 @@ cldrUrls[locale] = cldrMappingFn(locale); |
@@ -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 | ||
*/ | ||
@@ -51,9 +55,11 @@ const registerThemeProperties = (packageName, themeName, style) => { | ||
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; | ||
}; | ||
@@ -67,3 +73,4 @@ | ||
} | ||
return fetchJsonOnce(url); | ||
return getFileExtension(url) === ".css" ? fetchTextOnce(url) : fetchJsonOnce(url); | ||
}; | ||
@@ -70,0 +77,0 @@ |
@@ -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,16 @@ 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(); | ||
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 +60,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 +69,13 @@ 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 }); | ||
} | ||
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 +89,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; | ||
@@ -95,4 +113,4 @@ container.scrollLeft += this._prevDragX - dragX; | ||
const container = this._container; | ||
const dragX = event.pageX; | ||
const dragY = event.pageY; | ||
const dragX = this.isPhone ? event.pageX : event.x; | ||
const dragY = this.isPhone ? event.pageY : event.y; | ||
@@ -109,2 +127,7 @@ container.scrollLeft += this._prevDragX - dragX; | ||
this._prevDragY = dragY; | ||
if (!this.isPhone) { | ||
document.removeEventListener("mousemove", this.mouseMove, { passive: true }); | ||
document.removeEventListener("mouseup", this.mouseUp); | ||
} | ||
} | ||
@@ -111,0 +134,0 @@ } |
@@ -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 { 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 @@ }; |
@@ -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, |
@@ -98,3 +98,2 @@ import merge from "./thirdparty/merge.js"; | ||
const needsShadowDOM = this.constructor._needsShadowDOM(); | ||
const needsStaticArea = this.constructor._needsStaticArea(); | ||
const slotsAreManaged = this.constructor.getMetadata().slotsAreManaged(); | ||
@@ -110,2 +109,6 @@ | ||
if (!this.shadowRoot) { // Workaround for Firefox74 bug | ||
await Promise.resolve(); | ||
} | ||
await RenderScheduler.renderImmediately(this); | ||
@@ -117,7 +120,2 @@ this._domRefReadyPromise._deferredResolve(); | ||
} | ||
// Render Fragment if neccessary | ||
if (needsStaticArea) { | ||
this.staticAreaItem._updateFragment(this); | ||
} | ||
} | ||
@@ -474,3 +472,3 @@ | ||
if (this.constructor._needsStaticArea()) { | ||
if (this._shouldUpdateFragment()) { | ||
this.staticAreaItem._updateFragment(this); | ||
@@ -494,2 +492,6 @@ } | ||
_updateShadowRoot() { | ||
if (!this.constructor._needsShadowDOM()) { | ||
return; | ||
} | ||
let styleToPrepend; | ||
@@ -674,2 +676,6 @@ const renderResult = this.constructor.template(this); | ||
_shouldUpdateFragment() { | ||
return this.constructor._needsStaticArea() && this.staticAreaItem.isRendered(); | ||
} | ||
/** | ||
@@ -751,6 +757,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, { | ||
@@ -829,2 +847,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 | ||
@@ -831,0 +857,0 @@ * @public |
@@ -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; | ||
}; |
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
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
4355598
279
16666
1
8