@ui5/webcomponents-base 2.15.0-rc.3 → 2.16.0-rc.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.
Files changed (39) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/dist/.tsbuildinfobuild +1 -1
  3. package/dist/UI5Element.d.ts +2 -2
  4. package/dist/UI5Element.js +1 -1
  5. package/dist/UI5Element.js.map +1 -1
  6. package/dist/asset-registries/LocaleData.js +2 -1
  7. package/dist/asset-registries/LocaleData.js.map +1 -1
  8. package/dist/custom-elements-internal.json +15 -0
  9. package/dist/custom-elements.json +15 -0
  10. package/dist/features/OpenUI5Support.js +3 -3
  11. package/dist/features/OpenUI5Support.js.map +1 -1
  12. package/dist/features/patchPopup.d.ts +8 -2
  13. package/dist/features/patchPopup.js +20 -10
  14. package/dist/features/patchPopup.js.map +1 -1
  15. package/dist/generated/VersionInfo.js +4 -4
  16. package/dist/generated/VersionInfo.js.map +1 -1
  17. package/dist/prod/UI5Element.js +1 -1
  18. package/dist/prod/UI5Element.js.map +2 -2
  19. package/dist/prod/asset-registries/LocaleData.js +1 -1
  20. package/dist/prod/asset-registries/LocaleData.js.map +2 -2
  21. package/dist/prod/features/OpenUI5Support.js +1 -1
  22. package/dist/prod/features/OpenUI5Support.js.map +3 -3
  23. package/dist/prod/features/patchPopup.js +1 -1
  24. package/dist/prod/features/patchPopup.js.map +3 -3
  25. package/dist/prod/generated/VersionInfo.js +1 -1
  26. package/dist/prod/generated/VersionInfo.js.map +1 -1
  27. package/dist/prod/util/TabbableElements.js +1 -1
  28. package/dist/prod/util/TabbableElements.js.map +2 -2
  29. package/dist/prod/util/isEventMarked.js +2 -0
  30. package/dist/prod/util/isEventMarked.js.map +7 -0
  31. package/dist/types.d.ts +2 -2
  32. package/dist/types.js.map +1 -1
  33. package/dist/util/TabbableElements.js +2 -2
  34. package/dist/util/TabbableElements.js.map +1 -1
  35. package/dist/util/getClassCopy.d.ts +2 -2
  36. package/dist/util/isEventMarked.d.ts +2 -0
  37. package/dist/util/isEventMarked.js +6 -0
  38. package/dist/util/isEventMarked.js.map +1 -0
  39. package/package.json +3 -3
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/generated/VersionInfo.ts"],
4
- "sourcesContent": ["const VersionInfo = {\n\tversion: \"2.15.0-rc.3\",\n\tmajor: 2,\n\tminor: 15,\n\tpatch: 0,\n\tsuffix: \"-rc.3\",\n\tisNext: false,\n\tbuildTime: 1759392542,\n};\nexport default VersionInfo;"],
4
+ "sourcesContent": ["const VersionInfo = {\n\tversion: \"2.16.0-rc.0\",\n\tmajor: 2,\n\tminor: 16,\n\tpatch: 0,\n\tsuffix: \"-rc.0\",\n\tisNext: false,\n\tbuildTime: 1759997349,\n};\nexport default VersionInfo;"],
5
5
  "mappings": "aAAA,MAAMA,EAAc,CACnB,QAAS,cACT,MAAO,EACP,MAAO,GACP,MAAO,EACP,OAAQ,QACR,OAAQ,GACR,UAAW,UACZ,EACA,eAAeA",
