@ui5/webcomponents-base 1.10.4-rc.0 → 1.11.0-rc.1

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.
Files changed (66) hide show
  1. package/.eslintignore +1 -0
  2. package/CHANGELOG.md +22 -0
  3. package/dist/Boot.js +4 -0
  4. package/dist/Boot.js.map +1 -1
  5. package/dist/Device.js +109 -34
  6. package/dist/Device.js.map +1 -1
  7. package/dist/InitialConfiguration.js +1 -1
  8. package/dist/InitialConfiguration.js.map +1 -1
  9. package/dist/UI5Element.d.ts +2 -1
  10. package/dist/UI5Element.js +3 -2
  11. package/dist/UI5Element.js.map +1 -1
  12. package/dist/api.json +1 -1
  13. package/dist/assets/bundle.esm.25073731.js +56 -0
  14. package/dist/assets/test/pages/{i18n.html.fbd6a006.js → i18n.html.4b1c0bdb.js} +1 -1
  15. package/dist/assets/test/pages/{i18n_texts.html.fd5c77c9.js → i18n_texts.html.e98a417d.js} +1 -1
  16. package/dist/delegate/ResizeHandler.d.ts +2 -1
  17. package/dist/delegate/ResizeHandler.js +3 -1
  18. package/dist/delegate/ResizeHandler.js.map +1 -1
  19. package/dist/features/F6Navigation.d.ts +3 -0
  20. package/dist/features/F6Navigation.js +77 -38
  21. package/dist/features/F6Navigation.js.map +1 -1
  22. package/dist/generated/VersionInfo.js +5 -5
  23. package/dist/generated/css/BusyIndicator.css.d.ts +3 -0
  24. package/dist/generated/css/BusyIndicator.css.js +7 -5
  25. package/dist/generated/css/BusyIndicator.css.js.map +1 -0
  26. package/dist/generated/css/FontFace.css.d.ts +3 -0
  27. package/dist/generated/css/FontFace.css.js +7 -5
  28. package/dist/generated/css/FontFace.css.js.map +1 -0
  29. package/dist/generated/css/OverrideFontFace.css.d.ts +3 -0
  30. package/dist/generated/css/OverrideFontFace.css.js +7 -5
  31. package/dist/generated/css/OverrideFontFace.css.js.map +1 -0
  32. package/dist/generated/css/SystemCSSVars.css.d.ts +3 -0
  33. package/dist/generated/css/SystemCSSVars.css.js +7 -5
  34. package/dist/generated/css/SystemCSSVars.css.js.map +1 -0
  35. package/dist/getSharedResource.js +9 -1
  36. package/dist/getSharedResource.js.map +1 -1
  37. package/dist/global.d.ts +0 -6
  38. package/dist/test/pages/AllTestElements.html +1 -1
  39. package/dist/test/pages/Configuration.html +1 -1
  40. package/dist/test/pages/ConfigurationScript.html +1 -1
  41. package/dist/test/pages/WithComplexTemplate.html +1 -1
  42. package/dist/test/pages/i18n.html +2 -2
  43. package/dist/test/pages/i18n_texts.html +2 -2
  44. package/dist/theming/CustomStyle.js +7 -5
  45. package/dist/theming/CustomStyle.js.map +1 -1
  46. package/dist/util/FocusableElements.js +11 -2
  47. package/dist/util/FocusableElements.js.map +1 -1
  48. package/dist/util/getClassCopy.d.ts +1 -1
  49. package/lib/generate-styles/index.js +10 -5
  50. package/package-scripts.js +8 -4
  51. package/package.json +3 -3
  52. package/src/Boot.ts +4 -0
  53. package/src/Device.ts +113 -34
  54. package/src/InitialConfiguration.ts +1 -1
  55. package/src/UI5Element.ts +3 -2
  56. package/src/delegate/ResizeHandler.ts +7 -2
  57. package/src/features/F6Navigation.ts +98 -44
  58. package/src/generated/css/BusyIndicator.css.ts +9 -0
  59. package/src/generated/css/FontFace.css.ts +9 -0
  60. package/src/generated/css/OverrideFontFace.css.ts +9 -0
  61. package/src/generated/css/SystemCSSVars.css.ts +9 -0
  62. package/src/getSharedResource.ts +10 -1
  63. package/src/global.d.ts +0 -6
  64. package/src/theming/CustomStyle.ts +7 -5
  65. package/src/util/FocusableElements.ts +12 -2
  66. package/dist/assets/bundle.esm.973f023c.js +0 -56
@@ -3,6 +3,7 @@ import { isF6Next, isF6Previous } from "../Keys.js";
3
3
  import { instanceOfUI5Element } from "../UI5Element.js";
4
4
  import { getFirstFocusableElement } from "../util/FocusableElements.js";
5
5
  import getFastNavigationGroups from "../util/getFastNavigationGroups.js";
6
+ import isElementClickable from "../util/isElementClickable.js";
6
7
 
