mobile-table-pagination
Version:
A mobile-friendly table component for dynamic data display.
1,444 lines (1,439 loc) • 81.4 kB
JavaScript
import { computed as s, markRaw as ct, defineComponent as dt, getCurrentInstance as Z, h as p, Transition as je, ref as L, onBeforeUnmount as de, withDirectives as St, reactive as _t, onMounted as fe, watch as H, onBeforeUpdate as qt, inject as Mt, nextTick as G, onDeactivated as Bt, onActivated as Et, resolveComponent as De, openBlock as Y, createElementBlock as X, Fragment as ve, renderList as Ne, createBlock as Rt, unref as ge, mergeProps as Ke, withCtx as Ee, createVNode as ue, normalizeStyle as $t, createElementVNode as He, toDisplayString as Re, createTextVNode as Pt, renderSlot as Vt, createCommentVNode as me } from "vue";
const qe = {
dark: {
type: Boolean,
default: null
}
};
function Me(e, t) {
return s(() => e.dark === null ? t.dark.isActive : e.dark);
}
function Ie(e, t, l, a) {
return Object.defineProperty(e, t, {
get: l,
set: a,
enumerable: !0
}), e;
}
function ee(e) {
return ct(dt(e));
}
function Tt(e) {
return ct(e);
}
function ne(e, t) {
return e !== void 0 && e() || t;
}
function se(e, t) {
return e !== void 0 ? t.concat(e()) : t;
}
const Ft = ee({
name: "QCard",
props: {
...qe,
tag: {
type: String,
default: "div"
},
square: Boolean,
flat: Boolean,
bordered: Boolean
},
setup(e, { slots: t }) {
const { proxy: { $q: l } } = Z(), a = Me(e, l), n = s(
() => "q-card" + (a.value === !0 ? " q-card--dark q-dark" : "") + (e.bordered === !0 ? " q-card--bordered" : "") + (e.square === !0 ? " q-card--square no-border-radius" : "") + (e.flat === !0 ? " q-card--flat no-shadow" : "")
);
return () => p(e.tag, { class: n.value }, ne(t.default));
}
}), Ot = ee({
name: "QCardSection",
props: {
tag: {
type: String,
default: "div"
},
horizontal: Boolean
},
setup(e, { slots: t }) {
const l = s(
() => `q-card__section q-card__section--${e.horizontal === !0 ? "horiz row no-wrap" : "vert"}`
);
return () => p(e.tag, { class: l.value }, ne(t.default));
}
}), Te = {
xs: 18,
sm: 24,
md: 32,
lg: 38,
xl: 46
}, ft = {
size: String
};
function vt(e, t = Te) {
return s(() => e.size !== void 0 ? { fontSize: e.size in t ? `${t[e.size]}px` : e.size } : null);
}
const At = {
size: {
type: [String, Number],
default: "1em"
},
color: String
};
function Lt(e) {
return {
cSize: s(() => e.size in Te ? `${Te[e.size]}px` : e.size),
classes: s(
() => "q-spinner" + (e.color ? ` text-${e.color}` : "")
)
};
}
const ze = ee({
name: "QSpinner",
props: {
...At,
thickness: {
type: Number,
default: 5
}
},
setup(e) {
const { cSize: t, classes: l } = Lt(e);
return () => p("svg", {
class: l.value + " q-spinner-mat",
width: t.value,
height: t.value,
viewBox: "25 25 50 50"
}, [
p("circle", {
class: "path",
cx: "50",
cy: "50",
r: "20",
fill: "none",
stroke: "currentColor",
"stroke-width": e.thickness,
"stroke-miterlimit": "10"
})
]);
}
}), jt = {
transitionShow: {
type: String,
default: "fade"
},
transitionHide: {
type: String,
default: "fade"
},
transitionDuration: {
type: [String, Number],
default: 300
}
};
function It(e, t = () => {
}, l = () => {
}) {
return {
transitionProps: s(() => {
const a = `q-transition--${e.transitionShow || t()}`, n = `q-transition--${e.transitionHide || l()}`;
return {
appear: !0,
enterFromClass: `${a}-enter-from`,
enterActiveClass: `${a}-enter-active`,
enterToClass: `${a}-enter-to`,
leaveFromClass: `${n}-leave-from`,
leaveActiveClass: `${n}-leave-active`,
leaveToClass: `${n}-leave-to`
};
}),
transitionStyle: s(() => `--q-transition-duration: ${e.transitionDuration}ms`)
};
}
const zt = ee({
name: "QInnerLoading",
props: {
...qe,
...jt,
showing: Boolean,
color: String,
size: {
type: [String, Number],
default: "42px"
},
label: String,
labelClass: String,
labelStyle: [String, Array, Object]
},
setup(e, { slots: t }) {
const l = Z(), a = Me(e, l.proxy.$q), { transitionProps: n, transitionStyle: i } = It(e), r = s(
() => "q-inner-loading q--avoid-card-border absolute-full column flex-center" + (a.value === !0 ? " q-inner-loading--dark" : "")
), c = s(
() => "q-inner-loading__label" + (e.labelClass !== void 0 ? ` ${e.labelClass}` : "")
);
function q() {
const m = [
p(ze, {
size: e.size,
color: e.color
})
];
return e.label !== void 0 && m.push(
p("div", {
class: c.value,
style: e.labelStyle
}, [e.label])
), m;
}
function C() {
return e.showing === !0 ? p(
"div",
{ class: r.value, style: i.value },
t.default !== void 0 ? t.default() : q()
) : null;
}
return () => p(je, n.value, C);
}
}), Ue = "0 0 24 24", Qe = (e) => e, $e = (e) => `ionicons ${e}`, gt = {
"mdi-": (e) => `mdi ${e}`,
"icon-": Qe,
// fontawesome equiv
"bt-": (e) => `bt ${e}`,
"eva-": (e) => `eva ${e}`,
"ion-md": $e,
"ion-ios": $e,
"ion-logo": $e,
"iconfont ": Qe,
"ti-": (e) => `themify-icon ${e}`,
"bi-": (e) => `bootstrap-icons ${e}`
}, mt = {
o_: "-outlined",
r_: "-round",
s_: "-sharp"
}, ht = {
sym_o_: "-outlined",
sym_r_: "-rounded",
sym_s_: "-sharp"
}, Dt = new RegExp("^(" + Object.keys(gt).join("|") + ")"), Nt = new RegExp("^(" + Object.keys(mt).join("|") + ")"), Ze = new RegExp("^(" + Object.keys(ht).join("|") + ")"), Kt = /^[Mm]\s?[-+]?\.?\d/, Ht = /^img:/, Ut = /^svguse:/, Qt = /^ion-/, Zt = /^(fa-(classic|sharp|solid|regular|light|brands|duotone|thin)|[lf]a[srlbdk]?) /, ke = ee({
name: "QIcon",
props: {
...ft,
tag: {
type: String,
default: "i"
},
name: String,
color: String,
left: Boolean,
right: Boolean
},
setup(e, { slots: t }) {
const { proxy: { $q: l } } = Z(), a = vt(e), n = s(
() => "q-icon" + (e.left === !0 ? " on-left" : "") + (e.right === !0 ? " on-right" : "") + (e.color !== void 0 ? ` text-${e.color}` : "")
), i = s(() => {
let r, c = e.name;
if (c === "none" || !c)
return { none: !0 };
if (l.iconMapFn !== null) {
const m = l.iconMapFn(c);
if (m !== void 0)
if (m.icon !== void 0) {
if (c = m.icon, c === "none" || !c)
return { none: !0 };
} else
return {
cls: m.cls,
content: m.content !== void 0 ? m.content : " "
};
}
if (Kt.test(c) === !0) {
const [m, k = Ue] = c.split("|");
return {
svg: !0,
viewBox: k,
nodes: m.split("&&").map((y) => {
const [M, B, T] = y.split("@@");
return p("path", { style: B, d: M, transform: T });
})
};
}
if (Ht.test(c) === !0)
return {
img: !0,
src: c.substring(4)
};
if (Ut.test(c) === !0) {
const [m, k = Ue] = c.split("|");
return {
svguse: !0,
src: m.substring(7),
viewBox: k
};
}
let q = " ";
const C = c.match(Dt);
if (C !== null)
r = gt[C[1]](c);
else if (Zt.test(c) === !0)
r = c;
else if (Qt.test(c) === !0)
r = `ionicons ion-${l.platform.is.ios === !0 ? "ios" : "md"}${c.substring(3)}`;
else if (Ze.test(c) === !0) {
r = "notranslate material-symbols";
const m = c.match(Ze);
m !== null && (c = c.substring(6), r += ht[m[1]]), q = c;
} else {
r = "notranslate material-icons";
const m = c.match(Nt);
m !== null && (c = c.substring(2), r += mt[m[1]]), q = c;
}
return {
cls: r,
content: q
};
});
return () => {
const r = {
class: n.value,
style: a.value,
"aria-hidden": "true",
role: "presentation"
};
return i.value.none === !0 ? p(e.tag, r, ne(t.default)) : i.value.img === !0 ? p(e.tag, r, se(t.default, [
p("img", { src: i.value.src })
])) : i.value.svg === !0 ? p(e.tag, r, se(t.default, [
p("svg", {
viewBox: i.value.viewBox || "0 0 24 24"
}, i.value.nodes)
])) : i.value.svguse === !0 ? p(e.tag, r, se(t.default, [
p("svg", {
viewBox: i.value.viewBox
}, [
p("use", { "xlink:href": i.value.src })
])
])) : (i.value.cls !== void 0 && (r.class += " " + i.value.cls), p(e.tag, r, se(t.default, [
i.value.content
])));
};
}
});
function Wt(e, t) {
const l = e.style;
for (const a in t)
l[a] = t[a];
}
const Be = {
hasPassive: !1,
passiveCapture: !0,
notPassiveCapture: !0
};
try {
const e = Object.defineProperty({}, "passive", {
get() {
Object.assign(Be, {
hasPassive: !0,
passive: { passive: !0 },
notPassive: { passive: !1 },
passiveCapture: { passive: !0, capture: !0 },
notPassiveCapture: { passive: !1, capture: !0 }
});
}
});
window.addEventListener("qtest", null, e), window.removeEventListener("qtest", null, e);
} catch {
}
function Yt(e) {
return e.touches && e.touches[0] ? e = e.touches[0] : e.changedTouches && e.changedTouches[0] ? e = e.changedTouches[0] : e.targetTouches && e.targetTouches[0] && (e = e.targetTouches[0]), {
top: e.clientY,
left: e.clientX
};
}
function we(e) {
e.stopPropagation();
}
function ie(e) {
e.cancelable !== !1 && e.preventDefault();
}
function te(e) {
e.cancelable !== !1 && e.preventDefault(), e.stopPropagation();
}
function Xt(e, t, l) {
const a = `__q_${t}_evt`;
e[a] = e[a] !== void 0 ? e[a].concat(l) : l, l.forEach((n) => {
n[0].addEventListener(n[1], e[n[2]], Be[n[3]]);
});
}
function Jt(e, t) {
const l = `__q_${t}_evt`;
e[l] !== void 0 && (e[l].forEach((a) => {
a[0].removeEventListener(a[1], e[a[2]], Be[a[3]]);
}), e[l] = void 0);
}
function bt(e) {
return e !== Object(e) || e.isComposing === !0 || e.qKeyEvent === !0;
}
function xe(e, t) {
return bt(e) === !0 ? !1 : [].concat(t).includes(e.keyCode);
}
function Gt(e, t = 250) {
let l = !1, a;
return function() {
return l === !1 && (l = !0, setTimeout(() => {
l = !1;
}, t), a = e.apply(this, arguments)), a;
};
}
function We(e, t, l, a) {
l.modifiers.stop === !0 && we(e);
const n = l.modifiers.color;
let i = l.modifiers.center;
i = i === !0 || a === !0;
const r = document.createElement("span"), c = document.createElement("span"), q = Yt(e), { left: C, top: m, width: k, height: y } = t.getBoundingClientRect(), M = Math.sqrt(k * k + y * y), B = M / 2, T = `${(k - M) / 2}px`, w = i ? T : `${q.left - C - B}px`, O = `${(y - M) / 2}px`, E = i ? O : `${q.top - m - B}px`;
c.className = "q-ripple__inner", Wt(c, {
height: `${M}px`,
width: `${M}px`,
transform: `translate3d(${w},${E},0) scale3d(.2,.2,1)`,
opacity: 0
}), r.className = `q-ripple${n ? " text-" + n : ""}`, r.setAttribute("dir", "ltr"), r.appendChild(c), t.appendChild(r);
const N = () => {
r.remove(), clearTimeout(j);
};
l.abort.push(N);
let j = setTimeout(() => {
c.classList.add("q-ripple__inner--enter"), c.style.transform = `translate3d(${T},${O},0) scale3d(1,1,1)`, c.style.opacity = 0.2, j = setTimeout(() => {
c.classList.remove("q-ripple__inner--enter"), c.classList.add("q-ripple__inner--leave"), c.style.opacity = 0, j = setTimeout(() => {
r.remove(), l.abort.splice(l.abort.indexOf(N), 1);
}, 275);
}, 250);
}, 50);
}
function Ye(e, { modifiers: t, value: l, arg: a }) {
const n = Object.assign({}, e.cfg.ripple, t, l);
e.modifiers = {
early: n.early === !0,
stop: n.stop === !0,
center: n.center === !0,
color: n.color || a,
keyCodes: [].concat(n.keyCodes || 13)
};
}
const en = Tt(
{
name: "ripple",
beforeMount(e, t) {
const l = t.instance.$.appContext.config.globalProperties.$q.config || {};
if (l.ripple === !1)
return;
const a = {
cfg: l,
enabled: t.value !== !1,
modifiers: {},
abort: [],
start(n) {
a.enabled === !0 && n.qSkipRipple !== !0 && n.type === (a.modifiers.early === !0 ? "pointerdown" : "click") && We(n, e, a, n.qKeyEvent === !0);
},
keystart: Gt((n) => {
a.enabled === !0 && n.qSkipRipple !== !0 && xe(n, a.modifiers.keyCodes) === !0 && n.type === `key${a.modifiers.early === !0 ? "down" : "up"}` && We(n, e, a, !0);
}, 300)
};
Ye(a, t), e.__qripple = a, Xt(a, "main", [
[e, "pointerdown", "start", "passive"],
[e, "click", "start", "passive"],
[e, "keydown", "keystart", "passive"],
[e, "keyup", "keystart", "passive"]
]);
},
updated(e, t) {
if (t.oldValue !== t.value) {
const l = e.__qripple;
l !== void 0 && (l.enabled = t.value !== !1, l.enabled === !0 && Object(t.value) === t.value && Ye(l, t));
}
},
beforeUnmount(e) {
const t = e.__qripple;
t !== void 0 && (t.abort.forEach((l) => {
l();
}), Jt(t, "main"), delete e._qripple);
}
}
), yt = {
left: "start",
center: "center",
right: "end",
between: "between",
around: "around",
evenly: "evenly",
stretch: "stretch"
}, tn = Object.keys(yt), nn = {
align: {
type: String,
validator: (e) => tn.includes(e)
}
};
function an(e) {
return s(() => {
const t = e.align === void 0 ? e.vertical === !0 ? "stretch" : "left" : e.align;
return `${e.vertical === !0 ? "items" : "justify"}-${yt[t]}`;
});
}
function ln(e) {
return e.appContext.config.globalProperties.$router !== void 0;
}
function Xe(e) {
return e ? e.aliasOf ? e.aliasOf.path : e.path : "";
}
function Je(e, t) {
return (e.aliasOf || e) === (t.aliasOf || t);
}
function on(e, t) {
for (const l in t) {
const a = t[l], n = e[l];
if (typeof a == "string") {
if (a !== n)
return !1;
} else if (Array.isArray(n) === !1 || n.length !== a.length || a.some((i, r) => i !== n[r]))
return !1;
}
return !0;
}
function Ge(e, t) {
return Array.isArray(t) === !0 ? e.length === t.length && e.every((l, a) => l === t[a]) : e.length === 1 && e[0] === t;
}
function rn(e, t) {
return Array.isArray(e) === !0 ? Ge(e, t) : Array.isArray(t) === !0 ? Ge(t, e) : e === t;
}
function un(e, t) {
if (Object.keys(e).length !== Object.keys(t).length)
return !1;
for (const l in e)
if (rn(e[l], t[l]) === !1)
return !1;
return !0;
}
const sn = {
// router-link
to: [String, Object],
replace: Boolean,
// regular <a> link
href: String,
target: String,
// state
disable: Boolean
};
function cn({ fallbackTag: e, useDisableForRouterLinkProps: t = !0 } = {}) {
const l = Z(), { props: a, proxy: n, emit: i } = l, r = ln(l), c = s(() => a.disable !== !0 && a.href !== void 0), q = t === !0 ? s(
() => r === !0 && a.disable !== !0 && c.value !== !0 && a.to !== void 0 && a.to !== null && a.to !== ""
) : s(
() => r === !0 && c.value !== !0 && a.to !== void 0 && a.to !== null && a.to !== ""
), C = s(() => q.value === !0 ? E(a.to) : null), m = s(() => C.value !== null), k = s(() => c.value === !0 || m.value === !0), y = s(() => a.type === "a" || k.value === !0 ? "a" : a.tag || e || "div"), M = s(() => c.value === !0 ? {
href: a.href,
target: a.target
} : m.value === !0 ? {
href: C.value.href,
target: a.target
} : {}), B = s(() => {
if (m.value === !1)
return -1;
const { matched: P } = C.value, { length: R } = P, $ = P[R - 1];
if ($ === void 0)
return -1;
const V = n.$route.matched;
if (V.length === 0)
return -1;
const d = V.findIndex(
Je.bind(null, $)
);
if (d !== -1)
return d;
const f = Xe(P[R - 2]);
return (
// we are dealing with nested routes
R > 1 && Xe($) === f && V[V.length - 1].path !== f ? V.findIndex(
Je.bind(null, P[R - 2])
) : d
);
}), T = s(
() => m.value === !0 && B.value !== -1 && on(n.$route.params, C.value.params)
), w = s(
() => T.value === !0 && B.value === n.$route.matched.length - 1 && un(n.$route.params, C.value.params)
), O = s(() => m.value === !0 ? w.value === !0 ? ` ${a.exactActiveClass} ${a.activeClass}` : a.exact === !0 ? "" : T.value === !0 ? ` ${a.activeClass}` : "" : "");
function E(P) {
try {
return n.$router.resolve(P);
} catch {
}
return null;
}
function N(P, { returnRouterError: R, to: $ = a.to, replace: V = a.replace } = {}) {
if (a.disable === !0)
return P.preventDefault(), Promise.resolve(!1);
if (
// don't redirect with control keys;
// should match RouterLink from Vue Router
P.metaKey || P.altKey || P.ctrlKey || P.shiftKey || P.button !== void 0 && P.button !== 0 || a.target === "_blank"
)
return Promise.resolve(!1);
P.preventDefault();
const d = n.$router[V === !0 ? "replace" : "push"]($);
return R === !0 ? d : d.then(() => {
}).catch(() => {
});
}
function j(P) {
if (m.value === !0) {
const R = ($) => N(P, $);
i("click", P, R), P.defaultPrevented !== !0 && R();
} else
i("click", P);
}
return {
hasRouterLink: m,
hasHrefLink: c,
hasLink: k,
linkTag: y,
resolvedLink: C,
linkIsActive: T,
linkIsExactActive: w,
linkClass: O,
linkAttrs: M,
getLink: E,
navigateToRouterLink: N,
navigateOnClick: j
};
}
const Ce = {
none: 0,
xs: 4,
sm: 8,
md: 16,
lg: 24,
xl: 32
}, dn = {
xs: 8,
sm: 10,
md: 14,
lg: 20,
xl: 24
}, fn = ["button", "submit", "reset"], vn = /[^\s]\/[^\s]/, pt = ["flat", "outline", "push", "unelevated"];
function kt(e, t) {
return e.flat === !0 ? "flat" : e.outline === !0 ? "outline" : e.push === !0 ? "push" : e.unelevated === !0 ? "unelevated" : t;
}
const gn = {
...ft,
...sn,
type: {
type: String,
default: "button"
},
label: [Number, String],
icon: String,
iconRight: String,
...pt.reduce(
(e, t) => (e[t] = Boolean) && e,
{}
),
square: Boolean,
rounded: Boolean,
glossy: Boolean,
size: String,
fab: Boolean,
fabMini: Boolean,
padding: String,
color: String,
textColor: String,
noCaps: Boolean,
noWrap: Boolean,
dense: Boolean,
tabindex: [Number, String],
ripple: {
type: [Boolean, Object],
default: !0
},
align: {
...nn.align,
default: "center"
},
stack: Boolean,
stretch: Boolean,
loading: {
type: Boolean,
default: null
},
disable: Boolean
}, mn = {
...gn,
round: Boolean
};
function hn(e) {
const t = vt(e, dn), l = an(e), { hasRouterLink: a, hasLink: n, linkTag: i, linkAttrs: r, navigateOnClick: c } = cn({
fallbackTag: "button"
}), q = s(() => {
const w = e.fab === !1 && e.fabMini === !1 ? t.value : {};
return e.padding !== void 0 ? Object.assign({}, w, {
padding: e.padding.split(/\s+/).map((O) => O in Ce ? Ce[O] + "px" : O).join(" "),
minWidth: "0",
minHeight: "0"
}) : w;
}), C = s(
() => e.rounded === !0 || e.fab === !0 || e.fabMini === !0
), m = s(
() => e.disable !== !0 && e.loading !== !0
), k = s(() => m.value === !0 ? e.tabindex || 0 : -1), y = s(() => kt(e, "standard")), M = s(() => {
const w = { tabindex: k.value };
return n.value === !0 ? Object.assign(w, r.value) : fn.includes(e.type) === !0 && (w.type = e.type), i.value === "a" ? (e.disable === !0 ? w["aria-disabled"] = "true" : w.href === void 0 && (w.role = "button"), a.value !== !0 && vn.test(e.type) === !0 && (w.type = e.type)) : e.disable === !0 && (w.disabled = "", w["aria-disabled"] = "true"), e.loading === !0 && e.percentage !== void 0 && Object.assign(w, {
role: "progressbar",
"aria-valuemin": 0,
"aria-valuemax": 100,
"aria-valuenow": e.percentage
}), w;
}), B = s(() => {
let w;
e.color !== void 0 ? e.flat === !0 || e.outline === !0 ? w = `text-${e.textColor || e.color}` : w = `bg-${e.color} text-${e.textColor || "white"}` : e.textColor && (w = `text-${e.textColor}`);
const O = e.round === !0 ? "round" : `rectangle${C.value === !0 ? " q-btn--rounded" : e.square === !0 ? " q-btn--square" : ""}`;
return `q-btn--${y.value} q-btn--${O}` + (w !== void 0 ? " " + w : "") + (m.value === !0 ? " q-btn--actionable q-focusable q-hoverable" : e.disable === !0 ? " disabled" : "") + (e.fab === !0 ? " q-btn--fab" : e.fabMini === !0 ? " q-btn--fab-mini" : "") + (e.noCaps === !0 ? " q-btn--no-uppercase" : "") + (e.dense === !0 ? " q-btn--dense" : "") + (e.stretch === !0 ? " no-border-radius self-stretch" : "") + (e.glossy === !0 ? " glossy" : "") + (e.square ? " q-btn--square" : "");
}), T = s(
() => l.value + (e.stack === !0 ? " column" : " row") + (e.noWrap === !0 ? " no-wrap text-no-wrap" : "") + (e.loading === !0 ? " q-btn__content--hidden" : "")
);
return {
classes: B,
style: q,
innerClasses: T,
attributes: M,
hasLink: n,
linkTag: i,
navigateOnClick: c,
isActionable: m
};
}
const { passiveCapture: Q } = Be;
let le = null, oe = null, re = null;
const bn = ee({
name: "QBtn",
props: {
...mn,
percentage: Number,
darkPercentage: Boolean,
onTouchstart: [Function, Array]
},
emits: ["click", "keydown", "mousedown", "keyup"],
setup(e, { slots: t, emit: l }) {
const { proxy: a } = Z(), {
classes: n,
style: i,
innerClasses: r,
attributes: c,
hasLink: q,
linkTag: C,
navigateOnClick: m,
isActionable: k
} = hn(e), y = L(null), M = L(null);
let B = null, T, w = null;
const O = s(
() => e.label !== void 0 && e.label !== null && e.label !== ""
), E = s(() => e.disable === !0 || e.ripple === !1 ? !1 : {
keyCodes: q.value === !0 ? [13, 32] : [13],
...e.ripple === !0 ? {} : e.ripple
}), N = s(() => ({ center: e.round })), j = s(() => {
const o = Math.max(0, Math.min(100, e.percentage));
return o > 0 ? { transition: "transform 0.6s", transform: `translateX(${o - 100}%)` } : {};
}), P = s(() => {
if (e.loading === !0)
return {
onMousedown: g,
onTouchstart: g,
onClick: g,
onKeydown: g,
onKeyup: g
};
if (k.value === !0) {
const o = {
onClick: $,
onKeydown: V,
onMousedown: f
};
if (a.$q.platform.has.touch === !0) {
const x = e.onTouchstart !== void 0 ? "" : "Passive";
o[`onTouchstart${x}`] = d;
}
return o;
}
return {
// needed; especially for disabled <a> tags
onClick: te
};
}), R = s(() => ({
ref: y,
class: "q-btn q-btn-item non-selectable no-outline " + n.value,
style: i.value,
...c.value,
...P.value
}));
function $(o) {
if (y.value !== null) {
if (o !== void 0) {
if (o.defaultPrevented === !0)
return;
const x = document.activeElement;
if (e.type === "submit" && x !== document.body && y.value.contains(x) === !1 && x.contains(y.value) === !1) {
y.value.focus();
const S = () => {
document.removeEventListener("keydown", te, !0), document.removeEventListener("keyup", S, Q), y.value !== null && y.value.removeEventListener("blur", S, Q);
};
document.addEventListener("keydown", te, !0), document.addEventListener("keyup", S, Q), y.value.addEventListener("blur", S, Q);
}
}
m(o);
}
}
function V(o) {
y.value !== null && (l("keydown", o), xe(o, [13, 32]) === !0 && oe !== y.value && (oe !== null && u(), o.defaultPrevented !== !0 && (y.value.focus(), oe = y.value, y.value.classList.add("q-btn--active"), document.addEventListener("keyup", b, !0), y.value.addEventListener("blur", b, Q)), te(o)));
}
function d(o) {
y.value !== null && (l("touchstart", o), o.defaultPrevented !== !0 && (le !== y.value && (le !== null && u(), le = y.value, B = o.target, B.addEventListener("touchcancel", b, Q), B.addEventListener("touchend", b, Q)), T = !0, w !== null && clearTimeout(w), w = setTimeout(() => {
w = null, T = !1;
}, 200)));
}
function f(o) {
y.value !== null && (o.qSkipRipple = T === !0, l("mousedown", o), o.defaultPrevented !== !0 && re !== y.value && (re !== null && u(), re = y.value, y.value.classList.add("q-btn--active"), document.addEventListener("mouseup", b, Q)));
}
function b(o) {
if (y.value !== null && !(o !== void 0 && o.type === "blur" && document.activeElement === y.value)) {
if (o !== void 0 && o.type === "keyup") {
if (oe === y.value && xe(o, [13, 32]) === !0) {
const x = new MouseEvent("click", o);
x.qKeyEvent = !0, o.defaultPrevented === !0 && ie(x), o.cancelBubble === !0 && we(x), y.value.dispatchEvent(x), te(o), o.qKeyEvent = !0;
}
l("keyup", o);
}
u();
}
}
function u(o) {
const x = M.value;
o !== !0 && (le === y.value || re === y.value) && x !== null && x !== document.activeElement && (x.setAttribute("tabindex", -1), x.focus()), le === y.value && (B !== null && (B.removeEventListener("touchcancel", b, Q), B.removeEventListener("touchend", b, Q)), le = B = null), re === y.value && (document.removeEventListener("mouseup", b, Q), re = null), oe === y.value && (document.removeEventListener("keyup", b, !0), y.value !== null && y.value.removeEventListener("blur", b, Q), oe = null), y.value !== null && y.value.classList.remove("q-btn--active");
}
function g(o) {
te(o), o.qSkipRipple = !0;
}
return de(() => {
u(!0);
}), Object.assign(a, {
click: (o) => {
k.value === !0 && $(o);
}
}), () => {
let o = [];
e.icon !== void 0 && o.push(
p(ke, {
name: e.icon,
left: e.stack !== !0 && O.value === !0,
role: "img"
})
), O.value === !0 && o.push(
p("span", { class: "block" }, [e.label])
), o = se(t.default, o), e.iconRight !== void 0 && e.round === !1 && o.push(
p(ke, {
name: e.iconRight,
right: e.stack !== !0 && O.value === !0,
role: "img"
})
);
const x = [
p("span", {
class: "q-focus-helper",
ref: M
})
];
return e.loading === !0 && e.percentage !== void 0 && x.push(
p("span", {
class: "q-btn__progress absolute-full overflow-hidden" + (e.darkPercentage === !0 ? " q-btn__progress--dark" : "")
}, [
p("span", {
class: "q-btn__progress-indicator fit block",
style: j.value
})
])
), x.push(
p("span", {
class: "q-btn__content text-center col items-center q-anchor--skip " + r.value
}, o)
), e.loading !== null && x.push(
p(je, {
name: "q-transition--fade"
}, () => e.loading === !0 ? [
p("span", {
key: "loading",
class: "absolute-full flex flex-center"
}, t.loading !== void 0 ? t.loading() : [p(ze)])
] : null)
), St(
p(
C.value,
R.value,
x
),
[[
en,
E.value,
void 0,
N.value
]]
);
};
}
});
let Pe, he = 0;
const K = new Array(256);
for (let e = 0; e < 256; e++)
K[e] = (e + 256).toString(16).substring(1);
const yn = (() => {
const e = typeof crypto < "u" ? crypto : typeof window < "u" ? window.crypto || window.msCrypto : void 0;
if (e !== void 0) {
if (e.randomBytes !== void 0)
return e.randomBytes;
if (e.getRandomValues !== void 0)
return (t) => {
const l = new Uint8Array(t);
return e.getRandomValues(l), l;
};
}
return (t) => {
const l = [];
for (let a = t; a > 0; a--)
l.push(Math.floor(Math.random() * 256));
return l;
};
})(), et = 4096;
function Fe() {
(Pe === void 0 || he + 16 > et) && (he = 0, Pe = yn(et));
const e = Array.prototype.slice.call(Pe, he, he += 16);
return e[6] = e[6] & 15 | 64, e[8] = e[8] & 63 | 128, K[e[0]] + K[e[1]] + K[e[2]] + K[e[3]] + "-" + K[e[4]] + K[e[5]] + "-" + K[e[6]] + K[e[7]] + "-" + K[e[8]] + K[e[9]] + "-" + K[e[10]] + K[e[11]] + K[e[12]] + K[e[13]] + K[e[14]] + K[e[15]];
}
const ce = L(
!1
);
let Oe;
function pn(e, t) {
const l = /(edg|edge|edga|edgios)\/([\w.]+)/.exec(e) || /(opr)[\/]([\w.]+)/.exec(e) || /(vivaldi)[\/]([\w.]+)/.exec(e) || /(chrome|crios)[\/]([\w.]+)/.exec(e) || /(version)(applewebkit)[\/]([\w.]+).*(safari)[\/]([\w.]+)/.exec(e) || /(webkit)[\/]([\w.]+).*(version)[\/]([\w.]+).*(safari)[\/]([\w.]+)/.exec(e) || /(firefox|fxios)[\/]([\w.]+)/.exec(e) || /(webkit)[\/]([\w.]+)/.exec(e) || /(opera)(?:.*version|)[\/]([\w.]+)/.exec(e) || [];
return {
browser: l[5] || l[3] || l[1] || "",
version: l[4] || l[2] || "0",
platform: t[0] || ""
};
}
function kn(e) {
return /(ipad)/.exec(e) || /(ipod)/.exec(e) || /(windows phone)/.exec(e) || /(iphone)/.exec(e) || /(kindle)/.exec(e) || /(silk)/.exec(e) || /(android)/.exec(e) || /(win)/.exec(e) || /(mac)/.exec(e) || /(linux)/.exec(e) || /(cros)/.exec(e) || /(playbook)/.exec(e) || /(bb)/.exec(e) || /(blackberry)/.exec(e) || [];
}
const wt = "ontouchstart" in window || window.navigator.maxTouchPoints > 0;
function wn(e) {
const t = e.toLowerCase(), l = kn(t), a = pn(t, l), n = {
mobile: !1,
desktop: !1,
cordova: !1,
capacitor: !1,
nativeMobile: !1,
// nativeMobileWrapper: void 0,
electron: !1,
bex: !1,
linux: !1,
mac: !1,
win: !1,
cros: !1,
chrome: !1,
firefox: !1,
opera: !1,
safari: !1,
vivaldi: !1,
edge: !1,
edgeChromium: !1,
ie: !1,
webkit: !1,
android: !1,
ios: !1,
ipad: !1,
iphone: !1,
ipod: !1,
kindle: !1,
winphone: !1,
blackberry: !1,
playbook: !1,
silk: !1
};
a.browser && (n[a.browser] = !0, n.version = a.version, n.versionNumber = parseInt(a.version, 10)), a.platform && (n[a.platform] = !0);
const i = n.android || n.ios || n.bb || n.blackberry || n.ipad || n.iphone || n.ipod || n.kindle || n.playbook || n.silk || n["windows phone"];
if (i === !0 || t.indexOf("mobile") !== -1 ? n.mobile = !0 : n.desktop = !0, n["windows phone"] && (n.winphone = !0, delete n["windows phone"]), n.edga || n.edgios || n.edg ? (n.edge = !0, a.browser = "edge") : n.crios ? (n.chrome = !0, a.browser = "chrome") : n.fxios && (n.firefox = !0, a.browser = "firefox"), (n.ipod || n.ipad || n.iphone) && (n.ios = !0), n.vivaldi && (a.browser = "vivaldi", n.vivaldi = !0), // Chrome, Opera 15+, Vivaldi and Safari are webkit based browsers
(n.chrome || n.opr || n.safari || n.vivaldi || n.mobile === !0 && n.ios !== !0 && i !== !0) && (n.webkit = !0), n.opr && (a.browser = "opera", n.opera = !0), n.safari && (n.blackberry || n.bb ? (a.browser = "blackberry", n.blackberry = !0) : n.playbook ? (a.browser = "playbook", n.playbook = !0) : n.android ? (a.browser = "android", n.android = !0) : n.kindle ? (a.browser = "kindle", n.kindle = !0) : n.silk && (a.browser = "silk", n.silk = !0)), n.name = a.browser, n.platform = a.platform, t.indexOf("electron") !== -1)
n.electron = !0;
else if (document.location.href.indexOf("-extension://") !== -1)
n.bex = !0;
else {
if (window.Capacitor !== void 0 ? (n.capacitor = !0, n.nativeMobile = !0, n.nativeMobileWrapper = "capacitor") : (window._cordovaNative !== void 0 || window.cordova !== void 0) && (n.cordova = !0, n.nativeMobile = !0, n.nativeMobileWrapper = "cordova"), ce.value === !0 && (Oe = { is: { ...n } }), wt === !0 && n.mac === !0 && (n.desktop === !0 && n.safari === !0 || n.nativeMobile === !0 && n.android !== !0 && n.ios !== !0 && n.ipad !== !0)) {
delete n.mac, delete n.desktop;
const r = Math.min(window.innerHeight, window.innerWidth) > 414 ? "ipad" : "iphone";
Object.assign(n, {
mobile: !0,
ios: !0,
platform: r,
[r]: !0
});
}
n.mobile !== !0 && window.navigator.userAgentData && window.navigator.userAgentData.mobile && (delete n.desktop, n.mobile = !0);
}
return n;
}
const tt = navigator.userAgent || navigator.vendor || window.opera, xn = {
has: {
touch: !1,
webStorage: !1
},
within: { iframe: !1 }
}, Se = {
userAgent: tt,
is: wn(tt),
has: {
touch: wt
},
within: {
iframe: window.self !== window.top
}
}, nt = {
install(e) {
const { $q: t } = e;
ce.value === !0 ? (e.onSSRHydrated.push(() => {
Object.assign(t.platform, Se), ce.value = !1;
}), t.platform = _t(this)) : t.platform = this;
}
};
{
let e;
Ie(Se.has, "webStorage", () => {
if (e !== void 0)
return e;
try {
if (window.localStorage)
return e = !0, !0;
} catch {
}
return e = !1, !1;
}), Object.assign(nt, Se), ce.value === !0 && (Object.assign(nt, Oe, xn), Oe = null);
}
function Cn(e) {
return e ?? null;
}
function at(e, t) {
return e ?? (t === !0 ? `f_${Fe()}` : null);
}
function Sn({ getValue: e, required: t = !0 } = {}) {
if (ce.value === !0) {
const l = e !== void 0 ? L(Cn(e())) : L(null);
return t === !0 && l.value === null && fe(() => {
l.value = `f_${Fe()}`;
}), e !== void 0 && H(e, (a) => {
l.value = at(a, t);
}), l;
}
return e !== void 0 ? s(() => at(e(), t)) : L(`f_${Fe()}`);
}
const lt = /^on[A-Z]/;
function _n() {
const { attrs: e, vnode: t } = Z(), l = {
listeners: L({}),
attributes: L({})
};
function a() {
const n = {}, i = {};
for (const r in e)
r !== "class" && r !== "style" && lt.test(r) === !1 && (n[r] = e[r]);
for (const r in t.props)
lt.test(r) === !0 && (i[r] = t.props[r]);
l.attributes.value = n, l.listeners.value = i;
}
return qt(a), a(), l;
}
const qn = "_q_fo_";
function Mn({ validate: e, resetValidation: t, requiresQForm: l }) {
const a = Mt(qn, !1);
if (a !== !1) {
const { props: n, proxy: i } = Z();
Object.assign(i, { validate: e, resetValidation: t }), H(() => n.disable, (r) => {
r === !0 ? (typeof t == "function" && t(), a.unbindComponent(i)) : a.bindComponent(i);
}), fe(() => {
n.disable !== !0 && a.bindComponent(i);
}), de(() => {
n.disable !== !0 && a.unbindComponent(i);
});
} else
l === !0 && console.error("Parent QForm not found on useFormChild()!");
}
const ot = /^#[0-9a-fA-F]{3}([0-9a-fA-F]{3})?$/, rt = /^#[0-9a-fA-F]{4}([0-9a-fA-F]{4})?$/, it = /^#([0-9a-fA-F]{3}|[0-9a-fA-F]{4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/, be = /^rgb\(((0|[1-9][\d]?|1[\d]{0,2}|2[\d]?|2[0-4][\d]|25[0-5]),){2}(0|[1-9][\d]?|1[\d]{0,2}|2[\d]?|2[0-4][\d]|25[0-5])\)$/, ye = /^rgba\(((0|[1-9][\d]?|1[\d]{0,2}|2[\d]?|2[0-4][\d]|25[0-5]),){2}(0|[1-9][\d]?|1[\d]{0,2}|2[\d]?|2[0-4][\d]|25[0-5]),(0|0\.[0-9]+[1-9]|0\.[1-9]+|1)\)$/, Ve = {
date: (e) => /^-?[\d]+\/[0-1]\d\/[0-3]\d$/.test(e),
time: (e) => /^([0-1]?\d|2[0-3]):[0-5]\d$/.test(e),
fulltime: (e) => /^([0-1]?\d|2[0-3]):[0-5]\d:[0-5]\d$/.test(e),
timeOrFulltime: (e) => /^([0-1]?\d|2[0-3]):[0-5]\d(:[0-5]\d)?$/.test(e),
// -- RFC 5322 --
// -- Added in v2.6.6 --
// This is a basic helper validation.
// For something more complex (like RFC 822) you should write and use your own rule.
// We won't be accepting PRs to enhance the one below because of the reason above.
// eslint-disable-next-line
email: (e) => /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(e),
hexColor: (e) => ot.test(e),
hexaColor: (e) => rt.test(e),
hexOrHexaColor: (e) => it.test(e),
rgbColor: (e) => be.test(e),
rgbaColor: (e) => ye.test(e),
rgbOrRgbaColor: (e) => be.test(e) || ye.test(e),
hexOrRgbColor: (e) => ot.test(e) || be.test(e),
hexaOrRgbaColor: (e) => rt.test(e) || ye.test(e),
anyColor: (e) => it.test(e) || be.test(e) || ye.test(e)
};
function Bn(e, t = 250, l) {
let a = null;
function n() {
const i = arguments, r = () => {
a = null, l !== !0 && e.apply(this, i);
};
a !== null ? clearTimeout(a) : l === !0 && e.apply(this, i), a = setTimeout(r, t);
}
return n.cancel = () => {
a !== null && clearTimeout(a);
}, n;
}
const En = [!0, !1, "ondemand"], Rn = {
modelValue: {},
error: {
type: Boolean,
default: null
},
errorMessage: String,
noErrorIcon: Boolean,
rules: Array,
reactiveRules: Boolean,
lazyRules: {
type: [Boolean, String],
default: !1,
// statement unneeded but avoids future vue implementation changes
validator: (e) => En.includes(e)
}
};
function $n(e, t) {
const { props: l, proxy: a } = Z(), n = L(!1), i = L(null), r = L(!1);
Mn({ validate: T, resetValidation: B });
let c = 0, q;
const C = s(
() => l.rules !== void 0 && l.rules !== null && l.rules.length !== 0
), m = s(() => l.disable !== !0 && C.value === !0 && t.value === !1), k = s(
() => l.error === !0 || n.value === !0
), y = s(() => typeof l.errorMessage == "string" && l.errorMessage.length !== 0 ? l.errorMessage : i.value);
H(() => l.modelValue, () => {
r.value = !0, m.value === !0 && l.lazyRules === !1 && w();
});
function M() {
l.lazyRules !== "ondemand" && m.value === !0 && r.value === !0 && w();
}
H(() => l.reactiveRules, (O) => {
O === !0 ? q === void 0 && (q = H(() => l.rules, M, { immediate: !0, deep: !0 })) : q !== void 0 && (q(), q = void 0);
}, { immediate: !0 }), H(() => l.lazyRules, M), H(e, (O) => {
O === !0 ? r.value = !0 : m.value === !0 && l.lazyRules !== "ondemand" && w();
});
function B() {
c++, t.value = !1, r.value = !1, n.value = !1, i.value = null, w.cancel();
}
function T(O = l.modelValue) {
if (l.disable === !0 || C.value === !1)
return !0;
const E = ++c, N = t.value !== !0 ? () => {
r.value = !0;
} : () => {
}, j = (R, $) => {
R === !0 && N(), n.value = R, i.value = $ || null, t.value = !1;
}, P = [];
for (let R = 0; R < l.rules.length; R++) {
const $ = l.rules[R];
let V;
if (typeof $ == "function" ? V = $(O, Ve) : typeof $ == "string" && Ve[$] !== void 0 && (V = Ve[$](O)), V === !1 || typeof V == "string")
return j(!0, V), !1;
V !== !0 && V !== void 0 && P.push(V);
}
return P.length === 0 ? (j(!1), !0) : (t.value = !0, Promise.all(P).then(
(R) => {
if (R === void 0 || Array.isArray(R) === !1 || R.length === 0)
return E === c && j(!1), !0;
const $ = R.find((V) => V === !1 || typeof V == "string");
return E === c && j($ !== void 0, $), $ === void 0;
},
(R) => (E === c && (console.error(R), j(!0)), !1)
));
}
const w = Bn(T, 0);
return de(() => {
q !== void 0 && q(), w.cancel();
}), Object.assign(a, { resetValidation: B, validate: T }), Ie(a, "hasError", () => k.value), {
isDirtyModel: r,
hasRules: C,
hasError: k,
errorMessage: y,
validate: T,
resetValidation: B
};
}
let Ae = [], Pn = [];
function xt(e) {
Pn.length === 0 ? e() : Ae.push(e);
}
function Vn(e) {
Ae = Ae.filter((t) => t !== e);
}
function Le(e) {
return e != null && ("" + e).length !== 0;
}
const Tn = {
...qe,
...Rn,
label: String,
stackLabel: Boolean,
hint: String,
hideHint: Boolean,
prefix: String,
suffix: String,
labelColor: String,
color: String,
bgColor: String,
filled: Boolean,
outlined: Boolean,
borderless: Boolean,
standout: [Boolean, String],
square: Boolean,
loading: Boolean,
labelSlot: Boolean,
bottomSlots: Boolean,
hideBottomSpace: Boolean,
rounded: Boolean,
dense: Boolean,
itemAligned: Boolean,
counter: Boolean,
clearable: Boolean,
clearIcon: String,
disable: Boolean,
readonly: Boolean,
autofocus: Boolean,
for: String
}, Fn = {
...Tn,
maxlength: [Number, String]
}, On = ["update:modelValue", "clear", "focus", "blur"];
function An({ requiredForAttr: e = !0, tagProp: t, changeEvent: l = !1 } = {}) {
const { props: a, proxy: n } = Z(), i = Me(a, n.$q), r = Sn({
required: e,
getValue: () => a.for
});
return {
requiredForAttr: e,
changeEvent: l,
tag: t === !0 ? s(() => a.tag) : { value: "label" },
isDark: i,
editable: s(
() => a.disable !== !0 && a.readonly !== !0
),
innerLoading: L(!1),
focused: L(!1),
hasPopupOpen: !1,
splitAttrs: _n(),
targetUid: r,
rootRef: L(null),
targetRef: L(null),
controlRef: L(null)
/**
* user supplied additionals:
* innerValue - computed
* floatingLabel - computed
* inputRef - computed
* fieldClass - computed
* hasShadow - computed
* controlEvents - Object with fn(e)
* getControl - fn
* getInnerAppend - fn
* getControlChild - fn
* getShadowControl - fn
* showPopup - fn
*/
};
}
function Ln(e) {
const { props: t, emit: l, slots: a, attrs: n, proxy: i } = Z(), { $q: r } = i;
let c = null;
e.hasValue === void 0 && (e.hasValue = s(() => Le(t.modelValue))), e.emitValue === void 0 && (e.emitValue = (h) => {
l("update:modelValue", h);
}), e.controlEvents === void 0 && (e.controlEvents = {
onFocusin: d,
onFocusout: f
}), Object.assign(e, {
clearValue: b,
onControlFocusin: d,
onControlFocusout: f,
focus: $
}), e.computedCounter === void 0 && (e.computedCounter = s(() => {
if (t.counter !== !1) {
const h = typeof t.modelValue == "string" || typeof t.modelValue == "number" ? ("" + t.modelValue).length : Array.isArray(t.modelValue) === !0 ? t.modelValue.length : 0, _ = t.maxlength !== void 0 ? t.maxlength : t.maxValues;
return h + (_ !== void 0 ? " / " + _ : "");
}
}));
const {
isDirtyModel: q,
hasRules: C,
hasError: m,
errorMessage: k,
resetValidation: y
} = $n(e.focused, e.innerLoading), M = e.floatingLabel !== void 0 ? s(() => t.stackLabel === !0 || e.focused.value === !0 || e.floatingLabel.value === !0) : s(() => t.stackLabel === !0 || e.focused.value === !0 || e.hasValue.value === !0), B = s(
() => t.bottomSlots === !0 || t.hint !== void 0 || C.value === !0 || t.counter === !0 || t.error !== null
), T = s(() => t.filled === !0 ? "filled" : t.outlined === !0 ? "outlined" : t.borderless === !0 ? "borderless" : t.standout ? "standout" : "standard"), w = s(
() => `q-field row no-wrap items-start q-field--${T.value}` + (e.fieldClass !== void 0 ? ` ${e.fieldClass.value}` : "") + (t.rounded === !0 ? " q-field--rounded" : "") + (t.square === !0 ? " q-field--square" : "") + (M.value === !0 ? " q-field--float" : "") + (E.value === !0 ? " q-field--labeled" : "") + (t.dense === !0 ? " q-field--dense" : "") + (t.itemAligned === !0 ? " q-field--item-aligned q-item-type" : "") + (e.isDark.value === !0 ? " q-field--dark" : "") + (e.getControl === void 0 ? " q-field--auto-height" : "") + (e.focused.value === !0 ? " q-field--focused" : "") + (m.value === !0 ? " q-field--error" : "") + (m.value === !0 || e.focused.value === !0 ? " q-field--highlighted" : "") + (t.hideBottomSpace !== !0 && B.value === !0 ? " q-field--with-bottom" : "") + (t.disable === !0 ? " q-field--disabled" : t.readonly === !0 ? " q-field--readonly" : "")
), O = s(
() => "q-field__control relative-position row no-wrap" + (t.bgColor !== void 0 ? ` bg-${t.bgColor}` : "") + (m.value === !0 ? " text-negative" : typeof t.standout == "string" && t.standout.length !== 0 && e.focused.value === !0 ? ` ${t.standout}` : t.color !== void 0 ? ` text-${t.color}` : "")
), E = s(
() => t.labelSlot === !0 || t.label !== void 0
), N = s(
() => "q-field__label no-pointer-events absolute ellipsis" + (t.labelColor !== void 0 && m.value !== !0 ? ` text-${t.labelColor}` : "")
), j = s(() => ({
id: e.targetUid.value,
editable: e.editable.value,
focused: e.focused.value,
floatingLabel: M.value,
modelValue: t.modelValue,
emitValue: e.emitValue
})), P = s(() => {
const h = {};
return e.targetUid.value && (h.for = e.targetUid.value), t.disable === !0 && (h["aria-disabled"] = "true"), h;
});
function R() {
const h = document.activeElement;
let _ = e.targetRef !== void 0 && e.targetRef.value;
_ && (h === null || h.id !== e.targetUid.value) && (_.hasAttribute("tabindex") === !0 || (_ = _.querySelector("[tabindex]")), _ && _ !== h && _.focus({ preventScroll: !0 }));
}
function $() {
xt(R);
}
function V() {
Vn(R);
const h = document.activeElement;
h !== null && e.rootRef.value.contains(h) && h.blur();
}
function d(h) {
c !== null && (clearTimeout(c), c = null), e.editable.value === !0 && e.focused.value === !1 && (e.focused.value = !0, l("focus", h));
}
function f(h, _) {
c !== null && clearTimeout(c), c = setTimeout(() => {
c = null, !(document.hasFocus() === !0 && (e.hasPopupOpen === !0 || e.controlRef === void 0 || e.controlRef.value === null || e.controlRef.value.contains(document.activeElement) !== !1)) && (e.focused.value === !0 && (e.focused.value = !1, l("blur", h)), _ !== void 0 && _());
});
}
function b(h) {
te(h), r.platform.is.mobile !== !0 ? (e.targetRef !== void 0 && e.targetRef.value || e.rootRef.value).focus() : e.rootRef.value.contains(document.activeElement) === !0 && document.activeElement.blur(), t.type === "file" && (e.inputRef.value.value = null), l("update:modelValue", null), e.changeEvent === !0 && l("change", null), l("clear", t.modelValue), G(() => {
const _ = q.value;
y(), q.value = _;
});
}
function u(h) {
[13, 32].includes(h.keyCode) && b(h);
}
function g() {
const h = [];
return a.prepend !== void 0 && h.push(
p("div", {
class: "q-field__prepend q-field__marginal row no-wrap items-center",
key: "prepend",
onClick: ie
}, a.prepend())
), h.push(
p("div", {
class: "q-field__control-container col relative-position row no-wrap q-anchor--skip"
}, o())
), m.value === !0 && t.noErrorIcon === !1 && h.push(
S("error", [
p(ke, { name: r.iconSet.field.error, color: "negative" })
])
), t.loading === !0 || e.innerLoading.value === !0 ? h.push(
S(
"inner-loading-append",
a.loading !== void 0 ? a.loading() : [p(ze, { color: t.color })]
)
) : t.clearable === !0 && e.hasValue.value === !0 && e.editable.value === !0 && h.push(
S("inner-clearable-append", [
p(ke, {
class: "q-field__focusable-action",
name: t.clearIcon || r.iconSet.field.clear,
tabindex: 0,
role: "button",
"aria-hidden": "false",
"aria-label": r.lang.label.clear,
onKeyup: u,
onClick: b
})
])
), a.append !== void 0 && h.push(
p("div", {
class: "q-field__append q-field__marginal row no-wrap items-center",
key: "append",
onClick: ie
}, a.append())
), e.getInnerAppend !== void 0 && h.push(
S("inner-append", e.getInnerAppend())
), e.getControlChild !== void 0 && h.push(
e.getControlChild()
), h;
}
function o() {
const h = [];
return t.prefix !== void 0 && t.prefix !== null && h.push(
p("div", {
class: "q-field__prefix no-pointer-events row items-center"
}, t.prefix)
), e.getShadowControl !== void 0 && e.hasShadow.value === !0 && h.push(
e.getShadowControl()
), e.getControl !== void 0 ? h.push(e.getControl()) : a.rawControl !== void 0 ? h.push(a.rawControl()) : a.control !== void 0 && h.push(
p("div", {
ref: e.targetRef,
class: "q-field__native row",
tabindex: -1,
...e.splitAttrs.attributes.value,
"data-autofocus": t.autofocus === !0 || void 0
}, a.control(j.value))
), E.value === !0 && h.push(
p("div", {
class: N.value
}, ne(a.label, t.label))
), t.suffix !== void 0 && t.suffix !== null && h.push(
p("div", {
class: "q-field__suffix no-pointer-events row items-center"
}, t.suffix)
), h.concat(ne(a.default));
}
function x() {
let h, _;
m.value === !0 ? k.value !== null ? (h = [p("div", { role: "alert" }, k.value)], _ = `q--slot-error-${k.value}`) : (h = ne(a.error), _ = "q--slot-error") : (t.hideHint !== !0 || e.focused.value === !0) && (t.hint !== void 0 ? (h = [p("div", t.hint)], _ = `q--slot-hint-${t.hint}`) : (h = ne(a.hint), _ = "q--slot-hint"));
const A = t.counter === !0 || a.counter !== void 0;
if (t.hideBottomSpace === !0 && A === !1 && h === void 0)
return;
const I = p("div", {
key: _,
class: "q-field__messages col"
}, h);
return p("div", {
class: "q-field__bottom row items-start q-field__bottom--" + (t.hideBottomSpace !== !0 ? "animated" : "stale"),
onClick: ie
}, [
t.hideBottomSpace === !0 ? I : p(je, { name: "q-transition--field-message" }, () => I),
A === !0 ? p("div", {
class: "q-field__counter"
}, a.counter !== void 0 ? a.counter() : e.computedCounter.value) : null
]);
}
function S(h, _) {
return _ === null ? null : p("div", {
key: h,
class: "q-field__append q-field__marginal row no-wrap items-center q-anchor--skip"
}, _);
}
let F = !1;
return Bt(() => {
F = !0;
}), Et(() => {
F === !0 && t.autofocus === !0 && i.focus();