6
6
  "names": ["VersionInfo"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";import o from"./isElementTabbable.js";const b=t=>a([...t.children]),E=t=>{const n=a([...t.children]);return n.length?n[n.length-1]:null},a=(t,n)=>{const l=n||[];return t&&t.forEach(r=>{if(r.nodeType===Node.TEXT_NODE||r.nodeType===Node.COMMENT_NODE)return;const e=r;if(!e.hasAttribute("data-sap-no-tab-ref"))if(o(e)&&l.push(e),e.tagName==="SLOT")a(e.assignedNodes(),l);else{const s=e.shadowRoot?e.shadowRoot.children:e.children;a([...s],l)}}),l};export{b as getTabbableElements,E as getLastTabbableElement};
1
+ "use strict";import o from"./isElementTabbable.js";const b=e=>l(e.tagName==="SLOT"?[e]:[...e.children]),E=e=>{const n=l([...e.children]);return n.length?n[n.length-1]:null},l=(e,n)=>{const a=n||[];return e&&e.forEach(r=>{if(r.nodeType===Node.TEXT_NODE||r.nodeType===Node.COMMENT_NODE)return;const t=r;if(!t.hasAttribute("data-sap-no-tab-ref"))if(o(t)&&a.push(t),t.tagName==="SLOT")l(t.assignedElements(),a);else{const s=t.shadowRoot?t.shadowRoot.children:t.children;l([...s],a)}}),a};export{b as getTabbableElements,E as getLastTabbableElement};
2
2
  //# sourceMappingURL=TabbableElements.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/util/TabbableElements.ts"],
4
- "sourcesContent": ["import isElementTabbable from \"./isElementTabbable.js\";\n\n/**\n * Returns the tabbable elements within the provided HTMLElement.\n *\n * @public\n * @param { HTMLElement } el the component to operate on (component that slots or contains within its shadow root the items the user navigates among)\n * @returns { Array<HTMLElement> } the tabbable elements\n */\nconst getTabbableElements = (el: HTMLElement): Array<HTMLElement> => {\n\treturn getTabbables([...el.children]);\n};\n\n/**\n * Returns the last tabbable element within the provided HTMLElement.\n *\n * @public\n * @param { HTMLElement } el the component to operate on (component that slots or contains within its shadow root the items the user navigates among)\n * @returns { HTMLElement | null } the last tabbable element or \"null\" if not found\n */\nconst getLastTabbableElement = (el: HTMLElement): HTMLElement | null => {\n\tconst tabbables = getTabbables([...el.children]);\n\treturn tabbables.length ? tabbables[tabbables.length - 1] : null;\n};\n\nconst getTabbables = (nodes: Array<Node>, tabbables?: Array<HTMLElement>): Array<HTMLElement> => {\n\tconst tabbableElements = tabbables || [];\n\n\tif (!nodes) {\n\t\treturn tabbableElements;\n\t}\n\n\tnodes.forEach(currentNode => {\n\t\tif (currentNode.nodeType === Node.TEXT_NODE || currentNode.nodeType === Node.COMMENT_NODE) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst currentElement = currentNode as HTMLElement;\n\t\tif (currentElement.hasAttribute(\"data-sap-no-tab-ref\")) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (isElementTabbable(currentElement)) {\n\t\t\ttabbableElements.push(currentElement);\n\t\t}\n\n\t\tif (currentElement.tagName === \"SLOT\") {\n\t\t\tgetTabbables((currentElement as HTMLSlotElement).assignedNodes() as Array<HTMLElement>, tabbableElements);\n\t\t} else {\n\t\t\tconst children = currentElement.shadowRoot ? currentElement.shadowRoot.children : currentElement.children;\n\t\t\tgetTabbables([...children], tabbableElements);\n\t\t}\n\t});\n\n\treturn tabbableElements;\n};\n\nexport {\n\tgetTabbableElements,\n\tgetLastTabbableElement,\n};\n"],
5
- "mappings": "aAAA,OAAOA,MAAuB,yBAS9B,MAAMC,EAAuBC,GACrBC,EAAa,CAAC,GAAGD,EAAG,QAAQ,CAAC,EAU/BE,EAA0BF,GAAwC,CACvE,MAAMG,EAAYF,EAAa,CAAC,GAAGD,EAAG,QAAQ,CAAC,EAC/C,OAAOG,EAAU,OAASA,EAAUA,EAAU,OAAS,CAAC,EAAI,IAC7D,EAEMF,EAAe,CAACG,EAAoBD,IAAuD,CAChG,MAAME,EAAmBF,GAAa,CAAC,EAEvC,OAAKC,GAILA,EAAM,QAAQE,GAAe,CAC5B,GAAIA,EAAY,WAAa,KAAK,WAAaA,EAAY,WAAa,KAAK,aAC5E,OAGD,MAAMC,EAAiBD,EACvB,GAAI,CAAAC,EAAe,aAAa,qBAAqB,EAQrD,GAJIT,EAAkBS,CAAc,GACnCF,EAAiB,KAAKE,CAAc,EAGjCA,EAAe,UAAY,OAC9BN,EAAcM,EAAmC,cAAc,EAAyBF,CAAgB,MAClG,CACN,MAAMG,EAAWD,EAAe,WAAaA,EAAe,WAAW,SAAWA,EAAe,SACjGN,EAAa,CAAC,GAAGO,CAAQ,EAAGH,CAAgB,CAC7C,CACD,CAAC,EAEMA,CACR,EAEA,OACCN,KAAA,oBACAG,KAAA",
4
+ "sourcesContent": ["import isElementTabbable from \"./isElementTabbable.js\";\n\n/**\n * Returns the tabbable elements within the provided HTMLElement.\n *\n * @public\n * @param { HTMLElement } el the component to operate on (component that slots or contains within its shadow root the items the user navigates among)\n * @returns { Array<HTMLElement> } the tabbable elements\n */\nconst getTabbableElements = (el: HTMLElement): Array<HTMLElement> => {\n\treturn getTabbables(el.tagName === \"SLOT\" ? [el] : [...el.children]);\n};\n\n/**\n * Returns the last tabbable element within the provided HTMLElement.\n *\n * @public\n * @param { HTMLElement } el the component to operate on (component that slots or contains within its shadow root the items the user navigates among)\n * @returns { HTMLElement | null } the last tabbable element or \"null\" if not found\n */\nconst getLastTabbableElement = (el: HTMLElement): HTMLElement | null => {\n\tconst tabbables = getTabbables([...el.children]);\n\treturn tabbables.length ? tabbables[tabbables.length - 1] : null;\n};\n\nconst getTabbables = (nodes: Array<Node>, tabbables?: Array<HTMLElement>): Array<HTMLElement> => {\n\tconst tabbableElements = tabbables || [];\n\n\tif (!nodes) {\n\t\treturn tabbableElements;\n\t}\n\n\tnodes.forEach(currentNode => {\n\t\tif (currentNode.nodeType === Node.TEXT_NODE || currentNode.nodeType === Node.COMMENT_NODE) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst currentElement = currentNode as HTMLElement;\n\t\tif (currentElement.hasAttribute(\"data-sap-no-tab-ref\")) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (isElementTabbable(currentElement)) {\n\t\t\ttabbableElements.push(currentElement);\n\t\t}\n\n\t\tif (currentElement.tagName === \"SLOT\") {\n\t\t\tgetTabbables((currentElement as HTMLSlotElement).assignedElements(), tabbableElements);\n\t\t} else {\n\t\t\tconst children = currentElement.shadowRoot ? currentElement.shadowRoot.children : currentElement.children;\n\t\t\tgetTabbables([...children], tabbableElements);\n\t\t}\n\t});\n\n\treturn tabbableElements;\n};\n\nexport {\n\tgetTabbableElements,\n\tgetLastTabbableElement,\n};\n"],
5
+ "mappings": "aAAA,OAAOA,MAAuB,yBAS9B,MAAMC,EAAuBC,GACrBC,EAAaD,EAAG,UAAY,OAAS,CAACA,CAAE,EAAI,CAAC,GAAGA,EAAG,QAAQ,CAAC,EAU9DE,EAA0BF,GAAwC,CACvE,MAAMG,EAAYF,EAAa,CAAC,GAAGD,EAAG,QAAQ,CAAC,EAC/C,OAAOG,EAAU,OAASA,EAAUA,EAAU,OAAS,CAAC,EAAI,IAC7D,EAEMF,EAAe,CAACG,EAAoBD,IAAuD,CAChG,MAAME,EAAmBF,GAAa,CAAC,EAEvC,OAAKC,GAILA,EAAM,QAAQE,GAAe,CAC5B,GAAIA,EAAY,WAAa,KAAK,WAAaA,EAAY,WAAa,KAAK,aAC5E,OAGD,MAAMC,EAAiBD,EACvB,GAAI,CAAAC,EAAe,aAAa,qBAAqB,EAQrD,GAJIT,EAAkBS,CAAc,GACnCF,EAAiB,KAAKE,CAAc,EAGjCA,EAAe,UAAY,OAC9BN,EAAcM,EAAmC,iBAAiB,EAAGF,CAAgB,MAC/E,CACN,MAAMG,EAAWD,EAAe,WAAaA,EAAe,WAAW,SAAWA,EAAe,SACjGN,EAAa,CAAC,GAAGO,CAAQ,EAAGH,CAAgB,CAC7C,CACD,CAAC,EAEMA,CACR,EAEA,OACCN,KAAA,oBACAG,KAAA",
6
6
  "names": ["isElementTabbable", "getTabbableElements", "el", "getTabbables", "getLastTabbableElement", "tabbables", "nodes", "tabbableElements", "currentNode", "currentElement", "children"]
7
7
  }
