inclusive-elements 0.5.1 → 0.5.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/inclusive-elements8.js +31 -22
- package/dist/types/tabs/tabs.d.ts +1 -0
- package/package.json +1 -1
|
@@ -1,47 +1,56 @@
|
|
|
1
|
-
var
|
|
2
|
-
var
|
|
3
|
-
var
|
|
4
|
-
let
|
|
5
|
-
class
|
|
1
|
+
var d = Object.defineProperty;
|
|
2
|
+
var h = (l, r, t) => r in l ? d(l, r, { enumerable: !0, configurable: !0, writable: !0, value: t }) : l[r] = t;
|
|
3
|
+
var o = (l, r, t) => (h(l, typeof r != "symbol" ? r + "" : r, t), t);
|
|
4
|
+
let u = 0;
|
|
5
|
+
class A extends HTMLElement {
|
|
6
6
|
constructor() {
|
|
7
7
|
super(...arguments);
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
o(this, "idPrefix", "tabs" + ++u);
|
|
9
|
+
o(this, "onKeyDown", (t) => {
|
|
10
10
|
const a = t.target, e = this.tabs.indexOf(a), s = this.tablist.getAttribute("aria-orientation") === "vertical";
|
|
11
|
-
let
|
|
11
|
+
let i = !1;
|
|
12
12
|
switch (t.key) {
|
|
13
13
|
case (s ? "ArrowUp" : "ArrowLeft"):
|
|
14
|
-
this.selectTab(e - 1),
|
|
14
|
+
this.selectTab(e - 1), i = !0;
|
|
15
15
|
break;
|
|
16
16
|
case (s ? "ArrowDown" : "ArrowRight"):
|
|
17
|
-
this.selectTab(e + 1),
|
|
17
|
+
this.selectTab(e + 1), i = !0;
|
|
18
18
|
break;
|
|
19
19
|
case "Home":
|
|
20
|
-
this.selectTab(0),
|
|
20
|
+
this.selectTab(0), i = !0;
|
|
21
21
|
break;
|
|
22
22
|
case "End":
|
|
23
|
-
this.selectTab(this.tabs.length - 1),
|
|
23
|
+
this.selectTab(this.tabs.length - 1), i = !0;
|
|
24
24
|
}
|
|
25
|
-
|
|
25
|
+
i && (t.stopPropagation(), t.preventDefault());
|
|
26
26
|
});
|
|
27
|
-
|
|
27
|
+
o(this, "onClick", (t) => {
|
|
28
28
|
const e = t.target.closest("[role=tab]");
|
|
29
29
|
e && this.selectTab(this.tabs.indexOf(e));
|
|
30
30
|
});
|
|
31
31
|
}
|
|
32
32
|
connectedCallback() {
|
|
33
|
-
this.tablist.addEventListener("keydown", this.onKeyDown), this.tablist.addEventListener("click", this.onClick), this.selectTab(
|
|
34
|
-
const e = this.tabpanels[a], s = t.getAttribute("id") || this.idPrefix + "_tab_" + a,
|
|
35
|
-
t.setAttribute("id", s), t.setAttribute("aria-controls",
|
|
33
|
+
this.tablist.addEventListener("keydown", this.onKeyDown), this.tablist.addEventListener("click", this.onClick), this.selectTab(this.initialTabIndex, !1, !1), this.tabs.forEach((t, a) => {
|
|
34
|
+
const e = this.tabpanels[a], s = t.getAttribute("id") || this.idPrefix + "_tab_" + a, i = e.getAttribute("id") || this.idPrefix + "_panel_" + a;
|
|
35
|
+
t.setAttribute("id", s), t.setAttribute("aria-controls", i), e.setAttribute("id", i), e.setAttribute("aria-labelledby", s), e.setAttribute("tabindex", "0");
|
|
36
36
|
});
|
|
37
37
|
}
|
|
38
38
|
disconnectedCallback() {
|
|
39
39
|
this.tablist.removeEventListener("keydown", this.onKeyDown), this.tablist.removeEventListener("click", this.onClick);
|
|
40
40
|
}
|
|
41
|
-
selectTab(t, a = !0) {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
41
|
+
selectTab(t, a = !0, e = !0) {
|
|
42
|
+
const s = this.tabs, i = this.tabpanels, b = s.findIndex(
|
|
43
|
+
(n) => n.getAttribute("aria-selected") === "true"
|
|
44
|
+
);
|
|
45
|
+
t < 0 ? t += s.length : t >= s.length && (t -= s.length), s.forEach((n, c) => {
|
|
46
|
+
c === t ? (n.setAttribute("aria-selected", "true"), n.removeAttribute("tabindex"), i[c].hidden = !1, a && n.focus()) : (n.setAttribute("aria-selected", "false"), n.setAttribute("tabindex", "-1"), i[c].hidden = !0);
|
|
47
|
+
}), e && b !== t && this.dispatchEvent(new Event("change"));
|
|
48
|
+
}
|
|
49
|
+
get initialTabIndex() {
|
|
50
|
+
const t = this.tabs.findIndex(
|
|
51
|
+
(a) => a.getAttribute("aria-selected") === "true"
|
|
52
|
+
);
|
|
53
|
+
return t !== -1 ? t : 0;
|
|
45
54
|
}
|
|
46
55
|
get tablist() {
|
|
47
56
|
return this.querySelector("[role=tablist]");
|
|
@@ -54,5 +63,5 @@ class d extends HTMLElement {
|
|
|
54
63
|
}
|
|
55
64
|
}
|
|
56
65
|
export {
|
|
57
|
-
|
|
66
|
+
A as default
|
|
58
67
|
};
|