@ui5/webcomponents-base 1.17.0-rc.2 → 1.17.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.
@@ -308,7 +308,7 @@ class ItemNavigation {
308
308
  return;
309
309
  }
310
310
  if (currentItem.id) {
311
- return currentItemDOMRef.querySelector(`#${currentItem.id}`);
311
+ return currentItemDOMRef.querySelector(`[id="${currentItem.id}"]`);
312
312
  }
313
313
  }
314
314
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ItemNavigation.js","sourceRoot":"","sources":["../../src/delegate/ItemNavigation.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n\tisDown,\n\tisUp,\n\tisLeft,\n\tisRight,\n\tisHome,\n\tisEnd,\n\tisPageDown,\n\tisPageUp,\n} from \"../Keys.js\";\nimport getActiveElement from \"../util/getActiveElement.js\";\n\nimport NavigationMode from \"../types/NavigationMode.js\";\nimport ItemNavigationBehavior from \"../types/ItemNavigationBehavior.js\";\n\nimport type UI5Element from \"../UI5Element.js\";\nimport { instanceOfUI5Element } from \"../UI5Element.js\";\n\ninterface ITabbable {\n\tid: string,\n\t_tabIndex: string,\n}\n\ntype ItemNavigationOptions = {\n\tcurrentIndex?: number,\n\tnavigationMode?: NavigationMode,\n\trowSize?: number\n\tskipItemsSize?: number,\n\tbehavior?: ItemNavigationBehavior,\n\tgetItemsCallback: () => Array<ITabbable>,\n\taffectedPropertiesNames?: Array<string>,\n};\n\n/**\n * The ItemNavigation class manages the calculations to determine the correct \"tabindex\" for a group of related items inside a root component.\n * Important: ItemNavigation only does the calculations and does not change \"tabindex\" directly, this is a responsibility of the developer.\n *\n * The keys that trigger ItemNavigation are:\n * - Up/down\n * - Left/right\n * - Home/End\n *\n * Usage:\n * 1) Use the \"getItemsCallback\" constructor property to pass a callback to ItemNavigation, which, whenever called, will return the list of items to navigate among.\n *\n * Each item passed to ItemNavigation via \"getItemsCallback\" must be:\n * - A) either a UI5Element with a \"_tabIndex\" property\n * - B) or an Object with \"id\" and \"_tabIndex\" properties which represents a part of the root component's shadow DOM.\n * The \"id\" must be a valid ID within the shadow root of the component ItemNavigation operates on.\n * This object must not be a DOM object because, as said, ItemNavigation will not set \"tabindex\" on it. It must be a representation of a DOM object only\n * and the developer has the responsibility to update the \"tabindex\" in the component's DOM.\n * - C) a combination of the above\n *\n * Whenever the user navigates with the keyboard, ItemNavigation will modify the \"_tabIndex\" properties of the items.\n * It is the items' responsibilities to re-render themselves and apply the correct value of \"tabindex\" (i.e. to map the \"_tabIndex\" ItemNavigation set to them to the \"tabindex\" property).\n * If the items of the ItemNavigation are UI5Elements themselves, this can happen naturally since they will be invalidated by their \"_tabIndex\" property.\n * If the items are Objects with \"id\" and \"_tabIndex\" however, it is the developer's responsibility to apply these and the easiest way is to have the root component invalidated by ItemNavigation.\n * To do so, set the \"affectedPropertiesNames\" constructor property to point to one or more of the root component's properties that need refreshing when \"_tabIndex\" is changed deeply.\n *\n * 2) Call the \"setCurrentItem\" method of ItemNavigation whenever you want to change the current item.\n * This is most commonly required if the user for example clicks on an item and thus selects it directly.\n * Pass as the only argument to \"setCurrentItem\" the item that becomes current (must be one of the items, returned by \"getItemsCallback\").\n *\n * @class\n * @public\n */\nclass ItemNavigation {\n\trootWebComponent: UI5Element;\n\n\t_getItems: () => Array<ITabbable>;\n\n\t_currentIndex: number;\n\n\t_rowSize: number;\n\n\t_behavior: ItemNavigationBehavior;\n\n\t_navigationMode: NavigationMode;\n\n\t_affectedPropertiesNames: Array<string>;\n\n\t_skipItemsSize: number | null;\n\n\t/**\n\t *\n\t * @param rootWebComponent the component to operate on (component that slots or contains within its shadow root the items the user navigates among)\n\t * @param {ItemNavigationOptions} options Object with configuration options:\n\t * - currentIndex: the index of the item that will be initially selected (from which navigation will begin)\n\t * - navigationMode (Auto|Horizontal|Vertical): whether the items are displayed horizontally (Horizontal), vertically (Vertical) or as a matrix (Auto) meaning the user can navigate in both directions (up/down and left/right)\n\t * - rowSize: tells how many items per row there are when the items are not rendered as a flat list but rather as a matrix. Relevant for navigationMode=Auto\n\t * \t- skipItemsSize: tells how many items upon PAGE_UP and PAGE_DOWN should be skipped to applying the focus on the next item\n\t * - behavior (Static|Cycling): tells what to do when trying to navigate beyond the first and last items\n\t * Static means that nothing happens if the user tries to navigate beyond the first/last item.\n\t * Cycling means that when the user navigates beyond the last item they go to the first and vice versa.\n\t * - getItemsCallback: function that, when called, returns an array with all items the user can navigate among\n\t * - affectedPropertiesNames: a list of metadata properties on the root component which, upon user navigation, will be reassigned by address thus causing the root component to invalidate\n\t */\n\tconstructor(rootWebComponent: UI5Element, options: ItemNavigationOptions) {\n\t\tif (!rootWebComponent.isUI5Element) {\n\t\t\tthrow new Error(\"The root web component must be a UI5 Element instance\");\n\t\t}\n\n\t\tthis.rootWebComponent = rootWebComponent;\n\t\tthis.rootWebComponent.addEventListener(\"keydown\", this._onkeydown.bind(this));\n\t\tthis.rootWebComponent._onComponentStateFinalized = () => {\n\t\t\tthis._init();\n\t\t};\n\n\t\tif (typeof options.getItemsCallback !== \"function\") {\n\t\t\tthrow new Error(\"getItemsCallback is required\");\n\t\t}\n\n\t\tthis._getItems = options.getItemsCallback;\n\t\tthis._currentIndex = options.currentIndex || 0;\n\t\tthis._rowSize = options.rowSize || 1;\n\t\tthis._behavior = options.behavior || ItemNavigationBehavior.Static;\n\t\tthis._navigationMode = options.navigationMode || NavigationMode.Auto;\n\t\tthis._affectedPropertiesNames = options.affectedPropertiesNames || [];\n\t\tthis._skipItemsSize = options.skipItemsSize || null;\n\t}\n\n\t/**\n\t * Call this method to set a new \"current\" (selected) item in the item navigation\n\t * Note: the item passed to this function must be one of the items, returned by the getItemsCallback function\n\t *\n\t * @public\n\t * @param current the new selected item\n\t */\n\tsetCurrentItem(current: ITabbable) {\n\t\tconst currentItemIndex = this._getItems().indexOf(current);\n\n\t\tif (currentItemIndex === -1) {\n\t\t\tconsole.warn(`The provided item is not managed by ItemNavigation`, current); // eslint-disable-line\n\t\t\treturn;\n\t\t}\n\n\t\tthis._currentIndex = currentItemIndex;\n\t\tthis._applyTabIndex();\n\t}\n\n\t/**\n\t * Call this method to dynamically change the row size\n\t *\n\t * @public\n\t * @param newRowSize\n\t */\n\tsetRowSize(newRowSize: number) {\n\t\tthis._rowSize = newRowSize;\n\t}\n\n\t_init() {\n\t\tthis._getItems().forEach((item, idx) => {\n\t\t\titem._tabIndex = (idx === this._currentIndex) ? \"0\" : \"-1\";\n\t\t});\n\t}\n\n\t_onkeydown(event: KeyboardEvent) {\n\t\tif (!this._canNavigate()) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst horizontalNavigationOn = this._navigationMode === NavigationMode.Horizontal || this._navigationMode === NavigationMode.Auto;\n\t\tconst verticalNavigationOn = this._navigationMode === NavigationMode.Vertical || this._navigationMode === NavigationMode.Auto;\n\t\tconst isRTL = this.rootWebComponent.effectiveDir === \"rtl\";\n\n\t\tif (isRTL && isLeft(event) && horizontalNavigationOn) {\n\t\t\tthis._handleRight();\n\t\t} else if (isRTL && isRight(event) && horizontalNavigationOn) {\n\t\t\tthis._handleLeft();\n\t\t} else if (isLeft(event) && horizontalNavigationOn) {\n\t\t\tthis._handleLeft();\n\t\t} else if (isRight(event) && horizontalNavigationOn) {\n\t\t\tthis._handleRight();\n\t\t} else if (isUp(event) && verticalNavigationOn) {\n\t\t\tthis._handleUp();\n\t\t} else if (isDown(event) && verticalNavigationOn) {\n\t\t\tthis._handleDown();\n\t\t} else if (isHome(event)) {\n\t\t\tthis._handleHome();\n\t\t} else if (isEnd(event)) {\n\t\t\tthis._handleEnd();\n\t\t} else if (isPageUp(event)) {\n\t\t\tthis._handlePageUp();\n\t\t} else if (isPageDown(event)) {\n\t\t\tthis._handlePageDown();\n\t\t} else {\n\t\t\treturn; // if none of the supported keys is pressed, we don't want to prevent the event or update the item navigation\n\t\t}\n\n\t\tevent.preventDefault();\n\t\tthis._applyTabIndex();\n\t\tthis._focusCurrentItem();\n\t}\n\n\t_handleUp() {\n\t\tconst itemsLength = this._getItems().length;\n\t\tif (this._currentIndex - this._rowSize >= 0) { // no border reached, just decrease the index by a row\n\t\t\tthis._currentIndex -= this._rowSize;\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._behavior === ItemNavigationBehavior.Cyclic) { // if cyclic, go to the **last** item in the **previous** column\n\t\t\tconst firstItemInThisColumnIndex = this._currentIndex % this._rowSize;\n\t\t\tconst firstItemInPreviousColumnIndex = firstItemInThisColumnIndex === 0 ? this._rowSize - 1 : firstItemInThisColumnIndex - 1; // find the first item in the previous column (if the current column is the first column -> move to the last column)\n\t\t\tconst rows = Math.ceil(itemsLength / this._rowSize); // how many rows there are (even if incomplete, f.e. for 14 items and _rowSize=4 -> 4 rows total, although only 2 items on the last row)\n\t\t\tlet lastItemInPreviousColumnIndex = firstItemInPreviousColumnIndex + (rows - 1) * this._rowSize; // multiply rows by columns, and add the column's first item's index\n\t\t\tif (lastItemInPreviousColumnIndex > itemsLength - 1) { // for incomplete rows, use the previous row's last item, as for them the last item is missing\n\t\t\t\tlastItemInPreviousColumnIndex -= this._rowSize;\n\t\t\t}\n\t\t\tthis._currentIndex = lastItemInPreviousColumnIndex;\n\t\t} else { // not cyclic, so just go to the first item\n\t\t\tthis._currentIndex = 0;\n\t\t}\n\t}\n\n\t_handleDown() {\n\t\tconst itemsLength = this._getItems().length;\n\t\tif (this._currentIndex + this._rowSize < itemsLength) { // no border reached, just increase the index by a row\n\t\t\tthis._currentIndex += this._rowSize;\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._behavior === ItemNavigationBehavior.Cyclic) { // if cyclic, go to the **first** item in the **next** column\n\t\t\tconst firstItemInThisColumnIndex = this._currentIndex % this._rowSize; // find the first item in the current column first\n\t\t\tconst firstItemInNextColumnIndex = (firstItemInThisColumnIndex + 1) % this._rowSize; // to get the first item in the next column, just increase the index by 1. The modulo by rows is for the case when we are at the last column\n\t\t\tthis._currentIndex = firstItemInNextColumnIndex;\n\t\t} else { // not cyclic, so just go to the last item\n\t\t\tthis._currentIndex = itemsLength - 1;\n\t\t}\n\t}\n\n\t_handleLeft() {\n\t\tconst itemsLength = this._getItems().length;\n\t\tif (this._currentIndex > 0) {\n\t\t\tthis._currentIndex -= 1;\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._behavior === ItemNavigationBehavior.Cyclic) { // go to the first item in the next column\n\t\t\tthis._currentIndex = itemsLength - 1;\n\t\t}\n\t}\n\n\t_handleRight() {\n\t\tconst itemsLength = this._getItems().length;\n\t\tif (this._currentIndex < itemsLength - 1) {\n\t\t\tthis._currentIndex += 1;\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._behavior === ItemNavigationBehavior.Cyclic) { // go to the first item in the next column\n\t\t\tthis._currentIndex = 0;\n\t\t}\n\t}\n\n\t_handleHome() {\n\t\tconst homeEndRange = this._rowSize > 1 ? this._rowSize : this._getItems().length;\n\t\tthis._currentIndex -= this._currentIndex % homeEndRange;\n\t}\n\n\t_handleEnd() {\n\t\tconst homeEndRange = this._rowSize > 1 ? this._rowSize : this._getItems().length;\n\t\tthis._currentIndex += (homeEndRange - 1 - this._currentIndex % homeEndRange); // eslint-disable-line\n\t}\n\n\t_handlePageUp() {\n\t\tif (this._rowSize > 1) {\n\t\t\t// eslint-disable-next-line\n\t\t\t// TODO: handle page up on matrix (grid) layout - ColorPalette, ProductSwitch.\n\t\t\treturn;\n\t\t}\n\t\tthis._handlePageUpFlat();\n\t}\n\n\t_handlePageDown() {\n\t\tif (this._rowSize > 1) {\n\t\t\t// eslint-disable-next-line\n\t\t\t// TODO: handle page up on matrix (grid) layout - ColorPalette, ProductSwitch.\n\t\t\treturn;\n\t\t}\n\t\tthis._handlePageDownFlat();\n\t}\n\n\t/**\n\t * Handles PAGE_UP in a flat list-like structure, both vertically and horizontally.\n\t */\n\t_handlePageUpFlat() {\n\t\tif (this._skipItemsSize === null) {\n\t\t\t// Move the focus to the very top (as Home).\n\t\t\tthis._currentIndex -= this._currentIndex;\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._currentIndex + 1 > this._skipItemsSize) {\n\t\t\t// When there are more than \"skipItemsSize\" number of items to the top,\n\t\t\t// move the focus up/left with the predefined number.\n\t\t\tthis._currentIndex -= this._skipItemsSize;\n\t\t} else {\n\t\t\t// Otherwise, move the focus to the very top (as Home).\n\t\t\tthis._currentIndex -= this._currentIndex;\n\t\t}\n\t}\n\n\t/**\n\t * Handles PAGE_DOWN in a flat list-like structure, both vertically and horizontally.\n\t */\n\t_handlePageDownFlat() {\n\t\tif (this._skipItemsSize === null) {\n\t\t\t// Move the focus to the very bottom (as End).\n\t\t\tthis._currentIndex = this._getItems().length - 1;\n\t\t\treturn;\n\t\t}\n\n\t\tconst currentToEndRange = this._getItems().length - this._currentIndex - 1;\n\n\t\tif (currentToEndRange > this._skipItemsSize) {\n\t\t\t// When there are more than \"skipItemsSize\" number of items until the bottom,\n\t\t\t// move the focus down/right with the predefined number.\n\t\t\tthis._currentIndex += this._skipItemsSize;\n\t\t} else {\n\t\t\t// Otherwise, move the focus to the very bottom (as End).\n\t\t\tthis._currentIndex = this._getItems().length - 1;\n\t\t}\n\t}\n\n\t_applyTabIndex() {\n\t\tconst items = this._getItems();\n\t\tfor (let i = 0; i < items.length; i++) {\n\t\t\titems[i]._tabIndex = i === this._currentIndex ? \"0\" : \"-1\";\n\t\t}\n\n\t\tthis._affectedPropertiesNames.forEach(propName => {\n\t\t\tconst prop = (this.rootWebComponent as Record<string, any>)[propName];\n\t\t\t(this.rootWebComponent as Record<string, any>)[propName] = Array.isArray(prop) ? [...prop] : { ...prop };\n\t\t});\n\t}\n\n\t_focusCurrentItem() {\n\t\tconst currentItem = this._getCurrentItem();\n\t\tif (currentItem) {\n\t\t\tcurrentItem.focus();\n\t\t}\n\t}\n\n\t_canNavigate() {\n\t\tconst currentItem = this._getCurrentItem();\n\t\tconst activeElement = getActiveElement();\n\n\t\treturn currentItem && currentItem === activeElement;\n\t}\n\n\t_getCurrentItem() {\n\t\tconst items = this._getItems();\n\n\t\tif (!items.length) {\n\t\t\treturn;\n\t\t}\n\n\t\t// normalize the index\n\t\twhile (this._currentIndex >= items.length) {\n\t\t\tthis._currentIndex -= this._rowSize;\n\t\t}\n\n\t\tif (this._currentIndex < 0) {\n\t\t\tthis._currentIndex = 0;\n\t\t}\n\n\t\tconst currentItem = items[this._currentIndex];\n\n\t\tif (!currentItem) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (instanceOfUI5Element(currentItem)) {\n\t\t\treturn currentItem.getFocusDomRef();\n\t\t}\n\n\t\tconst currentItemDOMRef = this.rootWebComponent.getDomRef();\n\t\tif (!currentItemDOMRef) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (currentItem.id) {\n\t\t\treturn currentItemDOMRef.querySelector(`#${currentItem.id}`) as HTMLElement;\n\t\t}\n\t}\n}\n\nexport default ItemNavigation;\n\nexport {\n\tITabbable,\n};\n"]}
1
+ {"version":3,"file":"ItemNavigation.js","sourceRoot":"","sources":["../../src/delegate/ItemNavigation.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n\tisDown,\n\tisUp,\n\tisLeft,\n\tisRight,\n\tisHome,\n\tisEnd,\n\tisPageDown,\n\tisPageUp,\n} from \"../Keys.js\";\nimport getActiveElement from \"../util/getActiveElement.js\";\n\nimport NavigationMode from \"../types/NavigationMode.js\";\nimport ItemNavigationBehavior from \"../types/ItemNavigationBehavior.js\";\n\nimport type UI5Element from \"../UI5Element.js\";\nimport { instanceOfUI5Element } from \"../UI5Element.js\";\n\ninterface ITabbable {\n\tid: string,\n\t_tabIndex: string,\n}\n\ntype ItemNavigationOptions = {\n\tcurrentIndex?: number,\n\tnavigationMode?: NavigationMode,\n\trowSize?: number\n\tskipItemsSize?: number,\n\tbehavior?: ItemNavigationBehavior,\n\tgetItemsCallback: () => Array<ITabbable>,\n\taffectedPropertiesNames?: Array<string>,\n};\n\n/**\n * The ItemNavigation class manages the calculations to determine the correct \"tabindex\" for a group of related items inside a root component.\n * Important: ItemNavigation only does the calculations and does not change \"tabindex\" directly, this is a responsibility of the developer.\n *\n * The keys that trigger ItemNavigation are:\n * - Up/down\n * - Left/right\n * - Home/End\n *\n * Usage:\n * 1) Use the \"getItemsCallback\" constructor property to pass a callback to ItemNavigation, which, whenever called, will return the list of items to navigate among.\n *\n * Each item passed to ItemNavigation via \"getItemsCallback\" must be:\n * - A) either a UI5Element with a \"_tabIndex\" property\n * - B) or an Object with \"id\" and \"_tabIndex\" properties which represents a part of the root component's shadow DOM.\n * The \"id\" must be a valid ID within the shadow root of the component ItemNavigation operates on.\n * This object must not be a DOM object because, as said, ItemNavigation will not set \"tabindex\" on it. It must be a representation of a DOM object only\n * and the developer has the responsibility to update the \"tabindex\" in the component's DOM.\n * - C) a combination of the above\n *\n * Whenever the user navigates with the keyboard, ItemNavigation will modify the \"_tabIndex\" properties of the items.\n * It is the items' responsibilities to re-render themselves and apply the correct value of \"tabindex\" (i.e. to map the \"_tabIndex\" ItemNavigation set to them to the \"tabindex\" property).\n * If the items of the ItemNavigation are UI5Elements themselves, this can happen naturally since they will be invalidated by their \"_tabIndex\" property.\n * If the items are Objects with \"id\" and \"_tabIndex\" however, it is the developer's responsibility to apply these and the easiest way is to have the root component invalidated by ItemNavigation.\n * To do so, set the \"affectedPropertiesNames\" constructor property to point to one or more of the root component's properties that need refreshing when \"_tabIndex\" is changed deeply.\n *\n * 2) Call the \"setCurrentItem\" method of ItemNavigation whenever you want to change the current item.\n * This is most commonly required if the user for example clicks on an item and thus selects it directly.\n * Pass as the only argument to \"setCurrentItem\" the item that becomes current (must be one of the items, returned by \"getItemsCallback\").\n *\n * @class\n * @public\n */\nclass ItemNavigation {\n\trootWebComponent: UI5Element;\n\n\t_getItems: () => Array<ITabbable>;\n\n\t_currentIndex: number;\n\n\t_rowSize: number;\n\n\t_behavior: ItemNavigationBehavior;\n\n\t_navigationMode: NavigationMode;\n\n\t_affectedPropertiesNames: Array<string>;\n\n\t_skipItemsSize: number | null;\n\n\t/**\n\t *\n\t * @param rootWebComponent the component to operate on (component that slots or contains within its shadow root the items the user navigates among)\n\t * @param {ItemNavigationOptions} options Object with configuration options:\n\t * - currentIndex: the index of the item that will be initially selected (from which navigation will begin)\n\t * - navigationMode (Auto|Horizontal|Vertical): whether the items are displayed horizontally (Horizontal), vertically (Vertical) or as a matrix (Auto) meaning the user can navigate in both directions (up/down and left/right)\n\t * - rowSize: tells how many items per row there are when the items are not rendered as a flat list but rather as a matrix. Relevant for navigationMode=Auto\n\t * \t- skipItemsSize: tells how many items upon PAGE_UP and PAGE_DOWN should be skipped to applying the focus on the next item\n\t * - behavior (Static|Cycling): tells what to do when trying to navigate beyond the first and last items\n\t * Static means that nothing happens if the user tries to navigate beyond the first/last item.\n\t * Cycling means that when the user navigates beyond the last item they go to the first and vice versa.\n\t * - getItemsCallback: function that, when called, returns an array with all items the user can navigate among\n\t * - affectedPropertiesNames: a list of metadata properties on the root component which, upon user navigation, will be reassigned by address thus causing the root component to invalidate\n\t */\n\tconstructor(rootWebComponent: UI5Element, options: ItemNavigationOptions) {\n\t\tif (!rootWebComponent.isUI5Element) {\n\t\t\tthrow new Error(\"The root web component must be a UI5 Element instance\");\n\t\t}\n\n\t\tthis.rootWebComponent = rootWebComponent;\n\t\tthis.rootWebComponent.addEventListener(\"keydown\", this._onkeydown.bind(this));\n\t\tthis.rootWebComponent._onComponentStateFinalized = () => {\n\t\t\tthis._init();\n\t\t};\n\n\t\tif (typeof options.getItemsCallback !== \"function\") {\n\t\t\tthrow new Error(\"getItemsCallback is required\");\n\t\t}\n\n\t\tthis._getItems = options.getItemsCallback;\n\t\tthis._currentIndex = options.currentIndex || 0;\n\t\tthis._rowSize = options.rowSize || 1;\n\t\tthis._behavior = options.behavior || ItemNavigationBehavior.Static;\n\t\tthis._navigationMode = options.navigationMode || NavigationMode.Auto;\n\t\tthis._affectedPropertiesNames = options.affectedPropertiesNames || [];\n\t\tthis._skipItemsSize = options.skipItemsSize || null;\n\t}\n\n\t/**\n\t * Call this method to set a new \"current\" (selected) item in the item navigation\n\t * Note: the item passed to this function must be one of the items, returned by the getItemsCallback function\n\t *\n\t * @public\n\t * @param current the new selected item\n\t */\n\tsetCurrentItem(current: ITabbable) {\n\t\tconst currentItemIndex = this._getItems().indexOf(current);\n\n\t\tif (currentItemIndex === -1) {\n\t\t\tconsole.warn(`The provided item is not managed by ItemNavigation`, current); // eslint-disable-line\n\t\t\treturn;\n\t\t}\n\n\t\tthis._currentIndex = currentItemIndex;\n\t\tthis._applyTabIndex();\n\t}\n\n\t/**\n\t * Call this method to dynamically change the row size\n\t *\n\t * @public\n\t * @param newRowSize\n\t */\n\tsetRowSize(newRowSize: number) {\n\t\tthis._rowSize = newRowSize;\n\t}\n\n\t_init() {\n\t\tthis._getItems().forEach((item, idx) => {\n\t\t\titem._tabIndex = (idx === this._currentIndex) ? \"0\" : \"-1\";\n\t\t});\n\t}\n\n\t_onkeydown(event: KeyboardEvent) {\n\t\tif (!this._canNavigate()) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst horizontalNavigationOn = this._navigationMode === NavigationMode.Horizontal || this._navigationMode === NavigationMode.Auto;\n\t\tconst verticalNavigationOn = this._navigationMode === NavigationMode.Vertical || this._navigationMode === NavigationMode.Auto;\n\t\tconst isRTL = this.rootWebComponent.effectiveDir === \"rtl\";\n\n\t\tif (isRTL && isLeft(event) && horizontalNavigationOn) {\n\t\t\tthis._handleRight();\n\t\t} else if (isRTL && isRight(event) && horizontalNavigationOn) {\n\t\t\tthis._handleLeft();\n\t\t} else if (isLeft(event) && horizontalNavigationOn) {\n\t\t\tthis._handleLeft();\n\t\t} else if (isRight(event) && horizontalNavigationOn) {\n\t\t\tthis._handleRight();\n\t\t} else if (isUp(event) && verticalNavigationOn) {\n\t\t\tthis._handleUp();\n\t\t} else if (isDown(event) && verticalNavigationOn) {\n\t\t\tthis._handleDown();\n\t\t} else if (isHome(event)) {\n\t\t\tthis._handleHome();\n\t\t} else if (isEnd(event)) {\n\t\t\tthis._handleEnd();\n\t\t} else if (isPageUp(event)) {\n\t\t\tthis._handlePageUp();\n\t\t} else if (isPageDown(event)) {\n\t\t\tthis._handlePageDown();\n\t\t} else {\n\t\t\treturn; // if none of the supported keys is pressed, we don't want to prevent the event or update the item navigation\n\t\t}\n\n\t\tevent.preventDefault();\n\t\tthis._applyTabIndex();\n\t\tthis._focusCurrentItem();\n\t}\n\n\t_handleUp() {\n\t\tconst itemsLength = this._getItems().length;\n\t\tif (this._currentIndex - this._rowSize >= 0) { // no border reached, just decrease the index by a row\n\t\t\tthis._currentIndex -= this._rowSize;\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._behavior === ItemNavigationBehavior.Cyclic) { // if cyclic, go to the **last** item in the **previous** column\n\t\t\tconst firstItemInThisColumnIndex = this._currentIndex % this._rowSize;\n\t\t\tconst firstItemInPreviousColumnIndex = firstItemInThisColumnIndex === 0 ? this._rowSize - 1 : firstItemInThisColumnIndex - 1; // find the first item in the previous column (if the current column is the first column -> move to the last column)\n\t\t\tconst rows = Math.ceil(itemsLength / this._rowSize); // how many rows there are (even if incomplete, f.e. for 14 items and _rowSize=4 -> 4 rows total, although only 2 items on the last row)\n\t\t\tlet lastItemInPreviousColumnIndex = firstItemInPreviousColumnIndex + (rows - 1) * this._rowSize; // multiply rows by columns, and add the column's first item's index\n\t\t\tif (lastItemInPreviousColumnIndex > itemsLength - 1) { // for incomplete rows, use the previous row's last item, as for them the last item is missing\n\t\t\t\tlastItemInPreviousColumnIndex -= this._rowSize;\n\t\t\t}\n\t\t\tthis._currentIndex = lastItemInPreviousColumnIndex;\n\t\t} else { // not cyclic, so just go to the first item\n\t\t\tthis._currentIndex = 0;\n\t\t}\n\t}\n\n\t_handleDown() {\n\t\tconst itemsLength = this._getItems().length;\n\t\tif (this._currentIndex + this._rowSize < itemsLength) { // no border reached, just increase the index by a row\n\t\t\tthis._currentIndex += this._rowSize;\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._behavior === ItemNavigationBehavior.Cyclic) { // if cyclic, go to the **first** item in the **next** column\n\t\t\tconst firstItemInThisColumnIndex = this._currentIndex % this._rowSize; // find the first item in the current column first\n\t\t\tconst firstItemInNextColumnIndex = (firstItemInThisColumnIndex + 1) % this._rowSize; // to get the first item in the next column, just increase the index by 1. The modulo by rows is for the case when we are at the last column\n\t\t\tthis._currentIndex = firstItemInNextColumnIndex;\n\t\t} else { // not cyclic, so just go to the last item\n\t\t\tthis._currentIndex = itemsLength - 1;\n\t\t}\n\t}\n\n\t_handleLeft() {\n\t\tconst itemsLength = this._getItems().length;\n\t\tif (this._currentIndex > 0) {\n\t\t\tthis._currentIndex -= 1;\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._behavior === ItemNavigationBehavior.Cyclic) { // go to the first item in the next column\n\t\t\tthis._currentIndex = itemsLength - 1;\n\t\t}\n\t}\n\n\t_handleRight() {\n\t\tconst itemsLength = this._getItems().length;\n\t\tif (this._currentIndex < itemsLength - 1) {\n\t\t\tthis._currentIndex += 1;\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._behavior === ItemNavigationBehavior.Cyclic) { // go to the first item in the next column\n\t\t\tthis._currentIndex = 0;\n\t\t}\n\t}\n\n\t_handleHome() {\n\t\tconst homeEndRange = this._rowSize > 1 ? this._rowSize : this._getItems().length;\n\t\tthis._currentIndex -= this._currentIndex % homeEndRange;\n\t}\n\n\t_handleEnd() {\n\t\tconst homeEndRange = this._rowSize > 1 ? this._rowSize : this._getItems().length;\n\t\tthis._currentIndex += (homeEndRange - 1 - this._currentIndex % homeEndRange); // eslint-disable-line\n\t}\n\n\t_handlePageUp() {\n\t\tif (this._rowSize > 1) {\n\t\t\t// eslint-disable-next-line\n\t\t\t// TODO: handle page up on matrix (grid) layout - ColorPalette, ProductSwitch.\n\t\t\treturn;\n\t\t}\n\t\tthis._handlePageUpFlat();\n\t}\n\n\t_handlePageDown() {\n\t\tif (this._rowSize > 1) {\n\t\t\t// eslint-disable-next-line\n\t\t\t// TODO: handle page up on matrix (grid) layout - ColorPalette, ProductSwitch.\n\t\t\treturn;\n\t\t}\n\t\tthis._handlePageDownFlat();\n\t}\n\n\t/**\n\t * Handles PAGE_UP in a flat list-like structure, both vertically and horizontally.\n\t */\n\t_handlePageUpFlat() {\n\t\tif (this._skipItemsSize === null) {\n\t\t\t// Move the focus to the very top (as Home).\n\t\t\tthis._currentIndex -= this._currentIndex;\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._currentIndex + 1 > this._skipItemsSize) {\n\t\t\t// When there are more than \"skipItemsSize\" number of items to the top,\n\t\t\t// move the focus up/left with the predefined number.\n\t\t\tthis._currentIndex -= this._skipItemsSize;\n\t\t} else {\n\t\t\t// Otherwise, move the focus to the very top (as Home).\n\t\t\tthis._currentIndex -= this._currentIndex;\n\t\t}\n\t}\n\n\t/**\n\t * Handles PAGE_DOWN in a flat list-like structure, both vertically and horizontally.\n\t */\n\t_handlePageDownFlat() {\n\t\tif (this._skipItemsSize === null) {\n\t\t\t// Move the focus to the very bottom (as End).\n\t\t\tthis._currentIndex = this._getItems().length - 1;\n\t\t\treturn;\n\t\t}\n\n\t\tconst currentToEndRange = this._getItems().length - this._currentIndex - 1;\n\n\t\tif (currentToEndRange > this._skipItemsSize) {\n\t\t\t// When there are more than \"skipItemsSize\" number of items until the bottom,\n\t\t\t// move the focus down/right with the predefined number.\n\t\t\tthis._currentIndex += this._skipItemsSize;\n\t\t} else {\n\t\t\t// Otherwise, move the focus to the very bottom (as End).\n\t\t\tthis._currentIndex = this._getItems().length - 1;\n\t\t}\n\t}\n\n\t_applyTabIndex() {\n\t\tconst items = this._getItems();\n\t\tfor (let i = 0; i < items.length; i++) {\n\t\t\titems[i]._tabIndex = i === this._currentIndex ? \"0\" : \"-1\";\n\t\t}\n\n\t\tthis._affectedPropertiesNames.forEach(propName => {\n\t\t\tconst prop = (this.rootWebComponent as Record<string, any>)[propName];\n\t\t\t(this.rootWebComponent as Record<string, any>)[propName] = Array.isArray(prop) ? [...prop] : { ...prop };\n\t\t});\n\t}\n\n\t_focusCurrentItem() {\n\t\tconst currentItem = this._getCurrentItem();\n\t\tif (currentItem) {\n\t\t\tcurrentItem.focus();\n\t\t}\n\t}\n\n\t_canNavigate() {\n\t\tconst currentItem = this._getCurrentItem();\n\t\tconst activeElement = getActiveElement();\n\n\t\treturn currentItem && currentItem === activeElement;\n\t}\n\n\t_getCurrentItem() {\n\t\tconst items = this._getItems();\n\n\t\tif (!items.length) {\n\t\t\treturn;\n\t\t}\n\n\t\t// normalize the index\n\t\twhile (this._currentIndex >= items.length) {\n\t\t\tthis._currentIndex -= this._rowSize;\n\t\t}\n\n\t\tif (this._currentIndex < 0) {\n\t\t\tthis._currentIndex = 0;\n\t\t}\n\n\t\tconst currentItem = items[this._currentIndex];\n\n\t\tif (!currentItem) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (instanceOfUI5Element(currentItem)) {\n\t\t\treturn currentItem.getFocusDomRef();\n\t\t}\n\n\t\tconst currentItemDOMRef = this.rootWebComponent.getDomRef();\n\t\tif (!currentItemDOMRef) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (currentItem.id) {\n\t\t\treturn currentItemDOMRef.querySelector(`[id=\"${currentItem.id}\"]`) as HTMLElement;\n\t\t}\n\t}\n}\n\nexport default ItemNavigation;\n\nexport {\n\tITabbable,\n};\n"]}
@@ -1,10 +1,10 @@
1
1
  const VersionInfo = {
2
- version: "1.17.0-rc.2",
2
+ version: "1.17.0",
3
3
  major: 1,
4
4
  minor: 17,
5
5
  patch: 0,
6
- suffix: "-rc.2",
6
+ suffix: "",
7
7
  isNext: false,
8
- buildTime: 1692864794,
8
+ buildTime: 1693569686,
9
9
  };