@@ -0,0 +1,2 @@
1
+ "use strict";const t="handledByControl",a=(e,n=t)=>!!e[`_sapui_${n}`];export default a;
2
+ //# sourceMappingURL=isEventMarked.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/util/isEventMarked.ts"],
4
+ "sourcesContent": ["const defaultOpenUI5Key = \"handledByControl\";\n\nconst isEventMarked = (event: any, key: string = defaultOpenUI5Key) => {\n\treturn !!event[`_sapui_${key}`];\n};\n\nexport default isEventMarked;\n"],
5
+ "mappings": "aAAA,MAAMA,EAAoB,mBAEpBC,EAAgB,CAACC,EAAYC,EAAcH,IACzC,CAAC,CAACE,EAAM,UAAUC,CAAG,EAAE,EAG/B,eAAeF",
6
+ "names": ["defaultOpenUI5Key", "isEventMarked", "event", "key"]
7
+ }
package/dist/types.d.ts CHANGED
@@ -22,12 +22,12 @@ export type AriaAutoComplete = "list" | "none" | "inline" | "both" | undefined;
22
22
  export type AriaLandmarkRole = "none" | "banner" | "main" | "region" | "navigation" | "search" | "complementary" | "form" | "contentinfo";
23
23
  export type AccessibilityInfo = {
24
24
  role?: AriaRole;
25
- type?: LowercaseString<string>;
25
+ type?: string;
26
26
  description?: string;
27
27
  disabled?: boolean;
28
28
  readonly?: boolean;
29
29
  required?: boolean;
30
- children?: Array<HTMLElement>;
30
+ children?: Array<Node>;
31
31
  };
