1import { o as x, c as L, a as f, k as Ge, L as dn, b as I, G as W, R as cn, u as S, C as R, J as Ke, i as G, f as F, e as M, I as ne, d as We, t as P, w as we, g as V, j as ka, B as Tt, H as fn, E as tt, F as ye, q as Lt, r as Me, O as pn, h as vn, m as mn, A as Oa, a0 as He, a9 as $t, s as $a, U as gt, Y as ht, W as gn, T as Ea, D as hn, M as yn, aa as ce, a8 as yt, ab as bn, z as ie, K as et, S as ca, a7 as Je, ac as wn, a4 as xn, l as Sn, x as vt, N as kn } from "./app-yg_pP4S4.js"; 2import { _ as On } from "./ApplicationLogo-D4QkytOJ.js"; 3import { _ as Ca } from "./_plugin-vue_export-helper-DlAUqK2U.js"; 4import { Y as $n, h as fa, _ as En, V as Cn, r as _n, b as Tn, c as pa, L as Ln } from "./XMarkIcon-C7ztHuKP.js"; 5import { _ as It } from "./UserAvatar-B3-R1wxh.js"; 6import { a as Be, g as H, v as Dn, u as qt, w as Te, i as An, e as In, m as qn, b as Pn, h as Bn } from "./functions-DLrKIvnr.js"; 7import { G as _a, $ as Mn, j as Ta, y as La } from "./popover-DTQdCRwt.js"; 8import { b as Da, u as Vn, o as jn, d as Rn, c as Nn, a as va } from "./consts-7Qk9bpse.js"; 9import { _ as Et } from "./BaseInput-DrEncIoW.js"; 10import { u as zn, L as Aa } from "./LoaderIcon-BfI_LFZK.js"; 11import { r as Un, _ as Hn } from "./ModalConfirmation-BptK8hn4.js"; 12import { E as Ia, F as Wn } from "./index-CDyB1Hog.js"; 13import { u as Fn, r as Yn } from "./index-BF2h0ubX.js"; 14import { r as Gn } from "./form-BcDj1t5Y.js"; 15import { r as Kn } from "./CheckIcon-Bb6ppPFl.js"; 16import { u as Zn } from "./modelWrapper-D0DowOi8.js"; 17function Qn(e, a) { 18 return x(), L("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "currentColor", "aria-hidden": "true", "data-slot": "icon" }, [f("path", { "fill-rule": "evenodd", d: "M11.47 4.72a.75.75 0 0 1 1.06 0l3.75 3.75a.75.75 0 0 1-1.06 1.06L12 6.31 8.78 9.53a.75.75 0 0 1-1.06-1.06l3.75-3.75Zm-3.75 9.75a.75.75 0 0 1 1.06 0L12 17.69l3.22-3.22a.75.75 0 1 1 1.06 1.06l-3.75 3.75a.75.75 0 0 1-1.06 0l-3.75-3.75a.75.75 0 0 1 0-1.06Z", "clip-rule": "evenodd" })]); 19} 20function Xn(e, a) { 21 return x(), L("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "currentColor", "aria-hidden": "true", "data-slot": "icon" }, [f("path", { "fill-rule": "evenodd", d: "M6.75 5.25a.75.75 0 0 1 .75-.75H9a.75.75 0 0 1 .75.75v13.5a.75.75 0 0 1-.75.75H7.5a.75.75 0 0 1-.75-.75V5.25Zm7.5 0A.75.75 0 0 1 15 4.5h1.5a.75.75 0 0 1 .75.75v13.5a.75.75 0 0 1-.75.75H15a.75.75 0 0 1-.75-.75V5.25Z", "clip-rule": "evenodd" })]); 22} 23function Jn(e, a) { 24 return x(), L("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "currentColor", "aria-hidden": "true", "data-slot": "icon" }, [f("path", { "fill-rule": "evenodd", d: "M4.5 5.653c0-1.427 1.529-2.33 2.779-1.643l11.54 6.347c1.295.712 1.295 2.573 0 3.286L7.28 19.99c-1.25.687-2.779-.217-2.779-1.643V5.653Z", "clip-rule": "evenodd" })]); 25} 26function er(e, a) { 27 return x(), L("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "currentColor", "aria-hidden": "true", "data-slot": "icon" }, [f("path", { "fill-rule": "evenodd", d: "M18.685 19.097A9.723 9.723 0 0 0 21.75 12c0-5.385-4.365-9.75-9.75-9.75S2.25 6.615 2.25 12a9.723 9.723 0 0 0 3.065 7.097A9.716 9.716 0 0 0 12 21.75a9.716 9.716 0 0 0 6.685-2.653Zm-12.54-1.285A7.486 7.486 0 0 1 12 15a7.486 7.486 0 0 1 5.855 2.812A8.224 8.224 0 0 1 12 20.25a8.224 8.224 0 0 1-5.855-2.438ZM15.75 9a3.75 3.75 0 1 1-7.5 0 3.75 3.75 0 0 1 7.5 0Z", "clip-rule": "evenodd" })]); 28} 29function qa(e, a) { 30 return x(), L("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "currentColor", "aria-hidden": "true", "data-slot": "icon" }, [f("path", { d: "M5.25 6.375a4.125 4.125 0 1 1 8.25 0 4.125 4.125 0 0 1-8.25 0ZM2.25 19.125a7.125 7.125 0 0 1 14.25 0v.003l-.001.119a.75.75 0 0 1-.363.63 13.067 13.067 0 0 1-6.761 1.873c-2.472 0-4.786-.684-6.76-1.873a.75.75 0 0 1-.364-.63l-.001-.122ZM18.75 7.5a.75.75 0 0 0-1.5 0v2.25H15a.75.75 0 0 0 0 1.5h2.25v2.25a.75.75 0 0 0 1.5 0v-2.25H21a.75.75 0 0 0 0-1.5h-2.25V7.5Z" })]); 31} 32const tr = ["innerHTML"], _o = { __name: "ScriptRenderer", props: { snippet: { type: String, required: false } }, setup(e) { 33 const a = e, t = W(null); 34 let s = [], n = null, c = false;
35 Ge(() => { 36 if (!a.snippet) return; 37 const u = () => { 38 n = null, r(); 39 }; 40 typeof window.requestIdleCallback == "function" ? (n = window.requestIdleCallback(u, { timeout: 2e3 }), c = true) : n = window.setTimeout(u, 0); 41 }), dn(() => { 42 n !== null && (c ? window.cancelIdleCallback(n) : window.clearTimeout(n)), o(); 43 }); 44 const r = () => { 45 const u = t.value.getElementsByTagName("script"); 46 for (let d = 0; d < u.length; d++) { 47 const i = document.createElement("script"), y = u[d]; 48 y.src ? i.src = y.src : i.innerHTML = y.innerHTML, i.async = y.async, i.defer = y.defer, document.head.appendChild(i), s.push(i); 49 } 50 }, o = () => { 51 for (let u = 0; u < s.length; u++) { 52 const d = s[u]; 53 document.head.removeChild(d); 54 } 55 s = []; 56 }; 57 return (u, d) => e.snippet ? (x(), L("div", { key: 0, ref_key: "scriptContainer", ref: t, innerHTML: e.snippet }, null, 8, tr)) : I("", true); 58} }, Pa = cn("notification", { state: () => ({ count: 0, isAnimating: false, soundEnabled: false, notifications: [], summary: { count: 0 } }), getters: { hasNotifications: (e) => e.count > 0, requestUnreadCounts: (e) => { 59 const a = {}; 60 return e.notifications.forEach((t) => { 61 t.service_request_id && !t.read && !t.read_at && (a[t.service_request_id] = (a[t.service_request_id] || 0) + 1); 62 }), a; 63}, getRequestUnreadCount: (e) => (a) => e.notifications.filter((t) => t.service_request_id === a && !t.read && !t.read_at).length }, actions: { setNotificationCount(e) { 64 this.count = e, this.summary.count = e; 65}, updateNotificationSummary(e) { 66 this.summary = { ...e }, this.count = e.count || 0, e.notifications && (this.notifications = [...e.notifications]); 67}, triggerPulseAnimation() { 68 this.isAnimating || (this.isAnimating = true, this.soundEnabled && this.playNotificationSound(), setTimeout(() => { 69 this.isAnimating = false; 70 }, 2e3)); 71}, playNotificationSound() { 72 try { 73 const e = new Audio("/sounds/notification-sound.mp3"); 74 e.volume = 0.5, e.play().catch((a) => { 75 console.warn("Could not play notification sound:", a); 76 }); 77 } catch (e) { 78 console.warn("Error creating audio element:", e); 79 } 80}, toggleSound() { 81 this.soundEnabled = !this.soundEnabled, localStorage.setItem("notification-sound-enabled", JSON.stringify(this.soundEnabled)); 82}, loadSoundPreference() { 83 const e = localStorage.getItem("notification-sound-enabled"); 84 e !== null && (this.soundEnabled = JSON.parse(e)); 85}, incrementCount() { 86 this.count++, this.summary.count = this.count, this.triggerPulseAnimation(); 87}, decrementCount() { 88 this.count > 0 && (this.count--, this.summary.count = this.count); 89}, clearNotifications() { 90 this.count = 0, this.summary.count = 0, this.notifications = []; 91}, addNotification(e) { 92 this.isDuplicateNotification(e) || (this.notifications.unshift(e), this.incrementCount()); 93}, isDuplicateNotification(e) { 94 return this.notifications.some((a) => a.id === e.id); 95}, removeNotification(e) { 96 const a = this.notifications.findIndex((t) => t.id === e); 97 a !== -1 && (this.notifications.splice(a, 1), this.decrementCount()); 98}, markNotificationAsRead(e) { 99 const a = this.notifications.find((t) => t.id === e); 100 a && !a.read_at && (a.read_at = (/* @__PURE__ */ new Date()).toISOString(), this.decrementCount()); 101}, markAllAsRead() { 102 this.notifications.forEach((e) => { 103 e.read_at || (e.read_at = (/* @__PURE__ */ new Date()).toISOString()); 104 }), this.clearNotifications(); 105}, getUnreadNotifications() { 106 return this.notifications.filter((e) => !e.read_at); 107}, getRecentNotifications(e = 10) { 108 return this.notifications.slice(0, e); 109} } }), ar = { __name: "NotificationDot", setup(e) { 110 const a = Pa(); 111 return (t, s) => S(a).hasNotifications ? (x(), L("div", { key: 0, class: R(["notification-dot absolute left-1.5 top-1.5 h-1 w-1 rounded-full bg-red-600", { "animate-pulse-ring": S(a).isAnimating }]) }, null, 2)) : I("", true); 112} }, Ba = Ca(ar, [["__scopeId", "data-v-d8ef1d16"]]); 113function To(e, a) { 114 return x(), L("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", "stroke-width": "1.5", stroke: "currentColor", "aria-hidden": "true", "data-slot": "icon" }, [f("path", { "stroke-linecap": "round", "stroke-linejoin": "round", d: "M10.5 19.5 3 12m0 0 7.5-7.5M3 12h18" })]); 115} 116function nr(e, a) { 117 return x(), L("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", "stroke-width": "1.5", stroke: "currentColor", "aria-hidden": "true", "data-slot": "icon" }, [f("path", { "stroke-linecap": "round", "stroke-linejoin": "round", d: "M21.75 9v.906a2.25 2.25 0 0 1-1.183 1.981l-6.478 3.488M2.25 9v.906a2.25 2.25 0 0 0 1.183 1.981l6.478 3.488m8.839 2.51-4.66-2.51m0 0-1.023-.55a2.25 2.25 0 0 0-2.134 0l-1.022.55m0 0-4.661 2.51m16.5 1.615a2.25 2.25 0 0 1-2.25 2.25h-15a2.25 2.25 0 0 1-2.25-2.25V8.844a2.25 2.25 0 0 1 1.183-1.981l7.5-4.039a2.25 2.25 0 0 1 2.134 0l7.5 4.039a2.25 2.25 0 0 1 1.183 1.98V19.5Z" })]); 118} 119function rr(e, a) { 120 return x(), L("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", "stroke-width": "1.5", stroke: "currentColor", "aria-hidden": "true", "data-slot": "icon" }, [f("path", { "stroke-linecap": "round", "stroke-linejoin": "round", d: "M21.75 6.75v10.5a2.25 2.25 0 0 1-2.25 2.25h-15a2.25 2.25 0 0 1-2.25-2.25V6.75m19.5 0A2.25 2.25 0 0 0 19.5 4.5h-15a2.25 2.25 0 0 0-2.25 2.25m19.5 0v.243a2.25 2.25 0 0 1-1.07 1.916l-7.5 4.615a2.25 2.25 0 0 1-2.36 0L3.32 8.91a2.25 2.25 0 0 1-1.07-1.916V6.75" })]); 121} 122const sr = { class: "flex min-h-screen items-end justify-center px-4 pb-20 pt-4 text-center max-sm:min-h-dvh max-sm:px-0 max-sm:pb-0 sm:block sm:p-0" }, lr = { class: "flex items-center justify-between border-b border-gray-200 px-4 py-6 max-sm:py-3" }, ir = { class: "sr-only" }, or = { class: "p-6 max-sm:overflow-y-auto max-sm:px-4 max-sm:pb-[max(1.5rem,env(safe-area-inset-bottom))] max-sm:pt-4" }, ur = { class: "sm:flex sm:items-start" }, dr = { class: "w-full text-left sm:mt-0" }, cr = { class: "text-base font-semibold text-gray-900" }, fr = { key: 0, class: "prose prose-sm" }
122, pr = { __name: "AnnouncementModal", props: { open: { type: Boolean, default: () => false }, color: { type: String, default: "primary" }, size: { type: String, default: () => "sm" }, announcement: { type: Object } }, emits: ["closed"], setup(e, { emit: a }) { 123 const t = e, s = a, n = V(() => ({ sm: "sm:max-w-sm", md: "sm:max-w-md", lg: "sm:max-w-lg", xl: "sm:max-w-xl", "2xl": "sm:max-w-2xl", "3xl": "sm:max-w-3xl", "4xl": "sm:max-w-4xl" })[t.size] ?? "sm:max-w-sm"); 124 return (c, r) => { 125 const o = Ke("dompurify-html"); 126 return x(), G(S(Tn), { as: "template", show: e.open }, { default: F(() => [M(S($n), { as: "div", class: "fixed inset-0 z-[99] overflow-y-auto", onClose: r[1] || (r[1] = (u) => s("closed")) }, { default: F(() => [f("div", sr, [M(S(fa), { as: "template", enter: "ease-out duration-300", "enter-from": "opacity-0", "enter-to": "opacity-100", leave: "ease-in duration-200", "leave-from": "opacity-100", "leave-to": "opacity-0" }, { default: F(() => [M(S(En), { class: "fixed inset-0 bg-gray-500 bg-opacity-75 transition-opacity" })]), _: 1 }), r[2] || (r[2] = f("span", { class: "hidden sm:inline-block sm:h-screen sm:align-middle", "aria-hidden": "true" }, " \u200B ", -1)), M(S(fa), { as: "template", enter: "ease-out duration-300", "enter-from": "opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95", "enter-to": "opacity-100 translate-y-0 sm:scale-100", leave: "ease-in duration-200", "leave-from": "opacity-100 translate-y-0 sm:scale-100", "leave-to": "opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95" }, { default: F(() => { 127 var _a2, _b, _c; 128 return [f("div", { class: R(["relative inline-block transform overflow-visible rounded-lg bg-white align-bottom shadow-xl transition-all max-sm:flex max-sm:max-h-[85dvh] max-sm:w-full max-sm:flex-col max-sm:rounded-b-none max-sm:rounded-t-2xl sm:w-full sm:align-middle", n.value]) }, [f("div", lr, [M(S(Cn), { as: "h3", class: "text-lg font-bold leading-6 text-gray-900" }, { default: F(() => [ne(c.$slots, "title", {}, () => [We(P(c.$t("Announcement")), 1)])]), _: 3 }), f("button", { type: "button", class: "rounded-md bg-white text-gray-400 hover:text-gray-500 focus:outline-none focus:ring-2 focus:ring-primary-500 focus:ring-offset-2 max-sm:-mr-2.5 max-sm:p-2.5", onClick: r[0] || (r[0] = (u) => s("closed")) }, [f("span", ir, P(c.$t("Close")), 1), M(S(_n), { class: "h-6 w-6", "aria-hidden": "true" })])]), f("div", or, [f("div", ur, [f("div", dr, [f("p", cr, P((_a2 = e.announcement) == null ? void 0 : _a2.title), 1), ((_b = e.announcement) == null ? void 0 : _b.content) ? we((x(), L("p", fr, null, 512)), [[o, (_c = e.announcement) == null ? void 0 : _c.content]]) : I("", true)])])])], 2)]; 129 }), _: 3 })])]), _: 3 })]), _: 3 }, 8, ["show"]); 130 }; 131} }, vr = { class: "flex-shrink-0" }, mr = ["title"], gr = { class: "text-base font-medium leading-6 text-gray-900" }, hr = { class: "truncate text-sm leading-5 text-gray-500 max-lg:line-clamp-2 max-lg:whitespace-normal" }, yr = { class: "text-sm leading-5 text-gray-500" }, br = { key: 0, class: "absolute right-3 top-3 opacity-0 transition-opacity duration-200 group-hover:opacity-100 [@media(hover:none)]:opacity-100" }, wr = ["aria-label", "disabled"], xr = { __name: "NotificationItemFull", props: { notification: { type: Object, required: true }, isIndex: { type: Boolean, default: false } }, setup(e) { 132 const a = e, { t } = ka(), s = V(() => a.notification.read ? t("Mark as unread") : t("Mark as read")), n = W(false), c = W(false), r = () => { 133 n.value = true; 134 }, o = () => { 135 n.value = false; 136 }, u = (y) => y.type === "new announcement", d = (y) => { 137 c.value || (c.value = true, Lt.visit(route("notifications.toggle-read-status", y.id), { method: "patch", preserveScroll: true, onFinish: () => { 138 c.value = false; 139 } })); 140 }, i = (y, w) => { 141 u(w) && (y.preventDefault(), r()); 142 }; 143 return (y, w) => { 144 const b = Ke("tooltip"); 145 return x(), L(ye, null, [(x(), G(fn(u(e.notification) ? "button" : S(tt)), { href: u(e.notification) ? null : y.route("notifications.show", e.notification.id), class: R(["group relative flex w-full cursor-pointer items-start space-x-4 border-gray-200 p-3 text-left normal-case transition duration-150 ease-in-out", e.isIndex ? e.notification.read ? "bg-white hover:bg-gray-50" : "bg-yellow-50 hover:bg-yellow-100" : "bg-white hover:bg-gray-50"]), onClick: w[1] || (w[1] = (_) => i(_, e.notification)) }, { default: F(() => [f("div", vr, [M(It, { user: e.notification.sender, size: "2xl" }, null, 8, ["user"])]), f("div", { class: R(["max-w-full space-y-1 truncate max-lg:whitespace-normal", { "[@media(hover:none)]:pr-8": e.isIndex }]), title: e.notification.description }, [f("p", gr, P(e.notification.title), 1), f("p", hr, P(e.notification.description), 1), f("p", yr, P(S(Be)(e.notification.created_at)), 1)], 10, mr), e.
145isIndex ? (x(), L("div", br, [we((x(), L("button", { "aria-label": s.value, disabled: c.value, class: "rounded-full p-1 text-gray-400 transition-colors duration-200 hover:bg-gray-100 hover:text-gray-600 disabled:opacity-50 [@media(hover:none)]:relative [@media(hover:none)]:after:absolute [@media(hover:none)]:after:-inset-2", onClick: w[0] || (w[0] = Tt((_) => d(e.notification), ["stop", "prevent"])) }, [e.notification.read ? (x(), G(S(rr), { key: 0, class: "h-5 w-5" })) : (x(), G(S(nr), { key: 1, class: "h-5 w-5" }))], 8, wr)), [[b, s.value]])])) : I("", true)]), _: 1 }, 8, ["href", "class"])), e.notification.type === "new announcement" ? (x(), G(pr, { key: 0, open: n.value, announcement: e.notification.announcement, onClosed: o }, null, 8, ["open", "announcement"])) : I("", true)], 64); 146 }; 147} }, Sr = { class: "relative z-20 max-h-96 w-96 divide-y overflow-y-auto overflow-x-hidden bg-white" }, kr = { key: 0, class: "flex w-full justify-center py-7" }, Or = { class: "text-sm leading-5 text-gray-500" }, $r = { class: "flow-root" }, Er = { class: "-m-3 flex items-center space-x-3 rounded-md p-3 text-base font-medium leading-6 text-gray-900" }, Cr = { __name: "NotificationList", props: { notifications: { type: Array, required: true } }, setup(e) { 148 return (a, t) => (x(), L(ye, null, [f("div", Sr, [(x(true), L(ye, null, Me(e.notifications, (s) => (x(), G(xr, { key: s.id, notification: s }, null, 8, ["notification"]))), 128)), e.notifications.length ? I("", true) : (x(), L("div", kr, [f("p", Or, P(a.$t("You have no unread notifications")), 1)]))]), M(S(tt), { href: a.route("notifications.index"), class: "justify-center space-y-6 border-t bg-gray-50 px-5 py-4 transition duration-150 ease-in-out hover:bg-gray-100 sm:flex sm:space-x-10 sm:space-y-0 sm:px-8" }, { default: F(() => [f("div", $r, [f("div", Er, [f("span", null, P(a.$t("All notifications")), 1)])])]), _: 1 }, 8, ["href"])], 64)); 149} }, _r = { class: "rounded-lg shadow-lg" }, Tr = { class: "shadow-xs max-w-xs overflow-hidden rounded-lg sm:max-w-lg" }, Lr = { __name: "DropdownNotificationList", setup(e) { 150 const a = Pa(); 151 return (t, s) => (x(), L("div", _r, [f("div", Tr, [M(Cr, { notifications: S(a).notifications }, null, 8, ["notifications"])])])); 152} }, Dr = { class: "sr-only" }, Ar = { __name: "NotificationDropdown", setup(e) { 153 return (a, t) => (x(), G(S(La), { class: "relative hidden lg:block" }, { default: F(() => [M(S(_a), { class: "relative hidden rounded-full bg-white p-1 text-gray-400 hover:text-gray-500 lg:block" }, { default: F(() => [f("span", Dr, P(a.$t("View notifications")), 1), M(S(Da), { class: "h-6 w-6", "aria-hidden": "true" }), M(Ba)]), _: 1 }), M(S(Mn), { class: "fixed inset-0 z-10 bg-gray-500 bg-opacity-75 transition-opacity" }), M(S(Ta), { class: "absolute right-0 top-12 z-10 mr-6 origin-top-right rounded-md shadow-lg" }, { default: F(() => [M(Lr)]), _: 1 })]), _: 1 })); 154} }, Ir = { class: "sr-only" }, qr = { __name: "NotificationBellButton", props: { notificationsSummary: { type: Object, required: true } }, setup(e) { 155 return (a, t) => (x(), L("div", null, [M(S(tt), { href: a.route("notifications.index"), class: "relative block rounded-full p-1 text-gray-400 after:absolute after:-inset-1.5 after:content-[''] hover:text-gray-500 lg:hidden" }, { default: F(() => [f("span", Ir, P(a.$t("View notifications")), 1), M(S(Da), { class: "h-6 w-6", "aria-hidden": "true" }), M(Ba)]), _: 1 }, 8, ["href"]), M(Ar)])); 156} }, ma = { __name: "TimeEntryCounter", props: { date: { type: String, required: true } }, setup(e) { 157 const a = e, t = pn({ currentDate: /* @__PURE__ */ new Date(), targetDate: new Date(a.date) }), s = V(() => t.currentDate - t.targetDate), n = V(() => Math.floor(s.value / 1e3 % 60).toString().padStart(2, "0")), c = V(() => Math.floor(s.value / 1e3 / 60 % 60).toString().padStart(2, "0")), r = V(() => Math.floor(s.value / (1e3 * 60 * 60) % 24).toString().padStart(2, "0")); 158 return Ge(() => { 159 setInterval(() => { 160 t.currentDate = /* @__PURE__ */ new Date(); 161 }, 1e3); 162 }), (o, u) => (x(), L("span", null, P(r.value) + ":" + P(c.value) + ":" + P(n.value), 1)); 163} }, Pr = { __name: "BaseSwitch", props: mn({ disabled: { type: Boolean, default: false } }, { modelValue: { type: Boolean, required: true }, modelModifiers: {} }), emits: ["update:modelValue"], setup(e) { 164 const a = vn(e, "modelValue"); 165 return (t, s) => (x(), G(S(Vn), { modelValue: a.value, "onUpdate:modelValue": s[0] || (s[0] = (n) => a.value = n), disabled: e.disabled, class: R([a.value ? "bg-primary-600" : "bg-gray-200", e.disabled ? "cursor-not-allowed opacity-60" : "cursor-pointer", "relative inline-flex h-6 w-11 flex-shrink-0 rounded-full border-2 border-transparent transition-colors duration-200 ease-in-out"]) }, { default: F(() => [f("span", { "aria-hidden": "true", class: R([a.value ? "translate-x-5" : "translate-x-0", "pointer-events-none inline-block h-5 w-5 transform rounded-full bg-white shadow ring-0 transition duration-200 ease-in-out"]) }, [ne(t.$slots, "default")], 2)]), _: 3 }, 8, ["modelValue", "disabled", "class"])); 166} }, Br = { key: 0, class: "mb-1 block text-sm font-medium text-gray-700 sm:hidden" }, Mr = ["disabled", "readonly", "value", "onClick"], Vr = ["disabled", "readonly", "value", "onClick"], jr = { key: 0, class: "mb-1 block text-sm font-medium text-gray-700 sm:hidden" }, Rr = ["disabled", "readonly", "value", "onClick"], Nr = ["disabled", "readonly", "value", "onClick"], Ct = "max-sm:min-h-11 max-sm:min-w-0 max-sm:flex-1 max-sm:text-base max-sm:focus:ring-primary-500", zr = { __name: "TimeEntryRangeCalendar", props: { modelValue: { type: Object, required: true }, inputDateTime: { type: String, default: "YYYY-MM-DD" }, mode: { type: String, default: "dateTime" }, editable: { type: Boolean, default: true }, maxDate: { type: Date, default: null, required: false }, stacked: { type: Boolean, default: false } }, emits: ["update:modelValue"], setup(e, { emit: a }) { 167 const n = Ia(e, "modelValue", a), c = W({ startDate: null, startTime: null, endTime: null, endDate: null }), r = W(null), o = (v) => { 168 Object.entries(c.value).forEach(([O, h]) => { 169 O !== v && h && h(); 170 }); 171 }, u = (v, O) => { 172 c.value[v] = O, r.value !== v && (o(v), r.value = v); 173 }, d = V(() => { 174 var _a2; 175 return ((_a2 = n.value) == null ? void 0 : _a2.start) ? new Date(n.value.start) : null; 176 }), i = V(() => { 177 var _a2, _b; 178 if (!((_a2 = n.value) == null ? void 0 : _a2.start) || !((_b = n.value) == null ? void 0 : _b.end)) return false;
179 const v = H(n.value.start), O = H(n.value.end); 180 return v.isSame(O, "day"); 181 }), y = V(() => { 182 var _a2; 183 return i.value && ((_a2 = n.value) == null ? void 0 : _a2.end) ? new Date(n.value.end) : null; 184 }), w = V(() => { 185 var _a2; 186 return i.value && ((_a2 = n.value) == null ? void 0 : _a2.start) ? new Date(n.value.start) : null; 187 }), b = V({ get: () => { 188 var _a2; 189 return ((_a2 = n.value) == null ? void 0 : _a2.start) || null; 190 }, set: (v) => { 191 var _a2; 192 if (v && ((_a2 = n.value) == null ? void 0 : _a2.start)) { 193 const O = H(n.value.start), p = H(v).hour(O.hour()).minute(O.minute()).second(O.second()).millisecond(O.millisecond()).toISOString(), m = H(p), C = m.diff(O); 194 let A = H(n.value.end).add(C, "millisecond"); 195 A.isAfter(H()) && (A = H()), A.isBefore(m) && (A = m), n.value = { start: p, end: A.toISOString() }; 196 } else v && (n.value = { ...n.value, start: v }); 197 } }), _ = V({ get: () => { 198 var _a2; 199 return ((_a2 = n.value) == null ? void 0 : _a2.start) || null; 200 }, set: (v) => { 201 var _a2; 202 if (v && ((_a2 = n.value) == null ? void 0 : _a2.start)) { 203 const O = H(n.value.start), h = H(v), p = O.hour(h.hour()).minute(h.minute()).second(h.second()).millisecond(h.millisecond()).toISOString(), m = H(p), C = H(n.value.end); 204 let A = n.value.end; 205 m.isSame(C, "day") && C.isBefore(m) && (A = m.toISOString()), n.value = { start: p, end: A }; 206 } else v && (n.value = { ...n.value, start: v }); 207 } }), k = V({ get: () => { 208 var _a2; 209 return ((_a2 = n.value) == null ? void 0 : _a2.end) || null; 210 }, set: (v) => { 211 var _a2; 212 if (v && ((_a2 = n.value) == null ? void 0 : _a2.end)) { 213 const O = H(n.value.end), p = H(v).hour(O.hour()).minute(O.minute()).second(O.second()).millisecond(O.millisecond()).toISOString(), m = H(p), C = H(n.value.start); 214 let A = n.value.start; 215 C.isAfter(m) && (A = m.toISOString()), n.value = { start: A, end: p }; 216 } else v && (n.value = { ...n.value, end: v }); 217 } }), D = V({ get: () => { 218 var _a2; 219 return ((_a2 = n.value) == null ? void 0 : _a2.end) || null; 220 }, set: (v) => { 221 var _a2; 222 if (v && ((_a2 = n.value) == null ? void 0 : _a2.end)) { 223 const O = H(n.value.end), h = H(v), p = O.hour(h.hour()).minute(h.minute()).second(h.second()).millisecond(h.millisecond()).toISOString(), m = H(p), C = H(n.value.start); 224 let A = n.value.start; 225 C.isSame(m, "day") && C.isAfter(m) && (A = m.toISOString()), n.value = { start: A, end: p }; 226 } else v && (n.value = { ...n.value, end: v }); 227 } }), { mapCurrent: T } = Fn({ xs: "0px", sm: "640px", md: "768px", lg: "1024px" }), q = T({ lg: 2 }, 1), g = T({ xs: true }, false); 228 return (v, O) => { 229 const h = Oa("VDatePicker"), p = Ke("tooltip"); 230 return x(), L("div", { class: R(["flex w-full items-center justify-between", { "max-sm:flex-col max-sm:items-stretch max-sm:gap-3": e.stacked }]) }, [f("div", null, [e.stacked ? (x(), L("span", Br, P(v.$t("Start")), 1)) : I("", true), f("div", { class: R(["flex gap-1", { "max-sm:gap-2": e.stacked }]) }, [M(h, { modelValue: b.value, "onUpdate:modelValue": O[0] || (O[0] = (m) => b.value = m), mode: "date", "model-config": { type: "string", mask: "YYYY-MM-DDTHH:mm:ss.SSSZ" }, "max-date": e.maxDate, popover: { visibility: "click", positionFixed: true }, columns: S(q), color: "primary" }, { default: F(({ inputEvents: m, isDragging: C, hidePopover: A }) => { 231 var _a2, _b; 232 return [we(f("input", He({ class: ["rounded border-0 p-1 text-center text-sm", e.stacked && Ct, C ? "text-gray-500" : "text-gray-900", e.editable ? "cursor-pointer bg-gray-50" : "cursor-text bg-transparent"], disabled: !e.editable, readonly: e.stacked && S(g), value: S(Be)((_a2 = S(n)) == null ? void 0 : _a2.start, "ddd, MMM D"), size: 12 }, $t(m, true), { onClick: (z) => u("startDate", A) }), null, 16, Mr), [[p, S(Be)((_b = S(n)) == null ? void 0 : _b.start)]])]; 233 }), _: 1 }, 8, ["modelValue", "max-date", "columns"]), M(h, { modelValue: _.value, "onUpdate:modelValue": O[1] || (O[1] = (m) => _.value = m), mode: "time", "model-config": { type: "string", mask: "YYYY-MM-DDTHH:mm:ss.SSSZ" }, "max-time": y.value, popover: { visibility: "click", positionFixed: true }, color: "primary" }, { default: F(({ inputEvents: m, isDragging: C, hidePopover: A }) => { 234 var _a2; 235 return [f("input", He({ class: ["rounded border-0 p-1 text-center text-sm", e.stacked && Ct, C ? "text-gray-500" : "text-gray-900", e.editable ? "curs
235or-pointer bg-gray-50" : "cursor-text bg-transparent"], disabled: !e.editable, readonly: e.stacked && S(g), value: S(Be)((_a2 = S(n)) == null ? void 0 : _a2.start, "h:mm A"), size: 8 }, $t(m, true), { onClick: (z) => u("startTime", A) }), null, 16, Vr)]; 236 }), _: 1 }, 8, ["modelValue", "max-time"])], 2)]), f("span", { class: R(["flex-shrink-0 md:m-2", { "max-sm:hidden": e.stacked }]) }, [...O[4] || (O[4] = [f("svg", { class: "h-4 w-4 stroke-current text-gray-600", viewBox: "0 0 24 24" }, [f("path", { "stroke-linecap": "round", "stroke-linejoin": "round", "stroke-width": "2", d: "M14 5l7 7m0 0l-7 7m7-7H3" })], -1)])], 2), f("div", null, [e.stacked ? (x(), L("span", jr, P(v.$t("End")), 1)) : I("", true), f("div", { class: R(["flex gap-1", { "max-sm:flex-row-reverse max-sm:gap-2": e.stacked }]) }, [M(h, { modelValue: D.value, "onUpdate:modelValue": O[2] || (O[2] = (m) => D.value = m), mode: "time", "model-config": { type: "string", mask: "YYYY-MM-DDTHH:mm:ss.SSSZ" }, "min-time": w.value, popover: { visibility: "click", positionFixed: true }, color: "primary" }, { default: F(({ inputEvents: m, isDragging: C, hidePopover: A }) => { 237 var _a2; 238 return [f("input", He({ class: ["rounded border-0 p-1 text-center text-sm", e.stacked && Ct, C ? "text-gray-500" : "text-gray-900", e.editable ? "cursor-pointer bg-gray-50" : "cursor-text bg-transparent"], disabled: !e.editable, readonly: e.stacked && S(g), value: S(Be)((_a2 = S(n)) == null ? void 0 : _a2.end, "h:mm A"), size: 8 }, $t(m, true), { onClick: (z) => u("endTime", A) }), null, 16, Rr)]; 239 }), _: 1 }, 8, ["modelValue", "min-time"]), M(h, { modelValue: k.value, "onUpdate:modelValue": O[3] || (O[3] = (m) => k.value = m), mode: "date", "model-config": { type: "string", mask: "YYYY-MM-DDTHH:mm:ss.SSSZ" }, "min-date": d.value, "max-date": e.maxDate, popover: { visibility: "click", positionFixed: true }, columns: S(q), color: "primary" }, { default: F(({ inputEvents: m, isDragging: C, hidePopover: A }) => { 240 var _a2, _b; 241 return [we(f("input", He({ class: ["rounded border-0 p-1 text-center text-sm", e.stacked && Ct, C ? "text-gray-500" : "text-gray-900", e.editable ? "cursor-pointer bg-gray-50" : "cursor-text bg-transparent"], disabled: !e.editable, readonly: e.stacked && S(g), value: S(Be)((_a2 = S(n)) == null ? void 0 : _a2.end, "ddd, MMM D"), size: 12 }, $t(m, true), { onClick: (z) => u("endDate", A) }), null, 16, Nr), [[p, S(Be)((_b = S(n)) == null ? void 0 : _b.end)]])]; 242 }), _: 1 }, 8, ["modelValue", "min-date", "max-date", "columns"])], 2)])], 2); 243 }; 244} }, Ur = { __name: "TimeEntryCalendar", props: { modelValue: { type: Object, required: true }, editable: { type: Boolean, default: true } }, emits: ["update:modelValue"], setup(e, { emit: a }) { 245 const n = Ia(e, "modelValue", a); 246 return (c, r) => (x(), G(zr, { modelValue: S(n), "onUpdate:modelValue": r[0] || (r[0] = (o) => $a(n) ? n.value = o : null), "input-date-time": "h:mm A", editable: e.editable, "max-date": /* @__PURE__ */ new Date() }, { default: F(({ inputValue: o, inputEvents: u, isDragging: d, togglePopover: i }) => [ne(c.$slots, "default", { inputValue: o, inputEvents: u, isDragging: d, togglePopover: i })]), _: 3 }, 8, ["modelValue", "editable", "max-date"])); 247} }, Hr = async (e = {}) => (await gt.get(route("users.assignable.search"), { params: e })).data.users, Wr = async ({ requestId: e, ...a }) => (await gt.get(route("users.checklist-assignable.search", { request: e }), { params: a })).data.users, Fr = async ({ requestId: e, ...a }) => (await gt.get(route("users.followable.search", { request: e }), { params: a })).data.users, Yr = async ({ organizationId: e, ...a }) => (await gt.get(route("users.organization-members.search", { organization: e }), { params: a })).data.users, Gr = async (e = {}) => (await gt.get(route("users.selectable.search"), { params: e })).data.users; 248function ct(e = {}) { 249 const a = []; 250 for (const s of Object.values(e)) { 251 if (s == null || s === "") { 252 a.push(""); 253 continue; 254 } 255 Array.isArray(s) ? a.push(s.sort().join(",")) : a.push(String(s)); 256 } 257 return a.join("|"); 258} 259const Se = { root: ["users"], assignable: (e = {}) => [...Se.root, "assignable", ct(e)], checklistAssignable: (e = {}) => [...Se.root, "checklist-assignable", ct(e)], followable: (e = {}) => [...Se.root, "followable", ct(e)], organizationMembers: (e = {}) => [...Se.root, "organization-members", ct(e)], selectable: (e = {}) => [...Se.root, "selectable", ct(e)] }, Kr = ht((e = {}) => ({ key: Se.assignable(e), query: () => Hr(e), placeholderData: (a) => a })), Zr = ht((e = {}) => ({ key: Se.checklistAssignable(e), query: () => Wr(e), placeholderData: (a) => a })), Qr = ht((e = {}) => ({ key: Se.followable(e), query: () => Fr(e), placeholderData: (a) => a })), Xr = ht((e = {}) => ({ key: Se.organizationMembers(e), query: () => Yr(e), placeholderData: (a) => a })), Jr = ht((e = {}) => ({ key: Se.selectable(e), query: () => Gr(e), placeholderData: (a) => a })), es = { class: "h-6 w-6 cursor-pointer" }, ts = { class: "mb-5 px-4 pt-2" }, as = { for: "name", class: "sr-only block text-sm font-medium text-gray-700" }, ns = { class: "relative mt-1 rounded-md shadow-sm" }, rs = { class: "pointer-events-none absolute inset-y-0 left-0 flex items-center pl-3" }, ss = ["placeholder"], ls = { class: "max-h-56" }, is = { key: 0, class: "flex justify-center py-4" }, os = { key: 1, class: "px-4 py-3 text-sm text-gray-500" }, us = { key: 2, class: "px-4 py-3 text-sm text-gray-500" }, ds = { key: 3, class: "z-10 mt-1 max-h-56 w-full overflow-auto rounded-b-md bg-white py-1 text-base shadow-lg ring-1 ring-black ring-opacity-5 focus:outline-none sm:text-sm", tabindex: "-1", role: "listbox", "aria-labelledby": "listbox-label", "aria-activedescendant": "listbox-option-3" }, cs = ["onClick"], fs = { class: "flex items-center" }, ps = { key: 0, class: "absolute inset-y-0 right-0 flex items-center pr-4 text-primary-600" }, vs = { __name: "SelectSingleUser", props: { usersSource: { type: String, required: true, validator: (e) => ["assignable", "checklist-assignable", "followable", "organization-members", "selectable"].includes(e) }, sourceId: { type: [Number, String], default: null }, selectedUser: { type: Object, required: false }, customPopoverClasses: { type: [String, Object, Array], default: "" }, disabled: { type: Boolean, default: false }, sameWidthDropdown: { type: Boolean, default: false } }, emits: ["user-selected"], setup(e, { emit: a }) { 260 const t = e, s = a, { trigger: n, popper: c } = zn({ placement: "bottom-start", strategy: "fixed", modifiers: [{ name: "sameWidth", enabled: t.sameWidthDropdown, fn: function({ state: v }) { 261 v.styles.popper.width = `${v.rects.reference.width}px`; 262 }, phase: "beforeWrite", requires: ["computeStyles"] }] }), r = W(""), o = W(false), u = () => { 263 t.disabled || (o.value = true); 264 }, d = Wn(r, 300), i = V(() => { 265 const v = { name: d.value || null, ids: t.selectedUser ? [t.selectedUser.id] : [] }; 266 return t.usersSource === "checklist-assignable" ? Zr({ requestId: t.sourceId, ...v }) : t.usersSource === "followable" ? Qr({ requestId: t.sourceId, ...v }) : t.usersSource === "organization-members" ? Xr({ organizationId: t.sourceId, ...v }) : t.usersSource === "selectable" ? Jr(v) : Kr(v); 267 }), { data: y, isLoading: w, error: b } = gn(() => ({ ...i.value, enabled: o.value })), _ = V(() => y.value ?? []), k = (v) => { 268 var _a2; 269 return v.id === ((_a2 = t.selectedUser) == null ? void 0 : _a2.id); 270 }, D = (v) => [...v].sort((O, h) =>
270 k(O) && !k(h) ? -1 : !k(O) && k(h) ? 1 : O.name.localeCompare(h.name)), T = V(() => D(_.value)), q = V(() => T.value.filter((v) => v.name.toLowerCase().includes(d.value.toLowerCase()))), { t: g } = ka(); 271 return (v, O) => { 272 const h = Ke("tooltip"); 273 return x(), G(S(La), { class: "leading-3" }, { default: F(() => [M(S(_a), { ref_key: "popoverButton", ref: n, disabled: e.disabled, class: "block w-full cursor-default focus-visible:outline-none [@media(hover:none)]:relative [@media(hover:none)]:after:absolute [@media(hover:none)]:after:-inset-2.5 [@media(hover:none)]:after:content-['']", onClick: u }, { default: F(() => [ne(v.$slots, "default", {}, () => { 274 var _a2; 275 return [f("div", es, [e.selectedUser ? we((x(), G(It, { key: 0, user: e.selectedUser, size: "sm", class: "ring-2 ring-white group-hover:visible [@media(hover:hover)]:lg:invisible" }, null, 8, ["user"])), [[h, (_a2 = e.selectedUser) == null ? void 0 : _a2.name]]) : (x(), G(S(qa), { key: 1, class: "h-6 w-6 rounded-full object-cover hover:text-gray-600 group-hover:visible [@media(hover:hover)]:lg:invisible" }))])]; 276 })]), _: 3 }, 8, ["disabled"]), (x(), G(Ea, { to: "body" }, [M(S(Ta), { ref_key: "popoverPanel", ref: c, class: R(S(Dn)(["z-50 w-80 rounded-md bg-white text-base shadow-lg ring-1 ring-black ring-opacity-5 focus:outline-none sm:text-sm", e.customPopoverClasses])) }, { default: F(() => [f("div", ts, [f("label", as, P(v.$t("Name")), 1), f("div", ns, [f("div", rs, [M(S(Gn), { class: "h-5 w-5 text-gray-400", "aria-hidden": "true" })]), we(f("input", { "onUpdate:modelValue": O[0] || (O[0] = (p) => r.value = p), type: "text", class: "block w-full rounded-md border-gray-300 pl-10 focus:border-primary-500 focus:ring-primary-500 sm:text-sm", placeholder: S(g)("Search") }, null, 8, ss), [[hn, r.value]])])]), f("div", ls, [S(w) && !S(y) ? (x(), L("div", is, [M(Aa, { class: "h-5 w-5 animate-spin text-gray-400" })])) : S(b) && !S(y) ? (x(), L("p", os, P(v.$t("Something went wrong.")), 1)) : q.value.length === 0 ? (x(), L("p", us, P(v.$t("No users found")), 1)) : (x(), L("ul", ds, [(x(true), L(ye, null, Me(q.value, (p) => (x(), L("li", { key: p.id, class: R([k(p) ? "bg-gray-50" : "", "group-1 relative cursor-pointer select-none py-2 pl-3 pr-9 text-gray-900 hover:bg-gray-50"]), onClick: (m) => s("user-selected", p) }, [f("div", fs, [M(It, { user: p, size: "sm" }, null, 8, ["user"]), f("span", { class: R([k(p) ? "font-semibold" : "font-normal", "ml-3 block truncate"]) }, P(p.name), 3)]), k(p) ? (x(), L("span", ps, [M(S(Kn), { class: "h-5 w-5", "aria-hidden": "true" })])) : I("", true)], 10, cs))), 128))]))])]), _: 1 }, 8, ["class"])]))]), _: 3 }); 277 }; 278} }, ms = { __name: "TransitionExpand", setup(e) { 279 const a = (n) => { 280 n.style.position = "absolute", n.style.visibility = "hidden", n.style.height = "auto"; 281 const c = getComputedStyle(n).height; 282 n.style.position = null, n.style.visibility = null, n.style.height = 0, getComputedStyle(n).height, requestAnimationFrame(() => { 283 n.style.height = c; 284 }); 285 }, t = (n) => { 286 n.style.height = "auto"; 287 }, s = (n) => { 288 const c = getComputedStyle(n).height; 289 n.style.height = c, getComputedStyle(n).height, requestAnimationFrame(() => { 290 n.style.height = 0; 291 }); 292 }; 293 return (n, c) => (x(), G(yn, { name: "expand", onEnter: a, onAfterEnter: t, onLeave: s }, { default: F(() => [ne(n.$slots, "default", {}, void 0, true)]), _: 3 })); 294} }, gs = Ca(ms, [["__scopeId", "data-v-03692d6b"]]), hs = { container: "relative mx-auto w-full flex items-center justify-end box-border cursor-pointer border border-gray-300 rounded bg-white text-base leading-snug outline-none", containerDisabled: "cursor-default bg-gray-100", containerOpen: "rounded-b-none", containerOpenTop: "rounded-t-none", containerActive: "ring ring-gray-100 ring-opacity-30 border border-primary-500", multipleLabel: "flex items-center h-full absolute left-0 top-0 pointer-events-none bg-transparent leading-snug pl-3.5", search: "w-full absolute inset-0 outline-none focus:ring-primary-500 appearance-none box-border border-0 text-base font-sans bg-white rounded pl-3.5 rtl:pl-0 rtl:pr-3.5 focus:border focus:border-primary-500", tags: "flex-grow flex-shrink flex flex-wrap items-center mt-1 pl-2 focus:ring-primary-500 focus:border focus:border-primary-500", tag: "bg-gray-100 text-gray-800 text-sm font-medium py-0.5 pl-2 rounded-full mr-1 mb-1 flex items-center", tagDisabled: "pr-2 opacity-50", tagRemove: "flex items-center justify-center p-1 mx-0.5 rounded-sm hover:bg-black hover:bg-opacity-10 group", tagRemoveIcon: "bg-multiselect-remove bg-center bg-no-repeat opacity-30 inline-block w-3 h-3 group-hover:opacity-60", tagsSearchWra
294pper: "inline-block relative mx-1 mb-1 flex-grow flex-shrink h-full", tagsSearch: "absolute inset-0 border-0 outline-none focus:ring-0 appearance-none p-0 text-base font-sans box-border w-full", tagsSearchCopy: "invisible whitespace-pre-wrap inline-block h-px", placeholder: "flex items-center h-full absolute left-0 top-0 pointer-events-none bg-transparent leading-snug pl-3.5 text-gray-800", caret: "bg-multiselect-caret bg-center bg-no-repeat w-2.5 h-4 py-px box-content mr-3.5 relative z-10 opacity-40 flex-shrink-0 flex-grow-0 transition-transform transform pointer-events-none", caretOpen: "rotate-180 pointer-events-auto", clear: "pr-3.5 relative z-10 opacity-40 transition duration-300 flex-shrink-0 flex-grow-0 flex hover:opacity-80", clearIcon: "bg-multiselect-remove bg-center bg-no-repeat w-2.5 h-4 py-px box-content inline-block", spinner: "bg-multiselect-spinner bg-center bg-no-repeat w-4 h-4 z-10 mr-3.5 animate-spin flex-shrink-0 flex-grow-0", dropdown: "max-h-60 absolute -left-px -right-px bottom-0 transform translate-y-full border border-gray-300 -mt-px overflow-y-scroll z-50 bg-white flex flex-col rounded-b", dropdownTop: "-translate-y-full top-px bottom-auto flex-col-reverse rounded-b-none rounded-t", dropdownHidden: "hidden", options: "flex flex-col p-0 m-0 list-none", optionsTop: "flex-col-reverse", group: "p-0 m-0", groupLabel: "flex text-sm box-border items-center justify-start text-left py-1 px-3 font-medium bg-gray-200 cursor-default leading-normal", groupLabelPointable: "cursor-pointer", groupLabelPointed: "bg-gray-300 text-gray-700", groupLabelSelected: "bg-primary-600 text-gray-800", groupLabelDisabled: "bg-gray-100 text-gray-300 cursor-not-allowed", groupLabelSelectedPointed: "bg-primary-600 text-gray-800 opacity-90", groupLabelSelectedDisabled: "text-primary-100 bg-primary-600 bg-opacity-50 cursor-not-allowed", groupOptions: "p-0 m-0", option: "flex items-center justify-start box-border text-left cursor-pointer text-base leading-snug py-2 px-3", optionPointed: "text-gray-800 bg-gray-100", optionSelected: "text-gray-800 bg-gray-100", optionDisabled: "text-gray-300 cursor-not-allowed", optionSelectedPointed: "text-gray-800 bg-gray-100 opacity-90", optionSelectedDisabled: "text-primary-100 bg-gray-100 bg-opacity-50 cursor-not-allowed", noOptions: "py-2 px-3 text-gray-600 bg-white text-left", noResults: "py-2 px-3 text-gray-600 bg-white text-left", fakeInput: "bg-transparent absolute left-0 right-0 -bottom-px w-full h-px border-0 p-0 appearance-none outline-none text-transparent", spacer: "h-9 py-px box-content" }; 295function xe(e) { 296 return e == null; 297} 298function ys(e, a, t) { 299 const { object: s, valueProp: n, mode: c } = ce(e), r = yt().proxy, o = t.iv, u = (y, w = true) => { 300 o.value = i(y); 301 const b = d(y); 302 a.emit("change", b, r), w && (a.emit("input", b), a.emit("update:modelValue", b)); 303 }, d = (y) => s.value || xe(y) ? y : Array.isArray(y) ? y.map((w) => w[n.value]) : y[n.value], i = (y) => xe(y) ? c.value === "single" ? {} : [] : y; 304 return { update: u }; 305} 306function ee(e) { 307 return wn(() => ({ get: e, set: () => { 308 } })); 309} 310function bs(e, a) { 311 const { value: t, modelValue: s, mode: n, valueProp: c } = ce(e), r = W(n.value !== "single" ? [] : {}), o = ee(() => s.value !== void 0 ? s.value : t.value), u = V(() => n.value === "single" ? r.value[c.value] : r.value.map((i) => i[c.value])), d = ee(() => n.value !== "single" ? r.value.map((i) => i[c.value]).join(",") : r.value[c.value]); 312 return { iv: r, internalValue: r, ev: o, externalValue: o, textValue: d, plainValue: u }; 313} 314function ws(e, a, t) { 315 const { regex: s } = ce(e), n = yt().proxy, c = t.isOpen, r = t.open, o = W(null), u = () => { 316 o.value = ""; 317 }, d = (w) => { 318 o.value = w.target.value; 319 }, i = (w) => { 320 if (s.value) { 321 let b = s.value; 322 typeof b == "string" && (b = new RegExp(b)), w.key.match(b) || w.preventDefault(); 323 } 324 }, y = (w) => { 325 if (s.value) { 326 let _ = (w.clipboardData || window.clipboardData).getData("Text"), k = s.value; 327 typeof k == "string" && (k = new RegExp(k)), _.split("").every((D) => !!D.match(k)) || w.preventDefault(); 328 } 329 a.emit("paste", w, n); 330 }; 331 return ie(o, (w) => {
332 !c.value && w && r(), a.emit("search-change", w, n); 333 }), { search: o, clearSearch: u, handleSearchInput: d, handleKeypress: i, handlePaste: y }; 334} 335function xs(e, a, t) { 336 const { groupSelect: s, mode: n, groups: c, disabledProp: r } = ce(e), o = W(null), u = (i) => { 337 i === void 0 || i !== null && i[r.value] || c.value && i && i.group && (n.value === "single" || !s.value) || (o.value = i); 338 }; 339 return { pointer: o, setPointer: u, clearPointer: () => { 340 u(null); 341 } }; 342} 343function Gt(e, a = true) { 344 return a ? String(e).toLowerCase().trim() : String(e).toLowerCase().normalize("NFD").trim().replace(/æ/g, "ae").replace(/œ/g, "oe").replace(/ø/g, "o").replace(new RegExp("\\p{Diacritic}", "gu"), ""); 345} 346function Ss(e) { 347 return Object.prototype.toString.call(e) === "[object Object]"; 348} 349function ks(e, a) { 350 if (e.length !== a.length) return false; 351 const t = a.slice().sort(); 352 return e.slice().sort().every(function(s, n) { 353 return s === t[n]; 354 }); 355} 356const Ma = (e, a) => { 357 if (e === a) return true; 358 if (typeof e != "object" || e === null || typeof a != "object" || a === null) return false; 359 const t = Object.keys(e), s = Object.keys(a); 360 if (t.length !== s.length) return false; 361 for (let n of t) if (!s.includes(n) || !Ma(e[n], a[n])) return false; 362 return true; 363}; 364function Os(e, a, t) { 365 const { options: s, mode: n, trackBy: c, limit: r, hideSelected: o, createTag: u, createOption: d, label: i, appendNewTag: y, appendNewOption: w, multipleLabel: b, object: _, loading: k, delay: D, resolveOnLoad: T, minChars: q, filterResults: g, clearOnSearch: v, clearOnSelect: O, valueProp: h, allowAbsent: p, groupLabel: m, canDeselect: C, max: A, strict: z, closeOnSelect: j, closeOnDeselect: X, groups: te, reverse: oe, infinite: J, groupOptions: K, groupHideEmpty: $e, groupSelect: Y, onCreate: ae, disabledProp: Z, searchStart: le, searchFilter: fe } = ce(e), Q = yt().proxy, N = t.iv, E = t.ev, B = t.search, se = t.clearSearch, ue = t.update, lt = t.pointer, it = t.setPointer, Ae = t.clearPointer, bt = t.focus, jt = t.deactivate, Ie = t.close, wt = t.localize, qe = W([]), pe = W([]), ve = W(false), ge = W(null), Ee = W(J.value && r.value === -1 ? 10 : r.value), xt = V({ get: () => pe.value, set: (l) => pe.value = l }), ot = ee(() => u.value || d.value || false), ut = ee(() => y.value !== void 0 ? y.value : w.value !== void 0 ? w.value : true), he = V(() => { 366 if (te.value) { 367 let l = Ne.value || [], $ = []; 368 return l.forEach((U) => { 369 Ft(U[K.value]).forEach((re) => { 370 $.push(Object.assign({}, re, U[Z.value] ? { [Z.value]: true } : {})); 371 }); 372 }), $; 373 } else { 374 let l = Ft(pe.value || []); 375 return qe.value.length && (l = l.concat(qe.value)), l; 376 } 377 }), dt = V(() => { 378 let l = he.value; 379 return oe.value && (l = l.reverse()), Ze.value.length && (l = Ze.value.concat(l)), Wt(l); 380 }), Pe = V(() => { 381 let l = dt.value; 382 return Ee.value > 0 && (l = l.slice(0, Ee.value)), l; 383 }), Ne = V(() => { 384 if (!te.value) return []; 385 let l = [], $ = pe.value || []; 386 return qe.value.length && l.push({ [m.value]: " ", [K.value]: [...qe.value], __CREATE__: true }), l.concat($); 387 }), Wa = V(() => { 388 let l = [...Ne.value].map(($) => ({ ...$ })); 389 return Ze.value.length && (l[0] && l[0].__CREATE__ ? l[0][K.value] = [...Ze.value, ...l[0][K.value]] : l = [{ [m.value]: " ", [K.value]: [...Ze.value], __CREATE__: true }].concat(l)), l; 390 }), Rt = V(() => { 391 if (!te.value) return []; 392 let l = Wa.value; 393 return ln((l || []).map(($, U) => { 394 const re = Ft($[K.value]); 395 return { ...$, index: U, group: true, [K.value]: Wt(re, false).map((Ue) => Object.assign({}, Ue, $[Z.value] ? { [Z.value]: true } : {})), __VISIBLE__: Wt(re).map((Ue) => Object.assign({}, Ue, $[Z.value] ? { [Z.value]: true } : {})) }; 396 })); 397 }), Nt = V(() => { 398 switch (n.value) { 399 case "single": 400 return !xe(N.value[h.value]); 401 case "multiple": 402 case "tags": 403 return !xe(N.value) && N.value.length > 0; 404 } 405 }), Fa = V(() => b.value !== void 0 ? b.value(N.value, Q) : N.value && N.value.length > 1 ? `${N.value.length} options selected` : "1 option selected"), Ya = ee(() => !he.value.length && !ve.value && !Ze.value.length), Ga = ee(() => he.value.length > 0 && Pe.value.length == 0 && (B.value && te.value || !te.value)), Ze = V(() => ot.value === false || !B.value ? [] : nn(B.value) !== -1 ? [] : [{ [h.value]: B.value, [ze.value[0]]: B.value, [i.value]: B.value, __CREATE__: true }]), ze = V(() => c.value ? Array.isArray(c.value) ? c.value : [c.value] : [i.value]), Ka = ee(() => { 406 switch (n.value) { 407 case "single": 408 return null; 409 case "multiple": 410 case "tags": 411 return []; 412 } 413 }), Za = ee(() => k.value || ve.value), Qe = (l) => { 414 switch (typeof l != "object" && (l = _e(l)), n.value) { 415 case "single": 416 ue(l); 417 break; 418 case "multiple": 419 case "tags": 420 ue(N.value.concat(l)); 421 break; 422 } 423 a.emit("select", ra(l), l, Q); 424 }, Xe = (l) => { 425 switch (typeof l != "object" && (l = _e(l)), n.value) { 426 case "single": 427 la(); 428 break; 429 case "tags": 430 case "multiple": 431 ue(Array.isArray(l) ? N.value.filter(($) => l.map((U) => U[h.value]).indexOf($[h.value]) === -1) : N.value.filter(($) => $[h.value] != l[h.value])); 432 break; 433 } 434 a.emit("deselect", ra(l), l, Q); 435 }
435, ra = (l) => _.value ? l : l[h.value], sa = (l) => { 436 Xe(l); 437 }, Qa = (l, $) => { 438 if ($.button !== 0) { 439 $.preventDefault(); 440 return; 441 } 442 sa(l); 443 }, la = () => { 444 ue(Ka.value), a.emit("clear", Q); 445 }, Ce = (l) => { 446 if (l.group !== void 0) return n.value === "single" ? false : an(l[K.value]) && l[K.value].length; 447 switch (n.value) { 448 case "single": 449 return !xe(N.value) && (N.value[h.value] == l[h.value] || typeof N.value[h.value] == "object" && typeof l[h.value] == "object" && Ma(N.value[h.value], l[h.value])); 450 case "tags": 451 case "multiple": 452 return !xe(N.value) && N.value.map(($) => $[h.value]).indexOf(l[h.value]) !== -1; 453 } 454 }, zt = (l) => l[Z.value] === true, Ut = () => A === void 0 || A.value === -1 || !Nt.value && A.value > 0 ? false : N.value.length >= A.value, Xa = (l) => { 455 if (!zt(l)) { 456 if (ae.value && !Ce(l) && l.__CREATE__ && (l = { ...l }, delete l.__CREATE__, l = ae.value(l, Q), l instanceof Promise)) { 457 ve.value = true, l.then(($) => { 458 ve.value = false, ia($); 459 }); 460 return; 461 } 462 ia(l); 463 } 464 }, ia = (l) => { 465 switch (l.__CREATE__ && (l = { ...l }, delete l.__CREATE__), n.value) { 466 case "single": 467 if (l && Ce(l)) { 468 C.value && Xe(l), X.value && (Ae(), Ie()); 469 return; 470 } 471 l && Ht(l), O.value && se(), j.value && (Ae(), Ie()), l && Qe(l); 472 break; 473 case "multiple": 474 if (l && Ce(l)) { 475 Xe(l), X.value && (Ae(), Ie()); 476 return; 477 } 478 if (Ut()) { 479 a.emit("max", Q); 480 return; 481 } 482 l && (Ht(l), Qe(l)), O.value && se(), o.value && Ae(), j.value && Ie(); 483 break; 484 case "tags": 485 if (l && Ce(l)) { 486 Xe(l), X.value && (Ae(), Ie()); 487 return; 488 } 489 if (Ut()) { 490 a.emit("max", Q); 491 return; 492 } 493 l && Ht(l), O.value && se(), l && Qe(l), o.value && Ae(), j.value && Ie(); 494 break; 495 } 496 j.value || bt(); 497 }, Ja = (l) => { 498 if (!(zt(l) || n.value === "single" || !Y.value)) { 499 switch (n.value) { 500 case "multiple": 501 case "tags": 502 tn(l[K.value]) ? Xe(l[K.value]) : Qe(l[K.value].filter(($) => N.value.map((U) => U[h.value]).indexOf($[h.value]) === -1).filter(($) => !$[Z.value]).filter(($, U) => N.value.length + 1 + U <= A.value || A.value === -1)), o.value && lt.value && it(Rt.value.filter(($) => !$[Z.value])[lt.value.index]); 503 break; 504 } 505 j.value && jt(); 506 } 507 }, Ht = (l) => { 508 _e(l[h.value]) === void 0 && ot.value && (a.emit("tag", l[h.value], Q), a.emit("option", l[h.value], Q), a.emit("create", l[h.value], Q), ut.value && sn(l), se()); 509 }, en = () => { 510 n.value !== "single" && Qe(Pe.value.filter((l) => !l.disabled && !Ce(l))); 511 }, tn = (l) => l.find(($) => !Ce($) && !$[Z.value]) === void 0, an = (l) => l.find(($) => !Ce($)) === void 0, _e = (l) => he.value[he.value.map(($) => String($[h.value])).indexOf(String(l))], nn = (l) => he.value.findIndex(($) => ze.value.some((U) => (parseInt($[U]) == $[U] ? parseInt($[U]) : $[U]) === (parseInt(l) == l ? parseInt(l) : l))), rn = (l) => ["tags", "multiple"].indexOf(n.value) !== -1 && o.value && Ce(l), sn = (l) => { 512 qe.value.push(l); 513 }, ln = (l) => $e.value ? l.filter(($) => B.value ? $.__VISIBLE__.length : $[K.value].length) : l.filter(($) => B.value ? $.__VISIBLE__.length : true), Wt = (l, $ = true) => { 514 let U = l; 515 if (B.value && g.value) { 516 let re = fe.value; 517 re || (re = (Ue, ua, co) => ze.value.some((un) => { 518 let da = Gt(wt(Ue[un]), z.value); 519 return le.value ? da.startsWith(Gt(ua, z.value)) : da.indexOf(Gt(ua, z.value)) !== -1; 520 })), U = U.filter((Ue) => re(Ue, B.value, Q)); 521 } 522 return o.value && $ && (U = U.filter((re) => !rn(re))), U; 523 }, Ft = (l) => { 524 let $ = l; 525 return Ss($) && ($ = Object.keys($).map((U) => { 526 let re = $[U]; 527 return { [h.value]: U, [ze.value[0]]: re, [i.value]: re }; 528 })), $ && Array.isArray($) ? $ = $.map((U) => typeof U == "object" ? U : { [h.value]: U, [ze.value[0]]: U, [i.value]: U }) : $ = [], $; 529 }, St = () => { 530 xe(E.value) || (N.value = Ot(E.value)); 531 }, kt = (l) => (ve.value = true, new Promise(($, U) => { 532 s.value(B.value, Q).then((re) => { 533 pe.value = re || [], typeof l == "function" && l(re), ve.value = false;
534 }).catch((re) => { 535 console.error(re), pe.value = [], ve.value = false; 536 }).finally(() => { 537 $(); 538 }); 539 })), Yt = () => { 540 if (Nt.value) if (n.value === "single") { 541 let l = _e(N.value[h.value]); 542 if (l !== void 0) { 543 let $ = l[i.value]; 544 N.value[i.value] = $, _.value && (E.value[i.value] = $); 545 } 546 } else N.value.forEach((l, $) => { 547 let U = _e(N.value[$][h.value]); 548 if (U !== void 0) { 549 let re = U[i.value]; 550 N.value[$][i.value] = re, _.value && (E.value[$][i.value] = re); 551 } 552 }); 553 }, on = (l) => { 554 kt(l); 555 }, Ot = (l) => xe(l) ? n.value === "single" ? {} : [] : _.value ? l : n.value === "single" ? _e(l) || (p.value ? { [i.value]: l, [h.value]: l, [ze.value[0]]: l } : {}) : l.filter(($) => !!_e($) || p.value).map(($) => _e($) || { [i.value]: $, [h.value]: $, [ze.value[0]]: $ }), oa = () => { 556 ge.value = ie(B, (l) => { 557 l.length < q.value || !l && q.value !== 0 || (ve.value = true, v.value && (pe.value = []), setTimeout(() => { 558 l == B.value && s.value(B.value, Q).then(($) => { 559 (l == B.value || !B.value) && (pe.value = $, lt.value = Pe.value.filter((U) => U[Z.value] !== true)[0] || null, ve.value = false); 560 }).catch(($) => { 561 console.error($); 562 }); 563 }, D.value)); 564 }, { flush: "sync" }); 565 }; 566 if (n.value !== "single" && !xe(E.value) && !Array.isArray(E.value)) throw new Error(`v-model must be an array when using "${n.value}" mode`); 567 return s && typeof s.value == "function" ? T.value ? kt(St) : _.value == true && St() : (pe.value = s.value, St()), D.value > -1 && oa(), ie(D, (l, $) => { 568 ge.value && ge.value(), l >= 0 && oa(); 569 }), ie(E, (l) => { 570 if (xe(l)) { 571 ue(Ot(l), false); 572 return; 573 } 574 switch (n.value) { 575 case "single": 576 (_.value ? l[h.value] != N.value[h.value] : l != N.value[h.value]) && ue(Ot(l), false); 577 break; 578 case "multiple": 579 case "tags": 580 ks(_.value ? l.map(($) => $[h.value]) : l, N.value.map(($) => $[h.value])) || ue(Ot(l), false); 581 break; 582 } 583 }, { deep: true }), ie(s, (l, $) => { 584 typeof e.options == "function" ? T.value && (!$ || l && l.toString() !== $.toString()) && kt() : (pe.value = e.options, Object.keys(N.value).length || St(), Yt()); 585 }), ie(i, Yt), ie(r, (l, $) => { 586 Ee.value = J.value && l === -1 ? 10 : l; 587 }), { resolvedOptions: xt, pfo: dt, fo: Pe, filteredOptions: Pe, hasSelected: Nt, multipleLabelText: Fa, eo: he, extendedOptions: he, eg: Ne, extendedGroups: Ne, fg: Rt, filteredGroups: Rt, noOptions: Ya, noResults: Ga, resolving: ve, busy: Za, offset: Ee, select: Qe, deselect: Xe, remove: sa, selectAll: en, clear: la, isSelected: Ce, isDisabled: zt, isMax: Ut, getOption: _e, handleOptionClick: Xa, handleGroupClick: Ja, handleTagRemove: Qa, refreshOptions: on, resolveOptions: kt, refreshLabels: Yt }; 588} 589function $s(e, a, t) { 590 const { valueProp: s, showOptions: n, searchable: c, groupLabel: r, groups: o, mode: u, groupSelect: d, disabledProp: i, groupOptions: y } = ce(e), w = t.fo, b = t.fg, _ = t.handleOptionClick, k = t.handleGroupClick, D = t.search, T = t.pointer, q = t.setPointer, g = t.clearPointer, v = t.multiselect, O = t.isOpen, h = V(() => w.value.filter((E) => !E[i.value])), p = V(() => b.value.filter((E) => !E[i.value])), m = ee(() => u.value !== "single" && d.value), C = ee(() => T.value && T.value.group), A = V(() => Q(T.value)), z = V(() => { 591 const E = C.value ? T.value : Q(T.value), B = p.value.map((ue) => ue[r.value]).indexOf(E[r.value]); 592 let se = p.value[B - 1]; 593 return se === void 0 && (se = X.value), se; 594 }), j = V(() => { 595 let E = p.value.map((B) => B.label).indexOf(C.value ? T.value[r.value] : Q(T.value)[r.value]) + 1; 596 return p.value.length <= E && (E = 0), p.value[E]; 597 }), X = V(() => [...p.value].slice(-1)[0]), te = V(() => T.value.__VISIBLE__.filter((E) => !E[i.value])[0]), oe = V(() => { 598 const E = A.value.__VISIBLE__.filter((B) => !B[i.value]); 599 return E[E.map((B) => B[s.value]).indexOf(T.value[s.value]) - 1]; 600 }), J = V(() => { 601 const E = Q(T.value).__VISIBLE__.filter((B) => !B[i.value]); 602 return E[E.map((B) => B[s.value]).indexOf(T.value[s.value]) + 1]; 603 }), K = V(() => [...z.value.__VISIBLE__.filter((E) => !E[i.value])].slice(-1)[0]), $e = V(() => [...X.value.__VISIBLE__.filter((E) => !E[i.value])].slice(-1)[0]), Y = (E) => T.value && (!E.group && T.value[s.value] === E[s.value] || E.group !== void 0 && T.value[r.value] === E[r.value]) ? true : void 0, ae = () => { 604 q(h.value[0] || null); 605 }, Z = () => { 606 !T.value || T.value[i.value] === true || (C.value ? k(T.value) : _(T.value)); 607 }, le = () => { 608 if (T.value === null) q((o.value && m.value ? p.value[0].__CREATE__ ? h.value[0] : p.value[0] : h.value[0]) || null); 609 else if (o.value && m.value) { 610 let E = C.value ? te.value : J.value; 611 E === void 0 && (E = j.value, E.__CREATE__ && (E = E[y.value][0])), q(E || null); 612 } else { 613 let E = h.value.map((B) => B[s.value]).indexOf(T.value[s.value]) + 1; 614 h.value.length <= E && (E = 0), q(h.value[E] || null); 615 } 616 et(() => { 617 N(); 618 }); 619 }, fe = () => { 620 if (T.value === null) { 621 let E = h.value[h.value.length - 1]; 622 o.value && m.value && (E = $e.value, E === void 0 && (E = X.value)), q(E || null); 623 } else if (o.value && m.value) { 624 let E = C.value ? K.value : oe.value; 625 E === void 0 && (E = C.value ? z.value : A.value, E.__CREATE__ && (E = K.value, E === void 0 && (E = z.value))), q(E || null); 626 } else { 627 let E = h.value.map((B) => B[s.value]).indexOf(T.value[s.value]) - 1; 628 E < 0 && (E = h.value.length - 1), q(h.value[E] || null); 629 } 630 et(() => { 631 N(); 632 }); 633 }, Q = (E) => p.value.find((B) => B.__VISIBLE__.map((se) => se[s.value]).indexOf(E[s.value]) !== -1), N = () => { 634 let E = v.value.querySelector("[data-pointed]"); 635 if (!E) return; 636 let B = E.parentElement.parentElement; 637 o.value && (B = C.value ? E.parentElement.parentElement.parentElement : E.parentElement.parentElement.parentElement.parentElement), E.offsetTop + E.offsetHeight > B.clientHeight + B.scrollTop && (B.scrollTop = E.offsetTop + E.offsetHeight - B.clientHeight), E.offsetTop < B.scrollTop && (B.scrollTop = E.offsetTop); 638 }; 639 return ie(D, (E) => { 640 c.value && (E.length && n.value ? ae() : g()); 641 }), ie(O, (E) => { 642 if (E && v && v.value) { 643 let B = v.value.querySelectorAll("[data-selected]")[0]; 644 if (!B) return; 645 let se = B.parentElement.parentElement; 646 et(() => { 647 se.scrollTop = B.offsetTop; 648 }); 649 } 650 }), { pointer: T, canPointGroups: m, isPointed: Y, setPointerFirst: ae, selectPointer: Z, forwardPointer: le, backwardPointer: fe }; 651} 652function de(e) { 653 if (e == null) return window; 654 if (e.toString() !== "[object Window]") { 655 var a = e.ownerDocument; 656 return a && a.defaultView || window; 657 } 658 return e; 659} 660function Ye(e) { 661 var a = de(e).Element; 662 return e instanceof a || e instanceof Element; 663} 664function me(e) { 665 var a = de(e).HTMLElement; 666 return e instanceof a || e instanceof HTMLElement; 667} 668function Qt(e) { 669 if (typeof ShadowRoot > "u") return false;
vendor: 11,174 bytes, lines 670-943
670 var a = de(e).ShadowRoot; 671 return e instanceof a || e instanceof ShadowRoot; 672} 673var Fe = Math.max, Pt = Math.min, at = Math.round; 674function Kt() { 675 var e = navigator.userAgentData; 676 return e != null && e.brands && Array.isArray(e.brands) ? e.brands.map(function(a) { 677 return a.brand + "/" + a.version; 678 }).join(" ") : navigator.userAgent; 679} 680function Va() { 681 return !/^((?!chrome|android).)*safari/i.test(Kt()); 682} 683function nt(e, a, t) { 684 a === void 0 && (a = false), t === void 0 && (t = false); 685 var s = e.getBoundingClientRect(), n = 1, c = 1; 686 a && me(e) && (n = e.offsetWidth > 0 && at(s.width) / e.offsetWidth || 1, c = e.offsetHeight > 0 && at(s.height) / e.offsetHeight || 1); 687 var r = Ye(e) ? de(e) : window, o = r.visualViewport, u = !Va() && t, d = (s.left + (u && o ? o.offsetLeft : 0)) / n, i = (s.top + (u && o ? o.offsetTop : 0)) / c, y = s.width / n, w = s.height / c; 688 return { width: y, height: w, top: i, right: d + y, bottom: i + w, left: d, x: d, y: i }; 689} 690function Xt(e) { 691 var a = de(e), t = a.pageXOffset, s = a.pageYOffset; 692 return { scrollLeft: t, scrollTop: s }; 693} 694function Es(e) { 695 return { scrollLeft: e.scrollLeft, scrollTop: e.scrollTop }; 696} 697function Cs(e) { 698 return e === de(e) || !me(e) ? Xt(e) : Es(e); 699} 700function ke(e) { 701 return e ? (e.nodeName || "").toLowerCase() : null; 702} 703function Re(e) { 704 return ((Ye(e) ? e.ownerDocument : e.document) || window.document).documentElement; 705} 706function Jt(e) { 707 return nt(Re(e)).left + Xt(e).scrollLeft; 708} 709function De(e) { 710 return de(e).getComputedStyle(e); 711} 712function ea(e) { 713 var a = De(e), t = a.overflow, s = a.overflowX, n = a.overflowY; 714 return /auto|scroll|overlay|hidden/.test(t + n + s); 715} 716function _s(e) { 717 var a = e.getBoundingClientRect(), t = at(a.width) / e.offsetWidth || 1, s = at(a.height) / e.offsetHeight || 1; 718 return t !== 1 || s !== 1; 719} 720function Ts(e, a, t) { 721 t === void 0 && (t = false); 722 var s = me(a), n = me(a) && _s(a), c = Re(a), r = nt(e, n, t), o = { scrollLeft: 0, scrollTop: 0 }, u = { x: 0, y: 0 }; 723 return (s || !s && !t) && ((ke(a) !== "body" || ea(c)) && (o = Cs(a)), me(a) ? (u = nt(a, true), u.x += a.clientLeft, u.y += a.clientTop) : c && (u.x = Jt(c))), { x: r.left + o.scrollLeft - u.x, y: r.top + o.scrollTop - u.y, width: r.width, height: r.height }; 724} 725function ja(e) { 726 var a = nt(e), t = e.offsetWidth, s = e.offsetHeight; 727 return Math.abs(a.width - t) <= 1 && (t = a.width), Math.abs(a.height - s) <= 1 && (s = a.height), { x: e.offsetLeft, y: e.offsetTop, width: t, height: s }; 728} 729function Bt(e) { 730 return ke(e) === "html" ? e : e.assignedSlot || e.parentNode || (Qt(e) ? e.host : null) || Re(e); 731} 732function Ra(e) { 733 return ["html", "body", "#document"].indexOf(ke(e)) >= 0 ? e.ownerDocument.body : me(e) && ea(e) ? e : Ra(Bt(e)); 734} 735function pt(e, a) { 736 var t; 737 a === void 0 && (a = []); 738 var s = Ra(e), n = s === ((t = e.ownerDocument) == null ? void 0 : t.body), c = de(s), r = n ? [c].concat(c.visualViewport || [], ea(s) ? s : []) : s, o = a.concat(r); 739 return n ? o : o.concat(pt(Bt(r))); 740} 741function Ls(e) { 742 return ["table", "td", "th"].indexOf(ke(e)) >= 0; 743} 744function ga(e) { 745 return !me(e) || De(e).position === "fixed" ? null : e.offsetParent; 746} 747function Ds(e) { 748 var a = /firefox/i.test(Kt()), t = /Trident/i.test(Kt()); 749 if (t && me(e)) { 750 var s = De(e); 751 if (s.position === "fixed") return null; 752 } 753 var n = Bt(e); 754 for (Qt(n) && (n = n.host); me(n) && ["html", "body"].indexOf(ke(n)) < 0; ) { 755 var c = De(n); 756 if (c.transform !== "none" || c.perspective !== "none" || c.contain === "paint" || ["transform", "perspective"].indexOf(c.willChange) !== -1 || a && c.willChange === "filter" || a && c.filter && c.filter !== "none") return n; 757 n = n.parentNode; 758 } 759 return null; 760} 761function Mt(e) { 762 for (var a = de(e), t = ga(e); t && Ls(t) && De(t).position === "static"; ) t = ga(t); 763 return t && (ke(t) === "html" || ke(t) === "body" && De(t).position === "static") ? a : t || Ds(e) || a; 764} 765var be = "top", Oe = "bottom", je = "right", Le = "left", ta = "auto", Vt = [be, Oe, je, Le], rt = "start", mt = "end", As = "clippingParents", Na = "viewport", ft = "popper", Is = "reference", ha = Vt.reduce(function(e, a) { 766 return e.concat([a + "-" + rt, a + "-" + mt]); 767}, []), qs = [].concat(Vt, [ta]).reduce(function(e, a) { 768 return e.concat([a, a + "-" + rt, a + "-" + mt]); 769}, []), Ps = "beforeRead", Bs = "read", Ms = "afterRead", Vs = "beforeMain", js = "main", Rs = "afterMain", Ns = "beforeWrite", zs = "write", Us = "afterWrite", Hs = [Ps, Bs, Ms, Vs, js, Rs, Ns, zs, Us]; 770function Ws(e) { 771 var a = /* @__PURE__ */ new Map(), t = /* @__PURE__ */ new Set(), s = []; 772 e.forEach(function(c) { 773 a.set(c.name, c); 774 }); 775 function n(c) { 776 t.add(c.name); 777 var r = [].concat(c.requires || [], c.requiresIfExists || []); 778 r.forEach(function(o) { 779 if (!t.has(o)) { 780 var u = a.get(o); 781 u && n(u); 782 } 783 }), s.push(c); 784 } 785 return e.forEach(function(c) { 786 t.has(c.name) || n(c); 787 }), s; 788} 789function Fs(e) { 790 var a = Ws(e); 791 return Hs.reduce(function(t, s) { 792 return t.concat(a.filter(function(n) { 793 return n.phase === s; 794 })); 795 }, []); 796} 797function Ys(e) { 798 var a; 799 return function() { 800 return a || (a = new Promise(function(t) { 801 Promise.resolve().then(function() { 802 a = void 0, t(e()); 803 }); 804 })), a; 805 }; 806} 807function Gs(e) { 808 var a = e.reduce(function(t, s) { 809 var n = t[s.name]; 810 return t[s.name] = n ? Object.assign({}, n, s, { options: Object.assign({}, n.options, s.options), data: Object.assign({}, n.data, s.data) }) : s, t; 811 }, {}); 812 return Object.keys(a).map(function(t) { 813 return a[t]; 814 }); 815} 816function Ks(e, a) { 817 var t = de(e), s = Re(e), n = t.visualViewport, c = s.clientWidth, r = s.clientHeight, o = 0, u = 0; 818 if (n) { 819 c = n.width, r = n.height; 820 var d = Va(); 821 (d || !d && a === "fixed") && (o = n.offsetLeft, u = n.offsetTop); 822 } 823 return { width: c, height: r, x: o + Jt(e), y: u }; 824} 825function Zs(e) { 826 var a, t = Re(e), s = Xt(e), n = (a = e.ownerDocument) == null ? void 0 : a.body, c = Fe(t.scrollWidth, t.clientWidth, n ? n.scrollWidth : 0, n ? n.clientWidth : 0), r = Fe(t.scrollHeight, t.clientHeight, n ? n.scrollHeight : 0, n ? n.clientHeight : 0), o = -s.scrollLeft + Jt(e), u = -s.scrollTop; 827 return De(n || t).direction === "rtl" && (o += Fe(t.clientWidth, n ? n.clientWidth : 0) - c), { width: c, height: r, x: o, y: u }; 828} 829function Qs(e, a) { 830 var t = a.getRootNode && a.getRootNode(); 831 if (e.contains(a)) return true; 832 if (t && Qt(t)) { 833 var s = a; 834 do { 835 if (s && e.isSameNode(s)) return true; 836 s = s.parentNode || s.host; 837 } while (s); 838 } 839 return false; 840} 841function Zt(e) { 842 return Object.assign({}, e, { left: e.x, top: e.y, right: e.x + e.width, bottom: e.y + e.height }); 843} 844function Xs(e, a) { 845 var t = nt(e, false, a === "fixed"); 846 return t.top = t.top + e.clientTop, t.left = t.left + e.clientLeft, t.bottom = t.top + e.clientHeight, t.right = t.left + e.clientWidth, t.width = e.clientWidth, t.height = e.clientHeight, t.x = t.left, t.y = t.top, t; 847} 848function ya(e, a, t) { 849 return a === Na ? Zt(Ks(e, t)) : Ye(a) ? Xs(a, t) : Zt(Zs(Re(e))); 850} 851function Js(e) { 852 var a = pt(Bt(e)), t = ["absolute", "fixed"].indexOf(De(e).position) >= 0, s = t && me(e) ? Mt(e) : e; 853 return Ye(s) ? a.filter(function(n) { 854 return Ye(n) && Qs(n, s) && ke(n) !== "body"; 855 }) : []; 856} 857function el(e, a, t, s) { 858 var n = a === "clippingParents" ? Js(e) : [].concat(a), c = [].concat(n, [t]), r = c[0], o = c.reduce(function(u, d) { 859 var i = ya(e, d, s); 860 return u.top = Fe(i.top, u.top), u.right = Pt(i.right, u.right), u.bottom = Pt(i.bottom, u.bottom), u.left = Fe(i.left, u.left), u; 861 }, ya(e, r, s)); 862 return o.width = o.right - o.left, o.height = o.bottom - o.top, o.x = o.left, o.y = o.top, o; 863} 864function Ve(e) { 865 return e.split("-")[0]; 866} 867function st(e) { 868 return e.split("-")[1]; 869} 870function za(e) { 871 return ["top", "bottom"].indexOf(e) >= 0 ? "x" : "y"; 872} 873function Ua(e) { 874 var a = e.reference, t = e.element, s = e.placement, n = s ? Ve(s) : null, c = s ? st(s) : null, r = a.x + a.width / 2 - t.width / 2, o = a.y + a.height / 2 - t.height / 2, u; 875 switch (n) { 876 case be: 877 u = { x: r, y: a.y - t.height }; 878 break; 879 case Oe: 880 u = { x: r, y: a.y + a.height }; 881 break; 882 case je: 883 u = { x: a.x + a.width, y: o }; 884 break; 885 case Le: 886 u = { x: a.x - t.width, y: o }; 887 break; 888 default: 889 u = { x: a.x, y: a.y }; 890 } 891 var d = n ? za(n) : null; 892 if (d != null) { 893 var i = d === "y" ? "height" : "width"; 894 switch (c) { 895 case rt: 896 u[d] = u[d] - (a[i] / 2 - t[i] / 2); 897 break; 898 case mt: 899 u[d] = u[d] + (a[i] / 2 - t[i] / 2); 900 break; 901 } 902 } 903 return u; 904} 905function Ha() { 906 return { top: 0, right: 0, bottom: 0, left: 0 }; 907} 908function tl(e) { 909 return Object.assign({}, Ha(), e); 910} 911function al(e, a) { 912 return a.reduce(function(t, s) { 913 return t[s] = e, t; 914 }, {}); 915} 916function aa(e, a) { 917 a === void 0 && (a = {}); 918 var t = a, s = t.placement, n = s === void 0 ? e.placement : s, c = t.strategy, r = c === void 0 ? e.strategy : c, o = t.boundary, u = o === void 0 ? As : o, d = t.rootBoundary, i = d === void 0 ? Na : d, y = t.elementContext, w = y === void 0 ? ft : y, b = t.altBoundary, _ = b === void 0 ? false : b, k = t.padding, D = k === void 0 ? 0 : k, T = tl(typeof D != "number" ? D : al(D, Vt)), q = w === ft ? Is : ft, g = e.rects.popper, v = e.elements[_ ? q : w], O = el(Ye(v) ? v : v.contextElement || Re(e.elements.popper), u, i, r), h = nt(e.elements.reference), p = Ua({ reference: h, element: g, placement: n }), m = Zt(Object.assign({}, g, p)), C = w === ft ? m : h, A = { top: O.top - C.top + T.top, bottom: C.bottom - O.bottom + T.bottom, left: O.left - C.left + T.left, right: C.right - O.right + T.right }, z = e.modifiersData.offset; 919 if (w === ft && z) { 920 var j = z[n]; 921 Object.keys(A).forEach(function(X) { 922 var te = [je, Oe].indexOf(X) >= 0 ? 1 : -1, oe = [be, Oe].indexOf(X) >= 0 ? "y" : "x"; 923 A[X] += j[oe] * te; 924 }); 925 } 926 return A; 927} 928var ba = { placement: "bottom", modifiers: [], strategy: "absolute" }; 929function wa() { 930 for (var e = arguments.length, a = new Array(e), t = 0; t < e; t++) a[t] = arguments[t]; 931 return !a.some(function(s) { 932 return !(s && typeof s.getBoundingClientRect == "function"); 933 }); 934} 935function nl(e) { 936 e === void 0 && (e = {}); 937 var a = e, t = a.defaultModifiers, s = t === void 0 ? [] : t, n = a.defaultOptions, c = n === void 0 ? ba : n; 938 return function(o, u, d) { 939 d === void 0 && (d = c); 940 var i = { placement: "bottom", orderedModifiers: [], options: Object.assign({}, ba, c), modifiersData: {}, elements: { reference: o, popper: u }, attributes: {}, styles: {} }, y = [], w = false, b = { state: i, setOptions: function(T) { 941 var q = typeof T == "function" ? T(i.options) : T; 942 k(), i.options = Object.assign({}, c, i.options, q), i.scrollParents = { reference: Ye(o) ? pt(o) : o.contextElement ? pt(o.contextElement) : [], popper: pt(u) }; 943 var g = Fs(Gs([].concat(s, i.options.modifiers)));
944 return i.orderedModifiers = g.filter(function(v) { 945 return v.enabled; 946 }), _(), b.update(); 947 }, forceUpdate: function() { 948 if (!w) { 949 var T = i.elements, q = T.reference, g = T.popper; 950 if (wa(q, g)) { 951 i.rects = { reference: Ts(q, Mt(g), i.options.strategy === "fixed"), popper: ja(g) }, i.reset = false, i.placement = i.options.placement, i.orderedModifiers.forEach(function(A) { 952 return i.modifiersData[A.name] = Object.assign({}, A.data); 953 }); 954 for (var v = 0; v < i.orderedModifiers.length; v++) { 955 if (i.reset === true) { 956 i.reset = false, v = -1; 957 continue; 958 } 959 var O = i.orderedModifiers[v], h = O.fn, p = O.options, m = p === void 0 ? {} : p, C = O.name; 960 typeof h == "function" && (i = h({ state: i, options: m, name: C, instance: b }) || i); 961 } 962 } 963 } 964 }, update: Ys(function() { 965 return new Promise(function(D) { 966 b.forceUpdate(), D(i); 967 }); 968 }), destroy: function() { 969 k(), w = true; 970 } }; 971 if (!wa(o, u)) return b; 972 b.setOptions(d).then(function(D) { 973 !w && d.onFirstUpdate && d.onFirstUpdate(D); 974 }); 975 function _() { 976 i.orderedModifiers.forEach(function(D) { 977 var T = D.name, q = D.options, g = q === void 0 ? {} : q, v = D.effect; 978 if (typeof v == "function") { 979 var O = v({ state: i, name: T, instance: b, options: g }), h = function() { 980 }; 981 y.push(O || h); 982 } 983 }); 984 } 985 function k() { 986 y.forEach(function(D) { 987 return D(); 988 }), y = []; 989 } 990 return b; 991 }; 992} 993var _t = { passive: true }; 994function rl(e) { 995 var a = e.state, t = e.instance, s = e.options, n = s.scroll, c = n === void 0 ? true : n, r = s.resize, o = r === void 0 ? true : r, u = de(a.elements.popper), d = [].concat(a.scrollParents.reference, a.scrollParents.popper); 996 return c && d.forEach(function(i) { 997 i.addEventListener("scroll", t.update, _t); 998 }), o && u.addEventListener("resize", t.update, _t), function() { 999 c && d.forEach(function(i) { 1000 i.removeEventListener("scroll", t.update, _t); 1001 }), o && u.removeEventListener("resize", t.update, _t); 1002 }; 1003} 1004var sl = { name: "eventListeners", enabled: true, phase: "write", fn: function() { 1005}, effect: rl, data: {} }; 1006function ll(e) { 1007 var a = e.state, t = e.name; 1008 a.modifiersData[t] = Ua({ reference: a.rects.reference, element: a.rects.popper, placement: a.placement }); 1009} 1010var il = { name: "popperOffsets", enabled: true, phase: "read", fn: ll, data: {} }, ol = { top: "auto", right: "auto", bottom: "auto", left: "auto" }; 1011function ul(e, a) { 1012 var t = e.x, s = e.y, n = a.devicePixelRatio || 1; 1013 return { x: at(t * n) / n || 0, y: at(s * n) / n || 0 }; 1014} 1015function xa(e) { 1016 var a, t = e.popper, s = e.popperRect, n = e.placement, c = e.variation, r = e.offsets, o = e.position, u = e.gpuAcceleration, d = e.adaptive, i = e.roundOffsets, y = e.isFixed, w = r.x, b = w === void 0 ? 0 : w, _ = r.y, k = _ === void 0 ? 0 : _, D = typeof i == "function" ? i({ x: b, y: k }) : { x: b, y: k }; 1017 b = D.x, k = D.y; 1018 var T = r.hasOwnProperty("x"), q = r.hasOwnProperty("y"), g = Le, v = be, O = window; 1019 if (d) { 1020 var h = Mt(t), p = "clientHeight", m = "clientWidth"; 1021 if (h === de(t) && (h = Re(t), De(h).position !== "static" && o === "absolute" && (p = "scrollHeight", m = "scrollWidth")), h = h, n === be || (n === Le || n === je) && c === mt) { 1022 v = Oe;
vendor: 7,830 bytes, lines 1023-1136
1023 var C = y && h === O && O.visualViewport ? O.visualViewport.height : h[p]; 1024 k -= C - s.height, k *= u ? 1 : -1; 1025 } 1026 if (n === Le || (n === be || n === Oe) && c === mt) { 1027 g = je; 1028 var A = y && h === O && O.visualViewport ? O.visualViewport.width : h[m]; 1029 b -= A - s.width, b *= u ? 1 : -1; 1030 } 1031 } 1032 var z = Object.assign({ position: o }, d && ol), j = i === true ? ul({ x: b, y: k }, de(t)) : { x: b, y: k }; 1033 if (b = j.x, k = j.y, u) { 1034 var X; 1035 return Object.assign({}, z, (X = {}, X[v] = q ? "0" : "", X[g] = T ? "0" : "", X.transform = (O.devicePixelRatio || 1) <= 1 ? "translate(" + b + "px, " + k + "px)" : "translate3d(" + b + "px, " + k + "px, 0)", X)); 1036 } 1037 return Object.assign({}, z, (a = {}, a[v] = q ? k + "px" : "", a[g] = T ? b + "px" : "", a.transform = "", a)); 1038} 1039function dl(e) { 1040 var a = e.state, t = e.options, s = t.gpuAcceleration, n = s === void 0 ? true : s, c = t.adaptive, r = c === void 0 ? true : c, o = t.roundOffsets, u = o === void 0 ? true : o, d = { placement: Ve(a.placement), variation: st(a.placement), popper: a.elements.popper, popperRect: a.rects.popper, gpuAcceleration: n, isFixed: a.options.strategy === "fixed" }; 1041 a.modifiersData.popperOffsets != null && (a.styles.popper = Object.assign({}, a.styles.popper, xa(Object.assign({}, d, { offsets: a.modifiersData.popperOffsets, position: a.options.strategy, adaptive: r, roundOffsets: u })))), a.modifiersData.arrow != null && (a.styles.arrow = Object.assign({}, a.styles.arrow, xa(Object.assign({}, d, { offsets: a.modifiersData.arrow, position: "absolute", adaptive: false, roundOffsets: u })))), a.attributes.popper = Object.assign({}, a.attributes.popper, { "data-popper-placement": a.placement }); 1042} 1043var cl = { name: "computeStyles", enabled: true, phase: "beforeWrite", fn: dl, data: {} }; 1044function fl(e) { 1045 var a = e.state; 1046 Object.keys(a.elements).forEach(function(t) { 1047 var s = a.styles[t] || {}, n = a.attributes[t] || {}, c = a.elements[t]; 1048 !me(c) || !ke(c) || (Object.assign(c.style, s), Object.keys(n).forEach(function(r) { 1049 var o = n[r]; 1050 o === false ? c.removeAttribute(r) : c.setAttribute(r, o === true ? "" : o); 1051 })); 1052 }); 1053} 1054function pl(e) { 1055 var a = e.state, t = { popper: { position: a.options.strategy, left: "0", top: "0", margin: "0" }, arrow: { position: "absolute" }, reference: {} }; 1056 return Object.assign(a.elements.popper.style, t.popper), a.styles = t, a.elements.arrow && Object.assign(a.elements.arrow.style, t.arrow), function() { 1057 Object.keys(a.elements).forEach(function(s) { 1058 var n = a.elements[s], c = a.attributes[s] || {}, r = Object.keys(a.styles.hasOwnProperty(s) ? a.styles[s] : t[s]), o = r.reduce(function(u, d) { 1059 return u[d] = "", u; 1060 }, {}); 1061 !me(n) || !ke(n) || (Object.assign(n.style, o), Object.keys(c).forEach(function(u) { 1062 n.removeAttribute(u); 1063 })); 1064 }); 1065 }; 1066} 1067var vl = { name: "applyStyles", enabled: true, phase: "write", fn: fl, effect: pl, requires: ["computeStyles"] }, ml = [sl, il, cl, vl], gl = nl({ defaultModifiers: ml }); 1068function hl(e) { 1069 return e === "x" ? "y" : "x"; 1070} 1071function Dt(e, a, t) { 1072 return Fe(e, Pt(a, t)); 1073} 1074function yl(e, a, t) { 1075 var s = Dt(e, a, t); 1076 return s > t ? t : s; 1077} 1078function bl(e) { 1079 var a = e.state, t = e.options, s = e.name, n = t.mainAxis, c = n === void 0 ? true : n, r = t.altAxis, o = r === void 0 ? false : r, u = t.boundary, d = t.rootBoundary, i = t.altBoundary, y = t.padding, w = t.tether, b = w === void 0 ? true : w, _ = t.tetherOffset, k = _ === void 0 ? 0 : _, D = aa(a, { boundary: u, rootBoundary: d, padding: y, altBoundary: i }), T = Ve(a.placement), q = st(a.placement), g = !q, v = za(T), O = hl(v), h = a.modifiersData.popperOffsets, p = a.rects.reference, m = a.rects.popper, C = typeof k == "function" ? k(Object.assign({}, a.rects, { placement: a.placement })) : k, A = typeof C == "number" ? { mainAxis: C, altAxis: C } : Object.assign({ mainAxis: 0, altAxis: 0 }, C), z = a.modifiersData.offset ? a.modifiersData.offset[a.placement] : null, j = { x: 0, y: 0 }; 1080 if (h) { 1081 if (c) { 1082 var X, te = v === "y" ? be : Le, oe = v === "y" ? Oe : je, J = v === "y" ? "height" : "width", K = h[v], $e = K + D[te], Y = K - D[oe], ae = b ? -m[J] / 2 : 0, Z = q === rt ? p[J] : m[J], le = q === rt ? -m[J] : -p[J], fe = a.elements.arrow, Q = b && fe ? ja(fe) : { width: 0, height: 0 }, N = a.modifiersData["arrow#persistent"] ? a.modifiersData["arrow#persistent"].padding : Ha(), E = N[te], B = N[oe], se = Dt(0, p[J], Q[J]), ue = g ? p[J] / 2 - ae - se - E - A.mainAxis : Z - se - E - A.mainAxis, lt = g ? -p[J] / 2 + ae + se + B + A.mainAxis : le + se + B + A.mainAxis, it = a.elements.arrow && Mt(a.elements.arrow), Ae = it ? v === "y" ? it.clientTop || 0 : it.clientLeft || 0 : 0, bt = (X = z == null ? void 0 : z[v]) != null ? X : 0, jt = K + ue - bt - Ae, Ie = K + lt - bt, wt = Dt(b ? Pt($e, jt) : $e, K, b ? Fe(Y, Ie) : Y); 1083 h[v] = wt, j[v] = wt - K; 1084 } 1085 if (o) { 1086 var qe, pe = v === "x" ? be : Le, ve = v === "x" ? Oe : je, ge = h[O], Ee = O === "y" ? "height" : "width", xt = ge + D[pe], ot = ge - D[ve], ut = [be, Le].indexOf(T) !== -1, he = (qe = z == null ? void 0 : z[O]) != null ? qe : 0, dt = ut ? xt : ge - p[Ee] - m[Ee] - he + A.altAxis, Pe = ut ? ge + p[Ee] + m[Ee] - he - A.altAxis : ot, Ne = b && ut ? yl(dt, ge, Pe) : Dt(b ? dt : xt, ge, b ? Pe : ot); 1087 h[O] = Ne, j[O] = Ne - ge; 1088 } 1089 a.modifiersData[s] = j; 1090 } 1091} 1092var wl = { name: "preventOverflow", enabled: true, phase: "main", fn: bl, requiresIfExists: ["offset"] }, xl = { left: "right", right: "left", bottom: "top", top: "bottom" }; 1093function At(e) { 1094 return e.replace(/left|right|bottom|top/g, function(a) { 1095 return xl[a]; 1096 }); 1097} 1098var Sl = { start: "end", end: "start" }; 1099function Sa(e) { 1100 return e.replace(/start|end/g, function(a) { 1101 return Sl[a]; 1102 }); 1103} 1104function kl(e, a) { 1105 a === void 0 && (a = {}); 1106 var t = a, s = t.placement, n = t.boundary, c = t.rootBoundary, r = t.padding, o = t.flipVariations, u = t.allowedAutoPlacements, d = u === void 0 ? qs : u, i = st(s), y = i ? o ? ha : ha.filter(function(_) { 1107 return st(_) === i; 1108 }) : Vt, w = y.filter(function(_) { 1109 return d.indexOf(_) >= 0; 1110 }); 1111 w.length === 0 && (w = y); 1112 var b = w.reduce(function(_, k) { 1113 return _[k] = aa(e, { placement: k, boundary: n, rootBoundary: c, padding: r })[Ve(k)], _; 1114 }, {}); 1115 return Object.keys(b).sort(function(_, k) { 1116 return b[_] - b[k]; 1117 }); 1118} 1119function Ol(e) { 1120 if (Ve(e) === ta) return []; 1121 var a = At(e); 1122 return [Sa(e), a, Sa(a)]; 1123} 1124function $l(e) { 1125 var a = e.state, t = e.options, s = e.name; 1126 if (!a.modifiersData[s]._skip) { 1127 for (var n = t.mainAxis, c = n === void 0 ? true : n, r = t.altAxis, o = r === void 0 ? true : r, u = t.fallbackPlacements, d = t.padding, i = t.boundary, y = t.rootBoundary, w = t.altBoundary, b = t.flipVariations, _ = b === void 0 ? true : b, k = t.allowedAutoPlacements, D = a.options.placement, T = Ve(D), q = T === D, g = u || (q || !_ ? [At(D)] : Ol(D)), v = [D].concat(g).reduce(function(Q, N) { 1128 return Q.concat(Ve(N) === ta ? kl(a, { placement: N, boundary: i, rootBoundary: y, padding: d, flipVariations: _, allowedAutoPlacements: k }) : N); 1129 }, []), O = a.rects.reference, h = a.rects.popper, p = /* @__PURE__ */ new Map(), m = true, C = v[0], A = 0; A < v.length; A++) { 1130 var z = v[A], j = Ve(z), X = st(z) === rt, te = [be, Oe].indexOf(j) >= 0, oe = te ? "width" : "height", J = aa(a, { placement: z, boundary: i, rootBoundary: y, altBoundary: w, padding: d }), K = te ? X ? je : Le : X ? Oe : be; 1131 O[oe] > h[oe] && (K = At(K)); 1132 var $e = At(K), Y = []; 1133 if (c && Y.push(J[j] <= 0), o && Y.push(J[K] <= 0, J[$e] <= 0), Y.every(function(Q) { 1134 return Q; 1135 })) { 1136 C = z, m = false;
1137 break; 1138 } 1139 p.set(z, Y); 1140 } 1141 if (m) for (var ae = _ ? 3 : 1, Z = function(N) { 1142 var E = v.find(function(B) { 1143 var se = p.get(B); 1144 if (se) return se.slice(0, N).every(function(ue) { 1145 return ue; 1146 }); 1147 }); 1148 if (E) return C = E, "break"; 1149 }, le = ae; le > 0; le--) { 1150 var fe = Z(le); 1151 if (fe === "break") break; 1152 } 1153 a.placement !== C && (a.modifiersData[s]._skip = true, a.placement = C, a.reset = true); 1154 } 1155} 1156var El = { name: "flip", enabled: true, phase: "main", fn: $l, requiresIfExists: ["offset"], data: { _skip: false } }; 1157function Cl(e, a, t) { 1158 const { disabled: s, appendTo: n, appendToBody: c, openDirection: r } = ce(e), o = yt().proxy, u = t.multiselect, d = t.dropdown, i = W(false), y = W(null), w = W(null), b = ee(() => n.value || c.value), _ = ee(() => r.value === "top" && w.value === "bottom" || r.value === "bottom" && w.value !== "top" ? "bottom" : "top"), k = () => { 1159 i.value || s.value || (i.value = true, a.emit("open", o), b.value && et(() => { 1160 T(); 1161 })); 1162 }, D = () => { 1163 i.value && (i.value = false, a.emit("close", o)); 1164 }, T = () => { 1165 if (!y.value) return; 1166 let g = parseInt(window.getComputedStyle(d.value).borderTopWidth.replace("px", "")), v = parseInt(window.getComputedStyle(d.value).borderBottomWidth.replace("px", "")); 1167 y.value.setOptions((O) => ({ ...O, modifiers: [...O.modifiers, { name: "offset", options: { offset: [0, (_.value === "top" ? g : v) * -1] } }] })), y.value.update(); 1168 }, q = (g) => { 1169 for (; g && g !== document.body; ) { 1170 if (getComputedStyle(g).position === "fixed") return true; 1171 g = g.parentElement; 1172 } 1173 return false; 1174 }; 1175 return Ge(() => { 1176 b.value && (y.value = gl(u.value, d.value, { strategy: q(u.value) ? "fixed" : void 0, placement: r.value, modifiers: [wl, El, { name: "sameWidth", enabled: true, phase: "beforeWrite", requires: ["computeStyles"], fn: ({ state: g }) => { 1177 g.styles.popper.width = `${g.rects.reference.width}px`; 1178 }, effect: ({ state: g }) => { 1179 g.elements.popper.style.width = `${g.elements.reference.offsetWidth}px`; 1180 } }, { name: "toggleClass", enabled: true, phase: "write", fn({ state: g }) { 1181 w.value = g.placement; 1182 } }] })); 1183 }), bn(() => { 1184 !b.value || !y.value || (y.value.destroy(), y.value = null); 1185 }), { popper: y, isOpen: i, open: k, close: D, placement: _, updatePopper: T }; 1186} 1187function _l(e, a, t) { 1188 const { searchable: s, disabled: n, clearOnBlur: c } = ce(e), r = t.input, o = t.open, u = t.close, d = t.clearSearch, i = t.isOpen, y = t.wrapper, w = t.tags, b = W(false), _ = W(false), k = ee(() => s.value || n.value ? -1 : 0), D = () => { 1189 s.value && r.value.blur(), y.value.blur(); 1190 }, T = () => { 1191 s.value && !n.value && r.value.focus(); 1192 }, q = (m = true) => { 1193 n.value || (b.value = true, m && o()); 1194 }, g = () => { 1195 b.value = false, setTimeout(() => { 1196 b.value || (u(), c.value && d()); 1197 }, 1); 1198 }; 1199 return { tabindex: k, isActive: b, mouseClicked: _, blur: D, focus: T, activate: q, deactivate: g, handleFocusIn: (m) => { 1200 m.target.closest("[data-tags]") && m.target.nodeName !== "INPUT" || m.target.closest("[data-clear]") || q(_.value); 1201 }, handleFocusOut: () => { 1202 g(); 1203 }, handleCaretClick: () => { 1204 g(), D(); 1205 }, handleMousedown: (m) => { 1206 _.value = true, i.value && (m.target.isEqualNode(y.value) || m.target.isEqualNode(w.value)) ? setTimeout(() => { 1207 g(); 1208 }, 0) : !i.value && (document.activeElement.isEqualNode(y.value) || document.activeElement.isEqualNode(r.value)) && q(), setTimeout(() => { 1209 _.value = false; 1210 }, 0); 1211 } }; 1212} 1213function Tl(e, a, t) { 1214 const { mode: s, addTagOn: n, openDirection: c, searchable: r, showOptions: o, valueProp: u, groups: d, addOptionOn: i, createTag: y, createOption: w, reverse: b } = ce(e), _ = yt().proxy, k = t.iv, D = t.update, T = t.deselect, q = t.search, g = t.setPointer, v = t.selectPointer, O = t.backwardPointer, h = t.forwardPointer, p = t.multiselect, m = t.wrapper, C = t.tags, A = t.isOpen, z = t.open, j = t.blur, X = t.fo, te = ee(() => y.value || w.value || false), oe = ee(() => n.value !== void 0 ? n.value : i.value !== void 0 ? i.value : ["enter"]), J = () => { 1215 s.value === "tags" && !o.value && te.value && r.value && !d.value && g(X.value[X.value.map((Y) => Y[u.value]).indexOf(q.value)]); 1216 }; 1217 return { handleKeydown: (Y) => { 1218 a.emit("keydown", Y, _); 1219 let ae, Z;
1220 switch (["ArrowLeft", "ArrowRight", "Enter"].indexOf(Y.key) !== -1 && s.value === "tags" && (ae = [...p.value.querySelectorAll("[data-tags] > *")].filter((le) => le !== C.value), Z = ae.findIndex((le) => le === document.activeElement)), Y.key) { 1221 case "Backspace": 1222 if (s.value === "single" || r.value && [null, ""].indexOf(q.value) === -1 || k.value.length === 0) return; 1223 let le = k.value.filter((fe) => !fe.disabled && fe.remove !== false); 1224 le.length && T(le[le.length - 1]); 1225 break; 1226 case "Enter": 1227 if (Y.preventDefault(), Y.keyCode === 229) return; 1228 if (Z !== -1 && Z !== void 0) { 1229 D([...k.value].filter((fe, Q) => Q !== Z)), Z === ae.length - 1 && (ae.length - 1 ? ae[ae.length - 2].focus() : r.value ? C.value.querySelector("input").focus() : m.value.focus()); 1230 return; 1231 } 1232 if (oe.value.indexOf("enter") === -1 && te.value) return; 1233 J(), v(); 1234 break; 1235 case " ": 1236 if (!te.value && !r.value) { 1237 Y.preventDefault(), J(), v(); 1238 return; 1239 } 1240 if (!te.value) return false; 1241 if (oe.value.indexOf("space") === -1 && te.value) return; 1242 Y.preventDefault(), J(), v(); 1243 break; 1244 case "Tab": 1245 case ";": 1246 case ",": 1247 if (oe.value.indexOf(Y.key.toLowerCase()) === -1 || !te.value) return; 1248 J(), v(), Y.preventDefault(); 1249 break; 1250 case "Escape": 1251 j(); 1252 break; 1253 case "ArrowUp":
1254 if (Y.preventDefault(), !o.value) return; 1255 A.value || z(), O(); 1256 break; 1257 case "ArrowDown": 1258 if (Y.preventDefault(), !o.value) return; 1259 A.value || z(), h(); 1260 break; 1261 case "ArrowLeft": 1262 if (r.value && C.value && C.value.querySelector("input").selectionStart || Y.shiftKey || s.value !== "tags" || !k.value || !k.value.length) return; 1263 Y.preventDefault(), Z === -1 ? ae[ae.length - 1].focus() : Z > 0 && ae[Z - 1].focus(); 1264 break; 1265 case "ArrowRight": 1266 if (Z === -1 || Y.shiftKey || s.value !== "tags" || !k.value || !k.value.length) return; 1267 Y.preventDefault(), ae.length > Z + 1 ? ae[Z + 1].focus() : r.value ? C.value.querySelector("input").focus() : r.value || m.value.focus(); 1268 break; 1269 } 1270 }, handleKeyup: (Y) => { 1271 a.emit("keyup", Y, _); 1272 }, preparePointer: J }; 1273} 1274function Ll(e, a, t) { 1275 const { classes: s, disabled: n, showOptions: c, breakTags: r } = ce(e), o = t.isOpen, u = t.isPointed, d = t.isSelected, i = t.isDisabled, y = t.isActive, w = t.canPointGroups, b = t.resolving, _ = t.fo, k = t.placement, D = ee(() => ({ container: "multiselect", containerDisabled: "is-disabled", containerOpen: "is-open", containerOpenTop: "is-open-top", containerActive: "is-active", wrapper: "multiselect-wrapper", singleLabel: "multiselect-single-label", singleLabelText: "multiselect-single-label-text", multipleLabel: "multiselect-multiple-label", search: "multiselect-search", tags: "multiselect-tags", tag: "multiselect-tag", tagWrapper: "multiselect-tag-wrapper", tagWrapperBreak: "multiselect-tag-wrapper-break", tagDisabled: "is-disabled", tagRemove: "multiselect-tag-remove", tagRemoveIcon: "multiselect-tag-remove-icon", tagsSearchWrapper: "multiselect-tags-search-wrapper", tagsSearch: "multiselect-tags-search", tagsSearchCopy: "multiselect-tags-search-copy", placeholder: "multiselect-placeholder", caret: "multiselect-caret", caretOpen: "is-open", clear: "multiselect-clear", clearIcon: "multiselect-clear-icon", spinner: "multiselect-spinner", inifinite: "multiselect-inifite", inifiniteSpinner: "multiselect-inifite-spinner", dropdown: "multiselect-dropdown", dropdownTop: "is-top", dropdownHidden: "is-hidden", options: "multiselect-options", optionsTop: "is-top", group: "multiselect-group", groupLabel: "multiselect-group-label", groupLabelPointable: "is-pointable", groupLabelPointed: "is-pointed", groupLabelSelected: "is-selected", groupLabelDisabled: "is-disabled", groupLabelSelectedPointed: "is-selected is-pointed", groupLabelSelectedDisabled: "is-selected is-disabled", groupOptions: "multiselect-group-options", option: "multiselect-option", optionPointed: "is-pointed", optionSelected: "is-selected", optionDisabled: "is-disabled", optionSelectedPointed: "is-selected is-pointed", optionSelectedDisabled: "is-selected is-disabled", noOptions: "multiselect-no-options", noResults: "multiselect-no-results", fakeInput: "multiselect-fake-input", assist: "multiselect-assistive-text", spacer: "multiselect-spacer", ...s.value })), T = ee(() => !!(o.value && c.value && (!b.value || b.value && _.value.length))); 1276 return { classList: V(() => { 1277 const g = D.value; 1278 return { container: [g.container].concat(n.value ? g.containerDisabled : []).concat(T.value && k.value === "top" ? g.containerOpenTop : []).concat(T.value && k.value !== "top" ? g.containerOpen : []).concat(y.value ? g.containerActive : []), wrapper: g.wrapper, spacer: g.spacer, singleLabel: g.singleLabel, singleLabelText: g.singleLabelText, multipleLabel: g.multipleLabel, search: g.search, tags: g.tags, tag: [g.tag].concat(n.value ? g.tagDisabled : []), tagWrapper: [g.tagWrapper, r.value ? g.tagWrapperBreak : null], tagDisabled: g.tagDisabled, tagRemove: g.tagRemove, tagRemoveIcon: g.tagRemoveIcon, tagsSearchWrapper: g.tagsSearchWrapper, tagsSearch: g.tagsSearch, tagsSearchCopy: g.tagsSearchCopy, placeholder: g.placeholder, caret: [g.caret].concat(o.value ? g.caretOpen : []), clear: g.clear, clearIcon: g.clearIcon, spinner: g.spinner, inifinite: g.inifinite, inifiniteSpinner: g.inifiniteSpinner, dropdown: [g.dropdown].concat(k.value === "top" ? g.dropdownTop : []).c
1278oncat(!o.value || !c.value || !T.value ? g.dropdownHidden : []), options: [g.options].concat(k.value === "top" ? g.optionsTop : []), group: g.group, groupLabel: (v) => { 1279 let O = [g.groupLabel]; 1280 return u(v) ? O.push(d(v) ? g.groupLabelSelectedPointed : g.groupLabelPointed) : d(v) && w.value ? O.push(i(v) ? g.groupLabelSelectedDisabled : g.groupLabelSelected) : i(v) && O.push(g.groupLabelDisabled), w.value && O.push(g.groupLabelPointable), O; 1281 }, groupOptions: g.groupOptions, option: (v, O) => { 1282 let h = [g.option]; 1283 return u(v) ? h.push(d(v) ? g.optionSelectedPointed : g.optionPointed) : d(v) ? h.push(i(v) ? g.optionSelectedDisabled : g.optionSelected) : (i(v) || O && i(O)) && h.push(g.optionDisabled), h; 1284 }, noOptions: g.noOptions, noResults: g.noResults, assist: g.assist, fakeInput: g.fakeInput }; 1285 }), showDropdown: T }; 1286} 1287function Dl(e, a, t) { 1288 const { limit: s, infinite: n } = ce(e), c = t.isOpen, r = t.offset, o = t.search, u = t.pfo, d = t.eo, i = W(null), y = Je(null), w = ee(() => r.value < u.value.length), b = (k) => { 1289 const { isIntersecting: D, target: T } = k[0]; 1290 if (D) { 1291 const q = T.offsetParent, g = q.scrollTop; 1292 r.value += s.value == -1 ? 10 : s.value, et(() => { 1293 q.scrollTop = g; 1294 }); 1295 } 1296 }, _ = () => { 1297 c.value && r.value < u.value.length ? i.value.observe(y.value) : !c.value && i.value && i.value.disconnect(); 1298 }; 1299 return ie(c, () => { 1300 n.value && _(); 1301 }), ie(o, () => { 1302 n.value && (r.value = s.value, _()); 1303 }, { flush: "post" }), ie(d, () => { 1304 n.value && _(); 1305 }, { immediate: false, flush: "post" }), Ge(() => { 1306 window && window.IntersectionObserver && (i.value = new IntersectionObserver(b)); 1307 }), { hasMore: w, infiniteLoader: y }; 1308} 1309function Al(e, a, t) { 1310 const { placeholder: s, id: n, valueProp: c, label: r, mode: o, groupLabel: u, aria: d, searchable: i } = ce(e), y = t.pointer, w = t.iv, b = t.hasSelected, _ = t.multipleLabelText, k = W(null), D = ee(() => `${n.value ? n.value + "-" : ""}assist`), T = ee(() => `${n.value ? n.value + "-" : ""}multiselect-options`), q = ee(() => { 1311 if (y.value) { 1312 let j = n.value ? `${n.value}-` : ""; 1313 return j += `${y.value.group ? "multiselect-group" : "multiselect-option"}-`, j += y.value.group ? y.value.index : y.value[c.value], j; 1314 } 1315 }), g = ee(() => s.value), v = ee(() => o.value !== "single"), O = V(() => o.value === "single" && b.value ? w.value[r.value] : o.value === "multiple" && b.value ? _.value : o.value === "tags" && b.value ? w.value.map((j) => j[r.value]).join(", ") : ""), h = V(() => { 1316 let j = { ...d.value }; 1317 return i.value && (j["aria-labelledby"] = j["aria-labelledby"] ? `${D.value} ${j["aria-labelledby"]}` : D.value, O.value && j["aria-label"] && (j["aria-label"] = `${O.value}, ${j["aria-label"]}`)), j; 1318 }), p = (j) => `${n.value ? n.value + "-" : ""}multiselect-option-${j[c.value]}`, m = (j) => `${n.value ? n.value + "-" : ""}multiselect-group-${j.index}`, C = (j) => `${j}`, A = (j) => `${j}`, z = (j) => `${j} \u274E`; 1319 return Ge(() => { 1320 if (n.value && document && document.querySelector) { 1321 let j = document.querySelector(`[for="${n.value}"]`); 1322 k.value = j ? j.innerText : null; 1323 } 1324 }), { arias: h, ariaLabel: O, ariaAssist: D, ariaControls: T, ariaPlaceholder: g, ariaMultiselectable: v, ariaActiveDescendant: q, ariaOptionId: p, ariaOptionLabel: C, ariaGroupId: m, ariaGroupLabel: A, ariaTagLabel: z }; 1325} 1326function Il(e, a, t) { 1327 const { locale: s, fallbackLocale: n } = ce(e); 1328 return { localize: (r) => !r || typeof r != "object" ? r : r && r[s.value] ? r[s.value] : r && s.value && r[s.value.toUpperCase()] ? r[s.value.toUpperCase()] : r && r[n.value] ? r[n.value] : r && n.value && r[n.value.toUpperCase()] ? r[n.value.toUpperCase()] : r && Object.keys(r)[0] ? r[Object.keys(r)[0]] : "" }; 1329} 1330function ql(e, a, t) { 1331 const s = Je(null), n = Je(null), c = Je(null), r = Je(null), o = Je(null); 1332 return { multiselect: s, wrapper: n, tags: c, input: r, dropdown: o }; 1333} 1334function Pl(e, a, t, s = {}) { 1335 return t.forEach((n) => { 1336 s = { ...s, ...n(e, a, s) }; 1337 }), s; 1338} 1339var na = { name: "Multiselect", emits: ["paste", "open", "close", "select", "deselect", "input", "search-ch
1339ange", "tag", "option", "update:modelValue", "change", "clear", "keydown", "keyup", "max", "create"], props: { value: { required: false }, modelValue: { required: false }, options: { type: [Array, Object, Function], required: false, default: () => [] }, id: { type: [String, Number], required: false, default: void 0 }, name: { type: [String, Number], required: false, default: "multiselect" }, disabled: { type: Boolean, required: false, default: false }, label: { type: String, required: false, default: "label" }, trackBy: { type: [String, Array], required: false, default: void 0 }, valueProp: { type: String, required: false, default: "value" }, placeholder: { type: String, required: false, default: null }, mode: { type: String, required: false, default: "single" }, searchable: { type: Boolean, required: false, default: false }, limit: { type: Number, required: false, default: -1 }, hideSelected: { type: Boolean, required: false, default: true }, createTag: { type: Boolean, required: false, default: void 0 }, createOption: { type: Boolean, required: false, default: void 0 }, appendNewTag: { type: Boolean, required: false, default: void 0 }, appendNewOption: { type: Boolean, required: false, default: void 0 }, addTagOn: { type: Array, required: false, default: void 0 }, addOptionOn: { type: Array, required: false, default: void 0 }, caret: { type: Boolean, required: false, default: true }, loading: { type: Boolean, required: false, default: false }, noOptionsText: { type: [String, Object], required: false, default: "The list is empty" }, noResultsText: { type: [String, Object], required: false, default: "No results found" }, multipleLabel: { type: Function, required: false, default: void 0 }, object: { type: Boolean, required: false, default: false }, delay: { type: Number, required: false, default: -1 }, minChars: { type: Number, required: false, default: 0 }, resolveOnLoad: { type: Boolean, required: false, default: true }, filterResults: { type: Boolean, required: false, default: true }, clearOnSearch: { type: Boolean, required: false, default: false }, clearOnSelect: { type: Boolean, required: false, default: true }, canDeselect: { type: Boolean, required: false, default: true }, canClear: { type: Boolean, required: false, default: true }, max: { type: Number, required: false, default: -1 }, showOptions: { type: Boolean, required: false, default: true }, required: { type: Boolean, required: false, default: false }, openDirection: { type: String, required: false, default: "bottom" }, nativeSupport: { type: Boolean, required: false, default: false }, classes: { type: Object, required: false, default: () => ({}) }, strict: { type: Boolean, required: false, default: true }, closeOnSelect: { type: Boolean, required: false, default: true }, closeOnDeselect: { type: Boolean, required: false, default: false }, autocomplete: { type: String, required: false, default: void 0 }, groups: { type: Boolean, required: false, default: false }, groupLabel: { type: String, required: false, default: "label" }, groupOptions: { type: String, required: false, default: "options" }, groupHideEmpty: { type: Boolean, required: false, default: false }, groupSelect: { type: Boolean, required: false, default: true }, inputType: { type: String, required: false, default: "text" }, attrs: { required: false, type: Object, default: () => ({}) }, onCreate: { required: false, type: Function, default: void 0 }, disabledProp: { type: String, required: false, default: "disabled" }, searchStart: { type: Boolean, required: false, default: false }, reverse: { type: Boolean, required: false, default: false }, regex: { type: [Object, String, RegExp], required: false, default: void 0 }, rtl: { type: Boolean, required: false, default: false }, infinite: { type: Boolean, required: false, default: false }, aria: { required: false, type: Object, default: () => ({}) }, clearOnBlur: { required: false, type: Boolean, default: true }, locale: { required: false, type: String, default: null }, fallbackLocale: { required: false, type: String, default: "en" }
1339, searchFilter: { required: false, type: Function, default: null }, allowAbsent: { required: false, type: Boolean, default: false }, appendToBody: { required: false, type: Boolean, default: false }, closeOnScroll: { required: false, type: Boolean, default: false }, breakTags: { required: false, type: Boolean, default: false }, appendTo: { required: false, type: String, default: void 0 } }, setup(e, a) { 1340 return Pl(e, a, [ql, Il, bs, xs, Cl, ws, ys, _l, Os, Dl, $s, Tl, Ll, Al]); 1341}, beforeMount() { 1342 (this.$root.constructor && this.$root.constructor.version && this.$root.constructor.version.match(/^2\./) || this.vueVersionMs === 2) && (this.$options.components.Teleport || (this.$options.components.Teleport = { render() { 1343 return this.$slots.default ? this.$slots.default[0] : null; 1344 } })); 1345} }; 1346const Bl = ["id", "dir"], Ml = ["tabindex", "aria-controls", "aria-placeholder", "aria-expanded", "aria-activedescendant", "aria-multiselectable", "role"], Vl = ["type", "modelValue", "value", "autocomplete", "id", "aria-controls", "aria-placeholder", "aria-expanded", "aria-activedescendant", "aria-multiselectable"], jl = ["onKeyup", "aria-label"], Rl = ["onClick"], Nl = ["type", "modelValue", "value", "id", "autocomplete", "aria-controls", "aria-placeholder", "aria-expanded", "aria-activedescendant", "aria-multiselectable"], zl = ["innerHTML"], Ul = ["id"], Hl = ["id"], Wl = ["id", "aria-label", "aria-selected"], Fl = ["data-pointed", "onMouseenter", "onClick"], Yl = ["innerHTML"], Gl = ["aria-label"], Kl = ["data-pointed", "data-selected", "onMouseenter", "onClick", "id", "aria-selected", "aria-label"], Zl = ["data-pointed", "data-selected", "onMouseenter", "onClick", "id", "aria-selected", "aria-label"], Ql = ["innerHTML"], Xl = ["innerHTML"], Jl = ["value"], ei = ["name", "value"], ti = ["name", "value"], ai = ["id"]; 1347function ni(e, a, t, s, n, c) { 1348 return x(), L("div", { ref: "multiselect", class: R(e.classList.container), id: t.searchable ? void 0 : t.id, dir: t.rtl ? "rtl" : void 0, onFocusin: a[12] || (a[12] = (...r) => e.handleFocusIn && e.handleFocusIn(...r)), onFocusout: a[13] || (a[13] = (...r) => e.handleFocusOut && e.handleFocusOut(...r)), onKeyup: a[14] || (a[14] = (...r) => e.handleKeyup && e.handleKeyup(...r)), onKeydown: a[15] || (a[15] = (...r) => e.handleKeydown && e.handleKeydown(...r)) }, [f("div", He({ class: e.classList.wrapper, onMousedown: a[9] || (a[9] = (...r) => e.handleMousedown && e.handleMousedown(...r)), ref: "wrapper", tabindex: e.tabindex, "aria-controls": t.searchable ? void 0 : e.ariaControls, "aria-placeholder": t.searchable ? void 0 : e.ariaPlaceholder, "aria-expanded": t.searchable ? void 0 : e.isOpen, "aria-activedescendant": t.searchable ? void 0 : e.ariaActiveDescendant, "aria-multiselectable": t.searchable ? void 0 : e.ariaMultiselectable, role: t.searchable ? void 0 : "combobox" }, t.searchable ? {} : e.arias), [I(" Search "), t.mode !== "tags" && t.searchable && !t.disabled ? (x(), L("input", He({ key: 0, type: t.inputType, modelValue: e.search, value: e.search, class: e.classList.search, autocomplete: t.autocomplete, id: t.searchable ? t.id : void 0, onInput: a[0] || (a[0] = (...r) => e.handleSearchInput && e.handleSearchInput(...r)), onKeypress: a[1] || (a[1] = (...r) => e.handleKeypress && e.handleKeypress(...r)), onPaste: a[2] || (a[2] = Tt((...r) => e.handlePaste && e.handlePaste(...r), ["stop"])), ref: "input", "aria-controls": e.ariaControls, "aria-placeholder": e.ariaPlaceholder, "aria-expanded": e.isOpen, "aria-activedescendant": e.ariaActiveDescendant, "aria-multiselectable": e.ariaMultiselectable, role: "combobox" }, { ...t.attrs, ...e.arias }), null, 16, Vl)) : I("v-if", true), I(" Tags (with search) "), t.mode == "tags" ? (x(), L("div", { key: 1, class: R(e.classList.tags), "data-tags": "" }, [(x(true), L(ye, null, Me(e.iv, (r, o, u) => ne(e.$slots, "tag", { option: r, handleTagRemove: e.handleTagRemove, disabled: t.disabled }, () => [(x(), L("span", { class: R([e.classList.tag, r.disabled ? e.classList.tagDisabled : null]), tabindex: "-1", onKeyup: ca((d) => e.handleTagRemove(r, d), ["enter"]), key: u, "aria-label": e.ariaTagLabel(e.localize(r[t.label])) }, [f("span", { class: R(e.classList.tagWrapper) }, P(e.localize(r[t.label])), 3), !t.disabled && !r.disabled ? (x(), L("span", { key: 0, class: R(e.classList.tagRemove), onClick: Tt((d) => e.handleTagRemove(r, d), ["stop"]) }, [f("span", { class: R(e.classList.tagRemoveIcon) }, null, 2)], 10, Rl)) : I("v-if", true)], 42, jl))])), 256)), f("div", { class: R(e.classList.tagsSearchWra
1348pper), ref: "tags" }, [I(" Used for measuring search width "), f("span", { class: R(e.classList.tagsSearchCopy) }, P(e.search), 3), I(" Actual search input "), t.searchable && !t.disabled ? (x(), L("input", He({ key: 0, type: t.inputType, modelValue: e.search, value: e.search, class: e.classList.tagsSearch, id: t.searchable ? t.id : void 0, autocomplete: t.autocomplete, onInput: a[3] || (a[3] = (...r) => e.handleSearchInput && e.handleSearchInput(...r)), onKeypress: a[4] || (a[4] = (...r) => e.handleKeypress && e.handleKeypress(...r)), onPaste: a[5] || (a[5] = Tt((...r) => e.handlePaste && e.handlePaste(...r), ["stop"])), ref: "input", "aria-controls": e.ariaControls, "aria-placeholder": e.ariaPlaceholder, "aria-expanded": e.isOpen, "aria-activedescendant": e.ariaActiveDescendant, "aria-multiselectable": e.ariaMultiselectable, role: "combobox" }, { ...t.attrs, ...e.arias }), null, 16, Nl)) : I("v-if", true)], 2)], 2)) : I("v-if", true), I(" Single label "), t.mode == "single" && e.hasSelected && !e.search && e.iv ? ne(e.$slots, "singlelabel", { key: 2, value: e.iv }, () => [f("div", { class: R(e.classList.singleLabel) }, [f("span", { class: R(e.classList.singleLabelText) }, P(e.localize(e.iv[t.label])), 3)], 2)]) : I("v-if", true), I(" Multiple label "), t.mode == "multiple" && e.hasSelected && !e.search ? ne(e.$slots, "multiplelabel", { key: 3, values: e.iv }, () => [f("div", { class: R(e.classList.multipleLabel), innerHTML: e.multipleLabelText }, null, 10, zl)]) : I("v-if", true), I(" Placeholder "), t.placeholder && !e.hasSelected && !e.search ? ne(e.$slots, "placeholder", { key: 4 }, () => [f("div", { class: R(e.classList.placeholder), "aria-hidden": "true" }, P(t.placeholder), 3)]) : I("v-if", true), I(" Spinner "), t.loading || e.resolving ? ne(e.$slots, "spinner", { key: 5 }, () => [f("span", { class: R(e.classList.spinner), "aria-hidden": "true" }, null, 2)]) : I("v-if", true), I(" Clear "), e.hasSelected && !t.disabled && t.canClear && !e.busy ? ne(e.$slots, "clear", { key: 6, clear: e.clear }, () => [f("span", { "aria-hidden": "true", tabindex: "0", role: "button", "data-clear": "", "aria-roledescription": "\u274E", class: R(e.classList.clear), onClick: a[6] || (a[6] = (...r) => e.clear && e.clear(...r)), onKeyup: a[7] || (a[7] = ca((...r) => e.clear && e.clear(...r), ["enter"])) }, [f("span", { class: R(e.classList.clearIcon) }, null, 2)], 34)]) : I("v-if", true), I(" Caret "), t.caret && t.showOptions ? ne(e.$slots, "caret", { key: 7, handleCaretClick: e.handleCaretClick, isOpen: e.isOpen }, () => [f("span", { class: R(e.classList.caret), onClick: a[8] || (a[8] = (...r) => e.handleCaretClick && e.handleCaretClick(...r)), "aria-hidden": "true" }, null, 2)]) : I("v-if", true)], 16, Ml), I(" Options "), (x(), G(Ea, { to: t.appendTo || "body", disabled: !t.appendToBody && !t.appendTo }, [f("div", { id: t.id ? `${t.id}-dropdown` : void 0, class: R(e.classList.dropdown), tabindex: "-1", ref: "dropdown", onFocusin: a[10] || (a[10] = (...r) => e.handleFocusIn && e.handleFocusIn(...r)), onFocusout: a[11] || (a[11] = (...r) => e.handleFocusOut && e.handleFocusOut(...r)) }, [ne(e.$slots, "beforelist", { options: e.fo }), f("ul", { class: R(e.classList.options), id: e.ariaControls, role: "listbox" }, [t.groups ? (x(true), L(ye, { key: 0 }, Me(e.fg, (r, o, u) => (x(), L("li", { class: R(e.classList.group), key: u, id: e.ariaGroupId(r), "aria-label": e.ariaGroupLabel(e.localize(r[t.groupLabel])), "aria-selected": e.isSelected(r), role: "option" }, [r.__CREATE__ ? I("v-if", true) : (x(), L("div", { key: 0, class: R(e.classList.groupLabel(r)), "data-pointed": e.isPointed(r), onMouseenter: (d) => e.setPointer(r, o), onClick: (d) => e.handleGroupClick(r) }, [ne(e.$slots, "grouplabel", { group: r, isSelected: e.isSelected, isPointed: e.isPointed }, () => [f("span", { innerHTML: e.localize(r[t.groupLabel]) }, null, 8, Yl)])], 42, Fl)), f("ul", { class: R(e.classList.groupOptions), "aria-label": e.ariaGroupLabel(e.localize(r[t.groupLabel])), role: "group" }, [(x(true), L(ye, null, Me(r.__VISIBLE__, (d, i, y) => (x(), L("li", { class: R(e.classList.option(d, r)), "data-pointed": e.isPointed(d), "data-selected": e.isSelected(d) || void 0, key: y, onMouseenter: (w) => e.setPointer(d), onClick: (w) => e.handleOptionClick(d), id: e.ariaOptionId(d), "aria-selected": e.isSelected(d), "aria-label": e.ariaOptionLabel(e.localize(d[t.label])), role: "option" }, [ne(e.$slots, "option", { option: d, isSelected: e.isSelected, isPointed: e.isPointed, search: e.search }, () => [f("span", null, P(e.localize(d[t.label])), 1)])], 42, Kl))), 128))], 10, Gl)], 10, Wl))), 128)) : (x(true), L(ye, { key: 1 }, Me(e.fo, (r, o, u) => (x(), L("li", { class: R(e.classList.option(r)), "data-pointed": e.isPointed(r), "data-selected": e.isSelected(r) || void 0, key: u, onMouseenter: (d
1348) => e.setPointer(r), onClick: (d) => e.handleOptionClick(r), id: e.ariaOptionId(r), "aria-selected": e.isSelected(r), "aria-label": e.ariaOptionLabel(e.localize(r[t.label])), role: "option" }, [ne(e.$slots, "option", { option: r, isSelected: e.isSelected, isPointed: e.isPointed, search: e.search }, () => [f("span", null, P(e.localize(r[t.label])), 1)])], 42, Zl))), 128))], 10, Hl), e.noOptions ? ne(e.$slots, "nooptions", { key: 0 }, () => [f("div", { class: R(e.classList.noOptions), innerHTML: e.localize(t.noOptionsText) }, null, 10, Ql)]) : I("v-if", true), e.noResults ? ne(e.$slots, "noresults", { key: 1 }, () => [f("div", { class: R(e.classList.noResults), innerHTML: e.localize(t.noResultsText) }, null, 10, Xl)]) : I("v-if", true), t.infinite && e.hasMore ? (x(), L("div", { key: 2, class: R(e.classList.inifinite), ref: "infiniteLoader" }, [ne(e.$slots, "infinite", {}, () => [f("span", { class: R(e.classList.inifiniteSpinner) }, null, 2)])], 2)) : I("v-if", true), ne(e.$slots, "afterlist", { options: e.fo })], 42, Ul)], 8, ["to", "disabled"])), I(" Hacky input element to show HTML5 required warning "), t.required ? (x(), L("input", { key: 0, class: R(e.classList.fakeInput), tabindex: "-1", value: e.textValue, required: "" }, null, 10, Jl)) : I("v-if", true), I(" Native input support "), t.nativeSupport ? (x(), L(ye, { key: 1 }, [t.mode == "single" ? (x(), L("input", { key: 0, type: "hidden", name: t.name, value: e.plainValue !== void 0 ? e.plainValue : "" }, null, 8, ei)) : (x(true), L(ye, { key: 1 }, Me(e.plainValue, (r, o) => (x(), L("input", { type: "hidden", name: `${t.name}[]`, value: r, key: o }, null, 8, ti))), 128))], 64)) : I("v-if", true), I(" Screen reader assistive text "), t.searchable && e.hasSelected ? (x(), L("div", { key: 2, class: R(e.classList.assist), id: e.ariaAssist, "aria-hidden": "true" }, P(e.ariaLabel), 11, ai)) : I("v-if", true), I(" Create height for empty input "), f("div", { class: R(e.classList.spacer) }, null, 2)], 42, Bl); 1349} 1350na.render = ni; 1351na.__file = "src/Multiselect.vue"; 1352const ri = { class: "space-y-2" }, si = { key: 0, class: "flex items-center space-x-2" }, li = { key: 0, class: "text-sm font-medium" }, ii = { key: 0, class: "relative z-10" }, oi = ["onClick"], ui = { class: "sr-only" }, di = { __name: "TagDisplayer", props: { tags: { type: Array, required: true }, selected: { type: Array, required: true }, assignable: { type: Boolean, default: false }, showTitle: { type: Boolean, default: true }, showAll: { type: Boolean, default: true }, modelValue: { type: [String, Number], default: () => "" } }, emits: ["update:modelValue", "tagAdded", "tagDeleted", "plusClicked"], setup(e, { emit: a }) { 1353 const t = e, s = a, n = Zn(t, s, "modelValue"), c = (w) => { 1354 s("tagAdded", w); 1355 }, r = (w) => { 1356 s("tagDeleted", w); 1357 }, o = V(() => t.tags.map((w) => ({ value: w.id, label: w.name }))), u = V(() => t.showAll ? t.selected : t.selected.slice(0, 1)), d = V(() => t.selected.slice(1)), i = () => { 1358 s("plusClicked"); 1359 }, y = W(false); 1360 return (w, b) => { 1361 const _ = Ke("tooltip"); 1362 return x(), L("div", ri, [e.showTitle || e.assignable ? (x(), L("div", si, [e.showTitle ? (x(), L("h4", li, P(w.$t("Tags")), 1)) : I("", true), e.assignable ? (x(), L("span", { key: 1, class: "cursor-pointer leading-3 max-lg:relative max-lg:after:absolute max-lg:after:-inset-3.5 max-lg:after:content-['']", onClick: b[0] || (b[0] = (k) => y.value = !y.value) }, [y.value ? (x(), G(S(pa), { key: 0, class: "h-4 w-4 cursor-pointer text-gray-400" })) : we((x(), G(S(Un), { key: 1, class: "h-4 w-4 text-gray-400", "aria-hidden": "true" }, null, 512)), [[_, w.$t("Add tag")]])])) : I("", true)])) : I("", true), M(gs, null, { default: F(() => [y.value ? (x(), L("div", ii, [M(S(na), { modelValue: S(n), "onUpdate:modelValue": b[1] || (b[1] = (k) => $a(n) ? n.value = k : null), options: o.value, classes: S(hs), searchable: true, "create-option": true, onSelect: c }, null, 8, ["modelValue", "options", "classes"])])) : I("", true)]), _: 1 }), f("div", { class: R(["pr-5", { flex: !e.showAll }]) }, [(x(true), L(ye, null, Me(u.value, (k) => (x(), L("span", { key: k.id, class: R(["inline-flex cursor-default items-center rounded-full bg-gray-200 px-2.5 py-0.5 text-xs font-medium text-gray-800", { "mb-2 mr-3": e.showAll }]) }, [We(P(k.name) + " ", 1), e.assignable ? (x(), L("button", { key: 0, type: "button", class: "max-lg:relative max-lg:after:absolute max-lg:after:-inset-3.5 max-lg:after:content-['']", onClick: (D) => k.id ? r(k.id) : r(k.name) }, [f("span", ui, P(w.$t("Remove")), 1), M(S(pa), { class: "h-4 w-4 cursor-pointer text-gray-400" })], 8, oi)) : I("", true)], 2))), 128)), !e.showAll && e.selected.length > 1 ? we((x(), L("span", { key: 0, class: "my-auto ml-1 cursor-pointer text-xs font-medium text-blue-600", onClick: i }, [We(" +" + P(e.selected.length - 1), 1)])), [[_, { content: d.value.map((k) => k.name).join("<br>"), html: true }]]) : I("", true)], 2)]); 1363 }; 1364} }, ci = { class: "relative text-left" }, fi = { class: "w-full" }, pi = { class: "relative" }, vi = { type: "button", class: "relative w-full cursor-default rounded-md border border-gray-300 bg-white py-2 pl-3 pr-10 text-left shadow-sm hover:border-primary-500 focus:border-primary-500 focus:outline-none focus:ring-1 focus:ring-primary-500 max-sm:min-h-11 sm:text-sm" }, mi = { class: "flex items-center" }, gi = { class: "ml-3 block truncate" }
1364, hi = { class: "pointer-events-none absolute inset-y-0 right-0 ml-3 flex items-center pr-2" }, yi = { class: "mt-5" }, bi = { class: "mb-1 block text-sm font-medium text-gray-700" }, wi = { class: "mt-5 grid grid-cols-3 gap-4" }, xi = { class: "flex flex-col" }, Si = { class: "mb-1 text-sm font-medium text-gray-700" }, ki = { class: "flex flex-col" }, Oi = { class: "mb-1 text-sm font-medium text-gray-700" }, $i = { class: "flex flex-col" }, Ei = { class: "mb-1 text-sm font-medium text-gray-700" }, Ci = { class: "mt-5 flex w-full items-center" }, _i = { class: "mr-4" }, Ti = { class: "mt-5 flex flex-row-reverse justify-between sm:mt-7" }, Li = ["disabled"], Di = { __name: "TimeEntryModal", props: { request: { type: Object, required: true }, timeEntry: { type: Object, required: false }, open: { type: Boolean, required: true } }, emits: ["closed"], setup(e, { emit: a }) { 1365 var _a2, _b, _c, _d, _e, _f, _g, _h, _i2; 1366 const t = e, s = xn("timeEntryTags", []), n = a, c = W(false), r = W(((_a2 = t.timeEntry) == null ? void 0 : _a2.user) ?? qt.value), o = W(""), u = W({ start: H(((_b = t.timeEntry) == null ? void 0 : _b.started_at) ? (_c = t.timeEntry) == null ? void 0 : _c.started_at : H().subtract(1, "hour")).toISOString(), end: H(((_d = t.timeEntry) == null ? void 0 : _d.ended_at) ? (_e = t.timeEntry) == null ? void 0 : _e.ended_at : H()).toISOString() }), d = Sn({ description: ((_f = t.timeEntry) == null ? void 0 : _f.description) ?? null, started_at: u.value.start, ended_at: u.value.end, user_id: r.value.id, service_request_id: ((_g = t.timeEntry) == null ? void 0 : _g.service_request_id) ?? t.request.id, tags: ((_h = t.timeEntry) == null ? void 0 : _h.tags) ?? [], billable: ((_i2 = t.timeEntry) == null ? void 0 : _i2.billable) ?? true, duration: Te(u.value.start, u.value.end) }), i = (p) => { 1367 if (!p || typeof p != "string") return { hours: 0, minutes: 0, seconds: 0 }; 1368 const m = p.split(":"); 1369 return { hours: parseInt(m[0]) || 0, minutes: parseInt(m[1]) || 0, seconds: parseInt(m[2]) || 0 }; 1370 }, w = (() => { 1371 var _a3, _b2; 1372 if (((_a3 = t.timeEntry) == null ? void 0 : _a3.started_at) && ((_b2 = t.timeEntry) == null ? void 0 : _b2.ended_at)) { 1373 const A = Te(t.timeEntry.started_at, t.timeEntry.ended_at); 1374 return i(A); 1375 } 1376 const p = H().subtract(1, "hour").toISOString(), m = H().toISOString(), C = Te(p, m); 1377 return i(C); 1378 })(), b = W(w.hours), _ = W(w.minutes), k = W(w.seconds), D = W(false), T = V(() => b.value === 0 && _.value === 0 && k.value === 0 || b.value === null && _.value === null && k.value === null), q = () => { 1379 const p = i(Te(u.value.start, u.value.end)); 1380 if ((parseInt(b.value) || 0) === p.hours && (parseInt(_.value) || 0) === p.minutes && (parseInt(k.value) || 0) === p.seconds) return; 1381 const m = Math.max(0, Math.min(1e3, parseInt(b.value) || 0)), C = Math.max(0, Math.min(59, parseInt(_.value) || 0)), A = Math.max(0, Math.min(59, parseInt(k.value) || 0)); 1382 b.value = m, _.value = C, k.value = A, D.value = true; 1383 const z = H(u.value.end).subtract(m, "hour").subtract(C, "minute").subtract(A, "second").toISOString(); 1384 u.value = { start: z, end: u.value.end }, d.started_at = z, d.duration = Te(z, u.value.end), setTimeout(() => { 1385 D.value = false; 1386 }, 10); 1387 }, g = () => { 1388 if (T.value) return; 1389 const p = { preserveScroll: true, preserveState: false }; 1390 t.timeEntry ? d.put(route("time-entries.update", t.timeEntry.id), p) : d.post(route("time-entries.store"), p); 1391 }, v = (p) => { 1392 d.user_id = p.id, r.value = p; 1393 }, O = (p) => { 1394 if (Number.isInteger(p) && !d.tags.some((m) => m.id === p)) { 1395 const m = s.find((C) => C.id === p); 1396 d.tags.push(m); 1397 } 1398 Number.isInteger(p) || (d.tags.push({ id: null, name: p }), o.value = null); 1399 }, h = (p) => { 1400 if (Number.isInteger(p)) { 1401 d.tags = d.tags.filter((m) => m.id !== p); 1402 return; 1403 } 1404 d.tags = d.tags.filter((m) => m.name !== p); 1405 }; 1406 return ie(u, (p) => { 1407 if (d.started_at = p.start, d.ended_at = p.end, d.duration = Te(p.start, p.end), !D.value) { 1408 const m = i(Te(p.start, p.end)); 1409 b.value = m.hours, _.value = m.minutes, k.value = m.seconds; 1410 } 1411 }), ie(() => t.timeEntry, (p) => { 1412 if ((p == null ? void 0 : p.started_at) && (p == null ? void 0 : p.ended_at)) { 1413 u.value.start = H(p.started_at).toISOString(), u.value.end = H(p.ended_at).toISOString(), d.started_at = H(p.started_at).toISOString(), d.ended_at = H(p.ended_at).toISOString(), d.description = p.description, d.tags = p.tags || [], d.billable = p.billable ?? true; 1414 const m = i(Te(p.started_at, p.ended_at)); 1415 b.value = m.hours, _.value = m.minutes, k.value = m.seconds; 1416 } 1417 }, { immediate: true }), ie(() => { 1418 var _a3; 1419 return (_a3 = t.timeEntry) == null ? void 0 : _a3.ended_at; 1420 }, (p) => { 1421 if (p) {
1422 u.value.end = H(p).toISOString(), d.ended_at = H(p).toISOString(); 1423 const m = i(Te(u.value.start, p)); 1424 b.value = m.hours, _.value = m.minutes, k.value = m.seconds; 1425 } 1426 }), ie(() => t.open, (p) => { 1427 p && et(() => c.value = true); 1428 }), (p, m) => (x(), G(Hn, { open: e.open, loading: S(d).processing, size: "lg", "custom-classes": "align-baseline md:align-baseline max-sm:w-full max-sm:[&_h3+button]:relative max-sm:[&_h3+button]:after:absolute max-sm:[&_h3+button]:after:-inset-2.5 max-sm:[&_h3+button]:after:content-['']", onClosed: m[8] || (m[8] = (C) => n("closed")), onConfirmed: g }, { title: F(() => [We(P(e.timeEntry ? p.$t("Edit time") : p.$t("Add time")), 1)]), content: F(() => [f("div", ci, [f("div", null, [S(An) || S(In)(S(qt), "assign hours to users") ? (x(), G(vs, { key: 0, "selected-user": r.value, "users-source": "assignable", "custom-popover-classes": "z-[99]", "same-width-dropdown": "", onUserSelected: v }, { default: F(() => { 1429 var _a3; 1430 return [f("div", fi, [f("div", pi, [f("button", vi, [f("span", mi, [r.value ? (x(), G(It, { key: 0, user: r.value, size: "sm" }, null, 8, ["user"])) : (x(), G(S(qa), { key: 1, class: "h-6 w-6 flex-shrink-0 rounded-full text-gray-400" })), f("span", gi, P(((_a3 = r.value) == null ? void 0 : _a3.name) || p.$t("Select user")), 1)]), f("span", hi, [M(S(Qn), { class: "h-5 w-5 text-gray-400", "aria-hidden": "true" })])])])])]; 1431 }), _: 1 }, 8, ["selected-user"])) : I("", true)]), f("div", yi, [f("label", bi, P(p.$t("Description")), 1), M(Et, { modelValue: S(d).description, "onUpdate:modelValue": m[0] || (m[0] = (C) => S(d).description = C), "input-class": "max-sm:min-h-11", placeholder: p.$t("What did you work on?"), autofocus: c.value }, null, 8, ["modelValue", "placeholder", "autofocus"])]), f("div", wi, [f("div", xi, [f("label", Si, P(p.$t("Hours")), 1), M(Et, { modelValue: b.value, "onUpdate:modelValue": m[1] || (m[1] = (C) => b.value = C), type: "number", "input-class": "[&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none [-moz-appearance:textfield] max-sm:min-h-11", min: 0, max: 1e3, "onUpdate:value": q }, null, 8, ["modelValue"])]), f("div", ki, [f("label", Oi, P(p.$t("Minutes")), 1), M(Et, { modelValue: _.value, "onUpdate:modelValue": m[2] || (m[2] = (C) => _.value = C), type: "number", "input-class": "[&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none [-moz-appearance:textfield] max-sm:min-h-11", min: 0, max: 59, "onUpdate:value": q }, null, 8, ["modelValue"])]), f("div", $i, [f("label", Ei, P(p.$t("Seconds")), 1), M(Et, { modelValue: k.value, "onUpdate:modelValue": m[3] || (m[3] = (C) => k.value = C), type: "number", "input-class": "[&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none [-moz-appearance:textfield] max-sm:min-h-11", min: 0, max: 59, "onUpdate:value": q }, null, 8, ["modelValue"])])]), f("div", Ci, [M(Ur, { modelValue: u.value, "onUpdate:modelValue": m[4] || (m[4] = (C) => u.value = C), stacked: "" }, null, 8, ["modelValue"])]), M(di, { modelValue: o.value, "onUpdate:modelValue": m[5] || (m[5] = (C) => o.value = C), tags: S(s), selected: S(d).tags, assignable: "", class: "mt-5 max-sm:[&_span.leading-3]:relative max-sm:[&_span.leading-3]:after:absolute max-sm:[&_span.leading-3]:after:-inset-3.5 max-sm:[&_span.leading-3]:after:content-['']", onTagAdded: O, onTagDeleted: h }, null, 8, ["modelValue", "tags", "selected"]), M(S(jn), { as: "div", class: "mt-5 flex items-center justify-between" }, { default: F(() => [f("div", _i, [M(S(Rn), { class: "block text-sm font-medium text-gray-700" }, { default: F(() => [We(P(p.$t("Billable")), 1)]), _: 1 }), M(S(Nn), { as: "p", class: "text-xs text-gray-500" }, { default: F(() => [We(P(p.$t("Non-billable time isn't deducted from the client's hours balance")), 1)]), _: 1 })]), M(Pr, { modelValue: S(d).billable, "onUpdate:modelValue": m[6] || (m[6] = (C) => S(d).billable = C) }, null, 8, ["modelValue"])]), _: 1 })])]), buttons: F(() => [f("div", Ti, [f("button", { type: "button", disabled: S(d).processing || T.value, class: R(["inline-flex items-center space-x-2 rounded-md border border-transparent px-4 py-2 text-sm font-medium text-white shadow-sm focus:outline-none focus:ring-2 focus:ring-offset-2 max-sm:min-h-11 sm:ml-3", { "cursor-not-allowed opacity-50": S(d).processing || T.value }, "bg-primary-600 hover:bg-primary-700 focus:ring-primary-500"]), onClick: g }, [S(d).processing ? (x(), G(Aa, { key: 0, class: "h-5 w-5 animate-spin text-primary-400" })) : I("", true), f("span", null, P(p.$t("Save")), 1)], 10, Li), f("button", { type: "button", class: "inline-flex items-center justify-center rounded-md border border-gray-300 bg-white px-4 py-2 text-sm font-medium text-gray-700 shadow-sm hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-primary-500 focus:ring-offset-2 max-sm:min-h-11", onClick: m[7] || (m[7] = (C) => n("closed")) }, P(p.$t("Cancel")), 1)])]), _: 1 }, 8, ["open", "loading"])); 1432} }, Ai = { class: "mx-auto max-w-md" }, Ii = { class: "lg:col-start-3 lg:row-end-1" }, qi = { class: "rounded-lg bg-gray-50 shadow-sm ring-1 ring-gray-900/5" }, Pi = { class: "flex flex-wrap" }, Bi = { class: "flex-auto pl-6 pt-6" }, Mi = { class: "text-sm font-semibold leading-6 text-gray-900" }, Vi = { class: "mt-1 text-base font-semibold leading-6 text-gray-900" }, ji = { class: "flex-none self-end px-6 pt-4" }, Ri = { class: "sr-only" }, Ni = { class: "inline-flex items-center rounded-md bg-green-50 px-2 py-1 text-xs font-medium text-green-700 ring-1 ring-inset ring-green-600/20" }, zi = { class: "mt-6 flex w-full flex-none gap-x-4 border-t border-gray-900/5 px-6 pt-6" }, Ui = { class: "flex-none" }, Hi = { class: "sr-only" }, Wi = { class: "text-sm leading-6 text-gray-400" }, Fi = { class: "mt-4 flex w-full flex-none gap-x-4 px-6" }, Yi = { class: "flex-none" }, Gi = { class: "sr-only" }, Ki = { class: "text-sm leading-6 text-gray-500" }, Zi = { datetime: "2023-01-31" }, Qi = { class: "mt-4 flex w-full flex-none gap-x-4 px-6" }, Xi = { class: "flex-none" }, Ji = { class: "sr-only" }, eo = { class: "text-sm font-medium leading-6 text-gray-900" }, to = { class: "text-sm font-semibold leading-6 text-gray-900" }, ao = { __name: "TimerButton", props: { request: { type: Object, required: false }, timeEntry: { type: Object, required: false }, global: { type: Boolean, default: false } }, setup(e) { 1433 const a = e, t = vt().props.auth.user; 1434 Ge(() => { 1435 a.timeEntry && Echo.private(qn(`timesheet.${t.id}`)).listen(".App\\Events\\TimeEntryUpdated", ({ timeEntry: r }) => { 1436 var _a2; 1437 r.id === ((_a2 = a.timeEntry) == null ? void 0 : _a2.id) && Lt.reload(); 1438 }); 1439 }); 1440 const s = W(false), n = W(a.timeEntry), c = () => { 1441 if (a.timeEntry) return n.value = a.timeEntry, n.value.ended_at = H().toISOString(), Lt.put(route("time-entries.update", a.timeEntry.id), { ended_at: n.value.ended_at }, { headers: { "X-Socket-ID": Echo.socketId() }, onSuccess: () => s.value = true }); 1442 Lt.post(route("time-entries.store"), { started_at: H().toISOString(), service_request_id: a.request.id, user_id: vt().props.auth.user.id }); 1443 }; 1444 return (r, o) => { 1445 var _a2; 1446 const u = Oa("VMenu"), d = Ke("tooltip"); 1447 return x(), L("div", null, [M(u, { class: "flex" }, kn({ default: F(() => { 1448 var _a3; 1449 return [((_a3 = e.timeEntry) == null ? void 0 : _a3.started_at) ? (x(), G(ma, { key: 0, date: e.timeEntry.started_at, class: "cursor-default p-0.5 text-sm text-gray-500" }, null, 8, ["date"])) : I("", true), e.timeEntry ? we((x(), G(S(Xn), { key: 1, class: "h-6 w-6 cursor-pointer text-primary-600", onClick: c }, null, 512)), [[d, r.$t("Stop timer")]]) : e.global ? I("", true) : we((x(), G(S(Jn), { key: 2, class: "h-6 w-6 cursor-pointer text-primary-600", onClick: c }, null, 512)), [[d, r.$t("Start timer")]])]; 1450 }), _: 2 }, [e.timeEntry && e.global ? { name: "popper", fn: F(() => { 1451 var _a3; 1452 return [f("div", Ai, [f("div", Ii, [o[2] || (o[2] = f("h2", { class: "sr-only" }, "Summary", -1)), f("div", qi, [f("dl", Pi, [f("div", Bi, [f("dt", Mi, P(r.$t("Time entry")), 1), f("dd", Vi, [((_a3 = e.timeEntry) == null ? void 0 : _a3.started_at) ? (x(), G(ma, { key: 0, date: e.timeEntry.started_at, class: "cursor-default p-0.5 text-sm text-gray-500" }, null, 8, ["date"])) : I("", true)])]), f("div", ji, [f("dt", Ri, P(r.$t("Status")), 1), f("dd", Ni, P(r.$t("Active")), 1)]), f("div", zi, [f("dt", Ui, [f("span", Hi, P(r.$t("User")), 1), M(S(er), { class: "h-6 w-5 text-gray-400", "aria-hidden": "true" })]), f("dd", Wi, P(S(t).name), 1)]), f("div", Fi, [f("dt", Yi, [f("span", Gi, P(r.$t("Started at")), 1
1452), M(S(Yn), { class: "h-6 w-5 text-gray-400", "aria-hidden": "true" })]), f("dd", Ki, [f("time", Zi, P(S(Be)(e.timeEntry.started_at)), 1)])]), f("div", Qi, [f("dt", Xi, [f("span", Ji, P(r.$t("Request")), 1), M(S(Ln), { class: "h-6 w-5 text-gray-400", "aria-hidden": "true" })]), f("dd", eo, P(e.timeEntry.request.title), 1)])]), M(S(tt), { href: r.route("requests.show", e.timeEntry.request.slug), class: "mt-6 block border-t border-gray-900/5 px-6 py-6 hover:bg-gray-100" }, { default: F(() => [f("div", to, [We(P(r.$t("Go to request")) + " ", 1), o[1] || (o[1] = f("span", { "aria-hidden": "true" }, "\u2192", -1))])]), _: 1 }, 8, ["href"])])])])]; 1453 }), key: "0" } : void 0]), 1024), ((_a2 = n.value) == null ? void 0 : _a2.ended_at) ? (x(), G(Di, { key: 0, open: s.value, request: n.value.request, "time-entry": n.value, onClosed: o[0] || (o[0] = (i) => s.value = false) }, null, 8, ["open", "request", "time-entry"])) : I("", true)]); 1454 }; 1455} }; 1456function no(e, a) { 1457 return x(), L("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 20 20", fill: "currentColor", "aria-hidden": "true", "data-slot": "icon" }, [f("path", { d: "M10.75 4.75a.75.75 0 0 0-1.5 0v4.5h-4.5a.75.75 0 0 0 0 1.5h4.5v4.5a.75.75 0 0 0 1.5 0v-4.5h4.5a.75.75 0 0 0 0-1.5h-4.5v-4.5Z" })]); 1458} 1459const ro = { class: "flex min-w-0 flex-1 justify-between px-4" }, so = { class: "flex flex-1 items-center truncate" }, lo = { key: 1, class: "relative w-full text-gray-400 focus-within:text-gray-600" }, io = { key: 0, class: "ml-4 flex items-center space-x-3 md:ml-6" }, oo = { class: "sm:hidden" }, uo = { class: "max-sm:hidden" }, Lo = { __name: "NavbarLayout", props: { showLogo: { type: Boolean, default: false } }, setup(e) { 1460 const a = V(() => vt().props.timeEntry); 1461 return (t, s) => { 1462 const n = Ke("permission"); 1463 return x(), L("div", ro, [f("div", so, [e.showLogo ? (x(), G(S(tt), { key: 0, href: t.route("dashboard"), class: "h-10" }, { default: F(() => [M(On, { class: "!h-full", "is-dark-theme": false })]), _: 1 }, 8, ["href"])) : (x(), L("div", lo, [ne(t.$slots, "header")]))]), S(qt).id ? (x(), L("div", io, [t.route().current("requests.submit.index") ? I("", true) : we((x(), G(S(tt), { key: 0, href: t.route("requests.submit.index"), "aria-label": t.$t("Create {request}", { request: S(va) }), class: "inline-flex shrink-0 items-center rounded-md border border-transparent bg-primary-600 px-4 py-2 text-sm font-medium text-white shadow-sm hover:bg-primary-700 focus:outline-none focus:ring-2 focus:ring-primary-500 focus:ring-offset-2 max-sm:min-h-11 max-sm:px-3" }, { default: F(() => [M(S(no), { class: "-ml-0.5 mr-1.5 h-5 w-5 sm:hidden", "aria-hidden": "true" }), f("span", oo, P(t.$t("Create")), 1), f("span", uo, P(t.$t("Create {request}", { request: S(va) })), 1)]), _: 1 }, 8, ["href", "aria-label"])), [[n, "submit service requests"]]), ne(t.$slots, "actions"), S(Pn).requests_timetracking_enabled ? (x(), G(ao, { key: 1, "time-entry": a.value, global: "" }, null, 8, ["time-entry"])) : I("", true), M(qr, { "notifications-summary": S(qt).notificationsSummary }, null, 8, ["notifications-summary"])])) : I("", true)]); 1464 }; 1465} }, Do = { __name: "LiveChat", setup(e) { 1466 const a = vt().props.auth.user, t = vt().props.portal, s = W(null); 1467 return Ge(() => { 1468 if (Bn(a, "client") && t.live_chat_enabled) { 1469 if (t.live_chat_name === "intercom" && ((function() { 1470 var n = window, c = n.Intercom; 1471 if (typeof c == "function") c("reattach_activator"), c("update", n.intercomSettings); 1472 else { 1473 var r = document, o = function() { 1474 o.c(arguments); 1475 }; 1476 o.q = [], o.c = function(d) { 1477 o.q.push(d); 1478 }, n.Intercom = o; 1479 var u = function() { 1480 var d = r.createElement("script"); 1481 d.type = "text/javascript", d.async = true, d.src = `https://widget.intercom.io/widget/${t.live_chat_id}`; 1482 var i = r.getElementsByTagName("script")[0]; 1483 i.parentNode.insertBefore(d, i); 1484 }; 1485 document.readyState === "complete" ? u() : n.attachEvent ? n.attachEvent("onload", u) : n.addEventListener("load", u, false); 1486 } 1487 }
1487)(), window.Intercom("boot", { api_base: "https://api-iam.intercom.io", app_id: t.live_chat_id, user_id: t.id + "_" + a.id, name: a.name, email: a.email, created_at: a.created_at.timestamp }), window.Intercom("update")), t.live_chat_name === "crisp" && (window.$crisp = [], window.CRISP_WEBSITE_ID = t.live_chat_id, s.value = document.createElement("script"), s.value.src = "https://client.crisp.chat/l.js", s.value.async = 1, document.getElementsByTagName("head")[0].appendChild(s.value)), t.live_chat_name === "tawk-to") { 1488 window.Tawk_API = {}, window.Tawk_LoadStart = /* @__PURE__ */ new Date(), s.value = document.createElement("script"); 1489 const n = document.getElementsByTagName("script")[0]; 1490 s.value.async = true, s.value.src = t.live_chat_id, s.value.setAttribute("crossorigin", "*"), n.parentNode.insertBefore(s.value, n); 1491 } 1492 t.live_chat_name === "livechat" && (window.__lc = window.__lc || {}, window.__lc.license = t.live_chat_id, (function(n, c, r) { 1493 function o(d) { 1494 return u._h ? u._h.apply(null, d) : u._q.push(d); 1495 } 1496 var u = { _q: [], _h: null, _v: "2.0", on: function() { 1497 o(["on", r.call(arguments)]); 1498 }, once: function() { 1499 o(["once", r.call(arguments)]); 1500 }, off: function() { 1501 o(["off", r.call(arguments)]); 1502 }, get: function() { 1503 if (!u._h) throw new Error("[LiveChatWidget] You can't use getters before load."); 1504 return o(["get", r.call(arguments)]); 1505 }, call: function() { 1506 o(["call", r.call(arguments)]); 1507 }, init: function() { 1508 var d = c.createElement("script"); 1509 d.async = true, d.type = "text/javascript", d.src = "https://cdn.livechatinc.com/tracking.js", c.head.appendChild(d); 1510 } }; 1511 !n.__lc.asyncInit && u.init(), n.LiveChatWidget = n.LiveChatWidget || u; 1512 })(window, document, [].slice)), t.live_chat_name === "hubspot" && (s.value = document.createElement("script"), s.value.setAttribute("src", t.live_chat_id), document.head.appendChild(s.value)), t.live_chat_name === "customerly" && ((function() { 1513 var n = window, c = document, r = "customerly", o = "queue", u = "load", d = "settings", i = n[r] = n[r] || []; 1514 if (i.t) return void i.i("[customerly] SDK already initialized. Snippet included twice."); 1515 i.t = true, i.loaded = false, i.o = ["event", "attribute", "update", "show", "hide", "open", "close"], i[o] = [], i.i = function(y) { 1516 n.console && !i.debug && console.error && console.error(y); 1517 }, i.u = function(y) { 1518 return function() { 1519 var w = Array.prototype.slice.call(arguments); 1520 return w.unshift(y), i[o].push(w), i; 1521 }; 1522 }, i[u] = function(y) { 1523 if (i[d] = y || {}, i.loaded) return void i.i("[customerly] SDK already loaded. Use customerly.update to change settings."); 1524 i.loaded = true; 1525 var w = c.createElement("script"); 1526 w.type = "text/javascript", w.async = true, w.src = "https://messenger.customerly.io/launcher.js"; 1527 var b = c.getElementsByTagName("script")[0]; 1528 b.parentNode.insertBefore(w, b); 1529 }, i.o.forEach(function(y) { 1530 i[y] = i.u(y); 1531 }); 1532 })(), window.customerly.load({ app_id: t.live_chat_id, user_id: t.id + "_" + a.id, name: a.name, email: a.email })); 1533 } 1534 }), (n, c) => null; 1535} }; 1536export { 1537 Qn as A, 1538 hs as M, 1539 gs as T, 1540 Pr as _, 1541 pr as a, 1542 _o as b, 1543 Lo as c, 1544 Do as d, 1545 Hr as e, 1546 Jn as f, 1547 Gr as g, 1548 di as h, 1549 Qr as i, 1550 Xr as j, 1551 Jr as k, 1552 Kr as l, 1553 qa as m, 1554 ct as n, 1555 xr as o, 1556 nr as p, 1557 Ur as q, 1558 To as r, 1559 na as s, 1560 no as t, 1561 Pa as u, 1562 er as v, 1563 vs as w, 1564 Di as x, 1565 ao as y, 1566 rr as z 1567};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.