@mattilsynet/design 1.3.0 → 1.3.2
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/mtds/alert/alert.stories.d.ts +2 -2
- package/mtds/app/app-observer.js +1 -1
- package/mtds/app/app-toggle.js +26 -14
- package/mtds/app/app-toggle.js.map +1 -1
- package/mtds/app/app-toggle2.js +14 -26
- package/mtds/app/app-toggle2.js.map +1 -1
- package/mtds/app/app.js +1 -1
- package/mtds/app/app.stories.d.ts +2 -2
- package/mtds/avatar/avatar.stories.d.ts +2 -2
- package/mtds/badge/badge.stories.d.ts +2 -2
- package/mtds/breadcrumbs/breadcrumbs.stories.d.ts +2 -2
- package/mtds/button/button.stories.d.ts +2 -2
- package/mtds/card/card.stories.d.ts +2 -2
- package/mtds/chip/chip.stories.d.ts +2 -2
- package/mtds/details/details.stories.d.ts +1 -1
- package/mtds/dialog/dialog.stories.d.ts +1 -1
- package/mtds/divider/divider.stories.d.ts +1 -1
- package/mtds/errorsummary/errorsummary.stories.d.ts +2 -2
- package/mtds/external/@u-elements/u-combobox/dist/u-combobox.js +151 -152
- package/mtds/external/@u-elements/u-combobox/dist/u-combobox.js.map +1 -1
- package/mtds/external/@u-elements/u-datalist/dist/u-datalist.js +55 -57
- package/mtds/external/@u-elements/u-datalist/dist/u-datalist.js.map +1 -1
- package/mtds/field/field-observer.js +22 -22
- package/mtds/field/field-observer.js.map +1 -1
- package/mtds/field/field.js +4 -3
- package/mtds/field/field.js.map +1 -1
- package/mtds/field/field.stories.d.ts +3 -2
- package/mtds/fieldset/fieldset-observer.js +20 -15
- package/mtds/fieldset/fieldset-observer.js.map +1 -1
- package/mtds/fieldset/fieldset.stories.d.ts +1 -1
- package/mtds/helptext/helptext.stories.d.ts +1 -1
- package/mtds/illustrations/bread.svg +1 -0
- package/mtds/illustrations/drop-apple-bread.svg +1 -0
- package/mtds/illustrations/drop-apple.svg +1 -0
- package/mtds/illustrations/fork-knife-spoon.svg +1 -0
- package/mtds/illustrations/fork-knife.svg +1 -0
- package/mtds/illustrations/fork.svg +1 -0
- package/mtds/illustrations/heart-cat.svg +1 -0
- package/mtds/illustrations/heart.svg +1 -0
- package/mtds/illustrations/hearts-blue.svg +1 -0
- package/mtds/illustrations/hearts-green.svg +1 -0
- package/mtds/illustrations/hearts-red.svg +1 -0
- package/mtds/illustrations/{illustrations.json → index.json} +139 -1
- package/mtds/illustrations/inspector-ai.svg +1 -0
- package/mtds/illustrations/inspector-cow.svg +1 -0
- package/mtds/illustrations/knife.svg +1 -0
- package/mtds/illustrations/person-flask-water-fish-pig.svg +1 -0
- package/mtds/illustrations/plane.svg +1 -0
- package/mtds/illustrations/plant-dog-fish.svg +1 -0
- package/mtds/illustrations/postits.svg +1 -0
- package/mtds/illustrations/pregnant-fork-plant.svg +1 -0
- package/mtds/illustrations/pregnant-fork.svg +1 -0
- package/mtds/illustrations/ship.svg +1 -0
- package/mtds/illustrations/spoon.svg +1 -0
- package/mtds/illustrations/star-1.svg +1 -0
- package/mtds/illustrations/star-2.svg +1 -0
- package/mtds/illustrations/stars.svg +1 -0
- package/mtds/illustrations/turnip-meat.svg +1 -0
- package/mtds/index.d.ts +1 -0
- package/mtds/index.iife.js +8 -7
- package/mtds/input/input.stories.d.ts +2 -2
- package/mtds/layout/layout.stories.d.ts +2 -2
- package/mtds/link/link.stories.d.ts +1 -1
- package/mtds/logo/logo.stories.d.ts +2 -2
- package/mtds/package.json.js +1 -1
- package/mtds/pagination/pagination.stories.d.ts +1 -1
- package/mtds/popover/popover.stories.d.ts +1 -1
- package/mtds/progress/progress.stories.d.ts +2 -2
- package/mtds/react.d.ts +2 -1
- package/mtds/react.js +48 -46
- package/mtds/react.js.map +1 -1
- package/mtds/skeleton/skeleton.stories.d.ts +1 -1
- package/mtds/spinner/spinner.stories.d.ts +2 -2
- package/mtds/steps/steps-observer.d.ts +1 -0
- package/mtds/steps/steps.d.ts +8 -0
- package/mtds/steps/steps.js +11 -0
- package/mtds/steps/steps.js.map +1 -0
- package/mtds/steps/steps.stories.d.ts +20 -0
- package/mtds/styles.css +1 -1
- package/mtds/styles.json +40 -39
- package/mtds/styles.module.css.js +40 -38
- package/mtds/styles.module.css.js.map +1 -1
- package/mtds/table/table.stories.d.ts +2 -2
- package/mtds/tabs/tabs.stories.d.ts +3 -1
- package/mtds/tag/tag.stories.d.ts +2 -2
- package/mtds/togglegroup/togglegroup.stories.d.ts +1 -1
- package/mtds/tooltip/tooltip.stories.d.ts +2 -2
- package/mtds/typography/typography.d.ts +1 -0
- package/mtds/typography/typography.js.map +1 -1
- package/mtds/typography/typography.stories.d.ts +2 -2
- package/mtds/validation/validation.stories.d.ts +1 -1
- package/package.json +10 -14
|
@@ -1,54 +1,53 @@
|
|
|
1
|
-
var
|
|
1
|
+
var U = Object.defineProperty, L = Object.getOwnPropertySymbols, X = Object.prototype.hasOwnProperty, W = Object.prototype.propertyIsEnumerable, M = (t, e, o) => e in t ? U(t, e, { enumerable: !0, configurable: !0, writable: !0, value: o }) : t[e] = o, Y = (t, e) => {
|
|
2
2
|
for (var o in e || (e = {}))
|
|
3
|
-
|
|
4
|
-
if (
|
|
5
|
-
for (var o of
|
|
6
|
-
|
|
3
|
+
X.call(e, o) && M(t, o, e[o]);
|
|
4
|
+
if (L)
|
|
5
|
+
for (var o of L(e))
|
|
6
|
+
W.call(e, o) && M(t, o, e[o]);
|
|
7
7
|
return t;
|
|
8
|
-
},
|
|
9
|
-
|
|
10
|
-
/^Mac/i.test(((
|
|
11
|
-
var
|
|
8
|
+
}, E = typeof window < "u" && typeof window.document < "u" && typeof window.navigator < "u", R = E && /android/i.test(navigator.userAgent), z = E && /firefox/i.test(navigator.userAgent), G = E && /iPad|iPhone|iPod/.test(navigator.userAgent), D;
|
|
9
|
+
E && // @ts-expect-error Typescript has not implemented userAgentData yet https://stackoverflow.com/a/71392474
|
|
10
|
+
/^Mac/i.test(((D = navigator.userAgentData) == null ? void 0 : D.platform) || navigator.platform);
|
|
11
|
+
var J = "outline: 1px dotted; outline: 5px auto Highlight; outline: 5px auto -webkit-focus-ring-color", Q = typeof HTMLElement > "u" ? class {
|
|
12
12
|
} : HTMLElement;
|
|
13
13
|
function l(t, e, o) {
|
|
14
14
|
return o === void 0 ? t.getAttribute(e) : (o === null ? t.removeAttribute(e) : t.getAttribute(e) !== o && t.setAttribute(e, o), null);
|
|
15
15
|
}
|
|
16
|
-
var
|
|
17
|
-
for (const
|
|
18
|
-
o[0] =
|
|
19
|
-
},
|
|
20
|
-
if (e === void 0) return
|
|
16
|
+
var H = (t, e, o) => {
|
|
17
|
+
for (const a of o[0].split(","))
|
|
18
|
+
o[0] = a, Element.prototype[`${t}EventListener`].apply(e, o);
|
|
19
|
+
}, O = (t, ...e) => H("add", t, e), Z = (t, ...e) => H("remove", t, e), w = /* @__PURE__ */ new WeakMap(), N = (t, e) => {
|
|
20
|
+
if (e === void 0) return w.get(t);
|
|
21
21
|
try {
|
|
22
|
-
|
|
22
|
+
w.get(t).disconnect(), w.delete(t);
|
|
23
23
|
} catch {
|
|
24
24
|
}
|
|
25
25
|
if (e) {
|
|
26
26
|
const o = new MutationObserver(
|
|
27
|
-
(
|
|
27
|
+
(a) => t.handleEvent({ type: "mutation", detail: a })
|
|
28
28
|
);
|
|
29
|
-
o.observe(t, e),
|
|
29
|
+
o.observe(t, e), w.set(t, o);
|
|
30
30
|
}
|
|
31
|
-
},
|
|
31
|
+
}, tt = (t) => {
|
|
32
32
|
const e = "key" in t && (t.key === " " || t.key === "Enter");
|
|
33
33
|
return e && t.preventDefault(), e && t.target instanceof HTMLElement && t.target.click(), e;
|
|
34
|
-
},
|
|
34
|
+
}, et = (t) => {
|
|
35
35
|
var e;
|
|
36
36
|
const o = ((e = t.getRootNode) == null ? void 0 : e.call(t)) || t.ownerDocument;
|
|
37
37
|
return o instanceof Document || o instanceof ShadowRoot ? o : document;
|
|
38
|
-
},
|
|
39
|
-
const
|
|
40
|
-
if (e && (
|
|
41
|
-
return
|
|
42
|
-
},
|
|
43
|
-
define: (t, e) => !
|
|
44
|
-
},
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
}, y, vt = 0, N = !1, V = "beforeinput,blur,focus,click,input,keydown,mousedown,mouseup", X = { once: !0, passive: !0 }, pt = et && !j, ft = j || ot, A = "false", mt = "insertReplacementText", O = {
|
|
38
|
+
}, ot = 0, it = (t) => t ? (t.id || (t.id = `:${t.nodeName.toLowerCase()}${(++ot).toString(32)}`), t.id) : "", C = (t, e, o) => {
|
|
39
|
+
const a = document.createElement(t);
|
|
40
|
+
if (e && (a.textContent = e), o) for (const [i, r] of Object.entries(o)) l(a, i, r);
|
|
41
|
+
return a;
|
|
42
|
+
}, nt = {
|
|
43
|
+
define: (t, e) => !E || window.customElements.get(t) || window.customElements.define(t, e)
|
|
44
|
+
}, b, at = 0, $ = (t) => {
|
|
45
|
+
b || (b = C("div"), b.style.cssText = "position:fixed;overflow:hidden;width:1px;white-space:nowrap", l(b, "aria-live", "assertive")), b.isConnected || document.body.append(b), t && (b.textContent = `${t}${at++ % 2 ? " " : ""}`);
|
|
46
|
+
}, B = (t, e, o = "") => {
|
|
47
|
+
var a, i;
|
|
48
|
+
const r = { bubbles: !0, composed: !0, data: e, inputType: o }, n = HTMLInputElement.prototype;
|
|
49
|
+
t.dispatchEvent(new InputEvent("beforeinput", r)), (i = (a = Object.getOwnPropertyDescriptor(n, "value")) == null ? void 0 : a.set) == null || i.call(t, e), t.dispatchEvent(new InputEvent("input", r)), t.dispatchEvent(new Event("change", { bubbles: !0 }));
|
|
50
|
+
}, S = !1, P = "beforeinput,blur,focus,click,input,keydown,mousedown,mouseup", F = { once: !0, passive: !0 }, rt = z && !R, lt = R || G, x = "false", st = "insertReplacementText", k = {
|
|
52
51
|
added: "Added",
|
|
53
52
|
empty: "No selected",
|
|
54
53
|
found: "Navigate left to find %d selected",
|
|
@@ -56,9 +55,9 @@ var K = (t, e, o) => {
|
|
|
56
55
|
of: "of",
|
|
57
56
|
remove: "Press to remove",
|
|
58
57
|
removed: "Removed"
|
|
59
|
-
},
|
|
58
|
+
}, ut = class extends Q {
|
|
60
59
|
constructor() {
|
|
61
|
-
super(), this._speak = "", this._texts =
|
|
60
|
+
super(), this._speak = "", this._texts = Y({}, k), this._value = "", this.attachShadow({ mode: "open" }).append(
|
|
62
61
|
C("slot"),
|
|
63
62
|
// Content slot
|
|
64
63
|
C(
|
|
@@ -66,178 +65,178 @@ var K = (t, e, o) => {
|
|
|
66
65
|
`:host(:not([hidden])) { display: block; cursor: pointer; -webkit-tap-highlight-color: rgba(0, 0, 0, 0) } /* Must be display block in Safari to allow focus inside */
|
|
67
66
|
:host(:not([data-multiple])) ::slotted(data),
|
|
68
67
|
:host([data-multiple="false"]) ::slotted(data) { display: none } /* Hide data if not multiple */
|
|
68
|
+
::slotted(input[inputmode="none"]) { outline: none } /* Hide temporary foucs outline flash */
|
|
69
69
|
::slotted(del) { text-decoration: none }
|
|
70
|
-
::slotted(data) { display: inline-block; pointer-events: none }
|
|
70
|
+
::slotted(data:not([hidden])) { display: inline-block; pointer-events: none }
|
|
71
71
|
::slotted(data)::after { content: '\\00D7'; content: '\\00D7' / ''; padding-inline: .5ch; pointer-events: auto }
|
|
72
|
-
::slotted(data:focus) { ${
|
|
73
|
-
// Show focus outline around ::after only
|
|
72
|
+
::slotted(data:focus) { ${J} }`
|
|
74
73
|
)
|
|
75
74
|
);
|
|
76
75
|
}
|
|
77
76
|
// Locally store value to store value before input-click
|
|
78
77
|
// Using ES2015 syntax for backwards compatibility
|
|
79
78
|
static get observedAttributes() {
|
|
80
|
-
return Object.keys(
|
|
79
|
+
return Object.keys(k).map((t) => `data-sr-${t}`);
|
|
81
80
|
}
|
|
82
81
|
connectedCallback() {
|
|
83
|
-
this._root =
|
|
82
|
+
this._root = et(this), O(this, P, this, !0), N(this, { childList: !0 }), setTimeout(I, 0, this), setTimeout(A, 0, this);
|
|
84
83
|
}
|
|
85
84
|
attributeChangedCallback(t, e, o) {
|
|
86
|
-
const
|
|
87
|
-
|
|
85
|
+
const a = t.split("data-sr-")[1];
|
|
86
|
+
k[a] && (this._texts[a] = o || k[a]);
|
|
88
87
|
}
|
|
89
88
|
disconnectedCallback() {
|
|
90
|
-
|
|
89
|
+
N(this, !1), Z(this, P, this, !0), this._items = this._clear = this._focus = this._control = void 0, this._list = this._options = this._root = void 0;
|
|
91
90
|
}
|
|
92
91
|
handleEvent(t) {
|
|
93
92
|
const e = t.target;
|
|
94
|
-
t.type === "beforeinput" && (this._value = (e == null ? void 0 : e.value) || ""), t.type === "blur" &&
|
|
93
|
+
t.type === "beforeinput" && (this._value = (e == null ? void 0 : e.value) || ""), t.type === "blur" && dt(this), t.type === "click" && vt(this, t), t.type === "focus" && ct(this, t), t.type === "input" && ft(this, t), t.type === "keydown" && mt(this, t), t.type === "mousedown" && (S = this.contains(e)), t.type === "mouseup" && (S = !1), t.type === "mutation" && I(this, t);
|
|
95
94
|
}
|
|
96
95
|
get multiple() {
|
|
97
96
|
var t;
|
|
98
|
-
return ((t = l(this, "data-multiple")) != null ? t :
|
|
97
|
+
return ((t = l(this, "data-multiple")) != null ? t : x) !== x;
|
|
99
98
|
}
|
|
100
99
|
set multiple(t) {
|
|
101
100
|
l(this, "data-multiple", t ? "" : null);
|
|
102
101
|
}
|
|
103
102
|
get creatable() {
|
|
104
103
|
var t;
|
|
105
|
-
return ((t = l(this, "data-creatable")) != null ? t :
|
|
104
|
+
return ((t = l(this, "data-creatable")) != null ? t : x) !== x;
|
|
106
105
|
}
|
|
107
106
|
set creatable(t) {
|
|
108
107
|
l(this, "data-creatable", t ? "" : null);
|
|
109
108
|
}
|
|
110
109
|
get control() {
|
|
111
|
-
|
|
110
|
+
var t;
|
|
111
|
+
return (t = this._control) != null && t.isConnected || (this._control = this.querySelector("input")), this._control;
|
|
112
112
|
}
|
|
113
113
|
get list() {
|
|
114
|
-
|
|
114
|
+
var t;
|
|
115
|
+
return (t = this._list) != null && t.isConnected || (this._list = this.querySelector("u-datalist,datalist")), this._list;
|
|
116
|
+
}
|
|
117
|
+
get clear() {
|
|
118
|
+
var t;
|
|
119
|
+
return (t = this._clear) != null && t.isConnected || (this._clear = this.querySelector("del")), this._clear;
|
|
115
120
|
}
|
|
116
121
|
get items() {
|
|
117
|
-
return this._items || this.getElementsByTagName("data");
|
|
122
|
+
return this._items || (this._items = this.getElementsByTagName("data")), this._items;
|
|
118
123
|
}
|
|
119
124
|
get options() {
|
|
120
125
|
var t, e;
|
|
121
|
-
|
|
122
|
-
|
|
126
|
+
if (!this._options) {
|
|
127
|
+
const o = ((t = this.list) == null ? void 0 : t.nodeName) === "U-DATALIST" ? "u-option" : "option";
|
|
128
|
+
this._options = (e = this.list) == null ? void 0 : e.getElementsByTagName(o);
|
|
129
|
+
}
|
|
130
|
+
return this._options;
|
|
123
131
|
}
|
|
124
132
|
get values() {
|
|
125
133
|
return [...this.items].map(({ value: t }) => t);
|
|
126
134
|
}
|
|
127
|
-
|
|
128
|
-
var e;
|
|
129
|
-
const o = P(t);
|
|
130
|
-
this.values.includes(o.value) || // Prevent duplicates
|
|
131
|
-
((e = this.control) == null || e.insertAdjacentElement("beforebegin", o));
|
|
132
|
-
}
|
|
133
|
-
}, _ = (t) => {
|
|
135
|
+
}, g = (t) => {
|
|
134
136
|
var e;
|
|
135
137
|
return ((e = t == null ? void 0 : t.textContent) == null ? void 0 : e.trim()) || "";
|
|
136
|
-
},
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
(
|
|
147
|
-
const
|
|
148
|
-
|
|
149
|
-
var
|
|
150
|
-
l(n, "aria-expanded", "true"), l(n, "inputmode",
|
|
138
|
+
}, T = (t) => t instanceof HTMLDataElement, I = (t, e) => {
|
|
139
|
+
var o;
|
|
140
|
+
const { _focus: a, _texts: i, items: r, control: n, list: d, multiple: s } = t;
|
|
141
|
+
let c = `${g((o = n == null ? void 0 : n.labels) == null ? void 0 : o[0])}, ${s ? r.length ? i.found.replace("%d", `${r.length}`) : i.empty : ""}`;
|
|
142
|
+
const p = [];
|
|
143
|
+
for (const { addedNodes: f, removedNodes: h } of (e == null ? void 0 : e.detail) || []) {
|
|
144
|
+
for (const m of f) T(m) && p.unshift(m);
|
|
145
|
+
for (const m of h) T(m) && p.push(m);
|
|
146
|
+
}
|
|
147
|
+
const u = s ? p.length === 1 : p[0] === a;
|
|
148
|
+
if (a && n && u) {
|
|
149
|
+
const f = l(n, "inputmode"), h = T(a) ? n : a;
|
|
150
|
+
t._speak = `${i[p[0].isConnected ? "added" : "removed"]} ${g(p[0])}, `, (lt || a === n) && $(t._speak), n !== h && (l(n, "aria-expanded", null), l(n, "inputmode", "none"), c = " ", n.focus()), setTimeout(() => {
|
|
151
|
+
var m;
|
|
152
|
+
l(n, "aria-expanded", "true"), l(n, "inputmode", f), (m = h == null ? void 0 : h.focus) == null || m.call(h), t._speak = "", rt ? O(t, "blur", () => I(t), F) : setTimeout(I, 100, t);
|
|
151
153
|
}, 100);
|
|
152
154
|
}
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
});
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
}
|
|
163
|
-
c && l(c, "aria-multiselectable", `${v}`), n && l(n, "list", ut(c)), n && l(n, "aria-label", B), t._value = (n == null ? void 0 : n.value) || "";
|
|
164
|
-
const k = t.querySelector("del");
|
|
165
|
-
k && l(k, "role", "button"), k && (k.hidden = !(n != null && n.value));
|
|
166
|
-
const g = t.querySelector("select");
|
|
167
|
-
g && (g.multiple = v), g && (g.textContent = ""), g == null || g.append(...D.map((p) => new Option("", p, !0, !0))), (i = M(t)) == null || i.takeRecords();
|
|
168
|
-
}, $ = (t, e) => {
|
|
169
|
-
const { multiple: o, control: r, items: i } = t;
|
|
170
|
-
if (!(o || !r || !i[0])) {
|
|
171
|
-
if (e) return U(r, _(t.items[0]), "insertText");
|
|
172
|
-
r.value = _(t.items[0]);
|
|
173
|
-
}
|
|
174
|
-
}, Y = (t) => {
|
|
155
|
+
let _ = 0;
|
|
156
|
+
for (const f of r) {
|
|
157
|
+
const h = g(f), m = f.value || h, K = `${t._speak}${h}, ${i.remove}, ${++_} ${i.of} ${r.length}`;
|
|
158
|
+
l(f, "role", "button"), l(f, "value", m), l(f, "tabindex", "-1"), l(f, "aria-label", K);
|
|
159
|
+
}
|
|
160
|
+
!s && _ > 1 && console.warn("u-combobox: Multiple <data> found in single mode."), d && l(d, "aria-multiselectable", `${s}`), n && l(n, "list", it(d)), n && l(n, "aria-label", `${t._speak}${c}`);
|
|
161
|
+
const v = t.querySelector("select");
|
|
162
|
+
v && (v.multiple = s), v && (v.textContent = ""), v == null || v.append(...t.values.map((f) => new Option(f, f, !0, !0))), V(t), j(t);
|
|
163
|
+
}, V = (t) => {
|
|
175
164
|
var e;
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
165
|
+
t.clear && l(t.clear, "role", "button"), t.clear && (t.clear.hidden = !((e = t.control) != null && e.value));
|
|
166
|
+
}, j = (t) => {
|
|
167
|
+
var e;
|
|
168
|
+
const { _speak: o, options: a = [], values: i } = t;
|
|
169
|
+
for (const r of a) {
|
|
170
|
+
const n = (e = l(r, "value")) != null ? e : g(r);
|
|
171
|
+
l(r, "aria-label", o ? `${o}${g(r)}` : null), l(r, "selected", i.includes(n) ? "" : null);
|
|
172
|
+
}
|
|
173
|
+
}, A = (t) => {
|
|
174
|
+
const { multiple: e, control: o, items: a } = t, i = g(a[0]);
|
|
175
|
+
!e && o && i !== o.value && B(o, i, "insertText");
|
|
176
|
+
}, q = (t, e = !0) => {
|
|
177
|
+
var o;
|
|
178
|
+
const { _texts: a, options: i = [], creatable: r, control: n, items: d, multiple: s } = t, c = ((o = n == null ? void 0 : n.value) == null ? void 0 : o.trim()) || "", p = c.toLowerCase() || null;
|
|
179
|
+
let u = [...i].find((v) => v.label.trim().toLowerCase() === p);
|
|
180
|
+
const _ = { bubbles: !0, cancelable: !0, detail: u };
|
|
181
|
+
if (t.dispatchEvent(new CustomEvent("beforematch", _)))
|
|
182
|
+
for (const v of i) v.selected = v === u;
|
|
183
|
+
if (u = [...i].find((v) => v.selected), j(t), u) return y(t, u, !1, !!e);
|
|
184
|
+
if (r && c) return y(t, { value: c }, !1);
|
|
185
|
+
!s && d[0] && y(t, d[0], !0, !1), e && $(a.invalid);
|
|
186
|
+
}, y = (t, e, o = !0, a = !0) => {
|
|
187
|
+
const { control: i, items: r, multiple: n } = t, d = C("data", e.label || e.value, {
|
|
188
|
+
value: e.value
|
|
189
|
+
}), s = [...r].find((u) => u.value === e.value), c = { bubbles: !0, cancelable: !0, detail: s || d };
|
|
190
|
+
if (!(s && !o) && t.dispatchEvent(new CustomEvent("beforechange", c))) {
|
|
191
|
+
if (!n) for (const u of [...r]) u.remove();
|
|
192
|
+
s ? s.remove() : i == null || i.insertAdjacentElement("beforebegin", d), t.dispatchEvent(new CustomEvent("afterchange", c));
|
|
193
|
+
}
|
|
194
|
+
a && setTimeout(A, 10, t);
|
|
195
|
+
}, ct = (t, { target: e }) => {
|
|
196
|
+
e instanceof HTMLElement && (t._focus = e), $();
|
|
197
|
+
}, dt = (t) => S || setTimeout(pt, 0, t), pt = (t) => {
|
|
196
198
|
var e;
|
|
197
|
-
!t._focus || t.contains((e = t._root) == null ? void 0 : e.activeElement) || (
|
|
198
|
-
},
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
if (c
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
}, Et = (t, e) => {
|
|
199
|
+
!t._focus || t.contains((e = t._root) == null ? void 0 : e.activeElement) || A(t);
|
|
200
|
+
}, vt = (t, e) => {
|
|
201
|
+
const { clientX: o, clientY: a, target: i } = e, { clear: r, control: n, items: d } = t;
|
|
202
|
+
if (r != null && r.contains(i))
|
|
203
|
+
return n && B(n, "", "deleteContentBackward"), n == null ? void 0 : n.focus();
|
|
204
|
+
for (const s of d) {
|
|
205
|
+
const { top: c, right: p, bottom: u, left: _ } = s.getBoundingClientRect();
|
|
206
|
+
if (s.contains(i)) return y(t, s);
|
|
207
|
+
if (a >= c && a <= u && o >= _ && o <= p) return s.focus();
|
|
208
|
+
}
|
|
209
|
+
i === t && (n == null || n.focus());
|
|
210
|
+
}, ft = (t, e) => {
|
|
210
211
|
var o;
|
|
211
|
-
const { options:
|
|
212
|
-
if (e instanceof InputEvent ? !e.inputType || e.inputType ===
|
|
212
|
+
const { options: a = [], control: i, multiple: r } = t, n = ((o = i == null ? void 0 : i.value) == null ? void 0 : o.trim()) || "";
|
|
213
|
+
if (e instanceof InputEvent ? !e.inputType || e.inputType === st : !!n) {
|
|
213
214
|
e.stopImmediatePropagation(), i && (i.value = t._value);
|
|
214
|
-
for (const
|
|
215
|
-
if (
|
|
216
|
-
return
|
|
217
|
-
} else
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
}
|
|
221
|
-
}, wt = (t, e) => {
|
|
215
|
+
for (const s of a)
|
|
216
|
+
if (s.value && s.value === n)
|
|
217
|
+
return y(t, s, r);
|
|
218
|
+
} else r || q(t, !1);
|
|
219
|
+
V(t);
|
|
220
|
+
}, mt = (t, e) => {
|
|
222
221
|
var o;
|
|
223
222
|
if (e.altKey || e.ctrlKey || e.metaKey || e.shiftKey) return;
|
|
224
|
-
const {
|
|
225
|
-
let
|
|
226
|
-
if (
|
|
227
|
-
if (
|
|
228
|
-
else if (
|
|
229
|
-
else if (
|
|
230
|
-
const
|
|
231
|
-
return l(i, "form", "#"), requestAnimationFrame(() => l(i, "form",
|
|
232
|
-
} else if ((
|
|
233
|
-
if (e.preventDefault(), !d &&
|
|
234
|
-
c && (
|
|
223
|
+
const { clear: a, control: i, items: r } = t, { key: n, repeat: d, target: s } = e, c = i && i === s, p = c && (i == null ? void 0 : i.selectionEnd);
|
|
224
|
+
let u = c ? r.length : [...r].indexOf(s);
|
|
225
|
+
if (c && n === "Tab" && a && !a.hidden && (e.preventDefault(), a.tabIndex = -1, a.focus(), O(a, "blur", () => l(a, "tabindex", null), F)), !(!c && tt(e) || u === -1)) {
|
|
226
|
+
if (n === "ArrowRight" && !c) u += 1;
|
|
227
|
+
else if (n === "ArrowLeft" && !p) u -= 1;
|
|
228
|
+
else if (n === "Enter" && c) {
|
|
229
|
+
const _ = l(i, "form");
|
|
230
|
+
return l(i, "form", "#"), requestAnimationFrame(() => l(i, "form", _)), q(t);
|
|
231
|
+
} else if ((n === "Backspace" || n === "Delete") && !p) {
|
|
232
|
+
if (e.preventDefault(), !d && r[u]) return y(t, r[u]);
|
|
233
|
+
c && (u -= 1);
|
|
235
234
|
} else return c || (i == null ? void 0 : i.focus());
|
|
236
|
-
e.preventDefault(), (o =
|
|
235
|
+
e.preventDefault(), (o = r[Math.max(0, u)] || i) == null || o.focus();
|
|
237
236
|
}
|
|
238
237
|
};
|
|
239
|
-
|
|
238
|
+
nt.define("u-combobox", ut);
|
|
240
239
|
export {
|
|
241
|
-
|
|
240
|
+
ut as UHTMLComboboxElement
|
|
242
241
|
};
|
|
243
242
|
//# sourceMappingURL=u-combobox.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"u-combobox.js","sources":["../../../../../node_modules/@u-elements/u-combobox/dist/u-combobox.js"],"sourcesContent":["var __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\n\n// ../utils.ts\nvar IS_BROWSER = typeof window !== \"undefined\" && typeof window.document !== \"undefined\" && typeof window.navigator !== \"undefined\";\nvar IS_ANDROID = IS_BROWSER && /android/i.test(navigator.userAgent);\nvar IS_FIREFOX = IS_BROWSER && /firefox/i.test(navigator.userAgent);\nvar IS_IOS = IS_BROWSER && /iPad|iPhone|iPod/.test(navigator.userAgent);\nvar _a;\nIS_BROWSER && // @ts-expect-error Typescript has not implemented userAgentData yet https://stackoverflow.com/a/71392474\n/^Mac/i.test(((_a = navigator.userAgentData) == null ? void 0 : _a.platform) || navigator.platform);\nvar FOCUS_OUTLINE = \"outline: 1px dotted; outline: 5px auto Highlight; outline: 5px auto -webkit-focus-ring-color\";\nvar UHTMLElement = typeof HTMLElement === \"undefined\" ? class {\n} : HTMLElement;\nfunction attr(el, name, value) {\n if (value === void 0) return el.getAttribute(name);\n if (value === null) el.removeAttribute(name);\n else if (el.getAttribute(name) !== value) el.setAttribute(name, value);\n return null;\n}\nvar events = (action, element, rest) => {\n for (const type of rest[0].split(\",\")) {\n rest[0] = type;\n Element.prototype[`${action}EventListener`].apply(element, rest);\n }\n};\nvar on = (element, ...rest) => events(\"add\", element, rest);\nvar off = (element, ...rest) => events(\"remove\", element, rest);\nvar observers = /* @__PURE__ */ new WeakMap();\nvar mutationObserver = (element, options) => {\n if (options === void 0) return observers.get(element);\n try {\n observers.get(element).disconnect();\n observers.delete(element);\n } catch (err) {\n }\n if (options) {\n const observer = new MutationObserver(\n (detail) => element.handleEvent({ type: \"mutation\", detail })\n );\n observer.observe(element, options);\n observers.set(element, observer);\n }\n};\nvar asButton = (event) => {\n const isClick = \"key\" in event && (event.key === \" \" || event.key === \"Enter\");\n if (isClick) event.preventDefault();\n if (isClick && event.target instanceof HTMLElement) event.target.click();\n return isClick;\n};\nvar getRoot = (node) => {\n var _a2;\n const root = ((_a2 = node.getRootNode) == null ? void 0 : _a2.call(node)) || node.ownerDocument;\n return root instanceof Document || root instanceof ShadowRoot ? root : document;\n};\nvar id = 0;\nvar useId = (el) => {\n if (!el) return \"\";\n if (!el.id) el.id = `:${el.nodeName.toLowerCase()}${(++id).toString(32)}`;\n return el.id;\n};\nvar createElement = (tagName, text2, attrs) => {\n const el = document.createElement(tagName);\n if (text2) el.textContent = text2;\n if (attrs) for (const [key, val] of Object.entries(attrs)) attr(el, key, val);\n return el;\n};\nvar customElements = {\n define: (name, instance) => !IS_BROWSER || window.customElements.get(name) || window.customElements.define(name, instance)\n};\nvar createAriaLive = (mode) => {\n const live = createElement(\"div\");\n live.style.cssText = \"position:fixed;overflow:hidden;width:1px;white-space:nowrap\";\n attr(live, \"aria-live\", mode);\n return live;\n};\nvar setValue = (input, data, type = \"\") => {\n var _a2, _b;\n const event = { bubbles: true, composed: true, data, inputType: type };\n const proto = HTMLInputElement.prototype;\n input.dispatchEvent(new InputEvent(\"beforeinput\", event));\n (_b = (_a2 = Object.getOwnPropertyDescriptor(proto, \"value\")) == null ? void 0 : _a2.set) == null ? void 0 : _b.call(input, data);\n input.dispatchEvent(new InputEvent(\"input\", event));\n input.dispatchEvent(new Event(\"change\", { bubbles: true }));\n};\n\n// u-combobox.ts\nvar LIVE;\nvar LIVE_SR_FIX = 0;\nvar IS_PRESS = false;\nvar EVENTS = \"beforeinput,blur,focus,click,input,keydown,mousedown,mouseup\";\nvar EVENT_ONCE = { once: true, passive: true };\nvar IS_FIREFOX_MAC = IS_FIREFOX && !IS_ANDROID;\nvar IS_MOBILE = IS_ANDROID || IS_IOS;\nvar FALSE = \"false\";\nvar CLICK = \"insertReplacementText\";\nvar TEXTS = {\n added: \"Added\",\n empty: \"No selected\",\n found: \"Navigate left to find %d selected\",\n invalid: \"Invalid value\",\n of: \"of\",\n remove: \"Press to remove\",\n removed: \"Removed\"\n};\nvar UHTMLComboboxElement = class extends UHTMLElement {\n constructor() {\n super();\n this._speak = \"\";\n this._texts = __spreadValues({}, TEXTS);\n this._value = \"\";\n this.attachShadow({ mode: \"open\" }).append(\n createElement(\"slot\"),\n // Content slot\n createElement(\n \"style\",\n `:host(:not([hidden])) { display: block; cursor: pointer; -webkit-tap-highlight-color: rgba(0, 0, 0, 0) } /* Must be display block in Safari to allow focus inside */\n\t\t\t\t:host(:not([data-multiple])) ::slotted(data),\n\t\t\t\t:host([data-multiple=\"false\"]) ::slotted(data) { display: none } /* Hide data if not multiple */\n\t\t\t\t::slotted(del) { text-decoration: none }\n\t\t\t\t::slotted(data) { display: inline-block; pointer-events: none }\n ::slotted(data)::after { content: '\\\\00D7'; content: '\\\\00D7' / ''; padding-inline: .5ch; pointer-events: auto }\n ::slotted(data:focus) { ${FOCUS_OUTLINE} }`\n // Show focus outline around ::after only\n )\n );\n }\n // Locally store value to store value before input-click\n // Using ES2015 syntax for backwards compatibility\n static get observedAttributes() {\n return Object.keys(TEXTS).map((key) => `data-sr-${key}`);\n }\n connectedCallback() {\n this._root = getRoot(this);\n on(this, EVENTS, this, true);\n mutationObserver(this, { childList: true });\n setTimeout(render, 0, this);\n setTimeout(syncInputValue, 0, this);\n }\n attributeChangedCallback(prop, _, val) {\n const text2 = prop.split(\"data-sr-\")[1];\n if (TEXTS[text2]) this._texts[text2] = val || TEXTS[text2];\n }\n disconnectedCallback() {\n disconnectCache(this);\n mutationObserver(this, false);\n off(this, EVENTS, this, true);\n this._root = void 0;\n }\n handleEvent(event) {\n const target = event.target;\n if (event.type === \"beforeinput\") this._value = (target == null ? void 0 : target.value) || \"\";\n if (event.type === \"blur\") onBlur(this);\n if (event.type === \"click\") onClick(this, event);\n if (event.type === \"focus\") onFocus(this, event);\n if (event.type === \"input\") onInput(this, event);\n if (event.type === \"keydown\") onKeyDown(this, event);\n if (event.type === \"mousedown\") IS_PRESS = this.contains(target);\n if (event.type === \"mouseup\") IS_PRESS = false;\n if (event.type === \"mutation\") render(this, event);\n }\n get multiple() {\n var _a2;\n return ((_a2 = attr(this, \"data-multiple\")) != null ? _a2 : FALSE) !== FALSE;\n }\n set multiple(value) {\n attr(this, \"data-multiple\", value ? \"\" : null);\n }\n get creatable() {\n var _a2;\n return ((_a2 = attr(this, \"data-creatable\")) != null ? _a2 : FALSE) !== FALSE;\n }\n set creatable(value) {\n attr(this, \"data-creatable\", value ? \"\" : null);\n }\n get control() {\n return this._control || this.querySelector(\"input\");\n }\n get list() {\n return this._list || this.querySelector(\"u-datalist,datalist\") || null;\n }\n get items() {\n return this._items || this.getElementsByTagName(\"data\");\n }\n get options() {\n var _a2, _b;\n const tag = `${((_a2 = this.list) == null ? void 0 : _a2.nodeName) === \"U-DATALIST\" ? \"u-\" : \"\"}option`;\n return this._options || ((_b = this.list) == null ? void 0 : _b.getElementsByTagName(tag));\n }\n get values() {\n return [...this.items].map(({ value }) => value);\n }\n add(value) {\n var _a2;\n const item = createItem(value);\n this.values.includes(item.value) || // Prevent duplicates\n ((_a2 = this.control) == null ? void 0 : _a2.insertAdjacentElement(\"beforebegin\", item));\n }\n};\nvar text = (el) => {\n var _a2;\n return ((_a2 = el == null ? void 0 : el.textContent) == null ? void 0 : _a2.trim()) || \"\";\n};\nvar createItem = (value) => {\n if (typeof value === \"string\") return createElement(\"data\", value, { value });\n if (value instanceof HTMLDataElement) return value;\n return createElement(\"data\", value.label || value.value, {\n value: value.value || value.label || \"\"\n });\n};\nvar disconnectCache = (el) => {\n el._focus = el._control = el._items = el._list = el._options = void 0;\n};\nvar render = (self, e) => {\n var _a2, _b, _c;\n let { _focus, _speak, _texts, items, control, list, multiple } = self;\n const { addedNodes, removedNodes } = (e == null ? void 0 : e.detail[0]) || {};\n const isMultiEdit = (e == null ? void 0 : e.detail[1]) || (addedNodes == null ? void 0 : addedNodes[1]) || (addedNodes == null ? void 0 : addedNodes[1]);\n const edit = isMultiEdit ? null : (addedNodes == null ? void 0 : addedNodes[0]) || (removedNodes == null ? void 0 : removedNodes[0]);\n const total = multiple ? items.length : 1;\n const values = [];\n let label = `${_speak}${text((_a2 = control == null ? void 0 : control.labels) == null ? void 0 : _a2[0])}, ${multiple ? total ? _texts.found.replace(\"%d\", `${total}`) : _texts.empty : \"\"}`;\n if (control && (edit == null ? void 0 : edit.nodeName) === \"DATA\" && // Announce if only one item has changed...\n (multiple ? _focus : edit === _focus)) {\n const inputMode = attr(control, \"inputmode\");\n const nextFocus = (_focus == null ? void 0 : _focus.nodeName) === \"DATA\" ? control : _focus;\n _speak = `${_texts[edit.isConnected ? \"added\" : \"removed\"]} ${text(edit)}, `;\n if (IS_MOBILE || _focus === control) LIVE.textContent = _speak;\n if (control !== nextFocus) {\n attr(control, \"aria-expanded\", null);\n attr(control, \"inputmode\", \"none\");\n label = \"\\xA0\";\n control.focus();\n }\n setTimeout(() => {\n var _a3;\n attr(control, \"aria-expanded\", \"true\");\n attr(control, \"inputmode\", inputMode);\n (_a3 = nextFocus == null ? void 0 : nextFocus.focus) == null ? void 0 : _a3.call(nextFocus);\n self._speak = \"\";\n if (IS_FIREFOX_MAC) on(self, \"blur\", () => render(self), EVENT_ONCE);\n else setTimeout(render, 100, self);\n }, 100);\n }\n const keep = (edit == null ? void 0 : edit.isConnected) ? edit : items[0];\n Array.from(items, (item) => {\n if (!multiple && item !== keep) return item.remove();\n const label2 = text(item);\n const value = item.value || label2;\n const aria = `${_speak}${label2}, ${_texts.remove}, ${values.push(value)} ${_texts.of} ${total}`;\n attr(item, \"role\", \"button\");\n attr(item, \"value\", value);\n attr(item, \"tabindex\", \"-1\");\n attr(item, \"aria-label\", aria);\n });\n for (const opt of self.options || []) {\n const value = (_b = attr(opt, \"value\")) != null ? _b : text(opt);\n attr(opt, \"aria-label\", _speak ? `${_speak}${text(opt)}` : null);\n attr(opt, \"selected\", values.includes(value) ? \"\" : null);\n }\n if (list) attr(list, \"aria-multiselectable\", `${multiple}`);\n if (control) attr(control, \"list\", useId(list));\n if (control) attr(control, \"aria-label\", label);\n self._value = (control == null ? void 0 : control.value) || \"\";\n const del = self.querySelector(\"del\");\n if (del) attr(del, \"role\", \"button\");\n if (del) del.hidden = !(control == null ? void 0 : control.value);\n const select = self.querySelector(\"select\");\n if (select) select.multiple = multiple;\n if (select) select.textContent = \"\";\n select == null ? void 0 : select.append(...values.map((value) => new Option(\"\", value, true, true)));\n (_c = mutationObserver(self)) == null ? void 0 : _c.takeRecords();\n};\nvar syncInputValue = (self, withEvent) => {\n const { multiple, control, items } = self;\n if (multiple || !control || !items[0]) return;\n if (withEvent) return setValue(control, text(self.items[0]), \"insertText\");\n control.value = text(self.items[0]);\n};\nvar dispatchMatch = (self) => {\n var _a2;\n const { options = [], creatable, control, items, multiple } = self;\n const value = ((_a2 = control == null ? void 0 : control.value) == null ? void 0 : _a2.trim()) || \"\";\n const query = value.toLowerCase() || null;\n let match = [...options].find((o) => o.label.trim().toLowerCase() === query);\n const event = { bubbles: true, cancelable: true, detail: match };\n if (self.dispatchEvent(new CustomEvent(\"beforematch\", event)))\n for (const opt of options) opt.selected = opt === match;\n match = [...options].find((o) => o.selected);\n if (!match && creatable && value)\n return dispatchChange(self, createItem(value), false);\n if (!match && !multiple && items[0]) return dispatchChange(self, items[0]);\n if (!match || self.values.includes(match.value)) return render(self);\n dispatchChange(self, match, false);\n};\nvar dispatchChange = (self, item, removeable = true) => {\n const add = createItem(item);\n const remove = [...self.items].find((i) => i.value === item.value);\n const event = { bubbles: true, cancelable: true, detail: remove || add };\n if (remove && !removeable) return;\n if (!self.dispatchEvent(new CustomEvent(\"beforechange\", event)))\n return render(self);\n remove ? remove.remove() : self.add(add);\n self.dispatchEvent(new CustomEvent(\"afterchange\", event));\n};\nvar onFocus = (self, { target }) => {\n if (!LIVE) LIVE = createAriaLive(\"assertive\");\n if (!LIVE.isConnected) document.body.appendChild(LIVE);\n if (target instanceof HTMLElement) self._focus = target;\n if (!self._items) {\n self._control = self.control || void 0;\n self._items = self.items;\n self._list = self.list || void 0;\n self._options = self.options || void 0;\n }\n};\nvar onBlur = (self) => IS_PRESS || setTimeout(onBlurred, 0, self);\nvar onBlurred = (self) => {\n var _a2;\n if (!self._focus || self.contains((_a2 = self._root) == null ? void 0 : _a2.activeElement)) return;\n syncInputValue(self, true);\n disconnectCache(self);\n};\nvar onClick = (self, event) => {\n var _a2, _b;\n const clear = (_b = (_a2 = event.target) == null ? void 0 : _a2.closest) == null ? void 0 : _b.call(_a2, \"del\");\n const { clientX: x, clientY: y, target } = event;\n const { control, items } = self;\n if (clear && control) {\n event.preventDefault();\n setValue(control, \"\", \"deleteContentBackward\");\n return control.focus();\n }\n for (const item of items) {\n const { top, right, bottom, left } = item.getBoundingClientRect();\n if (item.contains(target)) return dispatchChange(self, item);\n if (y >= top && y <= bottom && x >= left && x <= right) return item.focus();\n }\n if (target === self) control == null ? void 0 : control.focus();\n};\nvar onInput = (self, event) => {\n var _a2;\n const { options = [], control, multiple } = self;\n const value = ((_a2 = control == null ? void 0 : control.value) == null ? void 0 : _a2.trim()) || \"\";\n const isClick = event instanceof InputEvent ? !event.inputType || event.inputType === CLICK : !!value;\n if (isClick) {\n event.stopImmediatePropagation();\n if (control) control.value = self._value;\n for (const opt of options)\n if (opt.value && opt.value === value) {\n dispatchChange(self, opt, multiple);\n return setTimeout(syncInputValue, 0, self, true);\n }\n } else {\n const del = self.querySelector(\"del\");\n if (del) del.hidden = !value;\n return multiple || dispatchMatch(self);\n }\n};\nvar onKeyDown = (self, event) => {\n var _a2;\n if (event.altKey || event.ctrlKey || event.metaKey || event.shiftKey) return;\n const { _texts, control, items, multiple } = self;\n const { key, repeat, target } = event;\n const isControl = control && control === target;\n const inText = isControl && (control == null ? void 0 : control.selectionEnd);\n const clear = isControl && key === \"Tab\" && self.querySelector(\"del\");\n let index = isControl ? items.length : [...items].indexOf(target);\n if (clear && !clear.hidden) {\n event.preventDefault();\n clear.tabIndex = -1;\n clear.focus();\n on(clear, \"blur\", () => attr(clear, \"tabindex\", null), EVENT_ONCE);\n }\n if (!isControl && asButton(event) || index === -1) return;\n if (key === \"ArrowRight\" && !isControl) index += 1;\n else if (key === \"ArrowLeft\" && !inText) index -= 1;\n else if (key === \"Enter\" && isControl) {\n const form = attr(control, \"form\");\n attr(control, \"form\", \"#\");\n requestAnimationFrame(() => attr(control, \"form\", form));\n if (multiple) dispatchMatch(self);\n else if (!self.items[0] && LIVE)\n LIVE.textContent = `${_texts.invalid}${++LIVE_SR_FIX % 2 ? \"\\xA0\" : \"\"}`;\n return syncInputValue(self, true);\n } else if ((key === \"Backspace\" || key === \"Delete\") && !inText) {\n event.preventDefault();\n if (!repeat && items[index]) return dispatchChange(self, items[index]);\n if (isControl) index -= 1;\n } else return isControl || (control == null ? void 0 : control.focus());\n event.preventDefault();\n (_a2 = items[Math.max(0, index)] || control) == null ? void 0 : _a2.focus();\n};\ncustomElements.define(\"u-combobox\", UHTMLComboboxElement);\n\nexport { UHTMLComboboxElement };\n"],"names":["__defProp","__getOwnPropSymbols","__hasOwnProp","__propIsEnum","__defNormalProp","obj","key","value","__spreadValues","a","b","prop","IS_BROWSER","IS_ANDROID","IS_FIREFOX","IS_IOS","_a","FOCUS_OUTLINE","UHTMLElement","attr","el","name","events","action","element","rest","type","on","off","observers","mutationObserver","options","observer","detail","asButton","event","isClick","getRoot","node","_a2","root","id","useId","createElement","tagName","text2","attrs","val","customElements","instance","createAriaLive","mode","live","setValue","input","data","_b","proto","LIVE","LIVE_SR_FIX","IS_PRESS","EVENTS","EVENT_ONCE","IS_FIREFOX_MAC","IS_MOBILE","FALSE","CLICK","TEXTS","UHTMLComboboxElement","render","syncInputValue","_","disconnectCache","target","onBlur","onClick","onFocus","onInput","onKeyDown","tag","item","createItem","text","self","_c","_focus","_speak","_texts","items","control","list","multiple","addedNodes","removedNodes","edit","total","values","label","inputMode","nextFocus","_a3","keep","label2","aria","opt","del","select","withEvent","dispatchMatch","creatable","query","match","o","dispatchChange","removeable","add","remove","i","onBlurred","clear","x","y","top","right","bottom","left","repeat","isControl","inText","index","form"],"mappings":"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","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"u-combobox.js","sources":["../../../../../node_modules/@u-elements/u-combobox/dist/u-combobox.js"],"sourcesContent":["var __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\n\n// ../utils.ts\nvar IS_BROWSER = typeof window !== \"undefined\" && typeof window.document !== \"undefined\" && typeof window.navigator !== \"undefined\";\nvar IS_ANDROID = IS_BROWSER && /android/i.test(navigator.userAgent);\nvar IS_FIREFOX = IS_BROWSER && /firefox/i.test(navigator.userAgent);\nvar IS_IOS = IS_BROWSER && /iPad|iPhone|iPod/.test(navigator.userAgent);\nvar _a;\nIS_BROWSER && // @ts-expect-error Typescript has not implemented userAgentData yet https://stackoverflow.com/a/71392474\n/^Mac/i.test(((_a = navigator.userAgentData) == null ? void 0 : _a.platform) || navigator.platform);\nvar FOCUS_OUTLINE = \"outline: 1px dotted; outline: 5px auto Highlight; outline: 5px auto -webkit-focus-ring-color\";\nvar UHTMLElement = typeof HTMLElement === \"undefined\" ? class {\n} : HTMLElement;\nfunction attr(el, name, value) {\n if (value === void 0) return el.getAttribute(name);\n if (value === null) el.removeAttribute(name);\n else if (el.getAttribute(name) !== value) el.setAttribute(name, value);\n return null;\n}\nvar events = (action, element, rest) => {\n for (const type of rest[0].split(\",\")) {\n rest[0] = type;\n Element.prototype[`${action}EventListener`].apply(element, rest);\n }\n};\nvar on = (element, ...rest) => events(\"add\", element, rest);\nvar off = (element, ...rest) => events(\"remove\", element, rest);\nvar observers = /* @__PURE__ */ new WeakMap();\nvar mutationObserver = (element, options) => {\n if (options === void 0) return observers.get(element);\n try {\n observers.get(element).disconnect();\n observers.delete(element);\n } catch (err) {\n }\n if (options) {\n const observer = new MutationObserver(\n (detail) => element.handleEvent({ type: \"mutation\", detail })\n );\n observer.observe(element, options);\n observers.set(element, observer);\n }\n};\nvar asButton = (event) => {\n const isClick = \"key\" in event && (event.key === \" \" || event.key === \"Enter\");\n if (isClick) event.preventDefault();\n if (isClick && event.target instanceof HTMLElement) event.target.click();\n return isClick;\n};\nvar getRoot = (node) => {\n var _a2;\n const root = ((_a2 = node.getRootNode) == null ? void 0 : _a2.call(node)) || node.ownerDocument;\n return root instanceof Document || root instanceof ShadowRoot ? root : document;\n};\nvar id = 0;\nvar useId = (el) => {\n if (!el) return \"\";\n if (!el.id) el.id = `:${el.nodeName.toLowerCase()}${(++id).toString(32)}`;\n return el.id;\n};\nvar createElement = (tagName, text2, attrs) => {\n const el = document.createElement(tagName);\n if (text2) el.textContent = text2;\n if (attrs) for (const [key, val] of Object.entries(attrs)) attr(el, key, val);\n return el;\n};\nvar customElements = {\n define: (name, instance) => !IS_BROWSER || window.customElements.get(name) || window.customElements.define(name, instance)\n};\nvar LIVE;\nvar LIVE_SR_FIX = 0;\nvar speak = (text2) => {\n if (!LIVE) {\n LIVE = createElement(\"div\");\n LIVE.style.cssText = \"position:fixed;overflow:hidden;width:1px;white-space:nowrap\";\n attr(LIVE, \"aria-live\", \"assertive\");\n }\n if (!LIVE.isConnected) document.body.append(LIVE);\n if (text2) LIVE.textContent = `${text2}${LIVE_SR_FIX++ % 2 ? \"\\xA0\" : \"\"}`;\n};\nvar setValue = (input, data, type = \"\") => {\n var _a2, _b;\n const event = { bubbles: true, composed: true, data, inputType: type };\n const proto = HTMLInputElement.prototype;\n input.dispatchEvent(new InputEvent(\"beforeinput\", event));\n (_b = (_a2 = Object.getOwnPropertyDescriptor(proto, \"value\")) == null ? void 0 : _a2.set) == null ? void 0 : _b.call(input, data);\n input.dispatchEvent(new InputEvent(\"input\", event));\n input.dispatchEvent(new Event(\"change\", { bubbles: true }));\n};\n\n// u-combobox.ts\nvar IS_PRESS = false;\nvar EVENTS = \"beforeinput,blur,focus,click,input,keydown,mousedown,mouseup\";\nvar EVENT_ONCE = { once: true, passive: true };\nvar IS_FIREFOX_MAC = IS_FIREFOX && !IS_ANDROID;\nvar IS_MOBILE = IS_ANDROID || IS_IOS;\nvar FALSE = \"false\";\nvar CLICK = \"insertReplacementText\";\nvar TEXTS = {\n added: \"Added\",\n empty: \"No selected\",\n found: \"Navigate left to find %d selected\",\n invalid: \"Invalid value\",\n of: \"of\",\n remove: \"Press to remove\",\n removed: \"Removed\"\n};\nvar UHTMLComboboxElement = class extends UHTMLElement {\n constructor() {\n super();\n this._speak = \"\";\n this._texts = __spreadValues({}, TEXTS);\n this._value = \"\";\n this.attachShadow({ mode: \"open\" }).append(\n createElement(\"slot\"),\n // Content slot\n createElement(\n \"style\",\n `:host(:not([hidden])) { display: block; cursor: pointer; -webkit-tap-highlight-color: rgba(0, 0, 0, 0) } /* Must be display block in Safari to allow focus inside */\n\t\t\t\t:host(:not([data-multiple])) ::slotted(data),\n\t\t\t\t:host([data-multiple=\"false\"]) ::slotted(data) { display: none } /* Hide data if not multiple */\n\t\t\t\t::slotted(input[inputmode=\"none\"]) { outline: none } /* Hide temporary foucs outline flash */\n\t\t\t\t::slotted(del) { text-decoration: none }\n\t\t\t\t::slotted(data:not([hidden])) { display: inline-block; pointer-events: none }\n ::slotted(data)::after { content: '\\\\00D7'; content: '\\\\00D7' / ''; padding-inline: .5ch; pointer-events: auto }\n ::slotted(data:focus) { ${FOCUS_OUTLINE} }`\n )\n );\n }\n // Locally store value to store value before input-click\n // Using ES2015 syntax for backwards compatibility\n static get observedAttributes() {\n return Object.keys(TEXTS).map((key) => `data-sr-${key}`);\n }\n connectedCallback() {\n this._root = getRoot(this);\n on(this, EVENTS, this, true);\n mutationObserver(this, { childList: true });\n setTimeout(render, 0, this);\n setTimeout(syncInputValue, 0, this);\n }\n attributeChangedCallback(prop, _, val) {\n const text2 = prop.split(\"data-sr-\")[1];\n if (TEXTS[text2]) this._texts[text2] = val || TEXTS[text2];\n }\n disconnectedCallback() {\n mutationObserver(this, false);\n off(this, EVENTS, this, true);\n this._items = this._clear = this._focus = this._control = void 0;\n this._list = this._options = this._root = void 0;\n }\n handleEvent(event) {\n const target = event.target;\n if (event.type === \"beforeinput\") this._value = (target == null ? void 0 : target.value) || \"\";\n if (event.type === \"blur\") onBlur(this);\n if (event.type === \"click\") onClick(this, event);\n if (event.type === \"focus\") onFocus(this, event);\n if (event.type === \"input\") onInput(this, event);\n if (event.type === \"keydown\") onKeyDown(this, event);\n if (event.type === \"mousedown\") IS_PRESS = this.contains(target);\n if (event.type === \"mouseup\") IS_PRESS = false;\n if (event.type === \"mutation\") render(this, event);\n }\n get multiple() {\n var _a2;\n return ((_a2 = attr(this, \"data-multiple\")) != null ? _a2 : FALSE) !== FALSE;\n }\n set multiple(value) {\n attr(this, \"data-multiple\", value ? \"\" : null);\n }\n get creatable() {\n var _a2;\n return ((_a2 = attr(this, \"data-creatable\")) != null ? _a2 : FALSE) !== FALSE;\n }\n set creatable(value) {\n attr(this, \"data-creatable\", value ? \"\" : null);\n }\n get control() {\n var _a2;\n if (!((_a2 = this._control) == null ? void 0 : _a2.isConnected))\n this._control = this.querySelector(\"input\");\n return this._control;\n }\n get list() {\n var _a2;\n if (!((_a2 = this._list) == null ? void 0 : _a2.isConnected))\n this._list = this.querySelector(\"u-datalist,datalist\");\n return this._list;\n }\n get clear() {\n var _a2;\n if (!((_a2 = this._clear) == null ? void 0 : _a2.isConnected)) this._clear = this.querySelector(\"del\");\n return this._clear;\n }\n get items() {\n if (!this._items) this._items = this.getElementsByTagName(\"data\");\n return this._items;\n }\n get options() {\n var _a2, _b;\n if (!this._options) {\n const tag = ((_a2 = this.list) == null ? void 0 : _a2.nodeName) === \"U-DATALIST\" ? \"u-option\" : \"option\";\n this._options = (_b = this.list) == null ? void 0 : _b.getElementsByTagName(tag);\n }\n return this._options;\n }\n get values() {\n return [...this.items].map(({ value }) => value);\n }\n};\nvar text = (el) => {\n var _a2;\n return ((_a2 = el == null ? void 0 : el.textContent) == null ? void 0 : _a2.trim()) || \"\";\n};\nvar isData = (el) => el instanceof HTMLDataElement;\nvar render = (self, event) => {\n var _a2;\n const { _focus, _texts, items, control, list, multiple } = self;\n let label = `${text((_a2 = control == null ? void 0 : control.labels) == null ? void 0 : _a2[0])}, ${multiple ? items.length ? _texts.found.replace(\"%d\", `${items.length}`) : _texts.empty : \"\"}`;\n const edits = [];\n for (const { addedNodes, removedNodes } of (event == null ? void 0 : event.detail) || []) {\n for (const el of addedNodes) if (isData(el)) edits.unshift(el);\n for (const el of removedNodes) if (isData(el)) edits.push(el);\n }\n const shouldAnnounce = multiple ? edits.length === 1 : edits[0] === _focus;\n if (_focus && control && shouldAnnounce) {\n const inputMode = attr(control, \"inputmode\");\n const nextFocus = isData(_focus) ? control : _focus;\n self._speak = `${_texts[edits[0].isConnected ? \"added\" : \"removed\"]} ${text(edits[0])}, `;\n if (IS_MOBILE || _focus === control) speak(self._speak);\n if (control !== nextFocus) {\n attr(control, \"aria-expanded\", null);\n attr(control, \"inputmode\", \"none\");\n label = \"\\xA0\";\n control.focus();\n }\n setTimeout(() => {\n var _a3;\n attr(control, \"aria-expanded\", \"true\");\n attr(control, \"inputmode\", inputMode);\n (_a3 = nextFocus == null ? void 0 : nextFocus.focus) == null ? void 0 : _a3.call(nextFocus);\n self._speak = \"\";\n if (IS_FIREFOX_MAC) on(self, \"blur\", () => render(self), EVENT_ONCE);\n else setTimeout(render, 100, self);\n }, 100);\n }\n let idx = 0;\n for (const item of items) {\n const label2 = text(item);\n const value = item.value || label2;\n const aria = `${self._speak}${label2}, ${_texts.remove}, ${++idx} ${_texts.of} ${items.length}`;\n attr(item, \"role\", \"button\");\n attr(item, \"value\", value);\n attr(item, \"tabindex\", \"-1\");\n attr(item, \"aria-label\", aria);\n }\n if (!multiple && idx > 1)\n console.warn(\"u-combobox: Multiple <data> found in single mode.\");\n if (list) attr(list, \"aria-multiselectable\", `${multiple}`);\n if (control) attr(control, \"list\", useId(list));\n if (control) attr(control, \"aria-label\", `${self._speak}${label}`);\n const select = self.querySelector(\"select\");\n if (select) select.multiple = multiple;\n if (select) select.textContent = \"\";\n select == null ? void 0 : select.append(...self.values.map((val) => new Option(val, val, true, true)));\n syncClearWithInput(self);\n syncOptionsWithItems(self);\n};\nvar syncClearWithInput = (self) => {\n var _a2;\n if (self.clear) attr(self.clear, \"role\", \"button\");\n if (self.clear) self.clear.hidden = !((_a2 = self.control) == null ? void 0 : _a2.value);\n};\nvar syncOptionsWithItems = (self) => {\n var _a2;\n const { _speak, options = [], values } = self;\n for (const opt of options) {\n const value = (_a2 = attr(opt, \"value\")) != null ? _a2 : text(opt);\n attr(opt, \"aria-label\", _speak ? `${_speak}${text(opt)}` : null);\n attr(opt, \"selected\", values.includes(value) ? \"\" : null);\n }\n};\nvar syncInputValue = (self) => {\n const { multiple, control, items } = self;\n const value = text(items[0]);\n if (!multiple && control && value !== control.value)\n setValue(control, value, \"insertText\");\n};\nvar dispatchMatch = (self, sync = true) => {\n var _a2;\n const { _texts, options = [], creatable, control, items, multiple } = self;\n const value = ((_a2 = control == null ? void 0 : control.value) == null ? void 0 : _a2.trim()) || \"\";\n const query = value.toLowerCase() || null;\n let match = [...options].find((o) => o.label.trim().toLowerCase() === query);\n const event = { bubbles: true, cancelable: true, detail: match };\n if (self.dispatchEvent(new CustomEvent(\"beforematch\", event)))\n for (const opt of options) opt.selected = opt === match;\n match = [...options].find((o) => o.selected);\n syncOptionsWithItems(self);\n if (match) return dispatchChange(self, match, false, !!sync);\n if (creatable && value) return dispatchChange(self, { value }, false);\n if (!multiple && items[0]) dispatchChange(self, items[0], true, false);\n if (sync) speak(_texts.invalid);\n};\nvar dispatchChange = (self, item, removable = true, sync = true) => {\n const { control, items, multiple } = self;\n const add = createElement(\"data\", item.label || item.value, {\n value: item.value\n });\n const remove = [...items].find((i) => i.value === item.value);\n const event = { bubbles: true, cancelable: true, detail: remove || add };\n const skip = remove && !removable;\n if (!skip && self.dispatchEvent(new CustomEvent(\"beforechange\", event))) {\n if (!multiple) for (const item2 of [...items]) item2.remove();\n if (remove) remove.remove();\n else control == null ? void 0 : control.insertAdjacentElement(\"beforebegin\", add);\n self.dispatchEvent(new CustomEvent(\"afterchange\", event));\n }\n if (sync) setTimeout(syncInputValue, 10, self);\n};\nvar onFocus = (self, { target }) => {\n if (target instanceof HTMLElement) self._focus = target;\n speak();\n};\nvar onBlur = (self) => IS_PRESS || setTimeout(onBlurred, 0, self);\nvar onBlurred = (self) => {\n var _a2;\n if (!self._focus || self.contains((_a2 = self._root) == null ? void 0 : _a2.activeElement)) return;\n syncInputValue(self);\n};\nvar onClick = (self, event) => {\n const { clientX: x, clientY: y, target } = event;\n const { clear, control, items } = self;\n if (clear == null ? void 0 : clear.contains(target)) {\n if (control) setValue(control, \"\", \"deleteContentBackward\");\n return control == null ? void 0 : control.focus();\n }\n for (const item of items) {\n const { top, right, bottom, left } = item.getBoundingClientRect();\n if (item.contains(target)) return dispatchChange(self, item);\n if (y >= top && y <= bottom && x >= left && x <= right) return item.focus();\n }\n if (target === self) control == null ? void 0 : control.focus();\n};\nvar onInput = (self, event) => {\n var _a2;\n const { options = [], control, multiple } = self;\n const value = ((_a2 = control == null ? void 0 : control.value) == null ? void 0 : _a2.trim()) || \"\";\n const isClick = event instanceof InputEvent ? !event.inputType || event.inputType === CLICK : !!value;\n if (isClick) {\n event.stopImmediatePropagation();\n if (control) control.value = self._value;\n for (const opt of options)\n if (opt.value && opt.value === value)\n return dispatchChange(self, opt, multiple);\n } else if (!multiple) dispatchMatch(self, false);\n syncClearWithInput(self);\n};\nvar onKeyDown = (self, event) => {\n var _a2;\n if (event.altKey || event.ctrlKey || event.metaKey || event.shiftKey) return;\n const { clear, control, items } = self;\n const { key, repeat, target } = event;\n const isControl = control && control === target;\n const inText = isControl && (control == null ? void 0 : control.selectionEnd);\n let index = isControl ? items.length : [...items].indexOf(target);\n if (isControl && key === \"Tab\" && clear && !clear.hidden) {\n event.preventDefault();\n clear.tabIndex = -1;\n clear.focus();\n on(clear, \"blur\", () => attr(clear, \"tabindex\", null), EVENT_ONCE);\n }\n if (!isControl && asButton(event) || index === -1) return;\n if (key === \"ArrowRight\" && !isControl) index += 1;\n else if (key === \"ArrowLeft\" && !inText) index -= 1;\n else if (key === \"Enter\" && isControl) {\n const form = attr(control, \"form\");\n attr(control, \"form\", \"#\");\n requestAnimationFrame(() => attr(control, \"form\", form));\n return dispatchMatch(self);\n } else if ((key === \"Backspace\" || key === \"Delete\") && !inText) {\n event.preventDefault();\n if (!repeat && items[index]) return dispatchChange(self, items[index]);\n if (isControl) index -= 1;\n } else return isControl || (control == null ? void 0 : control.focus());\n event.preventDefault();\n (_a2 = items[Math.max(0, index)] || control) == null ? void 0 : _a2.focus();\n};\ncustomElements.define(\"u-combobox\", UHTMLComboboxElement);\n\nexport { UHTMLComboboxElement };\n"],"names":["__defProp","__getOwnPropSymbols","__hasOwnProp","__propIsEnum","__defNormalProp","obj","key","value","__spreadValues","a","b","prop","IS_BROWSER","IS_ANDROID","IS_FIREFOX","IS_IOS","_a","FOCUS_OUTLINE","UHTMLElement","attr","el","name","events","action","element","rest","type","on","off","observers","mutationObserver","options","observer","detail","asButton","event","isClick","getRoot","node","_a2","root","id","useId","createElement","tagName","text2","attrs","val","customElements","instance","LIVE","LIVE_SR_FIX","speak","setValue","input","data","_b","proto","IS_PRESS","EVENTS","EVENT_ONCE","IS_FIREFOX_MAC","IS_MOBILE","FALSE","CLICK","TEXTS","UHTMLComboboxElement","render","syncInputValue","_","target","onBlur","onClick","onFocus","onInput","onKeyDown","tag","text","isData","self","_focus","_texts","items","control","list","multiple","label","edits","addedNodes","removedNodes","shouldAnnounce","inputMode","nextFocus","_a3","idx","item","label2","aria","select","syncClearWithInput","syncOptionsWithItems","_speak","values","opt","dispatchMatch","sync","creatable","query","match","o","dispatchChange","removable","add","remove","i","item2","onBlurred","x","y","clear","top","right","bottom","left","repeat","isControl","inText","index","form"],"mappings":"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","x_google_ignoreList":[0]}
|