10
10
  export default VersionInfo;
@@ -6,8 +6,8 @@
6
6
  <title>Base package default test page</title>
7
7
 
8
8
 
9
- <script type="module" crossorigin src="/assets/Boot.5010d1af.js"></script>
10
- <script type="module" crossorigin src="/assets/bundle.esm.3b91185c.js"></script>
9
+ <script type="module" crossorigin src="/assets/Boot.7c008668.js"></script>
10
+ <script type="module" crossorigin src="/assets/bundle.esm.aee182c0.js"></script>
11
11
  </head>
12
12
 
13
13
  <body>
@@ -6,8 +6,8 @@
6
6
  <script>delete Document.prototype.adoptedStyleSheets</script>
7
7
 
8
8
 
9
- <script type="module" crossorigin src="/assets/test/pages/Boot.html.8a8f43af.js"></script>
10
- <link rel="modulepreload" crossorigin href="/assets/Boot.5010d1af.js">
9
+ <script type="module" crossorigin src="/assets/test/pages/Boot.html.5bd26505.js"></script>
10
+ <link rel="modulepreload" crossorigin href="/assets/Boot.7c008668.js">
11
11
  <link rel="stylesheet" href="/assets/Boot.34b7cea0.css">
12
12
  </head>
13
13
  <body>