7
8
  class F6Navigation {
8
9
  static _instance: F6Navigation;
@@ -19,56 +20,61 @@ class F6Navigation {
19
20
  document.addEventListener("keydown", this.keydownHandler);
20
21
  }
21
22
 
22
- async _keydownHandler(event: KeyboardEvent) {
23
- if (isF6Next(event)) {
24
- this.updateGroups();
23
+ async groupElementToFocus(nextElement: HTMLElement) {
24
+ const nextElementDomRef = instanceOfUI5Element(nextElement) ? nextElement.getDomRef() : nextElement;
25
25
 
26
- if (this.groups.length < 1) {
27
- return;
26
+ if (nextElementDomRef) {
27
+ if (isElementClickable(nextElementDomRef)) {
28
+ return nextElementDomRef;
28
29
  }
29
30
 
30
- event.preventDefault();
31
+ const elementToFocus = await getFirstFocusableElement(nextElementDomRef);
31
32
 
32
- let nextIndex = -1;
33
- let nextElement;
34
- if (this.selectedGroup) {
35
- nextIndex = this.groups.indexOf(this.selectedGroup);
33
+ if (elementToFocus) {
34
+ return elementToFocus;
36
35
  }
36
+ }
37
+ }
38
+
39
+ async findNextFocusableGroupElement(currentIndex: number) {
40
+ let elementToFocus;
37
41
 
38
- if (nextIndex > -1) {
39
- if (nextIndex + 1 >= this.groups.length) {
40
- nextElement = this.groups[0];
42
+ /* eslint-disable no-await-in-loop */
43
+ for (let index = 0; index < this.groups.length; index++) {
44
+ let nextElement;
45
+
46
+ if (currentIndex > -1) {
47
+ if (currentIndex + 1 >= this.groups.length) {
48
+ currentIndex = 0;
49
+ nextElement = this.groups[currentIndex];
41
50
  } else {
42
- nextElement = this.groups[nextIndex + 1];
51
+ currentIndex += 1;
52
+ nextElement = this.groups[currentIndex];
43
53
  }
44
54
  } else {
45
- nextElement = this.groups[0];
55
+ currentIndex = 0;
56
+ nextElement = this.groups[currentIndex];
46
57
  }
47
58
 
48
- const nextElementDomRef = instanceOfUI5Element(nextElement) ? nextElement.getDomRef() : nextElement;
59
+ elementToFocus = await this.groupElementToFocus(nextElement);
49
60
 
50
- if (nextElementDomRef) {
51
- const elementToFocus = await getFirstFocusableElement(nextElementDomRef, true);
52
- elementToFocus?.focus();
61
+ if (elementToFocus) {
62
+ break;
53
63
  }
54
64
  }
65
+ /* eslint-enable no-await-in-loop */
55
66
 
56
- if (isF6Previous(event)) {
57
- this.updateGroups();
58
-
59
- if (this.groups.length < 1) {
60
- return;
61
- }
67
+ return elementToFocus;
68
+ }
62
69
 
63
- event.preventDefault();
70
+ async findPreviousFocusableGroupElement(currentIndex: number) {
71
+ let elementToFocus;
64
72
 
65
- let nextIndex = -1;
73
+ /* eslint-disable no-await-in-loop */
74
+ for (let index = 0; index < this.groups.length; index++) {
66
75
  let nextElement;
67
- if (this.selectedGroup) {
68
- nextIndex = this.groups.indexOf(this.selectedGroup);
69
- }
70
76
 
71
- if (nextIndex > 0) {
77
+ if (currentIndex > 0) {
72
78
  // Handle the situation where the first focusable element of two neighbor groups is the same
73
79
  // For example:
74
80
  // <ui5-flexible-column-layout>
@@ -77,22 +83,70 @@ class F6Navigation {
77
83
  // </ui5-list>
78
84
  // </ui5-flexible-column-layout>
79
85
  // Here for both FCL & List the firstFoccusableElement is the same (the ui5-li)
86
+ const firstFocusable = await this.groupElementToFocus(this.groups[currentIndex - 1]);
87
+ const shouldSkipParent = firstFocusable === await this.groupElementToFocus(this.groups[currentIndex]);
80
88
 
81
- const firstFocusable = await getFirstFocusableElement(this.groups[nextIndex - 1], true);
82
- const shouldSkipParent = firstFocusable === await getFirstFocusableElement(this.groups[nextIndex], true);
89
+ currentIndex = shouldSkipParent ? currentIndex - 2 : currentIndex - 1;
83
90
 
84
- nextElement = this.groups[shouldSkipParent ? nextIndex - 2 : nextIndex - 1];
91
+ if (currentIndex < 0) {
92
+ currentIndex = this.groups.length - 1;
93
+ }
94
+
95
+ nextElement = this.groups[currentIndex];
85
96
  } else {
86
- nextElement = this.groups[this.groups.length - 1];
97
+ currentIndex = this.groups.length - 1;
98
+ nextElement = this.groups[currentIndex];
87
99
  }
88
100
 
89
- const nextElementDomRef = instanceOfUI5Element(nextElement) ? nextElement.getDomRef() : nextElement;
101
+ elementToFocus = await this.groupElementToFocus(nextElement);
90
102
 
91
- if (nextElementDomRef) {
92
- const elementToFocus = await getFirstFocusableElement(nextElementDomRef, true);
93
- elementToFocus?.focus();
103
+ if (elementToFocus) {
104
+ break;
94
105
  }
95
106
  }
107
+ /* eslint-enable no-await-in-loop */
108
+
109
+ return elementToFocus;
110
+ }
111
+
112
+ async _keydownHandler(event: KeyboardEvent) {
113
+ const forward = isF6Next(event);
114
+ const backward = isF6Previous(event);
115
+ if (!(forward || backward)) {
116
+ return;
117
+ }
118
+
119
+ this.updateGroups();
120
+
121
+ if (this.groups.length < 1) {
122
+ return;
123
+ }
124
+
125
+ event.preventDefault();
126
+
127
+ let elementToFocus;
128
+
129
+ if (this.groups.length === 0) {
130
+ elementToFocus = await this.groupElementToFocus(this.groups[0]);
131
+
132
+ return elementToFocus?.focus();
133
+ }
134
+
135
+ let currentIndex = -1;
136
+
137
+ if (this.selectedGroup) {
138
+ currentIndex = this.groups.indexOf(this.selectedGroup);
139
+ }
140
+
141
+ if (forward) {
142
+ elementToFocus = await this.findNextFocusableGroupElement(currentIndex);
143
+ }
144
+
145
+ if (backward) {
146
+ elementToFocus = await this.findPreviousFocusableGroupElement(currentIndex);
147
+ }
148
+
149
+ elementToFocus?.focus();
96
150
  }
97
151
 
98
152
  removeEventListeners() {
@@ -109,19 +163,19 @@ class F6Navigation {
109
163
  let element: Element | null | ParentNode = this.deepActive(root);
110
164
 
111
165
  while (element && (element as Element).getAttribute("data-sap-ui-fastnavgroup") !== "true" && element !== htmlElement) {
112
- element = element.parentElement ? element.parentNode : (element.parentNode as ShadowRoot).host;
166
+ element = element.parentElement ? element.parentNode : (element.parentNode as ShadowRoot).host;
113
167
  }
114
168
 
115
169
  this.selectedGroup = element as HTMLElement;
116
- }
170
+ }
117
171
 
118
- deepActive(root: DocumentOrShadowRoot): Element | null {
172
+ deepActive(root: DocumentOrShadowRoot): Element | null {
119
173
  if (root.activeElement && root.activeElement.shadowRoot) {
120
- return this.deepActive(root.activeElement.shadowRoot);
174
+ return this.deepActive(root.activeElement.shadowRoot);
121
175
  }
122
176
 
123
177
  return root.activeElement;
124
- }
178
+ }
125
179
 
126
180
  destroy() {
127
181
  this.removeEventListeners();
@@ -0,0 +1,9 @@
1
+ import type { StyleData } from "../../types.js";
2
+
3
+ const styleData: StyleData = {
4
+ packageName: "@ui5/webcomponents-base",
5
+ fileName: "BusyIndicator.css",
6
+ content: `.busy-indicator-wrapper{position:relative;height:100%;width:100%}.busy-indicator-overlay{display:var(--ui5_web_components_busy_indicator_display);position:absolute;inset:0;background:var(--ui5_web_components_busy_indicator_background-color);z-index:99}.busy-indicator-busy-area{display:var(--ui5_web_components_busy_indicator_display);position:absolute;z-index:99;inset:0;justify-content:center;align-items:center;background-color:inherit;flex-direction:column;color:var(--_ui5_busy_indicator_color)}:host([__is-busy]) .busy-indicator-wrapper>:not(.busy-indicator-busy-area):not(.busy-indicator-overlay):not([busy-indicator-before-span]){--ui5_web_components_busy_indicator_display:none}.busy-indicator-busy-area:focus{outline:var(--_ui5_busy_indicator_focus_outline);outline-offset:-.125rem}.busy-indicator-circle{width:1rem;height:1rem;display:inline-block;background-color:currentColor;border-radius:50%}.circle-animation-0{animation:grow 1.6s infinite cubic-bezier(.32,.06,.85,1.11)}.circle-animation-1{animation:grow 1.6s infinite cubic-bezier(.32,.06,.85,1.11);animation-delay:.2s}.circle-animation-2{animation:grow 1.6s infinite cubic-bezier(.32,.06,.85,1.11);animation-delay:.4s}.sapUiLocalBusy{--ui5_web_components_busy_indicator_display:none}.busy-indicator-wrapper [ui5-busy-indicator]{display:none}@keyframes grow{0%,100%,50%{-webkit-transform:scale(.5);-moz-transform:scale(.5);-ms-transform:scale(.5);transform:scale(.5)}25%{-webkit-transform:scale(1);-moz-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}}`,
7
+ };
8
+
9
+ export default styleData;
@@ -0,0 +1,9 @@
1
+ import type { StyleData } from "../../types.js";
2
+
3
+ const styleData: StyleData = {
4
+ packageName: "@ui5/webcomponents-base",
5
+ fileName: "FontFace.css",
6
+ 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")}`,
7
+ };
8
+
9
+ export default styleData;
@@ -0,0 +1,9 @@
1
+ import type { StyleData } from "../../types.js";
2
+
3
+ const styleData: StyleData = {
4
+ packageName: "@ui5/webcomponents-base",
5
+ fileName: "OverrideFontFace.css",
6
+ 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')}`,
7
+ };
8
+
9
+ export default styleData;
@@ -0,0 +1,9 @@
1
+ import type { StyleData } from "../../types.js";
2
+
3
+ const styleData: StyleData = {
4
+ packageName: "@ui5/webcomponents-base",
5
+ fileName: "SystemCSSVars.css",
6
+ 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}`,
7
+ };
8
+
9
+ export default styleData;
@@ -1,6 +1,11 @@
1
1
  import getSingletonElementInstance from "./util/getSingletonElementInstance.js";
2
2
 
3
- const getSharedResourcesInstance = () => getSingletonElementInstance("ui5-shared-resources", document.head);
3
+ const getSharedResourcesInstance = (): Record<string, unknown> | null => {
4
+ if (typeof document === "undefined") {
5
+ return null;
6
+ }
7
+ return getSingletonElementInstance("ui5-shared-resources", document.head) as unknown as Record<string, unknown>;
8
+ };
4
9
 
5
10
  /**
6
11
  * Use this method to initialize/get resources that you would like to be shared among UI5 Web Components runtime instances.
@@ -15,6 +20,10 @@ const getSharedResource = <T>(namespace: string, initialValue: T): T => {
15
20
  const parts = namespace.split(".");
16
21
  let current = getSharedResourcesInstance() as Record<string, any>;
17
22
 
23
+ if (!current) {
24
+ return initialValue;
25
+ }
26
+
18
27
  for (let i = 0; i < parts.length; i++) {
19
28
  const part = parts[i];
20
29
  const lastPart = i === parts.length - 1;
package/src/global.d.ts CHANGED
@@ -1,5 +1,3 @@
1
- import { StyleData } from "./types.js";
2
-
3
1
  export {};
4
2
 
5
3
  declare global {
@@ -19,10 +17,6 @@ declare global {
19
17
  chrome: any;
20
18
  v8: any;
21
19
  }
22
- module "*.css.js" {
23
- const content: StyleData;
24
- export default content;
25
- }
26
20
 
27
21
  module "*generated/AssetParameters.js" {
28
22
  const DEFAULT_THEME: string;
@@ -4,22 +4,22 @@ import EventProvider from "../EventProvider.js";
4
4
 
5
5
  type CustomCSSChangeCallback = (tag: string) => void;
6
6
 
7
- const eventProvider = getSharedResource("CustomStyle.eventProvider", new EventProvider<string, void>());
7
+ const getEventProvider = () => getSharedResource("CustomStyle.eventProvider", new EventProvider<string, void>());
8
8
  const CUSTOM_CSS_CHANGE = "CustomCSSChange";
9
9
 
10
10
  const attachCustomCSSChange = (listener: CustomCSSChangeCallback) => {
11
- eventProvider.attachEvent(CUSTOM_CSS_CHANGE, listener);
11
+ getEventProvider().attachEvent(CUSTOM_CSS_CHANGE, listener);
12
12
  };
13
13
 
14
14
  const detachCustomCSSChange = (listener: CustomCSSChangeCallback) => {
15
- eventProvider.detachEvent(CUSTOM_CSS_CHANGE, listener);
15
+ getEventProvider().detachEvent(CUSTOM_CSS_CHANGE, listener);
16
16
  };
17
17
 
18
18
  const fireCustomCSSChange = (tag: string) => {
19
- return eventProvider.fireEvent(CUSTOM_CSS_CHANGE, tag);
19
+ return getEventProvider().fireEvent(CUSTOM_CSS_CHANGE, tag);
20
20
  };
21
21
 
22
- const customCSSFor = getSharedResource<Record<string, Array<string>>>("CustomStyle.customCSSFor", {});
22
+ const getCustomCSSFor = () => getSharedResource<Record<string, Array<string>>>("CustomStyle.customCSSFor", {});
23
23
 
24
24
  // Listen to the eventProvider, in case other copies of this CustomStyle module fire this
25
25
  // event, and this copy would therefore need to reRender the ui5 webcomponents; but
@@ -32,6 +32,7 @@ attachCustomCSSChange((tag: string) => {
32
32
  });
33
33
 
34
34
  const addCustomCSS = (tag: string, css: string) => {
35
+ const customCSSFor = getCustomCSSFor();
35
36
  if (!customCSSFor[tag]) {
36
37
  customCSSFor[tag] = [];
37
38
  }
@@ -51,6 +52,7 @@ const addCustomCSS = (tag: string, css: string) => {
51
52
  };
52
53
 
53
54
  const getCustomCSS = (tag: string) => {
55
+ const customCSSFor = getCustomCSSFor();
54
56
  return customCSSFor[tag] ? customCSSFor[tag].join("") : "";
55
57
  };
56
58
 
@@ -30,12 +30,15 @@ const isElemFocusable = (el: HTMLElement) => {
30
30
 
31
31
  const findFocusableElement = async (container: HTMLElement, forward: boolean, startFromContainer?: boolean): FocusableElementPromise => {
32
32
  let child: HTMLElement | undefined;
33
+ let assignedElements;
34
+ let currentIndex = -1;
33
35
 
34
36
  if (container.shadowRoot) {
35
37
  child = forward ? container.shadowRoot.firstChild as HTMLElement : container.shadowRoot.lastChild as HTMLElement;
36
38
  } else if (container instanceof HTMLSlotElement && container.assignedNodes()) {
37
- const assignedElements = container.assignedNodes();
38
- child = forward ? assignedElements[0] as HTMLElement : assignedElements[assignedElements.length - 1] as HTMLElement;
39
+ assignedElements = container.assignedNodes();
40
+ currentIndex = forward ? 0 : assignedElements.length - 1;
41
+ child = assignedElements[currentIndex] as HTMLElement;
39
42
  } else if (startFromContainer) {
40
43
  child = container;
41
44
  } else {
@@ -69,6 +72,13 @@ const findFocusableElement = async (container: HTMLElement, forward: boolean, st
69
72
  }
70
73
 
71
74
  child = forward ? originalChild.nextSibling as HTMLElement : originalChild.previousSibling as HTMLElement;
75
+
76
+ // If the child element is not part of the currently assigned element,
77
+ // we have to check the next element assigned to the slot or continue with the next sibling of the slot,
78
+ // otherwise, the nextSibling is the next element inside the light DOM
79
+ if (assignedElements && !assignedElements[currentIndex].contains(child)) {
80
+ child = assignedElements[++currentIndex] as HTMLElement;
81
+ }
72
82
  }
73
83
 
74
84
  /* eslint-enable no-await-in-loop */
@@ -1,56 +0,0 @@
1
- const qs=function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))n(r);new MutationObserver(r=>{for(const o of r)if(o.type==="childList")for(const i of o.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&n(i)}).observe(document,{childList:!0,subtree:!0});function s(r){const o={};return r.integrity&&(o.integrity=r.integrity),r.referrerpolicy&&(o.referrerPolicy=r.referrerpolicy),r.crossorigin==="use-credentials"?o.credentials="include":r.crossorigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function n(r){if(r.ep)return;r.ep=!0;const o=s(r);fetch(r.href,o)}};qs();const we={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"]}},he=we.themes.default,fe=we.languages.default,$=we.locales.default,lt=we.locales.all;var Jt=()=>{const t=navigator.languages,e=()=>navigator.language;return t&&t[0]||e()||fe},Xt={},Yt=Xt.hasOwnProperty,Gs=Xt.toString,Qt=Yt.toString,Ks=Qt.call(Object),ut=function(t){var e,s;return!t||Gs.call(t)!=="[object Object]"?!1:(e=Object.getPrototypeOf(t),e?(s=Yt.call(e,"constructor")&&e.constructor,typeof s=="function"&&Qt.call(s)===Ks):!0)},Js=Object.create(null),es=function(t,e,s,n){var r,o,i,c,a,l,f=arguments[2]||{},u=3,d=arguments.length,h=arguments[0]||!1,p=arguments[1]?void 0:Js;for(typeof f!="object"&&typeof f!="function"&&(f={});u<d;u++)if((a=arguments[u])!=null)for(c in a)r=f[c],i=a[c],!(c==="__proto__"||f===i)&&(h&&i&&(ut(i)||(o=Array.isArray(i)))?(o?(o=!1,l=r&&Array.isArray(r)?r:[]):l=r&&ut(r)?r:{},f[c]=es(h,arguments[1],l,i)):i!==p&&(f[c]=i));return f};const Ye=function(t,e){return es(!0,!1,...arguments)},ts=new Map,Xs=(t,e)=>{ts.set(t,e)},b=t=>ts.get(t),Ys=t=>{const e=document.querySelector(`META[name="${t}"]`);return e&&e.getAttribute("content")},Qs=t=>{const e=Ys("sap-allowedThemeOrigins");return e&&e.split(",").some(s=>s==="*"||t===s.trim())},en=(t,e)=>{const s=new URL(t).pathname;return new URL(s,e).toString()},tn=t=>{let e,s;try{e=new URL(t);const n=e.origin;return e=e.toString(),e.startsWith(".")||e.startsWith("/")?s=new URL(e,window.location.href).toString():n&&Qs(n)?s=e.toString():s=en(e,window.location.href),s.endsWith("/")||(s=`${s}/`),`${s}UI5/`}catch{}};var We;(function(t){t.Full="full",t.Basic="basic",t.Minimal="minimal",t.None="none"})(We||(We={}));var sn=We;let dt=!1,_={animationMode:sn.Full,theme:he,themeRoot:void 0,rtl:void 0,language:void 0,calendarType:void 0,noConflict:!1,formatSettings:{},fetchDefaultLanguage:!1};const nn=()=>(C(),_.animationMode),rn=()=>(C(),_.theme),on=()=>(C(),_.themeRoot),an=()=>(C(),_.rtl),cn=()=>(C(),_.language),ln=()=>(C(),_.fetchDefaultLanguage),un=()=>(C(),_.noConflict),dn=()=>(C(),_.calendarType),hn=()=>(C(),_.formatSettings),pe=new Map;pe.set("true",!0);pe.set("false",!1);const fn=()=>{const t=document.querySelector("[data-ui5-config]")||document.querySelector("[data-id='sap-ui-config']");let e;if(t){try{e=JSON.parse(t.innerHTML)}catch{console.warn("Incorrect data-sap-ui-config format. Please use JSON")}e&&(_=Ye(_,e))}},pn=()=>{const t=new URLSearchParams(window.location.search);t.forEach((e,s)=>{const n=s.split("sap-").length;n===0||n===s.split("sap-ui-").length||ht(s,e,"sap")}),t.forEach((e,s)=>{!s.startsWith("sap-ui")||ht(s,e,"sap-ui")})},gn=t=>{const e=t.split("@")[1];return tn(e)},mn=(t,e)=>t==="theme"&&e.includes("@")?e.split("@")[0]:e,ht=(t,e,s)=>{const n=e.toLowerCase(),r=t.split(`${s}-`)[1];pe.has(e)&&(e=pe.get(n)),r==="theme"?(_.theme=mn(r,e),e&&e.includes("@")&&(_.themeRoot=gn(e))):_[r]=e},yn=()=>{const t=b("OpenUI5Support");if(!t||!t.isLoaded())return;const e=t.getConfigurationSettingsObject();_=Ye(_,e)},C=()=>{dt||(fn(),pn(),yn(),dt=!0)};class O{constructor(){this._eventRegistry=new Map}attachEvent(e,s){const n=this._eventRegistry,r=n.get(e);if(!Array.isArray(r)){n.set(e,[s]);return}r.includes(s)||r.push(s)}detachEvent(e,s){const n=this._eventRegistry,r=n.get(e);if(!r)return;const o=r.indexOf(s);o!==-1&&r.splice(o,1),r.length===0&&n.delete(e)}fireEvent(e,s){const r=this._eventRegistry.get(e);return r?r.map(o=>o.call(this,s)):[]}fireEventAsync(e,s){return Promise.all(this.fireEvent(e,s))}isHandlerAttached(e,s){const r=this._eventRegistry.get(e);return r?r.includes(s):!1}hasListeners(e){return!!this._eventRegistry.get(e)}}const ss=new O,ns="languageChange",rs=t=>{ss.attachEvent(ns,t)},_n=t=>ss.fireEventAsync(ns,t),ft=10;class wn{constructor(){this.list=[],this.lookup=new Set}add(e){this.lookup.has(e)||(this.list.push(e),this.lookup.add(e))}remove(e){!this.lookup.has(e)||(this.list=this.list.filter(s=>s!==e),this.lookup.delete(e))}shift(){const e=this.list.shift();if(e)return this.lookup.delete(e),e}isEmpty(){return this.list.length===0}isAdded(e){return this.lookup.has(e)}process(e){let s;const n=new Map;for(s=this.shift();s;){const r=n.get(s)||0;if(r>ft)throw new Error(`Web component processed too many times this task, max allowed is: ${ft}`);e(s),n.set(s,r+1),s=this.shift()}}}const os=(t,e=document.body)=>{let s=document.querySelector(t);return s||(s=document.createElement(t),e.insertBefore(s,e.firstChild))},vn=()=>os("ui5-shared-resources",document.head),R=(t,e)=>{const s=t.split(".");let n=vn();for(let r=0;r<s.length;r++){const o=s[r],i=r===s.length-1;Object.prototype.hasOwnProperty.call(n,o)||(n[o]=i?e:{}),n=n[o]}return n},An={version:"1.10.4-rc.0",major:1,minor:10,patch:4,suffix:"-rc.0",isNext:!1,buildTime:1674720596};let ae,Sn="";const Ee=new Map,K=R("Runtimes",[]),$n=()=>{if(ae===void 0){ae=K.length;const t=An;K.push({...t,alias:Sn,description:`Runtime ${ae} - ver ${t.version}`})}},is=()=>ae,bn=(t,e)=>{const s=`${t},${e}`;if(Ee.has(s))return Ee.get(s);const n=K[t],r=K[e];if(!n||!r)throw new Error("Invalid runtime index supplied");if(n.isNext||r.isNext)return n.buildTime-r.buildTime;const o=n.major-r.major;if(o)return o;const i=n.minor-r.minor;if(i)return i;const c=n.patch-r.patch;if(c)return c;const l=new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"}).compare(n.suffix,r.suffix);return Ee.set(s,l),l},Cn=()=>K,as=R("Tags",new Map),Qe=new Set;let P=new Map,Te;const cs=-1,En=t=>{Qe.add(t),as.set(t,is())},Tn=t=>Qe.has(t),Ln=()=>[...Qe.values()],Mn=t=>{let e=as.get(t);e===void 0&&(e=cs),P.has(e)||P.set(e,new Set),P.get(e).add(t),Te||(Te=setTimeout(()=>{Pn(),P=new Map,Te=void 0},1e3))},Pn=()=>{const t=Cn(),e=is(),s=t[e];let n="Multiple UI5 Web Components instances detected.";t.length>1&&(n=`${n}
2
- Loading order (versions before 1.1.0 not listed): ${t.map(r=>`
3
- ${r.description}`).join("")}`),[...P.keys()].forEach(r=>{let o,i;r===cs?(o=1,i={description:"Older unknown runtime"}):(o=bn(e,r),i=t[r]);let c;o>0?c="an older":o<0?c="a newer":c="the same",n=`${n}
4
-
5
- "${s.description}" failed to define ${P.get(r).size} tag(s) as they were defined by a runtime of ${c} version "${i.description}": ${[...P.get(r)].sort().join(", ")}.`,o>0?n=`${n}
6
- WARNING! If your code uses features of the above web components, unavailable in ${i.description}, it might not work as expected!`:n=`${n}
7
- Since the above web components were defined by the same or newer version runtime, they should be compatible with your code.`}),n=`${n}
8
-
9
- To prevent other runtimes from defining tags that you use, consider using scoping or have third-party libraries use scoping: https://github.com/SAP/ui5-webcomponents/blob/main/docs/2-advanced/03-scoping.md.`,console.warn(n)},ls=new Set,In=t=>{ls.add(t)},xn=t=>ls.has(t),et=new Set,On=new O,H=new wn;let D,ce,Le,re;const us=async t=>{H.add(t),await Dn()},ds=t=>{On.fireEvent("beforeComponentRender",t),et.add(t),t._render()},Rn=t=>{H.remove(t),et.delete(t)},Dn=async()=>{re||(re=new Promise(t=>{window.requestAnimationFrame(()=>{H.process(ds),re=null,t(),Le||(Le=setTimeout(()=>{Le=void 0,H.isEmpty()&&Un()},200))})})),await re},Nn=()=>D||(D=new Promise(t=>{ce=t,window.requestAnimationFrame(()=>{H.isEmpty()&&(D=void 0,t())})}),D),kn=()=>{const t=Ln().map(e=>customElements.whenDefined(e));return Promise.all(t)},tt=async()=>{await kn(),await Nn()},Un=()=>{!H.isEmpty()||ce&&(ce(),ce=void 0,D=void 0)},ve=async t=>{et.forEach(e=>{const s=e.constructor,n=s.getMetadata().getTag(),r=xn(s),o=s.getMetadata().isLanguageAware(),i=s.getMetadata().isThemeAware();(!t||t.tag===n||t.rtlAware&&r||t.languageAware&&o||t.themeAware&&i)&&us(e)}),await tt()};let q,Ze;const st=()=>(q===void 0&&(q=cn()),q),Hn=async t=>{q!==t&&(q=t,await _n(t),await ve({languageAware:!0}))},Bn=t=>{Ze=t},Fn=()=>(Ze===void 0&&Bn(ln()),Ze),jn=/^((?:[A-Z]{2,3}(?:-[A-Z]{3}){0,3})|[A-Z]{4}|[A-Z]{5,8})(?:-([A-Z]{4}))?(?:-([A-Z]{2}|[0-9]{3}))?((?:-[0-9A-Z]{5,8}|-[0-9][0-9A-Z]{3})*)((?:-[0-9A-WYZ](?:-[0-9A-Z]{2,8})+)*)(?:-(X(?:-[0-9A-Z]{1,8})+))?$/i;class hs{constructor(e){const s=jn.exec(e.replace(/_/g,"-"));if(s===null)throw new Error(`The given language ${e} does not adhere to BCP-47.`);this.sLocaleId=e,this.sLanguage=s[1]||fe,this.sScript=s[2]||"",this.sRegion=s[3]||"",this.sVariant=s[4]&&s[4].slice(1)||null,this.sExtension=s[5]&&s[5].slice(1)||null,this.sPrivateUse=s[6]||null,this.sLanguage&&(this.sLanguage=this.sLanguage.toLowerCase()),this.sScript&&(this.sScript=this.sScript.toLowerCase().replace(/^[a-z]/,n=>n.toUpperCase())),this.sRegion&&(this.sRegion=this.sRegion.toUpperCase())}getLanguage(){return this.sLanguage}getScript(){return this.sScript}getRegion(){return this.sRegion}getVariant(){return this.sVariant}getVariantSubtags(){return this.sVariant?this.sVariant.split("-"):[]}getExtension(){return this.sExtension}getExtensionSubtags(){return this.sExtension?this.sExtension.slice(2).split("-"):[]}getPrivateUse(){return this.sPrivateUse}getPrivateUseSubtags(){return this.sPrivateUse?this.sPrivateUse.slice(2).split("-"):[]}hasPrivateUseSubtag(e){return this.getPrivateUseSubtags().indexOf(e)>=0}toString(){const e=[this.sLanguage];return this.sScript&&e.push(this.sScript),this.sRegion&&e.push(this.sRegion),this.sVariant&&e.push(this.sVariant),this.sExtension&&e.push(this.sExtension),this.sPrivateUse&&e.push(this.sPrivateUse),e.join("-")}}const Me=new Map,fs=t=>(Me.has(t)||Me.set(t,new hs(t)),Me.get(t)),pt=t=>{try{if(t&&typeof t=="string")return fs(t)}catch{}return new hs($)},qe=t=>{if(t)return pt(t);const e=st();return e?fs(e):pt(Jt())},Vn=/^((?:[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,gt=/(?:^|-)(saptrc|sappsd)(?:-|$)/i,zn={he:"iw",yi:"ji",nb:"no",sr:"sh"},Wn=t=>{let e;if(!t)return $;if(typeof t=="string"&&(e=Vn.exec(t.replace(/_/g,"-")))){let s=e[1].toLowerCase(),n=e[3]?e[3].toUpperCase():void 0;const r=e[2]?e[2].toLowerCase():void 0,o=e[4]?e[4].slice(1):void 0,i=e[6];return s=zn[s]||s,i&&(e=gt.exec(i))||o&&(e=gt.exec(o))?`en_US_${e[1].toLowerCase()}`:(s==="zh"&&!n&&(r==="hans"?n="CN":r==="hant"&&(n="TW")),s+(n?"_"+n+(o?"_"+o.replace("-","_"):""):""))}return $},Zn=t=>{if(!t)return $;if(t==="zh_HK")return"zh_TW";const e=t.lastIndexOf("_");return e>=0?t.slice(0,e):t!==$?$:""},mt=new Set,yt=new Set,nt=new Map,Pe=new Map,rt=new Map,qn=(t,e,s)=>{const n=`${t}/${e}`;rt.set(n,s)},_t=(t,e)=>{nt.set(t,e)},Gn=t=>nt.get(t),wt=(t,e)=>{const s=`${t}/${e}`;return rt.has(s)},Kn=(t,e)=>{const s=`${t}/${e}`,n=rt.get(s);return n&&!Pe.get(s)&&Pe.set(s,n(e)),Pe.get(s)},Jn=t=>{mt.has(t)||(console.warn(`[${t}]: Message bundle assets are not configured. Falling back to English texts.`,` Add \`import "${t}/dist/Assets.js"\` in your bundle and make sure your build tool supports dynamic imports and JSON imports. See section "Assets" in the documentation for more information.`),mt.add(t))},ps=async t=>{const e=qe().getLanguage(),s=qe().getRegion();let n=Wn(e+(s?`-${s}`:""));for(;n!==fe&&!wt(t,n);)n=Zn(n);const r=Fn();if(n===fe&&!r){_t(t,null);return}if(!wt(t,n)){Jn(t);return}try{const o=await Kn(t,n);_t(t,o)}catch(o){const i=o;yt.has(i.message)||(yt.add(i.message),console.error(i.message))}};rs(t=>{const e=[...nt.keys()];return Promise.all(e.map(ps))});const Xn=new Map,ge=new Map,Ie=new Map,vt=new Set;let At=!1;const Yn={iw:"he",ji:"yi",in:"id"},St=t=>{At||(console.warn(`[LocaleData] Supported locale "${t}" not configured, import the "Assets.js" module from the webcomponents package you are using.`),At=!0)},Qn=(t,e,s)=>{t=t&&Yn[t]||t,t==="no"&&(t="nb"),t==="zh"&&!e&&(s==="Hans"?e="CN":s==="Hant"&&(e="TW")),(t==="sh"||t==="sr"&&s==="Latn")&&(t="sr",e="Latn");let n=`${t}_${e}`;return lt.includes(n)||(n=t,lt.includes(n))?ge.has(n)?n:(St(n),$):$},$t=(t,e)=>{Xn.set(t,e)},er=t=>{if(!Ie.get(t)){const e=ge.get(t);if(!e)throw new Error(`CLDR data for locale ${t} is not loaded!`);Ie.set(t,e(t))}return Ie.get(t)},tr=async(t,e,s)=>{const n=Qn(t,e,s),r=b("OpenUI5Support");if(r){const o=r.getLocaleDataObject();if(o){$t(n,o);return}}try{const o=await er(n);$t(n,o)}catch(o){const i=o;vt.has(i.message)||(vt.add(i.message),console.error(i.message))}},sr=(t,e)=>{ge.set(t,e)};sr("en",async()=>(await fetch("https://sdk.openui5.org/1.103.0/resources/sap/ui/core/cldr/en.json")).json());rs(()=>{const t=qe();return tr(t.getLanguage(),t.getRegion(),t.getScript())});const gs=new Map,ms=new Map,ys=new Set,me=new Set,T=(t,e,s)=>{ms.set(`${t}/${e}`,s),ys.add(t),me.add(e)},_s=async(t,e)=>{const s=gs.get(`${t}_${e}`);if(s!==void 0)return s;if(!me.has(e)){const n=[...me.values()].join(", ");return console.warn(`You have requested a non-registered theme ${e} - falling back to ${he}. Registered themes are: ${n}`),bt(t,he)}return bt(t,e)},bt=async(t,e)=>{const s=ms.get(`${t}/${e}`);if(!s){console.error(`Theme [${e}] not registered for package [${t}]`);return}let n;try{n=await s(e)}catch(o){console.error(t,o.message);return}const r=n._||n;return gs.set(`${t}_${e}`,r),r},ws=()=>ys,nr=t=>me.has(t),Ct={"SAP-icons-TNT":"tnt",BusinessSuiteInAppSymbols:"business-suite",horizon:"SAP-icons-v5"},rr=(t,e)=>{const s=document.createElement("style");return s.type="text/css",e&&Object.entries(e).forEach(n=>s.setAttribute(...n)),s.textContent=t,document.head.appendChild(s),s},or=(t,e)=>{const s=document.createElement("link");return s.type="text/css",s.rel="stylesheet",e&&Object.entries(e).forEach(n=>s.setAttribute(...n)),s.href=t,document.head.appendChild(s),new Promise(n=>{s.addEventListener("load",n),s.addEventListener("error",n)})},Ae=(t,e)=>e?`${t}|${e}`:t,Se=(t,e,s="")=>{const n=typeof t=="string"?t:t.content;if(document.adoptedStyleSheets){const r=new CSSStyleSheet;r.replaceSync(n),r._ui5StyleId=Ae(e,s),document.adoptedStyleSheets=[...document.adoptedStyleSheets,r]}else{const r={};r[e]=s,rr(n,r)}},ir=(t,e,s="")=>{const n=typeof t=="string"?t:t.content;if(document.adoptedStyleSheets){const r=document.adoptedStyleSheets.find(o=>o._ui5StyleId===Ae(e,s));r&&r.replaceSync(n||"")}else{const r=document.querySelector(`head>style[${e}="${s}"]`);r&&(r.textContent=n||"")}},$e=(t,e="")=>document.adoptedStyleSheets?!!document.adoptedStyleSheets.find(s=>s._ui5StyleId===Ae(t,e)):!!document.querySelector(`head>style[${t}="${e}"]`),ar=(t,e="")=>{var s;if(document.adoptedStyleSheets)document.adoptedStyleSheets=document.adoptedStyleSheets.filter(n=>n._ui5StyleId!==Ae(t,e));else{const n=document.querySelector(`head > style[${t}="${e}"]`);(s=n==null?void 0:n.parentElement)==null||s.removeChild(n)}},vs=(t,e,s="")=>{$e(e,s)?ir(t,e,s):Se(t,e,s)},N=new Set,cr=()=>{let t=document.querySelector(".sapThemeMetaData-Base-baseLib")||document.querySelector(".sapThemeMetaData-UI5-sap-ui-core");if(t)return getComputedStyle(t).backgroundImage;t=document.createElement("span"),t.style.display="none",t.classList.add("sapThemeMetaData-Base-baseLib"),document.body.appendChild(t);let e=getComputedStyle(t).backgroundImage;return e==="none"&&(t.classList.add("sapThemeMetaData-UI5-sap-ui-core"),e=getComputedStyle(t).backgroundImage),document.body.removeChild(t),e},lr=t=>{const e=/\(["']?data:text\/plain;utf-8,(.*?)['"]?\)$/i.exec(t);if(e&&e.length>=2){let s=e[1];if(s=s.replace(/\\"/g,'"'),s.charAt(0)!=="{"&&s.charAt(s.length-1)!=="}")try{s=decodeURIComponent(s)}catch{N.has("decode")||(console.warn("Malformed theme metadata string, unable to decodeURIComponent"),N.add("decode"));return}try{return JSON.parse(s)}catch{N.has("parse")||(console.warn("Malformed theme metadata string, unable to parse JSON"),N.add("parse"))}}},ur=t=>{let e,s;try{e=t.Path.match(/\.([^.]+)\.css_variables$/)[1],s=t.Extends[0]}catch{N.has("object")||(console.warn("Malformed theme metadata Object",t),N.add("object"));return}return{themeName:e,baseThemeName:s}},Et=()=>{const t=cr();if(!t||t==="none")return;const e=lr(t);if(e)return ur(e)},dr=new O,hr="themeLoaded",fr=t=>dr.fireEvent(hr,t);let xe;const As=()=>(xe===void 0&&(xe=on()),xe),pr=t=>`${As()}Base/baseLib/${t}/css_variables.css`,gr=async t=>{const e=document.querySelector(`[sap-ui-webcomponents-theme="${t}"]`);e&&document.head.removeChild(e),await or(pr(t),{"sap-ui-webcomponents-theme":t})},J="@ui5/webcomponents-theming",mr=()=>ws().has(J),yr=async t=>{if(!mr())return;const e=await _s(J,t);e&&vs(e,"data-ui5-theme-properties",J)},_r=()=>{ar("data-ui5-theme-properties",J)},wr=async t=>{const s=[...ws()].map(async n=>{if(n===J)return;const r=await _s(n,t);r&&vs(r,"data-ui5-theme-properties",n)});return Promise.all(s)},vr=async t=>{var n;const e=Et();if(e)return e;const s=b("OpenUI5Support");if(s){if(s.cssVariablesLoaded())return{themeName:(n=s.getConfigurationSettingsObject())==null?void 0:n.theme,baseThemeName:""}}else if(As())return await gr(t),Et()},Ss=async t=>{const e=await vr(t);!e||t!==e.themeName?await yr(t):_r();const s=nr(t)?t:e&&e.baseThemeName;await wr(s||he),fr(t)};let k;const be=()=>(k===void 0&&(k=rn()),k),$s=async t=>{k!==t&&(k=t,await Ss(k),await ve({themeAware:!0}))},Ar=t=>be().startsWith(t),Sr=new Map;var ye;(function(t){t.v4="SAP-icons",t.v5="SAP-icons-v5"})(ye||(ye={}));const bs=()=>{const t=be(),e=Sr.get(t);return e||(Ar("sap_horizon")?ye.v5:ye.v4)},Tt=new Map,_e=R("SVGIcons.registry",new Map),Oe=R("SVGIcons.promises",new Map),Lt="ICON_NOT_FOUND",$r=async t=>{if(!Oe.has(t)){if(!Tt.has(t))throw new Error(`No loader registered for the ${t} icons collection. Probably you forgot to import the "AllIcons.js" module for the respective package.`);const e=Tt.get(t);Oe.set(t,e(t))}return Oe.get(t)},br=t=>{Object.keys(t.data).forEach(e=>{const s=t.data[e];Cr(e,{pathData:s.path||s.paths,ltr:s.ltr,accData:s.acc,collection:t.collection,packageName:t.packageName})})},Cr=(t,e)=>{e.collection||(e.collection=bs());const s=`${e.collection}/${t}`;_e.set(s,{pathData:e.pathData,ltr:e.ltr,accData:e.accData,packageName:e.packageName,customTemplate:e.customTemplate,viewBox:e.viewBox})},Er=t=>{t.startsWith("sap-icon://")&&(t=t.replace("sap-icon://",""));let e;[t,e]=t.split("/").reverse(),e=e||bs(),e=Lr(e),t=t.replace("icon-","");const s=`${e}/${t}`;return{name:t,collection:e,registryKey:s}},Re=async t=>{const{collection:e,registryKey:s}=Er(t);let n=Lt;try{n=await $r(e)}catch(r){console.error(r.message)}return n===Lt?n:(_e.has(s)||br(n),_e.get(s))},Tr=async()=>(await Re("edit"),await Re("tnt/arrow"),await Re("business-suite/3d"),Array.from(_e.keys())),Lr=t=>Ct[t]?Ct[t]:t,Mr=R("PopupUtilsData",{currentZIndex:100}),Mt=()=>Mr.currentZIndex,A=()=>{var t,e,s;return(s=(e=(t=window.sap)==null?void 0:t.ui)==null?void 0:e.getCore)==null?void 0:s.call(e)};class ot{static isLoaded(){return!!A()}static init(){const e=A();return e?new Promise(s=>{e.attachInit(()=>{window.sap.ui.require(["sap/ui/core/LocaleData","sap/ui/core/Popup"],(n,r)=>{r.setInitialZIndex(Mt()),s()})})}):Promise.resolve()}static getConfigurationSettingsObject(){const e=A();if(!e)return;const s=e.getConfiguration(),n=window.sap.ui.require("sap/ui/core/LocaleData");return{animationMode:s.getAnimationMode(),language:s.getLanguage(),theme:s.getTheme(),themeRoot:s.getThemeRoot(),rtl:s.getRTL(),calendarType:s.getCalendarType(),formatSettings:{firstDayOfWeek:n?n.getInstance(s.getLocale()).getFirstDayOfWeek():void 0}}}static getLocaleDataObject(){const e=A();if(!e)return;const s=e.getConfiguration();return window.sap.ui.require("sap/ui/core/LocaleData").getInstance(s.getLocale())._get()}static _listenForThemeChange(){const e=A(),s=e.getConfiguration();e.attachThemeChanged(async()=>{await $s(s.getTheme())})}static attachListeners(){!A()||ot._listenForThemeChange()}static cssVariablesLoaded(){if(!A())return;const s=[...document.head.children].find(n=>n.id==="sap-ui-theme-sap.ui.core");if(!!s)return!!s.href.match(/\/css(-|_)variables\.css/)}static getNextZIndex(){return A()?window.sap.ui.require("sap/ui/core/Popup").getNextZIndex():void 0}static setInitialZIndex(){if(!A())return;window.sap.ui.require("sap/ui/core/Popup").setInitialZIndex(Mt())}}Xs("OpenUI5Support",ot);const Pr=()=>new Promise(t=>{document.body?t():document.addEventListener("DOMContentLoaded",()=>{t()})});var Ir={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")}`},xr={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 Or=()=>{const t=b("OpenUI5Support");(!t||!t.isLoaded())&&Rr(),Dr()},Rr=()=>{$e("data-ui5-font-face")||Se(Ir,"data-ui5-font-face")},Dr=()=>{$e("data-ui5-font-face-override")||Se(xr,"data-ui5-font-face-override")};var Nr={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 kr=()=>{$e("data-ui5-system-css-vars")||Se(Nr,"data-ui5-system-css-vars")};let oe;const Ur=async()=>{if(oe!==void 0)return oe;const t=async e=>{$n();const s=b("OpenUI5Support"),n=s?s.isLoaded():!1,r=b("F6Navigation");s&&await s.init(),r&&!n&&r.init(),await Pr(),await Ss(be()),s&&s.attachListeners(),Or(),kr(),e()};return oe=new Promise(t),oe},De=new Map,Ne=new Map,Pt=t=>{if(!De.has(t)){const e=Hr(t.split("-"));De.set(t,e)}return De.get(t)},Cs=t=>{if(!Ne.has(t)){const e=t.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase();Ne.set(t,e)}return Ne.get(t)},Hr=t=>t.map((e,s)=>s===0?e.toLowerCase():e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(""),Br=t=>{if(!(t instanceof HTMLElement))return"default";const e=t.getAttribute("slot");if(e){const s=e.match(/^(.+?)-\d+$/);return s?s[1]:e}return"default"},Es=t=>t instanceof HTMLSlotElement?t.assignedNodes({flatten:!0}).filter(e=>e instanceof HTMLElement):[t],Fr=t=>t.reduce((e,s)=>e.concat(Es(s)),[]);let jr,It={include:[/^ui5-/],exclude:[]};const ke=new Map,Ts=()=>jr,Ge=t=>{if(!ke.has(t)){const e=It.include.some(s=>t.match(s))&&!It.exclude.some(s=>t.match(s));ke.set(t,e)}return ke.get(t)},Ls=t=>{if(Ge(t))return Ts()};class Vr{constructor(e){this.metadata=e}getInitialState(){if(Object.prototype.hasOwnProperty.call(this,"_initialState"))return this._initialState;const e={},s=this.slotsAreManaged(),n=this.getProperties();for(const r in n){const o=n[r].type,i=n[r].defaultValue;o===Boolean?(e[r]=!1,i!==void 0&&console.warn("The 'defaultValue' metadata key is ignored for all booleans properties, they would be initialized with 'false' by default")):n[r].multiple?e[r]=[]:o===Object?e[r]="defaultValue"in n[r]?n[r].defaultValue:{}:o===String?e[r]="defaultValue"in n[r]?n[r].defaultValue:"":e[r]=i}if(s){const r=this.getSlots();for(const[o,i]of Object.entries(r)){const c=i.propertyName||o;e[c]=[]}}return this._initialState=e,e}static validatePropertyValue(e,s){return s.multiple&&e?e.map(r=>xt(r,s)):xt(e,s)}static validateSlotValue(e,s){return zr(e,s)}getPureTag(){return this.metadata.tag||""}getTag(){const e=this.metadata.tag;if(!e)return"";const s=Ls(e);return s?`${e}-${s}`:e}hasAttribute(e){const s=this.getProperties()[e];return s.type!==Object&&!s.noAttribute&&!s.multiple}getPropertiesList(){return Object.keys(this.getProperties())}getAttributesList(){return this.getPropertiesList().filter(this.hasAttribute.bind(this)).map(Cs)}canSlotText(){const e=this.getSlots().default;return e&&e.type===Node}hasSlots(){return!!Object.entries(this.getSlots()).length}hasIndividualSlots(){return this.slotsAreManaged()&&Object.values(this.getSlots()).some(e=>e.individualSlots)}slotsAreManaged(){return!!this.metadata.managedSlots}supportsF6FastNavigation(){return!!this.metadata.fastNavigation}getProperties(){return this.metadata.properties||(this.metadata.properties={}),this.metadata.properties}getEvents(){return this.metadata.events||(this.metadata.events={}),this.metadata.events}getSlots(){return this.metadata.slots||(this.metadata.slots={}),this.metadata.slots}isLanguageAware(){return!!this.metadata.languageAware}isThemeAware(){return!!this.metadata.themeAware}shouldInvalidateOnChildChange(e,s,n){const r=this.getSlots()[e].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 xt=(t,e)=>{const s=e.type;let n=e.validator;return s&&s.isDataTypeClass&&(n=s),n?n.isValid(t)?t:e.defaultValue:!s||s===String?typeof t=="string"||typeof t=="undefined"||t===null?t:t.toString():s===Boolean?typeof t=="boolean"?t:!1:s===Object?typeof t=="object"?t:e.defaultValue:t in s?t:e.defaultValue},zr=(t,e)=>(t&&Es(t).forEach(s=>{if(!(s instanceof e.type))throw new Error(`The element is not of type ${e.type.toString()}`)}),t);customElements.get("ui5-static-area")||customElements.define("ui5-static-area",class extends HTMLElement{});const Wr=(t,e)=>{const s=Zr(e),n=Ts();return t(e,s,n)},Zr=t=>{const e=t.constructor,s=e.getMetadata().getPureTag(),n=e.getUniqueDependencies().map(r=>r.getMetadata().getPureTag()).filter(Ge);return Ge(s)&&n.push(s),n},qr=R("CustomStyle.eventProvider",new O),Gr="CustomCSSChange",it=t=>{qr.attachEvent(Gr,t)},Ot=R("CustomStyle.customCSSFor",{});it(t=>{ve({tag:t})});const Kr=t=>Ot[t]?Ot[t].join(""):"",Jr=10,Ue=t=>Array.isArray(t)?t.filter(e=>!!e).flat(Jr).map(e=>typeof e=="string"?e:e.content).join(" "):typeof t=="string"?t:t.content,le=new Map;it(t=>{le.delete(`${t}_normal`)});const Ms=(t,e=!1)=>{const s=t.getMetadata().getTag(),n=`${s}_${e?"static":"normal"}`,r=b("OpenUI5Enablement");if(!le.has(n)){let o,i="";if(r&&(i=Ue(r.getBusyIndicatorStyles())),e)o=Ue(t.staticAreaStyles);else{const c=Kr(s)||"";o=`${Ue(t.styles)} ${c}`}o=`${o} ${i}`,le.set(n,o)}return le.get(n)},ue=new Map;it(t=>{ue.delete(`${t}_normal`)});const Xr=(t,e=!1)=>{const n=`${t.getMetadata().getTag()}_${e?"static":"normal"}`;if(!ue.has(n)){const r=Ms(t,e),o=new CSSStyleSheet;o.replaceSync(r),ue.set(n,[o])}return ue.get(n)},Ke=(t,e=!1)=>{let s;const n=t.constructor,o=n[e?"staticAreaTemplate":"template"],i=e?t.staticAreaItem.shadowRoot:t.shadowRoot,c=Wr(o,t);if(!i){console.warn("There is no shadow root to update");return}document.adoptedStyleSheets?i.adoptedStyleSheets=Xr(n,e):s=Ms(n,e),n.render(c,i,s,e,{host:t})},Yr="--_ui5_content_density",Qr=t=>getComputedStyle(t).getPropertyValue(Yr);var eo=t=>{const e=/\$([-a-z0-9A-Z._]+)(?::([^$]*))?\$/.exec(t);return e&&e[2]?e[2].split(/,/):null};const to={iw:"he",ji:"yi",in:"id",sh:"sr"},so=eo("$cldr-rtl-locales:ar,fa,he$")||[],no=t=>(t=t&&to[t]||t,so.indexOf(t)>=0),Ps=()=>{const t=an();return t!==void 0?!!t:no(st()||Jt())},ro="--_ui5_dir",Is=t=>{const e=window.document,s=["ltr","rtl"],n=getComputedStyle(t).getPropertyValue(ro);return s.includes(n)?n:s.includes(t.dir)?t.dir:s.includes(e.documentElement.dir)?e.documentElement.dir:s.includes(e.body.dir)?e.body.dir:Ps()?"rtl":void 0},ie="ui5-static-area-item",oo="data-sap-ui-integration-popup-content";class G extends HTMLElement{constructor(){super(),this._rendered=!1,this.attachShadow({mode:"open"})}setOwnerElement(e){this.ownerElement=e,this.classList.add(this.ownerElement._id),this.ownerElement.hasAttribute("data-ui5-static-stable")&&this.setAttribute("data-ui5-stable",this.ownerElement.getAttribute("data-ui5-static-stable"))}update(){this._rendered&&(this._updateAdditionalAttrs(),this._updateContentDensity(),this._updateDirection(),Ke(this.ownerElement,!0))}_updateContentDensity(){Qr(this.ownerElement)==="compact"?(this.classList.add("sapUiSizeCompact"),this.classList.add("ui5-content-density-compact")):(this.classList.remove("sapUiSizeCompact"),this.classList.remove("ui5-content-density-compact"))}_updateDirection(){if(this.ownerElement){const e=Is(this.ownerElement);e?this.setAttribute("dir",e):this.removeAttribute("dir")}}_updateAdditionalAttrs(){this.setAttribute(ie,""),this.setAttribute(oo,"")}async getDomRef(){return this._updateContentDensity(),this._rendered||(this._rendered=!0,Ke(this.ownerElement,!0)),await tt(),this.shadowRoot}static getTag(){const e=Ls(ie);return e?`${ie}-${e}`:ie}static createInstance(){return customElements.get(G.getTag())||customElements.define(G.getTag(),G),document.createElement(this.getTag())}}const Je=new WeakMap,io=(t,e,s)=>{const n=new MutationObserver(e);Je.set(t,n),n.observe(t,s)},ao=t=>{const e=Je.get(t);e&&(e.disconnect(),Je.delete(t))},co=["value-changed"];let de;const lo=t=>co.includes(t),uo=t=>{const e=at();return!(typeof e!="boolean"&&e.events&&e.events.includes&&e.events.includes(t))},at=()=>(de===void 0&&(de=un()),de),ho=t=>{de=t},fo=t=>{const e=at();return lo(t)?!1:e===!0?!0:!uo(t)},po=["disabled","title","hidden","role","draggable"],Rt=t=>po.includes(t)||t.startsWith("aria")?!0:![HTMLElement,Element,Node].some(s=>s.prototype.hasOwnProperty(t)),Dt=(t,e)=>{if(t.length!==e.length)return!1;for(let s=0;s<t.length;s++)if(t[s]!==e[s])return!1;return!0};let go=0;const Nt=new Map,He=new Map;function V(t){this._suppressInvalidation||(this.onInvalidation(t),this._changedState.push(t),us(this),this._eventProvider.fireEvent("invalidate",{...t,target:this}))}let kt={};class E extends HTMLElement{constructor(){super();const e=this.constructor;this._changedState=[],this._suppressInvalidation=!0,this._inDOM=!1,this._fullyConnected=!1,this._childChangeListeners=new Map,this._slotChangeListeners=new Map,this._eventProvider=new O;let s;this._domRefReadyPromise=new Promise(n=>{s=n}),this._domRefReadyPromise._deferredResolve=s,this._doNotSyncAttributes=new Set,this._state={...e.getMetadata().getInitialState()},this._upgradeAllProperties(),e._needsShadowDOM()&&this.attachShadow({mode:"open"})}get _id(){return this.__id||(this.__id=`ui5wc_${++go}`),this.__id}async connectedCallback(){const e=this.constructor;this.setAttribute(e.getMetadata().getPureTag(),""),e.getMetadata().supportsF6FastNavigation()&&this.setAttribute("data-sap-ui-fastnavgroup","true");const s=e.getMetadata().slotsAreManaged();this._inDOM=!0,s&&(this._startObservingDOMChildren(),await this._processChildren()),this._inDOM&&(ds(this),this._domRefReadyPromise._deferredResolve(),this._fullyConnected=!0,this.onEnterDOM())}disconnectedCallback(){const s=this.constructor.getMetadata().slotsAreManaged();this._inDOM=!1,s&&this._stopObservingDOMChildren(),this._fullyConnected&&(this.onExitDOM(),this._fullyConnected=!1),this.staticAreaItem&&this.staticAreaItem.parentElement&&this.staticAreaItem.parentElement.removeChild(this.staticAreaItem),Rn(this)}onBeforeRendering(){}onAfterRendering(){}onEnterDOM(){}onExitDOM(){}_startObservingDOMChildren(){const e=this.constructor;if(!e.getMetadata().hasSlots())return;const n=e.getMetadata().canSlotText(),r={childList:!0,subtree:n,characterData:n};io(this,this._processChildren.bind(this),r)}_stopObservingDOMChildren(){ao(this)}async _processChildren(){this.constructor.getMetadata().hasSlots()&&await this._updateSlots()}async _updateSlots(){const e=this.constructor,s=e.getMetadata().getSlots(),n=e.getMetadata().canSlotText(),r=Array.from(n?this.childNodes:this.children),o=new Map,i=new Map;for(const[u,d]of Object.entries(s)){const h=d.propertyName||u;i.set(h,u),o.set(h,[...this._state[h]]),this._clearSlot(u,d)}const c=new Map,a=new Map,l=r.map(async(u,d)=>{const h=Br(u),p=s[h];if(p===void 0){if(h!=="default"){const g=Object.keys(s).join(", ");console.warn(`Unknown slotName: ${h}, ignoring`,u,`Valid values are: ${g}`)}return}if(p.individualSlots){const g=(c.get(h)||0)+1;c.set(h,g),u._individualSlot=`${h}-${g}`}if(u instanceof HTMLElement){const g=u.localName;if(g.includes("-")){if(!window.customElements.get(g)){const Ws=window.customElements.whenDefined(g);let ne=Nt.get(g);ne||(ne=new Promise(Zs=>setTimeout(Zs,1e3)),Nt.set(g,ne)),await Promise.race([Ws,ne])}window.customElements.upgrade(u)}}if(u=e.getMetadata().constructor.validateSlotValue(u,p),Ut(u)&&p.invalidateOnChildChange){const g=this._getChildChangeListener(h);g&&u.attachInvalidate.call(u,g)}u instanceof HTMLSlotElement&&this._attachSlotChange(u,h);const m=p.propertyName||h;a.has(m)?a.get(m).push({child:u,idx:d}):a.set(m,[{child:u,idx:d}])});await Promise.all(l),a.forEach((u,d)=>{this._state[d]=u.sort((h,p)=>h.idx-p.idx).map(h=>h.child)});let f=!1;for(const[u,d]of Object.entries(s)){const h=d.propertyName||u;Dt(o.get(h),this._state[h])||(V.call(this,{type:"slot",name:i.get(h),reason:"children"}),f=!0)}f||V.call(this,{type:"slot",name:"default",reason:"textcontent"})}_clearSlot(e,s){const n=s.propertyName||e;this._state[n].forEach(o=>{if(Ut(o)){const i=this._getChildChangeListener(e);i&&o.detachInvalidate.call(o,i)}o instanceof HTMLSlotElement&&this._detachSlotChange(o,e)}),this._state[n]=[]}attachInvalidate(e){this._eventProvider.attachEvent("invalidate",e)}detachInvalidate(e){this._eventProvider.detachEvent("invalidate",e)}_onChildChange(e,s){!this.constructor.getMetadata().shouldInvalidateOnChildChange(e,s.type,s.name)||V.call(this,{type:"slot",name:e,reason:"childchange",child:s.target})}attributeChangedCallback(e,s,n){let r;if(this._doNotSyncAttributes.has(e))return;const o=this.constructor.getMetadata().getProperties(),i=e.replace(/^ui5-/,""),c=Pt(i);if(o.hasOwnProperty(c)){const a=o[c],l=a.type;let f=a.validator;l&&l.isDataTypeClass&&(f=l),f?r=f.attributeToProperty(n):l===Boolean?r=n!==null:r=n,this[c]=r}}_updateAttribute(e,s){const n=this.constructor;if(!n.getMetadata().hasAttribute(e))return;const o=n.getMetadata().getProperties()[e],i=o.type;let c=o.validator;const a=Cs(e),l=this.getAttribute(a);if(i&&i.isDataTypeClass&&(c=i),c){const f=c.propertyToAttribute(s);f===null?(this._doNotSyncAttributes.add(a),this.removeAttribute(a),this._doNotSyncAttributes.delete(a)):this.setAttribute(a,f)}else i===Boolean?s===!0&&l===null?this.setAttribute(a,""):s===!1&&l!==null&&this.removeAttribute(a):typeof s!="object"&&l!==s&&this.setAttribute(a,s)}_upgradeProperty(e){if(this.hasOwnProperty(e)){const s=this[e];delete this[e],this[e]=s}}_upgradeAllProperties(){this.constructor.getMetadata().getPropertiesList().forEach(this._upgradeProperty.bind(this))}_getChildChangeListener(e){return this._childChangeListeners.has(e)||this._childChangeListeners.set(e,this._onChildChange.bind(this,e)),this._childChangeListeners.get(e)}_getSlotChangeListener(e){return this._slotChangeListeners.has(e)||this._slotChangeListeners.set(e,this._onSlotChange.bind(this,e)),this._slotChangeListeners.get(e)}_attachSlotChange(e,s){const n=this._getSlotChangeListener(s);n&&e.addEventListener("slotchange",n)}_detachSlotChange(e,s){e.removeEventListener("slotchange",this._getSlotChangeListener(s))}_onSlotChange(e){V.call(this,{type:"slot",name:e,reason:"slotchange"})}onInvalidation(e){}_render(){const e=this.constructor,s=e.getMetadata().hasIndividualSlots();this._suppressInvalidation=!0,this.onBeforeRendering(),this._onComponentStateFinalized&&this._onComponentStateFinalized(),this._suppressInvalidation=!1,this._changedState=[],e._needsShadowDOM()&&Ke(this),this.staticAreaItem&&this.staticAreaItem.update(),s&&this._assignIndividualSlotsToChildren(),this.onAfterRendering()}_assignIndividualSlotsToChildren(){Array.from(this.children).forEach(s=>{s._individualSlot&&s.setAttribute("slot",s._individualSlot)})}_waitForDomRef(){return this._domRefReadyPromise}getDomRef(){if(typeof this._getRealDomRef=="function")return this._getRealDomRef();if(!this.shadowRoot||this.shadowRoot.children.length===0)return;const e=[...this.shadowRoot.children].filter(s=>!["link","style"].includes(s.localName));return e.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`),e[0]}getFocusDomRef(){const e=this.getDomRef();if(e)return e.querySelector("[data-sap-focus-ref]")||e}async getFocusDomRefAsync(){return await this._waitForDomRef(),this.getFocusDomRef()}async focus(){await this._waitForDomRef();const e=this.getFocusDomRef();e&&typeof e.focus=="function"&&e.focus()}fireEvent(e,s,n=!1,r=!0){const o=this._fireEvent(e,s,n,r),i=Pt(e);return i!==e?o&&this._fireEvent(i,s,n):o}_fireEvent(e,s,n=!1,r=!0){const o=new CustomEvent(`ui5-${e}`,{detail:s,composed:!1,bubbles:r,cancelable:n}),i=this.dispatchEvent(o);if(fo(e))return i;const c=new CustomEvent(e,{detail:s,composed:!1,bubbles:r,cancelable:n});return this.dispatchEvent(c)&&i}getSlottedNodes(e){return Fr(this[e])}get effectiveDir(){return In(this.constructor),Is(this)}get isUI5Element(){return!0}get classes(){return{}}static get observedAttributes(){return this.getMetadata().getAttributesList()}static _needsShadowDOM(){return!!this.template}static _needsStaticArea(){return!!this.staticAreaTemplate}getStaticAreaItemDomRef(){if(!this.constructor._needsStaticArea())throw new Error("This component does not use the static area");return this.staticAreaItem||(this.staticAreaItem=G.createInstance(),this.staticAreaItem.setOwnerElement(this)),this.staticAreaItem.parentElement||os("ui5-static-area").appendChild(this.staticAreaItem),this.staticAreaItem.getDomRef()}static _generateAccessors(){const e=this.prototype,s=this.getMetadata().slotsAreManaged(),n=this.getMetadata().getProperties();for(const[r,o]of Object.entries(n)){if(Rt(r)||console.warn(`"${r}" is not a valid property name. Use a name that does not collide with DOM APIs`),o.type===Boolean&&o.defaultValue)throw new Error(`Cannot set a default value for property "${r}". All booleans are false by default.`);if(o.type===Array)throw new Error(`Wrong type for property "${r}". Properties cannot be of type Array - use "multiple: true" and set "type" to the single value type, such as "String", "Object", etc...`);if(o.type===Object&&o.defaultValue)throw new Error(`Cannot set a default value for property "${r}". All properties of type "Object" are empty objects by default.`);if(o.multiple&&o.defaultValue)throw new Error(`Cannot set a default value for property "${r}". All multiple properties are empty arrays by default.`);Object.defineProperty(e,r,{get(){if(this._state[r]!==void 0)return this._state[r];const i=o.defaultValue;return o.type===Boolean?!1:o.type===String?i:o.multiple?[]:i},set(i){let c;i=this.constructor.getMetadata().constructor.validatePropertyValue(i,o);const f=o.type;let u=o.validator;const d=this._state[r];f&&f.isDataTypeClass&&(u=f),u?c=!u.valuesAreEqual(d,i):Array.isArray(d)&&Array.isArray(i)&&o.multiple&&o.compareValues?c=!Dt(d,i):c=d!==i,c&&(this._state[r]=i,V.call(this,{type:"property",name:r,newValue:i,oldValue:d}),this._updateAttribute(r,i))}})}if(s){const r=this.getMetadata().getSlots();for(const[o,i]of Object.entries(r)){Rt(o)||console.warn(`"${o}" is not a valid property name. Use a name that does not collide with DOM APIs`);const c=i.propertyName||o;Object.defineProperty(e,c,{get(){return this._state[c]!==void 0?this._state[c]:[]},set(){throw new Error("Cannot set slot content directly, use the DOM APIs (appendChild, removeChild, etc...)")}})}}}static get metadata(){return kt}static set metadata(e){kt=e}static get styles(){return""}static get staticAreaStyles(){return""}static get dependencies(){return[]}static getUniqueDependencies(){if(!He.has(this)){const e=this.dependencies.filter((s,n,r)=>r.indexOf(s)===n);He.set(this,e)}return He.get(this)||[]}static whenDependenciesDefined(){return Promise.all(this.getUniqueDependencies().map(e=>e.define()))}static async onDefine(){return Promise.resolve()}static async define(){await Ur(),await Promise.all([this.whenDependenciesDefined(),this.onDefine()]);const e=this.getMetadata().getTag(),s=Tn(e),n=customElements.get(e);return n&&!s?Mn(e):n||(this._generateAccessors(),En(e),window.customElements.define(e,this)),this}static getMetadata(){if(this.hasOwnProperty("_metadata"))return this._metadata;const s=[Object.keys(this.metadata).length?this.metadata:this.decoratorMetadata];let n=this;for(;n!==E;){n=Object.getPrototypeOf(n);const o=Object.keys(n.metadata).length?n.metadata:n.decoratorMetadata;s.unshift(o)}const r=Ye({},...s);return this._metadata=new Vr(r),this._metadata}}E.decoratorMetadata={};const Ut=t=>"isUI5Element"in t;/**
10
- * @license
11
- * Copyright 2017 Google LLC
12
- * SPDX-License-Identifier: BSD-3-Clause
13
- */var Be;const B=globalThis.trustedTypes,Ht=B?B.createPolicy("lit-html",{createHTML:t=>t}):void 0,S=`lit$${(Math.random()+"").slice(9)}$`,ct="?"+S,mo=`<${ct}>`,F=document,X=(t="")=>F.createComment(t),Y=t=>t===null||typeof t!="object"&&typeof t!="function",xs=Array.isArray,Os=t=>{var e;return xs(t)||typeof((e=t)===null||e===void 0?void 0:e[Symbol.iterator])=="function"},z=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,Bt=/-->/g,Ft=/>/g,L=/>|[ \n \r](?:([^\s"'>=/]+)([ \n \r]*=[ \n \r]*(?:[^ \n \r"'`<>=]|("|')|))|$)/g,jt=/'/g,Vt=/"/g,Rs=/^(?:script|style|textarea|title)$/i,yo=t=>(e,...s)=>({_$litType$:t,strings:e,values:s}),_o=yo(1),I=Symbol.for("lit-noChange"),y=Symbol.for("lit-nothing"),zt=new WeakMap,wo=(t,e,s)=>{var n,r;const o=(n=s==null?void 0:s.renderBefore)!==null&&n!==void 0?n:e;let i=o._$litPart$;if(i===void 0){const c=(r=s==null?void 0:s.renderBefore)!==null&&r!==void 0?r:null;o._$litPart$=i=new j(e.insertBefore(X(),c),c,void 0,s!=null?s:{})}return i._$AI(t),i},U=F.createTreeWalker(F,129,null,!1),Ds=(t,e)=>{const s=t.length-1,n=[];let r,o=e===2?"<svg>":"",i=z;for(let a=0;a<s;a++){const l=t[a];let f,u,d=-1,h=0;for(;h<l.length&&(i.lastIndex=h,u=i.exec(l),u!==null);)h=i.lastIndex,i===z?u[1]==="!--"?i=Bt:u[1]!==void 0?i=Ft:u[2]!==void 0?(Rs.test(u[2])&&(r=RegExp("</"+u[2],"g")),i=L):u[3]!==void 0&&(i=L):i===L?u[0]===">"?(i=r!=null?r:z,d=-1):u[1]===void 0?d=-2:(d=i.lastIndex-u[2].length,f=u[1],i=u[3]===void 0?L:u[3]==='"'?Vt:jt):i===Vt||i===jt?i=L:i===Bt||i===Ft?i=z:(i=L,r=void 0);const p=i===L&&t[a+1].startsWith("/>")?" ":"";o+=i===z?l+mo:d>=0?(n.push(f),l.slice(0,d)+"$lit$"+l.slice(d)+S+p):l+S+(d===-2?(n.push(void 0),a):p)}const c=o+(t[s]||"<?>")+(e===2?"</svg>":"");if(!Array.isArray(t)||!t.hasOwnProperty("raw"))throw Error("invalid template strings array");return[Ht!==void 0?Ht.createHTML(c):c,n]};class Q{constructor({strings:e,_$litType$:s},n){let r;this.parts=[];let o=0,i=0;const c=e.length-1,a=this.parts,[l,f]=Ds(e,s);if(this.el=Q.createElement(l,n),U.currentNode=this.el.content,s===2){const u=this.el.content,d=u.firstChild;d.remove(),u.append(...d.childNodes)}for(;(r=U.nextNode())!==null&&a.length<c;){if(r.nodeType===1){if(r.hasAttributes()){const u=[];for(const d of r.getAttributeNames())if(d.endsWith("$lit$")||d.startsWith(S)){const h=f[i++];if(u.push(d),h!==void 0){const p=r.getAttribute(h.toLowerCase()+"$lit$").split(S),m=/([.?@])?(.*)/.exec(h);a.push({type:1,index:o,name:m[2],strings:p,ctor:m[1]==="."?ks:m[1]==="?"?Us:m[1]==="@"?Hs:ee})}else a.push({type:6,index:o})}for(const d of u)r.removeAttribute(d)}if(Rs.test(r.tagName)){const u=r.textContent.split(S),d=u.length-1;if(d>0){r.textContent=B?B.emptyScript:"";for(let h=0;h<d;h++)r.append(u[h],X()),U.nextNode(),a.push({type:2,index:++o});r.append(u[d],X())}}}else if(r.nodeType===8)if(r.data===ct)a.push({type:2,index:o});else{let u=-1;for(;(u=r.data.indexOf(S,u+1))!==-1;)a.push({type:7,index:o}),u+=S.length-1}o++}}static createElement(e,s){const n=F.createElement("template");return n.innerHTML=e,n}}function x(t,e,s=t,n){var r,o,i,c;if(e===I)return e;let a=n!==void 0?(r=s._$Cl)===null||r===void 0?void 0:r[n]:s._$Cu;const l=Y(e)?void 0:e._$litDirective$;return(a==null?void 0:a.constructor)!==l&&((o=a==null?void 0:a._$AO)===null||o===void 0||o.call(a,!1),l===void 0?a=void 0:(a=new l(t),a._$AT(t,s,n)),n!==void 0?((i=(c=s)._$Cl)!==null&&i!==void 0?i:c._$Cl=[])[n]=a:s._$Cu=a),a!==void 0&&(e=x(t,a._$AS(t,e.values),a,n)),e}class Ns{constructor(e,s){this.v=[],this._$AN=void 0,this._$AD=e,this._$AM=s}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}p(e){var s;const{el:{content:n},parts:r}=this._$AD,o=((s=e==null?void 0:e.creationScope)!==null&&s!==void 0?s:F).importNode(n,!0);U.currentNode=o;let i=U.nextNode(),c=0,a=0,l=r[0];for(;l!==void 0;){if(c===l.index){let f;l.type===2?f=new j(i,i.nextSibling,this,e):l.type===1?f=new l.ctor(i,l.name,l.strings,this,e):l.type===6&&(f=new Bs(i,this,e)),this.v.push(f),l=r[++a]}c!==(l==null?void 0:l.index)&&(i=U.nextNode(),c++)}return o}m(e){let s=0;for(const n of this.v)n!==void 0&&(n.strings!==void 0?(n._$AI(e,n,s),s+=n.strings.length-2):n._$AI(e[s])),s++}}class j{constructor(e,s,n,r){var o;this.type=2,this._$AH=y,this._$AN=void 0,this._$AA=e,this._$AB=s,this._$AM=n,this.options=r,this._$Cg=(o=r==null?void 0:r.isConnected)===null||o===void 0||o}get _$AU(){var e,s;return(s=(e=this._$AM)===null||e===void 0?void 0:e._$AU)!==null&&s!==void 0?s:this._$Cg}get parentNode(){let e=this._$AA.parentNode;const s=this._$AM;return s!==void 0&&e.nodeType===11&&(e=s.parentNode),e}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(e,s=this){e=x(this,e,s),Y(e)?e===y||e==null||e===""?(this._$AH!==y&&this._$AR(),this._$AH=y):e!==this._$AH&&e!==I&&this.$(e):e._$litType$!==void 0?this.T(e):e.nodeType!==void 0?this.k(e):Os(e)?this.S(e):this.$(e)}M(e,s=this._$AB){return this._$AA.parentNode.insertBefore(e,s)}k(e){this._$AH!==e&&(this._$AR(),this._$AH=this.M(e))}$(e){this._$AH!==y&&Y(this._$AH)?this._$AA.nextSibling.data=e:this.k(F.createTextNode(e)),this._$AH=e}T(e){var s;const{values:n,_$litType$:r}=e,o=typeof r=="number"?this._$AC(e):(r.el===void 0&&(r.el=Q.createElement(r.h,this.options)),r);if(((s=this._$AH)===null||s===void 0?void 0:s._$AD)===o)this._$AH.m(n);else{const i=new Ns(o,this),c=i.p(this.options);i.m(n),this.k(c),this._$AH=i}}_$AC(e){let s=zt.get(e.strings);return s===void 0&&zt.set(e.strings,s=new Q(e)),s}S(e){xs(this._$AH)||(this._$AH=[],this._$AR());const s=this._$AH;let n,r=0;for(const o of e)r===s.length?s.push(n=new j(this.M(X()),this.M(X()),this,this.options)):n=s[r],n._$AI(o),r++;r<s.length&&(this._$AR(n&&n._$AB.nextSibling,r),s.length=r)}_$AR(e=this._$AA.nextSibling,s){var n;for((n=this._$AP)===null||n===void 0||n.call(this,!1,!0,s);e&&e!==this._$AB;){const r=e.nextSibling;e.remove(),e=r}}setConnected(e){var s;this._$AM===void 0&&(this._$Cg=e,(s=this._$AP)===null||s===void 0||s.call(this,e))}}class ee{constructor(e,s,n,r,o){this.type=1,this._$AH=y,this._$AN=void 0,this.element=e,this.name=s,this._$AM=r,this.options=o,n.length>2||n[0]!==""||n[1]!==""?(this._$AH=Array(n.length-1).fill(new String),this.strings=n):this._$AH=y}get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}_$AI(e,s=this,n,r){const o=this.strings;let i=!1;if(o===void 0)e=x(this,e,s,0),i=!Y(e)||e!==this._$AH&&e!==I,i&&(this._$AH=e);else{const c=e;let a,l;for(e=o[0],a=0;a<o.length-1;a++)l=x(this,c[n+a],s,a),l===I&&(l=this._$AH[a]),i||(i=!Y(l)||l!==this._$AH[a]),l===y?e=y:e!==y&&(e+=(l!=null?l:"")+o[a+1]),this._$AH[a]=l}i&&!r&&this.C(e)}C(e){e===y?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,e!=null?e:"")}}class ks extends ee{constructor(){super(...arguments),this.type=3}C(e){this.element[this.name]=e===y?void 0:e}}const vo=B?B.emptyScript:"";class Us extends ee{constructor(){super(...arguments),this.type=4}C(e){e&&e!==y?this.element.setAttribute(this.name,vo):this.element.removeAttribute(this.name)}}class Hs extends ee{constructor(e,s,n,r,o){super(e,s,n,r,o),this.type=5}_$AI(e,s=this){var n;if((e=(n=x(this,e,s,0))!==null&&n!==void 0?n:y)===I)return;const r=this._$AH,o=e===y&&r!==y||e.capture!==r.capture||e.once!==r.once||e.passive!==r.passive,i=e!==y&&(r===y||o);o&&this.element.removeEventListener(this.name,this,r),i&&this.element.addEventListener(this.name,this,e),this._$AH=e}handleEvent(e){var s,n;typeof this._$AH=="function"?this._$AH.call((n=(s=this.options)===null||s===void 0?void 0:s.host)!==null&&n!==void 0?n:this.element,e):this._$AH.handleEvent(e)}}class Bs{constructor(e,s,n){this.element=e,this.type=6,this._$AN=void 0,this._$AM=s,this.options=n}get _$AU(){return this._$AM._$AU}_$AI(e){x(this,e)}}const Ao={L:"$lit$",P:S,V:ct,I:1,N:Ds,R:Ns,j:Os,D:x,H:j,F:ee,O:Us,W:Hs,B:ks,Z:Bs},Wt=window.litHtmlPolyfillSupport;Wt==null||Wt(Q,j),((Be=globalThis.litHtmlVersions)!==null&&Be!==void 0?Be:globalThis.litHtmlVersions=[]).push("2.2.2");/**
14
- * @license
15
- * Copyright 2017 Google LLC
16
- * SPDX-License-Identifier: BSD-3-Clause
17
- */const Fs={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},So=t=>(...e)=>({_$litDirective$:t,values:e});class js{constructor(e){}get _$AU(){return this._$AM._$AU}_$AT(e,s,n){this._$Ct=e,this._$AM=s,this._$Ci=n}_$AS(e,s){return this.update(e,s)}update(e,s){return this.render(...s)}}/**
18
- * @license
19
- * Copyright 2020 Google LLC
20
- * SPDX-License-Identifier: BSD-3-Clause
21
- */const{H:$o}=Ao,Zt=()=>document.createComment(""),W=(t,e,s)=>{var n;const r=t._$AA.parentNode,o=e===void 0?t._$AB:e._$AA;if(s===void 0){const i=r.insertBefore(Zt(),o),c=r.insertBefore(Zt(),o);s=new $o(i,c,t,t.options)}else{const i=s._$AB.nextSibling,c=s._$AM,a=c!==t;if(a){let l;(n=s._$AQ)===null||n===void 0||n.call(s,t),s._$AM=t,s._$AP!==void 0&&(l=t._$AU)!==c._$AU&&s._$AP(l)}if(i!==o||a){let l=s._$AA;for(;l!==i;){const f=l.nextSibling;r.insertBefore(l,o),l=f}}}return s},M=(t,e,s=t)=>(t._$AI(e,s),t),bo={},Co=(t,e=bo)=>t._$AH=e,Eo=t=>t._$AH,Fe=t=>{var e;(e=t._$AP)===null||e===void 0||e.call(t,!1,!0);let s=t._$AA;const n=t._$AB.nextSibling;for(;s!==n;){const r=s.nextSibling;s.remove(),s=r}};/**
22
- * @license
23
- * Copyright 2017 Google LLC
24
- * SPDX-License-Identifier: BSD-3-Clause
25
- */const qt=(t,e,s)=>{const n=new Map;for(let r=e;r<=s;r++)n.set(t[r],r);return n},Vs=So(class extends js{constructor(t){if(super(t),t.type!==Fs.CHILD)throw Error("repeat() can only be used in text expressions")}dt(t,e,s){let n;s===void 0?s=e:e!==void 0&&(n=e);const r=[],o=[];let i=0;for(const c of t)r[i]=n?n(c,i):i,o[i]=s(c,i),i++;return{values:o,keys:r}}render(t,e,s){return this.dt(t,e,s).values}update(t,[e,s,n]){var r;const o=Eo(t),{values:i,keys:c}=this.dt(e,s,n);if(!Array.isArray(o))return this.ut=c,i;const a=(r=this.ut)!==null&&r!==void 0?r:this.ut=[],l=[];let f,u,d=0,h=o.length-1,p=0,m=i.length-1;for(;d<=h&&p<=m;)if(o[d]===null)d++;else if(o[h]===null)h--;else if(a[d]===c[p])l[p]=M(o[d],i[p]),d++,p++;else if(a[h]===c[m])l[m]=M(o[h],i[m]),h--,m--;else if(a[d]===c[m])l[m]=M(o[d],i[m]),W(t,l[m+1],o[d]),d++,m--;else if(a[h]===c[p])l[p]=M(o[h],i[p]),W(t,o[d],o[h]),h--,p++;else if(f===void 0&&(f=qt(c,p,m),u=qt(a,d,h)),f.has(a[d]))if(f.has(a[h])){const g=u.get(c[p]),se=g!==void 0?o[g]:null;if(se===null){const Ce=W(t,o[d]);M(Ce,i[p]),l[p]=Ce}else l[p]=M(se,i[p]),W(t,o[d],se),o[g]=null;p++}else Fe(o[h]),h--;else Fe(o[d]),d++;for(;p<=m;){const g=W(t,l[m+1]);M(g,i[p]),l[p++]=g}for(;d<=h;){const g=o[d++];g!==null&&Fe(g)}return this.ut=c,Co(t,l),I}});/**
26
- * @license
27
- * Copyright 2018 Google LLC
28
- * SPDX-License-Identifier: BSD-3-Clause
29
- */const v=t=>t!=null?t:y;/**
30
- * @license
31
- * Copyright 2017 Google LLC
32
- * SPDX-License-Identifier: BSD-3-Clause
33
- */class Gt extends js{constructor(e){if(super(e),this.it=y,e.type!==Fs.CHILD)throw Error(this.constructor.directiveName+"() can only be used in child bindings")}render(e){if(e===y||e==null)return this.ft=void 0,this.it=e;if(e===I)return e;if(typeof e!="string")throw Error(this.constructor.directiveName+"() called with a non-string value");if(e===this.it)return this.ft;this.it=e;const s=[e];return s.raw=s,this.ft={_$litType$:this.constructor.resultType,strings:s,values:[]}}}Gt.directiveName="unsafeHTML",Gt.resultType=1;const w=(t,...e)=>{const s=b("LitStatic");return(s?s.html:_o)(t,...e)},te=(t,e,s,n,r)=>{const o=b("OpenUI5Enablement");o&&!n&&(t=o.wrapTemplateResultInBusyMarkup(w,r.host,t)),typeof s=="string"?t=w`<style>${s}</style>${t}`:Array.isArray(s)&&s.length&&(t=w`${s.map(i=>w`<link type="text/css" rel="stylesheet" href="${i}">`)}${t}`),wo(t,e,r)},To={tag:"ui5-test-generic",properties:{strProp:{type:String},boolProp:{type:Boolean},objectProp:{type:Object},noAttributeProp:{type:String,noAttribute:!0},multiProp:{type:String,multiple:!0},defaultValueProp:{type:String,defaultValue:"Hello"}},managedSlots:!0,slots:{default:{type:Node},other:{type:HTMLElement},individual:{type:HTMLElement,individualSlots:!0},named:{type:HTMLElement,propertyName:"items"}}};class zs extends E{static get metadata(){return To}static get render(){return te}static get template(){return e=>w`<div><p>
34
- <slot></slot>
35
- <slot name="other"></slot>
36
- <slot name="individual-1"></slot>
37
- <slot name="individual-2"></slot>
38
- </p></div>`}static get styles(){return`:host {
39
- display: inline-block;
40
- border: 1px solid black;
41
- color: var(--var1);
42
- }`}onBeforeRendering(){}onAfterRendering(){}onEnterDOM(){}onExitDOM(){}}zs.define();const Lo={tag:"ui5-test-no-shadow"};class Mo extends E{static get metadata(){return Lo}}Mo.define();const Po={tag:"ui5-test-parent",managedSlots:!0,slots:{default:{type:Node,invalidateOnChildChange:{properties:["prop1"]}},items:{type:HTMLElement,invalidateOnChildChange:{properties:!0}}}};class Io extends E{static get metadata(){return Po}static get render(){return te}static get template(){return e=>w`<div>
43
- <slot></slot>
44
- </div>`}}Io.define();const xo={tag:"ui5-test-child",properties:{prop1:{type:String},prop2:{type:String},prop3:{type:String}}};class Oo extends E{static get metadata(){return xo}static get render(){return te}static get template(){return e=>w`<div></div>`}}Oo.define();const Ro={tag:"ui5-with-static-area",properties:{staticContent:{type:Boolean}},slots:{}};class Do extends E{static get metadata(){return Ro}static get render(){return te}static get template(){return e=>w`
45
- <div dir=${e.effectiveDir}>
46
- WithStaticArea works!
47
- </div>`}static get staticAreaTemplate(){return e=>w`
48
- <div class="ui5-with-static-area-content">
49
- Static area content.
50
- </div>`}static get styles(){return`
51
- :host {
52
- display: inline-block;
53
- border: 1px solid black;
54
- color: red;
55
- }`}async addStaticArea(){if(!this.staticContent)return;const e=await this.getStaticAreaItemDomRef();return this.responsivePopover=e.querySelector(".ui5-with-static-area-content"),this.responsivePopover}onBeforeRendering(){this.addStaticArea()}onAfterRendering(){}onEnterDOM(){}onExitDOM(){}}Do.define();const No=(t,e,s)=>w`<div>Root text: ${v(t.text)}${Vs(t.items,(n,r)=>n._id||r,(n,r)=>ko(n,r,t))} Root text: ${v(t.text)}</div>`,ko=(t,e,s,n,r)=>w`<h3>Item-${e}</h3>${t.text?Uo(t,e,s):void 0}<ul>${Vs(t.words,(o,i)=>o._id||i,(o,i)=>Ho(o,i,s))}</ul>${t.text?Bo(t,e,s):void 0}`,Uo=(t,e,s,n,r)=>w`<div class="before-each-content--start--${e}">Root text: ${v(s.text)}, Item text: ${v(t.text)}</div>`,Ho=(t,e,s,n,r)=>w`<li><h3>Word-${e}</h3><div class="nested-each-content--${e}--0">Root Text: ${v(s.text)}, Word text: ${v(t.text)}</div><div class="nested-each-content--${e}--1">Root Text: ${v(s.text)}, Word text: ${v(t.text)}</div></li>`,Bo=(t,e,s,n,r)=>w`<div class="after-each-content--end--${e}">Root text: ${v(s.text)}, Item text: ${v(t.text)}</div>`;class Fo extends E{static get metadata(){return{tag:"ui5-test-complex-template"}}static get render(){return te}static get template(){return No}get text(){return"root"}get items(){return[{text:"positives",words:[{text:"word1_good"},{text:"word2_nice"},{text:"word3_kind"}]},{text:"negatives",words:[{text:"word4_bad"},{text:"word5_rude"},{text:"word6_unpolite"}]}]}}Fo.define();const jo={tag:"ui5-test-generic-ext",properties:{extProp:{type:String},strProp:{defaultValue:"Ext"}},slots:{extSlot:{type:HTMLElement}}};class Vo extends zs{static get metadata(){return jo}}Vo.define();const zo={content:":root{ --var1: red; }",packageName:"",fileName:""},Wo={content:":root{ --var1: green; }",packageName:"",fileName:""},Zo={content:":root{ --var1: blue; }",packageName:"",fileName:""},qo={content:":root{ --var1: orange; }",packageName:"",fileName:""},Go={content:":root{ --var1: orange; }",packageName:"",fileName:""},Ko={content:":root{ --var1: yellow; }",packageName:"",fileName:""},Jo={content:":root{ --var1: yellow; }",packageName:"",fileName:""};T("@ui5/webcomponents-base-test","sap_fiori_3",()=>zo);T("@ui5/webcomponents-base-test","sap_fiori_3_dark",()=>Wo);T("@ui5/webcomponents-base-test","sap_belize",()=>Zo);T("@ui5/webcomponents-base-test","sap_belize_hcb",()=>qo);T("@ui5/webcomponents-base-test","sap_belize_hcw",()=>Go);T("@ui5/webcomponents-base-test","sap_fiori_3_hcb",()=>Ko);T("@ui5/webcomponents-base-test","sap_fiori_3_hcw",()=>Jo);const Xo=/('')|'([^']+(?:''[^']*)*)(?:'|$)|\{([0-9]+(?:\s*,[^{}]*)?)\}|[{}]/g,Yo=(t,e)=>(e=e||[],t.replace(Xo,(s,n,r,o,i)=>{if(n)return"'";if(r)return r.replace(/''/g,"'");if(o){const c=typeof o=="string"?parseInt(o):o;return String(e[c])}throw new Error(`[i18n]: pattern syntax error at pos ${i}`)})),je=new Map;class Qo{constructor(e){this.packageName=e}getText(e,...s){if(typeof e=="string"&&(e={key:e,defaultText:e}),!e||!e.key)return"";const n=Gn(this.packageName);n&&!n[e.key]&&console.warn(`Key ${e.key} not found in the i18n bundle, the default text will be used`);const r=n&&n[e.key]?n[e.key]:e.defaultText||e.key;return Yo(r,s)}}const ei=t=>{if(je.has(t))return je.get(t);const e=new Qo(t);return je.set(t,e),e},ti=async t=>(await ps(t),ei(t)),si=typeof window.chrome=="object"||typeof window.v8=="object"?(t,e)=>(e>2&&40*e>t.length,t):t=>t,ni=/(?:\r\n|\r|\n|^)[ \t\f]*/,ri=/(\\u[0-9a-fA-F]{0,4})|(\\.)|(\\$)|([ \t\f]*[ \t\f:=][ \t\f]*)/g,oi=/(\\u[0-9a-fA-F]{0,4})|(\\.)|(\\$)/g,ii={"\\f":"\f","\\n":`
56
- `,"\\r":"\r","\\t":" "},ai=t=>{const e={},s=t.split(ni);let n,r,o,i,c,a,l,f;const u=d=>{i?(i=`${i}${d}`,f++):(i=d,f=0)};for(c=0;c<s.length;c++)if(n=s[c],!(n===""||n.charAt(0)==="#"||n.charAt(0)==="!")){for(r=ri,l=0,r.lastIndex=l,o=null,i="",a=r.exec(n);a!==null;){if(l<a.index&&u(n.slice(l,a.index)),l=r.lastIndex,a[1]){if(a[1].length!==6)throw new Error(`Incomplete Unicode Escape '${a[1]}'`);u(String.fromCharCode(parseInt(a[1].slice(2),16)))}else a[2]?u(ii[a[2]]||a[2].slice(1)):a[3]?(n=s[++c],l=0,r.lastIndex=l):a[4]&&(o=i,i="",r=oi,r.lastIndex=l);a=r.exec(n)}l<n.length&&u(n.slice(l)),o==null&&(o=i,i=""),e[o]=si(i,i?f:0)}return e};let Ve;const ci=()=>(Ve===void 0&&(Ve=nn()),Ve);var Xe;(function(t){t.Gregorian="Gregorian",t.Islamic="Islamic",t.Japanese="Japanese",t.Buddhist="Buddhist",t.Persian="Persian"})(Xe||(Xe={}));var Kt=Xe;let Z;const li=()=>(Z===void 0&&(Z=dn()),Z&&Z in Kt?Z:Kt.Gregorian);let ze;const ui=()=>(ze===void 0&&(ze=hn()),ze.firstDayOfWeek),di=new O,hi="directionChange",fi=()=>di.fireEvent(hi,void 0),pi=async()=>{const t=fi();await Promise.all(t),await ve({rtlAware:!0})};window.registerThemePropertiesLoader=T;window["sap-ui-webcomponents-bundle"]={configuration:{getAnimationMode:ci,getLanguage:st,setLanguage:Hn,getTheme:be,setTheme:$s,getNoConflict:at,setNoConflict:ho,getCalendarType:li,getRTL:Ps,getFirstDayOfWeek:ui},getIconNames:Tr,parseProperties:ai,registerI18nLoader:qn,getI18nBundle:ti,renderFinished:tt,applyDirection:pi,EventProvider:O};