@axentix/vue
Version:
Vue Axentix is the Axentix integration for the VueJS framework.
2,634 lines • 82.1 kB
JavaScript
import { isVue3 as yt, defineComponent as O, computed as T, ref as r, provide as ke, isVue2 as Me, toRefs as ee, watch as B, inject as Q, onMounted as te, onUnmounted as re, reactive as Se, onUpdated as ze, onBeforeMount as ht, onBeforeUnmount as bt, install as $t } from "vue-demi";
import { openBlock as c, createBlock as he, resolveDynamicComponent as He, mergeProps as U, toHandlers as q, withCtx as ce, renderSlot as L, createTextVNode as G, createElementBlock as y, normalizeClass as x, withDirectives as $e, createElementVNode as C, withModifiers as ue, vModelDynamic as wt, resolveDirective as Fe, toDisplayString as _, createCommentVNode as X, vModelCheckbox as kt, normalizeStyle as Ce, resolveComponent as Te, normalizeProps as xe, guardReactiveProps as je, createVNode as Ve, Fragment as K, renderList as be, vModelText as Ct, pushScopeId as At, popScopeId as Lt } from "vue";
const ne = (e) => {
yt || typeof window < "u" && window.Vue && window.Vue.use(e);
}, H = (e, t) => {
e.component(t.name, t);
}, N = (e, t) => {
const a = e.__vccOpts || e;
for (const [i, l] of t)
a[i] = l;
return a;
}, St = O({
name: "AxBtn",
props: {
tag: {
type: String,
default: "button",
validator: (e) => ["a", "button", "div", "router-link"].includes(e)
},
circle: {
type: Boolean,
default: !1
},
press: {
type: Boolean,
default: !1
},
outline: {
type: Boolean,
default: !1
},
outlineOpening: {
type: Boolean,
default: !1
},
outlineInvert: {
type: Boolean,
default: !1
},
size: {
type: String,
default: "",
validator: (e) => ["small", "large", ""].includes(e)
},
disabled: {
type: Boolean,
default: !1
}
},
setup(e, t) {
const a = T(() => ({
"btn-circle": e.circle,
"btn-press": e.press,
"btn-outline": e.outline,
"btn-opening": e.outlineOpening,
"btn-small": e.size === "small",
"btn-large": e.size === "large",
disabled: e.disabled
})), i = T(() => ({
"btn-outline-text": e.outline,
"btn-outline-invert": e.outlineInvert
}));
return {
classes: a,
outlineClasses: i,
listeners: t.listeners ? t.listeners : {}
};
}
});
function Tt(e, t, a, i, l, s) {
return c(), he(He(e.tag), U({
class: ["btn", e.classes]
}, e.$attrs, q(e.listeners)), {
default: ce(() => [
e.outline ? (c(), y("span", {
key: 1,
class: x(e.outlineClasses)
}, [
L(e.$slots, "default", {}, () => [
G("Button")
])
], 2)) : L(e.$slots, "default", { key: 0 }, () => [
G("Button")
])
]),
_: 3
}, 16, ["class"]);
}
const Bt = /* @__PURE__ */ N(St, [["render", Tt]]), Ye = {
install(e) {
H(e, Bt);
}
};
ne(Ye);
const Dt = O({
name: "AxBtnGroup",
props: {
vertical: {
type: Boolean,
default: !1
},
size: {
type: String,
default: "",
validator: (e) => ["small", "large", ""].includes(e)
}
},
setup(e, t) {
return {
classes: T(() => ({
"btn-group-vertical": e.vertical,
"btn-group-small": e.size === "small",
"btn-group-large": e.size === "large"
})),
listeners: t.listeners ? t.listeners : {}
};
}
});
function Et(e, t, a, i, l, s) {
return c(), y("div", U({
class: ["btn-group", e.classes]
}, e.$attrs, q(e.listeners, !0)), [
L(e.$slots, "default")
], 16);
}
const It = /* @__PURE__ */ N(Dt, [["render", Et]]), _e = {
install(e) {
H(e, It);
}
};
ne(_e);
const Be = r([]), ve = (e) => Be.value.push(e), fe = (e) => {
const t = Be.value.findIndex((a) => a.uid === e);
t !== -1 && Be.value.splice(t, 1);
}, Pe = (e) => Be.value.filter((t) => t.type === e), ae = () => Date.now() + Math.random().toString().split(".")[1], Vt = O({
name: "AxForm",
props: {
material: {
type: Boolean,
default: !1
}
},
setup(e, t) {
const a = T(() => ({
"form-material": e.material
})), i = ["FormControl", "FormCheck", "FormAutocomplete", "FormSwitch", "FormSelect"], l = ae(), s = r(null);
return ke("ax-form-material", e.material), ke("ax-form-uid", l), {
form: s,
classes: a,
validate: () => Be.value.filter((u) => i.includes(u.type) && u.data.FormUid === l).map((u) => u.data.validate()).every((u) => u),
resetValidation: () => Be.value.filter((u) => i.includes(u.type) && u.data.FormUid === l).map((u) => u.data.resetValidation()),
reset: () => s.value.reset(),
listeners: t.listeners ? t.listeners : {}
};
}
});
function Ft(e, t, a, i, l, s) {
return c(), y("form", U(e.$attrs, q(e.listeners, !0), {
class: e.classes,
ref: "form"
}), [
L(e.$slots, "default")
], 16);
}
const Pt = /* @__PURE__ */ N(Vt, [["render", Ft]]), Ge = {}, Rt = {
default: !1
}, Xe = Me ? "value" : "modelValue", Mt = Me ? "input" : "update:modelValue";
Ge[Xe] = Rt;
const se = O({
props: Ge
}), ie = () => Xe, oe = () => Mt, De = {
props: {
rules: {
type: Array,
default: () => []
},
errorColor: {
type: String,
default: "#DF2C29"
}
}
}, we = (e) => {
e.notValidHelper = null, e.notValidColor = null;
}, Ae = (e, t, a) => {
if (e.rules.length === 0)
return !0;
let i;
for (const l of e.rules) {
const s = l(t.value);
if (s !== !0) {
i = s;
break;
}
}
return !i || !a ? (we(a), !0) : (typeof i == "string" && (a.notValidHelper = i), a.notValidColor = e.errorColor, !1);
}, zt = O({
name: "AxFormCheck",
inheritAttrs: !1,
mixins: [se, De],
props: {
type: {
type: String,
default: "checkbox",
validator: (e) => ["checkbox", "radio"].includes(e)
},
full: {
type: Boolean,
default: !1
},
nativeValue: [String, Number, Boolean, Function, Object, Array]
},
setup(e, t) {
const a = ee(e)[ie()], i = r(null), l = r(a.value), s = oe(), n = ae();
B(a, (m) => {
l.value = m;
});
const o = T(() => ({
full: e.full
})), d = Q("ax-form-uid"), u = Q("ax-form-field"), g = T({
get() {
return l.value;
},
set(m) {
l.value = m, t.emit(s, m);
}
}), p = () => Ae(e, l, u), w = () => we(u);
return te(() => {
ve({ type: "FormCheck", uid: n, data: { FormUid: d, validate: p, resetValidation: w } });
}), re(() => {
fe(n);
}), {
spanClasses: o,
computedValue: g,
validate: p,
input: i,
resetValidation: w
};
}
}), Ht = { class: "form-check" }, Ot = ["type", "value"];
function Nt(e, t, a, i, l, s) {
return c(), y("label", Ht, [
$e(C("input", U(e.$attrs, {
type: e.type,
"onUpdate:modelValue": t[0] || (t[0] = (n) => e.computedValue = n),
ref: "input",
value: e.nativeValue,
onInput: t[1] || (t[1] = (...n) => e.validate && e.validate(...n)),
onChange: t[2] || (t[2] = (...n) => e.validate && e.validate(...n)),
onClick: t[3] || (t[3] = ue(() => {
}, ["stop"]))
}), null, 16, Ot), [
[wt, e.computedValue]
]),
C("span", {
class: x(e.spanClasses)
}, [
L(e.$slots, "default")
], 2)
]);
}
const Wt = /* @__PURE__ */ N(zt, [["render", Nt]]), Ne = (e, t) => {
e.clickOutsideEvent = function(a) {
e === a.target || e.contains(a.target) || a.composedPath().includes(e) || t.value();
}, document.addEventListener("click", e.clickOutsideEvent);
}, We = (e) => {
document.removeEventListener("click", e.clickOutsideEvent);
}, Re = Me ? { bind: Ne, unbind: We } : { beforeMount: Ne, unmounted: We };
const Ut = O({
name: "AxFormControl",
directives: {
axClickOutside: Re
},
mixins: [se, De],
props: {
tag: {
type: String,
default: "input"
},
customSelect: {
type: Boolean,
default: !1
},
autocomplete: {
type: Number,
default: -1
},
singleLine: {
type: Boolean,
default: !1
},
lazy: {
type: Boolean,
default: !1
}
},
setup(e, t) {
const a = r(null), i = ee(e)[ie()], l = r(i.value), s = r(!1), n = Se({
active: !1,
"is-focused": !1,
"is-textarea-focused": !1
}), o = Se({
"--ax-form-material-position": 0,
"--ax-form-material-left-offset": 0,
"--ax-form-material-right-offset": 0,
"--ax-form-material-width": 0
}), d = r(null), u = oe(), g = ae(), p = Q("ax-form-material", !1), w = Q("ax-form-uid"), m = Q("ax-form-field");
B(
() => ({ ...m }),
() => {
V();
}
), B(n, () => {
m.extraClasses = n;
}), B(o, () => {
m.extraStyle = o;
}), B(i, (b) => {
l.value = b;
});
const E = T({
get() {
return l.value;
},
set(b) {
l.value = b, t.emit(u, b);
}
});
B(E, () => {
e.tag !== "div" && V();
});
const D = T(() => ({
"custom-select": e.customSelect,
"single-line": e.singleLine
})), M = (b) => {
E.value = b.target.value, e.lazy || j();
}, P = (b) => {
E.value = b.target.value;
}, h = () => {
a.value || (a.value = V.bind(), window.addEventListener("resize", a.value));
}, $ = () => {
a.value && (window.removeEventListener("resize", a.value), a.value = null);
}, A = (b = !0, S) => {
e.tag === "div" && (s.value = b, V(S));
}, V = (b) => {
if (b && (b.type === "click" || b.type === "blur") && j(), !p) {
$();
return;
}
if (!m || m.default) {
$();
return;
}
h();
const S = n.active;
let f;
e.tag === "div" ? f = e.autocomplete !== -1 ? e.autocomplete > 0 : d.value.innerHTML.trim() !== "" : f = d.value.value.length > 0 || d.value.tagName !== "SELECT" && d.value.placeholder.length > 0 || d.value.tagName === "SELECT" || d.value.matches('[type="date"]') || d.value.matches('[type="month"]') || d.value.matches('[type="week"]') || d.value.matches('[type="time"]');
const k = document.activeElement === d.value || e.tag === "div" && s.value;
Y(S, f, k);
}, Y = (b, S, f) => {
const k = d.value.type === "textarea";
!b && (S || f) ? n.active = !0 : b && !(S || f) && (n.active = !1), k || z(), f && !k ? n["is-focused"] = !0 : n["is-focused"] = !1, f && k ? n["is-textarea-focused"] = !0 : n["is-textarea-focused"] = !1;
}, z = () => {
const b = d.value.clientWidth, S = d.value.offsetLeft, f = d.value.clientHeight + d.value.offsetTop + "px";
o["--ax-form-material-position"] = f;
let k = S, W = "left", I = b + "px", J = "0";
m.rtl && (W = "right", k = m.field.clientWidth - b - S), o[`--ax-form-material-${W}-offset`] = k + "px", k != 0 && (J = S), o["--ax-form-material-width"] = I;
const le = m.labelRef;
le && (le.style.left = J + "px");
}, j = () => Ae(e, l, m), v = () => we(m);
return te(() => {
ve({ type: "FormControl", uid: g, data: { FormUid: w, validate: j, resetValidation: v } }), V();
}), ze(() => {
V();
}), re(() => {
$(), fe(g);
}), {
handle: V,
handleDiv: A,
input: d,
classes: D,
computedValue: E,
onInput: M,
onChange: P,
validate: j,
resetValidation: v
};
}
}), xt = ["value"];
function jt(e, t, a, i, l, s) {
const n = Fe("ax-click-outside");
return e.tag !== "textarea" ? $e((c(), he(He(e.tag), U({
key: 0,
class: ["form-control", e.classes]
}, e.$attrs, {
ref: "input",
value: e.computedValue ? e.computedValue : "",
onFocus: e.handle,
onBlur: e.handle,
onClick: e.handleDiv,
onChange: e.onChange,
onInput: e.onInput
}), {
default: ce(() => [
L(e.$slots, "default", {}, void 0, !0)
]),
_: 3
}, 16, ["class", "value", "onFocus", "onBlur", "onClick", "onChange", "onInput"])), [
[n, () => e.handleDiv(!1)]
]) : $e((c(), y("textarea", U({
key: 1,
class: ["form-control", e.classes]
}, e.$attrs, {
ref: "input",
value: e.computedValue ? e.computedValue : "",
onFocus: t[0] || (t[0] = (...o) => e.handle && e.handle(...o)),
onBlur: t[1] || (t[1] = (...o) => e.handle && e.handle(...o)),
onClick: t[2] || (t[2] = (...o) => e.handleDiv && e.handleDiv(...o)),
onChange: t[3] || (t[3] = (...o) => e.onChange && e.onChange(...o)),
onInput: t[4] || (t[4] = (...o) => e.onInput && e.onInput(...o))
}), [
G(`
<slot></slot>
`)
], 16, xt)), [
[n, () => e.handleDiv(!1)]
]);
}
const Yt = /* @__PURE__ */ N(Ut, [["render", jt], ["__scopeId", "data-v-f2dbfdc6"]]);
const _t = O({
name: "AxFormField",
props: {
label: {
type: String,
default: ""
},
inline: {
type: Boolean,
default: !1
},
helper: {
type: String,
default: ""
},
helperClasses: {
type: String,
default: ""
},
default: {
type: Boolean,
default: !1
},
rtl: {
type: Boolean,
default: !1
},
materialColor: {
type: String,
default: "#4c9f85"
}
},
setup(e, t) {
const a = T(() => ({
"form-inline": e.inline,
"form-default": e.default,
"form-rtl": e.rtl,
"not-valid": !!i.value
})), i = r(null), l = r(null), s = r(null), n = r(null), o = r(null), d = r(null);
ke(
"ax-form-field",
Se({
notValidColor: i,
notValidHelper: l,
extraClasses: s,
extraStyle: n,
default: e.default,
rtl: e.rtl,
field: d,
labelRef: o
})
);
const u = T(() => ({
"--ax-form-material-color": i.value ? i.value : e.materialColor
}));
return {
classes: a,
field: d,
labelRef: o,
style: u,
notValidColor: i,
notValidHelper: l,
extraClasses: s,
extraStyle: n,
listeners: t.listeners ? t.listeners : {}
};
}
});
function Gt(e, t, a, i, l, s) {
return c(), y("div", U({
class: ["form-field", [e.classes, e.extraClasses]]
}, e.$attrs, q(e.listeners, !0), {
ref: "field",
style: [e.style, e.extraStyle]
}), [
e.label ? (c(), y("label", {
key: 0,
ref: "labelRef"
}, _(e.label), 513)) : X("", !0),
L(e.$slots, "default"),
e.helper && !e.notValidHelper ? (c(), y("span", {
key: 1,
class: x(["form-helper", e.helperClasses])
}, _(e.helper), 3)) : e.notValidHelper ? (c(), y("span", {
key: 2,
class: x(["form-helper text-error", e.helperClasses])
}, _(e.notValidHelper), 3)) : X("", !0)
], 16);
}
const Xt = /* @__PURE__ */ N(_t, [["render", Gt]]), Kt = O({
name: "AxFormFile",
inheritAttrs: !1,
props: {
labelClasses: {
type: String,
default: ""
},
label: {
type: String,
default: ""
},
id: {
type: String,
default: "input"
}
},
setup(e, t) {
const a = r(null), i = r(null);
return {
handleFileInput: () => {
const s = a.value.files;
s.length > 1 ? i.value.innerHTML = Array.from(s).reduce((n, o) => (n.push(o.name), n), []).join(", ") : s[0] && (i.value.innerHTML = s[0].name);
},
input: a,
path: i,
listeners: t.listeners ? t.listeners : {}
};
}
}), qt = { class: "form-file" }, Zt = ["for"], Jt = ["id"], Qt = {
class: "form-file-path",
ref: "path"
};
function el(e, t, a, i, l, s) {
return c(), y("div", qt, [
C("label", {
for: e.id,
class: x(e.labelClasses)
}, _(e.label), 11, Zt),
C("input", U({
type: "file",
ref: "input",
id: e.id
}, e.$attrs, q(e.listeners, !0), {
onChange: t[0] || (t[0] = (...n) => e.handleFileInput && e.handleFileInput(...n))
}), null, 16, Jt),
C("div", Qt, null, 512)
]);
}
const tl = /* @__PURE__ */ N(Kt, [["render", el]]), ll = O({
name: "AxFormGroup",
setup(e, t) {
return {
listeners: t.listeners ? t.listeners : {}
};
}
});
function al(e, t, a, i, l, s) {
return c(), y("div", U({ class: "form-group" }, e.$attrs, q(e.listeners, !0)), [
L(e.$slots, "default")
], 16);
}
const nl = /* @__PURE__ */ N(ll, [["render", al]]), sl = O({
name: "AxFormSwitch",
inheritAttrs: !1,
mixins: [se, De],
props: {
labelClasses: {
type: String,
default: ""
},
thin: {
type: Boolean,
default: !1
},
size: {
type: String,
default: "",
validator: (e) => ["small", "large", ""].includes(e)
},
color: {
type: String,
default: "#4c9f85"
}
},
setup(e, t) {
const a = ee(e)[ie()], i = r(null), l = r(null), s = r(a.value), n = oe(), o = ae(), d = Q("ax-form-uid"), u = Q("ax-form-field");
B(a, (D) => {
s.value = D;
});
const g = T(() => ({
"form-slider-thin": e.thin,
"form-slider-small": e.size === "small",
"form-slider-large": e.size === "large"
})), p = T(() => ({
"--ax-form-switch-active-color": e.color
})), w = T({
get() {
return s.value;
},
set(D) {
s.value = D, t.emit(n, D);
}
}), m = () => Ae(e, s, u), E = () => we(u);
return te(() => {
ve({ type: "FormSwitch", uid: o, data: { FormUid: d, validate: m, resetValidation: E } });
}), re(() => {
fe(o);
}), {
classes: g,
input: i,
slider: l,
style: p,
computedValue: w,
validate: m,
resetValidation: E
};
}
});
function il(e, t, a, i, l, s) {
return c(), y("label", {
class: x(["form-switch", e.labelClasses])
}, [
L(e.$slots, "false-value"),
$e(C("input", U({
type: "checkbox",
"onUpdate:modelValue": t[0] || (t[0] = (n) => e.computedValue = n)
}, e.$attrs, {
ref: "input",
onInput: t[1] || (t[1] = (...n) => e.validate && e.validate(...n)),
onChange: t[2] || (t[2] = (...n) => e.validate && e.validate(...n))
}), null, 16), [
[kt, e.computedValue]
]),
C("span", {
class: x(["form-slider", e.classes]),
style: Ce(e.style),
ref: "slider"
}, null, 6),
L(e.$slots, "default")
], 2);
}
const ol = /* @__PURE__ */ N(sl, [["render", il]]), Ke = {
directives: {
axClickOutside: Re
},
props: {
multiple: {
type: Boolean,
default: !1
},
items: {
type: Array,
default: () => []
},
closeOnClick: {
type: Boolean,
default: !0
},
singleLine: {
type: Boolean,
default: !1
},
chips: {
type: Boolean,
default: !1
},
chipsClosable: {
type: Boolean,
default: !1
}
}
}, qe = (e, t, a, i, l, s, n, o, d, u = "") => {
e.value = [...new Set(t.value)].reduce((g, p, w) => {
let m;
const E = {
index: w
};
typeof p != "object" ? m = Object.assign(
{
name: p,
value: p
},
E
) : (m = Object.assign(p, E), typeof m.value > "u" && (m.value = m.name));
const D = m.selected && !a.value || !i.multiple && a.value === m.value || i.multiple && a.value && a.value.includes(m.value) || i.multiple && a.value && a.value.length === 0 && m.selected;
return m.selected = D, D && (i.multiple && !l.value.some((M) => m.value === M.value) ? l.value.push(m) : s.value = m, u && !i.multiple && (u.value = m.name), n.emit(o, d.value)), g.push(m), g;
}, []);
}, Ze = (e = !1, t, a, i, l) => {
if (e) {
t.value = !0, setTimeout(() => {
l.value.getBoundingClientRect().bottom <= (window.innerHeight || document.documentElement.clientHeight) - 10 ? i.value = !1 : i.value = !0, a.value = 1;
}, 50);
return;
}
a.value = 0, setTimeout(() => {
t.value = !1, i.value = !1;
}, 300);
}, Je = (e, t, a, i, l, s) => {
if (a.value.length !== 0) {
if (t.value && t.value.index >= 0) {
if (t.value.index === e)
return;
const n = a.value[t.value.index];
n.selected = !1, a.value.splice(t.value.index, 1, n);
}
if (e !== -1) {
const n = a.value[e];
n.selected = !0, t.value = n, a.value.splice(e, 1, n);
} else
t.value = {};
i.emit(l, s.value);
}
}, Qe = (e, t, a, i, l, s) => {
if (e < 0 || t.value.length === 0)
return;
const n = t.value[e], o = a.value.findIndex((d) => d.value === n.value && n.selected);
o !== -1 ? (n.selected = !1, a.value.splice(o, 1)) : (n.selected = !0, a.value.push(n)), t.value.splice(e, 1, n), i.emit(l, s.value);
}, ul = (e, t, a) => {
if (e < 0 || t.value.length === 0)
return;
const i = t.value[e];
i.selected = !1, t.value.splice(e, 1, i);
const l = a.value.findIndex((s) => s.value === i.value);
a.value.splice(l, 1);
};
const rl = O({
name: "AxFormSelect",
mixins: [se, Ke, De],
setup(e, t) {
const a = r([]), i = r(!1), l = r(!1), s = r(null), n = r({}), o = r([]), d = r(!0), u = r(0), g = ee(e).items, p = ee(e)[ie()], w = oe(), m = ae(), E = Q("ax-form-uid"), D = Q("ax-form-field"), M = T(() => ({
display: i.value ? "block" : "",
opacity: u.value,
bottom: l.value ? 0 : ""
})), P = T(() => e.multiple ? o.value : n.value), h = T(() => {
let v = e.multiple ? o.value.map((b) => b.value) : n.value.value;
return typeof v > "u" && (v = e.multiple ? [] : ""), v;
});
B(h, () => {
z();
}), B(p, (v) => {
if (e.multiple) {
if (!Array.isArray(v))
return;
} else {
if (n.value && v === n.value.value)
return;
V(v);
return;
}
const b = v.filter((f) => !h.value.includes(f)), S = h.value.filter((f) => !v.includes(f));
[...b, ...S].map((f) => {
const k = a.value.findIndex((W) => W.value === f || W.value === f.value);
k >= 0 && Y(k);
});
}), B(g, () => {
$();
});
const $ = () => qe(
a,
g,
p,
e,
o,
n,
t,
w,
h
), A = (v = !1) => {
d.value && v && (d.value = !1), !v && !d.value ? z() : d.value || we(D), Ze(v, i, u, l, s);
}, V = (v) => {
const b = a.value.findIndex((S) => S.value === v);
if (!(v && b === -1)) {
if (e.multiple)
return Y(b);
Je(b, n, a, t, w, h), e.closeOnClick && A();
}
}, Y = (v) => {
e.multiple && Qe(v, a, o, t, w, h);
}, z = () => e.multiple ? Ae(e, o, D) : Ae(e, n, D), j = () => we(D);
return te(() => {
ve({ type: "FormSelect", uid: m, data: { FormUid: E, validate: z, resetValidation: j } }), $();
}), re(() => {
fe(m);
}), {
style: M,
toggle: A,
select: V,
result: P,
container: s,
computedItems: a,
validate: z,
resetValidation: j
};
}
}), dl = ["onClick"], vl = /* @__PURE__ */ C("svg", {
version: "1.1",
viewBox: "0 0 512 512",
"xml:space": "preserve",
xmlns: "http://www.w3.org/2000/svg",
"xmlns:xlink": "http://www.w3.org/1999/xlink"
}, [
/* @__PURE__ */ C("path", { d: "M437.5,386.6L306.9,256l130.6-130.6c14.1-14.1,14.1-36.8,0-50.9c-14.1-14.1-36.8-14.1-50.9,0L256,205.1L125.4,74.5 c-14.1-14.1-36.8-14.1-50.9,0c-14.1,14.1-14.1,36.8,0,50.9L205.1,256L74.5,386.6c-14.1,14.1-14.1,36.8,0,50.9 c14.1,14.1,36.8,14.1,50.9,0L256,306.9l130.6,130.6c14.1,14.1,36.8,14.1,50.9,0C451.5,423.4,451.5,400.6,437.5,386.6z" })
], -1), fl = [
vl
], cl = ["onClick"];
function ml(e, t, a, i, l, s) {
const n = Te("ax-form-control"), o = Te("ax-form-check"), d = Fe("ax-click-outside");
return $e((c(), y("div", xe(je(e.$attrs)), [
Ve(n, {
"custom-select": "",
tag: "div",
onClick: t[0] || (t[0] = () => e.toggle(!0)),
"single-line": e.singleLine
}, {
default: ce(() => [
e.chips ? (c(), y(K, { key: 1 }, [
e.multiple ? (c(!0), y(K, { key: 1 }, be(e.result, (u, g) => (c(), y("div", {
class: "form-chips",
key: "auto-val-" + g
}, [
G(_(u.name) + " ", 1),
e.chipsClosable ? (c(), y("span", {
key: 0,
class: "form-chips-closable",
onClick: ue((p) => e.select(u.value), ["prevent", "stop"])
}, fl, 8, dl)) : X("", !0)
]))), 128)) : (c(), y(K, { key: 0 }, [
G(_(e.result.name), 1)
], 64))
], 64)) : (c(), y(K, { key: 0 }, [
G(_(e.result.name), 1)
], 64))
]),
_: 1
}, 8, ["single-line"]),
C("div", {
class: "form-select-content",
style: Ce(e.style),
ref: "container"
}, [
L(e.$slots, "prepend", { toggle: e.toggle }),
(c(!0), y(K, null, be(e.computedItems, (u, g) => (c(), y("div", {
class: x(["form-select-item", { selected: u.selected, disabled: u.disabled }]),
key: "show-item-" + g,
onClick: ue((p) => u.disabled ? "" : e.select(u.value), ["prevent"])
}, [
e.multiple ? (c(), he(o, {
key: 0,
modelValue: u.selected,
"onUpdate:modelValue": (p) => u.selected = p,
disabled: u.disabled
}, {
default: ce(() => [
G(_(u.name), 1)
]),
_: 2
}, 1032, ["modelValue", "onUpdate:modelValue", "disabled"])) : (c(), y(K, { key: 1 }, [
G(_(u.name), 1)
], 64))
], 10, cl))), 128)),
L(e.$slots, "append", { toggle: e.toggle })
], 4)
], 16)), [
[d, () => e.toggle(!1)]
]);
}
const pl = /* @__PURE__ */ N(rl, [["render", ml]]);
const gl = O({
name: "AxFormAutocomplete",
mixins: [se, Ke, De],
props: {
filter: {
type: Function,
default: (e, t) => e.filter((a) => a.name.toLowerCase().indexOf(t.toLowerCase()) !== -1)
}
},
setup(e, t) {
const a = r([]), i = r(!1), l = r(!1), s = r(null), n = r(null), o = r(""), d = r({}), u = r([]), g = r(0), p = r(""), w = r(0), m = r(!1), E = r(!0), D = ee(e).items, M = ee(e)[ie()], P = oe(), h = ae(), $ = Q("ax-form-uid"), A = Q("ax-form-field"), V = T(() => ({
display: i.value ? "block" : "",
opacity: w.value,
bottom: l.value ? "100%" : ""
})), Y = T(() => e.multiple ? u.value : d.value), z = T(() => {
let R = e.multiple ? u.value.map((Z) => Z.value) : d.value.value;
return typeof R > "u" && (R = e.multiple ? [] : ""), R;
}), j = T(() => e.filter(a.value, o.value)), v = T(() => z.value.length > 0 || w.value === 1 ? 1 : o.value.length);
B(z, () => {
me();
}), B(o, (R, Z) => {
p.value = Z, d.value.index >= 0 && R === "" && !e.multiple && (ul(d.value.index, a, u), t.emit(P, R));
}), B(M, (R) => {
if (e.multiple) {
if (!Array.isArray(R))
return;
} else {
if (d.value && R === d.value.value)
return;
W(R);
return;
}
const Z = R.filter((de) => !z.value.includes(de)), ge = z.value.filter((de) => !R.includes(de));
[...Z, ...ge].map((de) => {
const Le = a.value.findIndex((Ie) => Ie.value === de || Ie.value === de.value);
Le >= 0 && I(Le);
});
}), B(D, () => {
f();
});
const b = () => {
window.addEventListener("keyup", J), document.addEventListener("click", le);
}, S = () => {
window.removeEventListener("keyup", J), document.removeEventListener("click", le);
}, f = () => qe(
a,
D,
M,
e,
u,
d,
t,
P,
z,
o
), k = (R = !1) => {
E.value && R && (E.value = !1), !R && !E.value ? me() : E.value || we(A), Ze(R, i, w, l, s);
}, W = (R) => {
var ge, de;
const Z = a.value.findIndex((Le) => Le.value === R);
if (!(R && Z === -1)) {
if (e.multiple)
return I(Z);
Je(Z, d, a, t, P, z), o.value = ((ge = a.value[Z]) == null ? void 0 : ge.name) || "", e.closeOnClick && ((de = a.value[Z]) != null && de.name) && k();
}
}, I = (R) => {
e.multiple && (Qe(R, a, u, t, P, z), i.value && n.value.focus());
}, J = (R) => {
if (!(R.keyCode !== 8 || o.value !== "" || u.value.length === 0 || !i.value)) {
if (p.value !== "") {
if (g.value++, g.value !== 2)
return;
g.value = 0, p.value = "";
}
if (m.value) {
const Z = u.value[u.value.length - 1].index;
I(Z);
} else
m.value = !0;
n.value.blur();
}
}, le = () => {
m.value = !1;
}, me = () => e.multiple ? Ae(e, u, A) : Ae(e, d, A), pe = () => we(A);
return te(() => {
ve({ type: "FormAutocomplete", uid: h, data: { FormUid: $, validate: me, resetValidation: pe } }), b(), f();
}), re(() => {
S(), fe(h);
}), {
style: V,
toggle: k,
select: W,
result: Y,
container: s,
input: n,
isFocused: m,
inputValue: o,
filteredItems: j,
validate: me,
autocompleteActive: v,
resetValidation: pe
};
}
}), yl = ["onClick"], hl = /* @__PURE__ */ C("svg", {
version: "1.1",
viewBox: "0 0 512 512",
"xml:space": "preserve",
xmlns: "http://www.w3.org/2000/svg",
"xmlns:xlink": "http://www.w3.org/1999/xlink"
}, [
/* @__PURE__ */ C("path", { d: "M437.5,386.6L306.9,256l130.6-130.6c14.1-14.1,14.1-36.8,0-50.9c-14.1-14.1-36.8-14.1-50.9,0L256,205.1L125.4,74.5 c-14.1-14.1-36.8-14.1-50.9,0c-14.1,14.1-14.1,36.8,0,50.9L205.1,256L74.5,386.6c-14.1,14.1-14.1,36.8,0,50.9 c14.1,14.1,36.8,14.1,50.9,0L256,306.9l130.6,130.6c14.1,14.1,36.8,14.1,50.9,0C451.5,423.4,451.5,400.6,437.5,386.6z" })
], -1), bl = [
hl
], $l = ["onClick"];
function wl(e, t, a, i, l, s) {
const n = Te("ax-form-control"), o = Te("ax-form-check"), d = Fe("ax-click-outside");
return $e((c(), y("div", xe(je(e.$attrs)), [
e.multiple ? (c(), he(n, {
key: 1,
"custom-select": "",
autocomplete: e.autocompleteActive,
tag: "div",
onClick: t[3] || (t[3] = () => e.toggle(!0)),
"single-line": e.singleLine
}, {
default: ce(() => [
(c(!0), y(K, null, be(e.result, (u, g) => (c(), y("div", {
class: x(["form-autocomplete-selected", { "form-autocomplete-focused": g === e.result.length - 1 && e.isFocused, "form-chips": e.chips }]),
key: "auto-val-" + g
}, [
G(_(u.name), 1),
g !== e.result.length - 1 && !e.chips ? (c(), y(K, { key: 0 }, [
G(",")
], 64)) : X("", !0),
e.chips && e.chipsClosable ? (c(), y("span", {
key: 1,
class: "form-chips-closable",
onClick: ue((p) => e.select(u.value), ["prevent", "stop"])
}, bl, 8, yl)) : X("", !0)
], 2))), 128)),
$e(C("input", {
type: "text",
class: "form-autocomplete-input",
ref: "input",
"onUpdate:modelValue": t[2] || (t[2] = (u) => e.inputValue = u)
}, null, 512), [
[Ct, e.inputValue]
])
]),
_: 1
}, 8, ["autocomplete", "single-line"])) : (c(), he(n, {
key: 0,
"custom-select": "",
autocomplete: e.autocompleteActive,
tag: "input",
type: "text",
onClick: t[0] || (t[0] = () => e.toggle(!0)),
"single-line": e.singleLine,
modelValue: e.inputValue,
"onUpdate:modelValue": t[1] || (t[1] = (u) => e.inputValue = u)
}, null, 8, ["autocomplete", "single-line", "modelValue"])),
C("div", {
class: "form-select-content",
style: Ce(e.style),
ref: "container"
}, [
L(e.$slots, "prepend", { toggle: e.toggle }),
(c(!0), y(K, null, be(e.filteredItems, (u, g) => (c(), y("div", {
class: x(["form-select-item", { selected: u.selected, disabled: u.disabled }]),
key: "show-item-" + g,
onClick: ue((p) => u.disabled ? "" : e.select(u.value), ["prevent"])
}, [
e.multiple ? (c(), he(o, {
key: 0,
modelValue: u.selected,
"onUpdate:modelValue": (p) => u.selected = p,
disabled: u.disabled
}, {
default: ce(() => [
G(_(u.name), 1)
]),
_: 2
}, 1032, ["modelValue", "onUpdate:modelValue", "disabled"])) : (c(), y(K, { key: 1 }, [
G(_(u.name), 1)
], 64))
], 10, $l))), 128)),
L(e.$slots, "append", { toggle: e.toggle })
], 4)
], 16)), [
[d, () => e.toggle(!1)]
]);
}
const kl = /* @__PURE__ */ N(gl, [["render", wl]]), et = {
install(e) {
H(e, Pt), H(e, Wt), H(e, Yt), H(e, Xt), H(e, tl), H(e, nl), H(e, ol), H(e, pl), H(e, kl);
}
};
ne(et);
const Cl = O({
name: "AxLightbox",
inheritAttrs: !1,
mixins: [se],
props: {
responsive: {
type: Boolean,
default: !1
},
animationDuration: {
type: Number,
default: 400
},
overlayClass: {
type: String,
default: "grey dark-4"
},
offset: {
type: Number,
default: 150
},
mobileOffset: {
type: Number,
default: 80
},
caption: {
type: String,
default: ""
}
},
setup(e, t) {
const a = r(!1), i = ee(e)[ie()], l = r(""), s = r(null), n = r(null), o = r(null), d = r(null), u = r(null), g = r(0), p = r(0), w = r(null), m = r(null), E = r(null), D = r(null), M = r(null), P = r(null), h = r(null), $ = r(!1), A = r(!1), V = r([]), Y = oe(), z = ae(), j = T(() => ({
"responsive-media": e.responsive
})), v = T(() => ({
transitionDuration: e.animationDuration + "ms",
position: l.value
}));
B(i, (F) => {
if (F === null) {
a.value ? Z() : ge();
return;
}
a.value = F, F && !A.value ? Z() : !$.value && (!a.value || A.value) && ge();
}), B(a, (F) => {
t.emit(Y, F);
});
const b = () => {
ve({ type: "Lightbox", uid: z }), S(), i.value && Z(), t.emit("setup");
}, S = () => {
M.value = k.bind(this), m.value = W.bind(this), E.value = I.bind(this), w.value = J.bind(this), P.value = pe.bind(this), window.addEventListener("resize", w.value), window.addEventListener("keyup", m.value), window.addEventListener("scroll", E.value), s.value.addEventListener("transitionend", P.value);
}, f = () => {
window.removeEventListener("resize", w.value), Oe();
}, k = (F) => {
F.preventDefault(), a.value = !a.value;
}, W = (F) => {
F.key === "Escape" && (A.value || a.value) && (a.value = !1);
}, I = () => {
(a.value || !$.value && A.value) && (a.value = !1);
}, J = () => {
a.value && (a.value = !1);
}, le = () => {
D.value = me.bind(this), o.value.addEventListener("click", D.value);
}, me = (F) => {
F.preventDefault(), o.value.removeEventListener("click", D.value), a.value = !1;
}, pe = (F) => {
F.propertyName !== "width" && F.propertyName !== "height" || ($.value ? (de(), $.value = !1, t.emit("closed")) : A.value && (A.value = !1, a.value = !0, t.emit("opened")));
}, R = () => {
const F = window.innerWidth >= 960 ? e.offset : e.mobileOffset;
window.innerWidth / window.innerHeight >= u.value.width / u.value.height ? (p.value = window.innerHeight - F, g.value = p.value * u.value.width / u.value.height) : (g.value = window.innerWidth - F, p.value = g.value * u.value.height / u.value.width);
}, Z = () => {
if (A.value)
return;
clearTimeout(h.value), A.value = !0;
let F, ye;
$.value ? F = ye = n.value.getBoundingClientRect() : F = ye = s.value.getBoundingClientRect(), $.value = !1, dt(), vt();
const ct = window.innerHeight / 2, mt = window.innerWidth / 2;
u.value = F, s.value.style.width = u.value.width + "px", s.value.style.height = u.value.height + "px", s.value.style.top = "0", s.value.style.left = "0";
const pt = ct + window.scrollY - (ye.top + window.scrollY), gt = mt + window.scrollX - (ye.left + window.scrollX);
R(), n.value.style.position = "relative", h.value = setTimeout(() => {
t.emit("open"), e.responsive && s.value.classList.remove("responsive-media"), s.value.classList.add("active"), n.value.style.width = u.value.width + "px", n.value.style.height = u.value.height + "px", s.value.style.width = g.value + "px", s.value.style.height = p.value + "px", s.value.style.top = pt - p.value / 2 + "px", s.value.style.left = gt - g.value / 2 + "px";
}, 50);
}, ge = () => {
clearTimeout(h.value), $.value = !0, A.value = !1, setTimeout(() => {
ft();
}, 50), t.emit("close"), s.value.style.position = "absolute", s.value.style.top = "0px", s.value.style.left = "0px", s.value.style.width = u.value.width + "px", s.value.style.height = u.value.height + "px";
}, de = () => {
s.value.classList.remove("active"), Oe(), e.responsive && s.value.classList.add("responsive-media"), n.value.removeAttribute("style"), s.value.style.position = "", s.value.style.left = "", s.value.style.top = "", s.value.style.width = "", s.value.style.height = "", s.value.style.transform = "", Ie();
}, Le = () => {
V.value = [];
for (let F = s.value; F && F !== document; F = F.parentNode) {
const ye = window.getComputedStyle(F);
(ye.overflow === "hidden" || ye.overflowX === "hidden" || ye.overflowY === "hidden" || F === document.body) && (V.value.push(F), F.style.setProperty("overflow", "visible", "important"));
}
}, Ie = () => {
V.value.forEach((F) => F.style.overflow = ""), document.body.style.overflowX = "";
}, dt = () => {
if (o.value) {
le();
return;
}
Le(), o.value = document.createElement("div"), o.value.style.transitionDuration = e.animationDuration + "ms", o.value.className = `lightbox-overlay ${e.overlayClass}`, n.value.appendChild(o.value), e.caption && (d.value = document.createElement("p"), d.value.className = "lightbox-caption", d.value.innerHTML = e.caption, o.value.appendChild(d.value)), le();
}, Oe = () => {
o.value && (e.caption && d.value.remove(), o.value.removeEventListener("click", D.value), o.value.remove(), o.value = null);
}, vt = () => {
setTimeout(() => {
o.value && (o.value.style.opacity = 1);
}, 50);
}, ft = () => {
o.value && (o.value.style.opacity = 0);
};
return te(() => {
b();
}), re(() => {
f(), fe(z);
}), {
classes: j,
lightbox: s,
container: n,
closeLightbox: ge,
style: v,
onClickTrigger: k,
listeners: t.listeners ? t.listeners : {}
};
}
}), Al = { ref: "container" };
function Ll(e, t, a, i, l, s) {
return c(), y("div", Al, [
C("img", U({
ref: "lightbox",
class: ["lightbox", e.classes],
onClick: t[0] || (t[0] = (...n) => e.onClickTrigger && e.onClickTrigger(...n)),
onKeyup: t[1] || (t[1] = (...n) => e.closeLightbox && e.closeLightbox(...n)),
style: e.style,
alt: "lightbox"
}, e.$attrs, q(e.listeners, !0)), null, 16)
], 512);
}
const Sl = /* @__PURE__ */ N(Cl, [["render", Ll]]), tt = {
install(e) {
H(e, Sl);
}
};
ne(tt);
const Tl = O({
name: "AxCollapsible",
mixins: [se],
props: {
animationDuration: {
type: Number,
default: 300
},
autoClose: {
type: Boolean,
default: !0
}
},
setup(e, t) {
const a = ee(e)[ie()], i = oe(), l = r(!1), s = r(!1), n = r(null), o = r(null), d = r(null), u = r(null), g = ae(), p = Q("ax-sidenav", null), w = T(() => ({
active: l.value
})), m = T(() => ({
transitionDuration: e.animationDuration + "ms",
maxHeight: n.value,
display: o.value,
overflow: s.value ? "hidden" : "visible"
}));
B(a, (A) => {
A !== null && (A ? h() : $(), t.emit(i, l.value));
}), B(l, (A) => {
t.emit(i, A);
});
const E = () => {
ve({ type: "Collapsible", uid: g, data: { closeCollapsible: $ } }), D(), a.value && h(), t.emit("setup");
}, D = () => {
u.value = P.bind(this), window.addEventListener("resize", u.value);
}, M = () => {
window.removeEventListener("resize", u.value);
}, P = () => {
l.value && !p && (m.value.maxHeight = d.value.scrollHeight + "px");
}, h = () => {
s.value || l.value || (Pe("Collapsible").map((A) => {
A.data.closeCollapsible(d.value, p);
}), t.emit("open"), l.value = !0, s.value = !0, o.value = "block", setTimeout(() => {
n.value = d.value.scrollHeight + "px";
}, 10), setTimeout(() => {
s.value = !1;
}, e.animationDuration + 10));
}, $ = (A, V) => {
s.value && !A || A === d.value || !l.value || A && (!e.autoClose || !p || p && p !== V) || (t.emit("close"), l.value = !1, setTimeout(() => {
s.value = !0, n.value = "0";
}, 10), setTimeout(() => {
o.value = "", s.value = !1;
}, e.animationDuration + 10));
};
return te(() => {
E();
}), re(() => {
M(), fe(g);
}), {
classes: w,
style: m,
collapsible: d,
closeCollapsible: $,
listeners: t.listeners ? t.listeners : {}
};
}
});
function Bl(e, t, a, i, l, s) {
return c(), y("div", U({
class: ["collapsible", e.classes],
ref: "collapsible",
style: e.style
}, e.$attrs, q(e.listeners, !0)), [
L(e.$slots, "default")
], 16);
}
const Dl = /* @__PURE__ */ N(Tl, [["render", Bl]]), lt = {
install(e) {
H(e, Dl);
}
};
ne(lt);
const El = O({
name: "AxDropdown",
mixins: [se],
directives: {
axClickOutside: Re
},
props: {
animationDuration: {
type: Number,
default: 300
},
animationType: {
type: String,
default: "none",
validator: (e) => ["none", "fade"].includes(e)
},
constrainWidth: {
type: Boolean,
default: !1
},
contentClasses: {
type: String,
default: ""
},
autoClose: {
type: Boolean,
default: !0
},
preventViewport: {
type: Boolean,
default: !1
}
},
setup(e, t) {
const a = ee(e)[ie()], i = oe(), l = r(!1), s = r(!1), n = r(0), o = r(""), d = r(null), u = ae(), g = T(() => ({
active: l.value,
"dropdown-vp": e.preventViewport
})), p = T(() => ({
transitionDuration: e.animationType !== "none" ? e.animationDuration + "ms" : ""
})), w = T(() => ({
display: o.value,
maxHeight: n.value ? n.value : "auto"
}));
B(a, ($) => {
$ !== null && ($ ? P() : h(), t.emit(i, $));
}), B(l, ($) => {
t.emit(i, $);
});
const m = () => {
ve({ type: "Dropdown", uid: u, data: { closeDropdown: h } }), a.value && (P(), l.value = !0), t.emit("setup");
}, E = () => {
s.value || (l.value ? h() : P());
}, D = () => {
s.value || !l.value || h();
}, M = () => {
const $ = d.value.getBoundingClientRect(), A = $.height - ($.bottom - (window.innerHeight || document.documentElement.clientHeight)) - 10;
n.value = A + "px";
}, P = () => {
l.value || s.value || (e.autoClose && Pe("Dropdown").map(($) => {
$.data.closeDropdown();
}), t.emit("open"), o.value = "flex", setTimeout(() => {
l.value = !0, e.preventViewport && M();
}, 10), e.animationType !== "none" ? (s.value = !0, setTimeout(() => {
s.value = !1, t.emit("opened");
}, e.animationDuration)) : t.emit("opened"));
}, h = () => {
l.value && (t.emit("close"), l.value = !1, e.animationType !== "none" ? (s.value = !0, setTimeout(() => {
o.value = "", s.value = !1, t.emit("closed");
}, e.animationDuration)) : (o.value = "", s.value = !1, t.emit("closed")));
};
return te(() => {
m();
}), re(() => {
fe(u);
}), {
classes: g,
style: p,
content: d,
contentStyle: w,
onDocumentClick: D,
onTriggerClick: E,
animation: `dropdown-anim-${e.animationType}`,
listeners: t.listeners ? t.listeners : {}
};
}
});
function Il(e, t, a, i, l, s) {
const n = Fe("ax-click-outside");
return $e((c(), y("div", U({
style: e.style,
class: [[e.classes, e.animation], "dropdown"]
}, e.$attrs, q(e.listeners, !0)), [
L(e.$slots, "trigger", { trigger: e.onTriggerClick }),
C("div", {
style: Ce(e.contentStyle),
class: x([[{ "dropdown-constrain-width": e.constrainWidth }, e.contentClasses], "dropdown-content"]),
ref: "content",
onClick: t[0] || (t[0] = (...o) => e.onTriggerClick && e.onTriggerClick(...o))
}, [
L(e.$slots, "default")
], 6)
], 16)), [
[n, () => e.onDocumentClick()]
]);
}
const Vl = /* @__PURE__ */ N(El, [["render", Il]]), at = {
install(e) {
H(e, Vl);
}
};
ne(at);
const Fl = O({
name: "AxDataTable",
mixins: [se],
inheritAttrs: !1,
props: {
headers: {
type: Array,
default: () => []
},
items: {
type: Array,
default: () => []
},
classes: {
type: String,
default: ""
},
search: {
type: String,
default: ""
},
pagination: {
type: Boolean,
default: !1
},
paginationSize: {
type: String,
default: "",
validator: (e) => ["", "small", "large"].includes(e)
},
perPage: {
type: Number,
default: 10,
validator: (e) => e > 0
},
expandable: {
type: Boolean,
default: !1
},
singleExpand: {
type: Boolean,
default: !1
},
loading: {
type: Boolean,
default: !1
},
hover: {
type: Boolean,
default: !0
},
noDataText: {
type: String,
default: "No data available."
},
paginationText: {
type: String,
default: "of"
},
total: {
type: Number
},
serverSide: {
type: Boolean,
default: !1
}
},
setup(e, t) {
const a = ee(e)[ie()], i = oe(), l = "update:options", s = r([]), n = r([]), o = r(a.value || 1), d = r(1), u = r(10), g = r([]), p = r(null), w = r(!1), m = T(() => e.total ? e.total : !e.serverSide && e.search ? D.value.length : n.value.length), E = r(Math.ceil(e.perPage / m.value));
B(
() => e.headers,
() => {
A();
}
), B(
() => e.items,
() => {
V();
}
), B(
() => e.modelValue,
(v) => {
o.value !== v && (o.value = v);
}
), B(o, (v) => {
var b;
t.emit(i, v), t.emit(l, {
page: v,
perPage: e.perPage,
sortBy: (b = p.value) == null ? void 0 : b.value,
sortAsc: w.value,
search: e.search
});
}), B(
() => e.search,
() => {
var v;
P(1), t.emit(l, {
page: o.value,
perPage: e.perPage,
sortBy: (v = p.value) == null ? void 0 : v.value,
sortAsc: w.value,
search: e.search
});
}
);
const D = T(() => n.value.filter((v) => Object.keys(v).some((S) => {
const f = $(S);
if (S === "expanded" || !f || f.filterable === !1)
return !1;
const k = v[S];
if (!k)
return !1;
try {
return k.toString().toLowerCase().includes(e.search.toLowerCase());
} catch (W) {
return console.error(W), !1;
}
}))), M = T(() => {
let v = !e.serverSide && e.search ? D.value : n.value;
return p.value && p.value.sortable !== !1 && (v = j([...v]), w.value || (v = v.reverse())), h(), e.serverSide ? v : v.slice(d.value, u.value);
}), P = (v) => {
if (v <= 1)
return o.value = 1;
if (v >= E.value)
return o.value = E.value;
o.value = v;
}, h = () => {
d.value = (o.value - 1) * e.perPage, u.value = o.value * e.perPage, E.value = Math.ceil(m.value / e.perPage);
}, $ = (v) => s.value.find((b) => b.value === v), A = () => {
if (e.headers.length === 0)
return s.value = [];
s.value = [...e.headers].reduce((v, b) => (typeof b == "object" ? v.push(b) : v.push({
text: b,
value: b
}), v), []);
}, V = () => {
n.value = [...e.items];
}, Y = (v) => {
const b = n.value.findIndex((S) => S === v);
if (b !== -1) {
if (e.singleExpand && (g.value.map((S) => {
if (S === v)
return;
const f = n.value.findIndex((k) => k === S);
S.expanded = !1, n.value.splice(f, 1, S);
}), g.value = []), v.expanded) {
const S = g.value.findIndex((f) => f === v);
g.value.splice(S, 1), v.expanded = !1;
} else
v.expanded = !0, g.value.push(v);
n.value.splice(b, 1, v);
}
}, z = (v) => {
if (v.sortable !== !1) {
if (p.value === v && !w.value) {
p.value = null, w.value = !1, t.emit(l, {
page: o.value,
perPage: e.perPage,
sortBy: p.value,
sortAsc: w.value,
search: e.search
});
return;
}
p.value = v, w.value = !w.value, t.emit(l, {
page: o.value,
perPage: e.perPage,
sortBy: p.value.value,
sortAsc: w.value,
search: e.search
});
}
}, j = (v) => v.sort((b, S) => {
const f = b[p.value.value], k = S[p.value.value];
return f == null || k === null || k === void 0 ? -1 : typeof f == "string" ? f.localeCompare(k) : Array.isArray(f) ? k.length - f.length : f - k;
});
return te(() => {
A(), V(), t.emit("setup");
}), {
computedItems: M,
localHeaders: s,
localItems: n,
sortedHeader: p,
page: o,
firstItemIndex: d,
lastItemIndex: u,
localTotal: m,
isAsc: w,
totalPage: E,
goto: P,
sortBy: z,
expandItem: Y,
listeners: t.listeners ? t.listeners : {}
};
}
}), Ee = (e) => (At("data-v-58f51cd2"), e = e(), Lt(), e), Pl = { class: "table-responsive" }, Rl = { class: "datatable-head" }, Ml = ["onClick"], zl = /* @__PURE__ */ Ee(() => /* @__PURE__ */ C("span", { class: "datatable-icon" }, "↑", -1)), Hl = /* @__PURE__ */ Ee(() => /* @__PURE__ */ C("span", { class: "datatable-icon" }, "↓", -1)), Ol = /* @__PURE__ */ Ee(() => /* @__PURE__ */ C("span", { class: "datatable-icon" }, "↕", -1)), Nl = {
key: 0,
width: "20"
}, Wl = {
key: 0,
class: "datatable-progress"
}, Ul = ["colspan"], xl = /* @__PURE__ */ Ee(() => /* @__PURE__ */ C("div", { class: "progress progress-indeterminate progress-small" }, [
/* @__PURE__ */ C("div", { class: "progress-bar primary" })
], -1)), jl = { key: 1 }, Yl = ["colspan"], _l = { key: 0 }, Gl = /* @__PURE__ */ Ee(() => /* @__PURE__ */ C("path", { d: "M8.12 9.29L12 13.17l3.88-3.88a.996.996 0 1 1 1.41 1.41l-4.59 4.59a.996.996 0 0 1-1.41 0L6.7 10.7a.996.996 0 0 1 0-1.41c.39-.38 1.03-.39 1.42 0z" }, null, -1)), Xl = [
Gl
], Kl = ["colspan"], ql = { class: "datatable-footer" };
function Zl(e, t, a, i, l, s) {
const n = Te("ax-btn"), o = Te("ax-pagination");
return c(), y("div", null, [
C("div", Pl, [
C("table", {
class: x(["table", [e.classes, { "table-hover": e.hover }]])
}, [
C("thead", null, [
C("tr", Rl, [
(c(!0), y(K, null, be(e.localHeaders, (d, u) => (c(), y("th", {
key: u,
class: x({ "datatable-sortable": d.sortable !== !1 }),
onClick: (g) => e.sortBy(d)
}, [
G(_(d.text) + " ", 1),
d.sortable !== !1 ? (c(), y(K, { key: 0 }, [
e.sortedHeader === d && e.isAsc ? L(e.$slots, "sort-asc", { key: 0 }, () => [
zl
], !0) : X("", !0),
e.sortedHeader === d && !e.isAsc ? L(e.$slots, "sort-desc", {
key: 1,
class: "datatable-icon"
}, () => [
Hl
], !0) : X("", !0),
e.sortedHeader !== d ? L(e.$slots, "sort-desc", {
key: 2,
class: "datatable-icon"
}, () => [
Ol
], !0) : X("", !0)
], 64)) : X("", !0)
], 10, Ml))), 128)),
e.expandable ? (c(), y("th", Nl)) : X("", !0)
])
]),
C("tbody", null, [
e.loading ? (c(), y("tr", Wl, [
C("td", {
colspan: e.expandable ? e.localHeaders.length + 1 : e.localHeaders.length
}, [
L(e.$slots, "progress-bar", {}, () => [
xl
], !0)
], 8, Ul)
])) : X("", !0),
e.computedItems.length === 0 ? (c(), y("tr", jl, [
C("td", {
colspan: e.expandable ? e.localHeaders.length + 1 : e.localHeaders.length,
class: "text-center"
}, _(e.noDataText), 9, Yl)
])) : X("", !0),
(c(!0), y(K, null, be(e.computedItems, (d, u) => (c(), y(K, { key: u }, [
C("tr", null, [
(c(!0), y(K, null, be(e.localHeaders, (g, p) => (c(), y("td", { key: p }, [
L(e.$slots, "item." + g.value, { item: d }, () => [
G(_(d[g.value]), 1)
], !0)
]))), 128)),
e.expandable ? (c(), y("td", _l, [
L(e.$slots, "expand-btn", {}, () => [
Ve(n, {
onClick: (g) => e.expandItem(d),
circle: "",
size: "small",
class: "shadow-0 d-flex vcenter fx-center"
}, {
default: ce(() => [
(c(), y("svg", {
class: x(["datatable-expand-arrow", { "datatable-expanded": d.expanded }]),
xmlns: "http://www.w3.org/2000/svg",
"xmlns:xlink": "http://www.w3.org/1999/xlink",
"aria-hidden": "true",
focusable: "false",
width: "1.3rem",
height: "1.3rem",
preserveAspectRatio: "xMidYMid meet",
viewBox: "0 0 24 24"
}, Xl, 2))
]),
_: 2
}, 1032, ["onClick"])
], !0)
])) : X("", !0)
]),
e.expandable ? (c(), y("tr", {
key: "expand-" + u,
class: "datatable-expanded"
}, [
C("td", {
colspan: e.localHeaders.length + 1,
style: Ce({ display: d.expanded ? "table-cell" : "none" })
}, [
L(e.$slots, "expanded-item", { item: d }, void 0, !0)
], 12, Kl)
])) : X("", !0)
], 64))), 128))
])
], 2)
]),
C("div", ql, [
e.pagination ? (c(), he(o, {
key: 0,
total: e.localTotal,
perPage: e.perPage,
size: e.paginationSize,
modelValue: e.page,
"onUpdate:modelValue": t[0] || (t[0] = (d) => e.page = d),
class: "mr-auto"
}, null, 8, ["total", "perPage", "size", "modelValue"])) : X("", !0),
e.computedItems.length === 0 ? (c(), y(K, { key: 1 }, [
G(" - ")
], 64)) : (c(), y(K, { key: 2 }, [
G(_(e.firstItemIndex + 1) + " - " + _(e.lastItemIndex > e.computedItems.length * e.page ? e.localTotal : e.computedItems.length * e.page) + " " + _(e.paginationText) + " " + _(e.localTotal), 1)
], 64)),
e.pagination ? X("", !0) : (c(), y(K, { key: 3 }, [
Ve(n, {
class: "ml-4 rounded-2 shadow-0",
disabled: e.page === 1,
onClick: t[1] || (t[1] = ue((d) => e.goto(e.page - 1), ["prevent"]))
}, {
default: ce(() => [
G(" ‹ ")
]),
_: 1
}, 8, ["disabled"]),
Ve(n, {
class: "ml-2 rounded-2 shadow-0",
disabled: e.page === e.totalPage || e.totalPage === 0,
onClick: t[2] || (t[2] = ue((d) => e.goto(e.page + 1), ["prevent"]))
}, {
default: ce(() => [
G(" › ")
]),
_: 1
}, 8, ["disabled"])
], 64))
])
]);
}
const Jl = /* @__PURE__ */ N(Fl, [["render", Zl], ["__scopeId", "data-v-58f51cd2"]]), nt = {
install(e) {
H(e, Jl);
}
};
ne(nt);
const Ql = O({
name: "AxModal",
mixins: [se],
props: {
overlay: {
type: Boolean,
default: !0
},
bodyScrolling: {
type: Boolean,
default: !1
},
animationDuration: {
type: Number,
default: 400
},
mode: {
type: String,
default: "",
validator: (e) => ["", "falling", "bouncing"].includes(e)
}
},
setup(e, t) {
const a = r(!1), i = r(!1), l = r(null), s = r(!1), n = r(null), o = ee(e)[ie()], d = r(""), u = r(810), g = r(!1), p = r(null), w = oe(), m = ae(), E = T(() => ({
active: g.value,
"modal-falling": e.mode === "falling",
"modal-bouncing": e.mode === "bouncing"
})), D = T(() => ({
transitionDuration: e.animationDuration + "ms",
animationDuration: e.animationDuration + "ms",
display: d.value,
zIndex: u.value
}));
B(o, (f) => {
f !== null && (a.value = f, f ? v() : b());
}), B(a, (f) => {
t.emit(w, f);
}), B(
() => e.overlay,
(f) => {
A(f);
}
);
const M = () => {
ve({ type: "Modal", uid: m, data: Se({ activeClass: g }) }), P(), e.overlay && $(), o.value && v(), t.emit("setup");
}, P = () => {
n.value = Y.bind(this);
}, h = () => {
V(), n.value = null;
}, $ = () => {
l.value = document.createElement("div"), l.value.classList.add("ax-overlay");
}, A = (f) => {
if (l.value) {
f || V(), a.value && f && !s.value && S(!0);
return;
}
f && ($(), a.value && S(!0));
}, V = () => {
e.overlay && s.value && (l.value.removeEventListener("click", n.value), l.value.remove(), l.value = "", s.value = !1);
}, Y = (f) => {
f.preventDefault(), !i.value && (a.value = !a);
}, z = (f) => {
e.bodyScrolling || (f ? document.body.style.overflow = "" : document.body.style.overflow = "hidden");
}, j = () => {
if (!a.value)
return;
const f = Pe("Modal").filter((k) => k.data.activeClass).length + 1;
e.overlay && (l.value.style.zIndex = 800 + f * 10 - 2), u.value = 800 + f * 10;
}, v = () => {
i.value || (t.emit("open"), a.value = !0, i.value = !0, j(), d.value = "block", S(!0), z(!1), setTimeout(() => {
g.value = !0;
}, 50), setTimeout(() => {
i.value = !1, t.emit("opened");
}, e.animationDuration));
}, b = () => {
i.value || (t.emit("close"), i.value = !0, a.value = !1, S(!1), g.value = !1, setTimeout(() => {
d.value = "", i.value = !1, z(!0), t.emit("closed");
}, e.animationDuration));
}, S = (f) => {
e.overlay && (l.value.style.transitionDuration = e.animationDuration + "ms", f ? (s.value = !0, l.value.addEventListener("click", n.value), document.body.appendChild(l.value), setTimeout(() => {
l.value.classList.add("active");
}, 50)) : (l.value.classList.remove("active"), setTimeout(() => {
l.value.removeEventListener("click", n.value), l.value.remove(), s.value = !1;
}, e.animationDuration)));
};
return te(() => {
M();
}), ze(() => {
A(e.overlay), j();
}), re(() => {
h(), z(!0), fe(m);
}), {
classes: E,
style: D,
modal: p,
activeClass: g,
listeners: t.listeners ? t.listeners : {}
};
}
}), ea = {
key: 0,
class: "modal-header"
}, ta = { class: "modal-content" }, la = {
key: 1,
class: "modal-footer"
};
function aa(e, t, a, i, l, s) {
return c(), y("div", U({
class: ["modal", e.classes],
ref: "modal",
style: e.style
}, e.$attrs, q(e.listeners, !0)), [
e.$slots.header ? (c(), y("div", ea, [
L(e.$slots, "header")
])) : X("", !0),
C("div", ta, [
L(e.$slots, "default")
]),
e.$slots.footer ? (c(), y("div", la, [
L(e.$slots, "footer")
])) : X("", !0)
], 16);
}
const na = /* @__PURE__ */ N(Ql, [["render", aa]]), st = {
install(e) {
H(e, na);
}
};
ne(st);
const sa = {
name: "AxPagination",
mixins: [se],
props: {
total: {
type: Number,
default: 0,
required: !0,
validator: (e) => e >= 0
},
perPage: {
type: Number,
default: 10,
validator: (e) => e > 0
},
size: {
type: String,
defaut: "",
validator: (e) => ["", "small", "large"].includes(e)
},
maxVisible: {
type: Number,
default: 7,
validator: (e) => e > 2 || e === 0
}
},
setup(e, t) {
const a = r(Math.ceil(e.total / e.perPage)), i = ee(e)[ie()], l = r(i.value || 1);
let s = 1, n = 0;
const o = oe(), d = T(() => ({
"pagination-small": e.size === "small",
"pagination-large": e.size === "large"
}));
B(i, (h) => {
h === null || l.value === h || (l.value = h);
}), B(l, (h) => {
t.emit(o, h);
}), B(
() => e.total,
() => {
u();
}
), B(
() => e.perPage,
() => {
u();
}
);
const u = () => {
a.value = Math.ceil(e.total / e.perPage);
}, g = () => {
l.value !== 1 && (l.value -= 1, t.emit("prev", l.value));
}, p = () => {
l.value !== a.value && (l.value += 1, t.emit("next", l.value));
}, w = (h) => {
l.value !== h && (l.value = h, t.emit("goto", h));
}, m = (h) => {
if (e.maxVisible < 3 || e.maxVisible > a.value)
return !0;
const $ = l.value - 1;
return h === 0 || h === a.value - 1 || $ === h ? (E(h), !0) : $ <= Math.floor(e.maxVisible / 2) ? D(h, $) : a.value - $ + 1 < e.maxVisible ? M(h, $) : s < e.maxVisible ? P(h, $) : !1;
}, E = (h) => {
s++, h === a.value - 1 && (n = 0, s = 1);
}, D = (h, $) => h < $ || s < e.maxVisible ? (s++, !0) : !1, M = (h, $) => h < $ && h <= a.value - e.maxVisible ? !1 : (s++, !0), P = (h, $) => (n === 0 && (n = (e.maxVisible - s) / 2), $ - h < Math.ceil(n) || $ - h <= Math.floor(n) ? (s++, !0) : !1);
return {
pageCount: a,
classes: d,
current: l,
prev: g,
next: p,
goto: w,
isShown: m,
listeners: t.listeners ? t.listeners : {}
};
}
}, ia = /* @__PURE__ */ C("a", null, "«", -1), oa = [
ia
], ua = /* @__PURE__ */ C("a", null, "‹", -1), ra = [
ua
], da = ["onClick"], va = {
key: 1,
class: "pagination-dots"
}, fa = /* @__PURE__ */ C("a", null, "›", -1), ca = [
fa
], ma = /* @__PURE__ */ C("a", null, "»", -1), pa = [
ma
];
function ga(e, t, a, i, l, s) {
return c(), y("ul", U({
class: ["pagination", i.classes]
}, e.$attrs, q(i.listeners, !0)), [
L(e.$slots, "first-arrow", {
goto: i.goto,
pageCount: i.pageCount,
isDisabled: i.current === 1
}, () => [
C("li", {
class: x(["pagination-arrow", { disabled: i.current === 1 }]),
onClick: t[0] || (t[0] = ue((n) => i.goto(1), ["prevent"]))
}, oa, 2)
]),
L(e.$slots, "prev-arrow", {
prev: i.prev,
pageCount: i.pageCount,
isDisabled: i.current === 1
}, () => [
C("li", {
class: x(["pagination-arrow", { disabled: i.current === 1 }]),
onClick: t[1] || (t[1] = ue((...n) => i.prev && i.prev(...n), ["prevent"]))
}, ra, 2)
]),
(c(!0), y(K, null, be(i.pageCount, (n, o) => (c(), y("div", {
key: o,
class: "d-flex"
}, [
i.isShown(o) ? L(e.$slots, "default", {
key: 0,
pageNumber: o + 1,
activePage: i.current - 1,
isActive: i.current - 1 === o,
goto: i.goto
}, () => [
C("li", {
onClick: (d) => i.goto(o + 1),
class: x({ active: i.current - 1 === o })
}, [
C("a", null, _(o + 1), 1)
], 10, da)
]) : o === 1 || o === i.pageCount - 2 ? (c(), y("li", va, "...")) : X("", !0)
]))), 128)),
L(e.$slots, "next-arrow", {
next: i.next,
pageCount: i.pageCount,
isDisabled: i.current === i.pageCount
}, () => [
C("li", {
class: x(["pagination-arrow", { disabled: i.current === i.pageCount }]),
onClick: t[2] || (t[2] = ue((...n) => i.next && i.next(...n), ["prevent"]))
}, ca, 2)
]),
L(e.$slots, "last-arrow", {
goto: i.goto,
pageCount: i.pageCount,
isDisabled: i.current === i.pageCount
}, () => [
C("li", {
class: x(["pagination-arrow", { disabled: i.current === i.pageCount }]),
onClick: t[3] || (t[3] = ue((n) => i.goto(i.pageCount), ["prevent"]))
}, pa, 2)
])
], 16);
}
const ya = /* @__PURE__ */ N(sa, [["render", ga]]), it = {
install(e) {
H(e, ya);
}
};
ne(it);
const ha = O({
name: "AxSidenav",
mixins: [se],
props: {
overlay: {
type: Boolean,
default: !0
},
bodyScrolling: {
type: Boolean,
default: !1
},
animationDuration: {
type: Number,
default: 300
},
fixed: {
type: Boolean,
default: !1
},
right: {
type: Boolean,
default: !1
}
},
setup(e, t) {
const a = r(null), i = ee(e), l = r(!1), s = r(!1), n = r(null), o = r(!1), d = r(null), u = r(null), g = i[ie()], p = r(null), w = oe(), m = ae();
ke("ax-sidenav", m);
const E = T(() => ({
active: l.value,
"sidenav-fixed": e.fixed,
"sidenav-right": e.right
})), D = T(() => ({
transitionDuration: e.animationDuration + "ms"
}));
B(g, (I) => {
if (I !== null) {
if (e.fixed && window.innerWidth >= 960) {
t.emit(w, !0);
return;
}
l.value = I, I ? f() : k();
}
}), B(l, (I) => {
t.emit(w, I);
}), B(
() => e.overlay,
(I) => {
j(I);
}
);
const M = () => {
ve({
type: "Sidenav",
uid: m,
data: { fixed: i.fixed, right: i.right }
}), a.value = p.value.closest(".layout"), e.overlay && z(), P(), V(), (g.value || e.fixed && window.innerWidth >= 960) && f(), t.emit("setup");
}, P = () => {
u.value = S.bind(this), d.value = A.bind(this), window.addEventListener("resize", d.value);
}, h = () => {
window.removeEventListener("resize", d.value), v();
}, $ = () => {
["layout-sidenav-right", "layout-sidenav-both"].forEach((I) => a.value.classList.remove(I));
}, A = () => {
e.fixed && window.innerWidth >= 960 ? l.value = !0 : l.value = !1;
}, V = () => {
const I = Pe("Sidenav").filter((le) => le.data.fixed.value), J = I[0] && I[0].uid === m;
a.value && J && $(), a.value && e.fixed && J && Y(I);
}, Y = (I) => {
const { sidenavsRight: J, sidenavsLeft: le } = I.reduce(
(pe, R) => (R.data.right.value ? pe.sidenavsRight.push(R) : pe.sidenavsLeft.push(R), pe),
{ sidenavsRight: [], sidenavsLeft: [] }
), me = le.length > 0 && J.length > 0;
J.length > 0 && !me ? a.value.classList.add("layout-sidenav-right") : me && a.value.classList.add("layout-sidenav-both");
}, z = () => {
n.value = document.createElement("div"), n.value.classList.add("ax-overlay");
}, j = (I) => {
if (!e.fixed) {
if (n.value) {
I || v(), l.value && I && !o.value && W(!0);
return;
}
I && (z(), l.value && W(!0));
}
}, v = () => {
e.overlay && o.value && (n.value.removeEventListener("click", u.value), n.value.remove(), n.value = "", o.value = !1);
}, b = (I) => {
e.bodyScrolling || (document.body.style.overflow = I || window.innerWidth >= 960 ? "" : "hidden");
}, S = (I) => {
I.preventDefault(), !(e.fixed && window.innerWidth >= 960) && (l.value = !l);
}, f = () => {
s.value || (l.value = !0, t.emit("open"), s.value = !0, W(!0), b(!1), setTimeout(() => {
s.value = !1, t.emit("opened");
}, e.animationDuration));
}, k = () => {
s.value || (l.value = !1, s.value = !0, t.emit("close"), W(!1), setTimeout(() => {
b(!0), s.value = !1, t.emit("closed");
}, e.animationDuration));
}, W = (I) => {
!e.overlay || window.innerWidth >= 960 && e.fixed || (n.value.style.transitionDuration = e.animationDuration + "ms", I ? (o.value = !0, n.value.addEventListener("click", u.value), document.body.appendChild(n.value), setTimeout(() => {
n.value.classList.add("active");
}, 50)) : (n.value.classList.remove("active"), setTimeout(() => {
n.value.removeEventListener("click", u.value), n.value.remove(), o.value = !1;
}, e.animationDuration)));
};
return te(() => {
M();
}), ze(() => {
j(e.overlay);
}), re(() => {
h(), b(!0), fe(m);
}), {
classes: E,
style: D,
sidenav: p,
listeners: t.listeners ? t.listeners : {}
};
}
});
function ba(e, t, a, i, l, s) {
return c(), y("div", U({
class: ["sidenav", e.classes],
ref: "sidenav",
style: e.style
}, e.$attrs, q(e.listeners, !0)), [
L(e.$slots, "default")
], 16);
}
const $a = /* @__PURE__ */ N(ha, [["render", ba]]), wa = O({
name: "AxSidenavLink",
props: {
active: {
type: Boolean,
default: !1
},
tag: {
type: String,
default: "a"
}
},
setup(e, t) {
return {
classes: T(() => ({
active: e.active
})),
listeners: t.listeners ? t.listeners : {}
};
}
});
function ka(e, t, a, i, l, s) {
return c(), he(He(e.tag), U({
class: ["sidenav-link", e.classes]
}, e.$attrs, q(e.listeners)), {
default: ce(() => [
L(e.$slots, "default")
]),
_: 3
}, 16, ["class"]);
}
const Ca = /* @__PURE__ */ N(wa, [["render", ka]]), Aa = O({
name: "AxSidenavHeader",
setup(e, t) {
return {
listeners: t.listeners ? t.listeners : {}
};
}
});
function La(e, t, a, i, l, s) {
return c(), y("div", U({ class: "sidenav-header" }, e.$attrs, q(e.listeners, !0)), [
L(e.$slots, "default")
], 16);
}
const Sa = /* @__PURE__ */ N(Aa, [["render", La]]), Ta = O({
name: "AxSidenavFooter",
setup(e, t) {
return {
listeners: t.listeners ? t.listeners : {}
};
}
});
function Ba(e, t, a, i, l, s) {
return c(), y("div", U({ class: "sidenav-footer" }, e.$attrs, q(e.listeners, !0)), [
L(e.$slots, "default")
], 16);
}
const Da = /* @__PURE__ */ N(Ta, [["render", Ba]]), ot = {
install(e) {
H(e, $a), H(e, Ca), H(e, Sa), H(e, Da);
}
};
ne(ot);
const Ea = O({
name: "AxTab",
mixins: [se],
props: {
fullWidth: {
type: Boolean,
default: !1
},
mode: {
type: String,
default: "none",
validator: (e) => ["none"].includes(e)
},
animationDuration: {
type: Number,
default: 300
},
disableActiveBar: {
type: Boolean,
default: !1
},
arrow: {
type: Boolean,
default: !1
},
prevClasses: {
type: String,
default: ""
},
nextClasses: {
type: String,
default: ""
}
},
setup(e, t) {
const a = ee(e), i = a[ie()], l = r({}), s = r({}), n = r([]), o = r([]), d = r(0), u = r(0), g = r(null), p = r(null), w = r(!1), m = r(null), E = oe();
ke("ax-tab-links", n), ke("ax-tab-current", s), ke("ax-tab-items", o);
const D = T(() => ({
"tab-full-width": e.fullWidth
})), M = T(() => ({
"tab-arrow-show": w.value
})), P = T(() => ({
transitionDuration: e.animationDuration + "ms"
})), h = T(() => ({
"--ax-tab-bar-left-offset": d.value,
"--ax-tab-bar-right-offset": u.value
}));
B(a.fullWidth, () => {
setTimeout(() => {
b();
}, 100);
}), B(i, (f) => {
if (f === null)
return;
const k = n.value.findIndex((W) => W.itemId === f);
k !== -1 && (l.value.selected = !1, s.value = n.value[k], s.value.selected = !0);
}), B(s, () => {
l.value.selected = !1, v(), l.value = s.value, t.emit(E, s.value.itemId);
});
const $ = () => {
window.addEventListener("resize", V);
}, A = () => {
window.removeEventListener("resize", V);
}, V = () => {
g.value && clearTimeout(g.value), g.value = setTimeout(b, 100), e.arrow && Y();
}, Y = () => {
if (!e.arrow)
return;
const f = n.value.reduce((W, I) => (W += I.el.clientWidth, W), 0), k = p.value.clientWidth;
w.value = f > k;
}, z = () => {
e.arrow && (m.value.scrollLeft -= 40);
}, j = () => {
e.arrow && (m.value.scrollLeft += 40);
}, v = () => {
o.value.map((k) => {
k.id !== s.value.itemId && (k.hide = !0);
});
const f = o.value.find((k) => k.id === s.value.itemId);
f.hide = !1, t.emit("select", f), b();
}, b = () => {
if (e.disableActiveBar)
return d.value = "unset", u.value = "unset";
const f = s.value.el.getBoundingClientRect(), k = f.left, W = m.value.getBoundingClientRect().left, I = k - W + m.value.scrollLeft, J = f.width, le = m.value.clientWidth - I - J;
d.value = Math.floor(I) + "px", u.value = Math.ceil(le) + "px";
}, S = () => {
let f = n.value.find((k) => k.selected);
f || (f = i.value ? n.value.find((k) => k.itemId === i.value) : n.value[0]), s.value = f;
};
return te(() => {
$(), e.arrow && Y(), S(), t.emit("setup");
}), re(() => {
A();
}), {
classes: D,
style: P,
menuStyle: h,
menu: m,
arrowRef: p,
arrowClasses: M,
scrollLeft: z,
scrollRight: j,
updateActiveElement: S,
listeners: t.listeners ? t.listeners : {}
};
}
});
function Ia(e, t, a, i, l, s) {
return c(), y("div", U({ class: "tab" }, e.$attrs, q(e.listeners, !0), {
style: e.style,
class: e.classes
}), [
e.arrow ? (c(), y("div", {
key: 0,
class: x(["tab-arrow", e.arrowClasses]),
ref: "arrowRef"
}, [
C("div", {
class: x(["tab-prev", e.prevClasses]),
onClick: t[0] || (t[0] = (...n) => e.scrollLeft && e.scrollLeft(...n))
}, [
L(e.$slots, "left-arrow", {}, () => [
G(" ‹ ")
])
], 2),
C("ul", {
class: "tab-menu",
style: Ce(e.menuStyle),
ref: "menu"
}, [
L(e.$slots, "menu")
], 4),
C("div", {
class: x(["tab-next", e.nextClasses]),
onClick: t[1] || (t[1] = (...n) => e.scrollRight && e.scrollRight(...n))
}, [
L(e.$slots, "right-arrow", {}, () => [
G(" › ")
])
], 2)
], 2)) : (c(), y("ul", {
key: 1,
class: "tab-menu",
style: Ce(e.menuStyle),
ref: "menu"
}, [
L(e.$slots, "menu")
], 4)),
L(e.$slots, "default")
], 16);
}
const Va = /* @__PURE__ */ N(Ea, [["render", Ia]]), Fa = O({
name: "AxTabItem",
props: {
id: String
},
setup(e, t) {
const a = r(!1), i = Se({
uid: ae(),
hide: !0,
id: e.id
}), l = Q("ax-tab-items"), s = T(() => ({
display: i.hide ? "none" : "block"
}));
B(l, () => {
n();
});
const n = () => {
!l.value || a.value || (l.value.push(i), a.value = !0);
}, o = () => {
if (!l.value || !a.value)
return;
const d = l.value.findIndex((u) => u.uid === i.uid);
l.value.splice(d, 1);
};
return te(() => {
n();
}), ht(() => {
o();
}), {
style: s,
listeners: t.listeners ? t.listeners : {}
};
}
});
function Pa(e, t, a, i, l, s) {
return c(), y("div", U(e.$attrs, q(e.listeners, !0), { style: e.style }), [
L(e.$slots, "default")
], 16);
}
const Ra = /* @__PURE__ */ N(Fa, [["render", Pa]]), Ma = O({
name: "AxTabLink",
inheritAttrs: !1,
props: {
href: {
type: String,
default: ""
},
active: {
type: Boolean,
default: !1
}
},
setup(e, t) {
const a = r(!1), i = r(null), l = Se({
uid: ae(),
selected: e.active,
el: i,
itemId: e.href.split("#")[1]
}), s = Q("ax-tab-links"), n = Q("ax-tab-current");
B(s, () => {
d();
});
const o = T(() => ({
active: l.selected
})), d = () => {
!s.value || a.value || (s.value.push(l), a.value = !0);
}, u = () => {
if (!s.value || !a.value)
return;
const p = s.value.findIndex((w) => w.uid === l.uid);
s.value.splice(p, 1);
}, g = () => {
l.selected || (l.selected = !0, n.value = l);
};
return te(() => {
d();
}), bt(() => {
u();
}), {
linkSelected: g,
classes: o,
el: i,
listeners: t.listeners ? t.listeners : {}
};
}
}), za = ["href"];
function Ha(e, t, a, i, l, s) {
return c(), y("li", U({
class: "tab-link",
ref: "el"
}, q(e.listeners, !0), {
onClick: t[0] || (t[0] = ue((...n) => e.linkSelected && e.linkSelected(...n), ["prevent", "stop"])),
class: e.classes
}), [
C("a", U(e.$attrs, { href: e.href }), [
L(e.$slots, "default")
], 16, za)
], 16);
}
const Oa = /* @__PURE__ */ N(Ma, [["render", Ha]]), ut = {
install(e) {
H(e, Va), H(e, Ra), H(e, Oa);
}
};
ne(ut);
const Na = O({
name: "AxTooltip",
props: {
content: {
type: String,
default: ""
},
classes: {
type: String,
default: "grey dark-4 light-shadow-2 p-2"
},
animationDuration: {
type: Number,
default: 200
},
animationDelay: {
type: Number,
default: 0
},
offset: {
type: Number,
default: 10
},
position: {
type: String,
default: "top",
validator: (e) => ["top", "right", "bottom", "left"].includes(e)
}
},
setup(e, t) {
const a = r(null), i = r(!1), l = r(null), s = r(null), n = r(null), o = r(null), d = r(null), u = ae();
B(
() => e.content,
(V) => {
l.value && (l.value.innerHTML = V, M());
}
);
const g = () => {
ve({ type: "Tooltip", uid: u }), p(), d.value = o.value.getBoundingClientRect(), m(), M(), l.value.style.display = "none", t.emit("setup");
}, p = () => {
s.value = M.bind(this), window.addEventListener("resize", s.value);
}, w = () => {
window.removeEventListener("resize", s.value), E();
}, m = () => {
l.value = document.createElement("div"), D(), document.body.appendChild(l.value);
}, E = () => {
l.value.remove();
}, D = () => {
l.value.style.transform = "translate(0)", l.value.style.opacity = 0, l.value.className = "tooltip " + e.classes, l.value.style.transitionDuration = e.animationDuration + "ms", l.value.innerHTML = e.content;
}, M = () => {
a.value = o.value.getBoundingClientRect(), P(), d.value = l.value.getBoundingClientRect(), h();
}, P = () => {
e.position == "top" || e.position == "bottom" ? e.position == "top" ? l.value.style.top = a.value.top + "px" : l.value.style.top = a.value.top + a.value.height + "px" : (e.position == "left" || e.position == "right") && e.position == "right" && (l.value.style.left = a.value.left + a.value.width + "px");
}, h = () => {
e.position === "top" || e.position === "bottom" ? l.value.style.left = a.value.left + a.value.width / 2 - d.value.width / 2 + "px" : (e.position === "left" || e.position === "right") && (l.value.style.top = a.value.top + a.value.height / 2 - d.value.height / 2 + "px"), e.position === "top" ? l.value.style.top = d.value.top + (i.value ? e.offset : 0) - d.value.height + "px" : e.position === "left" && (l.value.style.left = a.value.left - d.value.width + "px");
const V = window.scrollY, Y = parseFloat(l.value.style.top);
e.position === "top" ? l.value.style.top = V * 2 + Y + "px" : l.value.style.top = V + Y + "px";
}, $ = () => {
clearTimeout(n.value), l.value.style.display = "block", D(), M(), i.value = !0, t.emit("show"), n.value = setTimeout(() => {
e.position == "top" ? l.value.style.transform = `translateY(-${e.offset}px)` : e.position == "right" ? l.value.style.transform = `translateX(${e.offset}px)` : e.position == "bottom" ? l.value.style.transform = `translateY(${e.offset}px)` : e.position == "left" && (l.value.style.transform = `translateX(-${e.offset}px)`), l.value.style.opacity = 1;
}, e.animationDelay);
}, A = () => {
t.emit("hide"), clearTimeout(n.value), i.value = !1, l.value.style.transform = "translate(0)", l.value.style.opacity = 0, n.value = setTimeout(() => {
l.value.style.display = "none";
}, e.animationDuration);
};
return te(() => {
g();
}), re(() => {
w(), fe(u);
}), {
show: $,
hide: A,
tooltiper: o,
listeners: t.listeners ? t.listeners : {}
};
}
});
function Wa(e, t, a, i, l, s) {
return c(), y("div", U({
class: "tooltiper",
ref: "tooltiper",
onMouseenter: t[0] || (t[0] = (...n) => e.show && e.show(...n)),
onMouseleave: t[1] || (t[1] = (...n) => e.hide && e.hide(...n))
}, q(e.listeners, !0)), [
L(e.$slots, "default", {}, void 0, !0)
], 16);
}
const Ua = /* @__PURE__ */ N(Na, [["render", Wa], ["__scopeId", "data-v-2ed08e00"]]), rt = {
install(e) {
H(e, Ua);
}
};
ne(rt);
const Ue = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
__proto__: null,
AxBtn: Ye,
AxBtnGroup: _e,
AxCollapsible: lt,
AxDataTable: nt,
AxDropdown: at,
AxForms: et,
AxLightbox: tt,
AxModal: st,
AxPagination: it,
AxSidenav: ot,
AxTab: ut,
AxTooltip: rt
}, Symbol.toStringTag, { value: "Module" })), xa = {
install(e) {
$t(), e.directive("ax-click-outside", Re);
for (let t in Ue)
e.use(Ue[t]);
}
};
ne(xa);
export {
Ye as AxBtn,
_e as AxBtnGroup,
Re as AxClickOutside,
lt as AxCollapsible,
nt as AxDataTable,
at as AxDropdown,
et as AxForms,
tt as AxLightbox,
st as AxModal,
it as AxPagination,
ot as AxSidenav,
ut as AxTab,
rt as AxTooltip,
xa as default
};