@mattilsynet/design 2.2.6 → 2.2.7
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.js +1 -1
- package/mtds/app/app.d.ts +1 -1
- package/mtds/app/app.js +10 -41
- package/mtds/app/app.js.map +1 -1
- package/mtds/avatar/avatar.js +1 -1
- package/mtds/badge/badge.js +1 -1
- package/mtds/breadcrumbs/breadcrumbs.js +1 -1
- package/mtds/button/button.js +1 -1
- package/mtds/card/card.js +1 -1
- package/mtds/chart/chart-element.d.ts +1 -1
- package/mtds/chart/chart-element.js +4 -4
- package/mtds/chart/chart-element.js.map +1 -1
- package/mtds/chip/chip.js +1 -1
- package/mtds/details/details.d.ts +2 -0
- package/mtds/details/details.js.map +1 -1
- package/mtds/dialog/dialog.js +1 -1
- package/mtds/divider/divider.js +1 -1
- package/mtds/errorsummary/errorsummary.js +1 -1
- package/mtds/field/field-observer.js +3 -3
- package/mtds/field/field.d.ts +3 -5
- package/mtds/field/field.js +69 -99
- package/mtds/field/field.js.map +1 -1
- package/mtds/fieldset/fieldset.js +1 -1
- package/mtds/helptext/helptext.js +1 -1
- package/mtds/index.iife.js +7 -8
- package/mtds/index.js +5 -5
- package/mtds/input/input.js +1 -1
- package/mtds/layout/layout.js +1 -1
- package/mtds/link/link.js +1 -1
- package/mtds/logo/logo.js +1 -1
- package/mtds/map/map-element.d.ts +43 -0
- package/mtds/map/map-element.js +66 -0
- package/mtds/map/map-element.js.map +1 -0
- package/mtds/map/map.css.js +22 -0
- package/mtds/map/map.css.js.map +1 -0
- package/mtds/map.d.ts +1 -0
- package/mtds/map.iife.js +683 -0
- package/mtds/map.js +6 -0
- package/mtds/map.js.map +1 -0
- package/mtds/package.json.js +1 -1
- package/mtds/pagination/pagination.d.ts +1 -1
- package/mtds/pagination/pagination.js +20 -51
- package/mtds/pagination/pagination.js.map +1 -1
- package/mtds/popover/popover-observer.js +1 -1
- package/mtds/popover/popover.d.ts +2 -2
- package/mtds/popover/popover.js +1 -1
- package/mtds/popover/popover.js.map +1 -1
- package/mtds/react-types.d.ts +2 -3
- package/mtds/skeleton/skeleton.js +1 -1
- package/mtds/spinner/spinner.js +1 -1
- package/mtds/steps/steps.js +1 -1
- package/mtds/styles.css +1 -1
- package/mtds/styles.json +20 -20
- package/mtds/styles.module.css.js +41 -41
- package/mtds/table/table.js +1 -1
- package/mtds/tag/tag.js +1 -1
- package/mtds/toast/toast-helper.js +1 -1
- package/mtds/toast/toast.js +1 -1
- package/mtds/togglegroup/togglegroup.js +1 -1
- package/mtds/tooltip/tooltip-observer.js +1 -1
- package/mtds/typography/typography.js +1 -1
- package/mtds/utils.js +2 -2
- package/mtds/validation/validation.js +1 -1
- package/package.json +15 -9
- package/mtds/external/@floating-ui/core/dist/floating-ui.core.js +0 -342
- package/mtds/external/@floating-ui/core/dist/floating-ui.core.js.map +0 -1
- package/mtds/external/@floating-ui/dom/dist/floating-ui.dom.js +0 -399
- package/mtds/external/@floating-ui/dom/dist/floating-ui.dom.js.map +0 -1
- package/mtds/external/@floating-ui/utils/dist/floating-ui.utils.dom.js +0 -137
- package/mtds/external/@floating-ui/utils/dist/floating-ui.utils.dom.js.map +0 -1
- package/mtds/external/@floating-ui/utils/dist/floating-ui.utils.js +0 -130
- package/mtds/external/@floating-ui/utils/dist/floating-ui.utils.js.map +0 -1
- package/mtds/external/@u-elements/u-combobox/dist/u-combobox.js +0 -266
- package/mtds/external/@u-elements/u-combobox/dist/u-combobox.js.map +0 -1
- package/mtds/external/@u-elements/u-datalist/dist/u-datalist.js +0 -231
- package/mtds/external/@u-elements/u-datalist/dist/u-datalist.js.map +0 -1
- package/mtds/external/@u-elements/u-details/dist/u-details.js +0 -89
- package/mtds/external/@u-elements/u-details/dist/u-details.js.map +0 -1
- package/mtds/external/@u-elements/u-progress/dist/u-progress.js +0 -94
- package/mtds/external/@u-elements/u-progress/dist/u-progress.js.map +0 -1
- package/mtds/external/@u-elements/u-tabs/dist/u-tabs.js +0 -186
- package/mtds/external/@u-elements/u-tabs/dist/u-tabs.js.map +0 -1
- package/mtds/external/clsx/dist/clsx.js +0 -18
- package/mtds/external/clsx/dist/clsx.js.map +0 -1
- package/mtds/map/map.d.ts +0 -14
|
@@ -1,130 +0,0 @@
|
|
|
1
|
-
const m = Math.min, p = Math.max, j = Math.round, C = Math.floor, L = (t) => ({
|
|
2
|
-
x: t,
|
|
3
|
-
y: t
|
|
4
|
-
}), h = {
|
|
5
|
-
left: "right",
|
|
6
|
-
right: "left",
|
|
7
|
-
bottom: "top",
|
|
8
|
-
top: "bottom"
|
|
9
|
-
}, x = {
|
|
10
|
-
start: "end",
|
|
11
|
-
end: "start"
|
|
12
|
-
};
|
|
13
|
-
function E(t, e, n) {
|
|
14
|
-
return p(t, m(e, n));
|
|
15
|
-
}
|
|
16
|
-
function R(t, e) {
|
|
17
|
-
return typeof t == "function" ? t(e) : t;
|
|
18
|
-
}
|
|
19
|
-
function a(t) {
|
|
20
|
-
return t.split("-")[0];
|
|
21
|
-
}
|
|
22
|
-
function g(t) {
|
|
23
|
-
return t.split("-")[1];
|
|
24
|
-
}
|
|
25
|
-
function b(t) {
|
|
26
|
-
return t === "x" ? "y" : "x";
|
|
27
|
-
}
|
|
28
|
-
function d(t) {
|
|
29
|
-
return t === "y" ? "height" : "width";
|
|
30
|
-
}
|
|
31
|
-
const A = /* @__PURE__ */ new Set(["top", "bottom"]);
|
|
32
|
-
function P(t) {
|
|
33
|
-
return A.has(a(t)) ? "y" : "x";
|
|
34
|
-
}
|
|
35
|
-
function y(t) {
|
|
36
|
-
return b(P(t));
|
|
37
|
-
}
|
|
38
|
-
function T(t, e, n) {
|
|
39
|
-
n === void 0 && (n = !1);
|
|
40
|
-
const r = g(t), i = y(t), o = d(i);
|
|
41
|
-
let c = i === "x" ? r === (n ? "end" : "start") ? "right" : "left" : r === "start" ? "bottom" : "top";
|
|
42
|
-
return e.reference[o] > e.floating[o] && (c = f(c)), [c, f(c)];
|
|
43
|
-
}
|
|
44
|
-
function k(t) {
|
|
45
|
-
const e = f(t);
|
|
46
|
-
return [s(t), e, s(e)];
|
|
47
|
-
}
|
|
48
|
-
function s(t) {
|
|
49
|
-
return t.replace(/start|end/g, (e) => x[e]);
|
|
50
|
-
}
|
|
51
|
-
const u = ["left", "right"], l = ["right", "left"], M = ["top", "bottom"], O = ["bottom", "top"];
|
|
52
|
-
function S(t, e, n) {
|
|
53
|
-
switch (t) {
|
|
54
|
-
case "top":
|
|
55
|
-
case "bottom":
|
|
56
|
-
return n ? e ? l : u : e ? u : l;
|
|
57
|
-
case "left":
|
|
58
|
-
case "right":
|
|
59
|
-
return e ? M : O;
|
|
60
|
-
default:
|
|
61
|
-
return [];
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
function q(t, e, n, r) {
|
|
65
|
-
const i = g(t);
|
|
66
|
-
let o = S(a(t), n === "start", r);
|
|
67
|
-
return i && (o = o.map((c) => c + "-" + i), e && (o = o.concat(o.map(s)))), o;
|
|
68
|
-
}
|
|
69
|
-
function f(t) {
|
|
70
|
-
return t.replace(/left|right|bottom|top/g, (e) => h[e]);
|
|
71
|
-
}
|
|
72
|
-
function w(t) {
|
|
73
|
-
return {
|
|
74
|
-
top: 0,
|
|
75
|
-
right: 0,
|
|
76
|
-
bottom: 0,
|
|
77
|
-
left: 0,
|
|
78
|
-
...t
|
|
79
|
-
};
|
|
80
|
-
}
|
|
81
|
-
function z(t) {
|
|
82
|
-
return typeof t != "number" ? w(t) : {
|
|
83
|
-
top: t,
|
|
84
|
-
right: t,
|
|
85
|
-
bottom: t,
|
|
86
|
-
left: t
|
|
87
|
-
};
|
|
88
|
-
}
|
|
89
|
-
function B(t) {
|
|
90
|
-
const {
|
|
91
|
-
x: e,
|
|
92
|
-
y: n,
|
|
93
|
-
width: r,
|
|
94
|
-
height: i
|
|
95
|
-
} = t;
|
|
96
|
-
return {
|
|
97
|
-
width: r,
|
|
98
|
-
height: i,
|
|
99
|
-
top: n,
|
|
100
|
-
left: e,
|
|
101
|
-
right: e + r,
|
|
102
|
-
bottom: n + i,
|
|
103
|
-
x: e,
|
|
104
|
-
y: n
|
|
105
|
-
};
|
|
106
|
-
}
|
|
107
|
-
export {
|
|
108
|
-
E as clamp,
|
|
109
|
-
L as createCoords,
|
|
110
|
-
R as evaluate,
|
|
111
|
-
w as expandPaddingObject,
|
|
112
|
-
C as floor,
|
|
113
|
-
g as getAlignment,
|
|
114
|
-
y as getAlignmentAxis,
|
|
115
|
-
T as getAlignmentSides,
|
|
116
|
-
d as getAxisLength,
|
|
117
|
-
k as getExpandedPlacements,
|
|
118
|
-
s as getOppositeAlignmentPlacement,
|
|
119
|
-
b as getOppositeAxis,
|
|
120
|
-
q as getOppositeAxisPlacements,
|
|
121
|
-
f as getOppositePlacement,
|
|
122
|
-
z as getPaddingObject,
|
|
123
|
-
a as getSide,
|
|
124
|
-
P as getSideAxis,
|
|
125
|
-
p as max,
|
|
126
|
-
m as min,
|
|
127
|
-
B as rectToClientRect,
|
|
128
|
-
j as round
|
|
129
|
-
};
|
|
130
|
-
//# sourceMappingURL=floating-ui.utils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"floating-ui.utils.js","sources":["../../../../../node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs"],"sourcesContent":["/**\n * Custom positioning reference element.\n * @see https://floating-ui.com/docs/virtual-elements\n */\n\nconst sides = ['top', 'right', 'bottom', 'left'];\nconst alignments = ['start', 'end'];\nconst placements = /*#__PURE__*/sides.reduce((acc, side) => acc.concat(side, side + \"-\" + alignments[0], side + \"-\" + alignments[1]), []);\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\nconst floor = Math.floor;\nconst createCoords = v => ({\n x: v,\n y: v\n});\nconst oppositeSideMap = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nconst oppositeAlignmentMap = {\n start: 'end',\n end: 'start'\n};\nfunction clamp(start, value, end) {\n return max(start, min(value, end));\n}\nfunction evaluate(value, param) {\n return typeof value === 'function' ? value(param) : value;\n}\nfunction getSide(placement) {\n return placement.split('-')[0];\n}\nfunction getAlignment(placement) {\n return placement.split('-')[1];\n}\nfunction getOppositeAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}\nfunction getAxisLength(axis) {\n return axis === 'y' ? 'height' : 'width';\n}\nconst yAxisSides = /*#__PURE__*/new Set(['top', 'bottom']);\nfunction getSideAxis(placement) {\n return yAxisSides.has(getSide(placement)) ? 'y' : 'x';\n}\nfunction getAlignmentAxis(placement) {\n return getOppositeAxis(getSideAxis(placement));\n}\nfunction getAlignmentSides(placement, rects, rtl) {\n if (rtl === void 0) {\n rtl = false;\n }\n const alignment = getAlignment(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const length = getAxisLength(alignmentAxis);\n let mainAlignmentSide = alignmentAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';\n if (rects.reference[length] > rects.floating[length]) {\n mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n }\n return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];\n}\nfunction getExpandedPlacements(placement) {\n const oppositePlacement = getOppositePlacement(placement);\n return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\nfunction getOppositeAlignmentPlacement(placement) {\n return placement.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);\n}\nconst lrPlacement = ['left', 'right'];\nconst rlPlacement = ['right', 'left'];\nconst tbPlacement = ['top', 'bottom'];\nconst btPlacement = ['bottom', 'top'];\nfunction getSideList(side, isStart, rtl) {\n switch (side) {\n case 'top':\n case 'bottom':\n if (rtl) return isStart ? rlPlacement : lrPlacement;\n return isStart ? lrPlacement : rlPlacement;\n case 'left':\n case 'right':\n return isStart ? tbPlacement : btPlacement;\n default:\n return [];\n }\n}\nfunction getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {\n const alignment = getAlignment(placement);\n let list = getSideList(getSide(placement), direction === 'start', rtl);\n if (alignment) {\n list = list.map(side => side + \"-\" + alignment);\n if (flipAlignment) {\n list = list.concat(list.map(getOppositeAlignmentPlacement));\n }\n }\n return list;\n}\nfunction getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, side => oppositeSideMap[side]);\n}\nfunction expandPaddingObject(padding) {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...padding\n };\n}\nfunction getPaddingObject(padding) {\n return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n top: padding,\n right: padding,\n bottom: padding,\n left: padding\n };\n}\nfunction rectToClientRect(rect) {\n const {\n x,\n y,\n width,\n height\n } = rect;\n return {\n width,\n height,\n top: y,\n left: x,\n right: x + width,\n bottom: y + height,\n x,\n y\n };\n}\n\nexport { alignments, clamp, createCoords, evaluate, expandPaddingObject, floor, getAlignment, getAlignmentAxis, getAlignmentSides, getAxisLength, getExpandedPlacements, getOppositeAlignmentPlacement, getOppositeAxis, getOppositeAxisPlacements, getOppositePlacement, getPaddingObject, getSide, getSideAxis, max, min, placements, rectToClientRect, round, sides };\n"],"names":["min","max","round","floor","createCoords","v","oppositeSideMap","oppositeAlignmentMap","clamp","start","value","end","evaluate","param","getSide","placement","getAlignment","getOppositeAxis","axis","getAxisLength","yAxisSides","getSideAxis","getAlignmentAxis","getAlignmentSides","rects","rtl","alignment","alignmentAxis","length","mainAlignmentSide","getOppositePlacement","getExpandedPlacements","oppositePlacement","getOppositeAlignmentPlacement","lrPlacement","rlPlacement","tbPlacement","btPlacement","getSideList","side","isStart","getOppositeAxisPlacements","flipAlignment","direction","list","expandPaddingObject","padding","getPaddingObject","rectToClientRect","rect","x","y","width","height"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -1,266 +0,0 @@
|
|
|
1
|
-
var tt = Object.defineProperty, j = Object.getOwnPropertySymbols, et = Object.prototype.hasOwnProperty, ot = Object.prototype.propertyIsEnumerable, V = (t, e, o) => e in t ? tt(t, e, { enumerable: !0, configurable: !0, writable: !0, value: o }) : t[e] = o, it = (t, e) => {
|
|
2
|
-
for (var o in e || (e = {}))
|
|
3
|
-
et.call(e, o) && V(t, o, e[o]);
|
|
4
|
-
if (j)
|
|
5
|
-
for (var o of j(e))
|
|
6
|
-
ot.call(e, o) && V(t, o, e[o]);
|
|
7
|
-
return t;
|
|
8
|
-
}, x = typeof window < "u" && typeof window.document < "u" && typeof window.navigator < "u", X = x && /android/i.test(navigator.userAgent), nt = x && /firefox/i.test(navigator.userAgent), at = x && /iPad|iPhone|iPod/.test(navigator.userAgent), q;
|
|
9
|
-
x && // @ts-expect-error Typescript has not implemented userAgentData yet https://stackoverflow.com/a/71392474
|
|
10
|
-
/^Mac/i.test(((q = navigator.userAgentData) == null ? void 0 : q.platform) || navigator.platform);
|
|
11
|
-
var rt = "outline: 1px dotted; outline: 5px auto Highlight; outline: 5px auto -webkit-focus-ring-color", lt = typeof HTMLElement > "u" ? class {
|
|
12
|
-
} : HTMLElement;
|
|
13
|
-
function r(t, e, o) {
|
|
14
|
-
return o === void 0 ? t.getAttribute(e) : (o === null ? t.removeAttribute(e) : t.getAttribute(e) !== o && t.setAttribute(e, o), null);
|
|
15
|
-
}
|
|
16
|
-
var Y = (t, e, o) => {
|
|
17
|
-
for (const a of o[0].split(","))
|
|
18
|
-
o[0] = a, Element.prototype[`${t}EventListener`].apply(e, o);
|
|
19
|
-
}, A = (t, ...e) => Y("add", t, e), st = (t, ...e) => Y("remove", t, e), I = /* @__PURE__ */ new WeakMap(), R = (t, e) => {
|
|
20
|
-
if (e === void 0) return I.get(t);
|
|
21
|
-
try {
|
|
22
|
-
I.get(t).disconnect(), I.delete(t);
|
|
23
|
-
} catch {
|
|
24
|
-
}
|
|
25
|
-
if (e) {
|
|
26
|
-
const o = new MutationObserver(
|
|
27
|
-
(a) => t.handleEvent({ type: "mutation", detail: a })
|
|
28
|
-
);
|
|
29
|
-
o.observe(t, e), I.set(t, o);
|
|
30
|
-
}
|
|
31
|
-
}, ut = (t) => {
|
|
32
|
-
const e = "key" in t && (t.key === " " || t.key === "Enter");
|
|
33
|
-
return e && t.preventDefault(), e && t.target instanceof HTMLElement && t.target.click(), e;
|
|
34
|
-
}, dt = (t) => {
|
|
35
|
-
var e;
|
|
36
|
-
const o = ((e = t.getRootNode) == null ? void 0 : e.call(t)) || t.ownerDocument;
|
|
37
|
-
return o instanceof Document || o instanceof ShadowRoot ? o : document;
|
|
38
|
-
}, ct = 0, K = (t) => t ? (t.id || (t.id = `:${t.nodeName.toLowerCase()}${(++ct).toString(32)}`), t.id) : "", S = (t, e, o) => {
|
|
39
|
-
const a = document.createElement(t);
|
|
40
|
-
if (e && (a.textContent = e), o) for (const [n, l] of Object.entries(o)) r(a, n, l);
|
|
41
|
-
return a;
|
|
42
|
-
}, vt = {
|
|
43
|
-
define: (t, e) => !x || window.customElements.get(t) || window.customElements.define(t, e)
|
|
44
|
-
}, pt = (t) => {
|
|
45
|
-
var e;
|
|
46
|
-
const o = r(t, "aria-label") || "";
|
|
47
|
-
return [
|
|
48
|
-
...(((e = r(t, "aria-labelledby")) == null ? void 0 : e.trim().split(/\s+/)) || []).map((n) => document.getElementById(n)),
|
|
49
|
-
// Get all labelledby elements
|
|
50
|
-
...Array.from(t.labels || [])
|
|
51
|
-
// Get all <label> elements
|
|
52
|
-
].reduce((n, l) => {
|
|
53
|
-
var i;
|
|
54
|
-
return n || ((i = l?.innerText) == null ? void 0 : i.trim()) || "";
|
|
55
|
-
}, o);
|
|
56
|
-
}, y, ft = 0, N = (t) => {
|
|
57
|
-
y || (y = S("div"), y.style.cssText = "position:fixed;overflow:hidden;width:1px;white-space:nowrap", r(y, "aria-live", "assertive")), y.isConnected || document.body.append(y), t && (y.textContent = `${t}${ft++ % 2 ? " " : ""}`);
|
|
58
|
-
}, z = (t, e, o = "") => {
|
|
59
|
-
var a, n;
|
|
60
|
-
const l = { bubbles: !0, composed: !0, data: e, inputType: o }, i = HTMLInputElement.prototype;
|
|
61
|
-
t.dispatchEvent(new InputEvent("beforeinput", l)), (n = (a = Object.getOwnPropertyDescriptor(i, "value")) == null ? void 0 : a.set) == null || n.call(t, e), t.dispatchEvent(new InputEvent("input", l)), t.dispatchEvent(new Event("change", { bubbles: !0 }));
|
|
62
|
-
}, L = !1, P = (t) => (t?.type === "mouseup" && (L = !1), t?.type === "mousedown" && (L = !0, A(document, "mouseup", P, { once: !0 })), L), mt = `:host(:not([hidden])) { display: block; -webkit-tap-highlight-color: rgba(0, 0, 0, 0) } /* Must be display block in Safari to allow focus inside */
|
|
63
|
-
:host(:not([data-multiple])) ::slotted(data),
|
|
64
|
-
:host([data-multiple="false"]) ::slotted(data) { display: none } /* Hide data if not multiple */
|
|
65
|
-
::slotted(input[inputmode="none"]) { outline: none } /* Hide temporary foucs outline flash */
|
|
66
|
-
::slotted(del) { text-decoration: none }
|
|
67
|
-
::slotted(data:not([hidden])) { display: inline-block; pointer-events: none }
|
|
68
|
-
::slotted(data)::after { content: '\\00D7'; content: '\\00D7' / ''; padding-inline: .5ch; pointer-events: auto; cursor: pointer }
|
|
69
|
-
::slotted(data:focus) { ${rt} }`, U = "beforeinput,blur,focus,click,input,keydown,mousedown", G = { once: !0, passive: !0 }, ht = nt && !X, bt = X || at, W = "".repeat(5), T = "false", O = {
|
|
70
|
-
added: "Added",
|
|
71
|
-
empty: "No selected",
|
|
72
|
-
found: "Navigate left to find %d selected",
|
|
73
|
-
invalid: "Invalid value",
|
|
74
|
-
of: "of",
|
|
75
|
-
remove: "Press to remove",
|
|
76
|
-
removed: "Removed"
|
|
77
|
-
}, _t = class extends lt {
|
|
78
|
-
constructor() {
|
|
79
|
-
super(), this._item = "", this._speak = "", this._texts = it({}, O), this._value = "", this.shadowRoot || this.attachShadow({ mode: "open" }).append(
|
|
80
|
-
S("slot"),
|
|
81
|
-
// Content slot
|
|
82
|
-
S("style", mt)
|
|
83
|
-
);
|
|
84
|
-
}
|
|
85
|
-
// Locally store value to store value before input-click
|
|
86
|
-
// Using ES2015 syntax for backwards compatibility
|
|
87
|
-
static get observedAttributes() {
|
|
88
|
-
return Object.keys(O).map((t) => `data-sr-${t}`);
|
|
89
|
-
}
|
|
90
|
-
connectedCallback() {
|
|
91
|
-
this._root = dt(this), A(this, U, this, !0), R(this, {
|
|
92
|
-
attributeFilter: ["value", "id"],
|
|
93
|
-
// Respond to changes in <data> value or change of id for <datalist> to reconnect with input
|
|
94
|
-
attributes: !0,
|
|
95
|
-
characterData: !0,
|
|
96
|
-
// Respond to changes in <data> textContent
|
|
97
|
-
childList: !0,
|
|
98
|
-
subtree: !0
|
|
99
|
-
}), setTimeout($, 0, this), setTimeout(D, 0, this);
|
|
100
|
-
}
|
|
101
|
-
attributeChangedCallback(t, e, o) {
|
|
102
|
-
const a = t.split("data-sr-")[1];
|
|
103
|
-
O[a] && (this._texts[a] = o || O[a]);
|
|
104
|
-
}
|
|
105
|
-
disconnectedCallback() {
|
|
106
|
-
R(this, !1), st(this, U, this, !0), this._items = this._clear = this._focus = this._control = void 0, this._list = this._options = this._root = void 0;
|
|
107
|
-
}
|
|
108
|
-
handleEvent(t) {
|
|
109
|
-
const e = t.target;
|
|
110
|
-
B(this) || (t.type === "beforeinput" && (this._value = e?.value || ""), t.type === "blur" && gt(this), t.type === "click" && wt(this, t), t.type === "focus" && yt(this, t), t.type === "input" && xt(this, t), t.type === "keydown" && kt(this, t), t.type === "mousedown" && P(t), t.type === "mutation" && $(this, t));
|
|
111
|
-
}
|
|
112
|
-
get multiple() {
|
|
113
|
-
var t;
|
|
114
|
-
return ((t = r(this, "data-multiple")) != null ? t : T) !== T;
|
|
115
|
-
}
|
|
116
|
-
set multiple(t) {
|
|
117
|
-
r(this, "data-multiple", t ? "" : null);
|
|
118
|
-
}
|
|
119
|
-
get creatable() {
|
|
120
|
-
var t;
|
|
121
|
-
return ((t = r(this, "data-creatable")) != null ? t : T) !== T;
|
|
122
|
-
}
|
|
123
|
-
set creatable(t) {
|
|
124
|
-
r(this, "data-creatable", t ? "" : null);
|
|
125
|
-
}
|
|
126
|
-
get control() {
|
|
127
|
-
var t;
|
|
128
|
-
return (t = this._control) != null && t.isConnected || (this._control = this.querySelector("input")), this._control;
|
|
129
|
-
}
|
|
130
|
-
get list() {
|
|
131
|
-
var t;
|
|
132
|
-
return (t = this._list) != null && t.isConnected || (this._list = this.querySelector("u-datalist,datalist")), this._list;
|
|
133
|
-
}
|
|
134
|
-
get clear() {
|
|
135
|
-
var t;
|
|
136
|
-
return (t = this._clear) != null && t.isConnected || (this._clear = this.querySelector("del")), this._clear;
|
|
137
|
-
}
|
|
138
|
-
get items() {
|
|
139
|
-
return this._items || (this._items = this.getElementsByTagName("data")), this._items;
|
|
140
|
-
}
|
|
141
|
-
get options() {
|
|
142
|
-
var t, e;
|
|
143
|
-
if (!this._options) {
|
|
144
|
-
const o = ((t = this.list) == null ? void 0 : t.nodeName) === "U-DATALIST" ? "u-option" : "option";
|
|
145
|
-
this._options = (e = this.list) == null ? void 0 : e.getElementsByTagName(o);
|
|
146
|
-
}
|
|
147
|
-
return this._options;
|
|
148
|
-
}
|
|
149
|
-
get values() {
|
|
150
|
-
return [...this.items].map(({ value: t }) => t);
|
|
151
|
-
}
|
|
152
|
-
}, g = (t) => {
|
|
153
|
-
var e;
|
|
154
|
-
return ((e = t?.textContent) == null ? void 0 : e.trim()) || "";
|
|
155
|
-
}, M = (t) => t instanceof HTMLDataElement, B = ({ control: t }) => t?.disabled || t?.readOnly || !1, $ = (t, e) => {
|
|
156
|
-
var o;
|
|
157
|
-
const { _focus: a, _texts: n, items: l, control: i, list: u, multiple: s } = t;
|
|
158
|
-
if (!i || !u) return;
|
|
159
|
-
const d = pt(i), p = d.endsWith(W) ? r(i, "data-label") : d;
|
|
160
|
-
r(i, "data-label", p);
|
|
161
|
-
let c = `${p}${s ? `, ${l.length ? n.found.replace("%d", `${l.length}`) : n.empty}` : ""}`;
|
|
162
|
-
const f = [];
|
|
163
|
-
for (const { addedNodes: m, removedNodes: _ } of e?.detail || []) {
|
|
164
|
-
for (const v of m) M(v) && f.unshift(v);
|
|
165
|
-
for (const v of _) M(v) && f.push(v);
|
|
166
|
-
}
|
|
167
|
-
const h = s ? f.length === 1 : f[0] === a;
|
|
168
|
-
if (a && h) {
|
|
169
|
-
const m = r(i, "aria-expanded"), _ = r(i, "inputmode"), v = M(a) ? i : a, E = !f[0].isConnected;
|
|
170
|
-
t._speak = `${n[E ? "removed" : "added"]} ${g(f[0])}, `, (bt || a === i) && N(t._speak), i !== v && (r(i, "aria-expanded", null), r(i, "inputmode", "none"), c = " ", i.focus()), setTimeout(() => {
|
|
171
|
-
var C;
|
|
172
|
-
r(i, "aria-expanded", m), r(i, "inputmode", E ? "none" : _), (C = v?.focus) == null || C.call(v), r(i, "inputmode", _), t._speak = "", ht ? A(t, "blur", () => $(t), G) : setTimeout($, 100, t);
|
|
173
|
-
}, 100);
|
|
174
|
-
}
|
|
175
|
-
let k = 0;
|
|
176
|
-
const b = t.querySelector("select"), Z = B(t) ? "" : `${n.remove}, `;
|
|
177
|
-
for (const m of l) {
|
|
178
|
-
const _ = b?.options[k], v = g(m), E = m.value || v, C = `${t._speak}${v}, ${Z}${++k} ${n.of} ${l.length}`;
|
|
179
|
-
r(m, "role", "button"), r(m, "value", E), r(m, "tabindex", "-1"), r(m, "aria-label", C), _ ? Object.assign(_, { textContent: v, value: E }) : b?.appendChild(new Option(v, E, !0, !0));
|
|
180
|
-
}
|
|
181
|
-
b && r(b, "multiple", s ? "" : null);
|
|
182
|
-
for (const m of [...b?.options || []].slice(k)) m.remove();
|
|
183
|
-
!s && k > 1 && console.warn("u-combobox: Multiple <data> found in single mode."), r(u, "aria-multiselectable", `${s}`), r(i, "list", K(u)), r(i, "aria-label", `${t._speak}${c}${W}`), u.hasAttribute("popover") && (r(i, "popovertarget", K(u)), r(u, "popover", "manual"));
|
|
184
|
-
const H = g(l[0]);
|
|
185
|
-
H !== t._item && D(t), t._item = H, J(t), Q(t), (o = R(t)) == null || o.takeRecords();
|
|
186
|
-
}, J = (t) => {
|
|
187
|
-
var e;
|
|
188
|
-
t.clear && r(t.clear, "role", "button"), t.clear && (t.clear.hidden = !((e = t.control) != null && e.value) || B(t));
|
|
189
|
-
}, Q = (t) => {
|
|
190
|
-
var e;
|
|
191
|
-
const { _speak: o, options: a = [], values: n } = t;
|
|
192
|
-
for (const l of a) {
|
|
193
|
-
const i = (e = r(l, "value")) != null ? e : g(l);
|
|
194
|
-
r(l, "aria-label", o ? `${o}${g(l)}` : null), r(l, "selected", n.includes(i) ? "" : null);
|
|
195
|
-
}
|
|
196
|
-
}, D = (t) => {
|
|
197
|
-
const { multiple: e, control: o, items: a } = t, n = g(a[0]);
|
|
198
|
-
!e && o && n !== o.value && z(o, n, n ? "insertText" : "deleteContent");
|
|
199
|
-
}, F = (t, e = !0) => {
|
|
200
|
-
var o;
|
|
201
|
-
const { _texts: a, options: n = [], creatable: l, control: i, items: u, multiple: s } = t, d = ((o = i?.value) == null ? void 0 : o.trim()) || "", p = d.toLowerCase() || null;
|
|
202
|
-
let c = [...n].find(
|
|
203
|
-
(h) => (r(h, "label") || g(h)).trim().toLowerCase() === p
|
|
204
|
-
);
|
|
205
|
-
const f = { bubbles: !0, cancelable: !0, detail: c };
|
|
206
|
-
if (t.dispatchEvent(new CustomEvent("comboboxbeforematch", f)) || (c = [...n].find((h) => h.selected)), e)
|
|
207
|
-
return Q(t), c ? w(t, c, !1) : l && d ? w(t, { value: d }, !1) : (!s && !d && u[0] ? w(t, u[0]) : D(t), N(a.invalid));
|
|
208
|
-
for (const h of n) h.selected = h === c;
|
|
209
|
-
}, w = (t, e, o = !0) => {
|
|
210
|
-
const { control: a, items: n, multiple: l } = t, i = S("data", e.label || e.value, {
|
|
211
|
-
value: e.value
|
|
212
|
-
}), u = [...n].find((p) => p.value === e.value), s = { bubbles: !0, cancelable: !0, detail: u || i };
|
|
213
|
-
if (u && !o) return D(t);
|
|
214
|
-
if (t.dispatchEvent(new CustomEvent("comboboxbeforeselect", s))) {
|
|
215
|
-
if (!l) for (const p of [...n]) p.remove();
|
|
216
|
-
u ? u.remove() : a?.insertAdjacentElement("beforebegin", i), t.dispatchEvent(new CustomEvent("comboboxafterselect", s));
|
|
217
|
-
}
|
|
218
|
-
}, yt = (t, { target: e }) => {
|
|
219
|
-
e instanceof HTMLElement && (t._focus = e), N();
|
|
220
|
-
}, gt = (t) => P() || setTimeout(Et, 0, t), Et = (t) => {
|
|
221
|
-
var e;
|
|
222
|
-
!t._focus || t.contains((e = t._root) == null ? void 0 : e.activeElement) || (t.multiple || F(t), t._focus = void 0);
|
|
223
|
-
}, wt = (t, e) => {
|
|
224
|
-
const { clientX: o, clientY: a, target: n } = e, { clear: l, control: i, items: u } = t;
|
|
225
|
-
if (l?.contains(n))
|
|
226
|
-
return i && z(i, "", "deleteContentBackward"), i?.focus();
|
|
227
|
-
for (const s of u) {
|
|
228
|
-
const { top: d, right: p, bottom: c, left: f } = s.getBoundingClientRect();
|
|
229
|
-
if (s.contains(n)) return w(t, s);
|
|
230
|
-
if (a >= d && a <= c && o >= f && o <= p) return s.focus();
|
|
231
|
-
}
|
|
232
|
-
n === t && i?.focus();
|
|
233
|
-
}, xt = (t, e) => {
|
|
234
|
-
var o;
|
|
235
|
-
const { options: a = [], control: n, multiple: l } = t, i = ((o = n?.value) == null ? void 0 : o.trim()) || "";
|
|
236
|
-
if (e instanceof InputEvent ? !e.inputType || e.inputType === "insertReplacementText" : !!i) {
|
|
237
|
-
e.stopImmediatePropagation(), n && (n.value = t._value);
|
|
238
|
-
for (const s of a)
|
|
239
|
-
if (s.value && s.value === i)
|
|
240
|
-
return w(t, s, l);
|
|
241
|
-
} else l || F(t, !1);
|
|
242
|
-
J(t);
|
|
243
|
-
}, kt = (t, e) => {
|
|
244
|
-
var o;
|
|
245
|
-
if (e.altKey || e.ctrlKey || e.metaKey || e.shiftKey) return;
|
|
246
|
-
const { clear: a, control: n, items: l } = t, { key: i, repeat: u, target: s } = e, d = n && n === s, p = d && n?.selectionEnd;
|
|
247
|
-
let c = d ? l.length : [...l].indexOf(s);
|
|
248
|
-
if (d && i === "Tab" && a && !a.hidden && (e.preventDefault(), a.tabIndex = -1, a.focus(), A(a, "blur", () => r(a, "tabindex", null), G)), !(!d && ut(e) || c === -1)) {
|
|
249
|
-
if (i === "ArrowRight" && !d) c += 1;
|
|
250
|
-
else if (i === "ArrowLeft" && !p) c -= 1;
|
|
251
|
-
else if (i === "Enter" && d) {
|
|
252
|
-
const f = r(n, "form");
|
|
253
|
-
return r(n, "form", "#"), requestAnimationFrame(() => r(n, "form", f)), F(t);
|
|
254
|
-
} else if ((i === "Backspace" || i === "Delete") && !p) {
|
|
255
|
-
if (e.preventDefault(), !u && l[c]) return w(t, l[c]);
|
|
256
|
-
d && (c -= 1);
|
|
257
|
-
} else return d || n?.focus();
|
|
258
|
-
e.preventDefault(), (o = l[Math.max(0, c)] || n) == null || o.focus();
|
|
259
|
-
}
|
|
260
|
-
};
|
|
261
|
-
vt.define("u-combobox", _t);
|
|
262
|
-
export {
|
|
263
|
-
_t as UHTMLComboboxElement,
|
|
264
|
-
mt as UHTMLComboboxStyle
|
|
265
|
-
};
|
|
266
|
-
//# sourceMappingURL=u-combobox.js.map
|
|
@@ -1 +0,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 getLabel = (el) => {\n var _a2;\n const label = attr(el, \"aria-label\") || \"\";\n const labels = ((_a2 = attr(el, \"aria-labelledby\")) == null ? void 0 : _a2.trim().split(/\\s+/)) || [];\n return [\n ...labels.map((id2) => document.getElementById(id2)),\n // Get all labelledby elements\n ...Array.from(el.labels || [])\n // Get all <label> elements\n ].reduce((acc, el2) => {\n var _a3;\n return acc || ((_a3 = el2 == null ? void 0 : el2.innerText) == null ? void 0 : _a3.trim()) || \"\";\n }, label);\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};\nvar IS_PRESS = false;\nvar isMouseDown = (event) => {\n if ((event == null ? void 0 : event.type) === \"mouseup\") IS_PRESS = false;\n if ((event == null ? void 0 : event.type) === \"mousedown\") {\n IS_PRESS = true;\n on(document, \"mouseup\", isMouseDown, { once: true });\n }\n return IS_PRESS;\n};\nvar declarativeShadowRoot = (style, slot = \"<slot></slot>\") => `<template shadowrootmode=\"open\">${slot}<style>${style}</style></template>`;\n\n// u-combobox.ts\nvar UHTMLComboboxStyle = `:host(:not([hidden])) { display: block; -webkit-tap-highlight-color: rgba(0, 0, 0, 0) } /* Must be display block in Safari to allow focus inside */\n:host(:not([data-multiple])) ::slotted(data),\n:host([data-multiple=\"false\"]) ::slotted(data) { display: none } /* Hide data if not multiple */\n::slotted(input[inputmode=\"none\"]) { outline: none } /* Hide temporary foucs outline flash */\n::slotted(del) { text-decoration: none }\n::slotted(data:not([hidden])) { display: inline-block; pointer-events: none }\n::slotted(data)::after { content: '\\\\00D7'; content: '\\\\00D7' / ''; padding-inline: .5ch; pointer-events: auto; cursor: pointer }\n::slotted(data:focus) { ${FOCUS_OUTLINE} }`;\nvar UHTMLComboboxShadowRoot = declarativeShadowRoot(UHTMLComboboxStyle);\nvar EVENTS = \"beforeinput,blur,focus,click,input,keydown,mousedown\";\nvar EVENT_ONCE = { once: true, passive: true };\nvar IS_FIREFOX_DESKTOP = IS_FIREFOX && !IS_ANDROID;\nvar IS_MOBILE = IS_ANDROID || IS_IOS;\nvar MODIFIED = \"\\u200B\".repeat(5);\nvar FALSE = \"false\";\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._item = \"\";\n this._speak = \"\";\n this._texts = __spreadValues({}, TEXTS);\n this._value = \"\";\n if (!this.shadowRoot)\n this.attachShadow({ mode: \"open\" }).append(\n createElement(\"slot\"),\n // Content slot\n createElement(\"style\", UHTMLComboboxStyle)\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, {\n attributeFilter: [\"value\", \"id\"],\n // Respond to changes in <data> value or change of id for <datalist> to reconnect with input\n attributes: true,\n characterData: true,\n // Respond to changes in <data> textContent\n childList: true,\n subtree: true\n });\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 (isDisabled(this)) return;\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\") isMouseDown(event);\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 isDisabled = ({ control }) => (control == null ? void 0 : control.disabled) || (control == null ? void 0 : control.readOnly) || false;\nvar render = (self, event) => {\n var _a2;\n const { _focus, _texts, items, control, list, multiple } = self;\n if (!control || !list) return;\n const prev = getLabel(control);\n const next = prev.endsWith(MODIFIED) ? attr(control, \"data-label\") : prev;\n attr(control, \"data-label\", next);\n let label = `${next}${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 && shouldAnnounce) {\n const ariaExpanded = attr(control, \"aria-expanded\");\n const inputMode = attr(control, \"inputmode\");\n const nextFocus = isData(_focus) ? control : _focus;\n const isRemove = !edits[0].isConnected;\n self._speak = `${_texts[isRemove ? \"removed\" : \"added\"]} ${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\", ariaExpanded);\n attr(control, \"inputmode\", isRemove ? \"none\" : inputMode);\n (_a3 = nextFocus == null ? void 0 : nextFocus.focus) == null ? void 0 : _a3.call(nextFocus);\n attr(control, \"inputmode\", inputMode);\n self._speak = \"\";\n if (IS_FIREFOX_DESKTOP) on(self, \"blur\", () => render(self), EVENT_ONCE);\n else setTimeout(render, 100, self);\n }, 100);\n }\n let idx = 0;\n const select = self.querySelector(\"select\");\n const remove = isDisabled(self) ? \"\" : `${_texts.remove}, `;\n for (const item2 of items) {\n const option = select == null ? void 0 : select.options[idx];\n const label2 = text(item2);\n const value = item2.value || label2;\n const aria = `${self._speak}${label2}, ${remove}${++idx} ${_texts.of} ${items.length}`;\n attr(item2, \"role\", \"button\");\n attr(item2, \"value\", value);\n attr(item2, \"tabindex\", \"-1\");\n attr(item2, \"aria-label\", aria);\n if (option) Object.assign(option, { textContent: label2, value });\n else select == null ? void 0 : select.appendChild(new Option(label2, value, true, true));\n }\n if (select) attr(select, \"multiple\", multiple ? \"\" : null);\n for (const opt of [...(select == null ? void 0 : select.options) || []].slice(idx)) opt.remove();\n if (!multiple && idx > 1)\n console.warn(\"u-combobox: Multiple <data> found in single mode.\");\n attr(list, \"aria-multiselectable\", `${multiple}`);\n attr(control, \"list\", useId(list));\n attr(control, \"aria-label\", `${self._speak}${label}${MODIFIED}`);\n if (list.hasAttribute(\"popover\")) {\n attr(control, \"popovertarget\", useId(list));\n attr(list, \"popover\", \"manual\");\n }\n const item = text(items[0]);\n if (item !== self._item) syncInputValue(self);\n self._item = item;\n syncClearWithInput(self);\n syncOptionsWithItems(self);\n (_a2 = mutationObserver(self)) == null ? void 0 : _a2.takeRecords();\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) || isDisabled(self);\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, value ? \"insertText\" : \"deleteContent\");\n};\nvar dispatchMatch = (self, change = 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(\n (opt) => (attr(opt, \"label\") || text(opt)).trim().toLowerCase() === query\n );\n const event = { bubbles: true, cancelable: true, detail: match };\n if (!self.dispatchEvent(new CustomEvent(\"comboboxbeforematch\", event)))\n match = [...options].find((o) => o.selected);\n if (change) {\n syncOptionsWithItems(self);\n if (match) return dispatchChange(self, match, false);\n if (creatable && value) return dispatchChange(self, { value }, false);\n if (!multiple && !value && items[0]) dispatchChange(self, items[0]);\n else syncInputValue(self);\n return speak(_texts.invalid);\n }\n for (const opt of options) opt.selected = opt === match;\n};\nvar dispatchChange = (self, item, removable = 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) return syncInputValue(self);\n if (self.dispatchEvent(new CustomEvent(\"comboboxbeforeselect\", 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(\"comboboxafterselect\", event));\n }\n};\nvar onFocus = (self, { target }) => {\n if (target instanceof HTMLElement) self._focus = target;\n speak();\n};\nvar onBlur = (self) => isMouseDown() || 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 if (!self.multiple) dispatchMatch(self);\n self._focus = void 0;\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 === \"insertReplacementText\" : !!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, UHTMLComboboxShadowRoot, UHTMLComboboxStyle };\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","getLabel","label","id2","acc","el2","_a3","LIVE","LIVE_SR_FIX","speak","setValue","input","data","_b","proto","IS_PRESS","isMouseDown","UHTMLComboboxStyle","EVENTS","EVENT_ONCE","IS_FIREFOX_DESKTOP","IS_MOBILE","MODIFIED","FALSE","TEXTS","UHTMLComboboxElement","render","syncInputValue","_","target","isDisabled","onBlur","onClick","onFocus","onInput","onKeyDown","tag","text","isData","control","self","_focus","_texts","items","list","multiple","prev","next","edits","addedNodes","removedNodes","shouldAnnounce","ariaExpanded","inputMode","nextFocus","isRemove","idx","select","remove","item2","option","label2","aria","opt","item","syncClearWithInput","syncOptionsWithItems","_speak","values","dispatchMatch","change","creatable","query","match","o","dispatchChange","removable","add","i","onBlurred","x","y","clear","top","right","bottom","left","repeat","isControl","inText","index","form"],"mappings":"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","x_google_ignoreList":[0]}
|