bitboss-ui 0.2.65 → 0.2.66
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index101.js +3 -3
- package/dist/index103.js +2 -2
- package/dist/index109.js +1 -1
- package/dist/index11.js +2 -2
- package/dist/index111.js +4 -4
- package/dist/index116.js +1 -1
- package/dist/index117.js +1 -1
- package/dist/index118.js +1 -1
- package/dist/index119.js +1 -1
- package/dist/index121.js +1 -1
- package/dist/index125.js +1 -1
- package/dist/index126.js +1 -1
- package/dist/index127.js +1 -1
- package/dist/index15.js +8 -8
- package/dist/index17.js +9 -9
- package/dist/index19.js +3 -3
- package/dist/index196.js +235 -2
- package/dist/index196.js.map +1 -1
- package/dist/index198.js +2 -5
- package/dist/index198.js.map +1 -1
- package/dist/index199.js +4 -16
- package/dist/index199.js.map +1 -1
- package/dist/index200.js +5 -16
- package/dist/index200.js.map +1 -1
- package/dist/index201.js +15 -18
- package/dist/index201.js.map +1 -1
- package/dist/index202.js +13 -17
- package/dist/index202.js.map +1 -1
- package/dist/index203.js +18 -28
- package/dist/index203.js.map +1 -1
- package/dist/index204.js +20 -8
- package/dist/index204.js.map +1 -1
- package/dist/index205.js +29 -2
- package/dist/index205.js.map +1 -1
- package/dist/index206.js +8 -368
- package/dist/index206.js.map +1 -1
- package/dist/index207.js +2 -134
- package/dist/index207.js.map +1 -1
- package/dist/index208.js +2 -2
- package/dist/index208.js.map +1 -1
- package/dist/index209.js +3 -174
- package/dist/index209.js.map +1 -1
- package/dist/index21.js +2 -2
- package/dist/index210.js +3 -23
- package/dist/index210.js.map +1 -1
- package/dist/index211.js +111 -363
- package/dist/index211.js.map +1 -1
- package/dist/index212.js +2 -2
- package/dist/index212.js.map +1 -1
- package/dist/index213.js +6 -4
- package/dist/index213.js.map +1 -1
- package/dist/index214.js +346 -213
- package/dist/index214.js.map +1 -1
- package/dist/index215.js +373 -3
- package/dist/index215.js.map +1 -1
- package/dist/index216.js +2 -3
- package/dist/index216.js.map +1 -1
- package/dist/index217.js +2 -2
- package/dist/index217.js.map +1 -1
- package/dist/index218.js +134 -3
- package/dist/index218.js.map +1 -1
- package/dist/index219.js +172 -33
- package/dist/index219.js.map +1 -1
- package/dist/index220.js +23 -6
- package/dist/index220.js.map +1 -1
- package/dist/index221.js +3 -121
- package/dist/index221.js.map +1 -1
- package/dist/index222.js +35 -2
- package/dist/index222.js.map +1 -1
- package/dist/index224.js +1 -1
- package/dist/index225.js +6 -2
- package/dist/index225.js.map +1 -1
- package/dist/index226.js +17 -6
- package/dist/index226.js.map +1 -1
- package/dist/index227.js +2 -17
- package/dist/index227.js.map +1 -1
- package/dist/index228.js +152 -61
- package/dist/index228.js.map +1 -1
- package/dist/index229.js +1 -162
- package/dist/index229.js.map +1 -1
- package/dist/index23.js +1 -1
- package/dist/index230.js +71 -1
- package/dist/index230.js.map +1 -1
- package/dist/index232.js +2 -15
- package/dist/index232.js.map +1 -1
- package/dist/index233.js +4 -295
- package/dist/index233.js.map +1 -1
- package/dist/index234.js +294 -5
- package/dist/index234.js.map +1 -1
- package/dist/index235.js +6 -2
- package/dist/index235.js.map +1 -1
- package/dist/index236.js +2 -2
- package/dist/index241.js +2 -2
- package/dist/index242.js +218 -111
- package/dist/index242.js.map +1 -1
- package/dist/index243.js +246 -94
- package/dist/index243.js.map +1 -1
- package/dist/index244.js +15 -4
- package/dist/index244.js.map +1 -1
- package/dist/index245.js +100 -218
- package/dist/index245.js.map +1 -1
- package/dist/index246.js +2 -258
- package/dist/index246.js.map +1 -1
- package/dist/index247.js +117 -2
- package/dist/index247.js.map +1 -1
- package/dist/index249.js +1 -1
- package/dist/index25.js +2 -2
- package/dist/index254.js +1 -1
- package/dist/index255.js +2 -2
- package/dist/index29.js +3 -3
- package/dist/index31.js +9 -9
- package/dist/index31.js.map +1 -1
- package/dist/index33.js +2 -2
- package/dist/index35.js +2 -2
- package/dist/index47.js +1 -1
- package/dist/index49.js +1 -1
- package/dist/index65.js +4 -4
- package/dist/index69.js +2 -2
- package/dist/index72.js +1 -1
- package/dist/index75.js +1 -1
- package/dist/index79.js +4 -4
- package/dist/index81.js +1 -1
- package/dist/style.css +1 -1
- package/package.json +1 -1
package/dist/index220.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index220.js","sources":["../
|
|
1
|
+
{"version":3,"file":"index220.js","sources":["../node_modules/focusable-selectors/index.js"],"sourcesContent":["const not = {\n inert: ':not([inert]):not([inert] *)',\n negTabIndex: ':not([tabindex^=\"-\"])',\n disabled: ':not(:disabled)',\n}\n\nexport default [\n `a[href]${not.inert}${not.negTabIndex}`,\n `area[href]${not.inert}${not.negTabIndex}`,\n `input:not([type=\"hidden\"]):not([type=\"radio\"])${not.inert}${not.negTabIndex}${not.disabled}`,\n `input[type=\"radio\"]${not.inert}${not.negTabIndex}${not.disabled}`,\n `select${not.inert}${not.negTabIndex}${not.disabled}`,\n `textarea${not.inert}${not.negTabIndex}${not.disabled}`,\n `button${not.inert}${not.negTabIndex}${not.disabled}`,\n `details${not.inert} > summary:first-of-type${not.negTabIndex}`,\n // Discard until Firefox supports `:has()`\n // See: https://github.com/KittyGiraudel/focusable-selectors/issues/12\n // `details:not(:has(> summary))${not.inert}${not.negTabIndex}`,\n `iframe${not.inert}${not.negTabIndex}`,\n `audio[controls]${not.inert}${not.negTabIndex}`,\n `video[controls]${not.inert}${not.negTabIndex}`,\n `[contenteditable]${not.inert}${not.negTabIndex}`,\n `[tabindex]${not.inert}${not.negTabIndex}`,\n]\n"],"names":["not","selectors"],"mappings":"AAAA,MAAMA,IAAM;AAAA,EACV,OAAO;AAAA,EACP,aAAa;AAAA,EACb,UAAU;AACZ,GAEeC,IAAA;AAAA,EACb,UAAUD,EAAI,KAAK,GAAGA,EAAI,WAAW;AAAA,EACrC,aAAaA,EAAI,KAAK,GAAGA,EAAI,WAAW;AAAA,EACxC,iDAAiDA,EAAI,KAAK,GAAGA,EAAI,WAAW,GAAGA,EAAI,QAAQ;AAAA,EAC3F,sBAAsBA,EAAI,KAAK,GAAGA,EAAI,WAAW,GAAGA,EAAI,QAAQ;AAAA,EAChE,SAASA,EAAI,KAAK,GAAGA,EAAI,WAAW,GAAGA,EAAI,QAAQ;AAAA,EACnD,WAAWA,EAAI,KAAK,GAAGA,EAAI,WAAW,GAAGA,EAAI,QAAQ;AAAA,EACrD,SAASA,EAAI,KAAK,GAAGA,EAAI,WAAW,GAAGA,EAAI,QAAQ;AAAA,EACnD,UAAUA,EAAI,KAAK,2BAA2BA,EAAI,WAAW;AAAA;AAAA;AAAA;AAAA,EAI7D,SAASA,EAAI,KAAK,GAAGA,EAAI,WAAW;AAAA,EACpC,kBAAkBA,EAAI,KAAK,GAAGA,EAAI,WAAW;AAAA,EAC7C,kBAAkBA,EAAI,KAAK,GAAGA,EAAI,WAAW;AAAA,EAC7C,oBAAoBA,EAAI,KAAK,GAAGA,EAAI,WAAW;AAAA,EAC/C,aAAaA,EAAI,KAAK,GAAGA,EAAI,WAAW;AAC1C;","x_google_ignoreList":[0]}
|
package/dist/index221.js
CHANGED
|
@@ -1,124 +1,6 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
import { unref as o, computed as r, ref as f, shallowRef as B, watch as h, getCurrentScope as F, onScopeDispose as I, shallowReadonly as a } from "vue";
|
|
4
|
-
import { isNode as U, getNodeName as k } from "./index243.js";
|
|
5
|
-
import { getOverflowAncestors as ee } from "./index243.js";
|
|
6
|
-
function q(n) {
|
|
7
|
-
return n != null && typeof n == "object" && "$el" in n;
|
|
8
|
-
}
|
|
9
|
-
function g(n) {
|
|
10
|
-
if (q(n)) {
|
|
11
|
-
const l = n.$el;
|
|
12
|
-
return U(l) && k(l) === "#comment" ? null : l;
|
|
13
|
-
}
|
|
14
|
-
return n;
|
|
15
|
-
}
|
|
16
|
-
function J(n) {
|
|
17
|
-
return {
|
|
18
|
-
name: "arrow",
|
|
19
|
-
options: n,
|
|
20
|
-
fn(l) {
|
|
21
|
-
const t = g(o(n.element));
|
|
22
|
-
return t == null ? {} : j({
|
|
23
|
-
element: t,
|
|
24
|
-
padding: n.padding
|
|
25
|
-
}).fn(l);
|
|
26
|
-
}
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
function S(n) {
|
|
30
|
-
return typeof window > "u" ? 1 : (n.ownerDocument.defaultView || window).devicePixelRatio || 1;
|
|
31
|
-
}
|
|
32
|
-
function M(n, l) {
|
|
33
|
-
const t = S(n);
|
|
34
|
-
return Math.round(l * t) / t;
|
|
35
|
-
}
|
|
36
|
-
function K(n, l, t) {
|
|
37
|
-
t === void 0 && (t = {});
|
|
38
|
-
const x = t.whileElementsMounted, D = r(() => {
|
|
39
|
-
var e;
|
|
40
|
-
return (e = o(t.open)) != null ? e : !0;
|
|
41
|
-
}), O = r(() => o(t.middleware)), d = r(() => {
|
|
42
|
-
var e;
|
|
43
|
-
return (e = o(t.placement)) != null ? e : "bottom";
|
|
44
|
-
}), v = r(() => {
|
|
45
|
-
var e;
|
|
46
|
-
return (e = o(t.strategy)) != null ? e : "absolute";
|
|
47
|
-
}), _ = r(() => {
|
|
48
|
-
var e;
|
|
49
|
-
return (e = o(t.transform)) != null ? e : !0;
|
|
50
|
-
}), i = r(() => g(n.value)), u = r(() => g(l.value)), p = f(0), w = f(0), c = f(v.value), P = f(d.value), E = B({}), y = f(!1), N = r(() => {
|
|
51
|
-
const e = {
|
|
52
|
-
position: c.value,
|
|
53
|
-
left: "0",
|
|
54
|
-
top: "0"
|
|
55
|
-
};
|
|
56
|
-
if (!u.value)
|
|
57
|
-
return e;
|
|
58
|
-
const b = M(u.value, p.value), C = M(u.value, w.value);
|
|
59
|
-
return _.value ? {
|
|
60
|
-
...e,
|
|
61
|
-
transform: "translate(" + b + "px, " + C + "px)",
|
|
62
|
-
...S(u.value) >= 1.5 && {
|
|
63
|
-
willChange: "transform"
|
|
64
|
-
}
|
|
65
|
-
} : {
|
|
66
|
-
position: c.value,
|
|
67
|
-
left: b + "px",
|
|
68
|
-
top: C + "px"
|
|
69
|
-
};
|
|
70
|
-
});
|
|
71
|
-
let s;
|
|
72
|
-
function m() {
|
|
73
|
-
i.value == null || u.value == null || A(i.value, u.value, {
|
|
74
|
-
middleware: O.value,
|
|
75
|
-
placement: d.value,
|
|
76
|
-
strategy: v.value
|
|
77
|
-
}).then((e) => {
|
|
78
|
-
p.value = e.x, w.value = e.y, c.value = e.strategy, P.value = e.placement, E.value = e.middlewareData, y.value = !0;
|
|
79
|
-
});
|
|
80
|
-
}
|
|
81
|
-
function R() {
|
|
82
|
-
typeof s == "function" && (s(), s = void 0);
|
|
83
|
-
}
|
|
84
|
-
function V() {
|
|
85
|
-
if (R(), x === void 0) {
|
|
86
|
-
m();
|
|
87
|
-
return;
|
|
88
|
-
}
|
|
89
|
-
if (i.value != null && u.value != null) {
|
|
90
|
-
s = x(i.value, u.value, m);
|
|
91
|
-
return;
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
function $() {
|
|
95
|
-
D.value || (y.value = !1);
|
|
96
|
-
}
|
|
97
|
-
return h([O, d, v], m, {
|
|
98
|
-
flush: "sync"
|
|
99
|
-
}), h([i, u], V, {
|
|
100
|
-
flush: "sync"
|
|
101
|
-
}), h(D, $, {
|
|
102
|
-
flush: "sync"
|
|
103
|
-
}), F() && I(R), {
|
|
104
|
-
x: a(p),
|
|
105
|
-
y: a(w),
|
|
106
|
-
strategy: a(c),
|
|
107
|
-
placement: a(P),
|
|
108
|
-
middlewareData: a(E),
|
|
109
|
-
isPositioned: a(y),
|
|
110
|
-
floatingStyles: N,
|
|
111
|
-
update: m
|
|
112
|
-
};
|
|
113
|
-
}
|
|
1
|
+
import t from "./index249.js";
|
|
2
|
+
const r = t;
|
|
114
3
|
export {
|
|
115
|
-
|
|
116
|
-
T as autoUpdate,
|
|
117
|
-
A as computePosition,
|
|
118
|
-
W as flip,
|
|
119
|
-
ee as getOverflowAncestors,
|
|
120
|
-
X as platform,
|
|
121
|
-
Y as shift,
|
|
122
|
-
K as useFloating
|
|
4
|
+
r as throttle
|
|
123
5
|
};
|
|
124
6
|
//# sourceMappingURL=index221.js.map
|
package/dist/index221.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index221.js","sources":["../
|
|
1
|
+
{"version":3,"file":"index221.js","sources":["../src/utilities/functions/throttle.ts"],"sourcesContent":["import t from 'lodash.throttle';\n\nexport const throttle = t;\n"],"names":["throttle"],"mappings":";AAEO,MAAMA,IAAW;"}
|
package/dist/index222.js
CHANGED
|
@@ -1,5 +1,38 @@
|
|
|
1
|
-
|
|
1
|
+
import { unrefElement as m } from "./index131.js";
|
|
2
|
+
import { ref as u, watch as l } from "vue";
|
|
3
|
+
import { createFocusTrap as d } from "./index248.js";
|
|
4
|
+
import { tryOnScopeDispose as D } from "./index197.js";
|
|
5
|
+
function O(i, a = {}) {
|
|
6
|
+
let e;
|
|
7
|
+
const { immediate: f, ...n } = a, c = u(!1), s = u(!1), o = (t) => e && e.activate(t), r = (t) => e && e.deactivate(t), v = () => {
|
|
8
|
+
e && (e.pause(), s.value = !0);
|
|
9
|
+
}, p = () => {
|
|
10
|
+
e && (e.unpause(), s.value = !1);
|
|
11
|
+
};
|
|
12
|
+
return l(
|
|
13
|
+
() => m(i),
|
|
14
|
+
(t) => {
|
|
15
|
+
t && (e = d(t, {
|
|
16
|
+
...n,
|
|
17
|
+
onActivate() {
|
|
18
|
+
c.value = !0, a.onActivate && a.onActivate();
|
|
19
|
+
},
|
|
20
|
+
onDeactivate() {
|
|
21
|
+
c.value = !1, a.onDeactivate && a.onDeactivate();
|
|
22
|
+
}
|
|
23
|
+
}), f && o());
|
|
24
|
+
},
|
|
25
|
+
{ flush: "post" }
|
|
26
|
+
), D(() => r()), {
|
|
27
|
+
hasFocus: c,
|
|
28
|
+
isPaused: s,
|
|
29
|
+
activate: o,
|
|
30
|
+
deactivate: r,
|
|
31
|
+
pause: v,
|
|
32
|
+
unpause: p
|
|
33
|
+
};
|
|
34
|
+
}
|
|
2
35
|
export {
|
|
3
|
-
|
|
36
|
+
O as useFocusTrap
|
|
4
37
|
};
|
|
5
38
|
//# sourceMappingURL=index222.js.map
|
package/dist/index222.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index222.js","sources":["../
|
|
1
|
+
{"version":3,"file":"index222.js","sources":["../node_modules/@vueuse/integrations/useFocusTrap.mjs"],"sourcesContent":["import { unrefElement, tryOnScopeDispose } from '@vueuse/core';\nimport { ref, watch } from 'vue-demi';\nimport { createFocusTrap } from 'focus-trap';\n\nfunction useFocusTrap(target, options = {}) {\n let trap;\n const { immediate, ...focusTrapOptions } = options;\n const hasFocus = ref(false);\n const isPaused = ref(false);\n const activate = (opts) => trap && trap.activate(opts);\n const deactivate = (opts) => trap && trap.deactivate(opts);\n const pause = () => {\n if (trap) {\n trap.pause();\n isPaused.value = true;\n }\n };\n const unpause = () => {\n if (trap) {\n trap.unpause();\n isPaused.value = false;\n }\n };\n watch(\n () => unrefElement(target),\n (el) => {\n if (!el)\n return;\n trap = createFocusTrap(el, {\n ...focusTrapOptions,\n onActivate() {\n hasFocus.value = true;\n if (options.onActivate)\n options.onActivate();\n },\n onDeactivate() {\n hasFocus.value = false;\n if (options.onDeactivate)\n options.onDeactivate();\n }\n });\n if (immediate)\n activate();\n },\n { flush: \"post\" }\n );\n tryOnScopeDispose(() => deactivate());\n return {\n hasFocus,\n isPaused,\n activate,\n deactivate,\n pause,\n unpause\n };\n}\n\nexport { useFocusTrap };\n"],"names":["useFocusTrap","target","options","trap","immediate","focusTrapOptions","hasFocus","ref","isPaused","activate","opts","deactivate","pause","unpause","watch","unrefElement","el","createFocusTrap","tryOnScopeDispose"],"mappings":";;;;AAIA,SAASA,EAAaC,GAAQC,IAAU,IAAI;AAC1C,MAAIC;AACJ,QAAM,EAAE,WAAAC,GAAW,GAAGC,EAAgB,IAAKH,GACrCI,IAAWC,EAAI,EAAK,GACpBC,IAAWD,EAAI,EAAK,GACpBE,IAAW,CAACC,MAASP,KAAQA,EAAK,SAASO,CAAI,GAC/CC,IAAa,CAACD,MAASP,KAAQA,EAAK,WAAWO,CAAI,GACnDE,IAAQ,MAAM;AAClB,IAAIT,MACFA,EAAK,MAAK,GACVK,EAAS,QAAQ;AAAA,EAEvB,GACQK,IAAU,MAAM;AACpB,IAAIV,MACFA,EAAK,QAAO,GACZK,EAAS,QAAQ;AAAA,EAEvB;AACE,SAAAM;AAAA,IACE,MAAMC,EAAad,CAAM;AAAA,IACzB,CAACe,MAAO;AACN,MAAKA,MAELb,IAAOc,EAAgBD,GAAI;AAAA,QACzB,GAAGX;AAAA,QACH,aAAa;AACX,UAAAC,EAAS,QAAQ,IACbJ,EAAQ,cACVA,EAAQ,WAAU;AAAA,QACrB;AAAA,QACD,eAAe;AACb,UAAAI,EAAS,QAAQ,IACbJ,EAAQ,gBACVA,EAAQ,aAAY;AAAA,QACvB;AAAA,MACT,CAAO,GACGE,KACFK;IACH;AAAA,IACD,EAAE,OAAO,OAAQ;AAAA,EACrB,GACES,EAAkB,MAAMP,EAAU,CAAE,GAC7B;AAAA,IACL,UAAAL;AAAA,IACA,UAAAE;AAAA,IACA,UAAAC;AAAA,IACA,YAAAE;AAAA,IACA,OAAAC;AAAA,IACA,SAAAC;AAAA,EACJ;AACA;","x_google_ignoreList":[0]}
|
package/dist/index224.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { getDefaultExportFromCjs as F, commonjsGlobal as g } from "./
|
|
1
|
+
import { getDefaultExportFromCjs as F, commonjsGlobal as g } from "./index235.js";
|
|
2
2
|
var M = "Expected a function", S = NaN, N = "[object Symbol]", W = /^\s+|\s+$/g, A = /^[-+]0x[0-9a-f]+$/i, B = /^0b[01]+$/i, R = /^0o[0-7]+$/i, _ = parseInt, D = typeof g == "object" && g && g.Object === Object && g, G = typeof self == "object" && self && self.Object === Object && self, P = D || G || Function("return this")(), H = Object.prototype, U = H.toString, X = Math.max, q = Math.min, T = function() {
|
|
3
3
|
return P.Date.now();
|
|
4
4
|
};
|
package/dist/index225.js
CHANGED
package/dist/index225.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index225.js","sources":["../
|
|
1
|
+
{"version":3,"file":"index225.js","sources":["../node_modules/mime/dist/src/index.js"],"sourcesContent":["import otherTypes from '../types/other.js';\nimport standardTypes from '../types/standard.js';\nimport Mime from './Mime.js';\nexport { default as Mime } from './Mime.js';\nexport default new Mime(standardTypes, otherTypes)._freeze();\n//# sourceMappingURL=index.js.map"],"names":["index","Mime","standardTypes","otherTypes"],"mappings":";;;AAIA,MAAeA,IAAA,IAAIC,EAAKC,GAAeC,CAAU,EAAE,QAAS;","x_google_ignoreList":[0]}
|
package/dist/index226.js
CHANGED
|
@@ -1,9 +1,20 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
const e = (o, r, f) => o.reduce((t, n) => {
|
|
2
|
+
if (t)
|
|
3
|
+
return t;
|
|
4
|
+
if (f(n))
|
|
5
|
+
return n;
|
|
6
|
+
if (r in n) {
|
|
7
|
+
const i = e(
|
|
8
|
+
[].concat(n[r]),
|
|
9
|
+
r,
|
|
10
|
+
f
|
|
11
|
+
);
|
|
12
|
+
if (i)
|
|
13
|
+
return i;
|
|
14
|
+
}
|
|
15
|
+
return t;
|
|
16
|
+
}, null);
|
|
5
17
|
export {
|
|
6
|
-
|
|
7
|
-
f as default
|
|
18
|
+
e as findInTree
|
|
8
19
|
};
|
|
9
20
|
//# sourceMappingURL=index226.js.map
|
package/dist/index226.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index226.js","sources":["../
|
|
1
|
+
{"version":3,"file":"index226.js","sources":["../src/utilities/functions/findInTree.ts"],"sourcesContent":["/**\n * Find the eleemnt for which iteratee rfeturns true in a tree like structure\n */\nexport const findInTree = <T extends Record<string, any>>(\n\titems: T[],\n\tkeyName: keyof T,\n\titeratee: (item: T) => boolean\n): null | T => {\n\treturn items.reduce((acc: null | T, curr) => {\n\t\tif (acc) return acc;\n\t\tif (iteratee(curr)) {\n\t\t\treturn curr;\n\t\t}\n\n\t\tif (keyName in curr) {\n\t\t\tconst fromChildren = findInTree(\n\t\t\t\t[].concat(curr[keyName]),\n\t\t\t\tkeyName,\n\t\t\t\titeratee\n\t\t\t);\n\t\t\tif (fromChildren) {\n\t\t\t\treturn fromChildren;\n\t\t\t}\n\t\t}\n\t\treturn acc;\n\t}, null);\n};\n"],"names":["findInTree","items","keyName","iteratee","acc","curr","fromChildren"],"mappings":"AAGO,MAAMA,IAAa,CACzBC,GACAC,GACAC,MAEOF,EAAM,OAAO,CAACG,GAAeC,MAAS;AACxC,MAAAD;AAAY,WAAAA;AACZ,MAAAD,EAASE,CAAI;AACT,WAAAA;AAGR,MAAIH,KAAWG,GAAM;AACpB,UAAMC,IAAeN;AAAA,MACpB,CAAA,EAAG,OAAOK,EAAKH,CAAO,CAAC;AAAA,MACvBA;AAAA,MACAC;AAAA,IAAA;AAED,QAAIG;AACI,aAAAA;AAAA,EAET;AACO,SAAAF;GACL,IAAI;"}
|
package/dist/index227.js
CHANGED
|
@@ -1,20 +1,5 @@
|
|
|
1
|
-
const
|
|
2
|
-
if (t)
|
|
3
|
-
return t;
|
|
4
|
-
if (f(n))
|
|
5
|
-
return n;
|
|
6
|
-
if (r in n) {
|
|
7
|
-
const i = e(
|
|
8
|
-
[].concat(n[r]),
|
|
9
|
-
r,
|
|
10
|
-
f
|
|
11
|
-
);
|
|
12
|
-
if (i)
|
|
13
|
-
return i;
|
|
14
|
-
}
|
|
15
|
-
return t;
|
|
16
|
-
}, null);
|
|
1
|
+
const t = (d, o) => +d + +o;
|
|
17
2
|
export {
|
|
18
|
-
|
|
3
|
+
t as add
|
|
19
4
|
};
|
|
20
5
|
//# sourceMappingURL=index227.js.map
|
package/dist/index227.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index227.js","sources":["../src/utilities/functions/
|
|
1
|
+
{"version":3,"file":"index227.js","sources":["../src/utilities/functions/add.ts"],"sourcesContent":["export const add = (a: number | string, b: number | string) => +a + +b;\n"],"names":["add","a","b"],"mappings":"AAAO,MAAMA,IAAM,CAACC,GAAoBC,MAAuB,CAACD,IAAI,CAACC;"}
|
package/dist/index228.js
CHANGED
|
@@ -1,72 +1,163 @@
|
|
|
1
|
-
import { defineComponent as
|
|
2
|
-
import
|
|
3
|
-
import "./
|
|
4
|
-
import
|
|
5
|
-
import "./
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
viewBox: "0 0 24 24",
|
|
12
|
-
xmlns: "http://www.w3.org/2000/svg"
|
|
13
|
-
}, [
|
|
14
|
-
/* @__PURE__ */ t("path", {
|
|
15
|
-
d: "M23 23L1 1M23 1L1 23",
|
|
16
|
-
stroke: "currentColor",
|
|
17
|
-
"stroke-linecap": "round",
|
|
18
|
-
"stroke-width": "2"
|
|
19
|
-
})
|
|
20
|
-
], -1), N = /* @__PURE__ */ d({
|
|
21
|
-
__name: "BbToastMessage",
|
|
1
|
+
import { defineComponent as K, ref as s, computed as y, openBlock as p, createElementBlock as m, normalizeClass as g, renderSlot as v, createElementVNode as k, Fragment as E, renderList as C, toDisplayString as B, createBlock as S, withDirectives as z, mergeProps as H, vModelDynamic as J } from "vue";
|
|
2
|
+
import { clamp as P } from "./index208.js";
|
|
3
|
+
import { drop as q } from "./index256.js";
|
|
4
|
+
import { isNil as R } from "./index120.js";
|
|
5
|
+
import { isNotNil as w } from "./index124.js";
|
|
6
|
+
import { wait as L } from "./index122.js";
|
|
7
|
+
import U from "./index115.js";
|
|
8
|
+
import "./index158.js";
|
|
9
|
+
const j = { class: "bb-base-tag__input-container" }, G = ["id", "autocomplete", "autofocus", "disabled", "placeholder", "readonly"], te = /* @__PURE__ */ K({
|
|
10
|
+
__name: "BaseTag",
|
|
22
11
|
props: {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
12
|
+
autocomplete: {},
|
|
13
|
+
autofocus: {},
|
|
14
|
+
comma: { type: Boolean },
|
|
15
|
+
disabled: { type: Boolean },
|
|
16
|
+
divider: { default: "Enter" },
|
|
17
|
+
hasErrors: { type: Boolean },
|
|
27
18
|
id: {},
|
|
28
|
-
|
|
19
|
+
modelValue: {},
|
|
20
|
+
multiple: { type: Boolean, default: !0 },
|
|
21
|
+
name: {},
|
|
22
|
+
placeholder: {},
|
|
23
|
+
readonly: {}
|
|
29
24
|
},
|
|
30
|
-
emits: ["click:
|
|
31
|
-
setup(
|
|
32
|
-
const
|
|
33
|
-
|
|
25
|
+
emits: ["blur", "change", "click", "duplicate", "focus", "inactive", "input", "keydown", "keyup", "update:modelValue"],
|
|
26
|
+
setup(N, { emit: I }) {
|
|
27
|
+
const a = N, u = I;
|
|
28
|
+
if (a.multiple && !Array.isArray(a.modelValue))
|
|
29
|
+
throw new Error('Multiple is set to "true" but modelValue is not an array.');
|
|
30
|
+
const i = s(null), $ = s(null), c = s(null), t = s(""), D = y(() => a.placeholder), o = y(
|
|
31
|
+
() => [].concat(a.modelValue).filter(w)
|
|
32
|
+
), h = y(() => {
|
|
33
|
+
let e = {};
|
|
34
|
+
return o.value.forEach((n, r) => {
|
|
35
|
+
e[JSON.stringify(n)] = r;
|
|
36
|
+
}), {
|
|
37
|
+
get: (n) => e[JSON.stringify(n)]
|
|
38
|
+
};
|
|
39
|
+
}), f = s(!1), l = s(null), A = (e) => {
|
|
40
|
+
if (u("keyup", e), a.readonly || a.disabled) {
|
|
41
|
+
e.preventDefault();
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
if (e.key === a.divider) {
|
|
45
|
+
if (t.value[t.value.length - 1] === e.key && (t.value = t.value.slice(0, t.value.length - 1)), !t.value)
|
|
46
|
+
return;
|
|
47
|
+
l.value = null;
|
|
48
|
+
const n = h.value.get(t.value);
|
|
49
|
+
R(n) ? F(t.value) : u("duplicate", t.value), t.value = "";
|
|
50
|
+
} else if (e.key === "ArrowLeft")
|
|
51
|
+
l.value === null ? l.value = o.value.length - 1 : l.value === 0 ? l.value = null : l.value--;
|
|
52
|
+
else if (e.key === "ArrowRight")
|
|
53
|
+
l.value === null ? l.value = 1 : l.value === o.value.length - 1 ? l.value = null : l.value++;
|
|
54
|
+
else if (e.key === "Backspace") {
|
|
55
|
+
if (t.value)
|
|
56
|
+
return;
|
|
57
|
+
w(l.value) ? (b(l.value), l.value = P(
|
|
58
|
+
l.value,
|
|
59
|
+
0,
|
|
60
|
+
o.value.length - 2
|
|
61
|
+
), o.value.length === 1 && (l.value = null)) : l.value = o.value.length - 1;
|
|
62
|
+
} else
|
|
63
|
+
(e.key === "Tab" || e.key === "Escape") && (l.value = null);
|
|
64
|
+
}, F = (e) => {
|
|
65
|
+
a.multiple ? u("update:modelValue", a.modelValue.concat(e)) : u("update:modelValue", e);
|
|
66
|
+
}, b = (e) => {
|
|
67
|
+
if (typeof e == "number")
|
|
68
|
+
a.multiple ? u("update:modelValue", q(a.modelValue, 1, e)) : u("update:modelValue", null);
|
|
69
|
+
else {
|
|
70
|
+
const n = h.value.get(t.value);
|
|
71
|
+
b(n);
|
|
72
|
+
}
|
|
73
|
+
}, M = (e) => {
|
|
74
|
+
u("focus", e), f.value = !0, document.addEventListener("click", _), document.addEventListener("focusin", V), c.value instanceof HTMLInputElement && c.value.select();
|
|
75
|
+
}, O = (e) => {
|
|
76
|
+
u("click", e), !(a.disabled || a.readonly) && c.value instanceof HTMLElement && c.value.focus();
|
|
77
|
+
}, _ = (e) => {
|
|
78
|
+
if (e.target instanceof Node && i.value && !i.value.contains(e.target)) {
|
|
79
|
+
u("inactive"), document.removeEventListener("click", _), f.value = !1, a.multiple && L(500).then(() => {
|
|
80
|
+
t.value = "";
|
|
81
|
+
});
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
}, V = (e) => {
|
|
85
|
+
if (e.target instanceof Node && i.value && !i.value.contains(e.target)) {
|
|
86
|
+
u("inactive"), document.removeEventListener("focusin", V), f.value = !1, a.multiple && L(500).then(() => {
|
|
87
|
+
t.value = "";
|
|
88
|
+
});
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
}, T = {
|
|
92
|
+
onBlur: (e) => u("blur", e),
|
|
93
|
+
onChange: (e) => u("change", e),
|
|
94
|
+
onKeydown: (e) => {
|
|
95
|
+
e.key === "Enter" && a.divider === "Enter" && e.preventDefault(), u("keydown", e);
|
|
96
|
+
},
|
|
97
|
+
onInput: (e) => u("input", e)
|
|
34
98
|
};
|
|
35
|
-
return (e,
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
99
|
+
return (e, n) => (p(), m("span", {
|
|
100
|
+
ref_key: "outerContainer",
|
|
101
|
+
ref: i,
|
|
102
|
+
class: g({
|
|
103
|
+
"bb-base-tag": !0,
|
|
104
|
+
"bb-base-tag--active": f.value,
|
|
105
|
+
"bb-base-tag--disabled": e.disabled,
|
|
106
|
+
"bb-base-tag--errors": e.hasErrors,
|
|
107
|
+
"bb-base-tag--readonly": e.readonly
|
|
108
|
+
}),
|
|
109
|
+
onClick: O
|
|
40
110
|
}, [
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
111
|
+
v(e.$slots, "prepend-outer"),
|
|
112
|
+
k("span", {
|
|
113
|
+
ref_key: "innerContainer",
|
|
114
|
+
ref: $,
|
|
115
|
+
class: "bb-base-tag__inner-container"
|
|
116
|
+
}, [
|
|
117
|
+
v(e.$slots, "prepend"),
|
|
118
|
+
k("span", j, [
|
|
119
|
+
e.comma ? (p(!0), m(E, { key: 0 }, C(o.value, (r, d) => (p(), m("span", {
|
|
120
|
+
key: r,
|
|
121
|
+
class: g({
|
|
122
|
+
"bb-base-tag__selected": !0,
|
|
123
|
+
"bb-base-tag__selected--comma": !0,
|
|
124
|
+
"bb-base-tag__selected--focused": d === l.value
|
|
125
|
+
})
|
|
126
|
+
}, B(r) + B(d < o.value.length - 1 ? "," : ""), 3))), 128)) : (p(!0), m(E, { key: 1 }, C(o.value, (r, d) => (p(), S(U, {
|
|
127
|
+
key: r,
|
|
128
|
+
class: g({
|
|
129
|
+
"bb-base-tag__selected": !0,
|
|
130
|
+
"bb-base-tag__selected--chip": !0,
|
|
131
|
+
"bb-base-tag__selected--focused": d === l.value
|
|
132
|
+
}),
|
|
133
|
+
clearable: !0,
|
|
134
|
+
text: r,
|
|
135
|
+
"onClick:clear": (Q) => b(d)
|
|
136
|
+
}, null, 8, ["class", "text", "onClick:clear"]))), 128)),
|
|
137
|
+
z(k("input", H({ id: e.id }, T, {
|
|
138
|
+
ref_key: "input",
|
|
139
|
+
ref: c,
|
|
140
|
+
"onUpdate:modelValue": n[0] || (n[0] = (r) => t.value = r),
|
|
141
|
+
autocomplete: e.autocomplete,
|
|
142
|
+
autofocus: e.autofocus,
|
|
143
|
+
class: "bb-base-tag__text-input",
|
|
144
|
+
disabled: e.disabled,
|
|
145
|
+
placeholder: D.value,
|
|
146
|
+
readonly: e.readonly,
|
|
147
|
+
type: "text",
|
|
148
|
+
onFocus: M,
|
|
149
|
+
onKeyup: A
|
|
150
|
+
}), null, 16, G), [
|
|
151
|
+
[J, t.value]
|
|
152
|
+
])
|
|
153
|
+
]),
|
|
154
|
+
v(e.$slots, "append")
|
|
155
|
+
], 512),
|
|
156
|
+
v(e.$slots, "append-outer")
|
|
66
157
|
], 2));
|
|
67
158
|
}
|
|
68
159
|
});
|
|
69
160
|
export {
|
|
70
|
-
|
|
161
|
+
te as default
|
|
71
162
|
};
|
|
72
163
|
//# sourceMappingURL=index228.js.map
|
package/dist/index228.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index228.js","sources":["../src/components/BbToast/BbToastMessage.vue"],"sourcesContent":["<template>\n\t<div\n\t\taria-atomic=\"true\"\n\t\taria-live=\"assertive\"\n\t\taria-role=\"alert\"\n\t\tclass=\"bb-toast-message\"\n\t\t:class=\"{ [`bb-toast-message--${theme}`]: theme }\"\n\t>\n\t\t<div class=\"bb-toast-message__icon-container\">\n\t\t\t<BbIcon v-if=\"icon\" class=\"bb-alert__icon\" :type=\"icon\" />\n\t\t</div>\n\n\t\t<div class=\"bb-toast-message__content\">\n\t\t\t<p v-if=\"title\" class=\"bb-toast-message__title\">{{ title }}</p>\n\t\t\t<p class=\"bb-toast-message__text\">{{ text }}</p>\n\t\t</div>\n\t\t<div class=\"bb-toast-message__close\">\n\t\t\t<BaseButton\n\t\t\t\tv-if=\"showClose\"\n\t\t\t\t:aria-label=\"'Chiudi'\"\n\t\t\t\tblock\n\t\t\t\tclass=\"bb-toast-message__close-btn\"\n\t\t\t\t@click=\"onClickClose\"\n\t\t\t>\n\t\t\t\t<svg fill=\"none\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t\t\t\t<path\n\t\t\t\t\t\td=\"M23 23L1 1M23 1L1 23\"\n\t\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\t\tstroke-linecap=\"round\"\n\t\t\t\t\t\tstroke-width=\"2\"\n\t\t\t\t\t/>\n\t\t\t\t</svg>\n\t\t\t</BaseButton>\n\t\t</div>\n\t</div>\n</template>\n\n<script setup lang=\"ts\">\nimport type { Message } from '../../composables/useToast';\nimport BaseButton from '../BaseButton/BaseButton.vue';\nimport BbIcon from '../BbIcon/BbIcon.vue';\n\nconst props = withDefaults(defineProps<Message>(), {\n\ttheme: 'default',\n});\ntype BbToastMessageEvents = {\n\t(e: 'click:close', id: Message['id']): void;\n};\nconst emit = defineEmits<BbToastMessageEvents>();\n\nconst onClickClose = () => {\n\temit('click:close', props.id);\n};\n</script>\n\n<style scoped></style>\n"],"names":["props","__props","emit","__emit","onClickClose"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0CA,UAAMA,IAAQC,GAMRC,IAAOC,GAEPC,IAAe,MAAM;AACrB,MAAAF,EAAA,eAAeF,EAAM,EAAE;AAAA,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"index228.js","sources":["../src/components/BaseTag/BaseTag.vue"],"sourcesContent":["<template>\n\t<span\n\t\tref=\"outerContainer\"\n\t\t:class=\"{\n\t\t\t'bb-base-tag': true,\n\t\t\t'bb-base-tag--active': active,\n\t\t\t'bb-base-tag--disabled': disabled,\n\t\t\t'bb-base-tag--errors': hasErrors,\n\t\t\t'bb-base-tag--readonly': readonly,\n\t\t}\"\n\t\t@click=\"onOuterContainerClick\"\n\t>\n\t\t<slot name=\"prepend-outer\"></slot>\n\t\t<span ref=\"innerContainer\" class=\"bb-base-tag__inner-container\">\n\t\t\t<slot name=\"prepend\"></slot>\n\t\t\t<span class=\"bb-base-tag__input-container\">\n\t\t\t\t<template v-if=\"comma\">\n\t\t\t\t\t<span\n\t\t\t\t\t\tv-for=\"(option, index) in modelValueNormalized\"\n\t\t\t\t\t\t:key=\"option\"\n\t\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t\t'bb-base-tag__selected': true,\n\t\t\t\t\t\t\t'bb-base-tag__selected--comma': true,\n\t\t\t\t\t\t\t'bb-base-tag__selected--focused': index === focusedIndex,\n\t\t\t\t\t\t}\"\n\t\t\t\t\t\t>{{ option\n\t\t\t\t\t\t}}{{ index < modelValueNormalized.length - 1 ? ',' : '' }}</span\n\t\t\t\t\t>\n\t\t\t\t</template>\n\t\t\t\t<template v-else>\n\t\t\t\t\t<BbChip\n\t\t\t\t\t\tv-for=\"(option, index) in modelValueNormalized\"\n\t\t\t\t\t\t:key=\"option\"\n\t\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t\t'bb-base-tag__selected': true,\n\t\t\t\t\t\t\t'bb-base-tag__selected--chip': true,\n\t\t\t\t\t\t\t'bb-base-tag__selected--focused': index === focusedIndex,\n\t\t\t\t\t\t}\"\n\t\t\t\t\t\t:clearable=\"true\"\n\t\t\t\t\t\t:text=\"option\"\n\t\t\t\t\t\t@click:clear=\"removeValue(index)\"\n\t\t\t\t\t/>\n\t\t\t\t</template>\n\n\t\t\t\t<input\n\t\t\t\t\t:id=\"id\"\n\t\t\t\t\tv-bind=\"eventListeners\"\n\t\t\t\t\tref=\"input\"\n\t\t\t\t\tv-model=\"query\"\n\t\t\t\t\t:autocomplete=\"autocomplete\"\n\t\t\t\t\t:autofocus=\"autofocus\"\n\t\t\t\t\t:class=\"'bb-base-tag__text-input'\"\n\t\t\t\t\t:disabled=\"disabled\"\n\t\t\t\t\t:placeholder=\"computedPlaceholder\"\n\t\t\t\t\t:readonly=\"readonly\"\n\t\t\t\t\t:type=\"'text'\"\n\t\t\t\t\t@focus=\"onInputFocus\"\n\t\t\t\t\t@keyup=\"onInputKeyup\"\n\t\t\t\t/>\n\t\t\t</span>\n\t\t\t<slot name=\"append\"></slot>\n\t\t</span>\n\t\t<slot name=\"append-outer\"></slot>\n\t</span>\n</template>\n\n<script setup lang=\"ts\">\nimport { clamp } from '@/utilities/functions/clamp';\nimport { computed, ref } from 'vue';\nimport { drop } from '@/utilities/functions/drop';\nimport { isNil } from '@/utilities/functions/isNil';\nimport { isNotNil } from '@/utilities/functions/isNotNil';\nimport { wait } from '@/utilities/functions/wait';\nimport BbChip from '../BbChip/BbChip.vue';\nimport type { InputHTMLAttributes, HTMLAttributes } from 'vue';\n\nexport type BaseTagProps = {\n\t/**\n\t * Guides to the browser as to the type of information expected in the field.\n\t */\n\tautocomplete?: InputHTMLAttributes['autocomplete'];\n\n\t/**\n\t * Sets autofocus on page load.\n\t */\n\tautofocus?: InputHTMLAttributes['autofocus'];\n\n\t/**\n\t * Sets the display model for selected values to a list\n\t * of comma separated string. In this mode the user\n\t * cannot deselect an option by pressing the close button.\n\t */\n\tcomma?: boolean;\n\n\t/**\n\t * Disables the component\n\t */\n\tdisabled?: boolean;\n\n\t/**\n\t * The divider key used to separate values from one another. By default it is \"Enter\"\n\t */\n\tdivider?: KeyboardEvent['key'];\n\n\t/**\n\t * Define if the component should be in an error state.\n\t * It usually attaches a CSS class for styling purposes.\n\t */\n\thasErrors?: boolean;\n\n\t/**\n\t * The identifier of the component.\n\t */\n\tid?: HTMLAttributes['id'];\n\n\t/**\n\t * Used by v-model. Can be any serializable type.\n\t */\n\tmodelValue: any;\n\n\t/**\n\t * Allows the selection of multiple items.\n\t */\n\tmultiple?: boolean;\n\n\t/**\n\t * Defines the name of the input.\n\t */\n\tname?: InputHTMLAttributes['name'];\n\n\t/**\n\t * String displayed when there's no data.\n\t */\n\tplaceholder?: InputHTMLAttributes['placeholder'];\n\n\t/**\n\t * Sets the input in a readonly state.\n\t */\n\treadonly?: InputHTMLAttributes['readonly'];\n};\n\nconst props = withDefaults(defineProps<BaseTagProps>(), {\n\tdivider: 'Enter',\n\tmultiple: true,\n});\n\nexport type BaseTagEvents = {\n\t(e: 'blur', event: FocusEvent): void;\n\n\t(e: 'change', event: Event): void;\n\n\t(e: 'click', event: MouseEvent): void;\n\n\t(e: 'duplicate', string: string): void;\n\n\t(e: 'focus', event: FocusEvent): void;\n\n\t(e: 'inactive'): void;\n\n\t(e: 'input', event: Event): void;\n\n\t(e: 'keydown', event: KeyboardEvent): void;\n\n\t(e: 'keyup', event: KeyboardEvent): void;\n\n\t(e: 'update:modelValue', value: any): void;\n};\n\nconst emit = defineEmits<BaseTagEvents>();\n\nexport type BaseTagSlots = {\n\tappend?: (props: object) => any;\n\n\t'append-outer'?: (props: object) => any;\n\n\tprepend?: (props: object) => any;\n\n\t'prepend-outer'?: (props: object) => any;\n};\n\ndefineSlots<BaseTagSlots>();\n\nif (props.multiple && !Array.isArray(props.modelValue)) {\n\tthrow new Error('Multiple is set to \"true\" but modelValue is not an array.');\n}\n\nconst outerContainer = ref<HTMLElement | null>(null);\nconst innerContainer = ref<HTMLElement | null>(null);\nconst input = ref<HTMLElement | null>(null);\nconst query = ref<string>('');\nconst computedPlaceholder = computed(() => {\n\treturn props.placeholder;\n});\n\nconst modelValueNormalized = computed(() =>\n\t[].concat(props.modelValue).filter(isNotNil)\n);\n\n/**\n * Indexes modelValue to a map so when can easily know which values are selected\n */\nconst modelValueIndexed = computed(() => {\n\tlet map: { [key: string]: number } = {};\n\tmodelValueNormalized.value.forEach((value: any, index: number) => {\n\t\tmap[JSON.stringify(value)] = index;\n\t});\n\treturn {\n\t\tget: (value: any) => map[JSON.stringify(value)],\n\t};\n});\n\n/**\n * Applies a class when the user is inside this whole component.\n * We cannot use focus within as it doesn't work for elements that are teleported.\n * Also we cannot use the <input/> if we phisically move focus to the options so\n * we track it manually.\n */\nconst active = ref(false);\n\nconst focusedIndex = ref<null | number>(null);\n\nconst onInputKeyup = (event: KeyboardEvent) => {\n\temit('keyup', event);\n\tif (props.readonly || props.disabled) {\n\t\tevent.preventDefault();\n\t\treturn;\n\t}\n\tif (event.key === props.divider) {\n\t\tif (query.value[query.value.length - 1] === event.key) {\n\t\t\tquery.value = query.value.slice(0, query.value.length - 1);\n\t\t}\n\t\tif (!query.value) return;\n\t\tfocusedIndex.value = null;\n\t\tconst currentIndex = modelValueIndexed.value.get(query.value);\n\t\tif (isNil(currentIndex)) selectValue(query.value);\n\t\telse emit('duplicate', query.value);\n\t\tquery.value = '';\n\t} else if (event.key === 'ArrowLeft') {\n\t\tif (focusedIndex.value === null)\n\t\t\tfocusedIndex.value = modelValueNormalized.value.length - 1;\n\t\telse if (focusedIndex.value === 0) focusedIndex.value = null;\n\t\telse focusedIndex.value--;\n\t} else if (event.key === 'ArrowRight') {\n\t\tif (focusedIndex.value === null) focusedIndex.value = 1;\n\t\telse if (focusedIndex.value === modelValueNormalized.value.length - 1)\n\t\t\tfocusedIndex.value = null;\n\t\telse focusedIndex.value++;\n\t} else if (event.key === 'Backspace') {\n\t\tif (query.value) return;\n\t\tif (isNotNil(focusedIndex.value)) {\n\t\t\tremoveValue(focusedIndex.value);\n\t\t\tfocusedIndex.value = clamp(\n\t\t\t\tfocusedIndex.value,\n\t\t\t\t0,\n\t\t\t\tmodelValueNormalized.value.length - 2\n\t\t\t);\n\t\t\tif (modelValueNormalized.value.length === 1) focusedIndex.value = null;\n\t\t} else focusedIndex.value = modelValueNormalized.value.length - 1;\n\t} else if (event.key === 'Tab' || event.key === 'Escape') {\n\t\tfocusedIndex.value = null;\n\t}\n};\n\nconst selectValue = (text: string) => {\n\tif (props.multiple) emit('update:modelValue', props.modelValue.concat(text));\n\telse emit('update:modelValue', text);\n};\n\nconst removeValue = (indexOrString: number | string) => {\n\tif (typeof indexOrString === 'number') {\n\t\tif (props.multiple)\n\t\t\temit('update:modelValue', drop(props.modelValue, 1, indexOrString));\n\t\telse emit('update:modelValue', null);\n\t} else {\n\t\tconst currentIndex = modelValueIndexed.value.get(query.value);\n\t\tremoveValue(currentIndex);\n\t}\n};\n\nconst onInputFocus = (event: FocusEvent) => {\n\temit('focus', event);\n\tactive.value = true;\n\tdocument.addEventListener('click', onClickOutside);\n\tdocument.addEventListener('focusin', onFocusOutside);\n\tif (input.value instanceof HTMLInputElement) input.value.select();\n};\n\n/**\n * When clicking on the outside container seamlessly move focus to the input and open the panel\n */\nconst onOuterContainerClick = (event: MouseEvent) => {\n\temit('click', event);\n\tif (props.disabled || props.readonly) return;\n\tif (input.value instanceof HTMLElement) {\n\t\tinput.value.focus();\n\t}\n};\n\n/**\n * On click outside of the container close the panel, remove active state.\n * In multiple selection clear query after a timeout\n */\nconst onClickOutside = (event: Event) => {\n\tif (event.target instanceof Node) {\n\t\tif (outerContainer.value) {\n\t\t\tif (!outerContainer.value.contains(event.target)) {\n\t\t\t\temit('inactive');\n\t\t\t\tdocument.removeEventListener('click', onClickOutside);\n\t\t\t\tactive.value = false;\n\t\t\t\tif (props.multiple)\n\t\t\t\t\twait(500).then(() => {\n\t\t\t\t\t\tquery.value = '';\n\t\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t}\n};\n\nconst onFocusOutside = (event: FocusEvent) => {\n\tif (event.target instanceof Node) {\n\t\tif (outerContainer.value) {\n\t\t\tif (!outerContainer.value.contains(event.target)) {\n\t\t\t\temit('inactive');\n\t\t\t\tdocument.removeEventListener('focusin', onFocusOutside);\n\t\t\t\tactive.value = false;\n\t\t\t\tif (props.multiple)\n\t\t\t\t\twait(500).then(() => {\n\t\t\t\t\t\tquery.value = '';\n\t\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t}\n};\n\nconst eventListeners = {\n\tonBlur: (event: FocusEvent) => emit('blur', event),\n\tonChange: (event: Event) => emit('change', event),\n\tonKeydown: (event: KeyboardEvent) => {\n\t\tif (event.key === 'Enter' && props.divider === 'Enter') {\n\t\t\tevent.preventDefault();\n\t\t}\n\t\temit('keydown', event);\n\t},\n\tonInput: (event: Event) => emit('input', event),\n};\n</script>\n<style lang=\"postcss\">\n@import '@/assets/css/BaseTag';\n</style>\n"],"names":["props","__props","emit","__emit","outerContainer","ref","innerContainer","input","query","computedPlaceholder","computed","modelValueNormalized","isNotNil","modelValueIndexed","map","value","index","active","focusedIndex","onInputKeyup","event","currentIndex","isNil","selectValue","removeValue","clamp","text","indexOrString","drop","onInputFocus","onClickOutside","onFocusOutside","onOuterContainerClick","wait","eventListeners"],"mappings":"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"}
|