bitboss-ui 0.2.20 → 0.2.22
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/components/BbDropzone/BbDropzone.vue.d.ts +2 -0
- 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 +3 -3
- 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/index125.js +1 -1
- package/dist/index126.js +1 -1
- package/dist/index127.js +1 -1
- package/dist/index131.js +2 -2
- package/dist/index15.js +8 -8
- package/dist/index17.js +9 -9
- package/dist/index19.js +3 -3
- package/dist/index197.js +214 -357
- package/dist/index197.js.map +1 -1
- package/dist/index198.js +2 -134
- package/dist/index198.js.map +1 -1
- package/dist/index199.js +378 -5
- package/dist/index199.js.map +1 -1
- package/dist/index200.js +2 -19
- package/dist/index200.js.map +1 -1
- package/dist/index201.js +2 -2
- package/dist/index201.js.map +1 -1
- package/dist/index202.js +6 -2
- package/dist/index202.js.map +1 -1
- package/dist/index203.js +4 -174
- package/dist/index203.js.map +1 -1
- package/dist/index204.js +373 -23
- package/dist/index204.js.map +1 -1
- package/dist/index205.js +3 -373
- package/dist/index205.js.map +1 -1
- package/dist/index206.js +3 -16
- package/dist/index206.js.map +1 -1
- package/dist/index207.js +3 -16
- package/dist/index207.js.map +1 -1
- package/dist/index208.js +35 -20
- package/dist/index208.js.map +1 -1
- package/dist/index209.js +5 -29
- package/dist/index209.js.map +1 -1
- package/dist/index21.js +2 -2
- package/dist/index210.js +16 -8
- package/dist/index210.js.map +1 -1
- package/dist/index211.js +16 -2
- package/dist/index211.js.map +1 -1
- package/dist/index212.js +19 -3
- package/dist/index212.js.map +1 -1
- package/dist/index213.js +20 -35
- package/dist/index213.js.map +1 -1
- package/dist/index214.js +29 -6
- package/dist/index214.js.map +1 -1
- package/dist/index215.js +8 -2
- package/dist/index215.js.map +1 -1
- package/dist/index216.js +134 -4
- package/dist/index216.js.map +1 -1
- package/dist/index217.js +2 -3
- package/dist/index217.js.map +1 -1
- package/dist/index218.js +174 -3
- package/dist/index218.js.map +1 -1
- package/dist/index219.js +23 -2
- package/dist/index219.js.map +1 -1
- package/dist/index220.js +2 -10
- package/dist/index220.js.map +1 -1
- package/dist/index221.js +8 -233
- package/dist/index221.js.map +1 -1
- package/dist/index223.js +4 -4
- package/dist/index224.js +1 -1
- package/dist/index226.js +1 -1
- package/dist/index227.js +4 -6
- package/dist/index227.js.map +1 -1
- package/dist/index228.js +224 -2
- package/dist/index228.js.map +1 -1
- package/dist/index229.js +257 -294
- package/dist/index229.js.map +1 -1
- package/dist/index230.js +435 -2
- package/dist/index230.js.map +1 -1
- package/dist/index231.js +89 -2
- package/dist/index231.js.map +1 -1
- package/dist/index232.js +199 -116
- package/dist/index232.js.map +1 -1
- package/dist/index233.js +111 -100
- package/dist/index233.js.map +1 -1
- package/dist/index234.js +106 -2
- package/dist/index234.js.map +1 -1
- package/dist/index235.js +295 -2
- package/dist/index235.js.map +1 -1
- package/dist/index236.js +6 -2
- package/dist/index236.js.map +1 -1
- package/dist/index237.js +2 -2
- package/dist/index238.js +2 -435
- package/dist/index238.js.map +1 -1
- package/dist/index239.js +2 -89
- package/dist/index239.js.map +1 -1
- package/dist/index240.js +2 -224
- package/dist/index240.js.map +1 -1
- package/dist/index241.js +2 -258
- package/dist/index241.js.map +1 -1
- package/dist/index242.js +2 -4
- package/dist/index242.js.map +1 -1
- package/dist/index243.js +2 -200
- package/dist/index243.js.map +1 -1
- package/dist/index244.js +162 -2
- package/dist/index244.js.map +1 -1
- package/dist/index245.js +2 -15
- package/dist/index245.js.map +1 -1
- package/dist/index246.js +2 -162
- package/dist/index246.js.map +1 -1
- package/dist/index247.js +69 -2
- package/dist/index247.js.map +1 -1
- package/dist/index248.js +2 -2
- package/dist/index248.js.map +1 -1
- package/dist/index249.js +2 -69
- package/dist/index249.js.map +1 -1
- package/dist/index25.js +2 -2
- package/dist/index253.js +15 -2
- package/dist/index253.js.map +1 -1
- package/dist/index254.js +2 -2
- package/dist/index255.js +1 -1
- package/dist/index29.js +3 -3
- package/dist/index31.js +6 -6
- package/dist/index33.js +1 -1
- package/dist/index35.js +2 -2
- package/dist/index47.js +1 -1
- package/dist/index49.js +1 -1
- package/dist/index65.js +3 -3
- package/dist/index69.js +109 -103
- package/dist/index69.js.map +1 -1
- package/dist/index72.js +1 -1
- package/dist/index75.js +1 -1
- package/dist/index79.js +61 -58
- package/dist/index79.js.map +1 -1
- package/dist/index99.js +53 -52
- package/dist/index99.js.map +1 -1
- package/dist/style.css +1 -1
- package/package.json +1 -1
package/dist/index69.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { defineComponent as
|
|
2
|
-
import { findInTree as
|
|
3
|
-
import { useId as
|
|
4
|
-
import
|
|
1
|
+
import { defineComponent as j, ref as g, watch as x, computed as m, openBlock as V, createBlock as G, resolveDynamicComponent as K, normalizeClass as O, withCtx as M, createElementVNode as c, withModifiers as y, renderSlot as U, normalizeProps as Y, guardReactiveProps as Z, createTextVNode as J, unref as Q, createVNode as W, createElementBlock as F, Fragment as X, renderList as ee, toDisplayString as te } from "vue";
|
|
2
|
+
import { findInTree as ae } from "./index225.js";
|
|
3
|
+
import { useId as re } from "./index7.js";
|
|
4
|
+
import oe from "./index118.js";
|
|
5
5
|
import "./index183.js";
|
|
6
|
-
const
|
|
6
|
+
const le = ["accept", "autofocus", "disabled", "multiple"], se = {
|
|
7
7
|
class: "bb-dropzone__submittable-label",
|
|
8
8
|
"aria-hidden": "true"
|
|
9
|
-
},
|
|
9
|
+
}, ne = ["id", "name", "multiple", "disabled"], ie = { class: "bb-dropzone__errors" }, fe = /* @__PURE__ */ j({
|
|
10
10
|
__name: "BbDropzone",
|
|
11
11
|
props: {
|
|
12
12
|
autofocus: {},
|
|
@@ -23,116 +23,122 @@ const re = ["accept", "autofocus", "disabled", "multiple"], ae = {
|
|
|
23
23
|
tag: { default: "div" }
|
|
24
24
|
},
|
|
25
25
|
emits: ["blur", "error", "focus", "update:modelValue"],
|
|
26
|
-
setup(
|
|
27
|
-
let
|
|
28
|
-
const
|
|
29
|
-
if (
|
|
26
|
+
setup(D, { emit: C }) {
|
|
27
|
+
let b;
|
|
28
|
+
const t = D, l = C, d = g(null);
|
|
29
|
+
if (t.accept && !Array.isArray(t.accept))
|
|
30
30
|
throw new Error("Property accept is not an array");
|
|
31
|
-
if (
|
|
31
|
+
if (t.multiple && !Array.isArray(t.modelValue))
|
|
32
32
|
throw new Error(
|
|
33
33
|
"Component is set to multiple but modelValue is not an array"
|
|
34
34
|
);
|
|
35
|
-
|
|
36
|
-
|
|
35
|
+
const h = g(!1), I = (e) => {
|
|
36
|
+
h.value = !0, l("focus", e);
|
|
37
|
+
}, L = (e) => {
|
|
38
|
+
h.value = !1, l("blur", e);
|
|
39
|
+
};
|
|
40
|
+
x(
|
|
41
|
+
() => t.modelValue,
|
|
37
42
|
() => {
|
|
38
43
|
let e = new DataTransfer();
|
|
39
|
-
Array.isArray(
|
|
44
|
+
Array.isArray(t.modelValue) ? t.modelValue.length && t.modelValue.forEach((a) => e.items.add(a)) : t.modelValue && e.items.add(t.modelValue), d.value && (e.items.length ? d.value.files = e.files : d.value.files = null);
|
|
40
45
|
}
|
|
41
46
|
);
|
|
42
|
-
const
|
|
43
|
-
() =>
|
|
47
|
+
const p = g([]), P = m(
|
|
48
|
+
() => p.value.join(",")
|
|
44
49
|
);
|
|
45
|
-
|
|
46
|
-
() =>
|
|
50
|
+
x(
|
|
51
|
+
() => t.accept,
|
|
47
52
|
async () => {
|
|
48
|
-
if (
|
|
53
|
+
if (t.accept) {
|
|
49
54
|
let e = [];
|
|
50
|
-
for (let
|
|
51
|
-
const
|
|
52
|
-
if (
|
|
53
|
-
e.push(
|
|
55
|
+
for (let a = 0; a < t.accept.length; a++) {
|
|
56
|
+
const r = t.accept[a];
|
|
57
|
+
if (r.includes("/"))
|
|
58
|
+
e.push(r);
|
|
54
59
|
else {
|
|
55
|
-
|
|
56
|
-
const o =
|
|
60
|
+
b || (b = await import("./index224.js").then((s) => s.i));
|
|
61
|
+
const o = b.getType(r);
|
|
57
62
|
if (!o)
|
|
58
63
|
throw new Error(
|
|
59
|
-
`Could not detect the correct mime associated with ${
|
|
64
|
+
`Could not detect the correct mime associated with ${r}`
|
|
60
65
|
);
|
|
61
66
|
e.push(o);
|
|
62
67
|
}
|
|
63
68
|
}
|
|
64
|
-
|
|
69
|
+
p.value = e;
|
|
65
70
|
}
|
|
66
71
|
},
|
|
67
72
|
{ immediate: !0 }
|
|
68
73
|
);
|
|
69
|
-
const
|
|
70
|
-
let
|
|
71
|
-
const
|
|
74
|
+
const z = t.id || `${re().id.value}`, v = `bb_dz_${z}`, i = g(!1);
|
|
75
|
+
let T;
|
|
76
|
+
const k = m(() => ({
|
|
72
77
|
"bb-dropzone": !0,
|
|
73
|
-
"bb-dropzone--errors":
|
|
74
|
-
"bb-dropzone--dragging":
|
|
75
|
-
})),
|
|
76
|
-
dragging:
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
78
|
+
"bb-dropzone--errors": R.value,
|
|
79
|
+
"bb-dropzone--dragging": i.value
|
|
80
|
+
})), q = m(() => ({
|
|
81
|
+
dragging: i.value,
|
|
82
|
+
focused: h.value,
|
|
83
|
+
id: z
|
|
84
|
+
})), $ = (e) => {
|
|
85
|
+
if (i.value = !1, e.dataTransfer) {
|
|
80
86
|
e.stopImmediatePropagation();
|
|
81
|
-
let
|
|
82
|
-
if (
|
|
83
|
-
const
|
|
84
|
-
|
|
87
|
+
let a;
|
|
88
|
+
if (a = Array.from(e.dataTransfer.files), a = _(a), t.multiple ? Array.isArray(t.modelValue) && l("update:modelValue", [...t.modelValue, ...a]) : (a = a[0], l("update:modelValue", a)), e.currentTarget instanceof HTMLLabelElement) {
|
|
89
|
+
const r = e.currentTarget.querySelector("input[type=file]");
|
|
90
|
+
r instanceof HTMLInputElement && r.focus();
|
|
85
91
|
}
|
|
86
92
|
}
|
|
87
|
-
},
|
|
93
|
+
}, H = (e) => {
|
|
88
94
|
if (e.target instanceof HTMLInputElement) {
|
|
89
95
|
if (e.target.files) {
|
|
90
|
-
let
|
|
91
|
-
|
|
96
|
+
let a;
|
|
97
|
+
a = _(Array.from(e.target.files)), t.multiple ? Array.isArray(t.modelValue) && l("update:modelValue", [...t.modelValue, ...a]) : (a = a[0], l("update:modelValue", a));
|
|
92
98
|
}
|
|
93
99
|
e.target.value = "", e.target.files = null;
|
|
94
100
|
}
|
|
95
|
-
},
|
|
96
|
-
if (
|
|
97
|
-
return l("error", f.maxSize(
|
|
101
|
+
}, _ = (e) => e.filter((a, r) => {
|
|
102
|
+
if (t.maxSize && !(a.size <= t.maxSize))
|
|
103
|
+
return l("error", f.maxSize(a)), !1;
|
|
98
104
|
let o = !1;
|
|
99
|
-
return
|
|
100
|
-
(s) => S(s,
|
|
101
|
-
) : o = S(
|
|
105
|
+
return t.modelValue && (Array.isArray(t.modelValue) ? o = t.modelValue.some(
|
|
106
|
+
(s) => S(s, a)
|
|
107
|
+
) : o = S(t.modelValue, a)), o ? (l("error", f.uniqueness(a)), !1) : t.accept && !p.value.some((n) => {
|
|
102
108
|
let u = !1;
|
|
103
|
-
return
|
|
104
|
-
}) ? (l("error", f.accept(
|
|
109
|
+
return n.includes("*") ? u = u || n.split("/")[0] === a.type.split("/")[0] : u = u || n === a.type, u;
|
|
110
|
+
}) ? (l("error", f.accept(a)), !1) : t.maxFiles && Array.isArray(t.modelValue) && t.modelValue.length + r + 1 > t.maxFiles ? (l(
|
|
105
111
|
"error",
|
|
106
|
-
f.maxFiles(
|
|
112
|
+
f.maxFiles(a, t.modelValue.length + r + 1)
|
|
107
113
|
), !1) : !0;
|
|
108
|
-
}),
|
|
109
|
-
const
|
|
110
|
-
if (
|
|
111
|
-
const
|
|
112
|
-
[
|
|
114
|
+
}), N = (e) => {
|
|
115
|
+
const a = e.target;
|
|
116
|
+
if (a instanceof HTMLElement) {
|
|
117
|
+
const r = ae(
|
|
118
|
+
[a],
|
|
113
119
|
"parentElement",
|
|
114
120
|
(o) => o.classList.contains("bb-dropzone")
|
|
115
121
|
);
|
|
116
|
-
|
|
122
|
+
r && (r.id === v ? B() : E());
|
|
117
123
|
}
|
|
118
124
|
}, B = () => {
|
|
119
|
-
clearTimeout(
|
|
125
|
+
clearTimeout(T), i.value = !0;
|
|
120
126
|
}, E = () => {
|
|
121
|
-
|
|
122
|
-
|
|
127
|
+
T = setTimeout(() => {
|
|
128
|
+
i.value = !1;
|
|
123
129
|
}, 100);
|
|
124
|
-
}, A = (e,
|
|
130
|
+
}, A = (e, a = 2) => {
|
|
125
131
|
if (!e)
|
|
126
132
|
return "0 B";
|
|
127
|
-
const
|
|
128
|
-
return parseFloat((e / Math.pow(
|
|
129
|
-
}, S = (e,
|
|
133
|
+
const r = 1024, o = a || 0, s = ["B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"], n = Math.floor(Math.log(e) / Math.log(r));
|
|
134
|
+
return parseFloat((e / Math.pow(r, n)).toFixed(o)) + " " + s[n];
|
|
135
|
+
}, S = (e, a) => !["name", "size", "lastModified", "type"].some((o) => e[o] !== a[o]), f = {
|
|
130
136
|
maxSize: (e) => {
|
|
131
|
-
if (
|
|
137
|
+
if (t.maxSize)
|
|
132
138
|
return {
|
|
133
139
|
type: "maxSize",
|
|
134
140
|
file: e,
|
|
135
|
-
formattedMaxSize: A(+
|
|
141
|
+
formattedMaxSize: A(+t.maxSize),
|
|
136
142
|
formattedSize: A(e.size),
|
|
137
143
|
filename: e.name
|
|
138
144
|
};
|
|
@@ -146,63 +152,63 @@ const re = ["accept", "autofocus", "disabled", "multiple"], ae = {
|
|
|
146
152
|
accept: (e) => ({
|
|
147
153
|
type: "accept",
|
|
148
154
|
file: e,
|
|
149
|
-
acceptedMimeTypes:
|
|
155
|
+
acceptedMimeTypes: p.value,
|
|
150
156
|
mimeType: e.type,
|
|
151
157
|
filename: e.name
|
|
152
158
|
}),
|
|
153
|
-
maxFiles: (e,
|
|
159
|
+
maxFiles: (e, a) => ({
|
|
154
160
|
type: "maxFiles",
|
|
155
161
|
file: e,
|
|
156
|
-
maxFiles:
|
|
157
|
-
totalFiles:
|
|
162
|
+
maxFiles: t.maxFiles,
|
|
163
|
+
totalFiles: a,
|
|
158
164
|
filename: e.name
|
|
159
165
|
})
|
|
160
|
-
}, w = m(() =>
|
|
161
|
-
() => !!w.value.length ||
|
|
166
|
+
}, w = m(() => t.errors ? [].concat(t.errors) : []), R = m(
|
|
167
|
+
() => !!w.value.length || t.hasErrors
|
|
162
168
|
);
|
|
163
|
-
return (e,
|
|
164
|
-
class:
|
|
165
|
-
id:
|
|
169
|
+
return (e, a) => (V(), G(K(e.tag), {
|
|
170
|
+
class: O(k.value),
|
|
171
|
+
id: v
|
|
166
172
|
}, {
|
|
167
|
-
default:
|
|
168
|
-
|
|
169
|
-
onDrop:
|
|
170
|
-
onDragenter:
|
|
171
|
-
onDragover:
|
|
172
|
-
onDragleave:
|
|
173
|
+
default: M(() => [
|
|
174
|
+
c("label", {
|
|
175
|
+
onDrop: y($, ["prevent"]),
|
|
176
|
+
onDragenter: y(B, ["prevent"]),
|
|
177
|
+
onDragover: y(N, ["prevent"]),
|
|
178
|
+
onDragleave: y(E, ["prevent"])
|
|
173
179
|
}, [
|
|
174
|
-
|
|
180
|
+
c("input", {
|
|
175
181
|
type: "file",
|
|
176
|
-
accept:
|
|
182
|
+
accept: P.value,
|
|
177
183
|
autofocus: e.autofocus,
|
|
178
184
|
disabled: e.disabled,
|
|
179
185
|
multiple: e.multiple,
|
|
180
|
-
onChange:
|
|
181
|
-
onFocus:
|
|
182
|
-
onBlur:
|
|
183
|
-
}, null, 40,
|
|
184
|
-
|
|
186
|
+
onChange: H,
|
|
187
|
+
onFocus: I,
|
|
188
|
+
onBlur: L
|
|
189
|
+
}, null, 40, le),
|
|
190
|
+
U(e.$slots, "default", Y(Z(q.value)))
|
|
185
191
|
], 32),
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
192
|
+
c("label", se, [
|
|
193
|
+
J(" Server files "),
|
|
194
|
+
c("input", {
|
|
189
195
|
class: "bb-dropzone__submittable-input",
|
|
190
196
|
type: "file",
|
|
191
|
-
id:
|
|
197
|
+
id: Q(z),
|
|
192
198
|
name: e.name,
|
|
193
199
|
ref_key: "submittable",
|
|
194
|
-
ref:
|
|
200
|
+
ref: d,
|
|
195
201
|
multiple: e.multiple,
|
|
196
202
|
disabled: e.disabled
|
|
197
|
-
}, null, 8,
|
|
203
|
+
}, null, 8, ne)
|
|
198
204
|
]),
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
default:
|
|
202
|
-
(
|
|
205
|
+
c("span", ie, [
|
|
206
|
+
W(oe, { tag: "span" }, {
|
|
207
|
+
default: M(() => [
|
|
208
|
+
(V(!0), F(X, null, ee(w.value, (r) => (V(), F("span", {
|
|
203
209
|
class: "bb-dropzone__error",
|
|
204
|
-
key:
|
|
205
|
-
},
|
|
210
|
+
key: r
|
|
211
|
+
}, te(r), 1))), 128))
|
|
206
212
|
]),
|
|
207
213
|
_: 1
|
|
208
214
|
})
|
|
@@ -213,6 +219,6 @@ const re = ["accept", "autofocus", "disabled", "multiple"], ae = {
|
|
|
213
219
|
}
|
|
214
220
|
});
|
|
215
221
|
export {
|
|
216
|
-
|
|
222
|
+
fe as default
|
|
217
223
|
};
|
|
218
224
|
//# sourceMappingURL=index69.js.map
|
package/dist/index69.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index69.js","sources":["../src/components/BbDropzone/BbDropzone.vue?vue&type=script&setup=true&lang.ts"],"sourcesContent":["import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, normalizeProps as _normalizeProps, guardReactiveProps as _guardReactiveProps, renderSlot as _renderSlot, withModifiers as _withModifiers, unref as _unref, createTextVNode as _createTextVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, withCtx as _withCtx, createVNode as _createVNode, resolveDynamicComponent as _resolveDynamicComponent, normalizeClass as _normalizeClass, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = [\"accept\", \"autofocus\", \"disabled\", \"multiple\"]\nconst _hoisted_2 = {\n class: \"bb-dropzone__submittable-label\",\n \"aria-hidden\": \"true\"\n}\nconst _hoisted_3 = [\"id\", \"name\", \"multiple\", \"disabled\"]\nconst _hoisted_4 = { class: \"bb-dropzone__errors\" }\n\nimport { computed, ref, watch } from \"vue\";\nimport { findInTree } from \"@/utilities/functions/findInTree\";\nimport { useId } from \"@/composables/useId\";\nimport BbSmoothHeight from \"../BbSmoothHeight/BbSmoothHeight.vue\";\nimport type { CommonProps, NonVoidElementTag } from \"@/types/CommonProps\";\n\nexport type DropZoneError = ReturnType<\n (typeof createError)[keyof typeof createError]\n>;\n\nexport type BbDropzoneProps = Pick<CommonProps, \n'autofocus' |\n'disabled' |\n'errors' |\n'hasErrors' |\n'id' |\n'multiple' |\n'name'\n> & {\n /**\n * Array of mime-types or extensions to filter selectable files.\n */\n accept?: string[];\n /**\n * Maximum number of acceptable files\n */\n maxFiles?: number;\n /**\n * Max size of the files in bytes.\n */\n maxSize?: number;\n /**\n * Used by v-model.\n */\n modelValue: any;\n} & NonVoidElementTag\n\n// This is the dynamic import for mime\nexport type BbDropzoneEvents = {\n (e: \"blur\", event: FocusEvent): void;\n (e: \"error\", data: DropZoneError): void;\n (e: \"focus\", event: FocusEvent): void;\n (e: \"update:modelValue\", data: any): void;\n};\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'BbDropzone',\n props: {\n autofocus: {},\n disabled: { type: Boolean },\n errors: {},\n hasErrors: { type: Boolean },\n id: {},\n multiple: { type: Boolean },\n name: {},\n accept: {},\n maxFiles: {},\n maxSize: {},\n modelValue: {},\n tag: { default: \"div\" }\n },\n emits: [\"blur\", \"error\", \"focus\", \"update:modelValue\"],\n setup(__props: any, { emit: __emit }) {\n\nlet mime: any;\n\nconst props = __props;\n\nconst emit = __emit;\n\n\n\nconst submittable = ref<any | null>(null);\n\nif (props.accept) {\n if (!Array.isArray(props.accept)) {\n throw new Error(\"Property accept is not an array\");\n }\n}\nif (props.multiple) {\n if (!Array.isArray(props.modelValue)) {\n throw new Error(\n \"Component is set to multiple but modelValue is not an array\"\n );\n }\n}\n\n/** Allow dropzone to be submittable (this is flimsy and might break) */\nwatch(\n () => props.modelValue,\n () => {\n let container = new DataTransfer();\n if (Array.isArray(props.modelValue)) {\n if (props.modelValue.length) {\n props.modelValue.forEach((file) => container.items.add(file));\n }\n } else {\n if (props.modelValue) container.items.add(props.modelValue);\n }\n if (submittable.value) {\n if (container.items.length) {\n submittable.value.files = container.files;\n } else {\n submittable.value.files = null;\n }\n }\n }\n);\n\nconst acceptedMimeTypes = ref<string[]>([]);\nconst acceptedMimeTypesString = computed(() =>\n acceptedMimeTypes.value.join(\",\")\n);\nwatch(\n () => props.accept,\n async () => {\n if (props.accept) {\n let accumulated = [];\n for (let i = 0; i < props.accept.length; i++) {\n const element = props.accept[i];\n if (element.includes(\"/\")) accumulated.push(element);\n else {\n if (!mime) mime = await import(\"mime\");\n const foundMime = mime.getType(element);\n if (!foundMime) {\n throw new Error(\n `Could not detect the correct mime associated with ${element}`\n );\n }\n accumulated.push(foundMime);\n }\n }\n acceptedMimeTypes.value = accumulated;\n }\n },\n { immediate: true }\n);\n\n/**\n * Component state\n */\nconst id = props.id || `${useId().id.value}`;\nconst containerId = `bb_dz_${id}`;\n\nconst dragging = ref(false);\n// Add a timeout to prevent browser flickering\nlet draggingTimeout: ReturnType<typeof setTimeout>;\n\nconst classes = computed(() => {\n return {\n \"bb-dropzone\": true,\n \"bb-dropzone--errors\": hasErrors.value,\n \"bb-dropzone--dragging\": dragging.value,\n };\n});\nconst slotAttributes = computed(() => {\n return {\n dragging: dragging.value,\n id: id,\n };\n});\n\n/**\n * Component handlers\n */\nconst onDrop = (event: DragEvent) => {\n dragging.value = false;\n\n if (event.dataTransfer) {\n event.stopImmediatePropagation();\n let files;\n files = Array.from(event.dataTransfer.files);\n files = parseFiles(files);\n if (props.multiple) {\n if (Array.isArray(props.modelValue)) {\n emit(\"update:modelValue\", [...props.modelValue, ...files]);\n }\n } else {\n files = files[0];\n emit(\"update:modelValue\", files);\n }\n if (event.currentTarget instanceof HTMLLabelElement) {\n const innerInput = event.currentTarget.querySelector(\"input[type=file]\");\n if (innerInput instanceof HTMLInputElement) {\n innerInput.focus();\n }\n }\n }\n};\nconst onChange = (event: Event) => {\n if (event.target instanceof HTMLInputElement) {\n if (event.target.files) {\n let files;\n files = parseFiles(Array.from(event.target.files));\n if (props.multiple) {\n if (Array.isArray(props.modelValue)) {\n emit(\"update:modelValue\", [...props.modelValue, ...files]);\n }\n } else {\n files = files[0];\n emit(\"update:modelValue\", files);\n }\n }\n event.target.value = \"\";\n event.target.files = null;\n }\n};\n\nconst parseFiles = (files: File[]) => {\n return files.filter((file, index) => {\n // Sizecheck\n if (props.maxSize) {\n let passing = file.size <= props.maxSize;\n if (!passing) {\n emit(\"error\", createError.maxSize(file));\n return false;\n }\n }\n // Uniqueness check\n let alreadyExists = false;\n if (props.modelValue) {\n if (Array.isArray(props.modelValue)) {\n alreadyExists = props.modelValue.some((current) =>\n compareFiles(current, file)\n );\n } else {\n alreadyExists = compareFiles(props.modelValue, file);\n }\n }\n if (alreadyExists) {\n emit(\"error\", createError.uniqueness(file));\n return false;\n }\n // Mime type check\n if (props.accept) {\n const mimePassed = acceptedMimeTypes.value.some((mime) => {\n let found = false;\n if (mime.includes(\"*\"))\n found = found || mime.split(\"/\")[0] === file.type.split(\"/\")[0];\n else found = found || mime === file.type;\n return found;\n });\n if (!mimePassed) {\n emit(\"error\", createError.accept(file));\n return false;\n }\n }\n // Max files check\n if (props.maxFiles) {\n if (Array.isArray(props.modelValue)) {\n if (props.modelValue.length + index + 1 > props.maxFiles) {\n emit(\n \"error\",\n createError.maxFiles(file, props.modelValue.length + index + 1)\n );\n return false;\n }\n }\n }\n return true;\n });\n};\n\nconst onDragOver = (event: Event) => {\n // Find the closest dropzone in case of nested dropzones\n const target = event.target;\n if (target instanceof HTMLElement) {\n const closestDropzone = findInTree([target], \"parentElement\", (el) =>\n el.classList.contains(\"bb-dropzone\")\n );\n if (closestDropzone) {\n /* When dragging over this dropzone set as dragging */\n if (closestDropzone.id === containerId) {\n setDragging();\n /* When dragging over a nested dropzone do not highlight this dropzone */\n } else {\n unsetDragging();\n }\n }\n }\n};\n\nconst setDragging = () => {\n clearTimeout(draggingTimeout);\n dragging.value = true;\n};\n\nconst unsetDragging = () => {\n draggingTimeout = setTimeout(() => {\n dragging.value = false;\n }, 100);\n};\n\nconst bytesToUnit = (bytes: number, decimals = 2) => {\n if (!bytes) return \"0 B\";\n const k = 1024;\n const dm = decimals || 0;\n const sizes = [\"B\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\", \"EB\", \"ZB\", \"YB\"];\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + \" \" + sizes[i];\n};\n\n/**\n * Returns true if files are identical by the properties that are accessible\n * @param file The file to check\n * @param otherFile The file to check against\n */\nconst compareFiles = (file: File, otherFile: File) => {\n const properties: (keyof File)[] = [\"name\", \"size\", \"lastModified\", \"type\"];\n return !properties.some((key) => file[key] !== otherFile[key]);\n};\n\n/**\n * Helper that creates errors based on component properties\n */\nconst createError = {\n maxSize: (file: File) => {\n // Todo update to isNil\n if (props.maxSize) {\n return {\n type: \"maxSize\",\n file: file,\n formattedMaxSize: bytesToUnit(+props.maxSize),\n formattedSize: bytesToUnit(file.size),\n filename: file.name,\n } as const;\n } else throw new Error('Requested to create an error for maxSize without providing a maxSize.')\n },\n uniqueness: (file: File) => {\n return {\n type: \"uniqueness\",\n file: file,\n filename: file.name,\n } as const;\n },\n accept: (file: File) => {\n return {\n type: \"accept\",\n file: file,\n acceptedMimeTypes: acceptedMimeTypes.value,\n mimeType: file.type,\n filename: file.name,\n } as const;\n },\n maxFiles: (file: File, totalFiles: number) => {\n return {\n type: \"maxFiles\",\n file: file,\n maxFiles: props.maxFiles,\n totalFiles,\n filename: file.name,\n } as const;\n },\n};\n\nconst computedErrors = computed(() => {\n return props.errors ? ([] as string[]).concat(props.errors) : [];\n});\n\nconst hasErrors = computed(\n () => Boolean(computedErrors.value.length) || props.hasErrors\n);\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createBlock(_resolveDynamicComponent(_ctx.tag), {\n class: _normalizeClass(classes.value),\n id: containerId\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"label\", {\n onDrop: _withModifiers(onDrop, [\"prevent\"]),\n onDragenter: _withModifiers(setDragging, [\"prevent\"]),\n onDragover: _withModifiers(onDragOver, [\"prevent\"]),\n onDragleave: _withModifiers(unsetDragging, [\"prevent\"])\n }, [\n _createElementVNode(\"input\", {\n type: \"file\",\n accept: acceptedMimeTypesString.value,\n autofocus: _ctx.autofocus,\n disabled: _ctx.disabled,\n multiple: _ctx.multiple,\n onChange: onChange,\n onFocus: _cache[0] || (_cache[0] = (event) => _ctx.$emit('focus', event)),\n onBlur: _cache[1] || (_cache[1] = (event) => _ctx.$emit('blur', event))\n }, null, 40, _hoisted_1),\n _renderSlot(_ctx.$slots, \"default\", _normalizeProps(_guardReactiveProps(slotAttributes.value)))\n ], 32),\n _createElementVNode(\"label\", _hoisted_2, [\n _createTextVNode(\" Server files \"),\n _createElementVNode(\"input\", {\n class: \"bb-dropzone__submittable-input\",\n type: \"file\",\n id: _unref(id),\n name: _ctx.name,\n ref_key: \"submittable\",\n ref: submittable,\n multiple: _ctx.multiple,\n disabled: _ctx.disabled\n }, null, 8, _hoisted_3)\n ]),\n _createElementVNode(\"span\", _hoisted_4, [\n _createVNode(BbSmoothHeight, { tag: \"span\" }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(computedErrors.value, (error) => {\n return (_openBlock(), _createElementBlock(\"span\", {\n class: \"bb-dropzone__error\",\n key: error\n }, _toDisplayString(error), 1))\n }), 128))\n ]),\n _: 1\n })\n ])\n ]),\n _: 3\n }, 8, [\"class\"]))\n}\n}\n\n})"],"names":["_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_sfc_main","_defineComponent","__props","__emit","mime","props","emit","submittable","ref","watch","container","file","acceptedMimeTypes","acceptedMimeTypesString","computed","accumulated","i","element","foundMime","id","useId","containerId","dragging","draggingTimeout","classes","hasErrors","slotAttributes","onDrop","event","files","parseFiles","innerInput","onChange","index","createError","alreadyExists","current","compareFiles","found","onDragOver","target","closestDropzone","findInTree","el","setDragging","unsetDragging","bytesToUnit","bytes","decimals","k","dm","sizes","otherFile","key","totalFiles","computedErrors","_ctx","_cache","_openBlock","_createBlock","_resolveDynamicComponent","_normalizeClass","_withCtx","_createElementVNode","_withModifiers","_renderSlot","_normalizeProps","_guardReactiveProps","_createTextVNode","_unref","_createVNode","BbSmoothHeight","_createElementBlock","_Fragment","_renderList","error","_toDisplayString"],"mappings":";;;;;AAGA,MAAMA,KAAa,CAAC,UAAU,aAAa,YAAY,UAAU,GAC3DC,KAAa;AAAA,EACjB,OAAO;AAAA,EACP,eAAe;AACjB,GACMC,KAAa,CAAC,MAAM,QAAQ,YAAY,UAAU,GAClDC,KAAa,EAAE,OAAO,yBA+CAC,KAAiBC,gBAAAA,EAAA;AAAA,EAC3C,QAAQ;AAAA,EACR,OAAO;AAAA,IACL,WAAW,CAAC;AAAA,IACZ,UAAU,EAAE,MAAM,QAAQ;AAAA,IAC1B,QAAQ,CAAC;AAAA,IACT,WAAW,EAAE,MAAM,QAAQ;AAAA,IAC3B,IAAI,CAAC;AAAA,IACL,UAAU,EAAE,MAAM,QAAQ;AAAA,IAC1B,MAAM,CAAC;AAAA,IACP,QAAQ,CAAC;AAAA,IACT,UAAU,CAAC;AAAA,IACX,SAAS,CAAC;AAAA,IACV,YAAY,CAAC;AAAA,IACb,KAAK,EAAE,SAAS,MAAM;AAAA,EACxB;AAAA,EACA,OAAO,CAAC,QAAQ,SAAS,SAAS,mBAAmB;AAAA,EACrD,MAAMC,GAAc,EAAE,MAAMC,KAAU;AAEpC,QAAAC;AAEJ,UAAMC,IAAQH,GAERI,IAAOH,GAIPI,IAAcC,EAAgB,IAAI;AAExC,QAAIH,EAAM,UACJ,CAAC,MAAM,QAAQA,EAAM,MAAM;AACvB,YAAA,IAAI,MAAM,iCAAiC;AAGrD,QAAIA,EAAM,YACJ,CAAC,MAAM,QAAQA,EAAM,UAAU;AACjC,YAAM,IAAI;AAAA,QACR;AAAA,MAAA;AAMN,IAAAI;AAAA,MACE,MAAMJ,EAAM;AAAA,MACZ,MAAM;AACA,YAAAK,IAAY,IAAI;AACpB,QAAI,MAAM,QAAQL,EAAM,UAAU,IAC5BA,EAAM,WAAW,UACbA,EAAA,WAAW,QAAQ,CAACM,MAASD,EAAU,MAAM,IAAIC,CAAI,CAAC,IAG1DN,EAAM,cAAsBK,EAAA,MAAM,IAAIL,EAAM,UAAU,GAExDE,EAAY,UACVG,EAAU,MAAM,SACNH,EAAA,MAAM,QAAQG,EAAU,QAEpCH,EAAY,MAAM,QAAQ;AAAA,MAGhC;AAAA,IAAA;AAGI,UAAAK,IAAoBJ,EAAc,CAAA,CAAE,GACpCK,IAA0BC;AAAA,MAAS,MACvCF,EAAkB,MAAM,KAAK,GAAG;AAAA,IAAA;AAElC,IAAAH;AAAA,MACE,MAAMJ,EAAM;AAAA,MACZ,YAAY;AACV,YAAIA,EAAM,QAAQ;AAChB,cAAIU,IAAc,CAAA;AAClB,mBAASC,IAAI,GAAGA,IAAIX,EAAM,OAAO,QAAQW,KAAK;AACtC,kBAAAC,IAAUZ,EAAM,OAAOW,CAAC;AAC1B,gBAAAC,EAAQ,SAAS,GAAG;AAAG,cAAAF,EAAY,KAAKE,CAAO;AAAA,iBAC9C;AACH,cAAKb,MAAaA,IAAA,MAAM,OAAO,eAAM;AAC/B,oBAAAc,IAAYd,EAAK,QAAQa,CAAO;AACtC,kBAAI,CAACC;AACH,sBAAM,IAAI;AAAA,kBACR,qDAAqDD,CAAO;AAAA,gBAAA;AAGhE,cAAAF,EAAY,KAAKG,CAAS;AAAA,YAC5B;AAAA,UACF;AACA,UAAAN,EAAkB,QAAQG;AAAA,QAC5B;AAAA,MACF;AAAA,MACA,EAAE,WAAW,GAAK;AAAA,IAAA;AAMpB,UAAMI,IAAKd,EAAM,MAAM,GAAGe,KAAQ,GAAG,KAAK,IACpCC,IAAc,SAASF,CAAE,IAEzBG,IAAWd,EAAI,EAAK;AAEtB,QAAAe;AAEE,UAAAC,IAAUV,EAAS,OAChB;AAAA,MACL,eAAe;AAAA,MACf,uBAAuBW,EAAU;AAAA,MACjC,yBAAyBH,EAAS;AAAA,IAAA,EAErC,GACKI,IAAiBZ,EAAS,OACvB;AAAA,MACL,UAAUQ,EAAS;AAAA,MACnB,IAAAH;AAAA,IAAA,EAEH,GAKKQ,IAAS,CAACC,MAAqB;AAGnC,UAFAN,EAAS,QAAQ,IAEbM,EAAM,cAAc;AACtB,QAAAA,EAAM,yBAAyB;AAC3B,YAAAC;AAWA,YAVJA,IAAQ,MAAM,KAAKD,EAAM,aAAa,KAAK,GAC3CC,IAAQC,EAAWD,CAAK,GACpBxB,EAAM,WACJ,MAAM,QAAQA,EAAM,UAAU,KAChCC,EAAK,qBAAqB,CAAC,GAAGD,EAAM,YAAY,GAAGwB,CAAK,CAAC,KAG3DA,IAAQA,EAAM,CAAC,GACfvB,EAAK,qBAAqBuB,CAAK,IAE7BD,EAAM,yBAAyB,kBAAkB;AACnD,gBAAMG,IAAaH,EAAM,cAAc,cAAc,kBAAkB;AACvE,UAAIG,aAAsB,oBACxBA,EAAW,MAAM;AAAA,QAErB;AAAA,MACF;AAAA,IAAA,GAEIC,IAAW,CAACJ,MAAiB;AAC7B,UAAAA,EAAM,kBAAkB,kBAAkB;AACxC,YAAAA,EAAM,OAAO,OAAO;AAClB,cAAAC;AACJ,UAAAA,IAAQC,EAAW,MAAM,KAAKF,EAAM,OAAO,KAAK,CAAC,GAC7CvB,EAAM,WACJ,MAAM,QAAQA,EAAM,UAAU,KAChCC,EAAK,qBAAqB,CAAC,GAAGD,EAAM,YAAY,GAAGwB,CAAK,CAAC,KAG3DA,IAAQA,EAAM,CAAC,GACfvB,EAAK,qBAAqBuB,CAAK;AAAA,QAEnC;AACA,QAAAD,EAAM,OAAO,QAAQ,IACrBA,EAAM,OAAO,QAAQ;AAAA,MACvB;AAAA,IAAA,GAGIE,IAAa,CAACD,MACXA,EAAM,OAAO,CAAClB,GAAMsB,MAAU;AAEnC,UAAI5B,EAAM,WAEJ,EADUM,EAAK,QAAQN,EAAM;AAE/B,eAAAC,EAAK,SAAS4B,EAAY,QAAQvB,CAAI,CAAC,GAChC;AAIX,UAAIwB,IAAgB;AAUpB,aATI9B,EAAM,eACJ,MAAM,QAAQA,EAAM,UAAU,IAChC8B,IAAgB9B,EAAM,WAAW;AAAA,QAAK,CAAC+B,MACrCC,EAAaD,GAASzB,CAAI;AAAA,MAAA,IAGZwB,IAAAE,EAAahC,EAAM,YAAYM,CAAI,IAGnDwB,KACF7B,EAAK,SAAS4B,EAAY,WAAWvB,CAAI,CAAC,GACnC,MAGLN,EAAM,UAQJ,CAPeO,EAAkB,MAAM,KAAK,CAACR,MAAS;AACxD,YAAIkC,IAAQ;AACRlC,eAAAA,EAAK,SAAS,GAAG,IACnBkC,IAAQA,KAASlC,EAAK,MAAM,GAAG,EAAE,CAAC,MAAMO,EAAK,KAAK,MAAM,GAAG,EAAE,CAAC,IACnD2B,IAAAA,KAASlC,MAASO,EAAK,MAC7B2B;AAAA,MAAA,CACR,KAEChC,EAAK,SAAS4B,EAAY,OAAOvB,CAAI,CAAC,GAC/B,MAIPN,EAAM,YACJ,MAAM,QAAQA,EAAM,UAAU,KAC5BA,EAAM,WAAW,SAAS4B,IAAQ,IAAI5B,EAAM,YAC9CC;AAAA,QACE;AAAA,QACA4B,EAAY,SAASvB,GAAMN,EAAM,WAAW,SAAS4B,IAAQ,CAAC;AAAA,MAAA,GAEzD,MAIN;AAAA,IAAA,CACR,GAGGM,IAAa,CAACX,MAAiB;AAEnC,YAAMY,IAASZ,EAAM;AACrB,UAAIY,aAAkB,aAAa;AACjC,cAAMC,IAAkBC;AAAA,UAAW,CAACF,CAAM;AAAA,UAAG;AAAA,UAAiB,CAACG,MAC7DA,EAAG,UAAU,SAAS,aAAa;AAAA,QAAA;AAErC,QAAIF,MAEEA,EAAgB,OAAOpB,IACbuB,MAGEC;MAGpB;AAAA,IAAA,GAGID,IAAc,MAAM;AACxB,mBAAarB,CAAe,GAC5BD,EAAS,QAAQ;AAAA,IAAA,GAGbuB,IAAgB,MAAM;AAC1B,MAAAtB,IAAkB,WAAW,MAAM;AACjC,QAAAD,EAAS,QAAQ;AAAA,SAChB,GAAG;AAAA,IAAA,GAGFwB,IAAc,CAACC,GAAeC,IAAW,MAAM;AACnD,UAAI,CAACD;AAAc,eAAA;AACnB,YAAME,IAAI,MACJC,IAAKF,KAAY,GACjBG,IAAQ,CAAC,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,GAC5D,IAAI,KAAK,MAAM,KAAK,IAAIJ,CAAK,IAAI,KAAK,IAAIE,CAAC,CAAC;AAClD,aAAO,YAAYF,IAAQ,KAAK,IAAIE,GAAG,CAAC,GAAG,QAAQC,CAAE,CAAC,IAAI,MAAMC,EAAM,CAAC;AAAA,IAAA,GAQnEd,IAAe,CAAC1B,GAAYyC,MAEzB,CAD4B,CAAC,QAAQ,QAAQ,gBAAgB,MAAM,EACvD,KAAK,CAACC,MAAQ1C,EAAK0C,CAAG,MAAMD,EAAUC,CAAG,CAAC,GAMzDnB,IAAc;AAAA,MAClB,SAAS,CAACvB,MAAe;AAEvB,YAAIN,EAAM;AACD,iBAAA;AAAA,YACL,MAAM;AAAA,YACN,MAAAM;AAAA,YACA,kBAAkBmC,EAAY,CAACzC,EAAM,OAAO;AAAA,YAC5C,eAAeyC,EAAYnC,EAAK,IAAI;AAAA,YACpC,UAAUA,EAAK;AAAA,UAAA;AAEN,cAAA,IAAI,MAAM,uEAAuE;AAAA,MAChG;AAAA,MACA,YAAY,CAACA,OACF;AAAA,QACL,MAAM;AAAA,QACN,MAAAA;AAAA,QACA,UAAUA,EAAK;AAAA,MAAA;AAAA,MAGrB,QAAQ,CAACA,OACA;AAAA,QACL,MAAM;AAAA,QACN,MAAAA;AAAA,QACA,mBAAmBC,EAAkB;AAAA,QACrC,UAAUD,EAAK;AAAA,QACf,UAAUA,EAAK;AAAA,MAAA;AAAA,MAGnB,UAAU,CAACA,GAAY2C,OACd;AAAA,QACL,MAAM;AAAA,QACN,MAAA3C;AAAA,QACA,UAAUN,EAAM;AAAA,QAChB,YAAAiD;AAAA,QACA,UAAU3C,EAAK;AAAA,MAAA;AAAA,IAEnB,GAGI4C,IAAiBzC,EAAS,MACvBT,EAAM,SAAU,CAAC,EAAe,OAAOA,EAAM,MAAM,IAAI,EAC/D,GAEKoB,IAAYX;AAAA,MAChB,MAAM,EAAQyC,EAAe,MAAM,UAAWlD,EAAM;AAAA,IAAA;AAG/C,WAAA,CAACmD,GAAUC,OACRC,EAAc,GAAAC,EAAaC,EAAyBJ,EAAK,GAAG,GAAG;AAAA,MACrE,OAAOK,EAAgBrC,EAAQ,KAAK;AAAA,MACpC,IAAIH;AAAA,IAAA,GACH;AAAA,MACD,SAASyC,EAAS,MAAM;AAAA,QACtBC,EAAoB,SAAS;AAAA,UAC3B,QAAQC,EAAerC,GAAQ,CAAC,SAAS,CAAC;AAAA,UAC1C,aAAaqC,EAAepB,GAAa,CAAC,SAAS,CAAC;AAAA,UACpD,YAAYoB,EAAezB,GAAY,CAAC,SAAS,CAAC;AAAA,UAClD,aAAayB,EAAenB,GAAe,CAAC,SAAS,CAAC;AAAA,QAAA,GACrD;AAAA,UACDkB,EAAoB,SAAS;AAAA,YAC3B,MAAM;AAAA,YACN,QAAQlD,EAAwB;AAAA,YAChC,WAAW2C,EAAK;AAAA,YAChB,UAAUA,EAAK;AAAA,YACf,UAAUA,EAAK;AAAA,YACf,UAAAxB;AAAA,YACA,SAASyB,EAAO,CAAC,MAAMA,EAAO,CAAC,IAAI,CAAC7B,MAAU4B,EAAK,MAAM,SAAS5B,CAAK;AAAA,YACvE,QAAQ6B,EAAO,CAAC,MAAMA,EAAO,CAAC,IAAI,CAAC7B,MAAU4B,EAAK,MAAM,QAAQ5B,CAAK;AAAA,UAAA,GACpE,MAAM,IAAIhC,EAAU;AAAA,UACvBqE,EAAYT,EAAK,QAAQ,WAAWU,EAAgBC,EAAoBzC,EAAe,KAAK,CAAC,CAAC;AAAA,WAC7F,EAAE;AAAA,QACLqC,EAAoB,SAASlE,IAAY;AAAA,UACvCuE,EAAiB,gBAAgB;AAAA,UACjCL,EAAoB,SAAS;AAAA,YAC3B,OAAO;AAAA,YACP,MAAM;AAAA,YACN,IAAIM,EAAOlD,CAAE;AAAA,YACb,MAAMqC,EAAK;AAAA,YACX,SAAS;AAAA,YACT,KAAKjD;AAAA,YACL,UAAUiD,EAAK;AAAA,YACf,UAAUA,EAAK;AAAA,UAAA,GACd,MAAM,GAAG1D,EAAU;AAAA,QAAA,CACvB;AAAA,QACDiE,EAAoB,QAAQhE,IAAY;AAAA,UACtCuE,EAAaC,IAAgB,EAAE,KAAK,UAAU;AAAA,YAC5C,SAAST,EAAS,MAAM;AAAA,eACrBJ,EAAW,EAAI,GAAGc,EAAoBC,GAAW,MAAMC,EAAYnB,EAAe,OAAO,CAACoB,OACjFjB,EAAA,GAAcc,EAAoB,QAAQ;AAAA,gBAChD,OAAO;AAAA,gBACP,KAAKG;AAAA,cACJ,GAAAC,EAAiBD,CAAK,GAAG,CAAC,EAC9B,GAAG,GAAG;AAAA,YAAA,CACR;AAAA,YACD,GAAG;AAAA,UAAA,CACJ;AAAA,QAAA,CACF;AAAA,MAAA,CACF;AAAA,MACD,GAAG;AAAA,IAAA,GACF,GAAG,CAAC,OAAO,CAAC;AAAA,EAEjB;AAEA,CAAC;"}
|
|
1
|
+
{"version":3,"file":"index69.js","sources":["../src/components/BbDropzone/BbDropzone.vue?vue&type=script&setup=true&lang.ts"],"sourcesContent":["import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, normalizeProps as _normalizeProps, guardReactiveProps as _guardReactiveProps, renderSlot as _renderSlot, withModifiers as _withModifiers, unref as _unref, createTextVNode as _createTextVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, withCtx as _withCtx, createVNode as _createVNode, resolveDynamicComponent as _resolveDynamicComponent, normalizeClass as _normalizeClass, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = [\"accept\", \"autofocus\", \"disabled\", \"multiple\"]\nconst _hoisted_2 = {\n class: \"bb-dropzone__submittable-label\",\n \"aria-hidden\": \"true\"\n}\nconst _hoisted_3 = [\"id\", \"name\", \"multiple\", \"disabled\"]\nconst _hoisted_4 = { class: \"bb-dropzone__errors\" }\n\nimport { computed, ref, watch } from \"vue\";\nimport { findInTree } from \"@/utilities/functions/findInTree\";\nimport { useId } from \"@/composables/useId\";\nimport BbSmoothHeight from \"../BbSmoothHeight/BbSmoothHeight.vue\";\nimport type { CommonProps, NonVoidElementTag } from \"@/types/CommonProps\";\n\nexport type DropZoneError = ReturnType<\n (typeof createError)[keyof typeof createError]\n>;\n\nexport type BbDropzoneProps = Pick<CommonProps, \n'autofocus' |\n'disabled' |\n'errors' |\n'hasErrors' |\n'id' |\n'multiple' |\n'name'\n> & {\n /**\n * Array of mime-types or extensions to filter selectable files.\n */\n accept?: string[];\n /**\n * Maximum number of acceptable files\n */\n maxFiles?: number;\n /**\n * Max size of the files in bytes.\n */\n maxSize?: number;\n /**\n * Used by v-model.\n */\n modelValue: any;\n} & NonVoidElementTag\n\n// This is the dynamic import for mime\nexport type BbDropzoneEvents = {\n (e: \"blur\", event: FocusEvent): void;\n (e: \"error\", data: DropZoneError): void;\n (e: \"focus\", event: FocusEvent): void;\n (e: \"update:modelValue\", data: any): void;\n};\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'BbDropzone',\n props: {\n autofocus: {},\n disabled: { type: Boolean },\n errors: {},\n hasErrors: { type: Boolean },\n id: {},\n multiple: { type: Boolean },\n name: {},\n accept: {},\n maxFiles: {},\n maxSize: {},\n modelValue: {},\n tag: { default: \"div\" }\n },\n emits: [\"blur\", \"error\", \"focus\", \"update:modelValue\"],\n setup(__props: any, { emit: __emit }) {\n\nlet mime: any;\n\nconst props = __props;\n\nconst emit = __emit;\n\n\n\nconst submittable = ref<any | null>(null);\n\nif (props.accept) {\n if (!Array.isArray(props.accept)) {\n throw new Error(\"Property accept is not an array\");\n }\n}\nif (props.multiple) {\n if (!Array.isArray(props.modelValue)) {\n throw new Error(\n \"Component is set to multiple but modelValue is not an array\"\n );\n }\n}\n\nconst hasFocus = ref(false);\nconst onFocus = (event: FocusEvent) => {\n hasFocus.value = true;\n emit('focus', event)\n}\nconst onBlur = (event: FocusEvent) => {\n hasFocus.value = false;\n emit('blur', event)\n}\n\n/** Allow dropzone to be submittable (this is flimsy and might break) */\nwatch(\n () => props.modelValue,\n () => {\n let container = new DataTransfer();\n if (Array.isArray(props.modelValue)) {\n if (props.modelValue.length) {\n props.modelValue.forEach((file) => container.items.add(file));\n }\n } else {\n if (props.modelValue) container.items.add(props.modelValue);\n }\n if (submittable.value) {\n if (container.items.length) {\n submittable.value.files = container.files;\n } else {\n submittable.value.files = null;\n }\n }\n }\n);\n\nconst acceptedMimeTypes = ref<string[]>([]);\nconst acceptedMimeTypesString = computed(() =>\n acceptedMimeTypes.value.join(\",\")\n);\nwatch(\n () => props.accept,\n async () => {\n if (props.accept) {\n let accumulated = [];\n for (let i = 0; i < props.accept.length; i++) {\n const element = props.accept[i];\n if (element.includes(\"/\")) accumulated.push(element);\n else {\n if (!mime) mime = await import(\"mime\");\n const foundMime = mime.getType(element);\n if (!foundMime) {\n throw new Error(\n `Could not detect the correct mime associated with ${element}`\n );\n }\n accumulated.push(foundMime);\n }\n }\n acceptedMimeTypes.value = accumulated;\n }\n },\n { immediate: true }\n);\n\n/**\n * Component state\n */\nconst id = props.id || `${useId().id.value}`;\nconst containerId = `bb_dz_${id}`;\n\nconst dragging = ref(false);\n// Add a timeout to prevent browser flickering\nlet draggingTimeout: ReturnType<typeof setTimeout>;\n\nconst classes = computed(() => {\n return {\n \"bb-dropzone\": true,\n \"bb-dropzone--errors\": hasErrors.value,\n \"bb-dropzone--dragging\": dragging.value,\n };\n});\nconst slotAttributes = computed(() => {\n return {\n dragging: dragging.value,\n focused: hasFocus.value,\n id: id\n };\n});\n\n/**\n * Component handlers\n */\nconst onDrop = (event: DragEvent) => {\n dragging.value = false;\n\n if (event.dataTransfer) {\n event.stopImmediatePropagation();\n let files;\n files = Array.from(event.dataTransfer.files);\n files = parseFiles(files);\n if (props.multiple) {\n if (Array.isArray(props.modelValue)) {\n emit(\"update:modelValue\", [...props.modelValue, ...files]);\n }\n } else {\n files = files[0];\n emit(\"update:modelValue\", files);\n }\n if (event.currentTarget instanceof HTMLLabelElement) {\n const innerInput = event.currentTarget.querySelector(\"input[type=file]\");\n if (innerInput instanceof HTMLInputElement) {\n innerInput.focus();\n }\n }\n }\n};\nconst onChange = (event: Event) => {\n if (event.target instanceof HTMLInputElement) {\n if (event.target.files) {\n let files;\n files = parseFiles(Array.from(event.target.files));\n if (props.multiple) {\n if (Array.isArray(props.modelValue)) {\n emit(\"update:modelValue\", [...props.modelValue, ...files]);\n }\n } else {\n files = files[0];\n emit(\"update:modelValue\", files);\n }\n }\n event.target.value = \"\";\n event.target.files = null;\n }\n};\n\nconst parseFiles = (files: File[]) => {\n return files.filter((file, index) => {\n // Sizecheck\n if (props.maxSize) {\n let passing = file.size <= props.maxSize;\n if (!passing) {\n emit(\"error\", createError.maxSize(file));\n return false;\n }\n }\n // Uniqueness check\n let alreadyExists = false;\n if (props.modelValue) {\n if (Array.isArray(props.modelValue)) {\n alreadyExists = props.modelValue.some((current) =>\n compareFiles(current, file)\n );\n } else {\n alreadyExists = compareFiles(props.modelValue, file);\n }\n }\n if (alreadyExists) {\n emit(\"error\", createError.uniqueness(file));\n return false;\n }\n // Mime type check\n if (props.accept) {\n const mimePassed = acceptedMimeTypes.value.some((mime) => {\n let found = false;\n if (mime.includes(\"*\"))\n found = found || mime.split(\"/\")[0] === file.type.split(\"/\")[0];\n else found = found || mime === file.type;\n return found;\n });\n if (!mimePassed) {\n emit(\"error\", createError.accept(file));\n return false;\n }\n }\n // Max files check\n if (props.maxFiles) {\n if (Array.isArray(props.modelValue)) {\n if (props.modelValue.length + index + 1 > props.maxFiles) {\n emit(\n \"error\",\n createError.maxFiles(file, props.modelValue.length + index + 1)\n );\n return false;\n }\n }\n }\n return true;\n });\n};\n\nconst onDragOver = (event: Event) => {\n // Find the closest dropzone in case of nested dropzones\n const target = event.target;\n if (target instanceof HTMLElement) {\n const closestDropzone = findInTree([target], \"parentElement\", (el) =>\n el.classList.contains(\"bb-dropzone\")\n );\n if (closestDropzone) {\n /* When dragging over this dropzone set as dragging */\n if (closestDropzone.id === containerId) {\n setDragging();\n /* When dragging over a nested dropzone do not highlight this dropzone */\n } else {\n unsetDragging();\n }\n }\n }\n};\n\nconst setDragging = () => {\n clearTimeout(draggingTimeout);\n dragging.value = true;\n};\n\nconst unsetDragging = () => {\n draggingTimeout = setTimeout(() => {\n dragging.value = false;\n }, 100);\n};\n\nconst bytesToUnit = (bytes: number, decimals = 2) => {\n if (!bytes) return \"0 B\";\n const k = 1024;\n const dm = decimals || 0;\n const sizes = [\"B\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\", \"EB\", \"ZB\", \"YB\"];\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + \" \" + sizes[i];\n};\n\n/**\n * Returns true if files are identical by the properties that are accessible\n * @param file The file to check\n * @param otherFile The file to check against\n */\nconst compareFiles = (file: File, otherFile: File) => {\n const properties: (keyof File)[] = [\"name\", \"size\", \"lastModified\", \"type\"];\n return !properties.some((key) => file[key] !== otherFile[key]);\n};\n\n/**\n * Helper that creates errors based on component properties\n */\nconst createError = {\n maxSize: (file: File) => {\n // Todo update to isNil\n if (props.maxSize) {\n return {\n type: \"maxSize\",\n file: file,\n formattedMaxSize: bytesToUnit(+props.maxSize),\n formattedSize: bytesToUnit(file.size),\n filename: file.name,\n } as const;\n } else throw new Error('Requested to create an error for maxSize without providing a maxSize.')\n },\n uniqueness: (file: File) => {\n return {\n type: \"uniqueness\",\n file: file,\n filename: file.name,\n } as const;\n },\n accept: (file: File) => {\n return {\n type: \"accept\",\n file: file,\n acceptedMimeTypes: acceptedMimeTypes.value,\n mimeType: file.type,\n filename: file.name,\n } as const;\n },\n maxFiles: (file: File, totalFiles: number) => {\n return {\n type: \"maxFiles\",\n file: file,\n maxFiles: props.maxFiles,\n totalFiles,\n filename: file.name,\n } as const;\n },\n};\n\nconst computedErrors = computed(() => {\n return props.errors ? ([] as string[]).concat(props.errors) : [];\n});\n\nconst hasErrors = computed(\n () => Boolean(computedErrors.value.length) || props.hasErrors\n);\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createBlock(_resolveDynamicComponent(_ctx.tag), {\n class: _normalizeClass(classes.value),\n id: containerId\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"label\", {\n onDrop: _withModifiers(onDrop, [\"prevent\"]),\n onDragenter: _withModifiers(setDragging, [\"prevent\"]),\n onDragover: _withModifiers(onDragOver, [\"prevent\"]),\n onDragleave: _withModifiers(unsetDragging, [\"prevent\"])\n }, [\n _createElementVNode(\"input\", {\n type: \"file\",\n accept: acceptedMimeTypesString.value,\n autofocus: _ctx.autofocus,\n disabled: _ctx.disabled,\n multiple: _ctx.multiple,\n onChange: onChange,\n onFocus: onFocus,\n onBlur: onBlur\n }, null, 40, _hoisted_1),\n _renderSlot(_ctx.$slots, \"default\", _normalizeProps(_guardReactiveProps(slotAttributes.value)))\n ], 32),\n _createElementVNode(\"label\", _hoisted_2, [\n _createTextVNode(\" Server files \"),\n _createElementVNode(\"input\", {\n class: \"bb-dropzone__submittable-input\",\n type: \"file\",\n id: _unref(id),\n name: _ctx.name,\n ref_key: \"submittable\",\n ref: submittable,\n multiple: _ctx.multiple,\n disabled: _ctx.disabled\n }, null, 8, _hoisted_3)\n ]),\n _createElementVNode(\"span\", _hoisted_4, [\n _createVNode(BbSmoothHeight, { tag: \"span\" }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(computedErrors.value, (error) => {\n return (_openBlock(), _createElementBlock(\"span\", {\n class: \"bb-dropzone__error\",\n key: error\n }, _toDisplayString(error), 1))\n }), 128))\n ]),\n _: 1\n })\n ])\n ]),\n _: 3\n }, 8, [\"class\"]))\n}\n}\n\n})"],"names":["_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_sfc_main","_defineComponent","__props","__emit","mime","props","emit","submittable","ref","hasFocus","onFocus","event","onBlur","watch","container","file","acceptedMimeTypes","acceptedMimeTypesString","computed","accumulated","i","element","foundMime","id","useId","containerId","dragging","draggingTimeout","classes","hasErrors","slotAttributes","onDrop","files","parseFiles","innerInput","onChange","index","createError","alreadyExists","current","compareFiles","found","onDragOver","target","closestDropzone","findInTree","el","setDragging","unsetDragging","bytesToUnit","bytes","decimals","k","dm","sizes","otherFile","key","totalFiles","computedErrors","_ctx","_cache","_openBlock","_createBlock","_resolveDynamicComponent","_normalizeClass","_withCtx","_createElementVNode","_withModifiers","_renderSlot","_normalizeProps","_guardReactiveProps","_createTextVNode","_unref","_createVNode","BbSmoothHeight","_createElementBlock","_Fragment","_renderList","error","_toDisplayString"],"mappings":"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"}
|
package/dist/index72.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { defineComponent as h, ref as t, onMounted as m, onBeforeUnmount as p, openBlock as g, createBlock as b, resolveDynamicComponent as w, withCtx as _, renderSlot as I } from "vue";
|
|
2
|
-
import { throttle as c } from "./
|
|
2
|
+
import { throttle as c } from "./index207.js";
|
|
3
3
|
const M = /* @__PURE__ */ h({
|
|
4
4
|
__name: "BbIntersection",
|
|
5
5
|
props: {
|
package/dist/index75.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { defineComponent as q, ref as s, useAttrs as G, computed as m, onMounted as J, watch as Q, onBeforeUnmount as X, openBlock as y, createBlock as Y, Teleport as Z, createElementVNode as o, mergeProps as N, createElementBlock as w, renderSlot as l, createTextVNode as ee, toDisplayString as z, createCommentVNode as B, nextTick as te } from "vue";
|
|
2
|
-
import { useFocusTrap as oe } from "./
|
|
2
|
+
import { useFocusTrap as oe } from "./index208.js";
|
|
3
3
|
import { useId as L } from "./index7.js";
|
|
4
4
|
import { wait as O } from "./index122.js";
|
|
5
5
|
const se = { class: "bb-offcanvas-close" }, ae = { class: "bb-offcanvas-close__content" }, ne = { class: "bb-offcanvas-close__label" }, le = /* @__PURE__ */ o("span", { class: "bb-offcanvas-close__icon" }, [
|