32
32
  export type AccessibilityAttributes = {
33
33
  ariaSetsize?: number;
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { JSX } from \"./jsx-runtime.d.ts\";\n\n// General utils\nexport type LowercaseString<T> = T extends string ? Lowercase<T> : never;\n\n// Core Framework types\nexport type PromiseResolve = (value: void | PromiseLike<void>) => void;\nexport type Timeout = ReturnType<typeof setTimeout>;\nexport type Interval = ReturnType<typeof setInterval>;\n\nexport type StyleData = string;\n\nexport type ComponentStylesData = Array<ComponentStylesData> | string;\nexport type ClassMapValue = Record<string, boolean>\n\nexport type ClassMap = { [x: string] : ClassMapValue | ClassMap };\n\nexport type PassiveEventListenerObject = EventListenerObject & { passive: boolean };\n\n// Accessibility\nexport type AriaRole = JSX.AriaRole;\nexport type AriaDisabled = JSX.AriaAttributes[\"aria-disabled\"];\nexport type AriaChecked = JSX.AriaAttributes[\"aria-checked\"];\nexport type AriaReadonly = JSX.AriaAttributes[\"aria-readonly\"];\nexport type AriaHasPopup = \"dialog\" | \"grid\" | \"listbox\" | \"menu\" | \"tree\" | \"false\";\nexport type AriaCurrent = \"page\" | \"step\" | \"location\" | \"date\" | \"time\" | \"true\" | \"false\" | boolean | undefined;\nexport type AriaAutoComplete = \"list\" | \"none\" | \"inline\" | \"both\" | undefined;\nexport type AriaLandmarkRole = \"none\" | \"banner\" | \"main\" | \"region\" | \"navigation\" | \"search\" | \"complementary\" | \"form\" | \"contentinfo\"\n\nexport type AccessibilityInfo = {\n\t// The WAI-ARIA role of the component.\n\trole?: AriaRole,\n\n\t// A translated text that represents the component type. Used when several components share same role,\n\t// f.e. Select and ComboBox both have role=\"combobox\".\n\ttype?: LowercaseString<string>,\n\n\t// A translated text that represents relevant component description/state - value, placeholder, label, etc.\n\tdescription?: string,\n\n\t // The component disabled state.\n\tdisabled?: boolean,\n\n\t// The component readonly state.\n\treadonly?: boolean,\n\n\t// The component required state.\n\trequired?: boolean,\n\n\t// An array of elements, aggregated by the component\n\t// <b>Note:</b> Children should only be provided when it is helpful to understand the accessibility context.\n\tchildren?: Array<HTMLElement>,\n}\n\nexport type AccessibilityAttributes = {\n\tariaSetsize?: number,\n\tariaPosinset?: number,\n\tariaLabel?: string,\n\tcontrols?: LowercaseString<string>\n\texpanded?: \"true\" | \"false\" | boolean,\n\thasPopup?: AriaHasPopup,\n\tname?: string,\n\trole?: AriaRole,\n\tariaKeyShortcuts?: string,\n\tariaCurrent?: AriaCurrent,\n\tcurrent?: AriaCurrent,\n\troleDescription?: string,\n\ttitle?: string,\n}\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { JSX } from \"./jsx-runtime.d.ts\";\n\n// General utils\nexport type LowercaseString<T> = T extends string ? Lowercase<T> : never;\n\n// Core Framework types\nexport type PromiseResolve = (value: void | PromiseLike<void>) => void;\nexport type Timeout = ReturnType<typeof setTimeout>;\nexport type Interval = ReturnType<typeof setInterval>;\n\nexport type StyleData = string;\n\nexport type ComponentStylesData = Array<ComponentStylesData> | string;\nexport type ClassMapValue = Record<string, boolean>\n\nexport type ClassMap = { [x: string] : ClassMapValue | ClassMap };\n\nexport type PassiveEventListenerObject = EventListenerObject & { passive: boolean };\n\n// Accessibility\nexport type AriaRole = JSX.AriaRole;\nexport type AriaDisabled = JSX.AriaAttributes[\"aria-disabled\"];\nexport type AriaChecked = JSX.AriaAttributes[\"aria-checked\"];\nexport type AriaReadonly = JSX.AriaAttributes[\"aria-readonly\"];\nexport type AriaHasPopup = \"dialog\" | \"grid\" | \"listbox\" | \"menu\" | \"tree\" | \"false\";\nexport type AriaCurrent = \"page\" | \"step\" | \"location\" | \"date\" | \"time\" | \"true\" | \"false\" | boolean | undefined;\nexport type AriaAutoComplete = \"list\" | \"none\" | \"inline\" | \"both\" | undefined;\nexport type AriaLandmarkRole = \"none\" | \"banner\" | \"main\" | \"region\" | \"navigation\" | \"search\" | \"complementary\" | \"form\" | \"contentinfo\"\n\nexport type AccessibilityInfo = {\n\t// The WAI-ARIA role of the component.\n\trole?: AriaRole,\n\n\t// A translated text that represents the component type.\n\ttype?: string,\n\n\t// A translated text that represents relevant component description/state - value, placeholder, label, etc.\n\tdescription?: string,\n\n\t// Disabled state of the component.\n\tdisabled?: boolean,\n\n\t// Readonly state of the component.\n\treadonly?: boolean,\n\n\t// Required state of the component.\n\trequired?: boolean,\n\n\t// An array of nodes, aggregated by the component\n\t// **Note:** Children should only be provided when it is helpful to understand the accessibility context.\n\tchildren?: Array<Node>,\n}\n\nexport type AccessibilityAttributes = {\n\tariaSetsize?: number,\n\tariaPosinset?: number,\n\tariaLabel?: string,\n\tcontrols?: LowercaseString<string>\n\texpanded?: \"true\" | \"false\" | boolean,\n\thasPopup?: AriaHasPopup,\n\tname?: string,\n\trole?: AriaRole,\n\tariaKeyShortcuts?: string,\n\tariaCurrent?: AriaCurrent,\n\tcurrent?: AriaCurrent,\n\troleDescription?: string,\n\ttitle?: string,\n}\n"]}
@@ -7,7 +7,7 @@ import isElementTabbable from "./isElementTabbable.js";
7
7
  * @returns { Array<HTMLElement> } the tabbable elements