@@ -8,8 +8,8 @@
8
8
 
9
9
 
10
10
 
11
- <script type="module" crossorigin src="/assets/Boot.5010d1af.js"></script>
12
- <script type="module" crossorigin src="/assets/bundle.esm.3b91185c.js"></script>
11
+ <script type="module" crossorigin src="/assets/Boot.7c008668.js"></script>
12
+ <script type="module" crossorigin src="/assets/bundle.esm.aee182c0.js"></script>
13
13
  </head>
14
14
 
15
15
  <body>
@@ -40,8 +40,8 @@
40
40
 
41
41
 
42
42
 
43
- <script type="module" crossorigin src="/assets/Boot.5010d1af.js"></script>
44
- <script type="module" crossorigin src="/assets/bundle.esm.3b91185c.js"></script>
43
+ <script type="module" crossorigin src="/assets/Boot.7c008668.js"></script>
44
+ <script type="module" crossorigin src="/assets/bundle.esm.aee182c0.js"></script>
45
45
  </head>
46
46
 
47
47
  <body>
@@ -4,8 +4,8 @@
4
4
  <meta charset="utf-8">
5
5
  <title>Compex Template Test Page</title>
6
6
 
7
- <script type="module" crossorigin src="/assets/Boot.5010d1af.js"></script>
8
- <script type="module" crossorigin src="/assets/bundle.esm.3b91185c.js"></script>
7
+ <script type="module" crossorigin src="/assets/Boot.7c008668.js"></script>
8
+ <script type="module" crossorigin src="/assets/bundle.esm.aee182c0.js"></script>
9
9
  </head>
10
10
 
11
11
  <body>
@@ -7,9 +7,9 @@
7
7
 
8
8
 
9
9
 
10
- <script type="module" crossorigin src="/assets/test/pages/i18n.html.f24e0e47.js"></script>
11
- <link rel="modulepreload" crossorigin href="/assets/Boot.5010d1af.js">
12
- <link rel="modulepreload" crossorigin href="/assets/bundle.esm.3b91185c.js">
10
+ <script type="module" crossorigin src="/assets/test/pages/i18n.html.2c5de204.js"></script>
11
+ <link rel="modulepreload" crossorigin href="/assets/Boot.7c008668.js">
12
+ <link rel="modulepreload" crossorigin href="/assets/bundle.esm.aee182c0.js">
13
13
  </head>
14
14
 
15
15
  <body>
@@ -8,9 +8,9 @@
8
8
 
9
9
 
10
10
 
11
- <script type="module" crossorigin src="/assets/test/pages/i18n_texts.html.073f25ad.js"></script>
12
- <link rel="modulepreload" crossorigin href="/assets/Boot.5010d1af.js">
13
- <link rel="modulepreload" crossorigin href="/assets/bundle.esm.3b91185c.js">
11
+ <script type="module" crossorigin src="/assets/test/pages/i18n_texts.html.758c7f6b.js"></script>
12
+ <link rel="modulepreload" crossorigin href="/assets/Boot.7c008668.js">
13
+ <link rel="modulepreload" crossorigin href="/assets/bundle.esm.aee182c0.js">
14
14
  </head>
15
15
 
16
16
  <body>
@@ -4,7 +4,6 @@ import getThemeDesignerTheme from "./getThemeDesignerTheme.js";
4
4
  import { fireThemeLoaded } from "./ThemeLoaded.js";
5
5
  import { getFeature } from "../FeaturesRegistry.js";
6
6
  import { attachCustomThemeStylesToHead, getThemeRoot } from "../config/ThemeRoot.js";
7
- import OpenUI5Support from "../features/OpenUI5Support.js";
8
7
  import { DEFAULT_THEME } from "../generated/AssetParameters.js";
9
8
  import { getCurrentRuntimeIndex } from "../Runtimes.js";
10
9
  const BASE_THEME_PACKAGE = "@ui5/webcomponents-theming";
@@ -45,7 +44,7 @@ const detectExternalTheme = async (theme) => {
45
44
  }
46
45
  // If OpenUI5Support is enabled, try to find out if it loaded variables
47
46
  const openUI5Support = getFeature("OpenUI5Support");
