UNPKG

an-quasar-utils

Version:

`npm i an-quasar-utils` or `yarn add an-quasar-utils`

1,344 lines 387 kB
(function(){"use strict";try{if(typeof document<"u"){var t=document.createElement("style");t.appendChild(document.createTextNode('*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.container{width:100%}@media (min-width: 640px){.container{max-width:640px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1280px){.container{max-width:1280px}}@media (min-width: 1536px){.container{max-width:1536px}}.mx-auto{margin-left:auto;margin-right:auto}.flex{display:flex}.h-full{height:100%}.w-full{width:100%}.min-w-28{min-width:7rem}.flex-1{flex:1 1 0%}.flex-grow{flex-grow:1}.flex-col{flex-direction:column}.flex-nowrap{flex-wrap:nowrap}.\\!items-start{align-items:flex-start!important}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.\\!justify-between{justify-content:space-between!important}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-5{gap:1.25rem}.border{border-width:1px}.border-2{border-width:2px}.border-solid{border-style:solid}.p-2{padding:.5rem}.p-5{padding:1.25rem}.text-2xl{font-size:1.5rem;line-height:2rem}.font-bold{font-weight:700}.text-blue-600{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity))}.text-red-600{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity))}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.\\[\\&\\>div\\>div\\:before\\]\\:\\!border-solid>div>div:before{border-style:solid!important}')),document.head.appendChild(t)}}catch(e){console.error("vite-plugin-css-injected-by-js",e)}})(); import { computed as d, markRaw as Ka, defineComponent as Un, reactive as xn, h as f, withDirectives as At, getCurrentInstance as ke, unref as pl, ref as J, onBeforeUnmount as at, Transition as Mt, onDeactivated as _n, nextTick as Le, watch as se, onMounted as jt, onUnmounted as Ti, Teleport as Vi, openBlock as Ae, createBlock as st, withCtx as Me, createVNode as Se, mergeProps as Qt, createElementVNode as Ue, toDisplayString as Ln, renderSlot as ot, createCommentVNode as Ie, provide as Ai, onActivated as wl, createElementBlock as Tt, onBeforeUpdate as Wa, inject as Di, onBeforeMount as Yn, onUpdated as Li, toRaw as Yt, useSlots as Qa, Fragment as Rn, createSlots as Zl, createTextVNode as Fi, normalizeClass as $i, renderList as al, normalizeProps as Do, mergeModels as Lo, useModel as Hi } from "vue"; const Gl = { xs: 18, sm: 24, md: 32, lg: 38, xl: 46 }, Cn = { size: String }; function qn(e, t = Gl) { return d(() => e.size !== void 0 ? { fontSize: e.size in t ? `${t[e.size]}px` : e.size } : null); } function _t(e, t, n, l) { return Object.defineProperty(e, t, { get: n, set: l, enumerable: !0 }), e; } function Ii(e, t) { for (const n in t) _t(e, n, t[n]); return e; } function Ce(e) { return Ka(Un(e)); } function yo(e) { return Ka(e); } const ji = (e, t) => { const n = xn(e); for (const l in e) _t( t, l, () => n[l], (o) => { n[l] = o; } ); return t; }; function We(e, t) { return e !== void 0 && e() || t; } function Xa(e, t) { if (e !== void 0) { const n = e(); if (n != null) return n.slice(); } return t; } function Vt(e, t) { return e !== void 0 ? t.concat(e()) : t; } function Ni(e, t) { return e === void 0 ? t : t !== void 0 ? t.concat(e()) : e(); } function zi(e, t, n, l, o, a) { t.key = l + o; const r = f(e, t, n); return o === !0 ? At(r, a()) : r; } const Fo = "0 0 24 24", $o = (e) => e, Bl = (e) => `ionicons ${e}`, Ja = { "mdi-": (e) => `mdi ${e}`, "icon-": $o, // fontawesome equiv "bt-": (e) => `bt ${e}`, "eva-": (e) => `eva ${e}`, "ion-md": Bl, "ion-ios": Bl, "ion-logo": Bl, "iconfont ": $o, "ti-": (e) => `themify-icon ${e}`, "bi-": (e) => `bootstrap-icons ${e}` }, Za = { o_: "-outlined", r_: "-round", s_: "-sharp" }, Ga = { sym_o_: "-outlined", sym_r_: "-rounded", sym_s_: "-sharp" }, Ui = new RegExp("^(" + Object.keys(Ja).join("|") + ")"), Yi = new RegExp("^(" + Object.keys(Za).join("|") + ")"), Ho = new RegExp("^(" + Object.keys(Ga).join("|") + ")"), Ki = /^[Mm]\s?[-+]?\.?\d/, Wi = /^img:/, Qi = /^svguse:/, Xi = /^ion-/, Ji = /^(fa-(classic|sharp|solid|regular|light|brands|duotone|thin)|[lf]a[srlbdk]?) /, yt = Ce({ name: "QIcon", props: { ...Cn, tag: { type: String, default: "i" }, name: String, color: String, left: Boolean, right: Boolean }, setup(e, { slots: t }) { const { proxy: { $q: n } } = ke(), l = qn(e), o = d( () => "q-icon" + (e.left === !0 ? " on-left" : "") + (e.right === !0 ? " on-right" : "") + (e.color !== void 0 ? ` text-${e.color}` : "") ), a = d(() => { let r, u = e.name; if (u === "none" || !u) return { none: !0 }; if (n.iconMapFn !== null) { const i = n.iconMapFn(u); if (i !== void 0) if (i.icon !== void 0) { if (u = i.icon, u === "none" || !u) return { none: !0 }; } else return { cls: i.cls, content: i.content !== void 0 ? i.content : " " }; } if (Ki.test(u) === !0) { const [i, v = Fo] = u.split("|"); return { svg: !0, viewBox: v, nodes: i.split("&&").map((S) => { const [g, b, x] = S.split("@@"); return f("path", { style: b, d: g, transform: x }); }) }; } if (Wi.test(u) === !0) return { img: !0, src: u.substring(4) }; if (Qi.test(u) === !0) { const [i, v = Fo] = u.split("|"); return { svguse: !0, src: i.substring(7), viewBox: v }; } let c = " "; const s = u.match(Ui); if (s !== null) r = Ja[s[1]](u); else if (Ji.test(u) === !0) r = u; else if (Xi.test(u) === !0) r = `ionicons ion-${n.platform.is.ios === !0 ? "ios" : "md"}${u.substring(3)}`; else if (Ho.test(u) === !0) { r = "notranslate material-symbols"; const i = u.match(Ho); i !== null && (u = u.substring(6), r += Ga[i[1]]), c = u; } else { r = "notranslate material-icons"; const i = u.match(Yi); i !== null && (u = u.substring(2), r += Za[i[1]]), c = u; } return { cls: r, content: c }; }); return () => { const r = { class: o.value, style: l.value, "aria-hidden": "true", role: "presentation" }; return a.value.none === !0 ? f(e.tag, r, We(t.default)) : a.value.img === !0 ? f(e.tag, r, Vt(t.default, [ f("img", { src: a.value.src }) ])) : a.value.svg === !0 ? f(e.tag, r, Vt(t.default, [ f("svg", { viewBox: a.value.viewBox || "0 0 24 24" }, a.value.nodes) ])) : a.value.svguse === !0 ? f(e.tag, r, Vt(t.default, [ f("svg", { viewBox: a.value.viewBox }, [ f("use", { "xlink:href": a.value.src }) ]) ])) : (a.value.cls !== void 0 && (r.class += " " + a.value.cls), f(e.tag, r, Vt(t.default, [ a.value.content ]))); }; } }), er = { size: { type: [String, Number], default: "1em" }, color: String }; function tr(e) { return { cSize: d(() => e.size in Gl ? `${Gl[e.size]}px` : e.size), classes: d( () => "q-spinner" + (e.color ? ` text-${e.color}` : "") ) }; } const nr = Ce({ name: "QSpinner", props: { ...er, thickness: { type: Number, default: 5 } }, setup(e) { const { cSize: t, classes: n } = tr(e); return () => f("svg", { class: n.value + " q-spinner-mat", width: t.value, height: t.value, viewBox: "25 25 50 50" }, [ f("circle", { class: "path", cx: "50", cy: "50", r: "20", fill: "none", stroke: "currentColor", "stroke-width": e.thickness, "stroke-miterlimit": "10" }) ]); } }); function eo(e, t) { const n = e.style; for (const l in t) n[l] = t[l]; } function Zi(e) { if (e == null) return; if (typeof e == "string") try { return document.querySelector(e) || void 0; } catch { return; } const t = pl(e); if (t) return t.$el || t; } function lr(e, t) { if (e == null || e.contains(t) === !0) return !0; for (let n = e.nextElementSibling; n !== null; n = n.nextElementSibling) if (n.contains(t)) return !0; return !1; } const Ze = { hasPassive: !1, passiveCapture: !0, notPassiveCapture: !0 }; try { const e = Object.defineProperty({}, "passive", { get() { Object.assign(Ze, { 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 or() { } function Gi(e) { return e.button === 0; } function Sn(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 eu(e) { if (e.path) return e.path; if (e.composedPath) return e.composedPath(); const t = []; let n = e.target; for (; n; ) { if (t.push(n), n.tagName === "HTML") return t.push(document), t.push(window), t; n = n.parentElement; } } function gt(e) { e.stopPropagation(); } function ct(e) { e.cancelable !== !1 && e.preventDefault(); } function Fe(e) { e.cancelable !== !1 && e.preventDefault(), e.stopPropagation(); } function Tl(e, t) { if (e === void 0 || t === !0 && e.__dragPrevented === !0) return; const n = t === !0 ? (l) => { l.__dragPrevented = !0, l.addEventListener("dragstart", ct, Ze.notPassiveCapture); } : (l) => { delete l.__dragPrevented, l.removeEventListener("dragstart", ct, Ze.notPassiveCapture); }; e.querySelectorAll("a, img").forEach(n); } function nn(e, t, n) { const l = `__q_${t}_evt`; e[l] = e[l] !== void 0 ? e[l].concat(n) : n, n.forEach((o) => { o[0].addEventListener(o[1], e[o[2]], Ze[o[3]]); }); } function Fn(e, t) { const n = `__q_${t}_evt`; e[n] !== void 0 && (e[n].forEach((l) => { l[0].removeEventListener(l[1], e[l[2]], Ze[l[3]]); }), e[n] = void 0); } function po(e) { return e !== Object(e) || e.isComposing === !0 || e.qKeyEvent === !0; } function It(e, t) { return po(e) === !0 ? !1 : [].concat(t).includes(e.keyCode); } function tu(e, t = 250) { let n = !1, l; return function() { return n === !1 && (n = !0, setTimeout(() => { n = !1; }, t), l = e.apply(this, arguments)), l; }; } function Io(e, t, n, l) { n.modifiers.stop === !0 && gt(e); const o = n.modifiers.color; let a = n.modifiers.center; a = a === !0 || l === !0; const r = document.createElement("span"), u = document.createElement("span"), c = Sn(e), { left: s, top: i, width: v, height: S } = t.getBoundingClientRect(), g = Math.sqrt(v * v + S * S), b = g / 2, x = `${(v - g) / 2}px`, h = a ? x : `${c.left - s - b}px`, P = `${(S - g) / 2}px`, O = a ? P : `${c.top - i - b}px`; u.className = "q-ripple__inner", eo(u, { height: `${g}px`, width: `${g}px`, transform: `translate3d(${h},${O},0) scale3d(.2,.2,1)`, opacity: 0 }), r.className = `q-ripple${o ? " text-" + o : ""}`, r.setAttribute("dir", "ltr"), r.appendChild(u), t.appendChild(r); const _ = () => { r.remove(), clearTimeout(y); }; n.abort.push(_); let y = setTimeout(() => { u.classList.add("q-ripple__inner--enter"), u.style.transform = `translate3d(${x},${P},0) scale3d(1,1,1)`, u.style.opacity = 0.2, y = setTimeout(() => { u.classList.remove("q-ripple__inner--enter"), u.classList.add("q-ripple__inner--leave"), u.style.opacity = 0, y = setTimeout(() => { r.remove(), n.abort.splice(n.abort.indexOf(_), 1); }, 275); }, 250); }, 50); } function jo(e, { modifiers: t, value: n, arg: l }) { const o = Object.assign({}, e.cfg.ripple, t, n); e.modifiers = { early: o.early === !0, stop: o.stop === !0, center: o.center === !0, color: o.color || l, keyCodes: [].concat(o.keyCodes || 13) }; } const ar = yo( { name: "ripple", beforeMount(e, t) { const n = t.instance.$.appContext.config.globalProperties.$q.config || {}; if (n.ripple === !1) return; const l = { cfg: n, enabled: t.value !== !1, modifiers: {}, abort: [], start(o) { l.enabled === !0 && o.qSkipRipple !== !0 && o.type === (l.modifiers.early === !0 ? "pointerdown" : "click") && Io(o, e, l, o.qKeyEvent === !0); }, keystart: tu((o) => { l.enabled === !0 && o.qSkipRipple !== !0 && It(o, l.modifiers.keyCodes) === !0 && o.type === `key${l.modifiers.early === !0 ? "down" : "up"}` && Io(o, e, l, !0); }, 300) }; jo(l, t), e.__qripple = l, nn(l, "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 n = e.__qripple; n !== void 0 && (n.enabled = t.value !== !1, n.enabled === !0 && Object(t.value) === t.value && jo(n, t)); } }, beforeUnmount(e) { const t = e.__qripple; t !== void 0 && (t.abort.forEach((n) => { n(); }), Fn(t, "main"), delete e._qripple); } } ), rr = { left: "start", center: "center", right: "end", between: "between", around: "around", evenly: "evenly", stretch: "stretch" }, nu = Object.keys(rr), lu = { align: { type: String, validator: (e) => nu.includes(e) } }; function ou(e) { return d(() => { const t = e.align === void 0 ? e.vertical === !0 ? "stretch" : "left" : e.align; return `${e.vertical === !0 ? "items" : "justify"}-${rr[t]}`; }); } function rl(e) { if (Object(e.$parent) === e.$parent) return e.$parent; let { parent: t } = e.$; for (; Object(t) === t; ) { if (Object(t.proxy) === t.proxy) return t.proxy; t = t.parent; } } function wo(e) { return e.appContext.config.globalProperties.$router !== void 0; } function Sl(e) { return e.isUnmounted === !0 || e.isDeactivated === !0; } function No(e) { return e ? e.aliasOf ? e.aliasOf.path : e.path : ""; } function zo(e, t) { return (e.aliasOf || e) === (t.aliasOf || t); } function au(e, t) { for (const n in t) { const l = t[n], o = e[n]; if (typeof l == "string") { if (l !== o) return !1; } else if (Array.isArray(o) === !1 || o.length !== l.length || l.some((a, r) => a !== o[r])) return !1; } return !0; } function Uo(e, t) { return Array.isArray(t) === !0 ? e.length === t.length && e.every((n, l) => n === t[l]) : e.length === 1 && e[0] === t; } function ru(e, t) { return Array.isArray(e) === !0 ? Uo(e, t) : Array.isArray(t) === !0 ? Uo(t, e) : e === t; } function iu(e, t) { if (Object.keys(e).length !== Object.keys(t).length) return !1; for (const n in e) if (ru(e[n], t[n]) === !1) return !1; return !0; } const ir = { // router-link to: [String, Object], replace: Boolean, // regular <a> link href: String, target: String, // state disable: Boolean }, uu = { ...ir, // router-link exact: Boolean, activeClass: { type: String, default: "q-router-link--active" }, exactActiveClass: { type: String, default: "q-router-link--exact-active" } }; function ur({ fallbackTag: e, useDisableForRouterLinkProps: t = !0 } = {}) { const n = ke(), { props: l, proxy: o, emit: a } = n, r = wo(n), u = d(() => l.disable !== !0 && l.href !== void 0), c = t === !0 ? d( () => r === !0 && l.disable !== !0 && u.value !== !0 && l.to !== void 0 && l.to !== null && l.to !== "" ) : d( () => r === !0 && u.value !== !0 && l.to !== void 0 && l.to !== null && l.to !== "" ), s = d(() => c.value === !0 ? O(l.to) : null), i = d(() => s.value !== null), v = d(() => u.value === !0 || i.value === !0), S = d(() => l.type === "a" || v.value === !0 ? "a" : l.tag || e || "div"), g = d(() => u.value === !0 ? { href: l.href, target: l.target } : i.value === !0 ? { href: s.value.href, target: l.target } : {}), b = d(() => { if (i.value === !1) return -1; const { matched: p } = s.value, { length: F } = p, A = p[F - 1]; if (A === void 0) return -1; const U = o.$route.matched; if (U.length === 0) return -1; const D = U.findIndex( zo.bind(null, A) ); if (D !== -1) return D; const L = No(p[F - 2]); return ( // we are dealing with nested routes F > 1 && No(A) === L && U[U.length - 1].path !== L ? U.findIndex( zo.bind(null, p[F - 2]) ) : D ); }), x = d( () => i.value === !0 && b.value !== -1 && au(o.$route.params, s.value.params) ), h = d( () => x.value === !0 && b.value === o.$route.matched.length - 1 && iu(o.$route.params, s.value.params) ), P = d(() => i.value === !0 ? h.value === !0 ? ` ${l.exactActiveClass} ${l.activeClass}` : l.exact === !0 ? "" : x.value === !0 ? ` ${l.activeClass}` : "" : ""); function O(p) { try { return o.$router.resolve(p); } catch { } return null; } function _(p, { returnRouterError: F, to: A = l.to, replace: U = l.replace } = {}) { if (l.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 || l.target === "_blank" ) return Promise.resolve(!1); p.preventDefault(); const D = o.$router[U === !0 ? "replace" : "push"](A); return F === !0 ? D : D.then(() => { }).catch(() => { }); } function y(p) { if (i.value === !0) { const F = (A) => _(p, A); a("click", p, F), p.defaultPrevented !== !0 && F(); } else a("click", p); } return { hasRouterLink: i, hasHrefLink: u, hasLink: v, linkTag: S, resolvedLink: s, linkIsActive: x, linkIsExactActive: h, linkClass: P, linkAttrs: g, getLink: O, navigateToRouterLink: _, navigateOnClick: y }; } const cl = { none: 0, xs: 4, sm: 8, md: 16, lg: 24, xl: 32 }, su = { xs: 8, sm: 10, md: 14, lg: 20, xl: 24 }, cu = ["button", "submit", "reset"], du = /[^\s]\/[^\s]/, sr = ["flat", "outline", "push", "unelevated"]; function cr(e, t) { return e.flat === !0 ? "flat" : e.outline === !0 ? "outline" : e.push === !0 ? "push" : e.unelevated === !0 ? "unelevated" : t; } const fu = { ...Cn, ...ir, type: { type: String, default: "button" }, label: [Number, String], icon: String, iconRight: String, ...sr.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: { ...lu.align, default: "center" }, stack: Boolean, stretch: Boolean, loading: { type: Boolean, default: null }, disable: Boolean }, vu = { ...fu, round: Boolean }; function mu(e) { const t = qn(e, su), n = ou(e), { hasRouterLink: l, hasLink: o, linkTag: a, linkAttrs: r, navigateOnClick: u } = ur({ fallbackTag: "button" }), c = d(() => { const h = e.fab === !1 && e.fabMini === !1 ? t.value : {}; return e.padding !== void 0 ? Object.assign({}, h, { padding: e.padding.split(/\s+/).map((P) => P in cl ? cl[P] + "px" : P).join(" "), minWidth: "0", minHeight: "0" }) : h; }), s = d( () => e.rounded === !0 || e.fab === !0 || e.fabMini === !0 ), i = d( () => e.disable !== !0 && e.loading !== !0 ), v = d(() => i.value === !0 ? e.tabindex || 0 : -1), S = d(() => cr(e, "standard")), g = d(() => { const h = { tabindex: v.value }; return o.value === !0 ? Object.assign(h, r.value) : cu.includes(e.type) === !0 && (h.type = e.type), a.value === "a" ? (e.disable === !0 ? h["aria-disabled"] = "true" : h.href === void 0 && (h.role = "button"), l.value !== !0 && du.test(e.type) === !0 && (h.type = e.type)) : e.disable === !0 && (h.disabled = "", h["aria-disabled"] = "true"), e.loading === !0 && e.percentage !== void 0 && Object.assign(h, { role: "progressbar", "aria-valuemin": 0, "aria-valuemax": 100, "aria-valuenow": e.percentage }), h; }), b = d(() => { let h; e.color !== void 0 ? e.flat === !0 || e.outline === !0 ? h = `text-${e.textColor || e.color}` : h = `bg-${e.color} text-${e.textColor || "white"}` : e.textColor && (h = `text-${e.textColor}`); const P = e.round === !0 ? "round" : `rectangle${s.value === !0 ? " q-btn--rounded" : e.square === !0 ? " q-btn--square" : ""}`; return `q-btn--${S.value} q-btn--${P}` + (h !== void 0 ? " " + h : "") + (i.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" : ""); }), x = d( () => n.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: c, innerClasses: x, attributes: g, hasLink: o, linkTag: a, navigateOnClick: u, isActionable: i }; } const { passiveCapture: xt } = Ze; let vn = null, mn = null, hn = null; const Re = Ce({ name: "QBtn", props: { ...vu, percentage: Number, darkPercentage: Boolean, onTouchstart: [Function, Array] }, emits: ["click", "keydown", "mousedown", "keyup"], setup(e, { slots: t, emit: n }) { const { proxy: l } = ke(), { classes: o, style: a, innerClasses: r, attributes: u, hasLink: c, linkTag: s, navigateOnClick: i, isActionable: v } = mu(e), S = J(null), g = J(null); let b = null, x, h = null; const P = d( () => e.label !== void 0 && e.label !== null && e.label !== "" ), O = d(() => e.disable === !0 || e.ripple === !1 ? !1 : { keyCodes: c.value === !0 ? [13, 32] : [13], ...e.ripple === !0 ? {} : e.ripple }), _ = d(() => ({ center: e.round })), y = d(() => { const M = Math.max(0, Math.min(100, e.percentage)); return M > 0 ? { transition: "transform 0.6s", transform: `translateX(${M - 100}%)` } : {}; }), p = d(() => { if (e.loading === !0) return { onMousedown: $, onTouchstart: $, onClick: $, onKeydown: $, onKeyup: $ }; if (v.value === !0) { const M = { onClick: A, onKeydown: U, onMousedown: L }; if (l.$q.platform.has.touch === !0) { const K = e.onTouchstart !== void 0 ? "" : "Passive"; M[`onTouchstart${K}`] = D; } return M; } return { // needed; especially for disabled <a> tags onClick: Fe }; }), F = d(() => ({ ref: S, class: "q-btn q-btn-item non-selectable no-outline " + o.value, style: a.value, ...u.value, ...p.value })); function A(M) { if (S.value !== null) { if (M !== void 0) { if (M.defaultPrevented === !0) return; const K = document.activeElement; if (e.type === "submit" && K !== document.body && S.value.contains(K) === !1 && K.contains(S.value) === !1) { S.value.focus(); const Q = () => { document.removeEventListener("keydown", Fe, !0), document.removeEventListener("keyup", Q, xt), S.value !== null && S.value.removeEventListener("blur", Q, xt); }; document.addEventListener("keydown", Fe, !0), document.addEventListener("keyup", Q, xt), S.value.addEventListener("blur", Q, xt); } } i(M); } } function U(M) { S.value !== null && (n("keydown", M), It(M, [13, 32]) === !0 && mn !== S.value && (mn !== null && E(), M.defaultPrevented !== !0 && (S.value.focus(), mn = S.value, S.value.classList.add("q-btn--active"), document.addEventListener("keyup", H, !0), S.value.addEventListener("blur", H, xt)), Fe(M))); } function D(M) { S.value !== null && (n("touchstart", M), M.defaultPrevented !== !0 && (vn !== S.value && (vn !== null && E(), vn = S.value, b = M.target, b.addEventListener("touchcancel", H, xt), b.addEventListener("touchend", H, xt)), x = !0, h !== null && clearTimeout(h), h = setTimeout(() => { h = null, x = !1; }, 200))); } function L(M) { S.value !== null && (M.qSkipRipple = x === !0, n("mousedown", M), M.defaultPrevented !== !0 && hn !== S.value && (hn !== null && E(), hn = S.value, S.value.classList.add("q-btn--active"), document.addEventListener("mouseup", H, xt))); } function H(M) { if (S.value !== null && !(M !== void 0 && M.type === "blur" && document.activeElement === S.value)) { if (M !== void 0 && M.type === "keyup") { if (mn === S.value && It(M, [13, 32]) === !0) { const K = new MouseEvent("click", M); K.qKeyEvent = !0, M.defaultPrevented === !0 && ct(K), M.cancelBubble === !0 && gt(K), S.value.dispatchEvent(K), Fe(M), M.qKeyEvent = !0; } n("keyup", M); } E(); } } function E(M) { const K = g.value; M !== !0 && (vn === S.value || hn === S.value) && K !== null && K !== document.activeElement && (K.setAttribute("tabindex", -1), K.focus()), vn === S.value && (b !== null && (b.removeEventListener("touchcancel", H, xt), b.removeEventListener("touchend", H, xt)), vn = b = null), hn === S.value && (document.removeEventListener("mouseup", H, xt), hn = null), mn === S.value && (document.removeEventListener("keyup", H, !0), S.value !== null && S.value.removeEventListener("blur", H, xt), mn = null), S.value !== null && S.value.classList.remove("q-btn--active"); } function $(M) { Fe(M), M.qSkipRipple = !0; } return at(() => { E(!0); }), Object.assign(l, { click: (M) => { v.value === !0 && A(M); } }), () => { let M = []; e.icon !== void 0 && M.push( f(yt, { name: e.icon, left: e.stack !== !0 && P.value === !0, role: "img" }) ), P.value === !0 && M.push( f("span", { class: "block" }, [e.label]) ), M = Vt(t.default, M), e.iconRight !== void 0 && e.round === !1 && M.push( f(yt, { name: e.iconRight, right: e.stack !== !0 && P.value === !0, role: "img" }) ); const K = [ f("span", { class: "q-focus-helper", ref: g }) ]; return e.loading === !0 && e.percentage !== void 0 && K.push( f("span", { class: "q-btn__progress absolute-full overflow-hidden" + (e.darkPercentage === !0 ? " q-btn__progress--dark" : "") }, [ f("span", { class: "q-btn__progress-indicator fit block", style: y.value }) ]) ), K.push( f("span", { class: "q-btn__content text-center col items-center q-anchor--skip " + r.value }, M) ), e.loading !== null && K.push( f(Mt, { name: "q-transition--fade" }, () => e.loading === !0 ? [ f("span", { key: "loading", class: "absolute-full flex flex-center" }, t.loading !== void 0 ? t.loading() : [f(nr)]) ] : null) ), At( f( s.value, F.value, K ), [[ ar, O.value, void 0, _.value ]] ); }; } }), yn = Ce({ name: "QCardSection", props: { tag: { type: String, default: "div" }, horizontal: Boolean }, setup(e, { slots: t }) { const n = d( () => `q-card__section q-card__section--${e.horizontal === !0 ? "horiz row no-wrap" : "vert"}` ); return () => f(e.tag, { class: n.value }, We(t.default)); } }), rt = { dark: { type: Boolean, default: null } }; function it(e, t) { return d(() => e.dark === null ? t.dark.isActive : e.dark); } const hu = { true: "inset", item: "item-inset", "item-thumbnail": "item-thumbnail-inset" }, Vl = { xs: 2, sm: 4, md: 8, lg: 16, xl: 24 }, So = Ce({ name: "QSeparator", props: { ...rt, spaced: [Boolean, String], inset: [Boolean, String], vertical: Boolean, color: String, size: String }, setup(e) { const t = ke(), n = it(e, t.proxy.$q), l = d(() => e.vertical === !0 ? "vertical" : "horizontal"), o = d(() => ` q-separator--${l.value}`), a = d(() => e.inset !== !1 ? `${o.value}-${hu[e.inset]}` : ""), r = d( () => `q-separator${o.value}${a.value}` + (e.color !== void 0 ? ` bg-${e.color}` : "") + (n.value === !0 ? " q-separator--dark" : "") ), u = d(() => { const c = {}; if (e.size !== void 0 && (c[e.vertical === !0 ? "width" : "height"] = e.size), e.spaced !== !1) { const s = e.spaced === !0 ? `${Vl.md}px` : e.spaced in Vl ? `${Vl[e.spaced]}px` : e.spaced, i = e.vertical === !0 ? ["Left", "Right"] : ["Top", "Bottom"]; c[`margin${i[0]}`] = c[`margin${i[1]}`] = s; } return c; }); return () => f("hr", { class: r.value, style: u.value, "aria-orientation": l.value }); } }), In = J( !1 ); let to; function gu(e, t) { const n = /(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: n[5] || n[3] || n[1] || "", version: n[4] || n[2] || "0", platform: t[0] || "" }; } function bu(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 dr = "ontouchstart" in window || window.navigator.maxTouchPoints > 0; function yu(e) { const t = e.toLowerCase(), n = bu(t), l = gu(t, n), o = {}; l.browser && (o[l.browser] = !0, o.version = l.version, o.versionNumber = parseInt(l.version, 10)), l.platform && (o[l.platform] = !0); const a = o.android || o.ios || o.bb || o.blackberry || o.ipad || o.iphone || o.ipod || o.kindle || o.playbook || o.silk || o["windows phone"]; if (a === !0 || t.indexOf("mobile") !== -1 ? o.mobile = !0 : o.desktop = !0, o["windows phone"] && (o.winphone = !0, delete o["windows phone"]), o.edga || o.edgios || o.edg ? (o.edge = !0, l.browser = "edge") : o.crios ? (o.chrome = !0, l.browser = "chrome") : o.fxios && (o.firefox = !0, l.browser = "firefox"), (o.ipod || o.ipad || o.iphone) && (o.ios = !0), o.vivaldi && (l.browser = "vivaldi", o.vivaldi = !0), // Chrome, Opera 15+, Vivaldi and Safari are webkit based browsers (o.chrome || o.opr || o.safari || o.vivaldi || o.mobile === !0 && o.ios !== !0 && a !== !0) && (o.webkit = !0), o.opr && (l.browser = "opera", o.opera = !0), o.safari && (o.blackberry || o.bb ? (l.browser = "blackberry", o.blackberry = !0) : o.playbook ? (l.browser = "playbook", o.playbook = !0) : o.android ? (l.browser = "android", o.android = !0) : o.kindle ? (l.browser = "kindle", o.kindle = !0) : o.silk && (l.browser = "silk", o.silk = !0)), o.name = l.browser, o.platform = l.platform, t.indexOf("electron") !== -1) o.electron = !0; else if (document.location.href.indexOf("-extension://") !== -1) o.bex = !0; else { if (window.Capacitor !== void 0 ? (o.capacitor = !0, o.nativeMobile = !0, o.nativeMobileWrapper = "capacitor") : (window._cordovaNative !== void 0 || window.cordova !== void 0) && (o.cordova = !0, o.nativeMobile = !0, o.nativeMobileWrapper = "cordova"), In.value === !0 && (to = { is: { ...o } }), dr === !0 && o.mac === !0 && (o.desktop === !0 && o.safari === !0 || o.nativeMobile === !0 && o.android !== !0 && o.ios !== !0 && o.ipad !== !0)) { delete o.mac, delete o.desktop; const r = Math.min(window.innerHeight, window.innerWidth) > 414 ? "ipad" : "iphone"; Object.assign(o, { mobile: !0, ios: !0, platform: r, [r]: !0 }); } o.mobile !== !0 && window.navigator.userAgentData && window.navigator.userAgentData.mobile && (delete o.desktop, o.mobile = !0); } return o; } const Yo = navigator.userAgent || navigator.vendor || window.opera, pu = { has: { touch: !1, webStorage: !1 }, within: { iframe: !1 } }, tt = { userAgent: Yo, is: yu(Yo), has: { touch: dr }, within: { iframe: window.self !== window.top } }, no = { install(e) { const { $q: t } = e; In.value === !0 ? (e.onSSRHydrated.push(() => { Object.assign(t.platform, tt), In.value = !1; }), t.platform = xn(this)) : t.platform = this; } }; { let e; _t(tt.has, "webStorage", () => { if (e !== void 0) return e; try { if (window.localStorage) return e = !0, !0; } catch { } return e = !1, !1; }), Object.assign(no, tt), In.value === !0 && (Object.assign(no, to, pu), to = null); } function wu(e, t, n) { function l() { } return at(() => { e.value === !0 && void 0; }), { removeFromHistory: l, addToHistory() { } }; } function fr() { let e = null; const t = ke(); function n() { e !== null && (clearTimeout(e), e = null); } return _n(n), at(n), { removeTimeout: n, registerTimeout(l, o) { n(), Sl(t) === !1 && (e = setTimeout(() => { e = null, l(); }, o)); } }; } function vr() { let e; const t = ke(); function n() { e = void 0; } return _n(n), at(n), { removeTick: n, registerTick(l) { e = l, Le(() => { e === l && (Sl(t) === !1 && e(), e = void 0); }); } }; } const mr = { modelValue: { type: Boolean, default: null }, "onUpdate:modelValue": [Function, Array] }, hr = [ "beforeShow", "show", "beforeHide", "hide" ]; function gr({ showing: e, canShow: t, // optional hideOnRouteChange: n, // optional handleShow: l, // optional handleHide: o, // optional processOnMount: a // optional }) { const r = ke(), { props: u, emit: c, proxy: s } = r; let i; function v(O) { e.value === !0 ? b(O) : S(O); } function S(O) { if (u.disable === !0 || O !== void 0 && O.qAnchorHandled === !0 || t !== void 0 && t(O) !== !0) return; const _ = u["onUpdate:modelValue"] !== void 0; _ === !0 && (c("update:modelValue", !0), i = O, Le(() => { i === O && (i = void 0); })), (u.modelValue === null || _ === !1) && g(O); } function g(O) { e.value !== !0 && (e.value = !0, c("beforeShow", O), l !== void 0 ? l(O) : c("show", O)); } function b(O) { if (u.disable === !0) return; const _ = u["onUpdate:modelValue"] !== void 0; _ === !0 && (c("update:modelValue", !1), i = O, Le(() => { i === O && (i = void 0); })), (u.modelValue === null || _ === !1) && x(O); } function x(O) { e.value !== !1 && (e.value = !1, c("beforeHide", O), o !== void 0 ? o(O) : c("hide", O)); } function h(O) { u.disable === !0 && O === !0 ? u["onUpdate:modelValue"] !== void 0 && c("update:modelValue", !1) : O === !0 !== e.value && (O === !0 ? g : x)(i); } se(() => u.modelValue, h), n !== void 0 && wo(r) === !0 && se(() => s.$route.fullPath, () => { n.value === !0 && e.value === !0 && b(); }), a === !0 && jt(() => { h(u.modelValue); }); const P = { show: S, hide: b, toggle: v }; return Object.assign(s, P), P; } const br = { transitionShow: { type: String, default: "fade" }, transitionHide: { type: String, default: "fade" }, transitionDuration: { type: [String, Number], default: 300 } }; function yr(e, t = () => { }, n = () => { }) { return { transitionProps: d(() => { const l = `q-transition--${e.transitionShow || t()}`, o = `q-transition--${e.transitionHide || n()}`; return { appear: !0, enterFromClass: `${l}-enter-from`, enterActiveClass: `${l}-enter-active`, enterToClass: `${l}-enter-to`, leaveFromClass: `${o}-leave-from`, leaveActiveClass: `${o}-leave-active`, leaveToClass: `${o}-leave-to` }; }), transitionStyle: d(() => `--q-transition-duration: ${e.transitionDuration}ms`) }; } let ln = [], jn = []; function pr(e) { jn = jn.filter((t) => t !== e); } function Su(e) { pr(e), jn.push(e); } function Ko(e) { pr(e), jn.length === 0 && ln.length !== 0 && (ln[ln.length - 1](), ln = []); } function Kn(e) { jn.length === 0 ? e() : ln.push(e); } function ku(e) { ln = ln.filter((t) => t !== e); } const Wo = {}; let xu = 1, _u = document.body; function Cu(e, t) { const n = document.createElement("div"); if (n.id = t !== void 0 ? `q-portal--${t}--${xu++}` : e, Wo.globalNodes !== void 0) { const l = Wo.globalNodes.class; l !== void 0 && (n.className = l); } return _u.appendChild(n), n; } function qu(e) { e.remove(); } const pn = []; function Eu(e) { return pn.find( (t) => t.contentEl !== null && t.contentEl.contains(e) ); } function wr(e, t) { do { if (e.$options.name === "QMenu") { if (e.hide(t), e.$props.separateClosePopup === !0) return rl(e); } else if (e.__qPortal === !0) { const n = rl(e); return n !== void 0 && n.$options.name === "QPopupProxy" ? (e.hide(t), n) : e; } e = rl(e); } while (e != null); } function Mu(e, t, n) { for (; n !== 0 && e !== void 0 && e !== null; ) { if (e.__qPortal === !0) { if (n--, e.$options.name === "QMenu") { e = wr(e, t); continue; } e.hide(t); } e = rl(e); } } const Pu = Ce({ name: "QPortal", setup(e, { slots: t }) { return () => t.default(); } }); function Ru(e) { for (e = e.parent; e != null; ) { if (e.type.name === "QGlobalDialog") return !0; if (e.type.name === "QDialog" || e.type.name === "QMenu") return !1; e = e.parent; } return !1; } function Sr(e, t, n, l) { const o = J(!1), a = J(!1); let r = null; const u = {}, c = l === "dialog" && Ru(e); function s(v) { if (v === !0) { Ko(u), a.value = !0; return; } a.value = !1, o.value === !1 && (c === !1 && r === null && (r = Cu(!1, l)), o.value = !0, pn.push(e.proxy), Su(u)); } function i(v) { if (a.value = !1, v !== !0) return; Ko(u), o.value = !1; const S = pn.indexOf(e.proxy); S !== -1 && pn.splice(S, 1), r !== null && (qu(r), r = null); } return Ti(() => { i(!0); }), e.proxy.__qPortal = !0, _t(e.proxy, "contentEl", () => t.value), { showPortal: s, hidePortal: i, portalIsActive: o, portalIsAccessible: a, renderPortal: () => c === !0 ? n() : o.value === !0 ? [f(Vi, { to: r }, f(Pu, n))] : void 0 }; } const kr = [Element, String], Ou = [null, document, document.body, document.scrollingElement, document.documentElement]; function xr(e, t) { let n = Zi(t); if (n === void 0) { if (e == null) return window; n = e.closest(".scroll,.scroll-y,.overflow-auto"); } return Ou.includes(n) ? window : n; } function Bu(e) { return e === window ? window.pageYOffset || window.scrollY || document.body.scrollTop || 0 : e.scrollTop; } function Tu(e) { return e === window ? window.pageXOffset || window.scrollX || document.body.scrollLeft || 0 : e.scrollLeft; } let Xn; function Vu() { if (Xn !== void 0) return Xn; const e = document.createElement("p"), t = document.createElement("div"); eo(e, { width: "100%", height: "200px" }), eo(t, { position: "absolute", top: "0px", left: "0px", visibility: "hidden", width: "200px", height: "150px", overflow: "hidden" }), t.appendChild(e), document.body.appendChild(t); const n = e.offsetWidth; t.style.overflow = "scroll"; let l = e.offsetWidth; return n === l && (l = t.clientWidth), t.remove(), Xn = n - l, Xn; } function Au(e, t = !0) { return !e || e.nodeType !== Node.ELEMENT_NODE ? !1 : t ? e.scrollHeight > e.clientHeight && (e.classList.contains("scroll") || e.classList.contains("overflow-auto") || ["auto", "scroll"].includes(window.getComputedStyle(e)["overflow-y"])) : e.scrollWidth > e.clientWidth && (e.classList.contains("scroll") || e.classList.contains("overflow-auto") || ["auto", "scroll"].includes(window.getComputedStyle(e)["overflow-x"])); } let On = 0, Al, Dl, An, Ll = !1, Qo, Xo, Jo, Gt = null; function Du(e) { Lu(e) && Fe(e); } function Lu(e) { if (e.target === document.body || e.target.classList.contains("q-layout__backdrop")) return !0; const t = eu(e), n = e.shiftKey && !e.deltaX, l = !n && Math.abs(e.deltaX) <= Math.abs(e.deltaY), o = n || l ? e.deltaY : e.deltaX; for (let a = 0; a < t.length; a++) { const r = t[a]; if (Au(r, l)) return l ? o < 0 && r.scrollTop === 0 ? !0 : o > 0 && r.scrollTop + r.clientHeight === r.scrollHeight : o < 0 && r.scrollLeft === 0 ? !0 : o > 0 && r.scrollLeft + r.clientWidth === r.scrollWidth; } return !0; } function Zo(e) { e.target === document && (document.scrollingElement.scrollTop = document.scrollingElement.scrollTop); } function Jn(e) { Ll !== !0 && (Ll = !0, requestAnimationFrame(() => { Ll = !1; const { height: t } = e.target, { clientHeight: n, scrollTop: l } = document.scrollingElement; (An === void 0 || t !== window.innerHeight) && (An = n - t, document.scrollingElement.scrollTop = l), l > An && (document.scrollingElement.scrollTop -= Math.ceil((l - An) / 8)); })); } function Go(e) { const t = document.body, n = window.visualViewport !== void 0; if (e === "add") { const { overflowY: l, overflowX: o } = window.getComputedStyle(t); Al = Tu(window), Dl = Bu(window), Qo = t.style.left, Xo = t.style.top, Jo = window.location.href, t.style.left = `-${Al}px`, t.style.top = `-${Dl}px`, o !== "hidden" && (o === "scroll" || t.scrollWidth > window.innerWidth) && t.classList.add("q-body--force-scrollbar-x"), l !== "hidden" && (l === "scroll" || t.scrollHeight > window.innerHeight) && t.classList.add("q-body--force-scrollbar-y"), t.classList.add("q-body--prevent-scroll"), document.qScrollPrevented = !0, tt.is.ios === !0 && (n === !0 ? (window.scrollTo(0, 0), window.visualViewport.addEventListener("resize", Jn, Ze.passiveCapture), window.visualViewport.addEventListener("scroll", Jn, Ze.passiveCapture), window.scrollTo(0, 0)) : window.addEventListener("scroll", Zo, Ze.passiveCapture)); } tt.is.desktop === !0 && tt.is.mac === !0 && window[`${e}EventListener`]("wheel", Du, Ze.notPassive), e === "remove" && (tt.is.ios === !0 && (n === !0 ? (window.visualViewport.removeEventListener("resize", Jn, Ze.passiveCapture), window.visualViewport.removeEventListener("scroll", Jn, Ze.passiveCapture)) : window.removeEventListener("scroll", Zo, Ze.passiveCapture)), t.classList.remove("q-body--prevent-scroll"), t.classList.remove("q-body--force-scrollbar-x"), t.classList.remove("q-body--force-scrollbar-y"), document.qScrollPrevented = !1, t.style.left = Qo, t.style.top = Xo, window.location.href === Jo && window.scrollTo(Al, Dl), An = void 0); } function Fu(e) { let t = "add"; if (e === !0) { if (On++, Gt !== null) { clearTimeout(Gt), Gt = null; return; } if (On > 1) return; } else { if (On === 0 || (On--, On > 0)) return; if (t = "remove", tt.is.ios === !0 && tt.is.nativeMobile === !0) { Gt !== null && clearTimeout(Gt), Gt = setTimeout(() => { Go(t), Gt = null; }, 100); return; } } Go(t); } func