8
8
  */
9
9
  const getTabbableElements = (el) => {
10
- return getTabbables([...el.children]);
10
+ return getTabbables(el.tagName === "SLOT" ? [el] : [...el.children]);
11
11
  };
12
12
  /**
13
13
  * Returns the last tabbable element within the provided HTMLElement.
@@ -37,7 +37,7 @@ const getTabbables = (nodes, tabbables) => {
37
37
  tabbableElements.push(currentElement);
38
38
  }
39
39
  if (currentElement.tagName === "SLOT") {
40
- getTabbables(currentElement.assignedNodes(), tabbableElements);
40
+ getTabbables(currentElement.assignedElements(), tabbableElements);
41
41
  }
42
42
  else {
43
43
  const children = currentElement.shadowRoot ? currentElement.shadowRoot.children : currentElement.children;
@@ -1 +1 @@
1
- {"version":3,"file":"TabbableElements.js","sourceRoot":"","sources":["../../src/util/TabbableElements.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,MAAM,wBAAwB,CAAC;AAEvD;;;;;;GAMG;AACH,MAAM,mBAAmB,GAAG,CAAC,EAAe,EAAsB,EAAE;IACnE,OAAO,YAAY,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;AACvC,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,sBAAsB,GAAG,CAAC,EAAe,EAAsB,EAAE;IACtE,MAAM,SAAS,GAAG,YAAY,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IACjD,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAClE,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,KAAkB,EAAE,SAA8B,EAAsB,EAAE;IAC/F,MAAM,gBAAgB,GAAG,SAAS,IAAI,EAAE,CAAC;IAEzC,IAAI,CAAC,KAAK,EAAE,CAAC;QACZ,OAAO,gBAAgB,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;QAC3B,IAAI,WAAW,CAAC,QAAQ,KAAK,IAAI,CAAC,SAAS,IAAI,WAAW,CAAC,QAAQ,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC;YAC3F,OAAO;QACR,CAAC;QAED,MAAM,cAAc,GAAG,WAA0B,CAAC;QAClD,IAAI,cAAc,CAAC,YAAY,CAAC,qBAAqB,CAAC,EAAE,CAAC;YACxD,OAAO;QACR,CAAC;QAED,IAAI,iBAAiB,CAAC,cAAc,CAAC,EAAE,CAAC;YACvC,gBAAgB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACvC,CAAC;QAED,IAAI,cAAc,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;YACvC,YAAY,CAAE,cAAkC,CAAC,aAAa,EAAwB,EAAE,gBAAgB,CAAC,CAAC;QAC3G,CAAC;aAAM,CAAC;YACP,MAAM,QAAQ,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC;YAC1G,YAAY,CAAC,CAAC,GAAG,QAAQ,CAAC,EAAE,gBAAgB,CAAC,CAAC;QAC/C,CAAC;IACF,CAAC,CAAC,CAAC;IAEH,OAAO,gBAAgB,CAAC;AACzB,CAAC,CAAC;AAEF,OAAO,EACN,mBAAmB,EACnB,sBAAsB,GACtB,CAAC","sourcesContent":["import isElementTabbable from \"./isElementTabbable.js\";\n\n/**\n * Returns the tabbable elements within the provided HTMLElement.\n *\n * @public\n * @param { HTMLElement } el the component to operate on (component that slots or contains within its shadow root the items the user navigates among)\n * @returns { Array<HTMLElement> } the tabbable elements\n */\nconst getTabbableElements = (el: HTMLElement): Array<HTMLElement> => {\n\treturn getTabbables([...el.children]);\n};\n\n/**\n * Returns the last tabbable element within the provided HTMLElement.\n *\n * @public\n * @param { HTMLElement } el the component to operate on (component that slots or contains within its shadow root the items the user navigates among)\n * @returns { HTMLElement | null } the last tabbable element or \"null\" if not found\n */\nconst getLastTabbableElement = (el: HTMLElement): HTMLElement | null => {\n\tconst tabbables = getTabbables([...el.children]);\n\treturn tabbables.length ? tabbables[tabbables.length - 1] : null;\n};\n\nconst getTabbables = (nodes: Array<Node>, tabbables?: Array<HTMLElement>): Array<HTMLElement> => {\n\tconst tabbableElements = tabbables || [];\n\n\tif (!nodes) {\n\t\treturn tabbableElements;\n\t}\n\n\tnodes.forEach(currentNode => {\n\t\tif (currentNode.nodeType === Node.TEXT_NODE || currentNode.nodeType === Node.COMMENT_NODE) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst currentElement = currentNode as HTMLElement;\n\t\tif (currentElement.hasAttribute(\"data-sap-no-tab-ref\")) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (isElementTabbable(currentElement)) {\n\t\t\ttabbableElements.push(currentElement);\n\t\t}\n\n\t\tif (currentElement.tagName === \"SLOT\") {\n\t\t\tgetTabbables((currentElement as HTMLSlotElement).assignedNodes() as Array<HTMLElement>, tabbableElements);\n\t\t} else {\n\t\t\tconst children = currentElement.shadowRoot ? currentElement.shadowRoot.children : currentElement.children;\n\t\t\tgetTabbables([...children], tabbableElements);\n\t\t}\n\t});\n\n\treturn tabbableElements;\n};\n\nexport {\n\tgetTabbableElements,\n\tgetLastTabbableElement,\n};\n"]}
1
+ {"version":3,"file":"TabbableElements.js","sourceRoot":"","sources":["../../src/util/TabbableElements.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,MAAM,wBAAwB,CAAC;AAEvD;;;;;;GAMG;AACH,MAAM,mBAAmB,GAAG,CAAC,EAAe,EAAsB,EAAE;IACnE,OAAO,YAAY,CAAC,EAAE,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;AACtE,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,sBAAsB,GAAG,CAAC,EAAe,EAAsB,EAAE;IACtE,MAAM,SAAS,GAAG,YAAY,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IACjD,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAClE,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,KAAkB,EAAE,SAA8B,EAAsB,EAAE;IAC/F,MAAM,gBAAgB,GAAG,SAAS,IAAI,EAAE,CAAC;IAEzC,IAAI,CAAC,KAAK,EAAE,CAAC;QACZ,OAAO,gBAAgB,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;QAC3B,IAAI,WAAW,CAAC,QAAQ,KAAK,IAAI,CAAC,SAAS,IAAI,WAAW,CAAC,QAAQ,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC;YAC3F,OAAO;QACR,CAAC;QAED,MAAM,cAAc,GAAG,WAA0B,CAAC;QAClD,IAAI,cAAc,CAAC,YAAY,CAAC,qBAAqB,CAAC,EAAE,CAAC;YACxD,OAAO;QACR,CAAC;QAED,IAAI,iBAAiB,CAAC,cAAc,CAAC,EAAE,CAAC;YACvC,gBAAgB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACvC,CAAC;QAED,IAAI,cAAc,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;YACvC,YAAY,CAAE,cAAkC,CAAC,gBAAgB,EAAE,EAAE,gBAAgB,CAAC,CAAC;QACxF,CAAC;aAAM,CAAC;YACP,MAAM,QAAQ,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC;YAC1G,YAAY,CAAC,CAAC,GAAG,QAAQ,CAAC,EAAE,gBAAgB,CAAC,CAAC;QAC/C,CAAC;IACF,CAAC,CAAC,CAAC;IAEH,OAAO,gBAAgB,CAAC;AACzB,CAAC,CAAC;AAEF,OAAO,EACN,mBAAmB,EACnB,sBAAsB,GACtB,CAAC","sourcesContent":["import isElementTabbable from \"./isElementTabbable.js\";\n\n/**\n * Returns the tabbable elements within the provided HTMLElement.\n *\n * @public\n * @param { HTMLElement } el the component to operate on (component that slots or contains within its shadow root the items the user navigates among)\n * @returns { Array<HTMLElement> } the tabbable elements\n */\nconst getTabbableElements = (el: HTMLElement): Array<HTMLElement> => {\n\treturn getTabbables(el.tagName === \"SLOT\" ? [el] : [...el.children]);\n};\n\n/**\n * Returns the last tabbable element within the provided HTMLElement.\n *\n * @public\n * @param { HTMLElement } el the component to operate on (component that slots or contains within its shadow root the items the user navigates among)\n * @returns { HTMLElement | null } the last tabbable element or \"null\" if not found\n */\nconst getLastTabbableElement = (el: HTMLElement): HTMLElement | null => {\n\tconst tabbables = getTabbables([...el.children]);\n\treturn tabbables.length ? tabbables[tabbables.length - 1] : null;\n};\n\nconst getTabbables = (nodes: Array<Node>, tabbables?: Array<HTMLElement>): Array<HTMLElement> => {\n\tconst tabbableElements = tabbables || [];\n\n\tif (!nodes) {\n\t\treturn tabbableElements;\n\t}\n\n\tnodes.forEach(currentNode => {\n\t\tif (currentNode.nodeType === Node.TEXT_NODE || currentNode.nodeType === Node.COMMENT_NODE) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst currentElement = currentNode as HTMLElement;\n\t\tif (currentElement.hasAttribute(\"data-sap-no-tab-ref\")) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (isElementTabbable(currentElement)) {\n\t\t\ttabbableElements.push(currentElement);\n\t\t}\n\n\t\tif (currentElement.tagName === \"SLOT\") {\n\t\t\tgetTabbables((currentElement as HTMLSlotElement).assignedElements(), tabbableElements);\n\t\t} else {\n\t\t\tconst children = currentElement.shadowRoot ? currentElement.shadowRoot.children : currentElement.children;\n\t\t\tgetTabbables([...children], tabbableElements);\n\t\t}\n\t});\n\n\treturn tabbableElements;\n};\n\nexport {\n\tgetTabbableElements,\n\tgetLastTabbableElement,\n};\n"]}
@@ -3,7 +3,7 @@ declare const getClassCopy: (klass: typeof UI5Element, constructorCallback: () =
3
3
  new (): {
4
4
  eventDetails: object;
5
5
  _jsxEvents: Omit<import("@ui5/webcomponents-base/jsx-runtime").JSX.DOMAttributes<any>, "onClose" | "onToggle" | "onChange" | "onSelect" | "onInput"> & object;
6
- _jsxProps: Pick<import("@ui5/webcomponents-base/jsx-runtime").JSX.AllHTMLAttributes<HTMLElement>, "contextmenu" | "slot" | "style" | "title" | "pattern" | "dir" | "id" | "accesskey" | "autocapitalize" | "autofocus" | "autocomplete" | "contenteditable" | "class" | "draggable" | "enterkeyhint" | "hidden" | "inputmode" | "lang" | "nonce" | "part" | "exportparts" | "spellcheck" | "tabIndex" | "tabindex" | "translate" | "ref" | "inert"> & Partial<Omit<any, keyof HTMLElement>> & Partial<Omit<import("@ui5/webcomponents-base/jsx-runtime").JSX.DOMAttributes<any>, "onClose" | "onToggle" | "onChange" | "onSelect" | "onInput"> & object> & {
6
+ _jsxProps: Pick<import("@ui5/webcomponents-base/jsx-runtime").JSX.AllHTMLAttributes<HTMLElement>, "contextmenu" | "slot" | "style" | "title" | "pattern" | "dir" | "id" | "accesskey" | "autocapitalize" | "autofocus" | "autocomplete" | "contenteditable" | "class" | "draggable" | "enterkeyhint" | "hidden" | "inputmode" | "lang" | "nonce" | "part" | "exportparts" | "spellcheck" | "tabIndex" | "tabindex" | "translate" | "ref" | "inert" | "role"> & Partial<Omit<any, keyof HTMLElement>> & Partial<Omit<import("@ui5/webcomponents-base/jsx-runtime").JSX.DOMAttributes<any>, "onClose" | "onToggle" | "onChange" | "onSelect" | "onInput"> & object> & {
7
7
  key?: any;
8
8
  };
9
9
  __id?: string;
@@ -79,7 +79,7 @@ declare const getClassCopy: (klass: typeof UI5Element, constructorCallback: () =
79
79
  readonly isUI5Element: boolean;
80
80
  readonly isUI5AbstractElement: boolean;
81
81
  readonly classes: import("../types.js").ClassMap;
82
- readonly accessibilityInfo: import("../types.js").AccessibilityInfo;
82
+ readonly accessibilityInfo: import("../types.js").AccessibilityInfo | undefined;
83
83
  readonly validity: ValidityState;
84
84
  readonly validationMessage: string;
85
85
  checkValidity(): boolean;
@@ -0,0 +1,2 @@
1
+ declare const isEventMarked: (event: any, key?: string) => boolean;
2
+ export default isEventMarked;
@@ -0,0 +1,6 @@
1
+ const defaultOpenUI5Key = "handledByControl";
2
+ const isEventMarked = (event, key = defaultOpenUI5Key) => {
3
+ return !!event[`_sapui_${key}`];
4
+ };
5
+ export default isEventMarked;
6
+ //# sourceMappingURL=isEventMarked.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isEventMarked.js","sourceRoot":"","sources":["../../src/util/isEventMarked.ts"],"names":[],"mappings":"AAAA,MAAM,iBAAiB,GAAG,kBAAkB,CAAC;AAE7C,MAAM,aAAa,GAAG,CAAC,KAAU,EAAE,MAAc,iBAAiB,EAAE,EAAE;IACrE,OAAO,CAAC,CAAC,KAAK,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC;AACjC,CAAC,CAAC;AAEF,eAAe,aAAa,CAAC","sourcesContent":["const defaultOpenUI5Key = \"handledByControl\";\n\nconst isEventMarked = (event: any, key: string = defaultOpenUI5Key) => {\n\treturn !!event[`_sapui_${key}`];\n};\n\nexport default isEventMarked;\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ui5/webcomponents-base",
3
- "version": "2.15.0-rc.3",
3
+ "version": "2.16.0-rc.0",
4
4
  "description": "UI5 Web Components: webcomponents.base",
5
5
  "author": "SAP SE (https://www.sap.com)",
6
6
  "license": "Apache-2.0",
@@ -65,7 +65,7 @@
65
65
  "@openui5/sap.ui.core": "1.120.17",
66
66
  "@sap-theming/theming-base-content": "11.29.3",
67
67
  "@ui5/cypress-internal": "0.1.0",
68
- "@ui5/webcomponents-tools": "2.15.0-rc.3",
68
+ "@ui5/webcomponents-tools": "2.16.0-rc.0",
69
69
  "clean-css": "^5.2.2",
70
70
  "cypress": "^15.3.0",
71
71
  "eslint": "^7.22.0",
@@ -78,5 +78,5 @@
78
78
  "vite": "5.4.8"
79
79
  },
80
80
  "customElements": "dist/custom-elements.json",
81
- "gitHead": "be8dc39a71bc2df6b14528e50a243ce48c9015c5"
81
+ "gitHead": "07b91ccebabfc50f7ae3112c66255423c2dde07d"
82
82
  }