@ui5/webcomponents-base 1.7.1 → 1.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,24 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [1.8.0](https://github.com/SAP/ui5-webcomponents/compare/v1.7.1...v1.8.0) (2022-10-03)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * **framework:** remove .com from URL font-face 72Black ([#5822](https://github.com/SAP/ui5-webcomponents/issues/5822)) ([d2fc095](https://github.com/SAP/ui5-webcomponents/commit/d2fc095515de7c77f06a4d423f59702b14460a91))
12
+ * **ui5-static-area-item:** add tag as attr on the host ([#5845](https://github.com/SAP/ui5-webcomponents/issues/5845)) ([885b20f](https://github.com/SAP/ui5-webcomponents/commit/885b20feaaf3df125b6206310dc33889e441799a))
13
+
14
+
15
+ ### Features
16
+
17
+ * **f6navigation:** improve fastgroup navigation ([#5844](https://github.com/SAP/ui5-webcomponents/issues/5844)) ([f44f57b](https://github.com/SAP/ui5-webcomponents/commit/f44f57b27850de03e430d08e3e9adc71d60296fe))
18
+ * **main:** add support for custom SVG icons ([#5865](https://github.com/SAP/ui5-webcomponents/issues/5865)) ([d8b7200](https://github.com/SAP/ui5-webcomponents/commit/d8b7200f30c16d94b7f15ddbdf9808d8efbaa38c))
19
+
20
+
21
+
22
+
23
+
6
24
  ## [1.7.1](https://github.com/SAP/ui5-webcomponents/compare/v1.7.0...v1.7.1) (2022-09-08)
7
25
 
8
26
  **Note:** Version bump only for package @ui5/webcomponents-base
package/dist/Boot.js CHANGED
@@ -33,10 +33,14 @@ const boot = async () => {
33
33
  registerCurrentRuntime();
34
34
 
35
35
  const OpenUI5Support = getFeature("OpenUI5Support");
36
+ const isOpenUI5Loaded = OpenUI5Support ? OpenUI5Support.isLoaded() : false;
36
37
  const F6Navigation = getFeature("F6Navigation");
38
+
37
39
  if (OpenUI5Support) {
38
40
  await OpenUI5Support.init();
39
- } else if (F6Navigation) {
41
+ }
42
+
43
+ if (F6Navigation && !isOpenUI5Loaded) {
40
44
  F6Navigation.init();
41
45
  }
42
46
 
package/dist/Keys.js CHANGED
@@ -215,7 +215,7 @@ const isF6Next = event => ((event.key ? event.key === "F6" : event.keyCode === K
215
215
  || ((event.key ? (event.key === "ArrowDown" || event.key === "Down") : event.keyCode === KeyCodes.ARROW_DOWN) && checkModifierKeys(event, true, true, false));
216
216
 
217
217
  const isF6Previous = event => ((event.key ? event.key === "F6" : event.keyCode === KeyCodes.F6) && checkModifierKeys(event, false, false, true))
218
- || ((event.key ? (event.key === "ArrowUp" || event.key === "Up") : event.keyCode === KeyCodes.ARROW_Up) && checkModifierKeys(event, true, true, false));
218
+ || ((event.key ? (event.key === "ArrowUp" || event.key === "Up") : event.keyCode === KeyCodes.ARROW_UP) && checkModifierKeys(event, true, true, false));
219
219
 
220
220
  const isF7 = event => (event.key ? event.key === "F7" : event.keyCode === KeyCodes.F7) && !hasModifierKeys(event);
221
221
 
@@ -16,6 +16,7 @@ class StaticAreaItem extends HTMLElement {
16
16
  super();
17
17
  this._rendered = false;
18
18
  this.attachShadow({ mode: "open" });
19
+ this.pureTagName = "ui5-static-area-item";
19
20
  }
20
21
 
21
22
  /**
@@ -36,6 +37,7 @@ class StaticAreaItem extends HTMLElement {
36
37
  */
37
38
  update() {
38
39
  if (this._rendered) {
40
+ this.setAttribute(this.pureTagName, "");
39
41
  this._updateContentDensity();
40
42
  this._updateDirection();
41
43
  updateShadowRoot(this.ownerElement, true);
@@ -46,7 +46,7 @@ const _fillRegistry = bundleData => {
46
46
  };
47
47
 
48
48
  // set
49
- const registerIcon = (name, { pathData, ltr, accData, collection, packageName } = {}) => { // eslint-disable-line
49
+ const registerIcon = (name, { pathData, ltr, accData, collection, packageName, customTemplate, viewBox } = {}) => { // eslint-disable-line
50
50
  if (!collection) {
51
51
  collection = getEffectiveDefaultIconCollection();
52
52
  }
@@ -57,6 +57,8 @@ const registerIcon = (name, { pathData, ltr, accData, collection, packageName }
57
57
  ltr,
58
58
  accData,
59
59
  packageName,
60
+ customTemplate,
61
+ viewBox,
60
62
  });
61
63
  };
62
64
 
@@ -15,18 +15,12 @@ const M_ISO639_OLD_TO_NEW = {
15
15
  "in": "id",
16
16
  };
17
17
 
18
- const DEV_MODE = false;
19
-
20
18
  const _showAssetsWarningOnce = localeId => {
21
19
  if (warningShown) {
22
20
  return;
23
21
  }
24
22
 
25
- if (!DEV_MODE) {
26
- console.warn(`[LocaleData] Supported locale "${localeId}" not configured, import the "Assets.js" module from the webcomponents package you are using.`); /* eslint-disable-line */
27
- } else {
28
- console.warn(`[LocaleData] Note: in dev mode, CLDR assets might be disabled for performance reasons. Try running "ENABLE_CLDR=1 yarn start" to test CLDR assets.`); /* eslint-disable-line */
29
- }
23
+ console.warn(`[LocaleData] Supported locale "${localeId}" not configured, import the "Assets.js" module from the webcomponents package you are using.`); /* eslint-disable-line */
30
24
 
31
25
  warningShown = true;
32
26
  };
@@ -1,4 +1,4 @@
1
- const Cs=function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))n(r);new MutationObserver(r=>{for(const i of r)if(i.type==="childList")for(const o of i.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&n(o)}).observe(document,{childList:!0,subtree:!0});function s(r){const i={};return r.integrity&&(i.integrity=r.integrity),r.referrerpolicy&&(i.referrerPolicy=r.referrerpolicy),r.crossorigin==="use-credentials"?i.credentials="include":r.crossorigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function n(r){if(r.ep)return;r.ep=!0;const i=s(r);fetch(r.href,i)}};Cs();const ut={themes:{default:"sap_fiori_3",all:["sap_fiori_3","sap_fiori_3_dark","sap_belize","sap_belize_hcb","sap_belize_hcw","sap_fiori_3_hcb","sap_fiori_3_hcw","sap_horizon","sap_horizon_dark","sap_horizon_hcb","sap_horizon_hcw","sap_horizon_exp"]},languages:{default:"en",all:["ar","bg","ca","cs","cy","da","de","el","en","en_GB","en_US_sappsd","en_US_saprigi","en_US_saptrc","es","es_MX","et","fi","fr","fr_CA","hi","hr","hu","in","it","iw","ja","kk","ko","lt","lv","ms","nl","no","pl","pt_PT","pt","ro","ru","sh","sk","sl","sv","th","tr","uk","vi","zh_CN","zh_TW"]},locales:{default:"en",all:["ar","ar_EG","ar_SA","bg","ca","cs","da","de","de_AT","de_CH","el","el_CY","en","en_AU","en_GB","en_HK","en_IE","en_IN","en_NZ","en_PG","en_SG","en_ZA","es","es_AR","es_BO","es_CL","es_CO","es_MX","es_PE","es_UY","es_VE","et","fa","fi","fr","fr_BE","fr_CA","fr_CH","fr_LU","he","hi","hr","hu","id","it","it_CH","ja","kk","ko","lt","lv","ms","nb","nl","nl_BE","pl","pt","pt_PT","ro","ru","ru_UA","sk","sl","sr","sr_Latn","sv","th","tr","uk","vi","zh_CN","zh_HK","zh_SG","zh_TW"]}},xt=ut.themes.default,Nt=ut.languages.default,E=ut.locales.default,ee=ut.locales.all;var ke=()=>{const e=navigator.languages,t=()=>navigator.language;return e&&e[0]||t()||navigator.userLanguage||navigator.browserLanguage||Nt},He={},Be=He.hasOwnProperty,Es=He.toString,Fe=Be.toString,Ts=Fe.call(Object),se=function(e){var t,s;return!e||Es.call(e)!=="[object Object]"?!1:(t=Object.getPrototypeOf(e),t?(s=Be.call(t,"constructor")&&t.constructor,typeof s=="function"&&Fe.call(s)===Ts):!0)},Ms=Object.create(null),je=function(){var e,t,s,n,r,i,o=arguments[2]||{},a=3,c=arguments.length,l=arguments[0]||!1,h=arguments[1]?void 0:Ms;for(typeof o!="object"&&typeof o!="function"&&(o={});a<c;a++)if((r=arguments[a])!=null)for(n in r)e=o[n],s=r[n],!(n==="__proto__"||o===s)&&(l&&s&&(se(s)||(t=Array.isArray(s)))?(t?(t=!1,i=e&&Array.isArray(e)?e:[]):i=e&&se(e)?e:{},o[n]=je(l,arguments[1],i,s)):s!==h&&(o[n]=s));return o},Zt=function(){var e=[!0,!1];return e.push.apply(e,arguments),je.apply(null,e)};const Ve=new Map,Ls=(e,t)=>{Ve.set(e,t)},_=e=>Ve.get(e);let ne=!1,m={animationMode:"full",theme:xt,rtl:null,language:null,calendarType:null,noConflict:!1,formatSettings:{},fetchDefaultLanguage:!1};const Os=()=>(S(),m.animationMode),Ps=()=>(S(),m.theme),Is=()=>(S(),m.rtl),Ds=()=>(S(),m.language),Rs=()=>(S(),m.fetchDefaultLanguage),xs=()=>(S(),m.noConflict),Ns=()=>(S(),m.calendarType),Us=()=>(S(),m.formatSettings),it=new Map;it.set("true",!0);it.set("false",!1);const ks=()=>{const e=document.querySelector("[data-ui5-config]")||document.querySelector("[data-id='sap-ui-config']");let t;if(e){try{t=JSON.parse(e.innerHTML)}catch{console.warn("Incorrect data-sap-ui-config format. Please use JSON")}t&&(m=Zt(m,t))}},Hs=()=>{const e=new URLSearchParams(window.location.search);e.forEach((t,s)=>{const n=s.split("sap-").length;n===0||n===s.split("sap-ui-").length||re(s,t,"sap")}),e.forEach((t,s)=>{!s.startsWith("sap-ui")||re(s,t,"sap-ui")})},Bs=(e,t)=>e==="theme"&&t.includes("@")?t.split("@")[0]:t,re=(e,t,s)=>{const n=t.toLowerCase(),r=e.split(`${s}-`)[1];it.has(t)&&(t=it.get(n)),t=Bs(r,t),m[r]=t},Fs=()=>{const e=_("OpenUI5Support");if(!e||!e.isLoaded())return;const t=e.getConfigurationSettingsObject();m=Zt(m,t)},S=()=>{ne||(ks(),Hs(),Fs(),ne=!0)};class T{constructor(){this._eventRegistry=new Map}attachEvent(t,s){const n=this._eventRegistry,r=n.get(t);if(!Array.isArray(r)){n.set(t,[s]);return}r.includes(s)||r.push(s)}detachEvent(t,s){const n=this._eventRegistry,r=n.get(t);if(!r)return;const i=r.indexOf(s);i!==-1&&r.splice(i,1),r.length===0&&n.delete(t)}fireEvent(t,s){const r=this._eventRegistry.get(t);return r?r.map(i=>i.call(this,s)):[]}fireEventAsync(t,s){return Promise.all(this.fireEvent(t,s))}isHandlerAttached(t,s){const r=this._eventRegistry.get(t);return r?r.includes(s):!1}hasListeners(t){return!!this._eventRegistry.get(t)}}const js=new T,Vs="languageChange",ze=e=>{js.attachEvent(Vs,e)},ie=10;class zs{constructor(){this.list=[],this.lookup=new Set}add(t){this.lookup.has(t)||(this.list.push(t),this.lookup.add(t))}remove(t){!this.lookup.has(t)||(this.list=this.list.filter(s=>s!==t),this.lookup.delete(t))}shift(){const t=this.list.shift();if(t)return this.lookup.delete(t),t}isEmpty(){return this.list.length===0}isAdded(t){return this.lookup.has(t)}process(t){let s;const n=new Map;for(s=this.shift();s;){const r=n.get(s)||0;if(r>ie)throw new Error(`Web component processed too many times this task, max allowed is: ${ie}`);t(s),n.set(s,r+1),s=this.shift()}}}const We=e=>{const t=[];return e.forEach(s=>{t.push(s)}),t},Ze=(e,t=document.body)=>{let s=document.querySelector(e);return s||(s=document.createElement(e),t.insertBefore(s,t.firstChild))},Ws=()=>Ze("ui5-shared-resources",document.head),M=(e,t)=>{const s=e.split(".");let n=Ws();for(let r=0;r<s.length;r++){const i=s[r],o=r===s.length-1;Object.prototype.hasOwnProperty.call(n,i)||(n[i]=o?t:{}),n=n[i]}return n},oe={version:"1.7.1",major:1,minor:7,patch:1,suffix:"",isNext:!1,buildTime:1662639089};let Q,Zs="";const yt=new Map,V=M("Runtimes",[]),qs=()=>{Q===void 0&&(Q=V.length,V.push({...oe,alias:Zs,description:`Runtime ${Q} - ver ${oe.version}`}))},qe=()=>Q,Gs=(e,t)=>{const s=`${e},${t}`;if(yt.has(s))return yt.get(s);const n=V[e],r=V[t];if(!n||!r)throw new Error("Invalid runtime index supplied");if(n.isNext||r.isNext)return n.buildTime-r.buildTime;const i=n.major-r.major;if(i)return i;const o=n.minor-r.minor;if(o)return o;const a=n.patch-r.patch;if(a)return a;const l=new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"}).compare(n.suffix,r.suffix);return yt.set(s,l),l},Ks=()=>V,Ge=M("Tags",new Map),qt=new Set;let C={},_t;const Ke="unknown",ae=e=>{qt.add(e),Ge.set(e,qe())},Js=e=>qt.has(e),Xs=()=>We(qt),Ys=e=>{let t=Ge.get(e);t===void 0&&(t=Ke),C[t]=C[t]||new Set,C[t].add(e),_t||(_t=setTimeout(()=>{Qs(),C={},_t=void 0},1e3))},Qs=()=>{const e=Ks(),t=qe(),s=e[t];let n="Multiple UI5 Web Components instances detected.";e.length>1&&(n=`${n}
1
+ const Cs=function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))n(r);new MutationObserver(r=>{for(const i of r)if(i.type==="childList")for(const o of i.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&n(o)}).observe(document,{childList:!0,subtree:!0});function s(r){const i={};return r.integrity&&(i.integrity=r.integrity),r.referrerpolicy&&(i.referrerPolicy=r.referrerpolicy),r.crossorigin==="use-credentials"?i.credentials="include":r.crossorigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function n(r){if(r.ep)return;r.ep=!0;const i=s(r);fetch(r.href,i)}};Cs();const ut={themes:{default:"sap_fiori_3",all:["sap_fiori_3","sap_fiori_3_dark","sap_belize","sap_belize_hcb","sap_belize_hcw","sap_fiori_3_hcb","sap_fiori_3_hcw","sap_horizon","sap_horizon_dark","sap_horizon_hcb","sap_horizon_hcw","sap_horizon_exp"]},languages:{default:"en",all:["ar","bg","ca","cs","cy","da","de","el","en","en_GB","en_US_sappsd","en_US_saprigi","en_US_saptrc","es","es_MX","et","fi","fr","fr_CA","hi","hr","hu","in","it","iw","ja","kk","ko","lt","lv","ms","nl","no","pl","pt_PT","pt","ro","ru","sh","sk","sl","sv","th","tr","uk","vi","zh_CN","zh_TW"]},locales:{default:"en",all:["ar","ar_EG","ar_SA","bg","ca","cs","da","de","de_AT","de_CH","el","el_CY","en","en_AU","en_GB","en_HK","en_IE","en_IN","en_NZ","en_PG","en_SG","en_ZA","es","es_AR","es_BO","es_CL","es_CO","es_MX","es_PE","es_UY","es_VE","et","fa","fi","fr","fr_BE","fr_CA","fr_CH","fr_LU","he","hi","hr","hu","id","it","it_CH","ja","kk","ko","lt","lv","ms","nb","nl","nl_BE","pl","pt","pt_PT","ro","ru","ru_UA","sk","sl","sr","sr_Latn","sv","th","tr","uk","vi","zh_CN","zh_HK","zh_SG","zh_TW"]}},xt=ut.themes.default,Nt=ut.languages.default,E=ut.locales.default,ee=ut.locales.all;var ke=()=>{const e=navigator.languages,t=()=>navigator.language;return e&&e[0]||t()||navigator.userLanguage||navigator.browserLanguage||Nt},He={},Be=He.hasOwnProperty,Es=He.toString,Fe=Be.toString,Ts=Fe.call(Object),se=function(e){var t,s;return!e||Es.call(e)!=="[object Object]"?!1:(t=Object.getPrototypeOf(e),t?(s=Be.call(t,"constructor")&&t.constructor,typeof s=="function"&&Fe.call(s)===Ts):!0)},Ms=Object.create(null),je=function(){var e,t,s,n,r,i,o=arguments[2]||{},a=3,c=arguments.length,l=arguments[0]||!1,h=arguments[1]?void 0:Ms;for(typeof o!="object"&&typeof o!="function"&&(o={});a<c;a++)if((r=arguments[a])!=null)for(n in r)e=o[n],s=r[n],!(n==="__proto__"||o===s)&&(l&&s&&(se(s)||(t=Array.isArray(s)))?(t?(t=!1,i=e&&Array.isArray(e)?e:[]):i=e&&se(e)?e:{},o[n]=je(l,arguments[1],i,s)):s!==h&&(o[n]=s));return o},Zt=function(){var e=[!0,!1];return e.push.apply(e,arguments),je.apply(null,e)};const Ve=new Map,Ls=(e,t)=>{Ve.set(e,t)},_=e=>Ve.get(e);let ne=!1,m={animationMode:"full",theme:xt,rtl:null,language:null,calendarType:null,noConflict:!1,formatSettings:{},fetchDefaultLanguage:!1};const Os=()=>(S(),m.animationMode),Ps=()=>(S(),m.theme),Is=()=>(S(),m.rtl),Ds=()=>(S(),m.language),Rs=()=>(S(),m.fetchDefaultLanguage),xs=()=>(S(),m.noConflict),Ns=()=>(S(),m.calendarType),Us=()=>(S(),m.formatSettings),it=new Map;it.set("true",!0);it.set("false",!1);const ks=()=>{const e=document.querySelector("[data-ui5-config]")||document.querySelector("[data-id='sap-ui-config']");let t;if(e){try{t=JSON.parse(e.innerHTML)}catch{console.warn("Incorrect data-sap-ui-config format. Please use JSON")}t&&(m=Zt(m,t))}},Hs=()=>{const e=new URLSearchParams(window.location.search);e.forEach((t,s)=>{const n=s.split("sap-").length;n===0||n===s.split("sap-ui-").length||re(s,t,"sap")}),e.forEach((t,s)=>{!s.startsWith("sap-ui")||re(s,t,"sap-ui")})},Bs=(e,t)=>e==="theme"&&t.includes("@")?t.split("@")[0]:t,re=(e,t,s)=>{const n=t.toLowerCase(),r=e.split(`${s}-`)[1];it.has(t)&&(t=it.get(n)),t=Bs(r,t),m[r]=t},Fs=()=>{const e=_("OpenUI5Support");if(!e||!e.isLoaded())return;const t=e.getConfigurationSettingsObject();m=Zt(m,t)},S=()=>{ne||(ks(),Hs(),Fs(),ne=!0)};class T{constructor(){this._eventRegistry=new Map}attachEvent(t,s){const n=this._eventRegistry,r=n.get(t);if(!Array.isArray(r)){n.set(t,[s]);return}r.includes(s)||r.push(s)}detachEvent(t,s){const n=this._eventRegistry,r=n.get(t);if(!r)return;const i=r.indexOf(s);i!==-1&&r.splice(i,1),r.length===0&&n.delete(t)}fireEvent(t,s){const r=this._eventRegistry.get(t);return r?r.map(i=>i.call(this,s)):[]}fireEventAsync(t,s){return Promise.all(this.fireEvent(t,s))}isHandlerAttached(t,s){const r=this._eventRegistry.get(t);return r?r.includes(s):!1}hasListeners(t){return!!this._eventRegistry.get(t)}}const js=new T,Vs="languageChange",ze=e=>{js.attachEvent(Vs,e)},ie=10;class zs{constructor(){this.list=[],this.lookup=new Set}add(t){this.lookup.has(t)||(this.list.push(t),this.lookup.add(t))}remove(t){!this.lookup.has(t)||(this.list=this.list.filter(s=>s!==t),this.lookup.delete(t))}shift(){const t=this.list.shift();if(t)return this.lookup.delete(t),t}isEmpty(){return this.list.length===0}isAdded(t){return this.lookup.has(t)}process(t){let s;const n=new Map;for(s=this.shift();s;){const r=n.get(s)||0;if(r>ie)throw new Error(`Web component processed too many times this task, max allowed is: ${ie}`);t(s),n.set(s,r+1),s=this.shift()}}}const We=e=>{const t=[];return e.forEach(s=>{t.push(s)}),t},Ze=(e,t=document.body)=>{let s=document.querySelector(e);return s||(s=document.createElement(e),t.insertBefore(s,t.firstChild))},Ws=()=>Ze("ui5-shared-resources",document.head),M=(e,t)=>{const s=e.split(".");let n=Ws();for(let r=0;r<s.length;r++){const i=s[r],o=r===s.length-1;Object.prototype.hasOwnProperty.call(n,i)||(n[i]=o?t:{}),n=n[i]}return n},oe={version:"1.8.0",major:1,minor:8,patch:0,suffix:"",isNext:!1,buildTime:1664784291};let Q,Zs="";const yt=new Map,V=M("Runtimes",[]),qs=()=>{Q===void 0&&(Q=V.length,V.push({...oe,alias:Zs,description:`Runtime ${Q} - ver ${oe.version}`}))},qe=()=>Q,Gs=(e,t)=>{const s=`${e},${t}`;if(yt.has(s))return yt.get(s);const n=V[e],r=V[t];if(!n||!r)throw new Error("Invalid runtime index supplied");if(n.isNext||r.isNext)return n.buildTime-r.buildTime;const i=n.major-r.major;if(i)return i;const o=n.minor-r.minor;if(o)return o;const a=n.patch-r.patch;if(a)return a;const l=new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"}).compare(n.suffix,r.suffix);return yt.set(s,l),l},Ks=()=>V,Ge=M("Tags",new Map),qt=new Set;let C={},_t;const Ke="unknown",ae=e=>{qt.add(e),Ge.set(e,qe())},Js=e=>qt.has(e),Xs=()=>We(qt),Ys=e=>{let t=Ge.get(e);t===void 0&&(t=Ke),C[t]=C[t]||new Set,C[t].add(e),_t||(_t=setTimeout(()=>{Qs(),C={},_t=void 0},1e3))},Qs=()=>{const e=Ks(),t=qe(),s=e[t];let n="Multiple UI5 Web Components instances detected.";e.length>1&&(n=`${n}
2
2
  Loading order (versions before 1.1.0 not listed): ${e.map(r=>`
3
3
  ${r.description}`).join("")}`),Object.keys(C).forEach(r=>{let i,o;r===Ke?(i=1,o={description:"Older unknown runtime"}):(i=Gs(t,r),o=e[r]);let a;i>0?a="an older":i<0?a="a newer":a="the same",n=`${n}
4
4
 
@@ -6,7 +6,7 @@ ${r.description}`).join("")}`),Object.keys(C).forEach(r=>{let i,o;r===Ke?(i=1,o=
6
6
  WARNING! If your code uses features of the above web components, unavailable in ${o.description}, it might not work as expected!`:n=`${n}
7
7
  Since the above web components were defined by the same or newer version runtime, they should be compatible with your code.`}),n=`${n}
8
8
 
9
- To prevent other runtimes from defining tags that you use, consider using scoping or have third-party libraries use scoping: https://github.com/SAP/ui5-webcomponents/blob/main/docs/2-advanced/03-scoping.md.`,console.warn(n)},Je=new Set,tn=e=>{Je.add(e)},en=e=>Je.has(e),Gt=new Set,sn=new T,R=new zs;let O,tt,wt,J;const Xe=async e=>{R.add(e),await rn()},Ye=e=>{sn.fireEvent("beforeComponentRender",e),Gt.add(e),e._render()},nn=e=>{R.remove(e),Gt.delete(e)},rn=async()=>{J||(J=new Promise(e=>{window.requestAnimationFrame(()=>{R.process(Ye),J=null,e(),wt||(wt=setTimeout(()=>{wt=void 0,R.isEmpty()&&cn()},200))})})),await J},on=()=>O||(O=new Promise(e=>{tt=e,window.requestAnimationFrame(()=>{R.isEmpty()&&(O=void 0,e())})}),O),an=()=>{const e=Xs().map(t=>customElements.whenDefined(t));return Promise.all(e)},Kt=async()=>{await an(),await on()},cn=()=>{!R.isEmpty()||tt&&(tt(),tt=void 0,O=void 0)},Jt=async e=>{Gt.forEach(t=>{const s=t.constructor.getMetadata().getTag(),n=en(t.constructor),r=t.constructor.getMetadata().isLanguageAware(),i=t.constructor.getMetadata().isThemeAware();(!e||e.tag===s||e.rtlAware&&n||e.languageAware&&r||e.themeAware&&i)&&Xe(t)}),await Kt()};let vt,Ut;const ot=()=>(vt===void 0&&(vt=Ds()),vt),ln=e=>{Ut=e},un=()=>(Ut===void 0&&ln(Rs()),Ut),dn=/^((?:[A-Z]{2,3}(?:-[A-Z]{3}){0,3})|[A-Z]{4}|[A-Z]{5,8})(?:-([A-Z]{4}))?(?:-([A-Z]{2}|[0-9]{3}))?((?:-[0-9A-Z]{5,8}|-[0-9][0-9A-Z]{3})*)((?:-[0-9A-WYZ](?:-[0-9A-Z]{2,8})+)*)(?:-(X(?:-[0-9A-Z]{1,8})+))?$/i;class hn{constructor(t){const s=dn.exec(t.replace(/_/g,"-"));if(s===null)throw new Error(`The given language ${t} does not adhere to BCP-47.`);this.sLocaleId=t,this.sLanguage=s[1]||null,this.sScript=s[2]||null,this.sRegion=s[3]||null,this.sVariant=s[4]&&s[4].slice(1)||null,this.sExtension=s[5]&&s[5].slice(1)||null,this.sPrivateUse=s[6]||null,this.sLanguage&&(this.sLanguage=this.sLanguage.toLowerCase()),this.sScript&&(this.sScript=this.sScript.toLowerCase().replace(/^[a-z]/,n=>n.toUpperCase())),this.sRegion&&(this.sRegion=this.sRegion.toUpperCase())}getLanguage(){return this.sLanguage}getScript(){return this.sScript}getRegion(){return this.sRegion}getVariant(){return this.sVariant}getVariantSubtags(){return this.sVariant?this.sVariant.split("-"):[]}getExtension(){return this.sExtension}getExtensionSubtags(){return this.sExtension?this.sExtension.slice(2).split("-"):[]}getPrivateUse(){return this.sPrivateUse}getPrivateUseSubtags(){return this.sPrivateUse?this.sPrivateUse.slice(2).split("-"):[]}hasPrivateUseSubtag(t){return this.getPrivateUseSubtags().indexOf(t)>=0}toString(){const t=[this.sLanguage];return this.sScript&&t.push(this.sScript),this.sRegion&&t.push(this.sRegion),this.sVariant&&t.push(this.sVariant),this.sExtension&&t.push(this.sExtension),this.sPrivateUse&&t.push(this.sPrivateUse),t.join("-")}}const At=new Map,Qe=e=>(At.has(e)||At.set(e,new hn(e)),At.get(e)),ce=e=>{try{if(e&&typeof e=="string")return Qe(e)}catch{}},kt=e=>e?ce(e):ot()?Qe(ot()):ce(ke()),fn=/^((?:[A-Z]{2,3}(?:-[A-Z]{3}){0,3})|[A-Z]{4}|[A-Z]{5,8})(?:-([A-Z]{4}))?(?:-([A-Z]{2}|[0-9]{3}))?((?:-[0-9A-Z]{5,8}|-[0-9][0-9A-Z]{3})*)((?:-[0-9A-WYZ](?:-[0-9A-Z]{2,8})+)*)(?:-(X(?:-[0-9A-Z]{1,8})+))?$/i,le=/(?:^|-)(saptrc|sappsd)(?:-|$)/i,pn={he:"iw",yi:"ji",id:"in",sr:"sh"},gn=e=>{let t;if(!e)return E;if(typeof e=="string"&&(t=fn.exec(e.replace(/_/g,"-")))){let s=t[1].toLowerCase(),n=t[3]?t[3].toUpperCase():void 0;const r=t[2]?t[2].toLowerCase():void 0,i=t[4]?t[4].slice(1):void 0,o=t[6];return s=pn[s]||s,o&&(t=le.exec(o))||i&&(t=le.exec(i))?`en_US_${t[1].toLowerCase()}`:(s==="zh"&&!n&&(r==="hans"?n="CN":r==="hant"&&(n="TW")),s+(n?"_"+n+(i?"_"+i.replace("-","_"):""):""))}},mn=e=>{if(!e)return E;if(e==="zh_HK")return"zh_TW";const t=e.lastIndexOf("_");return t>=0?e.slice(0,t):e!==E?E:""},ue=new Set,de=new Set,Xt=new Map,St=new Map,Yt=new Map,yn=(e,t,s)=>{const n=`${e}/${t}`;Yt.set(n,s)},he=(e,t)=>{Xt.set(e,t)},_n=e=>Xt.get(e),fe=(e,t)=>{const s=`${e}/${t}`;return Yt.has(s)},wn=(e,t)=>{const s=`${e}/${t}`,n=Yt.get(s);return St.get(s)||St.set(s,n(t)),St.get(s)},vn=e=>{ue.has(e)||(console.warn(`[${e}]: Message bundle assets are not configured. Falling back to English texts.`,` Add \`import "${e}/dist/Assets.js"\` in your bundle and make sure your build tool supports dynamic imports and JSON imports. See section "Assets" in the documentation for more information.`),ue.add(e))},ts=async e=>{const t=kt().getLanguage(),s=kt().getRegion();let n=gn(t+(s?`-${s}`:""));for(;n!==Nt&&!fe(e,n);)n=mn(n);const r=un();if(n===Nt&&!r){he(e,null);return}if(!fe(e,n)){vn(e);return}try{const i=await wn(e,n);he(e,i)}catch(i){de.has(i.message)||(de.add(i.message),console.error(i.message))}};ze(()=>{const e=[...Xt.keys()];return Promise.all(e.map(ts))});const An=new Map,at=new Map,bt=new Map,pe=new Set;let ge=!1;const Sn={iw:"he",ji:"yi",in:"id"},me=e=>{ge||(console.warn(`[LocaleData] Supported locale "${e}" not configured, import the "Assets.js" module from the webcomponents package you are using.`),ge=!0)},bn=(e,t,s)=>{e=e&&Sn[e]||e,e==="no"&&(e="nb"),e==="zh"&&!t&&(s==="Hans"?t="CN":s==="Hant"&&(t="TW")),(e==="sh"||e==="sr"&&s==="Latn")&&(e="sr",t="Latn");let n=`${e}_${t}`;return ee.includes(n)||(n=e,ee.includes(n))?at.has(n)?n:(me(n),E):E},ye=(e,t)=>{An.set(e,t)},$n=e=>{const t=at.get(e);return bt.get(e)||bt.set(e,t(e)),bt.get(e)},Cn=async(e,t,s)=>{const n=bn(e,t,s),r=_("OpenUI5Support");if(r){const i=r.getLocaleDataObject();if(i){ye(n,i);return}}try{const i=await $n(n);ye(n,i)}catch(i){pe.has(i.message)||(pe.add(i.message),console.error(i.message))}},En=(e,t)=>{at.set(e,t)};En("en",async e=>(await fetch("https://sdk.openui5.org/1.103.0/resources/sap/ui/core/cldr/en.json")).json());ze(()=>{const e=kt();return Cn(e.getLanguage(),e.getRegion(),e.getScript())});const es=new Map,ss=new Map,ns=new Set,ct=new Set,b=(e,t,s)=>{ss.set(`${e}/${t}`,s),ns.add(e),ct.add(t)},rs=async(e,t)=>{const s=es.get(`${e}_${t}`);if(s!==void 0)return s;if(!ct.has(t)){const n=[...ct.values()].join(", ");return console.warn(`You have requested a non-registered theme ${t} - falling back to ${xt}. Registered themes are: ${n}`),_e(e,xt)}return _e(e,t)},_e=async(e,t)=>{const s=ss.get(`${e}/${t}`);if(!s){console.error(`Theme [${t}] not registered for package [${e}]`);return}let n;try{n=await s(t)}catch(i){console.error(e,i.message);return}const r=n._||n;return es.set(`${e}_${t}`,r),r},is=()=>ns,Tn=e=>ct.has(e),we={"SAP-icons-TNT":"tnt",BusinessSuiteInAppSymbols:"business-suite",horizon:"SAP-icons-v5"},Mn=(e,t={})=>{const s=document.createElement("style");return s.type="text/css",Object.entries(t).forEach(n=>s.setAttribute(...n)),s.textContent=e,document.head.appendChild(s),s},dt=(e,t)=>t?`${e}|${t}`:e,ht=(e,t,s="")=>{const n=typeof e=="string"?e:e.content;if(document.adoptedStyleSheets){const r=new CSSStyleSheet;r.replaceSync(n),r._ui5StyleId=dt(t,s),document.adoptedStyleSheets=[...document.adoptedStyleSheets,r]}else{const r={};r[t]=s,Mn(n,r)}},Ln=(e,t,s="")=>{const n=typeof e=="string"?e:e.content;document.adoptedStyleSheets?document.adoptedStyleSheets.find(r=>r._ui5StyleId===dt(t,s)).replaceSync(n||""):document.querySelector(`head>style[${t}="${s}"]`).textContent=n||""},ft=(e,t="")=>document.adoptedStyleSheets?!!document.adoptedStyleSheets.find(s=>s._ui5StyleId===dt(e,t)):!!document.querySelector(`head>style[${e}="${t}"]`),On=(e,t="")=>{if(document.adoptedStyleSheets)document.adoptedStyleSheets=document.adoptedStyleSheets.filter(s=>s._ui5StyleId!==dt(e,t));else{const s=document.querySelector(`head > style[${e}="${t}"]`);s&&s.parentElement.removeChild(s)}},os=(e,t,s="")=>{ft(t,s)?Ln(e,t,s):ht(e,t,s)},P=new Set,Pn=()=>{let e=document.querySelector(".sapThemeMetaData-Base-baseLib")||document.querySelector(".sapThemeMetaData-UI5-sap-ui-core");if(e)return getComputedStyle(e).backgroundImage;e=document.createElement("span"),e.style.display="none",e.classList.add("sapThemeMetaData-Base-baseLib"),document.body.appendChild(e);let t=getComputedStyle(e).backgroundImage;return t==="none"&&(e.classList.add("sapThemeMetaData-UI5-sap-ui-core"),t=getComputedStyle(e).backgroundImage),document.body.removeChild(e),t},In=e=>{const t=/\(["']?data:text\/plain;utf-8,(.*?)['"]?\)$/i.exec(e);if(t&&t.length>=2){let s=t[1];if(s=s.replace(/\\"/g,'"'),s.charAt(0)!=="{"&&s.charAt(s.length-1)!=="}")try{s=decodeURIComponent(s)}catch{P.has("decode")||(console.warn("Malformed theme metadata string, unable to decodeURIComponent"),P.add("decode"));return}try{return JSON.parse(s)}catch{P.has("parse")||(console.warn("Malformed theme metadata string, unable to parse JSON"),P.add("parse"))}}},Dn=e=>{let t,s;try{t=e.Path.match(/\.([^.]+)\.css_variables$/)[1],s=e.Extends[0]}catch{P.has("object")||(console.warn("Malformed theme metadata Object",e),P.add("object"));return}return{themeName:t,baseThemeName:s}},Rn=()=>{const e=Pn();if(!e||e==="none")return;const t=In(e);return Dn(t)},xn=new T,Nn="themeLoaded",Un=e=>xn.fireEvent(Nn,e),z="@ui5/webcomponents-theming",kn=()=>is().has(z),Hn=async e=>{if(!kn())return;const t=await rs(z,e);t&&os(t,"data-ui5-theme-properties",z)},Bn=()=>{On("data-ui5-theme-properties",z)},Fn=async e=>{is().forEach(async s=>{if(s===z)return;const n=await rs(s,e);n&&os(n,"data-ui5-theme-properties",s)})},jn=()=>{const e=Rn();if(e)return e;const t=_("OpenUI5Support");if(t&&t.cssVariablesLoaded())return{themeName:t.getConfigurationSettingsObject().theme}},as=async e=>{const t=jn();!t||e!==t.themeName?await Hn(e):Bn();const s=Tn(e)?e:t&&t.baseThemeName;await Fn(s),Un(e)};let I;const pt=()=>(I===void 0&&(I=Ps()),I),cs=async e=>{I!==e&&(I=e,await as(I),await Jt({themeAware:!0}))},Vn=e=>pt().startsWith(e),zn=new Map,ls=()=>{const e=pt(),t=zn.get(e);return t||(Vn("sap_horizon")?"SAP-icons-v5":"SAP-icons")},ve=new Map,lt=M("SVGIcons.registry",new Map),$t=M("SVGIcons.promises",new Map),Ae="ICON_NOT_FOUND",Wn=async e=>{if(!$t.has(e)){if(!ve.has(e))throw new Error(`No loader registered for the ${e} icons collection. Probably you forgot to import the "AllIcons.js" module for the respective package.`);const t=ve.get(e);$t.set(e,t(e))}return $t.get(e)},Zn=e=>{Object.keys(e.data).forEach(t=>{const s=e.data[t];qn(t,{pathData:s.path||s.paths,ltr:s.ltr,accData:s.acc,collection:e.collection,packageName:e.packageName})})},qn=(e,{pathData:t,ltr:s,accData:n,collection:r,packageName:i}={})=>{r||(r=ls());const o=`${r}/${e}`;lt.set(o,{pathData:t,ltr:s,accData:n,packageName:i})},Gn=e=>{e.startsWith("sap-icon://")&&(e=e.replace("sap-icon://",""));let t;[e,t]=e.split("/").reverse(),t=t||ls(),t=Jn(t),e=e.replace("icon-","");const s=`${t}/${e}`;return{name:e,collection:t,registryKey:s}},Ct=async e=>{const{collection:t,registryKey:s}=Gn(e);let n=Ae;try{n=await Wn(t)}catch(r){console.error(r.message)}return n===Ae?n:(lt.has(s)||Zn(n),lt.get(s))},Kn=async()=>(await Ct("edit"),await Ct("tnt/arrow"),await Ct("business-suite/3d"),Array.from(lt.keys())),Jn=e=>we[e]?we[e]:e,Ht=M("PopupUtilsData",{});Ht.currentZIndex=Ht.currentZIndex||100;const us=()=>Ht.currentZIndex,w=()=>{const e=window.sap;return e&&e.ui&&typeof e.ui.getCore=="function"&&e.ui.getCore()},Xn=()=>!!w(),Yn=()=>{const e=w();return e?new Promise(t=>{e.attachInit(()=>{window.sap.ui.require(["sap/ui/core/LocaleData","sap/ui/core/Popup"],(s,n)=>{n.setInitialZIndex(us()),t()})})}):Promise.resolve()},Qn=()=>{const e=w();if(!e)return;const t=e.getConfiguration(),s=window.sap.ui.require("sap/ui/core/LocaleData");return{animationMode:t.getAnimationMode(),language:t.getLanguage(),theme:t.getTheme(),rtl:t.getRTL(),calendarType:t.getCalendarType(),formatSettings:{firstDayOfWeek:s?s.getInstance(t.getLocale()).getFirstDayOfWeek():void 0}}},tr=()=>{const e=w();if(!e)return;const t=e.getConfiguration();return window.sap.ui.require("sap/ui/core/LocaleData").getInstance(t.getLocale())._get()},er=()=>{const e=w(),t=e.getConfiguration();e.attachThemeChanged(async()=>{await cs(t.getTheme())})},sr=()=>{!w()||er()},nr=()=>{if(!w())return;const t=[...document.head.children].find(s=>s.id==="sap-ui-theme-sap.ui.core");if(!!t)return!!t.href.match(/\/css(-|_)variables\.css/)},rr=()=>w()?window.sap.ui.require("sap/ui/core/Popup").getNextZIndex():void 0,ir=()=>{if(!w())return;window.sap.ui.require("sap/ui/core/Popup").setInitialZIndex(us())},or={isLoaded:Xn,init:Yn,getConfigurationSettingsObject:Qn,getLocaleDataObject:tr,attachListeners:sr,cssVariablesLoaded:nr,getNextZIndex:rr,setInitialZIndex:ir};Ls("OpenUI5Support",or);const ar=()=>new Promise(e=>{document.body?e():document.addEventListener("DOMContentLoaded",()=>{e()})});var cr={packageName:"@ui5/webcomponents-base",fileName:"FontFace.css",content:`@font-face{font-family:"72";font-style:normal;font-weight:400;src:local("72"),url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Regular.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:"72full";font-style:normal;font-weight:400;src:local('72-full'),url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Regular-full.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:"72";font-style:normal;font-weight:700;src:local('72-Bold'),url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:"72full";font-style:normal;font-weight:700;src:local('72-Bold-full'),url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold-full.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:'72-Bold';font-style:normal;src:local('72-Bold'),url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:'72-Boldfull';font-style:normal;src:url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold-full.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:'72-Light';font-style:normal;src:local('72-Light'),url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Light.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:'72-Lightfull';font-style:normal;src:url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Light-full.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:"72Black";font-style:bold;font-weight:900;src:local('72Black'),url(https://sdk.openui5.org.com/resources/sap/ui/core/themes/sap_horizon/fonts/72-Black.woff2?ui5-webcomponents) format("woff2")}`},lr={packageName:"@ui5/webcomponents-base",fileName:"OverrideFontFace.css",content:"@font-face{font-family:'72override';unicode-range:U+0102-0103,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EB7,U+1EB8-1EC7,U+1EC8-1ECB,U+1ECC-1EE3,U+1EE4-1EF1,U+1EF4-1EF7;src:local('Arial'),local('Helvetica'),local('sans-serif')}"};const ur=()=>{const e=_("OpenUI5Support");(!e||!e.isLoaded())&&dr(),hr()},dr=()=>{ft("data-ui5-font-face")||ht(cr,"data-ui5-font-face")},hr=()=>{ft("data-ui5-font-face-override")||ht(lr,"data-ui5-font-face-override")};var fr={packageName:"@ui5/webcomponents-base",fileName:"SystemCSSVars.css",content:":root{--_ui5_content_density:cozy}.sapUiSizeCompact,.ui5-content-density-compact,[data-ui5-compact-size]{--_ui5_content_density:compact}[dir=rtl]{--_ui5_dir:rtl}[dir=ltr]{--_ui5_dir:ltr}"};const pr=()=>{ft("data-ui5-system-css-vars")||ht(fr,"data-ui5-system-css-vars")};let X;const gr=async()=>X||(X=new Promise(async e=>{qs();const t=_("OpenUI5Support"),s=_("F6Navigation");t?await t.init():s&&s.init(),await ar(),await as(pt()),t&&t.attachListeners(),ur(),pr(),e()}),X);class F{static isValid(t){}static attributeToProperty(t){return t}static propertyToAttribute(t){return`${t}`}static valuesAreEqual(t,s){return t===s}static generateTypeAccessors(t){Object.keys(t).forEach(s=>{Object.defineProperty(this,s,{get(){return t[s]}})})}}const et=(e,t,s=!1)=>{if(typeof e!="function"||typeof t!="function")return!1;if(s&&e===t)return!0;let n=e;do n=Object.getPrototypeOf(n);while(n!==null&&n!==t);return n===t},Et=new Map,Tt=new Map,Se=e=>{if(!Et.has(e)){const t=mr(e.split("-"));Et.set(e,t)}return Et.get(e)},ds=e=>{if(!Tt.has(e)){const t=e.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase();Tt.set(e,t)}return Tt.get(e)},mr=e=>e.map((t,s)=>s===0?t.toLowerCase():t.charAt(0).toUpperCase()+t.slice(1).toLowerCase()).join(""),yr=e=>{if(!(e instanceof HTMLElement))return"default";const t=e.getAttribute("slot");if(t){const s=t.match(/^(.+?)-\d+$/);return s?s[1]:t}return"default"},Bt=e=>e&&e instanceof HTMLElement&&e.localName==="slot",hs=e=>Bt(e)?e.assignedNodes({flatten:!0}).filter(t=>t instanceof HTMLElement):[e],_r=e=>{const t=(s,n)=>s.concat(hs(n));return e.reduce(t,[])};let wr,be={include:[/^ui5-/],exclude:[]};const Mt=new Map,fs=()=>wr,Ft=e=>{if(!Mt.has(e)){const t=be.include.some(s=>e.match(s))&&!be.exclude.some(s=>e.match(s));Mt.set(e,t)}return Mt.get(e)},jt=e=>{if(Ft(e))return fs()};class vr{constructor(t){this.metadata=t}getInitialState(){if(Object.prototype.hasOwnProperty.call(this,"_initialState"))return this._initialState;const t={},s=this.slotsAreManaged(),n=this.getProperties();for(const r in n){const i=n[r].type,o=n[r].defaultValue;i===Boolean?(t[r]=!1,o!==void 0&&console.warn("The 'defaultValue' metadata key is ignored for all booleans properties, they would be initialized with 'false' by default")):n[r].multiple?t[r]=[]:i===Object?t[r]="defaultValue"in n[r]?n[r].defaultValue:{}:i===String?t[r]="defaultValue"in n[r]?n[r].defaultValue:"":t[r]=o}if(s){const r=this.getSlots();for(const[i,o]of Object.entries(r)){const a=o.propertyName||i;t[a]=[]}}return this._initialState=t,t}static validatePropertyValue(t,s){return s.multiple?t.map(r=>$e(r,s)):$e(t,s)}static validateSlotValue(t,s){return Ar(t,s)}getPureTag(){return this.metadata.tag}getTag(){const t=this.metadata.tag,s=jt(t);return s?`${t}-${s}`:t}getAltTag(){const t=this.metadata.altTag;if(!t)return;const s=jt(t);return s?`${t}-${s}`:t}hasAttribute(t){const s=this.getProperties()[t];return s.type!==Object&&!s.noAttribute&&!s.multiple}getPropertiesList(){return Object.keys(this.getProperties())}getAttributesList(){return this.getPropertiesList().filter(this.hasAttribute,this).map(ds)}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,s])=>s.individualSlots)}slotsAreManaged(){return!!this.metadata.managedSlots}supportsF6FastNavigation(){return!!this.metadata.fastNavigation}getProperties(){return this.metadata.properties||{}}getEvents(){return this.metadata.events||{}}isLanguageAware(){return!!this.metadata.languageAware}isThemeAware(){return!!this.metadata.themeAware}shouldInvalidateOnChildChange(t,s,n){const r=this.getSlots()[t].invalidateOnChildChange;if(r===void 0)return!1;if(typeof r=="boolean")return r;if(typeof r=="object"){if(s==="property"){if(r.properties===void 0)return!1;if(typeof r.properties=="boolean")return r.properties;if(Array.isArray(r.properties))return r.properties.includes(n);throw new Error("Wrong format for invalidateOnChildChange.properties: boolean or array is expected")}if(s==="slot"){if(r.slots===void 0)return!1;if(typeof r.slots=="boolean")return r.slots;if(Array.isArray(r.slots))return r.slots.includes(n);throw new Error("Wrong format for invalidateOnChildChange.slots: boolean or array is expected")}}throw new Error("Wrong format for invalidateOnChildChange: boolean or object is expected")}}const $e=(e,t)=>{const s=t.type;if(s===Boolean)return typeof e=="boolean"?e:!1;if(s===String)return typeof e=="string"||typeof e=="undefined"||e===null?e:e.toString();if(s===Object)return typeof e=="object"?e:t.defaultValue;if(et(s,F))return s.isValid(e)?e:t.defaultValue},Ar=(e,t)=>(e&&hs(e).forEach(s=>{if(!(s instanceof t.type))throw new Error(`${s} is not of type ${t.type}`)}),e);customElements.get("ui5-static-area")||customElements.define("ui5-static-area",class extends HTMLElement{});const Sr=(e,t)=>{const s=br(t),n=fs();return e(t,s,n)},br=e=>{const t=e.constructor.getMetadata().getPureTag(),s=e.constructor.getUniqueDependencies().map(n=>n.getMetadata().getPureTag()).filter(Ft);return Ft(t)&&s.push(t),s},$r=M("CustomStyle.eventProvider",new T),Cr="CustomCSSChange",Qt=e=>{$r.attachEvent(Cr,e)},Ce=M("CustomStyle.customCSSFor",{});Qt(e=>{Jt({tag:e})});const Er=e=>Ce[e]?Ce[e].join(""):"",Lt=e=>Array.isArray(e)?ps(e.filter(t=>!!t)).map(t=>typeof t=="string"?t:t.content).join(" "):typeof e=="string"?e:e.content,ps=e=>e.reduce((t,s)=>t.concat(Array.isArray(s)?ps(s):s),[]),st=new Map;Qt(e=>{st.delete(`${e}_normal`)});const gs=(e,t=!1)=>{const s=e.getMetadata().getTag(),n=`${s}_${t?"static":"normal"}`,r=_("OpenUI5Enablement");if(!st.has(n)){let i,o="";if(r&&(o=Lt(r.getBusyIndicatorStyles())),t)i=Lt(e.staticAreaStyles);else{const a=Er(s)||"";i=`${Lt(e.styles)} ${a}`}i=`${i} ${o}`,st.set(n,i)}return st.get(n)},nt=new Map;Qt(e=>{nt.delete(`${e}_normal`)});const Tr=(e,t=!1)=>{const n=`${e.getMetadata().getTag()}_${t?"static":"normal"}`;if(!nt.has(n)){const r=gs(e,t),i=new CSSStyleSheet;i.replaceSync(r),nt.set(n,[i])}return nt.get(n)},Vt=(e,t=!1)=>{let s;const n=t?"staticAreaTemplate":"template",r=t?e.staticAreaItem.shadowRoot:e.shadowRoot,i=Sr(e.constructor[n],e);document.adoptedStyleSheets?r.adoptedStyleSheets=Tr(e.constructor,t):s=gs(e.constructor,t),e.constructor.render(i,r,s,t,{host:e})},Mr="--_ui5_content_density",Lr=e=>getComputedStyle(e).getPropertyValue(Mr);var Or=e=>{const t=/\$([-a-z0-9A-Z._]+)(?::([^$]*))?\$/.exec(e);return t&&t[2]?t[2].split(/,/):null};const Pr={iw:"he",ji:"yi",in:"id",sh:"sr"},Ir=Or("$cldr-rtl-locales:ar,fa,he$")||[],Dr=e=>(e=e&&Pr[e]||e,Ir.indexOf(e)>=0),ms=()=>{const e=Is();return e!==null?!!e:Dr(ot()||ke())},Rr="--_ui5_dir",ys=e=>{const t=window.document,s=["ltr","rtl"],n=getComputedStyle(e).getPropertyValue(Rr);return s.includes(n)?n:s.includes(e.dir)?e.dir:s.includes(t.documentElement.dir)?t.documentElement.dir:s.includes(t.body.dir)?t.body.dir:ms()?"rtl":void 0};class j extends HTMLElement{constructor(){super(),this._rendered=!1,this.attachShadow({mode:"open"})}setOwnerElement(t){this.ownerElement=t,this.classList.add(this.ownerElement._id),this.ownerElement.hasAttribute("data-ui5-static-stable")&&this.setAttribute("data-ui5-stable",this.ownerElement.getAttribute("data-ui5-static-stable"))}update(){this._rendered&&(this._updateContentDensity(),this._updateDirection(),Vt(this.ownerElement,!0))}_updateContentDensity(){Lr(this.ownerElement)==="compact"?(this.classList.add("sapUiSizeCompact"),this.classList.add("ui5-content-density-compact")):(this.classList.remove("sapUiSizeCompact"),this.classList.remove("ui5-content-density-compact"))}_updateDirection(){const t=ys(this.ownerElement);t?this.setAttribute("dir",t):this.removeAttribute("dir")}async getDomRef(){return this._updateContentDensity(),this._rendered||(this._rendered=!0,Vt(this.ownerElement,!0)),await Kt(),this.shadowRoot}static getTag(){const t="ui5-static-area-item",s=jt(t);return s?`${t}-${s}`:t}static createInstance(){return customElements.get(j.getTag())||customElements.define(j.getTag(),j),document.createElement(this.getTag())}}const zt=new WeakMap;let xr=(e,t,s)=>{const n=new MutationObserver(t);return n.observe(e,s),n},Nr=e=>{e.disconnect()};const Ur=(e,t,s)=>{const n=xr(e,t,s);zt.set(e,n)},kr=e=>{const t=zt.get(e);t&&(Nr(t),zt.delete(e))},Hr=["value-changed"],Br=e=>Hr.includes(e);let rt;const Fr=e=>{const t=te();return!(t.events&&t.events.includes&&t.events.includes(e))},te=()=>(rt===void 0&&(rt=xs()),rt),jr=e=>{const t=te();return Br(e)?!1:t===!0?!0:!Fr(e)},Vr=e=>{rt=e},zr=["disabled","title","hidden","role","draggable"],Ee=e=>zr.includes(e)||e.startsWith("aria")?!0:![HTMLElement,Element,Node].some(s=>s.prototype.hasOwnProperty(e)),Te=(e,t)=>{if(e.length!==t.length)return!1;for(let s=0;s<e.length;s++)if(e[s]!==t[s])return!1;return!0},Wr=(e,t)=>class extends e{constructor(){super(),t&&t()}};let Zr=0;const Me=new Map,Ot=new Map;function H(e){this._suppressInvalidation||(this.onInvalidation(e),this._changedState.push(e),Xe(this),this._eventProvider.fireEvent("invalidate",{...e,target:this}))}let Le={};class L extends HTMLElement{constructor(){super(),this._changedState=[],this._suppressInvalidation=!0,this._inDOM=!1,this._fullyConnected=!1,this._childChangeListeners=new Map,this._slotChangeListeners=new Map,this._eventProvider=new T;let t;this._domRefReadyPromise=new Promise(s=>{t=s}),this._domRefReadyPromise._deferredResolve=t,this._doNotSyncAttributes=new Set,this._initializeState(),this._upgradeAllProperties(),this.constructor._needsShadowDOM()&&this.attachShadow({mode:"open"})}get _id(){return this.__id||(this.__id=`ui5wc_${++Zr}`),this.__id}async connectedCallback(){this.setAttribute(this.constructor.getMetadata().getPureTag(),""),this.constructor.getMetadata().supportsF6FastNavigation()&&this.setAttribute("data-sap-ui-fastnavgroup","true");const t=this.constructor.getMetadata().slotsAreManaged();this._inDOM=!0,t&&(this._startObservingDOMChildren(),await this._processChildren()),this._inDOM&&(Ye(this),this._domRefReadyPromise._deferredResolve(),this._fullyConnected=!0,typeof this.onEnterDOM=="function"&&this.onEnterDOM())}disconnectedCallback(){const t=this.constructor.getMetadata().slotsAreManaged();this._inDOM=!1,t&&this._stopObservingDOMChildren(),this._fullyConnected&&(typeof this.onExitDOM=="function"&&this.onExitDOM(),this._fullyConnected=!1),this.staticAreaItem&&this.staticAreaItem.parentElement&&this.staticAreaItem.parentElement.removeChild(this.staticAreaItem),nn(this)}_startObservingDOMChildren(){if(!this.constructor.getMetadata().hasSlots())return;const s=this.constructor.getMetadata().canSlotText(),n={childList:!0,subtree:s,characterData:s};Ur(this,this._processChildren.bind(this),n)}_stopObservingDOMChildren(){kr(this)}async _processChildren(){this.constructor.getMetadata().hasSlots()&&await this._updateSlots()}async _updateSlots(){const t=this.constructor.getMetadata().getSlots(),s=this.constructor.getMetadata().canSlotText(),n=Array.from(s?this.childNodes:this.children),r=new Map,i=new Map;for(const[h,d]of Object.entries(t)){const u=d.propertyName||h;i.set(u,h),r.set(u,[...this._state[u]]),this._clearSlot(h,d)}const o=new Map,a=new Map,c=n.map(async(h,d)=>{const u=yr(h),p=t[u];if(p===void 0){const g=Object.keys(t).join(", ");console.warn(`Unknown slotName: ${u}, ignoring`,h,`Valid values are: ${g}`);return}if(p.individualSlots){const g=(o.get(u)||0)+1;o.set(u,g),h._individualSlot=`${u}-${g}`}if(h instanceof HTMLElement){const g=h.localName;if(g.includes("-")){if(!window.customElements.get(g)){const bs=window.customElements.whenDefined(g);let K=Me.get(g);K||(K=new Promise($s=>setTimeout($s,1e3)),Me.set(g,K)),await Promise.race([bs,K])}window.customElements.upgrade(h)}}h=this.constructor.getMetadata().constructor.validateSlotValue(h,p),h.isUI5Element&&p.invalidateOnChildChange&&(h.attachInvalidate||h._attachChange).bind(h)(this._getChildChangeListener(u)),Bt(h)&&this._attachSlotChange(h,u);const v=p.propertyName||u;a.has(v)?a.get(v).push({child:h,idx:d}):a.set(v,[{child:h,idx:d}])});await Promise.all(c),a.forEach((h,d)=>{this._state[d]=h.sort((u,p)=>u.idx-p.idx).map(u=>u.child)});let l=!1;for(const[h,d]of Object.entries(t)){const u=d.propertyName||h;Te(r.get(u),this._state[u])||(H.call(this,{type:"slot",name:i.get(u),reason:"children"}),l=!0)}l||H.call(this,{type:"slot",name:"default",reason:"textcontent"})}_clearSlot(t,s){const n=s.propertyName||t;this._state[n].forEach(i=>{i&&i.isUI5Element&&(i.detachInvalidate||i._detachChange).bind(i)(this._getChildChangeListener(t)),Bt(i)&&this._detachSlotChange(i,t)}),this._state[n]=[]}attachInvalidate(t){this._eventProvider.attachEvent("invalidate",t)}detachInvalidate(t){this._eventProvider.detachEvent("invalidate",t)}_onChildChange(t,s){!this.constructor.getMetadata().shouldInvalidateOnChildChange(t,s.type,s.name)||H.call(this,{type:"slot",name:t,reason:"childchange",child:s.target})}attributeChangedCallback(t,s,n){if(this._doNotSyncAttributes.has(t))return;const r=this.constructor.getMetadata().getProperties(),i=t.replace(/^ui5-/,""),o=Se(i);if(r.hasOwnProperty(o)){const a=r[o].type;a===Boolean?n=n!==null:et(a,F)&&(n=a.attributeToProperty(n)),this[o]=n}}_updateAttribute(t,s){if(!this.constructor.getMetadata().hasAttribute(t))return;const r=this.constructor.getMetadata().getProperties()[t].type,i=ds(t),o=this.getAttribute(i);if(r===Boolean)s===!0&&o===null?this.setAttribute(i,""):s===!1&&o!==null&&this.removeAttribute(i);else if(et(r,F)){const a=r.propertyToAttribute(s);a===null?(this._doNotSyncAttributes.add(i),this.removeAttribute(i),this._doNotSyncAttributes.delete(i)):this.setAttribute(i,a)}else typeof s!="object"&&o!==s&&this.setAttribute(i,s)}_upgradeProperty(t){if(this.hasOwnProperty(t)){const s=this[t];delete this[t],this[t]=s}}_upgradeAllProperties(){this.constructor.getMetadata().getPropertiesList().forEach(this._upgradeProperty,this)}_initializeState(){this._state={...this.constructor.getMetadata().getInitialState()}}_getChildChangeListener(t){return this._childChangeListeners.has(t)||this._childChangeListeners.set(t,this._onChildChange.bind(this,t)),this._childChangeListeners.get(t)}_getSlotChangeListener(t){return this._slotChangeListeners.has(t)||this._slotChangeListeners.set(t,this._onSlotChange.bind(this,t)),this._slotChangeListeners.get(t)}_attachSlotChange(t,s){t.addEventListener("slotchange",this._getSlotChangeListener(s))}_detachSlotChange(t,s){t.removeEventListener("slotchange",this._getSlotChangeListener(s))}_onSlotChange(t){H.call(this,{type:"slot",name:t,reason:"slotchange"})}onInvalidation(t){}_render(){const t=this.constructor.getMetadata().hasIndividualSlots();this._suppressInvalidation=!0,typeof this.onBeforeRendering=="function"&&this.onBeforeRendering(),this._onComponentStateFinalized&&this._onComponentStateFinalized(),this._suppressInvalidation=!1,this._changedState=[],this.constructor._needsShadowDOM()&&Vt(this),this.staticAreaItem&&this.staticAreaItem.update(),t&&this._assignIndividualSlotsToChildren(),typeof this.onAfterRendering=="function"&&this.onAfterRendering()}_assignIndividualSlotsToChildren(){Array.from(this.children).forEach(s=>{s._individualSlot&&s.setAttribute("slot",s._individualSlot)})}_waitForDomRef(){return this._domRefReadyPromise}getDomRef(){if(typeof this._getRealDomRef=="function")return this._getRealDomRef();if(!this.shadowRoot||this.shadowRoot.children.length===0)return;const t=[...this.shadowRoot.children].filter(s=>!["link","style"].includes(s.localName));return t.length!==1&&console.warn(`The shadow DOM for ${this.constructor.getMetadata().getTag()} does not have a top level element, the getDomRef() method might not work as expected`),t[0]}getFocusDomRef(){const t=this.getDomRef();if(t)return t.querySelector("[data-sap-focus-ref]")||t}async getFocusDomRefAsync(){return await this._waitForDomRef(),this.getFocusDomRef()}async focus(){await this._waitForDomRef();const t=this.getFocusDomRef();t&&typeof t.focus=="function"&&t.focus()}fireEvent(t,s,n=!1,r=!0){const i=this._fireEvent(t,s,n,r),o=Se(t);return o!==t?i&&this._fireEvent(o,s,n):i}_fireEvent(t,s,n=!1,r=!0){const i=new CustomEvent(`ui5-${t}`,{detail:s,composed:!1,bubbles:r,cancelable:n}),o=this.dispatchEvent(i);if(jr(t))return o;const a=new CustomEvent(t,{detail:s,composed:!1,bubbles:r,cancelable:n});return this.dispatchEvent(a)&&o}getSlottedNodes(t){return _r(this[t])}get effectiveDir(){return tn(this.constructor),ys(this)}get isUI5Element(){return!0}static get observedAttributes(){return this.getMetadata().getAttributesList()}static _needsShadowDOM(){return!!this.template}static _needsStaticArea(){return!!this.staticAreaTemplate}getStaticAreaItemDomRef(){if(!this.constructor._needsStaticArea())throw new Error("This component does not use the static area");return this.staticAreaItem||(this.staticAreaItem=j.createInstance(),this.staticAreaItem.setOwnerElement(this)),this.staticAreaItem.parentElement||Ze("ui5-static-area").appendChild(this.staticAreaItem),this.staticAreaItem.getDomRef()}static _generateAccessors(){const t=this.prototype,s=this.getMetadata().slotsAreManaged(),n=this.getMetadata().getProperties();for(const[r,i]of Object.entries(n)){if(Ee(r)||console.warn(`"${r}" is not a valid property name. Use a name that does not collide with DOM APIs`),i.type===Boolean&&i.defaultValue)throw new Error(`Cannot set a default value for property "${r}". All booleans are false by default.`);if(i.type===Array)throw new Error(`Wrong type for property "${r}". Properties cannot be of type Array - use "multiple: true" and set "type" to the single value type, such as "String", "Object", etc...`);if(i.type===Object&&i.defaultValue)throw new Error(`Cannot set a default value for property "${r}". All properties of type "Object" are empty objects by default.`);if(i.multiple&&i.defaultValue)throw new Error(`Cannot set a default value for property "${r}". All multiple properties are empty arrays by default.`);Object.defineProperty(t,r,{get(){if(this._state[r]!==void 0)return this._state[r];const o=i.defaultValue;return i.type===Boolean?!1:i.type===String?o:i.multiple?[]:o},set(o){let a;o=this.constructor.getMetadata().constructor.validatePropertyValue(o,i);const c=this._state[r];i.multiple&&i.compareValues?a=!Te(c,o):et(i.type,F)?a=!i.type.valuesAreEqual(c,o):a=c!==o,a&&(this._state[r]=o,H.call(this,{type:"property",name:r,newValue:o,oldValue:c}),this._updateAttribute(r,o))}})}if(s){const r=this.getMetadata().getSlots();for(const[i,o]of Object.entries(r)){Ee(i)||console.warn(`"${i}" is not a valid property name. Use a name that does not collide with DOM APIs`);const a=o.propertyName||i;Object.defineProperty(t,a,{get(){return this._state[a]!==void 0?this._state[a]:[]},set(){throw new Error("Cannot set slot content directly, use the DOM APIs (appendChild, removeChild, etc...)")}})}}}static get metadata(){return Le}static set metadata(t){Le=t}static get styles(){return""}static get staticAreaStyles(){return""}static get dependencies(){return[]}static getUniqueDependencies(){if(!Ot.has(this)){const t=this.dependencies.filter((s,n,r)=>r.indexOf(s)===n);Ot.set(this,t)}return Ot.get(this)}static whenDependenciesDefined(){return Promise.all(this.getUniqueDependencies().map(t=>t.define()))}static async onDefine(){return Promise.resolve()}static async define(){await gr(),await Promise.all([this.whenDependenciesDefined(),this.onDefine()]);const t=this.getMetadata().getTag(),s=this.getMetadata().getAltTag(),n=Js(t),r=customElements.get(t);return r&&!n?Ys(t):r||(this._generateAccessors(),ae(t),window.customElements.define(t,this),s&&!customElements.get(s)&&(ae(s),window.customElements.define(s,Wr(this,()=>{console.log(`The ${s} tag is deprecated and will be removed in the next release, please use ${t} instead.`)})))),this}static getMetadata(){if(this.hasOwnProperty("_metadata"))return this._metadata;const t=[this.metadata];let s=this;for(;s!==L;)s=Object.getPrototypeOf(s),t.unshift(s.metadata);const n=Zt({},...t);return this._metadata=new vr(n),this._metadata}}/**
9
+ To prevent other runtimes from defining tags that you use, consider using scoping or have third-party libraries use scoping: https://github.com/SAP/ui5-webcomponents/blob/main/docs/2-advanced/03-scoping.md.`,console.warn(n)},Je=new Set,tn=e=>{Je.add(e)},en=e=>Je.has(e),Gt=new Set,sn=new T,R=new zs;let O,tt,wt,J;const Xe=async e=>{R.add(e),await rn()},Ye=e=>{sn.fireEvent("beforeComponentRender",e),Gt.add(e),e._render()},nn=e=>{R.remove(e),Gt.delete(e)},rn=async()=>{J||(J=new Promise(e=>{window.requestAnimationFrame(()=>{R.process(Ye),J=null,e(),wt||(wt=setTimeout(()=>{wt=void 0,R.isEmpty()&&cn()},200))})})),await J},on=()=>O||(O=new Promise(e=>{tt=e,window.requestAnimationFrame(()=>{R.isEmpty()&&(O=void 0,e())})}),O),an=()=>{const e=Xs().map(t=>customElements.whenDefined(t));return Promise.all(e)},Kt=async()=>{await an(),await on()},cn=()=>{!R.isEmpty()||tt&&(tt(),tt=void 0,O=void 0)},Jt=async e=>{Gt.forEach(t=>{const s=t.constructor.getMetadata().getTag(),n=en(t.constructor),r=t.constructor.getMetadata().isLanguageAware(),i=t.constructor.getMetadata().isThemeAware();(!e||e.tag===s||e.rtlAware&&n||e.languageAware&&r||e.themeAware&&i)&&Xe(t)}),await Kt()};let vt,Ut;const ot=()=>(vt===void 0&&(vt=Ds()),vt),ln=e=>{Ut=e},un=()=>(Ut===void 0&&ln(Rs()),Ut),dn=/^((?:[A-Z]{2,3}(?:-[A-Z]{3}){0,3})|[A-Z]{4}|[A-Z]{5,8})(?:-([A-Z]{4}))?(?:-([A-Z]{2}|[0-9]{3}))?((?:-[0-9A-Z]{5,8}|-[0-9][0-9A-Z]{3})*)((?:-[0-9A-WYZ](?:-[0-9A-Z]{2,8})+)*)(?:-(X(?:-[0-9A-Z]{1,8})+))?$/i;class hn{constructor(t){const s=dn.exec(t.replace(/_/g,"-"));if(s===null)throw new Error(`The given language ${t} does not adhere to BCP-47.`);this.sLocaleId=t,this.sLanguage=s[1]||null,this.sScript=s[2]||null,this.sRegion=s[3]||null,this.sVariant=s[4]&&s[4].slice(1)||null,this.sExtension=s[5]&&s[5].slice(1)||null,this.sPrivateUse=s[6]||null,this.sLanguage&&(this.sLanguage=this.sLanguage.toLowerCase()),this.sScript&&(this.sScript=this.sScript.toLowerCase().replace(/^[a-z]/,n=>n.toUpperCase())),this.sRegion&&(this.sRegion=this.sRegion.toUpperCase())}getLanguage(){return this.sLanguage}getScript(){return this.sScript}getRegion(){return this.sRegion}getVariant(){return this.sVariant}getVariantSubtags(){return this.sVariant?this.sVariant.split("-"):[]}getExtension(){return this.sExtension}getExtensionSubtags(){return this.sExtension?this.sExtension.slice(2).split("-"):[]}getPrivateUse(){return this.sPrivateUse}getPrivateUseSubtags(){return this.sPrivateUse?this.sPrivateUse.slice(2).split("-"):[]}hasPrivateUseSubtag(t){return this.getPrivateUseSubtags().indexOf(t)>=0}toString(){const t=[this.sLanguage];return this.sScript&&t.push(this.sScript),this.sRegion&&t.push(this.sRegion),this.sVariant&&t.push(this.sVariant),this.sExtension&&t.push(this.sExtension),this.sPrivateUse&&t.push(this.sPrivateUse),t.join("-")}}const At=new Map,Qe=e=>(At.has(e)||At.set(e,new hn(e)),At.get(e)),ce=e=>{try{if(e&&typeof e=="string")return Qe(e)}catch{}},kt=e=>e?ce(e):ot()?Qe(ot()):ce(ke()),fn=/^((?:[A-Z]{2,3}(?:-[A-Z]{3}){0,3})|[A-Z]{4}|[A-Z]{5,8})(?:-([A-Z]{4}))?(?:-([A-Z]{2}|[0-9]{3}))?((?:-[0-9A-Z]{5,8}|-[0-9][0-9A-Z]{3})*)((?:-[0-9A-WYZ](?:-[0-9A-Z]{2,8})+)*)(?:-(X(?:-[0-9A-Z]{1,8})+))?$/i,le=/(?:^|-)(saptrc|sappsd)(?:-|$)/i,pn={he:"iw",yi:"ji",id:"in",sr:"sh"},gn=e=>{let t;if(!e)return E;if(typeof e=="string"&&(t=fn.exec(e.replace(/_/g,"-")))){let s=t[1].toLowerCase(),n=t[3]?t[3].toUpperCase():void 0;const r=t[2]?t[2].toLowerCase():void 0,i=t[4]?t[4].slice(1):void 0,o=t[6];return s=pn[s]||s,o&&(t=le.exec(o))||i&&(t=le.exec(i))?`en_US_${t[1].toLowerCase()}`:(s==="zh"&&!n&&(r==="hans"?n="CN":r==="hant"&&(n="TW")),s+(n?"_"+n+(i?"_"+i.replace("-","_"):""):""))}},mn=e=>{if(!e)return E;if(e==="zh_HK")return"zh_TW";const t=e.lastIndexOf("_");return t>=0?e.slice(0,t):e!==E?E:""},ue=new Set,de=new Set,Xt=new Map,St=new Map,Yt=new Map,yn=(e,t,s)=>{const n=`${e}/${t}`;Yt.set(n,s)},he=(e,t)=>{Xt.set(e,t)},_n=e=>Xt.get(e),fe=(e,t)=>{const s=`${e}/${t}`;return Yt.has(s)},wn=(e,t)=>{const s=`${e}/${t}`,n=Yt.get(s);return St.get(s)||St.set(s,n(t)),St.get(s)},vn=e=>{ue.has(e)||(console.warn(`[${e}]: Message bundle assets are not configured. Falling back to English texts.`,` Add \`import "${e}/dist/Assets.js"\` in your bundle and make sure your build tool supports dynamic imports and JSON imports. See section "Assets" in the documentation for more information.`),ue.add(e))},ts=async e=>{const t=kt().getLanguage(),s=kt().getRegion();let n=gn(t+(s?`-${s}`:""));for(;n!==Nt&&!fe(e,n);)n=mn(n);const r=un();if(n===Nt&&!r){he(e,null);return}if(!fe(e,n)){vn(e);return}try{const i=await wn(e,n);he(e,i)}catch(i){de.has(i.message)||(de.add(i.message),console.error(i.message))}};ze(()=>{const e=[...Xt.keys()];return Promise.all(e.map(ts))});const An=new Map,at=new Map,bt=new Map,pe=new Set;let ge=!1;const Sn={iw:"he",ji:"yi",in:"id"},me=e=>{ge||(console.warn(`[LocaleData] Supported locale "${e}" not configured, import the "Assets.js" module from the webcomponents package you are using.`),ge=!0)},bn=(e,t,s)=>{e=e&&Sn[e]||e,e==="no"&&(e="nb"),e==="zh"&&!t&&(s==="Hans"?t="CN":s==="Hant"&&(t="TW")),(e==="sh"||e==="sr"&&s==="Latn")&&(e="sr",t="Latn");let n=`${e}_${t}`;return ee.includes(n)||(n=e,ee.includes(n))?at.has(n)?n:(me(n),E):E},ye=(e,t)=>{An.set(e,t)},$n=e=>{const t=at.get(e);return bt.get(e)||bt.set(e,t(e)),bt.get(e)},Cn=async(e,t,s)=>{const n=bn(e,t,s),r=_("OpenUI5Support");if(r){const i=r.getLocaleDataObject();if(i){ye(n,i);return}}try{const i=await $n(n);ye(n,i)}catch(i){pe.has(i.message)||(pe.add(i.message),console.error(i.message))}},En=(e,t)=>{at.set(e,t)};En("en",async e=>(await fetch("https://sdk.openui5.org/1.103.0/resources/sap/ui/core/cldr/en.json")).json());ze(()=>{const e=kt();return Cn(e.getLanguage(),e.getRegion(),e.getScript())});const es=new Map,ss=new Map,ns=new Set,ct=new Set,b=(e,t,s)=>{ss.set(`${e}/${t}`,s),ns.add(e),ct.add(t)},rs=async(e,t)=>{const s=es.get(`${e}_${t}`);if(s!==void 0)return s;if(!ct.has(t)){const n=[...ct.values()].join(", ");return console.warn(`You have requested a non-registered theme ${t} - falling back to ${xt}. Registered themes are: ${n}`),_e(e,xt)}return _e(e,t)},_e=async(e,t)=>{const s=ss.get(`${e}/${t}`);if(!s){console.error(`Theme [${t}] not registered for package [${e}]`);return}let n;try{n=await s(t)}catch(i){console.error(e,i.message);return}const r=n._||n;return es.set(`${e}_${t}`,r),r},is=()=>ns,Tn=e=>ct.has(e),we={"SAP-icons-TNT":"tnt",BusinessSuiteInAppSymbols:"business-suite",horizon:"SAP-icons-v5"},Mn=(e,t={})=>{const s=document.createElement("style");return s.type="text/css",Object.entries(t).forEach(n=>s.setAttribute(...n)),s.textContent=e,document.head.appendChild(s),s},dt=(e,t)=>t?`${e}|${t}`:e,ht=(e,t,s="")=>{const n=typeof e=="string"?e:e.content;if(document.adoptedStyleSheets){const r=new CSSStyleSheet;r.replaceSync(n),r._ui5StyleId=dt(t,s),document.adoptedStyleSheets=[...document.adoptedStyleSheets,r]}else{const r={};r[t]=s,Mn(n,r)}},Ln=(e,t,s="")=>{const n=typeof e=="string"?e:e.content;document.adoptedStyleSheets?document.adoptedStyleSheets.find(r=>r._ui5StyleId===dt(t,s)).replaceSync(n||""):document.querySelector(`head>style[${t}="${s}"]`).textContent=n||""},ft=(e,t="")=>document.adoptedStyleSheets?!!document.adoptedStyleSheets.find(s=>s._ui5StyleId===dt(e,t)):!!document.querySelector(`head>style[${e}="${t}"]`),On=(e,t="")=>{if(document.adoptedStyleSheets)document.adoptedStyleSheets=document.adoptedStyleSheets.filter(s=>s._ui5StyleId!==dt(e,t));else{const s=document.querySelector(`head > style[${e}="${t}"]`);s&&s.parentElement.removeChild(s)}},os=(e,t,s="")=>{ft(t,s)?Ln(e,t,s):ht(e,t,s)},P=new Set,Pn=()=>{let e=document.querySelector(".sapThemeMetaData-Base-baseLib")||document.querySelector(".sapThemeMetaData-UI5-sap-ui-core");if(e)return getComputedStyle(e).backgroundImage;e=document.createElement("span"),e.style.display="none",e.classList.add("sapThemeMetaData-Base-baseLib"),document.body.appendChild(e);let t=getComputedStyle(e).backgroundImage;return t==="none"&&(e.classList.add("sapThemeMetaData-UI5-sap-ui-core"),t=getComputedStyle(e).backgroundImage),document.body.removeChild(e),t},In=e=>{const t=/\(["']?data:text\/plain;utf-8,(.*?)['"]?\)$/i.exec(e);if(t&&t.length>=2){let s=t[1];if(s=s.replace(/\\"/g,'"'),s.charAt(0)!=="{"&&s.charAt(s.length-1)!=="}")try{s=decodeURIComponent(s)}catch{P.has("decode")||(console.warn("Malformed theme metadata string, unable to decodeURIComponent"),P.add("decode"));return}try{return JSON.parse(s)}catch{P.has("parse")||(console.warn("Malformed theme metadata string, unable to parse JSON"),P.add("parse"))}}},Dn=e=>{let t,s;try{t=e.Path.match(/\.([^.]+)\.css_variables$/)[1],s=e.Extends[0]}catch{P.has("object")||(console.warn("Malformed theme metadata Object",e),P.add("object"));return}return{themeName:t,baseThemeName:s}},Rn=()=>{const e=Pn();if(!e||e==="none")return;const t=In(e);return Dn(t)},xn=new T,Nn="themeLoaded",Un=e=>xn.fireEvent(Nn,e),z="@ui5/webcomponents-theming",kn=()=>is().has(z),Hn=async e=>{if(!kn())return;const t=await rs(z,e);t&&os(t,"data-ui5-theme-properties",z)},Bn=()=>{On("data-ui5-theme-properties",z)},Fn=async e=>{is().forEach(async s=>{if(s===z)return;const n=await rs(s,e);n&&os(n,"data-ui5-theme-properties",s)})},jn=()=>{const e=Rn();if(e)return e;const t=_("OpenUI5Support");if(t&&t.cssVariablesLoaded())return{themeName:t.getConfigurationSettingsObject().theme}},as=async e=>{const t=jn();!t||e!==t.themeName?await Hn(e):Bn();const s=Tn(e)?e:t&&t.baseThemeName;await Fn(s),Un(e)};let I;const pt=()=>(I===void 0&&(I=Ps()),I),cs=async e=>{I!==e&&(I=e,await as(I),await Jt({themeAware:!0}))},Vn=e=>pt().startsWith(e),zn=new Map,ls=()=>{const e=pt(),t=zn.get(e);return t||(Vn("sap_horizon")?"SAP-icons-v5":"SAP-icons")},ve=new Map,lt=M("SVGIcons.registry",new Map),$t=M("SVGIcons.promises",new Map),Ae="ICON_NOT_FOUND",Wn=async e=>{if(!$t.has(e)){if(!ve.has(e))throw new Error(`No loader registered for the ${e} icons collection. Probably you forgot to import the "AllIcons.js" module for the respective package.`);const t=ve.get(e);$t.set(e,t(e))}return $t.get(e)},Zn=e=>{Object.keys(e.data).forEach(t=>{const s=e.data[t];qn(t,{pathData:s.path||s.paths,ltr:s.ltr,accData:s.acc,collection:e.collection,packageName:e.packageName})})},qn=(e,{pathData:t,ltr:s,accData:n,collection:r,packageName:i,customTemplate:o,viewBox:a}={})=>{r||(r=ls());const c=`${r}/${e}`;lt.set(c,{pathData:t,ltr:s,accData:n,packageName:i,customTemplate:o,viewBox:a})},Gn=e=>{e.startsWith("sap-icon://")&&(e=e.replace("sap-icon://",""));let t;[e,t]=e.split("/").reverse(),t=t||ls(),t=Jn(t),e=e.replace("icon-","");const s=`${t}/${e}`;return{name:e,collection:t,registryKey:s}},Ct=async e=>{const{collection:t,registryKey:s}=Gn(e);let n=Ae;try{n=await Wn(t)}catch(r){console.error(r.message)}return n===Ae?n:(lt.has(s)||Zn(n),lt.get(s))},Kn=async()=>(await Ct("edit"),await Ct("tnt/arrow"),await Ct("business-suite/3d"),Array.from(lt.keys())),Jn=e=>we[e]?we[e]:e,Ht=M("PopupUtilsData",{});Ht.currentZIndex=Ht.currentZIndex||100;const us=()=>Ht.currentZIndex,w=()=>{const e=window.sap;return e&&e.ui&&typeof e.ui.getCore=="function"&&e.ui.getCore()},Xn=()=>!!w(),Yn=()=>{const e=w();return e?new Promise(t=>{e.attachInit(()=>{window.sap.ui.require(["sap/ui/core/LocaleData","sap/ui/core/Popup"],(s,n)=>{n.setInitialZIndex(us()),t()})})}):Promise.resolve()},Qn=()=>{const e=w();if(!e)return;const t=e.getConfiguration(),s=window.sap.ui.require("sap/ui/core/LocaleData");return{animationMode:t.getAnimationMode(),language:t.getLanguage(),theme:t.getTheme(),rtl:t.getRTL(),calendarType:t.getCalendarType(),formatSettings:{firstDayOfWeek:s?s.getInstance(t.getLocale()).getFirstDayOfWeek():void 0}}},tr=()=>{const e=w();if(!e)return;const t=e.getConfiguration();return window.sap.ui.require("sap/ui/core/LocaleData").getInstance(t.getLocale())._get()},er=()=>{const e=w(),t=e.getConfiguration();e.attachThemeChanged(async()=>{await cs(t.getTheme())})},sr=()=>{!w()||er()},nr=()=>{if(!w())return;const t=[...document.head.children].find(s=>s.id==="sap-ui-theme-sap.ui.core");if(!!t)return!!t.href.match(/\/css(-|_)variables\.css/)},rr=()=>w()?window.sap.ui.require("sap/ui/core/Popup").getNextZIndex():void 0,ir=()=>{if(!w())return;window.sap.ui.require("sap/ui/core/Popup").setInitialZIndex(us())},or={isLoaded:Xn,init:Yn,getConfigurationSettingsObject:Qn,getLocaleDataObject:tr,attachListeners:sr,cssVariablesLoaded:nr,getNextZIndex:rr,setInitialZIndex:ir};Ls("OpenUI5Support",or);const ar=()=>new Promise(e=>{document.body?e():document.addEventListener("DOMContentLoaded",()=>{e()})});var cr={packageName:"@ui5/webcomponents-base",fileName:"FontFace.css",content:`@font-face{font-family:"72";font-style:normal;font-weight:400;src:local("72"),url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Regular.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:"72full";font-style:normal;font-weight:400;src:local('72-full'),url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Regular-full.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:"72";font-style:normal;font-weight:700;src:local('72-Bold'),url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:"72full";font-style:normal;font-weight:700;src:local('72-Bold-full'),url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold-full.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:'72-Bold';font-style:normal;src:local('72-Bold'),url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:'72-Boldfull';font-style:normal;src:url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold-full.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:'72-Light';font-style:normal;src:local('72-Light'),url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Light.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:'72-Lightfull';font-style:normal;src:url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Light-full.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:"72Black";font-style:bold;font-weight:900;src:local('72Black'),url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_horizon/fonts/72-Black.woff2?ui5-webcomponents) format("woff2")}`},lr={packageName:"@ui5/webcomponents-base",fileName:"OverrideFontFace.css",content:"@font-face{font-family:'72override';unicode-range:U+0102-0103,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EB7,U+1EB8-1EC7,U+1EC8-1ECB,U+1ECC-1EE3,U+1EE4-1EF1,U+1EF4-1EF7;src:local('Arial'),local('Helvetica'),local('sans-serif')}"};const ur=()=>{const e=_("OpenUI5Support");(!e||!e.isLoaded())&&dr(),hr()},dr=()=>{ft("data-ui5-font-face")||ht(cr,"data-ui5-font-face")},hr=()=>{ft("data-ui5-font-face-override")||ht(lr,"data-ui5-font-face-override")};var fr={packageName:"@ui5/webcomponents-base",fileName:"SystemCSSVars.css",content:":root{--_ui5_content_density:cozy}.sapUiSizeCompact,.ui5-content-density-compact,[data-ui5-compact-size]{--_ui5_content_density:compact}[dir=rtl]{--_ui5_dir:rtl}[dir=ltr]{--_ui5_dir:ltr}"};const pr=()=>{ft("data-ui5-system-css-vars")||ht(fr,"data-ui5-system-css-vars")};let X;const gr=async()=>X||(X=new Promise(async e=>{qs();const t=_("OpenUI5Support"),s=t?t.isLoaded():!1,n=_("F6Navigation");t&&await t.init(),n&&!s&&n.init(),await ar(),await as(pt()),t&&t.attachListeners(),ur(),pr(),e()}),X);class F{static isValid(t){}static attributeToProperty(t){return t}static propertyToAttribute(t){return`${t}`}static valuesAreEqual(t,s){return t===s}static generateTypeAccessors(t){Object.keys(t).forEach(s=>{Object.defineProperty(this,s,{get(){return t[s]}})})}}const et=(e,t,s=!1)=>{if(typeof e!="function"||typeof t!="function")return!1;if(s&&e===t)return!0;let n=e;do n=Object.getPrototypeOf(n);while(n!==null&&n!==t);return n===t},Et=new Map,Tt=new Map,Se=e=>{if(!Et.has(e)){const t=mr(e.split("-"));Et.set(e,t)}return Et.get(e)},ds=e=>{if(!Tt.has(e)){const t=e.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase();Tt.set(e,t)}return Tt.get(e)},mr=e=>e.map((t,s)=>s===0?t.toLowerCase():t.charAt(0).toUpperCase()+t.slice(1).toLowerCase()).join(""),yr=e=>{if(!(e instanceof HTMLElement))return"default";const t=e.getAttribute("slot");if(t){const s=t.match(/^(.+?)-\d+$/);return s?s[1]:t}return"default"},Bt=e=>e&&e instanceof HTMLElement&&e.localName==="slot",hs=e=>Bt(e)?e.assignedNodes({flatten:!0}).filter(t=>t instanceof HTMLElement):[e],_r=e=>{const t=(s,n)=>s.concat(hs(n));return e.reduce(t,[])};let wr,be={include:[/^ui5-/],exclude:[]};const Mt=new Map,fs=()=>wr,Ft=e=>{if(!Mt.has(e)){const t=be.include.some(s=>e.match(s))&&!be.exclude.some(s=>e.match(s));Mt.set(e,t)}return Mt.get(e)},jt=e=>{if(Ft(e))return fs()};class vr{constructor(t){this.metadata=t}getInitialState(){if(Object.prototype.hasOwnProperty.call(this,"_initialState"))return this._initialState;const t={},s=this.slotsAreManaged(),n=this.getProperties();for(const r in n){const i=n[r].type,o=n[r].defaultValue;i===Boolean?(t[r]=!1,o!==void 0&&console.warn("The 'defaultValue' metadata key is ignored for all booleans properties, they would be initialized with 'false' by default")):n[r].multiple?t[r]=[]:i===Object?t[r]="defaultValue"in n[r]?n[r].defaultValue:{}:i===String?t[r]="defaultValue"in n[r]?n[r].defaultValue:"":t[r]=o}if(s){const r=this.getSlots();for(const[i,o]of Object.entries(r)){const a=o.propertyName||i;t[a]=[]}}return this._initialState=t,t}static validatePropertyValue(t,s){return s.multiple?t.map(r=>$e(r,s)):$e(t,s)}static validateSlotValue(t,s){return Ar(t,s)}getPureTag(){return this.metadata.tag}getTag(){const t=this.metadata.tag,s=jt(t);return s?`${t}-${s}`:t}getAltTag(){const t=this.metadata.altTag;if(!t)return;const s=jt(t);return s?`${t}-${s}`:t}hasAttribute(t){const s=this.getProperties()[t];return s.type!==Object&&!s.noAttribute&&!s.multiple}getPropertiesList(){return Object.keys(this.getProperties())}getAttributesList(){return this.getPropertiesList().filter(this.hasAttribute,this).map(ds)}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,s])=>s.individualSlots)}slotsAreManaged(){return!!this.metadata.managedSlots}supportsF6FastNavigation(){return!!this.metadata.fastNavigation}getProperties(){return this.metadata.properties||{}}getEvents(){return this.metadata.events||{}}isLanguageAware(){return!!this.metadata.languageAware}isThemeAware(){return!!this.metadata.themeAware}shouldInvalidateOnChildChange(t,s,n){const r=this.getSlots()[t].invalidateOnChildChange;if(r===void 0)return!1;if(typeof r=="boolean")return r;if(typeof r=="object"){if(s==="property"){if(r.properties===void 0)return!1;if(typeof r.properties=="boolean")return r.properties;if(Array.isArray(r.properties))return r.properties.includes(n);throw new Error("Wrong format for invalidateOnChildChange.properties: boolean or array is expected")}if(s==="slot"){if(r.slots===void 0)return!1;if(typeof r.slots=="boolean")return r.slots;if(Array.isArray(r.slots))return r.slots.includes(n);throw new Error("Wrong format for invalidateOnChildChange.slots: boolean or array is expected")}}throw new Error("Wrong format for invalidateOnChildChange: boolean or object is expected")}}const $e=(e,t)=>{const s=t.type;if(s===Boolean)return typeof e=="boolean"?e:!1;if(s===String)return typeof e=="string"||typeof e=="undefined"||e===null?e:e.toString();if(s===Object)return typeof e=="object"?e:t.defaultValue;if(et(s,F))return s.isValid(e)?e:t.defaultValue},Ar=(e,t)=>(e&&hs(e).forEach(s=>{if(!(s instanceof t.type))throw new Error(`${s} is not of type ${t.type}`)}),e);customElements.get("ui5-static-area")||customElements.define("ui5-static-area",class extends HTMLElement{});const Sr=(e,t)=>{const s=br(t),n=fs();return e(t,s,n)},br=e=>{const t=e.constructor.getMetadata().getPureTag(),s=e.constructor.getUniqueDependencies().map(n=>n.getMetadata().getPureTag()).filter(Ft);return Ft(t)&&s.push(t),s},$r=M("CustomStyle.eventProvider",new T),Cr="CustomCSSChange",Qt=e=>{$r.attachEvent(Cr,e)},Ce=M("CustomStyle.customCSSFor",{});Qt(e=>{Jt({tag:e})});const Er=e=>Ce[e]?Ce[e].join(""):"",Lt=e=>Array.isArray(e)?ps(e.filter(t=>!!t)).map(t=>typeof t=="string"?t:t.content).join(" "):typeof e=="string"?e:e.content,ps=e=>e.reduce((t,s)=>t.concat(Array.isArray(s)?ps(s):s),[]),st=new Map;Qt(e=>{st.delete(`${e}_normal`)});const gs=(e,t=!1)=>{const s=e.getMetadata().getTag(),n=`${s}_${t?"static":"normal"}`,r=_("OpenUI5Enablement");if(!st.has(n)){let i,o="";if(r&&(o=Lt(r.getBusyIndicatorStyles())),t)i=Lt(e.staticAreaStyles);else{const a=Er(s)||"";i=`${Lt(e.styles)} ${a}`}i=`${i} ${o}`,st.set(n,i)}return st.get(n)},nt=new Map;Qt(e=>{nt.delete(`${e}_normal`)});const Tr=(e,t=!1)=>{const n=`${e.getMetadata().getTag()}_${t?"static":"normal"}`;if(!nt.has(n)){const r=gs(e,t),i=new CSSStyleSheet;i.replaceSync(r),nt.set(n,[i])}return nt.get(n)},Vt=(e,t=!1)=>{let s;const n=t?"staticAreaTemplate":"template",r=t?e.staticAreaItem.shadowRoot:e.shadowRoot,i=Sr(e.constructor[n],e);document.adoptedStyleSheets?r.adoptedStyleSheets=Tr(e.constructor,t):s=gs(e.constructor,t),e.constructor.render(i,r,s,t,{host:e})},Mr="--_ui5_content_density",Lr=e=>getComputedStyle(e).getPropertyValue(Mr);var Or=e=>{const t=/\$([-a-z0-9A-Z._]+)(?::([^$]*))?\$/.exec(e);return t&&t[2]?t[2].split(/,/):null};const Pr={iw:"he",ji:"yi",in:"id",sh:"sr"},Ir=Or("$cldr-rtl-locales:ar,fa,he$")||[],Dr=e=>(e=e&&Pr[e]||e,Ir.indexOf(e)>=0),ms=()=>{const e=Is();return e!==null?!!e:Dr(ot()||ke())},Rr="--_ui5_dir",ys=e=>{const t=window.document,s=["ltr","rtl"],n=getComputedStyle(e).getPropertyValue(Rr);return s.includes(n)?n:s.includes(e.dir)?e.dir:s.includes(t.documentElement.dir)?t.documentElement.dir:s.includes(t.body.dir)?t.body.dir:ms()?"rtl":void 0};class j extends HTMLElement{constructor(){super(),this._rendered=!1,this.attachShadow({mode:"open"}),this.pureTagName="ui5-static-area-item"}setOwnerElement(t){this.ownerElement=t,this.classList.add(this.ownerElement._id),this.ownerElement.hasAttribute("data-ui5-static-stable")&&this.setAttribute("data-ui5-stable",this.ownerElement.getAttribute("data-ui5-static-stable"))}update(){this._rendered&&(this.setAttribute(this.pureTagName,""),this._updateContentDensity(),this._updateDirection(),Vt(this.ownerElement,!0))}_updateContentDensity(){Lr(this.ownerElement)==="compact"?(this.classList.add("sapUiSizeCompact"),this.classList.add("ui5-content-density-compact")):(this.classList.remove("sapUiSizeCompact"),this.classList.remove("ui5-content-density-compact"))}_updateDirection(){const t=ys(this.ownerElement);t?this.setAttribute("dir",t):this.removeAttribute("dir")}async getDomRef(){return this._updateContentDensity(),this._rendered||(this._rendered=!0,Vt(this.ownerElement,!0)),await Kt(),this.shadowRoot}static getTag(){const t="ui5-static-area-item",s=jt(t);return s?`${t}-${s}`:t}static createInstance(){return customElements.get(j.getTag())||customElements.define(j.getTag(),j),document.createElement(this.getTag())}}const zt=new WeakMap;let xr=(e,t,s)=>{const n=new MutationObserver(t);return n.observe(e,s),n},Nr=e=>{e.disconnect()};const Ur=(e,t,s)=>{const n=xr(e,t,s);zt.set(e,n)},kr=e=>{const t=zt.get(e);t&&(Nr(t),zt.delete(e))},Hr=["value-changed"],Br=e=>Hr.includes(e);let rt;const Fr=e=>{const t=te();return!(t.events&&t.events.includes&&t.events.includes(e))},te=()=>(rt===void 0&&(rt=xs()),rt),jr=e=>{const t=te();return Br(e)?!1:t===!0?!0:!Fr(e)},Vr=e=>{rt=e},zr=["disabled","title","hidden","role","draggable"],Ee=e=>zr.includes(e)||e.startsWith("aria")?!0:![HTMLElement,Element,Node].some(s=>s.prototype.hasOwnProperty(e)),Te=(e,t)=>{if(e.length!==t.length)return!1;for(let s=0;s<e.length;s++)if(e[s]!==t[s])return!1;return!0},Wr=(e,t)=>class extends e{constructor(){super(),t&&t()}};let Zr=0;const Me=new Map,Ot=new Map;function H(e){this._suppressInvalidation||(this.onInvalidation(e),this._changedState.push(e),Xe(this),this._eventProvider.fireEvent("invalidate",{...e,target:this}))}let Le={};class L extends HTMLElement{constructor(){super(),this._changedState=[],this._suppressInvalidation=!0,this._inDOM=!1,this._fullyConnected=!1,this._childChangeListeners=new Map,this._slotChangeListeners=new Map,this._eventProvider=new T;let t;this._domRefReadyPromise=new Promise(s=>{t=s}),this._domRefReadyPromise._deferredResolve=t,this._doNotSyncAttributes=new Set,this._initializeState(),this._upgradeAllProperties(),this.constructor._needsShadowDOM()&&this.attachShadow({mode:"open"})}get _id(){return this.__id||(this.__id=`ui5wc_${++Zr}`),this.__id}async connectedCallback(){this.setAttribute(this.constructor.getMetadata().getPureTag(),""),this.constructor.getMetadata().supportsF6FastNavigation()&&this.setAttribute("data-sap-ui-fastnavgroup","true");const t=this.constructor.getMetadata().slotsAreManaged();this._inDOM=!0,t&&(this._startObservingDOMChildren(),await this._processChildren()),this._inDOM&&(Ye(this),this._domRefReadyPromise._deferredResolve(),this._fullyConnected=!0,typeof this.onEnterDOM=="function"&&this.onEnterDOM())}disconnectedCallback(){const t=this.constructor.getMetadata().slotsAreManaged();this._inDOM=!1,t&&this._stopObservingDOMChildren(),this._fullyConnected&&(typeof this.onExitDOM=="function"&&this.onExitDOM(),this._fullyConnected=!1),this.staticAreaItem&&this.staticAreaItem.parentElement&&this.staticAreaItem.parentElement.removeChild(this.staticAreaItem),nn(this)}_startObservingDOMChildren(){if(!this.constructor.getMetadata().hasSlots())return;const s=this.constructor.getMetadata().canSlotText(),n={childList:!0,subtree:s,characterData:s};Ur(this,this._processChildren.bind(this),n)}_stopObservingDOMChildren(){kr(this)}async _processChildren(){this.constructor.getMetadata().hasSlots()&&await this._updateSlots()}async _updateSlots(){const t=this.constructor.getMetadata().getSlots(),s=this.constructor.getMetadata().canSlotText(),n=Array.from(s?this.childNodes:this.children),r=new Map,i=new Map;for(const[h,d]of Object.entries(t)){const u=d.propertyName||h;i.set(u,h),r.set(u,[...this._state[u]]),this._clearSlot(h,d)}const o=new Map,a=new Map,c=n.map(async(h,d)=>{const u=yr(h),p=t[u];if(p===void 0){const g=Object.keys(t).join(", ");console.warn(`Unknown slotName: ${u}, ignoring`,h,`Valid values are: ${g}`);return}if(p.individualSlots){const g=(o.get(u)||0)+1;o.set(u,g),h._individualSlot=`${u}-${g}`}if(h instanceof HTMLElement){const g=h.localName;if(g.includes("-")){if(!window.customElements.get(g)){const bs=window.customElements.whenDefined(g);let K=Me.get(g);K||(K=new Promise($s=>setTimeout($s,1e3)),Me.set(g,K)),await Promise.race([bs,K])}window.customElements.upgrade(h)}}h=this.constructor.getMetadata().constructor.validateSlotValue(h,p),h.isUI5Element&&p.invalidateOnChildChange&&(h.attachInvalidate||h._attachChange).bind(h)(this._getChildChangeListener(u)),Bt(h)&&this._attachSlotChange(h,u);const v=p.propertyName||u;a.has(v)?a.get(v).push({child:h,idx:d}):a.set(v,[{child:h,idx:d}])});await Promise.all(c),a.forEach((h,d)=>{this._state[d]=h.sort((u,p)=>u.idx-p.idx).map(u=>u.child)});let l=!1;for(const[h,d]of Object.entries(t)){const u=d.propertyName||h;Te(r.get(u),this._state[u])||(H.call(this,{type:"slot",name:i.get(u),reason:"children"}),l=!0)}l||H.call(this,{type:"slot",name:"default",reason:"textcontent"})}_clearSlot(t,s){const n=s.propertyName||t;this._state[n].forEach(i=>{i&&i.isUI5Element&&(i.detachInvalidate||i._detachChange).bind(i)(this._getChildChangeListener(t)),Bt(i)&&this._detachSlotChange(i,t)}),this._state[n]=[]}attachInvalidate(t){this._eventProvider.attachEvent("invalidate",t)}detachInvalidate(t){this._eventProvider.detachEvent("invalidate",t)}_onChildChange(t,s){!this.constructor.getMetadata().shouldInvalidateOnChildChange(t,s.type,s.name)||H.call(this,{type:"slot",name:t,reason:"childchange",child:s.target})}attributeChangedCallback(t,s,n){if(this._doNotSyncAttributes.has(t))return;const r=this.constructor.getMetadata().getProperties(),i=t.replace(/^ui5-/,""),o=Se(i);if(r.hasOwnProperty(o)){const a=r[o].type;a===Boolean?n=n!==null:et(a,F)&&(n=a.attributeToProperty(n)),this[o]=n}}_updateAttribute(t,s){if(!this.constructor.getMetadata().hasAttribute(t))return;const r=this.constructor.getMetadata().getProperties()[t].type,i=ds(t),o=this.getAttribute(i);if(r===Boolean)s===!0&&o===null?this.setAttribute(i,""):s===!1&&o!==null&&this.removeAttribute(i);else if(et(r,F)){const a=r.propertyToAttribute(s);a===null?(this._doNotSyncAttributes.add(i),this.removeAttribute(i),this._doNotSyncAttributes.delete(i)):this.setAttribute(i,a)}else typeof s!="object"&&o!==s&&this.setAttribute(i,s)}_upgradeProperty(t){if(this.hasOwnProperty(t)){const s=this[t];delete this[t],this[t]=s}}_upgradeAllProperties(){this.constructor.getMetadata().getPropertiesList().forEach(this._upgradeProperty,this)}_initializeState(){this._state={...this.constructor.getMetadata().getInitialState()}}_getChildChangeListener(t){return this._childChangeListeners.has(t)||this._childChangeListeners.set(t,this._onChildChange.bind(this,t)),this._childChangeListeners.get(t)}_getSlotChangeListener(t){return this._slotChangeListeners.has(t)||this._slotChangeListeners.set(t,this._onSlotChange.bind(this,t)),this._slotChangeListeners.get(t)}_attachSlotChange(t,s){t.addEventListener("slotchange",this._getSlotChangeListener(s))}_detachSlotChange(t,s){t.removeEventListener("slotchange",this._getSlotChangeListener(s))}_onSlotChange(t){H.call(this,{type:"slot",name:t,reason:"slotchange"})}onInvalidation(t){}_render(){const t=this.constructor.getMetadata().hasIndividualSlots();this._suppressInvalidation=!0,typeof this.onBeforeRendering=="function"&&this.onBeforeRendering(),this._onComponentStateFinalized&&this._onComponentStateFinalized(),this._suppressInvalidation=!1,this._changedState=[],this.constructor._needsShadowDOM()&&Vt(this),this.staticAreaItem&&this.staticAreaItem.update(),t&&this._assignIndividualSlotsToChildren(),typeof this.onAfterRendering=="function"&&this.onAfterRendering()}_assignIndividualSlotsToChildren(){Array.from(this.children).forEach(s=>{s._individualSlot&&s.setAttribute("slot",s._individualSlot)})}_waitForDomRef(){return this._domRefReadyPromise}getDomRef(){if(typeof this._getRealDomRef=="function")return this._getRealDomRef();if(!this.shadowRoot||this.shadowRoot.children.length===0)return;const t=[...this.shadowRoot.children].filter(s=>!["link","style"].includes(s.localName));return t.length!==1&&console.warn(`The shadow DOM for ${this.constructor.getMetadata().getTag()} does not have a top level element, the getDomRef() method might not work as expected`),t[0]}getFocusDomRef(){const t=this.getDomRef();if(t)return t.querySelector("[data-sap-focus-ref]")||t}async getFocusDomRefAsync(){return await this._waitForDomRef(),this.getFocusDomRef()}async focus(){await this._waitForDomRef();const t=this.getFocusDomRef();t&&typeof t.focus=="function"&&t.focus()}fireEvent(t,s,n=!1,r=!0){const i=this._fireEvent(t,s,n,r),o=Se(t);return o!==t?i&&this._fireEvent(o,s,n):i}_fireEvent(t,s,n=!1,r=!0){const i=new CustomEvent(`ui5-${t}`,{detail:s,composed:!1,bubbles:r,cancelable:n}),o=this.dispatchEvent(i);if(jr(t))return o;const a=new CustomEvent(t,{detail:s,composed:!1,bubbles:r,cancelable:n});return this.dispatchEvent(a)&&o}getSlottedNodes(t){return _r(this[t])}get effectiveDir(){return tn(this.constructor),ys(this)}get isUI5Element(){return!0}static get observedAttributes(){return this.getMetadata().getAttributesList()}static _needsShadowDOM(){return!!this.template}static _needsStaticArea(){return!!this.staticAreaTemplate}getStaticAreaItemDomRef(){if(!this.constructor._needsStaticArea())throw new Error("This component does not use the static area");return this.staticAreaItem||(this.staticAreaItem=j.createInstance(),this.staticAreaItem.setOwnerElement(this)),this.staticAreaItem.parentElement||Ze("ui5-static-area").appendChild(this.staticAreaItem),this.staticAreaItem.getDomRef()}static _generateAccessors(){const t=this.prototype,s=this.getMetadata().slotsAreManaged(),n=this.getMetadata().getProperties();for(const[r,i]of Object.entries(n)){if(Ee(r)||console.warn(`"${r}" is not a valid property name. Use a name that does not collide with DOM APIs`),i.type===Boolean&&i.defaultValue)throw new Error(`Cannot set a default value for property "${r}". All booleans are false by default.`);if(i.type===Array)throw new Error(`Wrong type for property "${r}". Properties cannot be of type Array - use "multiple: true" and set "type" to the single value type, such as "String", "Object", etc...`);if(i.type===Object&&i.defaultValue)throw new Error(`Cannot set a default value for property "${r}". All properties of type "Object" are empty objects by default.`);if(i.multiple&&i.defaultValue)throw new Error(`Cannot set a default value for property "${r}". All multiple properties are empty arrays by default.`);Object.defineProperty(t,r,{get(){if(this._state[r]!==void 0)return this._state[r];const o=i.defaultValue;return i.type===Boolean?!1:i.type===String?o:i.multiple?[]:o},set(o){let a;o=this.constructor.getMetadata().constructor.validatePropertyValue(o,i);const c=this._state[r];i.multiple&&i.compareValues?a=!Te(c,o):et(i.type,F)?a=!i.type.valuesAreEqual(c,o):a=c!==o,a&&(this._state[r]=o,H.call(this,{type:"property",name:r,newValue:o,oldValue:c}),this._updateAttribute(r,o))}})}if(s){const r=this.getMetadata().getSlots();for(const[i,o]of Object.entries(r)){Ee(i)||console.warn(`"${i}" is not a valid property name. Use a name that does not collide with DOM APIs`);const a=o.propertyName||i;Object.defineProperty(t,a,{get(){return this._state[a]!==void 0?this._state[a]:[]},set(){throw new Error("Cannot set slot content directly, use the DOM APIs (appendChild, removeChild, etc...)")}})}}}static get metadata(){return Le}static set metadata(t){Le=t}static get styles(){return""}static get staticAreaStyles(){return""}static get dependencies(){return[]}static getUniqueDependencies(){if(!Ot.has(this)){const t=this.dependencies.filter((s,n,r)=>r.indexOf(s)===n);Ot.set(this,t)}return Ot.get(this)}static whenDependenciesDefined(){return Promise.all(this.getUniqueDependencies().map(t=>t.define()))}static async onDefine(){return Promise.resolve()}static async define(){await gr(),await Promise.all([this.whenDependenciesDefined(),this.onDefine()]);const t=this.getMetadata().getTag(),s=this.getMetadata().getAltTag(),n=Js(t),r=customElements.get(t);return r&&!n?Ys(t):r||(this._generateAccessors(),ae(t),window.customElements.define(t,this),s&&!customElements.get(s)&&(ae(s),window.customElements.define(s,Wr(this,()=>{console.log(`The ${s} tag is deprecated and will be removed in the next release, please use ${t} instead.`)})))),this}static getMetadata(){if(this.hasOwnProperty("_metadata"))return this._metadata;const t=[this.metadata];let s=this;for(;s!==L;)s=Object.getPrototypeOf(s),t.unshift(s.metadata);const n=Zt({},...t);return this._metadata=new vr(n),this._metadata}}/**
10
10
  * @license
11
11
  * Copyright 2017 Google LLC
12
12
  * SPDX-License-Identifier: BSD-3-Clause
@@ -62,5 +62,5 @@
62
62
  font-style: bold;
63
63
  font-weight: 900;
64
64
  src: local('72Black'),
65
- url(https://sdk.openui5.org.com/resources/sap/ui/core/themes/sap_horizon/fonts/72-Black.woff2?ui5-webcomponents) format("woff2");
65
+ url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_horizon/fonts/72-Black.woff2?ui5-webcomponents) format("woff2");
66
66
  }
@@ -1,6 +1,7 @@
1
1
  import { registerFeature } from "../FeaturesRegistry.js";
2
2
  import { isF6Next, isF6Previous } from "../Keys.js";
3
3
  import { getFirstFocusableElement } from "../util/FocusableElements.js";
4
+ import getFastNavigationGroups from "../util/getFastNavigationGroups.js";
4
5
 
5
6
  class F6Navigation {
6
7
  init() {
@@ -17,6 +18,7 @@ class F6Navigation {
17
18
  async _keydownHandler(event) {
18
19
  if (isF6Next(event)) {
19
20
  this.updateGroups();
21
+
20
22
  if (this.groups.length < 1) {
21
23
  return;
22
24
  }
@@ -42,6 +44,7 @@ class F6Navigation {
42
44
 
43
45
  if (isF6Previous(event)) {
44
46
  this.updateGroups();
47
+
45
48
  if (this.groups.length < 1) {
46
49
  return;
47
50
  }
@@ -84,14 +87,12 @@ class F6Navigation {
84
87
 
85
88
  updateGroups() {
86
89
  this.setSelectedGroup(document.activeElement);
87
- this.setGroups();
88
- }
89
-
90
- setGroups() {
91
- this.groups = Array.from(document.querySelectorAll("[data-sap-ui-fastnavgroup='true']")).filter(group => group.clientWidth && window.getComputedStyle(group).visibility !== "hidden");
90
+ this.groups = getFastNavigationGroups(document.body);
92
91
  }
93
92
 
94
93
  setSelectedGroup(element) {
94
+ element = this.deepActive(element);
95
+
95
96
  while (element && element.getAttribute("data-sap-ui-fastnavgroup") !== "true" && element !== document.querySelector("html")) {
96
97
  element = element.parentElement ? element.parentNode : element.parentNode.host;
97
98
  }
@@ -99,6 +100,14 @@ class F6Navigation {
99
100
  this.selectedGroup = element;
100
101
  }
101
102
 
103
+ deepActive(element) {
104
+ if (element.shadowRoot) {
105
+ return this.deepActive(element.shadowRoot);
106
+ }
107
+
108
+ return element.activeElement;
109
+ }
110
+
102
111
  destroy() {
103
112
  this.removeEventListeners();
104
113
  }
@@ -1,10 +1,10 @@
1
1
  const VersionInfo = {
2
- version: "1.7.1",
2
+ version: "1.8.0",
3
3
  major: 1,
4
- minor: 7,
5
- patch: 1,
4
+ minor: 8,
5
+ patch: 0,
6
6
  suffix: "",
7
7
  isNext: false,
8
- buildTime: 1662639089,
8
+ buildTime: 1664784291,
9
9
  };
10
10
  export default VersionInfo;
@@ -1,5 +1,5 @@
1
1
  export default {
2
2
  packageName: "@ui5/webcomponents-base",
3
3
  fileName: "FontFace.css",
4
- content: `@font-face{font-family:"72";font-style:normal;font-weight:400;src:local("72"),url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Regular.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:"72full";font-style:normal;font-weight:400;src:local('72-full'),url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Regular-full.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:"72";font-style:normal;font-weight:700;src:local('72-Bold'),url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:"72full";font-style:normal;font-weight:700;src:local('72-Bold-full'),url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold-full.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:'72-Bold';font-style:normal;src:local('72-Bold'),url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:'72-Boldfull';font-style:normal;src:url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold-full.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:'72-Light';font-style:normal;src:local('72-Light'),url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Light.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:'72-Lightfull';font-style:normal;src:url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Light-full.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:"72Black";font-style:bold;font-weight:900;src:local('72Black'),url(https://sdk.openui5.org.com/resources/sap/ui/core/themes/sap_horizon/fonts/72-Black.woff2?ui5-webcomponents) format("woff2")}`
4
+ content: `@font-face{font-family:"72";font-style:normal;font-weight:400;src:local("72"),url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Regular.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:"72full";font-style:normal;font-weight:400;src:local('72-full'),url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Regular-full.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:"72";font-style:normal;font-weight:700;src:local('72-Bold'),url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:"72full";font-style:normal;font-weight:700;src:local('72-Bold-full'),url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold-full.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:'72-Bold';font-style:normal;src:local('72-Bold'),url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:'72-Boldfull';font-style:normal;src:url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold-full.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:'72-Light';font-style:normal;src:local('72-Light'),url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Light.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:'72-Lightfull';font-style:normal;src:url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Light-full.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:"72Black";font-style:bold;font-weight:900;src:local('72Black'),url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_horizon/fonts/72-Black.woff2?ui5-webcomponents) format("woff2")}`
5
5
  };
@@ -0,0 +1,63 @@
1
+ let groups = [];
2
+
3
+ const isFastNavGroupElemenet = $el => {
4
+ return $el.getAttribute("data-sap-ui-fastnavgroup") === "true";
5
+ };
6
+
7
+ const isElementVisible = $el => {
8
+ const style = window.getComputedStyle($el);
9
+
10
+ return style.width !== "0px"
11
+ && style.height !== "0px"
12
+ && style.opacity !== "0"
13
+ && style.display !== "none"
14
+ && style.visibility !== "hidden";
15
+ };
16
+
17
+ const findFastNavigationGroups = (container, startFromContainer) => {
18
+ let child,
19
+ assignedElements,
20
+ index = 0;
21
+
22
+ if (!isElementVisible(container)) {
23
+ return;
24
+ }
25
+
26
+ if (isFastNavGroupElemenet(container)) {
27
+ groups.push(container);
28
+ }
29
+
30
+ if (container.shadowRoot) {
31
+ child = container.shadowRoot.firstChild;
32
+ } else if (container.assignedNodes && container.assignedNodes()) {
33
+ assignedElements = container.assignedNodes();
34
+ child = assignedElements[0];
35
+ } else if (startFromContainer) {
36
+ child = container;
37
+ } else {
38
+ child = container.firstElementChild;
39
+ }
40
+
41
+ while (child) {
42
+ const originalChild = child;
43
+ if (!child) {
44
+ return;
45
+ }
46
+
47
+ if (child.nodeType === 1) {
48
+ findFastNavigationGroups(child, false);
49
+ }
50
+
51
+ child = assignedElements && assignedElements.length ? assignedElements[++index] : originalChild.nextElementSibling;
52
+ }
53
+ };
54
+
55
+ const getFastNavigationGroups = container => {
56
+ groups = [];
57
+
58
+ findFastNavigationGroups(container, true);
59
+
60
+ return groups;
61
+ };
62
+
63
+ export default getFastNavigationGroups;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ui5/webcomponents-base",
3
- "version": "1.7.1",
3
+ "version": "1.8.0",
4
4
  "description": "UI5 Web Components: webcomponents.base",
5
5
  "author": "SAP SE (https://www.sap.com)",
6
6
  "license": "Apache-2.0",
@@ -36,8 +36,8 @@
36
36
  "devDependencies": {
37
37
  "@buxlabs/amd-to-es6": "0.16.1",
38
38
  "@openui5/sap.ui.core": "1.101.0",
39
- "@ui5/webcomponents-tools": "1.7.1",
40
- "chromedriver": "104.0.0",
39
+ "@ui5/webcomponents-tools": "1.8.0",
40
+ "chromedriver": "105.0.1",
41
41
  "clean-css": "^5.2.2",
42
42
  "copy-and-watch": "^0.1.5",
43
43
  "cross-env": "^7.0.3",
package/src/Boot.js CHANGED
@@ -33,10 +33,14 @@ const boot = async () => {
33
33
  registerCurrentRuntime();
34
34
 
35
35
  const OpenUI5Support = getFeature("OpenUI5Support");
36
+ const isOpenUI5Loaded = OpenUI5Support ? OpenUI5Support.isLoaded() : false;
36
37
  const F6Navigation = getFeature("F6Navigation");
38
+
37
39
  if (OpenUI5Support) {
38
40
  await OpenUI5Support.init();
39
- } else if (F6Navigation) {
41
+ }
42
+
43
+ if (F6Navigation && !isOpenUI5Loaded) {
40
44
  F6Navigation.init();
41
45
  }
42
46
 
package/src/Keys.js CHANGED
@@ -215,7 +215,7 @@ const isF6Next = event => ((event.key ? event.key === "F6" : event.keyCode === K
215
215
  || ((event.key ? (event.key === "ArrowDown" || event.key === "Down") : event.keyCode === KeyCodes.ARROW_DOWN) && checkModifierKeys(event, true, true, false));
216
216
 
217
217
  const isF6Previous = event => ((event.key ? event.key === "F6" : event.keyCode === KeyCodes.F6) && checkModifierKeys(event, false, false, true))
218
- || ((event.key ? (event.key === "ArrowUp" || event.key === "Up") : event.keyCode === KeyCodes.ARROW_Up) && checkModifierKeys(event, true, true, false));
218
+ || ((event.key ? (event.key === "ArrowUp" || event.key === "Up") : event.keyCode === KeyCodes.ARROW_UP) && checkModifierKeys(event, true, true, false));
219
219
 
220
220
  const isF7 = event => (event.key ? event.key === "F7" : event.keyCode === KeyCodes.F7) && !hasModifierKeys(event);
221
221
 
@@ -16,6 +16,7 @@ class StaticAreaItem extends HTMLElement {
16
16
  super();
17
17
  this._rendered = false;
18
18
  this.attachShadow({ mode: "open" });
19
+ this.pureTagName = "ui5-static-area-item";
19
20
  }
20
21
 
21
22
  /**
@@ -36,6 +37,7 @@ class StaticAreaItem extends HTMLElement {
36
37
  */
37
38
  update() {
38
39
  if (this._rendered) {
40
+ this.setAttribute(this.pureTagName, "");
39
41
  this._updateContentDensity();
40
42
  this._updateDirection();
41
43
  updateShadowRoot(this.ownerElement, true);
@@ -46,7 +46,7 @@ const _fillRegistry = bundleData => {
46
46
  };
47
47
 
48
48
  // set
49
- const registerIcon = (name, { pathData, ltr, accData, collection, packageName } = {}) => { // eslint-disable-line
49
+ const registerIcon = (name, { pathData, ltr, accData, collection, packageName, customTemplate, viewBox } = {}) => { // eslint-disable-line
50
50
  if (!collection) {
51
51
  collection = getEffectiveDefaultIconCollection();
52
52
  }
@@ -57,6 +57,8 @@ const registerIcon = (name, { pathData, ltr, accData, collection, packageName }
57
57
  ltr,
58
58
  accData,
59
59
  packageName,
60
+ customTemplate,
61
+ viewBox,
60
62
  });
61
63
  };
62
64
 
@@ -15,18 +15,12 @@ const M_ISO639_OLD_TO_NEW = {
15
15
  "in": "id",
16
16
  };
17
17
 
18
- const DEV_MODE = false;
19
-
20
18
  const _showAssetsWarningOnce = localeId => {
21
19
  if (warningShown) {
22
20
  return;
23
21
  }
24
22
 
25
- if (!DEV_MODE) {
26
- console.warn(`[LocaleData] Supported locale "${localeId}" not configured, import the "Assets.js" module from the webcomponents package you are using.`); /* eslint-disable-line */
27
- } else {
28
- console.warn(`[LocaleData] Note: in dev mode, CLDR assets might be disabled for performance reasons. Try running "ENABLE_CLDR=1 yarn start" to test CLDR assets.`); /* eslint-disable-line */
29
- }
23
+ console.warn(`[LocaleData] Supported locale "${localeId}" not configured, import the "Assets.js" module from the webcomponents package you are using.`); /* eslint-disable-line */
30
24
 
31
25
  warningShown = true;
32
26
  };
@@ -62,5 +62,5 @@
62
62
  font-style: bold;
63
63
  font-weight: 900;
64
64
  src: local('72Black'),
65
- url(https://sdk.openui5.org.com/resources/sap/ui/core/themes/sap_horizon/fonts/72-Black.woff2?ui5-webcomponents) format("woff2");
65
+ url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_horizon/fonts/72-Black.woff2?ui5-webcomponents) format("woff2");
66
66
  }
@@ -1,6 +1,7 @@
1
1
  import { registerFeature } from "../FeaturesRegistry.js";
2
2
  import { isF6Next, isF6Previous } from "../Keys.js";
3
3
  import { getFirstFocusableElement } from "../util/FocusableElements.js";
4
+ import getFastNavigationGroups from "../util/getFastNavigationGroups.js";
4
5
 
5
6
  class F6Navigation {
6
7
  init() {
@@ -17,6 +18,7 @@ class F6Navigation {
17
18
  async _keydownHandler(event) {
18
19
  if (isF6Next(event)) {
19
20
  this.updateGroups();
21
+
20
22
  if (this.groups.length < 1) {
21
23
  return;
22
24
  }
@@ -42,6 +44,7 @@ class F6Navigation {
42
44
 
43
45
  if (isF6Previous(event)) {
44
46
  this.updateGroups();
47
+
45
48
  if (this.groups.length < 1) {
46
49
  return;
47
50
  }
@@ -84,14 +87,12 @@ class F6Navigation {
84
87
 
85
88
  updateGroups() {
86
89
  this.setSelectedGroup(document.activeElement);
87
- this.setGroups();
88
- }
89
-
90
- setGroups() {
91
- this.groups = Array.from(document.querySelectorAll("[data-sap-ui-fastnavgroup='true']")).filter(group => group.clientWidth && window.getComputedStyle(group).visibility !== "hidden");
90
+ this.groups = getFastNavigationGroups(document.body);
92
91
  }
93
92
 
94
93
  setSelectedGroup(element) {
94
+ element = this.deepActive(element);
95
+
95
96
  while (element && element.getAttribute("data-sap-ui-fastnavgroup") !== "true" && element !== document.querySelector("html")) {
96
97
  element = element.parentElement ? element.parentNode : element.parentNode.host;
97
98
  }
@@ -99,6 +100,14 @@ class F6Navigation {
99
100
  this.selectedGroup = element;
100
101
  }
101
102
 
103
+ deepActive(element) {
104
+ if (element.shadowRoot) {
105
+ return this.deepActive(element.shadowRoot);
106
+ }
107
+
108
+ return element.activeElement;
109
+ }
110
+
102
111
  destroy() {
103
112
  this.removeEventListeners();
104
113
  }
@@ -0,0 +1,63 @@
1
+ let groups = [];
2
+
3
+ const isFastNavGroupElemenet = $el => {
4
+ return $el.getAttribute("data-sap-ui-fastnavgroup") === "true";
5
+ };
6
+
7
+ const isElementVisible = $el => {
8
+ const style = window.getComputedStyle($el);
9
+
10
+ return style.width !== "0px"
11
+ && style.height !== "0px"
12
+ && style.opacity !== "0"
13
+ && style.display !== "none"
14
+ && style.visibility !== "hidden";
15
+ };
16
+
17
+ const findFastNavigationGroups = (container, startFromContainer) => {
18
+ let child,
19
+ assignedElements,
20
+ index = 0;
21
+
22
+ if (!isElementVisible(container)) {
23
+ return;
24
+ }
25
+
26
+ if (isFastNavGroupElemenet(container)) {
27
+ groups.push(container);
28
+ }
29
+
30
+ if (container.shadowRoot) {
31
+ child = container.shadowRoot.firstChild;
32
+ } else if (container.assignedNodes && container.assignedNodes()) {
33
+ assignedElements = container.assignedNodes();
34
+ child = assignedElements[0];
35
+ } else if (startFromContainer) {
36
+ child = container;
37
+ } else {
38
+ child = container.firstElementChild;
39
+ }
40
+
41
+ while (child) {
42
+ const originalChild = child;
43
+ if (!child) {
44
+ return;
45
+ }
46
+
47
+ if (child.nodeType === 1) {
48
+ findFastNavigationGroups(child, false);
49
+ }
50
+
51
+ child = assignedElements && assignedElements.length ? assignedElements[++index] : originalChild.nextElementSibling;
52
+ }
53
+ };
54
+
55
+ const getFastNavigationGroups = container => {
56
+ groups = [];
57
+
58
+ findFastNavigationGroups(container, true);
59
+
60
+ return groups;
61
+ };
62
+
63
+ export default getFastNavigationGroups;