UNPKG

@axentix/vue

Version:

Vue Axentix is the Axentix integration for the VueJS framework.

2,634 lines 82.1 kB
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
};