48
- if (openUI5Support && OpenUI5Support.isOpenUI5Detected()) {
47
+ if (openUI5Support && openUI5Support.isOpenUI5Detected()) {
49
48
  const varsLoaded = openUI5Support.cssVariablesLoaded();
50
49
  if (varsLoaded) {
51
50
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"applyTheme.js","sourceRoot":"","sources":["../../src/theming/applyTheme.ts"],"names":[],"mappings":"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","sourcesContent":["import { getThemeProperties, getRegisteredPackages, isThemeRegistered } from \"../asset-registries/Themes.js\";\nimport { removeStyle, createOrUpdateStyle } from \"../ManagedStyles.js\";\nimport getThemeDesignerTheme from \"./getThemeDesignerTheme.js\";\nimport { fireThemeLoaded } from \"./ThemeLoaded.js\";\nimport { getFeature } from \"../FeaturesRegistry.js\";\nimport { attachCustomThemeStylesToHead, getThemeRoot } from \"../config/ThemeRoot.js\";\nimport OpenUI5Support from \"../features/OpenUI5Support.js\";\nimport { DEFAULT_THEME } from \"../generated/AssetParameters.js\";\nimport { getCurrentRuntimeIndex } from \"../Runtimes.js\";\n\nconst BASE_THEME_PACKAGE = \"@ui5/webcomponents-theming\";\n\nconst isThemeBaseRegistered = () => {\n\tconst registeredPackages = getRegisteredPackages();\n\treturn registeredPackages.has(BASE_THEME_PACKAGE);\n};\n\nconst loadThemeBase = async (theme: string) => {\n\tif (!isThemeBaseRegistered()) {\n\t\treturn;\n\t}\n\n\tconst cssData = await getThemeProperties(BASE_THEME_PACKAGE, theme);\n\tif (cssData) {\n\t\tcreateOrUpdateStyle(cssData, \"data-ui5-theme-properties\", BASE_THEME_PACKAGE);\n\t}\n};\n\nconst deleteThemeBase = () => {\n\tremoveStyle(\"data-ui5-theme-properties\", BASE_THEME_PACKAGE);\n};\n\nconst loadComponentPackages = async (theme: string) => {\n\tconst registeredPackages = getRegisteredPackages();\n\n\tconst packagesStylesPromises = [...registeredPackages].map(async packageName => {\n\t\tif (packageName === BASE_THEME_PACKAGE) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst cssData = await getThemeProperties(packageName, theme);\n\t\tif (cssData) {\n\t\t\tcreateOrUpdateStyle(cssData, `data-ui5-component-properties-${getCurrentRuntimeIndex()}`, packageName);\n\t\t}\n\t});\n\n\treturn Promise.all(packagesStylesPromises);\n};\n\nconst detectExternalTheme = async (theme: string) => {\n\t// If theme designer theme is detected, use this\n\tconst extTheme = getThemeDesignerTheme();\n\tif (extTheme) {\n\t\treturn extTheme;\n\t}\n\n\t// If OpenUI5Support is enabled, try to find out if it loaded variables\n\tconst openUI5Support = getFeature<typeof OpenUI5Support>(\"OpenUI5Support\");\n\tif (openUI5Support && OpenUI5Support.isOpenUI5Detected()) {\n\t\tconst varsLoaded = openUI5Support.cssVariablesLoaded();\n\t\tif (varsLoaded) {\n\t\t\treturn {\n\t\t\t\tthemeName: openUI5Support.getConfigurationSettingsObject()?.theme, // just themeName\n\t\t\t\tbaseThemeName: \"\", // baseThemeName is only relevant for custom themes\n\t\t\t};\n\t\t}\n\t} else if (getThemeRoot()) {\n\t\tawait attachCustomThemeStylesToHead(theme);\n\n\t\treturn getThemeDesignerTheme();\n\t}\n};\n\nconst applyTheme = async (theme: string) => {\n\tconst extTheme = await detectExternalTheme(theme);\n\n\t// Only load theme_base properties if there is no externally loaded theme, or there is, but it is not being loaded\n\tif (!extTheme || theme !== extTheme.themeName) {\n\t\tawait loadThemeBase(theme);\n\t} else {\n\t\tdeleteThemeBase();\n\t}\n\n\t// Always load component packages properties. For non-registered themes, try with the base theme, if any\n\tconst packagesTheme = isThemeRegistered(theme) ? theme : extTheme && extTheme.baseThemeName;\n\tawait loadComponentPackages(packagesTheme || DEFAULT_THEME);\n\n\tfireThemeLoaded(theme);\n};\n\nexport default applyTheme;\n"]}
1
+ {"version":3,"file":"applyTheme.js","sourceRoot":"","sources":["../../src/theming/applyTheme.ts"],"names":[],"mappings":"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","sourcesContent":["import { getThemeProperties, getRegisteredPackages, isThemeRegistered } from \"../asset-registries/Themes.js\";\nimport { removeStyle, createOrUpdateStyle } from \"../ManagedStyles.js\";\nimport getThemeDesignerTheme from \"./getThemeDesignerTheme.js\";\nimport { fireThemeLoaded } from \"./ThemeLoaded.js\";\nimport { getFeature } from \"../FeaturesRegistry.js\";\nimport { attachCustomThemeStylesToHead, getThemeRoot } from \"../config/ThemeRoot.js\";\nimport type OpenUI5Support from \"../features/OpenUI5Support.js\";\nimport { DEFAULT_THEME } from \"../generated/AssetParameters.js\";\nimport { getCurrentRuntimeIndex } from \"../Runtimes.js\";\n\nconst BASE_THEME_PACKAGE = \"@ui5/webcomponents-theming\";\n\nconst isThemeBaseRegistered = () => {\n\tconst registeredPackages = getRegisteredPackages();\n\treturn registeredPackages.has(BASE_THEME_PACKAGE);\n};\n\nconst loadThemeBase = async (theme: string) => {\n\tif (!isThemeBaseRegistered()) {\n\t\treturn;\n\t}\n\n\tconst cssData = await getThemeProperties(BASE_THEME_PACKAGE, theme);\n\tif (cssData) {\n\t\tcreateOrUpdateStyle(cssData, \"data-ui5-theme-properties\", BASE_THEME_PACKAGE);\n\t}\n};\n\nconst deleteThemeBase = () => {\n\tremoveStyle(\"data-ui5-theme-properties\", BASE_THEME_PACKAGE);\n};\n\nconst loadComponentPackages = async (theme: string) => {\n\tconst registeredPackages = getRegisteredPackages();\n\n\tconst packagesStylesPromises = [...registeredPackages].map(async packageName => {\n\t\tif (packageName === BASE_THEME_PACKAGE) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst cssData = await getThemeProperties(packageName, theme);\n\t\tif (cssData) {\n\t\t\tcreateOrUpdateStyle(cssData, `data-ui5-component-properties-${getCurrentRuntimeIndex()}`, packageName);\n\t\t}\n\t});\n\n\treturn Promise.all(packagesStylesPromises);\n};\n\nconst detectExternalTheme = async (theme: string) => {\n\t// If theme designer theme is detected, use this\n\tconst extTheme = getThemeDesignerTheme();\n\tif (extTheme) {\n\t\treturn extTheme;\n\t}\n\n\t// If OpenUI5Support is enabled, try to find out if it loaded variables\n\tconst openUI5Support = getFeature<typeof OpenUI5Support>(\"OpenUI5Support\");\n\tif (openUI5Support && openUI5Support.isOpenUI5Detected()) {\n\t\tconst varsLoaded = openUI5Support.cssVariablesLoaded();\n\t\tif (varsLoaded) {\n\t\t\treturn {\n\t\t\t\tthemeName: openUI5Support.getConfigurationSettingsObject()?.theme, // just themeName\n\t\t\t\tbaseThemeName: \"\", // baseThemeName is only relevant for custom themes\n\t\t\t};\n\t\t}\n\t} else if (getThemeRoot()) {\n\t\tawait attachCustomThemeStylesToHead(theme);\n\n\t\treturn getThemeDesignerTheme();\n\t}\n};\n\nconst applyTheme = async (theme: string) => {\n\tconst extTheme = await detectExternalTheme(theme);\n\n\t// Only load theme_base properties if there is no externally loaded theme, or there is, but it is not being loaded\n\tif (!extTheme || theme !== extTheme.themeName) {\n\t\tawait loadThemeBase(theme);\n\t} else {\n\t\tdeleteThemeBase();\n\t}\n\n\t// Always load component packages properties. For non-registered themes, try with the base theme, if any\n\tconst packagesTheme = isThemeRegistered(theme) ? theme : extTheme && extTheme.baseThemeName;\n\tawait loadComponentPackages(packagesTheme || DEFAULT_THEME);\n\n\tfireThemeLoaded(theme);\n};\n\nexport default applyTheme;\n"]}
@@ -0,0 +1,15 @@
1
+ import DataType from "./DataType.js";
2
+ /**
3
+ * @class
4
+ * CSSSize data type.
5
+ *
6
+ * @extends sap.ui.webc.base.types.DataType
7
+ * @constructor
8
+ * @author SAP SE
9
+ * @alias sap.ui.webc.base.types.CSSSize
10
+ * @public
11
+ */
12
+ declare class CSSSize extends DataType {
13
+ static isValid(value: string): boolean;
14
+ }
15
+ export default CSSSize;
@@ -0,0 +1,18 @@
1
+ import DataType from "./DataType.js";
2
+ /**
3
+ * @class
4
+ * CSSSize data type.
5
+ *
6
+ * @extends sap.ui.webc.base.types.DataType
7
+ * @constructor
8
+ * @author SAP SE
9
+ * @alias sap.ui.webc.base.types.CSSSize
10
+ * @public
11
+ */
12
+ class CSSSize extends DataType {
13
+ static isValid(value) {
14
+ return /^(auto|inherit|[-+]?(0*|([0-9]+|[0-9]*\.[0-9]+)([rR][eE][mM]|[eE][mM]|[eE][xX]|[pP][xX]|[cC][mM]|[mM][mM]|[iI][nN]|[pP][tT]|[pP][cC]|%))|calc\(\s*(\(\s*)*[-+]?(([0-9]+|[0-9]*\.[0-9]+)([rR][eE][mM]|[eE][mM]|[eE][xX]|[pP][xX]|[cC][mM]|[mM][mM]|[iI][nN]|[pP][tT]|[pP][cC]|%)?)(\s*(\)\s*)*(\s[-+]\s|[*\/])\s*(\(\s*)*([-+]?(([0-9]+|[0-9]*\.[0-9]+)([rR][eE][mM]|[eE][mM]|[eE][xX]|[pP][xX]|[cC][mM]|[mM][mM]|[iI][nN]|[pP][tT]|[pP][cC]|%)?)))*\s*(\)\s*)*\))$/.test(value); // eslint-disable-line
15
+ }
16
+ }
17
+ export default CSSSize;
18
+ //# sourceMappingURL=CSSSize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CSSSize.js","sourceRoot":"","sources":["../../src/types/CSSSize.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,eAAe,CAAC;AAErC;;;;;;;;;GASG;AACH,MAAM,OAAQ,SAAQ,QAAQ;IAC7B,MAAM,CAAC,OAAO,CAAC,KAAa;QAC3B,OAAO,ocAAoc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,sBAAsB;IAChf,CAAC;CACD;AAED,eAAe,OAAO,CAAC","sourcesContent":["import DataType from \"./DataType.js\";\n\n/**\n * @class\n * CSSSize data type.\n *\n * @extends sap.ui.webc.base.types.DataType\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webc.base.types.CSSSize\n * @public\n */\nclass CSSSize extends DataType {\n\tstatic isValid(value: string) {\n\t\treturn /^(auto|inherit|[-+]?(0*|([0-9]+|[0-9]*\\.[0-9]+)([rR][eE][mM]|[eE][mM]|[eE][xX]|[pP][xX]|[cC][mM]|[mM][mM]|[iI][nN]|[pP][tT]|[pP][cC]|%))|calc\\(\\s*(\\(\\s*)*[-+]?(([0-9]+|[0-9]*\\.[0-9]+)([rR][eE][mM]|[eE][mM]|[eE][xX]|[pP][xX]|[cC][mM]|[mM][mM]|[iI][nN]|[pP][tT]|[pP][cC]|%)?)(\\s*(\\)\\s*)*(\\s[-+]\\s|[*\\/])\\s*(\\(\\s*)*([-+]?(([0-9]+|[0-9]*\\.[0-9]+)([rR][eE][mM]|[eE][mM]|[eE][xX]|[pP][xX]|[cC][mM]|[mM][mM]|[iI][nN]|[pP][tT]|[pP][cC]|%)?)))*\\s*(\\)\\s*)*\\))$/.test(value); // eslint-disable-line\n\t}\n}\n\nexport default CSSSize;\n"]}
package/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  // animations/
2
2
  import scroll from "./dist/animations/scroll.js";
3
3
  import slideDown from "./dist/animations/slideDown.js";
4
- import slideUp from "./dist/animations/slideup.js";
4
+ import slideUp from "./dist/animations/slideUp.js";
5
5
 
6
6
  // config/
7
7
  import { getAnimationMode, setAnimationMode } from "./dist/config/AnimationMode.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ui5/webcomponents-base",
3
- "version": "1.17.0-rc.2",
3
+ "version": "1.17.0",
4
4
  "description": "UI5 Web Components: webcomponents.base",
5
5
  "author": "SAP SE (https://www.sap.com)",
6
6
  "license": "Apache-2.0",
@@ -37,8 +37,8 @@
37
37
  "devDependencies": {
38
38
  "@buxlabs/amd-to-es6": "0.16.1",
39
39
  "@openui5/sap.ui.core": "1.116.0",
40
- "@ui5/webcomponents-tools": "1.17.0-rc.2",
41
- "chromedriver": "114.0.0",
40
+ "@ui5/webcomponents-tools": "1.17.0",
41
+ "chromedriver": "116.0.0",
42
42
  "clean-css": "^5.2.2",
43
43
  "copy-and-watch": "^0.1.5",
44
44
  "cross-env": "^7.0.3",
@@ -47,5 +47,5 @@
47
47
  "replace-in-file": "^6.3.5",
48
48
  "resolve": "^1.20.0"
49
49
  },
50
- "gitHead": "e9778e42a321bc65ab0a52fbdcc7957b4290ab13"
50
+ "gitHead": "7494e311b19e26e49c87928cdc0d1165309f24ad"
51
51
  }
@@ -1,9 +0,0 @@
1
- (function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))s(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"&&s(i)}).observe(document,{childList:!0,subtree:!0});function n(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 s(r){if(r.ep)return;r.ep=!0;const o=n(r);fetch(r.href,o)}})();const I={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","sap_horizon_dark_exp","sap_horizon_hcb_exp","sap_horizon_hcw_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"]}},z=I.themes.default,mt=I.themes.all,j=I.languages.default,g=I.locales.default,pe=I.locales.all,wt=()=>{const e=navigator.languages,t=()=>navigator.language;return e&&e[0]||t()||j};var xe={},Be=xe.hasOwnProperty,yt=xe.toString,Fe=Be.toString,St=Fe.call(Object),me=function(e){var t,n;return!e||yt.call(e)!=="[object Object]"?!1:(t=Object.getPrototypeOf(e),t?(n=Be.call(t,"constructor")&&t.constructor,typeof n=="function"&&Fe.call(n)===St):!0)},_t=Object.create(null),Ve=function(e,t,n,s){var r,o,i,a,y,S,p=arguments[2]||{},H=3,ht=arguments.length,he=arguments[0]||!1,pt=arguments[1]?void 0:_t;for(typeof p!="object"&&typeof p!="function"&&(p={});H<ht;H++)if((y=arguments[H])!=null)for(a in y)r=p[a],i=y[a],!(a==="__proto__"||p===i)&&(he&&i&&(me(i)||(o=Array.isArray(i)))?(o?(o=!1,S=r&&Array.isArray(r)?r:[]):S=r&&me(r)?r:{},p[a]=Ve(he,arguments[1],S,i)):i!==pt&&(p[a]=i));return p};const je=function(e,t){return Ve(!0,!1,...arguments)},qe=new Map,Tt=(e,t)=>{qe.set(e,t)},A=e=>qe.get(e),bt=e=>{const t=document.querySelector(`META[name="${e}"]`);return t&&t.getAttribute("content")},At=e=>{const t=bt("sap-allowedThemeOrigins");return t&&t.split(",").some(n=>n==="*"||e===n.trim())},Lt=(e,t)=>{const n=new URL(e).pathname;return new URL(n,t).toString()},Ze=e=>{let t;try{if(e.startsWith(".")||e.startsWith("/"))t=new URL(e,window.location.href).toString();else{const n=new URL(e),s=n.origin;s&&At(s)?t=n.toString():t=Lt(n.toString(),window.location.href)}return t.endsWith("/")||(t=`${t}/`),`${t}UI5/`}catch{}};var ne;(function(e){e.Full="full",e.Basic="basic",e.Minimal="minimal",e.None="none"})(ne||(ne={}));const vt=ne;let we=!1,l={animationMode:vt.Full,theme:z,themeRoot:void 0,rtl:void 0,language:void 0,timezone:void 0,calendarType:void 0,noConflict:!1,formatSettings:{},fetchDefaultLanguage:!1};const rs=()=>(h(),l.animationMode),Ct=()=>(h(),l.theme),Et=()=>(h(),l.themeRoot),os=()=>(h(),l.rtl),Pt=()=>(h(),l.language),It=()=>(h(),l.fetchDefaultLanguage),is=()=>(h(),l.noConflict),as=()=>(h(),l.calendarType),cs=()=>(h(),l.formatSettings),x=new Map;x.set("true",!0);x.set("false",!1);const Rt=()=>{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&&(l=je(l,t))}},$t=()=>{const e=new URLSearchParams(window.location.search);e.forEach((t,n)=>{const s=n.split("sap-").length;s===0||s===n.split("sap-ui-").length||ye(n,t,"sap")}),e.forEach((t,n)=>{!n.startsWith("sap-ui")||ye(n,t,"sap-ui")})},Ot=e=>{const t=e.split("@")[1];return Ze(t)},Dt=(e,t)=>e==="theme"&&t.includes("@")?t.split("@")[0]:t,ye=(e,t,n)=>{const s=t.toLowerCase(),r=e.split(`${n}-`)[1];x.has(t)&&(t=x.get(s)),r==="theme"?(l.theme=Dt(r,t),t&&t.includes("@")&&(l.themeRoot=Ot(t))):l[r]=t},Mt=()=>{const e=A("OpenUI5Support");if(!e||!e.isOpenUI5Detected())return;const t=e.getConfigurationSettingsObject();l=je(l,t)},h=()=>{typeof document>"u"||we||(Rt(),$t(),Mt(),we=!0)};class R{constructor(){this._eventRegistry=new Map}attachEvent(t,n){const s=this._eventRegistry,r=s.get(t);if(!Array.isArray(r)){s.set(t,[n]);return}r.includes(n)||r.push(n)}detachEvent(t,n){const s=this._eventRegistry,r=s.get(t);if(!r)return;const o=r.indexOf(n);o!==-1&&r.splice(o,1),r.length===0&&s.delete(t)}fireEvent(t,n){const r=this._eventRegistry.get(t);return r?r.map(o=>o.call(this,n)):[]}fireEventAsync(t,n){return Promise.all(this.fireEvent(t,n))}isHandlerAttached(t,n){const r=this._eventRegistry.get(t);return r?r.includes(n):!1}hasListeners(t){return!!this._eventRegistry.get(t)}}const We=new R,Ne="languageChange",He=e=>{We.attachEvent(Ne,e)},Ut=e=>We.fireEventAsync(Ne,e),Se=10;class kt{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(n=>n!==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 n;const s=new Map;for(n=this.shift();n;){const r=s.get(n)||0;if(r>Se)throw new Error(`Web component processed too many times this task, max allowed is: ${Se}`);t(n),s.set(n,r+1),n=this.shift()}}}const zt=(e,t=document.body,n)=>{let s=document.querySelector(e);return s||(s=n?n():document.createElement(e),t.insertBefore(s,t.firstChild))},xt=()=>{const e=document.createElement("meta");return e.setAttribute("name","ui5-shared-resources"),e.setAttribute("content",""),e},Bt=()=>typeof document>"u"?null:zt('meta[name="ui5-shared-resources"]',document.head,xt),$=(e,t)=>{const n=e.split(".");let s=Bt();if(!s)return t;for(let r=0;r<n.length;r++){const o=n[r],i=r===n.length-1;Object.prototype.hasOwnProperty.call(s,o)||(s[o]=i?t:{}),s=s[o]}return s},Ft={version:"1.17.0-rc.2",major:1,minor:17,patch:0,suffix:"-rc.2",isNext:!1,buildTime:1692864794};let U,Vt="";const G=new Map,E=$("Runtimes",[]),jt=()=>{if(U===void 0){U=E.length;const e=Ft;E.push({...e,alias:Vt,description:`Runtime ${U} - ver ${e.version}`})}},ie=()=>U,qt=(e,t)=>{const n=`${e},${t}`;if(G.has(n))return G.get(n);const s=E[e],r=E[t];if(!s||!r)throw new Error("Invalid runtime index supplied");if(s.isNext||r.isNext)return s.buildTime-r.buildTime;const o=s.major-r.major;if(o)return o;const i=s.minor-r.minor;if(i)return i;const a=s.patch-r.patch;if(a)return a;const S=new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"}).compare(s.suffix,r.suffix);return G.set(n,S),S},Zt=()=>E,Ge=$("Tags",new Map),ae=new Set;let w=new Map,K;const Ke=-1,us=e=>{ae.add(e),Ge.set(e,ie())},ls=e=>ae.has(e),Wt=()=>[...ae.values()],fs=e=>{let t=Ge.get(e);t===void 0&&(t=Ke),w.has(t)||w.set(t,new Set),w.get(t).add(e),K||(K=setTimeout(()=>{Nt(),w=new Map,K=void 0},1e3))},Nt=()=>{const e=Zt(),t=ie(),n=e[t];let s="Multiple UI5 Web Components instances detected.";e.length>1&&(s=`${s}
2
- Loading order (versions before 1.1.0 not listed): ${e.map(r=>`
3
- ${r.description}`).join("")}`),[...w.keys()].forEach(r=>{let o,i;r===Ke?(o=1,i={description:"Older unknown runtime"}):(o=qt(t,r),i=e[r]);let a;o>0?a="an older":o<0?a="a newer":a="the same",s=`${s}
4
-
5
- "${n.description}" failed to define ${w.get(r).size} tag(s) as they were defined by a runtime of ${a} version "${i.description}": ${[...w.get(r)].sort().join(", ")}.`,o>0?s=`${s}
6
- WARNING! If your code uses features of the above web components, unavailable in ${i.description}, it might not work as expected!`:s=`${s}
7
- Since the above web components were defined by the same or newer version runtime, they should be compatible with your code.`}),s=`${s}
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(s)},Je=new Set,ds=e=>{Je.add(e)},Ht=e=>Je.has(e),ce=new Set,Gt=new R,L=new kt;let _,k,J,D;const Kt=async e=>{L.add(e),await Xt()},Jt=e=>{Gt.fireEvent("beforeComponentRender",e),ce.add(e),e._render()},gs=e=>{L.remove(e),ce.delete(e)},Xt=async()=>{D||(D=new Promise(e=>{window.requestAnimationFrame(()=>{L.process(Jt),D=null,e(),J||(J=setTimeout(()=>{J=void 0,L.isEmpty()&&tn()},200))})})),await D},Yt=()=>_||(_=new Promise(e=>{k=e,window.requestAnimationFrame(()=>{L.isEmpty()&&(_=void 0,e())})}),_),Qt=()=>{const e=Wt().map(t=>customElements.whenDefined(t));return Promise.all(e)},en=async()=>{await Qt(),await Yt()},tn=()=>{!L.isEmpty()||k&&(k(),k=void 0,_=void 0)},Xe=async e=>{ce.forEach(t=>{const n=t.constructor,s=n.getMetadata().getTag(),r=Ht(n),o=n.getMetadata().isLanguageAware(),i=n.getMetadata().isThemeAware();(!e||e.tag===s||e.rtlAware&&r||e.languageAware&&o||e.themeAware&&i)&&Kt(t)}),await en()};let v,se;const nn=()=>(v===void 0&&(v=Pt()),v),hs=async e=>{v!==e&&(v=e,await Ut(e),await Xe({languageAware:!0}))},sn=e=>{se=e},rn=()=>(se===void 0&&sn(It()),se),on=/^((?:[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 Ye{constructor(t){const n=on.exec(t.replace(/_/g,"-"));if(n===null)throw new Error(`The given language ${t} does not adhere to BCP-47.`);this.sLocaleId=t,this.sLanguage=n[1]||j,this.sScript=n[2]||"",this.sRegion=n[3]||"",this.sVariant=n[4]&&n[4].slice(1)||null,this.sExtension=n[5]&&n[5].slice(1)||null,this.sPrivateUse=n[6]||null,this.sLanguage&&(this.sLanguage=this.sLanguage.toLowerCase()),this.sScript&&(this.sScript=this.sScript.toLowerCase().replace(/^[a-z]/,s=>s.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 X=new Map,Qe=e=>(X.has(e)||X.set(e,new Ye(e)),X.get(e)),_e=e=>{try{if(e&&typeof e=="string")return Qe(e)}catch{}return new Ye(g)},re=e=>{if(e)return _e(e);const t=nn();return t?Qe(t):_e(wt())},an=/^((?:[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,Te=/(?:^|-)(saptrc|sappsd)(?:-|$)/i,cn={he:"iw",yi:"ji",nb:"no",sr:"sh"},un=e=>{let t;if(!e)return g;if(typeof e=="string"&&(t=an.exec(e.replace(/_/g,"-")))){let n=t[1].toLowerCase(),s=t[3]?t[3].toUpperCase():void 0;const r=t[2]?t[2].toLowerCase():void 0,o=t[4]?t[4].slice(1):void 0,i=t[6];return n=cn[n]||n,i&&(t=Te.exec(i))||o&&(t=Te.exec(o))?`en_US_${t[1].toLowerCase()}`:(n==="zh"&&!s&&(r==="hans"?s="CN":r==="hant"&&(s="TW")),n+(s?"_"+s+(o?"_"+o.replace("-","_"):""):""))}return g},ln=e=>{if(!e)return g;if(e==="zh_HK")return"zh_TW";const t=e.lastIndexOf("_");return t>=0?e.slice(0,t):e!==g?g:""},be=new Set,Ae=new Set,ue=new Map,Y=new Map,le=new Map,ps=(e,t,n)=>{const s=`${e}/${t}`;le.set(s,n)},Le=(e,t)=>{ue.set(e,t)},ms=e=>ue.get(e),et=(e,t)=>{const n=`${e}/${t}`;return le.has(n)},fn=(e,t)=>{const n=`${e}/${t}`,s=le.get(n);return s&&!Y.get(n)&&Y.set(n,s(t)),Y.get(n)},dn=e=>{be.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.`),be.add(e))},ve=(e,t)=>t!==j&&!et(e,t),gn=async e=>{const t=re().getLanguage(),n=re().getRegion();let s=t+(n?`-${n}`:"");if(ve(e,s))for(s=un(s);ve(e,s);)s=ln(s);const r=rn();if(s===j&&!r){Le(e,null);return}if(!et(e,s)){dn(e);return}try{const o=await fn(e,s);Le(e,o)}catch(o){const i=o;Ae.has(i.message)||(Ae.add(i.message),console.error(i.message))}};He(e=>{const t=[...ue.keys()];return Promise.all(t.map(gn))});const hn=new Map,B=new Map,Q=new Map,Ce=new Set;let Ee=!1;const pn={iw:"he",ji:"yi",in:"id"},Pe=e=>{Ee||(console.warn(`[LocaleData] Supported locale "${e}" not configured, import the "Assets.js" module from the webcomponents package you are using.`),Ee=!0)},mn=(e,t,n)=>{e=e&&pn[e]||e,e==="no"&&(e="nb"),e==="zh"&&!t&&(n==="Hans"?t="CN":n==="Hant"&&(t="TW")),(e==="sh"||e==="sr"&&n==="Latn")&&(e="sr",t="Latn");let s=`${e}_${t}`;return pe.includes(s)||(s=e,pe.includes(s))?B.has(s)?s:(Pe(s),g):g},Ie=(e,t)=>{hn.set(e,t)},wn=e=>{if(!Q.get(e)){const t=B.get(e);if(!t)throw new Error(`CLDR data for locale ${e} is not loaded!`);Q.set(e,t(e))}return Q.get(e)},yn=async(e,t,n)=>{const s=mn(e,t,n),r=A("OpenUI5Support");if(r){const o=r.getLocaleDataObject();if(o){Ie(s,o);return}}try{const o=await wn(s);Ie(s,o)}catch(o){const i=o;Ce.has(i.message)||(Ce.add(i.message),console.error(i.message))}},Sn=(e,t)=>{B.set(e,t)};Sn("en",async()=>(await fetch("https://sdk.openui5.org/1.103.0/resources/sap/ui/core/cldr/en.json")).json());He(()=>{const e=re();return yn(e.getLanguage(),e.getRegion(),e.getScript())});const tt=new R,nt="themeRegistered",_n=e=>{tt.attachEvent(nt,e)},Tn=e=>tt.fireEvent(nt,e),st=new Map,rt=new Map,ot=new Set,F=new Set,ws=(e,t,n)=>{rt.set(`${e}/${t}`,n),ot.add(e),F.add(t),Tn(t)},it=async(e,t)=>{const n=st.get(`${e}_${t}`);if(n!==void 0)return n;if(!F.has(t)){const s=[...F.values()].join(", ");return console.warn(`You have requested a non-registered theme ${t} - falling back to ${z}. Registered themes are: ${s}`),Re(e,z)}return Re(e,t)},Re=async(e,t)=>{const n=rt.get(`${e}/${t}`);if(!n){console.error(`Theme [${t}] not registered for package [${e}]`);return}let s;try{s=await n(t)}catch(o){console.error(e,o.message);return}const r=s._||s;return st.set(`${e}_${t}`,r),r},at=()=>ot,bn=e=>F.has(e);var V;(function(e){e["SAP-icons"]="SAP-icons-v4",e.horizon="SAP-icons-v5",e["SAP-icons-TNT"]="tnt",e.BusinessSuiteInAppSymbols="business-suite"})(V||(V={}));const ct=e=>V[e]?V[e]:e,An=(e,t)=>{const n=document.createElement("style");return n.type="text/css",t&&Object.entries(t).forEach(s=>n.setAttribute(...s)),n.textContent=e,document.head.appendChild(n),n},Ln=(e,t)=>{const n=document.createElement("link");return n.type="text/css",n.rel="stylesheet",t&&Object.entries(t).forEach(s=>n.setAttribute(...s)),n.href=e,document.head.appendChild(n),new Promise(s=>{n.addEventListener("load",s),n.addEventListener("error",s)})},f=typeof document>"u",c={get userAgent(){return f?"":navigator.userAgent},get touch(){return f?!1:"ontouchstart"in window||navigator.maxTouchPoints>0},get ie(){return f?!1:/(msie|trident)/i.test(c.userAgent)},get chrome(){return f?!1:!c.ie&&/(Chrome|CriOS)/.test(c.userAgent)},get firefox(){return f?!1:/Firefox/.test(c.userAgent)},get safari(){return f?!1:!c.ie&&!c.chrome&&/(Version|PhantomJS)\/(\d+\.\d+).*Safari/.test(c.userAgent)},get webkit(){return f?!1:!c.ie&&/webkit/.test(c.userAgent)},get windows(){return f?!1:navigator.platform.indexOf("Win")!==-1},get iOS(){return f?!1:!!navigator.platform.match(/iPhone|iPad|iPod/)||!!(c.userAgent.match(/Mac/)&&"ontouchend"in document)},get android(){return f?!1:!c.windows&&/Android/.test(c.userAgent)},get androidPhone(){return f?!1:c.android&&/(?=android)(?=.*mobile)/i.test(c.userAgent)},get ipad(){return f?!1:/ipad/i.test(c.userAgent)||/Macintosh/i.test(c.userAgent)&&"ontouchend"in document}},q=()=>c.safari,Z=(e,t)=>t?`${e}|${t}`:e,W=(e,t,n="")=>{const s=typeof e=="string"?e:e.content;if(document.adoptedStyleSheets&&!q()){const r=new CSSStyleSheet;r.replaceSync(s),r._ui5StyleId=Z(t,n),document.adoptedStyleSheets=[...document.adoptedStyleSheets,r]}else{const r={};r[t]=n,An(s,r)}},vn=(e,t,n="")=>{const s=typeof e=="string"?e:e.content;if(document.adoptedStyleSheets&&!q()){const r=document.adoptedStyleSheets.find(o=>o._ui5StyleId===Z(t,n));r&&r.replaceSync(s||"")}else{const r=document.querySelector(`head>style[${t}="${n}"]`);r&&(r.textContent=s||"")}},N=(e,t="")=>document.adoptedStyleSheets&&!q()?!!document.adoptedStyleSheets.find(n=>n._ui5StyleId===Z(e,t)):!!document.querySelector(`head>style[${e}="${t}"]`),Cn=(e,t="")=>{var n;if(document.adoptedStyleSheets&&!q())document.adoptedStyleSheets=document.adoptedStyleSheets.filter(s=>s._ui5StyleId!==Z(e,t));else{const s=document.querySelector(`head > style[${e}="${t}"]`);(n=s==null?void 0:s.parentElement)==null||n.removeChild(s)}},ut=(e,t,n="")=>{N(t,n)?vn(e,t,n):W(e,t,n)},T=new Set,En=()=>{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},Pn=e=>{const t=/\(["']?data:text\/plain;utf-8,(.*?)['"]?\)$/i.exec(e);if(t&&t.length>=2){let n=t[1];if(n=n.replace(/\\"/g,'"'),n.charAt(0)!=="{"&&n.charAt(n.length-1)!=="}")try{n=decodeURIComponent(n)}catch{T.has("decode")||(console.warn("Malformed theme metadata string, unable to decodeURIComponent"),T.add("decode"));return}try{return JSON.parse(n)}catch{T.has("parse")||(console.warn("Malformed theme metadata string, unable to parse JSON"),T.add("parse"))}}},In=e=>{let t,n;try{t=e.Path.match(/\.([^.]+)\.css_variables$/)[1],n=e.Extends[0]}catch{T.has("object")||(console.warn("Malformed theme metadata Object",e),T.add("object"));return}return{themeName:t,baseThemeName:n}},oe=()=>{const e=En();if(!e||e==="none")return;const t=Pn(e);if(t)return In(t)},Rn=new R,$n="themeLoaded",On=e=>Rn.fireEvent($n,e);let C;const lt=()=>(C===void 0&&(C=Et()),C),ys=e=>{if(C!==e){if(C=e,!Ze(e)){console.warn(`The ${e} is not valid. Check the allowed origins as suggested in the "setThemeRoot" description.`);return}return ft(O())}},Dn=e=>`${lt()}Base/baseLib/${e}/css_variables.css`,ft=async e=>{const t=document.querySelector(`[sap-ui-webcomponents-theme="${e}"]`);t&&document.head.removeChild(t),await Ln(Dn(e),{"sap-ui-webcomponents-theme":e})},Mn=$("PopupUtilsData",{currentZIndex:100}),$e=()=>Mn.currentZIndex;class u{static isAtLeastVersion116(){const n=window.sap.ui.version.split(".");return!n||n.length<2?!1:parseInt(n[0])>1||parseInt(n[1])>=116}static isOpenUI5Detected(){var t,n;return typeof((n=(t=window.sap)==null?void 0:t.ui)==null?void 0:n.require)=="function"}static init(){return u.isOpenUI5Detected()?new Promise(t=>{window.sap.ui.require(["sap/ui/core/Core"],async n=>{const s=()=>{let r=["sap/ui/core/Popup","sap/ui/core/LocaleData"];u.isAtLeastVersion116()&&(r=[...r,"sap/base/i18n/Formatting","sap/base/i18n/Localization","sap/ui/core/ControlBehavior","sap/ui/core/Theming","sap/ui/core/date/CalendarUtils"]),window.sap.ui.require(r,o=>{o.setInitialZIndex($e()),t()})};u.isAtLeastVersion116()?(await n.ready(),s()):n.attachInit(s)})}):Promise.resolve()}static getConfigurationSettingsObject(){if(!u.isOpenUI5Detected())return{};if(u.isAtLeastVersion116()){const r=window.sap.ui.require("sap/ui/core/ControlBehavior"),o=window.sap.ui.require("sap/base/i18n/Localization"),i=window.sap.ui.require("sap/ui/core/Theming"),a=window.sap.ui.require("sap/base/i18n/Formatting"),y=window.sap.ui.require("sap/ui/core/date/CalendarUtils");return{animationMode:r.getAnimationMode(),language:o.getLanguage(),theme:i.getTheme(),themeRoot:i.getThemeRoot(),rtl:o.getRTL(),timezone:o.getTimezone(),calendarType:a.getCalendarType(),formatSettings:{firstDayOfWeek:y.getWeekConfigurationValues().firstDayOfWeek,legacyDateCalendarCustomizing:a.getLegacyDateCalendarCustomizing()}}}const n=window.sap.ui.require("sap/ui/core/Core").getConfiguration(),s=window.sap.ui.require("sap/ui/core/LocaleData");return{animationMode:n.getAnimationMode(),language:n.getLanguage(),theme:n.getTheme(),themeRoot:n.getThemeRoot(),rtl:n.getRTL(),timezone:n.getTimezone(),calendarType:n.getCalendarType(),formatSettings:{firstDayOfWeek:s?s.getInstance(n.getLocale()).getFirstDayOfWeek():void 0,legacyDateCalendarCustomizing:n.getFormatSettings().getLegacyDateCalendarCustomizing()}}}static getLocaleDataObject(){if(!u.isOpenUI5Detected())return;const t=window.sap.ui.require("sap/ui/core/LocaleData");if(u.isAtLeastVersion116()){const r=window.sap.ui.require("sap/base/i18n/Localization");return t.getInstance(r.getLanguageTag())._get()}const s=window.sap.ui.require("sap/ui/core/Core").getConfiguration();return t.getInstance(s.getLocale())._get()}static _listenForThemeChange(){if(u.isAtLeastVersion116()){const t=window.sap.ui.require("sap/ui/core/Theming");t.attachApplied(()=>{Oe(t.getTheme())})}else{const t=window.sap.ui.require("sap/ui/core/Core"),n=t.getConfiguration();t.attachThemeChanged(()=>{Oe(n.getTheme())})}}static attachListeners(){!u.isOpenUI5Detected()||u._listenForThemeChange()}static cssVariablesLoaded(){if(!u.isOpenUI5Detected())return;const t=[...document.head.children].find(n=>n.id==="sap-ui-theme-sap.ui.core");return t?!!t.href.match(/\/css(-|_)variables\.css/):!1}static getNextZIndex(){if(!u.isOpenUI5Detected())return;const t=window.sap.ui.require("sap/ui/core/Popup");return t||console.warn(`The OpenUI5Support feature hasn't been initialized properly. Make sure you import the "@ui5/webcomponents-base/dist/features/OpenUI5Support.js" module before all components' modules.`),t.getNextZIndex()}static setInitialZIndex(){if(!u.isOpenUI5Detected())return;window.sap.ui.require("sap/ui/core/Popup").setInitialZIndex($e())}}Tt("OpenUI5Support",u);const P="@ui5/webcomponents-theming",Un=()=>at().has(P),kn=async e=>{if(!Un())return;const t=await it(P,e);t&&ut(t,"data-ui5-theme-properties",P)},zn=()=>{Cn("data-ui5-theme-properties",P)},xn=async e=>{const n=[...at()].map(async s=>{if(s===P)return;const r=await it(s,e);r&&ut(r,`data-ui5-component-properties-${ie()}`,s)});return Promise.all(n)},Bn=async e=>{var s;const t=oe();if(t)return t;const n=A("OpenUI5Support");if(n&&u.isOpenUI5Detected()){if(n.cssVariablesLoaded())return{themeName:(s=n.getConfigurationSettingsObject())==null?void 0:s.theme,baseThemeName:""}}else if(lt())return await ft(e),oe()},fe=async e=>{const t=await Bn(e);!t||e!==t.themeName?await kn(e):zn();const n=bn(e)?e:t&&t.baseThemeName;await xn(n||z),On(e)};let b;const O=()=>(b===void 0&&(b=Ct()),b),Oe=async e=>{b!==e&&(b=e,await fe(b),await Xe({themeAware:!0}))},Fn=()=>{var t,n;const e=O();return Vn(e)?!e.startsWith("sap_horizon"):!((n=(t=oe())==null?void 0:t.baseThemeName)!=null&&n.startsWith("sap_horizon"))},Vn=e=>mt.includes(e);var m;(function(e){e.SAPIconsV4="SAP-icons-v4",e.SAPIconsV5="SAP-icons-v5",e.SAPIconsTNTV2="tnt-v2",e.SAPIconsTNTV3="tnt-v3",e.SAPBSIconsV1="business-suite-v1",e.SAPBSIconsV2="business-suite-v2"})(m||(m={}));const d=new Map;d.set("SAP-icons",{legacy:m.SAPIconsV4,sap_horizon:m.SAPIconsV5});d.set("tnt",{legacy:m.SAPIconsTNTV2,sap_horizon:m.SAPIconsTNTV3});d.set("business-suite",{legacy:m.SAPBSIconsV1,sap_horizon:m.SAPBSIconsV2});const jn=(e,t)=>{if(d.has(e)){d.set(e,{...t,...d.get(e)});return}d.set(e,t)},De=e=>{const t=Fn()?"legacy":"sap_horizon";return d.has(e)?d.get(e)[t]:e},qn=new Map,Zn=e=>qn.get(e),dt=e=>{const t=Zn(O());return!e&&t?ct(t):De(e||"SAP-icons")},Wn="legacy",Me=new Map,de=$("SVGIcons.registry",new Map),ee=$("SVGIcons.promises",new Map),Ue="ICON_NOT_FOUND",Nn=async e=>{if(!ee.has(e)){if(!Me.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=Me.get(e);ee.set(e,t(e))}return ee.get(e)},ke=e=>{Object.keys(e.data).forEach(t=>{const n=e.data[t];Hn(t,{pathData:n.path||n.paths,ltr:n.ltr,accData:n.acc,collection:e.collection,packageName:e.packageName})})},Hn=(e,t)=>{const n=`${t.collection}/${e}`;de.set(n,{pathData:t.pathData,ltr:t.ltr,accData:t.accData,packageName:t.packageName,customTemplate:t.customTemplate,viewBox:t.viewBox,collection:t.collection})},Gn=e=>{e.startsWith("sap-icon://")&&(e=e.replace("sap-icon://",""));let t;return[e,t]=e.split("/").reverse(),e=e.replace("icon-",""),t&&(t=ct(t)),{name:e,collection:t}},te=async e=>{const{name:t,collection:n}=Gn(e);let s=Ue;try{s=await Nn(dt(n))}catch(o){console.error(o.message)}if(s===Ue)return s;const r=ze(n,t);return r||(Array.isArray(s)?s.forEach(o=>{ke(o),jn(n,{[o.themeFamily||Wn]:o.collection})}):ke(s),ze(n,t))},ze=(e,t)=>{const n=`${dt(e)}/${t}`;return de.get(n)},Ss=async()=>(await te("edit"),await te("tnt/arrow"),await te("business-suite/3d"),Array.from(de.keys())),Kn=()=>new Promise(e=>{document.body?e():document.addEventListener("DOMContentLoaded",()=>{e()})}),Jn={packageName:"@ui5/webcomponents-base",fileName:"FontFace.css",content:`@font-face{font-family:"72";font-style:normal;font-weight:400;src:url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_horizon/fonts/72-Regular.woff2?ui5-webcomponents) format("woff2"),local("72")}@font-face{font-family:"72full";font-style:normal;font-weight:400;src:url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_horizon/fonts/72-Regular-full.woff2?ui5-webcomponents) format("woff2"),local('72-full')}@font-face{font-family:"72";font-style:normal;font-weight:700;src:url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_horizon/fonts/72-Bold.woff2?ui5-webcomponents) format("woff2"),local('72-Bold')}@font-face{font-family:"72full";font-style:normal;font-weight:700;src:url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_horizon/fonts/72-Bold-full.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:'72-Bold';font-style:normal;src:url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_horizon/fonts/72-Bold.woff2?ui5-webcomponents) format("woff2"),local('72-Bold')}@font-face{font-family:'72-Boldfull';font-style:normal;src:url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_horizon/fonts/72-Bold-full.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:'72-Light';font-style:normal;src:url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_horizon/fonts/72-Light.woff2?ui5-webcomponents) format("woff2"),local('72-Light')}@font-face{font-family:'72-Lightfull';font-style:normal;src:url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_horizon/fonts/72-Light-full.woff2?ui5-webcomponents) format("woff2")}@font-face{font-family:'72Mono';src:url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_horizon/fonts/72Mono-Regular.woff2?ui5-webcomponents) format('woff2'),local('72Mono')}@font-face{font-family:'72Monofull';src:url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_horizon/fonts/72Mono-Regular-full.woff2?ui5-webcomponents) format('woff2')}@font-face{font-family:'72Mono-Bold';src:url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_horizon/fonts/72Mono-Bold.woff2?ui5-webcomponents) format('woff2'),local('72Mono-Bold')}@font-face{font-family:'72Mono-Boldfull';src:url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_horizon/fonts/72Mono-Bold-full.woff2?ui5-webcomponents) format('woff2')}@font-face{font-family:"72Black";font-style:bold;font-weight:900;src:url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_horizon/fonts/72-Black.woff2?ui5-webcomponents) format("woff2"),local('72Black')}@font-face{font-family:"72-SemiboldDuplex";src:url(https://sdk.openui5.org/resources/sap/ui/core/themes/sap_horizon/fonts/72-SemiboldDuplex.woff2?ui5-webcomponents) format("woff2"),local('72-SemiboldDuplex')}`},Xn={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')}"},Yn=()=>{const e=A("OpenUI5Support");(!e||!e.isOpenUI5Detected())&&Qn(),es()},Qn=()=>{N("data-ui5-font-face")||W(Jn,"data-ui5-font-face")},es=()=>{N("data-ui5-font-face-override")||W(Xn,"data-ui5-font-face-override")},ts={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}"},ns=()=>{N("data-ui5-system-css-vars")||W(ts,"data-ui5-system-css-vars")};let ge=!1,M;const gt=new R,_s=e=>{if(!ge){gt.attachEvent("boot",e);return}e()},Ts=async()=>{if(M!==void 0)return M;const e=async t=>{if(typeof document>"u"){t();return}_n(ss),jt();const n=A("OpenUI5Support"),s=n?n.isOpenUI5Detected():!1,r=A("F6Navigation");n&&await n.init(),r&&!s&&r.init(),await Kn(),await fe(O()),n&&n.attachListeners(),Yn(),ns(),t(),ge=!0,await gt.fireEventAsync("boot")};return M=new Promise(e),M},ss=e=>{const t=O();ge&&e===t&&fe(t)};export{hs as A,O as B,lt as C,ys as D,R as E,Oe as F,ie as G,ps as H,_s as I,Ss as _,$ as a,A as b,os as c,nn as d,wt as e,gn as f,ms as g,en as h,q as i,is as j,Jt as k,gs as l,ds as m,zt as n,Ts as o,ls as p,fs as q,Xe as r,us as s,je as t,Kt as u,ws as v,rs as w,as as x,Tt as y,cs as z};
@@ -1,50 +0,0 @@
1
- import{f as ue,g as he,r as Ot,a as Ht,E as K,b as J,i as pe,c as fe,d as kt,e as ge,h as Bt,j as me,k as _e,l as ye,m as ve,n as Ae,o as $e,p as we,q as Se,s as Ce,t as be,u as Ee,v as w,w as Me,x as Te,y as xe,z as Vt,A as De,B as Ie,C as Pe,D as Le,F as Ne,G as Re,_ as Oe,H as He}from"./Boot.5010d1af.js";const ke=/('')|'([^']+(?:''[^']*)*)(?:'|$)|\{([0-9]+(?:\s*,[^{}]*)?)\}|[{}]/g,Be=(s,t)=>(t=t||[],s.replace(ke,(e,n,i,r,o)=>{if(n)return"'";if(i)return i.replace(/''/g,"'");if(r){const l=typeof r=="string"?parseInt(r):r;return String(t[l])}throw new Error(`[i18n]: pattern syntax error at pos ${o}`)})),Y=new Map;class Ve{constructor(t){this.packageName=t}getText(t,...e){if(typeof t=="string"&&(t={key:t,defaultText:t}),!t||!t.key)return"";const n=he(this.packageName);n&&!n[t.key]&&console.warn(`Key ${t.key} not found in the i18n bundle, the default text will be used`);const i=n&&n[t.key]?n[t.key]:t.defaultText||t.key;return Be(i,e)}}const Fe=s=>{if(Y.has(s))return Y.get(s);const t=new Ve(s);return Y.set(s,t),t},Ue=async s=>(await ue(s),Fe(s)),Q=new Map,tt=new Map,_t=s=>{if(!Q.has(s)){const t=je(s.split("-"));Q.set(s,t)}return Q.get(s)},Ft=s=>{if(!tt.has(s)){const t=s.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase();tt.set(s,t)}return tt.get(s)},je=s=>s.map((t,e)=>e===0?t.toLowerCase():t.charAt(0).toUpperCase()+t.slice(1).toLowerCase()).join(""),We=s=>{if(!(s instanceof HTMLElement))return"default";const t=s.getAttribute("slot");if(t){const e=t.match(/^(.+?)-\d+$/);return e?e[1]:t}return"default"},Ut=s=>s instanceof HTMLSlotElement?s.assignedNodes({flatten:!0}).filter(t=>t instanceof HTMLElement):[s],ze=s=>s.reduce((t,e)=>t.concat(Ut(e)),[]);let Ge,yt={include:[/^ui5-/],exclude:[]};const et=new Map,jt=()=>Ge,dt=s=>{if(!et.has(s)){const t=yt.include.some(e=>s.match(e))&&!yt.exclude.some(e=>s.match(e));et.set(s,t)}return et.get(s)},Wt=s=>{if(dt(s))return jt()};class qe{constructor(t){this.metadata=t}getInitialState(){if(Object.prototype.hasOwnProperty.call(this,"_initialState"))return this._initialState;const t={},e=this.slotsAreManaged(),n=this.getProperties();for(const i in n){const r=n[i].type,o=n[i].defaultValue;r===Boolean?(t[i]=!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[i].multiple?t[i]=[]:r===Object?t[i]="defaultValue"in n[i]?n[i].defaultValue:{}:r===String?t[i]="defaultValue"in n[i]?n[i].defaultValue:"":t[i]=o}if(e){const i=this.getSlots();for(const[r,o]of Object.entries(i)){const l=o.propertyName||r;t[l]=[]}}return this._initialState=t,t}static validatePropertyValue(t,e){return e.multiple&&t?t.map(i=>vt(i,e)):vt(t,e)}static validateSlotValue(t,e){return Ze(t,e)}getPureTag(){return this.metadata.tag||""}getTag(){const t=this.metadata.tag;if(!t)return"";const e=Wt(t);return e?`${t}-${e}`:t}hasAttribute(t){const e=this.getProperties()[t];return e.type!==Object&&!e.noAttribute&&!e.multiple}getPropertiesList(){return Object.keys(this.getProperties())}getAttributesList(){return this.getPropertiesList().filter(this.hasAttribute.bind(this)).map(Ft)}canSlotText(){const t=this.getSlots().default;return t&&t.type===Node}hasSlots(){return!!Object.entries(this.getSlots()).length}hasIndividualSlots(){return this.slotsAreManaged()&&Object.values(this.getSlots()).some(t=>t.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(t,e,n){const i=this.getSlots()[t].invalidateOnChildChange;if(i===void 0)return!1;if(typeof i=="boolean")return i;if(typeof i=="object"){if(e==="property"){if(i.properties===void 0)return!1;if(typeof i.properties=="boolean")return i.properties;if(Array.isArray(i.properties))return i.properties.includes(n);throw new Error("Wrong format for invalidateOnChildChange.properties: boolean or array is expected")}if(e==="slot"){if(i.slots===void 0)return!1;if(typeof i.slots=="boolean")return i.slots;if(Array.isArray(i.slots))return i.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 vt=(s,t)=>{const e=t.type;let n=t.validator;return e&&e.isDataTypeClass&&(n=e),n?n.isValid(s)?s:t.defaultValue:!e||e===String?typeof s=="string"||typeof s>"u"||s===null?s:s.toString():e===Boolean?typeof s=="boolean"?s:!1:e===Object?typeof s=="object"?s:t.defaultValue:s in e?s:t.defaultValue},Ze=(s,t)=>(s&&Ut(s).forEach(e=>{if(!(e instanceof t.type))throw new Error(`The element is not of type ${t.type.toString()}`)}),s);class Ke extends HTMLElement{}customElements.get("ui5-static-area")||customElements.define("ui5-static-area",Ke);const Je=()=>Ht("CustomStyle.eventProvider",new K),Xe="CustomCSSChange",ft=s=>{Je().attachEvent(Xe,s)},Ye=()=>Ht("CustomStyle.customCSSFor",{});ft(s=>{Ot({tag:s})});const Qe=s=>{const t=Ye();return t[s]?t[s].join(""):""},ts=10,st=s=>Array.isArray(s)?s.filter(t=>!!t).flat(ts).map(t=>typeof t=="string"?t:t.content).join(" "):typeof s=="string"?s:s.content,W=new Map;ft(s=>{W.delete(`${s}_normal`)});const zt=(s,t=!1)=>{const e=s.getMetadata().getTag(),n=`${e}_${t?"static":"normal"}`,i=J("OpenUI5Enablement");if(!W.has(n)){let r,o="";if(i&&(o=st(i.getBusyIndicatorStyles())),t)r=st(s.staticAreaStyles);else{const l=Qe(e)||"";r=`${st(s.styles)} ${l}`}r=`${r} ${o}`,W.set(n,r)}return W.get(n)},z=new Map;ft(s=>{z.delete(`${s}_normal`)});const es=(s,t=!1)=>{const n=`${s.getMetadata().getTag()}_${t?"static":"normal"}`;if(!z.has(n)){const i=zt(s,t),r=new CSSStyleSheet;r.replaceSync(i),z.set(n,[r])}return z.get(n)},ut=(s,t=!1)=>{let e;const n=s.constructor,i=t?s.staticAreaItem.shadowRoot:s.shadowRoot;let r;if(t?r=s.renderStatic():r=s.render(),!i){console.warn("There is no shadow root to update");return}if(document.adoptedStyleSheets&&!pe()?i.adoptedStyleSheets=es(n,t):e=zt(n,t),n.renderer){n.renderer(r,i,e,t,{host:s});return}n.render(r,i,e,t,{host:s})},ss="--_ui5_content_density",ns=s=>getComputedStyle(s).getPropertyValue(ss),is=s=>{const t=/\$([-a-z0-9A-Z._]+)(?::([^$]*))?\$/.exec(s);return t&&t[2]?t[2].split(/,/):null},rs={iw:"he",ji:"yi",in:"id",sh:"sr"},os=is("$cldr-rtl-locales:ar,fa,he$")||[],as=s=>(s=s&&rs[s]||s,os.indexOf(s)>=0),Gt=()=>{if(typeof document>"u")return!1;const s=fe();return s!==void 0?!!s:as(kt()||ge())},ls="--_ui5_dir",qt=s=>{const t=window.document,e=["ltr","rtl"],n=getComputedStyle(s).getPropertyValue(ls);return e.includes(n)?n:e.includes(s.dir)?s.dir:e.includes(t.documentElement.dir)?t.documentElement.dir:e.includes(t.body.dir)?t.body.dir:Gt()?"rtl":void 0},j="ui5-static-area-item",cs="data-sap-ui-integration-popup-content";class R 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.updateAdditionalProperties(),ut(this.ownerElement,!0))}updateAdditionalProperties(){this._updateAdditionalAttrs(),this._updateContentDensity(),this._updateDirection()}_updateContentDensity(){ns(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 t=qt(this.ownerElement);t?this.setAttribute("dir",t):this.removeAttribute("dir")}}_updateAdditionalAttrs(){this.setAttribute(j,""),this.setAttribute(cs,"")}async getDomRef(){return this.updateAdditionalProperties(),this._rendered||(this._rendered=!0,ut(this.ownerElement,!0)),await Bt(),this.shadowRoot}static getTag(){const t=Wt(j);return t?`${j}-${t}`:j}static createInstance(){return customElements.get(R.getTag())||customElements.define(R.getTag(),R),document.createElement(this.getTag())}}const ds=[],us=s=>ds.some(t=>s.startsWith(t)),ht=new WeakMap,hs=(s,t,e)=>{const n=new MutationObserver(t);ht.set(s,n),n.observe(s,e)},ps=s=>{const t=ht.get(s);t&&(t.disconnect(),ht.delete(s))},fs=["value-changed","click"];let G;const gs=s=>fs.includes(s),ms=s=>{const t=gt();return!(typeof t!="boolean"&&t.events&&t.events.includes&&t.events.includes(s))},gt=()=>(G===void 0&&(G=me()),G),_s=s=>{G=s},ys=s=>{const t=gt();return gs(s)?!1:t===!0?!0:!ms(s)},vs=["disabled","title","hidden","role","draggable"],At=s=>vs.includes(s)||s.startsWith("aria")?!0:![HTMLElement,Element,Node].some(e=>e.prototype.hasOwnProperty(s)),$t=(s,t)=>{if(s.length!==t.length)return!1;for(let e=0;e<s.length;e++)if(s[e]!==t[e])return!1;return!0},wt=(s,t)=>{const e=As(t),n=jt();return s.call(t,t,e,n)},As=s=>{const t=s.constructor,e=t.getMetadata().getPureTag(),n=t.getUniqueDependencies().map(i=>i.getMetadata().getPureTag()).filter(dt);return dt(e)&&n.push(e),n};let $s=0;const St=new Map,nt=new Map;function I(s){this._suppressInvalidation||(this.onInvalidation(s),this._changedState.push(s),Ee(this),this._eventProvider.fireEvent("invalidate",{...s,target:this}))}class $ extends HTMLElement{constructor(){super();const t=this.constructor;this._changedState=[],this._suppressInvalidation=!0,this._inDOM=!1,this._fullyConnected=!1,this._childChangeListeners=new Map,this._slotChangeListeners=new Map,this._eventProvider=new K;let e;this._domRefReadyPromise=new Promise(n=>{e=n}),this._domRefReadyPromise._deferredResolve=e,this._doNotSyncAttributes=new Set,this._state={...t.getMetadata().getInitialState()},this._upgradeAllProperties(),t._needsShadowDOM()&&this.attachShadow({mode:"open"})}get _id(){return this.__id||(this.__id=`ui5wc_${++$s}`),this.__id}render(){const t=this.constructor.template;return wt(t,this)}renderStatic(){const t=this.constructor.staticAreaTemplate;return wt(t,this)}async connectedCallback(){const t=this.constructor;this.setAttribute(t.getMetadata().getPureTag(),""),t.getMetadata().supportsF6FastNavigation()&&this.setAttribute("data-sap-ui-fastnavgroup","true");const e=t.getMetadata().slotsAreManaged();this._inDOM=!0,e&&(this._startObservingDOMChildren(),await this._processChildren()),this._inDOM&&(_e(this),this._domRefReadyPromise._deferredResolve(),this._fullyConnected=!0,this.onEnterDOM())}disconnectedCallback(){const e=this.constructor.getMetadata().slotsAreManaged();this._inDOM=!1,e&&this._stopObservingDOMChildren(),this._fullyConnected&&(this.onExitDOM(),this._fullyConnected=!1),this.staticAreaItem&&this.staticAreaItem.parentElement&&this.staticAreaItem.parentElement.removeChild(this.staticAreaItem),ye(this)}onBeforeRendering(){}onAfterRendering(){}onEnterDOM(){}onExitDOM(){}_startObservingDOMChildren(){const t=this.constructor;if(!t.getMetadata().hasSlots())return;const n=t.getMetadata().canSlotText(),i={childList:!0,subtree:n,characterData:n};hs(this,this._processChildren.bind(this),i)}_stopObservingDOMChildren(){ps(this)}async _processChildren(){this.constructor.getMetadata().hasSlots()&&await this._updateSlots()}async _updateSlots(){const t=this.constructor,e=t.getMetadata().getSlots(),n=t.getMetadata().canSlotText(),i=Array.from(n?this.childNodes:this.children),r=new Map,o=new Map;for(const[d,u]of Object.entries(e)){const h=u.propertyName||d;o.set(h,d),r.set(h,[...this._state[h]]),this._clearSlot(d,u)}const l=new Map,a=new Map,c=i.map(async(d,u)=>{const h=We(d),f=e[h];if(f===void 0){if(h!=="default"){const g=Object.keys(e).join(", ");console.warn(`Unknown slotName: ${h}, ignoring`,d,`Valid values are: ${g}`)}return}if(f.individualSlots){const g=(l.get(h)||0)+1;l.set(h,g),d._individualSlot=`${h}-${g}`}if(d instanceof HTMLElement){const g=d.localName;if(g.includes("-")&&!us(g)){if(!window.customElements.get(g)){const ce=window.customElements.whenDefined(g);let U=St.get(g);U||(U=new Promise(de=>setTimeout(de,1e3)),St.set(g,U)),await Promise.race([ce,U])}window.customElements.upgrade(d)}}if(d=t.getMetadata().constructor.validateSlotValue(d,f),Ct(d)&&f.invalidateOnChildChange){const g=this._getChildChangeListener(h);g&&d.attachInvalidate.call(d,g)}d instanceof HTMLSlotElement&&this._attachSlotChange(d,h);const m=f.propertyName||h;a.has(m)?a.get(m).push({child:d,idx:u}):a.set(m,[{child:d,idx:u}])});await Promise.all(c),a.forEach((d,u)=>{this._state[u]=d.sort((h,f)=>h.idx-f.idx).map(h=>h.child)});let p=!1;for(const[d,u]of Object.entries(e)){const h=u.propertyName||d;$t(r.get(h),this._state[h])||(I.call(this,{type:"slot",name:o.get(h),reason:"children"}),p=!0)}p||I.call(this,{type:"slot",name:"default",reason:"textcontent"})}_clearSlot(t,e){const n=e.propertyName||t;this._state[n].forEach(r=>{if(Ct(r)){const o=this._getChildChangeListener(t);o&&r.detachInvalidate.call(r,o)}r instanceof HTMLSlotElement&&this._detachSlotChange(r,t)}),this._state[n]=[]}attachInvalidate(t){this._eventProvider.attachEvent("invalidate",t)}detachInvalidate(t){this._eventProvider.detachEvent("invalidate",t)}_onChildChange(t,e){!this.constructor.getMetadata().shouldInvalidateOnChildChange(t,e.type,e.name)||I.call(this,{type:"slot",name:t,reason:"childchange",child:e.target})}attributeChangedCallback(t,e,n){let i;if(this._doNotSyncAttributes.has(t))return;const r=this.constructor.getMetadata().getProperties(),o=t.replace(/^ui5-/,""),l=_t(o);if(r.hasOwnProperty(l)){const a=r[l],c=a.type;let p=a.validator;c&&c.isDataTypeClass&&(p=c),p?i=p.attributeToProperty(n):c===Boolean?i=n!==null:i=n,this[l]=i}}_updateAttribute(t,e){const n=this.constructor;if(!n.getMetadata().hasAttribute(t))return;const r=n.getMetadata().getProperties()[t],o=r.type;let l=r.validator;const a=Ft(t),c=this.getAttribute(a);if(o&&o.isDataTypeClass&&(l=o),l){const p=l.propertyToAttribute(e);p===null?(this._doNotSyncAttributes.add(a),this.removeAttribute(a),this._doNotSyncAttributes.delete(a)):this.setAttribute(a,p)}else o===Boolean?e===!0&&c===null?this.setAttribute(a,""):e===!1&&c!==null&&this.removeAttribute(a):typeof e!="object"&&c!==e&&this.setAttribute(a,e)}_upgradeProperty(t){if(this.hasOwnProperty(t)){const e=this[t];delete this[t],this[t]=e}}_upgradeAllProperties(){this.constructor.getMetadata().getPropertiesList().forEach(this._upgradeProperty.bind(this))}_getChildChangeListener(t){return this._childChangeListeners.has(t)||this._childChangeListeners.set(t,this._onChildChange.bind(this,t)),this._childChangeListeners.get(t)}_getSlotChangeListener(t){return this._slotChangeListeners.has(t)||this._slotChangeListeners.set(t,this._onSlotChange.bind(this,t)),this._slotChangeListeners.get(t)}_attachSlotChange(t,e){const n=this._getSlotChangeListener(e);n&&t.addEventListener("slotchange",n)}_detachSlotChange(t,e){t.removeEventListener("slotchange",this._getSlotChangeListener(e))}_onSlotChange(t){I.call(this,{type:"slot",name:t,reason:"slotchange"})}onInvalidation(t){}_render(){const t=this.constructor,e=t.getMetadata().hasIndividualSlots();this._suppressInvalidation=!0,this.onBeforeRendering(),this._onComponentStateFinalized&&this._onComponentStateFinalized(),this._suppressInvalidation=!1,this._changedState=[],t._needsShadowDOM()&&ut(this),this.staticAreaItem&&this.staticAreaItem.update(),e&&this._assignIndividualSlotsToChildren(),this.onAfterRendering()}_assignIndividualSlotsToChildren(){Array.from(this.children).forEach(e=>{e._individualSlot&&e.setAttribute("slot",e._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(e=>!["link","style"].includes(e.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(t){await this._waitForDomRef();const e=this.getFocusDomRef();e&&typeof e.focus=="function"&&e.focus(t)}fireEvent(t,e,n=!1,i=!0){const r=this._fireEvent(t,e,n,i),o=_t(t);return o!==t?r&&this._fireEvent(o,e,n):r}_fireEvent(t,e,n=!1,i=!0){const r=new CustomEvent(`ui5-${t}`,{detail:e,composed:!1,bubbles:i,cancelable:n}),o=this.dispatchEvent(r);if(ys(t))return o;const l=new CustomEvent(t,{detail:e,composed:!1,bubbles:i,cancelable:n});return this.dispatchEvent(l)&&o}getSlottedNodes(t){return ze(this[t])}get effectiveDir(){return ve(this.constructor),qt(this)}get isUI5Element(){return!0}get classes(){return{}}static get observedAttributes(){return this.getMetadata().getAttributesList()}static _needsShadowDOM(){return!!this.template||Object.prototype.hasOwnProperty.call(this.prototype,"render")}static _needsStaticArea(){return!!this.staticAreaTemplate||Object.prototype.hasOwnProperty.call(this.prototype,"renderStatic")}getStaticAreaItemDomRef(){if(!this.constructor._needsStaticArea())throw new Error("This component does not use the static area");return this.staticAreaItem||(this.staticAreaItem=R.createInstance(),this.staticAreaItem.setOwnerElement(this)),this.staticAreaItem.parentElement||Ae("ui5-static-area").appendChild(this.staticAreaItem),this.staticAreaItem.getDomRef()}static _generateAccessors(){const t=this.prototype,e=this.getMetadata().slotsAreManaged(),n=this.getMetadata().getProperties();for(const[i,r]of Object.entries(n)){if(At(i)||console.warn(`"${i}" is not a valid property name. Use a name that does not collide with DOM APIs`),r.type===Boolean&&r.defaultValue)throw new Error(`Cannot set a default value for property "${i}". All booleans are false by default.`);if(r.type===Array)throw new Error(`Wrong type for property "${i}". Properties cannot be of type Array - use "multiple: true" and set "type" to the single value type, such as "String", "Object", etc...`);if(r.type===Object&&r.defaultValue)throw new Error(`Cannot set a default value for property "${i}". All properties of type "Object" are empty objects by default.`);if(r.multiple&&r.defaultValue)throw new Error(`Cannot set a default value for property "${i}". All multiple properties are empty arrays by default.`);Object.defineProperty(t,i,{get(){if(this._state[i]!==void 0)return this._state[i];const o=r.defaultValue;return r.type===Boolean?!1:r.type===String?o:r.multiple?[]:o},set(o){let l;o=this.constructor.getMetadata().constructor.validatePropertyValue(o,r);const p=r.type;let d=r.validator;const u=this._state[i];p&&p.isDataTypeClass&&(d=p),d?l=!d.valuesAreEqual(u,o):Array.isArray(u)&&Array.isArray(o)&&r.multiple&&r.compareValues?l=!$t(u,o):l=u!==o,l&&(this._state[i]=o,I.call(this,{type:"property",name:i,newValue:o,oldValue:u}),this._updateAttribute(i,o))}})}if(e){const i=this.getMetadata().getSlots();for(const[r,o]of Object.entries(i)){At(r)||console.warn(`"${r}" is not a valid property name. Use a name that does not collide with DOM APIs`);const l=o.propertyName||r;Object.defineProperty(t,l,{get(){return this._state[l]!==void 0?this._state[l]:[]},set(){throw new Error("Cannot set slot content directly, use the DOM APIs (appendChild, removeChild, etc...)")}})}}}static get styles(){return""}static get staticAreaStyles(){return""}static get dependencies(){return[]}static getUniqueDependencies(){if(!nt.has(this)){const t=this.dependencies.filter((e,n,i)=>i.indexOf(e)===n);nt.set(this,t)}return nt.get(this)||[]}static whenDependenciesDefined(){return Promise.all(this.getUniqueDependencies().map(t=>t.define()))}static async onDefine(){return Promise.resolve()}static async define(){await $e(),await Promise.all([this.whenDependenciesDefined(),this.onDefine()]);const t=this.getMetadata().getTag(),e=we(t),n=customElements.get(t);return n&&!e?Se(t):n||(this._generateAccessors(),Ce(t),window.customElements.define(t,this)),this}static getMetadata(){if(this.hasOwnProperty("_metadata"))return this._metadata;const t=[this.metadata];let e=this;for(;e!==$;)e=Object.getPrototypeOf(e),t.unshift(e.metadata);const n=be({},...t);return this._metadata=new qe(n),this._metadata}}$.metadata={};const Ct=s=>"isUI5Element"in s;/**
2
- * @license
3
- * Copyright 2017 Google LLC
4
- * SPDX-License-Identifier: BSD-3-Clause
5
- */var it;const q=window,x=q.trustedTypes,bt=x?x.createPolicy("lit-html",{createHTML:s=>s}):void 0,Z="$lit$",A=`lit$${(Math.random()+"").slice(9)}$`,mt="?"+A,ws=`<${mt}>`,E=document,O=()=>E.createComment(""),H=s=>s===null||typeof s!="object"&&typeof s!="function",Zt=Array.isArray,Kt=s=>Zt(s)||typeof(s==null?void 0:s[Symbol.iterator])=="function",rt=`[
6
- \f\r]`,P=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,Et=/-->/g,Mt=/>/g,S=RegExp(`>|${rt}(?:([^\\s"'>=/]+)(${rt}*=${rt}*(?:[^
7
- \f\r"'\`<>=]|("|')|))|$)`,"g"),Tt=/'/g,xt=/"/g,Jt=/^(?:script|style|textarea|title)$/i,Ss=s=>(t,...e)=>({_$litType$:s,strings:t,values:e}),Cs=Ss(1),M=Symbol.for("lit-noChange"),_=Symbol.for("lit-nothing"),Dt=new WeakMap,b=E.createTreeWalker(E,129,null,!1);function Xt(s,t){if(!Array.isArray(s)||!s.hasOwnProperty("raw"))throw Error("invalid template strings array");return bt!==void 0?bt.createHTML(t):t}const Yt=(s,t)=>{const e=s.length-1,n=[];let i,r=t===2?"<svg>":"",o=P;for(let l=0;l<e;l++){const a=s[l];let c,p,d=-1,u=0;for(;u<a.length&&(o.lastIndex=u,p=o.exec(a),p!==null);)u=o.lastIndex,o===P?p[1]==="!--"?o=Et:p[1]!==void 0?o=Mt:p[2]!==void 0?(Jt.test(p[2])&&(i=RegExp("</"+p[2],"g")),o=S):p[3]!==void 0&&(o=S):o===S?p[0]===">"?(o=i!=null?i:P,d=-1):p[1]===void 0?d=-2:(d=o.lastIndex-p[2].length,c=p[1],o=p[3]===void 0?S:p[3]==='"'?xt:Tt):o===xt||o===Tt?o=S:o===Et||o===Mt?o=P:(o=S,i=void 0);const h=o===S&&s[l+1].startsWith("/>")?" ":"";r+=o===P?a+ws:d>=0?(n.push(c),a.slice(0,d)+Z+a.slice(d)+A+h):a+A+(d===-2?(n.push(void 0),l):h)}return[Xt(s,r+(s[e]||"<?>")+(t===2?"</svg>":"")),n]};class k{constructor({strings:t,_$litType$:e},n){let i;this.parts=[];let r=0,o=0;const l=t.length-1,a=this.parts,[c,p]=Yt(t,e);if(this.el=k.createElement(c,n),b.currentNode=this.el.content,e===2){const d=this.el.content,u=d.firstChild;u.remove(),d.append(...u.childNodes)}for(;(i=b.nextNode())!==null&&a.length<l;){if(i.nodeType===1){if(i.hasAttributes()){const d=[];for(const u of i.getAttributeNames())if(u.endsWith(Z)||u.startsWith(A)){const h=p[o++];if(d.push(u),h!==void 0){const f=i.getAttribute(h.toLowerCase()+Z).split(A),m=/([.?@])?(.*)/.exec(h);a.push({type:1,index:r,name:m[2],strings:f,ctor:m[1]==="."?te:m[1]==="?"?ee:m[1]==="@"?se:B})}else a.push({type:6,index:r})}for(const u of d)i.removeAttribute(u)}if(Jt.test(i.tagName)){const d=i.textContent.split(A),u=d.length-1;if(u>0){i.textContent=x?x.emptyScript:"";for(let h=0;h<u;h++)i.append(d[h],O()),b.nextNode(),a.push({type:2,index:++r});i.append(d[u],O())}}}else if(i.nodeType===8)if(i.data===mt)a.push({type:2,index:r});else{let d=-1;for(;(d=i.data.indexOf(A,d+1))!==-1;)a.push({type:7,index:r}),d+=A.length-1}r++}}static createElement(t,e){const n=E.createElement("template");return n.innerHTML=t,n}}function T(s,t,e=s,n){var i,r,o,l;if(t===M)return t;let a=n!==void 0?(i=e._$Co)===null||i===void 0?void 0:i[n]:e._$Cl;const c=H(t)?void 0:t._$litDirective$;return(a==null?void 0:a.constructor)!==c&&((r=a==null?void 0:a._$AO)===null||r===void 0||r.call(a,!1),c===void 0?a=void 0:(a=new c(s),a._$AT(s,e,n)),n!==void 0?((o=(l=e)._$Co)!==null&&o!==void 0?o:l._$Co=[])[n]=a:e._$Cl=a),a!==void 0&&(t=T(s,a._$AS(s,t.values),a,n)),t}class Qt{constructor(t,e){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=e}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){var e;const{el:{content:n},parts:i}=this._$AD,r=((e=t==null?void 0:t.creationScope)!==null&&e!==void 0?e:E).importNode(n,!0);b.currentNode=r;let o=b.nextNode(),l=0,a=0,c=i[0];for(;c!==void 0;){if(l===c.index){let p;c.type===2?p=new D(o,o.nextSibling,this,t):c.type===1?p=new c.ctor(o,c.name,c.strings,this,t):c.type===6&&(p=new ne(o,this,t)),this._$AV.push(p),c=i[++a]}l!==(c==null?void 0:c.index)&&(o=b.nextNode(),l++)}return b.currentNode=E,r}v(t){let e=0;for(const n of this._$AV)n!==void 0&&(n.strings!==void 0?(n._$AI(t,n,e),e+=n.strings.length-2):n._$AI(t[e])),e++}}class D{constructor(t,e,n,i){var r;this.type=2,this._$AH=_,this._$AN=void 0,this._$AA=t,this._$AB=e,this._$AM=n,this.options=i,this._$Cp=(r=i==null?void 0:i.isConnected)===null||r===void 0||r}get _$AU(){var t,e;return(e=(t=this._$AM)===null||t===void 0?void 0:t._$AU)!==null&&e!==void 0?e:this._$Cp}get parentNode(){let t=this._$AA.parentNode;const e=this._$AM;return e!==void 0&&(t==null?void 0:t.nodeType)===11&&(t=e.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,e=this){t=T(this,t,e),H(t)?t===_||t==null||t===""?(this._$AH!==_&&this._$AR(),this._$AH=_):t!==this._$AH&&t!==M&&this._(t):t._$litType$!==void 0?this.g(t):t.nodeType!==void 0?this.$(t):Kt(t)?this.T(t):this._(t)}k(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}$(t){this._$AH!==t&&(this._$AR(),this._$AH=this.k(t))}_(t){this._$AH!==_&&H(this._$AH)?this._$AA.nextSibling.data=t:this.$(E.createTextNode(t)),this._$AH=t}g(t){var e;const{values:n,_$litType$:i}=t,r=typeof i=="number"?this._$AC(t):(i.el===void 0&&(i.el=k.createElement(Xt(i.h,i.h[0]),this.options)),i);if(((e=this._$AH)===null||e===void 0?void 0:e._$AD)===r)this._$AH.v(n);else{const o=new Qt(r,this),l=o.u(this.options);o.v(n),this.$(l),this._$AH=o}}_$AC(t){let e=Dt.get(t.strings);return e===void 0&&Dt.set(t.strings,e=new k(t)),e}T(t){Zt(this._$AH)||(this._$AH=[],this._$AR());const e=this._$AH;let n,i=0;for(const r of t)i===e.length?e.push(n=new D(this.k(O()),this.k(O()),this,this.options)):n=e[i],n._$AI(r),i++;i<e.length&&(this._$AR(n&&n._$AB.nextSibling,i),e.length=i)}_$AR(t=this._$AA.nextSibling,e){var n;for((n=this._$AP)===null||n===void 0||n.call(this,!1,!0,e);t&&t!==this._$AB;){const i=t.nextSibling;t.remove(),t=i}}setConnected(t){var e;this._$AM===void 0&&(this._$Cp=t,(e=this._$AP)===null||e===void 0||e.call(this,t))}}class B{constructor(t,e,n,i,r){this.type=1,this._$AH=_,this._$AN=void 0,this.element=t,this.name=e,this._$AM=i,this.options=r,n.length>2||n[0]!==""||n[1]!==""?(this._$AH=Array(n.length-1).fill(new String),this.strings=n):this._$AH=_}get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}_$AI(t,e=this,n,i){const r=this.strings;let o=!1;if(r===void 0)t=T(this,t,e,0),o=!H(t)||t!==this._$AH&&t!==M,o&&(this._$AH=t);else{const l=t;let a,c;for(t=r[0],a=0;a<r.length-1;a++)c=T(this,l[n+a],e,a),c===M&&(c=this._$AH[a]),o||(o=!H(c)||c!==this._$AH[a]),c===_?t=_:t!==_&&(t+=(c!=null?c:"")+r[a+1]),this._$AH[a]=c}o&&!i&&this.j(t)}j(t){t===_?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t!=null?t:"")}}class te extends B{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===_?void 0:t}}const bs=x?x.emptyScript:"";class ee extends B{constructor(){super(...arguments),this.type=4}j(t){t&&t!==_?this.element.setAttribute(this.name,bs):this.element.removeAttribute(this.name)}}class se extends B{constructor(t,e,n,i,r){super(t,e,n,i,r),this.type=5}_$AI(t,e=this){var n;if((t=(n=T(this,t,e,0))!==null&&n!==void 0?n:_)===M)return;const i=this._$AH,r=t===_&&i!==_||t.capture!==i.capture||t.once!==i.once||t.passive!==i.passive,o=t!==_&&(i===_||r);r&&this.element.removeEventListener(this.name,this,i),o&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){var e,n;typeof this._$AH=="function"?this._$AH.call((n=(e=this.options)===null||e===void 0?void 0:e.host)!==null&&n!==void 0?n:this.element,t):this._$AH.handleEvent(t)}}class ne{constructor(t,e,n){this.element=t,this.type=6,this._$AN=void 0,this._$AM=e,this.options=n}get _$AU(){return this._$AM._$AU}_$AI(t){T(this,t)}}const Es={O:Z,P:A,A:mt,C:1,M:Yt,L:Qt,D:Kt,R:T,I:D,V:B,H:ee,N:se,U:te,F:ne},It=q.litHtmlPolyfillSupport;It==null||It(k,D),((it=q.litHtmlVersions)!==null&&it!==void 0?it:q.litHtmlVersions=[]).push("2.7.5");const Ms=(s,t,e)=>{var n,i;const r=(n=e==null?void 0:e.renderBefore)!==null&&n!==void 0?n:t;let o=r._$litPart$;if(o===void 0){const l=(i=e==null?void 0:e.renderBefore)!==null&&i!==void 0?i:null;r._$litPart$=o=new D(t.insertBefore(O(),l),l,void 0,e!=null?e:{})}return o._$AI(s),o};/**
8
- * @license
9
- * Copyright 2017 Google LLC
10
- * SPDX-License-Identifier: BSD-3-Clause
11
- */const ie={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},Ts=s=>(...t)=>({_$litDirective$:s,values:t});class re{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,e,n){this._$Ct=t,this._$AM=e,this._$Ci=n}_$AS(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}}/**
12
- * @license
13
- * Copyright 2020 Google LLC
14
- * SPDX-License-Identifier: BSD-3-Clause
15
- */const{I:xs}=Es,Pt=()=>document.createComment(""),L=(s,t,e)=>{var n;const i=s._$AA.parentNode,r=t===void 0?s._$AB:t._$AA;if(e===void 0){const o=i.insertBefore(Pt(),r),l=i.insertBefore(Pt(),r);e=new xs(o,l,s,s.options)}else{const o=e._$AB.nextSibling,l=e._$AM,a=l!==s;if(a){let c;(n=e._$AQ)===null||n===void 0||n.call(e,s),e._$AM=s,e._$AP!==void 0&&(c=s._$AU)!==l._$AU&&e._$AP(c)}if(o!==r||a){let c=e._$AA;for(;c!==o;){const p=c.nextSibling;i.insertBefore(c,r),c=p}}}return e},C=(s,t,e=s)=>(s._$AI(t,e),s),Ds={},Is=(s,t=Ds)=>s._$AH=t,Ps=s=>s._$AH,ot=s=>{var t;(t=s._$AP)===null||t===void 0||t.call(s,!1,!0);let e=s._$AA;const n=s._$AB.nextSibling;for(;e!==n;){const i=e.nextSibling;e.remove(),e=i}};/**
16
- * @license
17
- * Copyright 2017 Google LLC
18
- * SPDX-License-Identifier: BSD-3-Clause
19
- */const Lt=(s,t,e)=>{const n=new Map;for(let i=t;i<=e;i++)n.set(s[i],i);return n},oe=Ts(class extends re{constructor(s){if(super(s),s.type!==ie.CHILD)throw Error("repeat() can only be used in text expressions")}dt(s,t,e){let n;e===void 0?e=t:t!==void 0&&(n=t);const i=[],r=[];let o=0;for(const l of s)i[o]=n?n(l,o):o,r[o]=e(l,o),o++;return{values:r,keys:i}}render(s,t,e){return this.dt(s,t,e).values}update(s,[t,e,n]){var i;const r=Ps(s),{values:o,keys:l}=this.dt(t,e,n);if(!Array.isArray(r))return this.ht=l,o;const a=(i=this.ht)!==null&&i!==void 0?i:this.ht=[],c=[];let p,d,u=0,h=r.length-1,f=0,m=o.length-1;for(;u<=h&&f<=m;)if(r[u]===null)u++;else if(r[h]===null)h--;else if(a[u]===l[f])c[f]=C(r[u],o[f]),u++,f++;else if(a[h]===l[m])c[m]=C(r[h],o[m]),h--,m--;else if(a[u]===l[m])c[m]=C(r[u],o[m]),L(s,c[m+1],r[u]),u++,m--;else if(a[h]===l[f])c[f]=C(r[h],o[f]),L(s,r[u],r[h]),h--,f++;else if(p===void 0&&(p=Lt(l,f,m),d=Lt(a,u,h)),p.has(a[u]))if(p.has(a[h])){const g=d.get(l[f]),F=g!==void 0?r[g]:null;if(F===null){const X=L(s,r[u]);C(X,o[f]),c[f]=X}else c[f]=C(F,o[f]),L(s,r[u],F),r[g]=null;f++}else ot(r[h]),h--;else ot(r[u]),u++;for(;f<=m;){const g=L(s,c[m+1]);C(g,o[f]),c[f++]=g}for(;u<=h;){const g=r[u++];g!==null&&ot(g)}return this.ht=l,Is(s,c),M}});/**
20
- * @license
21
- * Copyright 2018 Google LLC
22
- * SPDX-License-Identifier: BSD-3-Clause
23
- */const v=s=>s!=null?s:_;/**
24
- * @license
25
- * Copyright 2017 Google LLC
26
- * SPDX-License-Identifier: BSD-3-Clause
27
- */class Nt extends re{constructor(t){if(super(t),this.et=_,t.type!==ie.CHILD)throw Error(this.constructor.directiveName+"() can only be used in child bindings")}render(t){if(t===_||t==null)return this.ft=void 0,this.et=t;if(t===M)return t;if(typeof t!="string")throw Error(this.constructor.directiveName+"() called with a non-string value");if(t===this.et)return this.ft;this.et=t;const e=[t];return e.raw=e,this.ft={_$litType$:this.constructor.resultType,strings:e,values:[]}}}Nt.directiveName="unsafeHTML",Nt.resultType=1;const y=(s,...t)=>{const e=J("LitStatic");return(e?e.html:Cs)(s,...t)},V=(s,t,e,n,i)=>{const r=J("OpenUI5Enablement");r&&!n&&(s=r.wrapTemplateResultInBusyMarkup(y,i.host,s)),typeof e=="string"?s=y`<style>${e}</style>${s}`:Array.isArray(e)&&e.length&&(s=y`${e.map(o=>y`<link type="text/css" rel="stylesheet" href="${o}">`)}${s}`),Ms(s,t,i)},Ls={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 ae extends ${static get metadata(){return Ls}static get render(){return V}static get template(){return t=>y`<div><p>
28
- <slot></slot>
29
- <slot name="other"></slot>
30
- <slot name="individual-1"></slot>
31
- <slot name="individual-2"></slot>
32
- </p></div>`}static get styles(){return`:host {
33
- display: inline-block;
34
- border: 1px solid black;
35
- color: var(--var1);
36
- }`}onBeforeRendering(){}onAfterRendering(){}onEnterDOM(){}onExitDOM(){}}ae.define();const Ns={tag:"ui5-test-no-shadow"};class Rs extends ${static get metadata(){return Ns}}Rs.define();const Os={tag:"ui5-test-parent",managedSlots:!0,slots:{default:{type:Node,invalidateOnChildChange:{properties:["prop1"]}},items:{type:HTMLElement,invalidateOnChildChange:{properties:!0}}}};class Hs extends ${static get metadata(){return Os}static get render(){return V}static get template(){return t=>y`<div>
37
- <slot></slot>
38
- </div>`}}Hs.define();const ks={tag:"ui5-test-child",properties:{prop1:{type:String},prop2:{type:String},prop3:{type:String}}};class Bs extends ${static get metadata(){return ks}static get render(){return V}static get template(){return t=>y`<div></div>`}}Bs.define();const Vs={tag:"ui5-with-static-area",properties:{staticContent:{type:Boolean}},slots:{}};class Fs extends ${static get metadata(){return Vs}static get render(){return V}static get template(){return t=>y`
39
- <div dir=${t.effectiveDir}>
40
- WithStaticArea works!
41
- </div>`}static get staticAreaTemplate(){return t=>y`
42
- <div class="ui5-with-static-area-content">
43
- Static area content.
44
- </div>`}static get styles(){return`
45
- :host {
46
- display: inline-block;
47
- border: 1px solid black;
48
- color: red;
49
- }`}async addStaticArea(){if(!this.staticContent)return;const t=await this.getStaticAreaItemDomRef();return this.responsivePopover=t.querySelector(".ui5-with-static-area-content"),this.responsivePopover}onBeforeRendering(){this.addStaticArea()}onAfterRendering(){}onEnterDOM(){}onExitDOM(){}}Fs.define();function Us(s,t,e){return y`<div>Root text: ${v(this.text)}${oe(this.items,(n,i)=>n._id||i,(n,i)=>js.call(this,s,t,e,n,i))} Root text: ${v(this.text)}</div>`}function js(s,t,e,n,i){return y`<h3>Item-${i}</h3>${n.text?Ws.call(this,s,t,e,n,i):void 0}<ul>${oe(n.words,(r,o)=>r._id||o,(r,o)=>zs.call(this,s,t,e,r,o))}</ul>${n.text?Gs.call(this,s,t,e,n,i):void 0}`}function Ws(s,t,e,n,i){return y`<div class="before-each-content--start--${i}">Root text: ${v(this.text)}, Item text: ${v(n.text)}</div>`}function zs(s,t,e,n,i){return y`<li><h3>Word-${i}</h3><div class="nested-each-content--${i}--0">Root Text: ${v(this.text)}, Word text: ${v(n.text)}</div><div class="nested-each-content--${i}--1">Root Text: ${v(this.text)}, Word text: ${v(n.text)}</div></li>`}function Gs(s,t,e,n,i){return y`<div class="after-each-content--end--${i}">Root text: ${v(this.text)}, Item text: ${v(n.text)}</div>`}class qs extends ${static get metadata(){return{tag:"ui5-test-complex-template"}}static get render(){return V}static get template(){return Us}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"}]}]}}qs.define();const Zs={tag:"ui5-test-generic-ext",properties:{extProp:{type:String},strProp:{defaultValue:"Ext"}},slots:{extSlot:{type:HTMLElement}}};class Ks extends ae{static get metadata(){return Zs}}Ks.define();const Js={content:":root{ --var1: red; }",packageName:"",fileName:""},Xs={content:":root{ --var1: green; }",packageName:"",fileName:""},Ys={content:":root{ --var1: blue; }",packageName:"",fileName:""},Qs={content:":root{ --var1: orange; }",packageName:"",fileName:""},tn={content:":root{ --var1: orange; }",packageName:"",fileName:""},en={content:":root{ --var1: yellow; }",packageName:"",fileName:""},sn={content:":root{ --var1: yellow; }",packageName:"",fileName:""};w("@ui5/webcomponents-base-test","sap_fiori_3",()=>Js);w("@ui5/webcomponents-base-test","sap_fiori_3_dark",()=>Xs);w("@ui5/webcomponents-base-test","sap_belize",()=>Ys);w("@ui5/webcomponents-base-test","sap_belize_hcb",()=>Qs);w("@ui5/webcomponents-base-test","sap_belize_hcw",()=>tn);w("@ui5/webcomponents-base-test","sap_fiori_3_hcb",()=>en);w("@ui5/webcomponents-base-test","sap_fiori_3_hcw",()=>sn);const nn=typeof window.chrome=="object"||typeof window.v8=="object"?(s,t)=>(t>2&&40*t>s.length,s):s=>s,rn=/(?:\r\n|\r|\n|^)[ \t\f]*/,on=/(\\u[0-9a-fA-F]{0,4})|(\\.)|(\\$)|([ \t\f]*[ \t\f:=][ \t\f]*)/g,an=/(\\u[0-9a-fA-F]{0,4})|(\\.)|(\\$)/g,ln={"\\f":"\f","\\n":`
50
- `,"\\r":"\r","\\t":" "},cn=s=>{const t={},e=s.split(rn);let n,i,r,o,l,a,c,p;const d=u=>{o?(o=`${o}${u}`,p++):(o=u,p=0)};for(l=0;l<e.length;l++)if(n=e[l],!(n===""||n.charAt(0)==="#"||n.charAt(0)==="!")){for(i=on,c=0,i.lastIndex=c,r=null,o="",a=i.exec(n);a!==null;){if(c<a.index&&d(n.slice(c,a.index)),c=i.lastIndex,a[1]){if(a[1].length!==6)throw new Error(`Incomplete Unicode Escape '${a[1]}'`);d(String.fromCharCode(parseInt(a[1].slice(2),16)))}else a[2]?d(ln[a[2]]||a[2].slice(1)):a[3]?(n=e[++l],c=0,i.lastIndex=c):a[4]&&(r=o,o="",i=an,i.lastIndex=c);a=i.exec(n)}c<n.length&&d(n.slice(c)),r==null&&(r=o,o=""),t[r]=nn(o,o?p:0)}return t};let at;const dn=()=>(at===void 0&&(at=Me()),at);var pt;(function(s){s.Gregorian="Gregorian",s.Islamic="Islamic",s.Japanese="Japanese",s.Buddhist="Buddhist",s.Persian="Persian"})(pt||(pt={}));const Rt=pt;let N;const un=()=>(N===void 0&&(N=Te()),N&&N in Rt?N:Rt.Gregorian);let lt;class le{static getLegacyDateCalendarCustomizing(){return lt===void 0&&(lt=Vt()),lt.legacyDateCalendarCustomizing||[]}}xe("LegacyDateFormats",le);let ct;const hn=()=>(ct===void 0&&(ct=Vt()),ct.firstDayOfWeek),pn=J("LegacyDateFormats"),fn=pn?le.getLegacyDateCalendarCustomizing:()=>[],gn=new K,mn="directionChange",_n=()=>gn.fireEvent(mn,void 0),yn=async()=>{const s=_n();await Promise.all(s),await Ot({rtlAware:!0})};window.registerThemePropertiesLoader=w;window["sap-ui-webcomponents-bundle"]={configuration:{getAnimationMode:dn,getLanguage:kt,setLanguage:De,getTheme:Ie,getThemeRoot:Pe,setThemeRoot:Le,setTheme:Ne,getNoConflict:gt,setNoConflict:_s,getCalendarType:un,getRTL:Gt,getFirstDayOfWeek:hn,getLegacyDateCalendarCustomizing:fn},getCurrentRuntimeIndex:Re,getIconNames:Oe,parseProperties:cn,registerI18nLoader:He,getI18nBundle:Ue,renderFinished:Bt,applyDirection:yn,EventProvider:K};