bitboss-ui 0.2.4 → 0.2.5
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 +2 -2
- package/dist/index103.js +2 -2
- package/dist/index109.js +1 -1
- package/dist/index11.js +2 -2
- package/dist/index111.js +5 -5
- package/dist/index113.js +1 -1
- 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/index128.js +2 -2
- package/dist/index15.js +8 -8
- package/dist/index17.js +9 -9
- package/dist/index19.js +3 -3
- package/dist/index195.js +5 -235
- package/dist/index195.js.map +1 -1
- package/dist/index196.js +16 -5
- package/dist/index196.js.map +1 -1
- package/dist/index197.js +10 -10
- package/dist/index197.js.map +1 -1
- package/dist/index198.js +18 -15
- package/dist/index198.js.map +1 -1
- package/dist/index199.js +19 -18
- package/dist/index199.js.map +1 -1
- package/dist/index200.js +24 -15
- package/dist/index200.js.map +1 -1
- package/dist/index201.js +8 -29
- package/dist/index201.js.map +1 -1
- package/dist/index202.js +2 -8
- package/dist/index202.js.map +1 -1
- package/dist/index203.js +235 -2
- package/dist/index203.js.map +1 -1
- package/dist/index204.js +10 -2
- package/dist/index204.js.map +1 -1
- package/dist/index205.js +2 -4
- package/dist/index205.js.map +1 -1
- package/dist/index206.js +4 -2
- package/dist/index206.js.map +1 -1
- package/dist/index207.js +351 -3
- package/dist/index207.js.map +1 -1
- package/dist/index208.js +133 -34
- package/dist/index208.js.map +1 -1
- package/dist/index209.js +2 -6
- package/dist/index209.js.map +1 -1
- package/dist/index21.js +2 -2
- package/dist/index210.js +186 -3
- package/dist/index210.js.map +1 -1
- package/dist/index211.js +23 -3
- package/dist/index211.js.map +1 -1
- package/dist/index212.js +347 -329
- package/dist/index212.js.map +1 -1
- package/dist/index213.js +2 -134
- package/dist/index213.js.map +1 -1
- package/dist/index214.js +2 -2
- package/dist/index214.js.map +1 -1
- package/dist/index215.js +3 -186
- package/dist/index215.js.map +1 -1
- package/dist/index216.js +3 -23
- package/dist/index216.js.map +1 -1
- package/dist/index217.js +3 -369
- package/dist/index217.js.map +1 -1
- package/dist/index218.js +2 -10
- package/dist/index218.js.map +1 -1
- package/dist/index219.js +6 -2
- package/dist/index219.js.map +1 -1
- package/dist/index220.js +35 -9
- package/dist/index220.js.map +1 -1
- package/dist/index221.js +7 -114
- package/dist/index221.js.map +1 -1
- package/dist/index222.js +116 -2
- package/dist/index222.js.map +1 -1
- package/dist/index23.js +1 -1
- package/dist/index236.js +69 -2
- package/dist/index236.js.map +1 -1
- package/dist/index237.js +154 -61
- package/dist/index237.js.map +1 -1
- package/dist/index238.js +2 -162
- package/dist/index238.js.map +1 -1
- package/dist/index239.js +2 -2
- package/dist/index240.js +111 -218
- package/dist/index240.js.map +1 -1
- package/dist/index241.js +94 -246
- package/dist/index241.js.map +1 -1
- package/dist/index242.js +2 -435
- package/dist/index242.js.map +1 -1
- package/dist/index243.js +218 -83
- package/dist/index243.js.map +1 -1
- package/dist/index244.js +258 -2
- package/dist/index244.js.map +1 -1
- package/dist/index245.js +2 -117
- package/dist/index245.js.map +1 -1
- package/dist/index246.js +88 -105
- package/dist/index246.js.map +1 -1
- package/dist/index247.js +435 -2
- package/dist/index247.js.map +1 -1
- package/dist/index25.js +2 -2
- package/dist/index252.js +1 -1
- package/dist/index253.js +2 -2
- package/dist/index29.js +3 -3
- package/dist/index31.js +6 -6
- 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 +5 -5
- package/dist/index72.js +1 -1
- package/dist/index75.js +1 -1
- package/dist/index79.js +4 -4
- package/dist/index8.js +72 -72
- package/dist/index8.js.map +1 -1
- package/dist/index81.js +1 -1
- package/dist/style.css +1 -1
- package/package.json +1 -1
package/dist/index237.js
CHANGED
|
@@ -1,72 +1,165 @@
|
|
|
1
|
-
import { defineComponent as
|
|
2
|
-
import
|
|
3
|
-
import "./
|
|
4
|
-
import
|
|
5
|
-
import "./
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
fill: "none",
|
|
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-width": "2",
|
|
18
|
-
"stroke-linecap": "round"
|
|
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 "./index213.js";
|
|
3
|
+
import { drop as q } from "./index254.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 "./index157.js";
|
|
9
|
+
const j = { class: "bb-base-tag__input-container" }, G = ["autocomplete", "autofocus", "disabled", "id", "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
|
-
class:
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
99
|
+
return (e, n) => (p(), m("span", {
|
|
100
|
+
class: g({
|
|
101
|
+
"bb-base-tag": !0,
|
|
102
|
+
"bb-base-tag--active": f.value,
|
|
103
|
+
"bb-base-tag--disabled": e.disabled,
|
|
104
|
+
"bb-base-tag--errors": e.hasErrors,
|
|
105
|
+
"bb-base-tag--readonly": e.readonly
|
|
106
|
+
}),
|
|
107
|
+
onClick: O,
|
|
108
|
+
ref_key: "outerContainer",
|
|
109
|
+
ref: i
|
|
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
|
+
class: "bb-base-tag__inner-container",
|
|
114
|
+
ref_key: "innerContainer",
|
|
115
|
+
ref: $
|
|
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
|
+
class: g({
|
|
121
|
+
"bb-base-tag__selected": !0,
|
|
122
|
+
"bb-base-tag__selected--comma": !0,
|
|
123
|
+
"bb-base-tag__selected--focused": d === l.value
|
|
124
|
+
}),
|
|
125
|
+
key: r
|
|
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
|
+
class: g({
|
|
128
|
+
"bb-base-tag__selected": !0,
|
|
129
|
+
"bb-base-tag__selected--chip": !0,
|
|
130
|
+
"bb-base-tag__selected--focused": d === l.value
|
|
131
|
+
}),
|
|
132
|
+
clearable: !0,
|
|
133
|
+
key: r,
|
|
134
|
+
text: r,
|
|
135
|
+
"onClick:clear": (Q) => b(d)
|
|
136
|
+
}, null, 8, ["class", "text", "onClick:clear"]))), 128)),
|
|
137
|
+
z(k("input", H({
|
|
138
|
+
autocomplete: e.autocomplete,
|
|
139
|
+
autofocus: e.autofocus,
|
|
140
|
+
class: "bb-base-tag__text-input",
|
|
141
|
+
disabled: e.disabled,
|
|
142
|
+
id: e.id,
|
|
143
|
+
placeholder: D.value,
|
|
144
|
+
readonly: e.readonly,
|
|
145
|
+
type: "text",
|
|
146
|
+
onKeyup: A,
|
|
147
|
+
onFocus: M
|
|
148
|
+
}, T, {
|
|
149
|
+
"onUpdate:modelValue": n[0] || (n[0] = (r) => t.value = r),
|
|
150
|
+
ref_key: "input",
|
|
151
|
+
ref: c
|
|
152
|
+
}), null, 16, G), [
|
|
153
|
+
[J, t.value]
|
|
154
|
+
])
|
|
155
|
+
]),
|
|
156
|
+
v(e.$slots, "append")
|
|
157
|
+
], 512),
|
|
158
|
+
v(e.$slots, "append-outer")
|
|
66
159
|
], 2));
|
|
67
160
|
}
|
|
68
161
|
});
|
|
69
162
|
export {
|
|
70
|
-
|
|
163
|
+
te as default
|
|
71
164
|
};
|
|
72
165
|
//# sourceMappingURL=index237.js.map
|
package/dist/index237.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index237.js","sources":["../src/components/BbToast/BbToastMessage.vue?vue&type=script&setup=true&lang.ts"],"sourcesContent":["import { defineComponent as _defineComponent } from 'vue'\nimport { openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, createElementBlock as _createElementBlock, withCtx as _withCtx, normalizeClass as _normalizeClass } from \"vue\"\n\nconst _hoisted_1 = { class: \"bb-toast-message__icon-container\" }\nconst _hoisted_2 = { class: \"bb-toast-message__content\" }\nconst _hoisted_3 = {\n key: 0,\n class: \"bb-toast-message__title\"\n}\nconst _hoisted_4 = { class: \"bb-toast-message__text\" }\nconst _hoisted_5 = { class: \"bb-toast-message__close\" }\nconst _hoisted_6 = /*#__PURE__*/_createElementVNode(\"svg\", {\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n}, [\n /*#__PURE__*/_createElementVNode(\"path\", {\n d: \"M23 23L1 1M23 1L1 23\",\n stroke: \"currentColor\",\n \"stroke-width\": \"2\",\n \"stroke-linecap\": \"round\"\n })\n], -1)\n\nimport type { Message } from \"../../composables/useToast\";\nimport BaseButton from \"../BaseButton/BaseButton.vue\";\nimport BbIcon from \"../BbIcon/BbIcon.vue\";\n\ntype BbToastMessageEvents = {\n (e: \"click:close\", id: Message[\"id\"]): void;\n};\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'BbToastMessage',\n props: {\n title: {},\n text: {},\n icon: {},\n theme: { default: 'default' },\n id: {},\n showClose: { type: Boolean }\n },\n emits: [\"click:close\"],\n setup(__props: any, { emit: __emit }) {\n\nconst props = __props;\nconst emit = __emit;\n\nconst onClickClose = () => {\n emit(\"click:close\", props.id);\n};\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass([\"bb-toast-message\", { [`bb-toast-message--${_ctx.theme}`]: _ctx.theme }]),\n \"aria-role\": \"alert\",\n \"aria-live\": \"assertive\",\n \"aria-atomic\": \"true\"\n }, [\n _createElementVNode(\"div\", _hoisted_1, [\n (_ctx.icon)\n ? (_openBlock(), _createBlock(BbIcon, {\n key: 0,\n class: \"bb-alert__icon\",\n type: _ctx.icon\n }, null, 8, [\"type\"]))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_2, [\n (_ctx.title)\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_3, _toDisplayString(_ctx.title), 1))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"p\", _hoisted_4, _toDisplayString(_ctx.text), 1)\n ]),\n _createElementVNode(\"div\", _hoisted_5, [\n (_ctx.showClose)\n ? (_openBlock(), _createBlock(BaseButton, {\n key: 0,\n class: \"bb-toast-message__close-btn\",\n onClick: onClickClose,\n block: \"\",\n \"aria-label\": 'Chiudi'\n }, {\n default: _withCtx(() => [\n _hoisted_6\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true)\n ])\n ], 2))\n}\n}\n\n})"],"names":["_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_sfc_main","_defineComponent","__props","__emit","props","emit","onClickClose","_ctx","_cache","_openBlock","_createElementBlock","_normalizeClass","_createElementVNode","_createBlock","BbIcon","_createCommentVNode","_toDisplayString","BaseButton","_withCtx"],"mappings":";;;;;AAGA,MAAMA,IAAa,EAAE,OAAO,sCACtBC,IAAa,EAAE,OAAO,+BACtBC,IAAa;AAAA,EACjB,KAAK;AAAA,EACL,OAAO;AACT,GACMC,IAAa,EAAE,OAAO,4BACtBC,IAAa,EAAE,OAAO,6BACtBC,sBAA8C,OAAO;AAAA,EACzD,SAAS;AAAA,EACT,MAAM;AAAA,EACN,OAAO;AACT,GAAG;AAAA,oBACgC,QAAQ;AAAA,IACvC,GAAG;AAAA,IACH,QAAQ;AAAA,IACR,gBAAgB;AAAA,IAChB,kBAAkB;AAAA,EAAA,CACnB;AACH,GAAG,EAAE,GAUuBC,IAAiBC,gBAAAA,EAAA;AAAA,EAC3C,QAAQ;AAAA,EACR,OAAO;AAAA,IACL,OAAO,CAAC;AAAA,IACR,MAAM,CAAC;AAAA,IACP,MAAM,CAAC;AAAA,IACP,OAAO,EAAE,SAAS,UAAU;AAAA,IAC5B,IAAI,CAAC;AAAA,IACL,WAAW,EAAE,MAAM,QAAQ;AAAA,EAC7B;AAAA,EACA,OAAO,CAAC,aAAa;AAAA,EACrB,MAAMC,GAAc,EAAE,MAAMC,KAAU;AAExC,UAAMC,IAAQF,GACRG,IAAOF,GAEPG,IAAe,MAAM;AACpB,MAAAD,EAAA,eAAeD,EAAM,EAAE;AAAA,IAAA;AAGvB,WAAA,CAACG,GAAUC,OACRC,EAAA,GAAcC,EAAoB,OAAO;AAAA,MAC/C,OAAOC,EAAgB,CAAC,oBAAoB,EAAE,CAAC,qBAAqBJ,EAAK,KAAK,EAAE,GAAGA,EAAK,MAAO,CAAA,CAAC;AAAA,MAChG,aAAa;AAAA,MACb,aAAa;AAAA,MACb,eAAe;AAAA,IAAA,GACd;AAAA,MACDK,EAAoB,OAAOlB,GAAY;AAAA,QACpCa,EAAK,QACDE,KAAcI,EAAaC,GAAQ;AAAA,UAClC,KAAK;AAAA,UACL,OAAO;AAAA,UACP,MAAMP,EAAK;AAAA,QAAA,GACV,MAAM,GAAG,CAAC,MAAM,CAAC,KACpBQ,EAAoB,IAAI,EAAI;AAAA,MAAA,CACjC;AAAA,MACDH,EAAoB,OAAOjB,GAAY;AAAA,QACpCY,EAAK,SACDE,EAAW,GAAGC,EAAoB,KAAKd,GAAYoB,EAAiBT,EAAK,KAAK,GAAG,CAAC,KACnFQ,EAAoB,IAAI,EAAI;AAAA,QAChCH,EAAoB,KAAKf,GAAYmB,EAAiBT,EAAK,IAAI,GAAG,CAAC;AAAA,MAAA,CACpE;AAAA,MACDK,EAAoB,OAAOd,GAAY;AAAA,QACpCS,EAAK,aACDE,KAAcI,EAAaI,GAAY;AAAA,UACtC,KAAK;AAAA,UACL,OAAO;AAAA,UACP,SAASX;AAAA,UACT,OAAO;AAAA,UACP,cAAc;AAAA,QAAA,GACb;AAAA,UACD,SAASY,EAAS,MAAM;AAAA,YACtBnB;AAAA,UAAA,CACD;AAAA,UACD,GAAG;AAAA,QAAA,CACJ,KACDgB,EAAoB,IAAI,EAAI;AAAA,MAAA,CACjC;AAAA,OACA,CAAC;AAAA,EAEN;AAEA,CAAC;"}
|
|
1
|
+
{"version":3,"file":"index237.js","sources":["../src/components/BaseTag/BaseTag.vue?vue&type=script&setup=true&lang.ts"],"sourcesContent":["import { defineComponent as _defineComponent } from 'vue'\nimport { renderSlot as _renderSlot, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, createCommentVNode as _createCommentVNode, createBlock as _createBlock, vModelDynamic as _vModelDynamic, mergeProps as _mergeProps, createElementVNode as _createElementVNode, withDirectives as _withDirectives } from \"vue\"\n\nconst _hoisted_1 = { class: \"bb-base-tag__input-container\" }\nconst _hoisted_2 = [\"autocomplete\", \"autofocus\", \"disabled\", \"id\", \"placeholder\", \"readonly\"]\n\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 /**\n * Guides to the browser as to the type of information expected in the field.\n */\n autocomplete?: InputHTMLAttributes[\"autocomplete\"];\n\n /**\n * Sets autofocus on page load.\n */\n autofocus?: InputHTMLAttributes[\"autofocus\"];\n\n /**\n * Sets the display model for selected values to a list\n * of comma separated string. In this mode the user\n * cannot deselect an option by pressing the close button.\n */\n comma?: boolean;\n\n /**\n * Disables the component\n */\n disabled?: boolean;\n\n /**\n * The divider key used to separate values from one another. By default it is \"Enter\"\n */\n divider?: KeyboardEvent[\"key\"];\n\n /**\n * Define if the component should be in an error state.\n * It usually attaches a CSS class for styling purposes.\n */\n hasErrors?: boolean;\n\n /**\n * The identifier of the component.\n */\n id?: HTMLAttributes[\"id\"];\n\n /**\n * Used by v-model. Can be any serializable type.\n */\n modelValue: any;\n\n /**\n * Allows the selection of multiple items.\n */\n multiple?: boolean;\n\n /**\n * Defines the name of the input.\n */\n name?: InputHTMLAttributes[\"name\"];\n\n /**\n * String displayed when there's no data.\n */\n placeholder?: InputHTMLAttributes[\"placeholder\"];\n\n /**\n * Sets the input in a readonly state.\n */\n readonly?: InputHTMLAttributes[\"readonly\"];\n};\n\nexport type BaseTagEvents = {\n (e: \"blur\", event: FocusEvent): void;\n\n (e: \"change\", event: Event): void;\n\n (e: \"click\", event: MouseEvent): void;\n\n (e: \"duplicate\", string: string): void;\n\n (e: \"focus\", event: FocusEvent): void;\n\n (e: \"inactive\"): void;\n\n (e: \"input\", event: Event): void;\n\n (e: \"keydown\", event: KeyboardEvent): void;\n\n (e: \"keyup\", event: KeyboardEvent): void;\n\n (e: \"update:modelValue\", value: any): void;\n};\n\nexport type BaseTagSlots = {\n append?: (props: {}) => any;\n\n \"append-outer\"?: (props: {}) => any;\n\n prepend?: (props: {}) => any;\n\n \"prepend-outer\"?: (props: {}) => any;\n};\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'BaseTag',\n props: {\n autocomplete: {},\n autofocus: {},\n comma: { type: Boolean },\n disabled: { type: Boolean },\n divider: { default: \"Enter\" },\n hasErrors: { type: Boolean },\n id: {},\n modelValue: {},\n multiple: { type: Boolean, default: true },\n name: {},\n placeholder: {},\n readonly: {}\n },\n emits: [\"blur\", \"change\", \"click\", \"duplicate\", \"focus\", \"inactive\", \"input\", \"keydown\", \"keyup\", \"update:modelValue\"],\n setup(__props: any, { emit: __emit }) {\n\nconst props = __props;\n\nconst emit = __emit;\n\n\n\nif (props.multiple && !Array.isArray(props.modelValue)) {\n throw 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 return props.placeholder;\n});\n\nconst modelValueNormalized = computed(() =>\n [].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 let map: { [key: string]: number } = {};\n modelValueNormalized.value.forEach((value: any, index: number) => {\n map[JSON.stringify(value)] = index;\n });\n return {\n get: (value: any) => map[JSON.stringify(value)],\n };\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 emit(\"keyup\", event);\n if (props.readonly || props.disabled) {\n event.preventDefault();\n return;\n }\n if (event.key === props.divider) {\n if (query.value[query.value.length - 1] === event.key) {\n query.value = query.value.slice(0, query.value.length - 1);\n }\n if (!query.value) return;\n focusedIndex.value = null;\n const currentIndex = modelValueIndexed.value.get(query.value);\n if (isNil(currentIndex)) selectValue(query.value);\n else emit(\"duplicate\", query.value);\n query.value = \"\";\n } else if (event.key === \"ArrowLeft\") {\n if (focusedIndex.value === null)\n focusedIndex.value = modelValueNormalized.value.length - 1;\n else if (focusedIndex.value === 0) focusedIndex.value = null;\n else focusedIndex.value--;\n } else if (event.key === \"ArrowRight\") {\n if (focusedIndex.value === null) focusedIndex.value = 1;\n else if (focusedIndex.value === modelValueNormalized.value.length - 1)\n focusedIndex.value = null;\n else focusedIndex.value++;\n } else if (event.key === \"Backspace\") {\n if (query.value) return;\n if (isNotNil(focusedIndex.value)) {\n removeValue(focusedIndex.value);\n focusedIndex.value = clamp(\n focusedIndex.value,\n 0,\n modelValueNormalized.value.length - 2\n );\n if (modelValueNormalized.value.length === 1) focusedIndex.value = null;\n } else focusedIndex.value = modelValueNormalized.value.length - 1;\n } else if (event.key === \"Tab\" || event.key === \"Escape\") {\n focusedIndex.value = null;\n }\n};\n\nconst selectValue = (text: string) => {\n if (props.multiple) emit(\"update:modelValue\", props.modelValue.concat(text));\n else emit(\"update:modelValue\", text);\n};\n\nconst removeValue = (indexOrString: number | string) => {\n if (typeof indexOrString === \"number\") {\n if (props.multiple)\n emit(\"update:modelValue\", drop(props.modelValue, 1, indexOrString));\n else emit(\"update:modelValue\", null);\n } else {\n const currentIndex = modelValueIndexed.value.get(query.value);\n removeValue(currentIndex);\n }\n};\n\nconst onInputFocus = (event: FocusEvent) => {\n emit(\"focus\", event);\n active.value = true;\n document.addEventListener(\"click\", onClickOutside);\n document.addEventListener(\"focusin\", onFocusOutside);\n if (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 emit(\"click\", event);\n if (props.disabled || props.readonly) return;\n if (input.value instanceof HTMLElement) {\n input.value.focus();\n }\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 if (event.target instanceof Node) {\n if (outerContainer.value) {\n if (!outerContainer.value.contains(event.target)) {\n emit(\"inactive\");\n document.removeEventListener(\"click\", onClickOutside);\n active.value = false;\n if (props.multiple)\n wait(500).then(() => {\n query.value = \"\";\n });\n return;\n }\n }\n }\n};\n\nconst onFocusOutside = (event: FocusEvent) => {\n if (event.target instanceof Node) {\n if (outerContainer.value) {\n if (!outerContainer.value.contains(event.target)) {\n emit(\"inactive\");\n document.removeEventListener(\"focusin\", onFocusOutside);\n active.value = false;\n if (props.multiple)\n wait(500).then(() => {\n query.value = \"\";\n });\n return;\n }\n }\n }\n};\n\nconst eventListeners = {\n onBlur: (event: FocusEvent) => emit(\"blur\", event),\n onChange: (event: Event) => emit(\"change\", event),\n onKeydown: (event: KeyboardEvent) => {\n if (event.key === \"Enter\" && props.divider === \"Enter\") {\n event.preventDefault();\n }\n emit(\"keydown\", event);\n },\n onInput: (event: Event) => emit(\"input\", event),\n};\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"span\", {\n class: _normalizeClass({\n 'bb-base-tag': true,\n 'bb-base-tag--active': active.value,\n 'bb-base-tag--disabled': _ctx.disabled,\n 'bb-base-tag--errors': _ctx.hasErrors,\n 'bb-base-tag--readonly': _ctx.readonly,\n }),\n onClick: onOuterContainerClick,\n ref_key: \"outerContainer\",\n ref: outerContainer\n }, [\n _renderSlot(_ctx.$slots, \"prepend-outer\"),\n _createElementVNode(\"span\", {\n class: \"bb-base-tag__inner-container\",\n ref_key: \"innerContainer\",\n ref: innerContainer\n }, [\n _renderSlot(_ctx.$slots, \"prepend\"),\n _createElementVNode(\"span\", _hoisted_1, [\n (_ctx.comma)\n ? (_openBlock(true), _createElementBlock(_Fragment, { key: 0 }, _renderList(modelValueNormalized.value, (option, index) => {\n return (_openBlock(), _createElementBlock(\"span\", {\n class: _normalizeClass({\n 'bb-base-tag__selected': true,\n 'bb-base-tag__selected--comma': true,\n 'bb-base-tag__selected--focused': index === focusedIndex.value,\n }),\n key: option\n }, _toDisplayString(option) + _toDisplayString(index < modelValueNormalized.value.length - 1 ? \",\" : \"\"), 3))\n }), 128))\n : (_openBlock(true), _createElementBlock(_Fragment, { key: 1 }, _renderList(modelValueNormalized.value, (option, index) => {\n return (_openBlock(), _createBlock(BbChip, {\n class: _normalizeClass({\n 'bb-base-tag__selected': true,\n 'bb-base-tag__selected--chip': true,\n 'bb-base-tag__selected--focused': index === focusedIndex.value,\n }),\n clearable: true,\n key: option,\n text: option,\n \"onClick:clear\": ($event: any) => (removeValue(index))\n }, null, 8, [\"class\", \"text\", \"onClick:clear\"]))\n }), 128)),\n _withDirectives(_createElementVNode(\"input\", _mergeProps({\n autocomplete: _ctx.autocomplete,\n autofocus: _ctx.autofocus,\n class: 'bb-base-tag__text-input',\n disabled: _ctx.disabled,\n id: _ctx.id,\n placeholder: computedPlaceholder.value,\n readonly: _ctx.readonly,\n type: 'text',\n onKeyup: onInputKeyup,\n onFocus: onInputFocus\n }, eventListeners, {\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((query).value = $event)),\n ref_key: \"input\",\n ref: input\n }), null, 16, _hoisted_2), [\n [_vModelDynamic, query.value]\n ])\n ]),\n _renderSlot(_ctx.$slots, \"append\")\n ], 512),\n _renderSlot(_ctx.$slots, \"append-outer\")\n ], 2))\n}\n}\n\n})"],"names":["_hoisted_1","_hoisted_2","_sfc_main","_defineComponent","__props","__emit","props","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","_ctx","_cache","_openBlock","_createElementBlock","_normalizeClass","_renderSlot","_createElementVNode","_Fragment","_renderList","option","_toDisplayString","_createBlock","BbChip","$event","_withDirectives","_mergeProps","_vModelDynamic"],"mappings":"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"}
|
package/dist/index238.js
CHANGED
|
@@ -1,165 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
import { clamp as P } from "./index206.js";
|
|
3
|
-
import { drop as q } from "./index254.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 "./index157.js";
|
|
9
|
-
const j = { class: "bb-base-tag__input-container" }, G = ["autocomplete", "autofocus", "disabled", "id", "placeholder", "readonly"], te = /* @__PURE__ */ K({
|
|
10
|
-
__name: "BaseTag",
|
|
11
|
-
props: {
|
|
12
|
-
autocomplete: {},
|
|
13
|
-
autofocus: {},
|
|
14
|
-
comma: { type: Boolean },
|
|
15
|
-
disabled: { type: Boolean },
|
|
16
|
-
divider: { default: "Enter" },
|
|
17
|
-
hasErrors: { type: Boolean },
|
|
18
|
-
id: {},
|
|
19
|
-
modelValue: {},
|
|
20
|
-
multiple: { type: Boolean, default: !0 },
|
|
21
|
-
name: {},
|
|
22
|
-
placeholder: {},
|
|
23
|
-
readonly: {}
|
|
24
|
-
},
|
|
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)
|
|
98
|
-
};
|
|
99
|
-
return (e, n) => (p(), m("span", {
|
|
100
|
-
class: g({
|
|
101
|
-
"bb-base-tag": !0,
|
|
102
|
-
"bb-base-tag--active": f.value,
|
|
103
|
-
"bb-base-tag--disabled": e.disabled,
|
|
104
|
-
"bb-base-tag--errors": e.hasErrors,
|
|
105
|
-
"bb-base-tag--readonly": e.readonly
|
|
106
|
-
}),
|
|
107
|
-
onClick: O,
|
|
108
|
-
ref_key: "outerContainer",
|
|
109
|
-
ref: i
|
|
110
|
-
}, [
|
|
111
|
-
v(e.$slots, "prepend-outer"),
|
|
112
|
-
k("span", {
|
|
113
|
-
class: "bb-base-tag__inner-container",
|
|
114
|
-
ref_key: "innerContainer",
|
|
115
|
-
ref: $
|
|
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
|
-
class: g({
|
|
121
|
-
"bb-base-tag__selected": !0,
|
|
122
|
-
"bb-base-tag__selected--comma": !0,
|
|
123
|
-
"bb-base-tag__selected--focused": d === l.value
|
|
124
|
-
}),
|
|
125
|
-
key: r
|
|
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
|
-
class: g({
|
|
128
|
-
"bb-base-tag__selected": !0,
|
|
129
|
-
"bb-base-tag__selected--chip": !0,
|
|
130
|
-
"bb-base-tag__selected--focused": d === l.value
|
|
131
|
-
}),
|
|
132
|
-
clearable: !0,
|
|
133
|
-
key: r,
|
|
134
|
-
text: r,
|
|
135
|
-
"onClick:clear": (Q) => b(d)
|
|
136
|
-
}, null, 8, ["class", "text", "onClick:clear"]))), 128)),
|
|
137
|
-
z(k("input", H({
|
|
138
|
-
autocomplete: e.autocomplete,
|
|
139
|
-
autofocus: e.autofocus,
|
|
140
|
-
class: "bb-base-tag__text-input",
|
|
141
|
-
disabled: e.disabled,
|
|
142
|
-
id: e.id,
|
|
143
|
-
placeholder: D.value,
|
|
144
|
-
readonly: e.readonly,
|
|
145
|
-
type: "text",
|
|
146
|
-
onKeyup: A,
|
|
147
|
-
onFocus: M
|
|
148
|
-
}, T, {
|
|
149
|
-
"onUpdate:modelValue": n[0] || (n[0] = (r) => t.value = r),
|
|
150
|
-
ref_key: "input",
|
|
151
|
-
ref: c
|
|
152
|
-
}), null, 16, G), [
|
|
153
|
-
[J, t.value]
|
|
154
|
-
])
|
|
155
|
-
]),
|
|
156
|
-
v(e.$slots, "append")
|
|
157
|
-
], 512),
|
|
158
|
-
v(e.$slots, "append-outer")
|
|
159
|
-
], 2));
|
|
160
|
-
}
|
|
161
|
-
});
|
|
1
|
+
const e = "";
|
|
162
2
|
export {
|
|
163
|
-
|
|
3
|
+
e as default
|
|
164
4
|
};
|
|
165
5
|
//# sourceMappingURL=index238.js.map
|
package/dist/index238.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index238.js","sources":["../src/components/BaseTag/BaseTag.vue?vue&type=script&setup=true&lang.ts"],"sourcesContent":["import { defineComponent as _defineComponent } from 'vue'\nimport { renderSlot as _renderSlot, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, createCommentVNode as _createCommentVNode, createBlock as _createBlock, vModelDynamic as _vModelDynamic, mergeProps as _mergeProps, createElementVNode as _createElementVNode, withDirectives as _withDirectives } from \"vue\"\n\nconst _hoisted_1 = { class: \"bb-base-tag__input-container\" }\nconst _hoisted_2 = [\"autocomplete\", \"autofocus\", \"disabled\", \"id\", \"placeholder\", \"readonly\"]\n\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 /**\n * Guides to the browser as to the type of information expected in the field.\n */\n autocomplete?: InputHTMLAttributes[\"autocomplete\"];\n\n /**\n * Sets autofocus on page load.\n */\n autofocus?: InputHTMLAttributes[\"autofocus\"];\n\n /**\n * Sets the display model for selected values to a list\n * of comma separated string. In this mode the user\n * cannot deselect an option by pressing the close button.\n */\n comma?: boolean;\n\n /**\n * Disables the component\n */\n disabled?: boolean;\n\n /**\n * The divider key used to separate values from one another. By default it is \"Enter\"\n */\n divider?: KeyboardEvent[\"key\"];\n\n /**\n * Define if the component should be in an error state.\n * It usually attaches a CSS class for styling purposes.\n */\n hasErrors?: boolean;\n\n /**\n * The identifier of the component.\n */\n id?: HTMLAttributes[\"id\"];\n\n /**\n * Used by v-model. Can be any serializable type.\n */\n modelValue: any;\n\n /**\n * Allows the selection of multiple items.\n */\n multiple?: boolean;\n\n /**\n * Defines the name of the input.\n */\n name?: InputHTMLAttributes[\"name\"];\n\n /**\n * String displayed when there's no data.\n */\n placeholder?: InputHTMLAttributes[\"placeholder\"];\n\n /**\n * Sets the input in a readonly state.\n */\n readonly?: InputHTMLAttributes[\"readonly\"];\n};\n\nexport type BaseTagEvents = {\n (e: \"blur\", event: FocusEvent): void;\n\n (e: \"change\", event: Event): void;\n\n (e: \"click\", event: MouseEvent): void;\n\n (e: \"duplicate\", string: string): void;\n\n (e: \"focus\", event: FocusEvent): void;\n\n (e: \"inactive\"): void;\n\n (e: \"input\", event: Event): void;\n\n (e: \"keydown\", event: KeyboardEvent): void;\n\n (e: \"keyup\", event: KeyboardEvent): void;\n\n (e: \"update:modelValue\", value: any): void;\n};\n\nexport type BaseTagSlots = {\n append?: (props: {}) => any;\n\n \"append-outer\"?: (props: {}) => any;\n\n prepend?: (props: {}) => any;\n\n \"prepend-outer\"?: (props: {}) => any;\n};\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'BaseTag',\n props: {\n autocomplete: {},\n autofocus: {},\n comma: { type: Boolean },\n disabled: { type: Boolean },\n divider: { default: \"Enter\" },\n hasErrors: { type: Boolean },\n id: {},\n modelValue: {},\n multiple: { type: Boolean, default: true },\n name: {},\n placeholder: {},\n readonly: {}\n },\n emits: [\"blur\", \"change\", \"click\", \"duplicate\", \"focus\", \"inactive\", \"input\", \"keydown\", \"keyup\", \"update:modelValue\"],\n setup(__props: any, { emit: __emit }) {\n\nconst props = __props;\n\nconst emit = __emit;\n\n\n\nif (props.multiple && !Array.isArray(props.modelValue)) {\n throw 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 return props.placeholder;\n});\n\nconst modelValueNormalized = computed(() =>\n [].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 let map: { [key: string]: number } = {};\n modelValueNormalized.value.forEach((value: any, index: number) => {\n map[JSON.stringify(value)] = index;\n });\n return {\n get: (value: any) => map[JSON.stringify(value)],\n };\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 emit(\"keyup\", event);\n if (props.readonly || props.disabled) {\n event.preventDefault();\n return;\n }\n if (event.key === props.divider) {\n if (query.value[query.value.length - 1] === event.key) {\n query.value = query.value.slice(0, query.value.length - 1);\n }\n if (!query.value) return;\n focusedIndex.value = null;\n const currentIndex = modelValueIndexed.value.get(query.value);\n if (isNil(currentIndex)) selectValue(query.value);\n else emit(\"duplicate\", query.value);\n query.value = \"\";\n } else if (event.key === \"ArrowLeft\") {\n if (focusedIndex.value === null)\n focusedIndex.value = modelValueNormalized.value.length - 1;\n else if (focusedIndex.value === 0) focusedIndex.value = null;\n else focusedIndex.value--;\n } else if (event.key === \"ArrowRight\") {\n if (focusedIndex.value === null) focusedIndex.value = 1;\n else if (focusedIndex.value === modelValueNormalized.value.length - 1)\n focusedIndex.value = null;\n else focusedIndex.value++;\n } else if (event.key === \"Backspace\") {\n if (query.value) return;\n if (isNotNil(focusedIndex.value)) {\n removeValue(focusedIndex.value);\n focusedIndex.value = clamp(\n focusedIndex.value,\n 0,\n modelValueNormalized.value.length - 2\n );\n if (modelValueNormalized.value.length === 1) focusedIndex.value = null;\n } else focusedIndex.value = modelValueNormalized.value.length - 1;\n } else if (event.key === \"Tab\" || event.key === \"Escape\") {\n focusedIndex.value = null;\n }\n};\n\nconst selectValue = (text: string) => {\n if (props.multiple) emit(\"update:modelValue\", props.modelValue.concat(text));\n else emit(\"update:modelValue\", text);\n};\n\nconst removeValue = (indexOrString: number | string) => {\n if (typeof indexOrString === \"number\") {\n if (props.multiple)\n emit(\"update:modelValue\", drop(props.modelValue, 1, indexOrString));\n else emit(\"update:modelValue\", null);\n } else {\n const currentIndex = modelValueIndexed.value.get(query.value);\n removeValue(currentIndex);\n }\n};\n\nconst onInputFocus = (event: FocusEvent) => {\n emit(\"focus\", event);\n active.value = true;\n document.addEventListener(\"click\", onClickOutside);\n document.addEventListener(\"focusin\", onFocusOutside);\n if (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 emit(\"click\", event);\n if (props.disabled || props.readonly) return;\n if (input.value instanceof HTMLElement) {\n input.value.focus();\n }\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 if (event.target instanceof Node) {\n if (outerContainer.value) {\n if (!outerContainer.value.contains(event.target)) {\n emit(\"inactive\");\n document.removeEventListener(\"click\", onClickOutside);\n active.value = false;\n if (props.multiple)\n wait(500).then(() => {\n query.value = \"\";\n });\n return;\n }\n }\n }\n};\n\nconst onFocusOutside = (event: FocusEvent) => {\n if (event.target instanceof Node) {\n if (outerContainer.value) {\n if (!outerContainer.value.contains(event.target)) {\n emit(\"inactive\");\n document.removeEventListener(\"focusin\", onFocusOutside);\n active.value = false;\n if (props.multiple)\n wait(500).then(() => {\n query.value = \"\";\n });\n return;\n }\n }\n }\n};\n\nconst eventListeners = {\n onBlur: (event: FocusEvent) => emit(\"blur\", event),\n onChange: (event: Event) => emit(\"change\", event),\n onKeydown: (event: KeyboardEvent) => {\n if (event.key === \"Enter\" && props.divider === \"Enter\") {\n event.preventDefault();\n }\n emit(\"keydown\", event);\n },\n onInput: (event: Event) => emit(\"input\", event),\n};\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"span\", {\n class: _normalizeClass({\n 'bb-base-tag': true,\n 'bb-base-tag--active': active.value,\n 'bb-base-tag--disabled': _ctx.disabled,\n 'bb-base-tag--errors': _ctx.hasErrors,\n 'bb-base-tag--readonly': _ctx.readonly,\n }),\n onClick: onOuterContainerClick,\n ref_key: \"outerContainer\",\n ref: outerContainer\n }, [\n _renderSlot(_ctx.$slots, \"prepend-outer\"),\n _createElementVNode(\"span\", {\n class: \"bb-base-tag__inner-container\",\n ref_key: \"innerContainer\",\n ref: innerContainer\n }, [\n _renderSlot(_ctx.$slots, \"prepend\"),\n _createElementVNode(\"span\", _hoisted_1, [\n (_ctx.comma)\n ? (_openBlock(true), _createElementBlock(_Fragment, { key: 0 }, _renderList(modelValueNormalized.value, (option, index) => {\n return (_openBlock(), _createElementBlock(\"span\", {\n class: _normalizeClass({\n 'bb-base-tag__selected': true,\n 'bb-base-tag__selected--comma': true,\n 'bb-base-tag__selected--focused': index === focusedIndex.value,\n }),\n key: option\n }, _toDisplayString(option) + _toDisplayString(index < modelValueNormalized.value.length - 1 ? \",\" : \"\"), 3))\n }), 128))\n : (_openBlock(true), _createElementBlock(_Fragment, { key: 1 }, _renderList(modelValueNormalized.value, (option, index) => {\n return (_openBlock(), _createBlock(BbChip, {\n class: _normalizeClass({\n 'bb-base-tag__selected': true,\n 'bb-base-tag__selected--chip': true,\n 'bb-base-tag__selected--focused': index === focusedIndex.value,\n }),\n clearable: true,\n key: option,\n text: option,\n \"onClick:clear\": ($event: any) => (removeValue(index))\n }, null, 8, [\"class\", \"text\", \"onClick:clear\"]))\n }), 128)),\n _withDirectives(_createElementVNode(\"input\", _mergeProps({\n autocomplete: _ctx.autocomplete,\n autofocus: _ctx.autofocus,\n class: 'bb-base-tag__text-input',\n disabled: _ctx.disabled,\n id: _ctx.id,\n placeholder: computedPlaceholder.value,\n readonly: _ctx.readonly,\n type: 'text',\n onKeyup: onInputKeyup,\n onFocus: onInputFocus\n }, eventListeners, {\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((query).value = $event)),\n ref_key: \"input\",\n ref: input\n }), null, 16, _hoisted_2), [\n [_vModelDynamic, query.value]\n ])\n ]),\n _renderSlot(_ctx.$slots, \"append\")\n ], 512),\n _renderSlot(_ctx.$slots, \"append-outer\")\n ], 2))\n}\n}\n\n})"],"names":["_hoisted_1","_hoisted_2","_sfc_main","_defineComponent","__props","__emit","props","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","_ctx","_cache","_openBlock","_createElementBlock","_normalizeClass","_renderSlot","_createElementVNode","_Fragment","_renderList","option","_toDisplayString","_createBlock","BbChip","$event","_withDirectives","_mergeProps","_vModelDynamic"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index238.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
package/dist/index239.js
CHANGED