bitboss-ui 0.2.39 → 0.2.41
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/index10.js +1 -4
- package/dist/index10.js.map +1 -1
- package/dist/index100.js +1 -4
- package/dist/index100.js.map +1 -1
- package/dist/index101.js +3 -3
- package/dist/index101.js.map +1 -1
- package/dist/index102.js +1 -4
- package/dist/index102.js.map +1 -1
- package/dist/index103.js +2 -2
- package/dist/index103.js.map +1 -1
- package/dist/index104.js +1 -4
- package/dist/index104.js.map +1 -1
- package/dist/index105.js.map +1 -1
- package/dist/index106.js +1 -4
- package/dist/index106.js.map +1 -1
- package/dist/index107.js.map +1 -1
- package/dist/index108.js +1 -4
- package/dist/index108.js.map +1 -1
- package/dist/index109.js +1 -1
- package/dist/index109.js.map +1 -1
- package/dist/index11.js +2 -2
- package/dist/index11.js.map +1 -1
- package/dist/index110.js +1 -4
- package/dist/index110.js.map +1 -1
- package/dist/index111.js +4 -4
- package/dist/index111.js.map +1 -1
- package/dist/index112.js +1 -4
- package/dist/index112.js.map +1 -1
- package/dist/index113.js +1 -1
- package/dist/index113.js.map +1 -1
- package/dist/index114.js +1 -4
- package/dist/index114.js.map +1 -1
- package/dist/index115.js.map +1 -1
- package/dist/index116.js +1 -1
- package/dist/index116.js.map +1 -1
- package/dist/index117.js +1 -1
- package/dist/index117.js.map +1 -1
- package/dist/index118.js +1 -1
- package/dist/index118.js.map +1 -1
- package/dist/index119.js +1 -1
- package/dist/index119.js.map +1 -1
- package/dist/index12.js +1 -4
- package/dist/index12.js.map +1 -1
- package/dist/index121.js +1 -1
- package/dist/index125.js +1 -1
- package/dist/index126.js +1 -1
- package/dist/index127.js +1 -1
- package/dist/index13.js.map +1 -1
- package/dist/index131.js +2 -2
- package/dist/index14.js +1 -4
- package/dist/index14.js.map +1 -1
- package/dist/index15.js +8 -8
- package/dist/index15.js.map +1 -1
- package/dist/index158.js +1 -4
- package/dist/index158.js.map +1 -1
- package/dist/index16.js +1 -4
- package/dist/index16.js.map +1 -1
- package/dist/index160.js +1 -4
- package/dist/index160.js.map +1 -1
- package/dist/index169.js +1 -4
- package/dist/index169.js.map +1 -1
- package/dist/index17.js +6 -6
- package/dist/index17.js.map +1 -1
- package/dist/index18.js +1 -4
- package/dist/index18.js.map +1 -1
- package/dist/index183.js +1 -4
- package/dist/index183.js.map +1 -1
- package/dist/index185.js +1 -4
- package/dist/index185.js.map +1 -1
- package/dist/index19.js +3 -3
- package/dist/index19.js.map +1 -1
- package/dist/index196.js +10 -2
- package/dist/index196.js.map +1 -1
- package/dist/index197.js +3 -4
- package/dist/index197.js.map +1 -1
- package/dist/index198.js +35 -2
- package/dist/index198.js.map +1 -1
- package/dist/index199.js +6 -3
- package/dist/index199.js.map +1 -1
- package/dist/index20.js +1 -4
- package/dist/index20.js.map +1 -1
- package/dist/index200.js +232 -32
- package/dist/index200.js.map +1 -1
- package/dist/index201.js +2 -6
- package/dist/index201.js.map +1 -1
- package/dist/index202.js +4 -2
- package/dist/index202.js.map +1 -1
- package/dist/index203.js +3 -2
- package/dist/index203.js.map +1 -1
- package/dist/index204.js +3 -5
- package/dist/index204.js.map +1 -1
- package/dist/index205.js +5 -16
- package/dist/index205.js.map +1 -1
- package/dist/index206.js +10 -10
- package/dist/index206.js.map +1 -1
- package/dist/index207.js +15 -18
- package/dist/index207.js.map +1 -1
- package/dist/index208.js +18 -19
- package/dist/index208.js.map +1 -1
- package/dist/index209.js +15 -24
- package/dist/index209.js.map +1 -1
- package/dist/index21.js +2 -2
- package/dist/index21.js.map +1 -1
- package/dist/index210.js +29 -8
- package/dist/index210.js.map +1 -1
- package/dist/index211.js +8 -2
- package/dist/index211.js.map +1 -1
- package/dist/index212.js +2 -235
- package/dist/index212.js.map +1 -1
- package/dist/index213.js +2 -3
- package/dist/index213.js.map +1 -1
- package/dist/index214.js +368 -3
- package/dist/index214.js.map +1 -1
- package/dist/index215.js +131 -375
- package/dist/index215.js.map +1 -1
- package/dist/index216.js +2 -134
- package/dist/index216.js.map +1 -1
- package/dist/index219.js +1 -1
- package/dist/index219.js.map +1 -1
- package/dist/index22.js +1 -4
- package/dist/index22.js.map +1 -1
- package/dist/index220.js +2 -2
- package/dist/index220.js.map +1 -1
- package/dist/index221.js +2 -10
- package/dist/index221.js.map +1 -1
- package/dist/index222.js +8 -27
- package/dist/index222.js.map +1 -1
- package/dist/index223.js +120 -16
- package/dist/index223.js.map +1 -1
- package/dist/index224.js +6 -9
- package/dist/index224.js.map +1 -1
- package/dist/index225.js +16 -120
- package/dist/index225.js.map +1 -1
- package/dist/index226.js +2 -2
- package/dist/index226.js.map +1 -1
- package/dist/index227.js +2 -4
- package/dist/index227.js.map +1 -1
- package/dist/index228.js +151 -426
- package/dist/index228.js.map +1 -1
- package/dist/index229.js +1 -91
- package/dist/index229.js.map +1 -1
- package/dist/index23.js +1 -1
- package/dist/index23.js.map +1 -1
- package/dist/index230.js +68 -199
- package/dist/index230.js.map +1 -1
- package/dist/index231.js +5 -295
- package/dist/index231.js.map +1 -1
- package/dist/index232.js +14 -5
- package/dist/index232.js.map +1 -1
- package/dist/index233.js +435 -2
- package/dist/index233.js.map +1 -1
- package/dist/index234.js +89 -2
- package/dist/index234.js.map +1 -1
- package/dist/index235.js +4 -2
- package/dist/index235.js.map +1 -1
- package/dist/index236.js +200 -2
- package/dist/index236.js.map +1 -1
- package/dist/index237.js +224 -2
- package/dist/index237.js.map +1 -1
- package/dist/index238.js +258 -2
- package/dist/index238.js.map +1 -1
- package/dist/index239.js +295 -2
- package/dist/index239.js.map +1 -1
- package/dist/index24.js +1 -4
- package/dist/index24.js.map +1 -1
- package/dist/index240.js +6 -160
- package/dist/index240.js.map +1 -1
- package/dist/index241.js +2 -2
- package/dist/index242.js +2 -69
- package/dist/index242.js.map +1 -1
- package/dist/index243.js +2 -5
- package/dist/index243.js.map +1 -1
- package/dist/index244.js +2 -224
- package/dist/index244.js.map +1 -1
- package/dist/index245.js +2 -258
- package/dist/index245.js.map +1 -1
- package/dist/index246.js +2 -2
- package/dist/index247.js +2 -117
- package/dist/index247.js.map +1 -1
- package/dist/index248.js +2 -106
- package/dist/index248.js.map +1 -1
- package/dist/index249.js +117 -2
- package/dist/index249.js.map +1 -1
- package/dist/index25.js +2 -2
- package/dist/index25.js.map +1 -1
- package/dist/index250.js +105 -37
- package/dist/index250.js.map +1 -1
- package/dist/index251.js +4 -2
- package/dist/index251.js.map +1 -1
- package/dist/index252.js +4 -2
- package/dist/index252.js.map +1 -1
- package/dist/index253.js +60 -14
- package/dist/index253.js.map +1 -1
- package/dist/index254.js +3 -2
- package/dist/index254.js.map +1 -1
- package/dist/index255.js +2 -3
- package/dist/index255.js.map +1 -1
- package/dist/index26.js +1 -4
- package/dist/index26.js.map +1 -1
- package/dist/index27.js.map +1 -1
- package/dist/index28.js +1 -4
- package/dist/index28.js.map +1 -1
- package/dist/index29.js +3 -3
- package/dist/index29.js.map +1 -1
- package/dist/index30.js +1 -4
- package/dist/index30.js.map +1 -1
- package/dist/index31.js +19 -19
- package/dist/index31.js.map +1 -1
- package/dist/index32.js +1 -4
- package/dist/index32.js.map +1 -1
- package/dist/index33.js +2 -2
- package/dist/index33.js.map +1 -1
- package/dist/index34.js +1 -4
- package/dist/index34.js.map +1 -1
- package/dist/index35.js +2 -2
- package/dist/index35.js.map +1 -1
- package/dist/index36.js +1 -4
- package/dist/index36.js.map +1 -1
- package/dist/index37.js.map +1 -1
- package/dist/index38.js +1 -4
- package/dist/index38.js.map +1 -1
- package/dist/index39.js.map +1 -1
- package/dist/index40.js +1 -4
- package/dist/index40.js.map +1 -1
- package/dist/index41.js.map +1 -1
- package/dist/index42.js +1 -4
- package/dist/index42.js.map +1 -1
- package/dist/index43.js.map +1 -1
- package/dist/index44.js +1 -4
- package/dist/index44.js.map +1 -1
- package/dist/index45.js.map +1 -1
- package/dist/index46.js +1 -4
- package/dist/index46.js.map +1 -1
- package/dist/index47.js +1 -1
- package/dist/index47.js.map +1 -1
- package/dist/index48.js +1 -4
- package/dist/index48.js.map +1 -1
- package/dist/index49.js +1 -1
- package/dist/index49.js.map +1 -1
- package/dist/index50.js +1 -4
- package/dist/index50.js.map +1 -1
- package/dist/index51.js.map +1 -1
- package/dist/index52.js +1 -4
- package/dist/index52.js.map +1 -1
- package/dist/index53.js.map +1 -1
- package/dist/index54.js +1 -4
- package/dist/index54.js.map +1 -1
- package/dist/index55.js.map +1 -1
- package/dist/index56.js +1 -4
- package/dist/index56.js.map +1 -1
- package/dist/index57.js.map +1 -1
- package/dist/index58.js +1 -4
- package/dist/index58.js.map +1 -1
- package/dist/index59.js.map +1 -1
- package/dist/index60.js +1 -4
- package/dist/index60.js.map +1 -1
- package/dist/index61.js.map +1 -1
- package/dist/index62.js +1 -4
- package/dist/index62.js.map +1 -1
- package/dist/index63.js.map +1 -1
- package/dist/index64.js +1 -4
- package/dist/index64.js.map +1 -1
- package/dist/index65.js +3 -3
- package/dist/index65.js.map +1 -1
- package/dist/index66.js +1 -4
- package/dist/index66.js.map +1 -1
- package/dist/index67.js.map +1 -1
- package/dist/index68.js +1 -4
- package/dist/index68.js.map +1 -1
- package/dist/index69.js +13 -13
- package/dist/index69.js.map +1 -1
- package/dist/index70.js +1 -4
- package/dist/index70.js.map +1 -1
- package/dist/index71.js.map +1 -1
- package/dist/index72.js +1 -1
- package/dist/index72.js.map +1 -1
- package/dist/index73.js.map +1 -1
- package/dist/index74.js +1 -4
- package/dist/index74.js.map +1 -1
- package/dist/index75.js +1 -1
- package/dist/index75.js.map +1 -1
- package/dist/index76.js +1 -4
- package/dist/index76.js.map +1 -1
- package/dist/index77.js.map +1 -1
- package/dist/index78.js +1 -4
- package/dist/index78.js.map +1 -1
- package/dist/index79.js +3 -3
- package/dist/index79.js.map +1 -1
- package/dist/index80.js +1 -4
- package/dist/index80.js.map +1 -1
- package/dist/index81.js +1 -1
- package/dist/index81.js.map +1 -1
- package/dist/index82.js +1 -4
- package/dist/index82.js.map +1 -1
- package/dist/index83.js.map +1 -1
- package/dist/index84.js +1 -4
- package/dist/index84.js.map +1 -1
- package/dist/index85.js.map +1 -1
- package/dist/index86.js +1 -4
- package/dist/index86.js.map +1 -1
- package/dist/index87.js.map +1 -1
- package/dist/index88.js +1 -4
- package/dist/index88.js.map +1 -1
- package/dist/index89.js.map +1 -1
- package/dist/index9.js.map +1 -1
- package/dist/index90.js +1 -4
- package/dist/index90.js.map +1 -1
- package/dist/index91.js.map +1 -1
- package/dist/index92.js +1 -4
- package/dist/index92.js.map +1 -1
- package/dist/index93.js.map +1 -1
- package/dist/index94.js +1 -4
- package/dist/index94.js.map +1 -1
- package/dist/index95.js.map +1 -1
- package/dist/index96.js +1 -4
- package/dist/index96.js.map +1 -1
- package/dist/index97.js.map +1 -1
- package/dist/index98.js +1 -4
- package/dist/index98.js.map +1 -1
- package/dist/index99.js.map +1 -1
- package/dist/style.css +1 -1
- package/package.json +33 -35
package/dist/index69.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
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 "./
|
|
2
|
+
import { findInTree as ae } from "./index225.js";
|
|
3
3
|
import { useId as re } from "./index7.js";
|
|
4
4
|
import oe from "./index118.js";
|
|
5
5
|
import "./index183.js";
|
|
@@ -57,7 +57,7 @@ const le = ["accept", "autofocus", "disabled", "multiple"], se = {
|
|
|
57
57
|
if (r.includes("/"))
|
|
58
58
|
e.push(r);
|
|
59
59
|
else {
|
|
60
|
-
b || (b = await import("./
|
|
60
|
+
b || (b = await import("./index224.js"));
|
|
61
61
|
const o = b.getType(r);
|
|
62
62
|
if (!o)
|
|
63
63
|
throw new Error(
|
|
@@ -71,18 +71,18 @@ const le = ["accept", "autofocus", "disabled", "multiple"], se = {
|
|
|
71
71
|
},
|
|
72
72
|
{ immediate: !0 }
|
|
73
73
|
);
|
|
74
|
-
const z = t.id || `${re().id.value}`, v = `bb_dz_${z}`,
|
|
74
|
+
const z = t.id || `${re().id.value}`, v = `bb_dz_${z}`, n = g(!1);
|
|
75
75
|
let T;
|
|
76
76
|
const k = m(() => ({
|
|
77
77
|
"bb-dropzone": !0,
|
|
78
78
|
"bb-dropzone--errors": R.value,
|
|
79
|
-
"bb-dropzone--dragging":
|
|
79
|
+
"bb-dropzone--dragging": n.value
|
|
80
80
|
})), q = m(() => ({
|
|
81
|
-
dragging:
|
|
81
|
+
dragging: n.value,
|
|
82
82
|
focused: h.value,
|
|
83
83
|
id: z
|
|
84
84
|
})), $ = (e) => {
|
|
85
|
-
if (
|
|
85
|
+
if (n.value = !1, e.dataTransfer) {
|
|
86
86
|
e.stopImmediatePropagation();
|
|
87
87
|
let a;
|
|
88
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) {
|
|
@@ -103,10 +103,10 @@ const le = ["accept", "autofocus", "disabled", "multiple"], se = {
|
|
|
103
103
|
return l("error", f.maxSize(a)), !1;
|
|
104
104
|
let o = !1;
|
|
105
105
|
return t.modelValue && (Array.isArray(t.modelValue) ? o = t.modelValue.some(
|
|
106
|
-
(
|
|
107
|
-
) : o = S(t.modelValue, a)), o ? (l("error", f.uniqueness(a)), !1) : t.accept && !p.value.some((
|
|
106
|
+
(i) => S(i, a)
|
|
107
|
+
) : o = S(t.modelValue, a)), o ? (l("error", f.uniqueness(a)), !1) : t.accept && !p.value.some((s) => {
|
|
108
108
|
let u = !1;
|
|
109
|
-
return
|
|
109
|
+
return s.includes("*") ? u = u || s.split("/")[0] === a.type.split("/")[0] : u = u || s === a.type, u;
|
|
110
110
|
}) ? (l("error", f.accept(a)), !1) : t.maxFiles && Array.isArray(t.modelValue) && t.modelValue.length + r + 1 > t.maxFiles ? (l(
|
|
111
111
|
"error",
|
|
112
112
|
f.maxFiles(a, t.modelValue.length + r + 1)
|
|
@@ -122,16 +122,16 @@ const le = ["accept", "autofocus", "disabled", "multiple"], se = {
|
|
|
122
122
|
r && (r.id === v ? B() : E());
|
|
123
123
|
}
|
|
124
124
|
}, B = () => {
|
|
125
|
-
clearTimeout(T),
|
|
125
|
+
clearTimeout(T), n.value = !0;
|
|
126
126
|
}, E = () => {
|
|
127
127
|
T = setTimeout(() => {
|
|
128
|
-
|
|
128
|
+
n.value = !1;
|
|
129
129
|
}, 100);
|
|
130
130
|
}, A = (e, a = 2) => {
|
|
131
131
|
if (!e)
|
|
132
132
|
return "0 B";
|
|
133
|
-
const r = 1024, o = a || 0,
|
|
134
|
-
return parseFloat((e / Math.pow(r,
|
|
133
|
+
const r = 1024, o = a || 0, i = ["B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"], s = Math.floor(Math.log(e) / Math.log(r));
|
|
134
|
+
return parseFloat((e / Math.pow(r, s)).toFixed(o)) + " " + i[s];
|
|
135
135
|
}, S = (e, a) => !["name", "size", "lastModified", "type"].some((o) => e[o] !== a[o]), f = {
|
|
136
136
|
maxSize: (e) => {
|
|
137
137
|
if (t.maxSize)
|
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 \"aria-hidden\": \"true\",\n class: \"bb-dropzone__submittable-label\"\n}\nconst _hoisted_3 = [\"id\", \"disabled\", \"multiple\", \"name\"]\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\t(typeof createError)[keyof typeof createError]\n>;\n\nexport type BbDropzoneProps = Pick<\n\tCommonProps,\n\t'autofocus' | 'disabled' | 'errors' | 'hasErrors' | 'id' | 'multiple' | 'name'\n> & {\n\t/**\n\t * Array of mime-types or extensions to filter selectable files.\n\t */\n\taccept?: string[];\n\t/**\n\t * Maximum number of acceptable files\n\t */\n\tmaxFiles?: number;\n\t/**\n\t * Max size of the files in bytes.\n\t */\n\tmaxSize?: number;\n\t/**\n\t * Used by v-model.\n\t */\n\tmodelValue: any;\n} & NonVoidElementTag;\n\n// This is the dynamic import for mime\nexport type BbDropzoneEvents = {\n\t(e: 'blur', event: FocusEvent): void;\n\t(e: 'error', data: DropZoneError): void;\n\t(e: 'focus', event: FocusEvent): void;\n\t(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\tif (!Array.isArray(props.accept)) {\n\t\tthrow new Error('Property accept is not an array');\n\t}\n}\nif (props.multiple) {\n\tif (!Array.isArray(props.modelValue)) {\n\t\tthrow new Error(\n\t\t\t'Component is set to multiple but modelValue is not an array'\n\t\t);\n\t}\n}\n\nconst hasFocus = ref(false);\nconst onFocus = (event: FocusEvent) => {\n\thasFocus.value = true;\n\temit('focus', event);\n};\nconst onBlur = (event: FocusEvent) => {\n\thasFocus.value = false;\n\temit('blur', event);\n};\n\n/** Allow dropzone to be submittable (this is flimsy and might break) */\nwatch(\n\t() => props.modelValue,\n\t() => {\n\t\tlet container = new DataTransfer();\n\t\tif (Array.isArray(props.modelValue)) {\n\t\t\tif (props.modelValue.length) {\n\t\t\t\tprops.modelValue.forEach((file) => container.items.add(file));\n\t\t\t}\n\t\t} else {\n\t\t\tif (props.modelValue) container.items.add(props.modelValue);\n\t\t}\n\t\tif (submittable.value) {\n\t\t\tif (container.items.length) {\n\t\t\t\tsubmittable.value.files = container.files;\n\t\t\t} else {\n\t\t\t\tsubmittable.value.files = null;\n\t\t\t}\n\t\t}\n\t}\n);\n\nconst acceptedMimeTypes = ref<string[]>([]);\nconst acceptedMimeTypesString = computed(() =>\n\tacceptedMimeTypes.value.join(',')\n);\nwatch(\n\t() => props.accept,\n\tasync () => {\n\t\tif (props.accept) {\n\t\t\tlet accumulated = [];\n\t\t\tfor (let i = 0; i < props.accept.length; i++) {\n\t\t\t\tconst element = props.accept[i];\n\t\t\t\tif (element.includes('/')) accumulated.push(element);\n\t\t\t\telse {\n\t\t\t\t\tif (!mime) mime = await import('mime');\n\t\t\t\t\tconst foundMime = mime.getType(element);\n\t\t\t\t\tif (!foundMime) {\n\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t`Could not detect the correct mime associated with ${element}`\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\taccumulated.push(foundMime);\n\t\t\t\t}\n\t\t\t}\n\t\t\tacceptedMimeTypes.value = accumulated;\n\t\t}\n\t},\n\t{ 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\treturn {\n\t\t'bb-dropzone': true,\n\t\t'bb-dropzone--errors': hasErrors.value,\n\t\t'bb-dropzone--dragging': dragging.value,\n\t};\n});\nconst slotAttributes = computed(() => {\n\treturn {\n\t\tdragging: dragging.value,\n\t\tfocused: hasFocus.value,\n\t\tid: id,\n\t};\n});\n\n/**\n * Component handlers\n */\nconst onDrop = (event: DragEvent) => {\n\tdragging.value = false;\n\n\tif (event.dataTransfer) {\n\t\tevent.stopImmediatePropagation();\n\t\tlet files;\n\t\tfiles = Array.from(event.dataTransfer.files);\n\t\tfiles = parseFiles(files);\n\t\tif (props.multiple) {\n\t\t\tif (Array.isArray(props.modelValue)) {\n\t\t\t\temit('update:modelValue', [...props.modelValue, ...files]);\n\t\t\t}\n\t\t} else {\n\t\t\tfiles = files[0];\n\t\t\temit('update:modelValue', files);\n\t\t}\n\t\tif (event.currentTarget instanceof HTMLLabelElement) {\n\t\t\tconst innerInput = event.currentTarget.querySelector('input[type=file]');\n\t\t\tif (innerInput instanceof HTMLInputElement) {\n\t\t\t\tinnerInput.focus();\n\t\t\t}\n\t\t}\n\t}\n};\nconst onChange = (event: Event) => {\n\tif (event.target instanceof HTMLInputElement) {\n\t\tif (event.target.files) {\n\t\t\tlet files;\n\t\t\tfiles = parseFiles(Array.from(event.target.files));\n\t\t\tif (props.multiple) {\n\t\t\t\tif (Array.isArray(props.modelValue)) {\n\t\t\t\t\temit('update:modelValue', [...props.modelValue, ...files]);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfiles = files[0];\n\t\t\t\temit('update:modelValue', files);\n\t\t\t}\n\t\t}\n\t\tevent.target.value = '';\n\t\tevent.target.files = null;\n\t}\n};\n\nconst parseFiles = (files: File[]) => {\n\treturn files.filter((file, index) => {\n\t\t// Sizecheck\n\t\tif (props.maxSize) {\n\t\t\tlet passing = file.size <= props.maxSize;\n\t\t\tif (!passing) {\n\t\t\t\temit('error', createError.maxSize(file));\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\t// Uniqueness check\n\t\tlet alreadyExists = false;\n\t\tif (props.modelValue) {\n\t\t\tif (Array.isArray(props.modelValue)) {\n\t\t\t\talreadyExists = props.modelValue.some((current) =>\n\t\t\t\t\tcompareFiles(current, file)\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\talreadyExists = compareFiles(props.modelValue, file);\n\t\t\t}\n\t\t}\n\t\tif (alreadyExists) {\n\t\t\temit('error', createError.uniqueness(file));\n\t\t\treturn false;\n\t\t}\n\t\t// Mime type check\n\t\tif (props.accept) {\n\t\t\tconst mimePassed = acceptedMimeTypes.value.some((mime) => {\n\t\t\t\tlet found = false;\n\t\t\t\tif (mime.includes('*'))\n\t\t\t\t\tfound = found || mime.split('/')[0] === file.type.split('/')[0];\n\t\t\t\telse found = found || mime === file.type;\n\t\t\t\treturn found;\n\t\t\t});\n\t\t\tif (!mimePassed) {\n\t\t\t\temit('error', createError.accept(file));\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\t// Max files check\n\t\tif (props.maxFiles) {\n\t\t\tif (Array.isArray(props.modelValue)) {\n\t\t\t\tif (props.modelValue.length + index + 1 > props.maxFiles) {\n\t\t\t\t\temit(\n\t\t\t\t\t\t'error',\n\t\t\t\t\t\tcreateError.maxFiles(file, props.modelValue.length + index + 1)\n\t\t\t\t\t);\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t});\n};\n\nconst onDragOver = (event: Event) => {\n\t// Find the closest dropzone in case of nested dropzones\n\tconst target = event.target;\n\tif (target instanceof HTMLElement) {\n\t\tconst closestDropzone = findInTree([target], 'parentElement', (el) =>\n\t\t\tel.classList.contains('bb-dropzone')\n\t\t);\n\t\tif (closestDropzone) {\n\t\t\t/* When dragging over this dropzone set as dragging */\n\t\t\tif (closestDropzone.id === containerId) {\n\t\t\t\tsetDragging();\n\t\t\t\t/* When dragging over a nested dropzone do not highlight this dropzone */\n\t\t\t} else {\n\t\t\t\tunsetDragging();\n\t\t\t}\n\t\t}\n\t}\n};\n\nconst setDragging = () => {\n\tclearTimeout(draggingTimeout);\n\tdragging.value = true;\n};\n\nconst unsetDragging = () => {\n\tdraggingTimeout = setTimeout(() => {\n\t\tdragging.value = false;\n\t}, 100);\n};\n\nconst bytesToUnit = (bytes: number, decimals = 2) => {\n\tif (!bytes) return '0 B';\n\tconst k = 1024;\n\tconst dm = decimals || 0;\n\tconst sizes = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n\tconst i = Math.floor(Math.log(bytes) / Math.log(k));\n\treturn 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\tconst properties: (keyof File)[] = ['name', 'size', 'lastModified', 'type'];\n\treturn !properties.some((key) => file[key] !== otherFile[key]);\n};\n\n/**\n * Helper that creates errors based on component properties\n */\nconst createError = {\n\tmaxSize: (file: File) => {\n\t\t// Todo update to isNil\n\t\tif (props.maxSize) {\n\t\t\treturn {\n\t\t\t\ttype: 'maxSize',\n\t\t\t\tfile: file,\n\t\t\t\tformattedMaxSize: bytesToUnit(+props.maxSize),\n\t\t\t\tformattedSize: bytesToUnit(file.size),\n\t\t\t\tfilename: file.name,\n\t\t\t} as const;\n\t\t} else\n\t\t\tthrow new Error(\n\t\t\t\t'Requested to create an error for maxSize without providing a maxSize.'\n\t\t\t);\n\t},\n\tuniqueness: (file: File) => {\n\t\treturn {\n\t\t\ttype: 'uniqueness',\n\t\t\tfile: file,\n\t\t\tfilename: file.name,\n\t\t} as const;\n\t},\n\taccept: (file: File) => {\n\t\treturn {\n\t\t\ttype: 'accept',\n\t\t\tfile: file,\n\t\t\tacceptedMimeTypes: acceptedMimeTypes.value,\n\t\t\tmimeType: file.type,\n\t\t\tfilename: file.name,\n\t\t} as const;\n\t},\n\tmaxFiles: (file: File, totalFiles: number) => {\n\t\treturn {\n\t\t\ttype: 'maxFiles',\n\t\t\tfile: file,\n\t\t\tmaxFiles: props.maxFiles,\n\t\t\ttotalFiles,\n\t\t\tfilename: file.name,\n\t\t} as const;\n\t},\n};\n\nconst computedErrors = computed(() => {\n\treturn props.errors ? ([] as string[]).concat(props.errors) : [];\n});\n\nconst hasErrors = computed(\n\t() => Boolean(computedErrors.value.length) || props.hasErrors\n);\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createBlock(_resolveDynamicComponent(_ctx.tag), {\n id: containerId,\n class: _normalizeClass(classes.value)\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"label\", {\n onDragenter: _withModifiers(setDragging, [\"prevent\"]),\n onDragleave: _withModifiers(unsetDragging, [\"prevent\"]),\n onDragover: _withModifiers(onDragOver, [\"prevent\"]),\n onDrop: _withModifiers(onDrop, [\"prevent\"])\n }, [\n _createElementVNode(\"input\", {\n accept: acceptedMimeTypesString.value,\n autofocus: _ctx.autofocus,\n disabled: _ctx.disabled,\n multiple: _ctx.multiple,\n type: \"file\",\n onBlur: onBlur,\n onChange: onChange,\n onFocus: onFocus\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 id: _unref(id),\n ref_key: \"submittable\",\n ref: submittable,\n class: \"bb-dropzone__submittable-input\",\n disabled: _ctx.disabled,\n multiple: _ctx.multiple,\n name: _ctx.name,\n type: \"file\"\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 key: error,\n class: \"bb-dropzone__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":";;;;;AAGA,MAAMA,KAAa,CAAC,UAAU,aAAa,YAAY,UAAU,GAC3DC,KAAa;AAAA,EACjB,eAAe;AAAA,EACf,OAAO;AACT,GACMC,KAAa,CAAC,MAAM,YAAY,YAAY,MAAM,GAClDC,KAAa,EAAE,OAAO,yBA0CAC,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,UACL,CAAC,MAAM,QAAQA,EAAM,MAAM;AACxB,YAAA,IAAI,MAAM,iCAAiC;AAGnD,QAAIA,EAAM,YACL,CAAC,MAAM,QAAQA,EAAM,UAAU;AAClC,YAAM,IAAI;AAAA,QACT;AAAA,MAAA;AAKG,UAAAI,IAAWD,EAAI,EAAK,GACpBE,IAAU,CAACC,MAAsB;AACtC,MAAAF,EAAS,QAAQ,IACjBH,EAAK,SAASK,CAAK;AAAA,IAAA,GAEdC,IAAS,CAACD,MAAsB;AACrC,MAAAF,EAAS,QAAQ,IACjBH,EAAK,QAAQK,CAAK;AAAA,IAAA;AAInB,IAAAE;AAAA,MACC,MAAMR,EAAM;AAAA,MACZ,MAAM;AACD,YAAAS,IAAY,IAAI;AACpB,QAAI,MAAM,QAAQT,EAAM,UAAU,IAC7BA,EAAM,WAAW,UACdA,EAAA,WAAW,QAAQ,CAACU,MAASD,EAAU,MAAM,IAAIC,CAAI,CAAC,IAGzDV,EAAM,cAAsBS,EAAA,MAAM,IAAIT,EAAM,UAAU,GAEvDE,EAAY,UACXO,EAAU,MAAM,SACPP,EAAA,MAAM,QAAQO,EAAU,QAEpCP,EAAY,MAAM,QAAQ;AAAA,MAG7B;AAAA,IAAA;AAGK,UAAAS,IAAoBR,EAAc,CAAA,CAAE,GACpCS,IAA0BC;AAAA,MAAS,MACxCF,EAAkB,MAAM,KAAK,GAAG;AAAA,IAAA;AAEjC,IAAAH;AAAA,MACC,MAAMR,EAAM;AAAA,MACZ,YAAY;AACX,YAAIA,EAAM,QAAQ;AACjB,cAAIc,IAAc,CAAA;AAClB,mBAASC,IAAI,GAAGA,IAAIf,EAAM,OAAO,QAAQe,KAAK;AACvC,kBAAAC,IAAUhB,EAAM,OAAOe,CAAC;AAC1B,gBAAAC,EAAQ,SAAS,GAAG;AAAG,cAAAF,EAAY,KAAKE,CAAO;AAAA,iBAC9C;AACJ,cAAKjB,MAAaA,IAAA,MAAM,OAAO,eAAM;AAC/B,oBAAAkB,IAAYlB,EAAK,QAAQiB,CAAO;AACtC,kBAAI,CAACC;AACJ,sBAAM,IAAI;AAAA,kBACT,qDAAqDD,CAAO;AAAA,gBAAA;AAG9D,cAAAF,EAAY,KAAKG,CAAS;AAAA,YAC3B;AAAA,UACD;AACA,UAAAN,EAAkB,QAAQG;AAAA,QAC3B;AAAA,MACD;AAAA,MACA,EAAE,WAAW,GAAK;AAAA,IAAA;AAMnB,UAAMI,IAAKlB,EAAM,MAAM,GAAGmB,KAAQ,GAAG,KAAK,IACpCC,IAAc,SAASF,CAAE,IAEzBG,IAAWlB,EAAI,EAAK;AAEtB,QAAAmB;AAEE,UAAAC,IAAUV,EAAS,OACjB;AAAA,MACN,eAAe;AAAA,MACf,uBAAuBW,EAAU;AAAA,MACjC,yBAAyBH,EAAS;AAAA,IAAA,EAEnC,GACKI,IAAiBZ,EAAS,OACxB;AAAA,MACN,UAAUQ,EAAS;AAAA,MACnB,SAASjB,EAAS;AAAA,MAClB,IAAAc;AAAA,IAAA,EAED,GAKKQ,IAAS,CAACpB,MAAqB;AAGpC,UAFAe,EAAS,QAAQ,IAEbf,EAAM,cAAc;AACvB,QAAAA,EAAM,yBAAyB;AAC3B,YAAAqB;AAWA,YAVJA,IAAQ,MAAM,KAAKrB,EAAM,aAAa,KAAK,GAC3CqB,IAAQC,EAAWD,CAAK,GACpB3B,EAAM,WACL,MAAM,QAAQA,EAAM,UAAU,KACjCC,EAAK,qBAAqB,CAAC,GAAGD,EAAM,YAAY,GAAG2B,CAAK,CAAC,KAG1DA,IAAQA,EAAM,CAAC,GACf1B,EAAK,qBAAqB0B,CAAK,IAE5BrB,EAAM,yBAAyB,kBAAkB;AACpD,gBAAMuB,IAAavB,EAAM,cAAc,cAAc,kBAAkB;AACvE,UAAIuB,aAAsB,oBACzBA,EAAW,MAAM;AAAA,QAEnB;AAAA,MACD;AAAA,IAAA,GAEKC,IAAW,CAACxB,MAAiB;AAC9B,UAAAA,EAAM,kBAAkB,kBAAkB;AACzC,YAAAA,EAAM,OAAO,OAAO;AACnB,cAAAqB;AACJ,UAAAA,IAAQC,EAAW,MAAM,KAAKtB,EAAM,OAAO,KAAK,CAAC,GAC7CN,EAAM,WACL,MAAM,QAAQA,EAAM,UAAU,KACjCC,EAAK,qBAAqB,CAAC,GAAGD,EAAM,YAAY,GAAG2B,CAAK,CAAC,KAG1DA,IAAQA,EAAM,CAAC,GACf1B,EAAK,qBAAqB0B,CAAK;AAAA,QAEjC;AACA,QAAArB,EAAM,OAAO,QAAQ,IACrBA,EAAM,OAAO,QAAQ;AAAA,MACtB;AAAA,IAAA,GAGKsB,IAAa,CAACD,MACZA,EAAM,OAAO,CAACjB,GAAMqB,MAAU;AAEpC,UAAI/B,EAAM,WAEL,EADUU,EAAK,QAAQV,EAAM;AAEhC,eAAAC,EAAK,SAAS+B,EAAY,QAAQtB,CAAI,CAAC,GAChC;AAIT,UAAIuB,IAAgB;AAUpB,aATIjC,EAAM,eACL,MAAM,QAAQA,EAAM,UAAU,IACjCiC,IAAgBjC,EAAM,WAAW;AAAA,QAAK,CAACkC,MACtCC,EAAaD,GAASxB,CAAI;AAAA,MAAA,IAGXuB,IAAAE,EAAanC,EAAM,YAAYU,CAAI,IAGjDuB,KACHhC,EAAK,SAAS+B,EAAY,WAAWtB,CAAI,CAAC,GACnC,MAGJV,EAAM,UAQL,CAPeW,EAAkB,MAAM,KAAK,CAACZ,MAAS;AACzD,YAAIqC,IAAQ;AACRrC,eAAAA,EAAK,SAAS,GAAG,IACpBqC,IAAQA,KAASrC,EAAK,MAAM,GAAG,EAAE,CAAC,MAAMW,EAAK,KAAK,MAAM,GAAG,EAAE,CAAC,IAClD0B,IAAAA,KAASrC,MAASW,EAAK,MAC7B0B;AAAA,MAAA,CACP,KAEAnC,EAAK,SAAS+B,EAAY,OAAOtB,CAAI,CAAC,GAC/B,MAILV,EAAM,YACL,MAAM,QAAQA,EAAM,UAAU,KAC7BA,EAAM,WAAW,SAAS+B,IAAQ,IAAI/B,EAAM,YAC/CC;AAAA,QACC;AAAA,QACA+B,EAAY,SAAStB,GAAMV,EAAM,WAAW,SAAS+B,IAAQ,CAAC;AAAA,MAAA,GAExD,MAIH;AAAA,IAAA,CACP,GAGIM,IAAa,CAAC/B,MAAiB;AAEpC,YAAMgC,IAAShC,EAAM;AACrB,UAAIgC,aAAkB,aAAa;AAClC,cAAMC,IAAkBC;AAAA,UAAW,CAACF,CAAM;AAAA,UAAG;AAAA,UAAiB,CAACG,MAC9DA,EAAG,UAAU,SAAS,aAAa;AAAA,QAAA;AAEpC,QAAIF,MAECA,EAAgB,OAAOnB,IACdsB,MAGEC;MAGjB;AAAA,IAAA,GAGKD,IAAc,MAAM;AACzB,mBAAapB,CAAe,GAC5BD,EAAS,QAAQ;AAAA,IAAA,GAGZsB,IAAgB,MAAM;AAC3B,MAAArB,IAAkB,WAAW,MAAM;AAClC,QAAAD,EAAS,QAAQ;AAAA,SACf,GAAG;AAAA,IAAA,GAGDuB,IAAc,CAACC,GAAeC,IAAW,MAAM;AACpD,UAAI,CAACD;AAAc,eAAA;AACnB,YAAME,IAAI,MACJC,IAAKF,KAAY,GACjBG,IAAQ,CAAC,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,GAC5DlC,IAAI,KAAK,MAAM,KAAK,IAAI8B,CAAK,IAAI,KAAK,IAAIE,CAAC,CAAC;AAClD,aAAO,YAAYF,IAAQ,KAAK,IAAIE,GAAGhC,CAAC,GAAG,QAAQiC,CAAE,CAAC,IAAI,MAAMC,EAAMlC,CAAC;AAAA,IAAA,GAQlEoB,IAAe,CAACzB,GAAYwC,MAE1B,CAD4B,CAAC,QAAQ,QAAQ,gBAAgB,MAAM,EACvD,KAAK,CAACC,MAAQzC,EAAKyC,CAAG,MAAMD,EAAUC,CAAG,CAAC,GAMxDnB,IAAc;AAAA,MACnB,SAAS,CAACtB,MAAe;AAExB,YAAIV,EAAM;AACF,iBAAA;AAAA,YACN,MAAM;AAAA,YACN,MAAAU;AAAA,YACA,kBAAkBkC,EAAY,CAAC5C,EAAM,OAAO;AAAA,YAC5C,eAAe4C,EAAYlC,EAAK,IAAI;AAAA,YACpC,UAAUA,EAAK;AAAA,UAAA;AAGhB,cAAM,IAAI;AAAA,UACT;AAAA,QAAA;AAAA,MAEH;AAAA,MACA,YAAY,CAACA,OACL;AAAA,QACN,MAAM;AAAA,QACN,MAAAA;AAAA,QACA,UAAUA,EAAK;AAAA,MAAA;AAAA,MAGjB,QAAQ,CAACA,OACD;AAAA,QACN,MAAM;AAAA,QACN,MAAAA;AAAA,QACA,mBAAmBC,EAAkB;AAAA,QACrC,UAAUD,EAAK;AAAA,QACf,UAAUA,EAAK;AAAA,MAAA;AAAA,MAGjB,UAAU,CAACA,GAAY0C,OACf;AAAA,QACN,MAAM;AAAA,QACN,MAAA1C;AAAA,QACA,UAAUV,EAAM;AAAA,QAChB,YAAAoD;AAAA,QACA,UAAU1C,EAAK;AAAA,MAAA;AAAA,IAEjB,GAGK2C,IAAiBxC,EAAS,MACxBb,EAAM,SAAU,CAAC,EAAe,OAAOA,EAAM,MAAM,IAAI,EAC9D,GAEKwB,IAAYX;AAAA,MACjB,MAAM,EAAQwC,EAAe,MAAM,UAAWrD,EAAM;AAAA,IAAA;AAG9C,WAAA,CAACsD,GAAUC,OACRC,EAAc,GAAAC,EAAaC,EAAyBJ,EAAK,GAAG,GAAG;AAAA,MACrE,IAAIlC;AAAA,MACJ,OAAOuC,EAAgBpC,EAAQ,KAAK;AAAA,IAAA,GACnC;AAAA,MACD,SAASqC,EAAS,MAAM;AAAA,QACtBC,EAAoB,SAAS;AAAA,UAC3B,aAAaC,EAAepB,GAAa,CAAC,SAAS,CAAC;AAAA,UACpD,aAAaoB,EAAenB,GAAe,CAAC,SAAS,CAAC;AAAA,UACtD,YAAYmB,EAAezB,GAAY,CAAC,SAAS,CAAC;AAAA,UAClD,QAAQyB,EAAepC,GAAQ,CAAC,SAAS,CAAC;AAAA,QAAA,GACzC;AAAA,UACDmC,EAAoB,SAAS;AAAA,YAC3B,QAAQjD,EAAwB;AAAA,YAChC,WAAW0C,EAAK;AAAA,YAChB,UAAUA,EAAK;AAAA,YACf,UAAUA,EAAK;AAAA,YACf,MAAM;AAAA,YACN,QAAA/C;AAAA,YACA,UAAAuB;AAAA,YACA,SAAAzB;AAAA,UAAA,GACC,MAAM,IAAId,EAAU;AAAA,UACvBwE,EAAYT,EAAK,QAAQ,WAAWU,EAAgBC,EAAoBxC,EAAe,KAAK,CAAC,CAAC;AAAA,WAC7F,EAAE;AAAA,QACLoC,EAAoB,SAASrE,IAAY;AAAA,UACvC0E,EAAiB,gBAAgB;AAAA,UACjCL,EAAoB,SAAS;AAAA,YAC3B,IAAIM,EAAOjD,CAAE;AAAA,YACb,SAAS;AAAA,YACT,KAAKhB;AAAA,YACL,OAAO;AAAA,YACP,UAAUoD,EAAK;AAAA,YACf,UAAUA,EAAK;AAAA,YACf,MAAMA,EAAK;AAAA,YACX,MAAM;AAAA,UAAA,GACL,MAAM,GAAG7D,EAAU;AAAA,QAAA,CACvB;AAAA,QACDoE,EAAoB,QAAQnE,IAAY;AAAA,UACtC0E,EAAaC,IAAgB,EAAE,KAAK,UAAU;AAAA,YAC5C,SAAST,EAAS,MAAM;AAAA,eACrBJ,EAAW,EAAI,GAAGc,EAAoBC,GAAW,MAAMC,GAAYnB,EAAe,OAAO,CAACoB,OACjFjB,EAAA,GAAcc,EAAoB,QAAQ;AAAA,gBAChD,KAAKG;AAAA,gBACL,OAAO;AAAA,cACN,GAAAC,GAAiBD,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"],"sourcesContent":["<template>\n\t<component :is=\"tag\" :id=\"containerId\" :class=\"classes\">\n\t\t<label\n\t\t\t@dragenter.prevent=\"setDragging\"\n\t\t\t@dragleave.prevent=\"unsetDragging\"\n\t\t\t@dragover.prevent=\"onDragOver\"\n\t\t\t@drop.prevent=\"onDrop\"\n\t\t>\n\t\t\t<input\n\t\t\t\t:accept=\"acceptedMimeTypesString\"\n\t\t\t\t:autofocus=\"autofocus\"\n\t\t\t\t:disabled=\"disabled\"\n\t\t\t\t:multiple=\"multiple\"\n\t\t\t\ttype=\"file\"\n\t\t\t\t@blur=\"onBlur\"\n\t\t\t\t@change=\"onChange\"\n\t\t\t\t@focus=\"onFocus\"\n\t\t\t/>\n\t\t\t<slot v-bind=\"slotAttributes\"></slot>\n\t\t</label>\n\t\t<label aria-hidden=\"true\" class=\"bb-dropzone__submittable-label\">\n\t\t\tServer files\n\t\t\t<input\n\t\t\t\t:id=\"id\"\n\t\t\t\tref=\"submittable\"\n\t\t\t\tclass=\"bb-dropzone__submittable-input\"\n\t\t\t\t:disabled=\"disabled\"\n\t\t\t\t:multiple=\"multiple\"\n\t\t\t\t:name=\"name\"\n\t\t\t\ttype=\"file\"\n\t\t\t/>\n\t\t</label>\n\n\t\t<span class=\"bb-dropzone__errors\">\n\t\t\t<BbSmoothHeight tag=\"span\">\n\t\t\t\t<span\n\t\t\t\t\tv-for=\"error in computedErrors\"\n\t\t\t\t\t:key=\"error\"\n\t\t\t\t\tclass=\"bb-dropzone__error\"\n\t\t\t\t\t>{{ error }}</span\n\t\t\t\t>\n\t\t\t</BbSmoothHeight>\n\t\t</span>\n\t</component>\n</template>\n\n<script setup lang=\"ts\">\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\t(typeof createError)[keyof typeof createError]\n>;\n\nexport type BbDropzoneProps = Pick<\n\tCommonProps,\n\t'autofocus' | 'disabled' | 'errors' | 'hasErrors' | 'id' | 'multiple' | 'name'\n> & {\n\t/**\n\t * Array of mime-types or extensions to filter selectable files.\n\t */\n\taccept?: string[];\n\t/**\n\t * Maximum number of acceptable files\n\t */\n\tmaxFiles?: number;\n\t/**\n\t * Max size of the files in bytes.\n\t */\n\tmaxSize?: number;\n\t/**\n\t * Used by v-model.\n\t */\n\tmodelValue: any;\n} & NonVoidElementTag;\n\n// This is the dynamic import for mime\nlet mime: any;\n\nconst props = withDefaults(defineProps<BbDropzoneProps>(), {\n\ttag: 'div',\n});\n\nexport type BbDropzoneEvents = {\n\t(e: 'blur', event: FocusEvent): void;\n\t(e: 'error', data: DropZoneError): void;\n\t(e: 'focus', event: FocusEvent): void;\n\t(e: 'update:modelValue', data: any): void;\n};\nconst emit = defineEmits<BbDropzoneEvents>();\n\ndefineSlots<{\n\tdefault?: (props: { dragging: boolean; focused: boolean; id: string }) => any;\n}>();\n\nconst submittable = ref<any | null>(null);\n\nif (props.accept) {\n\tif (!Array.isArray(props.accept)) {\n\t\tthrow new Error('Property accept is not an array');\n\t}\n}\nif (props.multiple) {\n\tif (!Array.isArray(props.modelValue)) {\n\t\tthrow new Error(\n\t\t\t'Component is set to multiple but modelValue is not an array'\n\t\t);\n\t}\n}\n\nconst hasFocus = ref(false);\nconst onFocus = (event: FocusEvent) => {\n\thasFocus.value = true;\n\temit('focus', event);\n};\nconst onBlur = (event: FocusEvent) => {\n\thasFocus.value = false;\n\temit('blur', event);\n};\n\n/** Allow dropzone to be submittable (this is flimsy and might break) */\nwatch(\n\t() => props.modelValue,\n\t() => {\n\t\tlet container = new DataTransfer();\n\t\tif (Array.isArray(props.modelValue)) {\n\t\t\tif (props.modelValue.length) {\n\t\t\t\tprops.modelValue.forEach((file) => container.items.add(file));\n\t\t\t}\n\t\t} else {\n\t\t\tif (props.modelValue) container.items.add(props.modelValue);\n\t\t}\n\t\tif (submittable.value) {\n\t\t\tif (container.items.length) {\n\t\t\t\tsubmittable.value.files = container.files;\n\t\t\t} else {\n\t\t\t\tsubmittable.value.files = null;\n\t\t\t}\n\t\t}\n\t}\n);\n\nconst acceptedMimeTypes = ref<string[]>([]);\nconst acceptedMimeTypesString = computed(() =>\n\tacceptedMimeTypes.value.join(',')\n);\nwatch(\n\t() => props.accept,\n\tasync () => {\n\t\tif (props.accept) {\n\t\t\tlet accumulated = [];\n\t\t\tfor (let i = 0; i < props.accept.length; i++) {\n\t\t\t\tconst element = props.accept[i];\n\t\t\t\tif (element.includes('/')) accumulated.push(element);\n\t\t\t\telse {\n\t\t\t\t\tif (!mime) mime = await import('mime');\n\t\t\t\t\tconst foundMime = mime.getType(element);\n\t\t\t\t\tif (!foundMime) {\n\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t`Could not detect the correct mime associated with ${element}`\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\taccumulated.push(foundMime);\n\t\t\t\t}\n\t\t\t}\n\t\t\tacceptedMimeTypes.value = accumulated;\n\t\t}\n\t},\n\t{ 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\treturn {\n\t\t'bb-dropzone': true,\n\t\t'bb-dropzone--errors': hasErrors.value,\n\t\t'bb-dropzone--dragging': dragging.value,\n\t};\n});\nconst slotAttributes = computed(() => {\n\treturn {\n\t\tdragging: dragging.value,\n\t\tfocused: hasFocus.value,\n\t\tid: id,\n\t};\n});\n\n/**\n * Component handlers\n */\nconst onDrop = (event: DragEvent) => {\n\tdragging.value = false;\n\n\tif (event.dataTransfer) {\n\t\tevent.stopImmediatePropagation();\n\t\tlet files;\n\t\tfiles = Array.from(event.dataTransfer.files);\n\t\tfiles = parseFiles(files);\n\t\tif (props.multiple) {\n\t\t\tif (Array.isArray(props.modelValue)) {\n\t\t\t\temit('update:modelValue', [...props.modelValue, ...files]);\n\t\t\t}\n\t\t} else {\n\t\t\tfiles = files[0];\n\t\t\temit('update:modelValue', files);\n\t\t}\n\t\tif (event.currentTarget instanceof HTMLLabelElement) {\n\t\t\tconst innerInput = event.currentTarget.querySelector('input[type=file]');\n\t\t\tif (innerInput instanceof HTMLInputElement) {\n\t\t\t\tinnerInput.focus();\n\t\t\t}\n\t\t}\n\t}\n};\nconst onChange = (event: Event) => {\n\tif (event.target instanceof HTMLInputElement) {\n\t\tif (event.target.files) {\n\t\t\tlet files;\n\t\t\tfiles = parseFiles(Array.from(event.target.files));\n\t\t\tif (props.multiple) {\n\t\t\t\tif (Array.isArray(props.modelValue)) {\n\t\t\t\t\temit('update:modelValue', [...props.modelValue, ...files]);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfiles = files[0];\n\t\t\t\temit('update:modelValue', files);\n\t\t\t}\n\t\t}\n\t\tevent.target.value = '';\n\t\tevent.target.files = null;\n\t}\n};\n\nconst parseFiles = (files: File[]) => {\n\treturn files.filter((file, index) => {\n\t\t// Sizecheck\n\t\tif (props.maxSize) {\n\t\t\tlet passing = file.size <= props.maxSize;\n\t\t\tif (!passing) {\n\t\t\t\temit('error', createError.maxSize(file));\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\t// Uniqueness check\n\t\tlet alreadyExists = false;\n\t\tif (props.modelValue) {\n\t\t\tif (Array.isArray(props.modelValue)) {\n\t\t\t\talreadyExists = props.modelValue.some((current) =>\n\t\t\t\t\tcompareFiles(current, file)\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\talreadyExists = compareFiles(props.modelValue, file);\n\t\t\t}\n\t\t}\n\t\tif (alreadyExists) {\n\t\t\temit('error', createError.uniqueness(file));\n\t\t\treturn false;\n\t\t}\n\t\t// Mime type check\n\t\tif (props.accept) {\n\t\t\tconst mimePassed = acceptedMimeTypes.value.some((mime) => {\n\t\t\t\tlet found = false;\n\t\t\t\tif (mime.includes('*'))\n\t\t\t\t\tfound = found || mime.split('/')[0] === file.type.split('/')[0];\n\t\t\t\telse found = found || mime === file.type;\n\t\t\t\treturn found;\n\t\t\t});\n\t\t\tif (!mimePassed) {\n\t\t\t\temit('error', createError.accept(file));\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\t// Max files check\n\t\tif (props.maxFiles) {\n\t\t\tif (Array.isArray(props.modelValue)) {\n\t\t\t\tif (props.modelValue.length + index + 1 > props.maxFiles) {\n\t\t\t\t\temit(\n\t\t\t\t\t\t'error',\n\t\t\t\t\t\tcreateError.maxFiles(file, props.modelValue.length + index + 1)\n\t\t\t\t\t);\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t});\n};\n\nconst onDragOver = (event: Event) => {\n\t// Find the closest dropzone in case of nested dropzones\n\tconst target = event.target;\n\tif (target instanceof HTMLElement) {\n\t\tconst closestDropzone = findInTree([target], 'parentElement', (el) =>\n\t\t\tel.classList.contains('bb-dropzone')\n\t\t);\n\t\tif (closestDropzone) {\n\t\t\t/* When dragging over this dropzone set as dragging */\n\t\t\tif (closestDropzone.id === containerId) {\n\t\t\t\tsetDragging();\n\t\t\t\t/* When dragging over a nested dropzone do not highlight this dropzone */\n\t\t\t} else {\n\t\t\t\tunsetDragging();\n\t\t\t}\n\t\t}\n\t}\n};\n\nconst setDragging = () => {\n\tclearTimeout(draggingTimeout);\n\tdragging.value = true;\n};\n\nconst unsetDragging = () => {\n\tdraggingTimeout = setTimeout(() => {\n\t\tdragging.value = false;\n\t}, 100);\n};\n\nconst bytesToUnit = (bytes: number, decimals = 2) => {\n\tif (!bytes) return '0 B';\n\tconst k = 1024;\n\tconst dm = decimals || 0;\n\tconst sizes = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n\tconst i = Math.floor(Math.log(bytes) / Math.log(k));\n\treturn 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\tconst properties: (keyof File)[] = ['name', 'size', 'lastModified', 'type'];\n\treturn !properties.some((key) => file[key] !== otherFile[key]);\n};\n\n/**\n * Helper that creates errors based on component properties\n */\nconst createError = {\n\tmaxSize: (file: File) => {\n\t\t// Todo update to isNil\n\t\tif (props.maxSize) {\n\t\t\treturn {\n\t\t\t\ttype: 'maxSize',\n\t\t\t\tfile: file,\n\t\t\t\tformattedMaxSize: bytesToUnit(+props.maxSize),\n\t\t\t\tformattedSize: bytesToUnit(file.size),\n\t\t\t\tfilename: file.name,\n\t\t\t} as const;\n\t\t} else\n\t\t\tthrow new Error(\n\t\t\t\t'Requested to create an error for maxSize without providing a maxSize.'\n\t\t\t);\n\t},\n\tuniqueness: (file: File) => {\n\t\treturn {\n\t\t\ttype: 'uniqueness',\n\t\t\tfile: file,\n\t\t\tfilename: file.name,\n\t\t} as const;\n\t},\n\taccept: (file: File) => {\n\t\treturn {\n\t\t\ttype: 'accept',\n\t\t\tfile: file,\n\t\t\tacceptedMimeTypes: acceptedMimeTypes.value,\n\t\t\tmimeType: file.type,\n\t\t\tfilename: file.name,\n\t\t} as const;\n\t},\n\tmaxFiles: (file: File, totalFiles: number) => {\n\t\treturn {\n\t\t\ttype: 'maxFiles',\n\t\t\tfile: file,\n\t\t\tmaxFiles: props.maxFiles,\n\t\t\ttotalFiles,\n\t\t\tfilename: file.name,\n\t\t} as const;\n\t},\n};\n\nconst computedErrors = computed(() => {\n\treturn props.errors ? ([] as string[]).concat(props.errors) : [];\n});\n\nconst hasErrors = computed(\n\t() => Boolean(computedErrors.value.length) || props.hasErrors\n);\n</script>\n\n<style lang=\"postcss\">\n@import '@/assets/css/BbDropzone';\n</style>\n"],"names":["mime","props","__props","emit","__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"],"mappings":"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"}
|
package/dist/index70.js
CHANGED
package/dist/index70.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index70.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index70.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
package/dist/index71.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index71.js","sources":["../src/components/BbHover/BbHover.vue
|
|
1
|
+
{"version":3,"file":"index71.js","sources":["../src/components/BbHover/BbHover.vue"],"sourcesContent":["<template>\n\t<slot :is-hovering=\"isHovering\" :props=\"{ onMouseenter }\"></slot>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref } from 'vue';\n\ndefineSlots<{\n\tdefault?: (props: {\n\t\tprops: {\n\t\t\tonMouseenter: typeof onMouseenter;\n\t\t};\n\t\tisHovering: boolean;\n\t}) => any;\n}>();\nconst isHovering = ref(false);\n\nconst onMouseenter = (event: MouseEvent) => {\n\tconst outerTarget = event.target;\n\tif (outerTarget instanceof HTMLElement) {\n\t\tisHovering.value = true;\n\t\tconst onDocumentMouseover = (event: MouseEvent) => {\n\t\t\tconst innerTarget = event.target;\n\t\t\tif (innerTarget instanceof HTMLElement) {\n\t\t\t\tif (!outerTarget.contains(innerTarget)) {\n\t\t\t\t\tisHovering.value = false;\n\t\t\t\t\tdocument.removeEventListener('mouseover', onDocumentMouseover);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\tdocument.addEventListener('mouseover', onDocumentMouseover);\n\t}\n};\n</script>\n\n<style scoped></style>\n"],"names":["isHovering","ref","onMouseenter","event","outerTarget","onDocumentMouseover","innerTarget"],"mappings":";;;;AAeM,UAAAA,IAAaC,EAAI,EAAK,GAEtBC,IAAe,CAACC,MAAsB;AAC3C,YAAMC,IAAcD,EAAM;AAC1B,UAAIC,aAAuB,aAAa;AACvC,QAAAJ,EAAW,QAAQ;AACb,cAAAK,IAAsB,CAACF,MAAsB;AAClD,gBAAMG,IAAcH,EAAM;AAC1B,UAAIG,aAAuB,gBACrBF,EAAY,SAASE,CAAW,MACpCN,EAAW,QAAQ,IACV,SAAA,oBAAoB,aAAaK,CAAmB;AAAA,QAE/D;AAEQ,iBAAA,iBAAiB,aAAaA,CAAmB;AAAA,MAC3D;AAAA,IAAA;;;;;;;"}
|
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 "./index197.js";
|
|
3
3
|
const M = /* @__PURE__ */ h({
|
|
4
4
|
__name: "BbIntersection",
|
|
5
5
|
props: {
|
package/dist/index72.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index72.js","sources":["../src/components/BbIntersection/BbIntersection.vue
|
|
1
|
+
{"version":3,"file":"index72.js","sources":["../src/components/BbIntersection/BbIntersection.vue"],"sourcesContent":["<template>\n\t<component :is=\"tag\" ref=\"infinitescrolltrigger\" class=\"bb-intersection\">\n\t\t<slot :hidden=\"hidden\" :percentage=\"percentage\" :shown=\"shown\"></slot>\n\t</component>\n</template>\n\n<script setup lang=\"ts\">\nimport type { NonVoidElementTag } from '@/types/CommonProps';\nimport { throttle } from '@/utilities/functions/throttle';\nimport { onBeforeUnmount, onMounted, ref } from 'vue';\n\nexport type BbIntersectionProps = {\n\t/**\n\t * Time to wait before emitting intersection value\n\t */\n\tdebounceTime?: number;\n\t/**\n\t * Options used to confgiure the IntersectionObserver\n\t */\n\toptions?: IntersectionObserverInit;\n} & NonVoidElementTag;\n\nconst props = withDefaults(defineProps<BbIntersectionProps>(), {\n\tdebounceTime: 0,\n\toptions: () => ({\n\t\troot: null,\n\t\tthreshold: [0, 0.2, 0.4, 0.6, 0.8, 1],\n\t}),\n\ttag: 'div',\n});\n\nexport type BbIntersectionEvents = {\n\t(e: 'shown'): void;\n\t(e: 'hidden'): void;\n\t(e: 'intersected', value: number): void;\n};\n\nconst emit = defineEmits<BbIntersectionEvents>();\n\ndefineSlots<{\n\tdefault?: (props: {\n\t\thidden: boolean;\n\t\tpercentage: number;\n\t\tshown: boolean;\n\t}) => any;\n}>();\n\nconst observer = ref<IntersectionObserver | null>(null);\nconst infinitescrolltrigger = ref<Element | null>(null);\nconst shown = ref(false);\nconst hidden = ref(true);\nconst percentage = ref(0);\n\nonMounted(() => {\n\tobserver.value = new IntersectionObserver((entries) => {\n\t\thandleIntersect(entries[0]);\n\t}, props.options);\n\tif (infinitescrolltrigger.value) {\n\t\tobserver.value.observe(infinitescrolltrigger.value);\n\t}\n});\nonBeforeUnmount(() => {\n\tif (observer.value) observer.value.disconnect();\n});\n\nconst handleIntersect = throttle((entry: IntersectionObserverEntry) => {\n\tif (entry.isIntersecting) {\n\t\tpercentage.value = Math.trunc(entry.intersectionRatio * 100);\n\t\tif (entry.intersectionRatio === 1) {\n\t\t\tshown.value = true;\n\t\t\thidden.value = false;\n\t\t\temit('shown');\n\t\t} else {\n\t\t\tshown.value = false;\n\t\t\thidden.value = false;\n\t\t\temitIntersected(Math.trunc(entry.intersectionRatio * 100));\n\t\t}\n\t} else {\n\t\tshown.value = false;\n\t\thidden.value = true;\n\t\temit('hidden');\n\t}\n});\n\nconst emitIntersected = throttle((percentage: number) => {\n\temit('intersected', percentage);\n}, props.debounceTime);\n</script>\n"],"names":["props","__props","emit","__emit","observer","ref","infinitescrolltrigger","shown","hidden","percentage","onMounted","entries","handleIntersect","onBeforeUnmount","throttle","entry","emitIntersected"],"mappings":";;;;;;;;;;;;;;AAsBA,UAAMA,IAAQC,GAeRC,IAAOC,GAUPC,IAAWC,EAAiC,IAAI,GAChDC,IAAwBD,EAAoB,IAAI,GAChDE,IAAQF,EAAI,EAAK,GACjBG,IAASH,EAAI,EAAI,GACjBI,IAAaJ,EAAI,CAAC;AAExB,IAAAK,EAAU,MAAM;AACf,MAAAN,EAAS,QAAQ,IAAI,qBAAqB,CAACO,MAAY;AACtC,QAAAC,EAAAD,EAAQ,CAAC,CAAC;AAAA,MAAA,GACxBX,EAAM,OAAO,GACZM,EAAsB,SAChBF,EAAA,MAAM,QAAQE,EAAsB,KAAK;AAAA,IACnD,CACA,GACDO,EAAgB,MAAM;AACrB,MAAIT,EAAS,SAAOA,EAAS,MAAM;IAAW,CAC9C;AAEK,UAAAQ,IAAkBE,EAAS,CAACC,MAAqC;AACtE,MAAIA,EAAM,kBACTN,EAAW,QAAQ,KAAK,MAAMM,EAAM,oBAAoB,GAAG,GACvDA,EAAM,sBAAsB,KAC/BR,EAAM,QAAQ,IACdC,EAAO,QAAQ,IACfN,EAAK,OAAO,MAEZK,EAAM,QAAQ,IACdC,EAAO,QAAQ,IACfQ,EAAgB,KAAK,MAAMD,EAAM,oBAAoB,GAAG,CAAC,OAG1DR,EAAM,QAAQ,IACdC,EAAO,QAAQ,IACfN,EAAK,QAAQ;AAAA,IACd,CACA,GAEKc,IAAkBF,EAAS,CAACL,MAAuB;AACxD,MAAAP,EAAK,eAAeO,CAAU;AAAA,IAAA,GAC5BT,EAAM,YAAY;;;;;;;;;;;;;;;;;"}
|
package/dist/index73.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index73.js","sources":["../src/components/BbNumberInput/BbNumberInput.vue
|
|
1
|
+
{"version":3,"file":"index73.js","sources":["../src/components/BbNumberInput/BbNumberInput.vue"],"sourcesContent":["<template>\n\t<BaseInputContainer\n\t\t:id=\"id\"\n\t\tclass=\"bb-number-input\"\n\t\t:direction=\"direction\"\n\t\t:errors=\"errors\"\n\t\t:has-errors=\"hasErrors\"\n\t\t:hide-label=\"hideLabel\"\n\t\t:label=\"label\"\n\t\t:label-position=\"labelPosition\"\n\t\t:model-value=\"modelValue\"\n\t\t:name=\"name\"\n\t\t:reverse=\"reverse\"\n\t>\n\t\t<template #label=\"data\"><slot name=\"label\" v-bind=\"data\"></slot></template>\n\t\t<template #input=\"{ id, name, hasErrors }\">\n\t\t\t<BaseNumberInput\n\t\t\t\t:id=\"id\"\n\t\t\t\t:autocomplete=\"autocomplete\"\n\t\t\t\t:autofocus=\"autofocus\"\n\t\t\t\t:disabled=\"disabled\"\n\t\t\t\t:has-errors=\"hasErrors\"\n\t\t\t\t:max=\"max\"\n\t\t\t\t:min=\"min\"\n\t\t\t\t:model-value=\"modelValue\"\n\t\t\t\t:name=\"name\"\n\t\t\t\t:placeholder=\"placeholder\"\n\t\t\t\t:readonly=\"readonly\"\n\t\t\t\t:step=\"step\"\n\t\t\t\tv-bind=\"eventListeners\"\n\t\t\t>\n\t\t\t\t<template #append-outer=\"data\"\n\t\t\t\t\t><slot name=\"append-outer\" v-bind=\"data\"\n\t\t\t\t/></template>\n\t\t\t\t<template #append=\"data\"><slot name=\"append\" v-bind=\"data\" /></template>\n\t\t\t\t<template #prepend=\"data\"\n\t\t\t\t\t><slot name=\"prepend\" v-bind=\"data\"\n\t\t\t\t/></template>\n\t\t\t\t<template #prepend-outer=\"data\"\n\t\t\t\t\t><slot name=\"prepend-outer\" v-bind=\"data\"\n\t\t\t\t/></template>\n\t\t\t</BaseNumberInput>\n\t\t</template>\n\t</BaseInputContainer>\n</template>\n\n<script setup lang=\"ts\">\nimport BaseInputContainer from '../BaseInputContainer/BaseInputContainer.vue';\nimport BaseNumberInput from '../BaseNumberInput/BaseNumberInput.vue';\nimport type {\n\tBaseNumberInputEvents,\n\tBaseNumberInputSlots,\n} from '../BaseNumberInput/BaseNumberInput.vue';\nimport type { HTMLAttributes, InputHTMLAttributes } from 'vue';\n\nexport type BbNumberInputProps = {\n\t/**\n\t * Guides to the browser as to the type of information expected in the field.\n\t */\n\tautocomplete?: InputHTMLAttributes['autocomplete'];\n\n\t/**\n\t * Sets autofocus on page load.\n\t */\n\tautofocus?: InputHTMLAttributes['autofocus'];\n\n\t/**\n\t * Disables the component\n\t */\n\tdisabled?: boolean;\n\n\t/**\n\t * Define if the component should be in an error state.\n\t * It usually attaches a CSS class for styling purposes.\n\t */\n\thasErrors?: boolean;\n\n\t/**\n\t * The identifier of the component.\n\t */\n\tid?: HTMLAttributes['id'];\n\n\t/**\n\t * Maximum value cap\n\t */\n\tmax?: number;\n\n\t/**\n\t * Minimum value cap\n\t */\n\tmin?: number;\n\n\t/**\n\t * Used by v-model\n\t */\n\tmodelValue: number | string | null;\n\n\t/**\n\t * Defines the name of the input.\n\t */\n\tname?: InputHTMLAttributes['name'];\n\n\t/**\n\t * String displayed when there's no data.\n\t */\n\tplaceholder?: InputHTMLAttributes['placeholder'];\n\n\t/**\n\t * Sets the input in a readonly state.\n\t */\n\treadonly?: InputHTMLAttributes['readonly'];\n\n\t/**\n\t * Incremental unit used in the exposed `increase`\n\t * and `decrease` function. It's NOT APPLIED to manual input as a step of 5\n\t * will prevent the user from inserting a value like `115` because of rounding down.\n\t */\n\tstep?: number;\n\t/**\n\t * Direction of the layout of the component. Can either be a predefined value or a pattern separated by a space like `xx xxxxx`.\n\t */\n\tdirection?: 'horizontal' | 'vertical' | 'auto' | string;\n\n\t/**\n\t * Can be a string or an array of string containing the messages to display.\n\t */\n\terrors?: string | string[];\n\n\t/**\n\t * Visually hides the label of the input while maintaining accessibility.\n\t */\n\thideLabel?: boolean;\n\n\t/**\n\t * Text content of the label of the element.\n\t */\n\tlabel: string;\n\n\t/**\n\t * Sets the text alignment of the label.\n\t */\n\tlabelPosition?: 'left' | 'center' | 'right';\n\n\t/**\n\t * Reverses the layout. Applicable in every direction the order of the label and the input is swapped.\n\t */\n\treverse?: boolean;\n};\n\nwithDefaults(defineProps<BbNumberInputProps>(), {});\n\nexport type BbNumberInputEvents = BaseNumberInputEvents;\n\nconst emit = defineEmits<BbNumberInputEvents>();\n\ndefineSlots<\n\tBaseNumberInputSlots & {\n\t\tlabel?: (props: { text: string; hasErrors: boolean }) => any;\n\t}\n>();\n\n/**\n * These events are just propagated\n */\nconst eventListeners = {\n\tonBlur: (event: FocusEvent) => emit('blur', event),\n\tonChange: (event: Event) => emit('change', event),\n\tonClick: (event: MouseEvent) => emit('click', event),\n\tonDecrease: (event: number) => emit('decrease', event),\n\tonFocus: (event: FocusEvent) => emit('focus', event),\n\tonIncrease: (event: number) => emit('increase', event),\n\tonInput: (event: Event) => emit('input', event),\n\tonKeydown: (event: KeyboardEvent) => emit('keydown', event),\n\tonMousedown: (event: MouseEvent) => emit('mousedown', event),\n\tonMouseup: (event: MouseEvent) => emit('mouseup', event),\n\t'onUpdate:modelValue': (value: number | null) =>\n\t\temit('update:modelValue', value),\n};\n</script>\n\n<style lang=\"postcss\">\n@import '@/assets/css/BbNumberInput';\n</style>\n"],"names":["emit","__emit","eventListeners","event","value"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyJA,UAAMA,IAAOC,GAWPC,IAAiB;AAAA,MACtB,QAAQ,CAACC,MAAsBH,EAAK,QAAQG,CAAK;AAAA,MACjD,UAAU,CAACA,MAAiBH,EAAK,UAAUG,CAAK;AAAA,MAChD,SAAS,CAACA,MAAsBH,EAAK,SAASG,CAAK;AAAA,MACnD,YAAY,CAACA,MAAkBH,EAAK,YAAYG,CAAK;AAAA,MACrD,SAAS,CAACA,MAAsBH,EAAK,SAASG,CAAK;AAAA,MACnD,YAAY,CAACA,MAAkBH,EAAK,YAAYG,CAAK;AAAA,MACrD,SAAS,CAACA,MAAiBH,EAAK,SAASG,CAAK;AAAA,MAC9C,WAAW,CAACA,MAAyBH,EAAK,WAAWG,CAAK;AAAA,MAC1D,aAAa,CAACA,MAAsBH,EAAK,aAAaG,CAAK;AAAA,MAC3D,WAAW,CAACA,MAAsBH,EAAK,WAAWG,CAAK;AAAA,MACvD,uBAAuB,CAACC,MACvBJ,EAAK,qBAAqBI,CAAK;AAAA,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/index74.js
CHANGED
package/dist/index74.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index74.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index74.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
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 "./index198.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" }, [
|
package/dist/index75.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index75.js","sources":["../src/components/BbOffCanvas/BbOffCanvas.vue?vue&type=script&setup=true&lang.ts"],"sourcesContent":["import { defineComponent as _defineComponent } from 'vue'\nimport { renderSlot as _renderSlot, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, mergeProps as _mergeProps, Teleport as _Teleport, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"bb-offcanvas-close\" }\nconst _hoisted_2 = { class: \"bb-offcanvas-close__content\" }\nconst _hoisted_3 = { class: \"bb-offcanvas-close__label\" }\nconst _hoisted_4 = /*#__PURE__*/_createElementVNode(\"span\", { class: \"bb-offcanvas-close__icon\" }, [\n /*#__PURE__*/_createElementVNode(\"svg\", {\n fill: \"none\",\n viewBox: \"0 0 24 24\",\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-linecap\": \"round\",\n \"stroke-width\": \"2\"\n })\n ])\n], -1)\nconst _hoisted_5 = /*#__PURE__*/_createElementVNode(\"div\", { style: {\"flex\":\"10000 10000 0%\"} }, null, -1)\n\nimport {\n\tcomputed,\n\tnextTick,\n\tonBeforeUnmount,\n\tonMounted,\n\tref,\n\tuseAttrs,\n\twatch,\n} from 'vue';\nimport { useFocusTrap } from '@vueuse/integrations/useFocusTrap';\nimport { useId } from '@/composables/useId';\nimport { wait } from '@/utilities/functions/wait';\nimport type { CommonProps, Size } from '@/types/CommonProps';\n\nexport type Sizes = {\n\tsm: number;\n\tmd: number;\n\tlg: number;\n};\n\nexport type BbOffCanvasProps = Pick<\n\tCommonProps,\n\t| 'closeLabel'\n\t| 'compact'\n\t| 'disabled'\n\t| 'eager'\n\t| 'panelClasses'\n\t| 'overlayClasses'\n\t| 'persistent'\n\t| 'showClose'\n\t| 'title'\n\t| 'transition'\n\t| 'transitionDuration'\n> &\n\tSize<Sizes> & {\n\t\t/**\n\t\t * Description of the content of the modal. Extremely useful for accessibility reasons.\n\t\t */\n\t\tdescription?: string;\n\t\t/**\n\t\t * Displays the modala as fulscreen with no margin to the page\n\t\t */\n\t\tfullscreen?: boolean;\n\t\t/**\n\t\t * Defines the state open / closed of the modal.\n\t\t */\n\t\tmodelValue?: boolean | null;\n\t\t/**\n\t\t * Defines the direction the offcanvas should appear from\n\t\t */\n\t\tdirection?: 'left' | 'top' | 'right' | 'bottom';\n\t};\n\nexport type BbOffCanvasEvents = {\n\t(e: 'shown'): void;\n\t(e: 'hidden'): void;\n\t(e: 'update:modelValue', value: boolean): void;\n};\n\nexport type BbOffCanvasSlots = {\n\theader?: (props: {\n\t\ttitleId: typeof titleId;\n\t\tclose: typeof onCloseClick;\n\t\ttitle: BbOffCanvasProps['title'];\n\t}) => any;\n\ttitle?: (props: { text: BbOffCanvasProps['title'] }) => any;\n\tclose?: (props: { text: BbOffCanvasProps['closeLabel'] }) => any;\n\tdescription?: (props: {\n\t\tdescriptionId: typeof descriptionId;\n\t\ttext: BbOffCanvasProps['description'];\n\t}) => any;\n\tdefault?: (props: {}) => any;\n\tcontent?: (props: { close: typeof onCloseClick }) => any;\n\tfooter?: (props: {}) => any;\n};\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'BbOffCanvas',\n props: {\n closeLabel: { default: 'Chiudi' },\n compact: { type: Boolean },\n disabled: { type: Boolean },\n eager: { type: Boolean },\n panelClasses: { default: () => [] },\n overlayClasses: { default: () => [] },\n persistent: { type: Boolean },\n showClose: { type: Boolean, default: true },\n title: {},\n transition: { default: 'fade' },\n transitionDuration: { default: 350 },\n size: { default: 'sm' },\n description: {},\n fullscreen: { type: Boolean },\n modelValue: { type: [Boolean, null] },\n direction: { default: 'left' }\n },\n emits: [\"shown\", \"hidden\", \"update:modelValue\"],\n setup(__props: any, { emit: __emit }) {\n\nconst props = __props;\n\nconst emit = __emit;\n\n\n\nconst titleId = `title_${useId().id.value}`;\nconst descriptionId = `description_${useId().id.value}`;\n\nconst overlay = ref<HTMLElement | null>(null);\nconst panel = ref<HTMLElement | null>(null);\nconst content = ref<HTMLElement | null>(null);\nconst header = ref<HTMLElement | null>(null);\nconst body = ref<HTMLElement | null>(null);\nconst footer = ref<HTMLElement | null>(null);\nconst attrs = useAttrs();\n\nconst { activate, deactivate } = useFocusTrap(panel, {\n\tclickOutsideDeactivates: true,\n\t/* On esc deactivate the trap, return focus and then close the modal */\n\tescapeDeactivates: () => {\n\t\tnextTick(() => {\n\t\t\temit('update:modelValue', false);\n\t\t});\n\t\treturn true;\n\t},\n});\n\nconst closeLabel = computed(() => props.closeLabel);\n\nconst open = ref(false);\nconst opening = ref(false);\nconst closed = ref(true);\nconst closing = ref(false);\nconst hasRenderedAtLeastOnce = ref(props.eager || props.modelValue);\nconst lastFocusedElement = ref<Element | null>(null);\n\nconst busy = computed(() => opening.value || closing.value);\n\nonMounted(() => {\n\t/**\n\t * Do not realign if open or opening\n\t */\n\tif (props.modelValue && !(open.value || opening.value)) {\n\t\talignToModelValue();\n\t}\n});\n\n/**\n * Every time modelValue changes align the display to it\n */\nwatch(\n\t() => props.modelValue,\n\t() => {\n\t\talignToModelValue();\n\t}\n);\nonBeforeUnmount(() => {\n\tif (props.modelValue) {\n\t\tlet currentlyOpenCanvases = Number(\n\t\t\tdocument.body.dataset['openCanvases'] ?? '0'\n\t\t);\n\t\t// This prevents overscroll chaining (additional scrolling to the body when the modal has been completely scrolled)\n\t\tcurrentlyOpenCanvases--;\n\t\tdocument.body.dataset['openCanvases'] = currentlyOpenCanvases.toString();\n\t\tif (!currentlyOpenCanvases) {\n\t\t\tdocument.body.style.overflow = 'auto';\n\t\t\tdocument.body.style.paddingRight = '0px';\n\t\t}\n\t}\n});\n\n/**\n * When modelValue becomes true if the component wasn't rendered render it\n * and wait for it to be on the page (or transitions would not work).\n * Stash the latest focused element so we can return it later when it closes.\n * Focus on the panel upon opening.\n * ---\n * Notice all interactions update modelValue and then this function aligns the display to it\n */\nconst alignToModelValue = async () => {\n\tif (props.modelValue) {\n\t\tif (!hasRenderedAtLeastOnce.value) {\n\t\t\thasRenderedAtLeastOnce.value = true;\n\t\t}\n\t\tif (document.activeElement) {\n\t\t\tlastFocusedElement.value = document.activeElement;\n\t\t}\n\n\t\tclosed.value = false;\n\t\tclosing.value = false;\n\t\topening.value = true;\n\n\t\t// This prevents overscroll chaining (additional scrolling to the body when the modal has been completely scrolled)\n\n\t\tlet currentlyOpenCanvases = Number(\n\t\t\tdocument.body.dataset['openCanvases'] ?? '0'\n\t\t);\n\t\tcurrentlyOpenCanvases++;\n\t\tdocument.body.dataset['openCanvases'] = currentlyOpenCanvases.toString();\n\t\tconst scrollBarWidth =\n\t\t\twindow.innerWidth - document.documentElement.clientWidth;\n\t\tdocument.body.style.overflow = 'hidden';\n\t\tdocument.body.style.paddingRight = `${scrollBarWidth}px`;\n\n\t\tawait wait(props.transitionDuration);\n\n\t\topening.value = false;\n\t\topen.value = true;\n\t\temit('shown');\n\t\tactivate();\n\t} else {\n\t\tdeactivate();\n\t\topening.value = false;\n\t\topen.value = false;\n\t\tclosing.value = true;\n\n\t\tawait wait(props.transitionDuration);\n\n\t\tlet currentlyOpenCanvases = Number(\n\t\t\tdocument.body.dataset['openCanvases'] ?? '0'\n\t\t);\n\t\t// This prevents overscroll chaining (additional scrolling to the body when the modal has been completely scrolled)\n\t\tcurrentlyOpenCanvases--;\n\t\tdocument.body.dataset['openCanvases'] = currentlyOpenCanvases.toString();\n\t\tif (!currentlyOpenCanvases) {\n\t\t\tdocument.body.style.overflow = 'auto';\n\t\t\tdocument.body.style.paddingRight = '0px';\n\t\t}\n\t\tclosing.value = false;\n\t\tclosed.value = true;\n\t\temit('hidden');\n\t\tif (lastFocusedElement.value instanceof HTMLElement) {\n\t\t\tlastFocusedElement.value.focus();\n\t\t}\n\t}\n};\n\n/**\n * Disable scrolling\n */\nconst onOverlayScroll = (event: UIEvent) => {\n\tif (event.target === overlay.value) {\n\t\tevent.preventDefault();\n\t}\n};\n\n/**\n * Close the modal on overlay click if not persistent\n */\nconst onOverlayClick = (event: MouseEvent) => {\n\tif (props.disabled || busy.value) return;\n\tif (overlay.value) {\n\t\tif (event.target === overlay.value) {\n\t\t\tif (!props.persistent) {\n\t\t\t\temit('update:modelValue', false);\n\t\t\t}\n\t\t}\n\t}\n};\n\n/**\n * On click on the X button\n */\nconst onCloseClick = () => {\n\tif (props.disabled) return;\n\temit('update:modelValue', false);\n};\n\nconst overlayAttributes = computed(() => {\n\tconst classes = [\n\t\t{\n\t\t\t'bb-offcanvas bb-offcanvas__overlay': true,\n\t\t\t'bb-offcanvas--fullscreen': props.fullscreen,\n\t\t\t'bb-offcanvas--open': open.value,\n\t\t\t'bb-offcanvas--opening': opening.value,\n\t\t\t'bb-offcanvas--closed': closed.value,\n\t\t\t'bb-offcanvas--closing': closing.value,\n\t\t\t[`bb-offcanvas--transition-${props.transition}`]: true,\n\t\t\t[`bb-offcanvas--${props.direction}`]: true,\n\t\t},\n\t\tprops.overlayClasses,\n\t].flat();\n\tconst eventListeners = {\n\t\tonClick: onOverlayClick,\n\t\tonScroll: onOverlayScroll,\n\t\tonTouchmove: onOverlayScroll,\n\t\tonWheel: onOverlayScroll,\n\t\tonKeydown: onOverlayScroll,\n\t};\n\n\tconst style = {\n\t\ttransitionDuration: props.transitionDuration / 1000 + 's',\n\t};\n\treturn {\n\t\tclass: classes,\n\t\tstyle,\n\t\t...eventListeners,\n\t\t...attrs,\n\t};\n});\n\nconst panelAttributes = computed(() => {\n\tconst classes = [\n\t\t{\n\t\t\t'bb-offcanvas__panel': true,\n\t\t\t'bb-offcanvas__panel--compact': props.compact,\n\t\t},\n\t\tprops.panelClasses,\n\t].flat();\n\n\tconst accessibilityAttrs: {\n\t\t[key: string]: string | boolean;\n\t} = {\n\t\trole: 'dialog',\n\t\t'aria-modal': true,\n\t};\n\n\tif (hasRenderedAtLeastOnce.value) {\n\t\taccessibilityAttrs['aria-labelledby'] = titleId;\n\n\t\tif (props.description)\n\t\t\taccessibilityAttrs['aria-describedby'] = descriptionId;\n\t}\n\n\tlet maxWidth;\n\tlet maxHeight;\n\tlet height;\n\tconst sizes: Sizes = {\n\t\tsm: 384,\n\t\tmd: 652,\n\t\tlg: 896,\n\t};\n\tif (props.direction === 'left' || props.direction === 'right') {\n\t\tif (props.fullscreen) maxWidth = '100%';\n\t\telse if (typeof props.size === 'number') maxWidth = props.size + 'px';\n\t\telse if (props.size in sizes)\n\t\t\tmaxWidth = sizes[props.size as keyof Sizes] + 'px';\n\t\telse maxWidth = props.size + 'px';\n\t} else {\n\t\tif (props.fullscreen) height = '100%';\n\t\telse if (typeof props.size === 'number') height = props.size + 'px';\n\t\telse if (props.size in sizes)\n\t\t\theight = sizes[props.size as keyof Sizes] + 'px';\n\t\telse if (!Number.isNaN(Number(props.size))) height = props.size + 'px';\n\t\telse if (props.size === 'auto') height = 'auto';\n\t}\n\n\tconst style = {\n\t\tmaxWidth,\n\t\tmaxHeight,\n\t\theight,\n\t\ttransitionDuration: props.transitionDuration / 1000 + 's',\n\t};\n\n\treturn {\n\t\tclass: classes,\n\t\tstyle,\n\t\t...accessibilityAttrs,\n\t};\n});\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createBlock(_Teleport, { to: \"body\" }, [\n _createElementVNode(\"div\", _mergeProps(overlayAttributes.value, {\n ref_key: \"overlay\",\n ref: overlay\n }), [\n _createElementVNode(\"div\", _mergeProps(panelAttributes.value, {\n ref_key: \"panel\",\n ref: panel\n }), [\n (hasRenderedAtLeastOnce.value)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 0,\n ref_key: \"content\",\n ref: content,\n class: \"bb-offcanvas__content\"\n }, [\n _renderSlot(_ctx.$slots, \"content\", { close: onCloseClick }, () => [\n _createElementVNode(\"div\", {\n ref_key: \"header\",\n ref: header,\n class: \"bb-offcanvas__header\"\n }, [\n _renderSlot(_ctx.$slots, \"header\", {\n close: onCloseClick,\n title: _ctx.title,\n titleId: titleId\n }, () => [\n _createElementVNode(\"span\", {\n id: titleId,\n class: \"bb-offcanvas__title\"\n }, [\n _renderSlot(_ctx.$slots, \"title\", { text: _ctx.title }, () => [\n _createTextVNode(_toDisplayString(_ctx.title), 1)\n ])\n ]),\n _createElementVNode(\"span\", _hoisted_1, [\n (_ctx.showClose)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n type: \"button\",\n onClick: onCloseClick\n }, [\n _renderSlot(_ctx.$slots, \"close\", { text: closeLabel.value }, () => [\n _createElementVNode(\"span\", _hoisted_2, [\n _createElementVNode(\"span\", _hoisted_3, _toDisplayString(closeLabel.value), 1),\n _hoisted_4\n ])\n ])\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ])\n ], 512),\n _createElementVNode(\"div\", {\n ref_key: \"body\",\n ref: body,\n class: \"bb-offcanvas__body\"\n }, [\n _renderSlot(_ctx.$slots, \"description\", {\n descriptionId: descriptionId,\n text: _ctx.description\n }, () => [\n (_ctx.description)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 0,\n id: descriptionId,\n class: \"bb-offcanvas__description\"\n }, _toDisplayString(_ctx.description), 1))\n : _createCommentVNode(\"\", true)\n ]),\n _renderSlot(_ctx.$slots, \"default\")\n ], 512),\n _hoisted_5,\n _createElementVNode(\"div\", {\n ref_key: \"footer\",\n ref: footer,\n class: \"bb-offcanvas__footer\"\n }, [\n _renderSlot(_ctx.$slots, \"footer\")\n ], 512)\n ])\n ], 512))\n : _createCommentVNode(\"\", true)\n ], 16)\n ], 16)\n ]))\n}\n}\n\n})"],"names":["_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_createElementVNode","_hoisted_5","_sfc_main","_defineComponent","__props","__emit","props","emit","titleId","useId","descriptionId","overlay","ref","panel","content","header","body","footer","attrs","useAttrs","activate","deactivate","useFocusTrap","nextTick","closeLabel","computed","open","opening","closed","closing","hasRenderedAtLeastOnce","lastFocusedElement","busy","onMounted","alignToModelValue","watch","onBeforeUnmount","currentlyOpenCanvases","scrollBarWidth","wait","onOverlayScroll","event","onOverlayClick","onCloseClick","overlayAttributes","classes","eventListeners","style","panelAttributes","accessibilityAttrs","maxWidth","maxHeight","height","sizes","_ctx","_cache","_openBlock","_createBlock","_Teleport","_mergeProps","_createElementBlock","_renderSlot","_createTextVNode","_toDisplayString","_createCommentVNode"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index75.js","sources":["../src/components/BbOffCanvas/BbOffCanvas.vue"],"sourcesContent":["<template>\n\t<teleport to=\"body\">\n\t\t<div v-bind=\"overlayAttributes\" ref=\"overlay\">\n\t\t\t<div v-bind=\"panelAttributes\" ref=\"panel\">\n\t\t\t\t<div\n\t\t\t\t\tv-if=\"hasRenderedAtLeastOnce\"\n\t\t\t\t\tref=\"content\"\n\t\t\t\t\tclass=\"bb-offcanvas__content\"\n\t\t\t\t>\n\t\t\t\t\t<slot :close=\"onCloseClick\" name=\"content\">\n\t\t\t\t\t\t<div ref=\"header\" class=\"bb-offcanvas__header\">\n\t\t\t\t\t\t\t<slot\n\t\t\t\t\t\t\t\t:close=\"onCloseClick\"\n\t\t\t\t\t\t\t\tname=\"header\"\n\t\t\t\t\t\t\t\t:title=\"title\"\n\t\t\t\t\t\t\t\t:title-id=\"titleId\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<span :id=\"titleId\" class=\"bb-offcanvas__title\">\n\t\t\t\t\t\t\t\t\t<slot name=\"title\" :text=\"title\">{{ title }}</slot>\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t<span class=\"bb-offcanvas-close\">\n\t\t\t\t\t\t\t\t\t<button v-if=\"showClose\" type=\"button\" @click=\"onCloseClick\">\n\t\t\t\t\t\t\t\t\t\t<slot name=\"close\" :text=\"closeLabel\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"bb-offcanvas-close__content\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"bb-offcanvas-close__label\">{{\n\t\t\t\t\t\t\t\t\t\t\t\t\tcloseLabel\n\t\t\t\t\t\t\t\t\t\t\t\t}}</span>\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"bb-offcanvas-close__icon\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t><svg\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfill=\"none\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<path\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\td=\"M23 23L1 1M23 1L1 23\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstroke-linecap=\"round\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstroke-width=\"2\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t</slot>\n\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</slot>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div ref=\"body\" class=\"bb-offcanvas__body\">\n\t\t\t\t\t\t\t<slot\n\t\t\t\t\t\t\t\t:description-id=\"descriptionId\"\n\t\t\t\t\t\t\t\tname=\"description\"\n\t\t\t\t\t\t\t\t:text=\"description\"\n\t\t\t\t\t\t\t\t><div\n\t\t\t\t\t\t\t\t\tv-if=\"description\"\n\t\t\t\t\t\t\t\t\t:id=\"descriptionId\"\n\t\t\t\t\t\t\t\t\tclass=\"bb-offcanvas__description\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{{ description }}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</slot>\n\t\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div style=\"flex: 10000 10000 0%\"></div>\n\t\t\t\t\t\t<div ref=\"footer\" class=\"bb-offcanvas__footer\">\n\t\t\t\t\t\t\t<slot name=\"footer\"></slot>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</slot>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</teleport>\n</template>\n\n<script setup lang=\"ts\">\nimport {\n\tcomputed,\n\tnextTick,\n\tonBeforeUnmount,\n\tonMounted,\n\tref,\n\tuseAttrs,\n\twatch,\n} from 'vue';\nimport { useFocusTrap } from '@vueuse/integrations/useFocusTrap';\nimport { useId } from '@/composables/useId';\nimport { wait } from '@/utilities/functions/wait';\nimport type { CommonProps, Size } from '@/types/CommonProps';\n\nexport type Sizes = {\n\tsm: number;\n\tmd: number;\n\tlg: number;\n};\n\nexport type BbOffCanvasProps = Pick<\n\tCommonProps,\n\t| 'closeLabel'\n\t| 'compact'\n\t| 'disabled'\n\t| 'eager'\n\t| 'panelClasses'\n\t| 'overlayClasses'\n\t| 'persistent'\n\t| 'showClose'\n\t| 'title'\n\t| 'transition'\n\t| 'transitionDuration'\n> &\n\tSize<Sizes> & {\n\t\t/**\n\t\t * Description of the content of the modal. Extremely useful for accessibility reasons.\n\t\t */\n\t\tdescription?: string;\n\t\t/**\n\t\t * Displays the modala as fulscreen with no margin to the page\n\t\t */\n\t\tfullscreen?: boolean;\n\t\t/**\n\t\t * Defines the state open / closed of the modal.\n\t\t */\n\t\tmodelValue?: boolean | null;\n\t\t/**\n\t\t * Defines the direction the offcanvas should appear from\n\t\t */\n\t\tdirection?: 'left' | 'top' | 'right' | 'bottom';\n\t};\n\nconst props = withDefaults(defineProps<BbOffCanvasProps>(), {\n\tcloseLabel: 'Chiudi',\n\tdirection: 'left',\n\tshowClose: true,\n\tsize: 'sm',\n\ttransition: 'fade',\n\ttransitionDuration: 350,\n\tpanelClasses: () => [],\n\toverlayClasses: () => [],\n});\n\nexport type BbOffCanvasEvents = {\n\t(e: 'shown'): void;\n\t(e: 'hidden'): void;\n\t(e: 'update:modelValue', value: boolean): void;\n};\n\nconst emit = defineEmits<BbOffCanvasEvents>();\n\nexport type BbOffCanvasSlots = {\n\theader?: (props: {\n\t\ttitleId: typeof titleId;\n\t\tclose: typeof onCloseClick;\n\t\ttitle: BbOffCanvasProps['title'];\n\t}) => any;\n\ttitle?: (props: { text: BbOffCanvasProps['title'] }) => any;\n\tclose?: (props: { text: BbOffCanvasProps['closeLabel'] }) => any;\n\tdescription?: (props: {\n\t\tdescriptionId: typeof descriptionId;\n\t\ttext: BbOffCanvasProps['description'];\n\t}) => any;\n\tdefault?: (props: {}) => any;\n\tcontent?: (props: { close: typeof onCloseClick }) => any;\n\tfooter?: (props: {}) => any;\n};\n\ndefineSlots<BbOffCanvasSlots>();\n\nconst titleId = `title_${useId().id.value}`;\nconst descriptionId = `description_${useId().id.value}`;\n\nconst overlay = ref<HTMLElement | null>(null);\nconst panel = ref<HTMLElement | null>(null);\nconst content = ref<HTMLElement | null>(null);\nconst header = ref<HTMLElement | null>(null);\nconst body = ref<HTMLElement | null>(null);\nconst footer = ref<HTMLElement | null>(null);\nconst attrs = useAttrs();\n\nconst { activate, deactivate } = useFocusTrap(panel, {\n\tclickOutsideDeactivates: true,\n\t/* On esc deactivate the trap, return focus and then close the modal */\n\tescapeDeactivates: () => {\n\t\tnextTick(() => {\n\t\t\temit('update:modelValue', false);\n\t\t});\n\t\treturn true;\n\t},\n});\n\nconst closeLabel = computed(() => props.closeLabel);\n\nconst open = ref(false);\nconst opening = ref(false);\nconst closed = ref(true);\nconst closing = ref(false);\nconst hasRenderedAtLeastOnce = ref(props.eager || props.modelValue);\nconst lastFocusedElement = ref<Element | null>(null);\n\nconst busy = computed(() => opening.value || closing.value);\n\nonMounted(() => {\n\t/**\n\t * Do not realign if open or opening\n\t */\n\tif (props.modelValue && !(open.value || opening.value)) {\n\t\talignToModelValue();\n\t}\n});\n\n/**\n * Every time modelValue changes align the display to it\n */\nwatch(\n\t() => props.modelValue,\n\t() => {\n\t\talignToModelValue();\n\t}\n);\nonBeforeUnmount(() => {\n\tif (props.modelValue) {\n\t\tlet currentlyOpenCanvases = Number(\n\t\t\tdocument.body.dataset['openCanvases'] ?? '0'\n\t\t);\n\t\t// This prevents overscroll chaining (additional scrolling to the body when the modal has been completely scrolled)\n\t\tcurrentlyOpenCanvases--;\n\t\tdocument.body.dataset['openCanvases'] = currentlyOpenCanvases.toString();\n\t\tif (!currentlyOpenCanvases) {\n\t\t\tdocument.body.style.overflow = 'auto';\n\t\t\tdocument.body.style.paddingRight = '0px';\n\t\t}\n\t}\n});\n\n/**\n * When modelValue becomes true if the component wasn't rendered render it\n * and wait for it to be on the page (or transitions would not work).\n * Stash the latest focused element so we can return it later when it closes.\n * Focus on the panel upon opening.\n * ---\n * Notice all interactions update modelValue and then this function aligns the display to it\n */\nconst alignToModelValue = async () => {\n\tif (props.modelValue) {\n\t\tif (!hasRenderedAtLeastOnce.value) {\n\t\t\thasRenderedAtLeastOnce.value = true;\n\t\t}\n\t\tif (document.activeElement) {\n\t\t\tlastFocusedElement.value = document.activeElement;\n\t\t}\n\n\t\tclosed.value = false;\n\t\tclosing.value = false;\n\t\topening.value = true;\n\n\t\t// This prevents overscroll chaining (additional scrolling to the body when the modal has been completely scrolled)\n\n\t\tlet currentlyOpenCanvases = Number(\n\t\t\tdocument.body.dataset['openCanvases'] ?? '0'\n\t\t);\n\t\tcurrentlyOpenCanvases++;\n\t\tdocument.body.dataset['openCanvases'] = currentlyOpenCanvases.toString();\n\t\tconst scrollBarWidth =\n\t\t\twindow.innerWidth - document.documentElement.clientWidth;\n\t\tdocument.body.style.overflow = 'hidden';\n\t\tdocument.body.style.paddingRight = `${scrollBarWidth}px`;\n\n\t\tawait wait(props.transitionDuration);\n\n\t\topening.value = false;\n\t\topen.value = true;\n\t\temit('shown');\n\t\tactivate();\n\t} else {\n\t\tdeactivate();\n\t\topening.value = false;\n\t\topen.value = false;\n\t\tclosing.value = true;\n\n\t\tawait wait(props.transitionDuration);\n\n\t\tlet currentlyOpenCanvases = Number(\n\t\t\tdocument.body.dataset['openCanvases'] ?? '0'\n\t\t);\n\t\t// This prevents overscroll chaining (additional scrolling to the body when the modal has been completely scrolled)\n\t\tcurrentlyOpenCanvases--;\n\t\tdocument.body.dataset['openCanvases'] = currentlyOpenCanvases.toString();\n\t\tif (!currentlyOpenCanvases) {\n\t\t\tdocument.body.style.overflow = 'auto';\n\t\t\tdocument.body.style.paddingRight = '0px';\n\t\t}\n\t\tclosing.value = false;\n\t\tclosed.value = true;\n\t\temit('hidden');\n\t\tif (lastFocusedElement.value instanceof HTMLElement) {\n\t\t\tlastFocusedElement.value.focus();\n\t\t}\n\t}\n};\n\n/**\n * Disable scrolling\n */\nconst onOverlayScroll = (event: UIEvent) => {\n\tif (event.target === overlay.value) {\n\t\tevent.preventDefault();\n\t}\n};\n\n/**\n * Close the modal on overlay click if not persistent\n */\nconst onOverlayClick = (event: MouseEvent) => {\n\tif (props.disabled || busy.value) return;\n\tif (overlay.value) {\n\t\tif (event.target === overlay.value) {\n\t\t\tif (!props.persistent) {\n\t\t\t\temit('update:modelValue', false);\n\t\t\t}\n\t\t}\n\t}\n};\n\n/**\n * On click on the X button\n */\nconst onCloseClick = () => {\n\tif (props.disabled) return;\n\temit('update:modelValue', false);\n};\n\nconst overlayAttributes = computed(() => {\n\tconst classes = [\n\t\t{\n\t\t\t'bb-offcanvas bb-offcanvas__overlay': true,\n\t\t\t'bb-offcanvas--fullscreen': props.fullscreen,\n\t\t\t'bb-offcanvas--open': open.value,\n\t\t\t'bb-offcanvas--opening': opening.value,\n\t\t\t'bb-offcanvas--closed': closed.value,\n\t\t\t'bb-offcanvas--closing': closing.value,\n\t\t\t[`bb-offcanvas--transition-${props.transition}`]: true,\n\t\t\t[`bb-offcanvas--${props.direction}`]: true,\n\t\t},\n\t\tprops.overlayClasses,\n\t].flat();\n\tconst eventListeners = {\n\t\tonClick: onOverlayClick,\n\t\tonScroll: onOverlayScroll,\n\t\tonTouchmove: onOverlayScroll,\n\t\tonWheel: onOverlayScroll,\n\t\tonKeydown: onOverlayScroll,\n\t};\n\n\tconst style = {\n\t\ttransitionDuration: props.transitionDuration / 1000 + 's',\n\t};\n\treturn {\n\t\tclass: classes,\n\t\tstyle,\n\t\t...eventListeners,\n\t\t...attrs,\n\t};\n});\n\nconst panelAttributes = computed(() => {\n\tconst classes = [\n\t\t{\n\t\t\t'bb-offcanvas__panel': true,\n\t\t\t'bb-offcanvas__panel--compact': props.compact,\n\t\t},\n\t\tprops.panelClasses,\n\t].flat();\n\n\tconst accessibilityAttrs: {\n\t\t[key: string]: string | boolean;\n\t} = {\n\t\trole: 'dialog',\n\t\t'aria-modal': true,\n\t};\n\n\tif (hasRenderedAtLeastOnce.value) {\n\t\taccessibilityAttrs['aria-labelledby'] = titleId;\n\n\t\tif (props.description)\n\t\t\taccessibilityAttrs['aria-describedby'] = descriptionId;\n\t}\n\n\tlet maxWidth;\n\tlet maxHeight;\n\tlet height;\n\tconst sizes: Sizes = {\n\t\tsm: 384,\n\t\tmd: 652,\n\t\tlg: 896,\n\t};\n\tif (props.direction === 'left' || props.direction === 'right') {\n\t\tif (props.fullscreen) maxWidth = '100%';\n\t\telse if (typeof props.size === 'number') maxWidth = props.size + 'px';\n\t\telse if (props.size in sizes)\n\t\t\tmaxWidth = sizes[props.size as keyof Sizes] + 'px';\n\t\telse maxWidth = props.size + 'px';\n\t} else {\n\t\tif (props.fullscreen) height = '100%';\n\t\telse if (typeof props.size === 'number') height = props.size + 'px';\n\t\telse if (props.size in sizes)\n\t\t\theight = sizes[props.size as keyof Sizes] + 'px';\n\t\telse if (!Number.isNaN(Number(props.size))) height = props.size + 'px';\n\t\telse if (props.size === 'auto') height = 'auto';\n\t}\n\n\tconst style = {\n\t\tmaxWidth,\n\t\tmaxHeight,\n\t\theight,\n\t\ttransitionDuration: props.transitionDuration / 1000 + 's',\n\t};\n\n\treturn {\n\t\tclass: classes,\n\t\tstyle,\n\t\t...accessibilityAttrs,\n\t};\n});\n</script>\n\n<style lang=\"postcss\">\n@import '@/assets/css/BbOffCanvas';\n</style>\n"],"names":["props","__props","emit","__emit","titleId","useId","descriptionId","overlay","ref","panel","content","header","body","footer","attrs","useAttrs","activate","deactivate","useFocusTrap","nextTick","closeLabel","computed","open","opening","closed","closing","hasRenderedAtLeastOnce","lastFocusedElement","busy","onMounted","alignToModelValue","watch","onBeforeUnmount","currentlyOpenCanvases","scrollBarWidth","wait","onOverlayScroll","event","onOverlayClick","onCloseClick","overlayAttributes","classes","eventListeners","style","panelAttributes","accessibilityAttrs","maxWidth","maxHeight","height","sizes"],"mappings":"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"}
|
package/dist/index76.js
CHANGED
package/dist/index76.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index76.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index76.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
package/dist/index77.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index77.js","sources":["../src/components/BbPagination/BbPagination.vue?vue&type=script&setup=true&lang.ts"],"sourcesContent":["import { defineComponent as _defineComponent } from 'vue'\nimport { renderSlot as _renderSlot, createTextVNode as _createTextVNode, createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, createCommentVNode as _createCommentVNode, normalizeClass as _normalizeClass } from \"vue\"\n\nconst _hoisted_1 = { \"aria-label\": \"Navigazione\" }\nconst _hoisted_2 = [\"disabled\"]\nconst _hoisted_3 = [\"disabled\", \"onClick\"]\nconst _hoisted_4 = [\"disabled\"]\n\nimport { computed, nextTick, onBeforeUnmount, onMounted, ref } from 'vue';\nimport { debounce } from '@/utilities/functions/debounce';\nimport type { CommonProps } from '@/types/CommonProps';\n\nexport type BbPaginationProps = Pick<CommonProps, 'disabled' | 'loading'> & {\n\t/**\n\t * String of text displayed in place of hidden pages\n\t */\n\tellipsis?: string;\n\t/**\n\t * Maximum number of clickable pages displayed at all times.\n\t * This has a tolerance of +/- 1 for odd / even numbering.\n\t * It does not include ellipses.\n\t */\n\tmaxSize?: number | string;\n\t/**\n\t * Used by v-model. Indicates the current page.\n\t */\n\tmodelValue: number;\n\t/**\n\t * Total number of pages there is.\n\t */\n\ttotalPages?: number | string;\n};\n\nexport type BbPaginationEvents = {\n\t(e: 'update:modelValue', value: number): void;\n};\n\ntype Item =\n\t| {\n\t\t\tactive: boolean;\n\t\t\tkey: string;\n\t\t\tpage: string;\n\t\t\tellipsis: true;\n\t\t\tdisabled: boolean;\n\t }\n\t| {\n\t\t\tactive: boolean;\n\t\t\tkey: number;\n\t\t\tpage: number;\n\t\t\tellipsis: false;\n\t\t\tdisabled: boolean;\n\t };\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'BbPagination',\n props: {\n disabled: { type: Boolean },\n loading: { type: Boolean },\n ellipsis: { default: '...' },\n maxSize: { default: 5 },\n modelValue: { default: 1 },\n totalPages: { default: 1 }\n },\n emits: ['update:modelValue'],\n setup(__props: any, { emit: __emit }) {\n\nconst props = __props;\n\nconst emit = __emit;\n\n\n\nconst totalPages = computed(() => +props.totalPages);\nconst start = ref(1);\nconst maxSize = ref(+props.maxSize);\n\nconst outercontainer = ref<HTMLElement>();\nconst innercontainer = ref<HTMLElement>();\n\nconst buttonFootprint = ref<number>(Infinity);\n\n/**\n * Adjusts how many buttons to show.\n * if current buttons can't fit subtract maxSize until they do or until minimum is reached\n * if more buttons could fit add buttons until the don't\n * If minimum or maximum is reached just quit until next resize\n */\nconst adjustMaxElements = () => {\n\tif (outercontainer.value && innercontainer.value) {\n\t\t/* If some buttons do not fit */\n\t\tif (outercontainer.value.clientWidth < innercontainer.value.clientWidth) {\n\t\t\tif (maxSize.value - 1 > 3) {\n\t\t\t\tmaxSize.value--;\n\t\t\t\tnextTick(adjustMaxElements);\n\t\t\t} else {\n\t\t\t\tmaxSize.value = 3;\n\t\t\t}\n\t\t\t/* If all current buttons do fit */\n\t\t} else {\n\t\t\t/* If some buttons have been hidden */\n\t\t\tif (maxSize.value < +props.maxSize) {\n\t\t\t\tif (\n\t\t\t\t\t/* If there is enough space to fit one */\n\t\t\t\t\toutercontainer.value.clientWidth - innercontainer.value.clientWidth >\n\t\t\t\t\tbuttonFootprint.value\n\t\t\t\t) {\n\t\t\t\t\tmaxSize.value = Math.min(maxSize.value + 1, +props.maxSize);\n\t\t\t\t\tnextTick(adjustMaxElements);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\nif (globalThis.ResizeObserver) {\n\tconst observer = new ResizeObserver(debounce(adjustMaxElements, 200));\n\tonMounted(() => {\n\t\tif (outercontainer.value && innercontainer.value) {\n\t\t\tconst button = outercontainer.value.querySelectorAll(\n\t\t\t\t'.bb-pagination__page'\n\t\t\t)[1];\n\t\t\tif (button) {\n\t\t\t\t/* Compute the footprint necessary to render a new button */\n\t\t\t\tconst gapString = getComputedStyle(innercontainer.value).columnGap;\n\t\t\t\tconst numberAsString = gapString.replaceAll(/\\D/g, '');\n\t\t\t\tconst gap = Number(numberAsString);\n\t\t\t\tbuttonFootprint.value = button.clientWidth + gap;\n\t\t\t}\n\t\t\tobserver.observe(outercontainer.value);\n\t\t}\n\t});\n\tonBeforeUnmount(() => {\n\t\tobserver.disconnect();\n\t});\n}\n\nconst range = computed(() => {\n\tif (\n\t\ttotalPages.value <= 0 ||\n\t\tisNaN(totalPages.value) ||\n\t\ttotalPages.value > Number.MAX_SAFE_INTEGER\n\t)\n\t\treturn [];\n\n\tif (maxSize.value <= 1) return [props.modelValue];\n\n\tif (totalPages.value <= maxSize.value) {\n\t\treturn createRange(totalPages.value, start.value);\n\t}\n\n\tconst even = maxSize.value % 2 === 0;\n\tconst middle = even ? maxSize.value / 2 : Math.floor(maxSize.value / 2);\n\tconst left = even ? middle : middle + 1;\n\tconst right = totalPages.value - middle;\n\n\tif (left - props.modelValue >= 0) {\n\t\treturn [\n\t\t\t...createRange(Math.max(1, maxSize.value - 1), start.value),\n\t\t\tprops.ellipsis,\n\t\t\ttotalPages.value,\n\t\t];\n\t} else if (props.modelValue - right >= (even ? 1 : 0)) {\n\t\tconst rangeLength = maxSize.value - 1;\n\t\tconst rangeStart = totalPages.value - rangeLength + start.value;\n\t\treturn [\n\t\t\tstart.value,\n\t\t\tprops.ellipsis,\n\t\t\t...createRange(rangeLength, rangeStart),\n\t\t];\n\t} else {\n\t\tconst rangeLength = Math.max(1, maxSize.value - 3);\n\t\tconst rangeStart =\n\t\t\trangeLength === 1\n\t\t\t\t? props.modelValue\n\t\t\t\t: props.modelValue - Math.ceil(rangeLength / 2) + start.value;\n\t\treturn [\n\t\t\tstart.value,\n\t\t\tprops.ellipsis,\n\t\t\t...createRange(rangeLength, rangeStart),\n\t\t\tprops.ellipsis,\n\t\t\ttotalPages.value,\n\t\t];\n\t}\n});\n\nconst items = computed<Item[]>(() => {\n\treturn range.value.map((item, index) => {\n\t\tif (typeof item === 'string') {\n\t\t\treturn {\n\t\t\t\tactive: false,\n\t\t\t\tkey: `ellipsis-${index}`,\n\t\t\t\tpage: item,\n\t\t\t\tellipsis: true,\n\t\t\t\tdisabled: true,\n\t\t\t};\n\t\t} else {\n\t\t\tconst active = item === props.modelValue;\n\t\t\treturn {\n\t\t\t\tactive,\n\t\t\t\tkey: item,\n\t\t\t\tpage: item,\n\t\t\t\tellipsis: false,\n\t\t\t\tdisabled: !!props.disabled || +props.totalPages < 2 || props.loading,\n\t\t\t};\n\t\t}\n\t});\n});\n\nconst createRange = (length: number, start = 0): number[] => {\n\treturn Array.from({ length }, (_, k) => start + k);\n};\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n ref_key: \"outercontainer\",\n ref: outercontainer,\n class: \"bb-pagination\"\n }, [\n _createElementVNode(\"nav\", _hoisted_1, [\n _createElementVNode(\"ul\", {\n ref_key: \"innercontainer\",\n ref: innercontainer,\n class: \"bb-pagination__pages\"\n }, [\n _createElementVNode(\"li\", null, [\n _createElementVNode(\"button\", {\n class: \"bb-pagination__page bb-pagination__page--previous\",\n disabled: props.modelValue <= 1 || _ctx.loading || _ctx.disabled,\n onClick: _cache[0] || (_cache[0] = ($event: any) => (emit('update:modelValue', props.modelValue - 1)))\n }, [\n _renderSlot(_ctx.$slots, \"previous\", {}, () => [\n _createTextVNode(\"Precedente\")\n ])\n ], 8, _hoisted_2)\n ]),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(items.value, (item) => {\n return (_openBlock(), _createElementBlock(\"li\", null, [\n _createElementVNode(\"button\", {\n class: _normalizeClass([\"bb-pagination__page\", {\n\t\t\t\t\t\t\t'bb-pagination__page--active': item.active,\n\t\t\t\t\t\t\t'bb-pagination__page--ellipsis': item.ellipsis,\n\t\t\t\t\t\t}]),\n disabled: item.disabled,\n onClick: ($event: any) => (emit('update:modelValue', item.key))\n }, [\n (item.ellipsis === true)\n ? _renderSlot(_ctx.$slots, \"ellipsis\", { key: 0 }, () => [\n _createTextVNode(_toDisplayString(props.ellipsis), 1)\n ])\n : _renderSlot(_ctx.$slots, \"item\", {\n key: 1,\n active: item.active,\n disabled: item.disabled,\n item: item.key\n }, () => [\n _createTextVNode(_toDisplayString(item.key), 1)\n ])\n ], 10, _hoisted_3)\n ]))\n }), 256)),\n _createElementVNode(\"li\", null, [\n _createElementVNode(\"button\", {\n class: \"bb-pagination__page bb-pagination__page--next\",\n disabled: props.modelValue >= +totalPages.value || _ctx.loading || _ctx.disabled,\n onClick: _cache[1] || (_cache[1] = ($event: any) => (emit('update:modelValue', props.modelValue + 1)))\n }, [\n _renderSlot(_ctx.$slots, \"next\", {}, () => [\n _createTextVNode(\"Successivi\")\n ])\n ], 8, _hoisted_4)\n ])\n ], 512)\n ])\n ], 512))\n}\n}\n\n})"],"names":["_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_sfc_main","_defineComponent","__props","__emit","props","emit","totalPages","computed","start","ref","maxSize","outercontainer","innercontainer","buttonFootprint","adjustMaxElements","nextTick","observer","debounce","onMounted","button","numberAsString","gap","onBeforeUnmount","range","createRange","even","middle","left","right","rangeLength","rangeStart","items","item","index","length","_","k","_ctx","_cache","_openBlock","_createElementBlock","_createElementVNode","$event","_renderSlot","_createTextVNode","_Fragment","_renderList","_normalizeClass","_toDisplayString"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index77.js","sources":["../src/components/BbPagination/BbPagination.vue"],"sourcesContent":["<template>\n\t<div ref=\"outercontainer\" class=\"bb-pagination\">\n\t\t<nav aria-label=\"Navigazione\">\n\t\t\t<ul ref=\"innercontainer\" class=\"bb-pagination__pages\">\n\t\t\t\t<li>\n\t\t\t\t\t<button\n\t\t\t\t\t\tclass=\"bb-pagination__page bb-pagination__page--previous\"\n\t\t\t\t\t\t:disabled=\"props.modelValue <= 1 || loading || disabled\"\n\t\t\t\t\t\t@click=\"emit('update:modelValue', props.modelValue - 1)\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<slot name=\"previous\">Precedente</slot>\n\t\t\t\t\t</button>\n\t\t\t\t</li>\n\t\t\t\t<li v-for=\"item in items\">\n\t\t\t\t\t<button\n\t\t\t\t\t\tclass=\"bb-pagination__page\"\n\t\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t\t'bb-pagination__page--active': item.active,\n\t\t\t\t\t\t\t'bb-pagination__page--ellipsis': item.ellipsis,\n\t\t\t\t\t\t}\"\n\t\t\t\t\t\t:disabled=\"item.disabled\"\n\t\t\t\t\t\t@click=\"emit('update:modelValue', item.key)\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<template v-if=\"item.ellipsis === true\">\n\t\t\t\t\t\t\t<slot name=\"ellipsis\">\n\t\t\t\t\t\t\t\t{{ props.ellipsis }}\n\t\t\t\t\t\t\t</slot>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<template v-else>\n\t\t\t\t\t\t\t<slot\n\t\t\t\t\t\t\t\t:active=\"item.active\"\n\t\t\t\t\t\t\t\t:disabled=\"item.disabled\"\n\t\t\t\t\t\t\t\t:item=\"item.key\"\n\t\t\t\t\t\t\t\tname=\"item\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{{ item.key }}\n\t\t\t\t\t\t\t</slot>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</button>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<button\n\t\t\t\t\t\tclass=\"bb-pagination__page bb-pagination__page--next\"\n\t\t\t\t\t\t:disabled=\"props.modelValue >= +totalPages || loading || disabled\"\n\t\t\t\t\t\t@click=\"emit('update:modelValue', props.modelValue + 1)\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<slot name=\"next\">Successivi</slot>\n\t\t\t\t\t</button>\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t</nav>\n\t</div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, nextTick, onBeforeUnmount, onMounted, ref } from 'vue';\nimport { debounce } from '@/utilities/functions/debounce';\nimport type { CommonProps } from '@/types/CommonProps';\n\nexport type BbPaginationProps = Pick<CommonProps, 'disabled' | 'loading'> & {\n\t/**\n\t * String of text displayed in place of hidden pages\n\t */\n\tellipsis?: string;\n\t/**\n\t * Maximum number of clickable pages displayed at all times.\n\t * This has a tolerance of +/- 1 for odd / even numbering.\n\t * It does not include ellipses.\n\t */\n\tmaxSize?: number | string;\n\t/**\n\t * Used by v-model. Indicates the current page.\n\t */\n\tmodelValue: number;\n\t/**\n\t * Total number of pages there is.\n\t */\n\ttotalPages?: number | string;\n};\n\nconst props = withDefaults(defineProps<BbPaginationProps>(), {\n\tmodelValue: 1,\n\ttotalPages: 1,\n\tellipsis: '...',\n\tmaxSize: 5,\n});\n\nexport type BbPaginationEvents = {\n\t(e: 'update:modelValue', value: number): void;\n};\n\nconst emit = defineEmits(['update:modelValue']);\n\ndefineSlots<{\n\tprevious?: (props: {}) => any;\n\tnext?: (props: {}) => any;\n\titem?: (props: { active: boolean; disabled: boolean; item: number }) => any;\n\tellipsis?: (props: {}) => any;\n}>();\n\nconst totalPages = computed(() => +props.totalPages);\nconst start = ref(1);\nconst maxSize = ref(+props.maxSize);\n\nconst outercontainer = ref<HTMLElement>();\nconst innercontainer = ref<HTMLElement>();\n\nconst buttonFootprint = ref<number>(Infinity);\n\n/**\n * Adjusts how many buttons to show.\n * if current buttons can't fit subtract maxSize until they do or until minimum is reached\n * if more buttons could fit add buttons until the don't\n * If minimum or maximum is reached just quit until next resize\n */\nconst adjustMaxElements = () => {\n\tif (outercontainer.value && innercontainer.value) {\n\t\t/* If some buttons do not fit */\n\t\tif (outercontainer.value.clientWidth < innercontainer.value.clientWidth) {\n\t\t\tif (maxSize.value - 1 > 3) {\n\t\t\t\tmaxSize.value--;\n\t\t\t\tnextTick(adjustMaxElements);\n\t\t\t} else {\n\t\t\t\tmaxSize.value = 3;\n\t\t\t}\n\t\t\t/* If all current buttons do fit */\n\t\t} else {\n\t\t\t/* If some buttons have been hidden */\n\t\t\tif (maxSize.value < +props.maxSize) {\n\t\t\t\tif (\n\t\t\t\t\t/* If there is enough space to fit one */\n\t\t\t\t\toutercontainer.value.clientWidth - innercontainer.value.clientWidth >\n\t\t\t\t\tbuttonFootprint.value\n\t\t\t\t) {\n\t\t\t\t\tmaxSize.value = Math.min(maxSize.value + 1, +props.maxSize);\n\t\t\t\t\tnextTick(adjustMaxElements);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\nif (globalThis.ResizeObserver) {\n\tconst observer = new ResizeObserver(debounce(adjustMaxElements, 200));\n\tonMounted(() => {\n\t\tif (outercontainer.value && innercontainer.value) {\n\t\t\tconst button = outercontainer.value.querySelectorAll(\n\t\t\t\t'.bb-pagination__page'\n\t\t\t)[1];\n\t\t\tif (button) {\n\t\t\t\t/* Compute the footprint necessary to render a new button */\n\t\t\t\tconst gapString = getComputedStyle(innercontainer.value).columnGap;\n\t\t\t\tconst numberAsString = gapString.replaceAll(/\\D/g, '');\n\t\t\t\tconst gap = Number(numberAsString);\n\t\t\t\tbuttonFootprint.value = button.clientWidth + gap;\n\t\t\t}\n\t\t\tobserver.observe(outercontainer.value);\n\t\t}\n\t});\n\tonBeforeUnmount(() => {\n\t\tobserver.disconnect();\n\t});\n}\n\nconst range = computed(() => {\n\tif (\n\t\ttotalPages.value <= 0 ||\n\t\tisNaN(totalPages.value) ||\n\t\ttotalPages.value > Number.MAX_SAFE_INTEGER\n\t)\n\t\treturn [];\n\n\tif (maxSize.value <= 1) return [props.modelValue];\n\n\tif (totalPages.value <= maxSize.value) {\n\t\treturn createRange(totalPages.value, start.value);\n\t}\n\n\tconst even = maxSize.value % 2 === 0;\n\tconst middle = even ? maxSize.value / 2 : Math.floor(maxSize.value / 2);\n\tconst left = even ? middle : middle + 1;\n\tconst right = totalPages.value - middle;\n\n\tif (left - props.modelValue >= 0) {\n\t\treturn [\n\t\t\t...createRange(Math.max(1, maxSize.value - 1), start.value),\n\t\t\tprops.ellipsis,\n\t\t\ttotalPages.value,\n\t\t];\n\t} else if (props.modelValue - right >= (even ? 1 : 0)) {\n\t\tconst rangeLength = maxSize.value - 1;\n\t\tconst rangeStart = totalPages.value - rangeLength + start.value;\n\t\treturn [\n\t\t\tstart.value,\n\t\t\tprops.ellipsis,\n\t\t\t...createRange(rangeLength, rangeStart),\n\t\t];\n\t} else {\n\t\tconst rangeLength = Math.max(1, maxSize.value - 3);\n\t\tconst rangeStart =\n\t\t\trangeLength === 1\n\t\t\t\t? props.modelValue\n\t\t\t\t: props.modelValue - Math.ceil(rangeLength / 2) + start.value;\n\t\treturn [\n\t\t\tstart.value,\n\t\t\tprops.ellipsis,\n\t\t\t...createRange(rangeLength, rangeStart),\n\t\t\tprops.ellipsis,\n\t\t\ttotalPages.value,\n\t\t];\n\t}\n});\n\ntype Item =\n\t| {\n\t\t\tactive: boolean;\n\t\t\tkey: string;\n\t\t\tpage: string;\n\t\t\tellipsis: true;\n\t\t\tdisabled: boolean;\n\t }\n\t| {\n\t\t\tactive: boolean;\n\t\t\tkey: number;\n\t\t\tpage: number;\n\t\t\tellipsis: false;\n\t\t\tdisabled: boolean;\n\t };\n\nconst items = computed<Item[]>(() => {\n\treturn range.value.map((item, index) => {\n\t\tif (typeof item === 'string') {\n\t\t\treturn {\n\t\t\t\tactive: false,\n\t\t\t\tkey: `ellipsis-${index}`,\n\t\t\t\tpage: item,\n\t\t\t\tellipsis: true,\n\t\t\t\tdisabled: true,\n\t\t\t};\n\t\t} else {\n\t\t\tconst active = item === props.modelValue;\n\t\t\treturn {\n\t\t\t\tactive,\n\t\t\t\tkey: item,\n\t\t\t\tpage: item,\n\t\t\t\tellipsis: false,\n\t\t\t\tdisabled: !!props.disabled || +props.totalPages < 2 || props.loading,\n\t\t\t};\n\t\t}\n\t});\n});\n\nconst createRange = (length: number, start = 0): number[] => {\n\treturn Array.from({ length }, (_, k) => start + k);\n};\n</script>\n\n<style lang=\"postcss\">\n@import '@/assets/css/BbPagination';\n</style>\n"],"names":["props","__props","emit","__emit","totalPages","computed","start","ref","maxSize","outercontainer","innercontainer","buttonFootprint","adjustMaxElements","nextTick","observer","debounce","onMounted","button","numberAsString","gap","onBeforeUnmount","range","createRange","even","middle","left","right","rangeLength","rangeStart","items","item","index","length","_","k"],"mappings":"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"}
|
package/dist/index78.js
CHANGED
package/dist/index78.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index78.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index78.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
package/dist/index79.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { defineComponent as V, ref as a, computed as _, openBlock as p, createElementBlock as h, mergeProps as B, createElementVNode as d, renderSlot as P, normalizeProps as I, guardReactiveProps as R, unref as g, createBlock as D, Teleport as U, normalizeClass as W, normalizeStyle as j, createCommentVNode as y, withCtx as G, nextTick as J } from "vue";
|
|
2
|
-
import { useFloating as K, arrow as Q } from "./
|
|
3
|
-
import { useFocusTrap as X } from "./
|
|
2
|
+
import { useFloating as K, arrow as Q } from "./index223.js";
|
|
3
|
+
import { useFocusTrap as X } from "./index198.js";
|
|
4
4
|
import { useId as Y } from "./index7.js";
|
|
5
5
|
import { wait as E } from "./index122.js";
|
|
6
6
|
import Z from "./index9.js";
|
|
7
7
|
import "./index10.js";
|
|
8
|
-
import { autoUpdate as ee, flip as oe, shift as te } from "./
|
|
8
|
+
import { autoUpdate as ee, flip as oe, shift as te } from "./index214.js";
|
|
9
9
|
import { offset as ae } from "./index219.js";
|
|
10
10
|
const re = ["id"], ne = {
|
|
11
11
|
key: 1,
|